:root {
  --navy: #152331;
  --cream: #F3EFE6;
  --brick: #9A493E;
  --clay: #BF8C7C;
  --charcoal: #242424;
  --paper: #FBF9F4;
  --muted: #6A6A63;
  --line: rgba(21, 35, 49, .18);
  --max: 1280px;
  --pad: clamp(22px, 4vw, 64px);
  --serif: "Source Serif 4", Georgia, serif;
  --sans: "Libre Franklin", Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--cream); color: var(--charcoal); font-family: var(--sans); font-size: 17px; line-height: 1.65; }
img { display: block; width: 100%; height: auto; }
a { color: inherit; }
.wrap { width: min(var(--max), calc(100% - (var(--pad) * 2))); margin-inline: auto; }
.section-space { padding-block: clamp(80px, 10vw, 150px); }
.education-section { border-top: 1px solid var(--line); padding-top: clamp(60px, 8vw, 110px); }
.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; z-index: 100; left: 16px; top: 16px; transform: translateY(-140%); background: var(--paper); color: var(--navy); padding: 10px 14px; }
.skip-link:focus { transform: none; }

.site-header { position: relative; z-index: 20; background: var(--cream); border-bottom: 1px solid var(--line); }
.header-inner { min-height: 108px; display: flex; align-items: center; justify-content: space-between; gap: 40px; }
.wordmark { text-decoration: none; color: var(--navy); display: inline-flex; flex-direction: column; gap: 3px; }
.wordmark span { font-family: var(--serif); font-size: clamp(25px, 2vw, 31px); line-height: 1; font-weight: 600; letter-spacing: -.02em; }
.wordmark small { font-size: 11px; font-weight: 500; letter-spacing: .01em; color: var(--muted); }
.site-nav { display: flex; align-items: center; gap: clamp(20px, 2.6vw, 38px); }
.site-nav a, .footer-nav a { text-decoration: none; font-size: 14px; font-weight: 600; letter-spacing: .005em; }
.site-nav a { position: relative; padding-block: 7px; }
.site-nav a::after { content: ""; position: absolute; left: 0; bottom: 0; height: 1px; width: 100%; background: var(--brick); transform: scaleX(0); transform-origin: right; transition: transform .22s ease; }
.site-nav a:hover::after, .site-nav a:focus-visible::after { transform: scaleX(1); transform-origin: left; }
.nav-toggle { display: none; border: 0; background: transparent; width: 42px; height: 42px; padding: 8px; }
.nav-toggle span:not(.sr-only) { display: block; height: 1px; background: var(--navy); margin: 7px 0; }

