
:root {
  --paper: #f4f0e8;
  --paper-deep: #e9e3d8;
  --ink: #18232b;
  --muted: #5e686d;
  --navy: #173747;
  --rust: #a95f38;
  --line: rgba(24,35,43,.18);
  --white: #fff;
  --max: 1240px;
  --text: 720px;
  --serif: Georgia, "Times New Roman", serif;
  --sans: Arial, Helvetica, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: var(--sans);
  font-size: 17px;
  line-height: 1.62;
  -webkit-font-smoothing: antialiased;
}
img { display:block; width:100%; height:auto; }
a { color: inherit; }
button, input, select, textarea { font: inherit; }
.sr-only {
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}
.skip-link {
  position:fixed;
  left:1rem;
  top:-5rem;
  z-index:9999;
  padding:.75rem 1rem;
  background:#fff;
  color:#111;
  border:2px solid #111;
  text-decoration:none;
}
.skip-link:focus {
  top:1rem;
}
.skip-link:focus { top: 1rem; }
.container { width:min(calc(100% - 48px), var(--max)); margin-inline:auto; }

.site-header {
  position: sticky; top: 0; z-index: 50;
  background: color-mix(in srgb, var(--paper) 92%, transparent);
  border-bottom: 1px solid transparent;
  backdrop-filter: blur(16px);
  transition: border-color .2s ease;
}
.site-header.scrolled { border-color: var(--line); }
.nav-wrap {
  min-height: 76px; display:flex; align-items:center; justify-content:space-between; gap:2rem;
}
.wordmark { text-decoration:none; display:flex; align-items:baseline; gap:.9rem; }
.wordmark span { font-family:var(--serif); font-size:1.45rem; font-weight:600; }
.wordmark small { color:var(--muted); font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; }
.site-nav { display:flex; align-items:center; gap:1.6rem; }
.site-nav a { text-decoration:none; font-size:.88rem; font-weight:600; }
.site-nav a:hover, .site-nav a:focus-visible { text-decoration:underline; text-underline-offset:5px; }
.nav-contact { border:1px solid var(--ink); padding:.55rem .85rem; }
.menu-toggle { display:none; background:none; border:0; width:44px; height:44px; padding:10px; }
.menu-toggle span:not(.sr-only) { display:block; height:1px; background:var(--ink); margin:7px 0; }

.hero { padding: 72px 0 84px; }
.hero-grid {
  display:grid; grid-template-columns:minmax(0,.88fr) minmax(520px,1.12fr);
  gap: clamp(42px, 6vw, 86px); align-items:center;
}
.hero-copy { max-width: 620px; }
.eyebrow {
  margin:0 0 1rem; color:var(--rust); font-size:.73rem; font-weight:600;
  letter-spacing:.12em; text-transform:uppercase;
}
h1,h2 { font-family:var(--serif); font-weight:600; letter-spacing:-.035em; line-height:1.04; margin:0; }
h1 { font-size:clamp(3rem,5.5vw,5.35rem); max-width:760px; }
h2 { font-size:clamp(2.25rem,3.9vw,4.15rem); }
h3 { margin:0 0 .55rem; font-size:1.05rem; line-height:1.35; }
.lede {
  max-width:620px; margin:1.6rem 0 0; color:var(--muted);
  font-size:clamp(1.05rem,1.3vw,1.22rem); line-height:1.65;
}
.hero-detail {
  max-width:620px; margin:.9rem 0 0; color:var(--muted);
  font-size:.98rem; line-height:1.58;
}
.hero-actions { display:flex; flex-wrap:wrap; align-items:center; gap:1.35rem; margin-top:2rem; }
.button {
  display:inline-flex; align-items:center; justify-content:center; min-height:48px;
  padding:.78rem 1.05rem; border:1px solid var(--ink); text-decoration:none; font-weight:600; font-size:.9rem;
}
.button-primary { background:var(--ink); color:var(--white); }
.button:hover { transform:translateY(-1px); }
.text-link { font-weight:600; font-size:.9rem; text-decoration:none; border-bottom:1px solid currentColor; padding-bottom:.15rem; }
.hero-image {
  margin:0; overflow:hidden; min-height:560px; background:#d9d6d0;
}
.hero-image img {
  width:100%; height:100%; min-height:560px; object-fit:cover; object-position:58% center;
}

