/* HourDrop v2 — light, minimalist, app surface.
   One stylesheet. Tokens first, then chrome, then components, then pages. */

/* ------------------------------------------------------------------ tokens */
:root {
  --canvas:      #f6f6f4;
  --surface:     #ffffff;
  --ink:         #111214;
  --ink-2:       #3c4048;
  --muted:       #6b6f76;
  --muted-2:     #5d6169;   /* small text on tinted chips (AA) */
  --hair:        #e6e6e2;
  --hair-soft:   #f0f0ec;
  --chip:        #f2f2ef;

  --accent:      #ff5a1f;   /* graphics only: arcs, dots, bars, indicators */
  --accent-solid:#d6400c;   /* solid fills behind white text (AA) */
  --accent-press:#b6360a;
  --accent-ink:  #c53d0d;   /* orange text on light (AA) */
  --accent-tint: #fff1ea;

  --ok:          #1f9d55;
  --ok-ink:      #15703c;
  --ok-tint:     #eaf6ef;
  --bad:         #d93a2b;
  --bad-ink:     #b32b1d;
  --bad-tint:    #fdeeec;

  --sh:      0 1px 2px rgba(17,18,20,.04), 0 8px 24px rgba(17,18,20,.06);
  --sh-lift: 0 2px 4px rgba(17,18,20,.05), 0 14px 32px rgba(17,18,20,.10);
  --sh-pop:  0 1px 2px rgba(17,18,20,.05), 0 20px 50px rgba(17,18,20,.14);

  --r:16px; --r-s:10px; --r-xs:8px; --pill:999px;
  --bar:48px; --tab:58px;

  --w:1080px; --w-narrow:640px;

  --sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --disp:"Bricolage Grotesque",var(--sans);

  --ease:cubic-bezier(.2,.7,.3,1);
}

