/* ============================================================
   H&H BROKERS & CONSULTING — design system
   Deliberately single, fixed institutional identity (deep navy /
   warm ivory / champagne bronze). The palette is the brand, not a
   UI theme — it does not invert with the visitor's OS light/dark
   setting, the way a bank or consultancy's own site would not.
   Backgrounds and colors are set explicitly everywhere so the
   page holds its identity regardless of host page-chrome.
   ============================================================ */

:root{
  --ink:        #0B1626;   /* deep navy — primary institutional ground */
  --ink-2:      #101F35;   /* navy, one step up — panels on dark */
  --ink-3:      #182B46;   /* navy, two steps up — borders/cards on dark */
  --ivory:      #F6F1E6;   /* warm ivory — primary light ground */
  --ivory-2:    #EFE7D4;   /* deeper ivory — alternating panels on light */
  --paper:      #FBF8F1;   /* near-white paper for cards on ivory */
  --gold:       #B08D57;   /* champagne bronze — the one accent, used sparingly */
  --gold-soft:  #D9C6A0;   /* lighter bronze — fine lines/labels on navy */
  --gold-dim:   #8C6F45;   /* darker bronze — fine lines/labels on ivory */
  --slate:      #47505E;   /* anthracite — secondary text on ivory */
  --slate-soft: #9AA4B2;   /* muted slate — captions on navy */
  --line-on-ivory: rgba(11,22,38,0.13);
  --line-on-navy:  rgba(217,198,160,0.22);

  --font-display: 'Frank Ruhl Libre', Georgia, 'Times New Roman', serif;
  --font-body:    'Public Sans', -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif;
  --font-mono:    'IBM Plex Mono', 'SFMono-Regular', Consolas, 'Liberation Mono', monospace;

  --fs-2xs: 0.7rem;
  --fs-xs:  0.82rem;
  --fs-sm:  0.95rem;
  --fs-base:1.0625rem;
  --fs-md:  1.2rem;
  --fs-lg:  1.6rem;
  --fs-xl:  2.1rem;
  --fs-2xl: clamp(2.1rem, 3.4vw, 3rem);
  --fs-3xl: clamp(2.6rem, 5.6vw, 4.8rem);

  --content-max: 1280px;
  --pad-inline: clamp(1.5rem, 5vw, 5rem);
  --radius: 2px;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
html.menu-open, html.menu-open body{ overflow:hidden; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important; }
}

body{
  margin:0;
  background:var(--ivory);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:var(--fs-base);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

h1,h2,h3,h4{
  font-family:var(--font-display);
  font-weight:500;
  line-height:1.15;
  margin:0;
  text-wrap:balance;
  color:var(--ink);
}
p{ margin:0; }
a{ color:inherit; text-decoration:none; }
img{ max-width:100%; display:block; }
ul{ margin:0; padding:0; list-style:none; }
button{ font-family:inherit; cursor:pointer; }
input,select,textarea{ font-family:inherit; font-size:inherit; }
.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;
}

::selection{ background:var(--gold); color:var(--ink); }

:focus-visible{
  outline:2px solid var(--gold);
  outline-offset:3px;
}

.wrap{
  max-width:var(--content-max);
  margin-inline:auto;
  padding-inline:var(--pad-inline);
}

.eyebrow{
  font-family:var(--font-mono);
  font-size:var(--fs-2xs);
  letter-spacing:0.18em;
  text-transform:uppercase;
  display:inline-flex;
  align-items:center;
  gap:0.6em;
  color:var(--gold-dim);
}
.section--dark .eyebrow{ color:var(--gold-soft); }
.eyebrow::before{
  content:"";
  width:2rem;
  height:1px;
  background:var(--gold-dim);
}
.section--dark .eyebrow::before{ background:var(--gold-soft); }

.hairline{ border:none; border-top:1px solid var(--line-on-ivory); margin:0; }
.section--dark .hairline{ border-top-color:var(--line-on-navy); }

/* ---------- dossier index rail : each major section is numbered
   like a tab in a risk report — the site itself reads as a dossier ---------- */
.section{
  position:relative;
  padding-block: clamp(4.5rem, 9vw, 8rem);
}
.section--light{ background:var(--ivory); color:var(--ink); }
.section--alt{ background:var(--ivory-2); color:var(--ink); }
.section--dark{ background:var(--ink); color:var(--ivory); }
.section--dark h1, .section--dark h2, .section--dark h3, .section--dark h4{ color:var(--ivory); }

.section-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:2rem;
  flex-wrap:wrap;
  margin-bottom: clamp(2.5rem, 5vw, 4rem);
}
.rail-index{
  font-family:var(--font-mono);
  font-size:var(--fs-xs);
  color:var(--gold-dim);
  letter-spacing:0.08em;
  padding-bottom:0.35rem;
}
.section--dark .rail-index{ color:var(--gold-soft); }

.section-title{
  font-size:var(--fs-2xl);
  max-width:44rem;
}
.section-kicker{
  display:flex;
  flex-direction:column;
  gap:0.9rem;
}
.section-dek{
  font-family:var(--font-body);
  font-size:var(--fs-md);
  font-weight:400;
  color:var(--slate);
  max-width:34rem;
  line-height:1.55;
}
.section--dark .section-dek{ color:var(--slate-soft); }

.btn{
  display:inline-flex;
  align-items:center;
  gap:0.7rem;
  font-family:var(--font-mono);
  font-size:var(--fs-xs);
  letter-spacing:0.06em;
  text-transform:uppercase;
  padding:1rem 1.6rem;
  border:1px solid transparent;
  transition:background-color .35s ease, color .35s ease, border-color .35s ease, transform .35s ease;
  white-space:nowrap;
}
.btn svg{ width:0.85rem; height:0.85rem; transition:transform .35s ease; }
.btn:hover svg{ transform:translateX(3px); }
.btn-gold{ background:var(--gold); color:var(--ink); border-color:var(--gold); }
.btn-gold:hover{ background:transparent; color:var(--gold); }
.section--dark .btn-gold:hover{ color:var(--gold-soft); border-color:var(--gold-soft); }
.btn-ghost-dark{ color:var(--ivory); border-color:rgba(246,241,230,0.4); }
.btn-ghost-dark:hover{ background:rgba(246,241,230,0.08); border-color:var(--ivory); }
.btn-ghost-light{ color:var(--ink); border-color:rgba(11,22,38,0.35); }
.btn-ghost-light:hover{ background:rgba(11,22,38,0.06); border-color:var(--ink); }
.btn-line{ color:var(--gold-dim); border-bottom:1px solid var(--gold-dim); padding:0.2rem 0; text-transform:none; letter-spacing:0.02em; font-family:var(--font-body); font-size:var(--fs-sm); }
.section--dark .btn-line{ color:var(--gold-soft); border-color:var(--gold-soft); }
.btn-line:hover{ opacity:0.7; }

/* ---------- scroll reveal ---------- */
.reveal{ opacity:1; transform:none; }
.js .reveal{ opacity:0; transform:translateY(22px); transition:opacity .9s cubic-bezier(.16,.8,.24,1), transform .9s cubic-bezier(.16,.8,.24,1); }
.js .reveal.is-visible{ opacity:1; transform:translateY(0); }
.reveal-stagger > * { transition-delay:calc(var(--i, 0) * 90ms); }

/* ============================== HEADER ============================== */
.site-header{
  position:fixed; inset:0 0 auto 0; z-index:100;
  display:flex; align-items:center; justify-content:space-between;
  padding:1.3rem clamp(1.5rem,5vw,3rem);
  background:transparent;
  transition:background-color .45s ease, padding .45s ease, border-color .45s ease;
  border-bottom:1px solid transparent;
}
.site-header.is-scrolled{
  background:rgba(11,22,38,0.94);
  backdrop-filter:blur(6px);
  padding-block:0.9rem;
  border-bottom-color:var(--line-on-navy);
}
.brand{ display:flex; align-items:center; gap:0.65rem; text-decoration:none; }
.brand-logo-image{
  display:block; width:5.125rem; height:auto; flex-shrink:0; object-fit:contain;
}

.main-nav{ display:flex; align-items:center; gap:1.6rem; }
.main-nav ul{ display:flex; gap:1.5rem; }
.main-nav a{
  font-family:var(--font-body); font-size:0.8rem; color:var(--ivory);
  position:relative; padding-bottom:4px; opacity:0.88; white-space:nowrap;
}
.main-nav a::after{
  content:""; position:absolute; left:0; bottom:0; height:1px; width:0;
  background:var(--gold-soft); transition:width .35s ease;
}
.main-nav a:hover{ opacity:1; }
.main-nav a:hover::after{ width:100%; }
.nav-cta{
  font-family:var(--font-mono); font-size:0.72rem; letter-spacing:0.06em; text-transform:uppercase;
  color:var(--ink); background:var(--gold); padding:0.65rem 1.1rem; border:1px solid var(--gold);
  transition:background-color .3s ease, color .3s ease;
}
.nav-cta:hover{ background:transparent; color:var(--gold-soft); }

.language-switch{
  display:inline-flex; align-items:center; gap:0.35rem;
  border:0; background:transparent; color:var(--slate-soft);
  font-family:var(--font-mono); font-size:0.66rem; letter-spacing:0.08em;
  cursor:pointer; white-space:nowrap;
}
.language-switch [data-lang-code]{ opacity:0.55; transition:color .2s ease, opacity .2s ease; }
.language-switch [data-lang-code].is-active{ color:var(--gold-soft); opacity:1; }
.language-switch:hover [data-lang-code]{ opacity:1; }
.language-switch:focus-visible{ outline:1px solid var(--gold-soft); outline-offset:5px; }
.language-separator{ opacity:0.35; }
.language-switch--mobile{ align-self:flex-start; margin-top:0.5rem; font-size:0.78rem; }
.language-switch--standalone{ position:fixed; top:1.4rem; right:clamp(1.5rem,5vw,3rem); z-index:10; padding:0.6rem; }