.hero { background: var(--cream); overflow: hidden; }
.hero-grid { min-height: min(820px, 78vh); display: grid; grid-template-columns: minmax(0, .95fr) minmax(440px, .8fr); align-items: stretch; }
.hero-copy { align-self: center; padding: clamp(70px, 9vw, 130px) clamp(20px, 4vw, 70px) clamp(80px, 8vw, 120px) 0; max-width: 740px; }
.eyebrow { margin: 0 0 23px; color: var(--brick); font-size: 13px; font-weight: 700; letter-spacing: .025em; text-transform: uppercase; }
.eyebrow.light { color: #D7B2A9; }
.hero h1, h2 { font-family: var(--serif); color: var(--navy); font-weight: 500; letter-spacing: -.035em; }
.hero h1 { font-size: clamp(64px, 7vw, 112px); line-height: .92; margin: 0 0 38px; text-wrap: balance; }
.hero-intro { font-size: clamp(19px, 1.7vw, 25px); line-height: 1.52; max-width: 700px; margin: 0; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 26px; margin-top: 38px; }
.text-link { display: inline-flex; gap: 8px; align-items: center; text-decoration: none; border-bottom: 1px solid currentColor; padding-bottom: 3px; font-size: 15px; }
.text-link.strong { color: var(--brick); font-weight: 700; }
.text-link span { transition: transform .2s ease; }
.text-link:hover span { transform: translateX(4px); }
.hero-portrait { position: relative; min-height: 680px; background: var(--navy); overflow: hidden; }
.hero-portrait::before { content: ""; position: absolute; left: 0; top: 13%; width: 6px; height: 33%; background: var(--brick); z-index: 3; }
.hero-portrait img { position: absolute; z-index: 2; width: 113%; max-width: none; right: -7%; bottom: -1px; }
.terrain-lines { position: absolute; inset: 0; opacity: .17; background-image: url("data:image/svg+xml,%3Csvg width='620' height='620' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='%23F3EFE6' stroke-width='1'%3E%3Cpath d='M-20 145 C95 30 175 258 292 139 S475 30 660 165'/%3E%3Cpath d='M-40 208 C67 82 176 324 307 199 S496 93 668 223'/%3E%3Cpath d='M-5 292 C112 168 185 397 330 275 S505 164 655 304'/%3E%3Cpath d='M-60 384 C55 245 197 490 345 362 S529 252 688 402'/%3E%3Cpath d='M-11 482 C123 350 230 573 381 452 S548 349 675 493'/%3E%3C/g%3E%3C/svg%3E"); background-size: 620px 620px; }
.portrait-note { position: absolute; z-index: 4; right: 25px; bottom: 24px; margin: 0; color: var(--cream); font-size: 12px; line-height: 1.45; text-align: right; }
.portrait-note span { color: #D7B2A9; }

.intro-grid { display: grid; grid-template-columns: 70px minmax(0, 1.05fr) minmax(330px, .75fr); gap: clamp(28px, 5vw, 80px); align-items: start; }
.section-number { margin: 7px 0 0; font-size: 12px; color: var(--brick); font-variant-numeric: tabular-nums; }
h2 { font-size: clamp(43px, 5vw, 72px); line-height: 1.02; margin: 0; }
.intro-copy p:first-child { margin-top: 5px; font-size: 20px; line-height: 1.55; }
.intro-copy p { margin: 0 0 24px; }

.credentials { border-block: 1px solid var(--line); background: rgba(255,255,255,.18); }
.credentials-row { display: grid; grid-template-columns: repeat(4, 1fr); }
.credentials-row div { padding: 35px 28px; min-height: 142px; border-right: 1px solid var(--line); }
.credentials-row div:first-child { padding-left: 0; }
.credentials-row div:last-child { border-right: 0; }
.credentials-row strong { display: block; font-family: var(--serif); color: var(--navy); font-size: 32px; line-height: 1; font-weight: 500; letter-spacing: -.02em; margin-bottom: 10px; }
.credentials-row span { display: block; font-size: 13px; line-height: 1.45; color: var(--muted); }

.field-section { position: relative; min-height: 800px; background: var(--navy); color: var(--cream); overflow: hidden; }
.field-image { position: absolute; inset: 0 41% 0 0; }
.field-image::after { content: ""; position: absolute; inset: 0; background: rgba(21,35,49,.15); }
.field-image img { height: 100%; object-fit: cover; object-position: center; }
.field-copy-wrap { min-height: 800px; display: flex; justify-content: flex-end; align-items: center; }
.field-copy { width: 48%; padding: 90px 0 90px 7%; }
.field-copy h2, .qna-section h2 { color: var(--cream); }
.field-copy p { font-size: 18px; }
.field-copy blockquote { font-family: var(--serif); font-size: clamp(27px, 2.7vw, 40px); line-height: 1.2; margin: 38px 0; color: #E7D6D1; }
.light-link { color: var(--cream); }

.book-grid { display: grid; grid-template-columns: minmax(280px, .62fr) minmax(0, 1.1fr); gap: clamp(60px, 10vw, 150px); align-items: center; }
.book-cover-wrap { padding-left: 9%; }
.book-cover-wrap img { max-width: 430px; box-shadow: 0 30px 65px rgba(21,35,49,.17); }
.book-copy { max-width: 720px; }
.book-copy h2 { font-size: clamp(54px, 6vw, 86px); }
.book-sub { font-family: var(--serif); color: var(--brick); font-size: 26px; margin: 7px 0 32px; }
.book-copy > p:not(.eyebrow):not(.book-sub) { font-size: 19px; }
.award-line { padding-top: 18px; border-top: 1px solid var(--line); color: var(--muted); }
.book-quote { font-family: var(--serif); color: var(--navy); font-size: 27px; line-height: 1.35; margin: 38px 0; }
.book-quote cite { display: block; font-family: var(--sans); font-size: 12px; color: var(--brick); font-style: normal; margin-top: 13px; }

.media-tease { background: var(--paper); }
.media-layout { display: grid; grid-template-columns: .82fr 1.18fr; grid-template-rows: auto auto; gap: 28px 60px; align-items: start; }
.media-heading { grid-row: 1 / span 2; padding-top: 20px; max-width: 520px; }
.media-heading h2 { margin-bottom: 28px; }
.media-heading p:not(.eyebrow) { font-size: 18px; margin-bottom: 30px; }
.media-image { margin: 0; }
.media-image img { object-fit: cover; }
.media-image-large img { aspect-ratio: 16/10; object-position: center 35%; }
.media-image-small { width: 57%; margin-left: auto; }
.media-image-small img { aspect-ratio: 4/3; object-fit: cover; }
.media-image figcaption { font-size: 11px; color: var(--muted); margin-top: 9px; }

.qna-section { background: var(--brick); color: var(--cream); padding-block: clamp(80px, 9vw, 130px); }
.qna-grid { display: grid; grid-template-columns: 1.2fr .68fr; gap: clamp(60px, 9vw, 140px); align-items: end; }
.qna-section h2 { font-size: clamp(48px, 5.5vw, 80px); }
.qna-answer { font-size: 19px; padding-bottom: 10px; }
.qna-answer p { margin-top: 0; }

.closing-grid { display: grid; grid-template-columns: .85fr .95fr; gap: clamp(50px, 8vw, 120px); align-items: center; }
.closing-grid figure { margin: 0; }
.closing-grid figure img { aspect-ratio: 3/2; object-fit: cover; }
.closing-grid h2 { margin-bottom: 25px; }
.closing-grid p:not(.eyebrow) { max-width: 610px; font-size: 19px; }
.contact-link { display: inline-flex; align-items: center; gap: 16px; margin-top: 18px; color: var(--navy); font-family: var(--serif); font-size: 30px; text-decoration: none; }
.contact-link span { color: var(--brick); transition: transform .2s ease; }
.contact-link:hover span { transform: translateX(5px); }

.site-footer { background: var(--navy); color: var(--cream); padding: 70px 0 30px; }
.footer-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 50px; padding-bottom: 55px; border-bottom: 1px solid rgba(243,239,230,.22); }
.footer-name { display: flex; flex-direction: column; gap: 6px; }
.footer-name strong { font-family: var(--serif); font-size: 30px; font-weight: 500; letter-spacing: -.02em; }
.footer-name span { font-size: 12px; color: rgba(243,239,230,.67); }
.footer-nav { display: flex; flex-wrap: wrap; gap: 24px; }
.footer-nav a { color: rgba(243,239,230,.85); }
.footer-bottom { display: flex; justify-content: space-between; align-items: center; gap: 30px; padding-top: 25px; }
.socials { display: flex; gap: 14px; }
.socials a { width: 29px; height: 29px; display: grid; place-items: center; color: var(--brick); transition: color .18s ease; }
.socials a:hover, .socials a:focus-visible { color: var(--cream); }
.socials svg { width: 17px; height: 17px; fill: currentColor; }
.legal-links { display: flex; gap: 22px; align-items: center; font-size: 11px; color: rgba(243,239,230,.6); }
.legal-links a { color: inherit; text-decoration: none; }

@media (max-width: 1000px) {
  .header-inner { min-height: 88px; }
  .nav-toggle { display: block; }
  .site-nav { position: absolute; top: 88px; left: 0; right: 0; display: none; background: var(--cream); border-bottom: 1px solid var(--line); padding: 26px var(--pad) 32px; flex-direction: column; align-items: flex-start; gap: 18px; }
  .site-nav.is-open { display: flex; }
  .hero-grid { grid-template-columns: 1fr; }
  .hero-copy { padding-right: 0; }
  .hero-portrait { min-height: 650px; margin-inline: calc(var(--pad) * -1); }
  .hero-portrait img { width: min(850px, 115%); right: -3%; }
  .intro-grid { grid-template-columns: 40px 1fr; }
  .intro-copy { grid-column: 2; }
  .credentials-row { grid-template-columns: repeat(2, 1fr); }
  .credentials-row div:nth-child(2) { border-right: 0; }
  .credentials-row div:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .field-image { inset: 0 0 45% 0; }
  .field-copy-wrap { min-height: 940px; align-items: flex-end; }
  .field-copy { width: 100%; padding: 80px 0 60px; }
  .book-grid, .closing-grid { grid-template-columns: 1fr; }
  .book-cover-wrap { padding-left: 0; }
  .book-cover-wrap img { max-width: 360px; }
  .media-layout { grid-template-columns: 1fr; }
  .media-heading { grid-row: auto; max-width: 680px; }
  .media-image-small { width: 60%; }
  .qna-grid { grid-template-columns: 1fr; gap: 45px; }
}

@media (max-width: 650px) {
  body { font-size: 16px; }
  .wordmark small { display: none; }
  .hero-grid { min-height: 0; }
  .hero-copy { padding-top: 70px; padding-bottom: 70px; }
  .hero h1 { font-size: clamp(58px, 18vw, 84px); }
  .hero-intro { font-size: 18px; }
  .hero-portrait { min-height: 500px; }
  .hero-portrait img { width: 128%; right: -14%; }
  .portrait-note { left: 22px; right: auto; text-align: left; }
  .intro-grid { grid-template-columns: 1fr; }
  .section-number { display: none; }
  .intro-copy { grid-column: auto; }
  .credentials-row { grid-template-columns: 1fr 1fr; }
  .credentials-row div { padding: 25px 18px; min-height: 125px; }
  .credentials-row div:first-child { padding-left: 18px; }
  .credentials-row strong { font-size: 27px; }
  .field-section, .field-copy-wrap { min-height: 860px; }
  .field-image { inset: 0 0 48% 0; }
  .field-copy { padding-top: 55px; }
  .book-cover-wrap img { max-width: 280px; margin-inline: auto; }
  .media-image-small { width: 78%; }
  .footer-top { flex-direction: column; }
  .footer-nav { flex-direction: column; gap: 12px; }
  .footer-bottom { align-items: flex-start; flex-direction: column; }
  .legal-links { flex-direction: column; align-items: flex-start; gap: 7px; }
}

/* V02 refinements */
.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
}

.site-nav a {
  padding: 9px 10px;
  transition: color .18s ease, background-color .18s ease, font-weight .18s ease;
}
.site-nav a::after { display: none; }
.site-nav a:hover,
.site-nav a:focus-visible {
  color: var(--brick);
  background: rgba(154, 73, 62, .08);
  font-weight: 700;
  outline: none;
}

.hero-composite {
  position: relative;
  min-height: clamp(650px, 75vh, 820px);
  background: var(--cream);
  overflow: hidden;
}
.hero-background {
  position: absolute;
  inset: 0;
  background: url("../images/hero-background.jpg") center 44% / cover no-repeat;
  filter: saturate(.8);
}
.hero-wash {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg,
    rgba(243,239,230,.95) 0%,
    rgba(243,239,230,.88) 34%,
    rgba(243,239,230,.62) 59%,
    rgba(243,239,230,.42) 100%);
}
.hero-composite-inner {
  position: relative;
  min-height: clamp(650px, 75vh, 820px);
  display: flex;
  align-items: center;
}
.hero-composite .hero-copy {
  position: relative;
  z-index: 3;
  width: min(62%, 780px);
  max-width: 780px;
  padding: 78px 0 90px;
}
.hero-kicker {
  margin: 0 0 24px;
  color: var(--brick);
  font-size: 15px;
  font-weight: 700;
  letter-spacing: .005em;
}
.hero-composite h1 {
  font-size: clamp(62px, 6.5vw, 104px);
  line-height: .96;
  max-width: 860px;
  margin-bottom: 32px;
}
.hero-composite .hero-intro {
  max-width: 660px;
  color: var(--charcoal);
  font-size: clamp(18px, 1.45vw, 22px);
}
.hero-cutout {
  position: absolute;
  z-index: 2;
  right: max(-22px, calc((100vw - var(--max)) / 2 - 22px));
  bottom: 0;
  width: min(39vw, 610px);
  max-height: 91%;
  object-fit: contain;
  object-position: bottom right;
}

