*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:140px}
body{margin:0;background:var(--paper);color:var(--ink);font:400 17px/1.62 var(--sans);overflow-x:hidden;transition:background-color .4s ease,color .4s ease}
img,svg,video{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
button{background:none;border:0;padding:0;cursor:pointer}
h1,h2,h3,h4{font-family:var(--display);color:var(--ink);margin:0;letter-spacing:-.005em}
h1{font-weight:800;font-size:clamp(38px,4.6vw,58px);line-height:1.0}
h2{font-weight:700;font-size:clamp(28px,3.1vw,40px);line-height:1.08}
h3{font-weight:700;font-size:21px;line-height:1.2}
p{margin:0 0 1em;max-width:calc(var(--layout-measure,62) * 1ch)}
.container{max-width:1200px;margin:0 auto;padding:0 clamp(16px,4vw,40px)}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:6px}
.skip{position:absolute;left:12px;top:-60px;z-index:200;background:var(--ink);color:var(--paper);padding:10px 16px;border-radius:8px;font-weight:600}
.skip:focus{top:12px}

.progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:120;pointer-events:none}
.progress i{display:block;height:100%;width:0;background:var(--green)}

#hdr{position:sticky;top:0;z-index:90;background:color-mix(in srgb, var(--paper) 96%, transparent);transition:box-shadow .3s ease,background-color .4s ease}
#hdr.scrolled{box-shadow:0 10px 30px -18px rgba(6,30,56,.45)}
.frit{height:13px;background:
  linear-gradient(var(--navy),var(--navy)) top/100% 5px no-repeat,
  radial-gradient(circle at 3.5px 3px,var(--navy) 0 1.9px,transparent 2.2px) 0 5px/7px 5px repeat-x,
  radial-gradient(circle at 3.5px 2px,var(--navy) 0 1.05px,transparent 1.35px) 3.5px 10px/7px 3px repeat-x}
#hdr .row{display:flex;align-items:center;gap:22px;min-height:104px}
.brand{display:flex;align-items:center;flex:none;border-radius:10px;background:var(--logo-plate);padding:var(--logo-pad);transition:background-color .4s ease}
.brand img{height:88px;width:auto}
#hdr nav{margin-left:auto}
#hdr nav ul{list-style:none;margin:0;padding:0;display:flex;gap:4px}
#hdr nav a{display:block;padding:10px 13px;border-radius:8px;font-weight:600;font-size:15.5px;color:var(--ink-2);transition:color .2s,background-color .2s}
#hdr nav a:hover{color:var(--ink);background:var(--paper-2)}
#hdr nav a[aria-current=page]{color:var(--ink);box-shadow:inset 0 -3px 0 var(--green)}
.hdr-cta{display:flex;align-items:center;gap:14px}
.hdr-phone{display:flex;flex-direction:column;line-height:1.15;font-weight:600;font-size:15px;color:var(--ink);white-space:nowrap}
.hdr-phone small{font-size:15px;font-weight:500;color:var(--ink-3);letter-spacing:.01em}
.hdr-phone .ph-ic{display:none}
.hdr-phone:hover span{text-decoration:underline;text-decoration-color:var(--green);text-underline-offset:3px}
.menu-btn{display:none;width:44px;height:44px;border-radius:10px;position:relative;flex:none}
.menu-btn span,.menu-btn span::before,.menu-btn span::after{position:absolute;left:11px;right:11px;height:2.5px;border-radius:2px;background:var(--ink);content:""}
.menu-btn span{top:21px}.menu-btn span::before{top:-7px;left:0;right:0}.menu-btn span::after{top:7px;left:0;right:0}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 24px;border-radius:10px;font-family:var(--display);font-weight:700;font-size:17px;letter-spacing:.005em;white-space:nowrap;transition:background-color .2s,transform .25s var(--ease),box-shadow .25s}
.btn-quote{background:var(--accent);color:var(--on-accent);box-shadow:0 10px 22px -12px color-mix(in srgb,var(--accent) 80%,#000)}
.btn-quote:hover{background:var(--accent-deep);transform:translateY(-1px)}
.btn-quote .arr{transition:transform .25s var(--ease)}
.btn-quote:hover .arr{transform:translateX(3px)}
.btn-sm{min-height:44px;padding:0 18px;font-size:15.5px}
.call{display:inline-flex;align-items:center;gap:9px;font-weight:600;color:var(--ink);text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--green) 70%,transparent);text-decoration-thickness:2px;text-underline-offset:5px;white-space:nowrap}
.call svg{width:18px;height:18px;flex:none;color:var(--green)}
.call:hover{text-decoration-color:var(--green)}

