@import url('https://fonts.googleapis.com/css2?family=Spectral:ital,wght@0,400;0,500;0,600;1,400;1,500&family=Inter:wght@400;500;600;700&display=swap');

:root{
  --ivory: #f7f5ef;
  --ivory-alt: #efe9d9;
  --navy: #0f1f2e;
  --navy-soft: #2c3e4f;
  --navy-raised: #16283a;
  --brass: #a9812f;
  --brass-bright: #c79b3d;
  --line: rgba(15,31,46,0.14);
  --line-dark: rgba(247,245,239,0.14);

  --font-display: "Spectral", Georgia, serif;
  --font-body: "Inter", -apple-system, "Helvetica Neue", Arial, sans-serif;

  --space-md: 16px;
  --space-lg: 24px;
  --space-xl: 40px;
  --space-2xl: 64px;
  --space-3xl: 112px;
}

*, *::before, *::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior: auto; }
  *, *::before, *::after{ animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

body{
  margin:0;
  background: var(--ivory);
  color: var(--navy);
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
::selection{ background: var(--brass); color:#fff; }
:focus-visible{ outline: 2px solid var(--brass); outline-offset: 3px; }

.container{ max-width: 1160px; margin:0 auto; padding: 0 24px; }
@media (min-width: 900px){ .container{ padding: 0 40px; } }

h1,h2,h3,h4{
  font-family: var(--font-display);
  font-weight: 500;
  line-height: 1.12;
  margin:0;
  text-wrap: balance;
  color: var(--navy);
}
p{ margin:0; }

.accent{ font-style: italic; font-weight: 400; color: var(--brass); }

.eyebrow{
  display:inline-flex; align-items:center; gap:10px;
  font-family: var(--font-body);
  font-size: 12px; font-weight:600; letter-spacing:0.18em; text-transform:uppercase;
  color: var(--brass);
  margin-bottom: var(--space-md);
}
.eyebrow::before{ content:""; width:26px; height:1px; background: var(--brass); }

.lede{ font-size: 1.05rem; color: var(--navy-soft); max-width: 56ch; line-height:1.75; }

/* Buttons */
.btn-primary{
  display:inline-flex; align-items:center; gap:10px;
  background: var(--navy);
  color: var(--ivory);
  padding: 16px 32px;
  border:none; border-radius: 2px;
  font-family: var(--font-body); font-weight:600; font-size:14px; letter-spacing:0.02em;
  cursor:pointer;
  transition: background 200ms ease, transform 200ms ease;
}
.btn-primary:hover{ background: var(--navy-soft); transform: translateY(-2px); }

.btn-ghost{
  display:inline-flex; align-items:center; gap:10px;
  background: transparent;
  color: var(--navy);
  border: 1px solid var(--line);
  padding: 15px 31px;
  border-radius: 2px;
  font-family: var(--font-body); font-weight:600; font-size:14px; letter-spacing:0.02em;
  cursor:pointer;
  transition: border-color 200ms ease, color 200ms ease;
}
.btn-ghost:hover{ border-color: var(--brass); color: var(--brass); }

.btn-row{ display:flex; flex-wrap:wrap; gap: var(--space-md); align-items:center; }

/* Nav */
.site-nav{
  position: sticky; top:0; z-index:50;
  background: rgba(247,245,239,0.9);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--line);
}
.site-nav .container{ display:flex; align-items:center; justify-content:space-between; height:84px; }
.brand .word{ font-family: var(--font-display); font-size:21px; letter-spacing:0.01em; color: var(--navy); }
.brand .word .dot{ color: var(--brass); }
.nav-links{ display:none; align-items:center; gap: var(--space-xl); }
@media (min-width: 860px){ .nav-links{ display:flex; } }
.nav-links a{ font-size:13.5px; font-weight:500; letter-spacing:0.02em; color: var(--navy-soft); transition: color 200ms ease; }
.nav-links a:hover{ color: var(--brass); }
.nav-cta{ display:none; }
@media (min-width:860px){ .nav-cta{ display:inline-flex; } }
.nav-toggle{
  display:flex; align-items:center; justify-content:center;
  width:42px; height:42px; border:1px solid var(--line); border-radius:2px; background:transparent; color:var(--navy); cursor:pointer;
}
@media (min-width:860px){ .nav-toggle{ display:none; } }
.mobile-menu{
  position:fixed; inset:0; background: var(--ivory); z-index:60;
  display:flex; flex-direction:column; justify-content:center; gap: var(--space-xl); padding: var(--space-2xl) 24px;
  transform: translateX(100%); transition: transform 300ms ease;
}
.mobile-menu.is-open{ transform: translateX(0); }
.mobile-menu a{ font-family: var(--font-display); font-size:30px; color: var(--navy); }
.mobile-menu .close{ position:absolute; top:24px; right:24px; width:42px; height:42px; border:1px solid var(--line); border-radius:2px; display:flex; align-items:center; justify-content:center; cursor:pointer; background:none; color:var(--navy); }

/* ==========================================================================
   Hero — asymmetric, with animated chart visual + texture
   ========================================================================== */
.hero{ position:relative; padding: var(--space-3xl) 0 0; overflow:hidden; }
.hero::before{
  content:"";
  position:absolute; inset:0;
  background-image: radial-gradient(rgba(15,31,46,0.14) 1px, transparent 1.4px);
  background-size: 22px 22px;
  mask-image: linear-gradient(to bottom, black, transparent 85%);
  pointer-events:none;
}
.hero .container{ position:relative; }
.hero-grid{ display:grid; grid-template-columns:1fr; gap: var(--space-2xl); align-items:center; }
@media (min-width: 980px){ .hero-grid{ grid-template-columns: 1.05fr 0.95fr; } }
.hero h1{ font-size: clamp(2.4rem, 5vw, 3.8rem); text-align:left; }
.hero .lede{ margin: var(--space-lg) 0 0; text-align:left; }
.hero .btn-row{ margin-top: var(--space-xl); justify-content:flex-start; }
.hero .eyebrow{ justify-content:flex-start; }

.chart-card{
  position:relative;
  background: var(--ivory);
  border: 1px solid var(--line);
  border-radius: 4px;
  padding: var(--space-xl) var(--space-lg) var(--space-lg);
  box-shadow: 0 30px 60px -30px rgba(15,31,46,0.25);
}
.chart-card .chart-head{ display:flex; justify-content:space-between; align-items:baseline; margin-bottom: var(--space-md); }
.chart-card .chart-head .t{ font-family: var(--font-display); font-size:15px; color: var(--navy); }
.chart-card .chart-head .v{ font-family: var(--font-display); font-size:22px; color: var(--brass); }
.chart-card svg{ width:100%; height:auto; display:block; }
.chart-card .chart-line{
  stroke-dasharray: 500;
  stroke-dashoffset: 500;
  animation: drawLine 1.8s ease-out forwards;
  animation-play-state: paused;
}
.chart-card.is-visible .chart-line{ animation-play-state: running; }
@keyframes drawLine{ to{ stroke-dashoffset: 0; } }
@media (prefers-reduced-motion: reduce){ .chart-card .chart-line{ animation: none; stroke-dashoffset:0; } }

.chart-badge{
  position:absolute; top:-16px; right: 20px;
  background: var(--navy); color: var(--brass-bright);
  font-family: var(--font-display); font-size:13px;
  padding: 8px 16px; border-radius: 999px;
  box-shadow: 0 10px 20px -8px rgba(15,31,46,0.4);
}

.trust-row{
  margin-top: var(--space-3xl);
  padding: var(--space-lg) 0;
  border-top: 1px solid var(--line);
  display:flex; flex-wrap:wrap; gap: var(--space-lg) var(--space-2xl);
  justify-content:center;
  position:relative;
}
.trust-row span{
  font-family: var(--font-display); font-style:italic; font-size:15px; color: var(--navy-soft); opacity:0.75;
}

/* ==========================================================================
   Stats band
   ========================================================================== */
.stats-band{
  background: linear-gradient(160deg, var(--navy) 0%, #0a1720 100%);
  color: var(--ivory); padding: var(--space-2xl) 0;
  position:relative; overflow:hidden;
}
.stats-band::before{
  content:"";
  position:absolute; inset:0;
  background-image: radial-gradient(rgba(199,155,61,0.16) 1px, transparent 1.4px);
  background-size: 24px 24px;
  mask-image: radial-gradient(ellipse 70% 100% at 50% 0%, black, transparent 80%);
}
.stats-grid{ position:relative; display:grid; grid-template-columns: repeat(2,1fr); gap: var(--space-xl); text-align:center; }
@media (min-width:780px){ .stats-grid{ grid-template-columns: repeat(4,1fr); } }
.stat .num{ font-family: var(--font-display); font-size: clamp(2rem,4vw,2.8rem); color: var(--brass-bright); }
.stat .label{ font-size:12.5px; letter-spacing:0.08em; text-transform:uppercase; color: rgba(247,245,239,0.7); margin-top:6px; }
.stat .bar{ width:100%; max-width:80px; height:2px; background: rgba(247,245,239,0.15); margin: 14px auto 0; overflow:hidden; }
.stat .bar span{ display:block; height:100%; width:0%; background: var(--brass-bright); transition: width 1.4s cubic-bezier(.16,.84,.44,1); }

/* ==========================================================================
   Sectors chip grid
   ========================================================================== */
.sector-grid{ display:grid; grid-template-columns: repeat(2,1fr); gap: var(--space-md); }
@media (min-width:720px){ .sector-grid{ grid-template-columns: repeat(3,1fr); } }
.sector-chip{
  display:flex; align-items:center; gap: var(--space-md);
  border: 1px solid var(--line); border-radius:4px; padding: var(--space-lg);
  transition: border-color 200ms ease, background 200ms ease, transform 200ms ease;
}
.sector-chip:hover{ border-color: var(--brass); background: rgba(169,129,47,0.06); transform: translateY(-3px); }
.sector-chip .ic{
  width:42px; height:42px; flex:none; border-radius:50%;
  background: var(--navy); color: var(--brass-bright);
  display:flex; align-items:center; justify-content:center;
}
.sector-chip .ic svg{ width:19px; height:19px; }
.sector-chip span.name{ font-family: var(--font-display); font-size:15.5px; color: var(--navy); }

/* ==========================================================================
   Sections
   ========================================================================== */
section{ padding: var(--space-2xl) 0; }
.section-lg{ padding: var(--space-3xl) 0; }
.section-band{ background: var(--ivory-alt); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.section-head{ max-width:640px; margin-bottom: var(--space-2xl); }
.section-head.center{ margin-left:auto; margin-right:auto; text-align:center; }
.section-head h2{ font-size: clamp(1.8rem, 3.2vw, 2.6rem); }
.reveal{ opacity:1; }

/* ==========================================================================
   Services — alternating rows
   ========================================================================== */
.service-row{
  display:grid; grid-template-columns:1fr; gap: var(--space-lg);
  padding: var(--space-2xl) var(--space-lg); border-top:1px solid var(--line); align-items:start;
  border-left: 2px solid transparent;
  transition: border-color 250ms ease, background 250ms ease;
}
.service-row:last-child{ border-bottom:1px solid var(--line); }
.service-row:hover{ border-left-color: var(--brass); background: rgba(169,129,47,0.05); }
@media (min-width:860px){ .service-row{ grid-template-columns: 64px 200px 1fr; gap: var(--space-xl); align-items:center; } }
.service-row .ic{
  width:48px; height:48px; border-radius:50%; border:1px solid var(--line);
  display:flex; align-items:center; justify-content:center; color: var(--brass);
}
.service-row .ic svg{ width:21px; height:21px; }
.service-row .num{ font-family: var(--font-display); font-style:italic; font-size:15px; color: var(--brass); }
.service-row h3{ font-size: clamp(20px,2.2vw,26px); margin-top:6px; }
.service-row p{ color: var(--navy-soft); max-width:60ch; margin-top: var(--space-sm,8px); }
@media (min-width:860px){ .service-row .num{ margin-top:0; } }

/* ==========================================================================
   Process
   ========================================================================== */
.steps{ display:grid; grid-template-columns:1fr; gap: var(--space-lg); }
@media (min-width:780px){ .steps{ grid-template-columns: repeat(4,1fr); } }
.step{ border-top: 2px solid var(--navy); padding-top: var(--space-lg); }
.step .num{ font-family: var(--font-display); font-style:italic; font-size:32px; color: var(--brass); display:block; margin-bottom: var(--space-md); }
.step h4{ font-size:17px; }
.step p{ color: var(--navy-soft); font-size:14px; margin-top:8px; line-height:1.6; }

/* ==========================================================================
   Team
   ========================================================================== */
.team-grid{ display:grid; grid-template-columns:1fr; gap: var(--space-lg); }
@media (min-width:720px){ .team-grid{ grid-template-columns: repeat(3,1fr); } }
.team-card{ text-align:center; }
.team-avatar{
  width:88px; height:88px; margin: 0 auto var(--space-md);
  border-radius:50%; background: var(--navy);
  display:flex; align-items:center; justify-content:center;
  font-family: var(--font-display); font-size:26px; color: var(--brass-bright);
  border: 1px solid var(--brass);
}
.team-card h4{ font-size:18px; }
.team-card .role{ font-family: var(--font-body); font-size:11.5px; letter-spacing:0.08em; text-transform:uppercase; color: var(--brass); margin-top:4px; }
.team-card p.bio{ font-size:13.5px; color: var(--navy-soft); margin-top:10px; line-height:1.6; }

/* ==========================================================================
   Pull-quote / case result
   ========================================================================== */
.quote-block{ max-width: 780px; margin: 0 auto; text-align:center; }
.quote-block blockquote{
  font-family: var(--font-display); font-style: italic;
  font-size: clamp(1.4rem, 2.8vw, 2rem); line-height:1.5; margin:0; color: var(--navy);
}
.quote-block cite{ display:block; margin-top: var(--space-lg); font-style:normal; font-size:13px; letter-spacing:0.06em; text-transform:uppercase; color: var(--brass); }

.result-chip{
  display:inline-flex; align-items:center; gap:10px;
  border: 1px solid var(--line); border-radius:999px; padding:10px 20px; margin-top: var(--space-xl);
  font-size:13.5px; color: var(--navy-soft);
}
.result-chip b{ font-family: var(--font-display); color: var(--brass); font-size:16px; }

/* ==========================================================================
   CTA band
   ========================================================================== */
.cta-band{ background: var(--navy); color: var(--ivory); text-align:center; padding: var(--space-3xl) 0; }
.cta-band h2{ color: var(--ivory); font-size: clamp(2rem,4.2vw,3rem); }
.cta-band .lede{ color: rgba(247,245,239,0.75); margin: var(--space-md) auto var(--space-xl); text-align:center; }
.cta-band .btn-primary{ background: var(--brass); color: var(--navy); }
.cta-band .btn-primary:hover{ background: var(--brass-bright); }
.cta-band .btn-ghost{ border-color: var(--line-dark); color: var(--ivory); }
.cta-band .btn-ghost:hover{ border-color: var(--brass-bright); color: var(--brass-bright); }

/* ==========================================================================
   Footer
   ========================================================================== */
.site-footer{ border-top: 1px solid var(--line); padding: var(--space-2xl) 0; }
.footer-row{ display:flex; flex-wrap:wrap; gap: var(--space-lg); justify-content:space-between; align-items:center; }
.footer-row .brand .word{ font-size:17px; }
.footer-links{ display:flex; gap: var(--space-lg); font-size:12.5px; font-weight:500; letter-spacing:0.02em; color: var(--navy-soft); }
.footer-note{ margin-top: var(--space-lg); padding-top: var(--space-lg); border-top:1px solid var(--line); font-size:12.5px; color: var(--navy-soft); opacity:0.75; }

.text-center{ text-align:center; }
.mt-lg{ margin-top: var(--space-lg); }
