/* =========================================================
   ACTUARIALENS — DESIGN SYSTEM
   Display   Fraunces      (editorial authority)
   Body      Inter         (clean, scalable)
   Data/Mono IBM Plex Mono (quantitative precision)
   Signature the Lens — a reticle/instrument motif that
   recurs as the brand mark, the hero instrument and the
   section eyebrow dot. It is the one recurring flourish;
   everything else stays quiet so it keeps its meaning.
   ========================================================= */

:root{
  /* ---- color: ink & surface ---- */
  --ink: #0f2540;
  --muted: #5a6a7e;
  --paper: #fbf8f3;
  --cream: #f2ece2;
  --white: #ffffff;
  --line: rgba(15, 37, 64, .13);
  --line-strong: rgba(15, 37, 64, .22);

  /* ---- color: navy scale (dark panels, headings on light) ---- */
  --navy-950: #0a1628;
  --navy-900: #0f2540;
  --navy-800: #1a3a5c;
  --navy-700: #234b75;
  --navy-600: #2d5e8f;
  --navy-light: #e8edf4;

  /* ---- color: gold (the one accent — used sparingly, on purpose) ---- */
  --gold: #c9a44c;
  --gold-light: #dcc7a0;
  --gold-dark: #a9824f;

  /* ---- elevation: three steps, nothing bespoke ---- */
  --shadow-sm: 0 10px 26px rgba(10, 22, 40, .14);
  --shadow-md: 0 20px 48px rgba(10, 22, 40, .18);
  --shadow-lg: 0 30px 80px rgba(10, 22, 40, .22);

  /* ---- radius scale ---- */
  --r-sm: 10px;
  --r-md: 16px;
  --r-lg: 26px;
  --r-full: 999px;

  /* ---- the two dark-panel treatments used site-wide ---- */
  --panel-solid: var(--navy-950);
  --panel-gradient: radial-gradient(130% 160% at 15% -10%, var(--navy-700) 0%, var(--navy-950) 62%);

  /* ---- layout ---- */
  --container: 1240px;
  --gutter: 20px;

  /* ---- motion ---- */
  --ease: cubic-bezier(.22, .8, .28, 1);
  --speed-fast: .2s;
  --speed-base: .3s;
  --speed-slow: .7s;

  /* ---- type ---- */
  --font-display: "Gill Sans MT", "Gill Sans", "Trebuchet MS", Arial, sans-serif;
  --font-body: "Gill Sans MT", "Gill Sans", "Trebuchet MS", Arial, sans-serif;
  --font-mono: "Gill Sans MT", "Gill Sans", "Trebuchet MS", Arial, sans-serif;
}

/* =========================================================
   RESET & BASE
   ========================================================= */
*{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: var(--font-body);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
body::before{
  content: "";
  display: block;
  height: 4px;
  width: 100%;
  background: linear-gradient(90deg, var(--navy-950), var(--navy-600) 45%, var(--gold) 100%);
}
a{ text-decoration: none; color: inherit; }
img, svg{ display: block; max-width: 100%; }
h1, h2, h3{ color: var(--ink); }
::selection{ background: var(--navy-700); color: var(--white); }
:focus-visible{ outline: 2px solid var(--gold); outline-offset: 3px; border-radius: 4px; }

.container{ width: min(calc(100% - 40px), var(--container)); margin: auto; }
.section{ padding: 104px 0; }
.soft-section{ background: var(--cream); }

/* -------------------- Eyebrows & labels (the Lens dot) -------------------- */
.eyebrow, .eyebrow-label{
  display: inline-flex;
  align-items: center;
  gap: 9px;
  font-family: var(--font-mono);
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--gold-dark);
}
.eyebrow::before, .eyebrow-label::before{
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--gold);
  flex-shrink: 0;
}
.eyebrow-line{ display: none; }

/* Eyebrows sitting on a dark panel read gold-light instead of gold-dark */
.hero-section .eyebrow,
.page-hero .eyebrow-label,
.callout .eyebrow-label,
.tax-services-heading .eyebrow-label,
.services-context-card > span,
.service-audience-card > span,
.service-deliverables-section .eyebrow-label{
  color: var(--gold-light);
}
.hero-section .eyebrow::before,
.page-hero .eyebrow-label::before,
.callout .eyebrow-label::before,
.tax-services-heading .eyebrow-label::before,
.service-deliverables-section .eyebrow-label::before{
  background: var(--gold-light);
}

/* =========================================================
   HEADINGS — shared scale so every H2 on the site agrees
   ========================================================= */
.hero-heading, .page-hero h1{
  font-family: var(--font-display);
  font-weight: 500;
  line-height: 1.02;
  letter-spacing: -.01em;
}
.feature-panel h2, .section-intro h2, .callout h2, .contact-copy h2,
.content-grid h2, .service-detail-list h2, .strategic-intro h2,
.service-detail-intro h2, .service-regulatory-box h2, .service-note-box h2,
.service-deliverables-section h2{
  font-family: var(--font-display);
  font-weight: 500;
  font-size: clamp(2.1rem, 3.4vw, 3.2rem);
  line-height: 1.06;
  margin: 0;
}

/* =========================================================
   HEADER / NAVIGATION
   ========================================================= */
.site-header{
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(251, 248, 243, .96);
  backdrop-filter: blur(16px) saturate(1.08);
  border-bottom: 1px solid var(--line);
  box-shadow: 0 8px 24px rgba(10, 22, 40, .06);
}
.navigation-wrapper{
  min-height: 110px;
  display: grid;
  grid-template-columns: minmax(280px, 380px) 1fr auto;
  align-items: center;
  gap: 32px;
}
.brand{ display: flex; align-items: center; gap: 12px; }
.brand-image{ gap: 0; padding: 0; }
.site-header .brand-image{ display: flex; align-items: center; justify-self: start; }
.site-header .brand-image img{ height: 84px; width: auto; object-fit: contain; max-width: 100%; }
.brand-image img{ height: 72px; width: auto; object-fit: contain; }
.brand-icon{ display: grid; place-items: center; width: 42px; height: 42px; color: var(--navy-900); flex-shrink: 0; }
.brand-icon svg{ width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 1.6; }
.brand-icon .brand-dot{ fill: var(--gold); stroke: none; }
.brand-light .brand-icon{ color: var(--gold-light); }
.brand-light .brand-icon .brand-dot{ fill: var(--gold-light); }
.brand-text{ display: grid; line-height: 1.15; }
.brand-text strong{ font-family: var(--font-mono); font-size: .82rem; letter-spacing: .11em; font-weight: 600; color: var(--navy-900); }
.brand-text small{ margin-top: 3px; color: var(--muted); font-size: .66rem; letter-spacing: .02em; }