.proof-band { border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.proof-list { display:grid; grid-template-columns:repeat(3,1fr); }
.proof-list p { margin:0; padding:1.35rem 1.5rem; border-right:1px solid var(--line); color:var(--muted); font-size:.9rem; line-height:1.48; }
.proof-list p:first-child { padding-left:0; }
.proof-list p:last-child { border-right:0; padding-right:0; }
.proof-list strong { color:var(--ink); display:block; font-family:var(--serif); font-size:1.28rem; margin-bottom:.12rem; }

.section { padding:94px 0; }
.section-heading { max-width:790px; }
.split-heading { display:grid; grid-template-columns:1.25fr .75fr; max-width:none; gap:80px; align-items:end; margin-bottom:3rem; }
.split-heading > p { color:var(--muted); margin:0 0 .35rem; max-width:520px; }

.situation-list { border-top:1px solid var(--line); }
.situation-list article {
  display:grid; grid-template-columns:72px minmax(220px,.7fr) minmax(300px,1fr);
  gap:2rem; padding:1.45rem 0; border-bottom:1px solid var(--line); align-items:start;
}
.index { color:var(--rust); font-size:.78rem; font-weight:600; }
.situation-list h3 { font-family:var(--serif); font-size:1.45rem; font-weight:600; }
.situation-list p { margin:0; color:var(--muted); }

.visual-story { background:var(--navy); color:var(--white); }
.visual-grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(52px,7vw,100px); align-items:center; }
.context-image { margin:0; overflow:hidden; aspect-ratio:4/3; }
.context-image img { width:100%; height:100%; object-fit:cover; object-position:center; }
.visual-copy .eyebrow { color:#e0a17e; }
.visual-copy > p:not(.eyebrow) { color:rgba(255,255,255,.72); font-size:1.08rem; max-width:620px; }
.principles { margin-top:2.2rem; border-top:1px solid rgba(255,255,255,.24); }
.principles div { display:grid; grid-template-columns:180px 1fr; gap:1.4rem; padding:1rem 0; border-bottom:1px solid rgba(255,255,255,.18); }
.principles h3 { font-size:.94rem; }
.principles p { margin:0; color:rgba(255,255,255,.66); font-size:.93rem; }

.outcomes { background:var(--paper-deep); }
.outcomes-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:100px; align-items:start; }
.outcome-list { list-style:none; padding:0; margin:0; border-top:1px solid var(--line); }
.outcome-list li { padding:1.05rem 0; border-bottom:1px solid var(--line); font-family:var(--serif); font-size:1.3rem; }

