/* ==========================================================================
   HellSpin AU — global stylesheet
   Tokens use this build's own variable dictionary (site prefix "lqm").
   Scale: TYPO-09 · SPACE-07 · CONT-10 · GEO-05 · motion (moderate).
   ========================================================================== */

/* ---- Self-hosted fonts (Roboto display / Open Sans body)  ---- */
@font-face { font-family:"Roboto"; font-style:normal; font-weight:400; font-display:swap;
  src:url("/faces/roboto-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family:"Roboto"; font-style:normal; font-weight:500; font-display:swap;
  src:url("/faces/roboto-latin-500-normal.woff2") format("woff2"); }
@font-face { font-family:"Roboto"; font-style:normal; font-weight:700; font-display:swap;
  src:url("/faces/roboto-latin-700-normal.woff2") format("woff2"); }
@font-face { font-family:"Open Sans"; font-style:normal; font-weight:400; font-display:swap;
  src:url("/faces/open-sans-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family:"Open Sans"; font-style:normal; font-weight:600; font-display:swap;
  src:url("/faces/open-sans-latin-600-normal.woff2") format("woff2"); }
@font-face { font-family:"Open Sans"; font-style:normal; font-weight:700; font-display:swap;
  src:url("/faces/open-sans-latin-700-normal.woff2") format("woff2"); }

/* ---- Design tokens ------------------------------------------------------- */
:root {
  /* colours (final, after ±2% shift) */
  --lqm-root:#cf2001;
  --lqm-flare:#f88a02;
  --lqm-key-active:#d97100;
  --lqm-sheet:#101010;
  --lqm-card:#1a1512;
  --lqm-body:#ffffff;
  --lqm-text-muted:#c1c1c1;
  --lqm-line:rgba(255,255,255,0.10);
  --lqm-edge-hard:rgba(255,255,255,0.18);
  --lqm-age-band:#ad2831;
  --lqm-gradient-light:#ffce87;
  --lqm-blend-b:#ffa031;

  /* typography */
  --lqm-display:"Roboto",system-ui,-apple-system,Segoe UI,Arial,sans-serif;
  --lqm-reading:"Open Sans",system-ui,-apple-system,Segoe UI,Arial,sans-serif;
  --lqm-h1:52px;  --lqm-display-2:32px; --lqm-lg-2:24px; --lqm-md-2:19px;
  --lqm-sm-2:16px; --lqm-xs-2:14px; --z-body:17px; --lqm-caption:14px; --lqm-xs:12px;
  --lqm-snug:1.15; --lqm-even:1.55; --lqm-loose:1.7;
  --lqm-book:400; --lqm-medium:500; --lqm-strong:700;
  --lqm-close:0; --e-even:0; --e-loose:0.02em;

  /* spacing (SPACE-07) */
  --lqm-step-0:3px; --lqm-step-1:8px; --lqm-step-2:13px; --lqm-step-3:21px;
  --lqm-step-4:34px; --lqm-step-5:55px; --lqm-step-6:89px; --lqm-step-7:144px;

  /* radius / shadow (GEO-05) */
  --r-step-1:4px; --r-step-2:10px; --r-step-3:16px; --r-step-4:28px;
  --lqm-stadium:9999px; --lqm-circle:50%;
  --d-step-2:0 4px 10px rgba(0,0,0,0.35);
  --d-step-3:0 10px 28px rgba(0,0,0,0.45);
  --d-step-4:0 20px 48px rgba(0,0,0,0.55);

  /* containers (CONT-10) */
  --lqm-outer:1360px; --lqm-inner:1360px; --lqm-tight:430px;
  --lqm-padding-desktop:32px; --lqm-padding-tablet:24px; --lqm-edge-narrow:16px;

  /* header height */
  --lqm-h-lg:64px; --lqm-size-mobile:58px; --rg-height:34px;

  /* motion (numbers from motion_style — do not round) */
  --lqm-swift:184ms; --lqm-normal:360ms; --lqm-long:653ms;
  --lqm-settle:cubic-bezier(0.16,0.59,0.44,0.94);
  --lqm-smooth:cubic-bezier(0.47,0.02,0.43,0.98);
  --lqm-elastic:cubic-bezier(0.3,0.95,0.71,1.25);
}

/* ---- Reset / base -------------------------------------------------------- */
*,*::before,*::after { box-sizing:border-box; }
html { scroll-behavior:smooth; }
html,body { overflow-x:clip; }
body {
  margin:0; background:var(--lqm-sheet); color:var(--lqm-body);
  font-family:var(--lqm-reading); font-size:var(--z-body); font-weight:var(--lqm-book);
  line-height:var(--lqm-even); -webkit-font-smoothing:antialiased;
  padding-top:calc(var(--lqm-h-lg) + 40px + var(--rg-height));
}
img { max-width:100%; height:auto; display:block; }
a { color:var(--lqm-flare); text-decoration:none; }
a:hover { color:var(--lqm-key-active); }
h1,h2,h3,h4,h5,h6 { font-family:var(--lqm-display); line-height:var(--lqm-snug);
  overflow-wrap:anywhere; margin:0 0 var(--lqm-step-3); }
h1 { font-size:var(--lqm-h1); font-weight:var(--lqm-strong); letter-spacing:var(--lqm-close); }
h2 { font-size:var(--lqm-display-2); font-weight:var(--lqm-strong); margin-block-start:0; }
h3 { font-size:var(--lqm-lg-2); font-weight:var(--lqm-medium); font-family:var(--lqm-reading); }
h4 { font-size:var(--lqm-md-2); }
h5 { font-size:var(--lqm-sm-2); }
h6 { font-size:var(--lqm-xs-2); }
p { margin:0 0 var(--lqm-step-3); }
main { display:block; }

.skip-hop { position:absolute; left:var(--lqm-step-3); background:var(--lqm-flare);
  color:#101010; padding:var(--lqm-step-2) var(--lqm-step-3); border-radius:var(--r-step-2);
  z-index:200; font-weight:var(--lqm-strong); }
.skip-hop:not(:focus) { top:-200px !important; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden;
  clip:rect(0,0,0,0); white-space:nowrap; border:0; }

/* Section rhythm + single container ---------------------------------------- */
section { padding-block:var(--lqm-step-5); }
.banner-swift-frame, .tile-classic-frame, .reel-fine-frame, .deck-fast-frame,
.placard-dark-frame, .rafter-smart-frame, .arch-smart-frame, .cartouche-signal-frame,
.stele-bold-frame, .socle-edge-frame, .grotto-sharp-frame, .ridge-premium-frame,
.tableau-plus-frame, .media-frame {
  width:100%; max-width:calc(var(--lqm-outer) + 2 * var(--lqm-padding-desktop));
  margin-inline:auto; padding-inline:var(--lqm-padding-desktop);
}

/* Reveal on scroll (fade) -------------------------------------------------- */
[data-fx] { opacity:0; transform:translateY(20px); transition:opacity var(--lqm-long) var(--lqm-settle), transform var(--lqm-long) var(--lqm-settle); }
[data-fx].is-live { opacity:1; transform:none; }

/* ==== Responsible-gaming banner (RG-05: 18+ sign) ========================= */
.rg-banner { position:fixed; top:0; left:0; right:0; z-index:120; min-height:var(--rg-height);
  display:flex; align-items:center; justify-content:center; gap:var(--lqm-step-2);
  background:var(--lqm-card); color:#ffffff; border-bottom:1px solid var(--lqm-line);
  padding:6px var(--lqm-step-3); font-size:var(--lqm-xs); text-align:center; }
.rg-banner-badge { display:inline-flex; align-items:center; justify-content:center;
  min-width:26px; height:26px; padding:0 6px; border-radius:var(--r-step-2);
  background:var(--lqm-age-band); color:#ffffff; font-weight:var(--lqm-strong);
  font-size:var(--lqm-xs); flex-shrink:0; }
.rg-banner-copy { color:#f4f4f4; }
.rg-banner-copy a { text-decoration:underline; }

/* ==== Header (HEAD-SUBNAV) ================================================ */
.nef-pure { position:fixed; top:var(--rg-height); left:0; right:0; z-index:100;
  background:var(--lqm-sheet); box-shadow:var(--d-step-2);
  transition:box-shadow var(--lqm-normal) var(--lqm-settle); }
.nef-pure-frame { max-width:calc(var(--lqm-outer) + 2 * var(--lqm-padding-desktop));
  margin-inline:auto; padding-inline:var(--lqm-padding-desktop); }
.nef-pure-tier { display:flex; align-items:center; gap:var(--lqm-step-4);
  min-height:var(--lqm-h-lg); transition:min-height var(--lqm-normal) var(--lqm-settle); }
.nef-pure-badge { flex-shrink:0; display:inline-flex; align-items:center; }
.nef-pure-badge-pic { height:60px; width:auto; transition:height var(--lqm-normal) var(--lqm-settle); }
.nef-pure-bar { margin-left:auto; display:flex; align-items:center; gap:var(--lqm-step-2); }
.nef-pure-press { display:inline-flex; align-items:center; justify-content:center;
  height:44px; padding-inline:var(--lqm-step-4); border-radius:var(--lqm-stadium);
  background:var(--lqm-flare); color:#101010; font-family:var(--lqm-reading);
  font-weight:var(--lqm-strong); white-space:nowrap; flex-shrink:0; }
.nef-pure-press:hover { background:var(--lqm-key-active); color:#101010; }
.nef-pure-switch { display:none; margin-left:auto; align-items:center; gap:8px;
  background:transparent; color:var(--lqm-body); border:1px solid var(--lqm-edge-hard);
  border-radius:var(--r-step-2); padding:9px 12px; min-height:44px; cursor:pointer;
  font-family:var(--lqm-reading); font-size:14px; }
.nef-pure-switch-bars { width:18px; height:2px; background:currentColor; position:relative; display:block; }
.nef-pure-switch-bars::before,.nef-pure-switch-bars::after { content:""; position:absolute; left:0;
  width:18px; height:2px; background:currentColor; }
.nef-pure-switch-bars::before { top:-6px; } .nef-pure-switch-bars::after { top:6px; }

.nef-pure-strip { border-top:1px solid var(--lqm-line); }
.nef-pure-routes { list-style:none; margin:0; padding:0; display:flex; align-items:center;
  gap:var(--lqm-step-4); min-height:40px; }
.nef-pure-slot { position:relative; display:flex; align-items:center; }
.nef-pure-slot[hidden] { display:none; }
.nef-pure-switch-cap { font-weight:600; }
.nef-pure-slot + .nef-pure-slot::before { content:"|"; color:var(--lqm-line);
  margin-right:var(--lqm-step-4); margin-left:calc(-1 * var(--lqm-step-4) / 2);
  transform:translateX(-50%); position:absolute; left:0; }
.nef-pure-hop { color:var(--lqm-body); font-size:14px; font-weight:600; white-space:nowrap;
  padding-block:6px; transition:color var(--lqm-swift) var(--lqm-settle); }
.nef-pure-hop:hover { color:var(--lqm-flare); }
.nef-pure-hop.is-active { color:var(--lqm-flare); }
.nef-pure-more { background:transparent; color:var(--lqm-body); border:0; cursor:pointer;
  font-size:14px; font-weight:600; font-family:var(--lqm-reading); padding-block:6px; }
.nef-pure-more:hover { color:var(--lqm-flare); }
.nef-pure-more-slot { position:relative; }
.nef-pure-more-menu { list-style:none; margin:0; padding:var(--lqm-step-2); position:absolute;
  right:0; top:100%; min-width:200px; background:var(--lqm-card); border:1px solid var(--lqm-line);
  border-radius:var(--r-step-3); box-shadow:var(--d-step-3); display:none; z-index:110; }
.nef-pure-more-menu.is-open { display:block; }
.nef-pure-more-menu li { margin:0; }
.nef-pure-more-menu .nef-pure-hop { display:block; padding:8px 10px; white-space:normal; }

.nef-pure.is-shrunk .nef-pure-tier { min-height:52px; }
.nef-pure.is-shrunk .nef-pure-badge-pic { height:48px; }

.nef-pure-drawer { display:none; position:fixed; left:0; right:0;
  top:calc(var(--rg-height) + var(--lqm-size-mobile)); bottom:0; z-index:99;
  background:var(--lqm-sheet); border-top:1px solid var(--lqm-line);
  padding:var(--lqm-step-3) var(--lqm-edge-narrow); overflow-y:auto; }
.nef-pure-drawer.is-open { display:block; }
.nef-pure-drawer-roll { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; }
.nef-pure-drawer-roll li { border-bottom:1px solid var(--lqm-line); }
.nef-pure-drawer-roll .nef-pure-hop { display:block; padding:14px 4px; font-size:16px; }

/* ==== Breadcrumbs (BREAD-06 background bar) =============================== */
.imposte-fast { background:var(--lqm-card); }
.imposte-fast-frame { max-width:calc(var(--lqm-outer) + 2 * var(--lqm-padding-desktop));
  margin-inline:auto; padding:var(--lqm-step-2) var(--lqm-padding-desktop);
  display:flex; align-items:center; gap:var(--lqm-step-2); font-size:14px; }
.imposte-fast-hop { color:var(--lqm-text-muted); }
.imposte-fast-hop:hover { color:var(--lqm-flare); }
.imposte-fast-sep { color:var(--lqm-text-muted); }
.imposte-fast-current { color:var(--lqm-body); }

/* ==== Hero (HERO-02 split photo right) =================================== */
.banner-swift-frame { display:grid; grid-template-columns:55% 45%; gap:var(--lqm-step-5);
  align-items:center; min-height:480px; }
.banner-swift-eyebrow { display:inline-block; color:var(--lqm-flare); font-family:var(--lqm-reading);
  font-weight:var(--lqm-medium); font-size:14px; text-transform:uppercase; letter-spacing:var(--e-loose);
  margin-bottom:var(--lqm-step-2); }
.banner-swift-deck { color:var(--lqm-text-muted); font-size:var(--lqm-sm-2); line-height:var(--lqm-even);
  max-width:var(--lqm-tight); margin-top:var(--lqm-step-3); }
.banner-swift-bar { display:flex; flex-wrap:wrap; gap:var(--lqm-step-3); margin-top:var(--lqm-step-4);
  margin-bottom:var(--lqm-step-2); }
.banner-swift-press { display:inline-flex; align-items:center; justify-content:center; height:52px;
  padding-inline:var(--lqm-step-4); border-radius:var(--r-step-3); background:var(--lqm-flare);
  color:#101010; font-weight:var(--lqm-strong); }
.banner-swift-press:hover { background:var(--lqm-key-active); color:#101010; }
.banner-swift-quiet { display:inline-flex; align-items:center; justify-content:center; height:52px;
  padding-inline:var(--lqm-step-4); border-radius:var(--r-step-3); background:transparent;
  border:1px solid var(--lqm-edge-hard); color:var(--lqm-body); }
.banner-swift-quiet:hover { border-color:var(--lqm-body); color:var(--lqm-body); background:rgba(255,255,255,0.05); }
.banner-swift-figure { margin:0; overflow:hidden; border-radius:var(--r-step-4); box-shadow:var(--d-step-4);
  aspect-ratio:4/5; }
.banner-swift-figure img { width:100%; height:100%; object-fit:cover;
  transition:transform var(--lqm-long) var(--lqm-settle); }
.banner-swift-figure:hover img { transform:scale(1.04); }

/* ==== Page header (PHEAD-06 subtle editorial) =========================== */
.tile-classic-frame::before { content:""; display:block; width:40px; height:1px;
  background:rgba(255,255,255,0.25); margin-bottom:var(--lqm-step-3); }
.tile-classic-copy { font-style:italic; color:var(--lqm-text-muted); font-size:var(--lqm-sm-2);
  max-width:640px; }

/* ==== Prose (PROSE-23 first paragraph as callout) ======================= */
.reel-fine-band { margin-top:var(--lqm-step-4); }
.reel-fine-band:first-child { margin-top:0; }
.reel-fine-band h2 { margin-block-start:0; margin-bottom:var(--lqm-step-3); }
.reel-fine-lead { background:var(--lqm-card); border:3px solid var(--lqm-flare);
  border-radius:var(--r-step-3); padding:var(--lqm-step-4); font-size:var(--lqm-md-2);
  line-height:var(--lqm-even); color:var(--lqm-body); }
.reel-fine-band p { max-width:none; }
.reel-fine-roll { margin:0 0 var(--lqm-step-3) var(--lqm-step-4); }
.reel-fine-roll li { margin-bottom:var(--lqm-step-1); }

/* ==== Items grid (GRID-03 two-column asymmetric) ======================== */
.deck-fast-roll { display:grid; grid-template-columns:1fr 1fr; gap:var(--lqm-step-4); margin-top:var(--lqm-step-4); }
.deck-fast-brick { background:var(--lqm-card); border:1px solid rgba(255,255,255,0.08);
  border-radius:var(--r-step-4); padding:var(--lqm-step-4); box-shadow:var(--d-step-2); }
.deck-fast-brick:nth-child(4n+1) { grid-column:span 1; }
.deck-fast-pic { color:var(--lqm-flare); fill:var(--lqm-flare); margin-bottom:var(--lqm-step-2); display:block; }
.deck-fast-hdr { font-family:var(--lqm-display); font-weight:var(--lqm-strong); font-size:var(--lqm-md-2);
  margin-bottom:var(--lqm-step-2); }
.deck-fast-copy { color:var(--lqm-text-muted); font-size:var(--z-body); margin:0; }

/* ==== Data table (TABLE-04 highlighted first column) ==================== */
.cartouche-signal-scroll { overflow-x:auto; margin-top:var(--lqm-step-3); }
.cartouche-signal table { width:100%; border-collapse:collapse; min-width:560px; }
.cartouche-signal th, .cartouche-signal td { padding:var(--lqm-step-3); text-align:left;
  border-bottom:1px solid var(--lqm-line); font-size:var(--z-body); }
.cartouche-signal thead th { background:var(--lqm-root); color:#ffffff; font-weight:var(--lqm-strong);
  white-space:nowrap; }
.cartouche-signal tbody th[scope="row"] { background:var(--lqm-root); color:#ffffff;
  font-weight:var(--lqm-strong); border-right:4px solid var(--lqm-flare); }
.cartouche-signal td { color:var(--lqm-text-muted); }

/* ==== Reviews (REV-06 compact list) ===================================== */
.rafter-smart-roll { list-style:none; margin:var(--lqm-step-3) 0 0; padding:0; }
.rafter-smart-slot { padding-block:var(--lqm-step-3); border-bottom:1px solid rgba(255,255,255,0.06); }
.rafter-smart-tag { display:flex; align-items:baseline; gap:var(--lqm-step-2); margin-bottom:var(--lqm-step-1); }
.rafter-smart-name { font-weight:var(--lqm-strong); }
.rafter-smart-rate { color:var(--lqm-flare); font-weight:var(--lqm-medium); }
.rafter-smart-copy { color:var(--lqm-text-muted); margin:0; }

/* ==== FAQ (FAQ-04 side-numbered accordion) ============================= */
.placard-dark-roll { list-style:none; margin:var(--lqm-step-3) 0 0; padding:0; }
.placard-dark-slot { display:grid; grid-template-columns:60px 1fr; gap:var(--lqm-step-2);
  border-bottom:1px solid var(--lqm-line); }
.placard-dark-num { font-family:var(--lqm-display); font-weight:var(--lqm-strong);
  font-size:var(--lqm-lg-2); color:var(--lqm-flare); padding-top:var(--lqm-step-3); }
.placard-dark-body { padding-block:var(--lqm-step-2); }
.placard-dark-q { width:100%; text-align:left; background:transparent; border:0; cursor:pointer;
  color:var(--lqm-body); font-family:var(--lqm-reading); font-size:var(--lqm-sm-2);
  font-weight:var(--lqm-strong); padding:var(--lqm-step-2) 0; display:flex; align-items:center;
  justify-content:space-between; gap:var(--lqm-step-2); }
.placard-dark-q:hover { color:var(--lqm-flare); }
.placard-dark-chev { width:10px; height:10px; border-right:2px solid currentColor;
  border-bottom:2px solid currentColor; transform:rotate(45deg); flex-shrink:0;
  transition:transform var(--lqm-normal) var(--lqm-settle); }
.placard-dark-q[aria-expanded="true"] .placard-dark-chev { transform:rotate(-135deg); }
.placard-dark-a { display:none; padding:0 0 var(--lqm-step-3); }
.placard-dark-a.is-open { display:block; }
.placard-dark-a p { color:var(--lqm-text-muted); margin:0; }

/* ==== CTA block (CTA-04 minimal text link) ============================= */
.arch-smart-frame { text-align:center; }
.arch-smart-hdr { font-size:var(--lqm-md-2); font-weight:var(--lqm-strong); }
.arch-smart-copy { color:var(--lqm-text-muted); line-height:var(--lqm-loose); margin-block:var(--lqm-step-3); }

/* ==== Legal (LEGAL-03 two-column sidebar TOC) ========================= */
.stele-bold-frame { display:grid; grid-template-columns:240px 1fr; gap:var(--lqm-step-5); }
.stele-bold-toc { position:sticky; top:calc(var(--lqm-h-lg) + var(--rg-height) + var(--lqm-step-3));
  align-self:start; padding:var(--lqm-step-3); background:var(--lqm-card); border-radius:var(--r-step-3);
  font-size:14px; }
.stele-bold-hdr { font-size:var(--lqm-sm-2); margin-bottom:var(--lqm-step-2); }
.stele-bold-toc ol { margin:0; padding-left:var(--lqm-step-3); }
.stele-bold-toc a { color:var(--lqm-text-muted); }
.stele-bold-toc a:hover { color:var(--lqm-flare); }
.stele-bold-band { margin-bottom:var(--lqm-step-4); }
.stele-bold-band h2 { font-size:var(--lqm-lg-2); }
.stele-bold-stuff p { color:var(--lqm-text-muted); }
.stele-bold-roll { color:var(--lqm-text-muted); padding-left:var(--lqm-step-4); }
.stele-bold-note { color:var(--lqm-text-muted); font-size:14px; font-style:italic; }

/* ==== Contact form (FORM-05 bordered editorial) ======================= */
.socle-edge-form { border:2px solid var(--lqm-flare); border-radius:var(--r-step-3);
  padding:var(--lqm-step-5); margin-top:var(--lqm-step-3); max-width:760px; margin-inline:auto; }
.socle-edge-line { display:flex; flex-direction:column; margin-bottom:var(--lqm-step-4); }
.socle-edge-cap { font-size:14px; color:var(--lqm-text-muted); margin-bottom:6px; }
.socle-edge-line input, .socle-edge-line textarea { background:transparent; border:0;
  border-bottom:1px solid rgba(255,255,255,0.20); color:var(--lqm-body); font:inherit;
  padding:var(--lqm-step-2) 0; }
.socle-edge-line input:focus, .socle-edge-line textarea:focus { outline:none; border-bottom-color:var(--lqm-flare); }
.socle-edge-press { display:inline-flex; align-items:center; justify-content:center; height:48px;
  padding-inline:var(--lqm-step-5); border:0; border-radius:var(--r-step-3); background:var(--lqm-flare);
  color:#101010; font-weight:var(--lqm-strong); cursor:pointer; }
.socle-edge-press:hover { background:var(--lqm-key-active); color:#101010; }
.socle-edge-done { color:var(--lqm-flare); margin-top:var(--lqm-step-3); }
.socle-edge-tag { color:var(--lqm-text-muted); margin-top:var(--lqm-step-3); }

/* ==== Author card (AUTH-07 quote with portrait) ======================= */
.ridge-premium-frame { display:grid; grid-template-columns:140px 1fr; gap:var(--lqm-step-4);
  background:var(--lqm-card); border-left:4px solid var(--lqm-flare); border-radius:var(--r-step-3);
  padding:var(--lqm-step-5); }
.ridge-premium-headshot { width:140px; height:140px; border-radius:var(--lqm-circle); object-fit:cover; }
.ridge-premium-quote { font-family:var(--lqm-display); font-size:var(--lqm-h1); color:var(--lqm-flare);
  line-height:1; display:block; }
.ridge-premium-copy { font-style:italic; font-size:var(--lqm-sm-2); line-height:var(--lqm-even); color:var(--lqm-body); }
.ridge-premium-name { font-size:14px; letter-spacing:var(--e-loose); color:var(--lqm-text-muted); }
.ridge-premium-roll { color:var(--lqm-text-muted); margin-top:var(--lqm-step-3); padding-left:var(--lqm-step-4); }

/* ==== Byline (BYLINE-03 thin strip) =================================== */
.etiquette-edge { border-block:1px solid rgba(255,255,255,0.05); }
.etiquette-edge-frame { max-width:calc(var(--lqm-outer) + 2 * var(--lqm-padding-desktop));
  margin-inline:auto; padding:var(--lqm-step-3) var(--lqm-padding-desktop);
  display:flex; align-items:center; gap:var(--lqm-step-2); }
.etiquette-edge-headshot { width:40px; height:40px; border-radius:var(--lqm-circle); object-fit:cover; }
.etiquette-edge-tag { font-size:14px; color:var(--lqm-text-muted); }
.etiquette-edge-name { color:var(--lqm-flare); }
.etiquette-edge-name:hover { text-decoration:underline; }
.etiquette-edge-job { color:var(--lqm-text-muted); }

/* ==== Offer CTA (anchor stub; animation appended by cta-style.mjs) ===== */
.cta-offer { margin-block:var(--lqm-step-4); }
.cta-offer-note { display:block; margin-top:var(--lqm-step-1); font-size:var(--lqm-xs);
  color:var(--lqm-text-muted); }

/* ==== Footer (FOOT-05 four-column information-dense) ================== */
.tableau-plus { background:var(--lqm-root); color:#ffffff; margin-top:var(--lqm-step-5); }
.tableau-plus-frame { display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr; gap:var(--lqm-step-5); }
.tableau-plus-badge { height:70px; width:auto; margin-bottom:var(--lqm-step-3); }
.tableau-plus-tag { color:#ffffff; font-size:14px; }
.tableau-plus-hdr { text-transform:uppercase; letter-spacing:var(--e-loose); font-size:14px;
  font-weight:var(--lqm-strong); color:#ffffff; margin-bottom:var(--lqm-step-3); }
.tableau-plus-roll { list-style:none; margin:0; padding:0; }
.tableau-plus-roll li { margin-bottom:var(--lqm-step-2); }
.tableau-plus-hop { color:#ffffff; font-size:14px; }
.tableau-plus-hop:hover { color:#ffffff; text-decoration:underline; }
.tableau-plus-bottom { max-width:calc(var(--lqm-outer) + 2 * var(--lqm-padding-desktop));
  margin:var(--lqm-step-4) auto 0; padding:var(--lqm-step-4) var(--lqm-padding-desktop) 0;
  border-top:1px solid rgba(255,255,255,0.25); display:flex; flex-wrap:wrap; align-items:center;
  justify-content:space-between; gap:var(--lqm-step-3); }
.rg-foot { color:#ffffff; font-size:14px; display:flex; align-items:center; gap:var(--lqm-step-2); margin:0; }

/* ==== Media rows (per-page images) ==================================== */
.media-band { display:block; }
.media-frame { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:var(--lqm-step-4); }
.media-figure { margin:0; border-radius:var(--r-step-3); overflow:hidden; box-shadow:var(--d-step-2); }
.media-figure img { width:100%; height:auto; max-height:52vh; object-fit:cover; }

/* ==== Section root classes (kept defined for orphan-class integrity) === */
.banner-swift, .tile-classic, .reel-fine, .deck-fast, .placard-dark, .rafter-smart,
.arch-smart, .cartouche-signal, .stele-bold, .socle-edge, .ridge-premium { display:block; }
.banner-swift-copy { min-width:0; }
.tableau-plus-col { min-width:0; }
.tableau-plus-brand { display:block; }
.ridge-premium-body { min-width:0; }
.ridge-premium-job { color:var(--lqm-text-muted); }

/* ==== Cookie (COOK-10 modal-style card, bottom-anchored) ============= */
.belfry-keen { position:fixed; left:var(--lqm-step-3); right:var(--lqm-step-3); bottom:var(--lqm-step-3);
  z-index:96; max-width:480px; margin-inline:auto; }
.belfry-keen[hidden] { display:none; }
.belfry-keen-frame { background:var(--lqm-card); border:1px solid var(--lqm-line);
  border-radius:var(--r-step-4); padding:var(--lqm-step-4); box-shadow:var(--d-step-4); }
.belfry-keen-hdr { font-size:var(--lqm-sm-2); font-family:var(--lqm-display); margin-bottom:var(--lqm-step-2); }
.belfry-keen-words { color:var(--lqm-text-muted); font-size:14px; margin-bottom:var(--lqm-step-3); }
.belfry-keen-bar { display:flex; gap:var(--lqm-step-2); flex-wrap:wrap; }
.belfry-keen-confirm, .belfry-keen-no { flex:1; min-height:44px; border-radius:var(--r-step-3);
  cursor:pointer; font-weight:var(--lqm-strong); font-family:var(--lqm-reading); border:0; }
.belfry-keen-confirm { background:var(--lqm-flare); color:#101010; }
.belfry-keen-confirm:hover { background:var(--lqm-key-active); color:#101010; }
.belfry-keen-no { background:transparent; color:var(--lqm-body); border:1px solid var(--lqm-edge-hard); }
.belfry-keen-no:hover { background:rgba(255,255,255,0.06); color:var(--lqm-body); }

/* ==== Error (ERR-04 full-bleed atmospheric) ========================= */
.grotto-sharp { min-height:70vh; display:flex; align-items:center;
  background:linear-gradient(180deg,rgba(16,16,16,0.4),rgba(16,16,16,0.9)),
  center/cover no-repeat url("/shots/tableau.webp"); }
.grotto-sharp-frame { text-align:center; }
.grotto-sharp-hdr { font-size:var(--lqm-h1); color:#ffffff; }
.grotto-sharp-copy { color:#f0f0f0; max-width:var(--lqm-tight); margin:0 auto var(--lqm-step-4); }
.grotto-sharp-press { display:inline-flex; align-items:center; justify-content:center; height:48px;
  padding-inline:var(--lqm-step-5); border-radius:var(--r-step-3); background:var(--lqm-flare); color:#101010;
  font-weight:var(--lqm-strong); }
.grotto-sharp-press:hover { background:var(--lqm-key-active); color:#101010; }

/* ==== Tablet =========================================================== */
@media (max-width:1023px) {
  .nef-pure-strip { display:none; }
  .nef-pure-switch { display:inline-flex; }
  .nef-pure-bar { display:none; }
  .nef-pure-tier { min-height:var(--lqm-size-mobile); }
  .banner-swift-frame { grid-template-columns:1fr; }
  .banner-swift-figure { aspect-ratio:16/9; }
  .deck-fast-roll { grid-template-columns:1fr; }
  .stele-bold-frame { grid-template-columns:1fr; }
  .stele-bold-toc { position:static; }
  .tableau-plus-frame { grid-template-columns:1fr 1fr; }
  body { padding-top:calc(var(--lqm-size-mobile) + var(--rg-height)); }
}

/* ==== Mobile =========================================================== */
@media (max-width:720px) {
  :root { --lqm-h1:30px; --lqm-display-2:24px; --lqm-lg-2:20px; --z-body:16px; }
  .banner-swift-frame, .tile-classic-frame, .reel-fine-frame, .deck-fast-frame,
  .placard-dark-frame, .rafter-smart-frame, .arch-smart-frame, .cartouche-signal-frame,
  .stele-bold-frame, .socle-edge-frame, .grotto-sharp-frame, .ridge-premium-frame,
  .tableau-plus-frame, .media-frame, .nef-pure-frame, .imposte-fast-frame,
  .etiquette-edge-frame, .tableau-plus-bottom { padding-inline:var(--lqm-edge-narrow); }
  .tableau-plus-frame { grid-template-columns:1fr; gap:var(--lqm-step-4); }
  .ridge-premium-frame { grid-template-columns:1fr; justify-items:start; }
  .placard-dark-slot { grid-template-columns:40px 1fr; }
  section { padding-block:var(--lqm-step-4); }
  .belfry-keen-frame { padding:var(--lqm-step-4); }
  .belfry-keen-hdr { display:none; }
  .belfry-keen-confirm, .belfry-keen-no { font-size:14px; }
}

/* ==== Reduced motion =================================================== */
@media (prefers-reduced-motion:reduce) {
  * { animation:none !important; transition:none !important; scroll-behavior:auto !important; }
  [data-fx] { opacity:1 !important; transform:none !important; }
}
.crochet-lead{display:inline-flex;align-items:center;justify-content:center;padding:0 var(--lqm-step-4);min-height:44px;border-radius:var(--lqm-stadium);font-weight:var(--lqm-strong)}
.crochet-lead{position:relative;
  background:#7C3AED;color:#FFFFFF;text-decoration:none;
  transition:background var(--lqm-swift) var(--lqm-settle),box-shadow var(--lqm-swift) var(--lqm-settle);}
.crochet-lead.crochet-lead{color:#FFFFFF;text-decoration:none;}
.crochet-lead:hover{background:#6D28D9;color:#FFFFFF;animation:none}
.crochet-lead.crochet-lead:hover{color:#FFFFFF;text-decoration:none}
.crochet-lead:hover::after{animation:none}
.crochet-lead:active{background:#5B21B6;color:#FFFFFF}
.crochet-lead:focus-visible{outline:3px solid #101010;outline-offset:3px}
.crochet-lead{overflow:hidden}
.crochet-lead::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(100deg,transparent 35%,rgba(255,255,255,.42) 50%,transparent 65%);background-size:250% 100%;background-position:180% 0;animation:crochet-flare 1.95s ease-in-out infinite}
@keyframes crochet-flare{0%{background-position:180% 0}74.359%,100%{background-position:-80% 0}}
@media (prefers-reduced-motion:reduce){.crochet-lead,.crochet-lead::after{animation:none!important;transition:none!important}}

@media (max-width: 1058px) {
  .nef-pure-bar,
  .crochet-lead,
  .nef-pure-strip,
  .nef-pure-routes { display: none !important; }
  .nef-pure-switch { display: flex !important; }
}