.drawer{display:none}
@media (max-width:1040px){
  #hdr nav{display:none}
  .menu-btn{display:block}
  .hdr-cta{margin-left:auto}
  .drawer{display:block;position:fixed;inset:0;z-index:150;visibility:hidden;pointer-events:none}
  .drawer.on{visibility:visible;pointer-events:auto}
  .drawer .scrim{position:absolute;inset:0;background:rgba(4,22,42,.55);opacity:0;transition:opacity .3s}
  .drawer.on .scrim{opacity:1}
  .drawer .sheet{position:absolute;top:0;right:0;bottom:0;width:min(340px,88vw);background:var(--paper);padding:24px 24px 30px;transform:translateX(100%);transition:transform .35s var(--ease);display:flex;flex-direction:column;gap:2px;overflow:auto}
  .drawer.on .sheet{transform:none}
  .drawer .sheet img{height:64px;width:auto;align-self:flex-start;margin-bottom:18px}
  .drawer .sheet a{font-family:var(--display);font-weight:600;font-size:22px;padding:12px 0;color:var(--ink)}
  .drawer .sheet a.btn{border:0;margin-top:18px;font-size:17px;color:var(--on-accent)}
  .drawer .sheet a.call{font-family:var(--sans);font-size:17px;border:0;margin-top:10px;min-height:44px}
  .drawer .x{position:absolute;top:16px;right:16px;width:44px;height:44px;font-size:30px;line-height:1;color:var(--ink)}
}
@media (max-width:760px){
  #hdr .row{min-height:80px;gap:10px}
  .brand img{height:64px}
  .hdr-phone{display:inline-flex;align-items:center;justify-content:center;flex:none;width:44px;height:44px;border-radius:10px;background:color-mix(in srgb,var(--green) 16%,var(--paper));color:var(--green-deep);text-shadow:none!important}
  .hdr-phone small,.hdr-phone span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .hdr-phone .ph-ic{display:block;width:22px;height:22px}
  .hdr-cta{gap:6px}
  .hdr-cta .btn-sm{min-height:42px;padding:0 13px;font-size:15px}
  .hdr-cta .btn-sm .arr{display:none}
}
@media (max-width:480px){#hdr .row{gap:8px}.brand img{height:52px}.hdr-cta{gap:4px}.hdr-cta .btn-sm{padding:0 9px}.menu-btn{width:40px}}
@media (max-width:370px){.brand img{height:44px}}

.hero{position:relative;min-height:88vh;display:flex;align-items:flex-start;overflow:hidden;background:var(--paper-2);isolation:isolate}
.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:28% 55%;z-index:-2;filter:saturate(1.2) contrast(1.03)}
.hero .veil{position:absolute;inset:0;z-index:-1;background:
  radial-gradient(130% 105% at 0% 0%,color-mix(in srgb,var(--paper) 94%,transparent) 0%,color-mix(in srgb,var(--paper) 88%,transparent) 38%,color-mix(in srgb,var(--paper) 45%,transparent) 60%,transparent 78%),
  linear-gradient(180deg,color-mix(in srgb,var(--paper) 55%,transparent) 0%,transparent 34%)}
.hero .container{width:100%;padding-top:clamp(40px,7vh,84px);padding-bottom:120px}
.hero-copy{max-width:640px}
.hero .where{display:inline-flex;align-items:center;gap:10px;font-weight:600;font-size:15px;letter-spacing:.03em;color:var(--ink-2);margin:0 0 18px}
.hero .where i{width:9px;height:9px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px color-mix(in srgb,var(--green) 22%,transparent)}
.hero h1{color:var(--ink);text-wrap:balance}
.hero h1 .w{display:inline-block}
.swoosh{display:block;width:min(250px,60%);height:auto;margin:16px 0 20px;color:var(--green)}
.hero .lede{font-size:clamp(17px,1.5vw,19.5px);line-height:1.55;color:var(--ink-2);max-width:34em;margin:0 0 28px;font-weight:500}
.hero .ctas{display:flex;align-items:center;gap:26px;flex-wrap:wrap}
.hero .hero-price{font-family:var(--display);font-weight:600;font-size:clamp(18px,1.6vw,20px);line-height:1.4;color:var(--ink);margin:-10px 0 24px}
.hero .hero-price b{color:var(--green-deep);font-weight:700}
.hero .urgent{display:flex;flex-wrap:wrap;align-items:center;column-gap:10px;margin:14px 0 0;font-weight:600;font-size:17px;color:var(--ink)}
.ctas .call,.urgent .call,.submit-row .call,.summary .actions .call{min-height:44px}
.btn svg{width:20px;height:20px;flex:none}
@media (max-width:760px){
  .hero{min-height:80svh}
  .hero .container{padding-top:32px;padding-bottom:90px}
  .hero-bg{object-position:22% 60%}
  .hero .veil{background:linear-gradient(180deg,color-mix(in srgb,var(--paper) 95%,transparent) 0%,color-mix(in srgb,var(--paper) 90%,transparent) 42%,color-mix(in srgb,var(--paper) 55%,transparent) 62%,transparent 80%)}
  .hero .ctas{gap:16px}
}
@media (min-width:761px){.hero.long .veil{background:
  radial-gradient(120% 135% at 0% 0%,color-mix(in srgb,var(--paper) 94%,transparent) 0%,color-mix(in srgb,var(--paper) 88%,transparent) 42%,color-mix(in srgb,var(--paper) 50%,transparent) 64%,transparent 82%),
  linear-gradient(180deg,color-mix(in srgb,var(--paper) 55%,transparent) 0%,transparent 34%)}}
