/* ============================================================
   Sanor theme — base styles, typography, components.
   Ported verbatim from reference/sanor-wireframe.html (build 48)
   to match the prototype pixel for pixel. Token :root blocks
   live in tokens.css (enqueued first).
   SPA-only rules (.page display toggles) were removed; in
   WordPress each page is its own document.
   ============================================================ */

  * { box-sizing: border-box; margin: 0; padding: 0; }
  body { background: #FFFFFF; color: var(--ink); font-family: var(--sans); font-weight: 400; line-height: 1.45; }
  a { color: inherit; text-decoration: none; }
  /* Intentional underlines are opt-in via their own classes (.byline-link,
     .art-link, .art-more, .section__link, .disclosures a, in-prose links). */

  .canvas { background: var(--bg); }
  .page { padding-top: 78px; }
    .canvas > *, .canvas .page > * { }
  .shell { max-width: 1200px; margin: 0 auto; }

  /* ── wireframe primitives ── */
  .box { border: 1px solid var(--line); border-radius: 14px; background: var(--bg); }
  .img-ph { background: linear-gradient(135deg, #8A8A8A 0%, #D6D6D6 100%); border: 0; border-radius: var(--btn-radius, 14px); position: relative; overflow: hidden; }
  
  .img-ph span { display: none; }
  .img-ph span.tag { display: inline-block; }
  .ph-line { height: 10px; background: var(--fill-dark); border-radius: 2px; margin: 6px 0; }
  .ph-line.w40 { width: 40%; } .ph-line.w60 { width: 60%; } .ph-line.w80 { width: 80%; } .ph-line.w95 { width: 95%; }
  .ph-title { height: 26px; background: var(--fill-dark); border-radius: 3px; margin: 8px 0; }
  .btn-ph { display: inline-block; border: 1px solid var(--ink); padding: 10px 22px; font-size: 13px; font-weight: 500; background: var(--bg); cursor: pointer; }
  .btn-ph.solid { background: var(--ink); color: #FFF; }
  .note { font-family: var(--mono); font-size: 10px; color: var(--note); border: 1px dashed var(--note); background: #F4F7FA; padding: 3px 7px; display: inline-block; margin: 6px 0; }
  .sec-tag { font-family: var(--mono); font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--mute); margin-bottom: 10px; }

  .pad { padding: 40px max(40px, calc((100% - var(--content-w)) / 2)); }
  h1.wf { font-family: var(--serif); font-size: 40px; font-weight: 700; letter-spacing: -0.01em; margin-bottom: 8px; }
  
  h3.wf { font-family: var(--serif); font-size: 17px; font-weight: 600; }
  .sub { color: var(--mute); font-size: 14px; font-weight: 400; }
  .byline { color: var(--ink); font-size: 19px; line-height: 1.6; font-weight: var(--byline-weight, 400); font-family: var(--byline-font, var(--font-sans)); max-width: 720px; }

  /* ── nav ── */
  .nav { position: absolute; top: 0; left: 0; right: 0; z-index: 100; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; padding: 20px max(40px, calc((100% - 1350px) / 2)); background: transparent; }
  .nav__logo { width: 110px; height: 30px; }
  .nav__links { display: flex; gap: 34px; align-items: center; justify-content: center; font-size: 17px; font-weight: 300; color: #767676; }
  .nav__cta { justify-self: end; }
  .wordmark { font-family: "Sora", sans-serif; font-weight: 800; font-size: 22px; letter-spacing: 0.02em; color: #0B2F16; cursor: pointer; }
  .nav__links a { text-decoration: none; color: var(--ink); cursor: pointer; }
  .nav__links a:hover { text-decoration: underline; }
  .nav__links > a, .nav__dropdown-trigger { font-weight: 400; }
  .nav__item { display: flex; align-items: center; }
  .nav__dropdown-trigger { display: inline-flex; align-items: center; gap: 8px; }
  .nav__chevron { width: 7px; height: 7px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(-2px) rotate(45deg); transition: transform 180ms ease; }
  .nav-mega { position: fixed; top: 52px; left: 50%; width: min(1120px, calc(100vw - 80px)); padding-top: 24px; opacity: 0; visibility: hidden; pointer-events: none; transform: translate(-50%, -8px); transition: opacity 180ms ease, transform 180ms ease, visibility 180ms ease; }
  .nav__item--research:hover .nav-mega, .nav__item--research:focus-within .nav-mega { opacity: 1; visibility: visible; pointer-events: auto; transform: translate(-50%, 0); }
  .nav__item--research:hover .nav__chevron, .nav__item--research:focus-within .nav__chevron { transform: translateY(2px) rotate(225deg); }
  .nav-mega__panel { background: #FFFFFF; border: 1px solid rgba(11,47,22,0.10); border-radius: 18px; box-shadow: 0 24px 70px rgba(11,47,22,0.18); padding: 30px; }
  .nav-mega__head { padding: 0 4px 22px; border-bottom: 1px solid var(--line-soft); }
  .nav-mega__eyebrow { display: block; font-family: var(--font-sans); font-size: 12px; font-weight: 700; letter-spacing: 0.09em; text-transform: uppercase; color: #0A3D2F; margin-bottom: 5px; }
  .nav-mega__head p { font-family: var(--font-sans); font-size: 15px; font-weight: 300; line-height: 1.45; color: #555; }
  .nav__links .nav-mega__all { color: #0A3D2F; font-size: 14px; font-weight: 600; white-space: nowrap; }
  .nav-mega__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; padding-top: 20px; }
  .nav-mega__footer { display: flex; justify-content: flex-end; margin-top: 12px; padding: 20px 4px 0; border-top: 1px solid var(--line-soft); }
  .nav__links .nav-mega__category { display: flex; flex-direction: column; gap: 7px; min-height: 126px; padding: 18px; border-radius: 12px; color: var(--ink); transition: background 160ms ease, transform 160ms ease; }
  .nav__links .nav-mega__category:hover, .nav__links .nav-mega__category:focus { background: #E9F7EF; text-decoration: none; transform: translateY(-2px); outline: none; }
  .nav-mega__title { display: flex; align-items: flex-start; gap: 9px; }
  .nav-mega__icon { display: block; flex: 0 0 19px; width: 19px; height: 19px; color: #0A3D2F; margin-top: 1px; }
  .nav-mega__name { font-family: var(--font-display); font-size: 18px; font-weight: 600; line-height: 1.2; color: #0B2F16; }
  .nav-mega__description { font-family: var(--font-sans); font-size: 13px; font-weight: 300; line-height: 1.45; color: #555; }

  /* ── grids ── */
  .grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
  .grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
  .grid-5 { display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px; }
  .grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }

  .card { border: 0; border-radius: 14px; overflow: hidden; background: transparent; }
  .card .img-ph { border: 0; border-radius: var(--btn-radius, 14px) var(--btn-radius, 14px) 0 0; height: 130px; }
  .card--vertical .img-ph { height: 340px; }
  .card__body { background: #F5F5F5; border-radius: 0 0 14px 14px; }
  .card__body { padding: 24px 26px; }
  .card__meta { font-family: var(--font-sans); font-size: 13px; font-weight: 700; color: var(--ink); text-transform: uppercase; letter-spacing: 0.08em; line-height: 1.2; margin-bottom: 8px; }
  .tag { position: absolute; top: 22px; left: 24px; z-index: 2; display: inline-block; font-family: var(--font-sans); font-size: var(--size-eyebrow); font-weight: 700; color: #FFFFFF; text-transform: uppercase; letter-spacing: 0.08em; line-height: 1; background: none; border-radius: 0; padding: 0; }

  .section { padding: 90px max(40px, calc((100% - var(--content-w)) / 2)); }
  .section--alt { background: var(--fill); }
  .section--alt .card__body { background: #FFFFFF; }
  .section__head { margin-bottom: 32px; text-align: left; }
  .section__head .byline { margin: 0; }
  .section__link { font-size: 13px; text-decoration: underline; cursor: pointer; white-space: nowrap; }

  /* lead piece inside homepage sections */
  .lead { display: grid; grid-template-columns: 1fr 1fr; gap: 0; align-items: stretch; margin-bottom: 30px; border-radius: 14px; overflow: hidden; }
  .lead > div:not(.img-ph) { background: #F5F5F5; padding: 36px 40px; }
  .section--alt .lead > div:not(.img-ph) { background: #FFFFFF; }
  .lead .img-ph { border-radius: 0; height: 100%; min-height: 320px; }
  .lead--research { grid-template-columns: 2fr 1fr; }
  .int-split { display: grid; grid-template-columns: 2fr 3fr; gap: 40px; align-items: stretch; }
  .int-lead { position: relative; border-radius: 14px; overflow: hidden; }
  .int-lead .img-ph { aspect-ratio: 1 / 1; width: 100%; height: auto; min-height: 0; border-radius: 14px; background: linear-gradient(45deg, #D6D6D6 0%, #8F8F8F 100%); }
  .int-lead__body { position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; padding: 28px 28px 30px; background: linear-gradient(0deg, rgba(0,0,0,0.62) 0%, rgba(0,0,0,0.30) 62%, rgba(0,0,0,0) 100%); }
  .int-lead__body .lead-title { color: #FFF; }
  .int-lead__body .body-copy { color: rgba(255,255,255,0.85); }
  .int-lead__body .cta { background: #96F878 !important; }
  .int-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 26px; align-items: stretch; height: 100%; }
  .int-poster { position: relative; border-radius: 14px; overflow: hidden; height: 100%; min-height: 320px; }
  .int-poster .img-ph { height: 100%; min-height: 0; border-radius: 14px; background: linear-gradient(45deg, #D6D6D6 0%, #8F8F8F 100%); }
  .int-poster__body { position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; padding: 22px 22px 24px; background: linear-gradient(0deg, rgba(0,0,0,0.62) 0%, rgba(0,0,0,0.30) 62%, rgba(0,0,0,0) 100%); }
  .int-poster__body .card-title { color: #FFF; font-size: 22px; margin-bottom: 8px; }
  .int-poster__body .card-byline { color: rgba(255,255,255,0.85); font-size: 15px; margin-bottom: 0; }
  

  /* callout bar */
  .callout { margin: 32px max(40px, calc((100% - var(--content-w)) / 2)); background: #F7F4EF; border: 0; border-radius: 14px; padding: 56px 56px; display: grid; grid-template-columns: 3fr 1fr; gap: 32px; align-items: center; }
  .callout .body-copy { color: var(--ink); }

  /* footer */
  .footer { padding: 44px max(40px, calc((100% - var(--content-w)) / 2)) 36px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 30px; }
  .footer h4 { font-size: 15px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; margin-bottom: 24px; }
  .footer__byline { font-family: var(--font-sans); font-size: 15px; font-weight: 300; line-height: 1.6; color: var(--ink); max-width: 240px; }
  .footer ul { list-style: none; }
  .footer li { font-size: 19.5px; line-height: 1.4; font-weight: 300; margin-bottom: 20px; color: #000000; cursor: pointer; }
  .footer li a { color: #000000; font-weight: 300; }
  .footer li:hover { text-decoration: underline; }
  .footer-divider { height: 1px; background: var(--line-soft); margin: 34px max(40px, calc((100% - var(--content-w)) / 2)) 0; }
  .subfooter { padding: 26px max(40px, calc((100% - var(--content-w)) / 2)) 26px; display: flex; justify-content: flex-start; gap: 28px; font-size: 13px; color: var(--mute); }
  .subfooter span { cursor: pointer; }
  .subfooter span:hover { text-decoration: underline; }

  /* Shared homepage and Research hero background. */
  .hero, .research-overview__intro.arch-top, .monitors-hero.arch-top { background: linear-gradient(135deg, #b9efbe, #59e269 40%, #a9e9c4 75%, #dced86); }

  /* hero */
  .hero { position: relative; padding: 118px max(40px, calc((100% - var(--content-w)) / 2)) 16px; min-height: calc(100vh + 180px); display: flex; flex-direction: column; justify-content: space-between; align-items: stretch; overflow: hidden; }
  .hero .callout { margin: 0 6%; position: relative; z-index: 2; }
  .hero-canvas { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 0; }
  .hero::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 140px; background: linear-gradient(180deg, rgba(255,255,255,0) 0%, #FFFFFF 100%); pointer-events: none; z-index: 1; }
  .hero__content { position: relative; z-index: 2; margin-top: 10vh; text-align: center; }
  .hero__content { width: 100%; }
  .hero h1 { font-family: var(--font-display); font-size: clamp(52px, 6.5vw, 88px); font-weight: 600; line-height: 1.05; letter-spacing: -0.009em; margin-bottom: 24px; color: #0B2F16; max-width: 75%; margin-left: auto; margin-right: auto; color: #0B2F16; }
  .hero p { font-family: var(--byline-font, var(--font-sans)); font-weight: var(--byline-weight, 400); font-size: 22px; line-height: 1.6; color: var(--ink); max-width: 46ch; margin: 0 auto 26px; }
  #page-home .hero__content > p { max-width: 60ch; text-wrap: balance; }
  #page-home > .hero { min-height: 0; justify-content: flex-start; gap: 80px; }
  #page-home .hero .callout { margin-top: 0; background: var(--callout-green) url("../images/sanor-ball-green.jpg") center / cover no-repeat; color: var(--white); grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 48px; align-items: start; padding: 32px; border-radius: 24px; }
  #page-home .hero .callout :is(.section-title, .body-copy) { color: var(--white); }
  #page-home .hero .callout .cta { background: var(--bright-green); color: var(--deep-green); }
  #page-home .hero .callout .cta:focus-visible { outline-color: var(--white); }
  #page-home .home-callout .section-title { font-size: 48px; font-weight: 600; line-height: 1.06; margin: 0; }
  #page-home .home-callout .body-copy { font-size: 22px; line-height: 1.4; margin: 0; }
  #page-home .home-callout__content { min-width: 0; }
  #page-home .home-callout__action { display: flex; justify-content: flex-end; margin-top: 32px; }
  @media (max-width: 800px) {
    #page-home .hero .callout { grid-template-columns: minmax(0, 1fr); gap: 24px; padding: 28px 24px; }
    #page-home .home-callout .section-title { font-size: 32px !important; }
    #page-home .home-callout .body-copy { font-size: 18px; }
    #page-home .home-callout__action { justify-content: flex-start; margin-top: 24px; }
  }
  @media (max-width: 800px) {
    #page-home > .hero { gap: 80px; }
  }
  

  /* experts block */
  .expert-row { display: grid; grid-template-columns: repeat(5, 1fr); gap: 20px; }
  .expert-card { text-align: left; }
  .expert-card .img-ph { aspect-ratio: 3 / 4; width: 100%; height: auto; margin-bottom: 14px; }
  .expert-name { font-family: var(--font-sans); font-weight: 300; font-size: 22px; color: var(--ink); }
  .expert-byline { font-family: var(--font-sans); font-weight: 300; font-size: 15px; color: var(--ink); margin-top: 3px; }
  .head-ph { width: 64px; height: 64px; border-radius: 50%; background: var(--fill-dark); border: 1px solid var(--line); margin: 0 auto 6px; }

  /* Playbook feature */
  .feature { padding: 90px max(40px, calc((100% - var(--content-w)) / 2)); background: var(--page, #FFF); }

  /* article */
  .article-body { max-width: 720px; margin: 0 auto; }


  .chip { display:inline-block; font-family: var(--mono); font-size:10px; border:1px solid var(--line); padding:2px 8px; border-radius: 999px; color: var(--mute); margin-right:6px; cursor:pointer; }
  .chip:hover { background: var(--fill); }

  

/* ═══ Sanor tokens patch ═══ */
/* ============================================================
   Sanor — type scale + CTA button
   Low fidelity, greyscale. Drop in after existing styles.
   ============================================================ */



/* ---------- type roles ---------- */

.eyebrow {
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: var(--size-eyebrow);
  letter-spacing: 0.08em;
  line-height: 1.2;
  text-transform: uppercase;
  color: var(--ink);
}

h2.section-title, .section-title {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 50px;
  line-height: 1.05;
  letter-spacing: -0.009em;
  color: #0B2F16;
  margin-bottom: 26px;
}


.byline,
.body-copy {
  font-family: var(--byline-font, var(--font-sans));
  font-weight: var(--byline-weight, 400);
  font-size: 19px;
  line-height: 1.6;
  color: var(--ink);
}

/* ---------- CTA button ---------- */

.cta {
  display: inline-flex;
  align-items: center;
  height: var(--btn-h);
  padding: 0 var(--btn-pad);
  border: 0;
  border-radius: var(--btn-radius);
  background: var(--fill);
  color: #0B2F16;
  font-family: var(--font-sans);
  font-size: var(--size-btn);
  font-weight: var(--btn-weight);
  letter-spacing: 0.03em;
  text-transform: uppercase;
  line-height: 1;
  text-decoration: none;
  cursor: pointer;
  overflow: hidden;
  -webkit-tap-highlight-color: transparent;
}

.cta:focus-visible { outline: 2px solid var(--ink); outline-offset: 3px; }
.cta:active { transform: translateY(1px); }
.cta__label { white-space: nowrap; }

.cta__slot {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  overflow: hidden;
  width: calc(var(--arrow-w) + var(--arrow-gap));
  transition: width var(--swap-dur) var(--swap-ease);
}

.cta__slot--lead  { justify-content: flex-start; width: 0; }
.cta__slot--trail { justify-content: flex-end; }

.cta__slot svg {
  width: var(--arrow-w);
  height: auto;
  flex: 0 0 auto;
  display: block;
  transition: transform var(--swap-dur) var(--swap-ease),
              opacity calc(var(--swap-dur) * 0.6) linear;
}

.cta__slot--lead svg { opacity: 0; transform: translateX(-13px); }

.cta:hover .cta__slot--lead,
.cta:focus-visible .cta__slot--lead { width: calc(var(--arrow-w) + var(--arrow-gap)); }

.cta:hover .cta__slot--lead svg,
.cta:focus-visible .cta__slot--lead svg { opacity: 1; transform: translateX(0); }

.cta:hover .cta__slot--trail,
.cta:focus-visible .cta__slot--trail { width: 0; }

.cta:hover .cta__slot--trail svg,
.cta:focus-visible .cta__slot--trail svg { opacity: 0; transform: translateX(13px); }

@media (prefers-reduced-motion: reduce) {
  .cta__slot, .cta__slot svg, .r-metric { transition-duration: 1ms; }
}

/* buttons on tinted surfaces go white */
.callout .cta { background: #96F878; }
  .hero__content .cta { background: #FFFFFF !important; }
  #page-home .hero__content .cta { background: transparent !important; color: var(--deep-green); font-size: 18px; font-weight: 700; text-transform: none; letter-spacing: 0; padding: 0; height: auto; min-height: 44px; border-radius: 0; box-shadow: none; }
  .nav__cta .cta { background: transparent !important; box-shadow: inset 0 0 0 2px #0A3D2F; color: #0A3D2F; }
  .section .cta, .feature .cta { background: #F5F5F5; }
  .section--alt .cta { background: #FFFFFF; }
  .lead .cta { background: #96F878 !important; }
/* image placeholders on tinted surfaces go white */





/* byline archive link */
.byline-link { color: inherit; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; white-space: nowrap; }
/* footer social */
.footer-social { display: flex; justify-content: center; gap: 26px; padding: 6px 40px 0; }
.footer-social a { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 500; color: #333; text-decoration: none; cursor: pointer; }
.footer-social svg { width: 20px; height: 20px; }
.copyright { text-align: left; font-size: 12px; color: var(--mute); padding: 0 max(40px, calc((100% - var(--content-w)) / 2)) 30px; }
  .disclosures { padding: 10px max(40px, calc((100% - var(--content-w)) / 2)) 22px; text-align: left; }
  .disclosures p { font-size: 12px; line-height: 1.6; color: var(--mute); margin-bottom: 12px; }
  .disclosures a { color: var(--mute); text-decoration: underline; text-underline-offset: 2px; cursor: pointer; }

/* specialties block */
.cap-grid { display: grid; grid-template-columns: 1.2fr 1fr 1fr; gap: 48px; align-items: start; }
.cap-byline { font-family: var(--byline-font); font-size: 28px; font-weight: 300; line-height: 1.4; color: var(--ink); }
.specialty { font-family: var(--font-sans); font-size: 19px; font-weight: 400; color: var(--ink); padding: 14px 0; cursor: pointer; }
.specialty:hover { text-decoration: underline; text-underline-offset: 3px; }


/* lead + card titles (switcher-driven) */
.lead-title { font-family: var(--font-sans); font-size: 30px; font-weight: 300; line-height: 1.15; margin-bottom: 14px; cursor: pointer; }
.card-title { font-family: var(--font-sans); font-size: 22px; font-weight: 300; line-height: 1.25; margin-bottom: 8px; }
  .card-byline { font-family: var(--font-sans); font-size: 15px; font-weight: 300; line-height: 1.5; color: #555; margin-bottom: 14px; }

/* ═══ mobile overrides (final cascade) ═══ */




/* case studies */
.cs-stats { display: grid; grid-template-columns: repeat(3, auto); gap: 34px; justify-content: start; margin: 24px 0 22px; }
.cs-stat__num { font-family: var(--font-display); font-size: 40px; font-weight: 600; line-height: 1; color: var(--ink); }
.cs-stat__label { font-family: var(--font-sans); font-size: 13px; font-weight: 400; color: #555; margin-top: 6px; }
.cs-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; align-items: stretch; }
.cs-case { display: flex; flex-direction: column; }
.cs-case__body { flex: 1; display: flex; flex-direction: column; }
.cs-case__body > div:last-child { margin-top: auto; padding-top: 10px; }
.cs-case { border-radius: 14px; overflow: hidden; }
.cs-case .img-ph { height: 240px; }
.cs-case__body { background: #F7F4EF; border-radius: 0 0 14px 14px; padding: 26px 26px 28px; }
.cs-case .cta { background: #96F878 !important; }
.section--alt .cs-case__body { background: #FFFFFF; }
.cs-li__label { color: var(--ink); font-weight: 300; }
.cs-li__val { font-weight: 700; }
.cs-li__val--num { font-weight: 700; }


/* Private Clinic Playbook — site-wide lead magnet */
.gm { padding: 88px max(40px, calc((100% - var(--content-w)) / 2)); background: #0A3D2F; overflow: hidden; }
.gm__layout { width: 100%; max-width: var(--content-w); margin: 0 auto; display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(300px, 0.72fr); gap: clamp(42px, 7vw, 112px); align-items: center; }
.gm__content { position: relative; z-index: 1; max-width: 720px; }
.gm__eyebrow { color: #96F878; margin-bottom: 18px; }
.gm__title { font-family: var(--font-display); font-size: clamp(48px, 5vw, 68px); font-weight: 600; line-height: 1.06; letter-spacing: -0.009em; color: #FFFFFF; margin-bottom: 24px; }
.gm__text { font-family: var(--font-sans); font-size: 22px; font-weight: 300; line-height: 1.55; color: rgba(255,255,255,0.85); margin: 0 0 24px; max-width: 650px; }
.gm__media { display: flex; align-items: center; justify-content: center; min-width: 0; }
.gm__media img { display: block; width: min(100%, 470px); height: auto; max-height: 580px; object-fit: contain; filter: drop-shadow(0 28px 30px rgba(0,0,0,0.2)); }


/* ════════ MOBILE (≤800px) — additive layer, desktop untouched ════════ */
.nav__burger { display: none; }
.mobile-menu { display: none; }

@media (max-width: 800px) {
  /* nav: burger left, logo center, CTA right */
  .nav { grid-template-columns: 44px 1fr 44px; padding: 14px 20px; position: absolute; top: 0; left: 0; right: 0; z-index: 210; background: transparent; }
  .nav__links { display: none; }
  .nav__burger { display: flex; flex-direction: column; justify-content: center; gap: 7px; width: 30px; height: 30px; background: none; border: 0; padding: 0; cursor: pointer; position: relative; z-index: 220; }
  .nav__burger span { display: block; width: 26px; height: 2px; background: var(--ink); border-radius: 2px; transition: transform 240ms cubic-bezier(0.65,0,0.35,1); }
  .nav .wordmark { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); }
  .nav__cta { display: none; }

  /* callout */
  .callout { grid-template-columns: 1fr; margin: 24px 20px; padding: 32px 26px; gap: 22px; align-items: start; }
  .callout .section-title { font-size: 26px !important; }
  .callout > span { justify-self: start !important; }

  /* sections: rhythm + heads */
  .section { padding-left: 20px; padding-right: 20px; padding-top: 64px; padding-bottom: 64px; }
  h2.section-title, .section-title { font-size: 36px; margin-bottom: 14px; }
  .byline, .hero p, .callout .body-copy, .gm__text { font-size: 17px; }

  /* lead pieces: image on top, panel below */
  .lead { grid-template-columns: 1fr; }
  .lead .img-ph { order: -1; height: 220px; min-height: 0; }
  .lead > div:not(.img-ph) { padding: 26px 22px; }
  .lead-title { font-size: 24px; }
  .lead .body-copy { font-size: 16px; }

  /* card rows: single column, horizontal cards (image 1/3 left, text 2/3 right) */
  .grid-3 { grid-template-columns: 1fr; gap: 16px; }
  .card { display: grid; grid-template-columns: 1fr 2fr; overflow: hidden; }
  .card .img-ph { height: 100%; min-height: 110px; border-radius: 14px 0 0 14px; }
  .card__body { border-radius: 0 14px 14px 0; display: flex; flex-direction: column; justify-content: center; padding: 18px 18px; }
  .card-title { font-size: 17px; line-height: 1.3; margin-bottom: 6px; }
  .card-byline { font-size: 13px; margin-bottom: 0; }
  .card .tag { display: none; }

  /* capabilities: single column */
  .cap-grid { grid-template-columns: 1fr; gap: 0; }
  .cap-grid > div:first-child { margin-bottom: 12px; }
  .cap-byline { font-size: 22px; margin-bottom: 12px; }
  .specialty { padding: 12px 0; }

  /* research: cards 2-up (vertical format, tags stay hidden per mobile card rule) */
  .grid-4 { grid-template-columns: 1fr 1fr; gap: 14px; }
  .grid-4 .card { display: block; }
  .grid-4 .card .img-ph { height: 110px; min-height: 0; border-radius: 14px 14px 0 0; }
  .grid-4 .card__body { border-radius: 0 0 14px 14px; padding: 14px 14px 16px; }
  .grid-4 .card-title { font-size: 15px; }

  /* interviews: lead full width, posters 2-up below */
  .int-split { grid-template-columns: 1fr; gap: 22px; }
  .int-lead .img-ph { aspect-ratio: 1 / 1; }
  .int-lead__body { padding: 22px 20px 24px; }
  .int-lead__body .lead-title { font-size: 24px; }
  .int-cards { grid-template-columns: 1fr 1fr; gap: 14px; height: auto; }
  .int-poster { min-height: 240px; }
  .int-poster .img-ph { aspect-ratio: 3 / 4; height: auto; }
  .int-poster__body { padding: 16px 16px 18px; }
  .int-poster__body .card-title { font-size: 16px; margin-bottom: 5px; }
  .int-poster__body .card-byline { font-size: 13px; }

  /* case studies: single column */
  .cs-row { grid-template-columns: 1fr; gap: 18px; }
  .cs-case .img-ph { height: 190px; }
  .cs-case__body { padding: 24px 22px 26px; }

  /* experts: vertical list of wide cards (like strategy cards) */
  .expert-row { grid-template-columns: 1fr; gap: 16px; }
  .expert-card { display: grid; grid-template-columns: 1fr 2fr; grid-template-rows: 1fr 1fr; gap: 0; overflow: hidden; border-radius: 14px; background: #F5F5F5; }
  .expert-card .img-ph { grid-column: 1; grid-row: 1 / 3; aspect-ratio: auto; height: 100%; min-height: 104px; border-radius: 14px 0 0 14px; margin-bottom: 0; }
  .expert-card .expert-name { grid-column: 2; grid-row: 1; align-self: end; padding: 0 18px; font-size: 17px; }
  .expert-card .expert-byline { grid-column: 2; grid-row: 2; align-self: start; padding: 0 18px; margin-top: 4px; }

  /* footer: straight stack */
  .footer { grid-template-columns: 1fr; gap: 34px; padding: 44px 20px 8px; }
  .footer__byline { max-width: 100%; }
  .footer-divider { margin-left: 20px; margin-right: 20px; margin-top: 26px; }
  .subfooter { flex-wrap: wrap; gap: 12px 24px; padding: 22px 20px; }
  .disclosures { padding: 4px 20px 16px; }
  .disclosures p { font-size: 11px; }
  .copyright { font-size: 11px; }
  .copyright { padding: 0 20px 26px; }

  /* type unification: lead set (24/15) + card set (17/13), Inter 300 */
  .cs-case .lead-title { font-size: 24px; }
  .grid-4 .card-title { font-size: 17px; }
  .int-poster__body .card-title { font-size: 17px; }
  .expert-card .expert-name { font-size: 17px; font-weight: 300; }
  .expert-card .expert-byline { font-size: 13px; font-weight: 300; }

  /* burger -> X */
  body.menu-open .nav__burger span:nth-child(1) { transform: translateY(4.5px) rotate(45deg); }
  body.menu-open .nav__burger span:nth-child(2) { transform: translateY(-4.5px) rotate(-45deg); }

  /* fullscreen menu */
  .mobile-menu { display: flex; flex-direction: column; justify-content: space-between; position: fixed; inset: 0; background: #FFFFFF; z-index: 200; padding: 96px 20px 28px; transform: translateX(-100%); transition: transform 280ms cubic-bezier(0.65,0,0.35,1); }
  body.menu-open .mobile-menu { transform: translateX(0); }
  body.menu-open { overflow: hidden; }
  .mobile-menu__links { display: flex; flex-direction: column; }
  .mobile-menu__links a { font-family: var(--font-sans); font-size: 34px; font-weight: 300; color: var(--ink); text-decoration: none; padding: 14px 0; cursor: pointer; }
  .mobile-menu__cta .cta { --btn-h: 54px; }
}

/* cream section */
.section--cream { background: #FFFFFF; }
.section--cream .card__body, .section--cream .lead > div:not(.img-ph) { background: #F7F4EF; }
.section--cream .lead .cta { background: #96F878; }
.section--cream > div[style*="text-align:center"] .cta { background: #96F878; }

/* deep green section */
.section--deep { background: #0A3D2F; }
.section--deep .section-title { color: #FFFFFF !important; font-size: 42px; }
.section--deep .cap-byline { font-size: 24px; }
.section--deep .byline, .section--deep .cap-byline, .section--deep .specialty { color: #FFFFFF; }

/* bottom section links: text style matching byline links */
.section-more { font-family: var(--byline-font); font-size: 18px; font-weight: var(--byline-weight); display: inline-block; padding: 26px 0 10px; }

/* section byline breathing room */
.section__head .byline { margin-top: 6px; margin-bottom: 10px; }

/* strategies archive */
.arch-top { position: relative; background: #F7F4EF; padding: 150px max(40px, calc((100% - var(--content-w)) / 2)) 100px; }
.arch-top::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 100px; background: linear-gradient(180deg, rgba(255,255,255,0) 0%, #FFFFFF 100%); pointer-events: none; }
.arch-top > * { position: relative; z-index: 1; }
.arch-title { font-family: var(--font-display); font-size: 102px; font-weight: 600; line-height: 1.04; letter-spacing: -0.01em; color: #0B2F16; margin-bottom: 26px; }
.arch-byline { font-size: 32px; max-width: 900px; margin-bottom: 140px; }
.arch-featured { display: grid; grid-template-columns: 1.7fr 1fr; gap: 28px; align-items: stretch; }
.arch-feat { display: flex; flex-direction: column; border-radius: 14px; overflow: hidden; }
.arch-feat .img-ph { height: 340px; border-radius: 14px 14px 0 0; }
.arch-feat__body { background: #FFFFFF; border-radius: 0 0 14px 14px; padding: 32px 36px; flex: 1; }
.arch-semi { display: flex; flex-direction: column; border-radius: 14px; overflow: hidden; }
.arch-semi .img-ph { height: 340px; border-radius: 14px 14px 0 0; }
.arch-semi__body { background: #FFFFFF; border-radius: 0 0 14px 14px; padding: 26px 26px; flex: 1; }
#page-archive .grid-3 { grid-template-columns: 1fr; gap: 26px; max-width: 70%; margin: 0 auto; }
#page-archive .grid-3 .card { display: grid; grid-template-columns: 1fr 1.5fr; overflow: hidden; }
#page-archive .grid-3 .card .img-ph { height: 100%; min-height: 240px; border-radius: 14px 0 0 14px; }
#page-archive .grid-3 .card__body { border-radius: 0 14px 14px 0; padding: 34px 36px; display: flex; flex-direction: column; justify-content: center; }
#page-archive .grid-3 .card-title { font-size: 26px; margin-bottom: 10px; }
#page-archive .grid-3 .card-byline { font-size: 16px; margin-bottom: 0; }
@media (max-width: 800px) {
  #page-archive .grid-3 { max-width: 100%; }
  .arch-top { padding: 96px 20px 100px; }
  .arch-title { font-size: 52px; }
  .arch-byline { font-size: 21px; margin-bottom: 78px; }
  .arch-featured { grid-template-columns: 1fr; gap: 18px; }
  .arch-feat .img-ph, .arch-semi .img-ph { height: 210px; }
}

/* mobile spacing adjustments */
@media (max-width: 800px) {
  .hero .callout { margin-top: 72px; }
  h2.section-title, .section-title { margin-bottom: 12px; }
  .section__head .byline { margin-top: 10px; margin-bottom: 26px; }
}

/* research archive */
.r-metrics { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin-bottom: 10px; }
.r-metrics--categories { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.r-metric { display: block; background: #FFFFFF; border-radius: 14px; padding: 28px 26px; transition: transform 160ms ease, box-shadow 160ms ease; }
.r-metric:hover { transform: translateY(-2px); box-shadow: 0 12px 28px rgba(11,47,22,0.08); }
.r-metric:focus-visible { outline: 3px solid rgba(11,47,22,0.28); outline-offset: 3px; }
.research-category-icon { display: block; width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; }
.r-metric__heading { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 10px; }
.r-metric__icon { display: block; flex: 0 0 22px; width: 22px; height: 22px; color: #0A3D2F; margin-top: 2px; }
.r-metric__name { font-family: var(--font-display); font-size: 22px; font-weight: 600; line-height: 1.18; color: #0B2F16; }
.r-metric__text { font-family: var(--font-sans); font-size: 15px; font-weight: 300; line-height: 1.55; color: var(--ink); margin: 0; }
.research-sector-hero__title { display: flex; align-items: center; gap: 22px; margin-bottom: 26px; }
.research-sector-hero__title .arch-title { margin-bottom: 0; }
.research-sector-hero__icon { display: block; flex: 0 0 50px; width: 50px; height: 50px; color: #0A3D2F; }
#page-research .grid-3, #page-interviews .grid-3, #page-trackers .grid-3 { grid-template-columns: 1fr; gap: 26px; max-width: 70%; margin: 0 auto; }
#page-research .grid-3 .card, #page-interviews .grid-3 .card, #page-trackers .grid-3 .card { display: grid; grid-template-columns: 1fr 1.5fr; overflow: hidden; }
#page-research .grid-3 .card .img-ph, #page-interviews .grid-3 .card .img-ph, #page-trackers .grid-3 .card .img-ph { height: 100%; min-height: 240px; border-radius: 14px 0 0 14px; }
#page-research .grid-3 .card__body, #page-interviews .grid-3 .card__body, #page-trackers .grid-3 .card__body { border-radius: 0 14px 14px 0; padding: 34px 36px; display: flex; flex-direction: column; justify-content: center; }
#page-research .grid-3 .card-title, #page-interviews .grid-3 .card-title, #page-trackers .grid-3 .card-title { font-size: 26px; margin-bottom: 10px; }
#page-research .grid-3 .card-byline, #page-interviews .grid-3 .card-byline, #page-trackers .grid-3 .card-byline { font-size: 16px; margin-bottom: 0; }
@media (max-width: 800px) {
  .r-metrics, .r-metrics--categories { grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 40px; }
  .r-metric { padding: 20px 18px; }
  .r-metric__heading { gap: 8px; margin-bottom: 8px; }
  .r-metric__icon { flex-basis: 18px; width: 18px; height: 18px; margin-top: 2px; }
  .r-metric__name { font-size: 18px; }
  .r-metric__text { font-size: 13px; }
  .research-sector-hero__title { gap: 14px; margin-bottom: 22px; }
  .research-sector-hero__icon { flex-basis: 34px; width: 34px; height: 34px; }
  #page-research .grid-3, #page-interviews .grid-3, #page-trackers .grid-3 { max-width: 100%; }
}

.r-metrics__head { margin-top: 110px; }
@media (max-width: 800px) { .r-metrics__head { margin-top: 64px; } }

.research-sector-preview { padding: 72px 0; border-top: 1px solid var(--line-soft); }
.research-sector-preview:first-child { padding-top: 0; border-top: 0; }
.research-sector-preview:last-child { padding-bottom: 0; }
.research-sector-preview__head { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 36px; align-items: end; margin-bottom: 32px; }
.research-sector-preview__title { margin-bottom: 12px; }
.research-sector-preview__title a { color: #0B2F16; }
.research-sector-preview__title a:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 5px; }
.research-sector-preview__description { max-width: 760px; margin: 0; }
.research-sector-preview__all { align-self: end; padding-bottom: 4px; font-family: var(--font-sans); font-size: 14px; font-weight: 600; color: #0B2F16; white-space: nowrap; }
.research-sector-preview__all:hover { text-decoration: underline; text-underline-offset: 4px; }
.research-sector-preview__card { display: flex; flex-direction: column; }
.research-sector-preview__card .img-ph { height: 190px; }
.research-sector-preview__card .card__body { flex: 1; background: #F7F4EF; }
.research-sector-preview__empty { margin: 0; padding: 24px 26px; border-radius: 14px; background: #F7F4EF; }

@media (max-width: 800px) {
  .research-sector-preview { padding: 54px 0; }
  .research-sector-preview__head { grid-template-columns: 1fr; gap: 16px; margin-bottom: 24px; }
  .research-sector-preview__title { margin-bottom: 10px; }
  .research-sector-preview__all { justify-self: start; padding-bottom: 0; white-space: normal; }
  .research-sector-preview__card { display: grid; grid-template-columns: 1fr 2fr; }
  .research-sector-preview__card .img-ph { height: 100%; min-height: 110px; border-radius: 14px 0 0 14px; }
  .research-sector-preview__card .card__body { border-radius: 0 14px 14px 0; padding: 18px; }
}

.r-cat { display: inline-flex; align-items: center; gap: 6px; font-family: var(--font-sans); font-size: 11px; font-weight: 500; line-height: 1.2; letter-spacing: 0.06em; text-transform: uppercase; color: #0A3D2F; background: #E9F7EF; border-radius: 999px; padding: 5px 10px; margin-bottom: 12px; align-self: flex-start; }
.r-cat--category { background: #96F878; color: #0A3D2F; }
.r-cat__icon { display: block; flex: 0 0 12px; width: 12px; height: 12px; color: currentColor; }
.r-cat--research { background: #0A3D2F; color: #FFFFFF; }
.art-meta--badges { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-bottom: 18px; }
.art-meta--badges .r-cat { margin-bottom: 0; }

#page-interviews .int-split { margin-top: 0; grid-template-columns: 1fr 1fr; }
#page-interviews .int-cards { grid-template-columns: 1fr; }

/* testimonial component */
.t-box { background: #FFFFFF; border-radius: 14px; padding: 48px; display: grid; }
.t-box--1 { grid-template-columns: 1fr; max-width: 720px; }
.t-box--2 { grid-template-columns: 1fr 1fr; }
.t-box--3 { grid-template-columns: 1fr 1fr 1fr; }
.t-cell { display: flex; flex-direction: column; padding: 0 36px; }
.t-cell:first-child { padding-left: 0; }
.t-box--2 .t-cell:last-child, .t-box--3 .t-cell:last-child { padding-right: 0; }
.t-box--2 .t-cell + .t-cell, .t-box--3 .t-cell + .t-cell { border-left: 1px solid #E5E5E5; }
.t-quote { font-family: var(--font-display); font-size: 21px; font-weight: 400; line-height: 1.45; color: var(--ink); margin: 0 0 28px; }
.t-attr { margin-top: auto; display: flex; align-items: center; justify-content: flex-start; gap: 14px; }
.t-name { font-family: var(--font-sans); font-size: 16px; font-weight: 600; color: #0B2F16; }
.t-co { font-family: var(--font-sans); font-size: 14px; font-weight: 300; color: var(--ink); margin-top: 2px; }
.t-photo { width: 52px; height: 52px; border-radius: 50%; background: linear-gradient(135deg, #8A8A8A, #D6D6D6); flex: 0 0 auto; }

/* case studies archive */
.csa-featured { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; align-items: start; }
.csa-featured .cs-case__body { background: #FFFFFF; }
.csa-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; align-items: start; }
.vid-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.vid-ph { aspect-ratio: 9 / 16; border-radius: 14px; background: linear-gradient(135deg, #8A8A8A 0%, #D6D6D6 100%); position: relative; }
.vid-ph::after { content: ""; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 64px; height: 64px; border-radius: 50%; background: rgba(255,255,255,0.85); }
.vid-ph::before { content: ""; position: absolute; top: 50%; left: calc(50% + 3px); transform: translate(-50%, -50%); z-index: 1; width: 0; height: 0; border-left: 18px solid #0B2F16; border-top: 11px solid transparent; border-bottom: 11px solid transparent; }
@media (max-width: 800px) {
  .t-box { padding: 28px 24px; }
  .t-box--2, .t-box--3 { grid-template-columns: 1fr; }
  .t-cell, .t-cell:first-child { padding: 0; }
  .t-box--2 .t-cell + .t-cell, .t-box--3 .t-cell + .t-cell { border-left: 0; border-top: 1px solid #E5E5E5; margin-top: 28px; padding-top: 28px; }
  .t-quote { font-size: 18px; }
  .csa-featured, .csa-grid { grid-template-columns: 1fr; gap: 18px; }
  .vid-grid { grid-template-columns: 1fr 1fr; gap: 12px; }
}

.t-box--row { grid-column: 1 / -1; width: 80%; margin: 50px auto; }

@media (max-width: 800px) {
  .gm__title { font-size: 40px; }
  .gm__text { font-size: 18px; }
}

/* t-box background adapts to section background */
.section .t-box { background: #F7F4EF; }
.section[style*="#F7F4EF"] .t-box { background: #FFFFFF; }

/* card images: rounded top only */
.cs-case .img-ph { border-radius: 14px 14px 0 0; }
@media (min-width: 801px) {
  .card > .img-ph { border-radius: 14px 14px 0 0; }
}

/* case studies sub-section heads */
.csa-head { padding: 24px 0 44px; }
.csa-head .section-title { margin-bottom: 12px; }
.csa-head .byline { margin: 0; }
@media (max-width: 800px) { .csa-head { padding: 8px 0 30px; } }

/* content piece */
.art-col { max-width: 780px; margin: 0 auto; }
.art-top { padding-bottom: 40px; }
.art-top::after { height: 28px; }
.art-body .art-col { padding-top: 0; }
.art-title { font-size: 78px; line-height: 1.05; margin-bottom: 26px; }
.art-top .art-title { font-size: 82px; }
.art-meta { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 30px; }
.art-updated { font-family: var(--font-sans); font-size: 16px; font-weight: 400; color: var(--ink); }
.art-people { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-bottom: 34px; }
.art-person { background: #FFFFFF; border-radius: 12px; padding: 12px 14px; }
.art-person__label { font-family: var(--font-sans); font-size: 10px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: #0A3D2F; margin-bottom: 7px; }
.art-person__row { display: flex; align-items: center; gap: 10px; }
.art-person .t-photo { width: 36px !important; height: 36px !important; }
.art-person .t-name { font-size: 14px; }
.art-side-box .t-name { font-size: 13px; }
.art-side-box .t-co { font-size: 12px; }
.art-person .t-co { font-size: 12px; }
.art-intro { font-family: var(--font-sans); font-size: 24px; font-weight: 300; line-height: 1.5; color: var(--ink); margin: 0 0 38px; }
.art-hero-img { height: 420px; }
.art-standards { background: #FDF6DD; border-radius: 14px; padding: 22px 24px; font-family: var(--font-sans); font-size: 14px; font-weight: 300; line-height: 1.6; color: var(--ink); margin-top: 28px; }
.art-link { text-decoration: underline; text-underline-offset: 3px; color: #0A3D2F; font-weight: 500; cursor: pointer; }
.art-p { font-family: var(--font-sans); font-size: 18px; font-weight: 300; line-height: 1.8; color: var(--ink); margin: 0 0 26px; }
.art-img { height: 380px; margin: 40px 0 40px; }
@media (max-width: 800px) {
  .art-title { font-size: 38px; }
  .art-top .art-title { font-size: 44px; }
  .art-people { grid-template-columns: 1fr; }
  .art-intro { font-size: 19px; }
  .art-hero-img { height: 220px; }
  .art-img { height: 200px; margin: 28px 0; }
}


.art-body { padding-top: 16px; }

.art-h2 { font-family: var(--font-display); font-size: 38px; font-weight: 600; color: #0B2F16; margin: 46px 0 18px; }
@media (max-width: 800px) { .art-h2 { font-size: 32px; margin: 34px 0 14px; } }

/* article layout v2 */
.art-col--hero { max-width: 1000px; }
.art-authorline { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px; margin-bottom: 10px; }
.art-authorline__prefix, .art-authorline__location { font-family: var(--font-sans); font-size: 16px; font-weight: 400; color: var(--ink); }
.art-authorline .t-co { margin-top: 0; }
.art-layout { display: grid; grid-template-columns: minmax(0, 1fr) 250px; gap: 48px; max-width: 1000px; margin: 0 auto; align-items: start; }
.art-side { display: flex; flex-direction: column; gap: 16px; }
.art-side-box { background: #F7F4EF; border-radius: 14px; padding: 24px 24px; }
.art-side-box .art-person__row { margin-top: 4px; }
.art-side .art-side-title { font-family: var(--font-sans); font-size: 12px; font-weight: 700; line-height: 1.6; color: var(--deep-green); }
.art-side-box--person .art-side-title { margin-bottom: 12px; }
.art-side-text, .art-side-action, .art-side .t-name, .art-side .t-co { font-family: var(--font-sans); font-size: 14px; font-weight: 300; line-height: 1.6; color: var(--ink); }
.art-side .t-name { font-weight: 700; color: var(--brand-green); }
.art-side-text { margin: 14px 0 10px; }
.art-side .art-side-action, .art-standards .art-side-action { display: inline; color: var(--ink); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; white-space: nowrap; }
.art-side .art-side-action:hover, .art-standards .art-side-action:hover { color: var(--ink); }
.art-side-action:focus-visible { outline: 2px solid var(--deep-green); outline-offset: 3px; }
.art-side .art-standards { margin-top: 0; }
@media (max-width: 800px) {
  .art-layout { grid-template-columns: 1fr; gap: 32px; }
}

.r-cat--lime { background: #96F878; color: #0B2F16; }


.art-byrow { display: flex; align-items: center; gap: 20px; }
.art-byrow__divider { width: 1px; height: 28px; background: #D8D4CC; }
@media (max-width: 800px) { .art-byrow { flex-direction: column; align-items: flex-start; gap: 8px; } .art-byrow__divider { display: none; } }
.art-h3 { font-family: var(--font-sans); font-size: 24px; font-weight: 600; line-height: 1.35; color: #0B2F16; margin: 28px 0 12px; }
@media (max-width: 800px) { .art-h3 { font-size: 22px; } }

.art-side .byline-link, .art-side .art-link { font-size: 14px; }

.art-person__row--link:hover .t-name { text-decoration: underline; text-underline-offset: 3px; }

.art-more { text-decoration: underline; text-underline-offset: 3px; color: #6E6E6E; cursor: pointer; }
.art-more:hover { color: var(--ink); }

.art-hero-video { aspect-ratio: 16 / 9; height: auto; border-radius: 14px; }

.art-ul { margin: 0 0 44px; padding-left: 22px; }
.art-ul li { font-family: var(--font-sans); font-size: 18px; font-weight: 300; line-height: 1.8; color: var(--ink); margin-bottom: 12px; }

.art-main > .art-h2:first-child { margin-top: 0; }

/* structural rule: pages opening with a hero band extend it behind the transparent nav */
.page:has(> .hero), .page:has(> .arch-top) { padding-top: 0; }

/* archive list cards: beige panels */
#page-archive .grid-3 .card__body,
#page-research .grid-3 .card__body,
#page-interviews .grid-3 .card__body { background: #F7F4EF; }

/* case study piece */
.cstat-strip { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-top: 28px; }
.cstat { background: #FFFFFF; border-radius: 14px; padding: 26px 20px; text-align: center; }
.cstat__num { font-family: var(--font-display); font-size: 40px; font-weight: 600; color: #0B2F16; line-height: 1; }
.cstat__label { font-family: var(--font-sans); font-size: 14px; font-weight: 300; color: var(--ink); margin-top: 8px; }
.cs-snapshot { list-style: none; margin: 12px 0 0; padding: 0; }
.cs-snapshot li { display: grid; grid-template-columns: 110px 1fr; gap: 12px; font-family: var(--font-sans); font-size: 13px; font-weight: 300; color: var(--ink); padding: 8px 0; border-bottom: 1px solid #E8E4DC; }
.cs-snapshot li:last-child { border-bottom: 0; }
.cs-snapshot li span:first-child { color: #6E6E6E; }
.cs-snapshot li span:last-child { font-weight: 500; }
.cs-cta-block { background: #F7F4EF; border-radius: 14px; padding: 40px 40px; margin-top: 44px; }
.cs-cta-block .art-p { margin-bottom: 22px; }
@media (max-width: 800px) {
  .cstat-strip { grid-template-columns: 1fr 1fr; gap: 12px; }
  .cstat__num { font-size: 30px; }
  .cs-cta-block { padding: 28px 24px; }
}

.cstat__num--text { font-size: 26px; line-height: 1.15; padding-top: 8px; }

.cs-snapshot-inline { margin-bottom: 40px; }
.cs-snapshot-inline .cs-snapshot { display: grid; grid-template-columns: 1fr 1fr; column-gap: 40px; }
@media (max-width: 800px) { .cs-snapshot-inline .cs-snapshot { grid-template-columns: 1fr; } }

.cs-more-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; align-items: start; }
.cs-more-grid .cs-case__body { background: #F7F4EF; }
@media (max-width: 800px) { .cs-more-grid { grid-template-columns: 1fr; gap: 18px; } }

/* mini stat grid in case study cards */

.cs-case__body { display: flex; flex-direction: column; }

.cs-snap-quote { display: flex; align-items: flex-start; gap: 16px; margin: 16px 0 20px; }
.cs-snap-quote__text { font-family: var(--font-display); font-size: 18px; font-weight: 400; line-height: 1.45; color: var(--ink); margin: 0; }
@media (max-width: 800px) { .cs-snap-quote__text { font-size: 16px; } }

/* about page */
.about-col { max-width: 780px; }
.about-impact { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.about-impact .about-card { background: #F7F4EF; }
.about-card { background: #FFFFFF; border-radius: 14px; padding: 30px 28px; }
.about-card__title { font-family: var(--font-display); font-size: 22px; font-weight: 600; color: #0B2F16; margin: 0 0 10px; }
.about-card .byline-link { font-size: 14px; }
.about-duo { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
@media (max-width: 800px) {
  .about-stats { grid-template-columns: 1fr 1fr; gap: 12px; }
  .about-impact, .about-duo { grid-template-columns: 1fr; gap: 14px; }
}

/* about v2 */
.about-split { display: grid; grid-template-columns: 1.2fr 1fr; gap: 56px; align-items: center; }
.about-split__visual svg { width: 100%; height: auto; }
.about-expertises { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 44px; }
.about-expertises .about-card { background: #FFFFFF; }
.about-caps .about-card { background: #F7F4EF; }
.cstat--big { padding: 40px 20px; }
.cstat--big .cstat__num { font-size: 58px; }
.cstat--big .cstat__label { font-size: 15px; margin-top: 12px; }
.about-caps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
@media (max-width: 800px) {
  .about-split { grid-template-columns: 1fr; gap: 28px; }
  .about-expertises, .about-caps { grid-template-columns: 1fr; gap: 14px; }
  .cstat--big .cstat__num { font-size: 38px; }
}

.cstat--beige { background: #F7F4EF; }
.about-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-top: 56px; }
@media (max-width: 800px) { .about-stats { grid-template-columns: 1fr 1fr; } }

.about-byline { font-size: 24px; line-height: 1.4; }
@media (max-width: 800px) {
  .about-byline { font-size: 20px; }
}

.hero--flat { min-height: 100vh; }

#advisory.section--deep .eyebrow { color: #96F878; }
#advisory.section--deep .art-p { color: rgba(255,255,255,0.85); }
#advisory.section--deep .byline-link { color: #96F878; }
#advisory.section--deep .about-card { background: #FFFFFF; }

.about-quad { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.about-quad .about-card { background: #F7F4EF; }
@media (max-width: 800px) { .about-quad { grid-template-columns: 1fr; gap: 14px; } }

.cstat--bare { background: transparent; padding-left: 0; padding-right: 0; text-align: left; }
.cstat--bare .cstat__num { font-size: 72px; }
.cstat--bare .cstat__label { font-size: 16px; }
@media (max-width: 800px) { .cstat--bare .cstat__num { font-size: 44px; } }
.arch-stats { margin-top: 64px; }

.pp-banner { aspect-ratio: 13 / 4; width: 100%; max-width: 1200px; height: auto; margin-top: 40px; }
.pp-people-row { display: grid; grid-template-columns: repeat(6, 1fr); gap: 16px; margin-bottom: 44px; }
.pp-people-row .img-ph { aspect-ratio: 3 / 4; height: auto; }
@media (max-width: 800px) {
  .pp-people-row { grid-template-columns: repeat(3, 1fr); gap: 10px; margin-bottom: 30px; }
}

/* careers */
.job-list { max-width: 900px; }
.job-row { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 26px 28px; background: #F7F4EF; border-radius: 14px; margin-bottom: 14px; }
.job-row__title { font-family: var(--font-display); font-size: 22px; font-weight: 600; color: #0B2F16; }
.job-row__meta { font-family: var(--font-sans); font-size: 14px; font-weight: 300; color: var(--ink); margin-top: 4px; }
.job-row__arrow { font-size: 22px; color: #0B2F16; }
.job-row:hover .job-row__title { text-decoration: underline; text-underline-offset: 4px; }
@media (max-width: 800px) { .job-row { padding: 20px 20px; } .job-row__title { font-size: 18px; } }

#page-job .cs-snapshot li { grid-template-columns: 70px 1fr; }

#page-job .about-impact .about-card { background: #F7F4EF; }

/* press */
.press-contact { display: flex; align-items: center; justify-content: space-between; gap: 28px; background: #FFFFFF; border-radius: 14px; padding: 32px 36px; margin-top: 40px; max-width: 900px; }
.press-contact__mail { font-family: var(--font-display); font-size: 30px; font-weight: 600; color: #0B2F16; margin: 6px 0 8px; }
.press-contact__note { font-family: var(--font-sans); font-size: 14px; font-weight: 300; color: var(--ink); }
.press-logos { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; max-width: 1000px; }
.press-logo { background: #F7F4EF; border-radius: 14px; padding: 30px 20px; text-align: center; font-family: var(--font-display); font-size: 19px; font-weight: 600; color: #5E5A50; }
.press-kit { display: flex; align-items: center; justify-content: space-between; gap: 28px; }
@media (max-width: 800px) {
  .press-contact, .press-kit { flex-direction: column; align-items: flex-start; }
  .press-logos { grid-template-columns: 1fr 1fr; gap: 12px; }
  .press-contact__mail { font-size: 22px; }
}

.press-cited { margin-top: 48px; }
.press-logos--hero { grid-template-columns: repeat(6, 1fr); max-width: none; }
.press-logos--hero .press-logo { background: transparent; padding: 10px 12px; color: #2B2B2B; display: flex; align-items: center; justify-content: center; }
.press-logo--forbes { font-family: var(--font-display); font-weight: 700; font-size: 24px; letter-spacing: 0.01em; }
.press-logo--bloomberg { font-family: var(--font-sans); font-weight: 800; font-size: 19px; letter-spacing: -0.01em; }
.press-logo--wsj { font-family: var(--font-display); font-weight: 600; font-size: 13px; letter-spacing: 0.02em; }
.press-logo--axios { font-family: var(--font-sans); font-weight: 900; font-size: 19px; letter-spacing: 0.14em; }
.press-logo--mh { font-family: var(--font-sans); font-weight: 600; font-size: 16px; }
.press-logo--beckers { font-family: var(--font-display); font-weight: 700; font-style: italic; font-size: 19px; }
@media (max-width: 800px) { .press-logos--hero { grid-template-columns: 1fr 1fr; } }

#page-press .card__body { background: #F7F4EF; }

.gw-flywheel { width: 100%; height: auto; }

/* growwithus landing */
.gw-col { max-width: 820px; margin: 0 auto; }
.gw-hero { text-align: center; }
.gw-audience { font-family: var(--font-sans); font-size: 14px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: #0A3D2F; margin-bottom: 18px; }
.gw-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 54px; }
.gw-h { text-align: center; }
.gw-faq__item { background: #FFFFFF; border-radius: 14px; padding: 26px 30px 10px; margin-bottom: 14px; }
@media (max-width: 800px) {
  .gw-stats { grid-template-columns: 1fr; gap: 8px; }
  #page-growwithus .arch-title { font-size: 40px !important; }
}

.gw-challenges { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; max-width: 1000px; margin: 0 auto; }
@media (max-width: 800px) { .gw-challenges { grid-template-columns: 1fr; gap: 14px; } }

/* growth blockers flow */
.gw-blockers { max-width: 680px; margin: 0 auto; }
.gw-blocker { display: flex; align-items: flex-start; gap: 20px; background: #FFFFFF; border-radius: 14px; padding: 24px 28px; }
.gw-blocker__icon { flex: 0 0 auto; width: 46px; height: 46px; border-radius: 12px; background: #F7F4EF; display: flex; align-items: center; justify-content: center; }
.gw-blocker__icon svg { width: 24px; height: 24px; }
.gw-blocker__title { font-family: var(--font-display); font-size: 20px; font-weight: 600; color: #0B2F16; margin: 2px 0 6px; }
.gw-blocker__text { font-family: var(--font-sans); font-size: 15px; font-weight: 300; line-height: 1.6; color: var(--ink); margin: 0; }
.gw-blocker__arrow { display: flex; justify-content: center; padding: 10px 0; }
.gw-blocker__arrow svg { width: 13px; height: 22px; }
@media (max-width: 800px) { .gw-blocker { padding: 18px 18px; gap: 14px; } .gw-blocker__title { font-size: 17px; } }

/* rpp : pac ratio visual */
.gw-ratio { display: grid; grid-template-columns: 1fr auto 1fr; gap: 28px; align-items: stretch; max-width: 860px; margin: 0 auto; }
.gw-ratio__box { background: #FFFFFF; border-radius: 14px; padding: 34px 30px; display: flex; flex-direction: column; align-items: center; }
.gw-trend { width: 84px; height: 48px; margin-bottom: 14px; }
.gw-ratio__title { font-family: var(--font-display); font-size: 24px; font-weight: 600; color: #0B2F16; line-height: 1.2; margin: 0; text-align: center; }
.gw-ratio__tag { font-family: var(--font-sans); font-size: 15px; font-weight: 600; color: #6E6E6E; margin: 6px 0 18px; }
.gw-ratio__list { list-style: disc; margin: 0; padding-left: 20px; align-self: stretch; }
.gw-ratio__list li { font-family: var(--font-sans); font-size: 15px; font-weight: 300; line-height: 1.6; color: var(--ink); margin-bottom: 8px; }
.gw-ratio__colon { display: flex; flex-direction: column; justify-content: center; gap: 26px; }
.gw-ratio__colon span { width: 16px; height: 16px; border-radius: 50%; background: #0B2F16; }
@media (max-width: 800px) {
  .gw-ratio { grid-template-columns: 1fr; gap: 16px; }
  .gw-ratio__colon { flex-direction: row; justify-content: center; gap: 26px; }
}

/* Playbook lead capture */
.gmp-path { width: 100%; height: auto; }
.gmp-form { display: flex; gap: 14px; justify-content: center; align-items: stretch; margin-top: 40px; flex-wrap: wrap; }

.gmp-input { font-family: var(--font-sans); font-size: 16px; font-weight: 300; padding: 0 22px; height: var(--btn-h); width: 340px; max-width: 90vw; border: 1.5px solid #D8D4CC; border-radius: var(--btn-radius); background: #FFFFFF; color: var(--ink); outline: none; box-sizing: border-box; }
.gmp-input:focus { border-color: #0A3D2F; }
.gmp-note { font-family: var(--font-sans); font-size: 13px; font-weight: 300; color: #6E6E6E; margin-top: 14px; }

.gm__form { display: flex; gap: 12px; justify-content: flex-start; flex-wrap: wrap; margin-top: 6px; }
.gm__form .gmp-input { width: 240px; border: 0; }
.gm__legal { font-family: var(--font-sans); font-size: 12px; font-weight: 300; line-height: 1.6; color: rgba(255,255,255,0.6); margin: 16px 0 0; max-width: 600px; text-align: left; }
.gm__legal-link { text-decoration: underline; text-underline-offset: 2px; cursor: pointer; }
@media (max-width: 800px) {
  .gm__form .gmp-input { width: 100%; }
  .gm__form .cta { width: 100%; }
}

/* Playbook landing */
.gm--hero { padding-top: 164px; padding-bottom: 104px; min-height: 780px; display: flex; align-items: center; }
.page:has(> .gm) { padding-top: 0; }
.nav--light .wordmark, .nav--light .nav__links > a, .nav--light .nav__dropdown-trigger { color: #FFFFFF; }
.nav--light .nav__cta .cta { box-shadow: inset 0 0 0 2px #96F878 !important; color: #96F878 !important; }
.nav--light .nav__burger span { background: #FFFFFF; }


.gm--hero .gm__layout { grid-template-columns: minmax(0, 1.05fr) minmax(380px, 0.72fr); }
.gm--hero .gm__title { font-size: clamp(58px, 6.4vw, 92px); max-width: 820px; }
.gm--hero .gm__subtitle { font-family: var(--font-display); font-size: clamp(26px, 2.4vw, 34px); font-weight: 600; line-height: 1.22; color: #FFFFFF; margin: -4px 0 22px; max-width: 760px; }
.gm--hero .gm__media img { width: min(100%, 560px); max-height: 720px; }
@media (min-width: 801px) {
  .gm--hero .gm__form .gmp-input { width: 190px; }
}
.playbook-intro { padding: 120px max(40px, calc((100% - var(--content-w)) / 2)); background: #FFFFFF; }
.playbook-intro__inner { max-width: 1000px; }
.playbook-intro .eyebrow, .playbook-system .eyebrow, .playbook-audience .eyebrow { color: #0A3D2F; margin-bottom: 20px; }
.playbook-intro h2, .playbook-system h2, .playbook-audience h2 { font-family: var(--font-display); font-size: clamp(42px, 5vw, 68px); font-weight: 600; line-height: 1.08; letter-spacing: -0.009em; color: #0B2F16; margin: 0; }
.playbook-intro p { font-family: var(--font-sans); font-size: 23px; font-weight: 300; line-height: 1.65; color: var(--ink); max-width: 850px; margin: 32px 0 0; }
.playbook-system { padding: 110px max(40px, calc((100% - var(--content-w)) / 2)) 120px; background: #F7F4EF; }
.playbook-system__head { max-width: 760px; margin-bottom: 64px; }
.playbook-disciplines { list-style: none; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: clamp(48px, 7vw, 110px); row-gap: 0; margin: 0; padding: 0; }
.playbook-discipline { display: grid; grid-template-columns: 58px 1fr; gap: 22px; padding: 34px 0 38px; border-top: 1px solid #CEC9BE; }
.playbook-discipline__number { font-family: var(--font-sans); font-size: 14px; font-weight: 700; letter-spacing: 0.08em; color: #0A3D2F; padding-top: 5px; }
.playbook-discipline h3 { font-family: var(--font-display); font-size: 28px; font-weight: 600; line-height: 1.2; color: #0B2F16; margin: 0 0 12px; }
.playbook-discipline p { font-family: var(--font-sans); font-size: 17px; font-weight: 300; line-height: 1.6; color: var(--ink); margin: 0; max-width: 520px; }
.playbook-audience { padding: 112px max(40px, calc((100% - var(--content-w)) / 2)); background: #FFFFFF; display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(300px, 0.72fr); gap: clamp(50px, 8vw, 130px); align-items: start; }
.playbook-audience__copy p { font-family: var(--font-sans); font-size: 20px; font-weight: 300; line-height: 1.65; color: var(--ink); margin: 28px 0 0; max-width: 650px; }
.playbook-audience__copy .playbook-audience__scope { font-size: 16px; margin-top: 18px; color: #5E5E5E; }
.playbook-audience__sectors { list-style: none; margin: 0; padding: 0; border-top: 1px solid #CEC9BE; }
.playbook-audience__sectors li { font-family: var(--font-sans); color: #0B2F16; padding: 20px 0; border-bottom: 1px solid #CEC9BE; }
.playbook-audience__sectors strong { display: block; font-size: 20px; font-weight: 600; }
.playbook-audience__sectors span { display: block; font-size: 16px; font-weight: 300; line-height: 1.55; color: var(--ink); margin-top: 6px; }
@media (max-width: 800px) {
  .gm { padding: 72px 20px; }
  .gm__layout, .gm--hero .gm__layout { grid-template-columns: 1fr; gap: 42px; }
  .gm__title, .gm--hero .gm__title { font-size: 44px; }
  .gm--hero .gm__subtitle { font-size: 24px; margin-top: -2px; }
  .gm__text { font-size: 17px; }
  .gm__media img, .gm--hero .gm__media img { width: min(100%, 360px); max-height: 510px; }
  .gm--hero { padding-top: 132px; padding-bottom: 74px; min-height: 0; }
  .playbook-intro, .playbook-system, .playbook-audience { padding: 72px 20px; }
  .playbook-intro h2, .playbook-system h2, .playbook-audience h2 { font-size: 36px; }
  .playbook-intro p { font-size: 18px; margin-top: 24px; }
  .playbook-system__head { margin-bottom: 38px; }
  .playbook-disciplines { grid-template-columns: 1fr; }
  .playbook-discipline { grid-template-columns: 42px 1fr; gap: 14px; padding: 26px 0 30px; }
  .playbook-discipline h3 { font-size: 23px; }
  .playbook-discipline p { font-size: 16px; }
  .playbook-audience { grid-template-columns: 1fr; gap: 42px; }
  .playbook-audience__copy p { font-size: 18px; }
  .playbook-audience__sectors strong { font-size: 18px; }
}

/* experts */
.exp-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px 24px; max-width: 1100px; margin: 0 auto; }
.exp-card__photo { aspect-ratio: 3 / 4; height: auto; border-radius: 14px; }
.exp-card__name { font-family: var(--font-display); font-size: 22px; font-weight: 600; color: #0B2F16; margin: 16px 0 2px; }
.exp-card__role { font-family: var(--font-sans); font-size: 14px; font-weight: 600; color: #0A3D2F; margin-bottom: 8px; }
.exp-card__coverage { font-family: var(--font-sans); font-size: 14px; font-weight: 300; line-height: 1.6; color: var(--ink); margin: 0 0 10px; }
.exp-card:hover .exp-card__name { text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 800px) { .exp-grid { grid-template-columns: 1fr 1fr; gap: 18px 14px; } .exp-card__name { font-size: 17px; } }

/* editorial standards */
.std-list { max-width: 860px; }
.std-row { display: flex; gap: 28px; padding: 30px 0; border-bottom: 1px solid #E8E4DC; }
.std-row:last-child { border-bottom: 0; }
.std-row__num { font-family: var(--font-display); font-size: 26px; font-weight: 600; color: #96F878; -webkit-text-stroke: 1px #0A3D2F; flex: 0 0 52px; }
.std-row__title { font-family: var(--font-display); font-size: 23px; font-weight: 600; color: #0B2F16; margin: 0 0 8px; }
.std-row__text { font-family: var(--font-sans); font-size: 16px; font-weight: 300; line-height: 1.65; color: var(--ink); margin: 0; max-width: 640px; }
.std-log { background: #FFFFFF; border-radius: 14px; padding: 26px 28px; font-family: var(--font-sans); font-size: 15px; font-weight: 300; color: #6E6E6E; }
@media (max-width: 800px) { .std-row { gap: 16px; padding: 22px 0; } .std-row__title { font-size: 19px; } }

.std-svg { width: 100%; height: auto; }

.std-title { font-family: var(--font-display); font-size: 32px; font-weight: 600; color: #0B2F16; margin: 0 0 18px; }
.std-index { margin: 0; padding-left: 24px; }
.std-index li { font-family: var(--font-sans); font-size: 17px; font-weight: 400; line-height: 1.9; color: var(--ink); }
@media (max-width: 800px) { .std-title { font-size: 24px; } }

.art-disclaimer,
.wp-block-group.is-style-sanor-note p.art-disclaimer { font-family: var(--font-sans); font-size: 15px; font-weight: 300; line-height: 1.6; color: #8A8578; margin: 34px 0 0; }

/* expert profile showcase */
.epx-head { display: grid; grid-template-columns: minmax(0, 1fr) clamp(240px, 26vw, 360px); gap: 48px; align-items: start; }
.epx-head__main { min-width: 0; }
.epx-head__photo { width: 100%; aspect-ratio: 3 / 4; height: auto; border-radius: 16px; }
.epx-role { font-family: var(--font-sans); font-size: 17px; font-weight: 600; color: #0A3D2F; margin-bottom: 22px; }
.epx-social { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 26px; }
.epx-social__link { --btn-h: 44px; --btn-pad: 20px; --size-btn: 16px; min-height: 44px; max-width: 100%; background: #96F878; color: #0A3D2F; text-transform: none; letter-spacing: 0; }
.epx-social__link:focus-visible { outline: 3px solid #0A3D2F; outline-offset: 4px; }
.epx-creds { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px; width: 100%; }
.epx-cred-list { list-style: none; margin: 0; padding: 0; }
.epx-cred-list--bulleted { list-style: disc; padding-left: 1.2em; }
.epx-cred-list li { font-family: var(--font-sans); font-size: 15px; font-weight: 300; line-height: 1.6; color: var(--ink); padding: 7px 0; }
.epx-pubs { display: flex; flex-direction: column; gap: 26px; max-width: 1000px; }
.epx-pub { display: flex; gap: 34px; align-items: center; background: #FFFFFF; border-radius: 16px; padding: 24px; cursor: pointer; }
.epx-pub__img { flex: 0 0 300px; aspect-ratio: 16 / 10; height: auto; border-radius: 10px; }
.epx-pub__title { font-family: var(--font-display); font-size: 29px; font-weight: 600; line-height: 1.2; color: #0B2F16; margin: 0; }
.epx-pub:hover .epx-pub__title { text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 800px) {
  .epx-head { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .epx-head__photo { width: 70%; max-width: 360px; grid-row: 1; }
  #page-expert-profile .arch-title { font-size: 44px !important; }
  .epx-creds { grid-template-columns: 1fr; gap: 26px; }
  .epx-pub { flex-direction: column; align-items: flex-start; gap: 16px; }
  .epx-pub__img { width: 100%; flex: none; }
  .epx-pub__title { font-size: 21px; }
}

.sm-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 40px; max-width: 1000px; }
.sm-list { list-style: none; margin: 0; padding: 0; }
.sm-list li { font-family: var(--font-sans); font-size: 15px; font-weight: 300; color: var(--ink); padding: 6px 0; cursor: pointer; }
.sm-list li:hover { text-decoration: underline; text-underline-offset: 3px; }
.contact-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; max-width: 1000px; }
@media (max-width: 800px) { .sm-grid { grid-template-columns: 1fr 1fr; gap: 26px; } .contact-grid { grid-template-columns: 1fr; } }

/* 404 */
.nf-code { font-family: var(--font-display); font-size: clamp(120px, 18vw, 210px); font-weight: 700; line-height: 0.95; letter-spacing: -0.02em; color: #0B2F16; }
.nf-code::after { content: "."; color: #96F878; }
.nf-links { display: flex; gap: 28px; justify-content: center; margin-top: 40px; flex-wrap: wrap; }

/* ============================================================
   Editor content inside .art-main (the_content output).
   The wireframe styles .art-p/.art-h2/etc. by class; block-editor
   output has no classes, so map bare elements to the same prose.
   Classless and native WordPress blocks share the same prose rules.
   ============================================================ */
.art-main :is(p:not([class]), p.wp-block-paragraph) { font-family: var(--font-sans); font-size: 18px; font-weight: 300; line-height: 1.8; color: var(--ink); margin: 0 0 26px; }
.art-main h2:not([class]) { font-family: var(--font-display); font-size: 38px; font-weight: 600; color: #0B2F16; margin: 46px 0 18px; }
.art-main h3:not([class]) { font-family: var(--font-sans); font-size: 24px; line-height: 1.35; font-weight: 600; color: #0B2F16; margin: 28px 0 12px; }
.art-main ul:not([class]), .art-main ol:not([class]), .art-main .wp-block-list { margin: 0 0 44px; padding-left: 22px; }
.art-main ul:not([class]) li, .art-main ol:not([class]) li, .art-main .wp-block-list li { font-family: var(--font-sans); font-size: 18px; font-weight: 300; line-height: 1.8; color: var(--ink); margin-bottom: 12px; }
.art-main p:not([class]) a, .art-main li a { text-decoration: underline; text-underline-offset: 3px; color: #0A3D2F; font-weight: inherit; }
.art-main img { max-width: 100%; height: auto; border-radius: 14px; margin: 20px 0 44px; }
.art-main .wp-block-image { margin: 20px 0 44px; }
.art-main figure:has(img) img { display: block; margin: 0; }
/* Legacy article figures and contents boxes have inline margins. */
.art-main figure:has(img), .art-main > nav[aria-label="Article contents"] { margin-bottom: 44px !important; }
.art-main .callout, .art-main .wp-block-group.has-background { margin-bottom: 44px; }
.art-main :is(ul, ol) :is(ul, ol) { margin-bottom: 12px; }
.art-main :is(li, .callout, .wp-block-group.has-background) > p:last-child { margin-bottom: 0; }
.art-main blockquote { border-left: 3px solid #96F878; margin: 0 0 44px; padding: 4px 0 4px 22px; font-family: var(--font-display); font-size: 21px; line-height: 1.45; }
.art-main { min-width: 0; }
.sanor-data-table-wrap { max-width: 100%; overflow-x: auto; margin: 36px 0 44px; border: 1px solid #E3DFD5; border-radius: 10px; }
.sanor-data-table-wrap:focus-visible { outline: 2px solid #0A3D2F; outline-offset: 3px; }
.sanor-data-table { width: 100%; min-width: 520px; border-collapse: collapse; font-family: var(--font-sans); font-size: 16px; font-weight: 300; line-height: 1.5; }
.sanor-data-table th, .sanor-data-table td { padding: 13px 16px; border-bottom: 1px solid #E3DFD5; vertical-align: top; }
.sanor-data-table th { background: #F7F4EF; color: #0B2F16; font-weight: 600; text-align: left; }
.sanor-data-table th[align="right"] { text-align: right; }
.sanor-data-table tr:last-child td { border-bottom: 0; }
.sanor-data-table tbody tr:nth-child(even) { background: #FAF9F6; }
/* Editor-safe chart notes and native data disclosures. Opt in per figure. */
.art-main .sanor-chart-figure { margin-bottom: 20px; }
.art-main .sanor-chart-figure > figcaption { margin: 16px 0 0; font-family: var(--font-sans); font-size: 14px; font-weight: 400; line-height: 1.65; color: #52616a; text-align: left; }
.art-main .sanor-chart-data { margin: 0 0 44px; border: 1px solid #E3DFD5; border-radius: 12px; background: #FAF9F6; }
.art-main .sanor-chart-data > summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 56px; padding: 16px 18px; border-radius: 12px; color: #0B2F16; font-family: var(--font-sans); font-size: 16px; font-weight: 600; line-height: 1.5; cursor: pointer; list-style: none; }
.art-main .sanor-chart-data > summary::-webkit-details-marker { display: none; }
.art-main .sanor-chart-data > summary::after { content: ""; width: 9px; height: 9px; flex: 0 0 9px; margin-right: 3px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); }
.art-main .sanor-chart-data[open] > summary::after { transform: rotate(225deg); }
.art-main .sanor-chart-data > summary:hover { background: #F0F2ED; }
.art-main .sanor-chart-data > summary:focus-visible { outline: 3px solid #0A3D2F; outline-offset: 4px; }
.art-main .sanor-chart-data .sanor-chart-data-title { display: block; margin-top: 3px; color: #52616a; font-size: 14px; font-weight: 400; line-height: 1.5; }
.art-main .sanor-chart-data .sanor-chart-data-hide, .art-main .sanor-chart-data[open] .sanor-chart-data-show { display: none; }
.art-main .sanor-chart-data[open] .sanor-chart-data-hide { display: inline; }
.art-main .sanor-chart-data .sanor-data-table-wrap { margin: 0 16px 16px; border-radius: 8px; background: white; }
.art-main .sanor-chart-data caption { padding: 12px 16px; text-align: left; color: #0B2F16; background: #F7F4EF; font-size: 14px; font-weight: 600; line-height: 1.5; white-space: normal; }
.art-main .sanor-chart-data--companies .sanor-data-table { min-width: 0; }
@media print {
  .art-main .sanor-chart-data > summary { display: none; }
  .art-main .sanor-chart-data::details-content { content-visibility: visible; }
  .art-main .sanor-chart-data .sanor-data-table-wrap { display: block; }
}
/* WordPress adds these core block classes at render time. Keep native editor
   content on the same article scale as the original classless manuscript. */
.art-main p a { font-weight: inherit; }
.art-main > h2.wp-block-heading { font-family: var(--font-display); font-size: 38px; font-weight: 600; line-height: 1.25; color: #0B2F16; margin: 46px 0 18px; scroll-margin-top: 110px; }
.art-main > h3.wp-block-heading { font-family: var(--font-sans); font-size: 24px; font-weight: 600; line-height: 1.35; color: #0B2F16; margin: 28px 0 12px; scroll-margin-top: 110px; }
.art-main p.wp-block-paragraph a, .sanor-data-table a { color: #0A3D2F; text-decoration: underline; text-underline-offset: 3px; }
.sanor-data-table caption { text-align: left; padding: 16px; color: #0B2F16; font-weight: 600; background: #F7F4EF; }
.art-main :is(p.wp-block-paragraph, .wp-block-list, .sanor-data-table) a:focus-visible { outline: 2px solid #0A3D2F; outline-offset: 3px; }
@media (max-width: 800px) {
  .art-main h2:not([class]) { font-size: 32px; margin: 34px 0 14px; }
  .art-main h3:not([class]) { font-size: 22px; }
  .art-main > h2.wp-block-heading { font-size: 32px; margin: 34px 0 14px; }
  .art-main > h3.wp-block-heading { font-size: 22px; }
}

/* expert profile bio (the_content inside the header) */
.epx-bio p, .epx-cred-list--bulleted li { font-family: var(--font-sans); font-size: 18px; font-weight: 300; line-height: 1.7; color: var(--ink); }
.epx-bio p { max-width: none; margin: 0 0 16px; }
.epx-bio a { text-decoration: underline; text-underline-offset: 3px; color: #0A3D2F; font-weight: 500; }

/* ============================================================
   Nav collapses to the burger menu at ≤1150px — the wordmark,
   primary links, and CTA need room, and below that the links
   collided with the CTA. Only the nav switches here; the rest of
   the mobile layout still begins at 800px.
   ============================================================ */
@media (max-width: 1150px) {
  .nav { grid-template-columns: 44px 1fr 44px; padding: 14px 20px; z-index: 210; }
  .nav__links { display: none; }
  .nav__cta { display: none; }
  .nav__burger { display: flex; flex-direction: column; justify-content: center; gap: 7px; width: 30px; height: 30px; background: none; border: 0; padding: 0; cursor: pointer; position: relative; z-index: 220; }
  .nav__burger span { display: block; width: 26px; height: 2px; background: var(--ink); border-radius: 2px; transition: transform 240ms cubic-bezier(0.65,0,0.35,1); }
  .nav .wordmark { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); }
  body.menu-open .nav__burger span:nth-child(1) { transform: translateY(4.5px) rotate(45deg); }
  body.menu-open .nav__burger span:nth-child(2) { transform: translateY(-4.5px) rotate(-45deg); }
  .mobile-menu { display: flex; flex-direction: column; justify-content: space-between; position: fixed; inset: 0; background: #FFFFFF; z-index: 200; padding: 96px 20px 28px; overflow-y: auto; transform: translateX(-100%); transition: transform 280ms cubic-bezier(0.65,0,0.35,1); }
  body.menu-open .mobile-menu { transform: translateX(0); }
  body.menu-open { overflow: hidden; }
  .mobile-menu__links { display: flex; flex-direction: column; }
  .mobile-menu__links > a, .mobile-menu__research > summary { font-family: var(--font-sans); font-size: 34px; font-weight: 400; line-height: 1.2; color: var(--ink); text-decoration: none; padding: 14px 0; cursor: pointer; }
  .mobile-menu__research > summary { display: flex; justify-content: space-between; align-items: center; list-style: none; }
  .mobile-menu__research > summary::-webkit-details-marker { display: none; }
  .mobile-menu__research > summary::after { content: "+"; font-size: 28px; font-weight: 300; }
  .mobile-menu__research[open] > summary::after { content: "−"; }
  .mobile-menu__research-links { border-left: 1px solid var(--line-soft); margin: 2px 0 14px 4px; padding: 2px 0 4px 16px; }
  .mobile-menu__research-links a { display: flex; flex-direction: column; gap: 4px; padding: 11px 0; text-decoration: none; }
  .mobile-menu__research-links .mobile-menu__all { display: block; font-size: 14px; font-weight: 600; color: #0A3D2F; padding: 8px 0 12px; }
  .mobile-menu__category-heading { display: flex; align-items: flex-start; gap: 9px; }
  .mobile-menu__category-icon { display: block; flex: 0 0 18px; width: 18px; height: 18px; color: #0A3D2F; margin-top: 1px; }
  .mobile-menu__category-name { font-family: var(--font-display); font-size: 18px; font-weight: 600; line-height: 1.2; color: #0B2F16; }
  .mobile-menu__category-description { font-family: var(--font-sans); font-size: 13px; font-weight: 300; line-height: 1.45; color: #555; max-width: 54ch; }
}

/* ============================================================
   Expert profile photo — one-time "glass reflection" sweep.
   Two streaks (thick soft + thin sharp trailing) travel across
   the photo shortly after load. Container already has
   position:relative + overflow:hidden via .img-ph.
   ============================================================ */
@media (prefers-reduced-motion: no-preference) {
  .epx-head__photo::after,
  .art-authorline .t-photo::after {
    content: "";
    position: absolute;
    top: -60%;
    left: -90%;
    width: 46%;
    height: 220%;
    transform: rotate(22deg);
    pointer-events: none;
    background: linear-gradient(90deg,
      rgba(255,255,255,0)    0%,
      rgba(255,255,255,0.05) 18%,
      rgba(255,255,255,0.65) 46%,
      rgba(255,255,255,0.8)  50%,
      rgba(255,255,255,0.65) 54%,
      rgba(255,255,255,0.05) 82%,
      rgba(255,255,255,0)    100%);
    animation: sanor-shine 1.5s cubic-bezier(0.35, 0, 0.25, 1) 0.45s 1 both;
  }
  .epx-head__photo::before,
  .art-authorline .t-photo::before {
    content: "";
    position: absolute;
    top: -60%;
    left: -104%;
    width: 7%;
    height: 220%;
    transform: rotate(22deg);
    pointer-events: none;
    z-index: 1;
    background: linear-gradient(90deg,
      rgba(255,255,255,0)   0%,
      rgba(255,255,255,0.5) 50%,
      rgba(255,255,255,0)   100%);
    animation: sanor-shine-thin 1.5s cubic-bezier(0.35, 0, 0.25, 1) 0.55s 1 both;
  }
  @keyframes sanor-shine      { from { left: -90%;  } to { left: 190%; } }
  @keyframes sanor-shine-thin { from { left: -104%; } to { left: 176%; } }
}

/* Author avatar in the article byline: clip the glass sweep to the circle. */
.art-authorline .t-photo { position: relative; overflow: hidden; }

/* Article hero image sits below the byline metadata — a little breathing room. */
.art-col--hero .art-hero-img { margin-top: 28px; }
@media (max-width: 800px) { .art-col--hero .art-hero-img { margin-top: 18px; } }

/* Nav logo: a one-time shine that travels through the LETTERS only (gradient
   clipped to the wordmark text), not a box sweep. Falls back to the solid
   colour where background-clip:text isn't supported. */
@media (prefers-reduced-motion: no-preference) {
  .nav .wordmark {
    background-image: linear-gradient(100deg,
      currentColor 0%, currentColor 43%,
      rgba(255,255,255,0.95) 50%,
      currentColor 57%, currentColor 100%);
    background-size: 220% 100%;
    background-repeat: repeat;
    background-position: 130% 0;
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    animation: sanor-logo-shine 1.6s cubic-bezier(0.35, 0, 0.25, 1) 0.45s 1 both;
  }
  @keyframes sanor-logo-shine {
    from { background-position: 130% 0; }
    to   { background-position: -80% 0; }
  }
}

/* Whole-card clickable: a "stretched" primary link covers the card, while the
   CTA and other links stay independently clickable above it — no nested <a>. */
.card-linked { position: relative; }
.card-linked .card-link::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.card-linked .cta,
.card-linked a:not(.card-link) { position: relative; z-index: 2; }

/* Search results */
.screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
#page-search .search-hero { padding-bottom: 90px; }
.sanor-search-form { max-width: 900px; }
.sanor-search-form__row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; }
.sanor-search-form__input { width: 100%; min-height: 58px; border: 1px solid #C9C4B8; border-radius: 14px; background: #FFFFFF; color: var(--ink); font-family: var(--font-sans); font-size: 18px; font-weight: 300; padding: 0 20px; outline: none; }
.sanor-search-form__input:focus { border-color: #0B2F16; box-shadow: 0 0 0 3px rgba(11,47,22,0.12); }
.sanor-search-form__submit { min-height: 58px; border: 0; border-radius: 14px; background: #96F878; color: #0B2F16; cursor: pointer; font-family: var(--font-sans); font-size: 16px; font-weight: 600; letter-spacing: 0.03em; padding: 0 28px; text-transform: uppercase; }
.sanor-search-form__submit:hover { background: #85E968; }
.sanor-search-form__submit:focus-visible { outline: 3px solid rgba(11,47,22,0.28); outline-offset: 3px; }
.search-summary { font-size: 20px; margin-top: 24px; }
.search-results-section { background: #FFFFFF; }
.search-results-list { display: grid; gap: 26px; max-width: 945px; margin: 0 auto; }
.search-result { display: grid; grid-template-columns: minmax(220px, 1fr) 1.7fr; border-radius: 14px; overflow: hidden; }
.search-result > .img-ph { height: 100%; min-height: 240px; border-radius: 14px 0 0 14px; }
.search-result__body { display: flex; flex-direction: column; justify-content: center; background: #F7F4EF; border-radius: 0 14px 14px 0; padding: 34px 36px; }
.search-result__title { color: #0B2F16; font-family: var(--font-sans); font-size: 26px; font-weight: 300; line-height: 1.25; margin-bottom: 10px; }
.search-result__excerpt { color: #555555; font-family: var(--font-sans); font-size: 16px; font-weight: 300; line-height: 1.5; }
.search-pagination { margin-top: 46px; }
.search-pagination .nav-links { display: flex; align-items: center; justify-content: center; gap: 8px; }
.search-pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 42px; min-height: 42px; border: 1px solid #E3DFD5; border-radius: 10px; color: #0B2F16; font-family: var(--font-sans); font-size: 14px; padding: 8px 12px; }
.search-pagination .page-numbers.current,
.search-pagination a.page-numbers:hover { background: #0B2F16; border-color: #0B2F16; color: #FFFFFF; }
.search-empty { max-width: 760px; margin: 0 auto; text-align: center; }
.search-empty .byline { margin-left: auto; margin-right: auto; }
.search-empty__links { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px 24px; margin-top: 28px; }

@media (max-width: 800px) {
  #page-search .search-hero { padding-bottom: 72px; }
  .sanor-search-form__row { grid-template-columns: 1fr; }
  .sanor-search-form__submit { width: 100%; }
  .search-result { grid-template-columns: 1fr 2fr; }
  .search-result > .img-ph { min-height: 150px; }
  .search-result__body { padding: 22px 20px; }
  .search-result__title { font-size: 18px; }
  .search-result__excerpt { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 3; font-size: 13px; }
  .search-result .tag { display: none; }
}

@media (max-width: 520px) {
  .search-result { grid-template-columns: 1fr; }
  .search-result > .img-ph { height: 190px; min-height: 0; border-radius: 14px 14px 0 0; }
  .search-result__body { border-radius: 0 0 14px 14px; }
}


/* Research navigation: themes and markets. */
.nav-mega{width:min(1240px,calc(100vw - 64px))}
.nav-mega__panel{padding:26px;border-radius:18px;box-shadow:0 18px 50px rgba(11,47,22,.13)}
.nav-mega__grid--themes{padding:0;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr))}
.nav__links .nav-mega__grid--themes .nav-mega__category{padding:23px 22px;min-height:166px;background:#F7F4EF;gap:14px}
.nav-mega__grid--themes .nav-mega__title{min-height:48px;gap:12px;align-items:flex-start}
.nav-mega__grid--themes .nav-mega__name{font-size:22px;line-height:1.15;max-width:255px}
.nav-mega__grid--themes .nav-mega__icon{width:21px;height:21px;flex-basis:21px;margin-top:2px}
.nav-mega__description{font-size:14px;line-height:1.55;font-weight:400;color:#586359;max-width:330px}
.nav-market-label{margin:27px 10px 8px;font-size:11px;letter-spacing:.11em;color:#68746a}
.nav-mega__grid--markets{padding:0;gap:4px;grid-template-columns:repeat(5,minmax(0,1fr))}
.nav__links .nav-mega__grid--markets .nav-mega__category{min-height:64px;padding:15px 10px;justify-content:center}
.nav-mega__grid--markets .nav-mega__title{align-items:center;gap:9px}
.nav-mega__grid--markets .nav-mega__name{font-family:var(--font-sans);font-size:15px;font-weight:500;line-height:1.4}
.nav-mega__grid--markets .nav-mega__icon{flex-basis:18px;width:18px;height:18px;margin-top:0}
.nav__links .nav-mega__category:hover,.nav__links .nav-mega__category:focus-visible{background:#E9F7EF;transform:none}
.nav__links .nav-mega__category:focus-visible{outline:2px solid #0A3D2F;outline-offset:2px}
.nav-mega__footer{margin-top:16px;padding:18px 10px 0;justify-content:flex-start}
.nav__links .nav-mega__all{font-size:15px;font-weight:500}
.mobile-markets-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:#68746a;padding:22px 0 6px}
@media(prefers-reduced-motion:reduce){.nav-mega,.nav__links .nav-mega__category{transition:none}}


.nav-mega__grid--themes .nav-mega__title{flex-direction:column;align-items:flex-start;gap:16px;min-height:0}
.nav-mega__grid--themes .nav-mega__icon{width:24px;height:24px;flex-basis:24px;margin:0}
.nav-mega__grid--themes .nav-mega__name{min-height:51px}
.nav__links .nav-mega__grid--themes .nav-mega__category{padding:24px;gap:14px}
.mobile-menu__research-links>a:nth-child(-n+3) .mobile-menu__category-heading{flex-direction:column;align-items:flex-start;gap:12px}

/* Bold is an explicit weight, independent of the surrounding light prose. */
strong, b { font-weight: 700; }

/* Consistent company logo frames within articles. */
.art-main .wp-block-image.sanor-company-logo { width: 50%; box-sizing: border-box; padding: 12px; background: #F5F5F5; border-radius: 14px; }
.art-main .sanor-company-logo img { width: 100%; border-radius: 0; mix-blend-mode: multiply; }

/* Research overview: names-only areas and one stream of report cards. */
.research-overview { background: #FFFFFF; }
.research-overview__intro.arch-top { padding-bottom: 80px; overflow: hidden; }
.research-overview__intro > .hero-canvas, .monitors-hero > .hero-canvas { position: absolute; z-index: 0; pointer-events: none; }
.research-overview__intro .arch-title, .monitors-hero .arch-title { max-width: 1060px; margin-left: auto; margin-right: auto; font-size: 82px; text-align: center; }
.research-overview__intro .arch-byline, .monitors-hero .arch-byline { max-width: 60ch; font-size: 24px; margin: 0 auto 44px; text-align: center; text-wrap: balance; }
.research-overview__intro .arch-byline { margin-bottom: 80px; }
.research-overview .eyebrow { margin-bottom: 20px; }
.research-areas { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.research-area { display: flex; align-items: center; gap: 14px; min-height: 88px; padding: 22px; border-radius: 14px; background: #FFFFFF; color: var(--brand-green); font-size: 18px; font-weight: 500; line-height: 1.35; }
.research-area__icon { display: block; width: 26px; height: 26px; flex: 0 0 26px; color: var(--deep-green); }
.research-overview__standards { display: flex; justify-content: center; flex-wrap: wrap; gap: 12px 32px; margin-top: 24px; }
.research-overview__standards a { display: inline-flex; align-items: center; gap: 12px; min-height: 44px; font-size: 15px; font-weight: 500; color: var(--deep-green); }
.research-overview__standards a:hover { text-decoration: underline; text-underline-offset: 4px; }
.research-overview a:focus-visible { outline: 3px solid var(--deep-green); outline-offset: 5px; }
.research-library.section { padding-top: 24px; }
.research-reports { display: grid; grid-template-columns: minmax(0, 1fr); gap: 28px; }
.research-report { display: grid; grid-template-columns: minmax(0, 1fr); gap: 40px; padding: 32px; background: var(--cream); border-radius: 20px; transition: box-shadow 180ms ease; }
.research-report--with-image { grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); align-items: center; }
.research-report__image { min-width: 0; }
.research-report__image img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 12px; }
.research-report__body { min-width: 0; }
.research-report__tags { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 18px; }
.research-report__tags:empty { display: none; }
.research-report__tags .r-cat { margin: 0; min-height: 30px; max-width: 100%; letter-spacing: .025em; }
.research-report h3 { font-family: var(--font-display); font-weight: 600; font-size: 44px; line-height: 1.14; color: var(--brand-green); margin: 0 0 18px; overflow-wrap: anywhere; }
.research-report:hover, .research-report:focus-within { box-shadow: 0 12px 32px rgba(11, 47, 22, .14); }
.research-report h3, .research-report a { text-decoration: none; }
@media (prefers-reduced-motion: reduce) {
  .research-report { transition: none; }
}
.research-report__excerpt { font-size: 18px; font-weight: 300; line-height: 1.65; margin: 0 0 24px; }
.research-report__meta { font-size: 16px; }
.research-report__read { font-weight: 600; color: var(--deep-green); }
.research-report__read span { margin-left: 12px; }
@media (max-width: 1100px) {
  .research-areas { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .research-report { gap: 28px; padding: 28px; }
  .research-report h3 { font-size: 38px; }
}
@media (max-width: 800px) {
  .research-overview__intro .arch-title, .monitors-hero .arch-title { font-size: 44px; }
  .research-overview__intro .arch-byline, .monitors-hero .arch-byline { font-size: 21px; margin-bottom: 32px; }
  .research-overview__intro .arch-byline { margin-bottom: 56px; }
  .research-overview__intro.arch-top { padding-bottom: 56px; }
  .research-areas { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .research-area { min-height: 64px; padding: 12px; gap: 8px; border-radius: 10px; font-size: 14px; }
  .research-area__icon { width: 18px; height: 18px; flex-basis: 18px; }
  .research-library.section { padding-top: 20px; }
  .research-reports { gap: 24px; }
  .research-report { grid-template-columns: minmax(0, 1fr); gap: 24px; padding: 20px; }
  .research-report__image img { aspect-ratio: 16 / 9; }
  .research-report h3 { font-size: 32px; }
  .research-report__excerpt { font-size: 17px; }
}


/* Post content links: Forest + Classic (September 17 approval).
   These shared content containers cover all six public post types. Scope to
   single posts so navigation, archives and standalone Pages retain their styles.
   Linked media and button components are not inline text links. */
.single :is(.art-main, .epx-bio) a[href]:not(:where(.cta, .wp-element-button, .wp-block-button__link, .wp-block-file__button, [role="button"], :has(img, picture, video, audio))) {
  color: var(--article-link-green);
  font-weight: inherit;
  text-decoration-line: underline;
  text-decoration-style: solid;
  text-decoration-color: currentColor;
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
  text-decoration-skip-ink: auto;
}
.single :is(.art-main, .epx-bio) a[href]:not(:where(.cta, .wp-element-button, .wp-block-button__link, .wp-block-file__button, [role="button"], :has(img, picture, video, audio))):hover {
  color: var(--brand-green);
  text-decoration-thickness: 2px;
}
.single :is(.art-main, .epx-bio) a[href]:not(:where(.cta, .wp-element-button, .wp-block-button__link, .wp-block-file__button, [role="button"], :has(img, picture, video, audio))):focus-visible {
  outline: 3px solid var(--deep-green);
  outline-offset: 5px;
}

/* Match the shared feature boxes to the homepage hero callout. */
.gm.gm--footer, .section.home-capabilities { background: var(--callout-green); }

/* Market monitors: a quiet status accent and a simple placeholder hero. */
.nav__monitors { display: inline-flex; align-items: center; gap: 10px; }
.nav__monitor-dot { position: relative; display: inline-block; width: 8px; height: 8px; flex: 0 0 8px; border-radius: 50%; background: #D93636; }
.nav__monitor-dot::after { content: ""; position: absolute; inset: 0; border-radius: inherit; background: inherit; animation: monitor-pulse 2s ease-out infinite; }
@keyframes monitor-pulse { 0% { transform: scale(1); opacity: .55; } 80%, 100% { transform: scale(2.5); opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .nav__monitor-dot::after { animation: none; opacity: 0; } }
.monitors-hero { overflow: hidden; }
.monitors-hero .arch-byline, .monitors-hero .arch-byline p { margin-bottom: 0; }

/* Library heroes follow the original homepage; never override the benchmark. */
.research-overview__intro.arch-top > h1,
.monitors-hero.arch-top > h1,
.sanor-foundation .sm-directory-hero > h1 {
  font-family: "Source Serif 4", Georgia, serif;
  font-size: clamp(52px, 6.5vw, 88px);
  font-weight: 600; line-height: 1.05; letter-spacing: -.009em;
  color: #0b2f16; max-width: min(calc((100vw - 80px) * .75), calc(var(--content-w) * .75)); margin-left: auto; margin-right: auto;
  text-align: center; text-wrap: wrap;
}
.research-overview__intro.arch-top > .arch-byline,
.monitors-hero.arch-top > .arch-byline,
.sanor-foundation .sm-directory-hero > p {
  font-family: Inter, sans-serif; font-size: 22px; font-weight: 300;
  line-height: 1.6; color: #111; max-width: 60ch;
  margin-left: auto; margin-right: auto; text-align: center; text-wrap: balance;
}
@media (max-width: 800px) {
  .research-overview__intro.arch-top > .arch-byline,
  .monitors-hero.arch-top > .arch-byline,
  .sanor-foundation .sm-directory-hero > p { font-size: 17px; }
}

/* Press brand resources: scoped so the existing hero and other pages retain their design. */
.press-brand__intro { display: flex; flex-direction: column; align-items: flex-start; gap: 32px; }
.press-brand__intro .section-title { margin-bottom: 18px; }
.press-brand__download { flex-shrink: 0; background: var(--bright-green); border-radius: 14px; padding: 20px 26px; color: var(--deep-green); font-weight: 600; text-decoration: none; transition: box-shadow 180ms ease, transform 180ms ease; }
.press-brand__download:hover, .press-brand__download:focus-visible { text-decoration: none; box-shadow: 0 8px 20px rgba(10, 61, 47, 0.18); transform: translateY(-2px); }
.press-brand__download small { display: block; margin-top: 5px; font-size: 12px; font-weight: 400; }
.press-brand__section { margin-top: 64px; }
.press-brand h3 { font-family: var(--font-display); color: var(--brand-green); font-size: 32px; font-weight: 600; line-height: 1.2; margin: 0 0 24px; }
.press-brand__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.press-brand__card { border: 1px solid var(--cream-border); border-radius: 14px; overflow: hidden; background: var(--white); }
.press-brand__logo { display: grid; place-items: center; min-height: 180px; padding: 40px; background: var(--cream); }
.press-brand__logo--white { background: var(--brand-green); }
.press-brand__logo--black { background: #F5F5F5; }
.press-brand__logo img { display: block; width: 100%; max-width: 280px; height: auto; }
.press-brand__details { padding: 24px; }
.press-brand h4 { font-family: var(--font-sans); font-size: 18px; font-weight: 600; color: var(--brand-green); margin: 0 0 8px; }
.press-brand p { font-family: var(--font-sans); font-size: 16px; font-weight: 300; line-height: 1.65; margin: 0 0 20px; }
.press-brand__intro p { font-size: 19px; margin-bottom: 0; }
.press-brand a:not(.press-brand__download):not(.cta) { display: inline-block; color: var(--deep-green); font-size: 14px; font-weight: 600; line-height: 1.5; text-decoration: underline; text-underline-offset: 4px; padding: 8px 0; }
.press-brand a:not(.press-brand__download):not(.cta):hover { text-decoration: underline; text-underline-offset: 4px; }
.press-brand a:focus-visible { outline: 3px solid var(--deep-green); outline-offset: 5px; }
.press-brand p.press-brand__guidance { max-width: 850px; margin: 24px 0 0; color: #555; font-size: 14px; }
.press-brand__swatch { height: 112px; border-bottom: 1px solid var(--cream-border); }
.press-brand__values { display: flex; flex-wrap: wrap; gap: 8px 20px; font-size: 13px; }
.press-brand__values code { font-family: var(--mono); font-weight: 500; }
.press-brand__values span { color: #555; }
.press-brand__type { border-top: 1px solid var(--cream-border); padding-top: 24px; display: flex; flex-direction: column; align-items: flex-start; }
.press-brand__type a { margin-top: auto; }
.press-brand__specimen { color: var(--brand-green); font-size: 76px; line-height: 1.2; margin-bottom: 24px; }
.press-brand__specimen--serif { font-family: var(--font-display); font-weight: 600; }
.press-brand__specimen--inter { font-family: var(--font-sans); font-weight: 300; }
.press-brand__specimen--sora { font-family: "Sora", sans-serif; font-weight: 800; }
@media (max-width: 1100px) {
}
@media (max-width: 800px) {
  .press-brand__grid { grid-template-columns: 1fr; gap: 20px; }
  .press-brand__colors { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
  .press-brand__section, .press-brand .press-about { margin-top: 44px; }
  .press-brand h3 { font-size: 28px; }
  .press-brand__details { padding: 18px; }
  .press-brand__download { max-width: 100%; }
}
@media (max-width: 380px) {
  .press-brand__colors { grid-template-columns: 1fr; }
}

/* Press About callout follows the homepage callout's approved type and color. */
.press-brand .press-about { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 48px; align-items: start; margin-top: 64px; padding: 32px; border-radius: 24px; background: var(--callout-green); color: var(--white); }
.press-brand .press-about .section-title { font-size: 48px; font-weight: 600; line-height: 1.06; color: var(--white); margin: 0; }
.press-brand .press-about .body-copy { font-size: 22px; line-height: 1.4; color: var(--white); margin: 0; }
.press-about__content { min-width: 0; }
.press-about__action { display: flex; justify-content: flex-end; margin-top: 32px; }
.press-brand .press-about .cta { background: var(--bright-green); color: var(--deep-green); text-decoration: none; }
.press-brand .press-about .cta:focus-visible { outline-color: var(--white); }
.press-research__list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--cream-border); }
.press-research__list li { border-bottom: 1px solid var(--cream-border); }
.press-research__list a { display: flex; justify-content: space-between; align-items: center; gap: 24px; padding: 24px 0; color: var(--brand-green); font-family: var(--font-display); font-size: 28px; font-weight: 600; line-height: 1.3; }
.press-research__list a:hover { color: var(--deep-green); }
.press-research__list a:focus-visible { outline: 3px solid var(--deep-green); outline-offset: 5px; }
.press-research__arrow { flex-shrink: 0; font-family: var(--font-sans); }
.press-research__more { display: inline-block; margin-top: 28px; }
@media (max-width: 800px) {
  .press-brand .press-about { grid-template-columns: minmax(0, 1fr); gap: 24px; margin-top: 44px; padding: 28px 24px; }
  .press-brand .press-about .section-title { font-size: 32px; }
  .press-brand .press-about .body-copy { font-size: 18px; }
  .press-about__action { margin-top: 24px; }
  .press-research__list a { font-size: 22px; gap: 16px; padding: 20px 0; }
}
@media (prefers-reduced-motion: reduce) {
  .press-brand__download { transition: none; }
  .press-brand__download:hover, .press-brand__download:focus-visible { transform: none; }
}

/* Compact spacing around the Press Contact box. */
.arch-top.arch-top--press { padding-bottom: 40px; }
.arch-top--press::after { height: 40px; }
.arch-top--press .arch-byline { margin-bottom: 32px; }
.arch-top--press .press-contact { margin-top: 0; }
@media (max-width: 800px) {
  .arch-top.arch-top--press { padding-bottom: 32px; }
  .arch-top--press::after { height: 32px; }
  .arch-top--press .arch-byline { margin-bottom: 24px; }
}

/* About: approved structure using shared heroes, cards, type and CTA components. */
.about-page__hero.hero {min-height:0;padding-bottom:80px;}
.about-page__hero .hero__content {margin-top:0;}
.about-page__hero p {max-width:60ch;}
.about-page__stats.section {padding-top:32px;padding-bottom:0;}
.about-page__stats .about-stats {margin-top:0;}
.about-page .about-split {align-items:start;grid-template-columns:minmax(0,1fr) minmax(0,1fr);}
.about-page__eyebrow {margin-bottom:24px;}
.about-page__intro {margin-bottom:44px;}
.about-page__alt {background:var(--cream);}
.about-page .about-expertises {margin-top:0;}
.about-page__leaders.exp-grid {grid-template-columns:repeat(4,minmax(0,1fr));max-width:none;}
.about-page__portrait {display:block;width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:var(--btn-radius);}
.about-page__photo-placeholder {display:flex;align-items:center;justify-content:center;background:var(--fill-dark);padding:20px;text-align:center;}
.about-page__photo-placeholder span {display:block;font-family:var(--font-sans);font-size:14px;color:var(--ink);}
.about-page__contact .eyebrow {color:var(--bright-green);}
.about-page__contact .about-split {align-items:center;}
.about-page__action {display:flex;justify-content:flex-end;}
.about-page__contact .cta:focus-visible {outline-color:var(--white);}
@media(max-width:800px){
 .about-page .about-split {grid-template-columns:minmax(0,1fr);}
 .about-page__hero.hero {padding-bottom:56px;}
 .about-page__leaders.exp-grid {grid-template-columns:repeat(2,minmax(0,1fr));}
 .about-page__action {justify-content:flex-start;}
}
@media(max-width:480px){.about-page__leaders.exp-grid {grid-template-columns:minmax(0,1fr);}}

/* Careers hiring locations and compact job facts, approved September 28. */
.careers-page .arch-top { padding-bottom: 24px; }
.careers-page .arch-byline { margin-bottom: 0; }
.careers-map { max-width: 640px; margin: 16px auto 0; }
.careers-map svg { display: block; width: 100%; height: auto; overflow: visible; }
.careers-map__land { fill: url(#careers-land-dots); opacity: .65; }
.careers-map__dot { fill: #45C950; stroke: none; filter: drop-shadow(0 0 5px #96F878); }
.careers-map__pulse { fill: var(--bright-green); transform-box: fill-box; transform-origin: center; animation: careers-pulse 2.8s ease-out infinite; }
.careers-map text { font-family: var(--font-sans); font-size: 16px; font-weight: 600; fill: var(--brand-green); }
@keyframes careers-pulse { 0% { transform: scale(1); opacity: .7; } 85%, 100% { transform: scale(3); opacity: 0; } }
.careers-page .careers-openings { padding-top: 32px; padding-bottom: 140px; }
.job-detail .cs-snapshot li { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); }
.job-detail .cs-snapshot li span { overflow-wrap: anywhere; }
@media (min-width: 801px) { .job-detail .art-side { margin-top: calc(46px + 38px * 1.25 + 18px); } }
@media (max-width: 800px) { .careers-page .careers-openings { padding-bottom: 88px; } .careers-map { margin-top: 12px; } .careers-map text { font-size: 24px; } }
@media (prefers-reduced-motion: reduce) { .careers-map__pulse { animation: none; opacity: .25; } }

/* Phase-one homepage: larger static capabilities and 16:9 editorial imagery. */
#page-home .home-capabilities { background:var(--callout-green) url("../images/sanor-ball-green.jpg") center / cover no-repeat; }
#page-home .home-capabilities .specialty { font-weight:300; font-size:26px; line-height:1.35; cursor:default; text-decoration:none; }
#page-home .home-capabilities .cap-grid { grid-template-columns:1.15fr 1fr 1fr; gap:40px; }
#page-home .home-content--research .img-ph,
#page-home .home-strategy-card > .img-ph { width:100%; height:auto; min-height:0; aspect-ratio:16 / 9; align-self:start; }
#page-home .home-content--research .lead { align-items:center; background:#F7F4EF; }
#page-home .home-content--research .grid-3 .card { display:flex; flex-direction:column; }
#page-home .home-content--research .grid-3 .img-ph { border-radius:14px 14px 0 0; }
#page-home .home-strategy-pair { display:grid; align-items:start; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; }
#page-home .home-strategy-card { border-radius:14px; overflow:hidden; background:#F7F4EF; }
#page-home .home-strategy-card > .img-ph { border-radius:14px 14px 0 0; }
#page-home .home-strategy-card__body { box-sizing:border-box; padding:32px; display:flex; flex-direction:column; justify-content:space-between; gap:24px; }
#page-home .home-strategy-card .card-title { font-size:32px; line-height:1.2; margin:0; }
#page-home .home-strategy-card .card-title a { color:inherit; text-decoration:none; }
#page-home .home-strategy-card .cta { background:#96F878; }
@media(max-width:1000px) {
 #page-home .home-capabilities .cap-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px 28px; }
 #page-home .home-capabilities .cap-grid > div:first-child { grid-column:1 / -1; }
 #page-home .home-strategy-card__body { padding:24px; }
}
@media(max-width:600px) {
 #page-home .home-capabilities .cap-grid { grid-template-columns:1fr; gap:0; }
 #page-home .home-capabilities .specialty { font-size:23px; }
 #page-home .home-strategy-pair { grid-template-columns:1fr; }
 #page-home .home-strategy-card .card-title { font-size:28px; }
}

#page-home .home-strategy-card__body .card-byline { margin:0; }
