/* ===========================================================
   Excellique — Design System
   Brand palette matched to the logo: navy #10334D, gold #B49459, cream #F5F1E6
   =========================================================== */

/* Self-hosted Nunito Sans (variable, SIL OFL 1.1 — see fonts/OFL.txt) */
@font-face{
  font-family:'Nunito Sans';
  font-style:normal;
  font-weight:200 1000;
  font-display:swap;
  src:url('../fonts/nunito-sans-latin-wght-normal.woff2') format('woff2-variations'), url('../fonts/nunito-sans-latin-wght-normal.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Nunito Sans';
  font-style:italic;
  font-weight:200 1000;
  font-display:swap;
  src:url('../fonts/nunito-sans-latin-wght-italic.woff2') format('woff2-variations'), url('../fonts/nunito-sans-latin-wght-italic.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

:root{
  --charcoal-950:#F5F1E6;
  --charcoal-900:#FFFFFF;
  --charcoal-800:#FAF8F2;
  --charcoal-700:#E2D5BC;
  --charcoal-600:#CDB78F;

  --gold-300:#7E6639;
  --gold-500:#B49459;
  --gold-light:#C9B183; /* logo gold, a few shades lighter: button fill */
  --gold-700:#695530;
  --gold-900:#EDE5D4;

  --parchment:#10334D;
  --parchment-dim:#3E596C;
  --stone-400:#556C7B;
  --stone-600:#556C7B;

  --line: rgba(16,51,77,0.10);
  --line-strong: rgba(16,51,77,0.24);

  --font-display: 'Nunito Sans', -apple-system, 'Segoe UI', sans-serif;
  --font-body: 'Nunito Sans', -apple-system, 'Segoe UI', sans-serif;
  --font-label: 'Nunito Sans', -apple-system, 'Segoe UI', sans-serif;

  --max-w: 1320px;
  --gutter: clamp(24px, 6vw, 96px);
  --space: clamp(24px, 3vw, 40px); /* one vertical rhythm: gap above/below every divider and below the menu */
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
[id]{ scroll-margin-top:100px; }

body{
  margin:0;
  background:
    radial-gradient(ellipse 900px 500px at 85% -10%, rgba(180,148,89,0.10), transparent 60%),
    var(--charcoal-950);
  color:var(--parchment);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

@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; }
}

a{ color:inherit; text-decoration:none; }
button, input, select, textarea{ font-family:inherit; }
img,svg{ display:block; max-width:100%; }
ul{ list-style:none; margin:0; padding:0; }

:focus-visible{
  outline:2px solid var(--gold-300);
  outline-offset:3px;
  border-radius:2px;
}

.wrap{
  max-width:var(--max-w);
  margin:0 auto;
  padding-left:var(--gutter);
  padding-right:var(--gutter);
}

.eyebrow{
  font-family:var(--font-label); font-weight:600;
  font-size:13px;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color:var(--gold-300);
  display:flex;
  align-items:center;
  gap:10px;
}
.eyebrow::before{
  content:"";
  width:22px;
  height:1px;
  background:var(--gold-500);
  display:inline-block;
}

h1,h2,h3{
  font-family:var(--font-display);
  font-weight:500;
  letter-spacing:-0.01em;
  margin:0;
  color:var(--parchment);
}

h1{ font-size:clamp(1.5rem, 2.2vw, 2rem); line-height:1.15; font-weight:300; letter-spacing:-0.01em; }
h1 a{
  color:inherit;
  text-decoration:none;
  border-bottom:2px solid var(--line-strong);
  transition:border-color 0.2s ease, color 0.2s ease;
}
h1 a:hover{ border-bottom-color:var(--gold-500); color:var(--gold-700); }
h2{ font-size:clamp(1.5rem, 2vw, 1.67rem); line-height:1.2; font-weight:400; }
h3{ font-size:1.15rem; font-weight:600; font-family:var(--font-body); }

p{ color:var(--parchment-dim); margin:0; }
.lede{ font-size:1.2rem; line-height:1.65; color:var(--parchment-dim); max-width:56ch; }

.section{
  position:relative;
  padding-top:var(--space);
  padding-bottom:var(--space);
}
.section::before{
  content:"";
  position:absolute;
  top:0; left:var(--gutter); right:var(--gutter);
  height:1px;
  background:var(--line);
}
.section:first-of-type::before{ display:none; }
.section--tight{ padding-top:clamp(40px,6vw,72px); padding-bottom:clamp(40px,6vw,72px); }

/* ---------- Nav ---------- */
header.site-nav{
  position:sticky; top:0; z-index:50;
  background:var(--charcoal-950);
  border-bottom:1px solid rgba(16,51,77,0.06);
}
.nav-row{
  display:flex; align-items:center; justify-content:space-between;
  height:92px;
}
.brand{
  font-family:var(--font-body);
  font-weight:400;
  font-size:1.3rem;
  letter-spacing:0.02em;
  display:flex; align-items:center; gap:20px;
}
.brand-mark{ display:block; height:37px; width:auto; flex-shrink:0; }
.brand-logo{ display:block; height:43.6px; width:auto; flex-shrink:0; }
.brand .mark{ color:var(--gold-500); font-family:var(--font-label); font-size:0.7rem; letter-spacing:0.1em; }

.nav-links{ display:flex; gap:40px; align-items:center; }
.nav-links a{
  font-size:15px; color:var(--stone-400);
  transition:color 0.2s ease;
  position:relative;
}
.nav-links a:hover{ color:var(--parchment); }
.nav-links a.is-active{ color:var(--gold-300); }
.nav-links a.cta{
  border:1px solid var(--gold-light);
  padding:9px 18px;
  border-radius:999px;
  background:var(--gold-light);
  color:var(--parchment);
  font-weight:600;
}
.nav-links a.cta:hover{ background:var(--gold-500); border-color:var(--gold-500); color:var(--parchment); }
.brand, .nav-links a{ white-space:nowrap; }
/* Small laptops / landscape tablets: tighten the nav so it fits on one line */
@media (min-width:901px) and (max-width:1120px){
  .brand{ font-size:1.1rem; gap:14px; }
  .brand-mark{ height:32px; }
  .brand-logo{ height:39px; }
  .nav-links{ gap:20px; }
  .nav-links a.cta{ padding:8px 14px; }
}

.nav-toggle{
  display:none;
  background:none; border:1px solid var(--line-strong); border-radius:2px;
  width:40px; height:40px; color:var(--parchment); cursor:pointer;
}

@media (max-width: 900px){
  .nav-toggle{ display:block; }
  .brand{ font-size:1.02rem; gap:16px; }
  .brand-mark{ height:28px; }
  .brand-logo{ height:39px; }
  .nav-row{ height:76px; }
  .nav-links{
    position:fixed; inset:76px 0 0 0;
    background:var(--charcoal-950);
    flex-direction:column; align-items:flex-start;
    padding:32px var(--gutter);
    gap:22px;
    transform:translateY(-8px);
    opacity:0;
    pointer-events:none;
    transition:opacity 0.22s ease, transform 0.22s ease;
  }
  .nav-links.is-open{ opacity:1; transform:translateY(0); pointer-events:auto; }
  .nav-links a.cta{ width:100%; text-align:center; }
}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--font-body); font-size:14.5px; font-weight:600;
  padding:9px 20px; line-height:1.55;
  border-radius:999px;
  border:1px solid transparent;
  cursor:pointer;
  transition:all 0.2s ease;
}
/* Buttons: pill shape; primary = light gold (logo gold, a few shades lighter) with navy text, secondary = gold outline */
.btn--primary{ background:var(--gold-light); border-color:var(--gold-light); color:var(--parchment); }
.btn--primary:hover{ background:var(--gold-500); border-color:var(--gold-500); transform:translateY(-1px); box-shadow:0 4px 12px rgba(16,51,77,0.12); }
.btn--secondary{ background:transparent; border-color:var(--gold-500); color:var(--parchment); }
.btn--secondary:hover{ background:var(--gold-900); transform:translateY(-1px); }
.btn:focus-visible{ outline:2px solid var(--gold-500); outline-offset:3px; }
.btn svg{ width:14px; height:14px; }

/* ---------- Hero ---------- */
.hero{
  padding-top:var(--space);
  padding-bottom:var(--space);
}
.hero-grid{
  display:grid;
  grid-template-columns:1.05fr 0.95fr;
  gap:clamp(32px,6vw,80px);
  align-items:center;
}
@media (max-width:960px){ .hero-grid{ grid-template-columns:1fr; } }

.hero h1{ margin-top:22px; }
.hero h1 em{ font-style:italic; color:var(--gold-300); }
.hero .lede{ margin-top:24px; }
.term-note{
  margin-top:18px;
  padding-left:18px;
  border-left:2px solid var(--line-strong);
  font-size:13px;
  line-height:1.6;
  color:var(--stone-400);
  max-width:52ch;
}
.term-note-label{
  display:block;
  font-family:var(--font-label); font-weight:600;
  font-size:12px;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--gold-300);
  margin-bottom:4px;
}
.hero-ctas{ display:flex; gap:16px; margin-top:36px; flex-wrap:wrap; }