.hero.page{min-height:52vh}
.hero.page .container{padding-bottom:110px}
.hero.page h1{font-size:clamp(34px,4vw,50px)}
@media (max-width:760px){.hero.page{min-height:56svh}}

.frit-edge{position:absolute;left:0;right:0;bottom:0;height:34px;z-index:1;pointer-events:none;background:
  radial-gradient(circle at 5px 4px,var(--band) 0 1.1px,transparent 1.4px) 0 0/10px 8px repeat-x,
  radial-gradient(circle at 5px 4px,var(--band) 0 2.1px,transparent 2.4px) 5px 8px/10px 8px repeat-x,
  radial-gradient(circle at 5px 4px,var(--band) 0 3.1px,transparent 3.4px) 0 16px/10px 8px repeat-x,
  radial-gradient(circle at 5px 4px,var(--band) 0 4.2px,transparent 4.5px) 5px 24px/10px 8px repeat-x,
  linear-gradient(var(--band),var(--band)) bottom/100% 3px no-repeat}
.facts{background:var(--band);color:var(--on-band);position:relative}
.facts .container{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;padding-top:30px;padding-bottom:34px}
.facts .f{padding:4px 26px;position:relative}
.facts .f:first-child{padding-left:0}
.facts .f+.f::before{content:"";position:absolute;left:-6px;top:6px;width:12px;height:12px;background:var(--star) center/contain no-repeat;opacity:.8}
.facts .k{display:block;font-size:15px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--on-band-2);margin-bottom:6px}
.facts .v{display:block;font-family:var(--display);font-weight:600;font-size:18.5px;line-height:1.3;color:var(--on-band)}
.facts .v a{text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--green-lit) 80%,transparent);text-underline-offset:4px;text-decoration-thickness:2px}
@media (max-width:900px){.facts .container{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:22px}.facts .f{padding:0 14px 0 0}.facts .f+.f::before{display:none}}
@media (max-width:420px){.facts .v{font-size:16.5px}.facts .container{column-gap:14px}}

