/* ==========================================================================
   ANCHORED ADVISORY CONSULTING — Premium Redesign
   Design system: colors, type, spacing, components
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,300;0,9..144,400;0,9..144,500;0,9..144,600;1,9..144,400;1,9..144,500&family=Manrope:wght@300;400;500;600;700&display=swap');

:root{
  /* --- Brand color --- */
  --brand: #3D90A1;
  --brand-dark: #285F6B;
  --brand-light: #59ADBD;
  --brand-tint: #E4EDF0;

  /* --- Warm neutrals --- */
  --ivory: #FAF7F1;
  --cream: #F4EEE3;
  --linen: #EFE7D9;
  --champagne: #E7D9C2;
  --stone: #D9CFBE;
  --sage: #9AAA8E;
  --sage-tint: #EEF1E9;

  --ink: var(--brand-dark);
  --ink-soft: #5B564D;
  --ink-faint: #8A8477;

  --white: #FFFFFF;

  /* --- Type --- */
  --font-display: 'Fraunces', Georgia, serif;
  --font-body: 'Manrope', -apple-system, BlinkMacSystemFont, sans-serif;

  --step-1: clamp(0.85rem, 0.82rem + 0.15vw, 0.95rem);
  --step0: clamp(1rem, 0.96rem + 0.2vw, 1.125rem);
  --step1: clamp(1.2rem, 1.1rem + 0.4vw, 1.4rem);
  --step2: clamp(1.5rem, 1.3rem + 0.8vw, 1.9rem);
  --step3: clamp(1.9rem, 1.6rem + 1.4vw, 2.6rem);
  --step4: clamp(2.4rem, 1.9rem + 2.2vw, 3.6rem);
  --step5: clamp(3rem, 2.2rem + 3.6vw, 5rem);

  /* --- Spacing --- */
  --space-xs: 0.5rem;
  --space-sm: 1rem;
  --space-md: 1.75rem;
  --space-lg: 3rem;
  --space-xl: 5rem;
  --space-2xl: 8rem;

  --container: 1240px;
  --container-narrow: 780px;

  --radius: 4px;
  --radius-lg: 2px;
  --ease: cubic-bezier(.4,0,.2,1);
}

/* ---------- Reset ---------- */
*,*::before,*::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{
  margin:0;
  font-family: var(--font-body);
  font-size: var(--step0);
  line-height: 1.7;
  color: var(--ink);
  background: var(--ivory);
  -webkit-font-smoothing: antialiased;
}
img{ max-width:100%; display:block; }
a{ color: inherit; text-decoration:none; }
ul{ margin:0; padding:0; list-style:none; }
h1,h2,h3,h4,h5,h6{ margin:0; font-family: var(--font-display); font-weight:500; color: var(--brand-dark); letter-spacing:-0.01em; }
p{ margin:0; }
button{ font-family: inherit; cursor:pointer; }

::selection{ background: var(--brand); color:#fff; }

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

/* ---------- Utility ---------- */
.container{ max-width: var(--container); margin-inline:auto; padding-inline: clamp(1.25rem, 4vw, 3rem); }
.section{ padding-block: var(--space-2xl); }
.section-sm{ padding-block: var(--space-xl); }
.text-center{ text-align:center; }
.skip-link{
  position:absolute; left:1rem; top:-4rem; background:var(--brand); color:#fff;
  padding:.75rem 1.25rem; z-index:1000; transition: top .2s var(--ease); border-radius: 2px;
}
.skip-link:focus{ top:1rem; }

.eyebrow{
  font-family: var(--font-body);
  font-size: var(--step-1);
  font-weight:600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--brand-dark);
  display:inline-flex; align-items:center; gap:.6em;
}
.eyebrow::before{
  content:''; width: 28px; height:1px; background: var(--brand); display:inline-block;
}

.h-display{ font-size: calc(var(--step3) + 6px); line-height:1.15; font-weight:400; margin-block: var(--space-sm) .85rem; }
.lede.hero-lede-home{ font-size: calc(var(--step1) * .82); }
.hero-headline-line2{ white-space: nowrap; }
.h-xl{ font-size: var(--step4); line-height:1.08; font-weight:400; }
.h-lg{ font-size: var(--step3); line-height:1.15; font-weight:400; }
.h-md{ font-size: var(--step2); line-height:1.25; font-weight:500; }