.intro-grid {
  grid-template-columns: minmax(0, 1.08fr) minmax(330px, .78fr);
  gap: clamp(55px, 8vw, 125px);
}
.intro-copy { grid-column: auto; }

.field-section {
  min-height: 0;
  overflow: visible;
}
.field-grid {
  display: grid;
  grid-template-columns: minmax(0, 58%) minmax(360px, 42%);
  min-height: 760px;
  background: var(--navy);
}
.field-image {
  position: relative;
  inset: auto;
  min-height: 760px;
}
.field-image::after {
  background: rgba(21,35,49,.08);
}
.field-image img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 35%;
}
.field-copy-panel {
  display: flex;
  align-items: center;
  background: var(--navy);
  min-width: 0;
}
.field-copy {
  width: auto;
  padding: 88px clamp(45px, 6vw, 90px);
}
.field-copy h2 {
  font-size: clamp(46px, 4.5vw, 72px);
}

.media-layout-single {
  grid-template-columns: .8fr 1.2fr;
  grid-template-rows: auto;
  gap: clamp(50px, 7vw, 105px);
  align-items: center;
}
.media-layout-single .media-heading {
  grid-row: auto;
  padding-top: 0;
}
.media-layout-single .media-image-large img {
  aspect-ratio: 16 / 10;
}

@media (max-width: 1000px) {
  .hero-composite,
  .hero-composite-inner { min-height: 720px; }
  .hero-composite .hero-copy { width: 68%; padding-top: 70px; }
  .hero-cutout { width: min(48vw, 520px); right: -45px; }
  .intro-grid { grid-template-columns: 1fr 1fr; }
  .field-grid { grid-template-columns: 1fr; min-height: 0; }
  .field-image { min-height: 560px; }
  .field-copy-panel { min-height: 0; }
  .field-copy { padding: 70px var(--pad); }
  .media-layout-single { grid-template-columns: 1fr; }
}

@media (max-width: 650px) {
  .site-header { position: sticky; }
  .site-nav a { padding-inline: 0; }
  .site-nav a:hover,
  .site-nav a:focus-visible { background: transparent; }
  .hero-composite,
  .hero-composite-inner { min-height: 690px; }
  .hero-background { background-position: 44% center; }
  .hero-wash {
    background: linear-gradient(180deg,
      rgba(243,239,230,.96) 0%,
      rgba(243,239,230,.90) 52%,
      rgba(243,239,230,.52) 100%);
  }
  .hero-composite-inner { align-items: flex-start; }
  .hero-composite .hero-copy {
    width: 100%;
    padding: 58px 0 320px;
  }
  .hero-kicker { font-size: 13px; }
  .hero-composite h1 { font-size: clamp(49px, 13.5vw, 68px); }
  .hero-composite .hero-intro { font-size: 17px; max-width: 100%; }
  .hero-cutout {
    width: min(84vw, 430px);
    max-height: 47%;
    right: -42px;
  }
  .intro-grid { grid-template-columns: 1fr; }
  .field-image { min-height: 420px; }
  .field-copy { padding: 58px var(--pad) 65px; }
  .media-layout-single { gap: 42px; }
}

