/* ============================================================================
   cockpit.css — Capstaq investor cockpit home
   Recreated from the approved reference (capstaq-intelligence mock):
   navy #050f1c / ink #090d12 / gold #d99b1b / canvas #eceeed / line #d6d9d7
   Inter for UI, monospace for data labels. One compact screen per route.
   ========================================================================== */
:root{
  --navy:#050f1c; --panel:#071321; --panel-2:#07111e; --ink:#090d12;
  /* --gold-deep is the light-ground accent and is never used on a dark ground
     (verified across all 46 pages). At #b8790b it measured 3.63:1 on white and
     3.12:1 on the canvas, so every small label wearing it failed AA. #8f5d07 is
     the same hue at 5.62:1 on white, 4.82:1 on canvas, 5.16:1 on the paper. */
  --gold:#d99b1b; --gold-deep:#8f5d07; --gold-bright:#f0ad27; --gold-soft:#e0a536;
  --canvas:#eceeed; --card:#fbfcfb; --card-2:#f7f8f7; --line:#d6d9d7; --muted:#626b73;
  --on-dark:#e8ebee; --on-dark-mut:#93a0ac; --line-dark:rgba(255,255,255,.1);
  --font-sans:"Inter",Arial,Helvetica,sans-serif;
  --font-mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --r-sm:.25rem; --r-md:.375rem; --r-lg:.5rem; --r-xl:.75rem;
  --shadow-card:0 1px 2px rgba(9,13,18,.05),0 10px 30px rgba(9,13,18,.07);
  --shadow-pop:0 2px 6px rgba(9,13,18,.08),0 18px 44px rgba(9,13,18,.14);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body.cockpit{margin:0;background:var(--canvas);color:var(--ink);
  font:400 15px/1.5 var(--font-sans);-webkit-font-smoothing:antialiased}
body.cockpit a{text-decoration:none;color:inherit}
body.cockpit img{display:block;max-width:100%}
.mono{font-family:var(--font-mono)}
.wrapc{max-width:1240px;margin:0 auto;padding:0 28px}
:focus-visible{outline:2px solid var(--gold);outline-offset:2px;border-radius:2px}


/* ---------------- hero ---------------- */
/* The copy column used to run ~330px shorter than the snapshot card, leaving a
   dead well of canvas under the route cards: the page read as a brochure with
   a widget bolted to it. Closed from both sides — the snapshot card lost ~57px
   once the deal rows stopped wrapping, and the copy column now runs on a fixed
   rhythm (lede 24 / CTA 40) instead of an open-ended gap. Residual difference
   is ~42px, which reads as ordinary column asymmetry. */
.ck-hero{padding:34px 0 24px}
.ck-hero__grid{display:grid;grid-template-columns:1fr 496px;gap:40px;align-items:start}
.ck-hero__copy{display:flex;flex-direction:column}
.ck-hero__copy h1{margin:0 0 16px;font-size:clamp(34px,3.6vw,50px);line-height:1.06;font-weight:800;letter-spacing:-.025em;color:var(--ink)}
.ck-hero__copy h1 .g{color:var(--gold-deep)}
.ck-hero__lede{font-size:16px;line-height:1.6;color:#39424b;max-width:480px;margin:0 0 24px}
.ck-hero__cta{display:flex;gap:12px;flex-wrap:wrap;margin:0 0 40px}

/* Route cards — the primary routing control of the cockpit. They carry card
   chrome at rest (not only on hover) so they read as pressable instruments
   rather than as a decorative icon row. */
.ck-paths{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.ck-paths .ck-path{display:flex;flex-direction:column;height:100%;padding:16px 16px 15px;
  border-radius:var(--r-lg);border:1px solid var(--line);background:var(--card);
  box-shadow:0 1px 2px rgba(9,13,18,.04);
  transition:background .15s,border-color .15s,transform .15s,box-shadow .15s}
.ck-paths .ck-path:hover{background:#fff;border-color:var(--gold);transform:translateY(-2px);box-shadow:var(--shadow-card)}
.ck-paths .ck-path .ic{width:34px;height:34px;border:1px solid var(--gold);border-radius:var(--r-md);display:grid;place-items:center;color:var(--gold-deep);margin-bottom:11px}
.ck-paths .ck-path b{display:block;font-size:13.5px;font-weight:700;color:var(--ink);margin-bottom:5px}
.ck-paths .ck-path span{display:block;font-size:12px;line-height:1.45;color:var(--muted)}
.ck-paths .ck-path::after{content:"→";display:block;margin-top:auto;padding-top:12px;
  font-size:14px;font-weight:800;line-height:1;color:var(--gold-deep);
  opacity:.55;transition:opacity .15s,transform .15s}
.ck-paths .ck-path:hover::after{opacity:1;transform:translateX(3px)}

/* market pulse card */
.pulse{background:var(--card);border:1px solid var(--line);border-radius:var(--r-xl);box-shadow:var(--shadow-pop);overflow:hidden}
.pulse__hd{display:flex;align-items:center;gap:10px;padding:13px 16px;border-bottom:1px solid var(--line)}
.pulse__hd .t{font-family:var(--font-mono);font-size:11px;font-weight:700;letter-spacing:.14em;color:var(--ink)}
.pulse__hd .d{font-size:11px;color:var(--muted);margin-right:auto}
.pulse__live{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:11px;font-weight:700;letter-spacing:.1em;
  color:#1d7a45;background:#e7f3ec;border:1px solid #bfe0cc;border-radius:999px;padding:3px 9px}
.pulse__live i{width:6px;height:6px;border-radius:50%;background:#2ba05a;animation:pulse-dot 2s cubic-bezier(.4,0,.6,1) infinite}
@keyframes pulse-dot{50%{opacity:.35}}
@media (prefers-reduced-motion:reduce){.pulse__live i{animation:none}}
.pulse__stats{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;padding:11px}
.pulse__stat{border:1px solid var(--line);border-radius:var(--r-lg);background:#fff;padding:10px 12px}
.pulse__stat small{display:block;font-size:11px;color:var(--muted);margin-bottom:2px}
.pulse__stat b{display:block;font-size:21px;font-weight:800;letter-spacing:-.02em;color:var(--ink)}
.pulse__stat .up{display:block;font-size:11px;line-height:1.35;color:#1d7a45;margin-top:3px}
.pulse__feat{padding:2px 16px 6px}
.pulse__feat .fh{display:flex;align-items:center;justify-content:space-between;padding:6px 0 5px;border-top:2px solid var(--gold)}
.pulse__feat .fh b{font-family:var(--font-mono);font-size:11px;font-weight:700;letter-spacing:.12em;color:var(--ink)}
/* 40px tap target without adding visual weight to a tertiary link. */
.pulse__feat .fh a{display:inline-flex;align-items:center;min-height:40px;padding-left:12px;font-size:12px;font-weight:600;color:#7f5000}
.pulse__feat .fh a:hover{color:var(--gold)}
/* The metric block used to sit in a third column, which starved the name and
   wrapped every deal title onto two or three lines. Raising the uppercase mono
   labels to the 11px floor made that worse, not better: at 11px "EQUITY
   REMAINING" alone is ~112px and the three labels, not min-width, set the
   column. So the metrics move to their own full-width row under the name, the
   layout the mobile breakpoint already used. Every title now gets one line and
   the row height is unchanged, because the title stopped wrapping. */
.feat-row{display:grid;grid-template-columns:38px 1fr;gap:0 7px;row-gap:5px;align-items:center;padding:8px 0;border-top:1px solid var(--line);transition:background .15s}
.feat-row img{grid-row:1/3;align-self:center}
.feat-row .nm,.feat-row .mx{grid-column:2}
.feat-row:hover{background:var(--card-2)}
.feat-row img{width:38px;height:31px;object-fit:cover;border-radius:var(--r-sm)}
.feat-row .nm{min-width:0}
.feat-row .nm b{display:block;font-size:12.5px;font-weight:700;color:var(--ink)}
.feat-row .nm span{display:block;font-size:11px;color:var(--muted)}
.feat-row .mx{display:flex;gap:18px;text-align:left}
.feat-row .mx div{min-width:0}
/* The uppercase metric labels, not min-width, set this column's size. At .08em
   they pushed the block to 258px and forced every deal title onto two lines. */
.feat-row .mx small{display:block;font-family:var(--font-mono);font-size:11px;letter-spacing:.03em;color:var(--muted);text-transform:uppercase}
.feat-row .mx b{display:block;font-size:12px;font-weight:700;color:var(--ink);margin-top:1px}

/* ---------------- route tiles ---------------- */
.ck-tiles{padding:2px 0 22px}
.ck-tiles__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.tile{position:relative;border-radius:var(--r-xl);overflow:hidden;min-height:0;display:flex;flex-direction:column;justify-content:flex-start;
  padding:20px;color:#fff;box-shadow:var(--shadow-card);transition:transform .2s,box-shadow .2s}
.tile:hover{transform:translateY(-4px);box-shadow:var(--shadow-pop)}
.tile__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.tile__scrim{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(5,15,28,.82),rgba(5,15,28,.62) 55%,rgba(5,15,28,.86))}
.tile--light{color:var(--ink)}
.tile--light .tile__scrim{background:linear-gradient(105deg,rgba(251,252,251,.94) 38%,rgba(251,252,251,.55))}
.tile>*:not(.tile__img):not(.tile__scrim){position:relative;z-index:2}
.tile h2{margin:0 0 8px;font-size:18px;font-weight:800;letter-spacing:-.01em;color:var(--gold-bright)}
.tile--light h2{color:var(--ink)}
.tile__lede{font-size:13px;line-height:1.45;font-weight:600;margin:0 0 12px;max-width:270px}
.tile ul{list-style:none;margin:0 0 16px;padding:0;display:grid;gap:7px}
.tile li{display:flex;gap:8px;align-items:flex-start;font-size:12px;line-height:1.35}
.tile li .ck{width:14px;height:14px;flex:0 0 14px;margin-top:1px;border-radius:50%;background:var(--gold);color:var(--ink);display:grid;place-items:center}
.tile li .ck svg{width:8px;height:8px}
.tile .ck-btn{margin-top:auto;align-self:flex-start}
/* Tile buttons were scoped to body.cockpit alongside the masthead buttons, for
   no reason either of them needed. A variant's fill does not depend on the
   body class. */
.ck-btn.ck-btn--tile{color:var(--ink);background:#fff}
.tile--light .ck-btn.ck-btn--tile{color:#fff;background:var(--panel)}
.ck-btn--tile:hover{transform:translateY(-1px);box-shadow:0 8px 18px rgba(9,13,18,.25)}

/* ---------------- trust + stats ---------------- */
.ck-trust{padding:10px 0 26px}
.ck-trust__grid{display:flex;align-items:center;gap:30px;flex-wrap:wrap}
.ck-trust__label{font-family:var(--font-mono);font-size:11px;font-weight:700;letter-spacing:.14em;color:var(--muted);line-height:1.6}
.ck-trust__logos{display:flex;align-items:center;gap:34px;flex-wrap:wrap;flex:1;justify-content:space-between}
.ck-trust__logos span{font-size:15px;font-weight:700;letter-spacing:.04em;color:#4c565f;white-space:nowrap}
.ck-trust__logos span.serif{font-family:Georgia,"Times New Roman",serif;font-weight:600}
.ck-trust__logos small{font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;color:var(--muted)}
.ck-stats{background:var(--panel-2);color:#fff}
.ck-stats__grid{display:grid;grid-template-columns:repeat(6,1fr)}
.ck-stat{padding:22px 12px;text-align:center;border-left:1px solid var(--line-dark)}
.ck-stat:first-child{border-left:0}
.ck-stat b{display:block;font-size:23px;font-weight:800;letter-spacing:-.02em;color:var(--gold-bright)}
.ck-stat span{display:block;font-size:11px;color:var(--on-dark-mut);margin-top:4px}


/* ---------------- responsive ---------------- */
@media(max-width:1080px){
  .ck-hero__grid{grid-template-columns:1fr;gap:30px}
  .pulse{max-width:560px}
  .ck-tiles__grid{grid-template-columns:1fr;max-width:560px}
  .tile{min-height:0}
  .ck-stats__grid{grid-template-columns:repeat(3,1fr)}
  .ck-stat:nth-child(4){border-left:0}
  .ck-stat:nth-child(n+4){border-top:1px solid var(--line-dark)}
}
@media(max-width:640px){
  .wrapc{padding:0 18px}
  .ck-hero{padding:24px 0 20px}
  .ck-hero__cta{margin-bottom:26px}
  .ck-hero__cta .ck-btn{flex:1 1 100%}

  /* Route cards become compact full-width rows: three legible routes in the
     height two stacked cards used to take. */
  .ck-paths{grid-template-columns:1fr;gap:8px}
  .ck-paths .ck-path{display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:auto auto;
    column-gap:12px;align-items:center;padding:12px 14px;height:auto}
  /* The icon is itself a <span>, so the description selector must exclude it
     or the icon gets placed into the text column and sits under the label. */
  .ck-paths .ck-path .ic{grid-column:1;grid-row:1/3;margin-bottom:0}
  .ck-paths .ck-path b{grid-column:2;grid-row:1;margin-bottom:2px}
  .ck-paths .ck-path span:not(.ic){grid-column:2;grid-row:2}
  .ck-paths .ck-path::after{grid-column:3;grid-row:1/3;margin-top:0;padding-top:0}

  .pulse__stats{grid-template-columns:1fr 1fr}
  /* 11px floor for every label in the readout. */
  .pulse__hd .d{font-size:11px;line-height:1.35}
  .pulse__live{font-size:11px}
  /* The metric row is already stacked at every width; below 640px the third
     metric is the one that has to go so the other two stay on one line. */
  .feat-row .mx{gap:16px}
  .feat-row .mx div:nth-child(3){display:none}

  .tile{padding:18px}
  .ck-stats__grid{grid-template-columns:1fr 1fr}
  .ck-stat{border-left:0;border-top:1px solid var(--line-dark)}
  .ck-stat:nth-child(-n+2){border-top:0}
}


/* from opportunities.html */
/* ===== opportunities cockpit — one focus: browse current deals ===== */
  .o-hero{background:var(--panel);color:var(--on-dark);padding:40px 0 30px;border-bottom:1px solid var(--line-dark)}
  .o-hero h1{font-size:clamp(26px,3.2vw,40px);line-height:1.1;letter-spacing:-.025em;font-weight:800;color:#fff;margin:10px 0 8px}
  .o-hero h1 .g{color:var(--gold-bright)}
  .o-eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.18em;color:var(--gold-soft);font-weight:700;text-transform:uppercase}
  .o-hero .lede{color:var(--on-dark-mut);font-size:15px;max-width:640px}
  .o-hero__row{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-top:18px}
  .o-count{font-family:var(--font-mono);font-size:12px;color:var(--on-dark-mut)}
  .o-count b{color:var(--gold-bright);font-size:15px}
  /* thin 3-box bar under hero */




  /* ICP access card */
  .o-access-card{display:flex;align-items:center;gap:18px;background:linear-gradient(135deg,var(--panel),#0a1a2e);
    border:1.5px solid var(--gold);border-radius:12px;padding:16px 22px;margin:14px 0 18px;color:#fff;transition:transform .15s,box-shadow .15s}
  .o-access-card:hover{transform:translateY(-2px);box-shadow:0 10px 30px rgba(217,155,27,.25)}
  .o-access-card b{display:block;font-size:16px;font-weight:800;color:var(--gold-bright)}
  .o-access-card span{display:block;font-size:12.5px;color:var(--on-dark-mut);margin-top:3px}
  .o-access-card .ar{font-size:14px;font-weight:800;color:var(--gold-bright);white-space:nowrap;border:1px solid var(--gold);border-radius:8px;padding:10px 16px}
  /* instrument readout */
  .o-panel-hd{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap;border-bottom:2px solid var(--gold);padding-top:20px;padding-bottom:10px;margin-bottom:14px}

  /* filter pills */
  /* thin 3-box bar — navy boxes, white titles */
  .o-bar3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:16px 0 4px}
  @media(max-width:760px){.o-bar3{grid-template-columns:1fr}}
  .o-bar3 .ck-path{background:var(--panel);border:1px solid var(--line-dark)}
  .o-bar3 .ck-path b{color:#fff}
  .o-bar3 .ck-path span:not(.ic){color:var(--on-dark-mut)}
  .o-bar3 .ck-path:hover{border-color:var(--gold);transform:translateY(-2px)}

  /* ICP access card */
  .o-access-card{display:flex;align-items:center;gap:18px;background:linear-gradient(135deg,var(--panel),#0a1a2e);
    border:1.5px solid var(--gold);border-radius:12px;padding:16px 22px;margin:14px 0 18px;color:#fff;transition:transform .15s,box-shadow .15s}
  .o-access-card:hover{transform:translateY(-2px);box-shadow:0 10px 30px rgba(217,155,27,.25)}
  .o-access-card b{display:block;font-size:16px;font-weight:800;color:var(--gold-bright)}
  .o-access-card span{display:block;font-size:12.5px;color:var(--on-dark-mut);margin-top:3px}
  .o-access-card .ar{font-size:14px;font-weight:800;color:var(--gold-bright);white-space:nowrap;border:1px solid var(--gold);border-radius:8px;padding:10px 16px}
  /* instrument readout */
  .o-panel-hd{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap;border-bottom:2px solid var(--gold);padding-top:20px;padding-bottom:10px;margin-bottom:14px}

  /* filter pills */
  .o-pills{display:flex;gap:8px;flex-wrap:wrap;padding:18px 0 14px}
  .o-pill{font-size:12.5px;font-weight:700;letter-spacing:.04em;padding:8px 16px;border-radius:999px;cursor:pointer;
    background:#fff;border:1px solid var(--line);color:var(--muted);transition:background-color .15s,border-color .15s,color .15s}
  .o-pill:hover{border-color:var(--gold);color:var(--ink)}
  .o-pill[data-active="true"]{background:var(--panel);color:#fff;border-color:var(--panel)}
  /* deal grid as data cards */
  .o-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
  @media(max-width:1080px){.o-grid{grid-template-columns:repeat(2,1fr)}}
  @media(max-width:680px){.o-grid{grid-template-columns:1fr}}
  .o-card{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden;transition:transform .15s,box-shadow .15s;display:flex;flex-direction:column}
  .o-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-pop)}
  .o-card__media{position:relative;height:150px;overflow:hidden}
  .o-card__media img{width:100%;height:100%;object-fit:cover}
  .o-card__class{position:absolute;top:10px;left:10px;background:rgba(5,15,28,.85);color:var(--gold-soft);
    font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;padding:4px 9px;border-radius:5px;font-weight:700}
  .o-card__body{padding:14px 16px 16px;display:flex;flex-direction:column;flex:1}
  .o-card__body h3{font-size:16px;font-weight:800;letter-spacing:-.015em;color:var(--ink)}
  .o-card__loc{font-size:12.5px;color:var(--muted);margin-top:2px}
  .o-card__facts{display:flex;gap:8px;margin:12px 0;flex-wrap:wrap}
  .o-card__facts span{font-size:11px;font-weight:600;color:var(--muted);background:var(--card-2);border:1px solid var(--line);border-radius:6px;padding:4px 8px}
  .o-card .btn{margin-top:auto;height:34px;font-size:12.5px;justify-content:center;padding:0 12px;gap:6px}
  .o-card .btn .ar{flex:none}
  /* one-line footer */
  .o-footer{background:var(--panel);color:var(--muted);border-top:1px solid var(--line-dark);padding:16px 0 22px;margin-top:30px}
  .o-footer .wrapc{display:flex;align-items:center;gap:18px;flex-wrap:wrap;font-size:11px}
  .o-footer a{color:var(--on-dark-mut);text-decoration:underline;text-underline-offset:2px}
  .o-footer a:hover{color:var(--gold-soft)}
  .o-footer .disc{flex:1;min-width:260px;color:var(--on-dark-mut);line-height:1.5}

/* from 1031-exchange.html */
/* ============ 1031 cockpit page — stage-first, one screen (+1/8 scroll) ============ */
  .x-hero{background:var(--panel);color:var(--on-dark);padding:44px 0 38px;border-bottom:1px solid var(--line-dark)}
  .x-hero__grid{display:grid;grid-template-columns:1.15fr .85fr;gap:34px;align-items:start}
  @media(max-width:980px){.x-hero__grid{grid-template-columns:1fr}}
  .x-eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.18em;color:var(--gold-soft);font-weight:700;text-transform:uppercase}
  .x-hero h1{font-size:clamp(28px,3.6vw,44px);line-height:1.08;letter-spacing:-.025em;font-weight:800;color:#fff;margin:12px 0 10px}
  .x-hero h1 .g{color:var(--gold-bright)}
  .x-hero .lede{color:var(--on-dark-mut);font-size:15.5px;max-width:520px}
  /* clock band */
  .x-clocks{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:24px}
  .x-clock{border:1px solid var(--line-dark);border-radius:10px;padding:16px 18px;background:rgba(255,255,255,.03)}
  .x-clock b{display:block;font-size:26px;font-weight:800;color:var(--gold-bright);letter-spacing:-.02em}
  .x-clock small{display:block;font-size:12px;color:var(--on-dark-mut);margin-top:4px;line-height:1.45}
  @media(max-width:520px){.x-clocks{grid-template-columns:1fr}}
  /* stages */
  .x-stages{display:flex;flex-direction:column;gap:10px}
  .x-stage{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;width:100%;text-align:left;
    background:rgba(255,255,255,.04);border:1px solid var(--line-dark);border-radius:12px;padding:16px 18px;
    color:var(--on-dark);cursor:pointer;transition:border-color .15s,background .15s,transform .15s;font:inherit}
  .x-stage:hover{background:rgba(255,255,255,.07);transform:translateX(3px)}
  .x-stage[aria-pressed="true"]{border-color:var(--gold);background:rgba(217,155,27,.09)}
  .x-stage[aria-pressed="true"] .x-stage__go{color:var(--gold-bright)}
  .x-stage__n{font-family:var(--font-mono);font-size:12px;font-weight:700;color:var(--gold-soft);border:1px solid var(--line-dark);border-radius:8px;padding:7px 9px}
  .x-stage__body b{display:block;font-size:15.5px;font-weight:700;color:#fff}
  .x-stage__body small{display:block;font-size:12.5px;color:var(--on-dark-mut);margin-top:3px;line-height:1.45}
  .x-stage__go{font-size:18px;color:var(--on-dark-mut)}
  /* answer panel */
  .x-answer-container{position:relative}
  .x-answer{position:sticky;top:84px;background:#fff;border:1px solid var(--line);border-top:3px solid var(--gold);border-radius:12px;
    padding:24px 24px 20px;box-shadow:var(--shadow-pop)}
  .x-answer .x-eyebrow{color:var(--gold-deep)}
  .x-answer h2{font-size:22px;font-weight:800;letter-spacing:-.02em;color:var(--ink);margin:8px 0 8px}
  .x-answer .lede{font-size:14px;color:var(--muted);line-height:1.6}
  .x-answer .steps{margin:14px 0 4px;display:flex;flex-direction:column;gap:9px}
  .x-answer .steps div{display:flex;gap:10px;font-size:13.5px;color:var(--ink);line-height:1.5}
  .x-answer .steps div::before{content:"→";color:var(--gold-deep);font-weight:800;flex:none}
  .x-answer .x-ctas{display:grid;gap:10px;margin-top:18px}
  .x-when{font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;color:var(--muted);margin-top:14px;border-top:1px solid var(--line);padding-top:12px}
  .x-when b{color:var(--ink);font-weight:700}
  /* eligible deals strip */
  .x-deals{padding:26px 0 30px}
  .x-deals__hd{display:flex;align-items:baseline;gap:14px;margin-bottom:14px}
  .x-deals__hd h2{font-size:19px;font-weight:800;letter-spacing:-.015em;color:var(--ink)}
  .x-deals__hd small{font-size:12px;color:var(--muted)}
  .x-deals__hd a{margin-left:auto;font-size:13px;font-weight:700;color:var(--gold-deep)}
  .x-deal-row{display:grid;grid-template-columns:86px 1.5fr 1fr 1fr auto;gap:14px;align-items:center;
    background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:10px;transition:box-shadow .15s,transform .15s}
  .x-deal-row:hover{box-shadow:var(--shadow-card);transform:translateY(-1px)}
  @media(max-width:860px){.x-deal-row{grid-template-columns:86px 1fr auto}.x-deal-row .xdp{display:none}}
  .x-deal-row img{width:86px;height:60px;object-fit:cover;border-radius:8px}
  .xdp-name b{display:block;font-size:14px;font-weight:700;color:var(--ink)}
  .xdp-name small{font-size:12px;color:var(--muted)}
  .xdp small{display:block;font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;color:var(--muted);text-transform:uppercase}
  .xdp b{font-size:14px;color:var(--ink)}
  .x-deal-row .btn{height:34px;padding:0 14px;font-size:12.5px}
  /* bottom bar = one CTA per page */
  .x-bar{background:var(--panel);color:#fff;padding:26px 0;border-top:1px solid var(--line-dark)}
  .x-bar__in{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
  .x-bar p{flex:1;min-width:240px;font-size:15px;font-weight:600;color:var(--on-dark);margin:0}
  .x-bar small{display:block;font-size:11.5px;color:var(--on-dark-mut);font-weight:400;margin-top:3px}
  .x-fine{font-size:11px;color:var(--on-dark-mut);padding:12px 0 22px;border-top:1px solid var(--line-dark)}

/* A visual card should behave like the action it advertises. The existing
   semantic link remains the only keyboard stop; pointer users can use the
   image and copy surface as well. */
.is-actionable-card { cursor: pointer; }
.is-actionable-card img { transition: transform .2s ease, filter .2s ease; }
.is-actionable-card:hover img { transform: scale(1.015); filter: brightness(.92); }
.is-actionable-card:has(a:focus-visible) { outline: 3px solid var(--gold); outline-offset: 3px; }