.has-dropdown{ position:relative; }
.dropdown-toggle{ display:inline-flex; align-items:center; gap:0.35rem; cursor:default; }
.dropdown-toggle .caret{ font-family:var(--font-mono); font-size:0.65rem; color:var(--gold-soft); transition:transform .3s ease; }
.has-dropdown:hover .dropdown-toggle .caret, .has-dropdown:focus-within .dropdown-toggle .caret{ transform:rotate(180deg); }
.dropdown{
  position:absolute; top:100%; left:50%; transform:translate(-50%,6px);
  min-width:14rem; background:var(--ink-2); border:1px solid var(--line-on-navy);
  padding:0.6rem 0; opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .25s ease, transform .25s ease, visibility .25s ease;
  z-index:10;
}
.has-dropdown:hover .dropdown, .has-dropdown:focus-within .dropdown{
  opacity:1; visibility:visible; pointer-events:auto; transform:translate(-50%,10px);
}
.dropdown li{ display:block; }
.dropdown a{ display:block; padding:0.7rem 1.4rem; font-size:0.82rem; white-space:nowrap; opacity:0.9; }
.dropdown a::after{ display:none; }
.dropdown a:hover{ background:rgba(217,198,160,0.08); opacity:1; }
.mobile-menu .sub-nav{ display:flex; flex-direction:column; gap:1rem; margin:0 0 0 1.4rem; padding-top:0.6rem; }
.mobile-menu .sub-nav a{ font-family:var(--font-body); font-size:1.05rem; opacity:0.8; }
.mobile-menu .sub-label{ font-family:var(--font-mono); font-size:0.7rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--gold-soft); }

.menu-toggle{ display:none; background:none; border:none; padding:0.4rem; }
.menu-toggle span{ display:block; width:22px; height:1px; background:var(--ivory); margin:5px 0; transition:transform .3s ease, opacity .3s ease; }

@media (max-width: 1240px){
  .main-nav ul{ display:none; }
  .nav-cta.desktop-only{ display:none; }
  .menu-toggle{ display:block; }
  .main-nav{ margin-left:auto; gap:1rem; }
}

.mobile-menu{
  position:fixed; inset:0; background:var(--ink); z-index:101;
  display:flex; flex-direction:column; justify-content:center; gap:1.7rem;
  padding:2rem clamp(1.5rem,8vw,4rem);
  transform:translateY(-100%); visibility:hidden; pointer-events:none;
  transition:transform .5s cubic-bezier(.2,.7,.2,1), visibility 0s linear .5s;
}
.mobile-menu.is-open{ transform:translateY(0); visibility:visible; pointer-events:auto; transition-delay:0s; }
.mobile-menu a{ font-family:var(--font-display); font-size:1.7rem; color:var(--ivory); }
.mobile-menu .nav-cta{ align-self:flex-start; margin-top:1rem; }
.mobile-close{ position:absolute; top:1.4rem; right:clamp(1.5rem,5vw,3rem); background:none; border:none; color:var(--ivory); font-family:var(--font-mono); font-size:0.75rem; letter-spacing:0.1em; text-transform:uppercase; }

/* ============================== HERO ============================== */
.hero{
  position:relative;
  min-height:100vh;
  display:flex; align-items:flex-end;
  background:#314650;
  color:var(--ivory);
  overflow:hidden;
  padding-top:6rem;
}
.hero-media{ position:absolute; inset:0; z-index:0; overflow:hidden; }
.hero-video{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}
.hero-shade{
  position:absolute; inset:0; z-index:1; pointer-events:none;
  background:
    linear-gradient(90deg, rgba(7,17,28,0.78) 0%, rgba(7,17,28,0.46) 52%, rgba(7,17,28,0.12) 100%),
    linear-gradient(0deg, rgba(7,17,28,0.78) 0%, rgba(7,17,28,0.10) 68%);
}
.hero-grid-overlay{
  position:absolute; inset:0; z-index:1; opacity:0.16; pointer-events:none;
  background-image:
    linear-gradient(var(--line-on-navy) 1px, transparent 1px),
    linear-gradient(90deg, var(--line-on-navy) 1px, transparent 1px);
  background-size: 64px 64px;
  mask-image: linear-gradient(180deg, rgba(0,0,0,0.55), transparent 70%);
}
.hero-content{ position:relative; z-index:2; width:100%; padding-bottom:clamp(3rem,8vw,5.5rem); text-shadow:0 2px 18px rgba(4,10,18,0.34); }
.hero-label{ margin-bottom:1.6rem; }
.hero-title{
  font-size:var(--fs-3xl);
  font-weight:500;
  max-width:22ch;
  margin-bottom:1.8rem;
  color:var(--ivory);
}
.hero-title em{ font-style:italic; color:var(--gold-soft); }
.hero-sub{ font-family:var(--font-body); font-size:var(--fs-md); font-weight:400; color:var(--ivory); max-width:36rem; margin-bottom:1rem; opacity:0.95; }
.hero-text{ font-size:var(--fs-base); color:var(--slate-soft); max-width:38rem; margin-bottom:2.6rem; }
.hero-ctas{ display:flex; gap:1.1rem; flex-wrap:wrap; }
.js .hero-anim > *{ opacity:0; transform:translateY(26px); animation:heroIn 1s cubic-bezier(.16,.8,.24,1) forwards; }
.hero-anim > *:nth-child(1){ animation-delay:.15s; }
.hero-anim > *:nth-child(2){ animation-delay:.35s; }
.hero-anim > *:nth-child(3){ animation-delay:.55s; }
.hero-anim > *:nth-child(4){ animation-delay:.72s; }
.hero-anim > *:nth-child(5){ animation-delay:.88s; }
@keyframes heroIn{ to{ opacity:1; transform:translateY(0); } }
@media (prefers-reduced-motion: reduce){ .hero-anim > *{ opacity:1; transform:none; animation:none; } }

@media (max-width:700px){
  .hero-video{ object-position:58% center; }
  .hero-shade{
    background:
      linear-gradient(90deg, rgba(7,17,28,0.76) 0%, rgba(7,17,28,0.34) 100%),
      linear-gradient(0deg, rgba(7,17,28,0.82) 0%, rgba(7,17,28,0.08) 72%);
  }
}

