:root{--color-bg:#f8f5ef;--color-surface:#fff;--color-text:#161616;--color-muted:#62605d;--color-ink:#151a1f;--color-ink-soft:#263038;--color-forest:#22372f;--color-burgundy:#6f2838;--color-brass:#a77a2f;--color-brass-soft:#d8c397;--color-border:#ded8ce;--color-shadow:#151a1f1f;--font-heading:"Fraunces", Georgia, serif;--font-body:"Source Sans 3", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--container:min(1120px, calc(100vw - 40px));--radius:8px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);margin:0;font-size:18px;line-height:1.55}body::selection{background:var(--color-brass-soft);color:var(--color-ink)}a{color:inherit}img{max-width:100%;display:block}button,input,textarea,select{font:inherit}:focus-visible{outline:3px solid var(--color-brass);outline-offset:3px}.skip-link{z-index:50;background:var(--color-surface);color:var(--color-ink);border-radius:6px;padding:10px 14px;font-weight:700;position:absolute;top:12px;left:16px;transform:translateY(-140%)}.skip-link:focus{transform:translateY(0)}.container{width:var(--container);margin-inline:auto}.section{padding:88px 0}.section-heading{text-align:center;max-width:760px;margin-bottom:34px}.section-heading-left{text-align:left;margin-inline:auto}.eyebrow{color:var(--color-brass);letter-spacing:0;text-transform:uppercase;margin:0 0 12px;font-size:.78rem;font-weight:800}h1,h2,h3{color:var(--color-ink);font-family:var(--font-heading);letter-spacing:0;margin:0;font-weight:650;line-height:1.08}h1{max-width:820px;font-size:clamp(2.55rem,6.4vw,4.85rem)}h2{font-size:clamp(2rem,4vw,3.45rem)}h3{font-size:1.45rem}p{margin:0}.button,.text-link{border-radius:8px;justify-content:center;align-items:center;min-height:46px;font-weight:800;text-decoration:none;display:inline-flex}.button{border:1px solid var(--color-ink);background:var(--color-ink);color:#fff;padding:12px 18px;transition:background .18s,border-color .18s,color .18s,transform .18s;box-shadow:0 10px 22px #151a1f24}.button:hover{background:var(--color-forest);border-color:var(--color-forest);transform:translateY(-1px)}.button-secondary{background:var(--color-surface);color:var(--color-ink)}.button-secondary:hover{color:var(--color-ink);background:#f0eadf}.button-ghost{color:#fff;box-shadow:none;background:0 0;border-color:#ffffff7a}.button-ghost:hover{background:#ffffff1f;border-color:#fff}.button-small{min-height:40px;padding:9px 14px;font-size:.92rem}.text-link{min-height:0;color:var(--color-burgundy);text-underline-offset:5px;text-decoration:underline}.site-header{z-index:20;backdrop-filter:blur(18px);background:#f8f5eff2;border-bottom:1px solid #ded8cee6;position:sticky;top:0}.header-inner{align-items:center;gap:24px;min-height:78px;display:flex}.brand{color:var(--color-ink);align-items:center;gap:12px;text-decoration:none;display:inline-flex}.brand-mark{border:1px solid var(--color-brass);background:var(--color-ink);width:42px;height:42px;color:var(--color-brass-soft);font-family:var(--font-heading);border-radius:8px;place-items:center;font-size:1rem;font-weight:650;display:grid}.brand-copy{gap:1px;display:grid}.brand-copy strong{font-family:var(--font-heading);font-size:1.12rem;line-height:1}.brand-copy small{color:var(--color-muted);font-size:.78rem;line-height:1.2}.desktop-nav{align-items:center;gap:6px;margin-left:auto;display:flex}.desktop-nav a{color:var(--color-ink-soft);border-radius:8px;padding:10px 12px;font-weight:700;text-decoration:none}.desktop-nav a:hover{background:#efe8dc}.header-call{white-space:nowrap}.menu-toggle{border:1px solid var(--color-border);background:var(--color-surface);width:44px;height:44px;color:var(--color-ink);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;display:none}.menu-toggle span{background:currentColor;width:20px;height:2px;position:absolute}.menu-toggle span:first-child{transform:translateY(-7px)}.menu-toggle span:nth-child(3){transform:translateY(7px)}.mobile-menu{border-top:1px solid var(--color-border);background:var(--color-surface)}.mobile-nav{width:var(--container);margin-inline:auto;padding:14px 0 18px;display:grid}.mobile-nav a{color:var(--color-ink);padding:13px 0;font-weight:800;text-decoration:none}.mobile-actions{display:none}.hero{background-color:var(--color-ink);color:#fff;background-position:50%;background-size:cover;align-items:end;min-height:min(700px,100vh - 78px);display:grid;position:relative;overflow:hidden}.hero-has-image{background-position:50%}.hero-placeholder{background:linear-gradient(90deg,#151a1feb,#22372fbd),radial-gradient(circle at 78% 22%,#a77a2f47,#0000 30%),linear-gradient(135deg,#ffffff0d 0 25%,#0000 25% 50%,#ffffff0a 50% 75%,#0000 75%) 0 0/42px 42px}.hero:after{aspect-ratio:1;content:"";border:1px solid #d8c39766;width:min(34vw,320px);position:absolute;bottom:clamp(24px,8vw,90px);right:clamp(20px,6vw,90px);transform:rotate(45deg)}.hero-content{z-index:1;padding:86px 0 74px;position:relative}.hero .eyebrow,.hero h1,.hero-copy{color:#fff}.hero-copy{max-width:650px;margin-top:18px;font-size:clamp(1.12rem,2vw,1.35rem)}.hero-actions{flex-wrap:wrap;gap:12px;margin-top:24px;display:flex}.quick-info{border-bottom:1px solid var(--color-border);background:var(--color-surface)}.quick-info-grid{grid-template-columns:1.4fr .9fr 1fr auto;align-items:stretch;gap:1px;display:grid}.quick-info-grid>div,.quick-info-link{border-left:1px solid var(--color-border);align-content:center;min-height:92px;padding:18px 20px;display:grid}.quick-info-grid>div:last-of-type{border-right:1px solid var(--color-border)}.quick-info span,.visit-details span,.contact-hero-details span{color:var(--color-muted);letter-spacing:0;text-transform:uppercase;font-size:.76rem;font-weight:800}.quick-info strong,.visit-details strong,.contact-hero-details strong{color:var(--color-ink);font-size:1rem}.quick-info-link{background:var(--color-forest);color:#fff;text-align:center;min-width:168px;font-weight:800;text-decoration:none}.quick-info-link:hover{background:var(--color-burgundy)}.image-slot{border-radius:var(--radius);background:var(--color-ink);box-shadow:0 18px 44px var(--color-shadow);border:1px solid #ded8ced9;position:relative;overflow:hidden}.image-slot-wide{aspect-ratio:16/10}.image-slot-square{aspect-ratio:1}.image-slot-portrait{aspect-ratio:4/5}.image-slot img{object-fit:cover;width:100%;height:100%}.image-placeholder{color:#fff;background:linear-gradient(155deg,#151a1fb3,#151a1f0f),repeating-linear-gradient(135deg,#ffffff12 0 1px,#0000 1px 18px);align-content:end;height:100%;min-height:240px;padding:22px;display:grid}.image-slot-green .image-placeholder{background-color:var(--color-forest)}.image-slot-burgundy .image-placeholder{background-color:var(--color-burgundy)}.image-slot-ink .image-placeholder{background-color:var(--color-ink)}.image-placeholder span{color:var(--color-brass-soft);text-transform:uppercase;font-size:.78rem;font-weight:800}.image-placeholder strong{max-width:12ch;font-family:var(--font-heading);font-size:clamp(1.8rem,4vw,3rem);line-height:1.02}.showcase-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;display:grid}.showcase-card,.review-card,.service-detail-card{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface)}.showcase-card{overflow:hidden}.showcase-card .image-slot{box-shadow:none;border:0;border-radius:0}.showcase-card-content{padding:20px}.showcase-card-content p{color:var(--color-muted);margin-top:9px;font-size:.98rem}.trust-section{background:var(--color-surface)}.trust-layout,.services-preview-layout,.visit-layout,.page-hero-layout{grid-template-columns:minmax(0,1fr) minmax(320px,.82fr);align-items:center;gap:clamp(28px,5vw,72px);display:grid}.trust-copy p{max-width:650px;color:var(--color-muted);margin-top:20px;font-size:1.08rem}.trust-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-width:660px;margin:26px 0 0;padding:0;list-style:none;display:grid}.trust-list li{border:1px solid var(--color-border);border-radius:var(--radius);background:#fbfaf6;padding:12px 14px;font-weight:800}.services-preview{background:linear-gradient(180deg, var(--color-bg), #fff)}.services-intro p{color:var(--color-muted);margin-top:18px}.services-intro .text-link{margin-top:24px}.service-list{gap:12px;display:grid}.service-list-item{border-left:4px solid var(--color-brass);border-radius:var(--radius);background:var(--color-surface);padding:20px;box-shadow:0 16px 42px #151a1f14}.service-list-item p{color:var(--color-muted);margin-top:8px;font-size:.98rem}.reviews-section{background:var(--color-ink);color:#fff}.reviews-section h2,.reviews-section .section-heading p{color:#fff}.reviews-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;display:grid}.review-card{min-height:250px;color:var(--color-ink);background:#fdfbf5;gap:20px;padding:26px;display:grid}.review-card blockquote{font-family:var(--font-heading);margin:0;font-size:1.32rem;line-height:1.28}.review-card figcaption{color:var(--color-muted);align-self:end;gap:2px;font-size:.95rem;display:grid}.review-card figcaption strong{color:var(--color-ink)}.reviews-action{justify-content:center;margin-top:28px;display:flex}.visit-section{background:var(--color-bg)}.visit-content>p:not(.eyebrow){max-width:640px;color:var(--color-muted);margin-top:18px}.visit-details{grid-template-columns:1fr .75fr;gap:12px;margin-top:28px;display:grid}.visit-details>div{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);gap:4px;padding:18px;display:grid}.visit-details small{color:var(--color-muted)}.hours-list{gap:8px;margin-top:20px;display:grid}.hours-list p,.contact-hours-panel p{border-bottom:1px solid var(--color-border);justify-content:space-between;gap:16px;padding:10px 0;display:flex}.hours-list span,.contact-hours-panel span{color:var(--color-muted)}.visit-actions{flex-wrap:wrap;gap:12px;margin-top:28px;display:flex}.visit-media{gap:14px;display:grid}.map-card{border-radius:var(--radius);border:1px solid var(--color-border);background:linear-gradient(90deg,#ffffffb8,#fffffff0),repeating-linear-gradient(90deg,#0000 0 38px,#151a1f14 38px 40px),repeating-linear-gradient(0deg,#0000 0 38px,#151a1f14 38px 40px);align-content:end;gap:3px;min-height:220px;padding:22px;display:grid}.map-card span{color:var(--color-brass);text-transform:uppercase;font-size:.78rem;font-weight:800}.map-card strong{font-family:var(--font-heading);font-size:1.45rem}.map-card small{color:var(--color-muted)}.page-hero{background:var(--color-surface);padding:92px 0 76px}.page-hero h1{font-size:clamp(2.5rem,6vw,4.9rem)}.page-hero p:not(.eyebrow){max-width:670px;color:var(--color-muted);margin-top:20px;font-size:1.12rem}.service-detail-section{background:var(--color-bg)}.service-detail-grid{gap:18px;display:grid}.service-detail-card{grid-template-columns:220px minmax(0,1fr);align-items:center;gap:24px;padding:18px;display:grid}.service-detail-card .image-slot{box-shadow:none}.service-detail-card p{color:var(--color-muted);margin-top:10px}.service-cta{background:var(--color-forest);color:#fff}.service-cta h2,.service-cta p{color:#fff}.service-cta-inner{max-width:780px}.service-cta-inner p:not(.eyebrow){margin-top:18px}.contact-hero{background:linear-gradient(180deg, #fff, var(--color-bg))}.contact-hero-details{gap:10px;margin-top:24px;display:grid}.contact-hero-details p{border-bottom:1px solid var(--color-border);gap:2px;padding:14px 0;display:grid}.contact-hours-panel{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);box-shadow:0 18px 44px var(--color-shadow);padding:28px}.contact-hours-panel h2{margin-bottom:12px;font-size:2rem}.contact-note-section{background:var(--color-bg);padding-top:18px}.contact-note{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);max-width:780px;padding:34px}.contact-note p:not(.eyebrow){color:var(--color-muted);margin-top:14px}.site-footer{background:var(--color-ink);color:#ffffffc7;padding:58px 0 24px}.site-footer .brand,.site-footer h2,.site-footer a,.site-footer strong{color:#fff}.brand-footer .brand-mark{color:var(--color-ink);background:#fff}.footer-grid{grid-template-columns:1.4fr .7fr 1fr 1.1fr;gap:36px;display:grid}.footer-brand p{max-width:360px;margin-top:18px}.site-footer h2{font-family:var(--font-body);text-transform:uppercase;margin-bottom:12px;font-size:.86rem;font-weight:800}.site-footer ul{gap:8px;margin:0;padding:0;list-style:none;display:grid}.site-footer a{text-underline-offset:4px}.site-footer address{font-style:normal}.footer-directions{margin-top:10px;font-weight:800;display:inline-flex;color:var(--color-brass-soft)!important}.footer-bottom{border-top:1px solid #ffffff29;margin-top:42px;padding-top:28px;font-size:.92rem}@media (width<=980px){.desktop-nav,.header-call{display:none}.menu-toggle{margin-left:auto;display:inline-flex}.quick-info-grid,.showcase-grid,.reviews-grid,.footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.quick-info-link{grid-column:span 2}.trust-layout,.services-preview-layout,.visit-layout,.page-hero-layout{grid-template-columns:1fr}.visit-media{grid-row:auto}}@media (width<=700px){:root{--container:min(100vw - 28px, 1120px)}body{padding-bottom:66px;font-size:17px}.section{padding:62px 0}.section-heading{text-align:left}.header-inner{min-height:70px}.brand-copy small{max-width:180px}.hero{min-height:calc(100vh - 70px)}.hero:after{width:220px;bottom:50px;right:-54px}.hero-content{padding:70px 0 58px}.hero-actions,.visit-actions{grid-template-columns:1fr;display:grid}.hero .button-secondary,.hero .button-ghost{display:none}.quick-info-grid,.showcase-grid,.reviews-grid,.visit-details,.trust-list,.service-detail-card,.footer-grid{grid-template-columns:1fr}.quick-info-grid>div,.quick-info-link{border-right:1px solid var(--color-border);min-height:auto}.service-detail-card{padding:14px}.service-detail-card .image-slot{max-height:260px}.contact-hours-panel,.contact-note{padding:22px}.mobile-actions{z-index:30;background:var(--color-ink);border-top:1px solid #ffffff38;grid-template-columns:1fr 1fr;display:grid;position:fixed;bottom:0;left:0;right:0}.mobile-actions a{color:#fff;place-items:center;min-height:58px;font-weight:900;text-decoration:none;display:grid}.mobile-actions a+a{border-left:1px solid #ffffff2e}}
