:root{
  --ink:#181530;
  --ink2:#3a3556;
  --zinc:#605c78;
  --paper:#eceaf1;
  --paper2:#f8f7fb;
  --white:#fff;
  --blue:#39306b;
  --blue2:#7466c9;
  --line:rgba(24,21,48,.15);
  --line-l:rgba(248,247,251,.2);
  --hdr:72px;
  /* layout scale: one place to widen everything on big screens */
  --maxw:1220px;
  --content:min(var(--maxw),90vw);
  --bleed:calc((100vw - var(--content)) / -2);
  --bleedcap:max(-240px,var(--bleed));
  --hero-h:clamp(340px,46vw,560px);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;font-size:100%}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:'Figtree',system-ui,sans-serif;font-size:1.094rem;line-height:1.62;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3{
  margin:0;font-family:'Bricolage Grotesque','Figtree',sans-serif;font-weight:800;
  line-height:1.0;letter-spacing:-.028em;
}
h1{font-size:clamp(2.75rem,5.6vw,4.6rem)}
h2{font-size:clamp(2.1rem,4vw,3.3rem)}
h3{font-size:clamp(1.6rem,2.5vw,2.25rem)}
p{margin:0 0 1.15em}
.wrap{width:var(--content);margin-inline:auto}
.mono{font-family:'Azeret Mono',ui-monospace,monospace}
.muted{color:var(--zinc)}

/* decal-style section marker, taken from the sticker on their trailers */
.decal{display:flex;align-items:center;gap:.8rem;margin:0 0 1.3rem}
.decal b{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:1.15rem;letter-spacing:-.03em;line-height:1}
.decal i{width:1px;height:20px;background:currentColor;opacity:.4;display:block}
.decal span{font-family:'Azeret Mono',monospace;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase}
.decal.blue{color:var(--blue)}
.decal.pale{color:var(--paper)}

/* buttons */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.6rem;cursor:pointer;text-decoration:none;
  font-family:'Figtree',sans-serif;font-weight:700;font-size:1rem;letter-spacing:.01em;
  padding:1.1rem 1.7rem;border:2px solid var(--ink);background:var(--ink);color:var(--paper2);
  transition:transform .16s ease,background .2s,color .2s,border-color .2s;
}
.btn:hover{background:var(--blue);border-color:var(--blue);transform:translateY(-2px)}
.btn.line{background:transparent;color:var(--ink)}
.btn.line:hover{background:var(--ink);color:var(--paper2);border-color:var(--ink)}
.btn.pale{background:var(--paper2);border-color:var(--paper2);color:var(--ink)}
.btn.pale:hover{background:var(--blue2);border-color:var(--blue2);color:var(--white)}
.btn:disabled{opacity:.35;cursor:not-allowed}
.btn:disabled:hover{background:var(--ink);border-color:var(--ink);transform:none}

/* ---------- header ---------- */
.hdr{position:sticky;top:0;z-index:90;background:rgba(236,234,241,.94);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.hdr-in{display:flex;align-items:center;height:var(--hdr);gap:1.4rem}
.brand{display:flex;align-items:center;gap:.8rem;text-decoration:none}
.brand img{height:29px;width:auto}
.brand span{
  font-family:'Azeret Mono',monospace;font-size:.62rem;letter-spacing:.24em;text-transform:uppercase;line-height:1.35;
  padding-left:.8rem;border-left:1px solid var(--line);color:var(--zinc);
}
.nav{margin-left:auto;display:flex;align-items:center;gap:1.9rem}
.nav a{text-decoration:none;font-weight:600;font-size:.95rem}
.nav a:not(.call):hover{color:var(--blue)}
.nav .call{
  background:var(--blue);color:var(--white);padding:.7rem 1.15rem;font-family:'Azeret Mono',monospace;
  font-size:.86rem;letter-spacing:.02em;font-weight:500;
}
.nav .call:hover{background:var(--ink)}
@media(max-width:920px){.nav a:not(.call){display:none}.brand span{display:none}}

/* ---------- hero ---------- */
.hero{padding:clamp(2.5rem,5vw,4.5rem) 0 0;position:relative}
.hero-grid{
  width:var(--content);margin-inline:auto;
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.92fr);gap:clamp(1.5rem,3vw,3rem);align-items:center;
}
.hero-copy h1{max-width:14ch}
.hero-copy h1 mark{background:none;color:var(--blue);padding:0}
.hero-lede{font-size:clamp(1.05rem,1.35vw,1.22rem);max-width:44ch;margin-top:1.4rem;color:var(--ink2)}
.hero-photo{position:relative;margin-right:var(--bleedcap)}
.hero-photo img{width:100%;height:var(--hero-h);object-fit:cover;object-position:52% 60%}
.hero-photo .cap{
  position:absolute;left:0;bottom:0;background:var(--ink);color:var(--paper);
  font-family:'Azeret Mono',monospace;font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;padding:.6rem .9rem;
}
@media(max-width:920px){
  .hero-grid{grid-template-columns:1fr}
  .hero-photo{margin-right:var(--bleed);margin-left:var(--bleed)}
}