/* V03 hero composition only */
.hero-background {
  background-position: left 44%;
  filter: saturate(.9);
}
.hero-wash {
  background: linear-gradient(90deg,
    rgba(243,239,230,.78) 0%,
    rgba(243,239,230,.66) 31%,
    rgba(243,239,230,.34) 55%,
    rgba(243,239,230,.16) 100%);
}
.hero-cutout {
  height: min(94%, 760px);
  width: auto;
  max-width: none;
  max-height: none;
  right: max(-32px, calc((100vw - var(--max)) / 2 - 72px));
  bottom: 0;
  object-fit: contain;
  object-position: bottom right;
}

@media (max-width: 1000px) {
  .hero-background { background-position: left 44%; }
  .hero-cutout {
    height: 78%;
    width: auto;
    right: -70px;
    bottom: 0;
  }
}

@media (max-width: 650px) {
  .hero-background {
    background-position: left center;
    filter: saturate(.92);
  }
  .hero-wash {
    background:
      linear-gradient(180deg,
        rgba(243,239,230,.86) 0%,
        rgba(243,239,230,.72) 42%,
        rgba(243,239,230,.27) 72%,
        rgba(243,239,230,.12) 100%),
      linear-gradient(90deg,
        rgba(243,239,230,.40) 0%,
        rgba(243,239,230,.10) 70%,
        rgba(243,239,230,0) 100%);
  }
  .hero-composite .hero-copy {
    padding-bottom: 355px;
  }
  .hero-cutout {
    height: 53%;
    width: auto;
    right: -78px;
    bottom: -1px;
  }
}

/* V04 hero and introduction composition */
.hero-background {
  background-position: right 44%;
}

/* Homepage hero: Embassy photo, Kevin on the right */
.hero-background { background-image: url("../images/hero-embassy.jpg"); background-position: right 30%; }
@media (max-width: 1000px) {
  .hero-background { background-position: 85% 30%; }
}
@media (max-width: 650px) {
  .hero-background { background-size: auto 128%; background-position: 92% 100%; }
}
.hero-wash {
  background: linear-gradient(90deg,
    rgba(243,239,230,.88) 0%,
    rgba(243,239,230,.76) 30%,
    rgba(243,239,230,.42) 54%,
    rgba(243,239,230,.14) 100%);
}
.hero-composite .hero-copy {
  width: min(58%, 760px);
}

.qna-section {
  position: relative;
  min-height: clamp(450px, 42vw, 660px);
}
.qna-grid {
  grid-template-columns: minmax(280px, 520px) 1fr;
  gap: clamp(40px, 5vw, 90px);
  align-items: start;
}
.qna-heading { grid-column: 1; grid-row: 1; }
.qna-answer { grid-column: 1; grid-row: 2; }
.qna-section h2 {
  font-size: clamp(34px, 3.4vw, 50px);
}
.qna-portrait {
  position: absolute;
  top: clamp(14px, 1.6vw, 30px);
  bottom: -90px;
  right: max(-32px, calc((100vw - var(--max)) / 2 - 72px));
  margin: 0;
  width: auto;
  min-height: 0;
  z-index: 2;
}
.qna-portrait img {
  width: auto;
  height: 100%;
  max-width: none;
  object-fit: contain;
  object-position: top;
  display: block;
}

@media (max-width: 1100px) and (min-width: 651px) {
  .qna-section { min-height: 0; }
  .qna-grid {
    grid-template-columns: minmax(0, 1fr) minmax(220px, .5fr);
    gap: 40px;
    align-items: start;
    max-width: none;
  }
  .qna-heading,
  .qna-answer {
    grid-column: 1;
  }
  .qna-heading { grid-row: 1; }
  .qna-answer { grid-row: 2; }
  .qna-portrait {
    position: static;
    grid-column: 2;
    grid-row: 1 / span 2;
    display: flex;
    justify-content: flex-end;
  }
  .qna-portrait img {
    width: 100%;
    max-width: 280px;
    height: auto;
  }
}

@media (max-width: 650px) {
  .qna-section { min-height: 0; }
  .qna-grid {
    grid-template-columns: 1fr;
    gap: 30px;
    align-items: start;
    max-width: none;
  }
  .qna-heading {
    grid-column: 1;
    grid-row: 1;
  }
  .qna-portrait {
    position: static;
    grid-column: 1;
    grid-row: 2;
    display: flex;
    justify-content: center;
  }
  .qna-portrait img {
    width: 100%;
    max-width: 260px;
    height: auto;
  }
  .qna-answer {
    grid-column: 1;
    grid-row: 3;
  }
}

.intro-with-portrait {
  position: relative;
}
.intro-with-portrait .intro-grid {
  grid-template-columns: minmax(280px, .8fr) minmax(320px, .95fr) minmax(300px, .82fr);
  gap: clamp(40px, 5vw, 90px);
  align-items: start;
}
.intro-with-portrait .intro-heading,
.intro-with-portrait .intro-copy {
  padding-top: 0;
}
.intro-with-portrait .intro-copy p:first-child {
  margin-top: 0;
}
.intro-with-portrait .intro-portrait {
  margin: 0;
  display: flex;
  justify-content: flex-start;
}
.intro-with-portrait .intro-portrait img {
  width: 100%;
  max-width: 440px;
  height: auto;
  object-fit: contain;
  object-position: top;
}

@media (max-width: 1100px) and (min-width: 651px) {
  .intro-with-portrait .intro-grid {
    grid-template-columns: minmax(0, 1fr) minmax(260px, .55fr);
    gap: 45px;
  }
  .intro-with-portrait .intro-heading,
  .intro-with-portrait .intro-copy {
    grid-column: 1;
  }
  .intro-with-portrait .intro-heading { grid-row: 1; }
  .intro-with-portrait .intro-copy { grid-row: 2; }
  .intro-with-portrait .intro-portrait {
    grid-column: 2;
    grid-row: 1 / span 2;
    justify-content: flex-end;
  }
  .intro-with-portrait .intro-portrait img {
    max-width: 340px;
  }
}

