/* hardware.html: product pair, to-scale outlines, spec tables, accessories */

/* hero: the two FleetTabs to scale on navy (renders from the spec sheets) */
.hw-hero .hw-pair{display:grid;place-items:center}
.hw-hero .hw-pair img{width:min(100%,640px);max-height:none;filter:drop-shadow(0 30px 50px rgba(0,0,0,.55))}
@media (max-width:980px){.hw-hero .hw-pair img{width:min(100%,520px);max-height:none}}

/* --- product pair --- */
.hw-duo{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(16px,2vw,24px)}
.hw-card{display:grid;grid-template-rows:auto 1fr;background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.hw-pic{margin:0;display:grid;place-items:center;padding:clamp(28px,4vw,56px) 24px;background:#fff;border-bottom:1px solid var(--line)}
.hw-pic img{width:auto;max-width:100%;height:clamp(210px,20vw,260px);object-fit:contain;filter:drop-shadow(0 18px 24px rgba(10,24,48,.18))}
.hw-body{display:grid;gap:22px;align-content:start;padding:clamp(24px,3vw,36px)}
.hw-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
.hw-head h3{font-size:clamp(26px,2.4vw,34px);letter-spacing:-.03em;line-height:1.1;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.hw-tag{margin-top:6px;color:var(--ink-2);font-size:15.5px}
.hw-price{font-family:var(--display);font-weight:600;font-size:clamp(34px,3.4vw,48px);letter-spacing:-.04em;line-height:1;color:var(--ink);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
.hw-price small{display:block;margin-top:6px;font-family:var(--body);font-size:14px;font-weight:500;letter-spacing:0;color:var(--ink-2)}
.hw-card .ticks{font-size:16px;padding-top:20px;border-top:1px solid var(--line)}
.hw-act{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;margin-top:4px}
.hw-dl{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-size:15px;font-weight:600;color:var(--brand)}
.hw-dl svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.hw-dl small{font-weight:400;color:var(--ink-2);font-size:13.5px}
.hw-dl:hover span{text-decoration:underline;text-underline-offset:3px}

.hw-std{display:flex;flex-wrap:wrap;align-items:center;gap:14px 24px;margin-top:clamp(28px,3vw,40px)}
.hw-std-t{font-family:var(--display);font-size:16px;font-weight:600;color:var(--ink)}

@media (max-width:900px){.hw-duo{grid-template-columns:1fr}}
@media (max-width:480px){
  .hw-head{flex-direction:column;gap:10px}
  .hw-price{text-align:left}
  .hw-price small{display:inline;margin:0 0 0 6px}
  .hw-act .btn{flex:1 1 100%;justify-content:center}
}

/* --- to-scale outlines (blueprint) --- */
.hw-scale-band{overflow:hidden}
.hw-scale-band::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:linear-gradient(rgba(94,194,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(94,194,255,.06) 1px,transparent 1px);background-size:40px 40px;
  -webkit-mask-image:radial-gradient(70% 70% at 50% 60%,#000 30%,transparent 100%);mask-image:radial-gradient(70% 70% at 50% 60%,#000 30%,transparent 100%)}
.hw-scale-band .wrap{position:relative}
/* column fr values equal the two viewBox widths, so both outlines render at one shared scale */
.scale{display:grid;grid-template-columns:282fr 153fr;gap:clamp(24px,6vw,120px);align-items:end;max-width:1000px}
.scale-dev{margin:0;display:grid;gap:22px;min-width:0}
.scale-dev svg{width:100%;height:auto;overflow:visible}
.sc-body{fill:#020a16;stroke:var(--electric);stroke-width:1.2}
.sc-diag{stroke:rgba(94,194,255,.35);stroke-width:.6;stroke-dasharray:3 3}
.sc-big{fill:#fff;font-family:var(--display);font-weight:600;font-size:46px;letter-spacing:-2px}
.sc-dim{fill:none;stroke:rgba(94,194,255,.6);stroke-width:.8}
.scale-dev figcaption{display:grid;gap:12px}
.scale-dev figcaption b{font-family:var(--display);font-size:20px;font-weight:600;letter-spacing:-.02em}
.scale-dl{display:grid;gap:0;border-top:1px solid var(--rule)}
.scale-dl div{display:grid;grid-template-columns:90px minmax(0,1fr);gap:12px;padding:10px 0;border-bottom:1px solid var(--rule);font-size:15px}
.scale-dl dt{color:var(--fg-2)}
.scale-dl dd{font-variant-numeric:tabular-nums;color:var(--fg)}
/* phone: keep both outlines in one row (the point of the section), spec lists stacked below */
@media (max-width:760px){
  .scale{grid-template-columns:282fr 153fr;column-gap:20px;row-gap:28px}
  .scale-dev{display:contents}
  .scale-dev.is-t105 svg{grid-column:1;grid-row:1;align-self:end}
  .scale-dev.is-t80 svg{grid-column:2;grid-row:1;align-self:end}
  .scale-dev.is-t105 figcaption{grid-column:1/-1;grid-row:2;margin-top:12px}
  .scale-dev.is-t80 figcaption{grid-column:1/-1;grid-row:3}
}

/* --- spec tables --- */
.hw-table{min-width:640px}
.hw-table tbody th{width:26%}
.hw-table td{width:37%}
.hw-sub{font-size:13.5px;color:var(--ink-2)}
.hw-more{margin-top:20px}
/* keep the T80 / T105 column labels in view while reading down a long table; sticky only works
   when the wrapper is not a scroll container, so drop overflow where the table fits without it */
@media (max-width:640px),(min-width:760px){
  .tscroll:has(>.hw-table){overflow:visible}
  .hw-table thead th,.hw-table thead td{position:sticky;top:calc(var(--hdr-h) + 12px);z-index:2;background:var(--surface);box-shadow:0 1px 0 var(--rule)}
  .hw-table thead td{z-index:3}
}
@media (max-width:640px){
  .hw-table{min-width:0;table-layout:fixed}
  .hw-table tbody th{width:30%}
  .hw-table td{width:35%}
  .hw-table th,.hw-table td{padding:12px 10px;font-size:13.5px;overflow-wrap:anywhere}
  .hw-table thead th b{font-size:15px;letter-spacing:-.01em}
  .hw-table thead th .price{font-size:12.5px}
  .hw-table .grp th{padding-top:18px}
  .hw-table thead th,.hw-table thead td{padding-top:12px;padding-bottom:10px}
  .hw-sub{font-size:12.5px}
}
.hw-more>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:12px;min-height:48px;padding:10px 18px;border:1px solid var(--line);border-radius:12px;font-weight:600;font-size:15.5px;color:var(--ink);background:#fff;transition:border-color .2s}
.hw-more>summary::-webkit-details-marker{display:none}
.hw-more>summary::after{content:"";width:9px;height:9px;border-right:1.8px solid var(--brand);border-bottom:1.8px solid var(--brand);transform:translateY(-2px) rotate(45deg);transition:transform .2s}
.hw-more[open]>summary::after{transform:translateY(2px) rotate(-135deg)}
.hw-more>summary:hover{border-color:var(--brand)}
.hw-more>.tscroll{margin-top:16px}

.hw-sheets{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:clamp(32px,4vw,48px)}
.hw-sheet{display:flex;align-items:center;gap:18px;padding:22px 24px;border:1px solid var(--line);border-radius:16px;background:var(--paper);transition:border-color .2s,background .2s}
.hw-sheet:hover{border-color:var(--brand);background:#fff}
.hw-sheet-ico{flex:none;width:48px;height:48px;border-radius:12px;display:grid;place-items:center;background:var(--ink);color:#fff}
.hw-sheet-ico svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.hw-sheet-t{display:grid;gap:2px}
.hw-sheet-t b{font-family:var(--display);font-size:17px;font-weight:600;letter-spacing:-.01em}
.hw-sheet-t small{font-size:14px;color:var(--ink-2)}
@media (max-width:700px){.hw-sheets{grid-template-columns:1fr}}

/* --- accessories: three items across, no photo until a real case + ProClip shot exists --- */
.hw-acc{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2vw,24px)}
.hw-acc-i{display:grid;grid-template-rows:auto auto auto 1fr;align-content:start;gap:10px;padding:28px;background:#fff;border:1px solid var(--line);border-radius:var(--radius)}
.hw-acc-i .feat-ico{margin-bottom:8px;background:var(--paper);color:var(--brand);border-color:var(--line)}
.hw-acc-i h3{font-size:clamp(20px,1.7vw,22px);letter-spacing:-.02em;line-height:1.25}
.hw-acc-i p{font-size:16px;color:var(--ink-2);line-height:1.6}
.hw-acc-i .price-big,.hw-acc-logo{align-self:end;margin-top:14px}
.hw-acc-i .price-big{font-size:clamp(34px,3vw,44px);color:var(--ink)}
.hw-acc-i .price-big small{color:var(--ink-2)}
.hw-acc-logo{width:128px;height:auto}
@media (max-width:900px){
  .hw-acc{grid-template-columns:1fr;gap:14px}
  .hw-acc-i{grid-template-rows:none;padding:24px}
  .hw-acc-i .price-big,.hw-acc-logo{margin-top:6px}
  .hw-acc-logo{width:112px}
}

/* --- backed-by row: warranty/RMA terms, insurance note, deployment link --- */
.hw-backed{display:flex;flex-wrap:wrap;align-items:center;gap:24px 48px;margin-top:clamp(32px,4vw,48px);padding-top:28px;border-top:1px solid var(--rule)}
.hw-backed-note{max-width:260px;font-size:15px;line-height:1.55;color:var(--fg-2)}
.hw-backed .link-cta{margin-left:auto}
@media (max-width:760px){.hw-backed{display:grid;gap:20px}.hw-backed .link-cta{margin-left:0}.hw-backed-note{max-width:none}}