/* big action block */
.act{display:grid;grid-template-columns:1.15fr 1fr;gap:0;margin-top:2.2rem;border:2px solid var(--ink)}
.act>*{padding:1.5rem 1.6rem}
.act .go{background:var(--blue);color:var(--white);text-decoration:none;display:flex;flex-direction:column;justify-content:center;transition:background .2s}
.act .go:hover{background:var(--ink)}
.act .go b{font-family:'Bricolage Grotesque',sans-serif;font-size:1.75rem;font-weight:800;letter-spacing:-.03em;line-height:1.05;display:flex;align-items:center;gap:.7rem}
.act .go span{font-size:.95rem;opacity:.86;margin-top:.35rem}
.act .ring{background:var(--paper2);display:flex;flex-direction:column;justify-content:center}
.act .ring span{font-family:'Azeret Mono',monospace;font-size:.64rem;letter-spacing:.2em;text-transform:uppercase;color:var(--zinc)}
.act .ring a{
  font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:clamp(1.5rem,2.3vw,2rem);
  letter-spacing:-.035em;text-decoration:none;margin-top:.25rem;display:block;
}
.act .ring a:hover{color:var(--blue)}
@media(max-width:620px){.act{grid-template-columns:1fr}.act .ring{border-top:2px solid var(--ink)}}

/* facts strip */
.facts{margin-top:clamp(2.5rem,5vw,4rem);border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(3,1fr)}
.facts div{padding:1.4rem 1.6rem 1.4rem 0}
.facts b{display:block;font-weight:700;font-size:1.02rem}
.facts span{color:var(--zinc);font-size:.94rem}
@media(max-width:800px){.facts{grid-template-columns:1fr}.facts div{padding:1rem 0;border-bottom:1px solid var(--line)}}

/* ---------- sections ---------- */
.sec{padding:clamp(4rem,7vw,6.5rem) 0;scroll-margin-top:var(--hdr)}
.sec.dark{background:var(--ink);color:var(--paper)}
.sec.dark .muted{color:#a49fbd}
.sec-head{max-width:54ch}
.sec-head p{color:var(--ink2);margin-top:1rem}

/* ---------- fleet ---------- */
.unit{display:grid;grid-template-columns:minmax(0,1.02fr) minmax(0,1fr);gap:clamp(1.6rem,3.5vw,3.4rem);align-items:center;padding:clamp(2rem,4vw,3.4rem) 0}
.unit+.unit{border-top:1px solid var(--line)}
.u-photo{position:relative}
.u-photo>img{width:100%;aspect-ratio:4/3;object-fit:cover}
.u-photo .badge{
  position:absolute;top:0;left:0;background:var(--paper2);color:var(--ink);
  font-family:'Azeret Mono',monospace;font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;padding:.5rem .8rem;
}
.u-photo .inset{position:absolute;right:-16px;bottom:-24px;width:40%;border:6px solid var(--paper);display:none}
@media(min-width:921px){.u-photo .inset{display:block}}
.unit:nth-child(even) .u-photo{order:2}
.unit:nth-child(even) .u-photo .inset{right:auto;left:-16px}
@media(max-width:920px){.unit{grid-template-columns:1fr;gap:1.6rem}.unit:nth-child(even) .u-photo{order:0}}
/* bleed the photos to the page edge for a less boxed in layout */
@media(min-width:921px){
  .unit:nth-child(odd) .u-photo{margin-left:var(--bleedcap)}
  .unit:nth-child(even) .u-photo{margin-right:var(--bleedcap)}
}
.u-body{max-width:660px}
.u-body h3{margin-bottom:.6rem}
.u-body>p{max-width:42ch;color:var(--ink2)}
.speclist{list-style:none;margin:1.4rem 0;padding:0;border-top:1px solid var(--line)}
.speclist li{display:flex;justify-content:space-between;gap:1.5rem;padding:.62rem 0;border-bottom:1px solid var(--line);font-size:.98rem}
.speclist .k{font-family:'Azeret Mono',monospace;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--zinc);padding-top:.18rem}
.speclist .v{font-weight:600;text-align:right}
.tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.3rem}
.tags span{font-family:'Azeret Mono',monospace;font-size:.68rem;letter-spacing:.08em;border:1px solid var(--line);padding:.32rem .6rem;color:var(--ink2)}
.money{display:flex;gap:1.8rem;flex-wrap:wrap;align-items:baseline;margin-bottom:1.5rem}
.money div span{display:block;font-family:'Azeret Mono',monospace;font-size:.63rem;letter-spacing:.16em;text-transform:uppercase;color:var(--zinc)}
.money div b{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:1.75rem;letter-spacing:-.035em}