.primary-navigation{ display: flex; justify-content: center; align-items: center; gap: 32px; font-size: .94rem; font-weight: 600; }
.primary-navigation a{ position: relative; padding: 10px 0; line-height: 1.2; white-space: nowrap; }
.primary-navigation a::after{
  content: "";
  position: absolute;
  left: 0; right: 100%; bottom: 0;
  height: 1.4px;
  background: var(--gold);
  transition: right var(--speed-base) var(--ease);
}
.primary-navigation a:hover::after, .primary-navigation a:focus-visible::after{ right: 0; }
.primary-navigation a:hover{ color: var(--navy-700); }
.navigation-cta{ justify-self: end; min-height: 62px; padding: 0 30px; border-radius: var(--r-md); white-space: nowrap; font-size: .96rem; }
.mobile-menu-button{ display: none; }

/* --- Services dropdown --- */
.nav-item-dropdown{ position: relative; display: flex; align-items: center; }
.nav-dropdown-toggle{
  display: inline-flex; align-items: center; gap: 7px;
  padding: 10px 0; border: 0; background: transparent;
  color: var(--ink); font: inherit; font-weight: 600; line-height: 1.2; cursor: pointer; white-space: nowrap;
}
.nav-dropdown-toggle svg{ width: 11px; height: 7px; fill: none; stroke: currentColor; stroke-width: 1.7; transition: transform var(--speed-fast) var(--ease); }
.nav-dropdown-toggle::after{ content: ""; position: absolute; left: 0; right: 100%; bottom: 0; height: 1.4px; background: var(--gold); transition: right var(--speed-base) var(--ease); }
.nav-dropdown-toggle:hover, .nav-dropdown-toggle:focus-visible, .nav-dropdown-toggle.is-current{ color: var(--navy-700); }
.nav-dropdown-toggle:hover::after, .nav-dropdown-toggle:focus-visible::after, .nav-dropdown-toggle.is-current::after{ right: 0; }
.nav-item-dropdown.open .nav-dropdown-toggle svg,
.nav-item-dropdown:hover .nav-dropdown-toggle svg,
.nav-item-dropdown:focus-within .nav-dropdown-toggle svg{ transform: rotate(180deg); }

.nav-dropdown-menu{
  position: absolute; top: calc(100% + 20px); left: 50%;
  z-index: 80; width: min(510px, calc(100vw - 40px)); padding: 12px;
  visibility: hidden; opacity: 0; pointer-events: none;
  transform: translate(-50%, 10px);
  background: var(--white); border: 1px solid var(--line); border-radius: 18px;
  box-shadow: var(--shadow-md);
  transition: opacity var(--speed-fast) var(--ease), transform var(--speed-fast) var(--ease), visibility var(--speed-fast);
}
.nav-dropdown-menu::before{ content: ""; position: absolute; left: 0; right: 0; top: -24px; height: 24px; }
.nav-item-dropdown:hover .nav-dropdown-menu,
.nav-item-dropdown:focus-within .nav-dropdown-menu,
.nav-item-dropdown.open .nav-dropdown-menu{ visibility: visible; opacity: 1; pointer-events: auto; transform: translate(-50%, 0); }
.primary-navigation .nav-dropdown-menu a{ display: block; padding: 13px 14px; white-space: normal; border-radius: 11px; transition: background var(--speed-fast) var(--ease), color var(--speed-fast) var(--ease); }
.primary-navigation .nav-dropdown-menu a::after{ display: none; }
.primary-navigation .nav-dropdown-menu a:hover, .primary-navigation .nav-dropdown-menu a:focus-visible{ background: var(--navy-light); color: var(--navy-900); }
.nav-dropdown-overview{ margin-bottom: 7px; background: var(--panel-gradient); color: var(--white); }
.nav-dropdown-overview:hover, .nav-dropdown-overview:focus-visible{ background: linear-gradient(135deg, var(--navy-900), var(--navy-600)); color: var(--white); }
.nav-dropdown-overview span{ display: block; margin-bottom: 4px; color: var(--gold-light); font-family: var(--font-mono); font-size: .64rem; letter-spacing: .11em; text-transform: uppercase; }
.nav-dropdown-overview strong{ font-family: var(--font-display); font-size: 1.1rem; font-weight: 500; }
.nav-dropdown-links{ display: grid; grid-template-columns: 1fr 1fr; gap: 3px; }
.nav-dropdown-links a:last-child:nth-child(odd){ grid-column: 1 / -1; }
.nav-dropdown-links strong{ display: block; color: var(--navy-900); font-size: .84rem; line-height: 1.32; }
.nav-dropdown-links span{ display: block; margin-top: 5px; color: var(--muted); font-size: .7rem; font-weight: 400; line-height: 1.42; }

/* =========================================================
   BUTTONS & LINKS
   ========================================================= */
.button{
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 50px; padding: 0 24px; border: 0; border-radius: var(--r-sm);
  font-family: var(--font-body); font-weight: 600; font-size: .92rem;
  cursor: pointer;
  transition: transform var(--speed-base) var(--ease), box-shadow var(--speed-base) var(--ease), background var(--speed-base) var(--ease);
}
.button-dark{
  color: var(--white);
  background: linear-gradient(155deg, var(--navy-900), var(--navy-700));
  box-shadow: var(--shadow-md);
}
.button-dark:hover{ transform: translateY(-2px); box-shadow: var(--shadow-lg); background: linear-gradient(155deg, var(--navy-800), var(--navy-600)); }
.button-light{ color: var(--navy-900); background: var(--white); }
.button-light:hover{ transform: translateY(-2px); }
.text-link{
  color: var(--gold-dark); font-weight: 600; display: inline-flex; align-items: center; gap: 6px;
  border-bottom: 1px solid var(--line-strong); padding-bottom: 2px;
  transition: border-color var(--speed-fast) var(--ease), color var(--speed-fast) var(--ease);
}
.text-link:hover{ border-color: var(--gold); color: var(--navy-700); }

/* =========================================================
   SHARED CARD PATTERN
   Every "grid of tiles" component on the site (services,
   insights, industries, partners, offerings, directory,
   challenges, pressures, related links) is the same card
   with a different accent — so it's written once here and
   only overridden where content genuinely differs.
   ========================================================= */
.info-card, .industry-grid article, .partner-grid article,
.service-card, .insight-card, .service-offering-card,
.service-challenge-card, .business-pressure-grid article,
.related-service-links a, .service-directory-card{
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  transition: transform var(--speed-base) var(--ease), box-shadow var(--speed-base) var(--ease), border-color var(--speed-base) var(--ease);
}
.info-card:hover, .industry-grid article:hover, .partner-grid article:hover,
.service-card:hover, .insight-card:hover, .service-offering-card:hover,
.related-service-links a:hover, .service-directory-card:hover{
  transform: translateY(-3px);
  box-shadow: var(--shadow-sm);
  border-color: var(--line-strong);
}
.service-card h3, .info-card h3, .industry-grid h3, .partner-grid h3, .service-offering-card h3,
.service-challenge-card h3, .business-pressure-grid h3{
  font-family: var(--font-display);
  font-size: 1.5rem;
  font-weight: 500;
  margin: 0 0 6px;
  color: var(--navy-900);
}