/* ============================== CREDIBILITY BAND ============================== */
.credibility{
  position:relative;
  overflow:clip;
  background:var(--ink-2);
  color:var(--ivory);
  padding-block:clamp(5.25rem,7.8vw,6.6rem);
  border-top:1px solid var(--line-on-navy);
  border-bottom:1px solid var(--line-on-navy);
}
.credibility-media,
.credibility-shade,
.credibility-depth{
  position:absolute;
  inset:0;
  pointer-events:none;
}
.credibility-media{ z-index:0; overflow:hidden; background:var(--ink-2); }
.credibility-video{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  filter:saturate(.72) contrast(1.04);
}
.credibility-shade{
  z-index:1;
  background:rgba(7,17,28,.82);
}
.credibility-depth{
  z-index:1;
  background:
    linear-gradient(90deg,rgba(7,17,28,.34) 0%,rgba(7,17,28,.08) 48%,rgba(7,17,28,.3) 100%),
    linear-gradient(180deg,rgba(7,17,28,.32) 0%,transparent 30%,rgba(7,17,28,.38) 100%);
}
.credibility .wrap{ position:relative; z-index:2; }
.credibility-intro{ max-width:58rem; }
.credibility .eyebrow{ margin-bottom:clamp(1.5rem,2.5vw,2rem); }
.credibility-title{
  max-width:56rem;
  margin-bottom:clamp(1.45rem,2.4vw,1.9rem);
  font-size:clamp(2.4rem,4.15vw,4rem);
  font-weight:400;
  line-height:1.08;
  letter-spacing:-0.022em;
  text-wrap:balance;
}
.credibility-title-line{ display:block; }
.credibility-title-line + .credibility-title-line{ margin-top:.08em; }
.credibility-lead{
  max-width:46rem;
  color:var(--slate-soft);
  font-family:var(--font-body);
  font-size:clamp(1rem,1.25vw,1.125rem);
  line-height:1.72;
}
.credibility-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  margin-bottom:0;
  padding:0;
  list-style:none;
  margin-top:clamp(3rem,4.8vw,4.3rem);
  border-top:1px solid var(--line-on-navy);
  border-bottom:1px solid var(--line-on-navy);
}
.credibility-pillar{
  min-width:0;
  min-height:19rem;
  display:grid;
  grid-template-rows:auto minmax(5.3rem,auto) 1fr;
  align-content:start;
  padding:clamp(2.15rem,3vw,2.8rem) clamp(1.4rem,2.4vw,2.35rem) clamp(2.4rem,3.5vw,3.3rem);
  border-left:1px solid var(--line-on-navy);
  transition:background-color .25s ease;
}
.credibility-pillar:first-child{ border-left:0; padding-left:0; }
.credibility-number{
  display:flex;
  align-items:center;
  gap:.85rem;
  font-family:var(--font-mono);
  color:var(--gold-soft);
  font-size:.7rem;
  line-height:1;
  letter-spacing:.16em;
  margin-bottom:clamp(1.75rem,2.5vw,2.3rem);
}
.credibility-number::after{
  content:"";
  width:clamp(1.5rem,2.2vw,2.6rem);
  height:1px;
  background:var(--line-on-navy);
}
.credibility-pillar h3{
  align-self:start;
  max-width:15ch;
  margin-bottom:1.2rem;
  color:var(--ivory);
  font-family:var(--font-display);
  font-size:clamp(1.4rem,1.85vw,1.7rem);
  font-weight:500;
  line-height:1.2;
  text-wrap:balance;
  transition:color .25s ease;
}
.credibility-pillar p{
  align-self:start;
  max-width:29ch;
  color:var(--slate-soft);
  font-family:var(--font-body);
  font-size:.93rem;
  line-height:1.68;
}
@media (hover:hover) and (pointer:fine){
  .credibility-pillar:hover{ background:rgba(246,241,230,.018); }
  .credibility-pillar:hover h3{ color:#fff; }
}
.credibility-close{
  display:flex;
  align-items:center;
  gap:0.9rem;
  margin-top:1.6rem;
  color:var(--slate-soft);
  font-family:var(--font-body);
  font-size:0.86rem;
  letter-spacing:0.01em;
}
.credibility-close::before{
  content:"";
  width:1.8rem;
  height:1px;
  background:var(--gold-dim);
}
@media (max-width:960px){
  .credibility-video{ object-position:54% center; }
  .credibility-shade{ background:rgba(7,17,28,.86); }
  .credibility-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .credibility-pillar{ min-height:17rem; border-left:0; }
  .credibility-pillar:nth-child(even){ border-left:1px solid var(--line-on-navy); }
  .credibility-pillar:nth-child(n+3){ border-top:1px solid var(--line-on-navy); }
  .credibility-pillar:nth-child(3){ padding-left:0; }
}
@media (max-width:600px){
  .credibility{ padding-block:clamp(4rem,16vw,4.85rem); }
  .credibility-video{ object-position:58% center; }
  .credibility-shade{ background:rgba(7,17,28,.89); }
  .credibility-title{ font-size:clamp(2.05rem,10.5vw,3rem); line-height:1.1; }
  .credibility-title-line{ display:inline; }
  .credibility-title-line + .credibility-title-line{ margin-top:0; }
  .credibility-title-line + .credibility-title-line::before{ content:" "; }
  .credibility-grid{ grid-template-columns:1fr; margin-top:2.45rem; }
  .credibility-pillar{
    min-height:0;
    display:block;
    border-left:0 !important;
    border-top:1px solid var(--line-on-navy);
    padding:2rem 0 2.25rem;
  }
  .credibility-pillar:first-child{ border-top:0; }
  .credibility-pillar h3, .credibility-pillar p{ max-width:32rem; }
  .credibility-number{ margin-bottom:1.2rem; }
  .credibility-close{ align-items:flex-start; line-height:1.55; }
  .credibility-close::before{ margin-top:0.65em; flex:none; }
}
@media (prefers-reduced-motion:reduce){
  .credibility-video{ visibility:hidden; }
}
.ph{ color:var(--gold-soft); font-style:italic; }

/* ============================== PROBLEM ============================== */
.problem-grid{ display:grid; grid-template-columns: 1.1fr 1fr; gap:clamp(2.5rem,6vw,6rem); align-items:start; }
.problem-lines p{ font-size:var(--fs-md); font-family:var(--font-display); font-weight:400; color:var(--slate); line-height:1.5; margin-bottom:0.15rem; }
.problem-strong{
  margin-top:2.2rem; padding-top:2.2rem; border-top:1px solid var(--line-on-ivory);
  font-family:var(--font-display); font-size:var(--fs-lg); font-style:italic; color:var(--ink); max-width:32rem;
}
.problem-aside{ display:flex; flex-direction:column; gap:2rem; }
.problem-card{ background:var(--paper); border:1px solid var(--line-on-ivory); padding:2rem; }
.problem-card p{ font-size:var(--fs-sm); color:var(--slate); line-height:1.65; }
.problem-card .eyebrow{ margin-bottom:0.9rem; }

/* ============================== METHOD ============================== */
.method-strip{
  display:grid; grid-template-columns:repeat(4,1fr); gap:1px;
  background:var(--line-on-navy);
  border:1px solid var(--line-on-navy);
  margin-top:1rem;
}
.method-step{ background:var(--ink); padding:2.1rem 1.6rem 2.4rem; position:relative; }
.method-num{ font-family:var(--font-mono); font-size:1.7rem; color:var(--gold); display:block; margin-bottom:1.1rem; }
.method-step h3{ font-size:1.15rem; color:var(--ivory); margin-bottom:0.7rem; font-weight:500; }
.method-step p{ font-size:0.9rem; color:var(--slate-soft); line-height:1.6; }
@media (max-width:960px){ .method-strip{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px){ .method-strip{ grid-template-columns:1fr; } }

/* ============================== EXPERTISE ============================== */
.protection-heading{ display:flex; flex-direction:column; gap:1.5rem; margin-bottom:clamp(3rem,6vw,5rem); }
.protection-heading .section-title{ max-width:49rem; }
.protection-heading .section-title span{ display:block; }
.protection-heading .section-title span:last-child{ color:var(--gold-dim); font-style:italic; }
.protection-heading .section-dek{ max-width:40rem; }
.protection-layout{ display:grid; grid-template-columns:minmax(20rem,.78fr) minmax(0,1.22fr); gap:clamp(2.5rem,5vw,5rem); align-items:start; }
.protection-visual{
  position:sticky; top:7rem; min-height:41rem; padding:2rem;
  background:var(--ink); color:var(--ivory); border:1px solid var(--ink-3);
  display:flex; flex-direction:column;
}
.protection-visual-head{ display:flex; justify-content:space-between; align-items:flex-start; gap:1.5rem; padding-bottom:1.25rem; border-bottom:1px solid var(--line-on-navy); }
.protection-visual-head > span{ font-family:var(--font-mono); font-size:.72rem; line-height:1.45; letter-spacing:.09em; text-transform:uppercase; color:var(--gold-soft); max-width:12rem; }
.protection-visual-head small{ font-size:.68rem; line-height:1.5; color:var(--slate-soft); text-align:right; max-width:9rem; }
.protection-architecture{ position:relative; width:100%; max-width:30rem; aspect-ratio:1; margin:auto; }
.architecture-lines{ position:absolute; inset:0; width:100%; height:100%; overflow:visible; }
.architecture-line{ stroke:var(--gold-soft); stroke-width:1; opacity:.16; transition:opacity .4s ease,stroke-width .4s ease; }
.architecture-line.is-connected{ opacity:.65; }
.architecture-line.is-active{ opacity:1; stroke-width:1.8; }
.architecture-orbit{ fill:none; stroke:var(--line-on-navy); stroke-width:1; stroke-dasharray:2 7; }
.architecture-core{
  position:absolute; left:50%; top:49%; transform:translate(-50%,-50%);
  width:8.8rem; height:8.8rem; border:1px solid var(--gold-dim); border-radius:50%;
  background:var(--ink-2); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.65rem;
  box-shadow:0 0 0 10px rgba(217,198,160,.035);
}
.architecture-core svg{ width:2.5rem; height:2.5rem; color:var(--gold-soft); }
.architecture-core span{ font-family:var(--font-mono); font-size:.62rem; line-height:1.4; letter-spacing:.08em; text-transform:uppercase; text-align:center; color:var(--ivory); max-width:6.5rem; }
.architecture-node{
  position:absolute; transform:translate(-50%,-50%); z-index:2; border:0; padding:0;
  background:transparent; color:var(--slate-soft); opacity:.46;
  display:flex; flex-direction:column; align-items:center; gap:.4rem;
  font-family:var(--font-mono); font-size:.62rem; letter-spacing:.06em; text-transform:uppercase;
  transition:opacity .4s ease,color .4s ease,transform .4s ease;
}
.architecture-node--1{ left:22%; top:20%; }
.architecture-node--2{ left:77%; top:20%; }
.architecture-node--3{ left:84%; top:55%; }
.architecture-node--4{ left:70%; top:81%; }
.architecture-node--5{ left:25%; top:80%; }
.architecture-marker{
  width:2.9rem; height:2.9rem; border:1px solid var(--line-on-navy); border-radius:50%;
  display:flex; align-items:center; justify-content:center; background:var(--ink);
  color:var(--gold-soft); transition:background-color .4s ease,border-color .4s ease,color .4s ease;
}
.architecture-node.is-connected{ opacity:.74; }
.architecture-node.is-active{ opacity:1; color:var(--ivory); transform:translate(-50%,-55%); }
.architecture-node.is-active .architecture-marker{ background:var(--gold-soft); border-color:var(--gold-soft); color:var(--ink); }
.architecture-node:focus-visible{ outline-color:var(--gold-soft); outline-offset:5px; }
.protection-principle{ border-top:1px solid var(--line-on-navy); padding-top:1.25rem; color:var(--slate-soft); font-family:var(--font-display); font-size:1.05rem; font-style:italic; line-height:1.45; max-width:24rem; }
.expertise-list{ border-top:1px solid var(--line-on-ivory); }
.expertise-item{ position:relative; border-bottom:1px solid var(--line-on-ivory); }
.expertise-item::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:2px; background:var(--gold); transform:scaleY(0); transform-origin:top; transition:transform .4s ease; }
.expertise-item.is-active::before{ transform:scaleY(1); }
.expertise-item summary{
  list-style:none; cursor:pointer;
  display:grid; grid-template-columns:2.1rem 2.8rem minmax(0,1fr) 1.8rem; align-items:center; gap:1.15rem;
  padding:1.75rem 1rem; transition:background-color .35s ease;
}
.expertise-item.is-active summary{ background:linear-gradient(90deg,rgba(176,141,87,.09),rgba(176,141,87,0) 70%); }
.expertise-item summary::-webkit-details-marker{ display:none; }
.expertise-num{ font-family:var(--font-mono); font-size:var(--fs-sm); color:var(--gold-dim); width:2.2rem; flex:none; }
.expertise-icon{ display:block; width:2.6rem; height:2.6rem; flex:none; color:var(--gold-dim); transition:color .35s ease,transform .35s ease; }
.expertise-icon svg{ width:100%; height:100%; }
.expertise-item.is-active .expertise-icon{ color:var(--ink); transform:translateY(-2px); }
.expertise-heading{ display:flex; flex-direction:column; gap:.35rem; min-width:0; }
.expertise-heading h3{ font-size:clamp(1.3rem,2.1vw,1.72rem); }
.expertise-heading > span{ color:var(--slate); font-size:.84rem; line-height:1.45; }
.expertise-control{ width:1.35rem; height:1.35rem; color:var(--gold-dim); transition:transform .35s ease; }
.expertise-control svg{ width:100%; height:100%; }
.expertise-item[open] .expertise-control{ transform:rotate(90deg); }
.expertise-body{ padding:0 1.5rem 2.6rem 7.05rem; }
.expertise-intro{ color:var(--slate); font-size:.95rem; line-height:1.7; max-width:40rem; margin-bottom:1.8rem; }
.expertise-body-grid{ display:grid; gap:2rem; }
.expertise-body-grid--two{ grid-template-columns:minmax(0,1.35fr) minmax(12rem,.8fr); }
.expertise-body h4{ font-family:var(--font-mono); font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:var(--gold-dim); margin:0 0 .9rem; }
.expertise-points{ display:grid; gap:.48rem; }
.expertise-points--two{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:.5rem 1.4rem; }
.expertise-points li{ position:relative; padding-left:1rem; color:var(--slate); font-size:.82rem; line-height:1.45; }
.expertise-points li::before{ content:""; position:absolute; left:0; top:.65em; width:5px; height:1px; background:var(--gold-dim); }
.expertise-context{ margin-top:1.6rem; padding-top:1.35rem; border-top:1px solid var(--line-on-ivory); color:var(--slate); font-size:.88rem; line-height:1.65; }
.expertise-outcome{ margin-top:2rem; padding:1.25rem 1.35rem; border-left:2px solid var(--gold-dim); background:var(--ivory-2); }
.expertise-outcome > span{ display:block; font-family:var(--font-mono); font-size:.64rem; letter-spacing:.1em; text-transform:uppercase; color:var(--gold-dim); margin-bottom:.4rem; }
.expertise-outcome p{ font-family:var(--font-display); font-size:1.05rem; line-height:1.5; color:var(--ink); }
.expertise-next{ display:table; margin:3rem 0 0 auto; }
@media (max-width:1024px){
  .protection-layout{ grid-template-columns:1fr; }
  .protection-visual{ position:relative; top:auto; min-height:0; }
  .protection-architecture{ max-width:34rem; }
  .protection-principle{ max-width:34rem; }
}
@media (max-width:700px){
  .protection-heading{ margin-bottom:2.75rem; }
  .protection-visual{ padding:1.35rem; }
  .protection-visual-head small{ display:none; }
  .protection-architecture{ max-width:22rem; }
  .architecture-core{ width:7rem; height:7rem; }
  .architecture-core svg{ width:2rem; height:2rem; }
  .architecture-core span{ font-size:.54rem; }
  .architecture-node{ font-size:.55rem; }
  .architecture-marker{ width:2.35rem; height:2.35rem; }
  .expertise-item summary{ grid-template-columns:1.75rem 2.25rem minmax(0,1fr) 1.35rem; gap:.8rem; padding:1.45rem .65rem; }
  .expertise-icon{ width:2.15rem; height:2.15rem; }
  .expertise-heading h3{ font-size:1.25rem; }
  .expertise-body{ padding:0 .75rem 2.2rem .75rem; }
  .expertise-body-grid--two,.expertise-points--two{ grid-template-columns:1fr; }
  .expertise-outcome{ margin-top:1.6rem; }
  .expertise-next{ margin-left:0; }
}
@media (max-width:420px){
  .protection-visual-head{ padding-bottom:.85rem; }
  .protection-architecture{ max-width:17rem; }
  .architecture-core{ width:5.9rem; height:5.9rem; }
  .architecture-core svg{ width:1.7rem; height:1.7rem; }
  .architecture-marker{ width:2.15rem; height:2.15rem; }
  .architecture-node--3{ left:82%; }
  .architecture-node--4{ left:68%; }
  .architecture-node--5{ left:27%; }
  .architecture-node > span:last-child{ max-width:5.5rem; text-align:center; }
  .protection-principle{ font-size:.96rem; }
  .expertise-heading > span{ font-size:.78rem; }
}

/* ============================== SECTORS ============================== */
.sector-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line-on-ivory); border:1px solid var(--line-on-ivory); }
.sector-card{
  background:var(--paper); padding:2.4rem 1.7rem; min-height:15rem;
  display:flex; flex-direction:column; justify-content:flex-start;
  position:relative; overflow:hidden; isolation:isolate;
}
.sector-card:not(.featured):not(.card-cta){ padding:0; display:grid; grid-template-rows:6.7rem 1fr; }
.sector-media{ position:relative; overflow:hidden; background:var(--ivory-2); }
.sector-photo{ display:block; width:100%; height:100%; object-fit:cover; transition:transform .5s cubic-bezier(.22,.61,.36,1); }
.sector-card:not(.featured):not(.card-cta) .sector-content{ padding:1.05rem 1.45rem 1.35rem; }
.sector-card.featured{ grid-row:span 2; min-height:32rem; background:var(--ink); justify-content:flex-end; }
.sector-card.featured::after{ content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(180deg,rgba(6,22,36,.28) 0%,rgba(6,22,36,.5) 42%,rgba(6,22,36,.92) 100%); }
.sector-card.featured .sector-photo{ position:absolute; inset:0; z-index:0; }
.sector-card.featured .sector-content{ position:relative; z-index:2; }
.sector-card.featured .sector-name, .sector-card.featured .sector-desc{ color:var(--ivory); }
.sector-card.featured .sector-icon{ color:var(--gold-soft); width:3.4rem; height:3.4rem; }
.sector-icon{ display:block; width:2.4rem; height:2.4rem; color:var(--gold-dim); transition:transform .5s ease; }
.sector-icon svg{ width:100%; height:100%; display:block; }
.sector-card:hover .sector-icon{ transform:translateY(-4px); }
.sector-card:hover .sector-photo{ transform:scale(1.04); }
.sector-name{ font-family:var(--font-display); font-size:1.15rem; margin-top:0.8rem; }
.sector-card.featured .sector-name{ margin-top:1.6rem; }
.sector-desc{ font-size:0.82rem; color:var(--slate); margin-top:0.5rem; line-height:1.5; }
.sector-card.featured .sector-desc{ color:var(--slate-soft); }
.sector-photo--mining{ object-position:center 58%; }
.sector-photo--energy{ object-position:center 55%; }
.sector-photo--construction{ object-position:38% center; }
.sector-photo--manufacturing{ object-position:center 44%; }
.sector-photo--finance{ object-position:60% 38%; }
.sector-photo--telecom{ object-position:center 38%; }
.sector-photo--professional{ object-position:center 42%; }
.sector-line{ position:absolute; z-index:3; left:0; bottom:0; height:2px; width:0; background:var(--gold); transition:width .45s ease; }
.sector-card:hover .sector-line{ width:100%; }
.sector-card.card-cta{
  grid-column:span 2; background:var(--ivory-2); border:1px dashed var(--gold-dim);
  justify-content:center; align-items:flex-start; gap:0.7rem; text-align:left;
}
.sector-card.card-cta .sector-name{ margin-top:0; font-size:1.1rem; }
.sector-card.card-cta .sector-desc{ margin-top:0; }
.sector-card.card-cta .btn-line{ margin-top:0.4rem; }
@media (max-width:1080px){ .sector-grid{ grid-template-columns:repeat(2,1fr); } .sector-card.featured{ grid-row:span 1; min-height:15rem; } .sector-card.featured .sector-icon{ width:2.4rem; height:2.4rem; } }
@media (max-width:560px){ .sector-grid{ grid-template-columns:1fr; } .sector-card.card-cta{ grid-column:span 1; } }