.s{padding:var(--layout-space,104px) 0;position:relative}
@media (max-width:760px){.s{padding:72px 0}}
.s.band{background:var(--band);color:var(--on-band)}
.s.band h2,.s.band h3{color:var(--on-band)}
.s.band p{color:var(--on-band-2)}
.s.tint{background:var(--paper-2)}
.s.green{background:var(--green-band);color:#fff}
.s.green h2,.s.green h3{color:#fff}
.s.green p{color:rgba(255,255,255,.9)}
.head{margin-bottom:46px;max-width:760px}
.head h2{text-wrap:balance}
.sw{display:block;width:120px;height:14px;margin:14px 0 18px;color:var(--green)}
.s.band .sw{color:var(--green-lit)}
.s.green .sw{color:#fff;opacity:.85}
.head p{font-size:18px;color:var(--ink-2);margin:0}
.s.band .head p{color:var(--on-band-2)}
.more{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-family:var(--display);font-size:16px;color:var(--ink);margin-top:34px;text-decoration:underline;text-decoration-color:var(--green);text-decoration-thickness:2px;text-underline-offset:6px}
.s.band .more{color:#fff;text-decoration-color:var(--green-lit)}

.about{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(30px,5vw,72px);align-items:center}
.about .txt p{font-size:18px;color:var(--ink-2)}
.about .txt p.big{font-family:var(--display);font-weight:600;font-size:clamp(21px,2vw,25px);line-height:1.35;color:var(--ink)}
.slogan{position:relative;margin:0}
.slogan svg{width:100%;height:auto}
.slogan figcaption{position:absolute;left:17%;right:15%;top:25%;bottom:30%;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;color:#06345D}
.slogan figcaption b{font-family:var(--display);font-weight:800;font-size:clamp(22px,2.6vw,34px);line-height:1.08}
.slogan figcaption span{font-size:15px;letter-spacing:.1em;text-transform:uppercase;font-weight:600;margin-top:14px;color:#2A4563}
@media (max-width:860px){.about{grid-template-columns:1fr}}
@media (max-width:420px){.slogan figcaption{left:12%;right:12%}.slogan figcaption b{font-size:20px}.slogan figcaption span{font-size:15px;letter-spacing:.04em;margin-top:8px}}

.marquee{background:var(--green);color:#fff;overflow:hidden;white-space:nowrap;padding:17px 0;font-family:var(--display);font-weight:700;font-size:19px}
.marquee .mq{display:inline-flex}
.marquee .mq span{display:inline-flex;align-items:center;gap:24px;padding-right:24px}
.marquee .mq i{width:12px;height:12px;background:var(--star) center/contain no-repeat;flex:none}
body.calm-go .marquee .mq{animation:mq 60s linear infinite}
@keyframes mq{to{transform:translateX(-50%)}}

.svc-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.svc{background:var(--plate);border-radius:var(--layout-radius,10px);overflow:hidden;display:flex;flex-direction:column;color:var(--ink);transition:transform .35s var(--ease),box-shadow .35s}
.svc:hover{transform:translateY(-4px);box-shadow:0 26px 40px -24px rgba(0,0,0,.55)}
.svc .ill{background:linear-gradient(180deg,var(--sky-1),var(--sky-2));aspect-ratio:16/10;display:flex;align-items:center;justify-content:center;overflow:hidden}
.svc .ill svg{width:100%;height:100%}
.svc .bd{padding:22px 24px 26px}
.svc .bd h3{color:var(--ink);margin-bottom:8px}
.svc .bd p{color:var(--ink-2);font-size:16px;margin:0}
.svc .bd p.svc-price{margin-top:12px;color:var(--ink);font-weight:600;font-size:15.5px}
.svc-price b,.price-line b{color:var(--green-deep);font-weight:700}
.svc-row{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:22px}
.svc.wide{flex-direction:row;align-items:stretch}
.svc.wide .ill{aspect-ratio:auto;width:42%;flex:none}
.svc.wide .bd{align-self:center}
@media (max-width:980px){.svc-grid{grid-template-columns:1fr 1fr}.svc-row{grid-template-columns:1fr}}
@media (max-width:640px){.svc-grid{grid-template-columns:1fr}.svc.wide{flex-direction:column}.svc.wide .ill{width:100%;aspect-ratio:16/9}}

.road{margin:0 0 6px}
.road svg{width:100%;height:auto}
.stops{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px}
.stop h3{margin-bottom:6px}
.stop p{color:var(--ink-2);font-size:16.5px;margin:0}
.stop .n{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:var(--green);color:#fff;font-family:var(--display);font-weight:700;font-size:16px;margin-bottom:12px}
@media (max-width:760px){.stops{grid-template-columns:1fr;gap:22px}.road{display:none}}

.area{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(28px,4vw,56px);align-items:stretch}
.towns{display:grid;grid-template-columns:repeat(2,minmax(0,max-content));gap:0 34px;margin:20px 0 22px;padding:0;list-style:none}
.towns button{display:flex;align-items:center;gap:10px;min-height:44px;padding:0;color:var(--on-band);font-weight:600;font-size:17px;text-align:left;transition:color .2s}
.towns button i{width:8px;height:8px;border-radius:50%;background:var(--green-lit);flex:none;transition:transform .2s}
.towns button:hover,.towns button.on{color:var(--green-lit)}
.towns button.on i{transform:scale(1.6)}
.map{position:relative;min-height:470px;border-radius:var(--layout-radius,10px);overflow:hidden;background:#0B1B2C;box-shadow:0 30px 60px -30px rgba(0,0,0,.6)}
.map>div{position:absolute;inset:0}
.map .leaflet-container{background:#0B1B2C;font-family:var(--sans)}
.map .leaflet-control-attribution{font-size:15px;line-height:1.4;background:rgba(10,24,40,.75);color:#C8D6E4}
.map .leaflet-bar{border:0;box-shadow:0 8px 18px -6px rgba(0,0,0,.55)}
.map .leaflet-bar a,.map .leaflet-bar a:first-child,.map .leaflet-bar a:last-child{border:0}
.map .leaflet-bar a+a{margin-top:2px}
.map .leaflet-control-attribution a{color:#E6F0F8}
.jo-pin{display:block;width:18px;height:18px;border-radius:50%;background:var(--green-lit);border:3px solid #fff;box-shadow:0 0 0 4px rgba(26,136,72,.35),0 4px 10px rgba(0,0,0,.5)}
.jo-pin.on{background:#fff;border-color:var(--green-lit)}
.leaflet-tooltip.jo-tip{background:#fff;color:#0A2440;border:0;border-radius:6px;font-family:var(--sans);font-weight:700;font-size:15px;padding:4px 10px;box-shadow:0 6px 14px rgba(0,0,0,.35)}
.leaflet-tooltip.jo-tip::before{display:none}
.area .note{font-size:15.5px}
@media (max-width:900px){.area{grid-template-columns:1fr}.map{min-height:380px}}

.sos{display:grid;grid-template-columns:1.2fr .8fr;gap:40px;align-items:center}
.sos h2{font-size:clamp(30px,3.4vw,44px)}
.sos .num{display:inline-flex;flex-direction:column;align-items:flex-start;gap:4px;padding:22px 28px;border-radius:14px;background:rgba(255,255,255,.12);border:1.5px solid rgba(255,255,255,.35);color:#fff;transition:background-color .2s}
.sos .num:hover{background:rgba(255,255,255,.2)}
.sos .num small{font-size:15px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;opacity:.9}
.sos .num b{font-family:var(--display);font-weight:800;font-size:clamp(28px,3vw,40px);letter-spacing:.01em}
@media (max-width:860px){.sos{grid-template-columns:1fr;gap:26px}}

.dmg{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;margin:0;padding:0;list-style:none}
.dmg a,.dmg label{display:flex;flex-direction:column;align-items:center;gap:10px;padding:18px 10px 16px;border-radius:12px;background:var(--paper);border:1.5px solid var(--line-strong);text-align:center;font-weight:600;font-size:15px;line-height:1.25;color:var(--ink);transition:border-color .2s,transform .3s var(--ease),box-shadow .3s;height:100%}
.dmg a:hover,.dmg label:hover{border-color:var(--green);transform:translateY(-3px);box-shadow:0 18px 30px -22px rgba(6,40,70,.5)}
.dmg svg{width:84px;height:62px}
@media (max-width:980px){.dmg{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:520px){.dmg{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.dmg svg{width:70px;height:52px}}

.rowx{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,70px);align-items:center}
.rowx.flip .art{order:2}
.rowx .art{border-radius:var(--layout-radius,10px);overflow:hidden;background:linear-gradient(180deg,var(--sky-1),var(--sky-2))}
.rowx .art svg{width:100%;height:auto}
.rowx h2{margin-bottom:6px}
.rowx p{font-size:18px;color:var(--ink-2)}
.rowx p.price-line{font-family:var(--display);font-weight:600;font-size:20px;line-height:1.4;color:var(--ink);margin:0 0 26px}
.s.band .rowx p{color:var(--on-band-2)}
.steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:40px}
.steps figure{margin:0;background:var(--plate);border-radius:var(--layout-radius,10px);overflow:hidden}
.steps figure svg{width:100%;height:auto;background:linear-gradient(180deg,var(--sky-1),var(--sky-2))}
.steps figcaption{padding:14px 18px 18px;font-weight:600;color:var(--ink)}
.steps figcaption small{display:block;font-weight:500;color:var(--ink-3);font-size:15px;margin-top:2px}
@media (max-width:860px){.rowx{grid-template-columns:1fr}.rowx.flip .art{order:0}.steps{grid-template-columns:1fr}}

.plates{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.plate{background:var(--paper);border:1.5px solid var(--line-strong);border-radius:var(--layout-radius,10px);padding:28px 26px;display:flex;flex-direction:column;gap:8px}
.plate .k{font-size:15px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}
.plate .v{font-family:var(--display);font-weight:700;font-size:22px;color:var(--ink);overflow-wrap:anywhere}
.plate p{font-size:15.5px;color:var(--ink-2);margin:0}
.plate .go{margin-top:auto;padding-top:12px}
@media (max-width:860px){.plates{grid-template-columns:1fr}}
.hours{border-collapse:collapse;width:100%;max-width:520px;font-size:16.5px}
.hours td{padding:9px 0}
.hours td:last-child{text-align:right;font-weight:600}
.hours tr.today td{color:var(--green-deep);font-weight:700}
.s.band .hours tr.today td{color:var(--green-lit)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,70px);align-items:start}
@media (max-width:860px){.two{grid-template-columns:1fr}}

.qwrap{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:clamp(26px,4vw,56px);align-items:start}
@media (max-width:960px){.qwrap{grid-template-columns:1fr}}
.qform fieldset{border:0;margin:0 0 34px;padding:0;min-width:0}
.qform legend{font-family:var(--display);font-weight:700;font-size:22px;color:var(--ink);padding:0;margin-bottom:6px}
.qform .hint{font-size:15px;color:var(--ink-3);margin:0 0 16px}
.field{display:flex;flex-direction:column;gap:7px;margin-bottom:16px;min-width:0}
.field label,.field .lab{font-weight:600;font-size:15.5px;color:var(--ink)}
.field label .opt,.qform legend .opt{font-weight:500;color:var(--ink-3);font-size:15px}
.field input[type=text],.field input[type=tel],.field input[type=email],.field select,.field textarea{width:100%;min-height:50px;padding:12px 14px;border-radius:9px;border:1.5px solid var(--line-strong);background:var(--field);color:var(--ink);font-size:16.5px;transition:border-color .2s,box-shadow .2s}
.field textarea{min-height:120px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--navy-2);box-shadow:0 0 0 4px color-mix(in srgb,var(--navy-2) 22%,transparent)}
.field.bad input,.field.bad select,.field.bad textarea{border-color:var(--err)}
.field .err{display:none;color:var(--err);font-weight:600;font-size:15px}
.field.bad .err{display:block}
.grid3{display:grid;grid-template-columns:1.1fr 1.2fr .9fr;gap:14px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media (max-width:640px){.grid3,.grid2{grid-template-columns:1fr;gap:0}}
.qform .dmg{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:520px){.qform .dmg{grid-template-columns:repeat(2,minmax(0,1fr))}}
.qform .dmg input,.seg input{position:absolute;opacity:0;width:1px;height:1px}
.qform .dmg li{position:relative}
.qform .dmg input:checked+label{border-color:var(--green);box-shadow:inset 0 0 0 2px var(--green);background:var(--green-soft)}
.qform .dmg input:focus-visible+label,.seg input:focus-visible+label{outline:3px solid var(--focus);outline-offset:3px}
.seg{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.seg li{position:relative}
.seg label{display:inline-flex;align-items:center;min-height:46px;padding:0 16px;border-radius:9px;border:1.5px solid var(--line-strong);background:var(--field);font-weight:600;font-size:15.5px;cursor:pointer;transition:border-color .2s,background-color .2s}
.seg input:checked+label{border-color:var(--green);background:var(--green-soft);box-shadow:inset 0 0 0 1.5px var(--green)}
.qnote{display:none;font-size:15px;color:var(--ink-2);background:var(--green-soft);border-radius:8px;padding:10px 12px;margin-top:8px}
.qnote.on{display:block}
.qnote{margin:14px 0 0}
.errsum{display:none;border:2px solid var(--err);border-radius:12px;padding:16px 20px;margin-bottom:28px;background:color-mix(in srgb,var(--err) 7%,var(--paper))}
.errsum.on{display:block}
.errsum h2{font-size:19px;color:var(--err);margin-bottom:6px}
.errsum ul{margin:0;padding-left:20px}
.errsum a{color:var(--ink);text-decoration:underline;font-weight:600}
.submit-row{display:flex;flex-wrap:wrap;align-items:center;gap:22px;margin-top:8px}
.qside{position:sticky;top:150px;background:var(--band);color:var(--on-band);border-radius:var(--layout-radius,10px);padding:28px 26px}
.qside h3{color:#fff;margin-bottom:10px}
.qside p,.qside li{color:var(--on-band-2);font-size:15.5px}
.qside ul{padding-left:18px;margin:0 0 16px}
.qside .call{color:#fff}
@media (max-width:960px){.qside{position:static}}
.summary{display:none;border-radius:var(--layout-radius,10px);border:2px solid var(--green);padding:28px;background:var(--green-soft)}
.summary.on{display:block}
.summary h2{font-size:26px;margin-bottom:8px}
.summary dl{display:grid;grid-template-columns:max-content 1fr;gap:8px 22px;margin:18px 0 24px;font-size:16.5px}
.summary dt{font-weight:600;color:var(--ink-3)}
.summary dd{margin:0;color:var(--ink);overflow-wrap:anywhere}
.summary .actions{display:flex;flex-wrap:wrap;gap:18px;align-items:center}
.linkbtn{font-weight:600;text-decoration:underline;text-underline-offset:4px;color:var(--ink)}
@media (max-width:520px){.summary dl{grid-template-columns:1fr;gap:2px}.summary dd{margin-bottom:10px}}
.dmg-field{margin-bottom:0}
.field.bad .dmg label{border-color:var(--err)}
.chips-field{margin:14px 0 0;max-width:240px}
.qform .notes-hint{margin:0}
.hp{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
.consent{margin:0 0 22px}
.field .ck{display:flex;gap:12px;align-items:flex-start;cursor:pointer}
.ck input{width:22px;height:22px;margin:2px 0 0;flex:none;accent-color:var(--green)}
.field.bad .ck span{color:var(--err)}
.net-err{border:2px solid var(--err);border-radius:12px;padding:16px 20px;margin:0 0 22px;background:color-mix(in srgb,var(--err) 7%,var(--paper))}
.net-err p{margin:0 0 12px;font-weight:600;color:var(--ink)}
.net-err a{color:var(--ink);text-decoration:underline;font-weight:700;white-space:nowrap}
.qsending #qSend{opacity:.7;pointer-events:none}
.summary .sum-line{font-weight:600;color:var(--ink)}

.endcta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:26px}
.endcta h2{max-width:20ch}
.endcta .ctas{display:flex;align-items:center;gap:24px;flex-wrap:wrap}

.share-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
.share-row a,.share-row button{display:inline-flex;align-items:center;gap:9px;min-height:46px;padding:0 18px;border-radius:9px;border:1.5px solid var(--line-strong);font-weight:600;font-size:15.5px;color:var(--ink);background:var(--paper);transition:border-color .2s}
.share-row a:hover,.share-row button:hover{border-color:var(--green)}
.share-row svg{width:18px;height:18px;color:var(--navy-2)}

.ft{background:var(--band);color:var(--on-band-2);padding:64px 0 30px;font-size:15.5px}
.ft .row{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:34px}
.ft-logo{background:transparent;border-radius:0;padding:0;display:inline-block}
.ft-logo img{height:44px;width:auto}.ft-logo span{display:block;margin-top:10px;color:#fff;font-weight:700;font-size:18px}
.ft h4{font-family:var(--display);color:#fff;font-size:16px;font-weight:700;margin:6px 0 12px}
.ft ul{list-style:none;margin:0;padding:0;display:grid;gap:7px}
.ft a:hover{color:#fff;text-decoration:underline}
.ft .legal{margin-top:52px;font-size:15px;display:flex;flex-wrap:wrap;gap:6px 18px;justify-content:space-between}
.ft .flag{display:inline-block;width:18px;height:11px;vertical-align:-1px;margin-right:6px;background:linear-gradient(90deg,var(--red) 0 26%,#fff 26% 74%,var(--red) 74%)}
@media (max-width:900px){.ft .row{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.ft .row{grid-template-columns:1fr}}

[data-anim]{opacity:0;transform:translateY(22px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
[data-anim].in{opacity:1;transform:none}
.hero .rise{opacity:0;transform:translateY(16px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.hero.in .rise{opacity:1;transform:none}
.hero .rise.d2{transition-delay:.35s}.hero .rise.d3{transition-delay:.5s}.hero .rise.d4{transition-delay:.65s}
.hero h1 .w{opacity:0;transform:translateY(.32em);transition:opacity .7s var(--ease),transform .7s var(--ease),filter .7s var(--ease)}
.hero h1 .w.in{opacity:1;transform:none;filter:none}
@media (prefers-reduced-motion:reduce){
  [data-anim],.hero .rise,.hero h1 .w{opacity:1!important;transform:none!important;filter:none!important;transition:none!important}
  body.calm-go .marquee .mq{animation:none}
}

.chat-fab{position:fixed;right:16px;bottom:16px;z-index:70;display:flex;align-items:center;gap:10px;height:58px;padding:0 18px 0 12px;border-radius:14px;background:var(--navy);color:#fff;box-shadow:0 16px 30px -14px rgba(4,22,42,.65);font-family:var(--display);font-weight:700;font-size:15.5px;transition:transform .3s var(--ease),opacity .3s}
.chat-fab:hover{transform:translateY(-2px)}
.chat-fab svg{width:40px;height:32px;flex:none}
.chat-fab.aside{opacity:0;pointer-events:none;transform:translateY(16px)}
@media (max-width:640px){.chat-fab{padding:0 10px;height:54px}.chat-fab .t{display:none}}
.chat{position:fixed;right:16px;bottom:86px;z-index:95;width:min(380px,calc(100vw - 32px));max-height:min(560px,calc(100vh - 120px));display:none;flex-direction:column;background:var(--paper);border-radius:16px;box-shadow:0 30px 60px -20px rgba(4,22,42,.55),0 2px 10px rgba(4,22,42,.12);overflow:hidden}
.chat.on{display:flex}
.chat-hd{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:var(--navy);color:#fff}
.chat-hd .id{display:flex;align-items:center;gap:12px}
.chat-hd .av{background:transparent;border-radius:0;padding:0}
.chat-hd .av img{height:30px;width:auto}
.chat-hd b{display:block;font-family:var(--display);font-size:16px}
.chat-hd small{font-size:15px;color:#C9D8E6}
.chat-hd button{color:#fff;font-size:28px;width:40px;height:40px;line-height:1}
.chat-log{padding:16px;overflow:auto;display:flex;flex-direction:column;gap:10px;flex:1;min-height:180px}
.msg{max-width:86%;padding:10px 14px;border-radius:12px;font-size:15.5px;line-height:1.45}
.msg.bot{background:var(--paper-2);color:var(--ink);border-bottom-left-radius:4px}
.msg.you{background:var(--navy);color:#fff;margin-left:auto;border-bottom-right-radius:4px}
.msg.typing{opacity:.6}
.chat-sugg{display:flex;flex-direction:column;align-items:flex-start;padding:0 16px 8px}
.chat-sugg button{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0;font-size:15.5px;font-weight:600;color:var(--green-deep);text-align:left;transition:color .2s}
.chat-sugg button::after{content:"\2192";transition:transform .2s}
.chat-sugg button:hover{color:var(--ink)}
.chat-sugg button:hover::after{transform:translateX(3px)}
.chat form{display:flex;gap:8px;padding:12px;background:var(--paper-2)}
.chat input{flex:1;min-width:0;min-height:44px;padding:0 12px;border-radius:9px;border:0;background:var(--field);box-shadow:inset 0 1px 3px rgba(4,22,42,.14);font-size:15.5px}
.chat form button{background:var(--accent);color:var(--on-accent);border-radius:9px;padding:0 16px;font-weight:700}

.hero.slim{min-height:40vh}
.hero.slim .container{padding-bottom:96px}
@media (max-width:760px){.hero.slim{min-height:44svh}}
[hidden]{display:none!important}
.two .dmg{grid-template-columns:repeat(3,minmax(0,1fr))}

.about-s{background:linear-gradient(90deg,var(--paper) 0 calc(50% + 28px),var(--band) calc(50% + 28px) 100%)}
.about-s .slogan-plate{padding:18px 0 10px 28px}
@media (max-width:860px){
  .about-s{background:var(--paper);padding-bottom:0}
  .about-s .slogan-plate{background:var(--band);margin:40px calc(50% - 50vw) 0;padding:44px clamp(16px,4vw,40px) 50px}
}

.shots{background:var(--band);display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:6px;padding:0 0 6px}
.shots figure{margin:0;overflow:hidden;position:relative}
.shots img{width:100%;height:clamp(250px,27vw,380px);object-fit:cover}
@media (max-width:640px){.shots{grid-template-columns:1fr 1fr}.shots figure:first-child{grid-column:1/-1}.shots img{height:170px}.shots figure:first-child img{height:230px}}

.rowx .art.media{background:none;overflow:visible;border-radius:0;position:relative;padding:0 0 38px}
.media .ph{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:var(--layout-radius,10px);box-shadow:0 30px 60px -32px rgba(4,22,42,.6)}
.media .inset{position:absolute;left:-22px;bottom:0;width:46%;border-radius:var(--layout-radius,10px);overflow:hidden;background:linear-gradient(180deg,var(--sky-1),var(--sky-2));border:5px solid var(--plate);box-shadow:0 20px 36px -18px rgba(4,22,42,.55)}
.rowx.flip .media .inset{left:auto;right:-22px}
@media (max-width:860px){.rowx .art.media{padding-bottom:30px}.media .inset,.rowx.flip .media .inset{left:auto;right:12px;width:50%;border-width:4px}}

.pband{margin:0;background:var(--band);overflow:hidden}
.pband img{width:100%;height:clamp(230px,34vw,460px);object-fit:cover}

.jo-clearhdr{--hdr-h:117px}
@media (max-width:760px){.jo-clearhdr{--hdr-h:93px}}
.jo-clearhdr .hero{margin-top:calc(-1 * var(--hdr-h));padding-top:var(--hdr-h);min-height:calc(88vh + var(--hdr-h))}
.jo-clearhdr .hero.page{min-height:calc(52vh + var(--hdr-h))}
.jo-clearhdr .hero.slim{min-height:calc(40vh + var(--hdr-h))}
@media (max-width:760px){
  .jo-clearhdr .hero{min-height:calc(80svh + var(--hdr-h))}
  .jo-clearhdr .hero.page{min-height:calc(56svh + var(--hdr-h))}
  .jo-clearhdr .hero.slim{min-height:calc(44svh + var(--hdr-h))}
}
#hdr::before{content:"";position:absolute;left:0;right:0;top:0;height:calc(100% + 70px);z-index:-1;pointer-events:none;opacity:0;transition:opacity .35s ease;
  background:linear-gradient(180deg,color-mix(in srgb,var(--paper) 70%,transparent) 0%,color-mix(in srgb,var(--paper) 46%,transparent) 58%,transparent 100%)}
.jo-clearhdr #hdr:not(.jo-solid){background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:none}
.jo-clearhdr #hdr:not(.jo-solid)::before{opacity:1}
.jo-clearhdr #hdr:not(.jo-solid) nav a,.jo-clearhdr #hdr:not(.jo-solid) .hdr-phone{text-shadow:0 0 14px color-mix(in srgb,var(--paper) 92%,transparent),0 1px 2px color-mix(in srgb,var(--paper) 75%,transparent)}
.jo-clearhdr #hdr:not(.jo-solid) nav a:hover{background:color-mix(in srgb,var(--paper) 62%,transparent)}
@media (max-width:760px){
  .jo-clearhdr .hero .veil{background:linear-gradient(180deg,color-mix(in srgb,var(--paper) 35%,transparent) 0%,color-mix(in srgb,var(--paper) 93%,transparent) calc(var(--hdr-h) + 40px),color-mix(in srgb,var(--paper) 90%,transparent) 48%,color-mix(in srgb,var(--paper) 55%,transparent) 65%,transparent 82%)}
  .jo-clearhdr .hero.long .veil{background:linear-gradient(180deg,color-mix(in srgb,var(--paper) 35%,transparent) 0%,color-mix(in srgb,var(--paper) 93%,transparent) calc(var(--hdr-h) + 40px),color-mix(in srgb,var(--paper) 90%,transparent) 64%,color-mix(in srgb,var(--paper) 62%,transparent) 80%,transparent 97%)}
}
.pband.duo{background:var(--band)}
.pband.duo img{mix-blend-mode:luminosity}
