/* =========================================================
   Riviera Maya Law — "The Riviera Maya Law Review"
   Editorial variant. A boutique firm presented as a serious
   publication of record: magazine typography, art-directed
   duotone imagery, restrained but premium motion.
   For a burned, skeptical audience, restraint IS the luxury.
   Self-contained — does not depend on styles.css.
   ========================================================= */

/* ---------- Design tokens ---------- */
:root {
  /* Warm limestone neutrals (paper stock) */
  --sand-50:  #f7f3ea;
  --sand-100: #efe8da;
  --sand-200: #e5dac4;
  --sand-300: #d6c8ab;
  --paper:    #fbf8f1;
  --paper-2:  #f3ecdf;

  /* Charcoal teal — primary, grounded ink */
  --teal-950: #08201c;
  --teal-900: #0c2823;
  --teal-800: #123430;
  --teal-700: #1a423b;
  --teal-600: #245449;
  --teal-500: #2f6a5f;

  /* Ink + muted (green-black) */
  --ink:      #14201c;
  --ink-soft: #42544e;
  --ink-faint:#5a6c65;

  /* Warm clay — calls to action / editorial accent */
  --clay-700: #8f4319;
  --clay-600: #a8501f;
  --clay-500: #bd5f2a;
  --clay-400: #cf7644;

  /* Gold foil — verification / credential accents */
  --gold-700: #7d6326;
  --gold-600: #9a7a2e;
  --gold-500: #c2a14e;
  --gold-400: #d8bd76;

  --good: #1f7a52;
  --warn: #9a5b00;

  /* Roles */
  --bg: var(--sand-50);
  --surface: var(--paper);
  --line: color-mix(in srgb, var(--sand-300) 70%, transparent);
  --line-strong: var(--sand-300);
  --rule: color-mix(in srgb, var(--teal-900) 22%, transparent);

  /* Type */
  --font-display: "Fraunces Variable", Georgia, "Times New Roman", serif;
  --font-body: "Hanken Grotesk Variable", system-ui, -apple-system, sans-serif;
  --font-mono: ui-monospace, "SF Mono", "JetBrains Mono", "Cascadia Mono", Menlo, Consolas, monospace;

  /* Fluid type scale */
  --t-xs:   0.75rem;
  --t-sm:   0.86rem;
  --t-base: clamp(1.02rem, 0.98rem + 0.2vw, 1.16rem);
  --t-lg:   clamp(1.2rem, 1.08rem + 0.5vw, 1.5rem);
  --t-xl:   clamp(1.5rem, 1.2rem + 1.3vw, 2.3rem);
  --t-2xl:  clamp(2.1rem, 1.5rem + 2.6vw, 3.6rem);
  --t-feature: clamp(2.6rem, 1.5rem + 4.2vw, 5.6rem);
  --t-display: clamp(2.7rem, 1.3rem + 4.8vw, 5.8rem);
  --t-numeral: clamp(5rem, 3rem + 12vw, 15rem);

  /* Space */
  --sp-1: .4rem; --sp-2: .7rem; --sp-3: 1rem; --sp-4: 1.6rem;
  --sp-5: 2.4rem; --sp-6: 3.5rem; --sp-7: 5.5rem; --sp-8: 8rem;

  --radius: 3px;        /* editorial = near-square, print-like */
  --radius-pill: 999px;

  --maxw: 1280px;
  --maxw-wide: 1480px;
  --maxw-prose: 38rem;
  --gutter: clamp(1.15rem, 4vw, 4rem);

  --shadow-sm: 0 1px 2px rgba(10,40,35,.06), 0 2px 8px rgba(10,40,35,.05);
  --shadow-md: 0 12px 34px -16px rgba(10,40,35,.30), 0 3px 10px -4px rgba(10,40,35,.12);
  --shadow-lg: 0 40px 90px -34px rgba(8,32,28,.55);

  --ease: cubic-bezier(.22,.61,.36,1);
  --ease-out: cubic-bezier(.16,1,.3,1);
  --logo-mask: url("data:image/png;base64,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");
}

/* ---------- Reset / base ---------- */
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body {
  font-family: var(--font-body);
  font-size: var(--t-base);
  line-height: 1.62;
  color: var(--ink);
  background-color: var(--bg);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}