/* ============================== RISK CHAIN ============================== */
.risk-chain-section{ overflow:clip; }
.risk-chain-intro{ align-items:flex-start; }
.risk-chain-intro .section-kicker{ flex:1 1 30rem; }
.risk-chain-intro-copy{ flex:0 1 34rem; }
.risk-chain-context{
  display:flex; align-items:center; gap:.75rem; margin-bottom:1rem;
  font-family:var(--font-mono); font-size:var(--fs-2xs); letter-spacing:.1em;
  text-transform:uppercase; color:var(--slate); font-weight:500;
}
.risk-chain-context::before{ content:""; width:2.4rem; height:1px; background:var(--gold-dim); flex:none; }
.risk-chain-layout{
  display:grid; grid-template-columns:minmax(0,42fr) minmax(0,58fr);
  gap:clamp(2.5rem,5vw,5.5rem); align-items:start;
}
.risk-chain-navigation{ min-width:0; }
.risk-chain-column-label,
.risk-perspective-label,
.risk-perspective-group h4,
.risk-perspective-advisory h4,
.risk-scenario-eyebrow,
.risk-scenario-source span,
.risk-scenario-consequence small,
.risk-scenario-insight h4,
.risk-scenario-advisory h4,
.risk-scenario-intervention-label{
  font-family:var(--font-mono); font-size:.7rem; line-height:1.4;
  letter-spacing:.11em; text-transform:uppercase; color:var(--slate); font-weight:500;
}
.risk-chain-column-label{ margin-bottom:1.2rem; padding-bottom:.85rem; border-bottom:1px solid var(--line-on-ivory); }
.risk-chain-stages{ position:relative; list-style:none; margin:0; padding:0; }
.risk-chain-stages::before{
  content:""; position:absolute; z-index:0; left:4.55rem; top:2.5rem; bottom:2.5rem;
  width:1px; background:rgba(71,80,94,.24);
}
.risk-chain-stages::after{
  content:""; position:absolute; z-index:0; left:4.55rem; top:var(--journey-line-start,2.5rem);
  width:1px; height:var(--journey-line-progress,0); background:rgba(140,111,69,.82);
  transition:height .3s ease;
}
.risk-chain-stage{ position:relative; margin-bottom:.55rem; }
.risk-chain-stage:last-child{ margin-bottom:0; }
.risk-chain-stage-button{
  position:relative; z-index:1; width:100%; min-height:4.75rem;
  display:grid; grid-template-columns:1.8rem 2.75rem minmax(0,1fr); align-items:center;
  gap:.75rem; padding:.55rem 1rem .55rem .65rem; text-align:left;
  border:1px solid var(--line-on-ivory); border-radius:var(--radius);
  background:rgba(251,248,241,.68); color:var(--ink);
  transition:background-color .32s ease,border-color .32s ease,color .32s ease,box-shadow .32s ease;
}
.risk-chain-stage-button:hover{ background:var(--paper); border-color:rgba(11,22,38,.34); }
.risk-chain-stage-button:focus-visible{
  outline:none; box-shadow:0 0 0 3px var(--ivory),0 0 0 5px var(--ink);
}
.risk-chain-number{ font-family:var(--font-mono); font-size:.7rem; letter-spacing:.05em; color:var(--slate); }
.risk-chain-icon{
  width:2.75rem; height:2.75rem; border-radius:50%; display:flex; align-items:center; justify-content:center;
  border:1px solid rgba(11,22,38,.26); background:var(--paper); color:var(--ink);
  transition:background-color .32s ease,border-color .32s ease,color .32s ease;
}
.risk-chain-icon svg{ width:1.35rem; height:1.35rem; display:block; }
.risk-chain-stage-title{ font-family:var(--font-display); font-size:1.12rem; line-height:1.25; font-weight:500; }
.risk-chain-stage.is-upstream .risk-chain-stage-button{
  background:rgba(251,248,241,.9); border-color:rgba(11,22,38,.26);
}
.risk-chain-stage.is-upstream .risk-chain-number{ color:var(--gold-dim); }
.risk-chain-stage.is-upstream .risk-chain-icon{
  background:var(--ivory-2); border-color:rgba(140,111,69,.58); color:var(--gold-dim);
}
.risk-chain-stage.is-downstream .risk-chain-stage-button{
  background:rgba(251,248,241,.46); border-color:rgba(11,22,38,.1); color:var(--slate);
}
.risk-chain-stage.is-downstream .risk-chain-icon{
  background:rgba(251,248,241,.74); border-color:rgba(71,80,94,.2); color:var(--slate);
}
.risk-chain-stage.is-active .risk-chain-stage-button{
  background:var(--ink); border-color:var(--ink); color:var(--ivory);
  box-shadow:inset 3px 0 0 var(--gold),0 0 0 1px rgba(11,22,38,.1);
}
.risk-chain-stage.is-active .risk-chain-number{ color:var(--gold-soft); }
.risk-chain-stage.is-active .risk-chain-icon{ background:var(--ink-2); border-color:var(--gold-soft); color:var(--gold-soft); }
.risk-chain-scenario-state{
  grid-column:3; display:block; width:max-content; max-width:100%; margin-top:-.2rem;
  font-family:var(--font-mono); font-size:.6rem; line-height:1.35; letter-spacing:.09em;
  text-transform:uppercase; color:var(--gold-dim); font-weight:600;
}
.risk-chain-stage.is-scenario-origin .risk-chain-scenario-state{ color:var(--gold-soft); }
.risk-chain-stage.is-scenario-affected .risk-chain-stage-button{
  border-color:rgba(140,111,69,.7); box-shadow:inset 3px 0 0 rgba(140,111,69,.72);
  color:var(--ink); background:rgba(251,248,241,.94);
}
.risk-chain-stage.is-scenario-affected .risk-chain-icon{
  border-color:rgba(140,111,69,.62); background:var(--ivory-2); color:var(--gold-dim);
}
.risk-chain-fallback-description{
  margin:.75rem 1rem 1.1rem 4.55rem; color:var(--slate); font-size:var(--fs-sm); line-height:1.6;
}
.js .risk-chain-fallback-description{ display:none; }