.training-feature { padding-bottom:0; }
.training-grid { display:grid; grid-template-columns:.9fr 1.1fr; align-items:end; background:#d9d4ca; }
.training-copy { padding:clamp(42px,6vw,84px); }
.training-copy p:not(.eyebrow) { max-width:570px; color:var(--muted); font-size:1.05rem; }
.text-link-dark { display:inline-block; margin-top:1rem; }
.training-image { margin:0; height:680px; overflow:hidden; }
.training-image img { width:100%; height:100%; object-fit:cover; object-position:center 22%; }

.about-grid { display:grid; grid-template-columns:1fr 1fr; gap:100px; }
.about-copy { max-width:650px; }
.about-copy p { margin:0 0 1.15rem; color:var(--muted); }
.media-proof { padding-top:1.2rem; border-top:1px solid var(--line); }

.contact { background:var(--ink); color:var(--white); padding:96px 0; }
.contact .eyebrow { color:#e0a17e; }
.contact-grid { display:grid; grid-template-columns:.85fr 1.15fr; gap:100px; }
.contact-grid > div > p:not(.eyebrow) { color:rgba(255,255,255,.68); max-width:520px; }
.contact-form { display:grid; gap:1rem; }
.field-row { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
label { display:grid; gap:.42rem; font-size:.78rem; letter-spacing:.04em; color:rgba(255,255,255,.78); }
input, select, textarea {
  width:100%; border:1px solid rgba(255,255,255,.28); border-radius:0;
  background:rgba(255,255,255,.04); color:var(--white); padding:.8rem .85rem; outline:none;
}
select option { color:var(--ink); }
input:focus,select:focus,textarea:focus { border-color:var(--white); box-shadow:0 0 0 2px rgba(255,255,255,.15); }
textarea { resize:vertical; }
.form-footer { display:flex; align-items:center; gap:1.2rem; flex-wrap:wrap; }
.button-light { background:var(--white); color:var(--ink); border-color:var(--white); }
.form-footer p { margin:0; color:rgba(255,255,255,.65); font-size:.85rem; }

.site-footer { background:#11191f; color:rgba(255,255,255,.65); border-top:1px solid rgba(255,255,255,.12); }
.footer-grid { min-height:150px; display:grid; grid-template-columns:1.3fr 1fr 1fr .7fr; gap:2rem; align-items:center; font-size:.83rem; }
.footer-grid p { margin:0; }
.footer-grid strong { color:var(--white); font-family:var(--serif); font-size:1.2rem; }

@media (max-width: 980px) {
  .wordmark small { display:none; }
  .hero-grid { grid-template-columns:1fr; }
  .hero-copy { max-width:760px; }
  .hero-image { min-height:460px; }
  .hero-image img { min-height:460px; object-position:58% center; }
  .split-heading, .visual-grid, .outcomes-grid, .about-grid, .contact-grid { grid-template-columns:1fr; gap:44px; }
  .situation-list article { grid-template-columns:52px minmax(200px,.65fr) 1fr; gap:1.3rem; }
  .training-grid { grid-template-columns:1fr 1fr; }
  .training-copy { padding:48px; }
  .training-image { height:580px; }
  .footer-grid { grid-template-columns:1fr 1fr; padding:2.2rem 0; min-height:auto; }
}

@media (max-width: 760px) {
  body { font-size:16px; }
  .container { width:min(calc(100% - 30px), var(--max)); }
  .nav-wrap { min-height:66px; }
  .menu-toggle { display:block; z-index:2; }
  .site-nav {
    position:absolute; left:0; right:0; top:66px; display:none; flex-direction:column; align-items:stretch;
    background:var(--paper); border-bottom:1px solid var(--line); padding:1rem 15px 1.4rem;
  }
  .site-nav.open { display:flex; }
  .site-nav a { padding:.7rem 0; }
  .nav-contact { border:0; border-top:1px solid var(--line); margin-top:.3rem; padding-top:1rem !important; }

  .hero { padding:36px 0 56px; }
  .hero-grid { gap:30px; }
  h1 { font-size:clamp(2.65rem,12vw,4.2rem); }
  h2 { font-size:clamp(2.15rem,9vw,3.35rem); }
  .hero-image { order:-1; min-height:0; aspect-ratio:4/3; }
  .hero-image img { min-height:0; height:100%; object-fit:cover; object-position:58% center; }
  .hero-actions { align-items:flex-start; flex-direction:column; gap:1rem; }
  .button { width:100%; }

  .proof-list { grid-template-columns:1fr; }
  .proof-list p, .proof-list p:first-child, .proof-list p:last-child { padding:1rem 0; border-right:0; border-bottom:1px solid var(--line); }
  .proof-list p:last-child { border-bottom:0; }

  .section { padding:64px 0; }
  .split-heading { margin-bottom:2rem; }
  .situation-list article { grid-template-columns:42px 1fr; gap:.8rem 1rem; }
  .situation-list article p { grid-column:2; }
  .situation-list h3 { font-size:1.3rem; }

  .visual-grid { gap:34px; }
  .context-image { aspect-ratio:4/3; }
  .principles div { grid-template-columns:1fr; gap:.25rem; padding:.9rem 0; }

  .outcome-list li { font-size:1.15rem; }
  .training-feature { padding:0; }
  .training-grid { grid-template-columns:1fr; }
  .training-copy { padding:58px 22px 42px; }
  .training-image { height:auto; aspect-ratio:4/3; }
  .training-image img { object-position:center 18%; }

  .field-row { grid-template-columns:1fr; }
  .contact { padding:68px 0; }
  .form-footer { align-items:stretch; flex-direction:column; }
  .footer-grid { grid-template-columns:1fr; gap:1.1rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation-duration:.01ms !important; transition-duration:.01ms !important; }
}

/* Strategic communications internal page */
.page-hero{padding:clamp(7.5rem,10vw,10rem) 0 clamp(4rem,7vw,6rem);background:var(--paper)}
.page-hero-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(340px,.95fr);gap:clamp(2.5rem,6vw,6rem);align-items:center}
.page-hero h1{max-width:780px}.page-hero-image{margin:0;min-height:500px;overflow:hidden}.page-hero-image img{width:100%;height:100%;min-height:500px;object-fit:cover}
.service-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 4rem;border-top:1px solid var(--line)}
.service-detail-grid article{padding:2.1rem 0 2.4rem;border-bottom:1px solid var(--line)}
.service-detail-grid h3{margin:0 0 .75rem;font-size:clamp(1.25rem,1.8vw,1.55rem)}
.service-detail-grid p{margin:0;color:var(--muted);line-height:1.7}
.section-paper{background:var(--paper)}
.section-tint{background:#e9eff0}
.section-blue{background:#17313a;color:#f6f3eb}
.section-blue .eyebrow,.section-blue p,.section-blue li{color:#dce6e7}
.section-blue h2{color:#fff}.section-blue .outcome-list li{border-color:rgba(255,255,255,.22)}
.site-nav a[aria-current="page"]{text-decoration:underline;text-underline-offset:.35rem}
@media(max-width:900px){.page-hero-grid{grid-template-columns:1fr}.page-hero-image,.page-hero-image img{min-height:360px}}
@media(max-width:700px){.service-detail-grid{grid-template-columns:1fr}.page-hero{padding-top:7rem}}

/* Verified section rhythm */
.proof-band {
  background:#17313a;
  color:#f6f3eb;
  border-color:rgba(255,255,255,.18);
}
.proof-band p { color:#dce6e7; }
.proof-band strong { color:#ffffff; }
.section-paper { background:var(--paper); color:var(--ink); }
.visual-story.section-tint {
  background:#e7e2d8;
  color:var(--ink);
}
.visual-story.section-tint .eyebrow { color:var(--accent); }
.visual-story.section-tint p { color:var(--muted); }
.visual-story.section-tint h2,
.visual-story.section-tint h3 { color:var(--ink); }
.visual-story.section-tint .principles > div { border-color:rgba(24,31,35,.18); }
.outcomes.section-blue {
  background:#17313a;
  color:#f6f3eb;
}
.outcomes.section-blue .eyebrow { color:#e0a17e; }
.outcomes.section-blue h2 { color:#ffffff; }
.outcomes.section-blue p,
.outcomes.section-blue li { color:#dce6e7; }
.outcomes.section-blue .outcome-list li { border-color:rgba(255,255,255,.22); }

/* Issues & Crisis page */
.issues-page { background:var(--paper); }
.issues-hero { background:#eef0ec; }
.issues-hero-image { min-height:520px; }
.issues-hero-image img { object-position:center 46%; }
.issues-proof { background:#112731; }
.issues-response { background:#d9d2c5; color:var(--ink); }
.issues-response-grid {
  display:grid; grid-template-columns:1.02fr .98fr;
  gap:clamp(48px,7vw,96px); align-items:center;
}
.issues-response-copy > p:not(.eyebrow) {
  max-width:650px; color:var(--muted); font-size:1.08rem;
}
.issues-principles { border-color:rgba(24,31,35,.20); }
.issues-principles div { border-color:rgba(24,31,35,.16); }
.issues-principles p { color:var(--muted); }
.issues-materials-image {
  margin:0; overflow:hidden; aspect-ratio:4/3;
  box-shadow:0 18px 45px rgba(17,39,49,.12);
}
.issues-materials-image img {
  width:100%; height:100%; object-fit:cover; object-position:center;
}
.issues-outcomes { background:#17313a; color:#f6f3eb; }
.issues-outcomes .eyebrow { color:#e0a17e; }
.issues-outcomes h2 { color:#fff; }
.issues-outcomes .outcome-list li {
  color:#dce6e7; border-color:rgba(255,255,255,.22);
}
@media(max-width:900px){
  .issues-response-grid { grid-template-columns:1fr; }
  .issues-materials-image { aspect-ratio:16/10; }
}
@media(max-width:700px){
  .issues-hero-image { min-height:0; }
  .issues-materials-image { aspect-ratio:4/3; }
}

/* Media Training page */
.media-page { background:var(--paper); }
.media-hero { background:#f5efe7; }
.media-hero-image img { object-position:center 48%; }
.media-proof { background:#7d3f2b; }
.media-session { background:#e6dfd3; color:var(--ink); }
.media-session-grid {
  display:grid; grid-template-columns:.95fr 1.05fr;
  gap:clamp(48px,7vw,96px); align-items:center;
}
.media-participants-image {
  margin:0; overflow:hidden; aspect-ratio:4/3;
  box-shadow:0 18px 45px rgba(45,34,28,.12);
}
.media-participants-image img {
  width:100%; height:100%; object-fit:cover; object-position:center;
}
.media-session-copy > p:not(.eyebrow) { color:var(--muted); font-size:1.08rem; }
.media-principles { border-color:rgba(24,31,35,.20); }
.media-principles div { border-color:rgba(24,31,35,.16); }
.media-principles p { color:var(--muted); }
.media-formats { background:#fff; }
.format-grid {
  display:grid; grid-template-columns:repeat(4,minmax(0,1fr));
  gap:0; border-top:1px solid var(--line); border-left:1px solid var(--line);
}
.format-grid article {
  padding:1.8rem; border-right:1px solid var(--line); border-bottom:1px solid var(--line);
}
.format-grid h3 { margin:0 0 .65rem; font-size:1.2rem; }
.format-grid p { margin:0; color:var(--muted); line-height:1.6; }
.media-outcomes { background:#213942; color:#f7f4ed; }
.media-outcomes .eyebrow { color:#dfaa87; }
.media-outcomes h2 { color:#fff; }
.media-outcomes .outcome-list li {
  color:#dbe6e8; border-color:rgba(255,255,255,.22);
}
@media(max-width:1000px){
  .format-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:900px){
  .media-session-grid { grid-template-columns:1fr; }
}
@media(max-width:700px){
  .format-grid { grid-template-columns:1fr; }
}

/* About page */
.about-page { background:var(--paper); }
.about-hero { background:#f3efe8; }
.about-hero-image img { object-position:center 42%; }
.about-proof { background:#18313a; }
.about-intro-grid {
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:clamp(48px,7vw,96px);
  align-items:start;
}
.about-intro-copy p {
  margin:0 0 1.2rem;
  color:var(--muted);
  font-size:1.08rem;
  line-height:1.75;
}
.about-experience { background:#e5dfd4; }
.experience-list { border-top:1px solid rgba(24,31,35,.18); }
.experience-list article {
  display:grid;
  grid-template-columns:60px 1fr;
  gap:1.5rem;
  padding:2rem 0;
  border-bottom:1px solid rgba(24,31,35,.16);
}
.experience-list h3 { margin:0 0 .65rem; }
.experience-list p { margin:0; color:var(--muted); max-width:780px; line-height:1.7; }
.about-proof-points { background:#fff; }
.about-fit { background:#213942; color:#f7f4ed; }
.about-fit-grid {
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:clamp(48px,7vw,96px);
}
.about-fit h2 { color:#fff; }
.about-fit p { color:#dbe6e8; font-size:1.08rem; line-height:1.75; margin:0 0 1rem; }
.about-fit .eyebrow { color:#dfaa87; }
@media(max-width:900px){
  .about-intro-grid,
  .about-fit-grid { grid-template-columns:1fr; }
}
@media(max-width:700px){
  .experience-list article { grid-template-columns:42px 1fr; }
}

/* About page alignment refinements */
.about-intro-grid {
  grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);
  align-items:start;
}
.about-intro-grid .section-heading {
  max-width:520px;
}
.about-intro-grid .section-heading h2 {
  max-width:500px;
  text-wrap:balance;
}
.about-intro-copy {
  padding-top:.25rem;
}
@media(max-width:900px){
  .about-intro-grid {
    grid-template-columns:1fr;
  }
  .about-intro-grid .section-heading,
  .about-intro-grid .section-heading h2 {
    max-width:none;
  }
  .about-intro-copy {
    padding-top:0;
  }
}

.service-architecture h3 a { color:inherit; text-decoration:none; }
.service-architecture .text-link { display:inline-flex; margin-top:1rem; }

/* Homepage v2 refinements */
body:not(.strategic-page):not(.issues-page):not(.media-page):not(.about-page) .hero {
  padding:58px 0 68px;
}
body:not(.strategic-page):not(.issues-page):not(.media-page):not(.about-page) .hero-grid {
  grid-template-columns:minmax(0,.96fr) minmax(480px,1.04fr);
  gap:clamp(38px,5vw,70px);
}
body:not(.strategic-page):not(.issues-page):not(.media-page):not(.about-page) .hero-copy {
  max-width:650px;
}
body:not(.strategic-page):not(.issues-page):not(.media-page):not(.about-page) .hero h1 {
  font-size:clamp(2.8rem,4.65vw,4.55rem);
  max-width:690px;
  line-height:1.06;
}
body:not(.strategic-page):not(.issues-page):not(.media-page):not(.about-page) .hero-image,
body:not(.strategic-page):not(.issues-page):not(.media-page):not(.about-page) .hero-image img {
  min-height:500px;
}
body:not(.strategic-page):not(.issues-page):not(.media-page):not(.about-page) .hero-image img {
  object-position:55% center;
}
body:not(.strategic-page):not(.issues-page):not(.media-page):not(.about-page) .section {
  padding:78px 0;
}
body:not(.strategic-page):not(.issues-page):not(.media-page):not(.about-page) h2 {
  font-size:clamp(2.1rem,3.45vw,3.65rem);
}
body:not(.strategic-page):not(.issues-page):not(.media-page):not(.about-page) .split-heading {
  gap:64px;
  margin-bottom:2.35rem;
}
.service-architecture article {
  grid-template-columns:54px minmax(250px,.72fr) minmax(300px,1fr);
  padding:1.3rem 0;
}
.service-architecture h3 a {
  text-decoration:none;
}
.service-architecture h3 a:hover,
.service-architecture h3 a:focus-visible {
  text-decoration:underline;
  text-underline-offset:.25rem;
}
.context-image {
  aspect-ratio:16/10;
}
.context-image img {
  object-position:center 48%;
}
.training-feature {
  padding-top:70px !important;
}
.training-grid {
  grid-template-columns:1fr 1fr;
}
.training-copy {
  padding:clamp(38px,5vw,68px);
}
.training-image {
  height:560px;
}
.training-image img {
  object-position:center 48%;
}
.about-grid {
  gap:72px;
}
body:not(.media-page) .media-proof {
  margin-top:1.45rem;
  padding:1.25rem 1.35rem;
  border:1px solid rgba(24,35,43,.16);
  border-left:4px solid var(--rust);
  background:#fffdf8;
  color:#27343b !important;
  line-height:1.68;
}
.contact {
  padding:80px 0;
}
.contact-grid {
  gap:76px;
}
@media(max-width:980px){
  body:not(.strategic-page):not(.issues-page):not(.media-page):not(.about-page) .hero-image,
  body:not(.strategic-page):not(.issues-page):not(.media-page):not(.about-page) .hero-image img {
    min-height:420px;
  }
  .service-architecture article {
    grid-template-columns:46px minmax(220px,.72fr) 1fr;
  }
  .training-image {
    height:500px;
  }
}
@media(max-width:760px){
  body:not(.strategic-page):not(.issues-page):not(.media-page):not(.about-page) .hero {
    padding:30px 0 48px;
  }
  body:not(.strategic-page):not(.issues-page):not(.media-page):not(.about-page) .hero h1 {
    font-size:clamp(2.45rem,10.8vw,3.55rem);
  }
  body:not(.strategic-page):not(.issues-page):not(.media-page):not(.about-page) .section {
    padding:56px 0;
  }
  .service-architecture article {
    grid-template-columns:38px 1fr;
  }
  .service-architecture article p {
    grid-column:2;
  }
  .training-feature {
    padding-top:0 !important;
  }
  .training-image {
    height:auto;
  }
}

/* Sitewide consistency pass based on Homepage v2 */
:root {
  --page-section-pad: 78px;
  --page-section-pad-mobile: 56px;
  --page-h1-max: 4.55rem;
  --page-h2-max: 3.65rem;
  --copy-max: 690px;
}

.page-hero {
  padding:58px 0 68px;
}
.page-hero-grid {
  grid-template-columns:minmax(0,.96fr) minmax(460px,1.04fr);
  gap:clamp(38px,5vw,70px);
}
.page-hero h1 {
  font-size:clamp(2.8rem,4.65vw,var(--page-h1-max));
  line-height:1.06;
  max-width:var(--copy-max);
}
.page-hero .lede {
  max-width:660px;
}
.page-hero .hero-detail {
  max-width:650px;
}
.page-hero-image {
  min-height:500px;
}
.page-hero-image img {
  min-height:500px;
}
.section {
  padding:var(--page-section-pad) 0;
}
.section h2,
.contact h2 {
  font-size:clamp(2.1rem,3.45vw,var(--page-h2-max));
  line-height:1.08;
}
.split-heading {
  gap:64px;
  margin-bottom:2.35rem;
}
.section-heading > p:last-child,
.split-heading > p {
  max-width:650px;
}
.service-detail-grid article {
  padding:1.55rem 0;
}
.service-detail-grid h3 {
  font-size:1.18rem;
  line-height:1.35;
}
.service-detail-grid p {
  line-height:1.65;
}
.principles > div {
  padding:1.25rem 0;
}
.outcome-list li {
  padding:1rem 0;
  line-height:1.5;
}
.proof-band {
  padding:1.15rem 0;
}
.proof-list {
  gap:28px;
}
.contact {
  padding:80px 0;
}
.contact-grid {
  gap:76px;
}
.contact-grid > div {
  max-width:620px;
}
.site-footer {
  padding:34px 0;
}

/* Page-specific density tuning */
.issues-response-grid,
.media-session-grid,
.about-intro-grid,
.about-fit-grid {
  gap:clamp(42px,6vw,82px);
}
.issues-materials-image,
.media-participants-image {
  max-height:540px;
}
.format-grid article {
  padding:1.5rem;
}
.experience-list article {
  padding:1.65rem 0;
}
.about-intro-copy p,
.about-fit p {
  font-size:1.04rem;
  line-height:1.68;
}

@media(max-width:980px) {
  .page-hero-image,
  .page-hero-image img {
    min-height:420px;
  }
}
@media(max-width:900px) {
  .page-hero-grid {
    grid-template-columns:1fr;
  }
}
@media(max-width:760px) {
  .page-hero {
    padding:30px 0 48px;
  }
  .page-hero h1 {
    font-size:clamp(2.45rem,10.8vw,3.55rem);
  }
  .page-hero-image,
  .page-hero-image img {
    min-height:0;
  }
  .section {
    padding:var(--page-section-pad-mobile) 0;
  }
  .split-heading {
    gap:24px;
    margin-bottom:1.8rem;
  }
  .contact {
    padding:58px 0;
  }
}

/* Heading-wrap and spacing audit */
.page-hero h1,
.section h2,
.contact h2 {
  text-wrap:balance;
}

/* Prevent isolated final words in page heroes */
.issues-page .page-hero-grid {
  grid-template-columns:minmax(0,1.06fr) minmax(430px,.94fr);
}
.issues-page .page-hero h1 {
  font-size:clamp(2.7rem,4.25vw,4.15rem);
  max-width:740px;
}

.media-page .page-hero-grid {
  grid-template-columns:minmax(0,1.02fr) minmax(430px,.98fr);
}
.media-page .page-hero h1 {
  font-size:clamp(2.7rem,4.25vw,4.15rem);
  max-width:720px;
}

.about-page .page-hero-grid {
  grid-template-columns:minmax(0,1.02fr) minmax(430px,.98fr);
}
.about-page .page-hero h1 {
  font-size:clamp(2.7rem,4.25vw,4.15rem);
  max-width:720px;
}

/* Keep major section headings from becoming narrow, tall stacks */
.split-heading > div,
.outcomes-grid > .section-heading,
.about-fit-grid > div:first-child {
  min-width:0;
}
.split-heading h2,
.outcomes-grid h2,
.about-fit-grid h2 {
  text-wrap:balance;
}

/* Consistent space between labels, headings and copy */
.section-heading .eyebrow,
.page-hero .eyebrow,
.contact .eyebrow {
  margin-bottom:.8rem;
}
.section-heading h2 + p,
.contact h2 + p {
  margin-top:1rem;
}
.page-hero h1 + .lede {
  margin-top:1.15rem;
}
.page-hero .lede + .hero-detail {
  margin-top:.9rem;
}

/* Proof-band readability */
.media-page .media-proof {
  background:#7d3f2b;
  color:#fff8f2;
  border-color:rgba(255,255,255,.2);
}
.media-page .media-proof p {
  color:#f4e8df;
}
.media-page .media-proof strong {
  color:#ffffff;
}

/* Slightly stronger body contrast in pale sections */
.section-paper p,
.about-experience p,
.media-formats p {
  color:#566267;
}

/* Avoid overly narrow contact headings */
.contact-grid > div {
  min-width:0;
}
.contact h2 {
  max-width:580px;
}

@media(max-width:900px){
  .issues-page .page-hero-grid,
  .media-page .page-hero-grid,
  .about-page .page-hero-grid {
    grid-template-columns:1fr;
  }
}

/* Conservative copy-strengthening layout adjustments */
.strategic-page #services .split-heading > div {
  max-width:620px;
}
.issues-page #needs .split-heading > div {
  max-width:690px;
}
.media-page #needs .split-heading > div {
  max-width:700px;
}
.strategic-page #services h2,
.issues-page #needs h2,
.media-page #needs h2 {
  font-size:clamp(2rem,3.1vw,3.3rem);
  text-wrap:balance;
}
@media(max-width:760px){
  .strategic-page #services h2,
  .issues-page #needs h2,
  .media-page #needs h2 {
    font-size:clamp(2rem,9vw,2.8rem);
  }
}

/* Simplified homepage */
.execution-strip {
  background:#17313a;
  color:#f7f4ed;
  padding:34px 0;
}
.execution-strip-grid {
  display:grid;
  grid-template-columns:minmax(220px,.55fr) minmax(0,1.45fr);
  gap:48px;
  align-items:center;
}
.execution-strip .eyebrow {
  margin:0;
  color:#dfaa87;
}
.execution-strip p:last-child {
  margin:0;
  max-width:860px;
  font-family:var(--serif);
  font-size:clamp(1.35rem,2vw,1.8rem);
  line-height:1.35;
  color:#fff;
}
.about-grid-with-image {
  display:grid;
  grid-template-columns:minmax(260px,.7fr) minmax(360px,.85fr) minmax(360px,1fr);
  gap:clamp(34px,4.5vw,64px);
  align-items:start;
}
.about-grid-with-image > div:first-child h2 {
  font-size:clamp(2rem,3vw,3.2rem);
}
.about-supporting-image {
  margin:0;
  overflow:hidden;
  aspect-ratio:4/3;
}
.about-supporting-image img {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 48%;
}
.about-grid-with-image .about-copy {
  align-self:start;
}
@media(max-width:1100px){
  .about-grid-with-image {
    grid-template-columns:.85fr 1.15fr;
  }
  .about-grid-with-image > div:first-child {
    grid-column:1 / -1;
  }
}
@media(max-width:760px){
  .execution-strip-grid {
    grid-template-columns:1fr;
    gap:12px;
  }
  .about-grid-with-image {
    grid-template-columns:1fr;
  }
  .about-grid-with-image > div:first-child {
    grid-column:auto;
  }
}

/* Production form utilities */
.form-honeypot {
  position:absolute !important;
  left:-10000px !important;
  width:1px !important;
  height:1px !important;
  overflow:hidden !important;
}
.success-page {
  min-height:100vh;
  display:flex;
  flex-direction:column;
}
.success-main {
  flex:1;
  display:grid;
  place-items:center;
  padding:80px 24px;
  background:#f3efe8;
}
.success-card {
  width:min(720px,100%);
  padding:clamp(34px,6vw,68px);
  background:#fff;
  border-top:4px solid var(--rust);
  box-shadow:0 18px 50px rgba(24,35,43,.10);
}
.success-card h1 {
  margin:0 0 1rem;
  font-size:clamp(2.3rem,5vw,4rem);
}
.success-card p {
  max-width:580px;
  color:var(--muted);
  line-height:1.7;
}


/* Mobile homepage emergency fix: keep image and copy in separate rows */
@media (max-width: 980px) {
  body:not(.strategic-page):not(.issues-page):not(.media-page):not(.about-page) .hero-grid {
    grid-template-columns: minmax(0, 1fr);
  }
  body:not(.strategic-page):not(.issues-page):not(.media-page):not(.about-page) .hero-copy,
  body:not(.strategic-page):not(.issues-page):not(.media-page):not(.about-page) .hero-image {
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }
}

@media (max-width: 760px) {
  body:not(.strategic-page):not(.issues-page):not(.media-page):not(.about-page) .hero-grid {
    display: flex;
    flex-direction: column;
    gap: 24px;
  }
  body:not(.strategic-page):not(.issues-page):not(.media-page):not(.about-page) .hero-copy {
    order: 1;
  }
  body:not(.strategic-page):not(.issues-page):not(.media-page):not(.about-page) .hero-image {
    order: 2;
    aspect-ratio: 16 / 10;
    min-height: 0;
  }
  body:not(.strategic-page):not(.issues-page):not(.media-page):not(.about-page) .hero-image img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 0;
    object-fit: cover;
    object-position: 50% center;
  }
  body:not(.strategic-page):not(.issues-page):not(.media-page):not(.about-page) .hero h1,
  body:not(.strategic-page):not(.issues-page):not(.media-page):not(.about-page) .hero .lede,
  body:not(.strategic-page):not(.issues-page):not(.media-page):not(.about-page) .hero .hero-detail {
    position: static;
    width: auto;
    max-width: 100%;
  }
  body:not(.strategic-page):not(.issues-page):not(.media-page):not(.about-page) .hero-actions {
    width: 100%;
  }
  body:not(.strategic-page):not(.issues-page):not(.media-page):not(.about-page) .hero-actions .button {
    width: 100%;
  }
}

/* Restrained typography and vertical-scale pass */
:root {
  --page-h1-max: 3.85rem;
  --page-h2-max: 3rem;
}

body:not(.strategic-page):not(.issues-page):not(.media-page):not(.about-page) .hero h1 {
  font-size:clamp(2.65rem,4.15vw,4.05rem);
  line-height:1.08;
}

.page-hero h1,
.issues-page .page-hero h1,
.media-page .page-hero h1,
.about-page .page-hero h1 {
  font-size:clamp(2.5rem,3.75vw,3.75rem);
  line-height:1.08;
}

.section h2 {
  font-size:clamp(1.95rem,2.8vw,2.9rem);
  line-height:1.12;
}

.contact h2 {
  font-size:clamp(1.9rem,2.65vw,2.65rem);
  line-height:1.13;
  max-width:540px;
}

.execution-strip p:last-child {
  font-size:clamp(1.2rem,1.65vw,1.55rem);
}

.about-grid-with-image > div:first-child h2 {
  font-size:clamp(1.95rem,2.65vw,2.75rem);
}

.success-card {
  width:min(680px,100%);
  padding:clamp(32px,5vw,56px);
}

.success-card h1 {
  font-size:clamp(2rem,3.6vw,3.15rem);
  line-height:1.08;
  text-wrap:balance;
}

.success-main {
  padding:64px 24px;
}

@media(max-width:760px) {
  body:not(.strategic-page):not(.issues-page):not(.media-page):not(.about-page) .hero h1 {
    font-size:clamp(2.25rem,9.4vw,3rem);
  }

  .page-hero h1,
  .issues-page .page-hero h1,
  .media-page .page-hero h1,
  .about-page .page-hero h1 {
    font-size:clamp(2.2rem,9vw,2.9rem);
  }

  .section h2 {
    font-size:clamp(1.8rem,7.8vw,2.35rem);
  }

  .contact h2 {
    font-size:clamp(1.8rem,7.5vw,2.25rem);
  }

  .success-card h1 {
    font-size:clamp(2rem,9vw,2.7rem);
  }
}

/* Final approved scale and responsive corrections */

/* Homepage experience section: wider, shorter and deliberately restrained */
.about-grid-with-image {
  grid-template-columns:minmax(245px,.82fr) minmax(300px,.92fr) minmax(340px,1.08fr);
  gap:clamp(32px,4.3vw,62px);
}

.about-grid-with-image > div:first-child h2 {
  max-width:430px;
  font-size:clamp(1.9rem,2.35vw,2.55rem);
  line-height:1.11;
  text-wrap:balance;
}

/* Keep long lower-page headings subordinate to the hero */
.contact h2 {
  max-width:500px;
  font-size:clamp(1.85rem,2.35vw,2.4rem);
  line-height:1.12;
  text-wrap:balance;
}

/* Utility pages should be clear, not theatrical */
.success-card h1 {
  max-width:560px;
  font-size:clamp(1.95rem,3.15vw,2.85rem);
  line-height:1.08;
}

/* Firefox/mobile safeguard: never layer hero text over the photograph */
@media (max-width:760px) {
  body:not(.strategic-page):not(.issues-page):not(.media-page):not(.about-page) .hero-grid {
    display:grid !important;
    grid-template-columns:minmax(0,1fr) !important;
    grid-template-areas:
      "copy"
      "image" !important;
    gap:28px !important;
  }

  body:not(.strategic-page):not(.issues-page):not(.media-page):not(.about-page) .hero-copy {
    grid-area:copy !important;
    position:relative !important;
    z-index:1 !important;
    max-width:none !important;
  }

  body:not(.strategic-page):not(.issues-page):not(.media-page):not(.about-page) .hero-image {
    grid-area:image !important;
    position:relative !important;
    inset:auto !important;
    width:100% !important;
    min-height:0 !important;
    aspect-ratio:16/10;
    overflow:hidden;
  }

  body:not(.strategic-page):not(.issues-page):not(.media-page):not(.about-page) .hero-image img {
    position:static !important;
    display:block !important;
    width:100% !important;
    height:100% !important;
    min-height:0 !important;
    object-fit:cover !important;
  }

  .about-grid-with-image {
    grid-template-columns:1fr;
  }

  .about-grid-with-image > div:first-child h2 {
    max-width:15ch;
    font-size:clamp(1.85rem,7.8vw,2.3rem);
  }

  .contact h2 {
    max-width:15ch;
    font-size:clamp(1.8rem,7.2vw,2.2rem);
  }
}
