@font-face{font-family:"Oswald";src:url("assets/oswald.woff2") format("woff2");
  font-weight:400 600;font-style:normal;font-display:swap;}
@font-face{font-family:"Barlow";src:url("assets/barlow.woff2") format("woff2");
  font-weight:400 600;font-style:normal;font-display:swap;}

:root{
  --navy:#142F4C; --navy-deep:#0B1C2E; --navy-line:#25445F;
  --gold:#F0BC44; --gold-hi:#FFD371;
  --paper:#FCFBF8; --paper-2:#F2EFE8;
  --ink:#12161B; --ink-soft:#525C67; --line:#DEDAD1;
  --max:1200px; --r:3px; --ease:cubic-bezier(.16,1,.3,1);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;scroll-padding-top:96px;color-scheme:light;
  scrollbar-color:var(--navy-line) var(--paper);scrollbar-width:thin;}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}
body{margin:0;background:var(--paper);color:var(--ink);
  font-family:"Barlow",system-ui,-apple-system,"Segoe UI",sans-serif;
  font-size:17px;line-height:1.6;overflow-x:hidden;font-variant-numeric:tabular-nums;}
h1,h2,h3{margin:0;font-family:"Oswald",Impact,sans-serif;font-weight:600;
  text-transform:uppercase;line-height:1.02;letter-spacing:-.004em;text-wrap:balance;}
p{margin:0;}
a{color:inherit;}
img{max-width:100%;display:block;}
::selection{background:var(--gold);color:var(--navy-deep);}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px;border-radius:2px;}
.wrap{max-width:var(--max);margin:0 auto;padding:0 26px;}
.grain{position:fixed;inset:0;z-index:60;pointer-events:none;opacity:.032;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");}

/* ---------- nav with Zach's emblem ---------- */
header.bar{position:sticky;top:0;z-index:50;background:rgba(11,28,46,.93);
  backdrop-filter:blur(14px) saturate(150%);-webkit-backdrop-filter:blur(14px) saturate(150%);
  border-bottom:1px solid var(--navy-line);}
@media(prefers-reduced-transparency:reduce){header.bar{background:var(--navy-deep);}}
.bar-in{max-width:var(--max);margin:0 auto;padding:0 26px;height:86px;
  display:flex;align-items:center;gap:28px;}
.mark{display:flex;align-items:center;gap:15px;text-decoration:none;margin-right:auto;
  min-height:44px;}
.emblem{position:relative;width:58px;height:58px;flex:none;border-radius:4px;
  overflow:hidden;background:var(--navy-deep);
  box-shadow:0 0 0 1px rgba(240,188,68,.22), 0 8px 22px -10px rgba(0,0,0,.8);
  transition:transform .5s var(--ease),box-shadow .5s var(--ease);}
.emblem img{width:100%;height:100%;object-fit:cover;transform:scale(1.06);}
/* one authored moment: a gold sweep crosses the shield on load, and on hover */
.emblem::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(105deg,transparent 38%,rgba(255,225,150,.55) 50%,transparent 62%);
  transform:translateX(-130%);}
.mark:hover .emblem{transform:translateY(-1px) scale(1.03);
  box-shadow:0 0 0 1px rgba(240,188,68,.5), 0 12px 28px -10px rgba(0,0,0,.85);}