/* ---------- Blueprint diagram (signature element) ---------- */
.blueprint{
  border:1px solid var(--line-strong);
  border-radius:3px;
  padding:28px 20px 20px;
  background:
    linear-gradient(var(--line) 1px, transparent 1px) 0 0/100% 26px,
    linear-gradient(90deg, var(--line) 1px, transparent 1px) 0 0/26px 100%,
    var(--charcoal-900);
}
.blueprint-label{
  font-family:var(--font-label); font-size:12px; letter-spacing:0.12em;
  color:var(--stone-400); text-transform:uppercase; margin-bottom:14px;
}

/* ---------- Trigger / feature grid ---------- */
.signal-group{ margin-top:56px; }
.signal-group:first-of-type{ margin-top:48px; }
.signal-group-title{
  font-family:var(--font-label); font-weight:600;
  font-size:13px;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--gold-300);
  margin:0 0 16px;
  padding-bottom:10px;
  border-bottom:1px solid var(--line-strong);
}
.signal-group .grid-3{ margin-top:0; }
.signal-group-link{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin-top:18px;
  font-family:var(--font-label);
  font-size:15px;
  letter-spacing:0;
  color:var(--gold-300);
  border-bottom:1px solid transparent;
  transition:border-color 0.2s ease;
}
.signal-group-link:hover{ border-bottom-color:var(--gold-300); }

