/* ============================================================
   Overflow Group, machine hire booking
   Layers on top of styles.css, which supplies the tokens, the
   header/footer, buttons and form rows. Nothing here redefines
   a brand value, it only adds booking specific components.
   ============================================================ */

/* A class that sets display beats the UA sheet's [hidden]{display:none},
   and several components here are grid or flex. The wizard toggles panels,
   the nav and the whole grid with the hidden attribute, so make it win. */
[hidden]{display:none !important}

/* ── hero ─────────────────────────────────────────────── */
.bhero{position:relative;overflow:hidden;padding:clamp(48px,6vw,86px) 0 clamp(56px,6vw,96px);
  background:linear-gradient(180deg,var(--bg-2) 0%,var(--bg) 78%)}
.bhero-glow{position:absolute;top:-18%;right:-6%;width:min(760px,78vw);aspect-ratio:1;
  background:radial-gradient(circle,rgba(48,168,228,.28) 0%,rgba(48,168,228,.09) 42%,transparent 68%);
  pointer-events:none}
.bhero-in{position:relative;display:grid;grid-template-columns:1.02fr .98fr;
  gap:clamp(30px,4vw,64px);align-items:center}
.bhero h1{font-size:clamp(34px,5.2vw,60px);letter-spacing:-.035em;line-height:1.06}
.bhero h1 span{color:var(--cyan)}
.bhero-copy>p{margin-top:20px;font-size:clamp(16px,1.6vw,18.4px);color:var(--tx-2);max-width:52ch}
.bhero .hero-btns{margin-top:28px}
.bhero-ticks{display:flex;flex-wrap:wrap;gap:10px 24px;margin-top:28px;
  font-size:14.2px;font-weight:600;color:var(--tx-2)}
.bhero-ticks li{display:flex;align-items:center;gap:8px}
.bhero-ticks .ic{font-size:17px;color:var(--cyan)}
.bhero-art{position:relative;display:grid;place-items:center}
.bhero-art::after{content:"";position:absolute;inset:auto 8% 4% 8%;height:22px;border-radius:50%;
  background:radial-gradient(ellipse,rgba(0,0,0,.55),transparent 70%);filter:blur(6px)}
.bhero-art img{position:relative;width:100%;max-width:520px;
  filter:drop-shadow(0 40px 60px rgba(0,0,0,.5))}

/* ── fleet cards ──────────────────────────────────────── */
.fleet{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:26px}
.fl{display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line);
  border-radius:var(--r-lg);overflow:hidden;transition:transform .3s var(--ease),border-color .3s,box-shadow .3s}
.fl:hover{transform:translateY(-6px);border-color:rgba(48,168,228,.55);box-shadow:var(--shadow)}
.fl-imgwrap{position:relative}
/* square rather than 4:3: the fleet mixes a near square cutout, a portrait
   photo and a landscape one, and a square box letterboxes all three about
   equally instead of badly framing the portrait */
.fl-img{position:relative;aspect-ratio:1;overflow:hidden;
  background:
    radial-gradient(70% 80% at 50% 22%,rgba(48,168,228,.17),transparent 62%),
    linear-gradient(160deg,var(--panel-2),var(--bg-2))}
/* stand-in panel for a machine whose photos have not arrived yet */
.fl-img-icon{display:grid;place-items:center;color:var(--cyan)}
.fl-img-icon .ic{font-size:74px;opacity:.75}
/* the fleet mixes a cutout product shot with a real site photo. Both are
   contained rather than cropped, since on a machine the full silhouette is
   the information, and absolute insets give the image a definite box to
   resolve against so nothing gets clipped. */
.fl-img img{position:absolute;inset:18px;width:calc(100% - 36px);height:calc(100% - 36px);
  object-fit:contain;filter:drop-shadow(0 20px 30px rgba(0,0,0,.42));
  transition:transform .5s var(--ease)}