.lede{ font-size: var(--step1); line-height:1.65; color: var(--ink-soft); font-weight:300; }
.body-soft{ color: var(--ink-soft); }
.italic-display{ font-family: var(--font-display); font-style: italic; font-weight:400; }

.rule{ width:64px; height:1px; background: var(--brand); border:0; margin: var(--space-md) 0; }

/* ---------- Buttons ---------- */
.btn{
  --btn-bg: var(--brand);
  --btn-fg: #fff;
  display:inline-flex; align-items:center; justify-content:center; gap:.6em;
  padding: 1rem 2.1rem;
  font-family: var(--font-body);
  font-size: var(--step-1);
  font-weight:600;
  letter-spacing: .08em;
  text-transform: uppercase;
  background: var(--btn-bg);
  color: var(--btn-fg);
  border: 1px solid var(--btn-bg);
  border-radius: var(--radius);
  transition: background .35s var(--ease), color .35s var(--ease), border-color .35s var(--ease), transform .35s var(--ease), box-shadow .35s var(--ease);
  position: relative;
  overflow: hidden;
}
.btn:hover{ background: var(--brand-dark); border-color: var(--brand-dark); transform: translateY(-2px); box-shadow: 0 12px 24px -12px rgba(40,95,107,.45); }
.btn:active{ transform: translateY(0); }