/* ---------- phone band ---------- */
.band{position:relative;overflow:hidden;background:var(--ink);color:var(--paper);text-align:center}
.band>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.2}
.band .in{position:relative;padding:clamp(3.5rem,6vw,5.5rem) 0}
.band .decal{justify-content:center}
.band h2{max-width:20ch;margin:0 auto 1.6rem}
.band .num{
  font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:clamp(2.6rem,7vw,5rem);
  letter-spacing:-.045em;text-decoration:none;display:inline-block;line-height:1;
}
.band .num:hover{color:var(--blue2)}
.band .sub{color:#a49fbd;margin-top:1.2rem}

/* ---------- booking ---------- */
.portal{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(300px,420px);gap:1.6rem;align-items:start}
.portal>*{min-width:0}
@media(max-width:1020px){.portal{grid-template-columns:1fr}}
.box{background:var(--paper2);border:1px solid var(--line);min-width:0}
.box-h{
  display:flex;justify-content:space-between;gap:1rem;align-items:baseline;padding:.9rem 1.15rem;border-bottom:1px solid var(--line);
  font-family:'Azeret Mono',monospace;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--zinc);
}
.box-b{padding:1.4rem}
.calscroll{overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:.5rem}
.cal{border-collapse:separate;border-spacing:4px;width:100%;min-width:640px;table-layout:fixed}
.cal th{font-weight:400}
.cal thead th{font-family:'Azeret Mono',monospace;font-size:.62rem;line-height:1.35;padding:0 0 .45rem;color:var(--zinc);text-align:center}
.cal thead th.wknd{color:var(--ink)}
.cal thead th:first-child,.cal tbody th{
  width:126px;text-align:left;font-family:'Figtree',sans-serif;font-weight:700;font-size:.88rem;color:var(--ink);
  padding-right:.7rem;line-height:1.2;
}
.cell{width:100%;height:44px;border:1px solid var(--line);background:var(--white);cursor:pointer;padding:0;transition:background .12s,border-color .12s}
.cell:hover{border-color:var(--blue);background:#e9e5f6}
.cell.busy{cursor:not-allowed;background:repeating-linear-gradient(45deg,#dedbe8,#dedbe8 3px,#eeecf4 3px,#eeecf4 7px);border-color:transparent}
.cell.busy:hover{border-color:transparent}
.cell.sel{background:var(--blue);border-color:var(--blue)}
.cell:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.legend{display:flex;gap:1.3rem;flex-wrap:wrap;margin-top:1rem;font-family:'Azeret Mono',monospace;font-size:.68rem;color:var(--zinc)}
.legend i{width:15px;height:12px;display:inline-block;margin-right:.45rem;vertical-align:-1px;border:1px solid var(--line)}
.legend .k1{background:var(--white)}
.legend .k2{background:repeating-linear-gradient(45deg,#dedbe8,#dedbe8 3px,#eeecf4 3px,#eeecf4 7px)}
.legend .k3{background:var(--blue);border-color:var(--blue)}
.hint{font-size:.94rem;color:var(--zinc);margin:1rem 0 0}

.fields{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media(max-width:620px){.fields{grid-template-columns:1fr}}
.f{display:flex;flex-direction:column;gap:.35rem}
.f.wide{grid-column:1/-1}
label{font-family:'Azeret Mono',monospace;font-size:.65rem;letter-spacing:.16em;text-transform:uppercase;color:var(--zinc)}
input,select,textarea{
  font-family:'Figtree',sans-serif;font-size:16px;padding:.8rem .85rem;border:1px solid var(--line);
  background:var(--white);color:var(--ink);border-radius:0;width:100%;
}
textarea{min-height:90px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:2px solid var(--blue);outline-offset:-1px;border-color:var(--blue)}
fieldset{border:1px solid var(--line);padding:.9rem 1rem;margin:0;grid-column:1/-1}
legend{font-family:'Azeret Mono',monospace;font-size:.65rem;letter-spacing:.16em;text-transform:uppercase;color:var(--zinc);padding:0 .35rem}
.opt,.checkrow{display:flex;gap:.7rem;align-items:flex-start;font-size:.96rem;padding:.3rem 0}
.checkrow{grid-column:1/-1}
.opt input,.checkrow input{width:20px;height:20px;flex:none;margin-top:.2rem;accent-color:var(--blue)}
.opt b{font-family:'Azeret Mono',monospace;font-weight:500;font-size:.84rem;white-space:nowrap}

/* docket */
.docket-card{background:var(--white);border:1px solid var(--line);position:sticky;top:calc(var(--hdr) + 18px)}
.perf{height:9px;background:radial-gradient(circle at 5px 0,transparent 4px,var(--white) 4.5px) repeat-x;background-size:10px 9px}
.perf.top{background:radial-gradient(circle at 5px 9px,transparent 4px,var(--white) 4.5px) repeat-x;background-size:10px 9px}
.docket-h{padding:1rem 1.2rem .4rem;display:flex;justify-content:space-between;align-items:baseline;gap:1rem}
.docket-h b{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:1.15rem;letter-spacing:-.03em}
.docket-h span{font-family:'Azeret Mono',monospace;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--zinc)}
.docket-b{padding:.6rem 1.2rem 1.3rem}
.d-line{display:flex;justify-content:space-between;gap:1rem;font-family:'Azeret Mono',monospace;font-size:.8rem;padding:.5rem 0;border-bottom:1px dashed var(--line)}
.d-line span:first-child{color:var(--zinc)}
.d-line.tot{
  border-bottom:0;border-top:2px solid var(--ink);margin-top:.6rem;padding-top:.8rem;align-items:baseline;
  font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:1.7rem;letter-spacing:-.035em;
}
.d-line.tot span:first-child{font-family:'Azeret Mono',monospace;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--zinc);font-weight:400}
.d-empty{color:var(--zinc);font-size:.96rem;margin:.4rem 0 0}
.flag{border-left:3px solid var(--blue);background:#eeebf7;padding:.6rem .8rem;margin-top:1rem;font-size:.9rem}
.flag b{display:block;font-family:'Azeret Mono',monospace;font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;color:var(--blue);margin-bottom:.15rem}
.flag.good{border-left-color:#4e8b5f;background:#e9f2ec}
.flag.good b{color:#3d7a4e}
.ref{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:2rem;letter-spacing:-.03em;margin:.2rem 0 1rem}

/* hiring */
.cols{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4.5rem)}
@media(max-width:880px){.cols{grid-template-columns:1fr}}
.checklist{list-style:none;padding:0;margin:0}
.checklist li{padding:.85rem 0 .85rem 1.7rem;border-bottom:1px solid var(--line);position:relative}
.checklist li::before{content:"";position:absolute;left:0;top:1.35rem;width:8px;height:8px;background:var(--blue)}
details{border-bottom:1px solid var(--line)}
summary{cursor:pointer;padding:1rem 0;font-weight:700;list-style:none;display:flex;justify-content:space-between;gap:1rem}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";font-family:'Azeret Mono',monospace;color:var(--blue)}
details[open] summary::after{content:"-"}
details p{margin:0 0 1.1rem;color:var(--ink2);font-size:.98rem;max-width:60ch}

/* footer */
.ftr{background:var(--ink);color:var(--paper);padding:4rem 0 6rem}
.ftr-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:2.4rem}
@media(max-width:880px){.ftr-grid{grid-template-columns:1fr;gap:2rem}}
.ftr img{height:60px;width:auto;filter:invert(1)}
.ftr h4{font-family:'Azeret Mono',monospace;font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:#a49fbd;margin:0 0 .9rem;font-weight:400}
.ftr ul{list-style:none;margin:0;padding:0;line-height:2}
.ftr a{text-decoration:none}
.ftr a:hover{color:var(--blue2)}
.ftr-btm{border-top:1px solid var(--line-l);margin-top:2.8rem;padding-top:1.1rem;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-family:'Azeret Mono',monospace;font-size:.68rem;color:#8f89ab}

/* sticky call bar, small screens */


:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
@media(prefers-reduced-motion:no-preference){
  .reveal{opacity:0;transform:translateY(20px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.3,1)}
  .reveal.in{opacity:1;transform:none}
}

/* ==========================================================
   Booking page
   ========================================================== */
.steps{display:flex;flex-wrap:wrap;gap:.4rem;margin:0 0 2.2rem;padding:0;list-style:none;counter-reset:s}
.steps li{
  flex:1 1 150px;border-top:3px solid var(--line);padding:.7rem 0 0;
  font-family:'Azeret Mono',monospace;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--zinc);
}
.steps li.on{border-top-color:var(--blue);color:var(--blue)}
.steps li.done{border-top-color:var(--ink);color:var(--ink)}
.steps li b{display:block;font-family:'Figtree',sans-serif;font-weight:700;font-size:.95rem;letter-spacing:0;text-transform:none;color:inherit;margin-top:.1rem}

.stage{display:none}
.stage.on{display:block}

.picks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
@media(max-width:900px){.picks{grid-template-columns:1fr}}
.pick{
  background:var(--paper2);border:1px solid var(--line);text-align:left;padding:0;cursor:pointer;
  display:flex;flex-direction:column;transition:border-color .2s,transform .16s ease;
}
.pick:hover{border-color:var(--blue);transform:translateY(-2px)}
.pick[aria-pressed="true"]{border-color:var(--blue);box-shadow:inset 0 0 0 2px var(--blue)}
.pick img{width:100%;aspect-ratio:16/10;object-fit:cover}
.pick .in{padding:1rem 1.1rem 1.2rem}
.pick h3{font-size:1.35rem;margin-bottom:.35rem}
.pick .sub{color:var(--zinc);font-size:.92rem;margin:0 0 .8rem}
.pick .row{display:flex;justify-content:space-between;gap:1rem;font-family:'Azeret Mono',monospace;font-size:.76rem;padding:.35rem 0;border-top:1px dashed var(--line)}
.pick .row span:first-child{color:var(--zinc)}
.pick .stock{
  display:inline-block;margin-top:.9rem;font-family:'Azeret Mono',monospace;font-size:.68rem;letter-spacing:.1em;
  text-transform:uppercase;background:var(--ink);color:var(--paper2);padding:.35rem .6rem;
}
.pick .stock.none{background:#8a3b3b}

.cell .n{font-family:'Azeret Mono',monospace;font-size:.8rem;color:var(--ink)}
.cell.sel .n{color:var(--paper2)}
.cell.busy .n{color:var(--zinc);opacity:.55}

.summary{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(300px,420px);gap:1.6rem;align-items:start}
@media(max-width:1020px){.summary{grid-template-columns:1fr}}

.pay{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media(max-width:620px){.pay{grid-template-columns:1fr}}
.pay .wide{grid-column:1/-1}
.demo{
  border:1px dashed var(--blue);background:#eeebf7;padding:.7rem .85rem;margin:0 0 1.2rem;
  font-family:'Azeret Mono',monospace;font-size:.72rem;letter-spacing:.04em;color:var(--blue);
}
.paying{display:flex;align-items:center;gap:.8rem;font-weight:600}
.spin{width:18px;height:18px;border:2px solid var(--line);border-top-color:var(--blue);border-radius:50%;animation:sp .8s linear infinite}
@keyframes sp{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.spin{animation:none}}

.confirm{background:var(--paper2);border:1px solid var(--line);padding:clamp(1.4rem,3vw,2.4rem)}
.confirm .big{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:clamp(2.2rem,5vw,3.4rem);letter-spacing:-.035em;line-height:1;margin:.4rem 0 .3rem}
.confirm .unit-id{font-family:'Azeret Mono',monospace;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:var(--blue)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:1.6rem;margin-top:1.8rem}
@media(max-width:760px){.grid2{grid-template-columns:1fr}}
.collect{border-left:3px solid var(--blue);padding-left:1rem}
.collect address{font-style:normal;font-weight:600;line-height:1.5}

@media print{
  .hdr,.callbar,.steps,.noprint,footer{display:none !important}
  body{background:#fff;padding:0;font-size:12pt}
  .sec{padding:0}
  .confirm{border:1px solid #000;padding:16pt}
  a[href^="tel"]::after{content:""}
}

/* availability strip on the landing page */
.availgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
@media(max-width:900px){.availgrid{grid-template-columns:1fr}}
.avail{
  display:block;text-decoration:none;background:var(--paper2);border:1px solid var(--line);
  padding:1.2rem 1.3rem;transition:border-color .2s,transform .16s ease;
}
.avail:hover{border-color:var(--blue);transform:translateY(-2px)}
.avail b{display:block;font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:1.5rem;letter-spacing:-.03em;margin-bottom:.35rem}
.avail .yes{color:var(--ink2)}
.avail .no{color:var(--zinc)}
.avail .go{
  display:block;margin-top:.9rem;font-family:'Azeret Mono',monospace;font-size:.68rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--blue);
}

/* button rows */
.btnrow{display:flex;gap:.8rem;flex-wrap:wrap;align-items:center;margin-top:1.6rem}

/* two part sticky bar */
.callbar{display:none}
@media(max-width:760px){
  .callbar{display:grid;grid-template-columns:1.3fr 1fr;position:fixed;left:0;right:0;bottom:0;z-index:95;border-top:2px solid var(--ink)}
  body{padding-bottom:60px}
}
.callbar a{padding:.95rem 1rem;text-align:center;text-decoration:none;font-weight:700;font-size:1.02rem}
.callbar .cb-book{background:var(--blue);color:#fff}
.callbar .cb-ring{background:var(--ink);color:var(--paper2)}


/* ==========================================================
   Wide and ultrawide screens.
   The container widens in stages and the root type scales with it,
   so a 34 inch monitor gets a bigger page rather than the same
   laptop page marooned in the middle of the screen. Percentages
   are used so a reader's own font setting still wins.
   ========================================================== */
@media (min-width:1600px){
  html{font-size:106%}
  :root{--maxw:1360px;--hero-h:600px}
}
@media (min-width:1920px){
  html{font-size:110%}
  :root{--maxw:1460px;--hero-h:620px}
  .facts div{padding-right:2.4rem}
}
@media (min-width:2400px){
  html{font-size:116%}
  :root{--maxw:1560px;--hero-h:680px;--bleedcap:max(-280px,var(--bleed))}
  .hero-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.02fr)}
  .availgrid,.picks{gap:1.6rem}
}
@media (min-width:3200px){
  html{font-size:122%}
  :root{--maxw:1680px;--hero-h:740px;--bleedcap:max(-320px,var(--bleed))}
}
/* keep the reading measure sane no matter how wide the screen gets */
.hero-lede,.sec-head p,details p,.u-body>p{max-width:min(46ch,100%)}
.confirm .grid2{max-width:1100px}


/* ==========================================================
   Book now interstitial
   Shown on the way to the booking page and again while the
   board builds, so the two pages feel like one step.
   ========================================================== */
.loader{
  position:fixed;inset:0;z-index:200;background:var(--ink);color:var(--paper);
  display:grid;place-content:center;justify-items:center;gap:1.1rem;text-align:center;padding:2rem;
  opacity:0;visibility:hidden;transition:opacity .28s ease,visibility 0s linear .28s;
}
.loader.on{opacity:1;visibility:visible;transition:opacity .2s ease}
.loader img{height:52px;width:auto;filter:invert(1)}
.loader b{
  font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:clamp(1.4rem,2.4vw,1.9rem);
  letter-spacing:-.03em;line-height:1.1;
}
.loader span{font-family:'Azeret Mono',monospace;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:#a49fbd}
.loader .bar{width:min(300px,62vw);height:2px;background:rgba(248,247,251,.18);overflow:hidden}
.loader .bar i{display:block;height:100%;width:0;background:var(--blue2)}
.loader.on .bar i{animation:loadbar 1.1s cubic-bezier(.3,.8,.4,1) forwards}
@keyframes loadbar{0%{width:0}60%{width:72%}100%{width:100%}}
body.loading{overflow:hidden}
/* safety net: if the script never gets there, the cover lifts anyway */
.loader.auto{animation:loaderout .3s ease 2.6s forwards}
@keyframes loaderout{to{opacity:0;visibility:hidden}}
@media(prefers-reduced-motion:reduce){
  .loader,.loader.on{transition:none}
  .loader.on .bar i{animation:none;width:100%}
}
