:root { --gold:#B39A72; --dark:#282723; }
body { font-size:18px; }
a { color:inherit; text-decoration-color:var(--gold); text-underline-offset:4px; }
button,input,textarea,select { font-family:inherit; }
em { color:var(--gold); font-style:normal; }
.eyebrow { display:block; font-size:13px; font-weight:700; letter-spacing:.08em; color:#826b4d; margin-bottom:24px; }
.btn { border-radius:0; min-height:52px; padding-inline:24px; }
.btn--primary { background:var(--dark); }
.btn--primary:hover { background:#48443d; }
.btn--light { background:var(--bg); color:var(--dark); }
.btn--light:hover { background:#e5ded3; }
.text-link { display:inline-flex; align-items:center; min-height:44px; font-weight:700; text-decoration:none; border-bottom:1px solid currentColor; padding-block:4px; }
.text-link:hover { color:#806849; }
.site-header { background:color-mix(in srgb,var(--bg) 94%,transparent); }
.site-header__inner { min-height:82px; gap:20px; }
.site-header__logo { display:block; width:210px; flex:0 0 210px; }
.site-header__logo img { width:100%; height:auto; max-height:66px; object-fit:contain; }
.site-nav { display:flex; align-items:center; gap:23px; white-space:nowrap; }
.site-nav a { font-size:15px; font-weight:600; text-decoration:none; transition:color .2s; }
.site-nav a:hover { color:#826b4d; }
.header-cta { font-size:14px; min-height:44px; padding-inline:17px; white-space:nowrap; }
.nav-toggle { border:0; background:transparent; padding:12px; width:48px; height:48px; align-items:center; justify-content:center; flex-direction:column; gap:5px; cursor:pointer; }
.nav-toggle span { width:24px; height:2px; background:var(--ink); display:block; }
.mobile-menu { align-items:stretch; }
.mobile-menu nav { display:flex; flex-direction:column; }
.mobile-menu .btn--primary { color:var(--accent-ink); }
.mobile-menu__close { position:absolute; inset-inline-end:var(--gutter); top:var(--gutter); width:50px; height:50px; background:transparent; border:0; font-size:38px; line-height:1; cursor:pointer; }
.m-progress { background:var(--gold); }
.hero { display:grid; grid-template-columns:53% 47%; min-height:min(720px,calc(100svh - 82px)); background:var(--bg); }
.hero-copy { display:flex; align-items:center; justify-content:flex-end; padding:56px max(var(--gutter),calc((100vw - var(--container))/2)) 56px 5vw; }
.hero-copy__inner { max-width:570px; width:100%; }
.hero h1 { font-size:clamp(48px,4.9vw,77px); line-height:1.13; margin-bottom:24px; font-weight:500; }
.hero h1 em { display:block; }
.hero p { font-size:clamp(18px,1.4vw,21px); line-height:1.7; color:var(--ink-soft); max-width:43ch; margin-bottom:30px; }
.hero-actions { display:flex; align-items:center; flex-wrap:wrap; gap:26px; }
.hero-phone { display:flex; align-items:center; min-height:44px; margin-top:12px; font-size:15px; text-decoration:none; }
.hero-phone b { font-weight:700; }
.hero-scroll { display:block; margin-top:70px; font-size:13px; color:var(--ink-soft); }
.hero-media { min-width:0; min-height:620px; overflow:hidden; }
.hero-media img { display:block; width:100%; height:100%; max-height:720px; object-fit:cover; object-position:center; }
.section-intro { max-width:730px; margin-bottom:55px; }
.section-intro p { color:var(--ink-soft); }
.opening { background:var(--surface); }
.opening-grid { display:grid; grid-template-columns:1fr 1fr; gap:9%; align-items:start; }
.opening h2 { max-width:12ch; font-weight:500; }
.opening-copy { padding-top:34px; }
.opening-copy p { font-size:20px; line-height:1.85; }
.service-section { background:var(--bg); }
.service-list { border-top:1px solid #d6cfc5; }
.service-row { display:grid; grid-template-columns:30% 1fr 36px; align-items:center; gap:28px; min-height:112px; padding:24px 0; border-bottom:1px solid #d6cfc5; text-decoration:none; transition:padding .25s,background .25s; }
.service-row:hover { padding-inline:12px; background:#f1eee9; }
.service-row__name { font-family:var(--font-display); font-size:clamp(25px,2vw,31px); font-weight:500; }
.service-row__lead { font-size:17px; color:var(--ink-soft); }
.service-row__arrow { color:#806849; font-size:27px; }
.feature-split { padding:0; display:grid; grid-template-columns:50% 50%; background:var(--dark); color:var(--bg); }
.feature-split__image { min-height:670px; overflow:hidden; }
.feature-split__image img { width:100%; height:100%; object-fit:cover; }
.feature-split__copy { padding:clamp(50px,7vw,110px); align-self:center; }
.feature-split__copy .eyebrow { color:#d6bc95; }
.feature-split__copy h2 { max-width:12ch; font-weight:500; }
.feature-split__copy p { color:#e9e5de; line-height:1.8; font-size:18px; }
.feature-split__copy .btn { margin-top:22px; }
.why { background:var(--surface); }
.why-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:48px; border-top:1px solid #cfc7bc; padding-top:32px; }
.why-grid article { padding-top:10px; }
.why-grid h3 { font-size:29px; font-weight:500; margin-bottom:15px; }
.why-grid p { color:var(--ink-soft); line-height:1.8; }
.proof { background:var(--bg); padding-block:80px; }
.proof-grid { display:grid; grid-template-columns:1fr 1fr; gap:10%; }
.proof-grid h2 { max-width:12ch; font-weight:500; }
.proof-grid p { font-size:19px; line-height:1.8; }
.quote-stack { border-right:1px solid #d3c8b9; padding-right:44px; }
.quote-stack blockquote { margin:0 0 32px; padding-bottom:28px; border-bottom:1px solid #ded6ca; }
.quote-stack blockquote p { font-family:var(--font-display); font-size:clamp(27px,2.4vw,37px); line-height:1.3; }
.quote-stack cite { font-size:14px; font-style:normal; color:var(--ink-soft); }
.process { background:var(--surface); }
.process ol { display:grid; grid-template-columns:repeat(3,1fr); gap:45px; counter-reset:step; list-style:none; padding:0; margin:0; }
.process li { counter-increment:step; border-top:1px solid #cfc7bc; padding-top:23px; }
.process li::before { content:counter(step,decimal-leading-zero); color:#806849; font-size:15px; }
.process h3 { font-size:29px; font-weight:500; margin:26px 0 14px; }
.process li p { color:var(--ink-soft); line-height:1.8; }
.faq-grid { display:grid; grid-template-columns:37% 1fr; gap:8%; }
.faq-grid h2 { font-weight:500; }
.faq-grid p { color:var(--ink-soft); }
.faq-list { border-top:1px solid #d6cfc5; }
.faq-list details { border-bottom:1px solid #d6cfc5; }
.faq-list summary { display:block; cursor:pointer; position:relative; padding:24px 0 24px 34px; font-weight:700; font-size:19px; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary::after { content:'+'; position:absolute; inset-inline-end:0; top:19px; font-size:30px; line-height:1; font-weight:400; }
.faq-list details[open] summary::after { content:'−'; }
.faq-list details p { margin-bottom:25px; line-height:1.8; }
.location { background:var(--surface); padding-block:75px; }
.location-grid { display:grid; grid-template-columns:1fr 1fr; gap:8%; align-items:center; }
.location-grid h2 { font-weight:500; }
.location-grid p { font-size:19px; }
.location-links { display:flex; align-items:center; flex-wrap:wrap; gap:24px; margin-top:32px; }
.location iframe { width:100%; height:390px; border:0; filter:grayscale(.55); }
.closing { background:var(--dark); color:var(--bg); padding:clamp(70px,10vw,140px) 0; }
.closing .eyebrow { color:#d6bc95; }
.closing h2 { font-size:clamp(44px,5.6vw,84px); font-weight:500; max-width:16ch; }
.closing p { font-size:21px; color:#e9e5de; margin:30px 0; }
.closing .container > div:last-child { display:flex; gap:28px; align-items:center; flex-wrap:wrap; }
.closing-phone { color:var(--bg); min-height:44px; display:inline-flex; align-items:center; gap:8px; }
.intro { padding:clamp(70px,9vw,130px) 0; background:var(--surface); }
.intro h1 { max-width:17ch; font-weight:500; }
.intro p { max-width:650px; font-size:21px; color:var(--ink-soft); line-height:1.75; }
.intro .btn { margin-top:20px; }
.crumb { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:35px; font-size:14px; color:var(--ink-soft); }
.crumb a { text-decoration:none; }
.article-grid { display:grid; grid-template-columns:minmax(0,1fr) 38%; gap:9%; align-items:start; }
.article-main h2 { font-size:36px; font-weight:500; margin:45px 0 18px; }
.article-main h2:first-of-type { margin-top:0; }
.article-main p,.article-main li { font-size:19px; line-height:1.85; }
.article-main ol { padding-right:26px; }
.article-note { border-right:3px solid var(--gold); background:var(--surface); padding:20px; font-size:15px; margin-top:35px; }
.article-side { position:sticky; top:115px; }
.article-image { aspect-ratio:4/5; overflow:hidden; }
.article-image img { width:100%; height:100%; object-fit:cover; }
.aside-contact { background:var(--surface); padding:30px; }
.aside-contact h3 { font-size:28px; font-weight:500; }
.aside-contact p { font-size:16px; }
.aside-contact a:last-child { display:block; margin-top:16px; }
.related { background:var(--surface); }
.related h2 { font-weight:500; }
.related-links { display:flex; flex-wrap:wrap; gap:28px; }
.about-grid .split { gap:10%; }
.about-grid h2 { font-weight:500; }
.about-grid p { font-size:19px; line-height:1.85; }
.about-photo { height:680px; overflow:hidden; }
.about-photo img { height:100%; width:100%; object-fit:cover; }
.about-focus { background:var(--surface); }
.about-focus h2 { font-weight:500; }
.about-focus-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:35px; margin-top:40px; }
.about-focus-grid div { border-top:1px solid #cfc7bc; padding-top:25px; }
.about-focus-grid h3 { font-weight:500; }
.contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:10%; }
.contact-grid h2 { font-weight:500; }
.contact-list { border-top:1px solid #d6cfc5; margin:30px 0; }
.contact-list a { display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; border-bottom:1px solid #d6cfc5; padding:17px 0; text-decoration:none; }
.contact-list b { font-weight:700; }
#lead-form { background:var(--surface); padding:clamp(25px,4vw,46px); }
#lead-form .btn { width:100%; }
.form-privacy { font-size:14px; color:var(--ink-soft); line-height:1.6; margin-top:18px; }
#form-status { min-height:22px; margin-top:12px; font-size:15px; }
.contact-map iframe { display:block; border:0; width:100%; height:430px; filter:grayscale(.55); }
.legal-page .container { max-width:880px; }
.legal-page h2 { font-size:31px; margin-top:45px; }
.legal-page p { line-height:1.9; }
footer { background:#e9e4db; padding:65px 0 20px; }
.footer-grid { display:grid; grid-template-columns:2fr 1fr 1.4fr; gap:8%; }
.footer-logo { width:215px; height:auto; margin-bottom:20px; }
.footer-grid h2 { font:700 16px var(--font-body); margin:0 0 20px; }
.footer-grid a { display:flex; align-items:center; min-height:44px; margin-bottom:0; text-decoration:none; }
.footer-grid a:hover { text-decoration:underline; }
.footer-grid p { font-size:16px; color:var(--ink-soft); max-width:32ch; }
.footer-bottom { border-top:1px solid #cfc7bc; display:flex; justify-content:space-between; flex-wrap:wrap; gap:15px; margin-top:50px; padding-top:20px; font-size:13px; color:var(--ink-soft); }
.demo-note { border:1px solid #a89b88; padding:1px 9px; }
.sticky-bar { background:var(--dark); }
.sticky-bar a + a { border-inline-start:1px solid #6e6a63; }
@media (max-width:1200px) { .site-nav { gap:14px; } .site-header__logo { width:175px; flex-basis:175px; } .header-cta { display:none; } }
@media (max-width:899px) {
 .site-nav { display:none; }
 .nav-toggle { display:inline-flex; flex:0 0 48px; }
 .site-header__inner { min-height:68px; }
 .site-header__logo { width:175px; flex-basis:175px; }
 .hero { grid-template-columns:1fr; min-height:0; }
 .hero-copy { padding:48px var(--gutter) 35px; justify-content:flex-start; }
 .hero h1 { font-size:clamp(45px,8vw,68px); }
 .hero p { font-size:18px; }
 .hero-scroll { display:none; }
 .hero-media { min-height:0; height:390px; }
 .hero-media img { max-height:none; object-position:center 57%; }
 .opening-grid,.proof-grid,.faq-grid,.location-grid,.article-grid,.contact-grid { grid-template-columns:1fr; gap:38px; }
 .opening-copy { padding-top:0; }
 .feature-split { grid-template-columns:1fr; }
 .feature-split__image { min-height:0; height:420px; }
 .feature-split__copy { padding:50px var(--gutter); }
 .why-grid,.process ol,.about-focus-grid { grid-template-columns:1fr; gap:25px; }
 .quote-stack { padding-right:22px; }
 .article-side { position:static; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); min-width:0; }
 .article-image { aspect-ratio:1; }
 .about-photo { height:460px; }
 .footer-grid { grid-template-columns:1fr 1fr; gap:35px; }
}
@media (max-width:600px) {
 .section { padding-block:60px; }
 .hero h1 { font-size:clamp(40px,10vw,52px); }
 .hero-copy { padding-top:36px; }
 .hero-media { height:125vw; }
 .hero-actions { gap:18px; }
 .hero-actions .btn { flex:0 0 auto; }
 .opening-copy p,.proof-grid p,.article-main p,.article-main li { font-size:17px; }
 .section-intro { margin-bottom:35px; }
 .service-row { grid-template-columns:1fr 28px; gap:6px 12px; min-height:0; padding:23px 0; }
 .service-row__name { grid-column:1; }
 .service-row__lead { grid-column:1; font-size:15px; }
 .service-row__arrow { grid-column:2; grid-row:1 / 3; align-self:center; }
 .feature-split__image { height:320px; }
 .feature-split__copy h2 { font-size:39px; }
 .intro { padding:60px 0; }
 .intro h1 { font-size:44px; }
 .intro p { font-size:18px; }
 .article-side { grid-template-columns:minmax(0,1fr); width:100%; }
 .article-image { height:340px; min-width:0; width:100%; }
 .article-main h2 { font-size:31px; }
 .footer-grid { grid-template-columns:1fr; }
 .contact-map iframe { height:320px; }
 .closing h2 { font-size:45px; }
 .footer-bottom { margin-top:25px; }
}
@media (prefers-reduced-motion:reduce) { .m-reveal,.m-stagger>* { opacity:1!important; transform:none!important; } }

.hub-image {height:340px;overflow:hidden}.hub-image img {width:100%;height:100%;object-fit:cover;object-position:center 55%}.contact-photo {height:300px;overflow:hidden;margin-top:36px}.contact-photo img {width:100%;height:100%;object-fit:cover}
@media(max-width:600px){.hub-image{height:230px}.contact-photo{height:250px}}
.hero-rating {display:inline-flex;align-items:center;gap:8px;min-height:44px;margin-top:6px;font-size:14px;text-decoration:none;color:var(--ink-soft)}
.hero-rating span {letter-spacing:2px;color:#a58451;font-size:17px}

#lead-form .wa-form-btn {width:100%;margin-top:12px;border-color:#8b7d69;background:transparent;color:var(--ink)}
#lead-form .wa-form-btn:hover {background:#e7e0d6}