.risk-chain-panel-slot{ min-width:0; }
.risk-perspective{
  min-height:41.5rem; padding:clamp(2rem,3.6vw,3.25rem);
  background:var(--paper); border:1px solid var(--line-on-ivory); border-top:3px solid var(--ink);
  box-shadow:0 1.25rem 3.5rem rgba(11,22,38,.06); scroll-margin-top:7rem;
}
.risk-perspective-content{
  opacity:1; transform:translateY(0);
  transition:opacity .16s ease,transform .16s ease;
}
.risk-perspective-content.is-changing{ opacity:0; transform:translateY(8px); }
.risk-perspective-header{ display:flex; align-items:flex-start; justify-content:space-between; gap:2rem; margin-bottom:1.8rem; }
.risk-perspective-label{ margin-bottom:.4rem; }
.risk-perspective-number{ font-family:var(--font-mono); font-size:var(--fs-sm); color:var(--ink); letter-spacing:.08em; }
.risk-perspective-icon{
  width:3.75rem; height:3.75rem; display:flex; align-items:center; justify-content:center;
  border:1px solid var(--line-on-ivory); color:var(--gold-dim); flex:none;
}
.risk-perspective-icon svg{ width:2rem; height:2rem; display:block; }
.risk-perspective-title{ font-size:clamp(1.8rem,3vw,2.6rem); max-width:30rem; }
.risk-perspective-description{ margin-top:1rem; max-width:38rem; color:var(--slate); font-size:1.05rem; line-height:1.65; }
.risk-perspective-lists{
  display:grid; grid-template-columns:1fr 1fr; gap:clamp(1.75rem,4vw,3.5rem);
  margin-top:2.35rem; padding-top:1.8rem; border-top:1px solid var(--line-on-ivory);
}
.risk-perspective-group h4{ color:var(--ink); margin-bottom:1rem; }
.risk-perspective-group li{ position:relative; padding-left:1rem; margin-bottom:.5rem; color:var(--slate); font-size:var(--fs-sm); line-height:1.5; }
.risk-perspective-group li::before{ content:"—"; position:absolute; left:0; color:var(--gold-dim); }
.risk-perspective-advisory{
  margin-top:2.15rem; padding:1.5rem 1.65rem 1.55rem;
  background:var(--ivory); border-left:3px solid var(--gold);
}
.risk-perspective-advisory h4{ color:var(--ink); margin-bottom:.7rem; }
.risk-perspective-advisory p{ color:var(--slate); font-size:var(--fs-sm); line-height:1.65; }
.risk-perspective-navigation{
  display:flex; align-items:flex-start; justify-content:space-between; gap:1.5rem;
  margin-top:1.6rem; padding-top:1.15rem; border-top:1px solid var(--line-on-ivory);
}
.risk-perspective-navigation[hidden],
.risk-perspective-nav-button[hidden]{ display:none; }
.risk-perspective-nav-button{
  display:flex; flex-direction:column; align-items:flex-start; max-width:48%; padding:.3rem 0;
  background:none; border:0; color:var(--ink); text-align:left;
}
.risk-perspective-nav-button--next{ margin-left:auto; align-items:flex-end; text-align:right; }
.risk-perspective-nav-button span{
  font-family:var(--font-mono); font-size:.65rem; letter-spacing:.1em; text-transform:uppercase; color:var(--gold-dim);
}
.risk-perspective-nav-button strong{
  margin-top:.22rem; font-family:var(--font-display); font-size:.98rem; line-height:1.3; font-weight:500;
  text-decoration:underline; text-decoration-color:transparent; text-underline-offset:.28rem;
  transition:text-decoration-color .25s ease;
}
.risk-perspective-nav-button:hover strong{ text-decoration-color:var(--gold-dim); }
.risk-perspective-nav-button:focus-visible{ outline:2px solid var(--ink); outline-offset:5px; }

.risk-scenario-entry{
  margin-top:1.55rem; padding:1.25rem 0 .1rem; border-top:1px solid var(--line-on-ivory);
}
.risk-scenario-entry[hidden],
.risk-scenario[hidden]{ display:none; }
.risk-scenario-entry p{ max-width:34rem; color:var(--slate); font-size:var(--fs-sm); line-height:1.55; }
.risk-scenario-open{
  display:inline-flex; align-items:center; gap:.75rem; margin-top:.75rem; padding:.35rem 0;
  border:0; border-bottom:1px solid var(--gold-dim); background:none; color:var(--ink);
  font-family:var(--font-mono); font-size:.68rem; line-height:1.4; letter-spacing:.09em;
  text-transform:uppercase; text-align:left;
}
.risk-scenario-open span:last-child{ color:var(--gold-dim); transition:transform .2s ease; }
.risk-scenario-open:hover span:last-child{ transform:translateX(.25rem); }
.risk-scenario-open:focus-visible,
.risk-scenario-close:focus-visible{ outline:2px solid var(--ink); outline-offset:5px; }

