

:root { 
  --brick-hb:#B5391F;
  --brick-dark-hb:#8A2A13;
  --ember-hb:#F2913F;
  --ember-glow-hb:#FFBE76;
  --coast-hb:#2F6472;
  --charcoal-hb:#16110E;
  --charcoal-2-hb:#211A14;
  --charcoal-3-hb:#2F261E;
  --cream-hb:#F2ECE0;
  --cream-2-hb:#E9DECB;
  --ink-hb:#181310;
  --muted-hb:#6E635B;
  --line-hb:rgba(25,21,19,.12);
  --gold-hb:#EFC14E;
  --green-ok-hb:#2E7D51;
  --radius-hb:16px;
  --radius-lg-hb:26px;
  --shadow-sm-hb:0 4px 14px rgba(25,21,19,.08);
  --shadow-hb:0 14px 40px rgba(25,21,19,.14);
  --shadow-lg-hb:0 30px 70px rgba(25,21,19,.26);
  --wrap-hb:1200px;
  --font-hb:'Barlow',system-ui,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  --display-hb:'Oswald','Barlow Condensed',var(--font-hb);
  --header-h-hb:76px;
 }
*,*::before,*::after { box-sizing:border-box }
html { scroll-behavior:smooth; scroll-padding-top:90px; -webkit-text-size-adjust:100% }
body { 
  margin:0; font-family:var(--font-hb); color:var(--ink-hb); background:var(--cream-hb);
  font-size:17px; line-height:1.65; overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
 }