.fl-img-photo img{inset:0;width:100%;height:100%;border-radius:0;filter:none}
.fl:hover .fl-img img{transform:scale(1.04)}
.fl-avail{position:absolute;z-index:2;top:14px;left:14px;display:flex;align-items:center;gap:7px;
  padding:7px 13px;border-radius:999px;font-size:12.2px;font-weight:800;letter-spacing:.01em;
  background:rgba(10,16,26,.82);border:1px solid var(--line-2);color:var(--tx-2);
  backdrop-filter:blur(6px)}
.fl-avail i{width:7px;height:7px;border-radius:50%;background:#41c98a;flex:none;
  box-shadow:0 0 0 3px rgba(65,201,138,.2)}
/* flags a stock photo standing in for the actual unit, so nobody turns up
   expecting the exact trailer pictured */
.fl-stock{position:absolute;z-index:2;top:14px;right:14px;padding:7px 13px;border-radius:999px;
  font-size:11.6px;font-weight:700;letter-spacing:.01em;background:rgba(10,16,26,.82);
  border:1px solid var(--line-2);color:var(--tx-3);backdrop-filter:blur(6px)}
.fl-body{padding:24px;display:flex;flex-direction:column;flex:1}
.fl-model{font-size:12.4px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;
  color:var(--cyan);margin-bottom:7px}
/* .fl-body is a flex column, so an inline-block child would stretch the full
   width and read as another button next to the real ones */
.fl-tag{align-self:flex-start;display:inline-block;margin-top:10px;padding:5px 11px;border-radius:999px;
  font-size:11.8px;font-weight:800;letter-spacing:.02em;
  background:rgba(48,168,228,.13);border:1px solid rgba(48,168,228,.3);color:var(--cyan-lt)}
.fl-body>p{margin-top:11px;font-size:15.2px;color:var(--tx-2)}
.fl-rate{margin-top:18px;font-size:14.4px;font-weight:600;color:var(--tx-3)}
.fl-rate b{color:var(--tx);font-size:17px;font-weight:800;letter-spacing:-.02em}
/* shown in the specs dialog while we are still waiting on exact measurements */
.mdl-pending{display:flex;gap:12px;align-items:flex-start;padding:16px 18px;border-radius:12px;
  background:var(--bg-2);border:1px dashed var(--line-2);font-size:14.4px;line-height:1.6;
  color:var(--tx-2)}
.mdl-pending .ic{font-size:21px;color:var(--cyan);flex:none;margin-top:1px}
/* .mdl-hd p already sets size and color for the blurb below this, so this
   needs to be scoped under .mdl-hd too or that rule's extra class wins */
.mdl-hd .mdl-stock{margin-top:2px;font-size:13px;font-style:italic;color:var(--tx-3)}
.fl-specs{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:20px 0 0}
.fl-specs li{display:flex;align-items:center;gap:10px;padding:11px 13px;border-radius:12px;
  background:var(--bg-2);border:1px solid var(--line)}
.fl-specs .ic{font-size:19px;color:var(--cyan);flex:none}
.fl-specs b{display:block;font-size:14.6px;font-weight:800;letter-spacing:-.02em;line-height:1.2}
.fl-specs span{display:block;font-size:11.4px;font-weight:600;color:var(--tx-3);margin-top:2px}
.fl-btns{display:flex;gap:10px;margin-top:auto;padding-top:22px}
.fl-btns .btn{flex:1}

/* ── booking shell ────────────────────────────────────── */
.bk-sec{background:var(--bg-2);border-block:1px solid var(--line)}
.bk{max-width:1120px;margin:0 auto}

/* progress rail */
.bk-steps{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin-bottom:30px;
  counter-reset:s}
.bk-steps li{position:relative;display:flex;flex-direction:column;align-items:center;gap:9px;
  padding-top:4px;text-align:center}
.bk-steps li::before{content:"";position:absolute;top:19px;left:-50%;width:100%;height:2px;
  background:var(--line);z-index:0}
.bk-steps li:first-child::before{display:none}
.bk-steps li[data-done]::before{background:var(--cyan)}
.bk-step-n{position:relative;z-index:1;display:grid;place-items:center;width:34px;height:34px;
  border-radius:50%;background:var(--panel);border:2px solid var(--line);
  font-size:14px;font-weight:800;color:var(--tx-3);
  transition:background .3s,border-color .3s,color .3s,box-shadow .3s,transform .3s var(--ease)}