.risk-perspective.is-scenario-active{ min-height:0; }
.risk-scenario{ color:var(--ink); }
.risk-scenario-header{ display:flex; align-items:flex-start; justify-content:space-between; gap:1.5rem; }
.risk-scenario-eyebrow{ margin-bottom:.7rem; color:var(--gold-dim); }
.risk-scenario-title{ max-width:30rem; font-size:clamp(1.65rem,2.6vw,2.35rem); line-height:1.14; }
.risk-scenario-close{
  display:flex; align-items:center; gap:.55rem; flex:none; padding:.4rem 0;
  border:0; background:none; color:var(--slate); font-family:var(--font-mono);
  font-size:.62rem; letter-spacing:.08em; text-transform:uppercase;
}
.risk-scenario-close span:last-child{ font-family:var(--font-body); font-size:1.3rem; line-height:.75; color:var(--gold-dim); }

.risk-scenario-source{
  display:grid; grid-template-columns:minmax(0,1fr) 2.8rem minmax(0,1fr); align-items:center;
  margin-top:1.8rem; padding:1.05rem; background:var(--ivory); border:1px solid var(--line-on-ivory);
}
.risk-scenario-origin,
.risk-scenario-event{ position:relative; min-width:0; padding:.25rem .4rem; }
.risk-scenario-origin span,
.risk-scenario-event span:not(.risk-scenario-event-diamond){ display:block; margin-bottom:.28rem; color:var(--slate); }
.risk-scenario-origin strong,
.risk-scenario-event strong{ display:block; font-family:var(--font-display); font-size:1.18rem; font-weight:500; line-height:1.25; }
.risk-scenario-origin::before{
  content:""; position:absolute; left:-.1rem; top:.25rem; bottom:.25rem; width:2px; background:var(--ink);
}
.risk-scenario-source-link{ height:1px; background:var(--gold-dim); }
.risk-scenario-event{ padding-left:1.75rem; opacity:0; transform:translateY(6px); transition:opacity .28s ease,transform .28s ease; }
.risk-scenario-event.is-revealed{ opacity:1; transform:none; }
.risk-scenario-event-diamond{
  position:absolute; left:.15rem; top:50%; width:.7rem; height:.7rem;
  border:1px solid var(--gold-dim); background:var(--paper); transform:translateY(-50%) rotate(45deg);
}
.risk-scenario-qualification{ margin:.85rem 0 0; color:var(--slate); font-size:.78rem; line-height:1.55; font-style:italic; }

.risk-scenario-map{ position:relative; margin-top:1.35rem; padding:.65rem 0; }
.risk-scenario-connectors{ position:absolute; inset:0; width:100%; height:100%; overflow:visible; pointer-events:none; }
.risk-scenario-connector{
  fill:none; stroke:rgba(140,111,69,.82); stroke-width:1.25; vector-effect:non-scaling-stroke;
  stroke-dasharray:var(--connector-length,1000); stroke-dashoffset:var(--connector-length,1000);
  transition:stroke-dashoffset .3s ease;
}
.risk-scenario-connector.is-revealed{ stroke-dashoffset:0; }
.risk-scenario-consequences{ position:relative; z-index:1; display:flex; flex-direction:column; gap:1.15rem; list-style:none; margin:0; padding:1rem 0; }
.risk-scenario-consequence{
  position:relative; display:grid; grid-template-columns:2rem minmax(0,1fr); width:82%; min-height:4.1rem;
  align-items:center; padding:.75rem 1rem; background:var(--paper); border:1px solid var(--line-on-ivory);
  opacity:0; transform:translateY(8px); transition:opacity .28s ease,transform .28s ease,border-color .28s ease;
}
.risk-scenario-consequence:nth-child(even){ align-self:flex-end; }
.risk-scenario-consequence.is-revealed{ opacity:1; transform:none; border-color:rgba(140,111,69,.42); }
.risk-scenario-relation{
  position:absolute; top:-.82rem; left:.15rem; padding:0 .35rem; background:var(--paper);
  color:var(--slate); font-size:.64rem; line-height:1.3; font-style:italic;
}
.risk-scenario-step-number{ grid-row:1 / span 2; font-family:var(--font-mono); color:var(--gold-dim); font-size:.68rem; }
.risk-scenario-consequence small{ color:var(--slate); font-size:.58rem; }
.risk-scenario-consequence strong{ grid-column:2; font-family:var(--font-display); font-size:1.05rem; line-height:1.25; font-weight:500; }

.risk-scenario-conclusion{ opacity:0; transform:translateY(8px); transition:opacity .32s ease,transform .32s ease; }
.risk-scenario-conclusion.is-revealed{ opacity:1; transform:none; }
.risk-scenario-insight{ margin-top:1.1rem; padding:1.15rem 0; border-top:1px solid var(--ink); border-bottom:1px solid var(--line-on-ivory); }
.risk-scenario-insight h4{ margin-bottom:.55rem; color:var(--gold-dim); }
.risk-scenario-insight p{ max-width:34rem; font-family:var(--font-display); font-size:1.24rem; line-height:1.4; }
.risk-scenario-advisory{ margin-top:1.25rem; padding:1.35rem 1.45rem; background:var(--ivory); border-left:3px solid var(--gold); }
.risk-scenario-advisory h4{ margin-bottom:.65rem; color:var(--ink); }
.risk-scenario-advisory > p{ color:var(--slate); font-size:var(--fs-sm); line-height:1.62; }
.risk-scenario-intervention-label{ margin-top:1.25rem; color:var(--slate); }
.risk-scenario-interventions{ display:flex; flex-wrap:wrap; gap:.55rem 1rem; list-style:none; margin:.8rem 0 0; padding:0; }
.risk-scenario-interventions li{ display:flex; align-items:center; gap:1rem; padding:.15rem 0; color:var(--ink); font-family:var(--font-mono); font-size:.69rem; line-height:1.5; letter-spacing:.065em; text-transform:uppercase; }
.risk-scenario-interventions li:not(:last-child)::after{ content:"→"; color:var(--gold-dim); }

@media (min-width:961px) and (min-height:760px){
  .risk-chain-panel-slot{ position:sticky; top:7rem; align-self:start; }
  .risk-chain-stage.is-active .risk-chain-stage-button::after{
    content:""; position:absolute; top:50%; right:-2.35rem; width:1.75rem;
    border-top:1px solid var(--gold-dim); transform:translateY(-50%);
  }
}
@media (max-width:960px){
  .risk-chain-layout{ grid-template-columns:1fr; gap:2.75rem; }
  .risk-chain-navigation{ width:100%; max-width:42rem; }
  .risk-perspective{ min-height:0; }
  .risk-scenario-connectors{ display:none; }
  .risk-scenario-consequences{ gap:.8rem; padding:.75rem 0 0 1.35rem; }
  .risk-scenario-consequences::before{
    content:""; position:absolute; left:.34rem; top:0; bottom:1.4rem; width:1px; background:rgba(140,111,69,.58);
  }
  .risk-scenario-consequence,
  .risk-scenario-consequence:nth-child(even){ width:100%; align-self:stretch; }
  .risk-scenario-consequence::before{
    content:"↓"; position:absolute; left:-1.35rem; top:-.4rem; color:var(--gold-dim);
    font-family:var(--font-mono); font-size:.72rem;
  }
  .risk-scenario-relation{ left:.05rem; }
}
@media (max-width:640px){
  .risk-chain-intro-copy{ flex-basis:100%; }
  .risk-chain-layout{ display:block; }
  .risk-chain-column-label{ margin-bottom:.85rem; }
  .risk-chain-stages::before{ left:3.95rem; top:2.35rem; bottom:2.35rem; }
  .risk-chain-stage{ margin-bottom:.45rem; }
  .risk-chain-stage-button{
    min-height:4.45rem; grid-template-columns:1.55rem 2.55rem minmax(0,1fr);
    gap:.55rem; padding:.5rem .7rem .5rem .55rem;
  }
  .risk-chain-icon{ width:2.55rem; height:2.55rem; }
  .risk-chain-stage-title{ font-size:1.02rem; }
  .risk-chain-panel-slot:empty{ display:none; }
  .risk-chain-stage > .risk-perspective{ margin:.65rem 0 1.15rem; }
  .risk-perspective{ padding:1.5rem 1.25rem 1.35rem; box-shadow:none; }
  .risk-perspective-header{ margin-bottom:1.25rem; }
  .risk-perspective-icon{ width:3.1rem; height:3.1rem; }
  .risk-perspective-icon svg{ width:1.65rem; height:1.65rem; }
  .risk-perspective-title{ font-size:1.75rem; }
  .risk-perspective-description{ font-size:var(--fs-sm); }
  .risk-perspective-lists{ grid-template-columns:1fr; gap:1.5rem; margin-top:1.7rem; padding-top:1.4rem; }
  .risk-perspective-advisory{ margin-top:1.65rem; padding:1.2rem 1.15rem; }
  .risk-perspective-navigation{ gap:1rem; }
  .risk-perspective-nav-button{ max-width:47%; }
  .risk-scenario-header{ gap:.75rem; }
  .risk-scenario-title{ font-size:1.55rem; }
  .risk-scenario-close span:first-child{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
  .risk-scenario-close{ padding:.35rem; }
  .risk-scenario-close span:last-child{ font-size:1.5rem; }
  .risk-scenario-source{ grid-template-columns:1fr; gap:.7rem; padding:.9rem; }
  .risk-scenario-source-link{ width:1px; height:1.2rem; margin-left:.55rem; }
  .risk-scenario-event{ padding-left:1.75rem; }
  .risk-scenario-consequence{ grid-template-columns:1.8rem minmax(0,1fr); padding:.7rem .8rem; }
  .risk-scenario-insight p{ font-size:1.12rem; }
  .risk-scenario-advisory{ padding:1.15rem; }
  .risk-scenario-interventions{ flex-direction:column; align-items:flex-start; gap:.45rem; }
  .risk-scenario-interventions li:not(:last-child)::after{ content:"↓"; margin-left:.15rem; }
}

/* ============================== CLAIMS ============================== */
.claims-journey{ display:grid; gap:1.5rem; margin-top:2.2rem; }
.claims-intro{ display:grid; gap:0.75rem; max-width:42rem; }
.claims-kicker{ font-family:var(--font-mono); font-size:var(--fs-xs); letter-spacing:0.12em; text-transform:uppercase; color:var(--gold-soft); }
.claims-intro h3{ margin:0; font-family:var(--font-display); font-size:clamp(1.35rem,2vw,2rem); line-height:1.2; color:var(--ivory); }
.claims-flow{ display:grid; grid-template-columns:repeat(7, minmax(0, 1fr)); gap:0; border-top:1px solid var(--line-on-navy); border-bottom:1px solid var(--line-on-navy); }
.claims-step{ display:flex; flex-direction:column; gap:0.8rem; padding:1.45rem 1rem 1.6rem; border-left:1px solid var(--line-on-navy); background:linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0)); }
.claims-step:first-child{ border-left:none; }
.claims-step .n{ font-family:var(--font-mono); font-size:var(--fs-xs); color:var(--gold-soft); display:block; }
.claims-step h4{ margin:0; font-family:var(--font-display); font-size:1.02rem; color:var(--ivory); line-height:1.35; }
.claims-step p{ margin:0; font-size:0.9rem; color:var(--slate-soft); line-height:1.6; }
.claims-footer{ display:flex; flex-direction:column; align-items:flex-start; gap:1.2rem; margin-top:1.8rem; }
.claims-footer .pull-quote{ margin:0; }
@media (max-width:1279px){
  .claims-flow{ grid-template-columns:repeat(8, minmax(0, 1fr)); }
  .claims-step{ grid-column:span 2; }
  .claims-step:nth-child(n + 5){ border-top:1px solid var(--line-on-navy); }
  .claims-step:nth-child(5){ grid-column:2 / span 2; }
  .claims-step:nth-child(7){ border-right:1px solid var(--line-on-navy); }
}
@media (max-width:767px){
  .claims-flow{ grid-template-columns:1fr; }
  .claims-step, .claims-step:nth-child(5), .claims-step:nth-child(7){ grid-column:auto; border-left:none; border-right:none; border-top:1px solid var(--line-on-navy); }
  .claims-step:first-child{ border-top:none; }
}