img { max-width:100%; height:auto; display:block }
a { color:var(--brick-hb); text-decoration:none }
a:hover { color:var(--brick-dark-hb) }
button { font-family:inherit }
h1,h2,h3,h4 { font-family:var(--display-hb); font-weight:700; line-height:1.08; margin:0 0 .5em; letter-spacing:.4px; text-transform:uppercase }
h1 { font-size:clamp(2.15rem,5.4vw,4.15rem) }
h2 { font-size:clamp(1.85rem,3.9vw,3rem) }
h3 { font-size:clamp(1.15rem,1.7vw,1.45rem) }
p { margin:0 0 1.1em }
.lane { width:min(var(--wrap-hb),92%); margin-inline:auto }
.center-hb { text-align:center }
.sr-only-hb { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0 }
.skip-link-hb { position:absolute; left:-9999px; top:0; background:var(--brick-hb); color:#fff; padding:12px 20px; z-index:9999 }
.skip-link-hb:focus { left:10px; top:10px }
:focus-visible { outline:3px solid var(--ember-hb); outline-offset:3px }
#bg-fx-hb { position:fixed; inset:0; z-index:0; pointer-events:none; overflow:hidden }
#emberCanvas-hb { position:absolute; inset:0; width:100%; height:100%; opacity:.55 }
.orb-hb { position:absolute; border-radius:50%; filter:blur(70px); opacity:.34; will-change:transform }
.orb-1-hb { width:520px; height:520px; background:radial-gradient(circle at 30% 30%,var(--ember-hb),transparent 68%); top:-140px; left:-120px; animation:float1 26s ease-in-out infinite }
.orb-2-hb { width:640px; height:640px; background:radial-gradient(circle at 60% 40%,var(--brick-hb),transparent 66%); top:38%; right:-220px; animation:float2 32s ease-in-out infinite }
.orb-3-hb { width:420px; height:420px; background:radial-gradient(circle at 50% 50%,var(--gold-hb),transparent 65%); bottom:-120px; left:22%; animation:float3 29s ease-in-out infinite }
@keyframes float1 { 0%,100% { transform:translate3d(0,0,0) scale(1) }
50% { transform:translate3d(90px,120px,0) scale(1.16) }
 }
@keyframes float2 { 0%,100% { transform:translate3d(0,0,0) scale(1.05) }
50% { transform:translate3d(-120px,-90px,0) scale(.9) }
 }
@keyframes float3 { 0%,100% { transform:translate3d(0,0,0) scale(.95) }
50% { transform:translate3d(70px,-110px,0) scale(1.2) }
 }
main,header,footer,.strip-bar { position:relative; z-index:1 }
.go { 
  --bg-hb:var(--brick-hb); --fg-hb:#fff;
  display:inline-flex; align-items:center; justify-content:center; gap:.6rem;
  background:var(--bg-hb); color:var(--fg-hb); font-weight:700; font-size:1.02rem;
  padding:16px 30px; border-radius:60px; border:0; cursor:pointer; letter-spacing:.3px;
  box-shadow:0 10px 26px rgba(178,58,33,.32); transition:transform .22s cubic-bezier(.2,.8,.3,1),box-shadow .22s,background .22s;
  position:relative; overflow:hidden; text-align:center;
 }
.go:hover { transform:translateY(-3px); box-shadow:0 18px 40px rgba(178,58,33,.42); color:#fff }
.go:active { transform:translateY(-1px) }
.go::after { content:""; position:absolute; top:0; left:-60%; width:40%; height:100%; background:linear-gradient(100deg,transparent,rgba(255,255,255,.42),transparent); transform:skewX(-18deg); animation:sheen 4.5s ease-in-out infinite }
@keyframes sheen { 0%,72% { left:-60% }
88%,100% { left:135% }
 }
.btn-ember-hb { --bg-hb:linear-gradient(135deg,var(--ember-hb),var(--brick-hb)); box-shadow:0 10px 26px rgba(240,128,60,.4) }
.btn-ghost-hb { --bg-hb:transparent; --fg-hb:#fff; border:2px solid rgba(255,255,255,.6); box-shadow:none }
.btn-ghost-hb:hover { background:rgba(255,255,255,.12); box-shadow:none }
.btn-dark-hb { --bg-hb:var(--charcoal-hb); box-shadow:0 10px 26px rgba(25,21,19,.3) }
.btn-lg-hb { padding:19px 38px; font-size:1.12rem }
.btn-block-hb { display:flex; width:100% }
.strip-bar { background:var(--charcoal-hb); color:#DCCFC2; font-size:.86rem; letter-spacing:.3px }
.strip-bar .lane { display:flex; flex-wrap:wrap; gap:8px 26px; align-items:center; justify-content:space-between; padding:9px 0 }
.strip-bar b { color:#fff }
.strip-bar .tb-item-hb { display:inline-flex; align-items:center; gap:7px }
.dot-live-hb { width:8px; height:8px; border-radius:50%; background:#49C77E; box-shadow:0 0 0 0 rgba(73,199,126,.7); animation:pulseDot 2s infinite }
@keyframes pulseDot { 70% { box-shadow:0 0 0 9px rgba(73,199,126,0) }
100% { box-shadow:0 0 0 0 rgba(73,199,126,0) }
 }
.cap-bar { position:sticky; top:0; z-index:900; background:rgba(246,240,231,.86); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); border-bottom:1px solid var(--line-hb); transition:box-shadow .3s,background .3s }
.cap-bar.scrolled-hb { box-shadow:0 8px 30px rgba(25,21,19,.13); background:rgba(246,240,231,.96) }
.cap-bar .lane { width:min(1360px,94%) }
.nav-hb { display:flex; align-items:center; justify-content:space-between; gap:18px; min-height:var(--header-h-hb) }
.emblem { display:flex; align-items:center; gap:12px; color:var(--ink-hb); flex:0 0 auto }
.emblem:hover { color:var(--ink-hb) }
.brand-mark-hb { width:46px; height:46px; flex:0 0 auto; filter:drop-shadow(0 4px 8px rgba(178,58,33,.3)) }
.brand-txt-hb { display:flex; flex-direction:column; line-height:1.05 }
.brand-txt-hb strong { font-family:var(--display-hb); font-size:1.06rem; letter-spacing:.6px; text-transform:uppercase }
.brand-txt-hb span { font-size:.7rem; letter-spacing:2.4px; text-transform:uppercase; color:var(--brick-hb); font-weight:600 }
.topnav { display:flex; align-items:center; gap:22px; list-style:none; margin:0; padding:0 }
.topnav a { color:var(--ink-hb); font-weight:600; font-size:.92rem; white-space:nowrap; position:relative; padding:6px 0 }
.topnav a::after { content:""; position:absolute; left:0; bottom:0; height:2px; width:0; background:var(--brick-hb); transition:width .28s }
.topnav a:hover::after,.topnav a.active-hb::after { width:100% }
.nav-cta-hb { display:flex; align-items:center; gap:14px; flex:0 0 auto }
.nav-phone-hb { display:flex; flex-direction:column; line-height:1.1; text-align:right }
.nav-phone-hb small { font-size:.68rem; text-transform:uppercase; letter-spacing:1.4px; color:var(--muted-hb) }
.nav-phone-hb b { font-family:var(--display-hb); font-size:1.22rem; color:var(--brick-hb) }
.burger-hb { display:none; width:48px; height:44px; border:1px solid var(--line-hb); background:#fff; border-radius:12px; cursor:pointer; padding:0; position:relative }
.burger-hb span { position:absolute; left:13px; width:22px; height:2px; background:var(--ink-hb); transition:.3s }
.burger-hb span:nth-child(1) { top:15px }
.burger-hb span:nth-child(2) { top:21px }
.burger-hb span:nth-child(3) { top:27px }
.burger-hb[aria-expanded="true"] span:nth-child(1) { top:21px; transform:rotate(45deg) }
.burger-hb[aria-expanded="true"] span:nth-child(2) { opacity:0 }
.burger-hb[aria-expanded="true"] span:nth-child(3) { top:21px; transform:rotate(-45deg) }
.front { position:relative; color:#fff; padding:clamp(56px,8vw,104px) 0 clamp(70px,9vw,120px); overflow:hidden; isolation:isolate }
.front-bg { position:absolute; inset:0; z-index:-2 }
.front-bg img { width:100%; height:100%; object-fit:cover; transform:scale(1.06); animation:kenburns 24s ease-in-out infinite alternate }
@keyframes kenburns { to { transform:scale(1.17) translate3d(-1.5%,-1.5%,0) }
 }
.front::before { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(100deg,rgba(18,14,12,.95) 0%,rgba(26,18,14,.86) 38%,rgba(181,57,31,.6) 74%,rgba(242,145,63,.42) 100%) }
.front-grid { display:grid; grid-template-columns:1.15fr .85fr; gap:52px; align-items:center }
.eyebrow-hb { display:inline-flex; align-items:center; gap:9px; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.26); color:#fff; padding:8px 17px; border-radius:60px; font-size:.79rem; font-weight:700; letter-spacing:1.6px; text-transform:uppercase; margin-bottom:22px; backdrop-filter:blur(6px) }
.front h1 { color:#fff; text-shadow:0 6px 30px rgba(0,0,0,.4) }
.front h1 .hlhb { color:var(--ember-glow-hb); display:inline-block }
.front-sub { font-size:clamp(1.02rem,1.5vw,1.2rem); color:#EADFD4; max-width:610px }
.front-actions { display:flex; flex-wrap:wrap; gap:14px; margin:30px 0 26px }
.front-trust { display:flex; flex-wrap:wrap; gap:10px 22px; list-style:none; padding:0; margin:0; font-size:.92rem; color:#E6DAD0 }
.front-trust li { display:flex; align-items:center; gap:8px }
.tick-hb { width:20px; height:20px; flex:0 0 auto; border-radius:50%; background:rgba(73,199,126,.2); display:grid; place-items:center }
.tick-hb svg { width:12px; height:12px; stroke:#6BE39C; fill:none; stroke-width:3 }
.vow-card { 
  background:linear-gradient(160deg,rgba(255,255,255,.98),rgba(246,240,231,.94));
  color:var(--ink-hb); border-radius:var(--radius-lg-hb); padding:30px 28px; box-shadow:var(--shadow-lg-hb);
  border:1px solid rgba(255,255,255,.6); position:relative; animation:floaty 6.5s ease-in-out infinite;
 }
@keyframes floaty { 0%,100% { transform:translateY(0) }
50% { transform:translateY(-13px) }
 }
.offer-badge-hb { position:absolute; top:-18px; right:-10px; background:var(--brick-hb); color:#fff; font-family:var(--display-hb); font-size:.82rem; letter-spacing:1.4px; padding:9px 16px; border-radius:40px; box-shadow:0 8px 20px rgba(178,58,33,.4); text-transform:uppercase; animation:wobble 5s ease-in-out infinite }
@keyframes wobble { 0%,100% { transform:rotate(-3deg) }
50% { transform:rotate(3deg) }
 }
.offer-price-hb { font-family:var(--display-hb); font-size:clamp(3.4rem,7vw,4.6rem); line-height:1; color:var(--brick-hb); display:flex; align-items:flex-start; gap:4px; justify-content:center; margin:6px 0 2px }
.offer-price-hb sup { font-size:.42em; margin-top:.32em }
.vow-card h2 { font-size:1.32rem; margin-bottom:4px; text-align:center }
.vow-card .offer-kicker-hb { text-align:center; color:var(--muted-hb); font-size:.9rem; margin-bottom:16px }
.offer-list-hb { list-style:none; margin:0 0 20px; padding:0; display:grid; gap:9px; font-size:.95rem }
.offer-list-hb li { display:flex; gap:10px; align-items:flex-start }
.offer-list-hb svg { width:18px; height:18px; flex:0 0 auto; margin-top:3px; stroke:var(--brick-hb); fill:none; stroke-width:3 }
.offer-fine-hb { font-size:.76rem; color:var(--muted-hb); text-align:center; margin:12px 0 0; line-height:1.5 }
.loop { background:var(--charcoal-2-hb); color:#CBBDB0; overflow:hidden; padding:13px 0; border-block:1px solid rgba(255,255,255,.07) }
.marquee-track-hb { display:flex; gap:52px; white-space:nowrap; width:max-content; animation:scrollX 34s linear infinite; font-family:var(--display-hb); letter-spacing:2px; font-size:.94rem; text-transform:uppercase }
.marquee-track-hb span { display:inline-flex; align-items:center; gap:12px }
.marquee-track-hb b { color:var(--ember-hb) }
@keyframes scrollX { to { transform:translateX(-50%) }
 }
section { padding:clamp(56px,7vw,100px) 0; position:relative }
.lede-head { max-width:760px; margin:0 auto 52px }
.lede-head.left-hb { margin-inline:0 }
.slug { display:inline-flex; align-items:center; gap:9px; color:var(--brick-hb); font-weight:800; letter-spacing:2.4px; text-transform:uppercase; font-size:.78rem; margin-bottom:14px }
.slug::before { content:""; width:28px; height:2px; background:var(--brick-hb) }
.subline { font-size:1.06rem; color:var(--muted-hb) }
.bg-cream2-hb { background:linear-gradient(180deg,rgba(237,227,213,.75),rgba(246,240,231,.4)) }
.bg-dark-hb { background:var(--charcoal-hb); color:#DDD1C6 }
.bg-dark-hb h2,.bg-dark-hb h3 { color:#fff }
.bg-dark-hb .subline { color:#B7A99C }
.bg-dark-hb .slug { color:var(--ember-glow-hb) }
.bg-dark-hb .slug::before { background:var(--ember-hb) }
.chip-row { display:grid; grid-template-columns:repeat(4,1fr); gap:22px }
.chip { background:#fff; border-radius:var(--radius-hb); padding:26px 20px; text-align:center; box-shadow:var(--shadow-sm-hb); border:1px solid var(--line-hb); transition:transform .3s,box-shadow .3s }
.chip:hover { transform:translateY(-7px); box-shadow:var(--shadow-hb) }
.chip b { display:block; font-family:var(--display-hb); font-size:clamp(2rem,3.6vw,2.9rem); color:var(--brick-hb); line-height:1 }
.chip span { font-size:.87rem; color:var(--muted-hb); letter-spacing:.6px }
.svc-grid-hb { display:grid; grid-template-columns:repeat(auto-fit,minmax(295px,1fr)); gap:26px }
.duty { background:#fff; border-radius:var(--radius-lg-hb); overflow:hidden; box-shadow:var(--shadow-sm-hb); border:1px solid var(--line-hb); display:flex; flex-direction:column; transition:transform .35s cubic-bezier(.2,.8,.3,1),box-shadow .35s }
.duty:hover { transform:translateY(-10px); box-shadow:var(--shadow-lg-hb) }
.svc-media-hb { position:relative; aspect-ratio:16/10; overflow:hidden; background:var(--charcoal-3-hb) }
.svc-media-hb img { width:100%; height:100%; object-fit:cover; transition:transform .7s cubic-bezier(.2,.8,.3,1) }
.duty:hover .svc-media-hb img { transform:scale(1.09) }
.svc-media-hb::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 42%,rgba(20,16,14,.72)) }
.svc-ico-hb { position:absolute; left:18px; bottom:16px; z-index:2; width:46px; height:46px; border-radius:13px; background:var(--brick-hb); display:grid; place-items:center; box-shadow:0 8px 20px rgba(178,58,33,.45) }
.svc-ico-hb svg { width:24px; height:24px; stroke:#fff; fill:none; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round }
.svc-body-hb { padding:24px 24px 26px; display:flex; flex-direction:column; flex:1 }
.svc-body-hb h3 { margin-bottom:8px }
.svc-body-hb p { font-size:.95rem; color:var(--muted-hb); margin-bottom:16px }
.svc-body-hb ul { list-style:none; margin:0 0 18px; padding:0; font-size:.9rem; display:grid; gap:6px }
.svc-body-hb li { display:flex; gap:9px; align-items:flex-start; color:#4A423C }
.svc-body-hb li::before { content:""; width:7px; height:7px; border-radius:50%; background:var(--ember-hb); flex:0 0 auto; margin-top:8px }
.svc-link-hb { margin-top:auto; font-weight:700; display:inline-flex; align-items:center; gap:8px; font-size:.95rem }
.svc-link-hb svg { width:16px; height:16px; stroke:currentColor; fill:none; stroke-width:2.4; transition:transform .3s }
.duty:hover .svc-link-hb svg { transform:translateX(5px) }
.tell-grid { display:grid; grid-template-columns:1fr 1fr; gap:52px; align-items:center }
.tell-list { display:grid; gap:14px; margin:0; padding:0; list-style:none }
.tell-list li { display:flex; gap:15px; background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.1); border-radius:14px; padding:16px 18px; align-items:flex-start; transition:transform .3s,border-color .3s,background .3s }
.tell-list li:hover { transform:translateX(7px); border-color:rgba(240,128,60,.55); background:rgba(240,128,60,.08) }
.tell-list .wihb { width:38px; height:38px; flex:0 0 auto; border-radius:11px; background:rgba(240,128,60,.16); display:grid; place-items:center }
.tell-list .wihb svg { width:20px; height:20px; stroke:var(--ember-glow-hb); fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round }
.tell-list b { display:block; color:#fff; font-family:var(--display-hb); letter-spacing:.5px; font-size:1.02rem; text-transform:uppercase }
.tell-list span { font-size:.92rem; color:#B3A599 }
.tell-media { position:relative; border-radius:var(--radius-lg-hb); overflow:hidden; box-shadow:var(--shadow-lg-hb) }
.tell-media img { width:100%; aspect-ratio:4/5; object-fit:cover }
.tell-tag { position:absolute; left:20px; bottom:20px; right:20px; background:rgba(25,21,19,.82); backdrop-filter:blur(9px); border:1px solid rgba(255,255,255,.14); border-radius:16px; padding:16px 18px; color:#fff }
.tell-tag b { font-family:var(--display-hb); display:block; color:var(--ember-glow-hb); letter-spacing:1px }
.tell-tag span { font-size:.88rem; color:#C7B9AC }
.moves { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; counter-reset:step; position:relative }
.move { background:#fff; border-radius:var(--radius-hb); padding:34px 24px 26px; box-shadow:var(--shadow-sm-hb); border:1px solid var(--line-hb); position:relative; transition:transform .35s,box-shadow .35s }
.move:hover { transform:translateY(-8px); box-shadow:var(--shadow-hb) }
.step-n-hb { position:absolute; top:-20px; left:24px; width:44px; height:44px; border-radius:14px; background:linear-gradient(140deg,var(--ember-hb),var(--brick-hb)); color:#fff; font-family:var(--display-hb); font-size:1.3rem; display:grid; place-items:center; box-shadow:0 10px 22px rgba(178,58,33,.35) }
.move h3 { font-size:1.12rem; margin-top:8px }
.move p { font-size:.93rem; color:var(--muted-hb); margin:0 }
.stills { display:grid; grid-template-columns:repeat(4,1fr); gap:16px }
.still { position:relative; border-radius:18px; overflow:hidden; box-shadow:var(--shadow-sm-hb); aspect-ratio:1; background:var(--charcoal-3-hb) }
.still:nth-child(1),.still:nth-child(6) { grid-row:span 2; aspect-ratio:1/2.06 }
.still img { width:100%; height:100%; object-fit:cover; transition:transform .8s cubic-bezier(.2,.8,.3,1) }
.still:hover img { transform:scale(1.1) }
.still figcaption { position:absolute; inset:auto 0 0 0; padding:34px 16px 14px; background:linear-gradient(transparent,rgba(20,16,14,.86)); color:#fff; font-size:.85rem; font-weight:600; transform:translateY(6px); opacity:0; transition:.35s }
.still:hover figcaption { transform:translateY(0); opacity:1 }
.reviews-hb { display:grid; grid-template-columns:repeat(3,1fr); gap:24px }
.review-hb { background:#fff; border-radius:var(--radius-hb); padding:28px 26px; box-shadow:var(--shadow-sm-hb); border:1px solid var(--line-hb); position:relative; transition:transform .35s,box-shadow .35s }
.review-hb:hover { transform:translateY(-8px); box-shadow:var(--shadow-hb) }
.review-hb .quote-hb { position:absolute; top:16px; right:22px; font-family:var(--display-hb); font-size:4.2rem; color:rgba(178,58,33,.13); line-height:1 }
.stars-hb { display:flex; gap:3px; margin-bottom:12px }
.stars-hb svg { width:18px; height:18px; fill:var(--gold-hb) }
.review-hb p { font-size:.98rem; color:#4A423C }
.review-hb footer { display:flex; align-items:center; gap:12px; margin-top:16px; border-top:1px solid var(--line-hb); padding-top:14px }
.avatar-hb { width:42px; height:42px; border-radius:50%; background:linear-gradient(140deg,var(--brick-hb),var(--ember-hb)); color:#fff; display:grid; place-items:center; font-family:var(--display-hb); font-size:1.05rem; flex:0 0 auto }
.review-hb footer b { display:block; font-size:.95rem }
.review-hb footer span { font-size:.8rem; color:var(--muted-hb) }
.turf { display:flex; flex-wrap:wrap; gap:11px; justify-content:center; list-style:none; padding:0; margin:0 0 30px }
.turf li { background:#fff; border:1px solid var(--line-hb); border-radius:60px; padding:10px 20px; font-size:.92rem; font-weight:600; box-shadow:var(--shadow-sm-hb); transition:transform .25s,background .25s,color .25s,border-color .25s }
.turf li:hover { transform:translateY(-4px); background:var(--brick-hb); color:#fff; border-color:var(--brick-hb) }
.answers-box { max-width:880px; margin-inline:auto }
.answers-box details { background:#fff; border:1px solid var(--line-hb); border-radius:14px; margin-bottom:12px; box-shadow:var(--shadow-sm-hb); overflow:hidden; transition:box-shadow .3s }
.answers-box details[open] { box-shadow:var(--shadow-hb) }
.answers-box summary { cursor:pointer; list-style:none; padding:20px 58px 20px 22px; font-weight:700; font-size:1.03rem; position:relative }
.answers-box summary::-webkit-details-marker { display:none }
.answers-box summary::after { content:""; position:absolute; right:22px; top:50%; width:12px; height:12px; border-right:2.6px solid var(--brick-hb); border-bottom:2.6px solid var(--brick-hb); transform:translateY(-70%) rotate(45deg); transition:transform .3s }
.answers-box details[open] summary::after { transform:translateY(-25%) rotate(-135deg) }
.answers-box .faq-body-hb { padding:0 22px 20px; color:var(--muted-hb); font-size:.97rem }
.answers-box .faq-body-hb p:last-child { margin-bottom:0 }
.surge-band { position:relative; color:#fff; text-align:center; overflow:hidden; isolation:isolate }
.surge-band .surge-bg { position:absolute; inset:0; z-index:-2 }
.surge-band .surge-bg img { width:100%; height:100%; object-fit:cover }
.surge-band::before { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(120deg,rgba(140,43,22,.94),rgba(25,21,19,.9)) }
.surge-band h2 { color:#fff; font-size:clamp(2rem,4.4vw,3.3rem) }
.surge-band p { color:#EFE3D8; max-width:660px; margin-inline:auto; font-size:1.06rem }
.surge-actions { display:flex; gap:15px; justify-content:center; flex-wrap:wrap; margin-top:28px }
.surge-phone { display:block; font-family:var(--display-hb); font-size:clamp(2rem,5vw,2.9rem); color:#fff; margin-top:20px; letter-spacing:1px }
.surge-phone:hover { color:var(--ember-glow-hb) }
.locate-grid { display:grid; grid-template-columns:1fr 1fr; gap:44px; align-items:start }
.locate-grid>* { min-width:0 }
.locate-list a,.keel address a { overflow-wrap:anywhere }
.form-card-hb { background:#fff; border-radius:var(--radius-lg-hb); padding:34px 32px; box-shadow:var(--shadow-hb); border:1px solid var(--line-hb) }
.field-hb { margin-bottom:16px }
.field-hb label { display:block; font-weight:700; font-size:.86rem; margin-bottom:7px; letter-spacing:.4px }
.field-hb input,.field-hb select,.field-hb textarea { 
  width:100%; padding:14px 16px; border:1.6px solid var(--line-hb); border-radius:12px; font-size:1rem;
  font-family:inherit; background:#FCFAF7; color:var(--ink-hb); transition:border-color .25s,box-shadow .25s,background .25s;
 }
.field-hb input:focus,.field-hb select:focus,.field-hb textarea:focus { outline:none; border-color:var(--brick-hb); background:#fff; box-shadow:0 0 0 4px rgba(178,58,33,.12) }
.field-hb textarea { resize:vertical; min-height:110px }
.two-col-hb { display:grid; grid-template-columns:1fr 1fr; gap:16px }
.form-note-hb { font-size:.79rem; color:var(--muted-hb); margin-top:12px; text-align:center }
.form-msg-hb { display:none; padding:14px 16px; border-radius:12px; font-size:.94rem; margin-bottom:16px }
.form-msg-hb.okhb { display:block; background:rgba(46,125,81,.1); color:#2E7D51; border:1px solid rgba(46,125,81,.3) }
.form-msg-hb.err-hb { display:block; background:rgba(178,58,33,.1); color:var(--brick-dark-hb); border:1px solid rgba(178,58,33,.3) }
.locate-list { list-style:none; padding:0; margin:0 0 26px; display:grid; gap:16px }
.locate-list li { display:flex; gap:16px; align-items:flex-start }
.info-ico-hb { width:48px; height:48px; flex:0 0 auto; border-radius:14px; background:rgba(178,58,33,.1); display:grid; place-items:center }
.info-ico-hb svg { width:22px; height:22px; stroke:var(--brick-hb); fill:none; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round }
.locate-list b { display:block; font-family:var(--display-hb); letter-spacing:.6px; text-transform:uppercase; font-size:.95rem }
.locate-list a,.locate-list span { color:var(--muted-hb); font-size:1rem }
.locate-list a:hover { color:var(--brick-hb) }
.map-embed-hb { border-radius:var(--radius-hb); overflow:hidden; box-shadow:var(--shadow-sm-hb); border:1px solid var(--line-hb); line-height:0 }
.map-embed-hb iframe { width:100%; height:290px; border:0 }
.hours-hb { background:#fff; border:1px solid var(--line-hb); border-radius:var(--radius-hb); padding:22px 24px; box-shadow:var(--shadow-sm-hb); margin-bottom:26px }
.hours-hb dl { display:grid; grid-template-columns:auto 1fr; gap:8px 18px; margin:0; font-size:.95rem }
.hours-hb dt { font-weight:700 }
.hours-hb dd { margin:0; text-align:right; color:var(--muted-hb) }
.keel { background:var(--charcoal-hb); color:#A99B8E; padding:70px 0 0; font-size:.95rem }
.foot-grid-hb { display:grid; grid-template-columns:1.5fr 1fr 1fr 1.2fr; gap:38px; padding-bottom:44px }
.keel h4 { color:#fff; font-size:1rem; letter-spacing:1.6px; margin-bottom:18px }
.keel a { color:#A99B8E }
.keel a:hover { color:var(--ember-glow-hb) }
.foot-links-hb { list-style:none; padding:0; margin:0; display:grid; gap:10px }
.foot-brand-hb { display:flex; align-items:center; gap:12px; margin-bottom:16px; color:#fff }
.foot-brand-hb strong { font-family:var(--display-hb); font-size:1.1rem; letter-spacing:.6px; text-transform:uppercase }
.foot-bottom-hb { border-top:1px solid rgba(255,255,255,.1); padding:20px 0; display:flex; flex-wrap:wrap; gap:10px 24px; justify-content:space-between; font-size:.84rem }
.dial-orb { 
  position:fixed; right:22px; bottom:26px; z-index:950; display:inline-flex; align-items:center; gap:12px;
  background:linear-gradient(135deg,var(--brick-hb),var(--brick-dark-hb)); color:#fff; padding:15px 24px 15px 17px;
  border-radius:60px; font-weight:800; letter-spacing:.4px; box-shadow:0 16px 40px rgba(178,58,33,.5);
  transition:transform .3s cubic-bezier(.2,.8,.3,1),box-shadow .3s;
 }
.dial-orb:hover { transform:scale(1.06) translateY(-3px); color:#fff; box-shadow:0 22px 52px rgba(178,58,33,.6) }
.dial-orb .fc-ring-hb { position:relative; width:40px; height:40px; border-radius:50%; background:rgba(255,255,255,.18); display:grid; place-items:center; flex:0 0 auto }
.dial-orb .fc-ring-hb::before,.dial-orb .fc-ring-hb::after { content:""; position:absolute; inset:0; border-radius:50%; border:2px solid rgba(255,255,255,.6); animation:ring 2.6s ease-out infinite }
.dial-orb .fc-ring-hb::after { animation-delay:1.3s }
@keyframes ring { 0% { transform:scale(1); opacity:.85 }
100% { transform:scale(2.1); opacity:0 }
 }
.dial-orb svg { width:20px; height:20px; stroke:#fff; fill:none; stroke-width:2; animation:shake 3.2s ease-in-out infinite }
@keyframes shake { 0%,86%,100% { transform:rotate(0) }
90% { transform:rotate(-14deg) }
94% { transform:rotate(14deg) }
 }
.dial-orb .fc-txt-hb { display:flex; flex-direction:column; line-height:1.15 }
.dial-orb .fc-txt-hb small { font-size:.66rem; text-transform:uppercase; letter-spacing:1.4px; opacity:.85; font-weight:600 }
.dial-orb .fc-txt-hb b { font-family:var(--display-hb); font-size:1.12rem; letter-spacing:.6px }
.grip-bar { display:none; position:fixed; left:0; right:0; bottom:0; z-index:960; background:rgba(25,21,19,.97); backdrop-filter:blur(12px); border-top:1px solid rgba(255,255,255,.12); padding:9px 10px calc(9px + env(safe-area-inset-bottom)) }
.grip-bar ul { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:8px }
.grip-bar a { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; padding:9px 4px; border-radius:12px; color:#E8DCD2; font-size:.72rem; font-weight:700; letter-spacing:.4px; text-transform:uppercase }
.grip-bar a svg { width:19px; height:19px; stroke:currentColor; fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round }
.grip-bar .mb-call-hb { background:linear-gradient(135deg,var(--brick-hb),var(--brick-dark-hb)); color:#fff; box-shadow:0 6px 18px rgba(178,58,33,.5); animation:mbPulse 2.4s ease-in-out infinite }
@keyframes mbPulse { 0%,100% { box-shadow:0 6px 18px rgba(178,58,33,.5) }
50% { box-shadow:0 6px 26px rgba(240,128,60,.85) }
 }
.riser { position:fixed; right:26px; bottom:104px; z-index:940; width:46px; height:46px; border-radius:50%; background:var(--charcoal-hb); color:#fff; display:grid; place-items:center; box-shadow:var(--shadow-hb); opacity:0; visibility:hidden; transform:translateY(10px); transition:.3s; border:0; cursor:pointer }
.riser.show-hb { opacity:1; visibility:visible; transform:translateY(0) }
.riser svg { width:18px; height:18px; stroke:#fff; fill:none; stroke-width:2.6 }
.surface { opacity:0; transform:translateY(34px); transition:opacity .8s cubic-bezier(.2,.8,.3,1),transform .8s cubic-bezier(.2,.8,.3,1) }
.surface.inhb { opacity:1; transform:none }
.surface.dhb1 { transition-delay:.1s }
.surface.dhb2 { transition-delay:.2s }
.surface.dhb3 { transition-delay:.3s }
.surface.dhb4 { transition-delay:.4s }
.surface.dhb5 { transition-delay:.5s }
.surface.dhb6 { transition-delay:.6s }
@media (max-width:1080px) { 
  .front-grid { grid-template-columns:1fr; gap:44px }
.vow-card { max-width:520px }
.chip-row { grid-template-columns:repeat(2,1fr) }
.moves { grid-template-columns:repeat(2,1fr); row-gap:38px }
.reviews-hb { grid-template-columns:1fr }
.foot-grid-hb { grid-template-columns:1fr 1fr }
.stills { grid-template-columns:repeat(3,1fr) }
 }
@media (max-width:1440px) { 
  .topnav { gap:18px }
.topnav a { font-size:.9rem }
.nav-phone-hb { display:none }
 }
@media (max-width:1240px) { 
  .topnav { gap:15px }
.topnav a { font-size:.86rem }
.topnav li:has(.nav-opt-hb) { display:none }
.nav-opt-hb { display:none }
 }
@media (max-width:1150px) { 
  .topnav { 
    position:fixed; inset:var(--header-h-hb) 0 auto 0; background:var(--cream-hb); flex-direction:column;
    align-items:stretch; gap:0; padding:10px 6% 26px; border-bottom:1px solid var(--line-hb);
    box-shadow:var(--shadow-hb); transform:translateY(-135%); transition:transform .4s cubic-bezier(.2,.8,.3,1);
    max-height:calc(100vh - var(--header-h-hb)); overflow:auto;
   }
.topnav.open-hb { transform:translateY(0) }
.topnav li:has(.nav-opt-hb) { display:block }
.nav-opt-hb { display:block }
.topnav li { border-bottom:1px solid var(--line-hb) }
.topnav a { display:block; padding:15px 0; font-size:1.05rem }
.burger-hb { display:block }
.nav-phone-hb { display:none }
.nav-cta-hb .go { padding:12px 20px; font-size:.92rem }
.tell-grid,.locate-grid { grid-template-columns:1fr; gap:34px }
.dial-orb { display:none }
.grip-bar { display:block }
body { padding-bottom:74px }
.riser { bottom:88px; right:16px }
 }
@media (max-width:640px) { 
  body { font-size:16px }
.strip-bar .lane { justify-content:center; text-align:center; font-size:.8rem; gap:6px 16px; padding:7px 0 }
.strip-bar .tb-hide-hb,.strip-bar .tb-news-hb { display:none }
.nav-call-txt-hb { display:none }
.nav-cta-hb .go { padding:12px 14px; border-radius:50% }
.nav-cta-hb { gap:9px }
.chip-row,.moves { grid-template-columns:1fr 1fr; gap:14px }
.stills { grid-template-columns:repeat(2,1fr); gap:10px }
.still:nth-child(1),.still:nth-child(6) { grid-row:span 1; aspect-ratio:1 }
.two-col-hb { grid-template-columns:1fr }
.form-card-hb { padding:26px 20px }
.foot-grid-hb { grid-template-columns:1fr; gap:30px }
.front-actions .go { flex:1 1 100% }
.nav-hb { gap:8px }
.emblem { min-width:0; gap:9px }
.brand-mark-hb { width:38px; height:38px }
.brand-txt-hb { min-width:0 }
.brand-txt-hb span { font-size:.56rem; letter-spacing:1.2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis }
.brand-txt-hb strong { font-size:.85rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis }
.chip-row .chip { padding:20px 12px }
.svc-body-hb,.form-card-hb { overflow-wrap:break-word }
 }
@media (max-width:400px) { 
  .lane { width:94% }
.moves { grid-template-columns:1fr; row-gap:34px }
.chip-row { gap:10px }
.brand-mark-hb { width:34px; height:34px }
.brand-txt-hb strong { font-size:.8rem }
.nav-cta-hb .go { padding:11px 13px }
.burger-hb { width:44px }
 }
@media (prefers-reduced-motion:reduce) { 
  *,*::before,*::after { animation-duration:.001ms!important; animation-iteration-count:1!important; transition-duration:.001ms!important }
html { scroll-behavior:auto }
.surface { opacity:1; transform:none }
 }
@media print { 
  .cap-bar,.dial-orb,.grip-bar,.riser,#bg-fx-hb,.loop { display:none!important }
body { background:#fff; color:#000 }
 }
.offer-free-hb { font-family:var(--display-hb); font-size:clamp(3rem,6.4vw,4.3rem); line-height:1; color:var(--brick-hb); text-align:center; letter-spacing:2px; margin:8px 0 2px }
.offer-free-hb small { display:block; font-family:var(--font-hb); font-size:.31em; letter-spacing:3.4px; color:var(--coast-hb); font-weight:800; margin-top:6px }
.vow-card .offer-list-hb svg { stroke:var(--coast-hb) }
.badge-free-hb { background:var(--coast-hb); box-shadow:0 8px 20px rgba(30,111,104,.42) }
.tick-coast-hb { background:rgba(30,111,104,.22) }
.tick-coast-hb svg { stroke:#7FD8CE }
.quake-note-hb { display:flex; gap:12px; align-items:flex-start; background:rgba(242,145,63,.1); border:1px solid rgba(242,145,63,.34); border-radius:14px; padding:16px 18px; margin-top:24px }
.quake-note-hb svg { width:22px; height:22px; flex:0 0 auto; margin-top:2px; stroke:var(--brick-hb); fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round }
.quake-note-hb p { margin:0; font-size:.94rem }
.talk-card { 
  background:linear-gradient(158deg,var(--charcoal-hb) 0%,var(--charcoal-2-hb) 55%,#3A241B 100%);
  color:#DCCFC3; border-radius:var(--radius-lg-hb); padding:38px 34px; box-shadow:var(--shadow-lg-hb);
  border:1px solid rgba(255,255,255,.09); position:relative; overflow:hidden;
 }
.talk-card::before { content:""; position:absolute; top:-90px; right:-70px; width:260px; height:260px; border-radius:50%;
  background:radial-gradient(circle,rgba(242,145,63,.34),transparent 68%); filter:blur(14px); animation:float1 18s ease-in-out infinite }
.talk-card>* { position:relative; z-index:1 }
.call-kicker-hb { display:inline-flex; align-items:center; gap:9px; color:var(--ember-glow-hb); font-weight:800; letter-spacing:2.4px; text-transform:uppercase; font-size:.74rem; margin-bottom:12px }
.call-kicker-hb::before { content:""; width:26px; height:2px; background:var(--ember-hb) }
.talk-card h3 { color:#fff; font-size:clamp(1.4rem,2.4vw,1.9rem); margin-bottom:10px }
.talk-card p { color:#B5A79A; font-size:.99rem }
.call-number-hb { display:block; font-family:var(--display-hb); font-size:clamp(2.1rem,4.6vw,3rem); color:#fff; letter-spacing:1px; margin:20px 0 18px; text-align:center; transition:color .25s,transform .25s }
.call-number-hb:hover { color:var(--ember-glow-hb); transform:scale(1.03) }
.call-hours-hb { text-align:center; font-size:.92rem; margin:18px 0 0; color:#B5A79A }
.call-hours-hb strong { color:#fff }
.call-expect-hb { margin-top:26px; padding-top:22px; border-top:1px solid rgba(255,255,255,.12) }
.call-expect-hb h4 { color:#fff; font-size:.92rem; letter-spacing:1.8px; margin-bottom:14px }
.call-expect-hb ol { margin:0; padding:0; list-style:none; counter-reset:ce; display:grid; gap:12px }
.call-expect-hb li { counter-increment:ce; display:flex; gap:13px; align-items:flex-start; font-size:.94rem; color:#C3B5A8 }
.call-expect-hb li::before { content:counter(ce); flex:0 0 auto; width:26px; height:26px; border-radius:8px; background:rgba(242,145,63,.18); color:var(--ember-glow-hb); font-family:var(--display-hb); font-size:.9rem; display:grid; place-items:center; margin-top:1px }
@media (max-width:640px) { .talk-card { padding:28px 22px }
 }
.review-hb p { font-size:.95rem; line-height:1.62 }
.review-hb footer b { font-size:.92rem; line-height:1.3 }
.review-hb .avatar-hb svg { display:block }
@media (max-width:1080px) { .reviews-hb { gap:22px }
 }
.grip-bar ul.mb-two-hb { grid-template-columns:1.7fr 1fr }

@media (max-width:392px) { .emblem { gap:7px; flex:1 1 auto; min-width:0; overflow:hidden } .brand-txt-hb { min-width:0 } .brand-txt-hb strong { font-size:.73rem; letter-spacing:.3px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis } .brand-txt-hb span { font-size:.5rem; letter-spacing:1px } .brand-mark-hb { width:32px; height:32px } .nav-cta-hb { gap:6px } .nav-cta-hb .go { padding:9px 11px } .burger-hb { width:40px; height:40px } }

.grip-bar ul { grid-template-columns:1fr }