.bk-step-l{font-size:12.4px;font-weight:700;color:var(--tx-3);transition:color .3s}
.bk-steps li[data-done] .bk-step-n{background:var(--cyan);border-color:var(--cyan);color:#00131f}
.bk-steps li[data-done] .bk-step-l{color:var(--tx-2)}
.bk-steps li[aria-current="step"] .bk-step-n{background:var(--panel);border-color:var(--cyan);
  color:var(--cyan-lt);transform:scale(1.1);box-shadow:0 0 0 5px rgba(48,168,228,.14)}
.bk-steps li[aria-current="step"] .bk-step-l{color:var(--tx)}

.bk-grid{display:grid;grid-template-columns:1fr 348px;gap:26px;align-items:start}
.bk-main{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:clamp(22px,3vw,34px)}
.bk-h{font-size:clamp(21px,2.4vw,27px);letter-spacing:-.025em}
.bk-sub{margin-top:9px;font-size:15.2px;color:var(--tx-2)}
.bk-panel{animation:bkin .38s var(--ease) both}
@keyframes bkin{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none}}

/* machine picker */
.bk-machines{display:grid;gap:14px;margin-top:24px}
.bk-mgroup{display:grid;gap:12px}
.bk-mgroup+.bk-mgroup{margin-top:10px}
.bk-mgroup-t{margin:0;font-size:12.4px;font-weight:800;letter-spacing:.07em;
  text-transform:uppercase;color:var(--tx-3)}
.bk-mc{position:relative;display:grid;grid-template-columns:118px 1fr auto;gap:18px;
  align-items:center;width:100%;text-align:left;cursor:pointer;
  padding:16px;border-radius:var(--r);background:var(--bg-2);
  border:2px solid var(--line);transition:border-color .25s,background .25s,transform .25s var(--ease)}
.bk-mc:hover{border-color:var(--line-2);transform:translateY(-2px)}
.bk-mc[aria-checked="true"]{border-color:var(--cyan);background:rgba(48,168,228,.08)}
.bk-mc-img{position:relative;aspect-ratio:1;border-radius:12px;overflow:hidden;
  background:linear-gradient(155deg,var(--panel-2),var(--bg))}
/* absolute insets so the image has a definite box to fit inside; with a
   percentage height against an aspect-ratio parent it was overflowing and
   getting clipped instead of contained */
.bk-mc-img img{position:absolute;inset:7px;width:calc(100% - 14px);height:calc(100% - 14px);
  object-fit:contain}
.bk-mc-img-icon{display:grid;place-items:center;color:var(--cyan)}
.bk-mc-img-icon .ic{font-size:44px;opacity:.75}
.bk-mc-t{font-size:17.4px;font-weight:800;letter-spacing:-.02em}
.bk-mc-m{font-size:11.8px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;
  color:var(--cyan);margin-bottom:4px}
.bk-mc-d{margin-top:6px;font-size:13.8px;color:var(--tx-3)}
.bk-mc-rate{margin-top:9px;font-size:13.6px;font-weight:700;color:var(--tx-2)}
.bk-mc-rate b{color:var(--tx);font-size:15.4px}
.bk-mc-tick{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;
  border:2px solid var(--line-2);color:transparent;font-size:15px;flex:none;
  transition:background .25s,border-color .25s,color .25s}