.grid-3{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); margin-top:48px; }
.grid-2{ display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line); border:1px solid var(--line); margin-top:48px; }
.grid-4{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line); margin-top:48px; }
@media (max-width:760px){ .grid-3, .grid-2{ grid-template-columns:1fr; } }
@media (max-width:1080px) and (min-width:761px){ .grid-4{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:760px){ .grid-4{ grid-template-columns:1fr; } }
.plain-stack{ margin-top:32px; display:flex; flex-direction:column; gap:28px; max-width:640px; }
.plain-item h3{ font-family:var(--font-display); font-size:1.15rem; font-weight:500; color:var(--parchment); margin-bottom:8px; }
.plain-item p{ font-size:16px; line-height:1.65; color:var(--parchment-dim); }
.approach-grid{ margin-top:32px; }
.approach-grid .cell{ position:relative; }
.approach-grid .cell h3{ margin-top:10px; font-size:1.35rem; }
.approach-grid .cell:not(:last-child)::after{
  content:"\2192"; position:absolute; z-index:1;
  top:50%; right:-14px; transform:translateY(-50%);
  width:28px; height:28px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:var(--charcoal-950); border:1px solid var(--gold-500);
  color:var(--gold-300); font-size:13px; line-height:1;
}
@media (max-width:760px){
  .approach-grid .cell:not(:last-child)::after{ top:auto; bottom:-14px; right:50%; transform:translateX(50%) rotate(90deg); }
}
/* Hero: split layout (headline left, copy + CTA right) */
.hero-split{ display:grid; grid-template-columns:max-content minmax(0,1fr); column-gap:clamp(48px,5vw,80px); row-gap:22px; align-items:start; }
.hero-split-label{ grid-column:1; grid-row:1; }
.hero-split-head{ grid-column:1; grid-row:2; }
.hero-split-right{ grid-column:2; grid-row:2; }
.hero-split-right{ max-width:520px; }
.hero-split h1{ margin-top:0; font-size:clamp(1.75rem,2.7vw,2.375rem); line-height:1.1; }
.hero-split-right .lede{ font-size:1.1rem; }
.hero-split-right .lede:first-child{ margin-top:0; }
.hero-split-right .hero-ctas{ margin-top:28px; }
.hero-split-right .hero-ctas{ align-items:center; gap:12px 14px; }
.hero-payoff{ margin-top:16px; color:var(--parchment); font-weight:600; }

@media (max-width:860px){ .hero-split{ grid-template-columns:1fr; row-gap:22px; } .hero-split-label, .hero-split-head, .hero-split-right{ grid-column:1; grid-row:auto; } .hero-split-right{ margin-top:2px; } }
.section-head{ display:flex; align-items:baseline; justify-content:space-between; gap:12px 24px; flex-wrap:wrap; margin-top:18px; }
.section-head .signal-group-link{ margin-top:0; }
.signals-more{ margin-top:20px; text-align:right; }
.signals-more .signal-group-link{ margin-top:0; }
.cell{ background:var(--charcoal-950); padding:32px 28px; }
.cell--solo{
  border:1px solid var(--line-strong);
  border-radius:3px;
  max-width:460px;
}

/* ---------- Unboxed service detail (no card/border) ---------- */
.service-detail{
  display:flex; align-items:center; justify-content:flex-start;
  gap:32px; margin-top:18px; max-width:760px;
}
.service-detail-content{ flex:1; min-width:0; }
.service-detail .tag{ font-family:var(--font-label); font-weight:600; font-size:12px; color:var(--gold-300); letter-spacing:0.1em; }
.service-detail h3{ margin-top:14px; }
.service-detail p{ margin-top:10px; font-size:16px; line-height:1.65; color:var(--parchment-dim); }
.service-detail--full{ max-width:none; align-items:flex-start; margin-top:0; }
.service-detail--full h2{ margin-top:0; }
.service-detail h3.service-tagline{ margin-top:0; }
.service-points{ margin-top:18px; max-width:none; }
.service-points li strong{ color:var(--parchment); font-weight:600; }
/* Expandable "What this covers" */
.covers{ margin-top:22px; }
.covers summary{ list-style:none; cursor:pointer; display:inline-flex; align-items:center; gap:12px;
  padding:9px 20px; line-height:1.55; border:1px solid var(--gold-500); border-radius:999px; background:transparent;
  font-family:var(--font-body); font-size:14.5px; font-weight:600; color:var(--parchment);
  transition:background 0.2s ease, border-color 0.2s ease; }
.covers summary::-webkit-details-marker{ display:none; }
.covers summary::after{ content:"+"; font-size:18px; font-weight:400; line-height:1; color:currentColor; }
.covers[open] summary::after{ content:"\2212"; }
.covers summary:hover, .covers[open] summary{ background:var(--gold-900); }
.covers summary:focus-visible{ outline:2px solid var(--gold-500); outline-offset:3px; }
.covers[open] .covers-grid{ margin-top:18px; padding:22px 22px 24px; border-radius:4px; background:linear-gradient(180deg, rgba(180,148,89,0.08), transparent 40%), #FCFAF5; }
.covers-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px 32px; }
.covers-item--wide{ grid-column:1 / -1; }
.covers-grid--cols{ grid-auto-flow:column; grid-template-rows:repeat(3,auto); }
@media (max-width:640px){ .covers-grid--cols{ grid-auto-flow:row; grid-template-rows:none; } }
.covers-item h4{ font-family:var(--font-body); font-size:14px; font-weight:600; color:var(--parchment); margin:0; }
.service-detail .covers-item p{ margin-top:4px; font-size:14.5px; line-height:1.55; color:var(--parchment-dim); }
@media (max-width:640px){ .covers-grid{ grid-template-columns:1fr; gap:16px; } }
.focus-areas{
  margin-top:32px;
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:20px;
}
.focus-card{
  border-radius:4px;
  padding:22px 22px 24px;
  background:linear-gradient(180deg, rgba(180,148,89,0.08), transparent 40%), #FCFAF5;
}
.focus-card-head{
  display:flex; align-items:center; gap:10px;
  margin-bottom:16px;
}
.focus-card-head svg{ width:22px; height:22px; color:var(--gold-500); flex-shrink:0; }
.focus-area-label{ font-family:var(--font-body); font-size:14.5px; font-weight:600; color:var(--parchment); }
.focus-card--wide{ grid-column:1 / -1; }
.focus-card-note{
  margin-left:auto;
  font-family:var(--font-label); font-size:12px; letter-spacing:0.05em;
  color:var(--gold-300);
}
.focus-card--wide p{ margin-top:0; font-size:16px; line-height:1.65; color:var(--parchment-dim); }
.focus-card p{ margin-top:6px; font-size:16px; line-height:1.6; color:var(--parchment-dim); }
.focus-card ul{ margin-top:0; }
.focus-card li{ font-family:var(--font-body); font-size:16px; line-height:1.55; color:var(--parchment-dim); padding-left:16px; position:relative; margin-top:10px; }
.focus-card li strong{ color:var(--parchment); font-weight:600; }
.focus-card li::before{ content:"→"; position:absolute; left:0; top:0px; color:var(--gold-500); font-size:11px; }
@media (max-width:900px){
  .focus-areas{ grid-template-columns:1fr; }
  .focus-card-head{ flex-wrap:wrap; }
  .focus-card-note{ margin-left:0; flex-basis:100%; margin-top:4px; }
}
.service-detail .icon-box{
  flex-shrink:0;
  width:71px; height:71px;
  border:1px solid var(--line-strong);
  border-radius:4px;
  background:linear-gradient(180deg, rgba(180,148,89,0.08), transparent 40%), #FCFAF5;
  display:flex; align-items:center; justify-content:center;
}
.service-detail .icon-box .tile-icon{ margin-bottom:0; }
.service-detail .icon-box .tile-icon svg{ width:64px; height:64px; }
@media (max-width:760px){
  /* Mobile: icon sits beside the tagline; the rest runs full width underneath */
  .service-detail{ display:grid; grid-template-columns:auto 1fr; column-gap:14px; row-gap:0; align-items:center; }
  .service-detail-content > .service-tagline + *{ margin-top:16px; }
  .service-detail .icon-box{ grid-column:1; grid-row:1; }
  .service-detail-content{ display:contents; }
  .service-detail-content > *{ grid-column:1 / -1; }
  .service-detail-content > .service-tagline{ grid-column:2; grid-row:1; }
  .service-detail .icon-box{ width:38px; height:38px; }
  .service-detail .icon-box .tile-icon svg{ width:30px; height:30px; }
}
.service-lede{ margin-top:20px; font-size:16px; line-height:1.65; color:var(--parchment-dim); max-width:680px; }
.tile-icon{ display:block; margin-bottom:14px; color:var(--gold-500); }
.tile-icon svg{ width:28px; height:28px; display:block; }
.cell .tag{ font-family:var(--font-label); font-weight:600; font-size:12px; color:var(--gold-300); letter-spacing:0.1em; }
.cell h3{ margin-top:14px; }
.cell p{ margin-top:10px; font-size:14.5px; }

/* ---------- Signals grid: bordered, 2 columns, arrow + text on the right ---------- */
.signals-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
  margin-top:28px;
}
@media (max-width:900px){
  .signals-grid{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:640px){
  .signals-grid{ grid-template-columns:1fr; }
}
.signal-cell{
  display:flex; flex-direction:column;
  background:linear-gradient(180deg, rgba(180,148,89,0.08), transparent 40%), #FCFAF5;
  border-radius:4px;
  padding:28px 24px 24px;
  position:relative;
  transition:transform 0.25s ease, box-shadow 0.25s ease;
}
.signal-cell:hover{
  transform:translateY(-4px);
  box-shadow:0 14px 28px rgba(16,51,77,0.10);
}
.signal-cell-content{ position:relative; z-index:1; min-width:0; display:flex; flex-direction:column; }
.signal-cell h3{ font-family:var(--font-display); font-weight:500; font-size:1.35rem; line-height:1.25; }
.signal-label{
  display:block;
  font-family:var(--font-label); font-weight:600; font-size:12px; letter-spacing:0.1em;
  color:var(--gold-300); margin-bottom:8px;
}
.signal-cell .read-more{
  flex-shrink:0;
  display:inline-flex; align-items:center; gap:4px;
  margin-top:20px;
  font-family:var(--font-label); font-size:10.5px;
  font-style:italic;
  color:var(--gold-300);
  background:none;
  border:none;
  padding:0;
  cursor:pointer;
  transition:color 0.2s ease;
}
.signal-cell .read-more svg{ width:10px; height:10px; }
.signal-cell .read-more:hover{ color:var(--gold-500); }
.signal-desc{ position:relative; margin-top:12px; font-size:15px; line-height:1.6; color:var(--parchment-dim); }
/* Mobile: more compact tiles and approach steps; section headings clearly larger than tile headings */
@media (max-width:640px){
  .signals-grid{ gap:12px; margin-top:20px; }
  .signal-cell{ padding:18px 18px 18px; }
  .signal-cell h3{ font-size:1.12rem; }
  .signal-desc{ margin-top:6px; font-size:14px; line-height:1.5; }
  .approach-grid{ margin-top:20px; }
  .approach-grid .cell{ padding:18px 18px 20px; }
  .approach-grid .cell h3{ margin-top:6px; font-size:1.12rem; margin-bottom:4px; }
  .approach-grid .cell p{ font-size:14.5px; line-height:1.55; }
}

.signal-modal{
  position:fixed; inset:0; z-index:100;
  display:flex; align-items:center; justify-content:center;
  padding:24px;
}
.signal-modal[hidden]{ display:none; }
.signal-modal-backdrop{
  position:absolute; inset:0;
  background:rgba(16,51,77,0.55);
  backdrop-filter:blur(2px);
}
.signal-modal-panel{
  position:relative;
  border:1px solid var(--line-strong);
  border-radius:2px;
  max-width:560px;
  width:100%;
  padding:44px 40px 36px;
  box-shadow:0 24px 60px rgba(16,51,77,0.25);
  background:var(--charcoal-900);
}
.modal-corner{
  position:absolute; width:16px; height:16px;
  border:1.5px solid var(--gold-500);
}
.modal-corner--tl{ top:10px; left:10px; border-right:none; border-bottom:none; }
.modal-corner--tr{ top:10px; right:10px; border-left:none; border-bottom:none; }
.modal-corner--bl{ bottom:10px; left:10px; border-right:none; border-top:none; }
.modal-corner--br{ bottom:10px; right:10px; border-left:none; border-top:none; }
.modal-ref{
  font-family:var(--font-label); font-weight:600; font-size:12px; letter-spacing:0.12em;
  color:var(--stone-400); text-transform:uppercase; margin-bottom:16px;
}
.signal-modal-panel h3{
  font-family:var(--font-display); font-size:1.5rem; font-weight:500;
  margin-top:14px;
}
.signal-modal-panel p{ margin-top:16px; font-size:15px; line-height:1.65; color:var(--parchment-dim); }
.signal-modal-close{
  position:absolute; top:20px; right:20px;
  width:30px; height:30px;
  display:flex; align-items:center; justify-content:center;
  background:var(--charcoal-900); border:1px solid var(--line-strong); border-radius:0;
  color:var(--stone-400); cursor:pointer;
  transition:color 0.2s ease, border-color 0.2s ease;
}
.signal-modal-close:hover{ color:var(--parchment); border-color:var(--gold-500); }

/* ---------- Track record strip ---------- */
.record-strip{
  display:flex; flex-wrap:wrap; gap:0;
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  margin-top:64px;
}
.record-item{
  flex:1 1 200px;
  padding:22px 26px;
  border-right:1px solid var(--line);
  font-family:var(--font-label); font-size:13.5px; color:var(--stone-400);
}
.record-item:last-child{ border-right:none; }
.record-item strong{ display:block; font-family:var(--font-display); font-size:1.5rem; color:var(--gold-300); font-weight:400; margin-bottom:6px; }

/* ---------- CTA banner ---------- */
.cta-banner{
  text-align:center;
  padding:var(--space) var(--gutter);
  background:linear-gradient(180deg, transparent, rgba(180,148,89,0.05));
}
.cta-banner h2{ max-width:680px; margin:0 auto; font-size:clamp(1.3rem,1.8vw,1.5rem); }
.cta-banner .lede{ margin:12px auto 0; text-align:center; font-size:1rem; line-height:1.6; }
.cta-banner h2, .cta-banner .lede{ text-wrap:balance; } /* even line lengths, no single stranded word */
.cta-banner .hero-ctas{ margin-top:24px; }
.cta-banner .hero-ctas{ justify-content:center; }

/* ---------- Footer ---------- */
footer.site-footer{
  border-top:1px solid var(--line);
  padding:var(--space) 0 40px;
}
.footer-row{
  display:flex; justify-content:flex-start; align-items:center; gap:24px; flex-wrap:wrap;
}
.footer-social{ display:flex; align-items:center; gap:20px; }
.footer-icon-link{
  color:var(--stone-400); font-size:13px;
  display:inline-flex; align-items:center;
  transition:color 0.2s ease;
}
.footer-icon-link:hover{ color:var(--gold-300); }
.footer-row .brand{ font-size:1.05rem; }
.footer-links{ display:flex; gap:26px; flex-wrap:wrap; }
.footer-links a{ font-size:13px; color:var(--stone-400); }
.footer-links a:hover{ color:var(--gold-300); }
.footer-fine{ font-family:var(--font-label); font-size:12px; color:var(--stone-600); margin-top:0; display:flex; justify-content:space-between; align-items:center; gap:8px 24px; flex-wrap:wrap; }

/* ---------- Page header (for interior pages) ---------- */
.page-header{ padding-top:var(--space); padding-bottom:var(--space); }
.page-header h1{ margin-top:18px; }
.page-header .lede{ margin-top:20px; max-width:none; }

/* ---------- Pricing / tiers ---------- */
.tier-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; margin-top:48px; }
@media (max-width:1100px){ .tier-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:640px){ .tier-grid{ grid-template-columns:1fr; } }
.tier-grid--3{ grid-template-columns:repeat(3,1fr); margin-top:28px; }
@media (max-width:900px){ .tier-grid--3{ grid-template-columns:1fr; } }
.tier{
  border:1px solid var(--line-strong); border-radius:3px; padding:26px 24px;
  display:flex; flex-direction:column; gap:12px;
  background:linear-gradient(180deg, rgba(180,148,89,0.08), transparent 40%), #FCFAF5;
  transition:border-color 0.2s ease, transform 0.2s ease;
}
.tier:hover{ border-color:var(--gold-500); transform:translateY(-3px); }
.tier--featured{ border-color:var(--gold-500); background:linear-gradient(180deg, rgba(180,148,89,0.08), transparent 40%), #FCFAF5; }
.tier .tier-name{ display:block; font-family:var(--font-display); font-size:1.4rem; font-weight:500; line-height:1.3; color:var(--parchment); margin-bottom:2px; }
.tier ul{ display:flex; flex-direction:column; gap:6px; margin-top:4px; }
.tier li{ font-size:15px; line-height:1.5; color:var(--parchment-dim); padding-left:16px; position:relative; }
.tier li::before{ content:"→"; position:absolute; left:0; top:0px; color:var(--gold-500); font-size:11px; }
.track-list{ display:flex; flex-direction:column; gap:14px; }
.track-list li{ font-size:16px; line-height:1.55; color:var(--parchment-dim); padding-left:20px; position:relative; }
.track-list li::before{ content:"→"; position:absolute; left:0; top:1px; color:var(--gold-500); font-size:13px; }
.photo-placeholder{
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px;
  border:1px dashed var(--line-strong); border-radius:4px;
  min-height:280px;
  background:var(--charcoal-950);
  color:var(--stone-400);
  text-align:center;
  padding:32px;
}
.photo-placeholder svg{ width:40px; height:40px; color:var(--gold-500); }
.photo-placeholder span{ font-family:var(--font-label); font-size:13px; letter-spacing:0.05em; text-transform:uppercase; }
/* About page bio */
.bio{ padding-top:var(--space); padding-bottom:var(--space); }
.bio-grid{ display:grid; grid-template-columns:220px minmax(0,1fr); gap:clamp(40px,5vw,72px); align-items:start; }
.bio-photo{ margin:8px; width:100%; position:relative; }
.bio-photo::before{ content:""; position:absolute; inset:-8px; border:1px solid var(--gold-500); border-radius:50%; }
.bio-photo img{ position:relative; display:block; width:100%; height:auto; aspect-ratio:1 / 1; object-fit:cover; object-position:50% 22%; border-radius:50%; }
.bio-name{ font-size:clamp(1.5rem, 2.2vw, 2rem); }
.bio-title{ margin-top:10px; font-family:var(--font-display); font-size:1.3rem; color:var(--gold-300); }
.bio-body{ margin-top:28px; max-width:64ch; }
.bio-body p{ font-size:15px; line-height:1.75; color:var(--parchment-dim); }
.bio-body p + p{ margin-top:18px; }
.bio-linkedin{ margin-top:24px; display:inline-flex; align-items:center; gap:8px; color:var(--parchment); font-size:13.5px; text-decoration:none; }
.bio-linkedin svg{ color:var(--gold-500); width:17px; height:17px; }
.bio-linkedin:hover{ color:var(--gold-300); }
.cta-banner--button{ padding-top:clamp(16px,2vw,24px); padding-bottom:clamp(48px,6vw,72px); }
.cta-banner--button .hero-ctas{ margin-top:0; }
.bio-track-label{ margin-top:40px; }
.bio-content .lede{ max-width:none; }
.bio-grid{ align-items:center; }
.section .bio-body{ margin-top:18px; max-width:72ch; }
.bring-grid{ grid-template-columns:repeat(2,1fr); margin-top:24px; }
.bring-grid .focus-area-label{ display:block; }
.card-points{ margin-top:14px; gap:10px; } .card-points li{ font-size:15px; line-height:1.55; }
.experience-list{ margin-top:22px; }
.cta-banner .bio-linkedin{ margin-top:18px; justify-content:center; }
@media (max-width:760px){ .bring-grid{ grid-template-columns:1fr; } }
.bio .track-list{ margin-top:18px; max-width:none; }
.track-list--diamond li::before{ content:"\25C6"; font-size:9px; top:6px; }
@media (max-width:760px){ .bio-grid{ grid-template-columns:1fr; gap:32px; } .bio-photo{ width:160px; } }
.tier-price{ font-family:var(--font-label); font-size:13.5px; color:var(--gold-300); }

/* ---------- Process steps (BOT) ---------- */
.process{ display:flex; flex-direction:column; margin-top:56px; }
.process-step{
  display:grid; grid-template-columns:130px 1fr; gap:28px;
  padding:30px 0; border-top:1px solid var(--line);
}
.process-num{ font-family:var(--font-label); font-weight:600; font-size:13.5px; color:var(--gold-300); letter-spacing:0.08em; padding-top:4px; white-space:nowrap; }
@media (max-width:640px){ .process-step{ grid-template-columns:1fr; gap:8px; padding:22px 0; } .process-num{ padding-top:0; } }
.process-step:last-child{ padding-bottom:0; }
#form-status:empty{ margin-top:0 !important; } /* no phantom gap under the form until a message shows */
.process-body h3{ font-family:var(--font-display); font-size:1.4rem; font-weight:500; }
.process-body p{ margin-top:10px; max-width:none; font-size:16px; line-height:1.65; }
.process-tag{ display:block; margin-bottom:6px; font-family:var(--font-label); font-weight:600; font-size:12px; letter-spacing:0.08em; color:var(--gold-300); }

/* ---------- Timeline (about page) ---------- */
.engagement-list{ margin-top:40px; border-top:1px solid var(--line); }
.engagement{
  display:grid; grid-template-columns:1fr 2.4fr; gap:24px;
  padding:24px 0; border-bottom:1px solid var(--line);
}
@media (max-width:700px){ .engagement{ grid-template-columns:1fr; gap:8px; } }
.engagement .org{ font-family:var(--font-display); font-size:1.15rem; color:var(--parchment); }
.engagement .role{ font-family:var(--font-label); font-size:12.5px; color:var(--stone-400); margin-top:4px; letter-spacing:0.04em; }
.engagement p{ font-size:14px; }

/* ---------- Quote / philosophy block ---------- */
.quote-block{
  border-left:2px solid var(--gold-500);
  padding-left:28px;
  margin-top:56px;
  max-width:64ch;
}
.quote-block p{ font-family:var(--font-display); font-size:1.4rem; font-style:italic; color:var(--parchment); line-height:1.5; }
.quote-block cite{ display:block; margin-top:16px; font-style:normal; font-family:var(--font-label); font-size:13px; color:var(--stone-400); }

/* ---------- FAQ ---------- */
.faq-list{ margin-top:40px; max-width:none; border-top:1px solid var(--line); }
.faq-item{ padding:26px 0; border-bottom:1px solid var(--line); }
.faq-item h3{ font-family:var(--font-body); font-size:16px; font-weight:600; color:var(--parchment); }
.faq-item p{ margin-top:10px; font-size:16px; line-height:1.65; }
/* FAQ accordion (details/summary) */
details.faq-item{ padding:0; }
.faq-item summary{ list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:22px 0; }
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary h3{ margin:0; transition:color 0.2s ease; }
.faq-item summary::after{ content:"+"; flex-shrink:0; font-size:22px; font-weight:300; line-height:1; color:var(--gold-300); }
.faq-item[open] summary::after{ content:"\2212"; }
.faq-item summary:hover h3{ color:var(--gold-300); }
.faq-item summary:focus-visible{ outline:2px solid var(--gold-300); outline-offset:4px; }
details.faq-item p{ margin-top:0; padding-bottom:24px; max-width:none; }

/* Services page: intro above the three services */
.services-intro{ margin-bottom:48px; }
.services-title{ margin-top:18px; max-width:34ch; } /* standard section heading (h2) size */
.services-intro .service-lede{ margin-top:14px; font-size:17px; }
/* Service names match the Build/Operate/Transfer step headings */
#pulse-check h2, #operational-excellence h2, #delivery-excellence h2{ font-family:var(--font-display); font-size:1.4rem; font-weight:500; }

/* ---------- Contact ---------- */
.contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:start; }
@media (max-width:900px){ .contact-grid{ grid-template-columns:1fr; gap:40px; } }
.contact-card{ border:1px solid var(--line-strong); border-radius:3px; padding:32px; background:linear-gradient(180deg, rgba(180,148,89,0.08), transparent 40%), #FCFAF5; }
.contact-card .row{ display:flex; justify-content:space-between; padding:14px 0; border-bottom:1px solid var(--line); font-size:14px; }
.contact-card .row:last-child{ border-bottom:none; }
.contact-card .row{ justify-content:flex-start; align-items:center; gap:16px; font-size:15px; color:var(--parchment-dim); }
.contact-card .row .ic{ display:inline-flex; width:22px; height:22px; flex-shrink:0; color:var(--stone-400); }
.contact-card .row .ic svg{ width:22px; height:22px; }
.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; }
.contact-card .row a{ color:var(--gold-300); }

