
:root{
  --navy:#22262c; --navy-deep:#181b20; --cream:#f5ecdd; --cream-soft:#faf5ea;
  --gold:#a8863d; --ink:#3d434b; --gray:#5e646c; --white:#fff;
  --side:232px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Nunito Sans',sans-serif;color:var(--ink);background:#fff;line-height:1.8;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:var(--gold)}
h1,h2,h3{font-family:'Oswald',sans-serif;color:var(--navy);line-height:1.08;font-weight:600}

/* ── fixed left sidebar ── */
.side{position:fixed;top:0;left:0;bottom:0;width:var(--side);background:var(--navy);z-index:300;display:flex;flex-direction:column;align-items:stretch;justify-content:space-between;gap:20px;padding:26px 0 20px}
.side .logo{display:flex;flex-direction:column;align-items:center;gap:12px;text-decoration:none;padding:0 14px}
.side-brand{font-family:'Oswald',sans-serif;font-size:19px;font-weight:600;color:#fff;text-align:center;line-height:1.2;text-transform:uppercase;letter-spacing:.06em}
.side-brand small{display:block;font-family:'Nunito Sans',sans-serif;font-size:8.5px;font-weight:800;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);margin-top:6px}
.side .logo img{width:56px;height:56px;object-fit:contain;filter:brightness(0) invert(1)}
.side .burger{background:none;border:none;cursor:pointer;display:none;flex-direction:column;gap:9px;padding:10px}
.side .burger span{display:block;width:34px;height:3px;background:#fff;transition:.2s}
.side .quick{display:flex;flex-direction:row;justify-content:center;gap:30px;border-top:1px solid rgba(255,255,255,.15);padding-top:16px;width:100%;align-items:center}
.side .quick a{color:#fff;text-decoration:none;font-size:20px}

.side-nav{display:flex;flex-direction:column;padding:0 20px;overflow-y:auto}
.side-nav a{font-family:'Oswald',sans-serif;font-size:13.5px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:#fff;text-decoration:none;padding:13px 8px;border-bottom:1px solid rgba(255,255,255,.08)}
.side-nav a:hover{color:var(--gold)}
.side-nav .side-cta{background:var(--gold);color:#fff;text-align:center;margin-top:18px;border-bottom:none;padding:14px 8px}
.side-nav .side-cta:hover{background:#fff;color:var(--navy)}

/* overlay menu */
.menu{position:fixed;inset:0;background:rgba(24,27,32,.98);z-index:400;display:none;align-items:center;justify-content:center}
.menu.open{display:flex}
.menu nav{display:grid;gap:10px;text-align:center}
.menu a{font-family:'Oswald',sans-serif;font-size:clamp(26px,4vw,40px);font-weight:500;color:#fff;text-decoration:none;text-transform:uppercase;letter-spacing:.04em}
.menu a:hover{color:var(--gold)}
.menu .close{position:absolute;top:26px;right:34px;background:none;border:none;color:#fff;font-size:38px;cursor:pointer;line-height:1}
.menu .sub{font-family:'Nunito Sans',sans-serif;font-size:14px;letter-spacing:.22em;color:var(--gold);text-transform:uppercase;font-weight:800;margin-bottom:8px}

.page{margin-left:var(--side)}

/* ── hero ── */
.hero{position:relative;min-height:62vh;display:flex;align-items:center;overflow:hidden}
.hero img.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(250,247,240,.94) 0%,rgba(250,247,240,.72) 45%,rgba(250,247,240,.25) 100%)}
.hero .inner{position:relative;z-index:2;padding:120px 6vw;max-width:1100px}
.hero .crumb{font-size:14px;font-weight:800;letter-spacing:.28em;text-transform:uppercase;color:var(--navy);margin-bottom:14px}
.hero .crumb a{color:var(--navy);text-decoration:none}
.hero h1{font-size:clamp(44px,6.2vw,86px);text-transform:uppercase;letter-spacing:.01em}
.hero p.lead{max-width:560px;margin-top:18px;font-size:17px;color:var(--ink)}

/* ── bands ── */
.band{padding:110px 6vw}
.band .wrap{max-width:1240px;margin:0 auto}
.band.cream{background:var(--cream)}
.band.navy{background:var(--navy)}
.band.navy h2,.band.navy h3{color:#fff}
.band.navy p,.band.navy li{color:#c9cdd3}
.band.navy .caps-sub{color:var(--gold)}
.band.navy a{color:var(--gold)}

/* two-column */
.cols{display:grid;grid-template-columns:1fr 1fr;gap:7vw;align-items:center}
.cols .media img{width:100%;box-shadow:0 24px 60px rgba(24,27,32,.14)}
.cols.flip .media{order:-1}

/* type inside bands */
h2{font-size:clamp(36px,4.4vw,58px);margin-bottom:6px}
.caps-sub{display:block;font-family:'Nunito Sans',sans-serif;font-size:16px;font-weight:800;letter-spacing:.22em;text-transform:uppercase;color:var(--navy);margin:2px 0 26px}
p{margin-bottom:18px;font-size:16.5px}
ul{list-style:none;display:grid;gap:13px;margin:6px 0 22px}
ul li{padding-left:26px;position:relative;font-size:16.5px}
ul li::before{content:"";position:absolute;left:0;top:.62em;width:12px;height:3px;background:var(--gold)}

/* buttons */
.btn{display:inline-block;font-family:'Oswald',sans-serif;font-weight:500;font-size:16px;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;padding:20px 42px;transition:.22s;cursor:pointer;border:none}
.btn-primary{background:var(--navy);color:#fff}
.btn-primary:hover{background:var(--gold)}
.band.navy .btn-primary{background:#fff;color:var(--navy)}
.band.navy .btn-primary:hover{background:var(--gold);color:#fff}
.cta-inline{margin-top:10px}

/* steps (process) */
.steps{display:grid;grid-template-columns:1fr 1fr;gap:56px 64px;margin-top:44px}
.step{background:transparent;border-left:3px solid var(--navy);padding:4px 0 4px 26px}
.step .num{font-family:'Oswald',sans-serif;font-size:44px;font-weight:600;color:var(--gold);line-height:1;margin-bottom:12px}
.step h3{font-family:'Nunito Sans',sans-serif;font-size:17px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;margin-bottom:10px}
.step p{margin:0;font-size:15.5px;color:var(--gray)}
.band.navy .step{border-left-color:var(--gold)}
.band.navy .step h3{color:#fff}
.band.navy .step p{color:#c9cdd3}

/* callout + figure caption */
.callout{background:var(--cream);padding:30px 34px;margin:30px 0;border-left:3px solid var(--gold)}
.band.cream .callout{background:#fff}
.callout strong{color:var(--navy)}
.figure figcaption{font-size:13.5px;color:var(--gray);margin-top:12px;letter-spacing:.06em}

/* FAQ */
details{border-bottom:1px solid rgba(34,38,44,.15)}
details:first-of-type{border-top:1px solid rgba(34,38,44,.15)}
summary{padding:26px 8px;cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;font-family:'Nunito Sans',sans-serif;font-weight:800;font-size:16px;letter-spacing:.1em;text-transform:uppercase;color:var(--navy)}
summary::-webkit-details-marker{display:none}
summary::after{content:"↓";font-size:18px;color:var(--gold);transition:.2s}
details[open] summary::after{transform:rotate(180deg)}
details > div{padding:0 8px 26px;color:var(--gray);font-size:15.5px}

/* end CTA */
.endcta{text-align:center;padding:130px 6vw;background:var(--cream-soft)}
.endcta h2{font-size:clamp(40px,5vw,64px);text-transform:uppercase}
.endcta .caps-sub{margin-bottom:34px}
.endcta .actions{display:flex;gap:18px;justify-content:center;flex-wrap:wrap}
.btn-outline{border:2px solid var(--navy);color:var(--navy);background:transparent;padding:18px 40px}
.btn-outline:hover{background:var(--navy);color:#fff}

/* footer */
footer{background:var(--navy-deep);color:#9fa6ad;padding:80px 6vw 40px}
footer .wrap{max-width:1240px;margin:0 auto;display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:48px}
footer img.flogo{width:220px;margin-bottom:18px}
footer h4{font-family:'Nunito Sans',sans-serif;color:#fff;font-size:14px;letter-spacing:.22em;text-transform:uppercase;margin-bottom:16px}
footer a{color:#d3d7db;text-decoration:none}
footer a:hover{color:var(--gold)}
footer .base{max-width:1240px;margin:56px auto 0;border-top:1px solid rgba(255,255,255,.12);padding-top:24px;font-size:13px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}
.hours-line{display:flex;justify-content:space-between;border-bottom:1px dashed rgba(255,255,255,.15);padding:5px 0;font-size:14.5px}

/* mobile call bar */
.mobile-call{display:none;position:fixed;bottom:0;left:0;right:0;z-index:350;background:var(--navy);padding:12px 16px;gap:12px;box-shadow:0 -4px 20px rgba(0,0,0,.2)}
.mobile-call a{flex:1;text-align:center;padding:13px;font-family:'Oswald',sans-serif;letter-spacing:.1em;text-transform:uppercase;font-size:14px;text-decoration:none;font-weight:500}
.mobile-call .call{background:#fff;color:var(--navy)}
.mobile-call .book{background:var(--gold);color:#fff}

@media(max-width:920px){
  :root{--side:0px}
  .side{flex-direction:row;top:0;bottom:auto;left:0;right:0;width:auto;height:64px;padding:0 18px;justify-content:space-between}
  .side .logo img{width:40px;height:40px}
  .side .logo{flex-direction:row;padding:0}
  .side-brand{font-size:15px}
  .side-brand small{display:none}
  .side .quick{flex-direction:row;border-top:none;padding-top:0;width:auto;gap:22px}
  .side-nav{display:none}
  .side .burger{display:flex}
  .side{flex-direction:row;gap:0;padding:0 18px;align-items:center}
  .side .burger span{width:28px}
  .page{margin-left:0;margin-top:64px}
  .hero{min-height:52vh}
  .hero .inner{padding:80px 24px}
  .band{padding:72px 24px}
  .cols{grid-template-columns:1fr;gap:36px}
  .cols.flip .media{order:0}
  .steps{grid-template-columns:1fr;gap:36px}
  footer .wrap{grid-template-columns:1fr;gap:36px}
  .mobile-call{display:flex}
  body{padding-bottom:66px}
  .endcta{padding:84px 24px}
}

.follow{display:flex;align-items:center;gap:16px;margin-top:20px;flex-wrap:wrap}
.follow .flabel{font-size:14.5px}
.follow a{color:#fff;display:flex;align-items:center;text-decoration:none}
.follow a:hover{color:var(--gold)}
.review-link{display:inline-block;margin-top:12px;font-size:14px;color:var(--gold) !important;text-decoration:none;font-weight:600;letter-spacing:.04em}
.review-link:hover{text-decoration:underline}

.sn-group{background:none;border:none;width:100%;text-align:left;cursor:pointer;font-family:'Oswald',sans-serif;font-size:13.5px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:#fff;padding:13px 8px;border-bottom:1px solid rgba(255,255,255,.08);display:flex;justify-content:space-between;align-items:center}
.sn-group::after{content:"▾";color:var(--gold);font-size:12px;transition:.2s}
.sn-group.open::after{transform:rotate(180deg)}
.sn-group:hover{color:var(--gold)}
.sn-sub{display:none;padding:4px 0 8px 12px;border-bottom:1px solid rgba(255,255,255,.08)}
.sn-sub.open{display:block}
.sn-sub a{font-family:'Nunito Sans',sans-serif !important;font-size:13px !important;font-weight:600 !important;letter-spacing:.02em !important;text-transform:none !important;color:#c8cdd4 !important;padding:8px 6px !important;border-bottom:none !important;display:block}
.sn-sub a:hover{color:var(--gold) !important}

.byline{font-family:'Nunito Sans',sans-serif;font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);margin-bottom:26px}
.article p{font-size:17px;line-height:1.85}
.article h2{font-size:clamp(24px,2.8vw,32px);margin-top:44px}
.article .tip{background:var(--cream);border-left:3px solid var(--gold);padding:22px 26px;margin:28px 0;font-size:15.5px}