.bk-mc[aria-checked="true"] .bk-mc-tick{background:var(--cyan);border-color:var(--cyan);color:#00131f}

/* option tiles */
.bk-opts{display:grid;gap:13px;margin-top:24px}
.bk-opts-2{grid-template-columns:1fr 1fr}
.bk-opt{position:relative;display:flex;gap:14px;align-items:flex-start;width:100%;
  text-align:left;cursor:pointer;padding:18px;border-radius:var(--r);background:var(--bg-2);
  border:2px solid var(--line);transition:border-color .25s,background .25s,transform .25s var(--ease)}
.bk-opt:hover:not([disabled]){border-color:var(--line-2);transform:translateY(-2px)}
.bk-opt[aria-checked="true"]{border-color:var(--cyan);background:rgba(48,168,228,.08)}
.bk-opt[disabled]{opacity:.42;cursor:not-allowed}
.bk-opt-ic{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;flex:none;
  background:rgba(48,168,228,.13);color:var(--cyan);font-size:21px}
.bk-opt-t{font-size:16px;font-weight:800;letter-spacing:-.015em}
.bk-opt-d{margin-top:5px;font-size:13.6px;color:var(--tx-3);line-height:1.5}
.bk-opt-p{margin-top:8px;font-size:14px;font-weight:800;color:var(--cyan-lt)}
.bk-note{margin-top:16px;padding:14px 16px;border-radius:12px;font-size:14px;color:var(--tx-2);
  background:rgba(48,168,228,.08);border:1px solid rgba(48,168,228,.28);line-height:1.55}
.bk-note b{color:var(--tx)}

/* calendar */
.bk-cal{margin-top:24px;background:var(--bg-2);border:1px solid var(--line);
  border-radius:var(--r);padding:18px}
.bk-cal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;
  margin-bottom:16px}
.bk-cal-head strong{font-size:16.4px;font-weight:800;letter-spacing:-.015em}
.bk-cal-nav{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;
  background:var(--panel);border:1px solid var(--line);color:var(--tx-2);cursor:pointer;
  font-size:17px;transition:border-color .2s,color .2s,background .2s}
.bk-cal-nav:hover:not(:disabled){border-color:var(--cyan);color:var(--cyan-lt)}
.bk-cal-nav:disabled{opacity:.35;cursor:not-allowed}
.bk-cal-dow{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:6px}
.bk-cal-dow span{text-align:center;font-size:11.4px;font-weight:800;letter-spacing:.05em;
  text-transform:uppercase;color:var(--tx-3);padding-bottom:4px}
.bk-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.bk-d{position:relative;aspect-ratio:1;display:grid;place-items:center;border:0;padding:0;
  background:transparent;border-radius:10px;cursor:pointer;font:inherit;font-size:14.2px;
  font-weight:700;color:var(--tx-2);transition:background .18s,color .18s}
.bk-d-empty{visibility:hidden;pointer-events:none}
/* :hover carries an extra pseudo-class, so it outranks .bk-d[data-edge]
   and was greying out the very day you had just selected. Excluded. */