.field{ margin-bottom:20px; }
.field label{ display:block; font-family:var(--font-label); font-weight:600; font-size:12px; letter-spacing:0.08em; text-transform:uppercase; color:var(--stone-400); margin-bottom:8px; }
.field input, .field textarea, .field select{
  width:100%; background:var(--charcoal-900); border:1px solid var(--line-strong);
  border-radius:2px; padding:12px 14px; color:var(--parchment); font-family:var(--font-body); font-size:14.5px;
}
.field input:focus, .field textarea:focus, .field select:focus{ border-color:var(--gold-500); outline:none; }
.field textarea{ resize:vertical; min-height:120px; }

/* ---------- Reveal on scroll ---------- */
.reveal{ opacity:0; transform:translateY(14px); transition:opacity 0.6s ease, transform 0.6s ease; }
.reveal.is-visible{ opacity:1; transform:translateY(0); }

/* ---------- Privacy policy ---------- */
.policy-updated{ margin-top:14px; font-size:0.9rem; color:var(--stone-400); }
.policy h2{ font-size:1.25rem; font-weight:500; margin-top:36px; }
.policy h2:first-child{ margin-top:0; }
.policy p, .policy ul{ margin-top:12px; line-height:1.7; max-width:75ch; }
.policy ul{ padding-left:1.2em; color:var(--parchment-dim); }
.policy li{ margin-top:6px; }
.policy a{ color:var(--gold-300); text-decoration:underline; text-underline-offset:2px; }
.footer-fine a{ color:inherit; }
.footer-fine a:hover{ color:var(--gold-300); }

