@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600;700&family=Montserrat:wght@500;600;700&family=Source+Sans+3:wght@400;600;700&display=swap');

:root{
  --navy:#152A4E;  --navy-deep:#0D1B33;  --navy-soft:#2C4472;
  --gold:#C0952F;  --gold-light:#E0C374; --gold-wash:#F6EEDC;
  /* Accessible gold variants: base --gold is for buttons (on navy text),
     rules/icons and other non-text decoration. Small gold TEXT on ivory/
     white/gold-wash needs a darker value to clear WCAG contrast; these
     two exist for that, per DESIGN-SPEC section 8. */
  --gold-text:#8A6A1F;    /* ~4.6:1 on ivory/white — eyebrows, small labels */
  --gold-display:#B08425; /* ~3.2:1 on ivory/white — large (24px+) headline emphasis only */
  --blush:#F0AEB3; --blush-wash:#FDF2F3;
  --ivory:#FBF8F3; --white:#fff;
  --ink:#141C2B;   --ink-mute:#5A6376;   --line:#E6DFD3;

  --display:'Cormorant Garamond',Georgia,'Times New Roman',serif;
  --body:'Source Sans 3',-apple-system,'Segoe UI',Helvetica,sans-serif;
  --label:'Montserrat',var(--body);

  --wrap:1140px;
  --r:4px;                       /* borders stay crisp, near-square */
  --shadow:0 1px 2px rgba(21,42,78,.04), 0 8px 24px rgba(21,42,78,.06);
  --shadow-lift:0 2px 4px rgba(21,42,78,.06), 0 18px 44px rgba(21,42,78,.10);

  /* z-index scale */
  --z-sticky:40;
}
*,*::before,*::after{box-sizing:border-box}
body{
  margin:0; background:var(--ivory); color:var(--ink);
  font:400 17px/1.65 var(--body);
  -webkit-font-smoothing:antialiased;
}

/* ============================================================
   RESET / BASE ELEMENTS
   ============================================================ */
img{max-width:100%; display:block}
a{color:inherit}
ul{margin:0; padding:0; list-style:none}
h1,h2,h3,h4{margin:0}
p{margin:0}
button{font:inherit; color:inherit; background:none; border:0; cursor:pointer}
input,select,textarea{font:inherit; color:inherit}

h1{font:600 clamp(44px,5.4vw,72px)/1.06 var(--display); letter-spacing:-.01em; color:var(--navy); text-wrap:balance;}
h1 em,h2 em{font-style:italic; color:var(--gold-display);}
h2{font:600 clamp(32px,3.4vw,44px)/1.15 var(--display); color:var(--navy); text-wrap:balance;}
h3{font:600 25px/1.28 var(--display); color:var(--navy);}

.lead{font:400 20px/1.6 var(--body); color:var(--ink-mute); max-width:60ch;}
.meta,.small{font:400 14.5px/1.5 var(--body); color:var(--ink-mute);}
.prose{max-width:68ch;}
.prose p + p{margin-top:1em;}

.eyebrow{display:inline-block; font:600 12px/1 var(--label); text-transform:uppercase; letter-spacing:.18em; color:var(--gold-text); margin-bottom:16px;}

/* Skip link (keyboard a11y) */
.skip-link{position:absolute; left:12px; top:-60px; background:var(--navy); color:var(--ivory); padding:10px 18px; border-radius:2px; font:600 13px var(--label); text-transform:uppercase; letter-spacing:.1em; z-index:60; transition:top .18s ease;}
.skip-link:focus{top:12px;}

/* Global focus ring */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible,
textarea:focus-visible, summary:focus-visible, .card:focus-within{
  outline:2px solid var(--gold-text); outline-offset:3px; border-radius:2px;
}
/* On dark grounds the darker focus gold disappears; swap to the light gold there. */
.bg-navy-deep a:focus-visible, .bg-navy-deep button:focus-visible,
.site-footer a:focus-visible, .site-footer button:focus-visible{
  outline-color:var(--gold-light);
}