.bk-d:hover:not(:disabled):not([data-edge]){background:var(--panel-2);color:var(--tx)}
.bk-d:disabled{color:#4a5c73;cursor:not-allowed;text-decoration:line-through}
.bk-d[data-limited]:not(:disabled)::after{content:"";position:absolute;bottom:6px;left:50%;
  transform:translateX(-50%);width:4px;height:4px;border-radius:50%;background:#e0a95f}
.bk-d[data-in]{background:rgba(48,168,228,.15);color:var(--tx);border-radius:0}
.bk-d[data-edge="start"],.bk-d[data-edge="end"],.bk-d[data-edge="both"]{
  background:linear-gradient(135deg,var(--cyan),var(--cyan-dk));color:#00131f;
  /* tight glow, so it reads as a lift off the cell rather than bleeding
     into the row below */
  box-shadow:0 3px 10px -5px rgba(48,168,228,.75)}
.bk-d[data-edge="start"]{border-radius:10px 0 0 10px}
.bk-d[data-edge="end"]{border-radius:0 10px 10px 0}
.bk-d[data-edge="both"]{border-radius:10px}
.bk-d[data-today]::before{content:"";position:absolute;top:5px;right:6px;width:5px;height:5px;
  border-radius:50%;background:var(--cyan)}
.bk-d[data-edge]::before{background:#00131f}
.bk-cal-key{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:16px;padding-top:14px;
  border-top:1px solid var(--line);font-size:12.4px;font-weight:600;color:var(--tx-3)}
.bk-cal-key span{display:flex;align-items:center;gap:7px}
.bk-cal-key i{width:11px;height:11px;border-radius:4px;flex:none}
.k-avail{background:var(--panel-2);border:1px solid var(--line-2)}
.k-part{background:#e0a95f}
.k-out{background:#3a4658;position:relative}
.bk-daterr{margin-top:14px;font-size:14px;font-weight:600;color:#e8837d;min-height:1.2em}

/* delivery zone */
.bk-zone{margin-top:20px}
.bk-zone label{display:block;font-size:13.4px;font-weight:700;color:var(--tx-2);margin-bottom:8px}
.bk-zone select{width:100%;padding:14px 16px;border-radius:12px;background:var(--bg-2);
  border:1px solid var(--line);color:var(--tx);font:600 15.4px/1.5 "Manrope",sans-serif;
  cursor:pointer}
.bk-zone select:focus{outline:none;border-color:var(--cyan)}
.bk-zone-note{margin-top:10px;font-size:13.4px;color:var(--tx-3)}

/* acknowledgements */
.bk-acks{display:grid;gap:11px;margin:20px 0 22px}
.bk-ack{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-radius:12px;
  background:var(--bg-2);border:1px solid var(--line);cursor:pointer;
  font-size:14px;color:var(--tx-2);line-height:1.5;transition:border-color .2s}
.bk-ack:hover{border-color:var(--line-2)}
.bk-ack input{appearance:none;flex:none;width:21px;height:21px;margin:0;border-radius:6px;
  background:var(--panel);border:2px solid var(--line-2);cursor:pointer;position:relative;
  transition:background .2s,border-color .2s}
.bk-ack input:checked{background:var(--cyan);border-color:var(--cyan)}
.bk-ack input:checked::after{content:"";position:absolute;left:6px;top:2px;width:5px;height:10px;
  border:solid #00131f;border-width:0 2.5px 2.5px 0;transform:rotate(42deg)}
.bk-ack.is-bad{border-color:#a8514c}
.bk-trap{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);
  white-space:nowrap;border:0;padding:0;margin:-1px}

/* wizard nav */
.bk-nav{display:flex;gap:12px;justify-content:space-between;margin-top:28px;padding-top:24px;
  border-top:1px solid var(--line)}
.bk-nav .btn{min-width:130px}
.bk-nav #bk-next{margin-left:auto}

/* summary */
.bk-sum-in{position:sticky;top:96px;background:var(--panel);border:1px solid var(--line);
  border-radius:var(--r-lg);overflow:hidden}
.bk-sum-toggle{display:none}
.bk-sum-body{padding:24px}
.bk-sum-h{font-size:18px;letter-spacing:-.02em;margin-bottom:16px}
.bk-sr{display:flex;justify-content:space-between;gap:14px;padding:11px 0;
  border-bottom:1px solid var(--line);font-size:14.2px}
.bk-sr:last-of-type{border-bottom:0}
.bk-sr span{color:var(--tx-3);flex:none}
.bk-sr b{text-align:right;font-weight:700;color:var(--tx)}
.bk-sr-em b{color:var(--cyan-lt)}
.bk-sum-empty{font-size:14.2px;color:var(--tx-3);line-height:1.6}
.bk-sum-total{margin-top:18px;padding-top:16px;border-top:1px solid var(--line-2)}
.bk-sum-line{display:flex;justify-content:space-between;gap:12px;font-size:14.2px;
  color:var(--tx-2);padding:5px 0}
.bk-sum-line b{font-weight:700;color:var(--tx)}
.bk-sum-grand{margin-top:8px;padding-top:12px;border-top:1px solid var(--line);
  font-size:16px;font-weight:800}
.bk-sum-grand b{font-size:25px;font-weight:800;letter-spacing:-.03em;color:var(--cyan)}
.bk-save{margin-top:12px;padding:11px 14px;border-radius:10px;font-size:13.2px;font-weight:700;
  background:rgba(65,201,138,.12);border:1px solid rgba(65,201,138,.32);color:#7ee0b0}
.bk-sum-fine{margin-top:16px;font-size:12.2px;line-height:1.55;color:var(--tx-3)}

/* confirmation */
.bk-done{max-width:640px;margin:0 auto;text-align:center;background:var(--panel);
  border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(30px,4vw,48px);
  animation:bkin .45s var(--ease) both}
.bk-done-ic{display:grid;place-items:center;width:66px;height:66px;margin:0 auto 20px;
  border-radius:50%;font-size:32px;color:#00131f;
  background:linear-gradient(135deg,var(--cyan),var(--cyan-dk));
  box-shadow:0 16px 36px -12px rgba(48,168,228,.8)}
.bk-done h3{font-size:clamp(23px,2.8vw,30px);letter-spacing:-.028em}
.bk-done>p{margin-top:12px;font-size:15.6px;color:var(--tx-2)}
.bk-done-ref{display:inline-flex;flex-direction:column;gap:4px;margin-top:22px;padding:14px 30px;
  border-radius:14px;background:var(--bg-2);border:1px dashed var(--line-2)}
.bk-done-ref span{font-size:11.6px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;
  color:var(--tx-3)}
.bk-done-ref strong{font-size:23px;font-weight:800;letter-spacing:.04em;color:var(--cyan)}
.bk-done-btns{justify-content:center;margin-top:28px}
#bk-done-sum{margin-top:24px;text-align:left;padding:18px 20px;border-radius:14px;
  background:var(--bg-2);border:1px solid var(--line)}

/* how it works */
.bk-how{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:22px}
.bk-how li{position:relative;padding:26px 22px;border-radius:var(--r-lg);background:var(--panel);
  border:1px solid var(--line);transition:transform .3s var(--ease),border-color .3s}
.bk-how li:hover{transform:translateY(-5px);border-color:rgba(48,168,228,.5)}
.bk-how-n{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;
  margin-bottom:16px;font-size:16px;font-weight:800;color:#00131f;
  background:linear-gradient(135deg,var(--cyan),var(--cyan-dk))}
.bk-how h3{font-size:17.4px}
.bk-how p{margin-top:9px;font-size:14.6px;color:var(--tx-2)}

/* spec dialog */
.mdl{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:20px}
.mdl[hidden]{display:none}
.mdl-back{position:absolute;inset:0;background:rgba(6,11,19,.86);backdrop-filter:blur(5px);
  animation:mdlf .25s ease both}
@keyframes mdlf{from{opacity:0}to{opacity:1}}
.mdl-card{position:relative;width:min(880px,100%);max-height:88vh;overflow:auto;
  background:var(--panel);border:1px solid var(--line-2);border-radius:var(--r-lg);
  animation:mdlu .32s var(--ease) both}
@keyframes mdlu{from{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:none}}
.mdl-close{position:absolute;top:14px;right:14px;z-index:2;display:grid;place-items:center;
  width:40px;height:40px;border-radius:50%;background:rgba(10,16,26,.7);
  border:1px solid var(--line-2);color:var(--tx);cursor:pointer;transition:background .2s}
.mdl-close:hover{background:var(--cyan);color:#00131f}
.mdl-close svg{width:19px;height:19px}
.mdl-body{padding:clamp(24px,3vw,36px)}
.mdl-hd{display:grid;grid-template-columns:200px 1fr;gap:24px;align-items:center;
  padding-bottom:22px;margin-bottom:22px;border-bottom:1px solid var(--line)}
.mdl-hd-img{position:relative;aspect-ratio:1;border-radius:var(--r);overflow:hidden;
  background:radial-gradient(70% 80% at 50% 25%,rgba(48,168,228,.16),transparent 62%),
    linear-gradient(160deg,var(--panel-2),var(--bg-2))}
.mdl-hd-img img{position:absolute;inset:14px;width:calc(100% - 28px);height:calc(100% - 28px);
  object-fit:contain}
.mdl-hd-img-icon{display:grid;place-items:center;color:var(--cyan)}
.mdl-hd-img-icon .ic{font-size:76px;opacity:.75}
.mdl-hd h3{font-size:clamp(21px,2.4vw,27px);letter-spacing:-.028em}
.mdl-hd p{margin-top:10px;font-size:15px;color:var(--tx-2)}
.mdl-sec-t{font-size:12.4px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;
  color:var(--cyan);margin:26px 0 12px}
.mdl-sec-t:first-child{margin-top:0}
.mdl-specs{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:2px;
  border-radius:12px;overflow:hidden}
.mdl-specs div{display:flex;justify-content:space-between;gap:12px;padding:12px 15px;
  background:var(--bg-2);font-size:13.8px}
.mdl-specs dt{color:var(--tx-3)}
.mdl-specs dd{margin:0;font-weight:700;text-align:right}
.mdl-feats{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:9px}
.mdl-feats li{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:var(--tx-2)}
.mdl-feats .ic{font-size:17px;color:var(--cyan);flex:none;margin-top:2px}
.mdl-env{margin-top:14px;text-align:center;padding:18px;border-radius:var(--r);
  background:var(--bg-2);border:1px solid var(--line)}
.mdl-env img{width:100%;max-width:360px;margin:0 auto;opacity:.92}
.mdl-env figcaption{margin-top:12px;font-size:12.8px;color:var(--tx-3)}
.mdl-src{margin-top:22px;font-size:12.4px;color:var(--tx-3)}
.mdl-src a{color:var(--cyan);text-decoration:underline;text-underline-offset:3px}

/* ── responsive ───────────────────────────────────────── */
@media (max-width:1040px){
  .bk-grid{grid-template-columns:1fr}
  .bk-sum{position:sticky;bottom:0;z-index:80;order:-1}
  .bk-sum-in{position:static;border-radius:var(--r)}
  .bk-sum-toggle{display:flex;align-items:center;gap:12px;width:100%;padding:16px 20px;
    background:transparent;border:0;color:inherit;cursor:pointer;font:inherit;text-align:left}
  .bk-sum-tl{font-size:15.4px;font-weight:800;flex:none}
  .bk-sum-tp{flex:1;text-align:right;font-size:14px;font-weight:700;color:var(--cyan-lt)}
  .bk-sum-chev{font-size:18px;color:var(--tx-3);transform:rotate(90deg);transition:transform .3s var(--ease)}
  .bk-sum-toggle[aria-expanded="true"] .bk-sum-chev{transform:rotate(-90deg)}
  .bk-sum-body{display:none;padding:0 20px 22px;border-top:1px solid var(--line)}
  .bk-sum-body.is-open{display:block;padding-top:18px}
  .bk-sum-h{display:none}
}

@media (max-width:940px){
  .bhero-in{grid-template-columns:1fr;gap:34px}
  .bhero-art{order:-1;max-width:400px;margin:0 auto}
  .bhero-art img{max-width:340px}
  .bhero-copy>p{max-width:none}
  .mdl-hd{grid-template-columns:1fr;gap:18px}
  .mdl-hd-img{max-width:240px;margin:0 auto}
}

@media (max-width:680px){
  .bhero{padding-top:34px}
  .bk-steps{grid-template-columns:repeat(5,1fr);gap:2px}
  .bk-step-l{display:none}
  .bk-steps li::before{top:17px}
  .bk-step-n{width:30px;height:30px;font-size:13px}
  .bk-mc{grid-template-columns:86px 1fr;gap:14px;padding:14px}
  .bk-mc-tick{position:absolute;top:14px;right:14px;width:24px;height:24px;font-size:13px}
  .bk-mc-body{grid-column:2}
  .bk-opts-2{grid-template-columns:1fr}
  .fl-specs{grid-template-columns:1fr}
  .bk-cal{padding:13px}
  .bk-d{font-size:13px;border-radius:8px}
  .bk-cal-key{gap:6px 14px;font-size:11.6px}
  .bk-nav .btn{min-width:0;flex:1}
  .mdl{padding:0}
  .mdl-card{max-height:100vh;height:100%;border-radius:0;border:0}
  .mdl-specs{grid-template-columns:1fr}
}

@media (prefers-reduced-motion:reduce){
  .bk-panel,.bk-done,.mdl-card,.mdl-back{animation:none}
  .fl,.bk-how li,.bk-mc,.bk-opt{transition:none}
}

/* fleet card title links through to the machine's own page */
.fl-body h3 a{color:inherit;transition:color .2s}
.fl-body h3 a:hover{color:var(--cyan-lt)}