/* ---------- Accessibility and form details ---------- */
.skip-link{ position:absolute; left:16px; top:-60px; z-index:1000; padding:10px 16px; background:var(--parchment); color:var(--charcoal-950); border-radius:999px; font-size:14px; font-weight:600; }
.skip-link:focus{ top:12px; }
.field label .optional{ text-transform:none; letter-spacing:0; font-weight:400; }
@media (max-width:900px){ .field input, .field textarea, .field select{ font-size:16px; } }
.hero-sub{ margin-top:16px; font-size:1.1rem; color:var(--gold-300); }
.faq-answer{ padding-bottom:24px; }
details.faq-item .faq-answer p{ margin-top:0; padding-bottom:0; font-size:16px; line-height:1.65; }
details.faq-item .faq-answer p + p{ margin-top:12px; }
.policy .faq-list{ margin-top:0; border-top:none; }
/* Privacy policy: smaller text */
.policy-header .lede{ font-size:1rem; line-height:1.65; }
.policy-header .policy-updated{ font-size:0.85rem; }
.policy .faq-item h3{ font-size:15px; }
.policy .faq-item summary{ padding:18px 0; }
.policy details.faq-item .faq-answer p{ font-size:15px; line-height:1.6; }
.policy .faq-answer{ padding-bottom:20px; }