/* Placeholder / sample-content flag */
.ph{border-bottom:1px dotted var(--gold-light); cursor:help;}

/* ============================================================
   LAYOUT PRIMITIVES
   ============================================================ */
.wrap{max-width:var(--wrap); margin-inline:auto; padding-inline:clamp(20px,4vw,48px);}
.section{padding-block:clamp(72px,9vw,124px);}
.section--tight{padding-block:clamp(48px,6vw,80px);}

.bg-ivory{background:var(--ivory);}
.bg-white{background:var(--white);}
.bg-gold-wash{background:var(--gold-wash);}
.bg-blush-wash{background:var(--blush-wash);}
.bg-navy-deep{background:var(--navy-deep); color:var(--ivory);}
.bg-navy-deep h1, .bg-navy-deep h2, .bg-navy-deep h3{color:var(--ivory);}
.bg-navy-deep .lead{color:rgba(251,248,243,.78);}
.bg-navy-deep .eyebrow{color:var(--gold-light);}

.section-head{max-width:640px;}
.section-head--center{max-width:640px; margin-inline:auto; text-align:center;}

/* Gold diamond rule */
.rule{display:flex; align-items:center; gap:14px; max-width:150px; margin:22px auto 0;}
.rule::before,.rule::after{content:''; height:1px; flex:1; background:var(--gold-light);}
.rule i{width:6px; height:6px; background:var(--gold); transform:rotate(45deg); flex:none;}
.section-head .rule{margin-top:22px;}
.section-head:not(.section-head--center) .rule{margin-inline:0;}