@media (max-width: 650px) {
  .intro-with-portrait .intro-grid {
    grid-template-columns: 1fr;
    gap: 30px;
  }
  .intro-with-portrait .intro-heading {
    grid-column: 1;
    grid-row: 1;
  }
  .intro-with-portrait .intro-portrait {
    grid-column: 1;
    grid-row: 2;
    justify-content: center;
  }
  .intro-with-portrait .intro-portrait img {
    max-width: 300px;
  }
  .intro-with-portrait .intro-copy {
    grid-column: 1;
    grid-row: 3;
  }
}
/* Complete site inner-page system */
.site-nav a.is-active { color: var(--brick); font-weight: 700; background: rgba(154,73,62,.07); }
.inner-page main { background: var(--cream); }
.page-hero { position: relative; overflow: hidden; background: var(--paper); }
.page-hero-grid { min-height: 620px; display: grid; grid-template-columns: minmax(0,.9fr) minmax(420px,1.1fr); gap: clamp(60px,8vw,130px); align-items: center; }
.page-hero-grid > div { padding-block: 90px; }
.page-hero h1 { font-family: var(--serif); font-weight: 500; letter-spacing: -.035em; color: var(--navy); font-size: clamp(64px,7vw,108px); line-height: .95; max-width: 850px; }
.page-lead { font-size: clamp(19px,1.6vw,24px); line-height: 1.55; max-width: 760px; color: #3d3d38; }
.page-hero-image { margin: 0; align-self: stretch; min-height: 620px; }
.page-hero-image img { width: 100%; height: 100%; object-fit: cover; }
.page-hero-about .page-hero-grid { align-items: start; position: relative; }
.page-hero-about .page-hero-image {
  position: absolute;
  top: 46px;
  bottom: 0;
  right: 0;
  margin: 0;
  min-height: 0;
}
.page-hero-about .page-hero-image img {
  width: auto;
  height: 100%;
  max-width: 100%;
  object-fit: contain;
  object-position: top right;
}

@media (max-width: 1000px) {
  .page-hero-about .page-hero-grid { position: static; }
  .page-hero-about .page-hero-image {
    position: static;
    height: auto;
  }
  .page-hero-about .page-hero-image img {
    width: 100%;
    height: auto;
  }
}

.page-hero-simple { padding-block: clamp(100px,12vw,175px); }
.narrow-hero h1 { max-width: 970px; }
.narrow-hero .page-lead { max-width: 820px; }
.prose-split { display:grid; grid-template-columns:minmax(280px,.65fr) minmax(0,1.15fr); gap:clamp(70px,10vw,160px); align-items:start; }
.prose-split h2 { max-width:520px; }
.rich-copy { max-width:770px; font-size:19px; line-height:1.72; }
.rich-copy p:first-child { margin-top:0; }
.rich-copy strong { font-weight: 600; color: var(--navy); }
.career-section, .awards-band, .documentary-band { background:var(--navy); color:var(--cream); }
.cta-band { background:var(--brick); color:var(--cream); }
.section-heading-row { display:flex; justify-content:space-between; gap:70px; align-items:end; margin-bottom:60px; }
.section-heading-row h2 { color:var(--cream); max-width:800px; }
.section-heading-row.dark-text h2 { color:var(--navy); }
.section-intro { max-width:430px; font-size:17px; }
.career-section .section-intro { max-width: 620px; }
.light-copy { color:rgba(243,239,230,.72); }
.timeline { list-style:none; padding:0; margin:70px 0 0; border-top:1px solid rgba(243,239,230,.25); }
.timeline li { display:grid; grid-template-columns:170px 1fr; gap:45px; padding:32px 0; border-bottom:1px solid rgba(243,239,230,.22); }
.timeline-year { font-family:var(--serif); font-size:31px; color:#e2c6be; }
.timeline h3 { font-family:var(--serif); font-weight:500; letter-spacing:-.01em; color:var(--cream); font-size:22px; margin:0 0 7px; }
.timeline p { color:rgba(243,239,230,.74); margin:0; max-width:680px; }
.expertise-layout { display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(70px,10vw,150px); }
.expertise-list { border-top:1px solid var(--line); }
.expertise-list div { padding:20px 0; border-bottom:1px solid var(--line); font-size:18px; }
.awards-band { padding-block:clamp(90px,10vw,145px); }
.awards-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(70px,10vw,150px); }
.awards-grid h2 { color:var(--cream); }
.award-photo { margin:34px 0 0; max-width:380px; }
.award-photo img { width:100%; aspect-ratio:4/3; object-fit:cover; display:block; }
.inline-photo { margin:28px 0 30px; max-width:380px; }
.inline-photo img { width:100%; aspect-ratio:4/3; object-fit:cover; display:block; }
@media (max-width:650px) {
  .inline-photo { max-width:100%; }
}
.photo-align-right { object-position: 78% center; }

@media (max-width:650px) {
  .award-photo { max-width:100%; }
}

.award-list p { margin:0; padding:18px 0; border-bottom:1px solid rgba(243,239,230,.2); font-size:17px; }
.qanda-page-grid { display:grid; grid-template-columns:.58fr 1.1fr; gap:clamp(70px,9vw,145px); }
.muted-note { color:var(--muted); }
.qanda-list { border-top:1px solid var(--line); }
.qanda-list details { border-bottom:1px solid var(--line); padding:0; }
.qanda-list summary { cursor:pointer; list-style:none; font-family:var(--serif); color:var(--navy); font-size:clamp(24px,2.2vw,34px); line-height:1.2; padding:28px 50px 28px 0; position:relative; }
.qanda-list summary::-webkit-details-marker { display:none; }
.qanda-list summary::after { content:'+'; position:absolute; right:4px; top:25px; color:var(--brick); font-family:var(--sans); font-size:25px; }
.qanda-list details[open] summary::after { content:'−'; }
.qanda-list details p { padding:0 60px 28px 0; color:var(--muted); }
.image-quote-section { display:grid; grid-template-columns:1.15fr .85fr; background:var(--brick); color:var(--cream); min-height:560px; }
.image-quote-section figure { margin:0; }
.image-quote-section img { width:100%; height:100%; object-fit:cover; }
.image-quote-section blockquote { align-self:center; font-family:var(--serif); font-size:clamp(35px,4vw,62px); line-height:1.08; margin:0; padding:70px clamp(50px,7vw,110px); }
.book-detail-grid { display:grid; grid-template-columns:minmax(270px,.55fr) minmax(0,1.1fr); gap:clamp(70px,10vw,150px); align-items:center; }
.book-detail-grid.reverse .book-detail-cover { order:2; }
.book-detail-grid.reverse .book-detail-copy { order:1; }
.book-detail-cover { margin:0; text-align:center; }
.book-detail-cover img { max-width:430px; max-height:650px; object-fit:contain; filter:drop-shadow(0 28px 34px rgba(21,35,49,.16)); }
.book-detail-cover .cover-front { display:block; width:100%; max-width:340px; height:auto; margin:0 auto 90px; }
.book-detail-copy { max-width:760px; }
.book-detail-copy h2 { font-size:clamp(54px,6vw,86px); }
.book-detail-copy h3 { font-family:var(--sans); font-size:14px; color:var(--brick); margin-top:34px; text-transform:uppercase; letter-spacing:.02em; }
.clean-list { padding:0; margin:0; list-style:none; border-top:1px solid var(--line); }
.clean-list li { border-bottom:1px solid var(--line); padding:12px 0; }
.feature-quote { font-family:var(--serif); color:var(--navy); font-size:clamp(25px,2.4vw,34px); line-height:1.3; margin:36px 0; }
.award-photos { display:grid; grid-template-columns:1fr 1fr; gap:20px; margin:30px 0 6px; max-width:420px; }
.award-photos figure { margin:0; }
.award-photos img { width:100%; aspect-ratio:4/3; object-fit:cover; display:block; }

.photo-trigger {
  all: unset;
  display: block;
  width: 100%;
  cursor: zoom-in;
  position: relative;
}
.photo-trigger:focus-visible { outline: 2px solid var(--brick); outline-offset: 3px; }
.photo-trigger::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(21,35,49,0);
  transition: background .18s ease;
}
.photo-trigger:hover::after { background: rgba(21,35,49,.12); }