.btn--outline{ --btn-bg: transparent; --btn-fg: var(--brand); }
.btn--outline:hover{ --btn-fg:#fff; }

.btn--sage{ --btn-bg: var(--sage); --btn-fg:#fff; border-color: var(--sage); }
.btn--sage:hover{ background:#7c8d71; border-color:#7c8d71; }

.btn-arrow{ transition: transform .35s var(--ease); }
.btn:hover .btn-arrow{ transform: translateX(4px); }

/* ---------- Header / Nav ---------- */
.site-header{
  position: sticky; top:0; z-index:100;
  background: rgba(250,247,241,.86);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(43,40,35,.08);
  transition: box-shadow .3s var(--ease), background .3s var(--ease);
}
.site-header.is-scrolled{ box-shadow: 0 8px 30px -20px rgba(40,95,107,.4); }
.nav-wrap{
  display:flex; align-items:center; justify-content:space-between;
  padding-block: 1.1rem;
}
.brand-mark{
  font-family: var(--font-display); font-size: 1.3rem; letter-spacing:.02em; color: var(--brand-dark);
  display:flex; align-items:center; gap:.6rem;
}
.brand-mark .mark-glyph{
  height: 36px; width:auto; display:block;
}
.brand-mark small{ display:block; font-family: var(--font-body); font-size:.75rem; letter-spacing:.22em; text-transform:uppercase; color: var(--ink-faint); font-weight:600; margin-top:.1rem; }

.primary-nav{ display:flex; align-items:center; gap: clamp(1.2rem, 2vw, 2.4rem); }
.primary-nav a{
  display:inline-flex; align-items:center;
  font-size: .85rem; line-height:1; letter-spacing:.08em; text-transform:uppercase; font-weight:600; color: var(--ink);
  position:relative; padding-block:.35rem; margin:0;
}
.primary-nav a::after{
  content:''; position:absolute; left:0; right:0; bottom:0; height:1px; background: var(--brand);
  transform: scaleX(0); transform-origin:left; transition: transform .3s var(--ease);
}
.primary-nav a:hover::after,
.primary-nav a[aria-current="page"]::after{ transform: scaleX(1); }
.primary-nav a[aria-current="page"]{ color: var(--brand-dark); }

.has-dropdown{ position:relative; display:inline-flex; align-items:center; }
.dropdown-toggle{
  display:inline-flex; align-items:center; gap:.35rem; background:none; border:0; margin:0;
  padding:.35rem 0; font-family: var(--font-body); font-size: .85rem; line-height:1; letter-spacing:.08em;
  text-transform:uppercase; font-weight:600; color: var(--ink); cursor:pointer; position:relative;
}
.dropdown-toggle::after{
  content:''; position:absolute; left:0; right:0; bottom:0; height:1px; background: var(--brand);
  transform: scaleX(0); transform-origin:left; transition: transform .3s var(--ease);
}
.has-dropdown:hover .dropdown-toggle::after,
.has-dropdown:focus-within .dropdown-toggle::after{ transform: scaleX(1); }
.dropdown-toggle svg{ width:9px; transition: transform .3s var(--ease); }
.has-dropdown:hover .dropdown-toggle svg,
.has-dropdown:focus-within .dropdown-toggle svg{ transform: rotate(180deg); }
.dropdown-menu{
  position:absolute; top: calc(100% + 1rem); left:50%; transform: translateX(-50%) translateY(6px);
  background:#fff; min-width: 240px; padding: .6rem;
  box-shadow: 0 24px 50px -20px rgba(40,95,107,.35); border-radius: 4px;
  opacity:0; pointer-events:none; transition: opacity .25s var(--ease), transform .25s var(--ease);
}
.has-dropdown:hover .dropdown-menu,
.has-dropdown:focus-within .dropdown-menu{ opacity:1; pointer-events:auto; transform: translateX(-50%) translateY(0); }
.dropdown-menu a{ display:block; padding: .7rem .9rem; font-size:.78rem; border-radius:3px; }
.dropdown-menu a:hover{ background: var(--brand-tint); }
.dropdown-menu a::after{ display:none; }

.nav-toggle{
  display:none; background:none; border:0; width:32px; height:22px; position:relative;
}
.nav-toggle span, .nav-toggle span::before, .nav-toggle span::after{
  content:''; position:absolute; left:0; width:100%; height:1.5px; background: var(--brand-dark); transition: all .3s var(--ease);
}
.nav-toggle span{ top:10px; }
.nav-toggle span::before{ top:-8px; }
.nav-toggle span::after{ top:8px; }
.nav-toggle[aria-expanded="true"] span{ background: transparent; }
.nav-toggle[aria-expanded="true"] span::before{ transform: rotate(45deg); top:0; }
.nav-toggle[aria-expanded="true"] span::after{ transform: rotate(-45deg); top:0; }

/* ---------- Hero ---------- */
.hero{
  position:relative; overflow:hidden;
  padding-block: clamp(4.5rem, 10vw, 8rem) clamp(8rem, 16vw, 13rem);
  color:#fff;
}
.hero-bg{ position:absolute; inset:0; z-index:0; }
.hero-bg::after{
  content:''; position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(250,247,241,.6) 0%, rgba(234,217,187,.7) 100%);
}
.hero-content{ position:relative; z-index:1; max-width: 760px; }
.hero .eyebrow{ color: #E7D9C2; }
.hero .eyebrow::before{ background:#E7D9C2; }
.hero h1{ color:#fff; margin-block: var(--space-sm) var(--space-md); }
.hero .lede{ color: rgba(255,255,255,.88); max-width: 46ch; }
.hero-actions{ margin-top: var(--space-lg); display:flex; gap:1rem; flex-wrap:wrap; }

.hero--page{ padding-block: clamp(6rem, 14vw, 10rem) clamp(3.5rem, 8vw, 6rem); text-align:center; }
.hero--page .hero-content{ max-width: 720px; margin-inline:auto; }
.hero--page .lede{ margin-inline:auto; }

.hero--light{ color: var(--ink); background: linear-gradient(160deg, var(--linen) 0%, var(--cream) 45%, var(--champagne) 100%); }
.hero--light .hero-bg::after{ display:none; }
.hero--light h1{ color: var(--brand-dark); }
.hero--light .lede{ color: var(--ink-soft); }
.hero--light .eyebrow{ color: var(--brand-dark); }
.hero--light .eyebrow::before{ background: var(--brand); }
.hero--light .scroll-cue{ color: var(--ink-faint); }
.hero--light .scroll-cue::after{ background: rgba(43,40,35,.35); }

/* ---------- Decorative media panels (stand-in for commissioned photography) ---------- */
.media-art{
  position:relative; width:100%; aspect-ratio: 4/5; border-radius:3px; overflow:hidden;
  display:flex; align-items:center; justify-content:center;
  background: linear-gradient(155deg, var(--cream) 0%, var(--linen) 50%, var(--champagne) 100%);
}
.media-art::before{
  content:''; position:absolute; width:150%; height:150%; border-radius:44% 56% 62% 38% / 45% 40% 60% 55%;
  background: linear-gradient(160deg, rgba(61,144,161,.14), rgba(154,170,142,.18));
  top:-25%; left:-25%;
}
.media-art svg{ position:relative; z-index:1; width:52%; height:auto; opacity:.85; }

.scroll-cue{
  position:absolute; bottom: 2rem; left:50%; transform: translateX(-50%); z-index:1;
  display:flex; flex-direction:column; align-items:center; gap:.5rem; color: rgba(255,255,255,.7);
  font-size:.7rem; letter-spacing:.2em; text-transform:uppercase;
}
.scroll-cue::after{
  content:''; width:1px; height:34px; background: rgba(255,255,255,.6);
  animation: scrollcue 2.2s var(--ease) infinite;
}
@keyframes scrollcue{ 0%{ transform: scaleY(0); transform-origin:top; opacity:0;} 40%{ transform: scaleY(1); transform-origin:top; opacity:1;} 60%{ transform: scaleY(1); transform-origin:bottom; opacity:1;} 100%{ transform: scaleY(0); transform-origin:bottom; opacity:0;} }

/* ---------- Organic art elements ---------- */
.art-blob{ position:absolute; z-index:0; opacity:.5; pointer-events:none; }

/* ---------- Split section ---------- */
.split{
  display:grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 6vw, 5rem); align-items:center;
}
.split.reverse .split-media{ order:2; }
.split.reverse .split-text{ order:1; }
.split-media{ position:relative; }
.split-media img, .split-media .media-art{ border-radius: 3px; width:100%; aspect-ratio: 4/5; object-fit:cover; }
/* Real photographs (e.g. founder headshot): render at native aspect ratio,
   never forced/cropped into the 4:5 art-panel box above. This selector is
   deliberately more specific so it overrides the rule directly above it —
   no aspect-ratio, no object-fit crop, no upscaling beyond the source file. */
.split-media .founder-photo{
  display:block; width:100%; height:auto;
  aspect-ratio:auto; object-fit:initial; border-radius:0;
}
.split-media .media-frame{
  position:absolute; inset: -18px auto auto -18px; width:60%; height:60%;
  border: 1px solid var(--brand); z-index:-1; border-radius:3px;
}
.split-text .rule{ margin-top: var(--space-sm); }

/* ---------- Cards ---------- */
.card-grid{ display:grid; gap: var(--space-md); }
.card-grid.cols-3{ grid-template-columns: repeat(3, 1fr); }

.service-card{
  display:block; background:#fff; padding: var(--space-lg) var(--space-md);
  border-radius: 3px; border:1px solid var(--stone);
  transition: transform .4s var(--ease), box-shadow .4s var(--ease), border-color .4s var(--ease);
  position:relative;
}
.service-card:hover{ transform: translateY(-6px); box-shadow: 0 30px 60px -30px rgba(40,95,107,.35); border-color: var(--brand); }
.service-card .num{ font-family: var(--font-display); font-style:italic; color: var(--stone); font-size:1.6rem; }
.service-card h3{ margin-block: 1rem .6rem; font-size: var(--step1); }
.service-card p{ color: var(--ink-soft); font-size:.95rem; }
.service-card .card-link{ margin-top:1.4rem; display:inline-flex; align-items:center; gap:.5rem; font-size:.78rem; letter-spacing:.1em; text-transform:uppercase; font-weight:700; color:var(--brand-dark); }
.service-card .card-link svg{ transition: transform .35s var(--ease); }
.service-card:hover .card-link svg{ transform: translateX(5px); }

/* ---------- Accordion ---------- */
.accordion{ border-top: 1px solid var(--stone); }
.accordion-item{ border-bottom: 1px solid var(--stone); }
.accordion-trigger{
  width:100%; display:flex; align-items:center; justify-content:space-between; gap:1.5rem;
  background:none; border:0; padding: 1.6rem 0; text-align:left;
}
.accordion-trigger .idx{ font-family: var(--font-display); font-style:italic; color: var(--brand-dark); font-size:1.1rem; min-width:2.4rem; }
.accordion-trigger h3{
  font-family: var(--font-display); font-weight:400; font-size: var(--step1); color: var(--brand-dark); flex:1;
}
.accordion-trigger .plus{
  width:28px; height:28px; border-radius:50%; border:1px solid var(--brand); position:relative; flex-shrink:0;
  transition: background .3s var(--ease), transform .4s var(--ease);
}
.accordion-trigger .plus::before, .accordion-trigger .plus::after{
  content:''; position:absolute; background: var(--brand); top:50%; left:50%; transition: transform .3s var(--ease), background .3s var(--ease);
}
.accordion-trigger .plus::before{ width:10px; height:1px; transform: translate(-50%,-50%); }
.accordion-trigger .plus::after{ width:1px; height:10px; transform: translate(-50%,-50%); }
.accordion-item[data-open="true"] .plus::after{ transform: translate(-50%,-50%) rotate(90deg); opacity:0; }
.accordion-item[data-open="true"] .plus{ background: var(--brand); }
.accordion-item[data-open="true"] .plus::before{ background:#fff; }
.accordion-panel{ display:grid; grid-template-rows: 0fr; transition: grid-template-rows .45s var(--ease); }
.accordion-panel-inner{ overflow:hidden; }
.accordion-item[data-open="true"] .accordion-panel{ grid-template-rows: 1fr; }
.accordion-panel p{ padding: 0 0 1.8rem 2.4rem; max-width: 62ch; color: var(--ink-soft); }

/* ---------- Checklist ---------- */
.checklist{ display:flex; flex-direction:column; gap: 1.1rem; }
.checklist li{ display:flex; gap: 1rem; align-items:flex-start; font-size: 1.02rem; color: var(--ink-soft); }
.checklist .tick{
  flex-shrink:0; width:22px; height:22px; border-radius:50%; border:1px solid var(--brand);
  display:flex; align-items:center; justify-content:center; margin-top:.2rem;
}
.checklist .tick svg{ width:10px; height:10px; }
.checklist .tick svg path{ stroke: var(--brand); }

/* ---------- Pull quote / statement band ---------- */
.statement-band{
  background: var(--brand-dark); color:#fff; padding-block: var(--space-2xl);
  position:relative; overflow:hidden; text-align:center;
}
.statement-band p{
  font-family: var(--font-display); font-style:italic; font-weight:400;
  font-size: var(--step3); line-height:1.4; max-width: 900px; margin-inline:auto; color:#fff;
}
.statement-band .eyebrow{ justify-content:center; margin-bottom: var(--space-md); }

.result-band{
  background: var(--sage-tint); border-radius: 4px; padding: var(--space-lg);
  text-align:center; position:relative;
}
.result-band .eyebrow{ justify-content:center; }
.result-band p{ font-family: var(--font-display); font-size: var(--step2); color: var(--brand-dark); margin-top: var(--space-sm); max-width: 56ch; margin-inline:auto; }

/* ---------- Testimonial ---------- */
.testimonial-feature{
  background:#fff; border-radius:4px; padding: clamp(2rem,5vw,4.5rem);
  display:grid; grid-template-columns: 0.9fr 1.4fr; gap: clamp(2rem,5vw,4rem); align-items:center;
  box-shadow: 0 40px 80px -50px rgba(40,95,107,.3);
}
.testimonial-feature .quote-mark{ font-family: var(--font-display); font-style:italic; font-size:5rem; color: var(--champagne); line-height:1; }
.testimonial-feature .partner-logo{ width:100%; max-width:100%; height:auto; display:block; }
.testimonial-feature blockquote{ font-family: var(--font-display); font-size: var(--step1); line-height:1.6; color: var(--ink); margin:0; }
.testimonial-feature cite{ display:block; margin-top: var(--space-md); font-style:normal; }
.testimonial-feature cite .name{ font-weight:700; display:block; color: var(--brand-dark); }
.testimonial-feature cite .role{ color: var(--ink-faint); font-size:.85rem; text-transform:uppercase; letter-spacing:.08em; }

.testimonial-card{
  background: var(--cream); border-radius:4px; padding: clamp(1.8rem,4vw,3rem);
}
.testimonial-card blockquote{ margin:0; }

/* ---------- Contact card ---------- */
.contact-card{
  background:#fff; padding: clamp(2rem,5vw,3.5rem); border-radius:4px; text-align:center;
  max-width: 620px; margin-inline:auto; box-shadow: 0 40px 80px -50px rgba(40,95,107,.35);
  position:relative; margin-top: -8rem; z-index:2;
}
.contact-card .btn{ margin-top: var(--space-md); }

.connect-strip{
  display:flex; align-items:center; justify-content:space-between; gap:2rem; flex-wrap:wrap;
  padding-block: var(--space-lg); border-top: 1px solid var(--stone); border-bottom: 1px solid var(--stone);
}

.email-pill{
  display:inline-flex; align-items:center; gap:.6rem; background:#fff; border:1px solid var(--stone);
  padding: .9rem 1.6rem; border-radius: 100px; font-weight:600; color: var(--brand-dark); margin-top: var(--space-md); margin-left: 1.25rem;
  transition: border-color .3s var(--ease), transform .3s var(--ease);
}
.email-pill:hover{ border-color: var(--brand); transform: translateY(-2px); }

/* ---------- Footer ---------- */
.site-footer{ background: var(--brand-dark); color: rgba(255,255,255,.75); padding-block: var(--space-xl) var(--space-lg); }
.footer-grid{ display:grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: var(--space-lg); }
.footer-brand{ font-family: var(--font-display); font-size:1.6rem; color:#fff; }
.footer-brand p{ margin-top:1rem; color: rgba(255,255,255,.6); max-width:32ch; font-size:.92rem; }
.footer-col h4{ color:#fff; font-family: var(--font-body); font-size:.75rem; letter-spacing:.14em; text-transform:uppercase; margin-bottom:1.2rem; font-weight:700; }
.footer-col li{ margin-bottom:.7rem; }
.footer-col a{ color: rgba(255,255,255,.72); font-size:.92rem; transition: color .3s; }
.footer-col a:hover{ color:#fff; }
.footer-bottom{
  margin-top: var(--space-xl); padding-top: var(--space-md); border-top:1px solid rgba(255,255,255,.14);
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:1rem; font-size:.8rem; color: rgba(255,255,255,.5);
}

/* ---------- Reveal animation ---------- */
[data-reveal]{ opacity:0; transform: translateY(24px); transition: opacity .8s var(--ease), transform .8s var(--ease); }
[data-reveal].is-visible{ opacity:1; transform:none; }
[data-reveal-delay="1"]{ transition-delay:.12s; }
[data-reveal-delay="2"]{ transition-delay:.24s; }
[data-reveal-delay="3"]{ transition-delay:.36s; }

@media (prefers-reduced-motion: reduce){
  *{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important; }
}

/* ---------- Responsive ---------- */
@media (max-width: 1024px){
  .card-grid.cols-3{ grid-template-columns: 1fr; }
  .footer-grid{ grid-template-columns: 1fr 1fr; }
  .testimonial-feature{ grid-template-columns:1fr; text-align:center; }
  .testimonial-feature .quote-mark{ margin-inline:auto; }
  .testimonial-feature .partner-logo{ margin-inline:auto; }
}

@media (max-width: 860px){
  .primary-nav{
    position: fixed; inset: 0 0 0 auto; width:min(340px,86vw); height:100dvh;
    background: var(--ivory); flex-direction:column; align-items:flex-start; justify-content:flex-start;
    padding: 6rem 2rem 2rem; gap: 1.6rem; transform: translateX(100%); transition: transform .4s var(--ease);
    box-shadow: -30px 0 60px rgba(0,0,0,.15); overflow-y:auto;
  }
  .primary-nav.is-open{ transform: translateX(0); }
  .primary-nav a, .dropdown-toggle{ font-size:1rem; }
  .has-dropdown{ width:100%; }
  .dropdown-menu{ position:static; transform:none; opacity:1; visibility:visible; box-shadow:none; width:100%; max-height:0; padding:0; overflow:hidden; transition: max-height .3s var(--ease); }
  .has-dropdown.is-open .dropdown-menu{ max-height: 220px; padding:.6rem 0 0 1rem; }
  .dropdown-toggle{ width:100%; justify-content:space-between; }
  .nav-toggle{ display:block; }

  .split, .card-grid.cols-3{ grid-template-columns: 1fr; }
  .split.reverse .split-media{ order:1; }
  .split.reverse .split-text{ order:2; }
  .footer-grid{ grid-template-columns: 1fr 1fr; }
  .contact-card{ margin-top:-4rem; }
  .hero-headline-line2{ white-space: normal; }
}

@media (max-width: 560px){
  .footer-grid{ grid-template-columns: 1fr; }
  .footer-bottom{ flex-direction:column; }
  .section{ padding-block: var(--space-xl); }
  .email-pill{ margin-left:0; }
}

/* ---------- Contact Modal ---------- */
.modal-overlay{
  --modal-accent: #305F76;
  position: fixed; inset:0; z-index:200;
  display:flex; align-items:center; justify-content:center;
  padding: 1.5rem;
  background: rgba(29,27,23,.55);
  opacity:0; visibility:hidden;
  transition: opacity .3s var(--ease), visibility 0s linear .3s;
}
.modal-overlay.is-open{
  opacity:1; visibility:visible;
  transition: opacity .3s var(--ease), visibility 0s linear 0s;
}
.modal-dialog{
  position:relative; width:100%; max-width: 700px; max-height: 90vh; overflow-y:auto;
  background: var(--ivory); border-radius: 14px;
  box-shadow: 0 40px 90px -30px rgba(20,25,30,.45);
  padding: clamp(1.75rem, 4vw, 3rem);
  transform: translateY(16px) scale(.98); opacity:0;
  transition: transform .35s var(--ease), opacity .35s var(--ease);
}
.modal-overlay.is-open .modal-dialog{ transform: translateY(0) scale(1); opacity:1; }

.modal-close{
  position:absolute; top: 1.1rem; right: 1.1rem; z-index:1;
  width: 2.25rem; height: 2.25rem; display:flex; align-items:center; justify-content:center;
  background: transparent; border: 1px solid var(--stone); border-radius: 50%;
  color: var(--ink); font-size: 1.25rem; line-height:1;
  transition: background .25s var(--ease), border-color .25s var(--ease), transform .25s var(--ease);
}
.modal-close:hover{ background:#fff; border-color: var(--modal-accent); transform: rotate(90deg); }

.modal-form-state .eyebrow{ color: var(--modal-accent); }
.modal-form-state .eyebrow::before{ background: var(--modal-accent); }
.modal-intro{ margin-top:.6rem; max-width: 52ch; }

.contact-form{ margin-top: var(--space-lg); display:flex; flex-direction:column; gap: var(--space-md); }
.form-row{ display:grid; grid-template-columns: 1fr 1fr; gap: var(--space-md); }
.form-field{ display:flex; flex-direction:column; gap:.5rem; }
.form-field--full{ width:100%; }
.form-field label{
  font-family: var(--font-body); font-size:.78rem; font-weight:600; letter-spacing:.05em;
  text-transform: uppercase; color: var(--ink);
}
.form-field .req{ color: var(--modal-accent); }
.form-field input, .form-field select, .form-field textarea{
  font-family: var(--font-body); font-size: 1rem; color: var(--ink);
  background:#fff; border: 1px solid var(--stone); border-radius: var(--radius);
  padding: .85rem 1rem; width:100%;
  transition: border-color .25s var(--ease), box-shadow .25s var(--ease);
}
.form-field textarea{ resize: vertical; min-height: 6.5rem; font-family: var(--font-body); }
.form-field input:focus, .form-field select:focus, .form-field textarea:focus{
  outline:none; border-color: var(--modal-accent); box-shadow: 0 0 0 3px rgba(48,95,118,.15);
}
.hp-field{ position:absolute; left:-9999px; top:-9999px; }

.modal-submit{ align-self:flex-start; margin-top:.25rem; }
.form-error{ color:#B3432B; font-size:.9rem; margin:0; }

.modal-form-state[data-state="success"]{ text-align:center; padding-block: var(--space-md); }
.success-check{
  width: 3.25rem; height:3.25rem; margin-inline:auto; margin-bottom: var(--space-sm);
  display:flex; align-items:center; justify-content:center; border-radius:50%;
  background: var(--modal-accent); color:#fff; font-size:1.4rem;
}
.modal-form-state[data-state="success"] p{ max-width: 42ch; margin-inline:auto; }
.modal-form-state[data-state="success"] .btn{ margin-top: var(--space-md); }

@media (max-width: 640px){
  .form-row{ grid-template-columns: 1fr; }
  .modal-submit{ width:100%; }
}