/* ============================== REVIEW / FORM ============================== */
.review-grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(2.5rem,6vw,5rem); align-items:start; }
.review-checklist{ display:grid; grid-template-columns:1fr 1fr; gap:0.9rem 1.8rem; margin-top:2rem; }
.review-checklist div{ font-size:var(--fs-sm); color:var(--slate-soft); padding-left:1.1rem; position:relative; line-height:1.5; }
.review-checklist div::before{ content:"—"; position:absolute; left:0; color:var(--gold-soft); }
.review-ctas{ display:flex; gap:1.1rem; flex-wrap:wrap; margin-top:2.6rem; }

.form-panel{
  background:#F5F1E8;
  border:1px solid rgba(11,22,38,0.18);
  box-shadow:0 22px 40px rgba(11,22,38,0.08);
  padding:clamp(1.8rem,3vw,2.8rem);
  color:var(--ink);
}
.form-panel-header{ margin-bottom:1.5rem; }
.form-panel-title{ font-size:clamp(1.35rem,2vw,1.8rem); color:var(--ink); margin-bottom:0.45rem; }
.form-panel-subtitle{ color:var(--slate); font-size:0.92rem; line-height:1.6; }
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:1.3rem; }
.field{ margin-bottom:1.3rem; }
.field.full{ grid-column:1 / -1; }
.field label{ display:block; font-family:var(--font-mono); font-size:0.68rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--ink); margin-bottom:0.55rem; }
.field input, .field select, .field textarea{
  width:100%; background:transparent; border:none; border-bottom:1px solid rgba(11,22,38,0.28);
  color:var(--ink); padding:0.7rem 0.2rem; font-size:0.95rem; transition:border-color .25s ease, box-shadow .25s ease;
}
.field select{ appearance:none; -webkit-appearance:none; background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%230B1626'><path d='M5 8l5 5 5-5'/></svg>"); background-repeat:no-repeat; background-position:right center; background-size:14px; }
.field select option{ background:var(--paper); color:var(--ink); }
.field textarea{ resize:vertical; min-height:5.5rem; font-family:var(--font-body); line-height:1.5; }
.field input::placeholder, .field textarea::placeholder{ color:rgba(11,22,38,0.58); opacity:1; }
.field input:hover, .field select:hover, .field textarea:hover{ border-bottom-color:rgba(11,22,38,0.45); }
.field input:focus, .field select:focus, .field textarea:focus{ border-color:var(--gold); box-shadow:inset 0 -1px 0 var(--gold); outline:none; }
.confidential-note{
  font-size:0.78rem; color:var(--ink); margin:1.5rem 0 1.6rem; display:flex; gap:0.6rem; align-items:flex-start;
  line-height:1.5; padding:0.8rem 0.85rem; border:1px solid rgba(11,22,38,0.12); background:rgba(11,22,38,0.03);
}
.confidential-note svg{ width:1rem; height:1rem; flex:none; margin-top:0.15rem; color:var(--gold-dim); }
.submit-btn{ width:100%; justify-content:center; }
.form-success{ display:none; text-align:center; padding:3rem 1rem; }
.form-success.is-visible{ display:block; }
.form-success svg{ width:2.6rem; height:2.6rem; color:var(--gold-dim); margin-bottom:1.3rem; }
.form-success h3{ color:var(--ink); font-size:1.3rem; margin-bottom:0.7rem; }
.form-success p{ color:var(--slate); font-size:0.92rem; max-width:26rem; margin-inline:auto; line-height:1.6; }
.review-form{ display:block; }
.review-form.is-hidden{ display:none; }
.consent-field{ display:flex; align-items:flex-start; gap:0.7rem; margin:0.3rem 0 1.3rem; }
.consent-field input{ width:auto; margin-top:0.3rem; accent-color:var(--gold); }
.consent-field label{ color:var(--slate); font-size:0.8rem; line-height:1.5; }
.consent-field a{ color:var(--gold-dim); text-decoration:underline; text-underline-offset:2px; }

/* ============================== PUBLICATIONS ============================== */
.pub-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:0; border-top:1px solid var(--line-on-ivory); }
.pub-card{ padding:2.4rem 2rem 2.4rem 0; border-bottom:1px solid var(--line-on-ivory); border-right:1px solid var(--line-on-ivory); display:flex; flex-direction:column; gap:1rem; }
.pub-card:nth-child(3n){ border-right:none; }
.pub-meta{ font-family:var(--font-mono); font-size:var(--fs-2xs); letter-spacing:0.06em; text-transform:uppercase; color:var(--gold-dim); }
.pub-card h3{ font-size:1.2rem; font-weight:500; line-height:1.35; }
.pub-card p{ font-size:0.88rem; color:var(--slate); line-height:1.6; flex:1; }
.pub-status{ align-self:flex-start; font-family:var(--font-mono); font-size:var(--fs-2xs); color:var(--slate); letter-spacing:0.06em; text-transform:uppercase; }
@media (max-width:960px){ .pub-grid{ grid-template-columns:1fr 1fr; } .pub-card:nth-child(2n){ border-right:none; } .pub-card:nth-child(3n){ border-right:1px solid var(--line-on-ivory); } }
@media (max-width:640px){ .pub-grid{ grid-template-columns:1fr; } .pub-card{ border-right:none !important; padding-right:0; } }

/* ============================== ABOUT ============================== */
.about-grid{ display:grid; grid-template-columns:0.9fr 1.1fr; gap:clamp(2.5rem,6vw,5rem); align-items:start; }
.about-pillars{ display:grid; grid-template-columns:1fr 1fr; gap:1.6rem 2rem; margin-top:2.2rem; }
.about-pillars div{ font-family:var(--font-mono); font-size:0.75rem; letter-spacing:0.03em; color:var(--gold-dim); border-top:1px solid var(--line-on-ivory); padding-top:0.9rem; text-transform:uppercase; }
.about-copy p{ font-size:var(--fs-md); font-family:var(--font-display); color:var(--slate); line-height:1.6; }
.about-copy p + p{ margin-top:1.2rem; }
@media (max-width:800px){ .about-grid{ grid-template-columns:1fr; } }

/* ============================== FINAL CTA ============================== */
.final-cta{ text-align:center; padding-block:5rem; }
.final-cta .philosophy{ font-family:var(--font-display); font-style:italic; font-size:var(--fs-lg); color:var(--gold-soft); margin-bottom:1.6rem; }
.pull-quote{ font-family:var(--font-display); font-style:italic; font-size:var(--fs-lg); color:var(--gold-soft); max-width:36rem; line-height:1.4; }
.final-cta h2{ font-size:var(--fs-xl); max-width:34rem; margin-inline:auto; margin-bottom:2.2rem; color:var(--ivory); }
.final-cta .btn-row{ display:flex; justify-content:center; gap:1.1rem; flex-wrap:wrap; }