/* Grids */
.grid-2{display:grid; grid-template-columns:repeat(auto-fit,minmax(320px,1fr)); gap:28px;}
.grid-3{display:grid; grid-template-columns:repeat(3,1fr); gap:28px;}
.grid-4{display:grid; grid-template-columns:repeat(4,1fr); gap:28px;}
@media (max-width:860px){
  .grid-3{grid-template-columns:1fr;}
  .grid-4{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:560px){
  .grid-4{grid-template-columns:1fr;}
}

/* ============================================================
   BUTTONS
   ============================================================ */
.btn{
  font:600 13px/1 var(--label); text-transform:uppercase; letter-spacing:.12em;
  padding:15px 30px; border-radius:2px; display:inline-flex; align-items:center;
  justify-content:center; gap:10px; border:1px solid transparent; transition:.18s ease;
  white-space:nowrap;
  /* Anchors carry a default underline; without this every button reads as a link. */
  text-decoration:none; cursor:pointer;
}
.btn--sm{padding:11px 20px;}
.btn-primary{background:var(--navy); color:var(--ivory); border-color:var(--navy);}
.btn-primary:hover{background:var(--navy-soft); border-color:var(--navy-soft); transform:translateY(-1px);}
.btn-secondary{background:transparent; border-color:var(--navy); color:var(--navy);}
.btn-secondary:hover{background:var(--navy); color:var(--ivory); transform:translateY(-1px);}
.btn-gold{background:var(--gold); color:var(--navy); border-color:var(--gold);}
.btn-gold:hover{background:var(--gold-light); border-color:var(--gold-light); transform:translateY(-1px);}
.btn-outline-light{background:transparent; border-color:rgba(251,248,243,.6); color:var(--ivory);}
.btn-outline-light:hover{background:var(--ivory); color:var(--navy); border-color:var(--ivory); transform:translateY(-1px);}
.btn-block{width:100%;}

/* ============================================================
   HEADER + LOGO LOCKUP
   ============================================================ */
.site-header{
  position:sticky; top:0; z-index:var(--z-sticky);
  background:var(--white); border-bottom:1px solid var(--line); box-shadow:var(--shadow);
}
.site-header__inner{
  display:flex; align-items:center; justify-content:space-between; gap:24px;
  padding-block:14px; flex-wrap:wrap;
}
.lockup{display:flex; align-items:center; gap:12px; text-decoration:none;}
.lockup__mark{height:42px; width:auto; flex:none;}
.lockup__text{display:flex; flex-direction:column;}
.lockup__name{font:600 30px/1 var(--display); color:var(--navy); display:block;}
.lockup__name em{font-style:normal; color:var(--gold-display);}
.lockup__tag{
  font:600 9.5px/1 var(--label); text-transform:uppercase; letter-spacing:.2em;
  color:var(--ink-mute); margin-top:5px; padding-top:5px; border-top:1px solid var(--gold-light);
  white-space:nowrap;
}

.site-nav{display:flex; align-items:center; gap:8px; flex-wrap:wrap;}
.site-nav__links{display:flex; align-items:center; gap:26px; margin-right:8px;}
.site-nav__links a{
  font:600 13px/1 var(--label); text-transform:uppercase; letter-spacing:.12em;
  color:var(--navy); text-decoration:none; padding:6px 2px; border-bottom:2px solid transparent;
  transition:color .18s ease, border-color .18s ease;
}
.site-nav__links a:hover{color:var(--gold-text);}
.site-nav__links a[aria-current="page"]{border-bottom-color:var(--gold-light); color:var(--gold-text);}

@media (max-width:860px){
  .site-header__inner{flex-direction:column; align-items:flex-start;}
  .site-nav{width:100%; justify-content:flex-start;}
  .site-nav__links{width:100%; gap:16px 22px; margin-right:0; flex-wrap:wrap;}
  .site-nav .btn{margin-top:4px;}
}
@media (max-width:480px){
  .lockup__mark{height:34px;}
  .lockup__name{font-size:23px;}
  .lockup__tag{font-size:8.5px; letter-spacing:.16em;}
  /* Keep all four links on one row: a lone wrapped "Contact" reads as a mistake. */
  .site-nav__links{gap:14px; justify-content:space-between;}
  .site-nav__links a{font-size:11.5px; letter-spacing:.08em;}
}

/* ============================================================
   HERO
   ============================================================ */
.hero{display:grid; grid-template-columns:1.05fr .95fr; gap:56px; align-items:center;}
.hero__actions{display:flex; gap:16px; flex-wrap:wrap; margin-top:36px;}
.hero__visual{position:relative;}

/* Arch motif: echoes the arch in the primary logo. Used once per page. */
.arch{
  background:var(--gold-wash);
  border-radius:50% 50% 4px 4px / 34% 34% 4px 4px;
  aspect-ratio:4/4.6;
  display:flex; align-items:center; justify-content:center;
  border:1px solid var(--gold-light);
  overflow:hidden;
}
/* Sized to carry the arch on its own until the client's full logo art lands
   in .logo-slot; at 34% the shape read as empty. */
.arch__mark{height:50%; width:auto; opacity:.92;}

.logo-slot{
  position:absolute; left:50%; bottom:-30px; transform:translateX(-50%);
  background:var(--white); border-radius:var(--r); box-shadow:var(--shadow-lift);
  padding:18px 22px; max-width:340px; width:calc(100% - 64px);
  display:flex; align-items:center; justify-content:center;
}
.logo-slot img{max-width:100%; height:auto;}

@media (max-width:860px){
  .hero{grid-template-columns:1fr; gap:44px;}
  .hero__visual{max-width:420px; margin-inline:auto; width:100%;}
}
@media (max-width:600px){
  /* Full-width at this breakpoint would make the 4:5 arch ~490px tall;
     narrow it so the decorative graphic doesn't dominate the mobile scroll. */
  .hero__visual{max-width:260px;}
}

/* ============================================================
   STAGE BAND (START / OPERATE / IMPROVE / GROW)
   ============================================================ */
.stage-card{
  background:var(--white); border:1px solid var(--line); border-top:3px solid transparent;
  border-radius:var(--r); padding:32px 26px; transition:border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.stage-card:hover{border-top-color:var(--gold); box-shadow:var(--shadow-lift); transform:translateY(-2px);}
.stage-num{
  font:600 46px/1 var(--display); color:var(--gold-light); display:block; margin-bottom:6px;
}
.stage-card__name{
  font:700 13px/1 var(--label); text-transform:uppercase; letter-spacing:.14em; color:var(--navy);
  display:block; margin-bottom:10px;
}
.stage-card__subtitle{font:600 17px/1.4 var(--body); color:var(--ink); margin-bottom:10px;}
.stage-card p{color:var(--ink-mute); font-size:15.5px;}

/* ============================================================
   CARDS (generic)
   ============================================================ */
.card{
  background:var(--white); border:1px solid var(--line); border-top:3px solid transparent;
  border-radius:var(--r); padding:34px 30px; transition:border-color .18s ease, box-shadow .18s ease, transform .18s ease;
  display:flex; flex-direction:column; height:100%;
}
.card:hover{border-top-color:var(--gold); box-shadow:var(--shadow-lift); transform:translateY(-2px);}

/* Audience self-selection cards: the most important UX moment on the site */
.audience-card{
  background:var(--white); border:1px solid var(--line); border-top:4px solid var(--gold);
  border-radius:var(--r); padding:40px 32px; box-shadow:var(--shadow);
  display:flex; flex-direction:column; height:100%; text-decoration:none;
  transition:box-shadow .18s ease, transform .18s ease;
}
.audience-card:hover, .audience-card:focus-visible{
  box-shadow:var(--shadow-lift); transform:translateY(-4px);
}
.audience-card__label{
  display:inline-block; align-self:flex-start; font:600 11.5px/1 var(--label);
  text-transform:uppercase; letter-spacing:.14em; color:var(--navy);
  background:var(--gold-wash); border:1px solid var(--gold-light);
  padding:7px 14px; border-radius:999px; margin-bottom:20px;
}
.audience-card h3{margin-bottom:12px;}
.audience-card p{color:var(--ink-mute); flex:1; margin-bottom:22px;}
.audience-card__link{
  font:600 13px/1.45 var(--label); text-transform:uppercase; letter-spacing:.1em; color:var(--navy);
  /* Inline, not flex: as a flex container the wrapped label stretches and
     strands the arrow against the card's right edge. */
  display:block;
}
.audience-card__link .arrow{
  display:inline-block; margin-left:8px; transition:transform .18s ease;
}
.audience-card:hover .audience-card__link .arrow{transform:translateX(4px);}
.audience-card:hover .audience-card__link{color:var(--gold-text);}

/* Service preview cards (homepage "What We Do") */
.service-preview h3{margin-bottom:12px;}
/* flex:1 pushes the link to the card floor so all three line up across the row. */
.service-preview p{color:var(--ink-mute); margin-bottom:18px; flex:1;}
.service-preview a{
  font:600 13px/1 var(--label); text-transform:uppercase; letter-spacing:.1em; color:var(--navy);
  text-decoration:none; border-bottom:1px solid var(--gold-light); padding-bottom:3px;
  /* Without this the anchor stretches as a flex item and the rule spans the card. */
  align-self:flex-start;
}
.service-preview a:hover{color:var(--gold-text);}

/* ============================================================
   CREDIBILITY / PROOF POINTS
   ============================================================ */
.proof-list{display:grid; grid-template-columns:repeat(3,1fr); gap:28px; margin-top:48px;}
@media (max-width:860px){.proof-list{grid-template-columns:1fr;}}
.proof{text-align:center; padding:8px 12px;}
.proof__mark{width:44px; height:44px; margin:0 auto 18px; border:1px solid var(--gold-light); border-radius:50%; display:flex; align-items:center; justify-content:center;}
.proof__mark i{width:8px; height:8px; background:var(--gold); transform:rotate(45deg);}
.proof p{font:600 18px/1.5 var(--body); color:var(--navy); max-width:32ch; margin-inline:auto;}

/* ============================================================
   TESTIMONIAL
   ============================================================ */
.testimonial{max-width:760px; margin-inline:auto; text-align:center;}
.testimonial blockquote{margin:0 0 26px;}
.testimonial blockquote p{
  font:600 28px/1.45 var(--display); color:var(--navy); text-wrap:balance;
}
.testimonial cite{font:400 15px/1 var(--body); color:var(--ink-mute); font-style:normal;}

/* ============================================================
   STEP LISTS (How We Work / What Happens Next) — distinct from
   the 01-04 stage motif so the numeral system is not overused.
   ============================================================ */
.step-list{display:grid; grid-template-columns:repeat(3,1fr); gap:28px;}
@media (max-width:860px){.step-list{grid-template-columns:1fr;}}
.step{padding:6px 4px;}
.step__num{
  width:40px; height:40px; border:1px solid var(--navy); border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font:600 16px/1 var(--display); color:var(--gold); background:var(--navy);
  margin-bottom:20px;
}
.step h3{font-size:20px; margin-bottom:10px;}
.step p{color:var(--ink-mute); font-size:15.5px;}

/* ============================================================
   FINAL CTA BAND
   ============================================================ */
.cta-band{text-align:center;}
.cta-band .section-head--center{max-width:560px;}
.cta-band .lead{margin-inline:auto;}
.cta-band .btn{margin-top:32px;}

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer{background:var(--navy-deep); color:rgba(251,248,243,.82); padding-block:72px 32px;}
.footer__top{display:flex; flex-direction:column; gap:44px; padding-bottom:48px;}

.footer__brand{max-width:420px;}
.footer__brand .lockup__name{color:var(--ivory);}
.footer__brand .lockup__name em{color:var(--gold-light);}
.footer__brand .lockup__tag{color:rgba(251,248,243,.6); border-top-color:rgba(224,195,116,.4);}
.footer__brand p{margin-top:20px; max-width:34ch; color:rgba(251,248,243,.68); font-size:15px;}

.footer__nav-cols{display:grid; grid-template-columns:repeat(4,1fr); gap:32px;}
@media (max-width:860px){.footer__nav-cols{grid-template-columns:repeat(2,1fr);}}
@media (max-width:480px){.footer__nav-cols{grid-template-columns:1fr;}}

.footer-col__title{
  font:600 12.5px/1 var(--label); text-transform:uppercase; letter-spacing:.14em;
  color:var(--gold-light); margin:0 0 20px;
}
.footer-col ul{display:flex; flex-direction:column; gap:12px;}
.footer-col a{color:rgba(251,248,243,.82); text-decoration:none; font-size:15px;}
.footer-col a:hover{color:var(--gold-light);}
.footer-col li{font-size:15px; color:rgba(251,248,243,.82);}

.footer__bottom{
  border-top:1px solid rgba(251,248,243,.14); padding-top:26px;
  display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap;
  font-size:13.5px; color:rgba(251,248,243,.55);
}
.footer__bottom .ph{border-bottom-color:rgba(224,195,116,.55);}

/* ============================================================
   FORMS
   ============================================================ */
.field{display:flex; flex-direction:column; gap:8px; margin-bottom:22px;}
.field label{font:600 13px/1.3 var(--label); text-transform:uppercase; letter-spacing:.06em; color:var(--navy);}
.field .hint{font:400 13.5px/1.4 var(--body); color:var(--ink-mute); text-transform:none; letter-spacing:0;}
.field input[type="text"],
.field input[type="email"],
.field input[type="tel"],
.field select,
.field textarea{
  border:1px solid var(--line); border-radius:var(--r); padding:13px 16px;
  background:var(--white); color:var(--ink); font:400 16px/1.4 var(--body);
  transition:border-color .18s ease, box-shadow .18s ease;
}
.field input::placeholder, .field textarea::placeholder{color:var(--ink-mute); opacity:1;}
.field input:focus, .field select:focus, .field textarea:focus{
  border-color:var(--gold-text); box-shadow:0 0 0 3px rgba(138,106,31,.15); outline:none;
}
.field select{appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%23152A4E'%3E%3Cpath d='M5.5 7.5l4.5 4.5 4.5-4.5' stroke='%23152A4E' stroke-width='1.6' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 14px center; padding-right:40px;}
.field textarea{resize:vertical; min-height:140px;}
.field-required em{font-style:normal; color:var(--gold-text);}

.field-row{display:grid; grid-template-columns:repeat(2,1fr); gap:20px;}
@media (max-width:640px){.field-row{grid-template-columns:1fr;}}

.field-check{
  display:flex; align-items:flex-start; gap:12px; margin-bottom:26px; flex-direction:row;
}
.field-check input[type="checkbox"]{
  width:20px; height:20px; margin-top:2px; flex:none; accent-color:var(--navy);
}
.field-check label{font:400 15px/1.5 var(--body); color:var(--ink); text-transform:none; letter-spacing:0;}

.form-panel{
  background:var(--white); border:1px solid var(--line); border-radius:var(--r);
  padding:clamp(28px,4vw,52px); box-shadow:var(--shadow);
}

.form-note{margin-top:16px; text-align:center;}

/* Featured lead-magnet block */
.featured{
  display:grid; grid-template-columns:1.15fr .85fr; gap:48px; align-items:center;
  background:var(--white); border:1px solid var(--gold-light); border-radius:var(--r);
  padding:clamp(32px,4vw,56px); box-shadow:var(--shadow-lift);
}
@media (max-width:860px){.featured{grid-template-columns:1fr;}}
.featured__inside{margin:22px 0 0; display:flex; flex-direction:column; gap:10px;}
.featured__inside li{display:flex; gap:10px; color:var(--ink); font-size:15.5px;}
.featured__inside li i{
  flex:none; width:6px; height:6px; margin-top:9px; background:var(--gold); transform:rotate(45deg);
}
.featured__form{background:var(--gold-wash); border-radius:var(--r); padding:28px 26px; border:1px solid var(--gold-light);}
.featured__form .field{margin-bottom:16px;}
.featured__form .field input{background:var(--white);}

/* ============================================================
   RESOURCES: FILTERS + LIBRARY
   ============================================================ */
.filters{
  display:flex; gap:20px; flex-wrap:wrap; align-items:flex-end;
  background:var(--white); border:1px solid var(--line); border-radius:var(--r);
  padding:22px 24px; margin-bottom:40px;
}
.filters .field{margin-bottom:0; min-width:220px; flex:1;}
.filters__count{font:600 14px/1.3 var(--label); color:var(--ink-mute); text-transform:uppercase; letter-spacing:.08em; padding-bottom:13px;}

.resource-card{position:relative;}
.resource-card__top{display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:16px;}
.badge{
  font:700 11px/1 var(--label); text-transform:uppercase; letter-spacing:.1em;
  padding:6px 12px; border-radius:999px; border:1px solid transparent; white-space:nowrap;
}
.badge--start{background:var(--gold-wash); color:var(--navy); border-color:var(--gold-light);}
.badge--operate{background:rgba(21,42,78,.07); color:var(--navy); border-color:rgba(21,42,78,.22);}
.badge--improve{background:var(--blush-wash); color:var(--navy); border-color:var(--blush);}
.badge--grow{background:var(--navy); color:var(--ivory); border-color:var(--navy-deep);}
.resource-card__type{font:600 12.5px/1 var(--label); text-transform:uppercase; letter-spacing:.08em; color:var(--ink-mute);}
.resource-card p{color:var(--ink-mute); flex:1; margin-bottom:20px;}
.resource-card__foot{display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:auto; padding-top:18px; border-top:1px solid var(--line);}
.resource-card__price{font:700 18px/1 var(--display); color:var(--navy);}
.resource-card__price--free{color:var(--gold-text);}

.no-results{
  display:none; text-align:center; padding:56px 24px; color:var(--ink-mute);
  border:1px dashed var(--line); border-radius:var(--r); font-size:16px;
}
.no-results.is-visible{display:block;}

.training-item{padding:30px 0; border-bottom:1px solid var(--line);}
.training-item:last-child{border-bottom:0;}
.training-item h3{margin-bottom:8px; font-size:21px;}
.training-item p{color:var(--ink-mute);}

/* ============================================================
   ALTERNATE CONTACT BLOCK
   ============================================================ */
.contact-info{display:grid; grid-template-columns:repeat(3,1fr); gap:28px;}
@media (max-width:860px){.contact-info{grid-template-columns:1fr;}}
.contact-info__item{text-align:center; padding:28px 20px;}
.contact-info__item .meta{text-transform:uppercase; letter-spacing:.1em; font:600 12px var(--label); color:var(--gold-text); display:block; margin-bottom:10px;}
.contact-info__item p{font:600 18px/1.4 var(--body); color:var(--navy);}

/* ============================================================
   FAQ ACCORDION
   ============================================================ */
.faq{max-width:760px; margin-inline:auto;}
.faq-item{border-bottom:1px solid var(--line);}
.faq-item summary{
  display:flex; align-items:center; justify-content:space-between; gap:20px;
  padding:24px 4px; cursor:pointer; list-style:none;
  font:600 19px/1.4 var(--display); color:var(--navy);
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{
  content:'+'; flex:none; font:400 26px/1 var(--display); color:var(--gold-display);
  transition:transform .18s ease;
}
.faq-item[open] summary::after{transform:rotate(45deg);}
.faq-item__body{padding:0 4px 26px; color:var(--ink-mute); max-width:66ch;}

/* ============================================================
   MOTION
   ============================================================ */
@media (prefers-reduced-motion: reduce){
  *{transition-duration:.01ms !important; animation-duration:.01ms !important; scroll-behavior:auto !important;}
  .card:hover, .stage-card:hover, .audience-card:hover, .btn:hover{transform:none !important;}
}

/* ============================================================
   STAGE-TO-SERVICE MAP (services.html)
   ============================================================ */
.map-list{display:flex; flex-direction:column; border:1px solid var(--line); border-radius:var(--r); overflow:hidden;}
.map-row{
  display:grid; grid-template-columns:200px 1fr; gap:20px; align-items:center;
  padding:22px 26px; background:var(--white);
}
.map-row:nth-child(even){background:var(--ivory);}
.map-row + .map-row{border-top:1px solid var(--line);}
.map-row__stage{
  font:700 12px/1 var(--label); text-transform:uppercase; letter-spacing:.12em; color:var(--navy);
  display:inline-flex; align-items:center; gap:10px;
}
.map-row__stage .stage-num{font-size:22px; margin:0;}
.map-row__service{font:600 17px/1.4 var(--body); color:var(--ink);}
@media (max-width:640px){
  .map-row{grid-template-columns:1fr; gap:8px;}
}

/* "And More" block */
.more-list{display:grid; grid-template-columns:repeat(2,1fr); gap:24px; margin-top:44px;}
@media (max-width:640px){.more-list{grid-template-columns:1fr;}}
.more-item{display:flex; gap:16px; padding:6px 2px;}
.more-item__mark{flex:none; width:34px; height:34px; border-radius:50%; background:var(--navy); display:flex; align-items:center; justify-content:center; margin-top:2px;}
.more-item__mark i{width:6px; height:6px; background:var(--gold); transform:rotate(45deg);}
.more-item p{color:var(--ink-mute);}
.more-item strong{color:var(--navy); display:block; margin-bottom:4px; font:600 17px var(--body);}

/* Service detail block */
.service-block{display:grid; grid-template-columns:.9fr 1.1fr; gap:48px;}
@media (max-width:860px){.service-block{grid-template-columns:1fr;}}
.service-block__included{display:flex; flex-direction:column; gap:14px; margin:22px 0 26px;}
.service-block__included li{display:flex; gap:12px; color:var(--ink); font-size:16px;}
.service-block__included li i{flex:none; width:6px; height:6px; margin-top:9px; background:var(--gold); transform:rotate(45deg);}
.service-block__meta{
  background:var(--gold-wash); border:1px solid var(--gold-light); border-radius:var(--r);
  padding:20px 22px; font-size:15px; color:var(--ink); margin-bottom:26px;
}
.service-block__who{color:var(--ink-mute); font:600 15.5px/1.5 var(--body); margin-bottom:4px;}

/* Real logo supplied by the client (Sept 2026), replacing the vector stand-in. */
.hero__logo{
  width:100%; max-width:430px; height:auto;
  margin-inline:auto; display:block;
}
@media (max-width:860px){ .hero__logo{max-width:340px;} }
@media (max-width:600px){ .hero__logo{max-width:250px;} }
/* Header uses the client's real wordmark artwork. The detailed figure
   illustration is unreadable at header size, so it is reserved for the hero. */
.lockup__logo{height:46px; width:auto;}
@media (max-width:600px){ .lockup__logo{height:38px;} }

/* Consulting packages */
.packages{display:grid; grid-template-columns:repeat(2,1fr); gap:32px; align-items:stretch;}
@media (max-width:860px){.packages{grid-template-columns:1fr;}}
.package{
  background:var(--white); border:1px solid var(--line); border-top:4px solid var(--gold);
  border-radius:var(--r); padding:40px 36px; box-shadow:var(--shadow);
  display:flex; flex-direction:column;
}
@media (max-width:600px){.package{padding:32px 24px;}}
.package__num{font:600 12px/1 var(--label); text-transform:uppercase; letter-spacing:.16em; color:var(--gold-text); margin-bottom:14px;}
.package h3{font-size:clamp(26px,2.6vw,32px); line-height:1.15;}
.package__price{display:flex; align-items:baseline; gap:10px; margin:18px 0 6px;}
.package__price strong{font:700 40px/1 var(--display); color:var(--navy);}
.package__price span{font:600 12px/1.3 var(--label); text-transform:uppercase; letter-spacing:.1em; color:var(--ink-mute);}
.package__best{color:var(--ink-mute); font-size:15.5px; margin:14px 0 0;}
.package__best b{color:var(--navy);}
.package__desc{color:var(--ink); margin:14px 0 0;}
.package .service-block__included{margin:20px 0 24px;}
.package__deliverable{
  background:var(--gold-wash); border:1px solid var(--gold-light); border-radius:var(--r);
  padding:18px 20px; font-size:15px; color:var(--ink); margin:auto 0 24px;
}
.package__deliverable b{display:block; font:600 11.5px/1.2 var(--label); text-transform:uppercase; letter-spacing:.12em; color:var(--navy); margin-bottom:6px;}
.packages-note{max-width:760px; margin:32px auto 0; text-align:center; color:var(--ink-mute); font-size:15.5px;}
.service-area{display:grid; grid-template-columns:repeat(3,1fr); gap:28px;}
@media (max-width:860px){.service-area{grid-template-columns:1fr;}}
.service-area .card h3{font-size:24px; margin-bottom:12px;}
.service-area .card p{color:var(--ink-mute); flex:1;}
.service-area .card a{margin-top:18px; font-weight:600;}
.resource-card h3{margin-bottom:10px;}