/* Film grain over the whole page — fine, print-like tooth */
body::after {
  content: ""; position: fixed; inset: 0; z-index: 9000; pointer-events: none;
  opacity: .035; mix-blend-mode: multiply;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

h1, h2, h3, h4 {
  font-family: var(--font-display);
  font-weight: 440;
  line-height: 1.04;
  letter-spacing: -0.014em;
  color: var(--teal-900);
  font-optical-sizing: auto;
  text-wrap: balance;
}
h2 { font-size: var(--t-2xl); }
h3 { font-size: var(--t-xl); }
p { text-wrap: pretty; }

a { color: var(--teal-700); text-underline-offset: 3px; text-decoration-thickness: 1px; }
a:hover { color: var(--clay-600); }

img, svg { display: block; max-width: 100%; }
strong, b { font-weight: 600; color: var(--teal-900); }
em { font-style: italic; }

::selection { background: var(--teal-900); color: var(--sand-50); }

:focus-visible {
  outline: 2.5px solid var(--clay-500);
  outline-offset: 3px;
  border-radius: 2px;
}

.skip {
  position: absolute; left: 12px; top: -64px; z-index: 9999;
  background: var(--teal-900); color: #fff; padding: .65rem 1.05rem; border-radius: 4px;
  font-weight: 600; transition: top .2s var(--ease);
}
.skip:focus { top: 12px; color: #fff; }

/* ---------- Editorial primitives ---------- */
.wrap { width: 100%; max-width: var(--maxw); margin-inline: auto; padding-inline: var(--gutter); }
.wrap--wide { max-width: var(--maxw-wide); }
.prose { max-width: var(--maxw-prose); }
.section { padding-block: clamp(4rem, 8vw, 9rem); position: relative; }
.section--tight { padding-block: clamp(2.5rem, 4vw, 4.5rem); position: relative; }
.center { text-align: center; }

/* Kicker / eyebrow — letterspaced mono label with a folio rule */
.kicker {
  font-family: var(--font-mono);
  font-size: var(--t-xs);
  font-weight: 500;
  letter-spacing: .26em;
  text-transform: uppercase;
  color: var(--clay-600);
  display: inline-flex;
  align-items: center;
  gap: .8rem;
}
.kicker::before {
  content: ""; width: 30px; height: 1px; background: currentColor; opacity: .6;
}
.kicker--center { justify-content: center; }
.kicker--plain::before { display: none; }

/* Section masthead — a department header like a magazine */
.dept {
  display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 1.5rem;
  padding-bottom: 1.1rem; margin-bottom: clamp(2.2rem, 4vw, 3.6rem);
  border-bottom: 1px solid var(--rule);
}
.dept__folio { font-family: var(--font-mono); font-size: clamp(0.8rem, 0.72rem + 0.4vw, 1rem); letter-spacing: .18em; color: var(--ink-faint); text-transform: uppercase; }
.dept__name { font-family: var(--font-mono); font-size: clamp(0.8rem, 0.72rem + 0.4vw, 1rem); letter-spacing: .26em; text-transform: uppercase; color: var(--clay-600); justify-self: center; text-align: center; }
.dept__meta { font-family: var(--font-mono); font-size: clamp(0.8rem, 0.72rem + 0.4vw, 1rem); letter-spacing: .18em; color: var(--ink-faint); text-transform: uppercase; justify-self: end; }

.head-block { max-width: 34ch; margin-bottom: clamp(2rem, 4vw, 3rem); }
.head-block .lead { margin-top: 1rem; }
.head-block--wide { max-width: 56ch; }

.lead { font-family: var(--font-display); font-size: var(--t-lg); color: var(--ink-soft); line-height: 1.42; font-weight: 380; font-variation-settings: "opsz" 40; }
.muted { color: var(--ink-soft); }
.fine { font-size: var(--t-sm); color: var(--ink-faint); }
.dim { color: var(--ink-faint); }

/* Hairline rules */
.rule { height: 1px; background: var(--rule); border: 0; }
.rule--double { height: 4px; border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); background: transparent; }

/* Drop cap for editorial ledes */
.dropcap::first-letter {
  font-family: var(--font-display); font-weight: 500;
  font-variation-settings: "opsz" 144, "WONK" 1;
  float: left; font-size: 4.6em; line-height: .76; padding: .04em .12em 0 0;
  color: var(--clay-600);
}

/* Pull quote */
.pullquote {
  font-family: var(--font-display); font-weight: 360;
  font-variation-settings: "opsz" 144, "SOFT" 30;
  font-size: var(--t-2xl); line-height: 1.1; letter-spacing: -.02em;
  color: var(--teal-900); text-wrap: balance;
}
.pullquote em { color: var(--clay-600); font-style: italic; }

/* Footnote / source line */
.footnote { font-family: var(--font-mono); font-size: var(--t-xs); letter-spacing: .04em; color: var(--ink-faint); line-height: 1.6; }
.footnote sup { color: var(--clay-600); }

/* ---------- Buttons ---------- */
.btn {
  --btn-bg: var(--clay-500);
  --btn-fg: #fff;
  position: relative;
  display: inline-flex; align-items: center; gap: .6rem;
  font-family: var(--font-body); font-weight: 600; font-size: var(--t-base);
  line-height: 1; padding: 1.05em 1.7em;
  background: var(--btn-bg); color: var(--btn-fg);
  border: 1px solid transparent; border-radius: var(--radius-pill);
  cursor: pointer; text-decoration: none; isolation: isolate;
  transition: transform .35s var(--ease-out), box-shadow .35s var(--ease-out), background .25s var(--ease);
  box-shadow: var(--shadow-sm); will-change: transform;
}
.btn::before {
  content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit;
  background: var(--clay-700);
  clip-path: inset(0 100% 0 0 round 999px);
  transition: clip-path .45s var(--ease-out);
}
.btn:hover { color: #fff; box-shadow: var(--shadow-md); }
.btn:hover::before { clip-path: inset(0 0 0 0 round 999px); }
.btn:active { transform: translateY(1px); }
.btn .arw { transition: transform .35s var(--ease-out); }
.btn:hover .arw { transform: translateX(5px); }

.btn--ghost { --btn-bg: transparent; --btn-fg: var(--teal-900); border-color: var(--rule); box-shadow: none; }
.btn--ghost::before { background: var(--teal-900); }
.btn--ghost:hover { color: #fff; }
.btn--teal { --btn-bg: var(--teal-800); }
.btn--teal::before { background: var(--teal-950); }
.btn--lg { padding: 1.2em 2.1em; font-size: var(--t-lg); }
.btn--block { display: flex; width: 100%; justify-content: center; }
.btn--on-photo { --btn-bg: rgba(255,255,255,.1); --btn-fg: #fff; border-color: rgba(255,255,255,.4); backdrop-filter: blur(4px); box-shadow: none; }
.btn--on-photo::before { background: #fff; }
.btn--on-photo:hover { color: var(--teal-900); }

.magnetic { display: inline-flex; }

/* Text link with drawing underline */
.tlink {
  display: inline-flex; align-items: center; gap: .45rem; position: relative;
  font-weight: 600; color: var(--clay-600); text-decoration: none; padding-bottom: 2px;
}
.tlink::after {
  content: ""; position: absolute; left: 0; bottom: 0; height: 1.5px; width: 100%;
  background: currentColor; transform: scaleX(0); transform-origin: left;
  transition: transform .4s var(--ease-out);
}
.tlink:hover { color: var(--clay-700); }
.tlink:hover::after { transform: scaleX(1); }
.tlink .arw { transition: transform .35s var(--ease-out); }
.tlink:hover .arw { transform: translateX(4px); }

/* ---------- Chips / verification pills ---------- */
.chip {
  display: inline-flex; align-items: center; gap: .5rem;
  font-family: var(--font-mono); font-size: var(--t-xs); letter-spacing: .06em; font-weight: 500;
  padding: .5em .9em; border-radius: var(--radius-pill);
  background: var(--surface); border: 1px solid var(--line-strong);
  color: var(--ink-soft);
}
.chip svg { width: 15px; height: 15px; flex: none; }
.chip--verify { color: var(--teal-800); border-color: color-mix(in srgb, var(--good) 40%, var(--line-strong)); background: color-mix(in srgb, var(--good) 6%, var(--surface)); }
.chip--verify svg { color: var(--good); }

.visually-hidden { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; padding:0; margin:-1px; }

/* =========================================================
   Scroll-reading progress bar
   ========================================================= */
.progress {
  position: fixed; top: 0; left: 0; right: 0; height: 3px; z-index: 200;
  background: transparent; pointer-events: none;
}
.progress__bar {
  height: 100%; width: 100%; transform: scaleX(0); transform-origin: left;
  background: linear-gradient(90deg, var(--clay-500), var(--gold-500));
}

/* =========================================================
   Masthead / header
   ========================================================= */
.masthead {
  position: sticky; top: 0; z-index: 100;
  background: color-mix(in srgb, var(--sand-50) 88%, transparent);
  backdrop-filter: blur(12px) saturate(1.1);
  border-bottom: 1px solid var(--line);
  transition: transform .4s var(--ease), box-shadow .3s var(--ease), background .3s var(--ease);
}
.masthead.is-hidden { transform: translateY(-100%); }
.masthead.is-stuck { box-shadow: var(--shadow-sm); background: color-mix(in srgb, var(--sand-50) 95%, transparent); }

/* top utility strip — issue / locale / verify */
.utility {
  border-bottom: 1px solid var(--line);
  font-family: var(--font-mono); font-size: var(--t-xs); letter-spacing: .14em; text-transform: uppercase;
  color: var(--ink-faint);
}
.utility__bar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 34px; }
.utility__date { display: inline-flex; gap: 1.2rem; }
.utility__date span { white-space: nowrap; }
.utility__verify { display: inline-flex; align-items: center; gap: .45rem; color: var(--teal-700); text-decoration: none; white-space: nowrap; }
.utility__verify svg { width: 14px; height: 14px; color: var(--good); }
.utility__verify:hover { color: var(--clay-600); }
@media (max-width: 720px) { .utility__date span.opt { display: none; } }
@media (max-width: 560px) { .utility__date { display: none; } }

.bar { display: flex; align-items: center; gap: 1.5rem; min-height: 78px; }
.brand { display: inline-flex; align-items: center; gap: .7rem; text-decoration: none; color: var(--teal-900); }
.brand:hover { color: var(--teal-900); }
.brand__mark {
  width: 40px; height: 40px; flex: none; display: block;
  background: linear-gradient(145deg, var(--teal-500), var(--teal-800) 72%);
  -webkit-mask: var(--logo-mask) center / contain no-repeat;
          mask: var(--logo-mask) center / contain no-repeat;
  transition: background .35s var(--ease), transform .4s var(--ease-out);
}
.brand:hover .brand__mark { background: linear-gradient(145deg, var(--teal-600), var(--gold-600)); transform: scale(1.05); }
.brand__name { font-family: var(--font-display); font-weight: 500; font-size: 1.32rem; letter-spacing: -.01em; line-height: 1; font-variation-settings: "opsz" 40; }
.brand__name b { font-weight: 600; }
.brand__name span { display: block; font-family: var(--font-mono); font-size: .58rem; letter-spacing: .26em; text-transform: uppercase; color: var(--ink-faint); font-weight: 500; margin-top: 4px; }

.nav { display: flex; align-items: center; gap: 1.7rem; margin-left: auto; }
.nav__links { display: flex; align-items: center; gap: 1.7rem; list-style: none; padding: 0; }
.nav__links a { position: relative; display: inline-flex; align-items: center; color: var(--ink-soft); text-decoration: none; font-weight: 500; font-size: .96rem; padding: .4rem 0; }
.nav__links a::after { content: ""; position: absolute; left: 0; right: 0; bottom: -2px; height: 1.5px; background: var(--clay-500); transform: scaleX(0); transform-origin: left; transition: transform .35s var(--ease-out); }
.nav__links a:hover { color: var(--teal-900); }
.nav__links a:hover::after { transform: scaleX(1); }
.nav__links a.is-emph { color: var(--clay-600); font-weight: 600; }

.nav__utility { display: flex; align-items: center; gap: .9rem; }

/* language disclosure */
.lang { position: relative; }
.lang__btn {
  display: inline-flex; align-items: center; gap: .35rem; list-style: none; cursor: pointer;
  padding: .4rem .6rem; border: 1px solid var(--line-strong); border-radius: var(--radius-pill);
  font-family: var(--font-mono); font-size: .72rem; letter-spacing: .12em; font-weight: 500; color: var(--ink-faint); user-select: none;
  transition: color .2s var(--ease), border-color .2s var(--ease);
}
.lang__btn::-webkit-details-marker { display: none; }
.lang__btn:hover { color: var(--teal-900); border-color: var(--ink-faint); }
.lang__chev { width: 12px; height: 12px; opacity: .7; transition: transform .2s var(--ease); }
.lang[open] .lang__chev { transform: rotate(180deg); }
.lang__menu {
  position: absolute; top: calc(100% + .45rem); right: 0; z-index: 60;
  min-width: 10rem; margin: 0; padding: .3rem; list-style: none;
  background: var(--surface); border: 1px solid var(--line-strong); border-radius: 6px; box-shadow: var(--shadow-md);
}
.lang__menu a { display: flex; align-items: center; justify-content: space-between; gap: .6rem; padding: .5rem .6rem; border-radius: 4px; text-decoration: none; font-size: .88rem; font-weight: 600; color: var(--teal-900); }
.lang__menu a:hover { background: var(--sand-100); }
.lang__menu a[aria-disabled="true"] { color: var(--ink-faint); cursor: not-allowed; }
.lang__soon { font-family: var(--font-mono); font-size: .58rem; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-faint); border: 1px solid var(--line-strong); border-radius: var(--radius-pill); padding: .1rem .45rem; }

.nav-toggle { display: none; background: none; border: 1px solid var(--line-strong); border-radius: 6px; width: 46px; height: 46px; cursor: pointer; align-items: center; justify-content: center; color: var(--teal-900); margin-left: auto; }
.nav-toggle svg { width: 22px; height: 22px; }

@media (max-width: 940px) {
  .nav__links, .nav__utility { display: none; }
  .nav-toggle { display: inline-flex; }
  .nav { gap: .6rem; }
  .nav.is-open {
    position: absolute; left: 0; right: 0; top: 100%;
    display: flex; flex-direction: column; align-items: stretch; gap: 0;
    background: var(--surface); border-bottom: 1px solid var(--line-strong);
    padding: .5rem var(--gutter) 1.3rem; box-shadow: var(--shadow-md);
  }
  .nav.is-open .nav__links { display: flex; flex-direction: column; align-items: stretch; gap: 0; }
  .nav.is-open .nav__links li { width: 100%; }
  .nav.is-open .nav__links a { padding: .95rem 0; border-bottom: 1px solid var(--line); font-size: 1.05rem; }
  .nav.is-open .nav__links a::after { display: none; }
  .nav.is-open .nav__utility { display: flex; flex-wrap: wrap; align-items: center; gap: .9rem; padding-top: 1.1rem; }
  .nav.is-open .nav__utility .btn { flex: 1 1 100%; justify-content: center; }
}

/* =========================================================
   COVER (hero) — the attorney is the cover star
   ========================================================= */
.cover { position: relative; background: var(--teal-950); color: var(--sand-50); overflow: clip; isolation: isolate; }
.cover__grid {
  display: grid; grid-template-columns: 1.12fr .88fr; align-items: stretch;
  min-height: min(86vh, 760px);
}
.cover__type {
  display: flex; flex-direction: column; justify-content: center;
  padding: clamp(2.4rem, 5vw, 5rem) clamp(1.5rem, 4vw, 4.5rem);
  position: relative; z-index: 3;
}
.cover__issue {
  display: flex; align-items: center; gap: .9rem; flex-wrap: wrap;
  font-family: var(--font-mono); font-size: var(--t-xs); letter-spacing: .22em; text-transform: uppercase;
  color: color-mix(in srgb, var(--sand-100) 72%, transparent); margin-bottom: clamp(1.4rem, 3vw, 2.4rem);
}
.cover__issue .dot { width: 4px; height: 4px; border-radius: 50%; background: var(--gold-500); }
.cover h1 {
  color: #fff; font-size: var(--t-display); line-height: .96; letter-spacing: -.028em; font-weight: 400;
  font-variation-settings: "opsz" 144, "SOFT" 0, "WONK" 0;
  text-wrap: balance; margin: 0;
}
.cover h1 em { font-style: italic; color: var(--gold-400); font-variation-settings: "opsz" 144, "WONK" 1; }
/* line-by-line mask reveal */
.cover h1 .ln { display: block; overflow: hidden; }
.cover h1 .ln > span { display: block; transform: translateY(106%); }
.is-ready .cover h1 .ln > span { animation: line-rise 1.05s var(--ease-out) forwards; animation-delay: var(--ld, 0ms); }
@keyframes line-rise { to { transform: translateY(0); } }

.cover__deck {
  margin-top: clamp(1.4rem, 3vw, 2.1rem); max-width: 42ch;
  font-family: var(--font-display); font-weight: 360; font-variation-settings: "opsz" 40;
  font-size: clamp(1.15rem, 1rem + .6vw, 1.55rem); line-height: 1.42;
  color: color-mix(in srgb, var(--sand-50) 90%, transparent);
}
.cover__deck strong { color: #fff; }
.cover__actions { margin-top: clamp(1.8rem, 3.5vw, 2.6rem); display: flex; flex-wrap: wrap; gap: .9rem 1.2rem; align-items: center; }
.cover__byline {
  margin-top: clamp(1.6rem, 3vw, 2.2rem); display: inline-flex; align-items: center; gap: .6rem;
  font-family: var(--font-mono); font-size: var(--t-xs); letter-spacing: .12em; text-transform: uppercase;
  color: color-mix(in srgb, var(--sand-100) 80%, transparent);
}
.cover__byline svg { width: 16px; height: 16px; color: var(--gold-400); flex: none; }
.cover__byline a { color: var(--gold-400); text-decoration: none; }
.cover__byline a:hover { color: #fff; }

/* portrait column */
.cover__figure { position: relative; overflow: hidden; min-height: 360px; }
.cover__figure img {
  position: absolute; inset: 0; z-index: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 26%;
  filter: grayscale(.28) sepia(.12) contrast(1.04) brightness(.92);
  transform: scale(1.06); will-change: transform;
}
/* light teal overlay — tints the portrait toward the brand teal */
.cover__figure::before {
  content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  mix-blend-mode: multiply;
  background: linear-gradient(180deg,
    color-mix(in srgb, var(--teal-500) 20%, transparent) 0%,
    color-mix(in srgb, var(--teal-700) 30%, transparent) 100%);
}
.is-ready .cover__figure img { animation: cover-settle 2.4s var(--ease-out) forwards; }
@keyframes cover-settle { to { transform: scale(1); } }
/* tonal seam so the portrait fuses into the dark type column */
.cover__figure::after {
  content: ""; position: absolute; inset: 0; z-index: 1;
  background:
    linear-gradient(90deg, var(--teal-950) 0%, rgba(8,32,28,.5) 16%, rgba(8,32,28,.06) 42%, transparent 70%),
    linear-gradient(0deg, rgba(8,32,28,.7), transparent 38%);
}
.cover__tag {
  position: absolute; left: 0; right: 0; bottom: 0; z-index: 2;
  display: flex; align-items: center; gap: .6rem; padding: 1.7rem 1.4rem 1.2rem;
  font-family: var(--font-mono); font-size: var(--t-xs); letter-spacing: .12em; text-transform: uppercase;
  color: rgba(255,255,255,.92);
}
.cover__tag .seal {
  width: 34px; height: 34px; flex: none; border-radius: 50%;
  border: 1px solid var(--gold-500); display: grid; place-items: center; color: var(--gold-400);
  background: rgba(8,32,28,.4);
}
.cover__tag .seal svg { width: 17px; height: 17px; }
.cover__scrolldown {
  position: absolute; left: clamp(1.5rem, 4vw, 4.5rem); bottom: clamp(1.4rem, 3vw, 2.2rem); z-index: 4;
  display: inline-flex; align-items: center; gap: .55rem;
  font-family: var(--font-mono); font-size: var(--t-xs); letter-spacing: .2em; text-transform: uppercase;
  color: color-mix(in srgb, var(--sand-100) 70%, transparent); text-decoration: none;
}
.cover__scrolldown svg { width: 16px; height: 16px; animation: nudge 1.8s var(--ease) infinite; }
@keyframes nudge { 0%,100% { transform: translateY(0); } 50% { transform: translateY(4px); } }

@media (max-width: 900px) {
  .cover__grid { grid-template-columns: 1fr; min-height: 0; }
  .cover__figure { order: -1; aspect-ratio: 4/3; min-height: 0; }
  .cover__figure img { object-position: 50% 22%; }
  .cover__figure::after { background: linear-gradient(0deg, var(--teal-950) 2%, rgba(8,32,28,.2) 40%, transparent 75%); }
  .cover__tag { display: none; }
  .cover__type { padding-block: clamp(2rem, 6vw, 3rem) clamp(2.6rem, 8vw, 3.6rem); }
  .cover__scrolldown { display: none; }
}

/* =========================================================
   Trust ticker / marquee
   ========================================================= */
.ticker {
  background: var(--teal-900); color: var(--sand-100);
  border-block: 1px solid var(--teal-700);
}
.ticker__track {
  display: flex; flex-wrap: wrap; justify-content: center; align-items: center;
  padding-block: .85rem; row-gap: .1rem;
}
.ticker__item {
  display: inline-flex; align-items: center; gap: .7rem; padding-block: .1rem;
  font-family: var(--font-mono); font-size: var(--t-xs); letter-spacing: .2em; text-transform: uppercase;
  color: color-mix(in srgb, var(--sand-100) 86%, transparent); white-space: nowrap;
}
.ticker__item::after { content: ""; display: inline-block; width: 5px; height: 5px; border-radius: 50%; background: var(--gold-500); margin-inline: clamp(1rem, 2.4vw, 2.4rem); }
.ticker__item:last-child::after { display: none; }
.ticker__item svg { width: 15px; height: 15px; color: var(--gold-400); }

/* =========================================================
   Full-width safety warning bar (we never ask for cash...)
   ========================================================= */
.warnbar {
  background: color-mix(in srgb, var(--warn) 16%, var(--surface));
  border-block: 1px solid color-mix(in srgb, var(--warn) 40%, var(--line-strong));
}
.warnbar__inner {
  display: flex; justify-content: center;
  padding-block: clamp(.85rem, 1.4vw, 1.15rem);
}
.warnbar .ic { width: 21px; height: 21px; color: var(--warn); display: inline-block; vertical-align: -.28em; margin-right: .5rem; }
.warnbar p { margin: 0; flex: 0 1 auto; max-width: 92ch; text-align: center; font-size: clamp(.92rem, .88rem + .2vw, 1.02rem); line-height: 1.45; color: var(--ink-soft); }
.warnbar strong { color: var(--teal-900); }
.warnbar .tlink { white-space: nowrap; }

/* =========================================================
   The Number — by-the-numbers feature
   ========================================================= */
.figurespread { background: var(--paper-2); border-block: 1px solid var(--rule); }
.figurespread .wrap { display: grid; grid-template-columns: minmax(0, .9fr) 1.1fr; gap: clamp(1.5rem, 5vw, 5rem); align-items: center; }
.bignum {
  font-family: var(--font-display); font-variation-settings: "opsz" 144, "WONK" 1;
  font-size: var(--t-numeral); line-height: .8; font-weight: 460; letter-spacing: -.04em;
  color: var(--teal-900); display: flex; align-items: baseline; gap: .1em;
}
.bignum sup { font-size: .26em; color: var(--clay-600); font-weight: 600; vertical-align: super; }
.bignum .of { font-size: .26em; font-family: var(--font-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--ink-faint); align-self: center; padding-inline: .3em; }
.figurespread__body h2 { font-size: var(--t-xl); }
.figurespread__body p { margin-top: 1rem; color: var(--ink-soft); max-width: 46ch; }
@media (max-width: 760px) { .figurespread .wrap { grid-template-columns: 1fr; gap: 1.5rem; } }

/* =========================================================
   How we help — service cards (echoes the original home)
   ========================================================= */
.grid { display: grid; gap: clamp(1.1rem, 2.4vw, 1.8rem); }
.grid-3 { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 820px) { .grid-3 { grid-template-columns: 1fr; } }
@media (max-width: 560px) { .grid-3 { grid-template-columns: 1fr; } }

.card {
  display: flex; flex-direction: column; align-items: flex-start;
  background: var(--surface); border: 1px solid var(--line-strong); border-radius: var(--radius);
  padding: clamp(1.5rem, 2.6vw, 2.1rem);
  transition: transform .4s var(--ease-out), box-shadow .4s var(--ease-out), border-color .3s var(--ease);
}
.card--link { text-decoration: none; color: var(--ink); }
.card--hover:hover, .card--link:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); border-color: var(--clay-400); color: var(--ink); }
.card__icon {
  width: 50px; height: 50px; flex: none; border-radius: var(--radius); display: grid; place-items: center;
  margin-bottom: 1.2rem; color: var(--teal-700);
  background: color-mix(in srgb, var(--teal-700) 8%, var(--surface));
  border: 1px solid color-mix(in srgb, var(--teal-700) 16%, var(--line));
}
.card__icon svg { width: 24px; height: 24px; }
.card h3 { font-size: var(--t-lg); margin-bottom: .55rem; font-weight: 500; line-height: 1.16; letter-spacing: -.004em; }
.card p { color: var(--ink-soft); font-size: var(--t-base); }
.tag-flag {
  display: inline-flex; align-items: center; margin-bottom: .7rem;
  font-family: var(--font-mono); font-size: .58rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase;
  color: var(--gold-700); background: color-mix(in srgb, var(--gold-500) 16%, var(--surface));
  border: 1px solid color-mix(in srgb, var(--gold-500) 42%, var(--line)); padding: .3em .7em; border-radius: var(--radius-pill);
}
.guide-cta {
  margin-top: auto; padding-top: 1.3rem; display: inline-flex; align-items: center; gap: .45rem;
  font-weight: 600; color: var(--clay-600); font-size: .95rem;
}
.guide-cta .arw { transition: transform .35s var(--ease-out); }
.card--link:hover .guide-cta { color: var(--clay-700); }
.card--link:hover .guide-cta .arw { transform: translateX(4px); }

/* =========================================================
   Feature spread (flagship safeguard) — image + article
   ========================================================= */
.spread { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(1.6rem, 4vw, 4rem); align-items: center; }
.spread--reverse .figure { order: 2; }
.spread__body { max-width: 44ch; }
.spread__body .pullquote { margin: .4rem 0 1.4rem; }
.spread__body .lead { margin-top: 1.2rem; }
@media (max-width: 860px) { .spread, .spread--reverse { grid-template-columns: 1fr; } .spread--reverse .figure { order: -1; } }

/* Art-directed framed figure with duotone + parallax */
.figure { position: relative; overflow: hidden; border-radius: var(--radius); background: var(--sand-200); box-shadow: var(--shadow-lg); }
.figure::after {
  content: ""; position: absolute; inset: 0; pointer-events: none; mix-blend-mode: multiply;
  background: linear-gradient(180deg, rgba(20,46,40,.12), rgba(12,40,35,.4));
}
.figure__media { position: absolute; inset: -8% 0; }
.figure__media img { width: 100%; height: 116%; object-fit: cover; filter: grayscale(.32) sepia(.22) contrast(1.04) brightness(.96); will-change: transform; }
.figure--tall { aspect-ratio: 4/5; }
.figure--wide { aspect-ratio: 16/11; }
.figure--portrait { aspect-ratio: 5/6; }
.figure__cap {
  position: absolute; left: 0; right: 0; bottom: 0; z-index: 3; padding: 2.4rem 1.4rem 1.1rem;
  font-family: var(--font-mono); font-size: var(--t-xs); letter-spacing: .08em; color: rgba(255,255,255,.92);
  background: linear-gradient(transparent, rgba(8,32,28,.78));
}
.figure__index { position: absolute; top: 1rem; left: 1rem; z-index: 3; font-family: var(--font-mono); font-size: var(--t-xs); letter-spacing: .18em; color: rgba(255,255,255,.85); }

.check-list { list-style: none; padding: 0; display: grid; gap: .8rem; margin-top: 1.4rem; }
.check-list li { position: relative; padding-left: 2rem; color: var(--ink-soft); line-height: 1.45; }
.check-list li::before {
  content: ""; position: absolute; left: 0; top: .2rem; width: 1.25rem; height: 1.25rem; background: var(--good);
  -webkit-mask: no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m5 13 4 4L19 7' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
          mask: no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m5 13 4 4L19 7' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

/* =========================================================
   Attorney profile feature
   ========================================================= */
.profile { background: var(--teal-950); color: var(--sand-50); position: relative; overflow: clip; }
.profile .dept { border-color: rgba(255,255,255,.16); }
.profile .dept__folio, .profile .dept__meta { color: rgba(255,255,255,.6); }
.profile .dept__name { color: var(--gold-400); }
.profile__grid { display: grid; grid-template-columns: .82fr 1.18fr; gap: clamp(1.8rem, 5vw, 4.5rem); align-items: center; }
.profile h2 { color: #fff; }
.profile .lead { color: rgba(255,255,255,.84); }
.profile .muted { color: color-mix(in srgb, var(--sand-100) 82%, transparent); }
.profile .muted strong { color: #fff; }
.profile .kicker { color: var(--gold-400); }
.profile__portrait { position: relative; border-radius: var(--radius); overflow: hidden; aspect-ratio: 4/5; box-shadow: var(--shadow-lg); border: 1px solid rgba(255,255,255,.12); }
.profile__portrait img { width: 100%; height: 100%; object-fit: cover; object-position: 52% 50%; filter: saturate(.9) contrast(1.03) brightness(1.04) sepia(.16); }
.profile__portrait figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: 1.8rem 1.2rem 1rem; font-family: var(--font-mono); font-size: var(--t-xs); letter-spacing: .1em; text-transform: uppercase; color: rgba(255,255,255,.9); background: linear-gradient(transparent, rgba(0,0,0,.6)); }

/* credential medallions */
.creds { display: flex; flex-wrap: wrap; gap: 1.6rem; margin-top: clamp(1.6rem, 3vw, 2.2rem); }
.cred { display: flex; flex-direction: column; align-items: center; gap: .6rem; width: 88px; text-align: center; }
.cred__seal {
  width: 72px; height: 72px; border-radius: 50%; flex: none; display: grid; place-items: center;
  background: color-mix(in srgb, var(--gold-500) 9%, transparent);
  border: 1.5px solid color-mix(in srgb, var(--gold-500) 60%, transparent);
  color: var(--gold-400);
  font-family: var(--font-body); font-weight: 600; font-size: .82rem; letter-spacing: .06em;
}
.cred__seal svg { width: 26px; height: 26px; color: var(--gold-400); }
.cred span { font-family: var(--font-mono); font-size: .64rem; line-height: 1.3; letter-spacing: .06em; text-transform: uppercase; color: rgba(255,255,255,.82); }

.attorney-quote { margin-top: clamp(1.8rem, 3.5vw, 2.6rem); border-left: 2px solid var(--gold-500); padding-left: 1.4rem; }
.attorney-quote blockquote { font-family: var(--font-display); font-style: italic; font-weight: 360; font-variation-settings: "opsz" 144, "SOFT" 40; font-size: var(--t-xl); color: #fff; line-height: 1.24; }
.attorney-quote figcaption { margin-top: .8rem; font-family: var(--font-mono); font-size: var(--t-xs); letter-spacing: .14em; text-transform: uppercase; color: var(--gold-400); }
@media (max-width: 860px) { .profile__grid { grid-template-columns: 1fr; } .profile__portrait { max-width: 360px; } }

/* =========================================================
   Them / Us — editorial ledger
   ========================================================= */
.ledger { border-top: 2px solid var(--rule); }
.ledger__heads { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(1rem,3vw,2.5rem); padding: 1rem 0; border-bottom: 1px solid var(--rule); }
.ledger__head { font-family: var(--font-mono); font-size: var(--t-xs); letter-spacing: .2em; text-transform: uppercase; }
.ledger__head--them { color: var(--clay-600); }
.ledger__head--us { color: var(--good); }
.ledger__row { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(1rem,3vw,2.5rem); border-bottom: 1px solid var(--line); }
.ledger__cell { position: relative; padding: 1.3rem 0 1.3rem 2.4rem; font-size: var(--t-base); line-height: 1.45; }
.ledger__cell::before { content: ""; position: absolute; left: 0; top: 1.45rem; width: 1.4rem; height: 1.4rem; border-radius: 50%; display: grid; place-items: center; }
.ledger__cell--them { color: var(--ink-soft); }
.ledger__cell--them::before { content: "\2715"; color: var(--clay-600); background: color-mix(in srgb, var(--clay-500) 14%, transparent); font-size: .8rem; font-weight: 700; line-height: 1.4rem; text-align: center; }
.ledger__cell--us { color: var(--ink); }
.ledger__cell--us strong { color: var(--teal-900); }
.ledger__cell--us::before { content: "\2713"; color: var(--good); background: color-mix(in srgb, var(--good) 16%, transparent); font-size: .82rem; font-weight: 700; line-height: 1.4rem; text-align: center; }
.ledger__lbl { display: none; }
@media (max-width: 700px) {
  .ledger__heads { display: none; }
  .ledger__row { grid-template-columns: 1fr; gap: 0; padding-block: .6rem; }
  .ledger__cell { padding-block: .85rem; }
  .ledger__lbl { display: block; font-family: var(--font-mono); font-size: .62rem; letter-spacing: .14em; text-transform: uppercase; margin-bottom: .25rem; }
  .ledger__cell--them .ledger__lbl { color: var(--clay-600); }
  .ledger__cell--us .ledger__lbl { color: var(--good); }
}

/* =========================================================
   Testimonials — editorial letters
   ========================================================= */
.letters { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(1.2rem, 3vw, 2.2rem); }
.letter { display: flex; flex-direction: column; padding-top: 2.2rem; border-top: 2px solid var(--rule); position: relative; }
.letter::before { content: "\201C"; position: absolute; top: -0.35em; left: -0.06em; font-family: var(--font-display); font-size: 4.5rem; line-height: 1; color: var(--gold-500); opacity: .55; }
.letter p { font-family: var(--font-display); font-weight: 360; font-variation-settings: "opsz" 72; font-size: var(--t-lg); font-style: italic; color: var(--teal-900); line-height: 1.4; }
.letter figcaption { margin-top: auto; padding-top: 1.4rem; display: flex; align-items: center; gap: .7rem; }
.letter__avatar { width: 38px; height: 38px; flex: none; border-radius: 50%; display: grid; place-items: center; background: var(--teal-800); color: var(--sand-50); font-family: var(--font-display); font-weight: 600; font-size: 1rem; }
.letter__id { display: flex; flex-direction: column; line-height: 1.3; }
.letter__name { font-weight: 600; color: var(--teal-900); font-size: .9rem; }
.letter__loc { font-family: var(--font-mono); font-size: .72rem; letter-spacing: .06em; color: var(--ink-faint); text-transform: uppercase; }
.demo-tag { font-family: var(--font-mono); font-size: .58rem; letter-spacing: .14em; text-transform: uppercase; color: var(--warn); border: 1px dashed color-mix(in srgb, var(--warn) 50%, var(--line)); padding: .15rem .5rem; border-radius: var(--radius-pill); font-weight: 600; }
@media (max-width: 820px) { .letters { grid-template-columns: 1fr; gap: 1.8rem; } .letter { padding-top: 1.8rem; } }

/* Single featured review (until more are collected) */
.letters--single { grid-template-columns: min(62ch, 100%); justify-content: center; }
.letters--single .letter { padding-top: 2.6rem; }
.letters--single .letter p { font-size: clamp(1.4rem, 1.12rem + 1.3vw, 2.05rem); }

/* =========================================================
   Process — numbered steps with a connective spine
   ========================================================= */
.split { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(1.6rem, 5vw, 4.5rem); align-items: start; }
.split--aside { grid-template-columns: 1fr 1.05fr; }
@media (max-width: 860px) { .split, .split--aside { grid-template-columns: 1fr; } }

.steps { display: grid; gap: 0; }
.step { display: grid; grid-template-columns: auto 1fr; gap: 1.4rem; align-items: start; position: relative; padding-bottom: 2rem; }
.step:last-child { padding-bottom: 0; }
.step__n { position: relative; z-index: 1; width: 50px; height: 50px; flex: none; border-radius: 50%; display: grid; place-items: center; background: var(--surface); border: 1px solid var(--rule); color: var(--teal-900); font-family: var(--font-display); font-weight: 500; font-size: 1.15rem; box-shadow: var(--shadow-sm); }
.step:not(:last-child)::before { content: ""; position: absolute; left: 24px; top: 52px; bottom: 6px; width: 1.5px; background: linear-gradient(var(--rule), color-mix(in srgb, var(--rule) 10%, transparent)); }
.step h3 { font-size: 1.2rem; margin-bottom: .35rem; font-weight: 500; }
.step p { color: var(--ink-soft); font-size: var(--t-base); }

/* =========================================================
   Guides / further reading + capture
   ========================================================= */
.reading { display: grid; grid-template-columns: repeat(3,1fr); gap: clamp(1.1rem, 2.5vw, 1.8rem); }
.read-card {
  display: flex; flex-direction: column; padding: 1.6rem; background: var(--surface);
  border: 1px solid var(--line-strong); border-radius: var(--radius); text-decoration: none; color: var(--ink);
  transition: transform .4s var(--ease-out), box-shadow .4s var(--ease-out), border-color .3s var(--ease);
}
.read-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); border-color: var(--clay-400); color: var(--ink); }
.read-card__kicker { font-family: var(--font-mono); font-size: var(--t-xs); letter-spacing: .14em; text-transform: uppercase; color: var(--clay-600); }
.read-card h3 { font-size: 1.25rem; margin-top: .7rem; font-weight: 500; }
.read-card p { color: var(--ink-soft); font-size: var(--t-sm); margin-top: .6rem; }
.read-card .tlink { margin-top: 1.3rem; }
@media (max-width: 820px) { .reading { grid-template-columns: 1fr; } }

.capture { display: flex; gap: .7rem; flex-wrap: wrap; margin-top: clamp(1.8rem, 3vw, 2.4rem); max-width: 560px; }
.capture input { flex: 1 1 240px; font-family: var(--font-body); font-size: var(--t-base); color: var(--ink); padding: .95rem 1rem; border: 1px solid var(--line-strong); border-radius: var(--radius); background: var(--surface); }
.capture input:focus { outline: none; border-color: var(--teal-600); box-shadow: 0 0 0 3px color-mix(in srgb, var(--teal-600) 16%, transparent); }
.form-trust { margin-top: 1rem; display: inline-flex; align-items: center; gap: .5rem; font-family: var(--font-mono); font-size: var(--t-xs); letter-spacing: .06em; color: var(--ink-faint); }
.form-trust svg { width: 15px; height: 15px; color: var(--good); flex: none; }

/* =========================================================
   FAQ
   ========================================================= */
.faq { border-top: 2px solid var(--rule); }
.faq details { border-bottom: 1px solid var(--line); }
.faq summary { list-style: none; cursor: pointer; padding: 1.5rem 3rem 1.5rem 0; position: relative; font-family: var(--font-display); font-size: var(--t-lg); color: var(--teal-900); font-weight: 440; transition: color .2s var(--ease); }
.faq summary:hover { color: var(--clay-700); }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: ""; position: absolute; right: 4px; top: 1.85rem; width: 15px; height: 15px; background: var(--clay-600);
  -webkit-mask: no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 5v14M5 12h14' stroke='black' stroke-width='2.5' stroke-linecap='round'/%3E%3C/svg%3E");
          mask: no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 5v14M5 12h14' stroke='black' stroke-width='2.5' stroke-linecap='round'/%3E%3C/svg%3E");
  transition: transform .35s var(--ease); }
.faq details[open] summary::after { transform: rotate(135deg); }
.faq__a { padding: 0 3rem 1.6rem 0; color: var(--ink-soft); max-width: 68ch; }
.faq__a em { font-style: italic; color: var(--teal-800); }

/* =========================================================
   Honest-expectations note
   ========================================================= */
.note-honest { max-width: 60ch; margin-inline: auto; text-align: center; color: var(--ink-soft); font-size: 1.05rem; line-height: 1.6; padding: clamp(1.6rem,3vw,2.4rem) 0; border-block: 1px solid var(--rule); }
.note-honest strong { color: var(--teal-900); }

/* =========================================================
   Back cover — closing CTA as a dark "plate" on a light page,
   kept visually distinct from the dark colophon footer below
   ========================================================= */
.backcover { background: var(--paper-2); padding-block: clamp(3.5rem, 7vw, 7rem); }
.backcover__panel {
  position: relative; overflow: clip; isolation: isolate; border-radius: var(--radius);
  background: var(--teal-950); color: var(--sand-50); text-align: center; box-shadow: var(--shadow-lg);
}
.backcover__media { position: absolute; inset: -10% 0; z-index: 0; }
.backcover__media img { width: 100%; height: 120%; object-fit: cover; filter: grayscale(.3) sepia(.2) contrast(1.05) brightness(.6); will-change: transform; }
.backcover__panel::after { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(8,32,28,.74), rgba(8,32,28,.84)); }
.backcover__content { position: relative; z-index: 2; padding: clamp(3.25rem, 6vw, 5.5rem) clamp(1.4rem, 5vw, 4rem); }
.backcover h2 { color: #fff; font-size: var(--t-feature); line-height: 1; max-width: 16ch; margin-inline: auto; }
.backcover h2 em { font-style: italic; color: var(--gold-400); }
.backcover .lead { color: rgba(255,255,255,.88); margin: 1.4rem auto 0; max-width: 46ch; }
.backcover__actions { margin-top: clamp(1.8rem,3.5vw,2.6rem); display: flex; flex-wrap: wrap; gap: 1rem; justify-content: center; }
.backcover__fine { margin-top: 1.4rem; font-family: var(--font-mono); font-size: var(--t-xs); letter-spacing: .1em; text-transform: uppercase; color: rgba(255,255,255,.66); }

/* =========================================================
   Colophon footer
   ========================================================= */
.colophon { background: var(--teal-950); color: color-mix(in srgb, var(--sand-100) 76%, transparent); padding-block: clamp(3.5rem,6vw,5.5rem) 2.2rem; border-top: 1px solid var(--teal-700); }
.colophon a { color: var(--sand-100); text-decoration: none; }
.colophon a:hover { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.colophon__top { display: grid; grid-template-columns: 1.5fr 1fr 1fr; gap: clamp(1.6rem,4vw,3rem); padding-bottom: 2.4rem; border-bottom: 1px solid rgba(255,255,255,.14); }
.colophon .brand__name { color: var(--sand-50); }
.colophon .brand__name b { color: var(--sand-50); }
.colophon .brand__name span { color: color-mix(in srgb, var(--sand-100) 60%, transparent); }
.colophon .brand__mark { background: linear-gradient(145deg, var(--gold-400), var(--gold-600) 78%); }
.colophon__claim { font-size: var(--t-sm); margin-top: 1.1rem; max-width: 40ch; color: color-mix(in srgb, var(--sand-100) 72%, transparent); line-height: 1.55; }
.colophon__verify { margin-top: 1.1rem; display: flex; align-items: center; gap: .5rem; font-size: var(--t-sm); color: color-mix(in srgb, var(--sand-100) 76%, transparent); }
.colophon__verify svg { width: 17px; height: 17px; color: var(--gold-400); flex: none; }
.colophon h3, .colophon h4 { font-family: var(--font-mono); font-size: var(--t-xs); font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: color-mix(in srgb, var(--sand-100) 58%, transparent); margin-bottom: 1.1rem; }
.colophon__reach a { display: flex; align-items: center; gap: .6rem; padding: .55rem 0; font-weight: 600; font-size: .98rem; border-bottom: 1px solid rgba(255,255,255,.1); }
.colophon__reach svg { width: 19px; height: 19px; color: var(--gold-400); flex: none; }
.colophon__list { list-style: none; padding: 0; display: grid; gap: .65rem; font-size: .95rem; }
.colophon__list a { font-weight: 500; }
.colophon__bottom { margin-top: 2.4rem; padding-top: 1.6rem; border-top: 1px solid rgba(255,255,255,.14); display: flex; flex-wrap: wrap; gap: 1.2rem; justify-content: space-between; align-items: flex-start; }
.colophon__disclaimer { max-width: 70ch; font-family: var(--font-mono); font-size: var(--t-xs); line-height: 1.7; letter-spacing: .02em; color: color-mix(in srgb, var(--sand-100) 52%, transparent); }
.colophon__disclaimer strong { color: color-mix(in srgb, var(--sand-100) 80%, transparent); }
.colophon__locale { font-family: var(--font-mono); font-size: var(--t-xs); letter-spacing: .12em; text-transform: uppercase; color: color-mix(in srgb, var(--sand-100) 60%, transparent); white-space: nowrap; }
@media (max-width: 820px) { .colophon__top { grid-template-columns: 1fr 1fr; } .colophon__brand { grid-column: 1 / -1; } }
@media (max-width: 560px) { .colophon__top { grid-template-columns: 1fr; } }

/* =========================================================
   Sticky mobile CTA
   ========================================================= */
.sticky-cta { display: none; }
@media (max-width: 940px) {
  .sticky-cta {
    display: flex; position: fixed; left: 12px; right: 12px; bottom: 12px; z-index: 95; gap: .6rem;
    background: var(--surface); border: 1px solid var(--line-strong); border-radius: var(--radius-pill);
    padding: .5rem; box-shadow: var(--shadow-lg);
    /* hidden while the hero is on screen; JS slides it in past the hero */
    transform: translateY(calc(100% + 18px)); opacity: 0; pointer-events: none;
    transition: transform .42s var(--ease-out), opacity .3s var(--ease);
  }
  .sticky-on .sticky-cta { transform: translateY(0); opacity: 1; pointer-events: auto; }
  .sticky-cta .btn { flex: 1; justify-content: center; padding: .9em 1em; }
  body { padding-bottom: 84px; }
}
@media (prefers-reduced-motion: reduce) { .sticky-cta { transition: none !important; } }

/* =========================================================
   Motion system — reveals, parallax hooks
   ========================================================= */
.reveal { opacity: 0; transform: translateY(34px); transition: opacity 1s var(--ease-out), transform 1s var(--ease-out); transition-delay: var(--d, 0ms); will-change: opacity, transform; }
.reveal.is-in { opacity: 1; transform: none; }
.reveal--fade { transform: none; }
.reveal--left { transform: translateX(-40px); }
.reveal--right { transform: translateX(40px); }
.reveal--scale { transform: scale(.96); }
/* mobile: side-entry reveals must not translate horizontally (would overflow the viewport) */
@media (max-width: 760px) { .reveal--left, .reveal--right { transform: translateY(34px); } }
.reveal--clip { clip-path: inset(0 0 100% 0); opacity: 1; transform: none; transition: clip-path 1.1s var(--ease-out); transition-delay: var(--d, 0ms); }
.reveal--clip.is-in { clip-path: inset(0 0 0 0); }

.no-js .reveal, .no-js .reveal--clip { opacity: 1 !important; transform: none !important; clip-path: none !important; }

@media (prefers-reduced-motion: reduce) {
  .reveal, .reveal--clip { opacity: 1 !important; transform: none !important; clip-path: none !important; transition: none !important; }
  .cover h1 .ln > span { animation: none !important; transform: none !important; }
  .cover__figure img, .is-ready .cover__figure img { animation: none !important; transform: none !important; filter: grayscale(.25) sepia(.18) contrast(1.04) brightness(.92) !important; }
  .ticker__track { animation: none !important; }
  .cover__scrolldown svg { animation: none !important; }
  .btn, .card, .read-card, .contents__link, .magnetic { transition: none !important; }
  * { scroll-behavior: auto !important; }
}

/* =========================================================
   Subpage components (editorial system, used across the
   converted scammed / why-trust-us / city / book pages)
   ========================================================= */

/* Section band (subtle warm panel, replaces .band--sand) */
.section--band { background: var(--paper-2); border-block: 1px solid var(--rule); }

/* Two-up grid */
.grid-2 { grid-template-columns: repeat(2, 1fr); }
@media (max-width: 760px) { .grid-2 { grid-template-columns: 1fr; } }

/* Subpage hero — photographic teal band */
.subhero { position: relative; overflow: clip; isolation: isolate; background: var(--teal-950); color: var(--sand-50); }
.subhero__media { position: absolute; inset: 0; z-index: 0; }
.subhero__media img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(.5) sepia(.18) contrast(1.04) brightness(.52); }
.subhero::after { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(8,32,28,.66), rgba(8,32,28,.84)); }
.subhero::before { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; opacity: .15; mix-blend-mode: overlay; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='130' height='130'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.82' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
.subhero .wrap { position: relative; z-index: 2; padding-block: clamp(3.25rem, 7vw, 6rem); }
.subhero .kicker { color: var(--gold-400); }
.subhero h1 { color: #fff; font-size: clamp(2.2rem, 1.4rem + 2.8vw, 4rem); line-height: 1.02; letter-spacing: -.02em; max-width: 20ch; margin-top: 1.1rem; }
.subhero h1 em { font-style: italic; color: var(--gold-400); }
.subhero .lead { color: rgba(255,255,255,.88); margin-top: 1.3rem; max-width: 58ch; }
.subhero__actions { margin-top: 1.8rem; display: flex; flex-wrap: wrap; gap: .9rem 1.2rem; align-items: center; }

/* Inline callout (light) — reassurance + caution */
.callout { position: relative; display: grid; grid-template-columns: auto 1fr; gap: 1.1rem; align-items: start; background: color-mix(in srgb, var(--good) 8%, var(--surface)); border: 1px solid color-mix(in srgb, var(--good) 30%, var(--line-strong)); border-left: 4px solid var(--good); padding: 1.4rem 1.6rem; border-radius: var(--radius); }
.callout svg.ic { width: 28px; height: 28px; color: var(--good); flex: none; margin-top: 2px; }
.callout strong { color: var(--teal-900); }
.callout p + p { margin-top: .5rem; }
.callout--warn { background: color-mix(in srgb, var(--warn) 9%, var(--surface)); border-color: color-mix(in srgb, var(--warn) 32%, var(--line-strong)); border-left-color: var(--warn); }
.callout--warn svg.ic { color: var(--warn); }

/* Service list with fees */
.svc-list { list-style: none; padding: 0; margin: 0; border-top: 1px solid var(--rule); }
.svc-list li { display: flex; justify-content: space-between; gap: 1.5rem; align-items: baseline; padding: 1.3rem 0; border-bottom: 1px solid var(--line); }
.svc-list h3 { font-size: var(--t-lg); font-weight: 500; }
.svc-list p { font-size: var(--t-sm); color: var(--ink-soft); margin-top: .25rem; }
.svc-list .fee { font-family: var(--font-mono); font-size: var(--t-xs); letter-spacing: .08em; text-transform: uppercase; font-weight: 600; color: var(--clay-600); white-space: nowrap; flex: none; }
@media (max-width: 560px) { .svc-list li { flex-direction: column; gap: .35rem; } .svc-list .fee { align-self: flex-start; } }

/* Form */
.form { display: grid; gap: 1.1rem; }
.form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 1.1rem; align-items: start; }
@media (max-width: 560px) { .form__row { grid-template-columns: 1fr; } }
.field { display: grid; gap: .4rem; }
.field label { font-weight: 600; font-size: var(--t-sm); color: var(--teal-900); }
.field .req { color: var(--clay-600); }
.field input, .field select, .field textarea { font-family: var(--font-body); font-size: var(--t-base); color: var(--ink); padding: .85rem .95rem; border: 1px solid var(--line-strong); border-radius: var(--radius); background: var(--surface); width: 100%; }
.field textarea { resize: vertical; }
.field input:focus, .field select:focus, .field textarea:focus { outline: none; border-color: var(--teal-600); box-shadow: 0 0 0 3px color-mix(in srgb, var(--teal-600) 16%, transparent); }
.field .hint { font-size: var(--t-xs); color: var(--ink-faint); }
/* Inputs and selects share a height so two-column rows line up */
.field input:not([type="checkbox"]), .field select { height: 3.2rem; }
/* Custom chevron so the dropdown arrow isn't jammed against the right edge */
.field select { appearance: none; -webkit-appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%234a5a55' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right .85rem center; padding-right: 2.15rem; }
/* Trust line: small mono, full width (beats .card p sizing) */
.form .form-trust { display: flex; width: 100%; font-size: var(--t-xs); margin-top: .5rem; }

/* Info aside (dark teal) */
.infocard { background: var(--teal-950); color: var(--sand-100); border-radius: var(--radius); padding: clamp(1.5rem,3vw,2rem); border: 1px solid var(--teal-700); }
.infocard h2, .infocard h3 { color: #fff; font-size: var(--t-lg); }
.infocard ul { list-style: none; padding: 0; margin: 1rem 0 0; display: grid; gap: .9rem; }
.infocard li { display: flex; gap: .7rem; align-items: flex-start; font-size: var(--t-sm); color: color-mix(in srgb, var(--sand-100) 82%, transparent); }
.infocard li svg { width: 20px; height: 20px; flex: none; color: var(--gold-400); margin-top: 1px; }
.infocard a { color: var(--gold-400); }

/* Light credential medallions (on light bands, e.g. why-trust-us) */
.creds--light .cred__seal { background: color-mix(in srgb, var(--gold-500) 14%, var(--surface)); border-color: color-mix(in srgb, var(--gold-600) 60%, transparent); color: var(--gold-700); }
.creds--light .cred__seal svg { color: var(--gold-700); }
.creds--light .cred span { color: var(--ink-soft); }

/* active nav state on subpages */
.nav__links a[aria-current="page"] { color: var(--teal-900); }
.nav__links a[aria-current="page"]::after { transform: scaleX(1); }

/* FAQ heading: sticky aside on desktop only (prevents it floating over items on mobile) */
.faq-aside { margin-bottom: 0; }
@media (min-width: 861px) { .faq-aside { position: sticky; top: 110px; align-self: start; } }

/* =========================================================
   Article / guide — author byline + freshness meta (E-E-A-T)
   used on the long-form recovery guide(s)
   ========================================================= */
.guide-meta { display: grid; gap: 1.25rem; }
.byline { display: flex; flex-wrap: wrap; align-items: baseline; gap: .35rem .8rem; font-size: var(--t-sm); line-height: 1.55; color: var(--ink-faint); }
.byline__author { font-weight: 600; color: var(--teal-800); text-decoration: none; }
.byline__author:hover { color: var(--clay-600); }
.byline__creds { color: var(--ink-soft); }
.byline__date { font-family: var(--font-mono); font-size: var(--t-xs); letter-spacing: .08em; text-transform: uppercase; color: var(--ink-faint); }
.byline .tlink { font-size: var(--t-sm); }

/* ============ a11y patches (axe-core gate, 2026-06-10) ============
   1. warnbar link: clay-600 on sand was 4.4:1 — deepened to pass 4.5:1.
   2. in-prose links (footer disclaimer): underline, not color-only. */
.warnbar .tlink { color: #8a4117; text-decoration: underline; text-underline-offset: 2px; }
.colophon__disclaimer a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