/* -------------------------------------------------------------------- base */
*,*::before,*::after { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; }
body {
  margin:0;
  background:var(--canvas);
  color:var(--ink);
  font:400 15px/1.5 var(--sans);
  font-feature-settings:"cv11";
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
h1,h2,h3,h4,p,ul,ol,dl,dd,figure { margin:0; }
ul,ol { padding:0; list-style:none; }
img,svg { display:block; }
a { color:inherit; text-decoration:none; }
button { font:inherit; color:inherit; }
.num { font-family:var(--mono); font-weight:500; font-variant-numeric:tabular-nums; letter-spacing:-.01em; }
.sprite { position:absolute; width:0; height:0; overflow:hidden; }
.ic { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.5;
      stroke-linecap:round; stroke-linejoin:round; }

:focus-visible { outline:2px solid var(--accent); outline-offset:2px; border-radius:4px; }

.skip {
  position:absolute; left:12px; top:-64px; z-index:60;
  background:var(--ink); color:#fff; padding:10px 14px; border-radius:var(--r-s);
  font-size:14px; font-weight:500;
}
.skip:focus { top:12px; }

/* ------------------------------------------------------------- app top bar */
.bar {
  position:sticky; top:0; z-index:40;
  height:var(--bar);
  background:var(--surface);
  border-bottom:1px solid var(--hair);
}
.bar__in {
  height:100%; max-width:var(--w); margin:0 auto;
  padding:0 16px;
  display:flex; align-items:center; gap:12px;
}
.bar__logo { display:flex; align-items:center; margin-right:auto; height:100%; padding-right:4px; }
.bar__logo img { height:22px; width:auto; }
.bar__info {
  display:grid; place-items:center;
  width:36px; height:36px; margin-right:-6px;
  border-radius:var(--pill); color:var(--muted);
  transition:background 150ms var(--ease), color 150ms var(--ease);
}
.bar__info:hover { background:var(--chip); color:var(--ink); }

/* segmented control (desktop nav) */
.seg {
  display:none;
  background:var(--chip); border-radius:var(--pill); padding:3px;
  gap:2px;
}
.seg__i {
  display:block; padding:6px 14px; border-radius:var(--pill);
  font-size:13.5px; font-weight:500; color:var(--muted-2); white-space:nowrap;
  transition:color 150ms var(--ease), background 150ms var(--ease);
}
.seg__i:hover { color:var(--ink); }
.seg__i.is-on {
  background:var(--surface); color:var(--ink); font-weight:600;
  box-shadow:0 1px 2px rgba(17,18,20,.08), 0 1px 1px rgba(17,18,20,.04);
}

/* ------------------------------------------------------ bottom tab bar (mobile) */
.tabs {
  position:fixed; left:0; right:0; bottom:0; z-index:40;
  display:grid; grid-template-columns:repeat(4,1fr);
  background:var(--surface);
  border-top:1px solid var(--hair);
  padding-bottom:env(safe-area-inset-bottom);
}
.tab {
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px;
  min-height:var(--tab); padding:8px 4px 9px;
  font-size:11px; font-weight:500; color:var(--muted-2);
  transition:color 150ms var(--ease);
}
.tab .ic { width:22px; height:22px; }
.tab.is-on { color:var(--accent-ink); }
.tab.is-on .ic { stroke:var(--accent); stroke-width:1.8; }

/* ------------------------------------------------------------------ layout */
.app {
  max-width:var(--w); margin:0 auto;
  padding:20px 16px calc(var(--tab) + env(safe-area-inset-bottom) + 20px);
}
.stack { display:flex; flex-direction:column; gap:12px; }
.stack + .stack { margin-top:24px; }

.pagehead { margin-bottom:18px; }
.pagehead h1 {
  font-family:var(--disp); font-weight:700; font-size:30px; line-height:1.1;
  letter-spacing:-.02em;
}
.pagehead p { margin-top:6px; color:var(--muted); font-size:14px; max-width:56ch; }
.stamp { margin-top:8px; font-size:12.5px; color:var(--muted); }

.sec {
  display:flex; align-items:baseline; justify-content:space-between; gap:12px;
  margin:22px 2px 10px;
  font-size:13px; font-weight:600; color:var(--muted-2); letter-spacing:.01em;
}
.sec:first-child { margin-top:0; }
.sec__n { font-size:12.5px; font-weight:500; color:var(--muted); }

/* ------------------------------------------------------------------- cards */
.card {
  background:var(--surface);
  border-radius:var(--r);
  box-shadow:var(--sh);
  padding:18px;
}
.card--tight { padding:14px 16px; }
.card__h { font-size:15px; font-weight:600; margin-bottom:12px; }
.card__s { font-size:13px; color:var(--muted); margin-top:-6px; margin-bottom:12px; }
a.card { display:block; transition:transform 150ms var(--ease), box-shadow 150ms var(--ease); }
a.card:hover { transform:translateY(-1px); box-shadow:var(--sh-lift); }

.card__note {
  margin-top:14px; padding-top:12px; border-top:1px solid var(--hair-soft);
}
.fine { font-size:13px; line-height:1.55; color:var(--muted); }
.body { font-size:15px; line-height:1.55; color:var(--ink-2); }
.body + .fine, .fine + .fine { margin-top:10px; }
.fine a { color:var(--accent-ink); text-decoration:underline; text-underline-offset:2px; }
.prose .card__h { font-size:17px; margin-bottom:10px; }
.prose p { font-size:15.5px; line-height:1.6; color:var(--ink-2); }
.prose p + p { margin-top:10px; }
.prose ul { margin-top:10px; display:flex; flex-direction:column; gap:8px; }
.prose li { position:relative; padding-left:18px; font-size:15.5px; line-height:1.55; color:var(--ink-2); }
.prose li::before {
  content:""; position:absolute; left:2px; top:9px;
  width:5px; height:5px; border-radius:50%; background:var(--accent);
}
.prose a { color:var(--accent-ink); text-decoration:underline; text-underline-offset:2px; }

/* ----------------------------------------------------------------- buttons */
.btn {
  -webkit-appearance:none; appearance:none; border:0; cursor:pointer;
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  min-height:44px; padding:0 18px; border-radius:12px;
  font-size:15px; font-weight:600; letter-spacing:-.005em;
  background:var(--chip); color:var(--ink);
  transition:transform 150ms var(--ease), box-shadow 150ms var(--ease), background 150ms var(--ease);
}
.btn--wide { display:flex; width:100%; }
.btn--primary { background:var(--accent-solid); color:#fff; box-shadow:0 1px 2px rgba(17,18,20,.10); }
.btn--primary:hover { background:var(--accent-press); transform:translateY(-1px);
  box-shadow:0 4px 14px rgba(214,64,12,.28); }
.btn--primary:active { transform:translateY(0); }
.btn--quiet { background:var(--surface); color:var(--ink); box-shadow:inset 0 0 0 1px var(--hair); }
.btn--quiet:hover { background:var(--hair-soft); }
.btn--text { background:none; color:var(--muted-2); font-weight:500; }
.btn--text:hover { color:var(--ink); }
.btn[disabled] {
  cursor:default; background:var(--chip); color:var(--muted-2); box-shadow:none;
}
.btn[disabled]:hover { transform:none; }

/* ------------------------------------------------------------------- pills */
.pill {
  display:inline-flex; align-items:center; gap:5px;
  padding:5px 10px; border-radius:var(--pill);
  font-size:12px; font-weight:500; white-space:nowrap;
  background:var(--chip); color:var(--muted-2);
}
.pill .num { font-size:12px; }
.pill .ic { width:13px; height:13px; stroke-width:2.2; }
.pill--live { background:var(--accent-tint); color:var(--accent-ink); font-weight:600; }
.pill--done { background:var(--ok-tint); color:var(--ok-ink); }
.pill--a { background:var(--accent-tint); color:var(--accent-ink); font-weight:600; }
.pill__x {
  margin-left:1px; padding-left:8px;
  border-left:1px solid rgba(17,18,20,.13);
  font-weight:500;
}
.pill--live .pill__x { border-left-color:rgba(197,61,13,.26); }

.dot { width:7px; height:7px; border-radius:50%; background:var(--accent); flex:none; }
.dot--pulse { animation:pulse 1.8s var(--ease) infinite; }
@keyframes pulse { 0%,100% { opacity:1; transform:scale(1); } 50% { opacity:.35; transform:scale(.82); } }

.chips { display:flex; flex-wrap:wrap; gap:6px; }
.chips .pill { background:var(--chip); }

/* ------------------------------------------------------------- result pill */
.res {
  display:inline-flex; align-items:center; justify-content:center;
  min-width:52px; padding:5px 10px; border-radius:var(--pill);
  font-size:12px; font-weight:600; background:var(--chip); color:var(--muted-2);
}
.res--win { background:var(--ok-tint); color:var(--ok-ink); }
.res--loss { background:var(--bad-tint); color:var(--bad-ink); }

/* --------------------------------------------------------------- next drop */
.drop { padding:18px 18px 16px; }
.drop__top { display:flex; align-items:center; gap:14px; }
.ring { width:64px; height:64px; flex:none; transform:rotate(-90deg); }
.ring__t { fill:none; stroke:var(--hair); stroke-width:5; }
.ring__a {
  fill:none; stroke:var(--accent); stroke-width:5; stroke-linecap:round;
  stroke-dasharray:169.6; stroke-dashoffset:169.6;
  transition:stroke-dashoffset 900ms linear;
}
.drop__label { font-size:12.5px; font-weight:500; color:var(--muted); }
.drop__time {
  font-family:var(--mono); font-weight:500; font-variant-numeric:tabular-nums;
  font-size:30px; line-height:1.15; letter-spacing:-.03em; margin-top:2px;
  font-feature-settings:"tnum";
}
.drop__time.is-live { color:var(--accent-ink); }
.drop__match {
  display:flex; align-items:baseline; justify-content:space-between; gap:12px; flex-wrap:wrap;
  margin-top:14px; padding-top:14px; border-top:1px solid var(--hair-soft);
}
.match { font-size:19px; font-weight:600; letter-spacing:-.01em; }
.match .at { color:var(--muted); font-weight:400; padding:0 2px; }
.drop__when { font-size:13px; color:var(--muted); }
.drop__act { margin-top:14px; }
.drop__chips { margin-top:12px; }
.drop--empty .drop__time { color:var(--muted); }

/* --------------------------------------------------------------- game rows */
.list { display:flex; flex-direction:column; gap:8px; }
.row {
  display:grid; grid-template-columns:54px minmax(0,1fr) auto;
  align-items:center; gap:12px;
  background:var(--surface); border-radius:var(--r-s);
  box-shadow:var(--sh); padding:12px 14px; min-height:64px;
  transition:transform 150ms var(--ease), box-shadow 150ms var(--ease);
}
a.row:hover { transform:translateY(-1px); box-shadow:var(--sh-lift); }
.row__t {
  font-family:var(--mono); font-weight:500; font-variant-numeric:tabular-nums;
  font-size:14px; line-height:1.2; color:var(--ink);
}
.row__t span { display:block; font-size:11px; color:var(--muted); letter-spacing:0; }
.row__b { min-width:0; }
.row__m { font-size:15px; font-weight:600; letter-spacing:-.01em; }
.row__m .at { color:var(--muted); font-weight:400; padding:0 1px; }
.row__n {
  font-size:12.5px; color:var(--muted); margin-top:2px;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.row__s { justify-self:end; }

/* disclosure */
.disclose { margin-top:10px; }
.disclose__btn {
  -webkit-appearance:none; appearance:none; border:0; cursor:pointer; width:100%;
  display:flex; align-items:center; justify-content:center; gap:6px;
  min-height:44px; border-radius:var(--r-s);
  background:none; color:var(--muted-2); font-size:13.5px; font-weight:500;
  transition:background 150ms var(--ease), color 150ms var(--ease);
}
.disclose__btn:hover { background:var(--hair-soft); color:var(--ink); }
.disclose__btn .ic { width:16px; height:16px; transition:transform 150ms var(--ease); }
.disclose__btn[aria-expanded="true"] .ic { transform:rotate(180deg); }
#rail-done { margin-top:8px; }

/* --------------------------------------------------------------- key/value */
.kv { display:flex; flex-direction:column; gap:0; }
.kv__r {
  display:flex; align-items:baseline; justify-content:space-between; gap:12px;
  padding:10px 0; border-bottom:1px solid var(--hair-soft);
}
.kv__r:last-child { border-bottom:0; padding-bottom:0; }
.kv__r:first-child { padding-top:0; }
.kv__k { font-size:13.5px; color:var(--muted); }
.kv__v { font-size:16px; font-weight:600; }
.kv__v.num { font-size:15.5px; }

/* ------------------------------------------------------------ number tiles */
.tiles { display:grid; grid-template-columns:1fr; gap:10px; }
.tile {
  background:var(--surface); border-radius:var(--r); box-shadow:var(--sh);
  padding:16px 18px;
}
.tile__v {
  display:block; font-family:var(--disp); font-weight:700;
  font-size:34px; line-height:1.05; letter-spacing:-.025em;
}
.tile__k { display:block; margin-top:6px; font-size:12.5px; line-height:1.45; color:var(--muted); }

/* ---------------------------------------------------------------- bar rows */
.bars { display:flex; flex-direction:column; gap:16px; }
.brow__top {
  display:flex; align-items:baseline; justify-content:space-between; gap:10px;
}
.brow__k { font-size:14px; font-weight:500; }
.brow__r { display:flex; align-items:baseline; gap:10px; }
.brow__wl { font-size:13px; color:var(--muted); }
.brow__p { font-size:14px; font-weight:600; }
.brow__track {
  position:relative; height:6px; margin-top:9px;
  background:var(--hair-soft); border-radius:var(--pill);
}
.brow__track i { display:block; height:100%; background:var(--ink-2); border-radius:var(--pill); }
.brow__track u {
  position:absolute; top:-4px; bottom:-4px; left:50%; width:1px;
  background:rgba(17,18,20,.22); text-decoration:none;
}
.brow__n { margin-top:6px; font-size:12px; color:var(--muted); }
.bars__key { margin-top:14px; font-size:12px; color:var(--muted); }

/* ---------------------------------------------------------------- leg list */
.legs { display:flex; flex-direction:column; }
.leg {
  display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:start; gap:12px;
  padding:13px 0; border-bottom:1px solid var(--hair-soft);
}
.leg:last-child { border-bottom:0; padding-bottom:0; }
.leg:first-child { padding-top:0; }
.leg__p { font-size:14.5px; font-weight:600; letter-spacing:-.005em; }
.leg__o { color:var(--muted); font-weight:500; }
.leg__g { font-size:12.5px; color:var(--muted); margin-top:3px; }
.leg__n { display:flex; flex-wrap:wrap; gap:2px 14px; margin-top:5px;
  font-size:12px; color:var(--muted); }
.leg__n b { font-weight:500; color:var(--ink-2); }
.legscroll { max-height:none; }

/* ------------------------------------------------------------- score cards */
.cards { display:grid; grid-template-columns:1fr; gap:10px; }
.score { padding:14px 16px; }
.score__t {
  display:grid; grid-template-columns:46px minmax(0,1fr) auto; align-items:center; gap:10px;
  padding:5px 0;
}
.score__ab { font-size:14px; font-weight:600; letter-spacing:-.01em; }
.score__nm {
  font-size:13px; color:var(--muted);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.score__pt {
  font-family:var(--mono); font-weight:500; font-variant-numeric:tabular-nums;
  font-size:17px; letter-spacing:-.02em;
}
.score__pt.is-lost { color:var(--muted); }
.score__s {
  display:flex; align-items:center; gap:6px;
  margin-top:8px; padding-top:9px; border-top:1px solid var(--hair-soft);
  font-size:12.5px; color:var(--muted);
}
.score__s.is-live { color:var(--accent-ink); font-weight:600; }
.score--final .score__ab { color:var(--ink-2); }

/* ---------------------------------------------------------------- skeleton */
.sk { background:var(--surface); border-radius:var(--r); box-shadow:var(--sh); padding:16px; }
.sk__l { height:12px; border-radius:6px; background:var(--hair-soft); position:relative; overflow:hidden; }
.sk__l + .sk__l { margin-top:10px; }
.sk__l:nth-child(2) { width:72%; }
.sk__l:nth-child(3) { width:40%; }
.sk__l::after {
  content:""; position:absolute; inset:0;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.85),transparent);
  transform:translateX(-100%); animation:shimmer 1.4s infinite;
}
@keyframes shimmer { 100% { transform:translateX(100%); } }

/* ------------------------------------------------------------- free leg UI */
.free__top { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.free__g { margin-top:12px; font-size:13px; color:var(--muted); }
.free__p { margin-top:2px; font-size:22px; font-weight:600; letter-spacing:-.02em; line-height:1.25; }
.free__p .num { font-size:18px; color:var(--muted); }
.cmp { margin-top:16px; display:flex; flex-direction:column; gap:10px; }
.cmp__r { display:grid; grid-template-columns:96px minmax(0,1fr) 54px; align-items:center; gap:10px; }
.cmp__k { font-size:13px; color:var(--muted); }
.cmp__t { height:8px; background:var(--hair-soft); border-radius:var(--pill); overflow:hidden; }
.cmp__t i { display:block; height:100%; background:var(--accent); border-radius:var(--pill);
  transition:width 400ms var(--ease); }
.cmp__r--book .cmp__t i { background:var(--ink-2); }
.cmp__v { font-size:13.5px; text-align:right; }
.free__edge {
  margin-top:14px; padding-top:12px; border-top:1px solid var(--hair-soft);
  display:flex; align-items:baseline; justify-content:space-between;
  font-size:13.5px; color:var(--muted);
}
.free__edge .num { font-size:15px; font-weight:500; color:var(--ink); }

/* ------------------------------------------------------------------ footer */
.foot {
  border-top:1px solid var(--hair);
  padding:22px 16px calc(var(--tab) + env(safe-area-inset-bottom) + 22px);
}
.foot__in { max-width:var(--w); margin:0 auto; }
.foot__nav { display:flex; flex-wrap:wrap; gap:6px 18px; margin-bottom:14px; }
.foot__nav a { font-size:13.5px; color:var(--muted-2); }
.foot__nav a:hover { color:var(--ink); }
.foot__legal { font-size:12.5px; line-height:1.55; color:var(--ink-2); font-weight:500; max-width:74ch; }
.foot__sub { margin-top:6px; font-size:12.5px; line-height:1.55; color:var(--muted); max-width:74ch; }

/* -------------------------------------------------------------- 19+ gate */
.gate {
  position:fixed; inset:0; z-index:50;
  display:flex; align-items:flex-end; justify-content:center;
  background:rgba(17,18,20,.32);
}
.gate__sheet {
  width:100%; max-width:520px;
  background:var(--surface); box-shadow:var(--sh-pop);
  border-radius:20px 20px 0 0;
  padding:10px 20px calc(24px + env(safe-area-inset-bottom));
  animation:sheet 240ms var(--ease);
}
@keyframes sheet { from { transform:translateY(16px); opacity:0; } }
.gate__grip { width:38px; height:4px; border-radius:2px; background:var(--hair); margin:0 auto 18px; }
.gate__sheet img { height:22px; width:auto; margin-bottom:16px; }
.gate__sheet h2 {
  font-family:var(--disp); font-weight:700; font-size:24px; letter-spacing:-.02em;
}
.gate__sheet p { margin-top:8px; font-size:14.5px; line-height:1.5; color:var(--muted); }
.gate__acts { margin-top:20px; display:flex; flex-direction:column; gap:4px; }

/* ------------------------------------------------------------------ states */
.empty {
  background:var(--surface); border-radius:var(--r); box-shadow:var(--sh);
  padding:22px 18px; text-align:center; font-size:14px; color:var(--muted);
}
.empty .ic { width:24px; height:24px; margin:0 auto 10px; stroke:var(--hair); stroke-width:1.5; }

/* ------------------------------------------------------------- breakpoints */
@media (min-width:560px) {
  .tiles { grid-template-columns:repeat(3,1fr); }
  .cards { grid-template-columns:repeat(2,1fr); }
}

@media (min-width:769px) {
  :root { --tab:0px; }
  .tabs { display:none; }
  .seg { display:flex; }
  .bar { height:56px; }
  .app { padding:28px 24px 48px; }
  .foot { padding:26px 24px 40px; }
  .pagehead h1 { font-size:32px; }
  .grid {
    display:grid; grid-template-columns:minmax(0,1fr) 344px; gap:22px; align-items:start;
  }
  .grid__side { position:sticky; top:78px; display:flex; flex-direction:column; gap:12px; order:2; }
  .grid__main { order:1; min-width:0; }
  .cards { grid-template-columns:repeat(auto-fill,minmax(272px,1fr)); }
  .legscroll { max-height:520px; overflow-y:auto; padding-right:6px; }
  .gate { align-items:center; padding:24px; }
  .gate__sheet { border-radius:20px; padding:24px 26px 26px; }
  .gate__grip { display:none; }
  .gate__sheet img { margin-top:2px; }
  .narrow { max-width:var(--w-narrow); }
  .row { padding:13px 16px; }
}

@media (max-width:768px) {
  .app, .foot__in, .pagehead, .narrow { max-width:var(--w-narrow); margin-left:auto; margin-right:auto; }
  .grid { display:flex; flex-direction:column; gap:12px; }
  .grid__side { display:flex; flex-direction:column; gap:12px; }
  .grid__main { margin-top:10px; }
}

@media (max-width:520px) {
  /* the status pill gets its own line so the matchup never truncates */
  .row { grid-template-columns:54px minmax(0,1fr); row-gap:0; align-items:start; }
  .row__t { padding-top:1px; }
  .row__s { grid-column:2; justify-self:start; margin-top:9px; }
  .row__n { white-space:normal; }
}

@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after {
    animation-duration:.001ms !important; animation-iteration-count:1 !important;
    transition-duration:.001ms !important; scroll-behavior:auto !important;
  }
  .ring__a { transition:none; }
}

/* a display: rule must never beat the hidden attribute */
[hidden] { display:none !important; }

/* keep pointer targets at 44px without inflating the compact desktop chrome */
.seg__i, .bar__info { position:relative; }
.seg__i::after, .bar__info::after {
  content:""; position:absolute; left:0; right:0; top:50%;
  height:44px; transform:translateY(-50%);
}

/* one-line link row (the free-leg teaser); .card.linkrow outranks a.card */
.card.linkrow {
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  min-height:56px;
}
.linkrow__k { font-size:14px; color:var(--muted); }
.linkrow__v {
  display:inline-flex; align-items:center; gap:2px;
  font-size:14px; font-weight:600; color:var(--ink);
}
.linkrow__v .ic { width:18px; height:18px; transform:rotate(-90deg); color:var(--muted); }