.lightbox {
  border: 0;
  padding: 0;
  background: transparent;
  max-width: min(90vw, 1100px);
  max-height: 88vh;
}
.lightbox::backdrop { background: rgba(15,20,26,.88); }
.lightbox-inner { position: relative; }
.lightbox-img { display:block; width:100%; height:100%; max-height:88vh; object-fit:contain; }
.lightbox-close {
  all: unset;
  box-sizing: border-box;
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 2;
  color: var(--cream);
  background: rgba(15,20,26,.72);
  border-radius: 50%;
  cursor: pointer;
  padding: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.lightbox-close svg { width: 22px; height: 22px; display: block; }
.lightbox-close:hover { background: rgba(15,20,26,.9); }
.lightbox-close:focus-visible { outline: 2px solid var(--cream); outline-offset: 2px; }

@media (max-width:650px) {
  .award-photos { grid-template-columns:1fr; max-width:320px; }
}

.feature-quote cite { display:block; font-family:var(--sans); font-style:normal; color:var(--brick); font-size:12px; margin-top:12px; }
.link-row { display:flex; flex-wrap:wrap; gap:18px 28px; }
.review-band { background:var(--brick); color:var(--cream); padding-block:80px; }
.review-grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(50px,8vw,120px); }
.review-grid blockquote { font-family:var(--serif); font-size:clamp(27px,3vw,43px); line-height:1.18; margin:0; }
.review-grid cite { display:block; font-family:var(--sans); font-style:normal; font-size:12px; margin-top:15px; opacity:.75; }
.review-grid .lead-review { grid-column:1 / -1; position:relative; background:var(--cream); color:var(--navy); padding:clamp(34px,5vw,64px) clamp(26px,5vw,72px); border-top:6px solid var(--navy); }
.review-grid .lead-review p { position:relative; margin:0; font-size:clamp(23px,2.5vw,34px); line-height:1.3; }
.review-grid .lead-review cite { color:var(--brick); opacity:1; font-weight:700; letter-spacing:.04em; font-size:13px; margin-top:24px; }
.review-grid .lead-review cite em { font-weight:400; }
.review-grid .review-photo { grid-column:1 / -1; display:grid; grid-template-columns:minmax(0,300px) 1fr; gap:clamp(28px,5vw,64px); align-items:center; margin:30px 0 0; padding-top:clamp(40px,6vw,70px); border-top:1px solid rgba(243,239,230,.3); }
.review-grid .review-photo img { width:100%; height:auto; }
.review-grid .review-photo figcaption { font-family:var(--serif); font-size:clamp(24px,2.6vw,36px); line-height:1.25; max-width:560px; }
.secondary-book { background:var(--paper); }
.book-event-band { background:var(--clay); color:var(--navy); }
.book-event-band .eyebrow.light { color:var(--navy); }
.book-event-band .light-link { color:var(--navy); }
.book-event-grid { display:grid; grid-template-columns:1.1fr .9fr; min-height:590px; }
.book-event-grid figure { margin:0; margin-left:calc((100vw - min(var(--max), calc(100vw - (2 * var(--pad))))) / -2); }
.book-event-grid img { height:100%; object-fit:cover; }
.book-event-grid > div { align-self:center; padding:75px 0 75px clamp(55px,7vw,100px); }
.book-event-grid h2 { color:var(--navy); }
.page-hero-photo { min-height:700px; }
.page-hero-bg { position:absolute; inset:0; margin:0; }
.page-hero-bg img { width:100%; height:100%; object-fit:cover; object-position:center; }
.page-hero-books .page-hero-bg img { object-position: center 60%; }
.page-hero-media .page-hero-bg img { object-position: right top; }
.page-hero-photo-wash { position:absolute; inset:0; background:linear-gradient(90deg,rgba(243,239,230,.93) 0%,rgba(243,239,230,.80) 40%,rgba(243,239,230,.25) 72%,rgba(243,239,230,.08) 100%); }
.page-hero-photo-copy { position:relative; min-height:700px; display:flex; flex-direction:column; justify-content:center; align-items:flex-start; }
.page-hero-photo-copy h1 { max-width:850px; }
.page-hero-photo-copy .page-lead { max-width:680px; }
.topics-section { background:var(--clay); }
.topics-section .eyebrow { color:var(--navy); }
.topics-section .topic-columns h3 { color:#fff; }
.topic-columns p { color:var(--charcoal); }
.topic-columns { display:grid; grid-template-columns:repeat(4,1fr); gap:0; border-top:1px solid var(--line); }
.topic-columns section { padding:34px 34px 18px 0; border-right:1px solid var(--line); }
.topic-columns section:not(:first-child) { padding-left:34px; }
.topic-columns section:last-child { border-right:0; }
.topic-columns h3 { font-family:var(--serif); color:var(--navy); font-size:29px; margin:0 0 22px; }
.topic-columns p { color:#444; margin:0 0 11px; }
.tour-feature { background:var(--navy); color:var(--cream); }
.tour-feature-grid { display:grid; grid-template-columns:1.08fr .92fr; min-height:720px; }
.tour-feature figure { margin:0; }
.tour-feature img { width:100%; height:100%; object-fit:cover; }
.tour-feature-copy { padding:clamp(70px,8vw,120px); align-self:center; }
.tour-feature-copy h2 { color:var(--cream); }
.tour-feature-copy blockquote { font-family:var(--serif); font-size:clamp(26px,2.5vw,38px); line-height:1.2; margin:35px 0 0; color:#e7d6d1; }
.travel-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(70px,9vw,140px); align-items:center; }
.travel-grid figure { margin:0; }
.travel-grid img { aspect-ratio:16/10; object-fit:cover; }
.testimonial-wall { background:var(--paper); padding-block:80px; }
.testimonial-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:0; }
.testimonial-grid blockquote { font-family:var(--serif); color:var(--navy); font-size:clamp(24px,2.3vw,34px); line-height:1.25; margin:0; padding:20px 42px; border-right:1px solid var(--line); }
.testimonial-grid blockquote:nth-child(3n+1) { padding-left:0; }
.testimonial-grid blockquote:nth-child(3n) { border-right:0; }
.event-type { display:block; font-size:11px; font-weight:700; letter-spacing:.03em; text-transform:uppercase; color:var(--brick); margin-bottom:6px; }
.upcoming-grid { display:grid; grid-template-columns:.55fr 1fr; gap:clamp(70px,10vw,150px); }
.event-list { border-top:1px solid var(--line); }
.event-year-groups { display:flex; flex-direction:column; }
.event-year-group { border-top:1px solid var(--line); }
.event-year-group:last-of-type { border-bottom:1px solid var(--line); }
.event-year-group summary {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:24px 0;
  cursor:pointer;
  list-style:none;
}
.event-year-group summary::-webkit-details-marker { display:none; }
.event-year-group .event-year { font-family:var(--serif); color:var(--navy); font-size:28px; font-weight:500; }
.event-year-group .event-year-count { font-size:12px; font-weight:700; letter-spacing:.03em; text-transform:uppercase; color:var(--muted); white-space:nowrap; }
.event-year-group summary .event-year-count::before { content:"Click to reveal"; }
.event-year-group[open] summary .event-year-count::before { content:"Click to hide"; }
.event-year-group .event-list { border-top:1px solid var(--line); }
.event-year-group .event-list article:last-child { border-bottom:0; }
.event-list article { border-bottom:1px solid var(--line); padding:22px 0; }
.event-list time { display:block; color:var(--brick); font-weight:700; margin-bottom:4px; }
.event-list h3 { font-family:var(--serif); color:var(--navy); font-size:25px; margin:0 0 4px; }
.event-list p { margin:0; color:var(--muted); }
.cta-band { padding-block:90px; }
.cta-grid { display:grid; grid-template-columns:1fr .7fr; gap:90px; align-items:end; }
.cta-grid h2 { color:var(--cream); }
.documentary-band { padding-block:100px; }
.documentary-grid { display:grid; grid-template-columns:.75fr 1.25fr; gap:clamp(70px,9vw,140px); }
.documentary-grid h2 { color:var(--cream); }
.documentary-credits { border-top:1px solid rgba(243,239,230,.22); }
.documentary-credits article { padding:24px 0; border-bottom:1px solid rgba(243,239,230,.22); }
.documentary-credits h3 { color:var(--cream); font-family:var(--serif); font-size:28px; margin:0 0 6px; }
.documentary-credits p { color:rgba(243,239,230,.72); margin:0; }
.featured-media-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:60px 50px; }
.media-card { color:inherit; text-decoration:none; display:block; }
.media-card figure { margin:0 0 18px; overflow:hidden; background:#ddd7ce; }
.media-card img { width:100%; aspect-ratio:16/10; object-fit:cover; transition:transform .35s ease; }
.media-card:hover img { transform:scale(1.015); }
.media-card h3 { font-family:var(--serif); color:var(--navy); font-size:clamp(27px,2.7vw,39px); line-height:1.1; margin:9px 0; }
.media-card p { color:var(--muted); margin:0; }
.media-topic { color:var(--brick); font-size:12px; font-weight:700; }
.watch-list-section { background:var(--paper); }
.watch-list-grid { display:grid; grid-template-columns:.55fr 1fr; gap:clamp(70px,9vw,140px); }
.watch-groups { display:grid; grid-template-columns:1fr 1fr; gap:60px; }
.watch-groups h3 { font-family:var(--serif); color:var(--navy); font-size:27px; }
.watch-groups a { display:block; padding:13px 0; border-bottom:1px solid var(--line); color:var(--charcoal); text-decoration:none; }
.watch-groups a:hover { color:var(--brick); font-weight:600; }
.media-consultancy { background:var(--brick); color:var(--cream); }
.media-consultancy-grid { display:grid; grid-template-columns:1fr 1fr; min-height:620px; }
.media-consultancy figure { margin:0; height:100%; display:flex; align-items:center; justify-content:center; }
.media-consultancy img { width:100%; height:auto; max-height:100%; object-fit:contain; }
.media-consultancy-grid > div { align-self:center; padding:80px clamp(60px,8vw,120px); }
.media-consultancy h2 { color:var(--cream); }
.contact-grid { display:grid; grid-template-columns:.62fr 1fr; gap:clamp(75px,10vw,155px); align-items:start; }
.contact-grid aside { position:sticky; top:130px; }
.contact-types { border-top:1px solid var(--line); margin-top:32px; }
.contact-types p { padding:11px 0; margin:0; border-bottom:1px solid var(--line); color:var(--muted); }
.contact-form { border-top:2px solid var(--navy); padding-top:28px; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:25px 30px; }
.contact-form label { display:block; }
.contact-form label span { display:block; font-size:13px; font-weight:700; color:var(--navy); margin-bottom:8px; }
.contact-form input,.contact-form select,.contact-form textarea { width:100%; border:0; border-bottom:1px solid #aaa39a; background:transparent; border-radius:0; padding:12px 0; font:inherit; color:var(--charcoal); }
.contact-form textarea { border:1px solid #aaa39a; padding:15px; margin-top:3px; resize:vertical; }
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus { outline:2px solid rgba(154,73,62,.28); outline-offset:3px; border-color:var(--brick); }
.full-field { margin-top:28px; }
.form-privacy { font-size:12px; color:var(--muted); max-width:700px; margin:22px 0; }
.form-privacy a { color:var(--brick); }
.submit-button { border:0; background:var(--navy); color:var(--cream); font:700 15px var(--sans); padding:16px 22px; cursor:pointer; }
.submit-button:hover { background:var(--brick); }
.form-status { min-height:24px; color:var(--brick); font-weight:600; }
.contact-image-band { display:grid; grid-template-columns:1.2fr .8fr; background:var(--brick); color:var(--cream); min-height:520px; }
.contact-image-band figure { margin:0; }
.contact-image-band img { width:100%; height:100%; object-fit:cover; }
.contact-image-band > div { align-self:center; padding:70px clamp(55px,7vw,110px); }
.contact-image-band h2 { color:var(--cream); }
.privacy-copy { max-width:900px; }
.privacy-copy h2 { font-size:clamp(34px,3vw,46px); margin-top:55px; }
.privacy-warning { padding:25px; background:#eadbd5; color:#4a332f; }

@media(max-width:1000px){
  .page-hero-grid,.prose-split,.expertise-layout,.awards-grid,.qanda-page-grid,.book-detail-grid,.travel-grid,.upcoming-grid,.documentary-grid,.watch-list-grid,.contact-grid { grid-template-columns:1fr; }
  .page-hero-grid { min-height:0; gap:0; }
  .page-hero-grid > div { padding:80px 0 55px; }
  .page-hero-image { min-height:480px; }
  .book-detail-grid.reverse .book-detail-cover,.book-detail-grid.reverse .book-detail-copy { order:initial; }
  .book-detail-cover img { max-width:360px; }
  .book-detail-cover .cover-front { margin-bottom:72px; }
  .book-event-grid,.tour-feature-grid,.media-consultancy-grid,.contact-image-band,.image-quote-section { grid-template-columns:1fr; }
  .book-event-grid figure { margin-left:0; }
  .topic-columns { grid-template-columns:1fr 1fr; }
  .topic-columns section:nth-child(2) { border-right:0; }
  .testimonial-grid { grid-template-columns:1fr; }
  .testimonial-grid blockquote { border-right:0; border-bottom:1px solid var(--line); padding:28px 0; }
  .featured-media-grid { grid-template-columns:1fr 1fr; }
  .contact-grid aside { position:static; }
}
@media(max-width:650px){
  .page-hero h1 { font-size:clamp(54px,15vw,78px); }
  .page-hero-photo { min-height:620px; }
  .page-hero-photo-copy { min-height:620px; justify-content:flex-start; padding-top:95px; }
  .page-hero-photo-wash { background:linear-gradient(180deg,rgba(243,239,230,.93) 0%,rgba(243,239,230,.78) 48%,rgba(243,239,230,.20) 100%); }
  .page-hero-media .page-hero-photo-wash { background:linear-gradient(180deg,rgba(243,239,230,.08) 0%,rgba(243,239,230,.32) 58%,rgba(243,239,230,.93) 100%); }
  .page-hero-media .page-hero-photo-copy { justify-content:flex-end; padding-top:0; padding-bottom:50px; }
  .page-hero-books .page-hero-bg img { object-position: 84% 60%; }
  .page-hero-contact .page-hero-bg img { object-position: 88% 30%; }
  .page-hero-contact .page-hero-photo { min-height:700px; }
  .page-hero-contact .page-hero-photo-wash { background:linear-gradient(180deg,rgba(243,239,230,.04) 0%,rgba(243,239,230,.22) 38%,rgba(243,239,230,.86) 58%,rgba(243,239,230,.95) 100%); }
  .page-hero-contact .eyebrow { color:var(--cream); }
  .page-hero-contact .page-hero-photo-copy { justify-content:flex-end; padding-top:0; padding-bottom:44px; min-height:700px; }
  .timeline li { grid-template-columns:1fr; gap:8px; }
  .topic-columns,.featured-media-grid,.watch-groups,.review-grid,.cta-grid,.form-grid { grid-template-columns:1fr; }
  .review-grid .review-photo { grid-template-columns:1fr; }
  .review-grid .review-photo img { max-width:300px; }
  .topic-columns section,.topic-columns section:not(:first-child) { padding:26px 0; border-right:0; border-bottom:1px solid var(--line); }
  .book-detail-cover img { max-width:280px; }
  .media-card h3 { font-size:31px; }
}

.page-hero-contact .page-hero-bg img { object-position: right 40%; }

/* Photo gallery carousel */
.gallery-section { background: var(--paper); }
.gallery-stage { position: relative; margin-top: 36px; background: var(--navy); }
.gallery-slide { display: none; margin: 0; }
.gallery-slide[data-active] { display: block; }
.gallery-slide img { width: 100%; height: clamp(320px, 52vw, 640px); object-fit: contain; background: var(--navy); }
.gallery-slide figcaption { padding: 20px clamp(18px, 3vw, 36px) 24px; background: var(--navy); color: var(--cream); font-family: var(--serif); font-size: clamp(11.5px, 1.14vw, 15px); line-height: 1.4; text-align: center; min-height: 2.8em; }
.gallery-btn { all: unset; box-sizing: border-box; position: absolute; top: calc(clamp(320px, 52vw, 640px) / 2 - 24px); width: 48px; height: 48px; display: flex; align-items: center; justify-content: center; border-radius: 50%; background: rgba(15,20,26,.72); color: var(--cream); cursor: pointer; z-index: 2; }
.gallery-btn svg { width: 24px; height: 24px; }
.gallery-btn:hover { background: rgba(15,20,26,.92); }
.gallery-btn:focus-visible { outline: 2px solid var(--cream); outline-offset: 2px; }
.gallery-prev { left: 14px; }
.gallery-next { right: 14px; }
.gallery-count { margin: 14px 0 0; font-size: 13px; letter-spacing: .08em; color: var(--muted); text-align: right; }
@media (max-width: 650px) { .gallery-btn { width: 42px; height: 42px; top: calc(clamp(320px, 52vw, 640px) / 2 - 21px); } .gallery-prev { left: 8px; } .gallery-next { right: 8px; } }

.page-hero-speaking .page-hero-bg img { object-position: center 20%; }
