/*
Theme Name: Planet Social Marketing
Theme URI: https://planetsocialmarketing.com
Author: Brodrick Lacy Hudson
Author URI: https://planetsocialmarketing.com
Description: Standalone theme for Planet Social Marketing, a healthcare and life-sciences growth marketing consultancy. The homepage is rendered automatically by front-page.php using the signature "Your science is sound" landing design. Navigation uses the native WordPress menu (non-sticky). Includes a selectable Case Study page template with animated metric cards, conversion funnels, and bar charts driven by per-page custom fields.
Version: 2.11.3
Requires at least: 6.0
Tested up to: 6.5
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: planet-social-marketing
*/


  :root {
    --ink: #0E1A14;
    --ink-soft: #1E3328;
    --paper: #FAFBF9;
    --paper-2: #EEF2EC;
    --line: #DCE4DA;
    --slate: #3D4A41;
    --teal: #1F9D57;
    --teal-deep: #16713F;
    --teal-wash: #E6F2EA;
    --mint: #83fcb5;
    --paper-tint: #F4F8F4;
    --line-teal: #CFE3D6;
    --amber: #C8472E;
    --amber-deep: #A8371F;
    --strike: #AEBcC5;
    --r: 16px;
    --r-lg: 16px;
    --r-card: 20px;
    --r-pill: 999px;
    --shadow: 0 2px 8px rgba(14,34,53,0.06);
    --shadow-sm: 0 2px 8px rgba(14,34,53,0.06);
    --panel: #fff;
    --shadow-md: 0 14px 40px rgba(14,34,53,0.10);
    --shadow-lg: 0 30px 70px rgba(14,34,53,0.16);
    --maxw: 1140px;
  }
  * { margin: 0; padding: 0; box-sizing: border-box; }
  html { scroll-behavior: smooth; }
  body { font-family: 'Inter', system-ui, sans-serif; background: var(--paper); color: var(--ink); line-height: 1.6; -webkit-font-smoothing: antialiased; }
  .wrap { max-width: var(--maxw); margin: 0 auto; padding: 0 28px; }
  h1, h2, h3, h4 { font-family: 'Fraunces', Georgia, serif; font-weight: 600; line-height: 1.1; letter-spacing: -0.01em; color: var(--ink); }
  a { color: inherit; text-decoration: none; }
  .mono { font-family: 'JetBrains Mono', monospace; }
  .eyebrow { font-family: 'JetBrains Mono', monospace; font-size: 12px; font-weight: 500; letter-spacing: 0.16em; text-transform: uppercase; color: var(--teal-deep); }

  /* buttons */
  .btn { display: inline-flex; align-items: center; gap: 9px; font-weight: 600; font-size: 15px; padding: 14px 26px; border-radius: 100px; cursor: pointer; border: 0; font-family: inherit; transition: transform .2s, box-shadow .2s, background .2s; white-space: nowrap; }
  .btn svg { width: 17px; height: 17px; }
  .btn-amber { background: var(--amber); color: #fff; box-shadow: 0 12px 28px rgba(224,139,45,0.32); }
  .btn-amber:hover { transform: translateY(-2px); box-shadow: 0 16px 36px rgba(224,139,45,0.42); }
  /* Safety overrides: enforce the amber button look even on pasted-HTML pages
     that ship their own conflicting button styles. */
  a.btn-amber, a.btn-amber:link, a.btn-amber:visited,
  .entry-content a.btn-amber, .page-fullwidth a.btn-amber, .cs-cta a.btn-amber {
    color: #fff !important;
    font-weight: 700;
    text-decoration: none !important;
    border-bottom: 0 !important;
  }
  a.btn-amber:hover { color: #fff !important; }
  .btn-ink { background: var(--ink); color: #fff; }
  .btn-ink:hover { transform: translateY(-2px); background: var(--ink-soft); }
  .btn-line { background: transparent; border: 1px solid var(--line-teal); color: var(--ink); }
  .btn-line:hover { border-color: var(--teal); color: var(--teal-deep); }
  .btn-ghost-light { background: rgba(255,255,255,0.1); border: 1.5px solid rgba(255,255,255,0.3); color: #fff; }
  .btn-ghost-light:hover { background: rgba(255,255,255,0.18); }

  /* ============ HERO ============ */
  .hero { padding: 88px 0 76px; position: relative; overflow: hidden; }
  .hero::before { content: ""; position: absolute; top: -200px; right: -160px; width: 540px; height: 540px; border-radius: 50%; background: radial-gradient(circle, rgba(14,154,166,0.10), transparent 68%); pointer-events: none; }
  .hero .wrap { position: relative; }
  .hero-grid { display: grid; grid-template-columns: 1.15fr 0.85fr; gap: 56px; align-items: center; }
  .hero h1 { font-size: clamp(38px, 5.4vw, 62px); line-height: 1.04; margin: 20px 0 0; }
  .hero h1 .accent { font-style: italic; color: var(--teal-deep); }
  .hero .lead { font-size: 18.5px; color: var(--slate); margin: 24px 0 32px; max-width: 540px; }
  .hero-actions { display: flex; gap: 14px; flex-wrap: wrap; align-items: center; }
  .hero-trust { margin-top: 34px; font-size: 13px; color: var(--slate); display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
  .hero-trust .mono { color: var(--ink-soft); font-weight: 500; }
  .hero-trust .dot { width: 4px; height: 4px; border-radius: 50%; background: var(--strike); }

  /* signature: translation card */
  .xlate { background: var(--ink); border-radius: var(--r-lg); padding: 30px 30px 26px; box-shadow: var(--shadow-lg); position: relative; }
  .xlate .xtag { font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: rgba(255,255,255,0.45); margin-bottom: 20px; display: flex; align-items: center; gap: 8px; }
  .xlate .xtag::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--teal); box-shadow: 0 0 0 4px rgba(14,154,166,0.22); }
  .xrow { padding: 15px 0; border-top: 1px solid rgba(255,255,255,0.09); }
  .xrow:first-of-type { border-top: 0; }
  .xfrom { font-family: 'JetBrains Mono', monospace; font-size: 13.5px; color: rgba(255,255,255,0.5); text-decoration: line-through; text-decoration-color: var(--teal); text-decoration-thickness: 1.5px; margin-bottom: 7px; }
  .xto { font-family: 'Fraunces', serif; font-size: 19px; font-weight: 500; color: #fff; line-height: 1.25; display: flex; gap: 9px; align-items: baseline; }
  .xto .arw { color: var(--teal); font-family: 'JetBrains Mono', monospace; font-size: 14px; flex: 0 0 auto; }

  /* ============ LOGO / CONTEXT STRIP ============ */
  .strip { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--paper-2); }
  .strip .wrap { display: flex; align-items: center; gap: 30px; padding: 20px 28px; flex-wrap: wrap; justify-content: center; }
  .strip .label { font-family: 'JetBrains Mono', monospace; font-size: 12px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--slate); }
  .strip .ind { font-size: 14px; font-weight: 600; color: var(--ink-soft); }
  .strip .ind small { display: block; font-weight: 400; font-size: 12px; color: var(--slate); font-family: 'JetBrains Mono', monospace; }
  .strip .sep { width: 1px; height: 30px; background: var(--line); }

  /* ============ FULL-WIDTH NO-TITLE TEMPLATE ============ */
  .page-fullwidth { padding-top: 56px; }
  .page-fullwidth > .wrap:first-child,
  .page-fullwidth > section:first-child { margin-top: 0; }
  /* Default text in pasted content areas is dark, so nothing renders
     white-on-white if a page's own CSS is missing or overridden. Elements
     that need light text (dark panels) set it explicitly and must win, so
     this default is deliberately low-specificity and excludes dark sections. */
  .page-fullwidth, .entry-content { color: var(--ink); }
  /* Never let the dark-text default bleed into intentionally-dark sections. */
  .position, .position p, .position li,
  .about, .about p, .about li,
  .cta-band .case.flag, .case.flag,
  [style*="background:var(--ink)"], [style*="background: var(--ink)"],
  [style*="background:#0E1A14"], [style*="background:#0e1a14"] {
    color: rgba(255,255,255,0.82);
  }
  .position h2, .position h3, .position h4,
  .position .sec-head h2, .pos-card h3,
  .about h2, .about h3, .about h4,
  .case.flag .stat,
  [style*="background:var(--ink)"] h1, [style*="background:var(--ink)"] h2, [style*="background:var(--ink)"] h3,
  [style*="background: var(--ink)"] h1, [style*="background: var(--ink)"] h2, [style*="background: var(--ink)"] h3 {
    color: #fff;
  }

  /* ============ SECTION SHELL ============ */
  section.block { padding: 84px 0; }
  .sec-head { max-width: 680px; margin-bottom: 48px; }
  .sec-head h2 { font-size: clamp(28px, 3.6vw, 40px); margin: 14px 0 14px; }
  .sec-head p { font-size: 17px; color: var(--slate); }

  /* ============ PROBLEM / POSITION ============ */
  .position { background: var(--ink); color: rgba(255,255,255,0.82); }
  .position h2 { color: #fff; }
  .position .eyebrow { color: var(--teal); }
  .position .sec-head p { color: rgba(255,255,255,0.7); }
  .pos-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
  .pos-card { background: rgba(255,255,255,0.04); border: 1px solid rgba(131,252,181,0.18); border-radius: var(--r-card); padding: 28px 26px; }
  .pos-card .n { font-family: 'JetBrains Mono', monospace; font-size: 12px; color: var(--mint); letter-spacing: 0.1em; margin-bottom: 16px; }
  .pos-card h3 { color: #fff; font-size: 20px; margin-bottom: 10px; }
  .pos-card p { font-size: 14.5px; color: rgba(255,255,255,0.66); }

  /* ============ WHO I HELP ============ */
  .who-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
  .who-card { border: 1px solid var(--line-teal); border-radius: var(--r-card); padding: 28px 26px; background: #fff; position: relative; overflow: hidden; transition: transform .25s, box-shadow .25s, border-color .25s; }
  .who-card::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: var(--teal); }
  .who-card:hover { transform: translateY(-5px); box-shadow: var(--shadow-md); border-color: var(--line-teal); }
  .who-card .ic { width: 44px; height: 44px; border-radius: 50%; background: var(--ink); color: var(--mint); display: grid; place-items: center; margin-bottom: 18px; }
  .who-card .ic svg { width: 22px; height: 22px; }
  .who-card h3 { font-size: 19px; margin-bottom: 8px; color: var(--ink); }
  .who-card p { font-size: 14px; line-height: 1.6; color: var(--slate); }

  /* ============ SERVICES ============ */
  .svc-list { display: flex; flex-direction: column; gap: 10px; }
  .svc-item { display: flex; align-items: center; gap: 18px; padding: 16px 26px; background: #fff; border: 1px solid var(--line-teal); border-radius: var(--r-pill); transition: transform .2s, box-shadow .2s, border-color .2s; }
  .svc-item:hover { transform: translateX(4px); box-shadow: var(--shadow); border-color: var(--teal); }
  .svc-item .num { font-family: 'JetBrains Mono', monospace; font-size: 13px; color: var(--teal-deep); font-weight: 500; flex: 0 0 auto; }
  .svc-item .svc-body { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px; }
  .svc-item h3 { font-size: 16px; display: inline; }
  .svc-item .desc { font-size: 14px; color: var(--slate); display: inline; }
  .svc-item .desc b { color: var(--ink-soft); font-weight: 600; }

  /* ============ PROOF / CASES ============ */
  .proof { background: var(--paper-2); }
  .case-grid { display: grid; grid-template-columns: 1.3fr 1fr 1fr; gap: 22px; }
  .case { background: #fff; border: 1px solid var(--line-teal); border-radius: var(--r-card); padding: 32px 30px; display: flex; flex-direction: column; position: relative; overflow: hidden; }
  .case::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: var(--teal); }
  .case.flag { background: var(--ink); border-color: var(--ink); }
  .case.flag::before { background: var(--mint); }
  .case .ctag { font-family: 'JetBrains Mono', monospace; font-size: 11.5px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--teal-deep); margin-bottom: 18px; }
  .case.flag .ctag { color: var(--mint); }
  .case .stat { font-family: 'Fraunces', serif; font-size: clamp(38px, 5vw, 52px); font-weight: 600; line-height: 1; letter-spacing: -0.02em; color: var(--ink); }
  .case.flag .stat { color: #fff; }
  .case .stat-label { font-size: 14px; color: var(--slate); margin: 10px 0 18px; }
  .case.flag .stat-label { color: rgba(255,255,255,0.65); }
  .case .cbody { font-size: 14px; color: var(--slate); margin-top: auto; padding-top: 16px; border-top: 1px solid var(--line); }
  .case.flag .cbody { color: rgba(255,255,255,0.7); border-top-color: rgba(255,255,255,0.12); }
  .case .cbody b { color: var(--ink-soft); font-weight: 600; }
  .case.flag .cbody b { color: #fff; }

  /* ---- Readability safety net ----
     Pasted-HTML pages sometimes set a global white text color that makes
     light stat cards render white-on-white. Force dark text on light card
     surfaces, while leaving intentionally-dark cards (.flag, .case.flag,
     dark sections) untouched. */
  .case:not(.flag) .stat,
  .entry-content .case:not(.flag) .stat,
  .page-fullwidth .case:not(.flag) .stat { color: var(--ink); }
  .case:not(.flag) .stat-label,
  .case:not(.flag) .cbody { color: var(--slate); }
  /* Case study metric cards are always light: keep their numbers dark. */
  .mcard .num { color: var(--ink); }
  .mcard .lbl { color: var(--ink-soft); }
  .case .secondary { display: flex; gap: 8px; align-items: baseline; margin-top: 6px; }
  .case .secondary .s2 { font-family: 'Fraunces', serif; font-size: 22px; font-weight: 600; color: var(--teal-deep); }
  .case .secondary .s2l { font-size: 12.5px; color: var(--slate); }

  .proof-note { margin-top: 26px; font-size: 13px; color: var(--slate); font-family: 'JetBrains Mono', monospace; text-align: center; }
  .case-link { display: inline-block; margin-top: 18px; font-size: 14px; font-weight: 700; color: var(--amber); text-decoration: none; }
  .case-link:hover { color: var(--amber-deep); }

  /* ============ APPROACH ============ */
  .steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; counter-reset: step; }
  .step { position: relative; padding-top: 28px; }
  .step::before { content: ""; position: absolute; top: 0; left: 0; width: 36px; height: 2px; background: var(--teal); }
  .step .sn { font-family: 'JetBrains Mono', monospace; font-size: 12px; color: var(--teal-deep); letter-spacing: 0.1em; margin-bottom: 8px; }
  .step h3 { font-size: 18px; margin-bottom: 8px; }
  .step p { font-size: 14px; color: var(--slate); }

  /* ============ ABOUT ============ */
  .about { background: var(--ink); color: rgba(255,255,255,0.8); position: relative; overflow: hidden; }
  .about-crest { position: absolute; right: -40px; top: 50%; transform: translateY(-50%); width: 360px; opacity: 0.05; pointer-events: none; filter: invert(1); }
  .about-grid { display: grid; grid-template-columns: 0.85fr 1.15fr; gap: 56px; align-items: center; }
  .about h2 { color: #fff; font-size: clamp(28px, 3.6vw, 40px); margin: 14px 0 20px; }
  .about .eyebrow { color: var(--teal); }
  .about p { font-size: 16px; color: rgba(255,255,255,0.74); margin-bottom: 16px; }
  .about p b { color: #fff; font-weight: 600; }
  .about-tags { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 22px; }
  .about-tags span { font-family: 'JetBrains Mono', monospace; font-size: 12px; padding: 7px 13px; border: 1px solid rgba(255,255,255,0.18); border-radius: 100px; color: rgba(255,255,255,0.8); }
  .about-portrait { aspect-ratio: 4/5; border-radius: var(--r-lg); background: linear-gradient(150deg, var(--teal-deep), var(--ink-soft)); display: grid; place-items: center; position: relative; overflow: hidden; border: 1px solid rgba(255,255,255,0.1); }
  .about-portrait .slot { text-align: center; color: rgba(255,255,255,0.55); font-family: 'JetBrains Mono', monospace; font-size: 12.5px; line-height: 1.7; padding: 30px; }
  .about-portrait .portrait-img { width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0; }
  .about-portrait .mono-big { font-family: 'Fraunces', serif; font-size: 64px; color: rgba(255,255,255,0.16); font-weight: 600; }

  /* ============ CTA / BOOKING ============ */
  .cta-band { padding: 88px 0; text-align: center; }
  .cta-band .wrap { position: relative; }
  .cta-band { position: relative; }
  .position .pos-card, .pos-card { border-radius: var(--r-card); }
  .cta-band h2 { font-size: clamp(30px, 4.4vw, 46px); margin-bottom: 16px; }
  .cta-band p { font-size: 18px; color: var(--slate); max-width: 560px; margin: 0 auto 32px; }
  .cta-actions { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; margin-bottom: 18px; }
  .cta-fine { font-size: 13px; color: var(--slate); font-family: 'JetBrains Mono', monospace; }
  /* booking embed slot */
  .book-slot { max-width: 720px; margin: 40px auto 0; border: 2px dashed var(--line); border-radius: var(--r-lg); padding: 40px 30px; background: var(--paper-2); }
  .book-slot .bs-ic { width: 46px; height: 46px; border-radius: 12px; background: var(--teal-wash); color: var(--teal-deep); display: grid; place-items: center; margin: 0 auto 16px; }
  .book-slot .bs-ic svg { width: 24px; height: 24px; }
  .book-slot b { display: block; font-family: 'JetBrains Mono', monospace; font-size: 12.5px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink-soft); margin-bottom: 8px; }
  .book-slot p { font-size: 13.5px; color: var(--slate); max-width: 460px; margin: 0 auto; }

  /* contact mini */
  .contact-mini { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; max-width: 720px; margin: 36px auto 0; text-align: left; }
  .cmini { border: 1px solid var(--line); border-radius: var(--r); padding: 20px 22px; background: #fff; display: flex; gap: 14px; align-items: center; }
  .cmini .ci { width: 40px; height: 40px; border-radius: 12px; background: var(--teal-wash); color: var(--teal-deep); display: grid; place-items: center; flex: 0 0 auto; }
  .cmini .ci svg { width: 20px; height: 20px; }
  .cmini .clab { font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--slate); }
  .cmini .cval { font-size: 15px; font-weight: 600; color: var(--ink); }

  /* ============ FOOTER ============ */
  footer { background: var(--ink); color: rgba(255,255,255,0.6); padding: 56px 0 30px; }
  .foot-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 40px; flex-wrap: wrap; padding-bottom: 34px; border-bottom: 1px solid rgba(255,255,255,0.12); }
  .foot-brand { max-width: 320px; }
  .foot-brand .brand { color: #fff; margin-bottom: 14px; }
  .foot-brand p { font-size: 14px; color: rgba(255,255,255,0.6); }
  .foot-cols { display: flex; gap: 56px; flex-wrap: wrap; }
  .foot-col h4 { font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; color: rgba(255,255,255,0.45); margin-bottom: 14px; font-weight: 500; }
  .foot-col a { display: block; font-size: 14px; color: rgba(255,255,255,0.72); margin-bottom: 9px; transition: color .2s; }
  .foot-col a:hover { color: var(--teal); }
  .foot-bottom { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; padding-top: 24px; font-size: 12.5px; font-family: 'JetBrains Mono', monospace; color: rgba(255,255,255,0.45); }

  @media (max-width: 900px) {
    .hero-grid { grid-template-columns: 1fr; gap: 40px; }
    .pos-grid, .who-grid { grid-template-columns: 1fr; }
    .case-grid { grid-template-columns: 1fr; }
    .steps { grid-template-columns: 1fr 1fr; gap: 28px; }
    .svc-item { grid-template-columns: 40px 1fr; }
    .svc-item .desc { grid-column: 2; }
    .about-grid { grid-template-columns: 1fr; gap: 36px; }
    .about-portrait { max-width: 360px; }
    .contact-mini { grid-template-columns: 1fr; }
  }
  @media (max-width: 540px) {
    .steps { grid-template-columns: 1fr; }
    .hero { padding: 56px 0 50px; }
    section.block { padding: 60px 0; }
    .strip .wrap { gap: 18px; }
    .strip .sep { display: none; }
  }
  @media (prefers-reduced-motion: reduce) {
    * { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  }

  /* reveal */
  .reveal { opacity: 0; transform: translateY(18px); transition: opacity .6s ease, transform .6s ease; }
  .reveal.in { opacity: 1; transform: none; }


  /* ============ SITE HEADER (WordPress native nav, non-sticky) ============ */
  .site-header { position: relative; z-index: 200; background: var(--paper); border-bottom: 1px solid var(--line); }
  .site-header .nav { display: flex; align-items: center; justify-content: space-between; height: 72px; gap: 20px; }
  .brand-link { display: flex; align-items: center; gap: 11px; }
  .brand-link .glyph { width: 38px; height: 38px; flex: 0 0 auto; object-fit: contain; border-radius: 10px; }
  .brand-text { font-weight: 700; font-size: 16px; letter-spacing: -0.01em; line-height: 1.05; }
  .brand-text span { display: block; color: var(--slate); font-weight: 500; font-size: 12.5px; }
  .primary-nav { display: flex; align-items: center; }
  .primary-nav ul { list-style: none; display: flex; align-items: center; gap: 28px; margin: 0; padding: 0; }
  .primary-nav a { font-size: 14.5px; font-weight: 500; color: var(--ink-soft); transition: color .2s; }
  .primary-nav a:hover, .primary-nav .current-menu-item > a { color: var(--teal-deep); }
  .primary-nav .btn-amber { color:#fff; }

  /* dropdown submenus */
  .primary-nav .menu-item-has-children { position: relative; }
  .primary-nav .menu-item-has-children > a::after { content: ""; display: inline-block; width: 6px; height: 6px; margin-left: 7px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(-2px) rotate(45deg); opacity: .6; transition: transform .2s; }
  .primary-nav .sub-menu { list-style: none; margin: 0; padding: 8px; position: absolute; top: calc(100% + 10px); left: 0; min-width: 220px; display: block; gap: 0; flex-direction: column; background: #fff; border: 1px solid var(--line); border-radius: var(--r-card); box-shadow: var(--shadow-md); opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity .2s, transform .2s, visibility .2s; z-index: 250; }
  .primary-nav .sub-menu li { display: block; }
  .primary-nav .sub-menu a { display: block; padding: 9px 12px; border-radius: 9px; font-size: 14px; white-space: nowrap; color: var(--ink-soft); }
  .primary-nav .sub-menu a:hover { background: var(--paper-2); color: var(--teal-deep); }
  .primary-nav .menu-item-has-children:hover > .sub-menu,
  .primary-nav .menu-item-has-children:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: translateY(0); }
  .primary-nav .menu-item-has-children:hover > a::after { transform: translateY(-2px) rotate(225deg); }
  /* nested (third level) opens to the side on desktop */
  .primary-nav .sub-menu .sub-menu { top: -9px; left: calc(100% + 4px); }
  .nav-toggle { display: none; background: none; border: 0; cursor: pointer; padding: 8px; }
  .nav-toggle span { display: block; width: 22px; height: 2px; background: var(--ink); margin: 4px 0; transition: .2s; }
  @media (max-width: 900px) {
    .nav-toggle { display: block; }
    .primary-nav { position: absolute; top: 72px; left: 0; right: 0; background: var(--paper); border-bottom: 1px solid var(--line); display: none; z-index: 90; max-height: 80vh; overflow-y: auto; }
    .primary-nav.open { display: block; }
    .primary-nav ul { flex-direction: column; align-items: stretch; gap: 0; padding: 8px 28px 18px; }
    .primary-nav li { border-bottom: 1px solid var(--line); }
    .primary-nav a { display: block; padding: 13px 0; font-size: 16px; }
    .brand-text span { display: none; }
    /* mobile submenus expand inline */
    .primary-nav .sub-menu { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; border: 0; border-radius: 0; padding: 0 0 0 16px; min-width: 0; background: transparent; display: none; }
    .primary-nav .menu-item-has-children.open > .sub-menu { display: block; }
    .primary-nav .menu-item-has-children > a::after { float: right; }
    .primary-nav .menu-item-has-children.open > a::after { transform: translateY(-2px) rotate(225deg); }
  }

/* ============ GENERIC CONTENT ============ */
.page-hero{ padding:72px 0 40px; border-bottom:1px solid var(--line); }
.page-hero h1{ font-size:clamp(36px,6vw,60px); margin:10px 0 14px; }
.page-hero .lede{ font-size:18px; color:var(--ink-soft); max-width:720px; }
.entry-content{ padding:48px 0; font-size:17px; color:var(--ink-soft); }
/* Constrain plain prose children to a readable measure, but exclude full-bleed
   sections (which manage their own width and backgrounds). */
.entry-content .wrap > p,
.entry-content .wrap > ul,
.entry-content .wrap > ol,
.entry-content .wrap > h2,
.entry-content .wrap > h3,
.entry-content .wrap > h4,
.entry-content .wrap > blockquote,
.entry-content .wrap > figure{ max-width:760px; }
/* Full-width designed sections break out of the entry-content padding and
   span the viewport, so their dark backgrounds render edge to edge. */
.entry-content section.block,
.entry-content .cta-band,
.entry-content .strip,
.entry-content .about,
.entry-content .position{ max-width:none; width:auto; }
.entry-content h2{ font-size:30px; margin:1.4em 0 .5em; color:var(--ink); }
.entry-content h3{ font-size:22px; margin:1.2em 0 .4em; color:var(--ink); }
/* Dark sections inside entry-content keep light headings/text (these come
   last so they win the source-order tie against the generic rules above). */
.entry-content .position h2,
.entry-content .position h3,
.entry-content .position .sec-head h2,
.entry-content .pos-card h3,
.entry-content .about h2,
.entry-content .about h3,
.entry-content .case.flag .stat{ color:#fff; }
.entry-content .position,
.entry-content .position p,
.entry-content .position li,
.entry-content .pos-card p,
.entry-content .about,
.entry-content .about p{ color:rgba(255,255,255,0.80); }
.entry-content .position .eyebrow{ color:var(--teal); }

/* Hardened protection: ensure the dark "position" section always renders dark
   with readable text, even when page content carries conflicting pasted CSS.
   These mirror the standalone Additional CSS fix so a fresh install is safe. */
.position,
.block.position,
.entry-content .position,
.page-fullwidth .position{ background-color:var(--ink) !important; background-image:none !important; }
.position .pos-card,
.entry-content .position .pos-card{ background-color:rgba(255,255,255,0.04) !important; border:1px solid rgba(131,252,181,0.18) !important; }
.position .eyebrow,
.entry-content .position .eyebrow{ color:var(--teal) !important; }
.position h2, .position .sec-head h2,
.entry-content .position h2{ color:#fff !important; }
.position .pos-card h3,
.entry-content .position .pos-card h3{ color:#fff !important; }
.position p, .position .sec-head p,
.entry-content .position p{ color:rgba(255,255,255,0.78) !important; }
.position .pos-card .n,
.entry-content .position .pos-card .n{ color:var(--mint) !important; }
.position .pos-card p,
.entry-content .position .pos-card p{ color:rgba(255,255,255,0.66) !important; }
.entry-content a{ color:var(--teal-deep); text-decoration:underline; }
.entry-content ul,.entry-content ol{ margin:0 0 1.2em 1.2em; }


/* ============ CASE STUDY TEMPLATE ============ */
.cs-hero{ padding:72px 0 44px; border-bottom:1px solid var(--line-strong); background:linear-gradient(180deg,var(--panel-tint),var(--paper)); }
.cs-hero .meta{ display:flex; flex-wrap:wrap; gap:10px 18px; align-items:center; margin-bottom:20px; }
.cs-hero .period{ font-family:'JetBrains Mono',monospace; font-size:13px; color:var(--ink-soft); }
.cs-hero h1{ font-size:clamp(40px,7vw,72px); margin:6px 0 12px; }
.cs-hero .tagline{ font-size:20px; color:var(--teal-deep); font-weight:600; font-family:'Fraunces',serif; font-style:italic; margin-bottom:18px; }
.cs-hero .summary{ font-size:18px; color:var(--ink-soft); max-width:760px; }
.pill{ display:inline-block; font-family:'JetBrains Mono',monospace; font-size:11.5px; letter-spacing:0.1em; text-transform:uppercase; padding:5px 12px; border-radius:999px; background:var(--teal-wash); color:var(--teal-deep); }
.pill-loc{ background:var(--paper-2); color:var(--ink-soft); border:1px solid var(--line); }
.rep-tag{ display:inline-flex; align-items:center; gap:7px; font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:0.08em; text-transform:uppercase; color:var(--amber-deep); background:rgba(200,71,46,0.07); border:1px solid rgba(200,71,46,0.22); padding:5px 12px; border-radius:999px; }
.rep-tag::before{ content:""; width:6px; height:6px; border-radius:50%; background:var(--amber); }
.rep-note{ margin-top:14px; font-size:12.5px; color:var(--ink-soft); font-style:italic; max-width:760px; }

section.block{ padding:56px 0; position:relative; }
section.block + section.block{ border-top:1px solid var(--line); }
/* alternating tint bands so each section reads as its own surface */
section.block:nth-of-type(even){ background:var(--panel-tint); }
/* a short accent tick at the top-left of every section, tied to the eyebrow */
section.block .sec-head{ margin-bottom:28px; position:relative; padding-top:18px; }
section.block .sec-head::before{ content:""; position:absolute; top:0; left:0; width:38px; height:3px; border-radius:2px; background:linear-gradient(90deg,var(--teal),var(--teal-bright)); }
.sec-head{ margin-bottom:26px; }

.metrics{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:18px; }
.mcard{ background:var(--panel); border:1px solid var(--line); border-radius:var(--r-lg); padding:28px 26px; position:relative; overflow:hidden; box-shadow:var(--shadow-sm); transition:transform .3s cubic-bezier(.16,1,.3,1), box-shadow .3s, border-color .3s; opacity:0; transform:translateY(16px); }
.mcard.in{ opacity:1; transform:translateY(0); }
/* always-visible left accent rail */
.mcard::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:linear-gradient(180deg,var(--teal-bright),var(--teal-deep)); opacity:.9; }
/* hover glow sweeping up from the accent */
.mcard::after{ content:""; position:absolute; inset:0; background:radial-gradient(120% 120% at 0% 100%, rgba(31,157,87,0.10), transparent 55%); opacity:0; transition:opacity .35s; pointer-events:none; }
.mcard:hover{ transform:translateY(-6px); box-shadow:var(--shadow-lg); border-color:var(--teal); }
.mcard:hover::after{ opacity:1; }
.mcard .num{ font-family:'Fraunces',serif; font-weight:600; font-size:42px; color:var(--ink); line-height:1; letter-spacing:-0.02em; }
.mcard .lbl{ margin-top:12px; font-size:14.5px; color:var(--ink-soft); font-weight:500; }
.mcard .note{ margin-top:10px; padding-top:10px; border-top:1px solid var(--line); font-size:12.5px; color:var(--teal-deep); font-family:'JetBrains Mono',monospace; }

.two{ display:grid; grid-template-columns:1fr 1fr; gap:48px; }
.lead-list{ list-style:none; display:grid; gap:15px; }
.lead-list li{ position:relative; padding-left:32px; font-size:15.5px; color:var(--ink-soft); }
.lead-list li::before{ content:""; position:absolute; left:0; top:3px; width:18px; height:18px; border-radius:50%; background:var(--teal-wash); border:1px solid var(--teal); }
.lead-list li::after{ content:""; position:absolute; left:6px; top:8px; width:6px; height:3px; border-left:2px solid var(--teal-deep); border-bottom:2px solid var(--teal-deep); transform:rotate(-45deg); }
.obj{ font-size:17px; color:var(--ink-soft); }

.themes{ display:flex; flex-wrap:wrap; gap:10px; }
.themes span{ font-size:13.5px; font-weight:600; color:var(--ink-soft); background:var(--panel); border:1px solid var(--line); padding:10px 16px; border-radius:999px; box-shadow:var(--shadow-sm); transition:transform .2s, border-color .2s, color .2s; }
.themes span:hover{ transform:translateY(-2px); border-color:var(--teal); color:var(--teal-deep); }

.funnel{ display:grid; gap:12px; max-width:580px; }
.fbar{ display:grid; grid-template-columns:130px 1fr auto; align-items:center; gap:16px; }
.fbar .fl{ font-size:13.5px; font-weight:600; color:var(--ink-soft); text-align:right; }
.fbar .ftrack{ height:34px; background:var(--panel-tint); border:1px solid var(--line); border-radius:9px; overflow:hidden; position:relative; box-shadow:inset 0 1px 3px rgba(14,26,20,0.06); }
.fbar .ft{ position:absolute; inset:0; height:100%; border-radius:8px 0 0 8px; background:linear-gradient(90deg,var(--teal-deep),var(--teal),var(--teal-bright)); width:0; transition:width 1.1s cubic-bezier(.16,1,.3,1); }
.fbar .ft::after{ content:""; position:absolute; top:0; bottom:0; right:0; width:46px; background:linear-gradient(90deg,transparent,rgba(255,255,255,0.45)); }
.fbar .fv{ font-family:'JetBrains Mono',monospace; font-size:14px; color:var(--ink); font-weight:600; }

.chart{ display:grid; gap:18px; max-width:640px; }
.crow{ display:grid; grid-template-columns:1fr; gap:8px; }
.crow .ctop{ display:flex; justify-content:space-between; align-items:baseline; }
.crow .cl{ font-size:14.5px; font-weight:600; color:var(--ink); }
.crow .cv{ font-family:'JetBrains Mono',monospace; font-size:14px; color:var(--teal-deep); font-weight:600; }
.crow .ctrack{ height:16px; background:var(--panel-tint); border:1px solid var(--line); border-radius:999px; overflow:hidden; position:relative; box-shadow:inset 0 1px 3px rgba(14,26,20,0.06); }
.crow .cfill{ height:100%; width:0; background:linear-gradient(90deg,var(--teal-deep),var(--teal) 55%,var(--teal-bright)); border-radius:999px; transition:width 1.2s cubic-bezier(.16,1,.3,1); position:relative; }
.crow .cfill::after{ content:""; position:absolute; top:0; bottom:0; right:0; width:40px; background:linear-gradient(90deg,transparent,rgba(255,255,255,0.5)); border-radius:999px; }

.closing{ font-size:18px; color:var(--ink); max-width:820px; font-style:italic; font-family:'Fraunces',serif; line-height:1.5; border-left:4px solid var(--teal); padding:6px 0 6px 24px; }

.cs-cta{ padding:72px 0; text-align:center; background:var(--ink); color:#fff; }
.cs-cta h2{ font-size:38px; margin-bottom:10px; color:#fff; }
.cs-cta p{ color:rgba(255,255,255,0.72); margin-bottom:26px; }
.cs-cta a[href]{ color:rgba(255,255,255,0.9); }
.cs-cta .btn-amber{ color:#fff; }

/* ============ CASE STUDY INDEX (archive-style grid via shortcode) ============ */
.cs-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(320px,1fr)); gap:22px; padding:48px 0 64px; }
/* spotlight: up to two featured studies, larger, above the grid */
.cs-spotlight{ display:grid; grid-template-columns:repeat(auto-fit,minmax(380px,1fr)); gap:22px; padding:40px 0 8px; }
.gcard-feature{ padding:34px 32px; }
.gcard-feature h3{ font-size:28px; }
.gfeature{ font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:0.1em; text-transform:uppercase; color:#fff; background:var(--teal-deep); padding:4px 10px; border-radius:999px; white-space:nowrap; }
.gcard-feature::before{ background:linear-gradient(90deg,var(--teal-bright),var(--teal-deep)); transform:scaleX(1); }
.gcard{ display:flex; flex-direction:column; background:var(--panel); border:1px solid var(--line-teal); border-radius:var(--r-card); padding:30px 28px; position:relative; overflow:hidden; box-shadow:var(--shadow-sm); transition:transform .3s cubic-bezier(.16,1,.3,1), box-shadow .3s, border-color .3s; }
.gcard::before{ content:""; position:absolute; top:0; left:0; right:0; height:3px; background:var(--teal); }
.gcard::before{ content:""; position:absolute; left:0; top:0; right:0; height:3px; background:linear-gradient(90deg,var(--teal-bright),var(--teal-deep)); transform:scaleX(0); transform-origin:left; transition:transform .4s cubic-bezier(.16,1,.3,1); }
.gcard:hover{ transform:translateY(-6px); box-shadow:var(--shadow-lg); border-color:var(--teal); }
.gcard:hover::before{ transform:scaleX(1); }
.gtop{ display:flex; justify-content:space-between; align-items:center; gap:8px; }
.gpill{ font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:0.1em; text-transform:uppercase; color:var(--teal-deep); }
.grep{ font-family:'JetBrains Mono',monospace; font-size:9.5px; letter-spacing:0.08em; text-transform:uppercase; color:var(--amber-deep); background:rgba(200,71,46,0.07); border:1px solid rgba(200,71,46,0.22); padding:3px 8px; border-radius:999px; white-space:nowrap; }
.gcard h3{ font-size:24px; margin:12px 0 4px; }
.gmeta{ display:flex; flex-wrap:wrap; gap:6px 10px; align-items:center; margin:6px 0 10px; }
.gloc{ font-size:12px; font-weight:600; color:var(--ink-soft); }
.gper{ font-family:'JetBrains Mono',monospace; font-size:11.5px; color:var(--ink-soft); opacity:.75; }
.gtag{ font-style:italic; color:var(--teal-deep); font-family:'Fraunces',serif; font-size:15px; margin-bottom:12px; }
.gsum{ font-size:14.5px; color:var(--ink-soft); flex:1; }
.gstat{ display:flex; align-items:baseline; gap:10px; margin:20px 0 16px; padding-top:18px; border-top:1px solid var(--line); }
.gnum{ font-family:'Fraunces',serif; font-weight:600; font-size:30px; color:var(--ink); letter-spacing:-0.02em; }
.glbl{ font-size:12.5px; color:var(--ink-soft); }
.gmore{ display:inline-flex; align-items:center; gap:6px; font-size:14px; font-weight:600; color:var(--amber); transition:gap .25s, color .25s; }
.gcard:hover .gmore{ color:var(--amber-deep); gap:11px; }

@media(max-width:760px){
  .two{ grid-template-columns:1fr; gap:30px; }
  .fbar{ grid-template-columns:90px 1fr auto; }
  .mcard .num{ font-size:34px; }
}

  /* ============ CASE STUDY INTRO + RELATED CROSS-LINKS ============ */
  .cs-intro { font-size: 18px; line-height: 1.6; color: var(--ink-soft); font-weight: 500; margin-bottom: 20px; }
  .cs-related { background: #fff; border: 1px solid var(--line-teal); border-radius: var(--r-card); padding: 24px 28px; margin: 28px 0; position: relative; overflow: hidden; }
  .cs-related::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: var(--teal); }
  .cs-related h3 { font-size: 16px; color: var(--ink); margin-bottom: 14px; }
  .cs-related ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
  .cs-related li { font-size: 14.5px; color: var(--slate); }
  .cs-related a { color: var(--teal-deep); font-weight: 600; }
  .cs-related a:hover { color: var(--teal); }
  .cs-cta-line { font-size: 15px; color: var(--slate); margin-top: 24px; }
  .cs-cta-line a { color: var(--teal-deep); font-weight: 600; }
  /* Blog related-reading block (same look) */
  .post-related { background: #fff; border: 1px solid var(--line-teal); border-radius: var(--r-card); padding: 24px 28px; margin: 32px 0; position: relative; overflow: hidden; }
  .post-related::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: var(--teal); }
  .post-related h3 { font-size: 16px; color: var(--ink); margin-bottom: 14px; }
  .post-related ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
  .post-related li { font-size: 14.5px; color: var(--slate); }
  .post-related a { color: var(--teal-deep); font-weight: 600; }

  /* ============ AUTO RELATED PAGES (taxonomy-driven) ============ */
  .psm-related { max-width: var(--maxw); margin: 56px auto 0; padding: 40px 28px 0; border-top: 1px solid var(--line); }
  .psm-related-title { font-size: 14px; font-family: 'JetBrains Mono', monospace; letter-spacing: 0.12em; text-transform: uppercase; color: var(--teal-deep); margin-bottom: 22px; }
  .psm-related-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px; }
  .psm-related-card { display: flex; }
  .psm-related-card a { display: flex; flex-direction: column; gap: 8px; background: #fff; border: 1px solid var(--line-teal); border-radius: var(--r-card); padding: 22px 24px; width: 100%; position: relative; overflow: hidden; transition: transform .25s, box-shadow .25s, border-color .25s; }
  .psm-related-card a::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: var(--teal); }
  .psm-related-card a:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); border-color: var(--teal); }
  .psm-related-kicker { font-family: 'JetBrains Mono', monospace; font-size: 10.5px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--teal-deep); }
  .psm-related-name { font-family: 'Fraunces', Georgia, serif; font-size: 18px; font-weight: 600; color: var(--ink); line-height: 1.2; }
  .psm-related-excerpt { font-size: 13.5px; color: var(--slate); line-height: 1.5; }
  .psm-related-more { font-size: 13px; font-weight: 600; color: var(--teal-deep); margin-top: 4px; }
  @media (max-width: 640px) { .psm-related-grid { grid-template-columns: 1fr; } }

  /* ============ SERVICES PAGE (template-services.php) ============ */
  .svc-page-hero { padding-bottom: 0; }
  .svc-page-hero h1 { font-size: clamp(32px, 4.6vw, 48px); margin: 14px 0 16px; }
  .svc-page-lead { font-size: 18px; color: var(--slate); max-width: 660px; }
  .svc-detail-block .wrap { display: flex; flex-direction: column; gap: 22px; }
  .svc-detail { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: 34px; align-items: center; background: #fff; border: 1px solid var(--line-teal); border-radius: var(--r-card); padding: 28px; position: relative; overflow: hidden; }
  .svc-detail::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: var(--teal); }
  .svc-detail.is-alt { grid-template-columns: 1.1fr 0.9fr; }
  .svc-detail.is-alt .svc-detail-art { order: 2; }
  .svc-detail.is-alt .svc-detail-body { order: 1; }
  .svc-detail-art svg { width: 100%; height: auto; display: block; border-radius: var(--r); }
  .svc-detail-body .num { font-family: 'JetBrains Mono', monospace; font-size: 13px; color: var(--teal-deep); letter-spacing: 0.1em; margin-bottom: 8px; }
  .svc-detail-body h2 { font-size: 24px; margin-bottom: 12px; }
  .svc-detail-body p { font-size: 15.5px; line-height: 1.7; color: var(--slate); margin-bottom: 16px; }
  .svc-detail-body .deliverables { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 8px; }
  .svc-detail-body .deliverables li { font-size: 14.5px; padding-left: 22px; position: relative; color: var(--ink-soft); }
  .svc-detail-body .deliverables li::before { content: "\2192"; position: absolute; left: 0; color: var(--teal); font-weight: 600; }
  .svc-page-cta { padding-top: 0; }
  .svc-cta-card { background: var(--ink); border-radius: var(--r-card); color: #fff; text-align: center; padding: 48px 32px; position: relative; overflow: hidden; }
  .svc-cta-card::before { content: ""; position: absolute; top: 0; left: 50%; transform: translateX(-50%); width: 120px; height: 3px; background: var(--mint); }
  .svc-cta-card h2 { color: #fff; font-size: 28px; margin-bottom: 12px; }
  .svc-cta-card p { color: rgba(255,255,255,0.78); max-width: 520px; margin: 0 auto 22px; font-size: 16px; }
  @media (max-width: 760px) {
    .svc-detail, .svc-detail.is-alt { grid-template-columns: 1fr; gap: 22px; }
    .svc-detail.is-alt .svc-detail-art, .svc-detail.is-alt .svc-detail-body { order: 0; }
  }

  /* ============ INSIGHTS PAGE (template-insights.php) ============ */
  .insights-hero { padding-bottom: 0; }
  .insights-hero h1 { font-size: clamp(32px, 4.8vw, 50px); margin: 14px 0 16px; }
  .insights-lead { font-size: 18px; color: var(--slate); max-width: 640px; }
  .insights-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 22px; }
  .post-card { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--line-teal); border-radius: var(--r-card); overflow: hidden; transition: transform .25s, box-shadow .25s, border-color .25s; }
  .post-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-md); border-color: var(--teal); }
  .post-thumb { aspect-ratio: 16/9; background: var(--paper-tint); position: relative; display: grid; place-items: center; overflow: hidden; border-bottom: 1px solid var(--line-teal); }
  .post-thumb img { width: 100%; height: 100%; object-fit: cover; }
  .post-thumb-mono { font-family: 'Fraunces', serif; font-size: 34px; font-weight: 600; color: var(--line-teal); letter-spacing: 0.04em; }
  .post-tag { position: absolute; top: 12px; left: 12px; font-family: 'JetBrains Mono', monospace; font-size: 10.5px; letter-spacing: 0.08em; text-transform: uppercase; background: var(--teal); color: #fff; padding: 4px 11px; border-radius: var(--r-pill); }
  .post-meta { padding: 22px 24px 24px; display: flex; flex-direction: column; flex: 1; }
  .post-card-title { font-family: 'Fraunces', serif; font-size: 19px; font-weight: 600; line-height: 1.2; color: var(--ink); margin-bottom: 10px; }
  .post-card-excerpt { font-size: 14px; color: var(--slate); line-height: 1.55; flex: 1; }
  .post-card-read { margin-top: 16px; font-size: 13.5px; font-weight: 600; color: var(--amber); }
  .post-card:hover .post-card-read { color: var(--amber-deep); }
  .insights-empty { font-size: 16px; color: var(--slate); }
  .insights-empty a { color: var(--teal-deep); font-weight: 600; }
  .insights-video-cta { padding-top: 0; }
  .iv-card { background: var(--paper-tint); border: 1px solid var(--line-teal); border-radius: var(--r-card); padding: 32px; display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
  .iv-text h2 { font-size: 24px; margin: 8px 0 6px; }
  .iv-text p { font-size: 15px; color: var(--slate); }

  /* ============ VIDEOS PAGE (template-videos.php) ============ */
  .vid-hero { padding-bottom: 40px; }
  .vid-hero h1 { font-size: clamp(32px, 4.8vw, 50px); margin: 14px 0 16px; }
  .vid-lead { font-size: 18px; color: var(--slate); max-width: 620px; margin-bottom: 24px; }
  .vid-group { padding: 44px 0; }
  .vid-group.is-alt { background: var(--paper-tint); }
  .vid-group-head { margin-bottom: 26px; }
  .vid-group-head h2 { font-size: 24px; margin-bottom: 6px; }
  .vid-group-head p { font-size: 15px; color: var(--slate); }
  .vid-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 18px; }
  .vid-card { display: flex; flex-direction: column; gap: 10px; text-decoration: none; transition: transform .2s; }
  .vid-card:hover { transform: translateY(-4px); }
  .vid-thumb { aspect-ratio: 16/9; border-radius: var(--r-card); overflow: hidden; position: relative; background: var(--ink); box-shadow: var(--shadow-sm); display: block; }
  .vid-thumb img { width: 100%; height: 100%; object-fit: cover; }
  .vid-play { position: absolute; inset: 0; display: grid; place-items: center; color: #fff; font-size: 30px; opacity: 0.92; text-shadow: 0 2px 14px rgba(0,0,0,0.6); transition: transform .2s; }
  .vid-card:hover .vid-play { transform: scale(1.12); }
  .vid-title { font-size: 13.5px; line-height: 1.4; color: var(--ink-soft); font-weight: 500; }
  @media (max-width: 600px) {
    .iv-card { flex-direction: column; align-items: flex-start; }
    .vid-grid { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
  }

  /* ============ ABOUT PAGE (template-about.php) ============ */
  .about-page-hero { padding-bottom: 0; }
  .about-page-hero h1 { font-size: clamp(34px, 5vw, 54px); margin: 14px 0 18px; }
  .about-page-lead { font-size: 19px; line-height: 1.6; color: var(--slate); max-width: 720px; }
  .about-story-grid { display: grid; grid-template-columns: 0.8fr 1.2fr; gap: 44px; align-items: start; }
  .about-story-portrait { aspect-ratio: 4/5; border-radius: var(--r-card); background: linear-gradient(150deg, var(--teal-deep), var(--ink-soft)); display: grid; place-items: center; position: relative; overflow: hidden; border: 1px solid var(--line-teal); }
  .about-story-portrait .portrait-img { width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0; }
  .about-story-portrait .mono-big { font-family: 'Fraunces', serif; font-size: 64px; color: rgba(255,255,255,0.18); font-weight: 600; }
  .about-story-body p { font-size: 16px; line-height: 1.75; color: var(--ink-soft); margin-bottom: 18px; }
  .about-story-body p b { color: var(--ink); font-weight: 600; }
  .about-belief { background: var(--paper-tint); }
  .about-manifesto { margin: 18px 0 22px; padding-left: 24px; border-left: 3px solid var(--teal); }
  .about-manifesto p { font-family: 'Fraunces', serif; font-style: italic; font-size: clamp(22px, 3vw, 30px); line-height: 1.3; color: var(--ink); }
  .about-belief-body { font-size: 16.5px; line-height: 1.7; color: var(--ink-soft); max-width: 760px; }
  .about-quote-band { background-color: var(--ink) !important; }
  .about-quote-band .about-pullquote p { color: #fff; }
  .about-pullquote { text-align: center; max-width: 820px; margin: 0 auto; }
  .about-pullquote p { font-family: 'Fraunces', serif; font-size: clamp(24px, 3.4vw, 36px); line-height: 1.28; color: #fff; margin-bottom: 18px; }
  .about-pullquote cite { font-family: 'JetBrains Mono', monospace; font-style: normal; font-size: 13px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--mint); }
  .about-cta { padding-top: 0; }
  .about-cta-card { background: var(--ink); border-radius: var(--r-card); color: #fff; text-align: center; padding: 48px 32px; position: relative; overflow: hidden; }
  .about-cta-card::before { content: ""; position: absolute; top: 0; left: 50%; transform: translateX(-50%); width: 120px; height: 3px; background: var(--mint); }
  .about-cta-card h2 { color: #fff; font-size: 28px; margin-bottom: 12px; }
  .about-cta-card p { color: rgba(255,255,255,0.78); max-width: 540px; margin: 0 auto 22px; font-size: 16px; }
  @media (max-width: 760px) {
    .about-story-grid { grid-template-columns: 1fr; gap: 28px; }
    .about-story-portrait { max-width: 320px; }
  }

  /* ============ CONTACT PAGE (template-contact.php) ============ */
  .contact-page-wrap { max-width: 820px; }
  .contact-page-title { font-size: clamp(34px, 5vw, 52px); margin: 14px 0 16px; }
  .contact-page-lead { font-size: 18px; line-height: 1.6; color: var(--slate); max-width: 640px; }
  .contact-page-cta { margin: 28px 0 8px; }
  .contact-page .cmini { text-decoration: none; transition: border-color .2s, box-shadow .2s, transform .2s; }
  .contact-page .cmini:hover { border-color: var(--teal); box-shadow: var(--shadow-md); transform: translateY(-2px); }
  .contact-page .cmini-text { display: flex; flex-direction: column; gap: 3px; }
  .contact-page-fine { font-size: 13px; color: var(--slate); font-family: 'JetBrains Mono', monospace; margin-top: 22px; }

  /* ============ LEGAL PAGES (template-legal.php) ============ */
  .legal-wrap { max-width: 820px; }
  .legal-title { font-size: clamp(30px, 4.4vw, 44px); margin: 14px 0 6px; }
  .legal-updated { font-family: 'JetBrains Mono', monospace; font-size: 13px; color: var(--slate); margin-bottom: 28px; }
  .legal-h2 { font-size: 22px; margin: 28px 0 10px; }
  .legal-p { margin-bottom: 18px; line-height: 1.7; color: var(--ink-soft); }
  .legal-ul { margin: 0 0 18px 22px; line-height: 1.7; color: var(--ink-soft); }
  .legal-ul li { margin-bottom: 8px; }

  /* legal links in footer bottom */
  .foot-legal { display: inline-flex; gap: 16px; }
  .foot-legal a { color: rgba(255,255,255,0.55); transition: color .2s; }
  .foot-legal a:hover { color: var(--mint); }

/* ============================================================
   BREVO SIGNUP FORM (v2.8.2)
   Styles the plugin's sib-* classes + the psm-signup wrapper.
============================================================ */
.psm-signup{background:#fff;border:1px solid var(--line,#DCE4DA);border-radius:20px;padding:36px 32px;max-width:560px;position:relative;overflow:hidden;box-shadow:0 10px 30px rgba(14,26,20,0.06);margin:0 auto}
.psm-signup::before{content:"";position:absolute;top:0;left:0;width:100%;height:3px;background:var(--teal,#1F9D57)}
.psm-signup-kicker{font-family:'JetBrains Mono',monospace;font-size:12px;font-weight:500;letter-spacing:0.16em;text-transform:uppercase;color:var(--teal-deep,#16713F);margin:0 0 8px}
.psm-signup-title{font-family:'Fraunces',Georgia,serif;font-weight:600;font-size:26px;line-height:1.15;color:var(--ink,#0E1A14);margin:0 0 8px}
.psm-signup-lead{font-size:14.5px;color:var(--slate,#3D4A41);margin:0 0 22px}
.psm-signup-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:560px){.psm-signup-row{grid-template-columns:1fr}}
.psm-field{margin:0 0 14px}
.psm-field label{display:block;font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:500;letter-spacing:0.1em;text-transform:uppercase;color:var(--ink-soft,#1E3328);margin-bottom:6px}
.psm-signup input[type="text"],.psm-signup input[type="email"]{width:100%;box-sizing:border-box;font-family:'Inter',system-ui,sans-serif;font-size:15px;color:var(--ink,#0E1A14);background:var(--paper,#FAFBF9);border:1.5px solid var(--line,#DCE4DA);border-radius:999px;padding:12px 18px;outline:none;transition:border-color .2s,box-shadow .2s,background .2s}
.psm-signup input[type="text"]::placeholder,.psm-signup input[type="email"]::placeholder{color:#9AA79E}
.psm-signup input[type="text"]:focus,.psm-signup input[type="email"]:focus{border-color:var(--teal,#1F9D57);background:#fff;box-shadow:0 0 0 3px rgba(31,157,87,0.14)}
.psm-submit{margin:6px 0 0}
.psm-signup .sib-default-btn,.psm-signup input[type="submit"]{display:inline-block;width:100%;font-family:'Inter',system-ui,sans-serif;font-size:15px;font-weight:600;color:#fff;background:var(--amber,#C8472E);border:none;border-radius:999px;padding:14px 24px;cursor:pointer;box-shadow:0 12px 28px rgba(200,71,46,0.30);transition:transform .2s,background .2s}
.psm-signup .sib-default-btn:hover,.psm-signup input[type="submit"]:hover{background:var(--amber-deep,#A8371F);transform:translateY(-2px)}
.psm-signup-privacy{font-size:12px;color:var(--slate,#3D4A41);margin:14px 0 0}
.psm-signup-privacy a{color:var(--teal-deep,#16713F);font-weight:600;text-decoration:none}
.psm-signup-privacy a:hover{text-decoration:underline}
.psm-signup .sib_msg_disp,.psm-signup .sib-message,.psm-signup .success,.psm-signup .failure{border-radius:12px;padding:12px 16px;font-size:14px;margin-top:12px}
.psm-signup .success{background:var(--teal-wash,#E6F2EA);color:var(--teal-deep,#16713F);border:1px solid rgba(31,157,87,0.3)}
.psm-signup .failure{background:rgba(200,71,46,0.07);color:var(--amber-deep,#A8371F);border:1px solid rgba(200,71,46,0.22)}
/* signup band wrapper used by templates */
.psm-signup-band{padding:56px 0}
.psm-signup-band .wrap{display:flex;justify-content:center}
/* dark variant */
.psm-signup-dark .psm-signup{background:rgba(255,255,255,0.04);border-color:rgba(255,255,255,0.14)}
.psm-signup-dark .psm-signup-title{color:#fff}
.psm-signup-dark .psm-signup-lead,.psm-signup-dark .psm-signup-privacy{color:rgba(255,255,255,0.72)}
.psm-signup-dark .psm-field label{color:rgba(255,255,255,0.85)}
.psm-signup-dark .psm-signup-kicker{color:#83fcb5}
.psm-signup-dark .psm-signup::before{background:#83fcb5}
/* per-service CTA link on the services page */
.svc-detail-cta{display:inline-flex;align-items:center;gap:8px;margin-top:18px;font-size:14.5px;font-weight:600;color:var(--teal-deep,#16713F);text-decoration:none;border:1.5px solid var(--line,#DCE4DA);border-radius:999px;padding:10px 20px;transition:border-color .2s,color .2s,transform .2s}
.svc-detail-cta:hover{border-color:var(--teal,#1F9D57);color:var(--teal,#1F9D57);transform:translateY(-2px)}
/* contact page service-context pill (from ?service= CTAs) */
.contact-service-pill{display:inline-block;font-size:13px;color:var(--teal-deep,#16713F);background:var(--teal-wash,#E6F2EA);border:1px solid rgba(31,157,87,0.3);border-radius:999px;padding:6px 14px;margin:10px 0 4px}
.contact-service-pill b{font-weight:600}
/* ============================================================
   SERVICE DETAIL PAGES + FAQ (v2.9.0)
============================================================ */
.svc-back{display:inline-block;font-size:13.5px;font-weight:600;color:var(--ink-soft,#1E3328);margin-bottom:18px;text-decoration:none}
.svc-back:hover{color:var(--teal-deep,#16713F)}
.svc-single{display:grid;grid-template-columns:minmax(260px,380px) 1fr;gap:44px;align-items:start}
@media(max-width:820px){.svc-single{grid-template-columns:1fr;gap:28px}}
.svc-single-art svg{width:100%;height:auto;display:block}
.svc-single-body p{font-size:16.5px;color:var(--slate,#3D4A41);margin:0 0 22px}
.svc-single-h{font-size:20px;margin:0 0 14px}
.svc-single-body .btn{margin-top:22px}
.svc-proof-h{font-size:28px;margin:8px 0 22px}
.svc-proof-grid{padding:0}
.svc-title-link{color:inherit;text-decoration:none;transition:color .2s}
.svc-title-link:hover{color:var(--teal-deep,#16713F)}
.svc-detail-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.svc-detail-cta.is-consult{border-color:var(--amber,#C8472E);color:var(--amber,#C8472E)}
.svc-detail-cta.is-consult:hover{border-color:var(--amber-deep,#A8371F);color:var(--amber-deep,#A8371F)}
/* FAQ */
.faq-list{max-width:780px;margin:0 auto;display:grid;gap:12px}
.faq-item{background:#fff;border:1px solid var(--line,#DCE4DA);border-radius:16px;padding:0;overflow:hidden;transition:border-color .2s,box-shadow .2s}
.faq-item[open]{border-color:var(--teal,#1F9D57);box-shadow:0 10px 30px rgba(14,26,20,0.06)}
.faq-q{cursor:pointer;list-style:none;padding:18px 22px;font-family:'Fraunces',Georgia,serif;font-weight:600;font-size:17.5px;color:var(--ink,#0E1A14);position:relative;padding-right:48px}
.faq-q::-webkit-details-marker{display:none}
.faq-q::after{content:"+";position:absolute;right:20px;top:50%;transform:translateY(-50%);font-family:'JetBrains Mono',monospace;font-size:20px;color:var(--teal,#1F9D57);transition:transform .2s}
.faq-item[open] .faq-q::after{content:"\2212"}
.faq-a{padding:0 22px 20px;margin:0;font-size:15px;color:var(--slate,#3D4A41)}
/* ============================================================
   SITE MAP ANALYSIS TOOL PAGE (v2.10.0)
============================================================ */
.tool-frame-block{padding:0}
.tool-frame-wrap{max-width:1400px;margin:0 auto;padding:0 16px}
.tool-frame{display:block;width:100%;height:min(86vh,900px);border:1px solid var(--line,#DCE4DA);border-radius:20px;background:#0E1A14;box-shadow:0 24px 60px rgba(14,26,20,0.14)}
.tool-note p{max-width:760px;margin:0 auto;font-size:14.5px;color:var(--slate,#3D4A41);text-align:center}
.tool-note a{color:var(--teal-deep,#16713F);font-weight:600;text-decoration:none}
.tool-note a:hover{text-decoration:underline}
@media(max-width:820px){.tool-frame{height:78vh;border-radius:14px}}