.wordmark{display:grid;gap:2px;}
.wordmark b{font-family:"Oswald",sans-serif;font-weight:600;font-size:23px;
  letter-spacing:.15em;text-transform:uppercase;color:#fff;line-height:1;}
.wordmark i{font-style:normal;font-family:"Oswald",sans-serif;font-size:11px;
  letter-spacing:.34em;text-transform:uppercase;color:var(--gold);line-height:1;}
@media(prefers-reduced-motion:no-preference){
  .emblem::after{animation:sweep 1.1s var(--ease) .5s 1 both;}
  .mark:hover .emblem::after{animation:sweep 1s var(--ease) 1;}
}
@keyframes sweep{from{transform:translateX(-130%);}to{transform:translateX(130%);}}
.bar-nav{display:flex;align-items:center;gap:26px;}
.bar-nav a{color:#BCCBDA;text-decoration:none;font-size:17px;transition:color .2s var(--ease);}
.bar-nav a:hover{color:#fff;}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;
  padding:15px 28px;border-radius:var(--r);font-weight:600;text-decoration:none;
  font-size:17px;min-height:48px;border:1px solid transparent;cursor:pointer;font-family:inherit;
  transition:transform .2s var(--ease),background .2s var(--ease),
             border-color .2s var(--ease),box-shadow .2s var(--ease);}
.btn:active{transform:translateY(1px);}
.btn-gold{background:var(--gold);color:#231703;box-shadow:0 10px 22px -12px rgba(0,0,0,.55);}
.btn-gold:hover{background:var(--gold-hi);box-shadow:0 14px 30px -12px rgba(0,0,0,.65);}
.btn-ghost{border-color:#3B5977;color:#fff;}
.btn-ghost:hover{border-color:var(--gold);background:rgba(240,188,68,.08);}
.btn-line{border-color:var(--navy);color:var(--navy);}
.btn-line:hover{background:var(--navy);color:#fff;}
.btn-sm{padding:11px 20px;min-height:44px;}
.bar-nav a.btn-gold{color:#231703;}
@media(max-width:1100px){
  .bar-in{height:74px;}
  .emblem{width:48px;height:48px;}
  .wordmark b{font-size:20px;}
  .bar-nav a:not(.btn){display:none;}
}

/* ---------- hero, flag behind everything ---------- */
.hero{position:relative;color:#fff;padding:96px 0 104px;overflow:hidden;
  background:var(--navy-deep);isolation:isolate;}
.hero .flagbg{position:absolute;inset:0;z-index:-2;
  background-image:url("assets/flag-bg.jpg");background-size:cover;
  background-position:center 42%;opacity:.62;filter:saturate(.85) contrast(1.08);}
.hero .veil{position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:
    linear-gradient(100deg, rgba(11,28,46,.94) 0%, rgba(11,28,46,.86) 38%, rgba(11,28,46,.58) 62%, rgba(11,28,46,.70) 100%),
    linear-gradient(180deg, rgba(11,28,46,.30) 0%, transparent 30%, rgba(11,28,46,.55) 100%);}
.hero-in{position:relative;max-width:var(--max);margin:0 auto;padding:0 26px;
  display:grid;grid-template-columns:1.04fr .96fr;gap:60px;align-items:center;}
.hero h1{font-size:clamp(43px,6.7vw,80px);color:#fff;
  text-shadow:0 2px 22px rgba(0,0,0,.45);}
.hero h1 .g{color:var(--gold);}
.hero .lede{margin-top:22px;color:#D3DEE9;font-size:21px;max-width:44ch;line-height:1.5;
  text-shadow:0 1px 12px rgba(0,0,0,.5);}
.cta-row{display:flex;flex-wrap:wrap;gap:13px;margin-top:32px;}
.hero-photo{position:relative;border-radius:var(--r);overflow:hidden;
  box-shadow:0 34px 66px -30px rgba(0,0,0,.9), 0 0 0 1px rgba(255,255,255,.08);}
.hero-photo img{width:100%;height:540px;object-fit:cover;object-position:center 26%;}
@media(max-width:920px){
  .hero{padding:58px 0 66px;}
  .hero-in{grid-template-columns:1fr;gap:36px;}
  .hero-photo img{height:330px;}
}

.strip{background:var(--navy-deep);border-top:1px solid var(--navy-line);
  border-bottom:1px solid var(--navy-line);}
.strip-in{max-width:var(--max);margin:0 auto;padding:0 26px;
  display:grid;grid-template-columns:repeat(3,1fr);}
.pcell{padding:34px 30px;border-right:1px solid var(--navy-line);}
.pcell:first-child{padding-left:0;}
.pcell:last-child{border-right:0;}
.pcell b{display:block;font-family:"Oswald",sans-serif;font-size:21px;color:var(--gold);
  text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px;}
.pcell span{color:#9FB4C8;font-size:17px;line-height:1.5;display:block;}
@media(max-width:780px){
  .strip-in{grid-template-columns:1fr;}
  .pcell,.pcell:first-child{border-right:0;border-bottom:1px solid var(--navy-line);padding:24px 0;}
  .pcell:last-child{border-bottom:0;}
}

section{padding:96px 0;}
section.wrap{padding:96px 26px;}
.h2{font-size:clamp(33px,4.3vw,50px);max-width:18ch;}
.sub{margin-top:17px;color:var(--ink-soft);font-size:21px;max-width:58ch;line-height:1.5;}

/* ---------- real work gallery ---------- */
.work{background:var(--paper-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.gal{display:grid;grid-template-columns:repeat(6,1fr);gap:14px;margin-top:44px;}
.gal figure{margin:0;position:relative;border-radius:var(--r);overflow:hidden;
  box-shadow:0 18px 38px -26px rgba(11,28,46,.6);background:var(--navy-deep);}
.gal img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease);}
.gal figure:hover img{transform:scale(1.035);}
.gal figure:nth-child(1){grid-column:span 4;aspect-ratio:16/10;}
.gal figure:nth-child(2){grid-column:span 2;aspect-ratio:4/5;}
.gal figure:nth-child(3){grid-column:span 2;aspect-ratio:4/5;}
.gal figure:nth-child(4){grid-column:span 2;aspect-ratio:4/5;}
.gal figure:nth-child(5){grid-column:span 2;aspect-ratio:4/5;}
@media(max-width:820px){
  .gal{grid-template-columns:repeat(2,1fr);}
  .gal figure:nth-child(1){grid-column:span 2;}
  .gal figure:nth-child(n+2){grid-column:span 1;}
}

/* ---------- services, uneven on purpose ---------- */
.svc{display:grid;grid-template-columns:repeat(6,1fr);gap:1px;margin-top:48px;
  background:var(--line);border:1px solid var(--line);}
.svc article{background:var(--paper);padding:34px 32px 38px;}
.svc article:nth-child(1),.svc article:nth-child(2){grid-column:span 3;}
.svc article:nth-child(3),.svc article:nth-child(4),.svc article:nth-child(5){grid-column:span 2;}
.svc article:nth-child(6){grid-column:span 6;background:var(--navy);color:#fff;}
.svc article:nth-child(6) h3{color:var(--gold);}
.svc article:nth-child(6) p{color:#BCCBDA;max-width:64ch;}
.svc h3{font-size:26px;color:var(--navy);}
.svc p{margin-top:10px;color:var(--ink-soft);font-size:17px;}
@media(max-width:860px){
  .svc{grid-template-columns:1fr;}
  .svc article,.svc article:nth-child(n){grid-column:span 1;}
}

/* ---------- flag retirement ---------- */
.flag{position:relative;background:var(--navy-deep);color:#fff;overflow:hidden;padding:0;}
.flag-in{display:grid;grid-template-columns:1.02fr .98fr;align-items:stretch;}
.flag-photo{position:relative;min-height:520px;}
.flag-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  object-position:center 45%;}
.flag-photo::after{content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,transparent 55%,rgba(11,28,46,.85) 100%);}
.flag-copy{padding:88px 26px 88px 60px;max-width:660px;}
.flag-copy .free{display:inline-block;font-family:"Oswald",sans-serif;font-size:13px;
  letter-spacing:.22em;text-transform:uppercase;color:var(--navy-deep);
  background:var(--gold);padding:7px 14px;border-radius:2px;margin-bottom:20px;}
.flag-copy h2{color:#fff;font-size:clamp(33px,4.2vw,50px);}
.flag-copy h2 .g{color:var(--gold);}
.flag-copy p{margin-top:18px;color:#C6D4E1;font-size:21px;max-width:48ch;line-height:1.5;}
.flag-copy .rule{margin-top:28px;padding-top:22px;border-top:1px solid var(--navy-line);
  font-family:"Oswald",sans-serif;font-size:17px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--gold);}
@media(max-width:960px){
  .flag-in{grid-template-columns:1fr;}
  .flag-photo{min-height:320px;}
  .flag-photo::after{background:linear-gradient(180deg,transparent 50%,rgba(11,28,46,.9) 100%);}
  .flag-copy{padding:56px 26px 64px;}
}

.care{background:var(--paper);}
.care-in{display:grid;grid-template-columns:.92fr 1.08fr;gap:56px;align-items:center;}
.care-photo{position:relative;border-radius:var(--r);overflow:hidden;
  box-shadow:0 28px 54px -32px rgba(20,47,76,.6), 0 0 0 1px rgba(20,47,76,.08);}
.care-photo img{width:100%;height:460px;object-fit:cover;object-position:center 42%;}
.care ul{list-style:none;margin:28px 0 0;padding:0;}
.care li{display:flex;gap:15px;padding:16px 0;border-bottom:1px solid var(--line);font-size:17px;}
.care li:last-child{border-bottom:0;}
.care li svg{width:22px;height:22px;flex:none;margin-top:2px;color:var(--gold);}
@media(max-width:1100px){
  .care-in{grid-template-columns:1fr;gap:34px;}
  .care-photo img{height:300px;}
}

.band{position:relative;background:var(--navy);border-top:1px solid var(--navy-line);
  color:#fff;padding:88px 0;}
.band-in{display:grid;grid-template-columns:auto 1fr;gap:46px;align-items:center;}
.band-in img{width:200px;border-radius:var(--r);box-shadow:0 22px 44px -22px rgba(0,0,0,.75);}
.band h2{color:#fff;font-size:clamp(30px,3.8vw,45px);}
.band p{margin-top:18px;color:#BCCBDA;font-size:21px;max-width:56ch;line-height:1.5;}
.band .quote{margin-top:22px;padding-left:20px;border-left:2px solid var(--gold);
  color:#fff;font-size:21px;}
@media(max-width:780px){
  .band-in{grid-template-columns:1fr;gap:28px;}
  .band-in img{width:158px;}
}

/* commercial */
.comm{background:var(--navy);color:#fff;border-top:1px solid var(--navy-line);
  border-bottom:1px solid var(--navy-line);}
.comm h2{color:#fff;}
.comm .sub{color:#BCCBDA;}
.comm-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:44px;
  background:var(--navy-line);border:1px solid var(--navy-line);}
.comm-grid div{background:var(--navy);padding:30px 28px 34px;}
.comm-grid h3{font-size:22px;color:var(--gold);}
.comm-grid p{margin-top:9px;color:#BCCBDA;font-size:17px;}
@media(max-width:820px){.comm-grid{grid-template-columns:1fr;}}

/* credential */
.cred{display:grid;grid-template-columns:auto 1fr;gap:26px;align-items:start;
  margin-top:44px;padding:30px 32px;border:1px solid rgba(240,188,68,.32);
  border-radius:var(--r);background:rgba(240,188,68,.05);}
.cred svg{width:42px;height:42px;color:var(--gold);flex:none;}
.cred b{display:block;font-family:"Oswald",sans-serif;font-size:21px;
  text-transform:uppercase;letter-spacing:.03em;color:#fff;}
.cred p{margin-top:9px;color:#BCCBDA;font-size:17px;max-width:62ch;}
.cred .stat{display:inline-block;margin-top:14px;font-family:"Oswald",sans-serif;
  font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:var(--navy-deep);
  background:var(--gold);padding:6px 12px;border-radius:2px;}
@media(max-width:640px){.cred{grid-template-columns:1fr;gap:16px;}}

.area-grid{display:flex;flex-wrap:wrap;gap:11px;margin-top:32px;}
.area-grid span{border:1px solid var(--line);border-radius:100px;padding:10px 19px;
  font-size:17px;color:var(--ink-soft);background:#fff;}

.quote-s{background:var(--navy-deep);color:#fff;padding:96px 0;}
.quote-s h2{color:#fff;font-size:clamp(33px,4.5vw,52px);}
.quote-s > .wrap > p{margin-top:18px;color:#BCCBDA;font-size:21px;max-width:52ch;line-height:1.5;}
form.q{margin-top:44px;display:grid;gap:26px;max-width:780px;}
.loads{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;}
.load{position:relative;}
.load input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer;}
.load span{display:block;border:1px solid #33536F;border-radius:var(--r);padding:18px 14px;
  text-align:center;cursor:pointer;transition:border-color .2s var(--ease),background .2s var(--ease);}
.load b{display:block;font-family:"Oswald",sans-serif;font-size:26px;color:var(--gold);
  line-height:1;margin-bottom:6px;}
.load small{display:block;font-size:13px;color:#9FB4C8;line-height:1.4;}
.load input:checked + span{border-color:var(--gold);background:rgba(240,188,68,.1);}
.load input:focus-visible + span{outline:3px solid var(--gold);outline-offset:2px;}
.fields{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.f{display:grid;gap:8px;}
.f label{font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:#A9BCCE;
  font-family:"Oswald",sans-serif;}
.f input,.f textarea{background:#0F2440;border:1px solid #33536F;border-radius:var(--r);
  padding:14px 15px;color:#fff;font:inherit;font-size:17px;min-height:50px;
  transition:border-color .2s var(--ease);}
.f input::placeholder,.f textarea::placeholder{color:#8296AB;}
.f input:focus,.f textarea:focus{outline:2px solid var(--gold);outline-offset:1px;border-color:var(--gold);}
.f textarea{min-height:120px;resize:vertical;}
.f-full{grid-column:1/-1;}
.hint{font-size:15px;color:#A9BCCE;}
.qsend{display:flex;flex-wrap:wrap;gap:16px;align-items:center;}
.cinfo{margin-top:38px;display:flex;flex-wrap:wrap;gap:12px 34px;font-size:17px;color:#A9BCCE;}
.cinfo a{color:var(--gold);text-decoration:none;padding:11px 3px;display:inline-block;}
.cinfo a:hover{text-decoration:underline;text-underline-offset:4px;}
@media(max-width:720px){
  .loads{grid-template-columns:repeat(2,1fr);}
  .fields{grid-template-columns:1fr;}
}

.social{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px;}
.social a{display:inline-flex;align-items:center;gap:10px;min-height:48px;
  padding:13px 20px;border:1px solid #33536F;border-radius:var(--r);
  color:#D3DEE9;text-decoration:none;font-size:17px;
  transition:border-color .2s var(--ease),background .2s var(--ease),color .2s var(--ease);}
.social a:hover{border-color:var(--gold);color:#fff;background:rgba(240,188,68,.08);}
.social svg{width:21px;height:21px;flex:none;}
.foot-social{display:flex;gap:16px;align-items:center;}
.foot-social a{color:#8FA3B8;display:inline-flex;min-height:44px;min-width:44px;justify-content:center;align-items:center;
  transition:color .2s var(--ease);}
.foot-social a:hover{color:var(--gold);}
.foot-social svg{width:20px;height:20px;}
footer{background:var(--navy-deep);border-top:1px solid var(--navy-line);padding:28px 0;}
.foot-in{display:flex;flex-wrap:wrap;gap:12px 28px;align-items:center;color:#8FA3B8;font-size:15px;}
.foot-in .right{margin-left:auto;letter-spacing:.12em;text-transform:uppercase;font-size:13px;}

.rv{opacity:0;transform:translateY(20px);}
.rv.in{opacity:1;transform:none;transition:opacity .75s var(--ease),transform .75s var(--ease);}
@supports (animation-timeline: view()){
  @media(prefers-reduced-motion:no-preference){
    .rv{opacity:1;transform:none;animation:rise linear both;
      animation-timeline:view();animation-range:entry 5% cover 26%;}
    .rv.in{transition:none;}
  }
}
@keyframes rise{from{opacity:0;transform:translateY(22px);}to{opacity:1;transform:none;}}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{transition-duration:.01ms !important;animation-duration:.01ms !important;}
  .rv,.rv.in{opacity:1;transform:none;animation:none;transition:none;}
  .emblem::after{animation:none;}
}

/* ---------- load scale ---------- */
.loadscale{background:var(--paper-2);}
.rig{margin-top:24px;display:flex;flex-wrap:wrap;gap:8px 16px;align-items:baseline;}
.rig b{font-family:"Oswald",sans-serif;font-weight:600;color:var(--navy);
  text-transform:uppercase;letter-spacing:.07em;font-size:19px;}
.rig span{color:var(--ink-soft);font-size:19px;}
.rig span + span{border-left:1px solid var(--line);padding-left:16px;}

.tiers{display:grid;grid-template-columns:repeat(5,1fr);margin-top:40px;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.tier{padding:26px 20px 30px;border-right:1px solid var(--line);
  transition:background .3s var(--ease);}
.tier:last-child{border-right:0;}
.tier:hover{background:rgba(255,255,255,.6);}
.tier svg{width:100%;height:auto;display:block;}
.tier h3{margin-top:20px;font-size:20px;color:var(--navy);}
.tier .yd{display:block;margin-top:7px;font-family:"Oswald",sans-serif;font-weight:500;
  font-size:16px;color:#8A5F14;letter-spacing:.05em;text-transform:uppercase;}
.tier p{margin-top:10px;color:var(--ink-soft);font-size:15px;line-height:1.55;}
@media(max-width:960px){
  .tiers{grid-template-columns:repeat(2,1fr);border-bottom:0;}
  .tier,button.tier{border-bottom:1px solid var(--line);}
  .tier:nth-child(2n),button.tier:nth-child(2n){border-right:0;}
}
@media(max-width:520px){
  .tiers{grid-template-columns:1fr;}
  .tier{border-right:0;}
}
.wnote{margin-top:36px;background:#fff;border:1px solid var(--line);border-radius:var(--r);
  padding:24px 28px;display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:start;}
.wnote > svg{width:26px;height:26px;color:#8A5F14;margin-top:2px;}
.wnote b{display:block;font-family:"Oswald",sans-serif;font-weight:600;font-size:19px;
  color:var(--navy);text-transform:uppercase;letter-spacing:.03em;margin-bottom:7px;}
.wnote p{color:var(--ink-soft);font-size:17px;}
@media(max-width:560px){.wnote{grid-template-columns:1fr;gap:12px;padding:22px;}}

/* ---------- reviews ---------- */
.revs{display:grid;grid-template-columns:1fr 1fr;margin-top:40px;border-top:1px solid var(--line);}
.revs > article{padding:30px 34px 32px 0;border-bottom:1px solid var(--line);}
.revs > article:nth-child(even){padding-left:44px;border-left:1px solid var(--line);}
.revs > article:nth-child(odd){padding-right:44px;}
.revs > article:only-child{border-bottom:0;}
.revs .rate{color:#8A5F14;font-size:17px;letter-spacing:.16em;font-family:"Oswald",sans-serif;
  text-transform:uppercase;font-weight:500;}
.revs blockquote{margin:12px 0 0;font-size:19px;line-height:1.6;color:var(--ink);}
.revs cite{display:block;margin-top:14px;font-style:normal;font-size:16px;color:var(--ink-soft);}
.revs cite b{font-weight:600;color:var(--navy);}
.revs + .cta-row{margin-top:34px;}
@media(max-width:760px){
  .revs{grid-template-columns:1fr;}
  .revs > article,.revs > article:nth-child(even),.revs > article:nth-child(odd){
    padding:26px 0;border-left:0;}
}
.plats{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:34px;}
.plat{display:flex;gap:16px;align-items:center;text-decoration:none;background:#fff;
  border:1px solid var(--line);border-radius:var(--r);padding:22px 24px;min-height:48px;
  transition:border-color .18s,transform .18s var(--ease);}
.plat:hover{border-color:var(--navy);}
.plat:active{transform:translateY(1px);}
.plat > svg{width:30px;height:30px;flex:none;}
.plat b{display:block;font-family:"Oswald",sans-serif;font-weight:600;font-size:19px;
  color:var(--navy);text-transform:uppercase;letter-spacing:.03em;}
.plat .sub2{display:block;margin-top:3px;color:var(--ink-soft);font-size:16px;}
@media(max-width:700px){.plats{grid-template-columns:1fr;}}
.empty{margin-top:36px;border:1px dashed var(--line);background:#fff;padding:28px 30px;
  color:var(--ink-soft);font-size:17px;}

/* ---------- review form ---------- */
.phead{background:var(--navy-deep);color:#fff;padding:66px 0 70px;}
.phead h1{font-size:clamp(34px,5vw,58px);color:#fff;}
.phead p{margin-top:18px;color:#C9D4E0;font-size:21px;max-width:54ch;line-height:1.5;}
.formwrap{background:var(--paper-2);}
.form{max-width:660px;margin-top:34px;}
.form .f{display:block;margin-bottom:22px;}
.form .f > span{display:block;font-weight:600;font-size:16px;margin-bottom:7px;}
.form .f input,.form .f textarea{width:100%;font:inherit;font-size:17px;color:var(--ink);background:#fff;
  border:1px solid var(--line);border-radius:var(--r);padding:13px 14px;min-height:48px;}
.form .f textarea{min-height:150px;resize:vertical;line-height:1.6;}
.form .f input:focus,.form .f textarea:focus{border-color:var(--navy);outline:2px solid var(--gold);outline-offset:1px;}
.form fieldset.f{border:0;padding:0;margin-inline:0;}
.form fieldset.f legend{padding:0;font-weight:600;font-size:16px;margin-bottom:9px;}
.stars{display:flex;flex-wrap:wrap;gap:9px;}
.stars label{cursor:pointer;}
.form .stars input{position:absolute;width:1px;height:1px;opacity:0;}
.stars span{display:inline-flex;align-items:center;gap:6px;min-height:48px;box-sizing:border-box;
  border:1px solid var(--line);background:#fff;border-radius:100px;padding:11px 18px;
  font-size:16px;color:var(--ink-soft);transition:background .16s,border-color .16s,color .16s;}
.stars input:checked + span{background:var(--navy);border-color:var(--navy);color:#fff;}
.stars input:focus-visible + span{outline:3px solid var(--gold);outline-offset:3px;}
.consent{display:flex;gap:11px;align-items:flex-start;font-size:16px;color:var(--ink-soft);
  margin-bottom:24px;line-height:1.55;}
.consent input{width:20px;height:20px;margin-top:2px;flex:none;accent-color:var(--navy);}
.form button{border:0;cursor:pointer;font-family:inherit;}
.fnote{margin-top:16px;font-size:16px;color:var(--ink-soft);}

/* ---------- load scale as a control ---------- */
button.tier{font:inherit;text-align:left;background:none;border:0;border-right:1px solid var(--line);
  cursor:pointer;display:block;width:100%;}
button.tier:last-child{border-right:0;}
button.tier:hover{background:rgba(255,255,255,.65);}
button.tier:focus-visible{outline:3px solid var(--gold);outline-offset:-3px;}
button.tier[aria-pressed="true"]{background:#fff;box-shadow:inset 0 0 0 2px var(--navy);}
button.tier .pick{display:block;margin-top:12px;font-family:"Oswald",sans-serif;font-weight:500;
  font-size:14px;letter-spacing:.12em;text-transform:uppercase;color:var(--navy);opacity:0;
  transition:opacity .2s var(--ease);}
button.tier:hover .pick,button.tier[aria-pressed="true"] .pick{opacity:1;}
button.tier[aria-pressed="true"] .pick::before{content:"\2713 ";}
@media(max-width:960px){
  button.tier:nth-child(2n){border-right:0;}
}
@media(max-width:520px){
  button.tier{border-right:0;}
}
/* diagram inside the quote picker chips */
.chipsvg{display:block;width:100%;height:auto;margin-bottom:10px;}
.load span{display:flex;flex-direction:column;align-items:center;}
.load small{margin-top:2px;}

/* ---------- mobile menu ----------
   Under 900px the nav links were hidden with nothing to replace them, leaving
   every section unreachable on a phone. This gives them a real control. */
.menu-btn{display:none;background:none;border:1px solid #3B5977;border-radius:var(--r);
  width:46px;height:46px;padding:0;cursor:pointer;align-items:center;justify-content:center;
  flex-direction:column;gap:5px;transition:border-color .2s var(--ease);flex:none;}
.menu-btn:hover{border-color:var(--gold);}
.menu-btn:focus-visible{outline:3px solid var(--gold);outline-offset:3px;}
.menu-btn span{display:block;width:19px;height:2px;background:#fff;border-radius:2px;
  transition:transform .28s var(--ease),opacity .2s;}
.menu-btn[aria-expanded="true"] span:nth-child(1){transform:translateY(3.5px) rotate(45deg);}
.menu-btn[aria-expanded="true"] span:nth-child(2){transform:translateY(-3.5px) rotate(-45deg);}
@media(max-width:1100px){
  .menu-btn{display:flex;order:3;}
  .bar-nav{position:absolute;top:74px;left:0;right:0;background:var(--navy-deep);
    border-bottom:1px solid var(--navy-line);flex-direction:column;align-items:stretch;
    gap:0;padding:10px 26px 22px;display:none;
    max-height:calc(100vh - 74px);max-height:calc(100dvh - 74px);overflow-y:auto;
    overscroll-behavior:contain;}
  .bar-nav.open{display:flex;}
  .bar-nav a:not(.btn){display:block;padding:15px 0;font-size:18px;min-height:48px;
    border-bottom:1px solid var(--navy-line);}
  .bar-nav a.btn{margin-top:16px;width:100%;}
}

/* ---------- audit fixes ---------- */
/* Screen-reader-only text: <p> has role=paragraph, where aria-label is prohibited,
   so star ratings need real text rather than an attribute. */
.vh{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;}
.skip{position:fixed;left:0;top:-120px;z-index:100;background:var(--gold);
  color:#231703;padding:14px 22px;font-weight:600;border-radius:0 0 var(--r) 0;
  transition:top .15s var(--ease);}
.skip:focus{top:0;}

/* ---------- public review call-to-action ---------- */
.pubrev{margin-top:34px;background:var(--navy-deep);border-radius:var(--r);
  padding:30px 32px;display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center;}
.pubrev h3{color:#fff;font-size:24px;}
.pubrev p{margin-top:9px;color:#C9D4E0;font-size:17px;max-width:52ch;}
.pubrev .btn{white-space:nowrap;}
@media(max-width:760px){
  .pubrev{grid-template-columns:1fr;padding:26px 22px;}
  .pubrev .btn{width:100%;}
}

/* Booking. Same dark treatment as the quote section so the shared .q/.f field
   styles apply unchanged. The page only ever renders free/busy - it never sees
   who a job belongs to. */
.book-s{background:var(--navy-deep);color:#fff;padding:96px 0 48px;}
/* The quote section carries the same navy, so back to back these two would sit
   in a 192px trough. They split it instead - 48px each - so both keep real
   padding of their own and the gap between them reads as one break, not two. */
.book-s + .quote-s{padding-top:48px;}
.book-s h2{color:#fff;font-size:clamp(33px,4.5vw,52px);}
.book-s > .wrap > p{margin-top:18px;color:#BCCBDA;font-size:21px;max-width:52ch;line-height:1.5;}
.book-s .hint{color:#9FB4C8;}
.book-s .hint a{color:var(--gold);}
.slots{display:flex;flex-wrap:wrap;gap:9px;}
.slot{min-height:48px;padding:0 16px;border:1px solid #33536F;border-radius:var(--r);
  background:#0F2440;color:#fff;font:inherit;font-size:17px;cursor:pointer;
  font-variant-numeric:tabular-nums;transition:border-color .2s var(--ease);}
.slot:hover{border-color:var(--gold);}
.slot[aria-pressed="true"]{background:var(--gold);border-color:var(--gold);color:#231703;font-weight:600;}
.book-s select{width:100%;min-height:48px;background:#0F2440;border:1px solid #33536F;
  border-radius:var(--r);padding:0 12px;font:inherit;font-size:17px;color:#fff;}
.book-s select:focus{outline:2px solid var(--gold);outline-offset:1px;border-color:var(--gold);}
@media (max-width:640px){ .slot{flex:1 1 calc(50% - 5px);} }