/* =========================================================
   HERO
   ========================================================= */
.hero-section{
  position: relative;
  padding: 64px 0 110px;
  overflow: hidden;
  background: var(--panel-gradient);
  color: var(--navy-light);
}
.hero-background-shape{ position: absolute; border-radius: 50%; pointer-events: none; }
.hero-shape-one{
  width: 640px; height: 640px; right: -260px; top: -260px;
  background: radial-gradient(circle, rgba(201, 164, 76, .14), transparent 68%);
}
.hero-layout{ display: grid; grid-template-columns: 1fr .92fr; gap: 64px; align-items: center; }
.hero-heading{ font-size: clamp(2.9rem, 5.4vw, 4.9rem); margin: 22px 0; max-width: 640px; color: var(--white); }
.hero-heading span{ display: block; font-style: italic; color: var(--gold-light); }
.hero-description{ max-width: 520px; color: rgba(232, 237, 244, .78); font-size: 1.08rem; }
.hero-actions{ display: flex; align-items: center; gap: 26px; margin-top: 36px; flex-wrap: wrap; }
.hero-section .text-link{ color: var(--gold-light); border-bottom-color: rgba(220, 199, 160, .4); }
.hero-section .text-link:hover{ color: var(--white); border-color: var(--white); }
.hero-section .button-dark{ background: linear-gradient(155deg, var(--gold), var(--gold-dark)); box-shadow: var(--shadow-lg); }

/* --- Signature element: the Lens instrument --- */
.lens-instrument{ position: relative; display: grid; place-items: center; min-height: 440px; }
.lens-glow{
  position: absolute; width: 70%; aspect-ratio: 1; border-radius: 50%;
  background: radial-gradient(circle, rgba(201, 164, 76, .28), rgba(220, 199, 160, .1) 55%, transparent 75%);
  filter: blur(6px);
}
.lens-dial{ position: relative; width: min(400px, 86vw); aspect-ratio: 1; display: grid; place-items: center; }
.focus-graphic{ width: 100%; height: 100%; overflow: visible; }
.focus-graphic circle, .focus-graphic ellipse{ transition: transform .4s var(--ease); }
@keyframes focus-drift{ 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-6px); } }
.hero-visual:hover .focus-graphic{ animation: focus-drift 3.2s var(--ease) infinite; }
.lens-readouts{ display: grid; grid-template-columns: 1fr 1fr; gap: 12px; width: 100%; margin-top: 22px; }
.lens-readout{ padding: 13px 15px; background: var(--white); border: 1px solid var(--line); border-radius: var(--r-sm); box-shadow: var(--shadow-md); }
.lens-readout span{ display: block; font-family: var(--font-mono); font-size: .62rem; letter-spacing: .06em; color: var(--muted); text-transform: uppercase; }
.lens-readout strong{ display: block; margin-top: 6px; font-family: var(--font-mono); font-size: 1.15rem; font-weight: 600; color: var(--navy-800); }

@media (min-width: 901px){
  .lens-instrument{ min-height: 560px; }
  .lens-readouts{ position: absolute; inset: 0; display: block; margin: 0; pointer-events: none; }
  .lens-readout{ position: absolute; width: 150px; pointer-events: auto; }
  .lens-readout.readout-n{ top: -4%; left: 50%; transform: translateX(-50%); }
  .lens-readout.readout-e{ right: -9%; top: 50%; transform: translateY(-50%); }
  .lens-readout.readout-s{ bottom: -4%; left: 50%; transform: translateX(-50%); }
  .lens-readout.readout-w{ left: -9%; top: 50%; transform: translateY(-50%); }
}

/* --- Full-bleed photographic hero variant --- */
.hero-section-image{
  position: relative;
  display: flex;
  align-items: stretch;
  min-height: clamp(480px, 60vh, 620px);
  padding: 0;
  overflow: hidden;
  isolation: isolate;
  background-color: var(--cream);
}
.hero-section-image .hero-media{ position: absolute; inset: 0; z-index: 0; }
.hero-section-image .hero-media img{ width: 100%; height: 100%; object-fit: cover; object-position: center right; }
/* Light overlay keeps the left-side text readable without hiding the image */
.hero-section-image .hero-media-overlay{
  position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(90deg,
    rgba(251, 248, 243, .995) 0%,
    rgba(251, 248, 243, .97) 30%,
    rgba(251, 248, 243, .82) 42%,
    rgba(251, 248, 243, .42) 56%,
    rgba(251, 248, 243, .08) 72%,
    rgba(10, 22, 40, .04) 100%);
}
.hero-section-image .hero-layout{ position: relative; z-index: 2; display: flex; align-items: center; width: 100%; min-height: inherit; }
.hero-section-image .hero-content{ width: min(620px, 54%); max-width: 620px; padding: clamp(60px, 7vw, 100px) 0 clamp(60px, 7vw, 100px) clamp(60px, 6vw, 120px); }
.hero-section-image .eyebrow{ color: var(--gold-dark); }
.hero-section-image .hero-heading{ max-width: 580px; margin-bottom: 20px; color: var(--navy-900); font-size: clamp(2.2rem, 4vw, 3.6rem); line-height: 1.04; }
.hero-section-image .hero-heading span{ color: var(--gold); }
.hero-section-image .hero-description{ max-width: 520px; color: var(--muted); font-size: 1rem; line-height: 1.65; }
.hero-section-image .text-link{ color: var(--gold-dark); }
.hero-section-image .text-link:hover{ color: var(--navy-700); }
.hero-section-image .button-dark{ background: var(--navy-900); color: var(--white); }
.hero-section-image .button-dark:hover{ background: var(--navy-700); }

/* =========================================================
   FEATURE PANEL / CALLOUT / PAGE HERO
   All three "one dark or tinted block" moments share sizing;
   only background differs by intent.
   ========================================================= */
.feature-panel{
  display: grid; grid-template-columns: 1.1fr .9fr; gap: 60px; padding: 64px;
  background: var(--navy-light); border-radius: var(--r-lg); border-left: 6px solid var(--navy-700);
}
.feature-panel p{ color: var(--navy-900); opacity: .75; }

.callout{
  display: flex; align-items: center; justify-content: space-between; gap: 35px; padding: 58px;
  background: var(--panel-gradient); color: var(--white); border-radius: var(--r-lg);
}
.callout h2, .callout-title{ color: var(--white); max-width: 900px; }

.page-hero{
  padding: 118px 0 84px;
  background: var(--panel-gradient);
  color: var(--navy-light);
}
.page-hero h1{ max-width: 820px; font-size: clamp(2.7rem, 5vw, 4.4rem); margin: 18px 0; color: var(--white); }
.page-hero p:last-child{ max-width: 660px; color: rgba(232, 237, 244, .78); font-size: 1.08rem; }

/* =========================================================
   SERVICES (home grid)
   ========================================================= */