/* ============================== FOOTER ============================== */
.site-footer{ background:var(--ink); color:var(--slate-soft); padding-top:4.5rem; }
.footer-top{ display:grid; grid-template-columns:1.4fr 1fr 1.2fr; gap:3rem; padding-bottom:3.5rem; border-bottom:1px solid var(--line-on-navy); }
.footer-brand .brand{ width:max-content; max-width:100%; margin-bottom:1rem; }
.footer-logo .brand-logo-image{ width:8.125rem; }
.footer-brand p{ font-size:0.9rem; max-width:22rem; line-height:1.6; }
.footer-col h4{ font-family:var(--font-mono); font-size:0.7rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--gold-soft); margin-bottom:1.2rem; }
.footer-col ul{ display:flex; flex-direction:column; gap:0.75rem; }
.footer-col a{ font-size:0.9rem; }
.footer-col a:hover{ color:var(--ivory); }
.footer-contact li{ font-size:0.9rem; line-height:1.6; }
.footer-contact .contact-nowrap, .footer-contact a[href^="tel:"]{ white-space:nowrap; }
.footer-contact a[href^="mailto:"]{ overflow-wrap:anywhere; }
.footer-contact .ph{ color:var(--gold-soft); font-style:italic; }
.footer-bottom{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:1rem; padding-block:1.8rem; font-size:0.78rem; }
.footer-bottom ul{ display:flex; gap:1.6rem; }
.footer-referral{
  display:flex; justify-content:center; align-items:baseline; flex-wrap:wrap; gap:0.45rem 0.8rem;
  padding:1.35rem 0 1.6rem; border-top:1px solid var(--line-on-navy);
  font-size:0.78rem; line-height:1.5; text-align:center; color:var(--slate-soft);
}
.footer-referral-question{ font-weight:400; }
.footer-referral-link{
  color:var(--gold-soft); font-weight:600; letter-spacing:0.01em;
  text-underline-offset:0.22em; transition:color 180ms ease;
}
.footer-referral-link:hover{ color:var(--ivory); }
@media (max-width:800px){ .footer-top{ grid-template-columns:1fr; gap:2.4rem; } }

/* ---------- shared responsive column collapses ---------- */
@media (max-width:900px){
  .problem-grid, .review-grid, .about-grid{ grid-template-columns:1fr; }
  .form-row{ grid-template-columns:1fr; }
}

/* ============================== INTERIOR PAGES ============================== */
.page-header{
  background:var(--ink); color:var(--ivory);
  padding: clamp(8rem,16vw,10rem) 0 clamp(3rem,6vw,4rem);
}
.page-header .section-dek{ margin-top:1.2rem; color:var(--slate-soft); }
.breadcrumb{ font-family:var(--font-mono); font-size:var(--fs-2xs); letter-spacing:0.1em; text-transform:uppercase; color:var(--slate-soft); margin-bottom:1.2rem; }
.breadcrumb a{ color:var(--gold-soft); }
.breadcrumb a:hover{ opacity:0.75; }

.photo-frame{
  aspect-ratio:4/5; border:1px dashed var(--gold-dim); background:var(--paper);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:0.9rem;
  color:var(--gold-dim); text-align:center; padding:1.5rem;
}
.photo-frame.on-dark{ border-color:var(--gold-soft); background:var(--ink-2); color:var(--gold-soft); }
.photo-frame--portrait{ padding:0; overflow:hidden; border-style:solid; background:var(--ink-2); }
.photo-frame--portrait img{ width:100%; height:100%; display:block; object-fit:cover; object-position:center; }
.photo-frame svg{ width:2.4rem; height:2.4rem; }
.photo-frame span{ font-family:var(--font-mono); font-size:0.62rem; letter-spacing:0.06em; text-transform:uppercase; line-height:1.5; }
.profile-monogram{ font-family:var(--font-display); font-size:clamp(2rem,5vw,3.4rem); color:var(--gold-dim); letter-spacing:0.06em; }

.dg-grid{ display:grid; grid-template-columns:0.75fr 1.25fr; gap:clamp(2.5rem,6vw,5rem); align-items:start; }
.dg-grid .photo-frame{ max-width:16rem; }
.dg-name{ font-family:var(--font-display); font-size:1.7rem; margin-top:1.6rem; }
.dg-role{ font-family:var(--font-mono); font-size:0.72rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--gold-dim); margin-top:0.35rem; }
.dg-contact{ margin-top:0.55rem; font-size:0.82rem; }
.dg-contact a{ color:var(--gold-dim); text-decoration:underline; text-underline-offset:0.2em; }
.dg-contact a:hover{ color:var(--ink); }
.dg-quote{ font-family:var(--font-display); font-style:italic; font-size:var(--fs-lg); margin:1.8rem 0; color:var(--ink); max-width:30rem; }
.dg-bio p{ font-size:var(--fs-base); color:var(--slate); line-height:1.75; }
.dg-bio p + p{ margin-top:1.2rem; }

.mv-grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,5vw,4rem); }
.mv-card h3{ font-size:1.35rem; margin-bottom:1.1rem; }
.mv-card p{ font-size:var(--fs-base); color:var(--slate); line-height:1.75; }
.mv-card p + p{ margin-top:1rem; }
.mv-card .btn-line{ display:inline-block; margin-top:1.2rem; }
@media (max-width:800px){ .mv-grid, .dg-grid{ grid-template-columns:1fr; } .dg-grid .photo-frame{ max-width:12rem; } }

.team-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:2.2rem; margin-top:0.5rem; }
.team-card .photo-frame{ aspect-ratio:4/5; }
.team-portrait--desire{ transform:scale(1.16); transform-origin:46% 40%; }
.team-portrait--doryane{ transform:scale(1.08); transform-origin:50% 42%; }
.team-name{ font-family:var(--font-display); font-size:1.05rem; margin-top:1.1rem; }
.team-role{ font-family:var(--font-mono); font-size:0.66rem; letter-spacing:0.06em; text-transform:uppercase; color:var(--gold-dim); margin-top:0.25rem; }
.team-desc{ font-size:0.85rem; color:var(--slate); line-height:1.6; margin-top:0.6rem; }
@media (max-width:900px){ .team-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:480px){ .team-grid{ grid-template-columns:1fr; } }

.market-note{ border-top:1px solid var(--line-on-ivory); padding-top:2.2rem; margin-top:0.5rem; }
.market-note p{ font-size:var(--fs-base); color:var(--slate); max-width:42rem; line-height:1.7; }
.market-note .ph{ color:var(--gold-dim); }

.gallery-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; }
.gallery-grid .photo-frame{ aspect-ratio:4/3; }
@media (max-width:800px){ .gallery-grid{ grid-template-columns:1fr 1fr; } }

.solution-category{ border-top:1px solid var(--line-on-ivory); padding-block:2.6rem; }
.solution-category:first-of-type{ border-top:none; padding-top:0.5rem; }
.solution-category h3{ font-size:1.4rem; margin-bottom:0.9rem; }
.solution-category .cat-desc{ color:var(--slate); font-size:var(--fs-base); line-height:1.7; max-width:38rem; margin-bottom:1.5rem; }
.product-tags{ display:flex; flex-wrap:wrap; gap:0.65rem; }
.product-tag{ font-family:var(--font-mono); font-size:0.72rem; letter-spacing:0.02em; border:1px solid var(--line-on-ivory); padding:0.55rem 0.95rem; color:var(--slate); }

.audience-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line-on-navy); border:1px solid var(--line-on-navy); margin-top:1rem; }
.audience-card{ background:var(--ink-2); padding:2.1rem 1.6rem; }
.audience-card h3{ color:var(--ivory); font-size:1.1rem; margin-bottom:0.7rem; }
.audience-card p{ color:var(--slate-soft); font-size:0.85rem; line-height:1.6; }
@media (max-width:900px){ .audience-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .audience-grid{ grid-template-columns:1fr; } }

.feature-list{ display:grid; grid-template-columns:1fr 1fr; gap:0.85rem 2rem; margin-top:1.6rem; }
.feature-list div{ font-size:var(--fs-sm); color:var(--slate); padding-left:1.1rem; position:relative; }
.feature-list div::before{ content:"—"; position:absolute; left:0; color:var(--gold-dim); }
.section--dark .feature-list div{ color:var(--slate-soft); }
.section--dark .feature-list div::before{ color:var(--gold-soft); }
@media (max-width:600px){ .feature-list{ grid-template-columns:1fr; } }

.inline-contact{ display:flex; gap:2rem; flex-wrap:wrap; align-items:center; margin-top:2.5rem; padding-top:2.2rem; border-top:1px solid var(--line-on-ivory); }
.inline-contact a{ font-family:var(--font-mono); font-size:0.85rem; color:var(--gold-dim); border-bottom:1px solid var(--gold-dim); padding-bottom:2px; }
.inline-contact a:hover{ opacity:0.7; }

/* ============================== LEGAL PAGES ============================== */
.legal-content{ max-width:52rem; }
.legal-content section{ padding-block:2rem; border-top:1px solid var(--line-on-ivory); }
.legal-content section:first-child{ padding-top:0; border-top:0; }
.legal-content h2{ font-size:1.55rem; margin-bottom:0.9rem; }
.legal-content p, .legal-content li{ color:var(--slate); line-height:1.75; }
.legal-content p + p, .legal-content ul + p{ margin-top:0.9rem; }
.legal-content ul{ list-style:disc; padding-left:1.25rem; margin-top:0.8rem; }
.legal-content a{ color:var(--gold-dim); text-decoration:underline; text-underline-offset:3px; }

@media (max-width:600px){
  .site-header .brand-logo-image{ width:5rem; }
  .footer-logo .brand-logo-image{ width:8rem; }
  .btn{ max-width:100%; white-space:normal; line-height:1.45; text-align:center; justify-content:center; }
  .hero-ctas, .review-ctas{ flex-direction:column; align-items:stretch; }
  .hero-ctas .btn, .review-ctas .btn, .final-cta .btn{ width:100%; }
  .review-checklist{ grid-template-columns:1fr; }
  .footer-bottom{ flex-direction:column; }
  .footer-bottom ul{ flex-direction:column; gap:0.6rem; }
  .footer-referral{ flex-direction:column; align-items:center; gap:0.55rem; padding:1.4rem 0 1.65rem; }
}