.services-section{ background: var(--paper); }
.section-intro{ display: grid; grid-template-columns: 1.2fr .8fr; gap: 60px; align-items: end; margin-bottom: 46px; }
.section-intro > p{ color: var(--muted); }
.services-grid{ display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
.service-card{
  position: relative; display: grid; grid-template-rows: auto 1fr auto; gap: 18px;
  min-height: 230px; padding: 30px; border-top: 3px solid var(--navy-700);
}
.service-card:hover{ border-top-color: var(--gold); }
.service-tag{
  display: inline-flex; width: fit-content; font-family: var(--font-mono); font-size: .62rem;
  letter-spacing: .1em; color: var(--navy-700); background: var(--navy-light);
  padding: 5px 10px; border-radius: var(--r-full);
}
.service-card p{ margin: 0; color: var(--muted); }
.service-card > a{ justify-self: start; font-family: var(--font-mono); font-size: .78rem; color: var(--navy-700); }

.home-services-grid{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
.home-services-grid .service-card{ min-height: 250px; }
.home-services-grid .service-card:nth-last-child(-n+2){ grid-column: span 1; }

/* =========================================================
   ABOUT PAGE
   ========================================================= */
.content-grid{ display: grid; grid-template-columns: .8fr 1.2fr; gap: 70px; }
.content-grid p{ color: var(--muted); }
.cards-three, .industry-grid, .partner-grid{ display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.info-card, .industry-grid article, .partner-grid article{ padding: 28px; }
.industry-grid{ grid-template-columns: repeat(2, 1fr); }
.industry-grid p{ color: var(--muted); }

.about-direction-section{ background: var(--cream); }
.about-section-intro{ margin-bottom: 34px; }
.about-values-grid{ display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.about-value-card{ position: relative; min-height: 100%; padding: 34px; border-top: 3px solid var(--gold); }
.about-value-card .value-number{ display: inline-flex; margin-bottom: 18px; font-family: var(--font-mono); font-size: .7rem; font-weight: 600; letter-spacing: .1em; color: var(--gold-dark); }
.about-value-card h3{ margin: 0 0 14px; color: var(--navy-900); }
.about-value-card p{ margin: 0; color: var(--muted); line-height: 1.78; }

.strategic-section{ background: var(--paper); }
.strategic-layout{ display: grid; grid-template-columns: .75fr 1.25fr; gap: 70px; align-items: start; }
.strategic-intro{ position: sticky; top: 145px; }
.strategic-intro h2{ margin: 16px 0 18px; line-height: 1.04; }
.strategic-intro > p:last-child{ margin: 0; color: var(--muted); }
.strategic-principles{ list-style: none; counter-reset: principle; display: grid; gap: 14px; margin: 0; padding: 0; }
.strategic-principles li{
  counter-increment: principle; display: grid; grid-template-columns: 48px 1fr; gap: 18px; align-items: start;
  padding: 22px 24px; background: var(--white); border: 1px solid var(--line); border-radius: var(--r-md);
  color: var(--navy-900); line-height: 1.65;
  transition: transform var(--speed-base) var(--ease), box-shadow var(--speed-base) var(--ease), border-color var(--speed-base) var(--ease);
}
.strategic-principles li::before{
  content: counter(principle, decimal-leading-zero);
  display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%;
  background: var(--navy-light); color: var(--navy-700); font-family: var(--font-mono); font-size: .72rem; font-weight: 600; letter-spacing: .04em;
}
.strategic-principles li:hover{ transform: translateY(-2px); box-shadow: var(--shadow-sm); border-color: var(--line-strong); }

/* =========================================================
   SERVICE DETAIL (single service page)
   ========================================================= */
.service-detail-list article{ display: grid; grid-template-columns: 70px 1fr; gap: 26px; padding: 36px 0; border-bottom: 1px solid var(--line); }
.service-detail-list article > span{ font-family: var(--font-mono); color: var(--gold); font-size: .85rem; }
.service-detail-list p{ color: var(--muted); }
.regulatory-box{ padding: 32px; background: var(--cream); border-radius: var(--r-md); border: 1px solid var(--line); }

.services-page-hero{ padding: 96px 0; background: linear-gradient(150deg, var(--paper), var(--cream)); }
.services-hero-layout{ display: grid; grid-template-columns: 1.15fr .85fr; gap: 70px; align-items: center; }
.services-page-hero h1, .service-detail-hero h1{
  margin: 18px 0 22px; font-family: var(--font-display); font-size: clamp(2.8rem, 5vw, 4.7rem);
  font-weight: 500; line-height: 1.02; letter-spacing: -.02em; color: var(--navy-900);
}
.services-page-hero .container > div > p:not(.eyebrow-label),
.service-detail-hero-copy > p:not(.eyebrow-label){ max-width: 650px; color: var(--muted); font-size: 1.07rem; line-height: 1.78; }
.service-hero-actions{ display: flex; align-items: center; gap: 24px; flex-wrap: wrap; margin-top: 32px; }

.services-context-card, .service-audience-card{
  padding: 38px; background: var(--panel-solid); border-radius: var(--r-lg); color: rgba(255, 255, 255, .78); box-shadow: var(--shadow-sm);
}
.services-context-card > span, .service-audience-card > span{ display: block; font-family: var(--font-mono); font-size: .67rem; font-weight: 600; letter-spacing: .11em; text-transform: uppercase; }
.services-context-card h2, .service-audience-card h2{ margin: 18px 0 16px; color: var(--white); font-family: var(--font-display); font-size: clamp(1.8rem, 2.7vw, 2.6rem); font-weight: 500; line-height: 1.08; }
.services-context-card p{ margin: 0; line-height: 1.75; }
.service-audience-card ul{ display: grid; gap: 12px; margin: 22px 0 0; padding: 0; list-style: none; color: rgba(255, 255, 255, .85); }
.service-audience-card li{ position: relative; padding: 14px 14px 14px 38px; background: rgba(255, 255, 255, .07); border: 1px solid rgba(255, 255, 255, .1); border-radius: 11px; }
.service-audience-card li::before{ content: ""; position: absolute; left: 17px; top: 1.25em; width: 8px; height: 8px; border-radius: 50%; background: var(--gold-light); }

.service-context-section{ background: var(--white); }
.service-context-section .content-grid p{ color: var(--muted); }

.service-directory-section{ background: var(--cream); }
.service-directory-grid{ display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.service-directory-card{ display: grid; grid-template-columns: 58px 1fr; gap: 24px; padding: 34px; border-top: 3px solid var(--gold); }
.service-directory-card:last-child:nth-child(odd){ grid-column: 1 / -1; }
.service-directory-number{ display: grid; place-items: center; width: 52px; height: 52px; border-radius: 50%; background: var(--navy-light); color: var(--navy-700); font-family: var(--font-mono); font-size: .76rem; font-weight: 600; }
.service-directory-card h2{ margin: 0 0 12px; font-family: var(--font-display); font-size: 1.9rem; font-weight: 500; line-height: 1.1; color: var(--navy-900); }
.service-directory-card p{ margin: 0; color: var(--muted); line-height: 1.72; }
.service-directory-card ul{ display: grid; gap: 7px; margin: 20px 0 0; padding: 0; list-style: none; color: var(--navy-900); font-size: .86rem; }
.service-directory-card li{ position: relative; padding-left: 18px; }
.service-directory-card li::before{ content: ""; position: absolute; left: 0; top: .65em; width: 7px; height: 7px; border-radius: 50%; background: var(--gold); }
.service-directory-link{ grid-column: 2; display: inline-flex; align-items: center; gap: 8px; width: max-content; margin-top: 4px; color: var(--gold-dark); font-weight: 600; border-bottom: 1px solid var(--line-strong); }

.business-pressure-grid{ display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.business-pressure-grid article{ padding: 28px; }
.business-pressure-grid span{ font-family: var(--font-mono); font-size: .7rem; font-weight: 600; color: var(--gold-dark); }
.business-pressure-grid h3{ margin: 16px 0 10px; font-size: 1.35rem; line-height: 1.18; }
.business-pressure-grid p{ margin: 0; color: var(--muted); line-height: 1.7; }

.service-regulatory-box{ display: grid; grid-template-columns: .85fr 1.15fr; gap: 60px; align-items: center; padding: 44px; }
.service-regulatory-box > p, .service-note-box > p{ margin: 0; color: var(--muted); line-height: 1.8; }
.service-note-box{ display: grid; grid-template-columns: .8fr 1.2fr; gap: 60px; align-items: center; padding: 42px; background: var(--cream); border: 1px solid var(--line); border-radius: var(--r-lg); }

.service-detail-hero{ padding: 96px 0; background: linear-gradient(150deg, var(--paper), var(--cream)); }
.service-detail-hero-layout{ display: grid; grid-template-columns: 1.12fr .88fr; gap: 72px; align-items: center; }

.service-challenges-section{ background: var(--white); }
.service-detail-split{ display: grid; grid-template-columns: .72fr 1.28fr; gap: 70px; align-items: start; }
.service-detail-intro{ position: sticky; top: 145px; }
.service-detail-intro h2{ margin: 16px 0 18px; font-size: clamp(2.1rem, 3.5vw, 3.2rem); line-height: 1.04; }
.service-detail-intro > p:last-child{ color: var(--muted); }
.service-challenge-list{ display: grid; gap: 14px; }
.service-challenge-card{ display: grid; grid-template-columns: 48px 1fr; gap: 18px; padding: 24px; background: var(--paper); }
.service-challenge-card > span{ display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--navy-light); color: var(--navy-700); font-family: var(--font-mono); font-size: .7rem; font-weight: 600; }
.service-challenge-card h3{ margin: 0 0 7px; font-size: 1.35rem; line-height: 1.18; }
.service-challenge-card p{ margin: 0; color: var(--muted); line-height: 1.72; }

.service-offerings-section{ background: var(--cream); }
.service-offering-grid{ display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.service-offering-card{ padding: 28px; border-top: 3px solid var(--navy-700); }
.service-offering-card > span{ font-family: var(--font-mono); font-size: .68rem; font-weight: 600; color: var(--gold-dark); }
.service-offering-card h3{ margin: 16px 0 10px; font-size: 1.35rem; line-height: 1.18; }
.service-offering-card p{ margin: 0; color: var(--muted); line-height: 1.7; }

.service-deliverables-section{ background: var(--navy-950); color: rgba(255, 255, 255, .8); }
.service-deliverables-layout{ display: grid; grid-template-columns: .8fr 1.2fr; gap: 70px; align-items: center; }
.service-deliverables-section h2{ margin: 16px 0 18px; color: var(--white); line-height: 1.05; }
.service-deliverables-section p{ color: rgba(255, 255, 255, .7); }
.service-deliverables-section ul{ display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 0; padding: 0; list-style: none; }
.service-deliverables-section li{ position: relative; padding: 18px 18px 18px 42px; background: rgba(255, 255, 255, .07); border: 1px solid rgba(255, 255, 255, .1); border-radius: 12px; color: var(--white); }
.service-deliverables-section li::before{ content: "✓"; position: absolute; left: 17px; color: var(--gold-light); font-weight: 700; }

.related-services-section{ background: var(--paper); }
.related-service-links{ display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.related-service-links a{ display: block; padding: 22px; }
.related-service-links strong{ display: block; color: var(--navy-900); }
.related-service-links span{ display: block; margin-top: 6px; color: var(--muted); font-size: .82rem; line-height: 1.55; }
.service-cta-section{ padding-top: 0; }

/* =========================================================
   INSIGHTS
   ========================================================= */
.insights-grid{ display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.insight-card{ overflow: hidden; }
.insight-visual{ height: 210px; display: flex; align-items: flex-end; padding: 20px; }
.visual-one{ background: linear-gradient(150deg, var(--navy-700), var(--gold-dark)); }
.visual-two{ background: linear-gradient(150deg, var(--gold-light), var(--navy-800)); }
.visual-three{ background: linear-gradient(150deg, var(--navy-950), var(--gold)); }
.insight-visual span{ padding: 7px 12px; color: var(--white); background: rgba(23, 18, 26, .32); border-radius: var(--r-full); font-family: var(--font-mono); font-size: .64rem; letter-spacing: .04em; }
.insight-body{ padding: 24px; }
.insight-body small{ font-family: var(--font-mono); color: var(--muted); font-size: .72rem; }
.insight-body h3{ font-family: var(--font-display); font-size: 1.4rem; font-weight: 500; margin: 10px 0 14px; }

/* =========================================================
   CONTACT
   ========================================================= */
.contact-shell{
  display: grid; grid-template-columns: .85fr 1.15fr; gap: 64px; padding: 60px;
  background: var(--panel-gradient); color: var(--white); border-radius: var(--r-lg);
}
.contact-meta{ display: grid; gap: 18px; margin-top: 34px; }
.contact-meta span{ display: block; font-family: var(--font-mono); color: rgba(255, 255, 255, .55); font-size: .68rem; letter-spacing: .04em; }
.contact-form{ padding: 30px; background: var(--white); color: var(--ink); border-radius: var(--r-md); }
.form-row{ display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }
label{ display: grid; gap: 7px; margin-bottom: 16px; font-size: .78rem; font-weight: 600; }
input, select, textarea{
  width: 100%; padding: 13px 14px; border: 1px solid var(--line); border-radius: var(--r-sm);
  background: var(--cream); font: inherit;
  transition: border-color var(--speed-fast) var(--ease), background var(--speed-fast) var(--ease);
}
input:focus, select:focus, textarea:focus{ border-color: var(--gold); background: var(--white); outline: none; }
#form-status{ font-size: .85rem; color: var(--muted); }

/* =========================================================
   TAX SERVICES SHOWCASE (photo-backed, maroon accent page)
   ========================================================= */
.tax-services-showcase{
  position: relative;
  overflow: hidden;
  color: var(--white);
  background: linear-gradient(rgba(11, 14, 20, .91), rgba(18, 12, 10, .95)),
    url("assets/images/actuarialens-hero-maroon.webp") center / cover no-repeat;
}
.tax-services-showcase::before{
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(circle at 18% 12%, rgba(201, 164, 76, .16), transparent 32%),
    radial-gradient(circle at 82% 78%, rgba(35, 75, 117, .18), transparent 36%);
}
.tax-services-showcase .container{ position: relative; z-index: 1; }
.tax-services-heading{ max-width: 820px; margin: 0 auto 48px; text-align: center; }
.tax-services-heading h2{ margin: 16px 0 18px; color: var(--white); font-family: var(--font-display); font-size: clamp(2.2rem, 4vw, 3.4rem); font-weight: 500; line-height: 1.06; }
.tax-services-heading > p:last-child{ margin: 0; color: rgba(255, 255, 255, .72); line-height: 1.8; }
.tax-service-grid{ display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px; }
.tax-service-card{
  min-height: 335px; padding: 38px 32px; text-align: center;
  background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .14); border-radius: var(--r-md);
  backdrop-filter: blur(4px);
  transition: transform var(--speed-base) var(--ease), background var(--speed-base) var(--ease), border-color var(--speed-base) var(--ease), box-shadow var(--speed-base) var(--ease);
}
.tax-service-card:hover{ transform: translateY(-5px); background: rgba(15, 37, 64, .55); border-color: var(--gold-light); box-shadow: var(--shadow-md); }
.tax-service-icon{ display: grid; place-items: center; width: 72px; height: 72px; margin: 0 auto 22px; color: var(--gold-light); }
.tax-service-icon svg{ width: 60px; height: 60px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.tax-service-card h3{ margin: 0 0 16px; color: var(--white); font-family: var(--font-body); font-size: 1.22rem; font-weight: 700; line-height: 1.35; }
.tax-service-card p{ margin: 0; color: rgba(255, 255, 255, .68); font-size: .91rem; line-height: 1.78; }

/* =========================================================
   FOOTER
   ========================================================= */
.site-footer{ padding: 76px 0 26px; background: var(--navy-950); color: rgba(255, 255, 255, .88); }
.footer-grid{ display: grid; grid-template-columns: minmax(0, 1.55fr) repeat(3, minmax(140px, .7fr)); align-items: start; gap: clamp(36px, 4vw, 64px); }
.footer-brand{ min-width: 0; }
.footer-brand p{ max-width: 470px; color: rgba(255, 255, 255, .88); font-size: .98rem; line-height: 1.7; }
.footer-logo-link{ display: inline-flex; align-items: center; width: min(100%, 240px); max-width: 200px; padding: 0; }
.footer-logo-link img{ width: 100%; height: auto; max-height: none; object-fit: contain; }
.footer-logo-link + p{ margin-top: 18px; }
.site-footer h3{ color: var(--gold-light); font-family: var(--font-mono); font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; }
.site-footer a:not(.brand){ display: block; margin: 10px 0; color: rgba(255, 255, 255, .86); font-size: .9rem; font-weight: 500; transition: color var(--speed-fast) var(--ease); }
.site-footer a:not(.brand):hover{ color: var(--white); }
.footer-bottom{ display: flex; justify-content: space-between; margin-top: 54px; padding-top: 24px; border-top: 1px solid rgba(255, 255, 255, .2); color: rgba(255, 255, 255, .8); font-size: .78rem; font-family: var(--font-mono); }

/* =========================================================
   REVEAL / MOTION
   ========================================================= */
.reveal{ opacity: 0; transform: translateY(20px); transition: opacity var(--speed-slow) var(--ease), transform var(--speed-slow) var(--ease); }
.reveal.visible{ opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce){
  .reveal{ opacity: 1; transform: none; transition: none; }
  .focus-graphic{ animation: none !important; }
  html{ scroll-behavior: auto; }
}

/* =========================================================
   RESPONSIVE
   One consolidated set of breakpoints — 1200 / 1024 / 768 / 480 —
   used everywhere instead of the previous per-section breakpoints
   (1180/1050/1020/900/650 duplicated across the file).
   ========================================================= */

/* ---- 1200: nav breathing room tightens ---- */
@media (max-width: 1200px){
  .navigation-wrapper{ grid-template-columns: minmax(230px, 330px) 1fr auto; gap: 22px; min-height: 102px; }
  .site-header .brand-image img{ height: 76px; }
  .primary-navigation{ gap: 20px; font-size: .86rem; }
  .navigation-cta{ min-height: 56px; padding: 0 24px; }
  .nav-dropdown-menu{ left: 42%; }
}

/* ---- 1024: nav collapses to the mobile menu; layouts go single-column ---- */
@media (max-width: 1024px){
  .navigation-wrapper{ grid-template-columns: 1fr auto; min-height: 88px; gap: 14px; }
  .site-header .brand-image img{ height: 62px; }
  .navigation-cta{ display: none; }
  .mobile-menu-button{ display: block; width: 44px; height: 44px; background: none; border: 1px solid var(--line); border-radius: var(--r-sm); }
  .mobile-menu-button span{ display: block; height: 1.5px; background: var(--navy-900); margin: 5px; }
  .primary-navigation{
    position: fixed; inset: 88px 20px auto; display: none; flex-direction: column; gap: 2px;
    max-height: calc(100vh - 120px); overflow: auto; padding: 18px;
    background: var(--white); border: 1px solid var(--line); border-radius: var(--r-md); box-shadow: var(--shadow-lg);
  }
  .primary-navigation.active{ display: flex; }
  .primary-navigation > a{ padding: 11px 4px; }
  .nav-item-dropdown{ display: block; }
  .nav-dropdown-toggle{ width: 100%; justify-content: space-between; padding: 11px 4px; }
  .nav-dropdown-toggle::after{ display: none; }
  .nav-dropdown-menu{
    position: static; width: 100%; margin-top: 4px; padding: 9px; display: none;
    visibility: visible; opacity: 1; pointer-events: auto; transform: none; box-shadow: none;
    background: var(--cream); border-radius: 12px;
  }
  .nav-dropdown-menu::before{ display: none; }
  .nav-item-dropdown:hover .nav-dropdown-menu, .nav-item-dropdown:focus-within .nav-dropdown-menu{ display: none; transform: none; }
  .nav-item-dropdown.open .nav-dropdown-menu{ display: block; transform: none; }
  .nav-dropdown-links{ grid-template-columns: 1fr; }
  .nav-dropdown-links a:last-child:nth-child(odd){ grid-column: auto; }

  .hero-layout, .feature-panel, .contact-shell, .content-grid, .strategic-layout,
  .services-hero-layout, .service-detail-hero-layout, .service-detail-split,
  .service-deliverables-layout, .service-regulatory-box, .service-note-box{
    grid-template-columns: 1fr;
  }
  .strategic-intro, .service-detail-intro{ position: static; }
  .cards-three, .about-values-grid, .business-pressure-grid, .service-offering-grid,
  .home-services-grid, .services-grid, .insights-grid, .footer-grid, .tax-service-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .service-directory-grid{ grid-template-columns: 1fr; }
  .service-directory-card:last-child:nth-child(odd){ grid-column: auto; }
  .footer-brand{ grid-column: 1 / -1; }
  .section-intro{ grid-template-columns: 1fr; }
}

/* ---- 768: tighter section rhythm, single-column grids ---- */
@media (max-width: 768px){
  .container{ width: min(calc(100% - 28px), var(--container)); }
  .section{ padding: 72px 0; }
  .services-page-hero, .service-detail-hero{ padding: 72px 0; }
  .services-page-hero h1, .service-detail-hero h1{ font-size: clamp(2.35rem, 11vw, 3.4rem); }
  .hero-actions{ align-items: flex-start; flex-direction: column; }
  .lens-instrument{ min-height: auto; }
  .services-context-card, .service-audience-card{ padding: 28px 24px; }
  .service-directory-card{ grid-template-columns: 1fr; padding: 28px 24px; }
  .service-directory-link{ grid-column: 1; }
  .dashboard-metrics, .cards-three, .about-values-grid, .industry-grid, .partner-grid,
  .business-pressure-grid, .service-offering-grid, .home-services-grid, .services-grid,
  .insights-grid, .related-service-links, .form-row, .footer-grid, .tax-service-grid{
    grid-template-columns: 1fr;
  }
  .service-challenge-card{ grid-template-columns: 42px 1fr; padding: 20px 18px; gap: 14px; }
  .service-challenge-card > span{ width: 40px; height: 40px; }
  .service-deliverables-section ul{ grid-template-columns: 1fr; }
  .service-regulatory-box, .service-note-box{ padding: 30px 24px; gap: 24px; }
  .feature-panel, .callout, .contact-shell{ padding: 30px 22px; }
  .about-value-card{ padding: 28px 24px; }
  .strategic-principles li{ grid-template-columns: 42px 1fr; padding: 20px 18px; gap: 14px; }
  .strategic-principles li::before{ width: 40px; height: 40px; }
  .callout{ align-items: flex-start; flex-direction: column; }
  .service-detail-list article{ grid-template-columns: 1fr; }
  .nav-dropdown-links span{ display: none; }
  .brand-text small{ display: none; }
  .site-header .brand-image img{ height: 56px; }
  .brand-image img{ height: 42px; }
  .footer-brand{ grid-column: auto; }
  .footer-bottom{ flex-direction: column; gap: 8px; }
  .footer-logo-link{ width: min(100%, 300px); max-width: 300px; }

  .hero-section-image .hero-content{ width: min(590px, 58%); }
  .hero-section-image .hero-media-overlay{
    background: linear-gradient(90deg,
      rgba(251, 248, 243, .99) 0%,
      rgba(251, 248, 243, .96) 32%,
      rgba(251, 248, 243, .73) 50%,
      rgba(251, 248, 243, .15) 72%,
      rgba(10, 22, 40, .04) 100%);
  }
  .tax-services-heading{ margin-bottom: 34px; text-align: left; }
}

/* ---- 480: stacked hero image variant, full-width actions ---- */
@media (max-width: 480px){
  .hero-section-image{ display: flex; flex-direction: column; min-height: 0; background-color: var(--cream); }
  .hero-section-image .hero-layout{ order: 1; min-height: 0; }
  .hero-section-image .hero-content{ width: 100%; max-width: 100%; padding: 48px 24px 36px; }
  .hero-section-image .hero-heading{ max-width: 100%; font-size: clamp(1.8rem, 7vw, 2.4rem); }
  .hero-section-image .hero-description{ max-width: 100%; }
  .hero-section-image .hero-media{ position: relative; inset: auto; order: 2; width: 100%; aspect-ratio: 16 / 9; }
  .hero-section-image .hero-media img{ object-fit: cover; object-position: center; }
  .hero-section-image .hero-media-overlay{ background: linear-gradient(180deg, rgba(245, 242, 237, .16) 0%, rgba(10, 22, 40, .04) 100%); }
  .hero-section-image .hero-actions{ display: flex; flex-direction: column; align-items: flex-start; gap: 20px; }
  .hero-section-image .button{ width: 100%; justify-content: center; text-align: center; }
  .footer-logo-link{ width: min(100%, 260px); max-width: 260px; }
}


/* =========================================================
   ACTUARIALENS — MODERN GILL SANS TYPOGRAPHY
   Uses locally installed Gill Sans MT where available.
   No proprietary font files are bundled with the site.
   ========================================================= */
:root{
  --font-display:"Gill Sans MT","Gill Sans","Trebuchet MS",Arial,sans-serif;
  --font-body:"Gill Sans MT","Gill Sans","Trebuchet MS",Arial,sans-serif;
  --font-mono:"Gill Sans MT","Gill Sans","Trebuchet MS",Arial,sans-serif;
}

html{
  font-family:var(--font-body);
  font-synthesis:none;
  text-rendering:optimizeLegibility;
}

body,
button,
input,
select,
textarea{
  font-family:var(--font-body);
}

body{
  font-weight:400;
  letter-spacing:.005em;
}

h1,h2,h3,h4,h5,h6,
.hero-heading,
.page-hero h1,
.section-intro h2,
.feature-panel h2,
.callout h2,
.service-directory-card h2,
.services-context-card h2,
.service-audience-card h2,
.insight-body h3,
.tax-services-heading h2{
  font-family:var(--font-display);
  font-style:normal;
  font-weight:600;
  letter-spacing:-.028em;
}

.hero-heading,
.page-hero h1{
  font-weight:600;
  letter-spacing:-.04em;
  line-height:.98;
}

.page-hero p,
.hero-description,
.feature-panel p,
.section-intro > p,
.info-card p,
.service-card p,
.service-directory-card p,
.service-challenge-card p,
.service-offering-card p,
.tax-service-card p{
  font-family:var(--font-body);
  letter-spacing:.002em;
}

.eyebrow,
.eyebrow-label,
.service-tag,
.value-number,
.service-directory-number,
.service-challenge-card > span,
.service-offering-card > span,
.services-context-card > span,
.service-audience-card > span,
.business-pressure-grid span,
.nav-dropdown-overview span,
.contact-meta span,
.insight-body small,
.site-footer h3,
.footer-bottom{
  font-family:var(--font-body);
  font-weight:600;
  letter-spacing:.11em;
}

.primary-navigation,
.nav-dropdown,
.button,
.text-link,
.site-footer a,
label{
  font-family:var(--font-body);
}

.primary-navigation{
  font-weight:500;
  letter-spacing:.006em;
}

.primary-navigation a{
  letter-spacing:.006em;
}

.button{
  font-weight:600;
  letter-spacing:.005em;
}

.nav-dropdown-overview strong{
  font-family:var(--font-display);
  font-weight:600;
  letter-spacing:-.015em;
}

.brand-text strong,
.brand-text small{
  font-family:var(--font-body);
}

.service-card h3,
.info-card h3,
.partner-card h3,
.industry-card h3,
.tax-service-card h3{
  font-family:var(--font-display);
  font-weight:600;
  letter-spacing:-.018em;
}

/* More contemporary optical scale without changing the layout system */
.page-hero h1{ max-width:920px; }
.page-hero > .container > p:last-child{ max-width:760px; }

@media(max-width:650px){
  .hero-heading,
  .page-hero h1{
    letter-spacing:-.032em;
    line-height:1.02;
  }
}

/* Insights CMS public pages */
.insights-library-section{padding-top:72px}
.insight-category-filter{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:38px}
.insight-category-filter a{padding:10px 16px;border:1px solid var(--line-strong);border-radius:999px;background:rgba(255,255,255,.55);color:var(--ink);font-size:.86rem;font-weight:600;transition:.25s ease}
.insight-category-filter a:hover,.insight-category-filter a.active{border-color:var(--navy-900);background:var(--navy-900);color:var(--white)}
.insights-dynamic-grid{align-items:stretch}
.insight-card-dynamic{display:flex;flex-direction:column;overflow:hidden}
.insight-card-dynamic .insight-body{display:flex;flex:1;flex-direction:column}
.insight-card-dynamic .insight-body h2{margin:10px 0 12px;font-family:var(--font-display);font-size:clamp(1.35rem,2vw,1.72rem);font-weight:600;line-height:1.2;letter-spacing:-.025em}
.insight-card-dynamic .insight-body h2 a{color:var(--ink)}
.insight-card-dynamic .insight-body p{margin:0 0 20px;color:var(--muted)}
.insight-card-dynamic .insight-body .text-link{margin-top:auto;width:max-content}
.insight-card-media{position:relative;display:block;aspect-ratio:16/9;overflow:hidden;background:linear-gradient(145deg,var(--navy-950),var(--navy-700))}
.insight-card-media img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease)}
.insight-card-dynamic:hover .insight-card-media img{transform:scale(1.035)}
.insight-card-placeholder{position:absolute;inset:0;background:radial-gradient(circle at 75% 25%,rgba(201,164,76,.7),transparent 24%),linear-gradient(145deg,var(--navy-950),var(--navy-700))}
.insight-card-category{position:absolute;left:18px;bottom:18px;padding:7px 11px;border-radius:999px;background:rgba(10,22,40,.82);color:#fff;font-size:.72rem;font-weight:600;letter-spacing:.04em;backdrop-filter:blur(8px)}
.insight-card-featured{grid-column:span 2}
.insight-card-featured .insight-card-media{aspect-ratio:2/1}
.insights-empty{padding:54px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--white);text-align:center}
.insights-empty h2{margin-top:0;font-size:clamp(1.8rem,3vw,2.7rem)}
.insights-empty p{max-width:650px;margin:12px auto 22px;color:var(--muted)}

.insight-article{background:var(--paper)}
.insight-article-header{padding:88px 0 58px;background:linear-gradient(180deg,#f7f3ec 0%,var(--paper) 100%)}
.insight-article-header-inner{max-width:900px}
.insight-back-link{display:inline-block;margin-bottom:34px;color:var(--muted);font-size:.9rem;font-weight:600}
.insight-article-header h1{max-width:900px;margin:16px 0 20px;font-size:clamp(2.7rem,6vw,5.4rem);font-weight:600;line-height:.98;letter-spacing:-.045em}
.insight-article-deck{max-width:780px;margin:0;color:var(--muted);font-size:clamp(1.15rem,2vw,1.45rem);line-height:1.55}
.insight-article-meta{display:flex;flex-wrap:wrap;gap:10px 24px;margin-top:30px;color:#617083;font-size:.88rem}
.insight-article-meta span+span::before{content:"•";margin-right:24px;color:var(--gold)}
.insight-featured-image{max-width:1120px;margin-top:18px}
.insight-featured-image img{width:100%;max-height:640px;object-fit:cover;border-radius:var(--r-lg);box-shadow:var(--shadow-sm)}
.insight-article-layout{display:grid;grid-template-columns:minmax(0,760px) minmax(250px,330px);gap:clamp(46px,7vw,90px);align-items:start;padding-top:76px;padding-bottom:104px}
.insight-article-content{font-size:1.08rem;line-height:1.82;color:#2c4058}
.insight-article-content p{margin:0 0 1.55em}
.insight-article-content h2{margin:2.2em 0 .65em;font-size:clamp(1.75rem,3vw,2.5rem);font-weight:600;line-height:1.12;letter-spacing:-.025em;color:var(--ink)}
.insight-article-content h3{margin:1.9em 0 .55em;font-size:1.35rem;font-weight:600;color:var(--ink)}
.insight-article-content ul{display:grid;gap:9px;margin:0 0 1.7em;padding-left:1.3em}
.insight-article-aside{position:sticky;top:140px;padding:28px;border:1px solid var(--line);border-radius:var(--r-md);background:#fff;box-shadow:0 16px 45px rgba(10,22,40,.08)}
.insight-article-aside h2{margin:12px 0 12px;font-size:1.55rem;line-height:1.15}
.insight-article-aside p:not(.eyebrow-label){margin:0 0 22px;color:var(--muted)}
.related-insights-section{background:var(--cream)}
.related-insights-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.related-insights-grid article{padding:28px;border:1px solid var(--line);border-radius:var(--r-md);background:#fff}
.related-insights-grid span,.related-insights-grid small{color:var(--gold-dark);font-size:.78rem;font-weight:600}
.related-insights-grid h3{margin:14px 0;font-size:1.35rem;line-height:1.2}

@media(max-width:900px){
  .insight-card-featured{grid-column:span 1}
  .insight-card-featured .insight-card-media{aspect-ratio:16/9}
  .insight-article-layout{grid-template-columns:1fr}
  .insight-article-aside{position:static}
  .related-insights-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:650px){
  .insights-library-section{padding-top:48px}
  .insight-category-filter{gap:8px;margin-bottom:28px}
  .insight-category-filter a{padding:8px 12px;font-size:.8rem}
  .insights-empty{padding:34px 22px}
  .insight-article-header{padding:56px 0 38px}
  .insight-back-link{margin-bottom:24px}
  .insight-article-header h1{font-size:clamp(2.25rem,12vw,3.45rem)}
  .insight-article-meta{display:grid;gap:4px}
  .insight-article-meta span+span::before{content:none}
  .insight-featured-image{width:100%;margin-top:0}
  .insight-featured-image img{border-radius:0}
  .insight-article-layout{padding-top:48px;padding-bottom:72px}
  .insight-article-content{font-size:1rem}
  .related-insights-grid{grid-template-columns:1fr}
}
