/*
Theme Name: Davenant Institute (Block)
Theme URI: https://davenantinstitute.org
Author: Kedalion Press LLC
Author URI: https://eumemic.ai
Description: Editable block (FSE) theme for The Davenant Institute — visually identical to the current site, with the design system in theme.json so the look is owned by the theme and content stays fully editable in the block editor. Portable: drop in to restyle another site.
Version: 0.1.281
Requires at least: 6.5
Tested up to: 6.5
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: davenant-block
*/

/* ===== Carried design system (parity with classic theme) ===== */
:root {
  --navy: #1c2f4a;
  --cream: #f5f0e8;
  --gold: #c4a35a;
  --burgundy: #6b3a3a;
  --text-dark: #1c2f4a;
  --border-ornate: #b8a88a;
  --sc: 'Cormorant SC', serif;
  --body: 'Cormorant Garamond', serif;
  --sans: 'Inter', sans-serif;

  --gold-bright: #d8b870;
  --cream-faf5ef: #faf5ef;
  --da-red: #9d4f44;
}

*, *::before, *::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; overflow-x: clip; }
body { font-family:var(--body); color:var(--text-dark); background:var(--cream); line-height:1.6;

  position:relative;
}

body.home.scroll-locked { overflow:hidden; height:100vh; }
a { text-decoration:none; color:inherit; }
img { max-width:100%; height:auto; display:block; }
/* 0.1.54 — single-post content image overflow @mobile. .wp-block-image figure had
 * max-width:none and shrink-wrapped to the image's intrinsic 474px width, so at 390
 * the image stayed 474px (overflow) and 339px tall vs prod 279px (=the +60@390 on
 * single.html). Cap the figure to container; leave wide/full-bleed heroes alone. */
.wp-block-image:not(.alignfull):not(.alignwide) { display: block; max-width: 100%; width: auto; }
.wp-block-image:not(.alignfull):not(.alignwide) img { max-width: 100%; height: auto; }
/* 0.1.56 — aligncenter parity. The 0.1.54 rule above made the figure full-width
 * (width:auto), but the block-level <img> keeps margin:0, so on desktop/tablet the
 * image sat flush-LEFT (x=0) while prod centers a shrink-wrapped figure (x=403/147).
 * Mobile already matched (image fills width). Center the inner image to restore parity;
 * scoped to .aligncenter so left/right/full/wide alignments are untouched. */
.wp-block-image.aligncenter img { margin-left: auto; margin-right: auto; }
.wp-block-image.aligncenter > a { display: block; text-align: center; }

:root { --header-h: 180px; }
.site-header {

  position:absolute !important; top:0; left:0; right:0; z-index:100;
  background:transparent;
  border-bottom:none;
  opacity:1;
  pointer-events:auto;
  transition:opacity 0.8s ease;
}

body.home .site-header {
  opacity:0;
  pointer-events:none;
}
body.home.video-ended .site-header {
  opacity:1;
  pointer-events:auto;
}

.nav-logo .nav-brand-text {
  color: var(--gold-bright) !important;
  text-shadow: 0 1px 6px rgba(0, 0, 0, 0.5);
}
.nav-logo img {

  filter: brightness(0) invert(1) drop-shadow(0 1px 4px rgba(0,0,0,0.5));
}
.nav-links a {
  text-shadow: 0 1px 3px rgba(245, 240, 232, 0.85);
}

.nav-bar {
  display:flex; align-items:flex-start; justify-content:space-between;
  max-width:1400px; margin:0 auto; padding:0.4rem 2.5rem 0.4rem;
  position:relative;
  min-height:var(--header-h);
}

body:not(.home) .site-header {
  position: fixed !important;
  background: transparent;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  border-bottom: none;
  pointer-events: none;
}
/* Mobile: stop the floating non-home header (logo) from overlapping body
   content as you scroll. On narrow viewports the fixed transparent header's
   left logo floats over section headings (e.g. press-title About sections).
   Switching it to absolute lets the logo scroll away with the hero; the
   cart (.dav-cart-sticky) and menu (.menu-toggle) have their own fixed
   rules (z-index 200) and stay pinned as intended. Reversible, no JS. */
@media (max-width: 600px) {
  body:not(.home) .site-header {
    position: absolute !important;
  }
}
body:not(.home) .site-header .nav-bar {
  justify-content: flex-start;
  padding-left: 0;
  align-items: stretch;
  pointer-events: none;
}

body:not(.home) .site-header .nav-logo {
  text-align: left;
  display: flex; align-items: center;
  gap: 0.85rem;
  pointer-events: auto;

  background:

    url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='280' height='280'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.78' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 0.18 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"),

    repeating-radial-gradient(circle at 0 0, rgba(216,184,112,0.10) 0px, rgba(216,184,112,0.10) 1.6px, transparent 1.6px, transparent 6px),

    linear-gradient(180deg, rgba(255,255,255,0.08) 0%, rgba(255,255,255,0.0) 100%),

    linear-gradient(180deg, rgba(28,47,74,0.96) 0%, rgba(28,47,74,0.90) 100%);
  padding: 0.65rem 3rem 0.65rem 1.5rem;
  border-top-right-radius: clamp(50px, 6vw, 90px);
  border-bottom-right-radius: clamp(50px, 6vw, 90px);
  box-shadow: 0 6px 18px rgba(0,0,0,0.18);
}
body:not(.home) .site-header .nav-logo a {
  display: flex; align-items: center; gap: 0.85rem; text-decoration: none;
}
body:not(.home) .site-header .nav-logo img {
  
  width: 63px; margin: 0;

  filter: brightness(0) invert(1) drop-shadow(0 1px 4px rgba(0,0,0,0.4));
}
body:not(.home) .site-header .nav-logo .nav-brand-text {
  color: var(--gold-bright) !important;
  font-size: 1.35rem;
  letter-spacing: 0.15em;
  text-shadow: 0 1px 6px rgba(0,0,0,0.5);
  margin: 0;
}

@media (max-width: 600px) {
  body:not(.home) .site-header .nav-logo {
    padding: 0.5rem 2rem 0.5rem 0.85rem;
    border-top-right-radius: 36px;
    border-bottom-right-radius: 36px;
  }
  body:not(.home) .site-header .nav-logo img { width: 40px;  }
  body:not(.home) .site-header .nav-logo .nav-brand-text {
    font-size: 0.95rem;
    letter-spacing: 0.10em;
  }
}

body:not(.home) .menu-toggle {
  /* position inherits from base.menu-toggle rule (fixed, top 1.2rem, right 1.4rem). */
}
.nav-links { display:flex; gap:3rem; padding-top:0.6rem; }
.nav-links a {
  font-family:var(--sc); font-size:1.4rem; letter-spacing:0.15em;
  color:var(--navy); transition:opacity 0.2s; white-space:nowrap;
}
.nav-links a:hover { opacity:0.6; }
.nav-logo { text-align:center; flex-shrink:0; }
.nav-logo a { display:block; text-decoration:none; }

.nav-logo img { width:112px; height:auto; margin:0 auto; display:block; }
.nav-logo .nav-brand-text {
  font-family:var(--sc); font-size:2rem; letter-spacing:0.15em;
  color:var(--navy); margin-top:0.4rem; white-space:nowrap;
  display:block; width:max-content; margin-left:auto; margin-right:auto;
}

.nav-hamburger { display:none !important; }

.hero {
  position:relative; width:100%; overflow:hidden;
  display:flex; align-items:flex-start; justify-content:center;
  background:var(--cream);
  height:75vh;
  margin-top:0;
}
.hero-bg {
  position:absolute; top:0; left:0; width:100%; height:100%;
  object-fit:cover;
  filter:grayscale(100%);
}

.hero { transition:height 1s ease; }
body.home .hero { height:100vh; }

.hero-static {
  opacity:1;
}

.pillars-section { background:var(--cream); padding:3rem 2rem 4rem; }

.pillars-header {
  text-align:center; margin-bottom:0;
  position:relative;
  min-height:230px;
}
.pillars-rule {
  display:flex; align-items:center; gap:1rem; max-width:800px; margin:0 auto 1rem;
  position:relative; z-index:2;
}
.pillars-rule::before, .pillars-rule::after {
  content:''; flex:1; height:1px; background:var(--border-ornate);
}
.pillars-rule h2 {
  font-family:var(--sc); font-size:1.5rem; letter-spacing:0.15em;
  color:var(--navy); white-space:nowrap;
}
.pillars-temple {
  width:280px; margin:0 auto;
  opacity:0.85;
  position:absolute; left:50%; top:40px; transform:translateX(-50%);
  z-index:0;
}

.pillars-area {
  max-width:1200px; margin:0 auto;
  position:relative; z-index:1;
  margin-top:0;
}

.pillars-grid {
  display:grid; grid-template-columns:repeat(3, 1fr); gap:2.5rem;
  align-items:start;
  margin-top:48px;
}
.pillar-card {
  text-align:center; cursor:pointer;

  display:flex; flex-direction:column; gap:1.8rem;
}
.pillar-card:hover .pillar-box { transform:translateY(-4px); }

.pillar-label {
  font-family:var(--sc); font-size:calc(2rem + 2pt); letter-spacing:0.12em;
  color:var(--navy);
  position:relative; z-index:2;
  margin-top:-74px;
}

.pillar-box {
  background:var(--navy);
  border-radius:0.4rem;
  overflow:hidden;
  display:flex;
  align-items:stretch;
  transition:transform 0.3s;
  position:relative;
}
.pillar-medallion {
  flex:1 1 auto;
  display:flex; align-items:center; justify-content:center;
  padding:1.2rem;
  aspect-ratio:1.5/1;
  width:100%;

}
.pillar-medallion img {
  width:100%; height:100%; object-fit:contain;
}

.pillar-detail,
.pillar-detail-spire {
  display:none;
}
.pillar-detail h4 {
  font-family:var(--sc); font-size:1.8rem; letter-spacing:0.08em;
  margin-bottom:0.8rem; color:var(--cream);
}
.pillar-detail p {
  font-family:var(--body); font-size:0.95rem; line-height:1.6;
  opacity:0.92;
}

.pillars-section[data-active="scholarship"] .pillar-card:not([data-pillar="scholarship"]),
.pillars-section[data-active="education"]   .pillar-card:not([data-pillar="education"]),
.pillars-section[data-active="preservation"] .pillar-card:not([data-pillar="preservation"]) {
  display:none;
}

.pillars-section:not([data-active=""]) .pillars-grid {
  grid-template-columns:1fr;
}

.pillars-section[data-active="scholarship"] .pillar-card[data-pillar="scholarship"] .pillar-label,
.pillars-section[data-active="education"]   .pillar-card[data-pillar="education"]   .pillar-label,
.pillars-section[data-active="preservation"] .pillar-card[data-pillar="preservation"] .pillar-label {
  width:280px;
  text-align:center;
  align-self:flex-start;
  animation:pillarLabelSlideLeft 1.0s linear forwards;
}
@keyframes pillarLabelSlideLeft {
  0%   { transform:translateX(60vw); }
  100% { transform:translateX(0); }
}

.pillars-section[data-active="scholarship"] .pillar-card[data-pillar="scholarship"] .pillar-box,
.pillars-section[data-active="education"]   .pillar-card[data-pillar="education"]   .pillar-box,
.pillars-section[data-active="preservation"] .pillar-card[data-pillar="preservation"] .pillar-box {
  background:transparent;
  border-radius:0;
  overflow:visible;
  align-items:center;
}

.pillars-section[data-active="scholarship"] .pillar-card[data-pillar="scholarship"] .pillar-medallion,
.pillars-section[data-active="education"]   .pillar-card[data-pillar="education"]   .pillar-medallion,
.pillars-section[data-active="preservation"] .pillar-card[data-pillar="preservation"] .pillar-medallion {
  flex:0 0 280px;
  width:280px;
  background:transparent;
  padding:0.5rem;
  animation:pillarMedallionSlideLeft 1.0s linear forwards;
}
@keyframes pillarMedallionSlideLeft {
  0%   { transform:translateX(60vw); }
  100% { transform:translateX(0); }
}

.pillars-section[data-active="scholarship"] .pillar-card[data-pillar="scholarship"] .pillar-detail,
.pillars-section[data-active="education"]   .pillar-card[data-pillar="education"]   .pillar-detail,
.pillars-section[data-active="preservation"] .pillar-card[data-pillar="preservation"] .pillar-detail {
  display:flex;
  flex:1 1 auto;
  min-width:0;
  flex-direction:column;
  justify-content:center;
  background:var(--navy);
  border-radius:0.4rem 0 0 0.4rem;
  color:var(--cream);

  position:relative;
  padding:2rem calc(140px + 2rem) 2rem 2rem;
  text-align:left;

  animation:pillarBoxExtendRight 1.2s ease-in-out both;
  animation-delay:1.0s;
  clip-path:inset(0 100% 0 0);
}
@keyframes pillarBoxExtendRight {
  0%   { clip-path:inset(0 100% 0 0); }
  100% { clip-path:inset(0 0 0 0); }
}

.pillars-section[data-active="scholarship"] .pillar-card[data-pillar="scholarship"] .pillar-detail h4,
.pillars-section[data-active="education"]   .pillar-card[data-pillar="education"]   .pillar-detail h4,
.pillars-section[data-active="preservation"] .pillar-card[data-pillar="preservation"] .pillar-detail h4,
.pillars-section[data-active="scholarship"] .pillar-card[data-pillar="scholarship"] .pillar-detail p,
.pillars-section[data-active="education"]   .pillar-card[data-pillar="education"]   .pillar-detail p,
.pillars-section[data-active="preservation"] .pillar-card[data-pillar="preservation"] .pillar-detail p {

  animation:pillarFloatUp 1.2s ease-in-out both;
  animation-delay:1.0s;
  opacity:0;
}

.pillars-section[data-active="scholarship"] .pillar-card[data-pillar="scholarship"] .pillar-detail-spire,
.pillars-section[data-active="education"]   .pillar-card[data-pillar="education"]   .pillar-detail-spire,
.pillars-section[data-active="preservation"] .pillar-card[data-pillar="preservation"] .pillar-detail-spire {
  display:block;
  position:absolute;
  right:1.5rem;
  top:50%;
  width:auto;
  max-width:130px;
  max-height:85%;
  object-fit:contain;
  background:transparent;
  border-radius:0;
  padding:0;
  margin:0;
  z-index:2;

  animation:pillarSpireAppear 0.8s ease-in-out both;
  animation-delay:2.2s;
  opacity:0;
  transform:translateY(-50%) translateX(16px);
  pointer-events:none;
}
@keyframes pillarSpireAppear {
  from { opacity:0;    transform:translateY(-50%) translateX(16px); }
  to   { opacity:0.95; transform:translateY(-50%) translateX(0); }
}

@keyframes pillarFloatUp {
  from { opacity:0; transform:translateY(12px); }
  to   { opacity:1; transform:translateY(0); }
}

.pillars-grid {
  transition:opacity 0.5s ease-in-out;
}
.pillars-section[data-closing="true"] .pillars-grid {
  opacity:0;
}
.pillars-section[data-closing="true"][data-active] .pillar-card .pillar-detail {
  animation:pillarBoxRetractLeft 0.5s ease-in-out forwards !important;
  animation-delay:0s !important;
}
.pillars-section[data-closing="true"][data-active] .pillar-card .pillar-detail h4,
.pillars-section[data-closing="true"][data-active] .pillar-card .pillar-detail p,
.pillars-section[data-closing="true"][data-active] .pillar-card .pillar-detail-spire {
  animation:pillarFadeOut 0.4s ease-in-out forwards !important;
  animation-delay:0s !important;
}
@keyframes pillarBoxRetractLeft {
  0%   { clip-path:inset(0 0 0 0); }
  100% { clip-path:inset(0 100% 0 0); }
}
@keyframes pillarFadeOut {
  from { opacity:1; }
  to   { opacity:0; }
}

.support-section {
  background:var(--cream); padding:4rem 2rem;
}
.support-images {
  display:flex; align-items:center; justify-content:space-between;
  max-width:1500px; margin:0 auto; gap:1.5rem;
}

.support-img {
  width:191px; flex-shrink:0;
  opacity:1;
}

.support-img-left  { transform:scaleX(-1); }
.support-img-right { transform:none; }
.support-content {
  text-align:center; flex:1; max-width:none;
}
.support-title {
  font-family:var(--sc); font-size:clamp(1.4rem, 2.6vw, 2.4rem);
  color:var(--navy); letter-spacing:0.08em; margin-bottom:1.5rem;
  white-space:nowrap;
}
.support-text {
  font-family:var(--body); font-size:1.1rem; color:var(--text-dark);
  margin:0 auto 2rem; line-height:1.7;
  max-width:600px;
}
.donate-btn {
  display:inline-block; padding:0.9rem 3rem;
  font-family:var(--sans); font-size:1.1rem; font-weight:700; letter-spacing:0.1em;
  text-transform:uppercase;
  background:#7a93b8; color:#fff;
  border:3px solid var(--navy);
  border-radius:9999px;
  transition:all 0.3s; cursor:pointer;
  box-shadow:0 2px 6px rgba(0,0,0,0.12);
}
.donate-btn:hover {
  background:var(--navy); color:#fff;
}

.subscribe-section {

  background: var(--gold);
  padding: 4.5rem 2rem;
  border-top: 1px solid rgba(28,47,74,0.12);
  border-bottom: 1px solid rgba(28,47,74,0.12);
}
.subscribe-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 3rem;
  max-width: 1200px;
  margin: 0 auto;
  min-height: 520px;
}
.subscribe-content {
  flex: 0 1 58%;
  max-width: 58%;
}
.subscribe-illustration {
  flex: 0 1 42%;
  max-width: 42%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.subscribe-illustration-img {
  display: block;
  width: 100%;
  max-width: 520px;
  height: auto;
  max-height: 520px;
  object-fit: contain;

}


/* Ad Fontes page scoping (2026-07-24): the classic theme emits body class
   .page-template-page-adfontes; the BLOCK theme does not (body carries only
   .page-id-10278). Every AF-specific clamp keyed solely on the template class
   silently stopped applying, so the subscribe illustration used the generic
   280px cap instead of AF's 224px -> /ad-fontes/ ran +110px taller than prod at
   every mobile width. Keep BOTH selectors so the rules work under either theme. */
.page-template-page-adfontes .subscribe-illustration-img,
.page-id-10278 .subscribe-illustration-img {
  max-width: 416px;
  max-height: 416px;
}

.subscribe-tag {
  display: block;
  margin-bottom: 1.4rem;
  /* 2026-07-24: the classic markup has whitespace text nodes between the two
     child spans; the block renderer emits them with no whitespace. With no text
     node the container still reserves a trailing line-box (strut), adding ~11px
     of dead space below the rule line -> /ad-fontes/ ran taller than prod at
     every mobile width. Zero the strut on the container and restore normal
     line-height on the children. */
  line-height: 0;
}
.subscribe-tag > * { line-height: normal; }
/* 2026-07-24 root cause of /ad-fontes/ running ~11px taller than prod at every
   viewport: v0.1.165 added a ::after rule-line on the assumption the markup no
   longer carries one. The Ad Fontes page DOES still emit
   <span class="subscribe-tag-line">, so the rule was drawn TWICE (2px + 8.8rem
   margin). Suppress the pseudo-element wherever the real span is present. */
.subscribe-tag:has(.subscribe-tag-line)::after { content: none; }
/* v0.1.165 — subscribe tag + hero medallion converted from wp:html to native
 * blocks (editor rendered wp:html as white sandbox iframes over the gold/blue
 * sections). The rule line span is gone from markup; draw it with ::after. */
p.subscribe-tag-text { margin: 0; }
.subscribe-tag::after {
  content: "";
  display: block;
  width: 40px;
  height: 2px;
  background: var(--navy);
  opacity: 0.85;
  margin-top: 0.55rem;
}
.subscribe-tag-text {
  display: block;
  font-family: var(--sc);
  font-size: 1.075rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--navy);
  font-weight: 600;
  line-height: 1.2;
}
.subscribe-tag-line {
  display: block;
  width: 40px;
  height: 2px;
  background: var(--navy);
  opacity: 0.85;
  margin-top: 0.55rem;
}

.subscribe-headline {
  font-family: var(--body);
  font-size: clamp(1.55rem, 3vw, 2.6rem);
  line-height: 1.22;
  color: var(--navy);
  margin: 0 0 2rem 0;
  font-weight: 500;
  letter-spacing: 0.005em;
  max-width: 32ch;
}

.subscribe-form {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  max-width: 540px;
}
.subscribe-row {
  display: flex;
  gap: 0.75rem;
  width: 100%;
}
.subscribe-row-split .subscribe-field { flex: 1 1 50%; min-width: 0; }
.subscribe-row:not(.subscribe-row-split) .subscribe-field { flex: 1 1 100%; min-width: 0; }
.subscribe-field { display: flex; }
.subscribe-input {
  width: 100%;
  padding: 0.85rem 1rem;
  font-family: var(--sans);
  font-size: 0.95rem;
  color: var(--text-dark);
  background: #fff;
  border: 1px solid rgba(28,47,74,0.15);
  border-radius: 2px;
  transition: border-color 0.25s, box-shadow 0.25s;
  -webkit-appearance: none;
  appearance: none;
}
.subscribe-input::placeholder {
  color: rgba(28,47,74,0.45);
}
.subscribe-input:focus {
  outline: none;
  border-color: var(--navy);
  box-shadow: 0 0 0 3px rgba(28,47,74,0.18);
}

.subscribe-btn {
  display: block;
  width: 100%;
  padding: 1.05rem 2rem;
  margin-top: 0.5rem;
  font-family: var(--sans);
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  background: var(--navy);
  color: #fff;
  border: 2px solid var(--navy);
  border-radius: 2px;
  cursor: pointer;
  transition: background 0.25s, color 0.25s, border-color 0.25s;
  white-space: nowrap;
}
.subscribe-btn:hover,
.subscribe-btn:focus {
  background: #142139;
  border-color: #142139;
  color: #fff;
  outline: none;
}

.subscribe-honeypot {
  position: absolute;
  left: -10000px;
  top: auto;
  width: 1px; height: 1px;
  overflow: hidden;
}

.screen-reader-text {
  border: 0;
  clip: rect(1px,1px,1px,1px);
  -webkit-clip-path: inset(50%);
  clip-path: inset(50%);
  height: 1px; width: 1px;
  margin: -1px; padding: 0;
  overflow: hidden;
  position: absolute !important;
  word-wrap: normal !important;
}

@media (max-width: 820px) {
  .subscribe-section { padding: 3rem 1.25rem; }
  .subscribe-inner {
    flex-direction: column;
    gap: 2rem;
    min-height: 0;
  }
  .subscribe-content,
  .subscribe-illustration {
    flex: 1 1 auto;
    max-width: 100%;
    width: 100%;
  }
  .subscribe-illustration { order: -1; }
  .subscribe-illustration-img { max-height: 280px; }
  .page-template-page-adfontes .subscribe-illustration-img,
  .page-id-10278 .subscribe-illustration-img { max-height: 224px; }
  .subscribe-headline {
    font-size: clamp(1.35rem, 5.5vw, 1.9rem);
    max-width: none;
  }
  .subscribe-row-split { flex-direction: column; gap: 0.65rem; }
  .subscribe-row-split .subscribe-field { flex: 1 1 100%; }
  .subscribe-form { max-width: none; }
}

.book-proposals {
  background: var(--gold);
  padding: 4.5rem 2rem;
  border-top: 1px solid rgba(28,47,74,0.12);
  border-bottom: 1px solid rgba(28,47,74,0.12);
}
.book-proposals-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 3rem;
  max-width: 1200px;
  margin: 0 auto;
  min-height: 520px;
}
.book-proposals-content {
  flex: 0 1 58%;
  max-width: 58%;
}
.book-proposals-illustration {
  flex: 0 1 42%;
  max-width: 42%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.book-proposals-illustration-img {
  display: block;
  width: 100%;
  max-width: 520px;
  height: auto;
  max-height: 520px;
  object-fit: contain;

}

.book-proposals-tag {
  display: block;
  margin-bottom: 1.4rem;
}
.book-proposals-tag-text {
  display: block;
  font-family: var(--sc);
  font-size: 1.075rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--navy);
  font-weight: 600;
  line-height: 1.2;
}
.book-proposals-tag-line {
  display: block;
  width: 40px;
  height: 2px;
  background: var(--navy);
  opacity: 0.85;
  margin-top: 0.55rem;
}

.book-proposals-headline {
  font-family: var(--body);
  font-size: clamp(1.35rem, 2.3vw, 1.85rem);
  line-height: 1.32;
  color: var(--navy);
  margin: 0 0 2rem 0;
  font-weight: 500;
  letter-spacing: 0.005em;
  max-width: 56ch;
}
.book-proposals-headline a {
  color: var(--navy);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}
.book-proposals-headline a:hover,
.book-proposals-headline a:focus {
  color: #142139;
  text-decoration-thickness: 2px;
}
.book-proposals-form {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  max-width: 540px;
}
.book-proposals-row {
  display: flex;
  gap: 0.75rem;
  width: 100%;
}
.book-proposals-row .book-proposals-field { flex: 1 1 100%; min-width: 0; }
.book-proposals-field { display: flex; flex-direction: column; gap: 0.4rem; }
.book-proposals-field label {
  font-family: var(--sans);
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--navy);
}
.book-proposals-input {
  width: 100%;
  padding: 0.85rem 1rem;
  font-family: var(--sans);
  font-size: 0.95rem;
  color: var(--text-dark);
  background: #fff;
  border: 1px solid rgba(28,47,74,0.15);
  border-radius: 2px;
  transition: border-color 0.25s, box-shadow 0.25s;
  -webkit-appearance: none;
  appearance: none;
}
.book-proposals-textarea {
  min-height: 12rem;
  resize: vertical;
  line-height: 1.5;
}
.book-proposals-input::placeholder {
  color: rgba(28,47,74,0.45);
}
.book-proposals-input:focus {
  outline: none;
  border-color: var(--navy);
  box-shadow: 0 0 0 3px rgba(28,47,74,0.18);
}
.book-proposals-btn {
  display: block;
  width: 100%;
  padding: 1.05rem 2rem;
  margin-top: 0.5rem;
  font-family: var(--sans);
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  background: var(--navy);
  color: #fff;
  border: 2px solid var(--navy);
  border-radius: 2px;
  cursor: pointer;
  transition: background 0.25s, color 0.25s, border-color 0.25s;
  white-space: nowrap;
}
.book-proposals-btn:hover,
.book-proposals-btn:focus {
  background: #142139;
  border-color: #142139;
  color: #fff;
  outline: none;
}
.book-proposals-btn[disabled] {
  opacity: 0.65;
  cursor: not-allowed;
}
.book-proposals-honeypot {
  position: absolute;
  left: -10000px;
  top: auto;
  width: 1px; height: 1px;
  overflow: hidden;
}

.book-proposals-status {
  margin-top: 1rem;
  font-family: var(--sans);
  font-size: 0.95rem;
  color: var(--navy);
  min-height: 1.3em;
}
.book-proposals-status.is-success {
  font-weight: 600;
}
.book-proposals-status.is-error {
  color: #7a1d1d;
}

@media (max-width: 820px) {
  .book-proposals { padding: 3rem 1.25rem; }
  .book-proposals-inner {
    flex-direction: column;
    gap: 2rem;
    min-height: 0;
  }
  .book-proposals-content,
  .book-proposals-illustration {
    flex: 1 1 auto;
    max-width: 100%;
    width: 100%;
  }
  .book-proposals-illustration { order: -1; }
  .book-proposals-illustration-img { max-height: 280px; }
  .book-proposals-headline {
    font-size: clamp(1.15rem, 4.5vw, 1.5rem);
    max-width: none;
  }
  .book-proposals-form { max-width: none; }
}

.news-events-section {
  background: var(--cream);
  padding: 4rem 1.5rem 5rem;
}

.news-events-rule {
  display:flex; align-items:center; gap:1rem; max-width:800px; margin:0 auto 2rem;
  position:relative; z-index:2;
}
.news-events-rule::before, .news-events-rule::after {
  content:''; flex:1; height:1px; background:var(--border-ornate);
}
.news-events-rule h2 {
  font-family:var(--sc); font-size:1.5rem; letter-spacing:0.15em;
  color:var(--navy); white-space:nowrap;
  text-transform:uppercase;
}
.news-events-carousel {
  position: relative;
  max-width: 1100px;
  margin: 0 auto;
  overflow: hidden;
  background: #fff;
  border: 2px solid var(--navy);
  border-radius: 6px;
  box-shadow: 0 4px 14px rgba(28,47,74,0.12);
}
.news-events-track {
  display: flex;
  transition: transform 0.6s ease;
  will-change: transform;
}
.news-events-slide {
  flex: 0 0 100%;
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 320px;
}
.news-events-slide-image {
  background-size: cover;
  background-position: center;
  background-color: var(--navy);
}
.news-events-slide-content {
  padding: 2.5rem;
  display: flex; flex-direction: column; justify-content: center;
}
.news-events-kind {
  font-family: var(--sc);
  font-size: 0.95rem;
  letter-spacing: 0.18em;
  color: var(--gold);
  text-transform: uppercase;
  margin-bottom: 0.8rem;
}
.news-events-title {
  font-family: var(--body);
  font-size: 2rem;
  color: var(--navy);
  margin-bottom: 0.6rem;
  line-height: 1.2;
  font-weight: 600;
}
.news-events-meta {
  font-family: var(--sans);
  font-size: 0.95rem;
  color: rgba(28,47,74,0.7);
  margin-bottom: 1.4rem;
  line-height: 1.4;
}
.news-events-cta {
  display: inline-block;
  align-self: flex-start;
  padding: 0.7rem 1.6rem;
  font-family: var(--sans);
  font-size: 0.85rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  background: var(--navy);
  color: var(--cream);
  border-radius: 9999px;
  border: 2px solid var(--navy);
  transition: all 0.25s;
  font-weight: 500;
}
.news-events-cta:hover {
  background: transparent;
  color: var(--navy);
}
.news-events-dots {
  display: flex; justify-content: center; gap: 0.7rem;
  margin-top: 1.5rem;
}
.news-events-dot {
  width: 11px; height: 11px; border-radius: 50%;
  background: rgba(28,47,74,0.25);
  border: none; cursor: pointer; padding: 0;
  transition: background 0.2s, transform 0.2s;
}
.news-events-dot:hover { transform: scale(1.2); }
.news-events-dot.active { background: var(--navy); }

.site-footer-v2 {
  background: var(--navy);
  color: var(--cream);
  padding: 4rem 1.5rem 1.75rem;
  margin: 0;
  border-top: 4px solid var(--gold);
  font-family: var(--body);
}
.site-footer-v2__inner {
  max-width: 1200px;
  margin: 0 auto;
}
.site-footer-v2__top {
  display: grid;
  grid-template-columns: 1.35fr 1fr;
  gap: 4rem;
  align-items: start;
}
.site-footer-v2__col--info {
  display: flex;
  flex-direction: column;
  gap: 1.75rem;
}
.site-footer-v2__block { }
.site-footer-v2__title {
  font-family: var(--sc);
  font-size: 0.95rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--gold);
  margin: 0 0 0.65rem;
  padding-bottom: 0.45rem;
  border-bottom: 1px solid rgba(196,163,90,0.35);
  font-weight: 600;
}
.site-footer-v2__mission {
  font-family: var(--body);
  font-size: 1.05rem;
  line-height: 1.6;
  color: var(--cream);
  margin: 0;
  max-width: 60ch;
  opacity: 0.92;
}
.site-footer-v2__address {
  font-style: normal;
  font-family: var(--body);
  font-size: 1.05rem;
  line-height: 1.65;
  color: var(--cream);
  opacity: 0.92;
}
.site-footer-v2__address a {
  color: var(--gold);
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: border-color 0.2s;
}
.site-footer-v2__address a:hover { border-bottom-color: var(--gold); }

.site-footer-v2__social ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  gap: 0.7rem;
  flex-wrap: wrap;
}
.site-footer-v2__social a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 1px solid var(--gold);
  color: var(--gold);
  background: transparent;
  transition: background 0.2s, color 0.2s, transform 0.2s;
}
.site-footer-v2__social a:hover {
  background: var(--gold);
  color: var(--navy);
  transform: translateY(-1px);
}
.site-footer-v2__social svg {
  width: 18px;
  height: 18px;
  fill: currentColor;
}

.site-footer-v2__col--brand {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 1.75rem;
}
.site-footer-v2__logo-wrap {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.site-footer-v2__logo {
  width: 180px;
  height: auto;
  display: block;
}
.site-footer-v2__nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  align-items: center;
}
.site-footer-v2__nav a {
  font-family: var(--sc);
  font-size: 1.05rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--cream);
  text-decoration: none;
  border-bottom: 1px solid transparent;
  padding-bottom: 2px;
  transition: color 0.2s, border-color 0.2s;
}
.site-footer-v2__nav a:hover {
  color: var(--gold);
  border-bottom-color: var(--gold);
}

.site-footer-v2__rule {
  border: 0;
  border-top: 1px solid rgba(245,240,232,0.18);
  margin: 3rem 0 1.25rem;
}

.site-footer-v2__bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 1rem;
}
.site-footer-v2__copyright {
  font-family: var(--body);
  font-size: 0.9rem;
  color: var(--cream);
  opacity: 0.7;
  margin: 0;
}
.site-footer-v2__legal ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  gap: 1.5rem;
}
.site-footer-v2__legal a {
  font-family: var(--body);
  font-size: 0.9rem;
  color: var(--cream);
  opacity: 0.7;
  text-decoration: none;
  transition: color 0.2s, opacity 0.2s;
}
.site-footer-v2__legal a:hover { color: var(--gold); opacity: 1; }

.page-main, .index-main {
  max-width:900px; margin:6rem auto 2rem; padding:0 2rem;
}
.index-main { max-width:800px; }
.page-title {
  font-family:var(--sc); color:var(--navy); margin-bottom:2rem;
}
.index-article { margin-bottom:2rem; }

@media (max-width:900px) {
  :root { --header-h: 150px; }
  .nav-logo img { width:120px; }

  .nav-links { gap:1.2rem; padding-bottom:0.4rem; }
  .nav-links a { font-size:1rem; letter-spacing:0.08em; }
  .nav-bar { padding:0.5rem 1rem 0.6rem; flex-wrap:wrap; }
  .pillars-grid { grid-template-columns:1fr; max-width:340px; margin:0 auto; }
  .pillars-section:not([data-active=""]) .pillars-grid { grid-template-columns:1fr; }

  .pillar-box { flex-direction:column; }
  .pillars-section[data-active="scholarship"] .pillar-card[data-pillar="scholarship"] .pillar-medallion,
  .pillars-section[data-active="education"]   .pillar-card[data-pillar="education"]   .pillar-medallion,
  .pillars-section[data-active="preservation"] .pillar-card[data-pillar="preservation"] .pillar-medallion {
    flex:0 0 auto; width:100%;
  }
  .pillars-section[data-active="scholarship"] .pillar-card[data-pillar="scholarship"] .pillar-detail,
  .pillars-section[data-active="education"]   .pillar-card[data-pillar="education"]   .pillar-detail,
  .pillars-section[data-active="preservation"] .pillar-card[data-pillar="preservation"] .pillar-detail {
    padding:1rem 1.2rem 1.2rem;
  }
  .pillars-section[data-active="scholarship"] .pillar-card[data-pillar="scholarship"] .pillar-detail-spire,
  .pillars-section[data-active="education"]   .pillar-card[data-pillar="education"]   .pillar-detail-spire,
  .pillars-section[data-active="preservation"] .pillar-card[data-pillar="preservation"] .pillar-detail-spire {
    display:none;
  }
  .support-title { white-space:normal; }
  .support-images { flex-direction:column; }
  .support-img { width:160px; }

  .site-footer-v2 { padding: 3rem 1.25rem 1.5rem; }
  .site-footer-v2__top {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }
  .site-footer-v2__col--brand { order: -1; }
  .site-footer-v2__logo { width: 150px; }
  .site-footer-v2__mission { font-size: 1rem; }
  .site-footer-v2__rule { margin: 2rem 0 1rem; }
  .site-footer-v2__bottom {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.75rem;
    text-align: left;
  }
  .site-footer-v2__legal ul { gap: 1rem; flex-wrap: wrap; }

  .news-events-slide { grid-template-columns: 1fr; min-height: auto; }
  .news-events-slide-image { min-height: 200px; }
  .news-events-slide-content { padding: 1.8rem; }
  .news-events-title { font-size: 1.5rem; }
  .news-events-section { padding: 3rem 1rem 3.5rem; }
}

.hero-overlay {
  position:absolute; left:0; right:0; bottom:0;
  z-index:5;
  padding: 0 0 8vh 6vw;
  display:flex; align-items:flex-end; justify-content:flex-start;
  pointer-events:none;

  opacity:0;
  transition:opacity 1.2s ease 0.4s;
}
.hero.video-ended .hero-overlay { opacity:1; }
body:not(.home) .hero-overlay { opacity:1; }

.hero-overlay-oundle {
  inset: 0;
  padding: 0;
  align-items: stretch; justify-content: flex-start;
}

.hero-text-block {
  background: linear-gradient(180deg, rgba(28,47,74,0.92) 0%, rgba(28,47,74,0.84) 100%);
  padding: 3rem 2vw 3rem 6vw;
  align-self: stretch;
  margin: 0;
  width: clamp(400px, 32vw, 540px);
  max-width: 90vw;
  pointer-events: auto;
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
  border-top-right-radius: clamp(120px, 18vw, 260px);

  display: grid;
  grid-template-rows: auto 1fr;
  gap: 2.5rem;
}
.hero-text-block .hero-brand-row { align-self: start; }

.hero-text-block .hero-headline  {
  align-self: center;
  margin-top: 3vh;
}

.hero-text-block .hero-cathedral-v2 {
  align-self: flex-start;
  margin-top: 0;
}

.hero-brand-row {
  display: flex; flex-direction: row; align-items: center;
  gap: 1rem;
  text-decoration: none;
  margin-top: 0;
  pointer-events: auto;
  align-self: flex-start;
}
.hero-cathedral-v2 {
  display: block;
  
  width: clamp(86px, 8.5vw, 128px);
  height: auto;
  margin: 0 0 0 7%;
  filter: brightness(0) invert(1);
}
.hero-brand-row .hero-brand-text {
  font-family: 'Cormorant SC', serif;
  font-size: clamp(1.2rem, 1.6vw, 1.6rem);
  letter-spacing: 0.18em;
  color: var(--cream-faf5ef);
  text-transform: uppercase;
  white-space: nowrap;
  text-shadow: none;
  text-align: center;
}

.hero-cathedral { display: none; }

.hero-brand {
  display: flex; flex-direction: column; align-items: flex-start;
  text-decoration: none;
  margin-top: clamp(2rem, 8vh, 6rem);
  pointer-events: auto;
}
.hero-brand-text {
  font-family: var(--sc);
  font-size: 1.8rem;
  letter-spacing: 0.15em;
  color: var(--gold-bright);
  text-shadow: 0 1px 6px rgba(0, 0, 0, 0.5);
  white-space: nowrap;
}

.hero-brand-logo { display: none; }

.hero-text-block .hero-headline { text-shadow: none; }

.hero-center-logo { display: none; }

.hero-corner-cta {
  position: absolute; bottom: 0; right: 0;
  width: 96px;
  height: 96px;
  background: rgba(28,47,74,0.92);
  border-top-left-radius: 100%;
  z-index: 6;
  display: flex; align-items: flex-end; justify-content: flex-end;
  padding: 0 1.25rem 1.25rem 0;
  pointer-events: auto;
  cursor: pointer;
  text-decoration: none;
  transition: background 0.25s ease;
}
.hero-corner-cta:hover { background: rgba(28,47,74,1); }
.hero-corner-cta-arrow {
  width: 48px; height: 48px;
  border-radius: 50%;
  border: 2px solid var(--gold-bright);
  display: flex; align-items: center; justify-content: center;
  color: var(--gold-bright);
  font-size: 1.4rem;
  line-height: 1;
}
.hero-corner-cta-arrow::before {
  content: "↓";
  display: block;
}

.hero-headline,
h1.hero-headline,
.hero-text-block h1.hero-headline {
  font-family: var(--body);

  /* !important on weight: browser default h1 is bold(700); some path in the
     block-theme stack (theme.json elements.heading? wp-block-heading core css?)
     is sticking 700 on the computed style even when this rule sets 400. !important
     forces 400 to match the live classic theme. */
  font-weight: 400 !important;

  /* !important needed to defeat theme.json's elements.h1.typography.fontSize
     which WP injects as `h1 { font-size: var(--wp--preset--font-size--xx-large) }`
     (=2rem). Without this override the hero h1 collapses from clamp(~85px)
     to a flat 32px — the exact size of xx-large. Dev parity gap 2026-06-25. */
  font-size: clamp(2.77rem, 5.97vw, 5.57rem) !important;

  /* !important on line-height: theme.json's styles.typography.lineHeight=1.6
     gets emitted as a body-level rule that inherits into h1 + spans and
     stretches the hero panel ~219px taller than live (137.5px/line vs ~89px).
     Pin to 1.04 to match the classic theme's hero panel height. */
  line-height: 1.04 !important;
  letter-spacing: 0.005em;
  text-shadow: 0 2px 12px rgba(0,0,0,0.55);
  margin: 0;
  margin-top: 3vh; /* parity: classic keeps .hero-text-block .hero-headline margin-top:3vh; higher-specificity block rule was zeroing it -> hero text floated ~18px high */
  display:flex; flex-direction:column; gap:0.05em;
}

.hero-headline .hero-italic {
  font-family: 'Cormorant Garamond', serif;
  font-weight: 400;
  font-style: italic;
  color: var(--cream-faf5ef);
  display:block;
}
.hero-headline .hero-sc-gold {
  font-family: 'Cormorant SC', serif;
  font-weight: 400;
  font-style: normal;

  color: var(--gold-bright) !important;
  letter-spacing: 0.08em;
  display: block;
  font-size: 0.78em;
}
.hero-headline .hero-roman {

  font-style: normal;
  color: var(--cream-faf5ef);
  display:block;
}

.hero-static { filter: none !important; }

.portico-bg-wrapper {
  position: relative;
  background-color: var(--cream);
}

.pillars-section.pillars-v2 {
  position:relative;

  background-color: transparent;
  background-image: url('images/Portico-v5.png');
  background-repeat: no-repeat;
  background-position: center bottom;
  background-size: auto 65vh;

  padding: 0 2rem 3.5rem;
  overflow:hidden;
  min-height: 70vh;
  display: flex; flex-direction: column;
}

.pillars-section.pillars-v2 .pillars-rule {
  
  margin-top: 0.5rem;
  margin-bottom: 1.5rem;
  position:relative; z-index:3;
  display: flex; align-items: center; gap: 1.25rem;
  max-width: 1100px;
  margin-left: auto; margin-right: auto;
  padding-top: 0;
  transform: translateY(-0.8rem);
}

.pillars-section.pillars-v2 .pillars-rule::before,
.pillars-section.pillars-v2 .pillars-rule::after {
  content: none;
}
.pillars-section.pillars-v2 .pillars-rule .pillars-rule-line {
  
  flex: 1;
  height: 2px;
  background: var(--gold-bright);
  opacity: 1;
  display: block;
  min-width: 140px;
}
.pillars-section.pillars-v2 .pillars-rule h2 {
  color: var(--navy);
  text-shadow: none;
}
.pillars-section.pillars-v2 .pillars-v2-grid {
  margin: 0 auto;
}

.pillars-section.pillars-v2 {
  justify-content: flex-start;
}

.pillars-portico-bg {
  position:absolute; inset:0;
  width: 100%; height: 100%;
  max-width: none;
  opacity: 1;
  z-index: 0;
  pointer-events:none;
  filter: none;
  object-fit: cover;
  object-position: center;
  image-rendering: -webkit-optimize-contrast;
}
.pillars-v2-grid {
  position:relative; z-index:2;
  max-width: 1280px;
  margin: 0 auto;
  display:grid;
  grid-template-columns: repeat(3, 1fr);

  gap: 1.4rem;

  align-items: start;
}
.pillar-v2-card {
  display:flex; flex-direction:column;
  background: rgba(28, 47, 74, 0.88);
  color: var(--cream-faf5ef);
  border-radius: 0.4rem;
  padding: 2.2rem 1.8rem 2rem;
  text-align: center;
  text-decoration:none;
  transition: transform 0.35s ease, background 0.35s ease, box-shadow 0.35s ease;
  box-shadow: 0 12px 32px rgba(0,0,0,0.18);
  position:relative;
  overflow:hidden;
}
.pillar-v2-card:hover {
  transform: translateY(-6px);
  background: rgba(28, 47, 74, 0.96);
  box-shadow: 0 22px 48px rgba(0,0,0,0.32);
}
.pillar-v2-medallion,
figure.wp-block-image.pillar-v2-medallion {
  /* width !important — wp:image emits the figure block-level and the inner img
     drives intrinsic sizing, expanding the figure to ~354px in a flex-column
     parent. Force 140×140 to match the classic theme's .pillar-v2-medallion. */
  width: 140px !important; height: 140px !important;
  max-width: 140px !important;
  margin: 0 auto 1.4rem;
  align-self: center;
  display:flex !important; align-items:center; justify-content:center;
  flex: 0 0 auto;
}
.pillar-v2-medallion img,
figure.wp-block-image.pillar-v2-medallion img {
  width:100% !important; height:100% !important; max-width:100% !important;
  object-fit:contain;
  filter: drop-shadow(0 2px 6px rgba(0,0,0,0.35));
}
.pillar-v2-body { display:flex; flex-direction:column; flex:1; }
.pillar-v2-label {
  font-family: var(--sc);
  font-size: 1.5rem;
  letter-spacing: 0.18em;
  color: var(--gold-bright);
  text-transform: uppercase;
  margin: 0 0 0.4rem;
}
/* Parity: these single-word pillar labels (h3 inside .wp-block-post-content) are caught
   by the broad #62 heading rule `.wp-block-post-content :where(h1..h6):not(.wp-block-query *)`
   (overflow-wrap:break-word, specificity 0-2-0) which makes them break mid-word and wrap to
   2 lines at <=768. Classic renders the homepage via PHP (no .wp-block-post-content wrapper)
   so they stay on one line. Restore classic behavior with a higher-specificity (0-3-0) override
   so it wins the cascade regardless of source order: keep on one line, never break mid-word. */
.wp-block-post-content .pillar-v2-body .pillar-v2-label {
  overflow-wrap: normal;
  word-wrap: normal;
}

.pillar-v2-name {
  font-family: var(--body);
  font-style: italic;
  font-size: 1.6rem;
  color: var(--cream-faf5ef);
  margin: 0 0 1rem;

  max-height: 0; opacity: 0;
  overflow: hidden;
  transition: max-height 0.4s ease, opacity 0.3s ease, margin 0.4s ease;
}
.pillar-v2-card:hover .pillar-v2-name {
  max-height: 60px;
  opacity: 1;
  margin: 0 0 1rem;
}
.pillar-v2-blurb {
  font-family: var(--body);
  font-size: 1.05rem;
  line-height: 1.55;
  color: rgba(250, 245, 239, 0.9);
  margin: 0 0 1.4rem;
  max-height: 0; opacity: 0;
  overflow: hidden;
  transition: max-height 0.4s ease, opacity 0.3s ease, margin 0.4s ease;
}

/* Parity (all viewports): WP global layout injects
   ":root :where(.is-layout-flow) > :last-child { margin-block-end:0 }" (0,2,0),
   which zeroes the blurb (last child of the .pillar-v2-body flow group) bottom
   margin on DESKTOP too -> each pillar card ~22.4px shorter than the classic
   theme, shifting the navy->cream pillars boundary up and lighting a full-width
   diff stripe at ~y2080@1440. The existing counter-rule was scoped inside the
   mobile @media only; promote it to base scope so desktop matches classic. */
.pillar-v2-card .pillar-v2-body > .pillar-v2-blurb:last-child {
  margin-block-end: 1.4rem;
}
.pillar-v2-card:hover .pillar-v2-blurb {
  max-height: 240px;
  opacity: 1;
  margin: 0 0 1.4rem;
}
.resources-section {
  background: var(--navy);
  color: var(--cream-faf5ef);
  padding: 5rem 0 4rem;
  position:relative;
}
.resources-header {
  max-width: 1280px; margin: 0 auto 2.4rem;
  padding: 0 6vw;
  text-align:left;
}
.resources-eyebrow {
  font-family: var(--sc);
  font-size: 1.4rem;
  letter-spacing: 0.22em;
  color: var(--gold-bright);
  text-transform: uppercase;
  margin: 0;
  position:relative;
  padding-bottom: 0.6rem;
}
.resources-eyebrow::after {
  content:'';
  display:block;
  width: 64px; height: 2px;
  background: var(--gold-bright);
  margin-top: 0.6rem;
}

.resources-slider-wrap {
  position: relative;
  max-width: 100%;
}
.resources-slider {
  max-width: 100%;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  padding: 0 6vw 1rem;
  scrollbar-width: thin;
}

.resources-slider { scrollbar-width: none; -ms-overflow-style: none; }
.resources-slider::-webkit-scrollbar { display: none; height: 0; }
.resources-slider::-webkit-scrollbar-track { background: transparent; }
.resources-slider::-webkit-scrollbar-thumb { background: transparent; }

.resources-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 5;
  width: 44px;
  height: 44px;
  border-radius: 999px;
  background: rgba(245, 240, 232, 0.92);
  color: #1c2f4a;
  border: 1px solid rgba(28, 47, 74, 0.18);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.18);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  transition: background 160ms ease, color 160ms ease, opacity 160ms ease, transform 160ms ease;
}
.resources-arrow:hover:not(:disabled) {
  background: #1c2f4a;
  color: #f5f0e8;
  border-color: #1c2f4a;
}
.resources-arrow:disabled {
  opacity: 0.25;
  cursor: not-allowed;
}
.resources-arrow--prev { left: max(1rem, calc(6vw - 56px)); }
.resources-arrow--next { right: max(1rem, calc(6vw - 56px)); }
@media (max-width: 700px) {
  /* Mobile already gets touch-swipe; arrows would crowd the edges and overlap cards. */
  .resources-arrow { display: none; }
}
.resources-track {
  display:flex;
  gap: 1.6rem;
  padding-bottom: 0.4rem;
}
.resource-card {
  flex: 0 0 320px;
  scroll-snap-align: start;
  background: #233b5e;
  color: var(--cream-faf5ef);
  text-decoration:none;
  border-radius: 0.4rem;
  padding: 2rem 1.6rem;
  display:flex;
  transition: transform 0.3s ease, background 0.3s ease;
  border: 1px solid rgba(216, 184, 112, 0.18);
}
.resource-card:hover {
  transform: translateY(-4px);
  background: #2a4773;
  border-color: var(--gold-bright);
}
.resource-card-inner { display:flex; flex-direction:column; gap: 0.8rem; }
/* Editor-UX pattern: media card title+blurb wrapped in a wp:group with this
   class so Julia sees them as one editable block. The wrapper needs to
   replicate the flex+gap behavior the title/blurb previously inherited as
   direct children of .resource-card-inner. flex:1 lets the wrapper expand
   to fill the card (so .resource-blurb's flex:1 still pushes meaningfully). */
.resource-card-content { display:flex; flex-direction:column; gap: 0.8rem; flex: 1; }

.resource-card-thumb {
  width: 100%;
  height: 118px;
  background-color: transparent; 
  background-size: contain; /* not cropped */
  background-position: center;
  background-repeat: no-repeat;
  border-radius: 0.25rem;
  margin-bottom: 0.4rem;
  flex: 0 0 118px;
}
.resource-card-thumb--podcasts {
  background-image: url('images/podcasts-thumb-v2.jpg');
  background-position: center 62%; 
}
.resource-card-thumb--books {
  background-image: url('images/books-thumb-v2.jpg');
}
.resource-card-thumb--articles {
  
  background-image: url('images/articles-thumb-v2.jpg');
}
.resource-card-thumb--lectures {
  background-image: url('images/lectures-thumb-v2.jpg');
}
.resource-kind {
  font-family: var(--sc);
  font-size: 0.85rem;
  letter-spacing: 0.22em;
  color: var(--gold-bright);
  text-transform: uppercase;
}
.resource-title {
  font-family: var(--body);
  font-style: italic;
  font-size: 1.9rem;
  color: var(--gold-bright); 
  margin: 0;
  font-weight: 400;
}
.resource-blurb {
  font-family: var(--body);
  font-size: 1.02rem;
  line-height: 1.55;
  color: rgba(250, 245, 239, 0.85);
  margin: 0;
  flex: 1;
}
.resources-dots {
  max-width: 1280px;
  margin: 1.2rem auto 0;
  padding: 0 6vw;
  display:flex; gap: 0.5rem;
  justify-content:flex-start;
}
.resources-dots .dot {
  width: 32px; height: 3px;
  background: rgba(216, 184, 112, 0.28);
  border:0; padding:0; cursor:pointer;
  transition: background 0.2s ease;
}
.resources-dots .dot.active { background: var(--gold-bright); }

.resources-dots { display: none; }

.news-events-v2-section {
  background: var(--cream);
  padding: 5rem 6vw 5rem;
}
.news-events-v2-header {
  max-width: 1280px; margin: 0 auto 2.4rem;
  display:flex; align-items:flex-end; justify-content:space-between;
  flex-wrap:wrap; gap: 1rem;
}
.news-events-v2-eyebrow {
  font-family: var(--sc);
  font-size: 1.5rem;
  letter-spacing: 0.22em;
  color: var(--navy);
  text-transform: uppercase;
  margin: 0;
  padding-bottom: 0.6rem;
  border-bottom: 2px solid var(--gold-bright);
}
.news-events-v2-discover {
  font-family: var(--sc);
  font-size: 1rem;
  letter-spacing: 0.2em;
  color: var(--burgundy);
  text-transform: uppercase;
  border-bottom: 1px solid var(--burgundy);
  padding-bottom: 2px;
  transition: opacity 0.2s;
}
.news-events-v2-discover:hover { opacity: 0.7; }

.news-events-v2-grid {
  max-width: 1280px; margin: 0 auto;
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2.4rem;
}
.news-events-v2-card {
  display:flex; flex-direction:column;
  text-decoration:none;
  background: #fff;
  border: 1px solid var(--border-ornate);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.news-events-v2-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 30px rgba(28, 47, 74, 0.16);
}
.news-events-v2-img {
  width: 100%; aspect-ratio: 4/3;
  background-color: #d8d2c8;
  background-size: cover;
  background-position: center;
}
.news-events-v2-meta-row {
  padding: 1.2rem 1.4rem 0;
}
.news-events-v2-meta {
  font-family: var(--sc);
  font-size: 0.9rem;
  letter-spacing: 0.18em;
  color: var(--burgundy);
  text-transform: uppercase;
}
.news-events-v2-title {
  font-family: var(--body);
  font-size: 1.45rem;
  line-height: 1.25;
  color: var(--navy);
  margin: 0.5rem 1.4rem 0.8rem;
  font-weight: 500;
}
.news-events-v2-cta {
  font-family: var(--sc);
  font-size: 0.9rem;
  letter-spacing: 0.18em;
  color: var(--gold);
  text-transform: uppercase;
  margin: 0 1.4rem 1.4rem;
  padding-top: 0.6rem;
  border-top: 1px solid var(--border-ornate);
}

.marlborough-scroller {
  position:relative;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  background-attachment: fixed;
  padding: 4.5rem 0;
  overflow: hidden;
  min-height: 450px;
}

.marlborough-scroller .scroller-overlay { display: none; }

.marlborough-scroller .scroller-inner {
  position:relative; z-index:2;
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 2rem;

}
.marlborough-scroller .scroller-eyebrow-wrap {
  display: flex; justify-content: flex-end;
}

.marlborough-scroller .scroller-eyebrow {
  font-family: var(--sc);
  font-size: 1.2rem;
  letter-spacing: 0.22em;
  color: var(--gold-bright);
  text-transform: uppercase;
  margin: 0 0 1.6rem 0;
  padding: 0.55rem 1.2rem 0.55rem 1rem;
  border-bottom: 2px solid var(--gold-bright);
  display: inline-block;
  background: linear-gradient(180deg, rgba(28, 47, 74, 0.82) 0%, rgba(28, 47, 74, 0.75) 100%);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);

}

.scroller-track {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.9rem;
  will-change: auto;
}
.scroller-item {
  flex: 0 0 auto;
  width: 460px;
  max-width: 100%;

  background: linear-gradient(180deg, rgba(28, 47, 74, 0.82) 0%, rgba(28, 47, 74, 0.74) 100%);
  border-left: 3px solid var(--gold-bright);
  padding: 1.2rem 1.35rem;
  color: var(--cream-faf5ef);
  display: flex; flex-direction: column; gap: 0.3rem;
  text-decoration: none;
  backdrop-filter: blur(3px);
  -webkit-backdrop-filter: blur(3px);
  transition: background 0.25s ease, transform 0.25s ease;
}
.scroller-item--link {
  cursor: pointer;
}
.scroller-item:hover {
  background: linear-gradient(180deg, rgba(28, 47, 74, 0.9) 0%, rgba(28, 47, 74, 0.82) 100%);
  transform: translateX(4px);
}
/* Block-theme parity: the home pattern wraps title+meta in a
   .scroller-item-body group (flow layout), so the card's own flex
   gap:0.3rem no longer falls between title and meta the way it does in
   the classic theme (direct flex children). Re-apply the same column
   gap on the wrapper so each card matches prod height; without it every
   card is ~4.8px short, which accumulates down the stacked mobile list
   and breaks news-section parity at narrow widths. */
.scroller-item-body {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
}
.scroller-item-title {
  font-family: var(--body);
  font-style: italic;
  font-size: 1.27rem;
  margin: 0;
  color: var(--cream-faf5ef);
  font-weight: 400;
  line-height: 1.2;
}
.scroller-item-meta {
  font-family: var(--sc);
  font-size: 0.72rem;
  letter-spacing: 0.16em;
  color: var(--gold-bright);
  text-transform: uppercase;
  margin: 0;
}

@media (max-width: 900px) {

  .hero-overlay {
    padding: 0 0 6vh 5vw;
  }
  
  .hero-overlay-oundle {
    padding: 0;
  }

  .hero-text-block {

    width: auto;
    max-width: 92vw;
    padding: 2.5rem 5vw 2.5rem 5vw;
    border-top-right-radius: clamp(80px, 14vw, 180px);
  }
  .hero-cathedral-v2 {
    
    width: clamp(63px, 15.7vw, 86px);
    margin: 0;
  }
  .hero-brand-row .hero-brand-text {

    font-size: clamp(0.95rem, 3.4vw, 1.2rem);
    letter-spacing: 0.12em;
    white-space: normal;
  }
  /* Match the BASE rule's selector list so the mobile clamp wins specificity
     (base uses `.hero-text-block h1.hero-headline` = 0,0,2,1; bare `.hero-headline`
     = 0,0,1,0 would lose even with !important because specificity beats !important
     at parity). Without this match, mobile renders the base rule's min (2.77rem
     = 44.32px at 390) instead of the intended 1.8rem (28.86px = live). */
  .hero-headline,
  h1.hero-headline,
  .hero-text-block h1.hero-headline {
    font-size: clamp(1.8rem, 7.4vw, 3.4rem) !important;
  }
}

@media (max-width: 480px) {
  .hero-headline {
    padding: 0 2vw;
  }
  .hero-text-block {
    padding: 2rem 4vw 2rem 4vw;
  }

  .pillars-section.pillars-v2 {
    padding: 3rem 1.2rem 4rem;
    min-height: auto;
  }
  .pillars-v2-grid {
    grid-template-columns: 1fr;
    gap: 1.6rem;
    max-width: 460px;
  }
  .pillar-v2-card {
    padding: 2rem 1.4rem 1.8rem;
  }
  /* Match prod: medallion shrinks to 110px at <=480px. Must carry !important +
     the figure selector to win over the base .pillar-v2-medallion 140px !important
     pin (otherwise the desktop 140 leaks onto mobile — was rendering 140 @<=480). */
  .pillar-v2-medallion,
  figure.wp-block-image.pillar-v2-medallion {
    width: 110px !important; height: 110px !important;
    max-width: 110px !important;
    margin: 0 auto 1rem;
  }

  .pillar-v2-blurb {
    max-height: 240px;
    opacity: 1;
    margin: 0 0 1.2rem;
  }

  .pillars-portico-bg {
    width: 100%; height: 100%; opacity: 0.65;
    object-fit: cover; object-position: center;
  }

  .resources-section { padding: 3.5rem 0 3rem; }
  .resources-header { padding: 0 5vw; margin-bottom: 1.6rem; }
  .resources-slider { padding: 0 5vw 1rem; }
  .resource-card { flex: 0 0 260px; padding: 1.6rem 1.2rem; }
  .resource-title { font-size: 1.6rem; }
  .resources-dots { padding: 0 5vw; }

  .news-events-v2-section { padding: 3.5rem 5vw 3.5rem; }
  .news-events-v2-header { margin-bottom: 1.6rem; }
  .news-events-v2-grid {
    grid-template-columns: 1fr;
    gap: 1.6rem;
    max-width: 460px;
    margin: 0 auto;
  }

  .marlborough-scroller { padding: 3rem 0; background-attachment: scroll; min-height: auto; }
  .marlborough-scroller .scroller-inner { padding: 0 1.5rem; }
  .scroller-track { align-items: stretch; }
  .scroller-item { width: 100%; padding: 1rem 1.2rem; }
  .scroller-item:hover { transform: none; }
  .scroller-item-title { font-size: 1.15rem; }
  .marlborough-scroller .scroller-eyebrow { margin-left: 0; }
  .scroller-item-title { font-size: 1.3rem; }
  .marlborough-scroller .scroller-eyebrow { font-size: 1.3rem; }
}

.menu-toggle {
  position: fixed;
  top: 1.2rem; right: 1.4rem;
  z-index: 200;
  width: 52px; height: 52px;
  background: rgba(28, 47, 74, 0.85);
  border: 1px solid var(--gold-bright);
  border-radius: 50%;
  cursor: pointer;
  display:flex; align-items:center; justify-content:center;
  flex-direction:column; gap: 5px;
  transition: background 0.2s ease, transform 0.2s ease;
}
.menu-toggle:hover { background: rgba(28, 47, 74, 0.96); transform: scale(1.05); }
.menu-toggle .bar {
  display:block;
  width: 22px; height: 2px;
  background: var(--gold-bright);
  transition: transform 0.3s ease, opacity 0.3s ease;
}
body.menu-open .menu-toggle .bar:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}
body.menu-open .menu-toggle .bar:nth-child(2) { opacity: 0; }
body.menu-open .menu-toggle .bar:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

/* Drawer containment refactor: the aside is a full-viewport fixed CLIP LAYER so the
   off-canvas sliding panel never grows document width (overflow-x:clip on :root cannot
   clip position:fixed). The slide lives on .menu-drawer-inner, clipped by the layer;
   the open/close animation is preserved. */
.menu-drawer {
  position: fixed;
  inset: 0;
  width: 100%;
  max-width: none;
  z-index: 199;
  overflow: hidden;          /* clips the off-canvas inner panel -> no document overflow */
  pointer-events: none;      /* layer is inert; the inner panel re-enables clicks */
  background: none;
  transform: none;
  box-shadow: none;
}
.menu-drawer-inner.menu-drawer-split {
  position: absolute;
  top: 0; right: 0; bottom: 0;
  width: 75%; height: 100%;
  background: var(--cream);
  display: flex; flex-direction: row;
  transform: translateX(100%);
  transition: transform 0.4s cubic-bezier(.66,.04,.41,.99);
  pointer-events: auto;
  overflow: hidden;
}
body.menu-open .menu-drawer-inner.menu-drawer-split {
  transform: translateX(0);
  box-shadow: -16px 0 40px rgba(0,0,0,0.18);
}
.menu-drawer-split .menu-drawer-links {
  flex: 1 1 50%;
  background: var(--cream);
  padding: 4.5rem 2.4rem 2.4rem 3.4rem;
  display: flex; flex-direction: column; gap: 0.6rem;
  position: relative;
  z-index: 2;
}

.menu-drawer-split .menu-drawer-links-secondary {
  margin-top: auto;
  display: flex; flex-direction: column;
  gap: 0.4rem;
  padding-top: 1.2rem;
}
.menu-drawer-links a.menu-drawer-link-small {
  font-size: 1.6rem;
  padding: 0.3rem 0;
  border-bottom: none;
  font-style: italic;
  color: var(--navy);
  opacity: 1;
}
.menu-drawer-links a.menu-drawer-link-small:hover {
  color: var(--burgundy, #7a2e3a);
  opacity: 1;
}
.menu-drawer-split .menu-drawer-content {
  flex: 1 1 50%;
  background: var(--navy);
  position: relative;
  display: flex; align-items: center; justify-content: center;
  padding: 3rem;
}

.menu-drawer-split .menu-drawer-logo {
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  z-index: 1;
  pointer-events: none;
  display: flex; align-items: center; justify-content: center;
  
  width: clamp(min(440px, 86vw), 60vw, 820px);
}
.menu-drawer-split .menu-drawer-logo img {
  
  width: clamp(min(440px, 86vw), 60vw, 820px);
  height: auto; display: block;
  filter: invert(1) brightness(2);
  opacity: 0.12;
}

/* Watermark variant — leave room for future fine-tuning without overriding the base */
.menu-drawer-split .menu-drawer-logo--watermark img {
  opacity: 0.12;
}

.menu-drawer-panels {
  position: relative; z-index: 2;
  width: 100%; max-width: 360px;
  color: var(--cream-faf5ef);
}
.drawer-panel {
  display: none;
  font-family: var(--body);
}
.drawer-panel.is-active { display: block; }
.drawer-panel-title {
  font-family: var(--sc);
  font-size: 1.4rem;
  letter-spacing: 0.2em;
  color: var(--gold-bright);
  text-transform: uppercase;
  margin: 0 0 1rem;
  padding-bottom: 0.5rem;
  border-bottom: 2px solid var(--gold-bright);
  display: inline-block;
}
.drawer-panel p, .drawer-panel-tagline {
  font-family: var(--body);
  font-style: italic;
  font-size: 1.4rem;
  line-height: 1.5;
  color: var(--cream-faf5ef);
  margin: 0;
}
.drawer-panel-tagline { font-style: italic; opacity: 0.92; }
.menu-drawer-links a {
  font-family: var(--body);
  font-style: italic;
  font-size: 2.2rem;
  color: var(--navy);
  text-decoration:none;
  transition: color 0.2s ease, padding-left 0.2s ease;
  border-bottom: 1px solid rgba(184, 168, 138, 0.4);
  padding: 0.45rem 0 0.5rem;
}
.menu-drawer-links a:hover {
  color: var(--burgundy);
  padding-left: 0.4rem;
}
.menu-drawer-content {
  flex: 1 1 50%;
  position:relative;
  background: var(--navy);
  overflow:hidden;
  display:flex; align-items:center; justify-content:center;
}
.menu-drawer-cathedral {
  position:absolute; inset:0;
  background-size: contain;
  background-repeat:no-repeat;
  background-position: center;
  opacity: 0.28;
}
.menu-drawer-tagline {
  position:relative; z-index:2;
  text-align:center;
  padding: 2rem;
  color: var(--cream-faf5ef);
  font-family: var(--body);
  font-style: italic;
  font-size: 1.5rem;
  line-height: 1.5;
}
.menu-drawer-tagline strong {
  display:block;
  font-family: var(--sc);
  font-style: normal;
  font-size: 1.2rem;
  letter-spacing: 0.22em;
  color: var(--gold-bright);
  text-transform: uppercase;
  margin-bottom: 1rem;
  font-weight: 500;
}

.menu-backdrop {
  position: fixed; inset:0;
  background: rgba(0,0,0,0.4);
  opacity: 0; pointer-events: none;
  z-index: 198;
  transition: opacity 0.3s ease;
}
body.menu-open .menu-backdrop {
  opacity: 1; pointer-events: auto;
}
body.menu-open { overflow: hidden; }

@media (max-width: 900px) {

  /* mobile: the sliding PANEL (now .menu-drawer-inner) goes full-screen; the clip
     layer .menu-drawer stays 100%/inset:0 from the base rule */
  .menu-drawer-inner.menu-drawer-split { width: 100%; max-width: 100%; flex-direction: column; }
  .menu-drawer-split .menu-drawer-links,
  .menu-drawer-split .menu-drawer-content { flex: 0 0 auto; width: 100%; }
  .menu-drawer-links {
    padding: 5.5rem 1.8rem 2rem 2rem;
    gap: 0.8rem;
  }
  .menu-drawer-links a { font-size: 1.8rem; padding: 0.5rem 0; }
  .menu-drawer-content { padding: 2rem 1.5rem; min-height: auto; }
  .menu-drawer-tagline { font-size: 1.05rem; padding: 0; }
  .menu-drawer-tagline strong { font-size: 0.9rem; }
  .menu-toggle { width: 46px; height: 46px; top: 0.9rem; right: 1rem; }
}

.bookstore-main {
  background: var(--cream);
}

.bookstore-categories-header {
  background: var(--cream, #f5f0e8);
  text-align: center;
  padding: 5rem 2rem 0;
}
.bookstore-categories-header__title {
  font-family: 'Cormorant SC', 'Cormorant Garamond', Garamond, serif;
  font-weight: 700;
  font-size: clamp(2rem, 3.5vw, 2.8rem);
  letter-spacing: 0.02em;
  color: var(--navy, #1c2f4a);
  margin: 0;
}

.bookstore-categories {
  background: var(--cream, #f5f0e8);
  padding: 3rem 2rem 5.5rem;
  position: relative;
}
.bookstore-categories::before,
.bookstore-categories::after {
  content: '';
  display: block;
  max-width: 1240px;
  margin: 0 auto;
  height: 1px;
  background: linear-gradient(90deg, transparent 0%, rgba(196, 163, 90, 0.4) 20%, rgba(196, 163, 90, 0.4) 80%, transparent 100%);
}
.bookstore-categories::before { margin-bottom: 3.6rem; }
.bookstore-categories::after  { margin-top: 3.6rem; }
.bookstore-categories__inner {
  max-width: 1240px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
}
.bookstore-categories__card {
  position: relative;
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: var(--navy, #1c2f4a);
  background: #fbf7f0;
  border: 1px solid rgba(196, 163, 90, 0.22);
  border-radius: 0.4rem;
  overflow: hidden;
  box-shadow: 0 1px 2px rgba(28, 47, 74, 0.04);
  transition: transform 0.45s ease, box-shadow 0.45s ease, border-color 0.45s ease;

  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.7s ease, transform 0.7s ease, box-shadow 0.45s ease, border-color 0.45s ease;
  transition-delay: calc(var(--card-index, 0) * 140ms);
}
.bookstore-categories__card.is-revealed {
  opacity: 1;
  transform: translateY(0);
}
.bookstore-categories__card:hover,
.bookstore-categories__card:focus-visible {
  border-color: rgba(196, 163, 90, 0.85);
  box-shadow: 0 14px 32px rgba(28, 47, 74, 0.14), 0 2px 6px rgba(28, 47, 74, 0.06);
  outline: none;
}
.bookstore-categories__art {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: rgba(196, 163, 90, 0.08);
}
.bookstore-categories__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  transform: scale(1.02);
  transition: transform 0.9s cubic-bezier(0.2, 0.7, 0.2, 1);
  will-change: transform;
}
.bookstore-categories__card:hover .bookstore-categories__img,
.bookstore-categories__card:focus-visible .bookstore-categories__img {
  transform: scale(1.09);
}
.bookstore-categories__art-veil {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(245, 240, 232, 0) 55%, rgba(28, 47, 74, 0.22) 100%);
  pointer-events: none;
  transition: background 0.45s ease;
}
.bookstore-categories__card:hover .bookstore-categories__art-veil {
  background: linear-gradient(180deg, rgba(245, 240, 232, 0) 45%, rgba(28, 47, 74, 0.32) 100%);
}
.bookstore-categories__body {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.55rem;
  padding: 1.7rem 1.6rem 1.7rem;

}
.bookstore-categories__body::before {
  content: '';
  position: absolute;
  left: 0;
  top: 1.7rem;
  bottom: 1.7rem;
  width: 2px;
  background: var(--gold, #c4a35a);
  transform: scaleY(0);
  transform-origin: top center;
  transition: transform 0.5s cubic-bezier(0.2, 0.7, 0.2, 1);
}
.bookstore-categories__card:hover .bookstore-categories__body::before,
.bookstore-categories__card:focus-visible .bookstore-categories__body::before {
  transform: scaleY(1);
}
.bookstore-categories__eyebrow {
  font-family: var(--sc, 'Cormorant SC', serif);
  font-size: 0.78rem;
  letter-spacing: 0.28em;
  color: var(--gold, #c4a35a);
  text-transform: uppercase;
  margin: 0;
}
.bookstore-categories__title {
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-size: 1.85rem;
  font-weight: 500;
  line-height: 1.15;
  color: var(--navy, #1c2f4a);
  margin: 0;
  position: relative;
  padding-bottom: 0.4rem;
}
.bookstore-categories__title::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: 36px;
  height: 1px;
  background: var(--gold, #c4a35a);
  transform-origin: left center;
  transition: width 0.5s cubic-bezier(0.2, 0.7, 0.2, 1);
}
.bookstore-categories__card:hover .bookstore-categories__title::after,
.bookstore-categories__card:focus-visible .bookstore-categories__title::after {
  width: 84px;
}
.bookstore-categories__cta {
  display: inline-flex;
  align-items: baseline;
  gap: 0.55rem;
  margin-top: 0.4rem;
  font-family: var(--sc, 'Cormorant SC', serif);
  font-size: 0.78rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--navy, #1c2f4a);
  opacity: 0.78;
  transition: color 0.35s ease, opacity 0.35s ease;
}
.bookstore-categories__cta-arrow {
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-size: 1.2rem;
  line-height: 1;
  display: inline-block;
  transform: translateX(0);
  transition: transform 0.35s cubic-bezier(0.2, 0.7, 0.2, 1);
  color: var(--gold, #c4a35a);
}
.bookstore-categories__card:hover .bookstore-categories__cta,
.bookstore-categories__card:focus-visible .bookstore-categories__cta {
  color: var(--navy, #1c2f4a);
  opacity: 1;
}
.bookstore-categories__card:hover .bookstore-categories__cta-arrow,
.bookstore-categories__card:focus-visible .bookstore-categories__cta-arrow {
  transform: translateX(6px);
}

@media (max-width: 900px) {
  .bookstore-categories { padding: 3.6rem 1.5rem 3.8rem; }
  .bookstore-categories::before { margin-bottom: 2.4rem; }
  .bookstore-categories::after  { margin-top: 2.4rem; }
  .bookstore-categories__inner {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.6rem;
  }
  .bookstore-categories__title { font-size: 1.7rem; }
}
@media (max-width: 600px) {
  .bookstore-categories__inner {
    grid-template-columns: 1fr;
  }
  .bookstore-categories__art { aspect-ratio: 16 / 10; }
}
@media (prefers-reduced-motion: reduce) {
  .bookstore-categories__card,
  .bookstore-categories__img,
  .bookstore-categories__cta-arrow,
  .bookstore-categories__title::after,
  .bookstore-categories__body::before {
    transition: none !important;
    transform: none !important;
  }
  .bookstore-categories__card { opacity: 1; }
}

.bookstore-intro {
  max-width: 880px;
  margin: 0 auto;
  padding: 4.5rem 2rem 2.5rem;
}
.bookstore-title {
  font-family: var(--display, 'Cormorant Garamond', serif);
  font-size: 3rem;
  font-weight: 600;
  color: var(--navy, #1c2f4a);
  text-align: center;
  margin: 0 0 1.4rem;
  letter-spacing: 0.01em;
}
.bookstore-content {
  font-family: var(--body, 'Inter', sans-serif);
  font-size: 1.1rem;
  line-height: 1.7;
  color: #333;
  text-align: center;
  margin-bottom: 1rem;
}

.best-selling-books {
  background: var(--cream, #f5f0e8);
  padding: 4.4rem 2rem 4.8rem;
}
.best-selling-books__header {
  max-width: 1280px;
  margin: 0 auto 2.6rem;
  display: flex;
  align-items: center;
  gap: 1.4rem;
}
.best-selling-books__title {
  font-family: var(--sc, 'Cormorant SC', serif);
  font-size: 1.55rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--navy, #1c2f4a);
  margin: 0;
  white-space: nowrap;
}
.best-selling-books__rule {
  flex: 1 1 auto;
  height: 1px;
  background: linear-gradient(to right, rgba(196, 163, 90, 0.55), rgba(196, 163, 90, 0));
}
.best-selling-books__grid {
  max-width: 1280px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2.4rem;
}
.bsb-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  text-decoration: none;
  color: inherit;
  padding: 1.6rem 1.2rem 1.8rem;
  background: #fbf8f2;
  border: 1px solid rgba(196, 163, 90, 0.35);
  border-radius: 2px;
  transition: transform 0.45s ease, box-shadow 0.45s ease, border-color 0.45s ease;
  will-change: transform;
}
.bsb-card:hover,
.bsb-card:focus-visible {
  transform: translateY(-4px);
  border-color: rgba(196, 163, 90, 0.75);
  box-shadow: 0 18px 36px -22px rgba(28, 47, 74, 0.45);
  outline: none;
}
.bsb-thumb-wrap {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 2 / 3;
  margin-bottom: 1.4rem;
  background: #ece4d3;
  overflow: hidden;
}
.bsb-thumb {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--sc, 'Cormorant SC', serif);
  font-size: 0.9rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(28, 47, 74, 0.45);
  transition: opacity 0.7s ease;
}
.bsb-thumb--placeholder {
  background: repeating-linear-gradient(
    135deg,
    #ece4d3 0,
    #ece4d3 12px,
    #e3d9c3 12px,
    #e3d9c3 24px
  );
}
.bsb-thumb--1 { opacity: 1; z-index: 1; }
.bsb-thumb--2 { opacity: 0; z-index: 2; }
.bsb-card:hover .bsb-thumb--1,
.bsb-card:focus-visible .bsb-thumb--1 { opacity: 0; }
.bsb-card:hover .bsb-thumb--2,
.bsb-card:focus-visible .bsb-thumb--2 { opacity: 1; }
.bsb-body {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.35rem;
  width: 100%;
}
.bsb-title {
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-size: 1.4rem;
  font-weight: 600;
  line-height: 1.25;
  color: var(--navy, #1c2f4a);
  margin: 0.2rem 0 0;
  letter-spacing: 0.005em;
}
.bsb-author {
  font-family: var(--sc, 'Cormorant SC', serif);
  font-size: 0.78rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(28, 47, 74, 0.7);
  margin: 0;
}
.bsb-price {
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--burgundy, #6b3a3a);
  margin: 0.4rem 0 0;
  letter-spacing: 0.04em;
}
@media (max-width: 900px) {
  .best-selling-books { padding: 3.2rem 1.4rem 3.6rem; }
  .best-selling-books__header { margin-bottom: 2rem; }
  .best-selling-books__title { font-size: 1.3rem; }
  .best-selling-books__grid {
    grid-template-columns: 1fr;
    gap: 1.8rem;
    max-width: 360px;
  }
  .bsb-thumb-wrap { margin-bottom: 1.2rem; }
}

.whats-on-section {
  background: var(--navy, #1c2f4a);
  color: var(--cream-faf5ef, #faf5ef);
  padding: 4rem 0 4.5rem;
}
.whats-on-header {
  max-width: 1280px;
  margin: 0 auto 2.2rem;
  padding: 0 2rem;
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  border-bottom: 1px solid rgba(216, 184, 112, 0.25);
  padding-bottom: 0.6rem;
}
.whats-on-eyebrow {
  font-family: var(--sc, 'Cormorant SC', serif);
  font-size: 1.2rem;
  letter-spacing: 0.18em;
  color: var(--gold-bright, #d8b870);
  text-transform: uppercase;
  margin: 0;
}
.whats-on-discover {
  font-family: var(--sc, 'Cormorant SC', serif);
  font-size: 0.85rem;
  letter-spacing: 0.18em;
  color: var(--gold-bright, #d8b870);
  text-transform: uppercase;
  text-decoration: none;
  border-bottom: 1px solid rgba(216, 184, 112, 0.4);
  padding-bottom: 0.15rem;
}
.whats-on-discover:hover {
  color: var(--cream-faf5ef, #faf5ef);
  border-bottom-color: var(--cream-faf5ef, #faf5ef);
}
.whats-on-scroller {
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  padding: 0 2rem 1rem;
}
.whats-on-track {
  display: flex;
  gap: 1.6rem;
  max-width: max-content;
  margin: 0 auto;
}
.whats-on-card {
  flex: 0 0 260px;
  scroll-snap-align: start;
  background: #233b5e;
  color: var(--cream-faf5ef, #faf5ef);
  text-decoration: none;
  border-radius: 0.4rem;
  border: 1px solid rgba(216, 184, 112, 0.18);
  overflow: hidden;
  transition: transform 0.3s ease, background 0.3s ease, border-color 0.3s ease;
  display: flex; flex-direction: column;
}
.whats-on-card:hover {
  transform: translateY(-4px);
  background: #2a4773;
  border-color: var(--gold-bright, #d8b870);
}
.whats-on-card-thumb {
  width: 100%;
  height: 280px;

  background-image: var(--thumb-url, none);
  background-size: cover;
  background-position: center;
  background-color: rgba(216, 184, 112, 0.10);
  border-bottom: 1px solid rgba(216, 184, 112, 0.18);
}
.whats-on-card-body {
  padding: 1.4rem 1.3rem 1.5rem;
  display: flex; flex-direction: column; gap: 0.5rem;
}
.whats-on-card-kind {
  font-family: var(--sc, 'Cormorant SC', serif);
  font-size: 0.78rem;
  letter-spacing: 0.2em;
  color: var(--gold-bright, #d8b870);
  text-transform: uppercase;
}
.whats-on-card-title {
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-style: italic;
  font-size: 1.5rem;
  margin: 0;
  font-weight: 400;
  line-height: 1.2;
  /* On dark navy card panel — cream text. Live target rgb(250,245,239). */
  color: rgb(250, 245, 239);
}
.whats-on-card-meta { font-size: 0.85rem; opacity: 0.8; }
.whats-on-card-cta {
  font-family: var(--sc, 'Cormorant SC', serif);
  font-size: 0.78rem;
  letter-spacing: 0.18em;
  color: var(--gold-bright, #d8b870);
  text-transform: uppercase;
  margin-top: 0.3rem;
}

@media (max-width: 720px) {
  .bookstore-title { font-size: 2.2rem; }
  .bookstore-intro { padding: 3rem 1.5rem 2rem; }
  .whats-on-section { padding: 3rem 0 3.5rem; }
  .whats-on-header { padding: 0 1.5rem; padding-bottom: 0.5rem; }
  .whats-on-card { flex: 0 0 220px; }
  .whats-on-card-thumb { height: 220px; }
  .whats-on-card-title { font-size: 1.3rem; }
}

.publication-main { background: var(--cream); }
.publication-intro {
  max-width: 880px; margin: 0 auto;
  padding: 4.5rem 2rem 2.5rem;
  text-align: center;
}
.publication-title {
  font-family: var(--display, 'Cormorant Garamond', serif);
  font-size: 3rem; font-weight: 600;
  color: var(--navy, #1c2f4a);
  margin: 0 0 1.4rem;
  letter-spacing: 0.01em;
}
.publication-mission {
  font-family: var(--body, 'Inter', sans-serif);
  font-size: 1.1rem; line-height: 1.7;
  color: #333; margin-bottom: 1rem;
}

.publication-slider-section {
  background: var(--cream);
  padding: 2rem 0 5rem;
}
.pub-slider-header {
  max-width: 1280px; margin: 0 auto 2rem;
  padding: 0 2rem;
  text-align: center;
}
.pub-slider-eyebrow {
  font-family: var(--sc, 'Cormorant SC', serif);
  font-size: 1.5rem; letter-spacing: 0.18em;
  color: var(--navy, #1c2f4a); text-transform: uppercase;
  margin: 0;
  border-bottom: 1px solid rgba(28, 47, 74, 0.2);
  padding-bottom: 0.6rem;
  display: inline-block;
}
.pub-slider-grid {
  max-width: 1280px; margin: 0 auto;
  padding: 0 2rem;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2.4rem;
}
.pub-slot {
  display: flex; flex-direction: column;
  background: var(--navy, #1c2f4a);
  color: var(--cream-faf5ef, #faf5ef);
  text-decoration: none;
  border-radius: 0.4rem;
  overflow: hidden;
  transition: transform 0.35s ease, box-shadow 0.35s ease;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.12);
}
.pub-slot:hover { transform: translateY(-6px); box-shadow: 0 18px 40px rgba(0, 0, 0, 0.22); }
.pub-slot-logo {
  background: var(--cream-faf5ef, #faf5ef);
  padding: 2.2rem 2rem;
  display: flex; align-items: center; justify-content: center;
  border-bottom: 4px solid var(--gold-bright, #d8b870);
}
.pub-slot-logo img {
  max-width: 200px; max-height: 240px;
  width: auto; height: auto;
  display: block;
}
.pub-slot-body {
  padding: 2rem 1.8rem 2.2rem;
  display: flex; flex-direction: column;
  text-align: center;
}
.pub-slot-name {
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-style: italic; font-size: 2rem; font-weight: 400;
  margin: 0 0 1rem; color: var(--cream-faf5ef, #faf5ef);
}
.pub-slot-blurb {
  font-size: 1rem; line-height: 1.55;
  margin: 0 0 1.4rem;
  color: rgba(245, 240, 232, 0.88);
}
.pub-slot-cta {
  font-family: var(--sc, 'Cormorant SC', serif);
  font-size: 0.85rem; letter-spacing: 0.2em;
  color: var(--gold-bright, #d8b870);
  text-transform: uppercase;
  margin-top: auto;
}

@media (max-width: 720px) {
  .publication-title { font-size: 2.2rem; }
  .publication-intro { padding: 3rem 1.5rem 2rem; }
  .pub-slider-grid { grid-template-columns: 1fr; gap: 2rem; padding: 0 1.5rem; }
  .pub-slot-logo { padding: 1.8rem 1.5rem; }
  .pub-slot-logo img { max-width: 160px; max-height: 200px; }
  .pub-slot-body { padding: 1.8rem 1.4rem 2rem; }
  .pub-slot-name { font-size: 1.6rem; }
}

.institute-intro-section {
  background: transparent;
  padding: 6rem 2.5rem 5rem;
  text-align: left;
  position: relative;
}
.institute-intro-inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 1rem;
}
.institute-intro-text {
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-style: normal;
  font-size: clamp(2rem, 3.6vw, 3.25rem);
  line-height: 1.18;
  font-weight: 300;
  color: var(--navy);
  margin: 0;
  letter-spacing: 0.005em;
}

.institute-intro-text .ii-name {
  font-size: 1em;
  font-weight: 400;
  color: var(--gold-bright) !important;
}
.institute-intro-text .ii-italic {
  font-style: italic;
  color: var(--navy);
}

.institute-intro-text .ii-gold {
  color: var(--navy);
  font-weight: 400;
}

.institute-intro-cta {
  margin-top: 2.4rem;
  display: flex;
  justify-content: flex-end;
}
.institute-intro-link {
  font-family: var(--sc);
  font-size: 1.25rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--gold-bright);
  text-decoration: none;
  border-bottom: 1px solid var(--gold-bright);
  padding-bottom: 0.25rem;
  transition: color 0.2s ease, border-color 0.2s ease;
}
.institute-intro-link:hover {
  color: var(--navy);
  border-bottom-color: var(--navy);
}

@media (max-width: 720px) {
  .institute-intro-section { padding: 3.5rem 1.5rem 3rem; }
  .institute-intro-inner { padding: 0; }
  .institute-intro-text { font-size: 1.5rem; line-height: 1.3; }
}

.af-about,
.dh-about,
.dp-about {
  position: relative;
  background: var(--cream-faf5ef, #faf5ef);
  color: var(--navy);
  overflow: hidden;
  padding: 6rem 2rem 4rem;
}
.af-about-inner,
.dh-about-inner,
.dp-about-inner {
  position: relative;
  z-index: 2;
  max-width: 820px;
  margin: 0 auto;
}
.af-about--no-image .af-about-inner,
.dh-about--no-image .dh-about-inner,
.dp-about--no-image .dp-about-inner {
  display: block;
}
.af-about-text,
.dh-about-text,
.dp-about-text {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.af-about-display,
.dh-about-display,
.dp-about-display {
  font-family: 'Cormorant Garamond', serif;
  font-style: italic;
  font-size: clamp(2.6rem, 5vw, 4.2rem);
  letter-spacing: 0.02em;
  margin: 0 0 0.4rem;
  font-weight: 500;
  line-height: 1;
}
.af-about-display { color: var(--gold); }
.dh-about-display { color: #17452a; }
.dp-about-display { color: var(--gold); }
.af-about-eyebrow,
.dh-about-eyebrow,
.dp-about-eyebrow {
  font-family: 'Cormorant SC', serif;
  font-size: clamp(1.5rem, 2.1vw, 2rem);
  letter-spacing: 0.06em;
  color: var(--navy);
  margin: 0;
  font-weight: 500;
}
.af-about-copy,
.dh-about-copy,
.dp-about-copy {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(1rem, 1.35vw, 1.2rem);
  line-height: 1.55;
  color: var(--navy);
  margin: 0;
}
.af-about-cta,
.dh-about-cta,
.dp-about-cta {
  font-family: 'Cormorant SC', serif;
  font-size: 0.9rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--navy);
  text-decoration: none;
  border: 1px solid var(--navy);
  background: transparent;
  padding: 0.75rem 1.4rem;
  align-self: flex-start;
  margin-top: 0.6rem;
  transition: background 0.2s ease, color 0.2s ease;
}
.dh-about-cta {
  border-color: #17452a;
  color: #17452a;
}
.af-about-cta:hover,
.dp-about-cta:hover {
  background: var(--navy);
  color: var(--cream-faf5ef, #faf5ef);
}
.dh-about-cta:hover {
  background: #17452a;
  color: var(--cream-faf5ef, #faf5ef);
}

@media (max-width: 720px) {
  .af-about,
  .dh-about,
  .dp-about { padding: 4.5rem 1.5rem 3rem; }
  .af-about-inner,
  .dh-about-inner,
  .dp-about-inner { text-align: center; }
  .af-about-text,
  .dh-about-text,
  .dp-about-text { align-items: center; }
  .af-about-cta,
  .dh-about-cta,
  .dp-about-cta { align-self: center; }
  .af-about-display,
  .dh-about-display,
  .dp-about-display { font-size: clamp(2rem, 9vw, 3rem); margin-top: 0.4rem; }
}

.dh-welcome-section,
.dh-mission-section {
  background: var(--cream-faf5ef, #faf5ef);
  color: var(--navy);
  padding: 5rem 2.5rem 4.5rem;
  position: relative;
}
.dh-welcome-section__inner,
.dh-mission-section__inner {
  max-width: 1080px;
  margin: 0 auto;
  padding: 0 1rem;
  text-align: left;
}
.dh-intro__mission {
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-style: normal;
  font-size: clamp(1.7rem, 3vw, 2.75rem);
  line-height: 1.22;
  font-weight: 300;
  color: var(--navy);
  margin: 0;
  letter-spacing: 0.005em;
}

.dh-intro__medallion {
  float: left;
  width: 109px;
  height: auto;
  margin: 0.15em 1.1rem 0.4rem -16px;
  shape-outside: circle(50%);
  -webkit-user-select: none;
  user-select: none;
}
.dh-intro__mission .ii-name {
  font-size: 1em;
  font-weight: 400;
  color: var(--gold);
}
.dh-intro__mission .ii-italic {
  font-style: italic;
  color: var(--navy);
}

.dh-welcome {
  margin-top: 0;
  padding-top: 0;
  border-top: 0;
  max-width: 960px;
  display: flex;
  align-items: flex-start;
  gap: 2rem;
}
.dh-welcome__text {
  flex: 1 1 auto;
  min-width: 0;
}
.dh-welcome__portrait {
  flex: 0 0 auto;
  width: 200px;
  margin: 0;
  border: 1px solid var(--border-ornate, rgba(28, 47, 74, 0.18));
  background: var(--cream, #faf5ef);
  overflow: hidden;
  aspect-ratio: 1 / 1;
}
.dh-welcome__portrait img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.dh-welcome__eyebrow {
  font-family: 'Cormorant SC', serif;
  font-size: clamp(1.9rem, 2.8vw, 2.4rem);
  letter-spacing: 0.06em;
  color: #17452a;
  margin: 0 0 1rem;
  font-weight: 500;
  text-transform: none;
  line-height: 1.15;
}
.dh-welcome__body {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(1.05rem, 1.35vw, 1.22rem);
  line-height: 1.6;
  color: var(--navy);
  margin: 0 0 1.1rem;
}
.dh-welcome__attribution {
  font-family: 'Cormorant SC', serif;
  font-size: 0.95rem;
  letter-spacing: 0.12em;
  color: var(--gold);
  margin: 0;
  font-weight: 500;
  text-transform: uppercase;
}
.dh-welcome__attribution-name { color: var(--navy); }
.dh-welcome__attribution-role { color: var(--gold); }

@media (max-width: 720px) {
  .dh-welcome-section,
  .dh-mission-section { padding: 3.5rem 1.5rem 3rem; }
  .dh-welcome-section__inner,
  .dh-mission-section__inner { padding: 0; }
  .dh-intro__mission { font-size: 1.4rem; line-height: 1.3; }
  
  .dh-intro__medallion {
    float: none;
    display: block;
    width: 73px;
    margin: 0 0 1rem 0;
    shape-outside: none;
  }
  .dh-welcome {
    margin-top: 0;
    padding-top: 0;
    border-top: 0;
    flex-direction: column;
    align-items: flex-start;
    gap: 1.2rem;
  }
  .dh-welcome__portrait {
    width: 130px;
    order: -1;  /* photo above text on mobile */
  }
  .dh-welcome__eyebrow { font-size: 1.7rem; }
  .dh-welcome__body { font-size: 1.02rem; line-height: 1.55; }
  .dh-welcome__attribution { font-size: 0.85rem; }
}

.dp-welcome-section {
  background: var(--cream-faf5ef, #faf5ef);
  color: var(--navy);
  padding: 5rem 2.5rem 4.5rem;
  position: relative;
}
.dp-welcome-section__inner {
  max-width: 1080px;
  margin: 0 auto;
  padding: 0 1rem;
  text-align: left;
}
.dp-welcome {
  margin-top: 0;
  padding-top: 0;
  border-top: 0;
  max-width: 960px;
  display: flex;
  align-items: flex-start;
  gap: 2rem;
}
.dp-welcome__text {
  flex: 1 1 auto;
  min-width: 0;
}
.dp-welcome__portrait {
  flex: 0 0 auto;
  width: 200px;
  margin: 0;
  border: 1px solid var(--border-ornate, rgba(28, 47, 74, 0.18));
  background: var(--cream, #faf5ef);
  overflow: hidden;
  aspect-ratio: 1 / 1;
}
.dp-welcome__portrait img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.dp-welcome__eyebrow {
  font-family: 'Cormorant SC', serif;
  font-size: clamp(1.9rem, 2.8vw, 2.4rem);
  letter-spacing: 0.06em;
  color: #17452a;
  margin: 0 0 0.5rem;
  font-weight: 500;
  text-transform: none;
  line-height: 1.15;
}
.dp-welcome__title {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(1.6rem, 2.4vw, 2.05rem);
  line-height: 1.2;
  color: var(--navy);
  margin: 0 0 1rem;
  font-weight: 500;
  letter-spacing: 0.01em;
}
.dp-welcome__title em {
  font-style: italic;
  color: var(--gold);
  font-weight: 500;
}
.dp-welcome__body {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(1.05rem, 1.35vw, 1.22rem);
  line-height: 1.6;
  color: var(--navy);
  margin: 0 0 1.1rem;
}
.dp-welcome__body p {
  margin: 0 0 1rem;
}
.dp-welcome__body p:last-child {
  margin-bottom: 0;
}
.dp-welcome__body em {
  font-style: italic;
}
.dp-welcome__attribution {
  font-family: 'Cormorant SC', serif;
  font-size: 0.95rem;
  letter-spacing: 0.12em;
  color: var(--gold);
  margin: 0;
  font-weight: 500;
  text-transform: uppercase;
}
.dp-welcome__attribution-name { color: var(--navy); }
.dp-welcome__attribution-role { color: var(--gold); }

@media (max-width: 720px) {
  .dp-welcome-section { padding: 3.5rem 1.5rem 3rem; }
  .dp-welcome-section__inner { padding: 0; }
  .dp-welcome {
    margin-top: 0;
    padding-top: 0;
    border-top: 0;
    flex-direction: column;
    align-items: flex-start;
    gap: 1.2rem;
  }
  .dp-welcome__portrait {
    width: 130px;
    order: -1;  /* photo above text on mobile */
  }
  .dp-welcome__eyebrow { font-size: 1.7rem; }
  .dp-welcome__title { font-size: 1.45rem; }
  .dp-welcome__body { font-size: 1.02rem; line-height: 1.55; }
  .dp-welcome__attribution { font-size: 0.85rem; }
}

.af-welcome-section {
  background: var(--cream-faf5ef, #faf5ef);
  color: var(--navy);
  padding: 5rem 2.5rem 4.5rem;
  position: relative;
}
.af-welcome-section__inner {
  max-width: 1080px;
  margin: 0 auto;
  padding: 0 1rem;
  text-align: left;
}
.af-welcome {
  margin-top: 0;
  padding-top: 0;
  border-top: 0;
  max-width: 960px;
  display: flex;
  align-items: flex-start;
  gap: 2rem;
}
.af-welcome__text {
  flex: 1 1 auto;
  min-width: 0;
}
.af-welcome__portrait {
  flex: 0 0 auto;
  width: 200px;
  margin: 0;
  border: 1px solid var(--border-ornate, rgba(28, 47, 74, 0.18));
  background: var(--cream, #faf5ef);
  overflow: hidden;
  aspect-ratio: 1 / 1;
}
.af-welcome__portrait img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.af-welcome__eyebrow {
  font-family: 'Cormorant SC', serif;
  font-size: clamp(1.9rem, 2.8vw, 2.4rem);
  letter-spacing: 0.06em;
  color: #9D4F44; /* Ad Fontes burgundy */
  margin: 0 0 0.5rem;
  font-weight: 500;
  text-transform: none;
  line-height: 1.15;
}
.af-welcome__title {
  font-family: 'Cormorant Garamond', serif;
  font-style: italic;
  font-size: clamp(1.6rem, 2.4vw, 2.05rem);
  line-height: 1.2;
  color: var(--navy);
  margin: 0 0 1rem;
  font-weight: 500;
  letter-spacing: 0.01em;
}
.af-welcome__body {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(1.05rem, 1.35vw, 1.22rem);
  line-height: 1.6;
  color: var(--navy);
  margin: 0 0 1.1rem;
}
.af-welcome__body p {
  margin: 0 0 1rem;
}
.af-welcome__body p:last-child {
  margin-bottom: 0;
}
.af-welcome__body em {
  font-style: italic;
}
.af-welcome__attribution {
  font-family: 'Cormorant SC', serif;
  font-size: 0.95rem;
  letter-spacing: 0.12em;
  color: var(--gold);
  margin: 0;
  font-weight: 500;
  text-transform: uppercase;
}
.af-welcome__attribution-name { color: #9D4F44; }
.af-welcome__attribution-role { color: var(--gold); }

@media (max-width: 720px) {
  .af-welcome-section { padding: 3.5rem 1.5rem 3rem; }
  .af-welcome-section__inner { padding: 0; }
  .af-welcome {
    margin-top: 0;
    padding-top: 0;
    border-top: 0;
    flex-direction: column;
    align-items: flex-start;
    gap: 1.2rem;
  }
  .af-welcome__portrait {
    width: 130px;
    order: -1; /* photo above text on mobile */
  }
  .af-welcome__eyebrow { font-size: 1.7rem; }
  .af-welcome__title { font-size: 1.45rem; }
  .af-welcome__body { font-size: 1.02rem; line-height: 1.55; }
  .af-welcome__attribution { font-size: 0.85rem; }
}

.af-current-issue-card {
  max-width: 780px;
  margin: 2.4rem auto 0;
  display: grid;
  grid-template-columns: minmax(144px, 224px) minmax(0, 1fr);
  gap: clamp(1.4rem, 3.2vw, 2.4rem);
  align-items: center;
  padding: clamp(1.1rem, 2.4vw, 1.8rem);
  background-color: #f4ead4; /* parchment cream fallback */
  background-image: url('images/parchment-bg-2.png');
  background-size: cover;
  background-position: center;
  border: 1px solid rgba(157, 79, 68, 0.45); /* burgundy edge */
  box-shadow: 0 18px 42px rgba(28, 47, 74, 0.10);
  color: #2b1d18; /* brown/black body text */
  position: relative;
  overflow: hidden;
}
.af-current-issue-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 18% 10%, rgba(157, 79, 68, 0.08), transparent 38%);
  pointer-events: none;
}
.af-current-issue-card__cover,
.af-current-issue-card__body {
  position: relative;
  z-index: 1;
}
.af-current-issue-card__cover {
  margin: 0;
  background: rgba(245, 240, 232, 0.5);
  border: 1px solid rgba(157, 79, 68, 0.55);
  box-shadow: 0 14px 30px rgba(0, 0, 0, 0.18);
}
.af-current-issue-card__cover img {
  display: block;
  width: 100%;
  height: auto;
}
.af-current-issue-card__eyebrow {
  font-family: var(--sc, 'Cormorant SC', serif);
  font-size: 0.82rem;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: #9D4F44; /* Ad Fontes red — eyebrow */
  margin: 0 0 0.8rem;
}
.af-current-issue-card__title {
  font-family: var(--display, 'Cormorant Garamond', serif);
  font-weight: 500;
  font-style: italic;
  font-size: clamp(1.5rem, 2.8vw, 2.15rem); 
  line-height: 1.04;
  color: #9D4F44; /* Ad Fontes red — header */
  margin: 0 0 0.38rem;
}
.af-current-issue-card__subtitle {
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-style: italic;
  font-size: 1.0rem; 
  color: rgba(43, 29, 24, 0.78);
  margin: 0 0 0.7rem;
}
.af-current-issue-card__description {
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-size: 0.92rem; 
  line-height: 1.5;
  color: #2b1d18; /* brown/black body */
  margin: 0 0 1.0rem;
  max-width: 56ch;
}
.af-current-issue-card__cta {
  display: inline-block;
  font-family: var(--sc, 'Cormorant SC', serif);
  font-size: 0.95rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #9D4F44;
  text-decoration: none;
  border-bottom: 1px solid #9D4F44;
  padding-bottom: 0.2rem;
  transition: color 0.2s ease, border-color 0.2s ease;
}
.af-current-issue-card__cta:hover,
.af-current-issue-card__cta:focus {
  color: #7A3A32;
  border-bottom-color: #7A3A32;
}

@media (max-width: 900px) {
  .af-current-issue-card {
    grid-template-columns: minmax(140px, 220px) minmax(0, 1fr);
  }
}
@media (max-width: 640px) {
  .af-current-issue-card {
    grid-template-columns: 1fr;
    text-align: center;
  }
  .af-current-issue-card__cover {
    max-width: 220px;
    margin: 0 auto;
  }
  .af-current-issue-card__description {
    margin-left: auto;
    margin-right: auto;
  }
}

.dh-main { background: var(--cream); }

.dh-courses {

  background:

    linear-gradient(180deg, rgba(255,255,255,0.04) 0%, rgba(255,255,255,0.02) 100%),

    repeating-linear-gradient(45deg, rgba(255,255,255,0.018) 0px, rgba(255,255,255,0.018) 1px, transparent 1px, transparent 4px),
    repeating-linear-gradient(-45deg, rgba(0,0,0,0.025) 0px, rgba(0,0,0,0.025) 1px, transparent 1px, transparent 4px),

    #17452a;
  padding: 2.1rem 2rem 2.6rem;
  color: var(--cream-faf5ef);
  position: relative;
}

.dh-courses::before {
  content: "";
  position: absolute; inset: 0;
  pointer-events: none;
  box-shadow: inset 0 8px 24px rgba(0,0,0,0.20), inset 0 -8px 24px rgba(0,0,0,0.20);
}
.dh-courses-header {
  max-width: 1280px;
  margin: 0 auto 1.05rem;
  text-align: center;
}
.dh-courses-eyebrow {

  font-family: 'Cormorant SC', serif;
  font-size: 1.32rem;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--cream-faf5ef);
  margin: 0;
  font-weight: 500;
}

.dh-tabs-scroller {
  position: relative;
  max-width: 1280px;
  margin: 0 auto 1.3rem;
  display: flex;
  align-items: stretch;
  border-bottom: 1px solid rgba(245, 240, 232, 0.25);
}
.dh-tabs-scroller::before,
.dh-tabs-scroller::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 1px;
  width: 56px;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.25s ease;
  z-index: 2;
}
.dh-tabs-scroller::before {
  left: 0;
  background: linear-gradient(to right, #17452a 0%, rgba(23, 69, 42, 0.85) 40%, rgba(23, 69, 42, 0) 100%);
}
.dh-tabs-scroller::after {
  right: 0;
  background: linear-gradient(to left, #17452a 0%, rgba(23, 69, 42, 0.85) 40%, rgba(23, 69, 42, 0) 100%);
}
.dh-tabs-scroller.is-overflowing:not(.is-at-start)::before { opacity: 1; }
.dh-tabs-scroller.is-overflowing:not(.is-at-end)::after    { opacity: 1; }
.dh-tabs-nav {
  flex: 0 0 auto;
  align-self: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: 1px solid var(--gold-bright);
  background: transparent;
  color: var(--gold-bright);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 0;
  margin-bottom: 0.45rem;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.25s ease, background 0.2s ease, color 0.2s ease, transform 0.2s ease;
  -webkit-appearance: none;
  appearance: none;
  line-height: 0;
  z-index: 3;
}
.dh-tabs-nav svg { display: block; }
.dh-tabs-nav:hover { background: var(--gold-bright); color: #17452a; transform: scale(1.08); }
.dh-tabs-nav:focus-visible { outline: 2px solid var(--gold-bright); outline-offset: 3px; }
.dh-tabs-nav--prev { margin-right: 0.4rem; }
.dh-tabs-nav--next { margin-left: 0.4rem; }
.dh-tabs-scroller.is-overflowing:not(.is-at-start) .dh-tabs-nav--prev,
.dh-tabs-scroller.is-overflowing:not(.is-at-end)   .dh-tabs-nav--next {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.dh-tabs {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-wrap: nowrap;
  gap: 0;
  justify-content: flex-start;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-behavior: smooth;
  scroll-snap-type: x proximity;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.dh-tabs::-webkit-scrollbar { display: none; }
.dh-tab {
  font-family: 'Cormorant SC', serif;
  font-size: 0.98rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--cream-faf5ef);
  background: transparent;
  border: none;
  padding: 0.72rem 1.35rem;
  cursor: pointer;
  position: relative;
  transition: color 0.2s ease;
  white-space: nowrap;
  flex-shrink: 0;
  scroll-snap-align: start;
}
.dh-tab:hover { color: var(--gold-bright); }
.dh-tab.is-active {
  color: var(--gold-bright);
  font-weight: 700;
}
.dh-tab.is-active::after {
  content: '';
  position: absolute;
  left: 1.35rem; right: 1.35rem;
  bottom: -1px;
  height: 2px;
  background: var(--gold-bright);
}

.dh-tab-panels {
  max-width: 1280px;
  margin: 0 auto;
  position: relative;
}
.dh-tab-panel {
  display: none;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: 2.6rem;
  align-items: stretch;
  min-height: 430px;
  animation: dhFadeIn 0.35s ease;
}
.dh-tab-panel.is-active { display: grid; }
@keyframes dhFadeIn {
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: translateY(0); }
}

.dh-panel-image {
  position: relative;
  overflow: hidden;
  border-radius: 0.25rem;
  background: rgba(245, 240, 232, 0.06);
  min-height: 430px;
  max-height: 470px;
}
.dh-panel-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.dh-panel-body {
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
  padding: 0.5rem 0.35rem 0;
}

.dh-panel-subject {
  font-family: 'Cormorant SC', serif;
  font-size: 0.82rem;
  letter-spacing: 0.34em;
  text-transform: uppercase;
  color: var(--cream-faf5ef);
  margin: 0 0 0.15rem;
  font-weight: 500;
  opacity: 0.92;
  padding-bottom: 0.45rem;
  border-bottom: 1px solid rgba(216, 184, 112, 0.45);
  display: inline-block;
  align-self: flex-start;
}

.dh-panel-meta {
  font-family: 'Cormorant SC', serif;
  font-size: 0.92rem;
  letter-spacing: 0.20em;
  text-transform: uppercase;
  color: var(--gold-bright);
  margin: 0;
  font-weight: 500;
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem 0.65rem;
  align-items: center;
}
.dh-panel-divider { color: var(--cream-faf5ef); opacity: 0.5; }

.dh-panel-title {
  font-family: 'Cormorant Garamond', serif;
  font-style: italic;
  font-size: clamp(2.1rem, 3.3vw, 3rem);
  color: var(--cream-faf5ef);
  margin: 0.15rem 0 0.3rem;
  line-height: 1.06;
  font-weight: 400;
  transition: color 0.2s ease;
}
.dh-panel-title:hover { color: var(--gold-bright); }

.dh-panel-quote {
  margin: 0.4rem 0 0.55rem;
  padding-left: 1.3rem;
  border-left: 3px solid var(--gold-bright);
}
.dh-panel-quote p {
  font-family: 'Cormorant Garamond', serif;
  font-style: italic;
  font-size: 1.18rem;
  line-height: 1.55;
  color: var(--cream-faf5ef);
  margin: 0;
}

.dh-panel-cta {
  font-family: 'Cormorant SC', serif;
  font-size: 0.95rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #17452a;
  background: var(--cream-faf5ef);
  text-decoration: none;
  padding: 0.78rem 1.55rem;
  align-self: flex-end;
  margin-top: auto;
  transition: background 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
  display: inline-block;
}
.dh-panel-cta:hover,
.dh-panel-cta:focus-visible {
  background: var(--gold-bright);
  color: #17452a;
  text-decoration: none;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.18);
}
.dh-panel-cta:focus-visible {
  outline: 2px solid var(--gold-bright);
  outline-offset: 3px;
}

@media (max-width: 768px) {
  .dh-courses { padding: 1.8rem 1rem 2.6rem; }
  .dh-tabs-scroller { padding: 0 0.5rem; }
  .dh-tabs-scroller::before { left: 0.5rem; }
  .dh-tabs-scroller::after  { right: 0.5rem; }
  .dh-tabs-scroller::before,
  .dh-tabs-scroller::after { width: 44px; }
  .dh-tabs-nav { width: 26px; height: 26px; margin-bottom: 0.4rem; }
  .dh-tabs-nav--prev { margin-right: 0.25rem; }
  .dh-tabs-nav--next { margin-left: 0.25rem; }
  .dh-tab { padding: 0.7rem 1rem; font-size: 0.88rem; letter-spacing: 0.16em; }
  .dh-tab-panel { grid-template-columns: 1fr; gap: 1.5rem; min-height: 0; }
  .dh-panel-image { min-height: 240px; max-height: 320px; }
  .dh-panel-cta { align-self: flex-start; margin-top: 0.55rem; }
}

.dh-testimonials {
  background: var(--cream);
  padding: 2.4rem 1.5rem 2.6rem;
  position: relative;
  border-top: 1px solid rgba(28, 47, 74, 0.08);
  border-bottom: 1px solid rgba(28, 47, 74, 0.08);
}
.dh-testimonials__inner {
  max-width: 920px;
  margin: 0 auto;
  text-align: center;
}
.dh-testimonials__eyebrow {
  font-family: 'Cormorant SC', serif;
  font-size: 0.98rem;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--gold);
  margin: 0 0 1.3rem;
  font-weight: 500;
}
.dh-testimonials__stage {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
}
.dh-testimonials__viewport {
  position: relative;
  min-height: 220px;
  flex: 1 1 auto;
  min-width: 0;
}
.dh-testimonials__nav {
  flex: 0 0 auto;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  border: 1px solid var(--gold);
  background: transparent;
  color: var(--gold);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 0;
  transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease, opacity 0.25s ease;
  -webkit-appearance: none;
  appearance: none;
  line-height: 0;
}
.dh-testimonials__nav svg { display: block; }
.dh-testimonials__nav:hover {
  background: var(--gold);
  color: var(--cream);
  transform: scale(1.06);
}
.dh-testimonials__nav:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 3px;
}
.dh-testimonials[data-current-index="0"] .dh-testimonials__nav--prev {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}
.dh-testimonial {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1.1rem;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.6s ease;
  padding: 0 0.5rem;
}
.dh-testimonial.is-active {
  opacity: 1;
  visibility: visible;
  position: relative;
}
.dh-testimonial__quote {
  margin: 0;
  padding: 0;
  border: none;
  max-width: 760px;
}
.dh-testimonial__quote p {
  font-family: 'Cormorant Garamond', serif;
  font-style: italic;
  font-size: clamp(1.05rem, 1.55vw, 1.28rem);
  line-height: 1.55;
  color: var(--navy);
  margin: 0;
}
.dh-testimonial__quote p::before { content: "\201C"; margin-right: 0.1em; }
.dh-testimonial__quote p::after  { content: "\201D"; margin-left: 0.1em; }
.dh-testimonial__attr {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.15rem;
  margin-top: 0.2rem;
}
.dh-testimonial__name {
  font-family: 'Cormorant SC', serif;
  font-size: 1.02rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--gold);
  font-weight: 600;
}
.dh-testimonial__role {
  font-family: 'Cormorant Garamond', serif;
  font-size: 0.95rem;
  font-style: italic;
  color: var(--navy);
  opacity: 0.7;
}
.dh-testimonials__dots {
  display: flex;
  justify-content: center;
  gap: 0.55rem;
  margin-top: 1.3rem;
}
.dh-testimonials__dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  border: 1px solid var(--gold);
  background: transparent;
  padding: 0;
  cursor: pointer;
  transition: background 0.2s ease, transform 0.2s ease;
}
.dh-testimonials__dot:hover { transform: scale(1.15); }
.dh-testimonials__dot.is-active { background: var(--gold); }

@media (max-width: 768px) {
  .dh-testimonials { padding: 2rem 1rem 2.2rem; }
  .dh-testimonials__viewport { min-height: 280px; }
  .dh-testimonial__quote p { font-size: 1.02rem; line-height: 1.5; }
  .dh-testimonials__stage { gap: 0.35rem; }
  .dh-testimonials__nav { width: 34px; height: 34px; }
}

.dp-main { background: var(--cream); color: var(--text-dark, #1c1c1c); }

.dp-bg-cream { background: var(--cream); }
.dp-bg-paper { background: var(--cream-faf5ef, #faf5ef); }

.dp-block { padding: 4rem 2rem; position: relative; overflow: hidden; }
.dp-block-inner {
  max-width: 1200px; margin: 0 auto;
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 4rem; align-items: center;
}

.dp-block.dp-img-right .dp-block-text       { order: 1; padding-right: 1rem; }
.dp-block.dp-img-right .dp-block-image-wrap { order: 2; }

.dp-block.dp-img-left .dp-block-text       { order: 2; padding-left: 1rem; }
.dp-block.dp-img-left .dp-block-image-wrap { order: 1; }

.dp-block-eyebrow {
  font-family: var(--sc, 'Cormorant SC', serif);
  font-size: 0.85rem; letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--gold, #c4a35a);
  margin: 0 0 0.8rem;
}
.dp-block-title {
  font-family: var(--sc, 'Cormorant SC', serif);
  font-size: clamp(2.2rem, 4vw, 3rem);
  font-weight: 600; line-height: 1.1;
  color: var(--navy, #1c2f4a);
  margin: 0 0 1.4rem;
}
.dp-block-body {
  font-family: var(--body, 'Inter', sans-serif);
  font-size: 1rem; line-height: 1.7;
  color: #333; margin-bottom: 1.6rem;
}
.dp-block-body p { margin: 0 0 1rem; }
.dp-block-body p:last-child { margin-bottom: 0; }

.dp-block-cta {
  display: inline-flex; align-items: center; gap: 1rem;
  padding: 0.8rem 1.4rem 0.8rem 1.6rem;
  background: transparent;
  border: 1px solid var(--navy, #1c2f4a);
  color: var(--navy, #1c2f4a);
  text-decoration: none;
  font-family: var(--sc, 'Cormorant SC', serif);
  font-size: 0.85rem; letter-spacing: 0.22em;
  text-transform: uppercase;
  border-radius: 999px;
  transition: background 0.25s ease, color 0.25s ease, transform 0.25s ease;
}
.dp-block-cta:hover { background: var(--navy, #1c2f4a); color: var(--cream); transform: translateY(-2px); }
.dp-block-cta-arrow {
  display: inline-flex; align-items: center; justify-content: center;
  width: 2rem; height: 2rem; border-radius: 50%;
  background: var(--gold, #c4a35a); color: #fff;
  font-size: 1rem;
}
.dp-block-cta-center { margin: 0 auto; }
.dp-block-cta-group {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem 0.9rem;
  align-items: center;
}

.dp-block-image-wrap { display: flex; justify-content: center; align-items: center; }
.dp-block-image {
  width: 100%; max-width: 520px;
  aspect-ratio: 1 / 1;
  background: var(--cream);
  border-radius: 4px;
  overflow: hidden;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 18px 48px rgba(28, 47, 74, 0.12);
}
.dp-block-image img {
  max-width: 75%; max-height: 75%;
  width: auto; height: auto;
  object-fit: contain;
  display: block;
}

.dp-block-image.dp-block-card-navy {
  background: var(--navy);
  box-shadow: 0 18px 48px rgba(28, 47, 74, 0.32);
}

.dp-block-image.dp-block-card-gold {
  background: var(--cream);
  box-shadow: 0 18px 48px rgba(28, 47, 74, 0.12);
}

.reveal-left,
.reveal-right,
.reveal-up {
  opacity: 0;
  transition: opacity 0.9s ease-out, transform 0.9s cubic-bezier(0.22, 0.61, 0.36, 1);
  will-change: opacity, transform;
}
.reveal-left  { transform: translateX(-60px); }
.reveal-right { transform: translateX(60px); }
.reveal-up    { transform: translateY(40px); }
.reveal-left.is-revealed,
.reveal-right.is-revealed,
.reveal-up.is-revealed {
  opacity: 1;
  transform: translate(0, 0);
}
@media (prefers-reduced-motion: reduce) {
  .reveal-left, .reveal-right, .reveal-up {
    opacity: 1; transform: none; transition: none;
  }
}

.dp-bestsellers {
  padding: 4rem 2rem 6rem;
  background: var(--navy, #1c2f4a);
}
.dp-bestsellers-header {
  text-align: center; max-width: 800px; margin: 0 auto 3rem;
}
.dp-bestsellers-eyebrow {
  font-family: var(--sc, 'Cormorant SC', serif);
  font-size: 0.85rem; letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--gold, #c4a35a);
  margin: 0 0 0.8rem;
}
.dp-bestsellers-title {
  font-family: var(--display, 'Cormorant Garamond', serif);
  font-size: clamp(2.4rem, 4.5vw, 3.2rem);
  font-weight: 600;
  color: var(--gold, #c4a35a); 
  margin: 0;
}
.dp-bestsellers-grid {
  max-width: 1200px; margin: 0 auto;
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 2.5rem;
}
.dp-book {
  display: flex; flex-direction: column;
  text-decoration: none; color: inherit;
  transition: transform 0.3s ease;
}
.dp-book:hover { transform: translateY(-4px); }
.dp-book-cover {
  width: 100%; aspect-ratio: 3 / 4;
  background: var(--cream);
  display: flex; align-items: center; justify-content: center;
  overflow: hidden;
  border: 1px solid rgba(28, 47, 74, 0.08);
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.08);
}
.dp-book-cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.dp-book-cover-placeholder { background: var(--cream); }
.dp-book-meta { text-align: center; padding: 1.2rem 0.5rem 0; }

.dp-bestsellers .dp-book-title {
  font-family: var(--display, 'Cormorant Garamond', serif);
  font-size: 1.15rem; font-weight: 600;
  color: var(--gold, #c4a35a);
  margin: 0 0 0.3rem;
  line-height: 1.3;
}
.dp-bestsellers .dp-book-author {
  font-family: var(--body, 'Source Sans Pro', sans-serif);
  font-size: 0.85rem;
  font-style: italic;
  color: var(--cream, #f5f0e8);
  margin: 0 0 0.6rem;
  line-height: 1.3;
}
/* Fallback for any dp-book rendered OUTSIDE the bestsellers section
 (keep the original parchment-palette colors) */
.dp-book-title {
  font-family: var(--display, 'Cormorant Garamond', serif);
  font-size: 1.15rem; font-weight: 600;
  color: var(--navy, #1c2f4a);
  margin: 0 0 0.3rem;
  line-height: 1.3;
}
.dp-book-author {
  font-family: var(--body, 'Source Sans Pro', sans-serif);
  font-size: 0.85rem;
  font-style: italic;
  color: var(--navy-soft, #4a5a76);
  margin: 0 0 0.6rem;
  line-height: 1.3;
}
.dp-book-cta {
  font-family: var(--sc, 'Cormorant SC', serif);
  font-size: 0.78rem; letter-spacing: 0.22em;
  color: var(--gold, #c4a35a);
  text-transform: uppercase;
}

.dp-coming-soon {
  max-width: 980px;
  margin: 3.8rem auto 0;
  display: grid;
  grid-template-columns: minmax(180px, 280px) minmax(0, 1fr);
  gap: clamp(1.8rem, 4vw, 3rem);
  align-items: center;
  padding: clamp(1.4rem, 3vw, 2.25rem);
  background: var(--cream, #f5f0e8);
  border: 1px solid rgba(196, 163, 90, 0.6);
  box-shadow: 0 18px 42px rgba(0, 0, 0, 0.28);
  color: var(--navy, #1c2f4a);
  position: relative;
  overflow: hidden;
}
.dp-coming-soon::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 18% 10%, rgba(216, 184, 112, 0.20), transparent 34%);
  pointer-events: none;
}
.dp-coming-soon__cover,
.dp-coming-soon__body {
  position: relative;
  z-index: 1;
}
.dp-coming-soon__cover {
  margin: 0;
  background: rgba(245, 240, 232, 0.08);
  border: 1px solid rgba(216, 184, 112, 0.65);
  box-shadow: 0 14px 30px rgba(0, 0, 0, 0.25);
}
.dp-coming-soon__cover img {
  display: block;
  width: 100%;
  height: auto;
}

.dp-coming-soon__eyebrow {
  font-family: var(--sc, 'Cormorant SC', serif);
  font-size: 0.82rem;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--gold, #c4a35a);
  margin: 0 0 0.8rem;
}
.dp-coming-soon__title {
  font-family: var(--display, 'Cormorant Garamond', serif);
  font-weight: 500;
  font-size: clamp(1.85rem, 3.4vw, 2.65rem);
  line-height: 1.04;
  color: var(--navy, #1c2f4a);
  margin: 0 0 0.45rem;
}
.dp-coming-soon__subtitle,
.dp-coming-soon__author,
.dp-coming-soon__description {
  font-family: var(--body, 'Cormorant Garamond', serif);
  margin: 0;
}
.dp-coming-soon__subtitle {
  font-style: italic;
  font-size: 1.22rem;
  color: rgba(28, 47, 74, 0.85);
  margin-bottom: 0.85rem;
}
.dp-coming-soon__author {
  font-size: 1.03rem;
  color: var(--gold, #c4a35a);
  margin-bottom: 1rem;
}
.dp-coming-soon__description {
  font-size: 1.08rem;
  line-height: 1.58;
  color: rgba(28, 47, 74, 0.8);
  max-width: 58ch;
}
.dp-bestsellers-footer { text-align: center; margin-top: 3.5rem; }

@media (max-width: 900px) {
  .dp-block { padding: 2.5rem 1.5rem; }
  .dp-block-inner {
    grid-template-columns: 1fr; gap: 2rem;
  }

  .dp-block.dp-img-left .dp-block-image-wrap,
  .dp-block.dp-img-right .dp-block-image-wrap { order: 1; }
  .dp-block.dp-img-left .dp-block-text,
  .dp-block.dp-img-right .dp-block-text { order: 2; padding: 0; }
  .dp-block-image { max-width: 360px; }
  .dp-bestsellers-grid { grid-template-columns: repeat(2, 1fr); gap: 1.5rem; }
  .dp-bestsellers { padding: 3rem 1.5rem 4rem; }
  .dp-coming-soon {
    grid-template-columns: minmax(140px, 220px) minmax(0, 1fr);
  }
}
@media (max-width: 640px) {
  .dp-coming-soon {
    grid-template-columns: 1fr;
    text-align: center;
  }
  .dp-coming-soon__cover {
    max-width: 220px;
    margin: 0 auto;
  }
  .dp-coming-soon__description {
    margin-left: auto;
    margin-right: auto;
  }
}
@media (max-width: 540px) {
  .dp-bestsellers-grid { grid-template-columns: 1fr; }
}

.dp-block-text {
  position: relative;
  padding: 2rem 2.2rem;
  isolation: isolate;
}
.dp-block-text::before {
  content: "";
  position: absolute;
  inset: 0;
  transform: translate(-1.5rem, 1.2rem);
  z-index: -1;
  border-radius: 4px;
  box-shadow: 0 18px 48px rgba(0, 0, 0, 0.18);
}

/* Press card (Davenant Press, image on right → text on left, navy panel behind text) */
.dp-block.dp-img-right .dp-block-text::before { background: var(--navy); }
.dp-block.dp-img-right .dp-block-title { color: var(--gold); }
.dp-block.dp-img-right .dp-block-body  { color: var(--cream); }
.dp-block.dp-img-right .dp-block-cta {
  border-color: var(--cream);
  color: var(--cream);
}

.dp-block.dp-img-right .dp-block-cta:hover {
  color: var(--gold-bright);
  border-color: var(--gold-bright);
}
.dp-block.dp-img-right .dp-block-cta:hover .dp-block-cta-arrow {
  background: var(--gold-bright);
  border-color: var(--gold-bright);
}

.dp-block.dp-img-left .dp-block-text::before { background: #6E3637; }
.dp-block.dp-img-left .dp-block-title { color: var(--gold-bright); }
.dp-block.dp-img-left .dp-block-body  { color: var(--cream); }
.dp-block.dp-img-left .dp-block-cta {
  border-color: var(--cream);
  color: var(--cream);
}
.dp-block.dp-img-left .dp-block-cta:hover {
  color: var(--gold-bright);
  border-color: var(--gold-bright);
}
.dp-block.dp-img-left .dp-block-cta:hover .dp-block-cta-arrow {
  background: var(--gold-bright);
  border-color: var(--gold-bright);
}

.dp-block-image.dp-block-card-navy {
  background: var(--cream);
}

/* Responsive: ≤900px the grid already collapses to 1-col stack; tighten the offset */
@media (max-width: 900px) {
  .dp-block-text::before {
    transform: translate(-0.6rem, 0.8rem);
  }
}
@media (max-width: 540px) {
  .dp-block-text::before {
    transform: translate(-0.4rem, 0.6rem);
  }
}

.page-about {

  margin-top: 0;
}
.about-welcome {

  padding: 24px 85px 70px 85px;
  overflow: hidden;
  position: relative;
  background: var(--cream, #f5f0e8);
}

.about-welcome__inner {
  max-width: 1200px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 3fr 2fr;
  align-items: center;
  gap: 60px;
}

.about-welcome__text-col {
  display: flex;
  flex-direction: column;
  gap: 36px;
  min-width: 0;
}
.about-welcome__text { min-width: 0; }
.about-welcome__text p {

  font-family: 'Cormorant Garamond', Garamond, serif;
  font-size: 1.4375rem;
  line-height: 1.347826087;
  letter-spacing: -0.4px;
  font-weight: 400;
  color: var(--navy, #212529);
  margin: 0 0 1.2rem 0;
}
.about-welcome__text p:last-child { margin-bottom: 0; }

.about-welcome__editor {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 14px;
  margin-top: 8px;
}
.about-welcome__avatar {
  width: 56px;
  height: 56px;
  aspect-ratio: 1;
  border-radius: 50%;
  overflow: hidden;
  flex: 0 0 auto;
}
.about-welcome__avatar img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
}
.about-welcome__editor-meta { line-height: 1.2; }
.about-welcome__name {
  font-size: 1.1rem;
  font-family: 'Montserrat', sans-serif;
  font-weight: 500;
  letter-spacing: 0.25px;
  color: var(--navy, #1c2f4a);
  margin: 0 0 4px 0;
}
.about-welcome__role {
  font-size: 0.78rem;
  font-family: 'Montserrat', sans-serif;
  font-weight: 400;
  letter-spacing: 1.5px;
  color: var(--navy, #1c2f4a);
  margin: 0;
  text-transform: uppercase;
  opacity: 0.85;
}

.about-welcome__logo-col {
  display: flex;
  align-items: center;
  justify-content: flex-end;
}
.about-welcome__logo {
  width: 100%;
  max-width: 460px;
  height: auto;
  opacity: 0.18;
  display: block;
  filter: grayscale(0.4);
}

@media (max-width: 992px) {
  .about-welcome { padding: 50px 30px 60px; }
  .about-welcome__inner { grid-template-columns: 5fr 3fr; gap: 36px; }
  .about-welcome__logo { max-width: 320px; }
}

@media (max-width: 640px) {
  .about-welcome { padding: 40px 20px; }
  .about-welcome__inner {
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .about-welcome__text p { font-size: 1.1rem; line-height: 1.5; letter-spacing: -0.3px; }
  .about-welcome__editor { justify-content: flex-start; }
  .about-welcome__logo-col { justify-content: center; }
  .about-welcome__logo { max-width: 280px; opacity: 0.20; }
}

.about-welcome--full .about-welcome__inner { grid-template-columns: 1fr; }
@media (max-width: 992px) {
  .about-welcome--full .about-welcome__inner { grid-template-columns: 1fr; }
}

.donate-welcome__insignia {
  margin: 1.5rem 0 0;
  padding-right: 2rem;
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-style: italic;
  font-weight: 500;
  font-size: clamp(2rem, 5.5vw, 4.25rem);
  line-height: 1.1;
  letter-spacing: 0.06em;
  text-align: right;
  color: rgba(28, 47, 74, 0.20);
  mix-blend-mode: multiply;
  user-select: none;
  pointer-events: none;
}

@media (max-width: 640px) {
  .donate-welcome__insignia {
    font-size: 1.85rem;
    letter-spacing: 0.04em;
    margin-top: 1rem;
    padding-right: 1rem;
  }
}

.donate-form-section {
  background: var(--cream, #f5f0e8);
  padding: 4rem 1.5rem 5rem;
}
.donate-form-section__inner {
  max-width: 880px;
  margin: 0 auto;
}
.donate-form-section__head {
  text-align: center;
  margin-bottom: 2.5rem;
}
.donate-form-section__eyebrow {
  font-family: var(--sc, 'Cormorant SC', serif);
  font-size: 0.85rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--gold, #c4a35a);
  margin: 0 0 0.8rem;
}
.donate-form-section__title {
  font-family: var(--display, 'Cormorant Garamond', serif);
  font-size: clamp(2rem, 4vw, 2.75rem);
  font-weight: 600;
  line-height: 1.15;
  color: var(--navy, #1c2f4a);
  margin: 0 0 1rem;
}
.donate-form-section__lede {
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-size: 1.125rem;
  line-height: 1.5;
  color: var(--navy, #1c2f4a);
  margin: 0 auto;
  max-width: 640px;
}
.donate-form-section__embed {
  background: #fff;
  border-radius: 6px;
  padding: 1.5rem;
  box-shadow: 0 4px 18px rgba(28, 47, 74, 0.08);
  min-height: 400px;
}
.donate-form-section__embed dbox-widget {
  display: block;
  width: 100%;
}
@media (max-width: 640px) {
  .donate-form-section { padding: 2.5rem 1rem 3rem; }
  .donate-form-section__embed {
    padding: 0.75rem;
    overflow-x: clip;
  }
  .donate-form-section__embed dbox-widget {
    width: 100%;
    max-width: 100%;
  }
}
@media (max-width: 360px) {
  .donate-form-section { padding-left: 0.5rem; padding-right: 0.5rem; }
  .donate-form-section__embed { padding: 0.5rem; }
}

.press-collection-main { background: var(--cream); padding-bottom: 4rem; }

.press-collection-intro {
  max-width: 880px;
  margin: 0 auto;
  padding: 4rem 2rem 2rem;
  text-align: center;
}
.press-collection-eyebrow {
  display: block;
  font-family: var(--sc, 'Cormorant SC', serif);
  font-size: 0.9rem;
  letter-spacing: 0.32em;
  color: var(--gold, #c4a35a);
  text-transform: uppercase;
  margin-bottom: 0.8rem;
}
.press-collection-title {
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-size: 3rem;
  font-weight: 600;
  color: var(--navy, #1c2f4a);
  margin: 0 0 1rem;
  letter-spacing: 0.01em;
  line-height: 1.1;
}
.press-collection-content {
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-size: 1.15rem;
  line-height: 1.6;
  color: #3a3a3a;
  max-width: 640px;
  margin: 0 auto;
}

.press-collection-grid-wrap {
  max-width: 1280px;
  margin: 0 auto;
  padding: 1rem 2rem 0;
}
.press-collection-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 2.4rem 2rem;
}

.press-bestsellers {
  max-width: none;
  margin: 0;
  padding: 3rem 2rem 3.5rem;
  background: var(--navy, #1c2f4a);
}
.press-bestsellers__inner {
  max-width: 1280px;
  margin: 0 auto;
}
.press-bestsellers__heading {
  font-family: 'Cormorant Garamond', serif;
  font-style: italic;
  font-size: clamp(1.8rem, 3vw, 2.4rem);
  font-weight: 500;
  color: var(--gold, #c4a35a); 
  text-align: center;
  margin: 0 0 1.8rem;
}

.press-bestsellers .pc-card-title { color: var(--cream, #f5f0e8); }
.press-bestsellers .pc-card-author { color: var(--gold, #c4a35a); }
.press-bestsellers .pc-card-price { color: var(--gold, #c4a35a); }
.press-bestsellers .pc-card { color: var(--cream, #f5f0e8); }
.press-bestsellers__grid {
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 2rem 1.4rem;
}
@media (max-width: 1100px) {
  .press-bestsellers__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
  .press-bestsellers__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.pc-card {
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: var(--navy, #1c2f4a);
  transition: transform 0.25s ease;
}
.pc-card:hover { transform: translateY(-3px); }

.pc-card-thumb-wrap {
  width: 100%;
  aspect-ratio: 3 / 4;
  background: #fbf6ee;
  border: 1px solid rgba(184, 168, 138, 0.30);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  margin-bottom: 0.9rem;
  transition: border-color 0.25s ease, box-shadow 0.25s ease;
}
.pc-card:hover .pc-card-thumb-wrap {
  border-color: var(--gold, #c4a35a);
  box-shadow: 0 8px 24px -10px rgba(28, 47, 74, 0.18);
}
.pc-card-thumb {
  width: 100%;
  height: 100%;
  object-fit: contain;
  background-color: transparent;
}
.pc-card-thumb-placeholder {
  background:
    repeating-linear-gradient(45deg,
      rgba(184, 168, 138, 0.10) 0,
      rgba(184, 168, 138, 0.10) 8px,
      rgba(184, 168, 138, 0.05) 8px,
      rgba(184, 168, 138, 0.05) 16px
    );
}

.pc-card-meta {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 0.3rem;
  padding: 0 0.4rem;
}
.pc-card-title {
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-style: italic;
  font-weight: 500;
  font-size: 1.15rem;
  line-height: 1.25;
  color: var(--navy, #1c2f4a);
  margin: 0;
}
/* Bestseller variant uses dark card panel — title flips to cream.
   Parent modifier `.pc-card--bestseller` is set on the <a class="pc-card">
   wrapper for top-N bestseller titles (×6–7 on live). Live target
   rgb(245,240,232). */
.pc-card--bestseller .pc-card-title {
  color: rgb(245, 240, 232);
}
.pc-card-price {
  font-family: var(--sc, 'Cormorant SC', serif);
  font-size: 0.78rem;
  letter-spacing: 0.20em;
  text-transform: uppercase;
  color: var(--gold, #c4a35a);
}
.pc-card-price-placeholder { color: #9a8c70; }

.pc-card-author {
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-size: 0.92rem;
  font-style: italic;
  font-weight: 400;
  color: #5a5a5a;
  margin: 0;
  line-height: 1.3;
}
.press-collection-count {
  max-width: 1300px;
  margin: 0 auto 1.4rem;
  padding: 0 2rem;
  font-family: var(--sc, 'Cormorant SC', serif);
  font-size: 0.95rem;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--navy, #1c2f4a);
  text-align: left;
}

.press-collection-empty {
  text-align: center;
  padding: 4rem 2rem;
  color: #6a6a6a;
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-style: italic;
}

.pc-tabs {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0.6rem;
  max-width: 1300px;
  margin: 0 auto 2rem;
  padding: 0 2rem;
  border-bottom: 1px solid rgba(28, 47, 74, 0.10);
}
.pc-tab {
  appearance: none;
  -webkit-appearance: none;
  display: inline-flex;
  align-items: baseline;
  gap: 0.55rem;
  background: transparent;
  border: 0;
  padding: 0.85rem 1.4rem 0.95rem;
  margin: 0 0 -1px;
  font-family: var(--sc, 'Cormorant SC', serif);
  font-size: 0.95rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(28, 47, 74, 0.55);
  border-bottom: 2px solid transparent;
  cursor: pointer;
  transition: color 0.2s ease, border-color 0.2s ease, background-color 0.2s ease;
}
.pc-tab:hover,
.pc-tab:focus-visible {
  color: var(--navy, #1c2f4a);
}
.pc-tab:focus-visible {
  outline: 2px solid var(--gold, #c4a35a);
  outline-offset: 4px;
  border-radius: 2px;
}
.pc-tab.is-active {
  color: var(--navy, #1c2f4a);
  border-bottom-color: var(--gold, #c4a35a);
}
.pc-tab__label {
  font-weight: 500;
}
.pc-tab__count {
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-size: 0.78rem;
  letter-spacing: 0.04em;
  color: var(--gold, #c4a35a);
  background: rgba(196, 163, 90, 0.10);
  padding: 0.15rem 0.55rem;
  border-radius: 999px;
  min-width: 1.6rem;
  text-align: center;
}
.pc-tab.is-active .pc-tab__count {
  background: var(--gold, #c4a35a);
  color: #fff;
}

.pc-pane {
  opacity: 0;
  transition: opacity 0.2s ease;
}
.pc-pane.is-active {
  opacity: 1;
}
.pc-pane[hidden] {
  display: none;
}

@media (max-width: 1024px) {
  .press-collection-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem 1.6rem; }
}
@media (max-width: 720px) {
  .press-collection-intro { padding: 3rem 1.5rem 1.5rem; }
  .press-collection-title { font-size: 2.2rem; }
  .press-collection-grid-wrap { padding: 1rem 1.5rem 0; }
  .press-collection-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.6rem 1.2rem; }
  .pc-card-title { font-size: 1rem; }
  .pc-card-price { font-size: 0.72rem; letter-spacing: 0.16em; }
  .pc-tabs {
    padding: 0 1rem;
    gap: 0.25rem;
    flex-wrap: nowrap;
    overflow-x: auto;
    justify-content: flex-start;
    scrollbar-width: none;
  }
  .pc-tabs::-webkit-scrollbar { display: none; }
  .pc-tab {
    padding: 0.7rem 0.9rem 0.8rem;
    font-size: 0.78rem;
    letter-spacing: 0.14em;
    white-space: nowrap;
    flex: 0 0 auto;
  }
  .pc-tab__count { font-size: 0.7rem; padding: 0.1rem 0.45rem; }
}
@media (max-width: 420px) {
  .press-collection-grid { grid-template-columns: 1fr; gap: 2rem 0; }
  .pc-card-thumb-wrap { max-width: 280px; margin-left: auto; margin-right: auto; width: 100%; }
}

.press-title-main { background: var(--cream); padding-bottom: 4rem; }

.press-title-hero {
  max-width: 1200px;
  margin: 0 auto;
  padding: 4rem 2rem 3.5rem;
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
  gap: 3.5rem;
  align-items: start;
}

.press-title-carousel {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.ptc-frame {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 5;
  background: #fbf6ee;
  border: 1px solid rgba(184, 168, 138, 0.30);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.ptc-slide {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  opacity: 0;
  transition: opacity 0.35s ease;
  pointer-events: none;
}
.ptc-slide.is-active { opacity: 1; pointer-events: auto; }

.ptc-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 42px;
  height: 42px;
  border: 1px solid rgba(28, 47, 74, 0.20);
  background: rgba(255, 255, 255, 0.85);
  color: var(--navy, #1c2f4a);
  font-size: 1.1rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
  z-index: 2;
}
.ptc-arrow:hover {
  background: var(--navy, #1c2f4a);
  color: var(--cream, #f5f0e8);
  border-color: var(--navy, #1c2f4a);
}
.ptc-arrow-prev { left: 1rem; }
.ptc-arrow-next { right: 1rem; }

.ptc-dots {
  display: flex;
  justify-content: center;
  gap: 0.5rem;
}
.ptc-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: rgba(28, 47, 74, 0.20);
  border: none;
  padding: 0;
  cursor: pointer;
  transition: background 0.2s ease, transform 0.2s ease;
}
.ptc-dot.is-active {
  background: var(--gold, #c4a35a);
  transform: scale(1.2);
}

.press-title-info {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  padding-top: 0.5rem;
}
.pti-eyebrow {
  font-family: var(--sc, 'Cormorant SC', serif);
  
  font-size: 1.02rem;
  letter-spacing: 0.30em;
  color: var(--gold, #c4a35a);
  text-transform: uppercase;
}
.pti-title {
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-size: 2.6rem;
  font-weight: 600;
  color: var(--navy, #1c2f4a);
  margin: 0;
  line-height: 1.1;
  letter-spacing: 0.01em;
}
.pti-author {
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-size: 1.15rem;
  color: #4a4a4a;
  margin: 0;
}
.pti-author-placeholder em { opacity: 0.6; }

.ptt-subtitle {
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-style: italic;
  font-size: 1.15rem;
  color: #555;
  margin: -0.5rem 0 0.4rem;
  line-height: 1.35;
}

.pti-summary {
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-size: 1.05rem;
  line-height: 1.6;
  color: #3a3a3a;
  border-top: 1px solid rgba(184, 168, 138, 0.40);
  border-bottom: 1px solid rgba(184, 168, 138, 0.40);
  padding: 1.2rem 0;
  margin: 0.4rem 0;
}
.pti-summary p { margin: 0; }

.pti-summary--book p + p { margin-top: 0.85rem; }
.pti-summary-tagline {
  font-family: var(--display, 'Cormorant Garamond', serif);
  font-style: italic;
  font-size: 1.18rem;
  color: var(--ink, #1a2840);
  margin: 0 0 0.7rem !important;
  line-height: 1.35;
}

.pti-cta-row {
  display: flex;
  align-items: center;
  gap: 1.4rem;
  margin-top: 0.4rem;
}
.pti-price-row {
  margin-top: 0.4rem;
}
.pti-price {
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-size: 1.6rem;
  font-weight: 600;
  color: var(--navy, #1c2f4a);
}
.pti-cta {
  display: inline-block;
  font-family: var(--sc, 'Cormorant SC', serif);
  font-size: 0.85rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--cream, #f5f0e8);
  background: var(--navy, #1c2f4a);
  padding: 0.95rem 2.2rem;
  border: 1px solid var(--navy, #1c2f4a);
  transition: background 0.2s ease, color 0.2s ease;
  text-decoration: none;
}
.pti-cta:hover {
  background: var(--gold, #c4a35a);
  color: var(--navy, #1c2f4a);
  border-color: var(--gold, #c4a35a);
}

.pti-buy-group {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.7rem;
  margin: 1rem 0 0;
  max-width: 420px;
}
.pti-buy-group .pti-cta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.7rem;
  padding: 0.95rem 1.1rem;
  font-size: 0.8rem;
  letter-spacing: 0.18em;
  text-align: center;
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.10);
  transition: background 0.25s ease, color 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}
.pti-buy-group .pti-cta:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 14px rgba(0, 0, 0, 0.18);
}
.pti-buy-region {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2em;
  height: 1.55em;
  font-weight: 700;
  letter-spacing: 0.10em;
  font-size: 0.7rem;
  padding: 0 0.5rem;
  border: 1px solid currentColor;
  border-radius: 3px;
  opacity: 0.9;
}
.pti-cta-primary {
  background: var(--gold, #c4a35a);
  color: var(--navy, #1c2f4a);
  border-color: var(--gold, #c4a35a);
  grid-column: 1 / -1; /* primary spans both cols when present */
}
.pti-cta-primary:hover {
  background: var(--navy, #1c2f4a);
  color: var(--cream, #f5f0e8);
  border-color: var(--navy, #1c2f4a);
}
.pti-cta-vendor {
  background: transparent;
  color: var(--navy, #1c2f4a);
  grid-column: 1 / -1; /* vendor buttons (JPL etc.) span both cols below Amazon grid */
}
.pti-cta-vendor:hover {
  background: var(--navy, #1c2f4a);
  color: var(--cream, #f5f0e8);
}
.pti-buy-group-fallback { grid-template-columns: 1fr; max-width: 320px; }
.pti-buy-group-fallback .pti-cta { padding: 0.95rem 2.2rem; font-size: 0.85rem; letter-spacing: 0.22em; }

@media (max-width: 480px) {
  .pti-buy-group { grid-template-columns: 1fr; max-width: 320px; }
  .pti-cta-primary, .pti-cta-vendor { grid-column: auto; }
}

.pti-page-header {
  max-width: 1280px;
  margin: 0 auto;
  padding: 2.0rem 2rem 0;
}
.pti-page-header__inner {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 1.0rem 0 1.4rem;
}
.pti-page-header__logo {
  display: block;
  width: auto;
  
  height: 150px;
  max-width: 100%;
  object-fit: contain;
}
.pti-page-header__rule {
  border: 0;
  
  height: 1.2px;
  background: var(--navy, #1c2f4a);
  margin: 0;
  width: 100%;
}
@media (max-width: 600px) {
  .pti-page-header { padding: 1.4rem 1.2rem 0; }
  .pti-page-header__inner { padding: 0.6rem 0 1.0rem; }
  .pti-page-header__logo { height: 110px; } 
}

.pti-breadcrumb {
  max-width: 1280px;
  margin: 0 auto;
  padding: 1.2rem 2rem 0;
}
.pti-breadcrumb__link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-family: var(--sc, 'Cormorant SC', serif);
  font-size: 0.8rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--navy, #1c2f4a);
  text-decoration: none;
  padding: 0.35rem 0;
  border-bottom: 1px solid transparent;
  transition: color 0.2s ease, border-color 0.2s ease;
}
.pti-breadcrumb__link:hover { color: var(--gold, #c4a35a); border-bottom-color: var(--gold, #c4a35a); }
.pti-breadcrumb__arrow { font-size: 0.95rem; line-height: 1; }

.pti-external {
  font-size: 0.9rem;
  color: #777;
  font-style: italic;
  margin: 0.8rem 0 0;
}
.pti-external a { color: var(--navy, #1c2f4a); border-bottom: 1px dotted rgba(28,47,74,0.4); }

.press-title-author {
  max-width: 1100px;
  margin: 0 auto;
  padding: 2rem 2rem 3rem;
  border-top: 1px solid rgba(184, 168, 138, 0.30);
}
.pta-heading {
  font-family: var(--sc, 'Cormorant SC', serif);
  font-size: 1rem;
  letter-spacing: 0.30em;
  color: var(--gold, #c4a35a);
  text-transform: uppercase;
  margin: 2.4rem 0 1.6rem;
}
.pta-body {
  display: grid;
  grid-template-columns: 200px minmax(0, 1fr);
  gap: 2.4rem;
  align-items: start;
}

.pta-body--no-thumb {
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
  max-width: 780px;
}
.pta-thumb {
  width: 200px;
  height: 200px;
  border-radius: 50%;
  background: #ece1cd;
  border: 1px solid rgba(184, 168, 138, 0.50);
  background-size: cover;
  background-position: center;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.pta-thumb-placeholder {
  background: linear-gradient(135deg, #efe4d0 0%, #d9c8a4 100%);
}
.pta-thumb-initial {
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-style: italic;
  font-size: 4.5rem;
  color: var(--navy, #1c2f4a);
  opacity: 0.55;
}
.pta-bio { padding-top: 0.4rem; }
.pta-name {
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-size: 1.5rem;
  font-weight: 600;
  color: var(--navy, #1c2f4a);
  margin: 0 0 0.6rem;
}
.pta-bio p {
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-size: 1.05rem;
  line-height: 1.65;
  color: #4a4a4a;
  margin: 0 0 0.9rem;
}
.pta-bio p:last-child { margin-bottom: 0; }

.ptt-bio-name {
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-size: 1.2rem;
  font-weight: 600;
  color: var(--navy, #1c2f4a);
  margin: 1.3rem 0 0.4rem;
  letter-spacing: 0.01em;
}
.pta-bio .ptt-bio-name:first-child { margin-top: 0; }

.press-title-tabs {
  max-width: 1100px;
  margin: 0 auto;
  padding: 1rem 2rem 2rem;
}
.ptt-tab {
  border-top: 1px solid rgba(28, 47, 74, 0.18);
}
.ptt-tab:last-child { border-bottom: 1px solid rgba(28, 47, 74, 0.18); }
.ptt-summary {
  list-style: none;
  cursor: pointer;
  padding: 1.4rem 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-family: var(--sc, 'Cormorant SC', serif);
  font-size: 0.95rem;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--navy, #1c2f4a);
  transition: color 0.2s ease;
}
.ptt-summary::-webkit-details-marker { display: none; }
.ptt-summary:hover { color: var(--gold, #c4a35a); }
.ptt-icon {
  font-size: 1.4rem;
  font-weight: 300;
  color: var(--gold, #c4a35a);
  transition: transform 0.25s ease;
}
.ptt-tab[open] .ptt-icon { transform: rotate(45deg); }
.ptt-body {
  padding: 0 0 1.6rem;
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-size: 1.05rem;
  line-height: 1.65;
  color: #3a3a3a;
}
.ptt-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.ptt-list li { padding: 0.2rem 0; }
.ptt-list strong { font-weight: 600; color: var(--navy, #1c2f4a); }

.ptt-pubdetails .ptt-list { line-height: 1.6; }
.ptt-pubdetails .ptt-list li { padding: 0.15rem 0; }

.ptt-endorse-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
}
.ptt-endorse-item {
  border-left: 3px solid var(--gold, #c4a35a);
  padding: 0.4rem 0 0.4rem 1.2rem;
}
.ptt-endorse-quote {
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-size: 1.05rem;
  font-style: italic;
  line-height: 1.6;
  color: #3a3a3a;
  margin: 0 0 0.5rem;
  quotes: none;
}
.ptt-endorse-quote::before,
.ptt-endorse-quote::after { content: none; }
.ptt-endorse-attr {
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-size: 0.95rem;
  color: var(--navy, #1c2f4a);
  margin: 0;
}
.ptt-endorse-attr strong { font-weight: 600; }
.ptt-endorse-affil {
  font-style: italic;
  color: #5a5a5a;
  font-size: 0.9rem;
}

.press-title-empty {
  max-width: 880px;
  margin: 0 auto;
  padding: 6rem 2rem;
  text-align: center;
  font-family: var(--body, 'Cormorant Garamond', serif);
}
.press-title-empty h1 {
  font-size: 2.2rem;
  color: var(--navy, #1c2f4a);
  margin: 0 0 1rem;
}

@media (max-width: 900px) {
  .press-title-hero {
    grid-template-columns: 1fr;
    gap: 2.4rem;
    padding: 3rem 1.5rem 2.5rem;
  }
  .pti-title { font-size: 2.1rem; }
  .pta-body { grid-template-columns: 140px minmax(0, 1fr); gap: 1.6rem; }
  .pta-thumb { width: 140px; height: 140px; }
  .pta-thumb-initial { font-size: 3.2rem; }
}
@media (max-width: 560px) {
  .pta-body {
    grid-template-columns: 1fr;
    text-align: center;
    justify-items: center;
  }
  .pta-thumb { margin: 0 auto; }
  .pti-cta-row { flex-direction: column; align-items: stretch; gap: 1rem; }
  .pti-cta { text-align: center; }
  .pti-buy-group { max-width: none; }
}

.about-hero {

  width: 100%;
  margin: 0;
  padding: 0;
  overflow: hidden;
  position: relative;
  background: var(--cream, #f5f0e8);
}
.about-hero__art {
  display: block;
  width: 100%;
  height: auto;

  max-height: 90vh;
  object-fit: cover;
  object-position: center 40%;
}
/* In the block theme the class lands on the wrapping <figure> (wp-block-image), not
   the <img>, so the object-fit/position above never reached the image: it rendered
   `fill` at 999px tall with 50% 50% instead of `cover` at 810px with 50% 40%, i.e. a
   visibly different crop of the Constable (2026-07-24, /leadership-staff/ hero read
   35% divergence vs prod). Apply to the inner image as well. */
figure.about-hero__art { max-height: 90vh; overflow: hidden; }
figure.about-hero__art > img,
.about-hero__art img {
  display: block;
  width: 100%;
  height: 100%;
  max-height: 90vh;
  object-fit: cover;
  object-position: center 40%;
}
@media (max-width: 640px) {
  .about-hero__art { max-height: 79vh; }
  figure.about-hero__art, figure.about-hero__art > img, .about-hero__art img { max-height: 79vh; }
}

.about-welcome__heading {
  font-family: var(--display, 'Cormorant Garamond', serif);
  font-style: italic;
  font-size: clamp(2.4rem, 4.6vw, 3.8rem);
  font-weight: 500;
  letter-spacing: 0.01em;
  color: var(--navy, #1c2f4a);
  margin: 0 0 1.2rem 0;
  line-height: 1.05;
  text-align: left;
}
@media (max-width: 640px) {
  .about-welcome__heading { font-size: 2.4rem; }
}

.page-hero {
  position: relative;
  width: 100%;
  margin: 0;
  padding: 0;
  overflow: hidden;
  background: var(--cream, #f5f0e8);
  isolation: isolate;
}
.page-hero__art {
  display: block;
  width: 100%;
  height: auto;
  max-height: 90vh;
  object-fit: cover;
  object-position: center 40%;
}
/* Same figure-wrapper problem as .about-hero__art: in the block theme this class
   lands on <figure class="wp-block-image">, so the <img> inside kept object-fit:fill
   at its natural aspect (959px tall on /merchandise/ vs prod's 810px cover crop).
   Verified 2026-07-24. Apply to the inner image too. */
figure.page-hero__art { max-height: 90vh; overflow: hidden; }
figure.page-hero__art > img,
.page-hero__art img {
  display: block;
  width: 100%;
  height: 100%;
  max-height: 90vh;
  object-fit: cover;
  object-position: center 40%;
}
@media (max-width: 640px) {
  .page-hero__art { max-height: 60vh; }
  figure.page-hero__art, figure.page-hero__art > img, .page-hero__art img { max-height: 60vh; }
}

.dp-hero .page-hero__art,
.pc-hero .page-hero__art { filter: brightness(0.78); }
.page-hero__overlay {
  position: absolute;

  inset: 0;
  padding: 1.6rem clamp(1.2rem, 4vw, 4rem);

  background: transparent;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  z-index: 2;
}
.page-hero__walking-text {
  margin: 0;

  font-family: var(--sc, 'Cormorant SC'), serif;
  font-style: normal;
  font-weight: 400;
  font-size: clamp(1.4rem, 2.6vw, 2.6rem);
  line-height: 1.25;
  letter-spacing: 0.01em;
  color: var(--cream, #f5f0e8);
  text-align: center;
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.55), 0 1px 2px rgba(0, 0, 0, 0.45);

  min-height: 1.25em;

  max-width: 1100px;
}

.page-hero__walking-text .hero-year {
  font-family: var(--body, 'Cormorant Garamond'), serif;
  font-style: normal;
  font-weight: 400;
  letter-spacing: 0;
}

.page-hero__line {
  display: block;
  text-align: center;
  margin: 0.15em 0;
  opacity: 1;
}
.page-hero__line.is-pending {
  opacity: 0;
}
.page-hero__line.is-revealed {
  opacity: 1;
}

.page-hero__walking-text .word {
  display: inline-block;
  opacity: 0;
  transform: translateY(50px);
  transition: opacity 1400ms cubic-bezier(0.16, 1, 0.3, 1),
              transform 1400ms cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}
.page-hero__walking-text .word.in {
  opacity: 1;
  transform: translateY(0);
}
@media (prefers-reduced-motion: reduce) {
  .page-hero__walking-text .word {
    transition: none;
    opacity: 1;
    transform: none;
  }
}

.page-hero__line.page-hero__line--block {
  opacity: 0;
  transform: translateY(50px);
  transition: opacity 900ms cubic-bezier(0.16, 1, 0.3, 1),
              transform 900ms cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}
.page-hero__line.page-hero__line--block.in {
  opacity: 1;
  transform: translateY(0);
}
@media (prefers-reduced-motion: reduce) {
  .page-hero__line.page-hero__line--block {
    transition: none;
    opacity: 1;
    transform: none;
  }
}

.page-hero__line--lg {
  font-size: clamp(2.4rem, 6vw, 5.313rem);
  line-height: 1.035;

  font-weight: 400;
  font-style: normal;
  letter-spacing: 0.025em;
  margin-bottom: 0.25em;
}
.page-hero__line--md {
  font-size: clamp(1.4rem, 2.8vw, 2.85rem);
  line-height: 1.25;

  font-weight: 400;
  font-style: normal;
}
.page-hero__line--sm {
  font-size: clamp(1.0rem, 1.8vw, 1.75rem);
  line-height: 1.3;

  font-weight: 400;
  font-style: normal;
  opacity: 0.92;
}

.page-hero__walking-text[data-walking-words] {
  min-height: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
}

.page-hero__walking-text[data-walking-words]::after {
  display: none;
}

.page-hero__walking-text::after {
  display: none;
}
.page-hero__walking-text.is-done::after {
  display: none;
}
@keyframes page-hero-cursor-blink {
  0%, 49%   { opacity: 0.85; }
  50%, 100% { opacity: 0.0; }
}

.no-js .page-hero__walking-text::before {
  content: attr(data-walking-text);
}

.page-about .page-hero__walking-text,
.page-donate .page-hero__walking-text {
  font-size: clamp(2.4rem, 6vw, 5.313rem);
  line-height: 1.035;
  letter-spacing: 0.025em;

  font-weight: 400;
  font-style: normal;
}
@media (prefers-reduced-motion: reduce) {

  .page-hero__walking-text::after { animation: none; opacity: 0; }
}
@media (max-width: 640px) {
  .page-hero__overlay {
    padding: 1.0rem 0.9rem;

    background: transparent;
  }
  .page-hero__walking-text {
    font-size: clamp(1.05rem, 4.2vw, 1.4rem);
    line-height: 1.3;
  }

  .page-about .page-hero__walking-text {
    font-size: clamp(1.9rem, 8vw, 2.6rem);
    line-height: 1.05;
    letter-spacing: 0.025em;
  }

  .page-donate .page-hero__walking-text {
    font-size: clamp(1.55rem, 7.2vw, 2.4rem);
    line-height: 1.05;
    letter-spacing: 0.018em;
    margin-top: 4.4rem;
  }

  .page-hero__line--lg {
    font-size: clamp(1.9rem, 8vw, 2.6rem);
    line-height: 1.05;
    margin-bottom: 0.18em;
  }
  .page-hero__line--md {
    font-size: clamp(1.05rem, 4.2vw, 1.35rem);
    line-height: 1.25;
  }
  .page-hero__line--sm {
    font-size: clamp(0.92rem, 3.4vw, 1.15rem);
    line-height: 1.3;
  }
}

.hero-logo-intro {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  z-index: 3;
  opacity: 0;
  animation: hero-logo-intro 2500ms cubic-bezier(0.4, 0, 0.2, 1) 0ms 1 forwards;
}

.page-hero--art-pending .hero-logo-intro {
  animation-play-state: paused;
  opacity: 0;
}
.page-hero--art-pending .page-hero__walking-text {
  opacity: 0;
}
.page-hero--art-loaded .page-hero__walking-text {
  opacity: 1;
  transition: opacity 200ms ease-in;
}
.hero-logo-intro img {
  width: clamp(180px, 28vw, 360px);
  height: auto;
  max-height: 60vh;
  display: block;

  filter: drop-shadow(0 6px 22px rgba(0, 0, 0, 0.45));
}
@keyframes hero-logo-intro {
  0%    { opacity: 0; transform: scale(0.96); }
  25%   { opacity: 1; transform: scale(1.00); }
  75%   { opacity: 1; transform: scale(1.00); }
  100%  { opacity: 0; transform: scale(1.02); }
}
@media (prefers-reduced-motion: reduce) {
  .hero-logo-intro {
    animation: none;
    opacity: 0;
    display: none;
  }
}
@media (max-width: 640px) {
  .hero-logo-intro img {
    width: clamp(140px, 50vw, 220px);
  }
}

.dh-subpage-hero {
  width: 100%;
  background: var(--navy);
  height: 22.5vh;
  min-height: 160px;
  max-height: 260px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: 0.8rem 1rem;
  box-sizing: border-box;
}
.dh-subpage-hero__inner {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
}
.dh-subpage-hero__logo {
  display: block;
  height: 100%;
  width: auto;
  max-height: 100%;
  object-fit: contain;
  filter: drop-shadow(0 4px 16px rgba(0,0,0,0.35));
}

.dh-subpage-hero__logo-link {
  display: block;
  height: 100%;
  cursor: pointer;
  text-decoration: none;
  transition: opacity 0.18s ease;
}
.dh-subpage-hero__logo-link:hover,
.dh-subpage-hero__logo-link:focus {
  opacity: 0.85;
}
.dh-subpage-hero__logo-link:focus-visible {
  outline: 2px solid var(--cream);
  outline-offset: 4px;
}

.dh-subpage-title {
  font-family: var(--sc);
  color: var(--navy);
  text-align: center;
  font-size: clamp(1.9rem, 4vw, 2.8rem);
  font-weight: 600;
  letter-spacing: 0.04em;
  line-height: 1.2;
  margin: 2.2rem auto 1.6rem;
  padding: 0 1rem;
  max-width: 1200px;
}

@media (max-width: 640px) {
  .dh-subpage-hero {
    height: 15vh;
    min-height: 110px;
    max-height: 180px;
  }
  .dh-subpage-title {
    font-size: clamp(1.5rem, 6vw, 2rem);
    margin: 1.6rem auto 1.2rem;
  }
}

.about-story-carousel {
  position: relative;

  background-color: #ece2c6;
  background-image:

    linear-gradient(rgba(196,163,90,0.22), rgba(196,163,90,0.22)),

    radial-gradient(ellipse at center, rgba(255,255,255,0.0) 55%, rgba(120,90,40,0.14) 100%),

    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='340' height='340'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='1.35' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.42  0 0 0 0 0.32  0 0 0 0 0.16  0 0 0 0.18 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  background-blend-mode: multiply;

  --panels: 5;

  height: calc(var(--panels) * 100vh);
}

.about-story-carousel__stage {
  position: sticky;
  top: 0;
  height: 100vh;
  width: 100%;
  overflow: hidden;
}

.about-story-carousel__heading {
  position: absolute;
  top: 2.2rem;
  left: 0;
  right: 0;
  z-index: 5;
  margin: 0;
  font-family: var(--display, 'Cormorant Garamond', serif);
  font-style: italic;

  font-size: clamp(4.8rem, 7.2vw, 6.6rem);
  font-weight: 500;
  letter-spacing: 0.01em;
  color: var(--navy, #1c2f4a);
  line-height: 1.05;
  text-align: center;
  pointer-events: none;
}

.about-story-carousel__track {
  position: relative;
  height: 100%;
  width: calc(var(--panels) * 100%);
  display: flex;

  will-change: transform;
  transition: transform 720ms cubic-bezier(0.22, 0.61, 0.36, 1);
}

.about-story-carousel__panel {
  flex: 0 0 calc(100% / var(--panels));
  width: calc(100% / var(--panels));
  height: 100%;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: center;
  padding: 6rem 6rem 5rem;
  box-sizing: border-box;
}

.about-story-carousel__art {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  max-height: 70vh;
}
.about-story-carousel__art img {
  max-width: 100%;
  max-height: 70vh;
  height: auto;
  display: block;
  object-fit: contain;
}

.about-story-carousel__text {
  font-family: 'Cormorant Garamond', Georgia, serif;
  color: #1a1a1a;
  max-width: 32rem;
}

.about-story-carousel__text p {
  font-size: clamp(1.133rem, 1.35vw, 1.383rem);
  line-height: 1.65;
  margin: 0 0 1rem;
  color: #1a1a1a;
}
.about-story-carousel__text p:last-child { margin-bottom: 0; }

.about-story-carousel__text .lead-phrase {
  font-size: 1.4em;
  font-weight: 600;
  letter-spacing: 0.005em;
  color: var(--navy, #1c2f4a);

  margin-right: 0.15em;
}

.about-story-carousel__text .emphasis-line {
  display: inline-block;
  font-size: 1.4em;
  font-style: italic;
  font-weight: 500;
  line-height: 1.4;
  color: var(--navy, #1c2f4a);
}

.about-story-carousel__panel:nth-child(2) .about-story-carousel__art {
  max-height: 92vh;
}
.about-story-carousel__panel:nth-child(2) .about-story-carousel__art img {
  max-width: 135%;
  max-height: 92vh;
  width: auto;
  height: 92vh;
  object-fit: contain;
}

.about-story-carousel__panel:nth-child(2) {
  grid-template-columns: 0.9fr 1.4fr;
  gap: 6rem;
  padding: 6rem 2.5rem 5rem 2.5rem;
}
.about-story-carousel__panel:nth-child(2) .about-story-carousel__art {

  justify-content: flex-start;
  overflow: visible;
}
.about-story-carousel__panel:nth-child(2) .about-story-carousel__art img {
  max-width: 110%;
  height: 88vh;
  max-height: 88vh;
  width: auto;
  object-fit: contain;

  margin-right: auto;
  margin-left: -3rem;
}
.about-story-carousel__panel:nth-child(2) .about-story-carousel__text {
  max-width: 36rem;
  padding-left: 1.5rem;
}
.about-story-carousel__panel:nth-child(4) .about-story-carousel__art img {
  max-width: 115%;
  max-height: 80.5vh;
  width: auto;
  height: auto;
}

.about-story-carousel__panel--logos {

  grid-template-columns: 1fr;
  gap: 0;
  padding: 6rem 4rem 5rem;
}
.about-story-carousel__logos {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  align-items: center;
  justify-items: center;
  gap: 3rem;
  width: 100%;
  height: 100%;
  max-height: 70vh;
}
.about-story-carousel__logo-cell {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;

  opacity: 0;
  transform: translateY(40px);
  transition: opacity 700ms cubic-bezier(0.22, 0.61, 0.36, 1) var(--logo-delay, 0ms),
              transform 700ms cubic-bezier(0.22, 0.61, 0.36, 1) var(--logo-delay, 0ms);
}
.about-story-carousel__panel--logos.is-revealed .about-story-carousel__logo-cell {
  opacity: 1;
  transform: translateY(0);
}
.about-story-carousel__logo-img {
  max-width: 100%;
  max-height: 50vh;
  width: auto;
  height: auto;
  object-fit: contain;
  display: block;
}
@media (prefers-reduced-motion: reduce) {
  .about-story-carousel__logo-cell {
    transition: none;
    opacity: 1;
    transform: none;
  }
}

.about-story-carousel__indicator {
  position: absolute;
  bottom: 2.6rem;
  left: 2.6rem;
  z-index: 6;
  display: flex;
  align-items: center;
  gap: 1.4rem;
  pointer-events: auto;
}
.about-story-carousel__indicator-number {
  font-family: var(--display, 'Cormorant Garamond', serif);
  font-style: italic;
  font-weight: 500;

  font-size: clamp(3.8rem, 6.5vw, 6.4rem);
  line-height: 0.85;
  color: var(--navy, #1c2f4a);
  letter-spacing: -0.01em;
  min-width: 1.1ch;
  text-align: right;
  user-select: none;
}
.about-story-carousel__rail {
  position: relative;

  width: clamp(180px, 22vw, 360px);
  height: 1.6rem;
  display: flex;
  align-items: center;
}
.about-story-carousel__rail::before {

  content: '';
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  height: 1px;
  background: rgba(28,47,74,0.25);
  transform: translateY(-50%);
}
.about-story-carousel__rail-fill {

  position: absolute;
  left: 0;
  top: 50%;
  height: 2px;
  width: 0%;
  background: var(--gold, #c4a35a);
  transform: translateY(-50%);
  box-shadow: 0 0 6px rgba(196,163,90,0.45);
  transition: width 220ms cubic-bezier(0.22, 0.61, 0.36, 1);
}
.about-story-carousel__rail-ticks {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  z-index: 2;
}

.about-story-carousel__tab {
  appearance: none;
  background: transparent;
  border: 0;
  padding: 0.15rem 0.25rem;
  cursor: pointer;
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-style: italic;
  font-size: 0.9rem;
  color: rgba(28,47,74,0.55);
  position: relative;
  line-height: 1;
  transition: color 200ms ease;
}
.about-story-carousel__tab::after {
  content: '';
  position: absolute;
  left: 50%;
  top: -0.55rem;
  transform: translateX(-50%);
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 50%;
  background: rgba(28,47,74,0.3);
  transition: background 200ms ease, transform 200ms ease;
}
.about-story-carousel__tab:hover {
  color: var(--navy, #1c2f4a);
}
.about-story-carousel__tab:hover::after {
  background: rgba(28,47,74,0.55);
}
.about-story-carousel__tab.is-active {
  color: var(--navy, #1c2f4a);
}
.about-story-carousel__tab.is-active::after {
  background: var(--gold, #c4a35a);
  transform: translateX(-50%) scale(1.35);
}

.about-story-carousel__arrows {
  
  position: absolute;
  bottom: 2.2rem;
  right: 2.2rem;
  z-index: 6;
  display: flex;
  align-items: center;
  gap: 0.8rem;
}
.about-story-carousel__arrow {
  appearance: none;
  background: rgba(245, 240, 232, 0.95);
  border: 1.5px solid var(--navy, #1c2f4a);
  color: var(--navy, #1c2f4a);
  width: 3rem;
  height: 3rem;
  border-radius: 999px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.35rem;
  line-height: 1;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.18);
  transition: background 160ms ease, color 160ms ease, border-color 160ms ease, transform 160ms ease;
}
.about-story-carousel__arrow:hover:not(:disabled) {
  background: var(--navy, #1c2f4a);
  color: #fff;
  border-color: var(--navy, #1c2f4a);
  transform: scale(1.06);
}
.about-story-carousel__arrow:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

@media (max-width: 900px) {
  .about-story-carousel {
    height: auto;
  }
  .about-story-carousel__stage {
    position: static;
    height: auto;
    overflow: visible;
  }
  .about-story-carousel__heading {
    position: static;
    text-align: center;
    margin: 2.2rem 1rem 1rem;
  }
  .about-story-carousel__track {
    width: 100%;
    flex-direction: column;
    transform: none !important;
    transition: none;
  }
  .about-story-carousel__panel {
    flex: 0 0 auto;
    width: 100%;
    height: auto;
    grid-template-columns: 1fr;
    gap: 1.5rem;
    padding: 2rem 1.25rem;
  }
  .about-story-carousel__art {
    max-height: 45vh;
  }
  .about-story-carousel__art img {
    max-height: 45vh;
  }
  .about-story-carousel__panel:nth-child(4) .about-story-carousel__art img {
    max-width: 100%;
  }

  .about-story-carousel__panel:nth-child(2) {
    grid-template-columns: 1fr;
    gap: 1.5rem;
    padding: 2rem 1.25rem;
  }
  .about-story-carousel__panel:nth-child(2) .about-story-carousel__art {
    max-height: 45vh;
    justify-content: center;
    overflow: visible;
  }
  .about-story-carousel__panel:nth-child(2) .about-story-carousel__art img {
    max-width: 100%;
    width: 100%;
    height: auto;
    max-height: 45vh;
    margin-left: 0;
    margin-right: 0;
    object-fit: contain;
  }
  .about-story-carousel__panel:nth-child(2) .about-story-carousel__text {
    max-width: 100%;
    padding-left: 0;
  }
  .about-story-carousel__indicator,
  .about-story-carousel__arrows {

    display: none;
  }

  /* GH: mobile 2+1 layout for end-of-Our-Story logos.
 Row 1: Ad Fontes + Davenant Hall side-by-side; Row 2: Davenant Press centered.
 Desktop 3-across is untouched — overrides scoped inside this @media. */
  .about-story-carousel__logos {
    grid-template-columns: 1fr 1fr;
    gap: 1.5rem 1rem;
    max-height: none;
  }
  .about-story-carousel__logos .about-story-carousel__logo-cell:nth-child(1) {
    grid-column: 1 / 2;
    grid-row: 1;
  }
  .about-story-carousel__logos .about-story-carousel__logo-cell:nth-child(2) {
    grid-column: 2 / 3;
    grid-row: 1;
  }
  .about-story-carousel__logos .about-story-carousel__logo-cell:nth-child(3) {
    grid-column: 1 / -1;
    grid-row: 2;
    justify-self: center;
    max-width: 55%;
  }
  /* Scale logos down a touch in the new 2-up row so they sit comfortably. */
  .about-story-carousel__logos .about-story-carousel__logo-img {
    max-height: 28vh;
  }
  .about-story-carousel__panel--logos .about-story-carousel__logo-cell {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .about-story-carousel__track {
    transition: none;
  }
}

.more-in-about {
  background: var(--navy);
  color: #fff;
  padding: 4rem 2rem 4.5rem;
}
.more-in-about__inner {
  max-width: 1200px;
  margin: 0 auto;
}
.more-in-about__eyebrow {
  font-family: var(--body, inherit);
  font-size: 0.78rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--gold);
  margin: 0 0 0.5rem;
  font-weight: 600;
}
.more-in-about__heading {
  font-family: var(--display, inherit);
  font-size: clamp(1.6rem, 2.4vw, 2.1rem);
  margin: 0 0 2rem;
  color: #fff;
  line-height: 1.15;
  border-bottom: 1px solid rgba(196, 163, 90, 0.35);
  padding-bottom: 0.9rem;
}
.more-in-about__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.25rem;
}
.more-in-about__card {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: 150px;
  padding: 1.25rem 1.25rem 1.1rem;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(196, 163, 90, 0.30);
  color: #fff;
  text-decoration: none;
  transition: transform 0.22s ease,
              background-color 0.22s ease,
              border-color 0.22s ease,
              box-shadow 0.22s ease;
  position: relative;
}
.more-in-about__card:hover,
.more-in-about__card:focus-visible {
  transform: translateY(-3px);
  background: rgba(196, 163, 90, 0.12);
  border-color: var(--gold);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25);
  outline: none;
}
.more-in-about__card:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 2px;
}
.more-in-about__card-label {
  font-family: var(--display, inherit);
  font-size: 1.15rem;
  line-height: 1.25;
  margin: 0;
  color: #fff;
}
.more-in-about__card-arrow {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  margin-top: 1.4rem;
  font-size: 1.35rem;
  color: var(--gold);
  line-height: 1;
  transition: transform 0.22s ease;
}
.more-in-about__card:hover .more-in-about__card-arrow,
.more-in-about__card:focus-visible .more-in-about__card-arrow {
  transform: translateX(4px);
}

@media (max-width: 900px) {
  .more-in-about__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 560px) {
  .more-in-about {
    padding: 3rem 1.25rem 3.25rem;
  }
  .more-in-about__grid {
    grid-template-columns: 1fr;
  }
}

.guiding-principles {
  background: var(--cream);
  padding: 4.5rem 2rem 4rem;
}
.guiding-principles__inner {
  max-width: 1180px;
  margin: 0 auto;
}
.guiding-principles__header {
  text-align: center;
  margin: 0 auto 1.25rem;
}
.guiding-principles__heading {
  font-family: var(--display, 'Cormorant Garamond', serif);
  font-style: italic;
  font-weight: 500;
  font-size: clamp(2.4rem, 4.2vw, 3.4rem);
  color: var(--navy);
  line-height: 1.1;
  letter-spacing: 0.01em;
  margin: 0 0 1rem;
}
.guiding-principles__intro {
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-style: italic;
  font-size: clamp(1.05rem, 1.4vw, 1.2rem);
  color: var(--text-dark, var(--navy));
  max-width: 820px;
  margin: 0 auto 3rem;
  line-height: 1.55;
}

.principle-block {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2.5rem;
  align-items: center;
  margin-bottom: 3.5rem;
}
.principle-block:last-child {
  margin-bottom: 0;
}
.principle-block--reverse .principle-figure {
  order: 2;
}
.principle-block--reverse .principle-block__body {
  order: 1;
}

.principle-figure {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.9rem;
  margin: 0;
  padding: 0;
}
.principle-rule {
  display: block;
  height: 1px;
  background: var(--gold);
  width: 100%;
}
.principle-figure img {
  width: 100%;
  height: auto;
  display: block;
  max-height: 380px;
  object-fit: contain;
}

.principle-block__body {
  padding: 0.5rem 0.5rem;
}
.principle-block__title {
  font-family: var(--display, 'Cormorant Garamond', serif);
  font-style: italic;
  font-weight: 500;
  font-size: clamp(1.7rem, 2.4vw, 2.1rem);
  color: var(--navy);
  margin: 0 0 0.85rem;
  line-height: 1.15;
}
.principle-block__title::after {
  content: '';
  display: block;
  width: 48px;
  height: 2px;
  background: var(--gold);
  margin-top: 0.55rem;
}
.principle-block__text {
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-size: 1.08rem;
  line-height: 1.6;
  color: var(--text-dark, var(--navy));
  margin: 0;
}

@media (max-width: 1024px) {
  .principle-block {
    gap: 1.75rem;
  }
}

@media (max-width: 820px) {
  .guiding-principles {
    padding: 3.25rem 1.25rem 3rem;
  }
  .guiding-principles__intro {
    margin-bottom: 2.25rem;
  }
  .principle-block {
    grid-template-columns: 1fr;
    gap: 1.25rem;
    margin-bottom: 2.5rem;
  }
  .principle-block--reverse .principle-figure,
  .principle-figure {
    order: 1;
  }
  .principle-block--reverse .principle-block__body,
  .principle-block__body {
    order: 2;
  }
  .principle-figure img {
    max-height: 280px;
  }
}

.editors-carousel-section {
  background: var(--cream-faf5ef, #faf5ef);
  padding: 4rem 2rem 5rem;
  border-top: 1px solid rgba(28, 47, 74, 0.08);
}
.editors-carousel-header {
  max-width: 1280px;
  margin: 0 auto 2.5rem;
  text-align: center;
}
.editors-carousel {
  position: relative;
  max-width: 1080px;
  margin: 0 auto;
  padding: 0 3.5rem;
}
.editors-track-viewport {
  overflow: hidden;
}
.editors-track {
  display: flex;
  transition: transform 0.55s cubic-bezier(0.4, 0.0, 0.2, 1);
  will-change: transform;
}
.editor-card {
  flex: 0 0 100%;
  max-width: 100%;
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 2.4rem;
  align-items: start;
  padding: 1rem 0.5rem;
  background: transparent;
}
.editor-card__portrait {
  width: 280px; height: 280px;
  border-radius: 50%;
  overflow: hidden;
  background: var(--cream, #f5f0e8);
  border: 4px solid var(--gold-bright, #d8b870);
  box-shadow: 0 8px 22px rgba(28, 47, 74, 0.18);
  flex-shrink: 0;
}
.editor-card__portrait img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
}
.editor-card__body {
  text-align: left;
  color: var(--navy, #1c2f4a);
}
.editor-card__name {
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-size: 2rem;
  font-weight: 600;
  color: var(--navy, #1c2f4a);
  margin: 0 0 0.4rem;
  line-height: 1.2;
}
.editor-card__role {
  font-style: normal;
  font-weight: 400;
  color: var(--burgundy, #6b3a3a);
  font-size: 1.6rem;
}
.editor-card__degree {
  font-family: var(--sc, 'Cormorant SC', serif);
  font-size: 0.95rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--gold, #c4a35a);
  margin: 0 0 1.2rem;
  padding-bottom: 0.7rem;
  border-bottom: 1px solid rgba(28, 47, 74, 0.18);
}
.editor-card__bio {
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-size: 1.08rem;
  line-height: 1.65;
  color: #2a3a52;
  margin: 0;
}
.editor-card__bio em {
  font-style: italic;
}

.editors-nav {
  position: absolute;
  top: 130px;
  width: 44px; height: 44px;
  border-radius: 50%;
  background: var(--navy, #1c2f4a);
  color: var(--gold-bright, #d8b870);
  border: 2px solid var(--gold-bright, #d8b870);
  font-size: 1.6rem;
  line-height: 1;
  cursor: pointer;
  z-index: 5;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--body, serif);
  transition: background 0.2s ease, transform 0.2s ease;
  padding: 0;
}
.editors-nav:hover {
  background: var(--gold-bright, #d8b870);
  color: var(--navy, #1c2f4a);
  transform: scale(1.08);
}
.editors-nav:focus-visible {
  outline: 2px solid var(--gold, #c4a35a);
  outline-offset: 3px;
}
.editors-nav--prev { left: 0; }
.editors-nav--next { right: 0; }

.editors-dots {
  display: flex;
  justify-content: center;
  gap: 0.65rem;
  margin-top: 2rem;
}
.editors-dot {
  width: 11px; height: 11px;
  border-radius: 50%;
  background: rgba(28, 47, 74, 0.25);
  border: none;
  cursor: pointer;
  padding: 0;
  transition: background 0.25s ease, transform 0.25s ease;
}
.editors-dot:hover { background: rgba(28, 47, 74, 0.5); }
.editors-dot.is-active {
  background: var(--gold-bright, #d8b870);
  transform: scale(1.25);
}
.editors-dot:focus-visible {
  outline: 2px solid var(--gold, #c4a35a);
  outline-offset: 3px;
}

.editors-carousel { overflow: hidden; }

@media (max-width: 720px) {
  .editors-carousel-section { padding: 3rem 1rem 4rem; }
  .editors-carousel { padding: 0 0.5rem; }
  .editor-card {
    grid-template-columns: 1fr;
    gap: 1.4rem;
    padding: 0.5rem 1rem;
    text-align: center;
  }
  .editor-card__portrait {
    width: 200px; height: 200px;
    margin: 0 auto;
  }
  .editor-card__body { text-align: center; }
  .editor-card__name { font-size: 1.7rem; }
  .editor-card__role { font-size: 1.35rem; display: block; margin-top: 0.15rem; }
  .editor-card__degree { font-size: 0.82rem; }
  .editor-card__bio { font-size: 1rem; line-height: 1.6; text-align: left; }
  .editors-nav {
    top: 100px;
    width: 36px; height: 36px;
    font-size: 1.3rem;
  }
  .editors-nav--prev { left: -4px; }
  .editors-nav--next { right: -4px; }
}

.adfontes-main { background: var(--cream); }

.af-tabs-section {
  background: var(--cream);
  padding: 4rem 2rem 6rem;
}
.af-tabs-header {
  max-width: 1200px;
  margin: 0 auto 2rem;
  text-align: center;
}
.af-tabs-row {
  max-width: 1200px;
  margin: 0 auto 2.4rem;
  display: flex;
  justify-content: center;
  gap: 0;
  border-bottom: 1px solid rgba(28, 47, 74, 0.18);
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.af-tab {
  font-family: 'Cormorant SC', serif;
  font-size: 1rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(28, 47, 74, 0.6);
  background: transparent;
  border: none;
  padding: 1rem 2rem;
  cursor: pointer;
  position: relative;
  white-space: nowrap;
  transition: color 0.2s ease;
}
.af-tab:hover { color: var(--navy); }
.af-tab.is-active {
  color: var(--navy);
}
.af-tab.is-active::after {
  content: "";
  position: absolute;
  left: 1.2rem;
  right: 1.2rem;
  bottom: -1px;
  height: 3px;
  background: var(--gold-bright, #d8b870);
}
.af-tab-panels {
  max-width: 1200px;
  margin: 0 auto;
  position: relative;
}
.af-tab-panel {
  opacity: 0;
  transition: opacity 0.32s ease;
}
.af-tab-panel.is-active {
  opacity: 1;
}
.af-tab-panel[hidden] { display: none; }
.af-tab-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.6rem 2.4rem;
}
.af-tab-item {
  background: var(--cream-faf5ef, #faf5ef);
  border: 1px solid rgba(28, 47, 74, 0.1);
  border-left: 3px solid var(--gold-bright, #d8b870);
  padding: 1.4rem 1.6rem;
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}
.af-tab-item:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 22px rgba(28, 47, 74, 0.1);
  border-left-color: var(--navy);
}
.af-tab-eyebrow {
  font-family: 'Cormorant SC', serif;
  font-size: 0.78rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--gold-bright, #d8b870);
  margin: 0 0 0.5rem;
}
.af-tab-item-title {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.5rem;
  font-weight: 500;
  color: var(--navy);
  margin: 0 0 0.4rem;
  line-height: 1.25;
}
.af-tab-item-meta {
  font-family: 'Cormorant Garamond', serif;
  font-style: italic;
  font-size: 1rem;
  color: rgba(28, 47, 74, 0.75);
  margin: 0;
}
@media (max-width: 720px) {
  .af-tabs-section { padding: 3rem 1.2rem 4rem; }
  .af-tabs-row { justify-content: flex-start; }
  .af-tab { font-size: 0.85rem; padding: 0.85rem 1.2rem; letter-spacing: 0.18em; }
  .af-tab-list { grid-template-columns: 1fr; gap: 1rem; }
  .af-tab-item-title { font-size: 1.3rem; }
}

.ad-fontes-current-issue {
  
  position: relative;
  background: #9c4a45;
  padding: 0 0 4rem;
}

.af-ci-podcast-style {
  display: block;
  background-color: #9c4a45; /* Ad Fontes red */
  background-image: none;
  padding: 3rem 2rem 4rem;
  position: relative;
}
.af-ci-ps__inner {
  width: 96%;
  max-width: 1180px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  align-items: center;
  position: relative;
}
.af-ci-ps__text-card {
  background-color: #f4ead4;
  background-image: url('images/parchment-bg-2.png');
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  border: 1px solid rgba(157, 79, 68, 0.22);
  border-radius: 0.4rem;
  padding: 2.6rem 2.6rem 2.4rem;
  margin-right: -3.5rem;
  position: relative;
  z-index: 2;
  box-shadow: 0 4px 18px rgba(34, 26, 22, 0.06);
}
.af-ci-ps__eyebrow {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.55em;
  font-family: var(--sc, 'Cormorant SC', serif);
  font-size: 0.82rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #9D4F44;
  margin: 0 0 0.9rem;
}
.af-ci-ps__meta-sep { opacity: 0.55; }
.af-ci-ps__title {
  font-family: var(--display, 'Cormorant Garamond', serif);
  font-style: italic;
  font-weight: 500;
  font-size: clamp(1.8rem, 3.4vw, 2.6rem);
  color: #9D4F44;
  line-height: 1.05;
  margin: 0 0 0.85rem;
}
.af-ci-ps__desc {
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-size: 1.05rem;
  line-height: 1.55;
  color: #2b1d18;
  margin: 0 0 1.3rem;
  max-width: 32em;
}
.af-ci-ps__cta {
  display: inline-block;
  font-family: var(--sc, 'Cormorant SC', serif);
  font-size: 0.85rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #9D4F44;
  text-decoration: none;
  border-bottom: 1.5px solid #9D4F44;
  padding-bottom: 0.3rem;
  transition: color 0.2s ease, border-bottom-color 0.2s ease;
}
.af-ci-ps__cta:hover, .af-ci-ps__cta:focus { color: #7d3a32; border-bottom-color: #7d3a32; }
.af-ci-ps__image-card {
  background-color: #f4ead4;
  background-image: url('images/parchment-bg-2.png');
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  border: 1px solid rgba(157, 79, 68, 0.22);
  border-radius: 0.4rem;
  padding: 1.4rem;
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 360px;
  box-shadow: 0 4px 18px rgba(34, 26, 22, 0.06);
}
.af-ci-ps__medallion {
  display: block;
  width: 100%;
  max-width: 320px;
  height: auto;
}
@media (max-width: 768px) {
  .af-ci-podcast-style { padding: 2rem 1rem 2.5rem; }
  .af-ci-ps__inner { display: flex; flex-direction: column; gap: 1rem; }
  .af-ci-ps__image-card { order: 1; min-height: 280px; padding: 1rem; }
  .af-ci-ps__text-card { order: 2; margin-right: 0; padding: 1.8rem 1.6rem 1.6rem; }
  .af-ci-ps__title { font-size: clamp(1.6rem, 6vw, 2.1rem); }
  .af-ci-ps__desc { font-size: 1rem; max-width: none; }
  .af-ci-ps__medallion { max-width: 220px; }
}

.af-ci-v2 {
  padding: 5rem 0;
}
.af-ci-v2__inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 2rem;
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); /* larger left, shorter right */
  gap: 2.4rem;
  align-items: stretch;
}
.af-ci-v2__brand-card {
  background: #f4ead4; /* parchment cream */
  background-image: url('images/parchment-bg-2.png');
  background-size: cover;
  background-position: center;
  border: 1px solid rgba(80, 30, 25, 0.2);
  box-shadow: 0 14px 32px rgba(0, 0, 0, 0.18);
  padding: 3rem 2.6rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 1.6rem;
}
.af-ci-v2__medallion {
  display: block;
  width: clamp(180px, 28vw, 280px);
  height: auto;
}
.af-ci-v2__brand-title {
  font-family: var(--display, 'Cormorant Garamond', serif);
  font-style: italic;
  font-weight: 500;
  font-size: clamp(2rem, 3.6vw, 2.8rem);
  color: #9D4F44; /* Ad Fontes red */
  margin: 0;
  line-height: 1.05;
}
.af-ci-v2__issue-card {
  background: #f4ead4;
  background-image: url('images/parchment-bg-2.png');
  background-size: cover;
  background-position: center;
  border: 1px solid rgba(80, 30, 25, 0.2);
  box-shadow: 0 14px 32px rgba(0, 0, 0, 0.18);
  padding: 1.8rem 1.8rem 2rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 1.1rem;
}
.af-ci-v2__cover-wrap {
  margin: 0;
  background: rgba(245, 240, 232, 0.5);
  border: 1px solid rgba(157, 79, 68, 0.55);
  box-shadow: 0 10px 22px rgba(0, 0, 0, 0.16);
  width: 100%;
  max-width: 240px;
}
.af-ci-v2__cover {
  display: block;
  width: 100%;
  height: auto;
}
.af-ci-v2__issue-body {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.9rem;
}
.af-ci-v2__issue-title {
  font-family: var(--display, 'Cormorant Garamond', serif);
  font-style: italic;
  font-weight: 500;
  font-size: clamp(1.35rem, 2.4vw, 1.7rem);
  color: #9D4F44;
  margin: 0;
  line-height: 1.15;
}
.af-ci-v2__issue-vol {
  display: block;
  font-style: normal;
  font-size: 0.78em;
  color: rgba(43, 29, 24, 0.78);
  letter-spacing: 0.02em;
  margin-top: 0.25rem;
}
.af-ci-v2__cta {
  display: inline-block;
  font-family: var(--sc, 'Cormorant SC', serif);
  font-size: 0.9rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #9D4F44;
  text-decoration: none;
  border: 1px solid #9D4F44;
  padding: 0.65rem 1.5rem;
  background: transparent;
  transition: background 0.2s ease, color 0.2s ease;
  margin-top: 0.4rem;
}
.af-ci-v2__cta:hover, .af-ci-v2__cta:focus {
  background: #9D4F44;
  color: #f4ead4;
}

@media (max-width: 820px) {
  .af-ci-v2__inner { grid-template-columns: 1fr; }
  .af-ci-v2__brand-card { padding: 2.4rem 1.6rem; }
  .af-ci-v2 { padding: 3.6rem 0; }
}

.ad-fontes-current-issue__header {
  max-width: 1200px;
  margin: 0 auto;
  padding: 3.2rem 2rem 1.6rem; 
  text-align: center;
}
.ad-fontes-current-issue__eyebrow {
  font-family: 'Cormorant SC', serif;
  font-size: 0.92rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--gold);
  margin: 0 0 0.5rem;
}
.ad-fontes-current-issue__title {
  font-family: 'Cormorant Garamond', serif;
  font-weight: 600;
  font-style: italic;
  font-size: clamp(1.8rem, 2.8vw, 2.6rem);
  line-height: 1.15;
  color: var(--cream-faf5ef); 
  margin: 0;
}
.ad-fontes-current-issue__title::after {
  content: '';
  display: block;
  width: 56px;
  height: 2px;
  background: var(--gold);
  margin: 0.9rem auto 0;
}

.ad-fontes-current-issue__panel {
  display: block;
  position: relative;
  max-width: 1200px;
  margin: 0 auto;
  height: 540px;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  background: var(--navy);
  box-shadow: 0 12px 36px rgba(28, 47, 74, 0.18);
  transition: transform 0.32s cubic-bezier(0.4, 0, 0.2, 1),
              box-shadow 0.32s cubic-bezier(0.4, 0, 0.2, 1);
}
.ad-fontes-current-issue__panel:hover,
.ad-fontes-current-issue__panel:focus-visible {
  transform: translateY(-3px);
  box-shadow: 0 18px 44px rgba(28, 47, 74, 0.28);
  outline: none;
}
.ad-fontes-current-issue__panel:focus-visible {
  outline: 3px solid var(--gold);
  outline-offset: -3px;
}

.ad-fontes-current-issue__panel-bg {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  display: block;
  transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
  z-index: 1;
}
.ad-fontes-current-issue__panel:hover .ad-fontes-current-issue__panel-bg,
.ad-fontes-current-issue__panel:focus-visible .ad-fontes-current-issue__panel-bg {
  transform: scale(1.04);
}

.ad-fontes-current-issue__panel-scrim {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-image: linear-gradient(
    to bottom,
    rgba(0, 0, 0, 0.05) 0%,
    rgba(0, 0, 0, 0.45) 50%,
    rgba(0, 0, 0, 0.85) 100%
  );
  pointer-events: none;
  display: block;
  z-index: 2;
}

.ad-fontes-current-issue__panel-text {
  position: relative;
  z-index: 3;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  height: 100%;
  padding: 3rem 3rem 2.6rem;
  color: var(--cream);
  text-shadow: 0 2px 14px rgba(0, 0, 0, 0.55);
  max-width: 640px;
}
.ad-fontes-current-issue__panel-eyebrow {
  font-family: 'Cormorant SC', serif;
  font-size: 0.78rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--gold);
  margin: 0 0 0.7rem;
  display: block;
  opacity: 0.95;
}
.ad-fontes-current-issue__panel-display {
  font-family: 'Cormorant Garamond', serif;
  font-weight: 600;
  font-style: italic;
  font-size: clamp(1.9rem, 2.8vw, 2.6rem);
  line-height: 1.05;
  color: var(--cream);
  margin: 0 0 0.4rem;
  display: block;
}
.ad-fontes-current-issue__panel-name {
  font-family: 'Cormorant SC', serif;
  font-size: 0.92rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--cream);
  opacity: 0.9;
  margin: 0 0 1rem;
  display: block;
}
.ad-fontes-current-issue__panel-body {
  display: block;
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.02rem;
  line-height: 1.5;
  color: var(--cream);
  max-width: 52ch;
  margin: 0 0 1.2rem;
}
.ad-fontes-current-issue__panel-body em { font-style: italic; }
.ad-fontes-current-issue__panel-cta {
  display: inline-block;
  font-family: 'Cormorant SC', serif;
  font-size: 0.92rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--gold);
  border-bottom: 1px solid rgba(212, 175, 90, 0.55);
  padding-bottom: 0.25rem;
  align-self: flex-start;
  transition: color 0.2s ease, border-color 0.2s ease;
}
.ad-fontes-current-issue__panel:hover .ad-fontes-current-issue__panel-cta,
.ad-fontes-current-issue__panel:focus-visible .ad-fontes-current-issue__panel-cta {
  color: var(--cream);
  border-bottom-color: var(--cream);
}

@media (max-width: 900px) {
  .ad-fontes-current-issue { padding-bottom: 3.5rem; }
  .ad-fontes-current-issue__header { padding: 3rem 1.2rem 1.6rem; }
  .ad-fontes-current-issue__panel {

    max-width: none;
    margin: 0 1rem;
    height: 460px;
  }
  .ad-fontes-current-issue__panel-text {
    padding: 2rem 1.6rem 2rem;
    max-width: none;
  }
  .ad-fontes-current-issue__panel-display { font-size: clamp(1.6rem, 6vw, 2rem); }
  .ad-fontes-current-issue__panel-body { font-size: 0.98rem; }
}

@media (max-width: 480px) {
  .ad-fontes-current-issue__panel { height: 420px; margin: 0 0.6rem; }
  .ad-fontes-current-issue__panel-text { padding: 1.6rem 1.3rem 1.6rem; }
}

.bookstore-hero {
  position: relative;
  width: 100%;
  background: var(--cream, #f5f0e8);
  color: var(--navy, #1c2f4a);
  overflow: hidden;

  max-height: 100vh;
  border-bottom: 1px solid rgba(28, 47, 74, 0.08);
}
.bookstore-hero__stage {
  position: relative;
  width: 100%;
}
.bookstore-hero__track {
  position: relative;
  width: 100%;

}
.bookstore-hero__slide {
  position: absolute;
  inset: 0;
  width: 100%;

  opacity: 0;
  visibility: hidden;
  transition: opacity 700ms cubic-bezier(0.22, 0.61, 0.36, 1),
              visibility 0s linear 700ms;
  pointer-events: none;
}

.bookstore-hero__slide.is-active {
  position: relative;
  opacity: 1;
  visibility: visible;
  transition: opacity 700ms cubic-bezier(0.22, 0.61, 0.36, 1),
              visibility 0s linear 0s;
  pointer-events: auto;
}

.bookstore-hero__slide-image {
  display: block;
  width: 100%;
  height: auto;
  max-height: 100vh;
  object-fit: contain;
  margin: 0;
}

.bookstore-hero__indicator {
  position: absolute;
  bottom: clamp(1.6rem, 3vw, 2.6rem);
  left: clamp(2rem, 6vw, 6rem);
  z-index: 6;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.45rem;
  pointer-events: auto;
}
.bookstore-hero__indicator-row {
  display: flex;
  align-items: flex-end;
  gap: clamp(0.9rem, 1.6vw, 1.6rem);
}
.bookstore-hero__numeral-big {
  font-family: var(--display, 'Cormorant Garamond', serif);
  font-style: italic;
  font-weight: 500;
  font-size: clamp(3.8rem, 7vw, 6.8rem);
  line-height: 0.85;
  color: var(--navy, #1c2f4a);
  letter-spacing: -0.01em;
  min-width: 1.1ch;
  text-align: right;
  user-select: none;

  transition: opacity 200ms ease;
}
.bookstore-hero__numeral-big.is-changing {
  opacity: 0.25;
}

.bookstore-hero__circles {
  position: relative;
  display: flex;
  align-items: center;
  gap: 0;
  padding-bottom: 0.85rem;
}
.bookstore-hero__dot {
  
  appearance: none;
  display: inline-block;
  background: rgba(28, 47, 74, 0.22);
  border: 1px solid rgba(28, 47, 74, 0.28);
  width: 0.7rem;
  height: 0.7rem;
  border-radius: 50%;
  padding: 0;
  cursor: default;
  pointer-events: none;
  flex: 0 0 auto;
  text-decoration: none;
  font-size: 0;
  line-height: 0;
  transition: background 220ms ease, border-color 220ms ease, transform 220ms ease;
}
.bookstore-hero__dot.is-active {
  background: var(--gold, #c4a35a);
  border-color: var(--gold, #c4a35a);
  transform: scale(1.25);
  box-shadow: 0 0 0 3px rgba(196, 163, 90, 0.18);
}
.bookstore-hero__dot.is-passed {
  background: var(--gold, #c4a35a);
  border-color: var(--gold, #c4a35a);
}

.bookstore-hero__seg {
  position: relative;
  width: clamp(28px, 4vw, 56px);
  height: 0.7rem;
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
}
.bookstore-hero__seg::before {
  content: '';
  position: absolute;
  left: 0; right: 0; top: 50%;
  height: 1px;
  background: rgba(28, 47, 74, 0.25);
  transform: translateY(-50%);
}
.bookstore-hero__seg-fill {

  position: absolute;
  left: 0; top: 50%;
  height: 2px;
  width: var(--seg-fill, 0%);
  background: var(--gold, #c4a35a);
  transform: translateY(-50%);
  box-shadow: 0 0 6px rgba(196, 163, 90, 0.45);
  transition: width var(--seg-duration, 220ms) linear;
}

.bookstore-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at 80% 20%, rgba(196, 163, 90, 0.08) 0%, rgba(196, 163, 90, 0) 55%),
    radial-gradient(ellipse at 10% 90%, rgba(28, 47, 74, 0.05) 0%, rgba(28, 47, 74, 0) 50%);
  pointer-events: none;
  z-index: 0;
}
.bookstore-hero__stage { z-index: 1; }

@media (max-width: 820px) {
  .bookstore-hero__indicator {
    left: 1.4rem;
    bottom: 1.6rem;
    gap: 0.35rem;
  }
  .bookstore-hero__seg {
    width: clamp(20px, 6vw, 40px);
  }
  .bookstore-hero__numeral-big {
    font-size: clamp(2.8rem, 9vw, 4.4rem);
  }
}
@media (prefers-reduced-motion: reduce) {
  .bookstore-hero__slide,
  .bookstore-hero__seg-fill {
    transition: none !important;
  }
}

.hero-brand-row.hero-brand-row--logo-only {

  justify-content: flex-start;
  gap: 0;
  margin-left: 0;
}
.hero-brand-logo-v3 {
  display: block;

  width: clamp(136px, 14.45vw, 204px);
  height: auto;
  aspect-ratio: 1 / 1;

  filter: none;
  margin: 0 0 0 4%;
}
@media (max-width: 600px) {
  .hero-brand-logo-v3 {

    width: clamp(102px, 27.2vw, 144.5px);
    height: auto;
    margin: 0;
  }
}

.nav-logo--logo-only a {
  display: flex; align-items: center; gap: 0;
}
body:not(.home) .site-header .nav-logo--logo-only img {

  filter: drop-shadow(0 1px 4px rgba(0,0,0,0.4));
  width: 96px;
  height: 96px;
  aspect-ratio: 1 / 1;
  object-fit: contain;
}
body:not(.home) .site-header .nav-logo--logo-only {

  padding: 0.6rem 1.8rem 0.6rem 1.2rem;
  gap: 0;
}

@media (min-width: 601px) {
  body:not(.home) .site-header .nav-logo--logo-only {
    align-self: flex-start;
  }
}
@media (max-width: 600px) {
  body:not(.home) .site-header .nav-logo--logo-only img { width: 64px; height: 64px; }
  body:not(.home) .site-header .nav-logo--logo-only {
    padding: 0.45rem 1.2rem 0.45rem 0.8rem;
  }
}

.pillar-v2-medallion.pillar-v2-medallion--thumb {
  width: 100%;
  max-width: 200px;
  height: auto;
  aspect-ratio: 960 / 1188;
  margin: 0 auto 0.8rem;
}
.pillar-v2-medallion.pillar-v2-medallion--thumb img {
  width: 100%; height: 100%;
  object-fit: contain;

  filter: drop-shadow(0 2px 6px rgba(0,0,0,0.25));
}
@media (max-width: 768px) {
  .pillar-v2-medallion.pillar-v2-medallion--thumb {
    max-width: 160px;
  }
}

.subscribe-section.subscribe-section--bookstore {
  margin-top: 4rem;
}

.page-donate {
  background: var(--cream);
  color: var(--navy);
}

.donate-impact {
  background: var(--cream);
  padding: 9rem 2rem 7rem;
}
.donate-impact__inner {
  max-width: 1200px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(280px, 1fr) minmax(380px, 1.25fr);
  gap: 4.5rem 5rem;
  align-items: start;
}
.donate-impact__head { padding-top: 0.6rem; }
.donate-impact__title {
  font-family: var(--body);
  font-weight: 600;
  font-style: italic;
  font-size: clamp(2.2rem, 3.4vw, 3.4rem);
  line-height: 1.1;
  color: var(--navy);
  margin-bottom: 1.4rem;
  letter-spacing: -0.005em;
}
.donate-impact__title::after {
  content: '';
  display: block;
  width: 64px;
  height: 2px;
  background: var(--gold);
  margin-top: 1.2rem;
}
.donate-impact__lede {
  font-family: var(--body);
  font-size: 1.125rem;
  line-height: 1.65;
  color: var(--navy);
  opacity: 0.92;
  max-width: 50ch;
}

.donate-impact__stats {
  list-style: none;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2.6rem 2.4rem;
  margin: 0;
  padding: 0;
}
.donate-impact__stat {
  background: #fff;
  border: 1px solid rgba(28, 47, 74, 0.08);
  border-top: 3px solid var(--gold);
  padding: 2rem 1.8rem 2rem;
  border-radius: 2px;
  box-shadow: 0 1px 0 rgba(28, 47, 74, 0.04), 0 8px 24px -12px rgba(28, 47, 74, 0.08);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.donate-impact__stat:hover {
  transform: translateY(-2px);
  box-shadow: 0 1px 0 rgba(28, 47, 74, 0.04), 0 14px 32px -12px rgba(28, 47, 74, 0.16);
}
.donate-impact__stat--triple { grid-column: 1 / -1; }
.donate-impact__stat-num {
  font-family: var(--body);
  font-weight: 600;
  font-style: italic;
  font-size: clamp(2.6rem, 4.4vw, 3.8rem);
  line-height: 1;
  color: var(--gold);
  margin-bottom: 0.6rem;
  font-variant-numeric: lining-nums tabular-nums;
}
.donate-impact__stat-label {
  font-family: var(--sc);
  font-weight: 600;
  font-size: 0.92rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--navy);
  margin-bottom: 0.4rem;
}
.donate-impact__stat-label--top {
  margin-bottom: 1.4rem;
  border-bottom: 1px solid rgba(196, 163, 90, 0.35);
  padding-bottom: 1rem;
  font-size: 0.95rem;
}
.donate-impact__stat-label em {
  font-style: italic;
  color: var(--navy);
}
.donate-impact__stat-sub {
  font-family: var(--body);
  font-size: 0.98rem;
  line-height: 1.45;
  color: var(--navy);
  opacity: 0.7;
}

.donate-impact__sublist {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.4rem 2rem;
  margin: 0;
  padding: 0;
}
.donate-impact__sublist > li {
  display: flex;
  flex-direction: column;
}
.donate-impact__substat-num {
  font-family: var(--body);
  font-weight: 600;
  font-style: italic;
  font-size: clamp(1.7rem, 2.6vw, 2.2rem);
  line-height: 1.05;
  color: var(--gold);
  margin-bottom: 0.4rem;
  font-variant-numeric: lining-nums tabular-nums;
}
.donate-impact__substat-num--text {
  font-size: clamp(1.15rem, 1.5vw, 1.35rem);
  font-style: italic;
  letter-spacing: 0;
  color: var(--gold);
  line-height: 1.2;
}
.donate-impact__substat-label {
  font-family: var(--body);
  font-size: 0.92rem;
  line-height: 1.4;
  color: var(--navy);
  opacity: 0.78;
}

.donate-partner {
  position: relative;
  isolation: isolate;
  background-color: var(--navy);
  background-size: cover;
  background-position: center right;
  background-repeat: no-repeat;
  color: var(--cream);
  padding: 8rem 2rem 8rem;
  overflow: hidden;
}

.donate-partner__gauze {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background:
    linear-gradient(
      180deg,
      rgba(0, 0, 0, 0.00) 0%,
      rgba(0, 0, 0, 0.00) 50%,
      rgba(0, 0, 0, 0.10) 70%,
      rgba(0, 0, 0, 0.22) 100%
    );
}

.donate-partner__text-col,
.donate-partner__text-col .donate-partner__title,
.donate-partner__text-col .donate-partner__lede,
.donate-partner__text-col .donate-partner__eyebrow,
.donate-partner__text-col .donate-partner__link {
  text-shadow: 0 2px 14px rgba(0, 0, 0, 0.55);
}
.donate-partner__inner {
  position: relative;
  z-index: 1;
  max-width: 1200px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(420px, 1.4fr) minmax(280px, 1fr);
  gap: 3.5rem 5rem;
  align-items: center;
}

.donate-partner__text-col { color: var(--cream); }
.donate-partner__eyebrow {
  font-family: var(--sc);
  font-weight: 600;
  font-size: 0.9rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 0.9rem;
}
.donate-partner__title {
  font-family: var(--body);
  font-weight: 600;
  font-style: italic;
  font-size: clamp(2.4rem, 4.2vw, 3.8rem);
  line-height: 1.05;
  color: var(--cream);
  margin-bottom: 1.6rem;
  letter-spacing: -0.005em;
}
.donate-partner__lede {
  font-family: var(--body);
  font-size: 1.18rem;
  line-height: 1.65;
  color: var(--cream);
  opacity: 0.96;
  max-width: 56ch;
  margin-bottom: 2.4rem;
}
.donate-partner__highlight {
  color: var(--gold);
  font-style: italic;
}

.donate-partner__links {
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: 1px solid rgba(196, 163, 90, 0.45);
}
.donate-partner__link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  padding: 1.15rem 0;
  border-bottom: 1px solid rgba(196, 163, 90, 0.45);
  font-family: var(--sc);
  font-weight: 600;
  font-size: 1rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--cream);
  transition: color 0.2s ease, padding-left 0.25s ease;
}
.donate-partner__link:hover {
  color: var(--gold);
  padding-left: 0.4rem;
}
.donate-partner__link-arrow {
  font-family: var(--body);
  font-style: normal;
  font-size: 1.2rem;
  color: var(--gold);
  transition: transform 0.25s ease;
}
.donate-partner__link:hover .donate-partner__link-arrow {
  transform: translateX(4px);
}

.donate-partner__cta-col {
  display: flex;
  align-items: center;
  justify-content: flex-end;
}
.donate-partner__cta-box {
  display: block;
  background: var(--cream);
  border: 2px solid var(--gold);
  padding: 2.2rem 2rem 2rem;
  max-width: 320px;
  width: 100%;
  color: var(--navy);
  text-align: left;
  position: relative;
  box-shadow: 0 14px 36px -16px rgba(0, 0, 0, 0.45);
  transition: background 0.25s ease, color 0.25s ease, transform 0.25s ease, border-color 0.25s ease;
}
.donate-partner__cta-box:hover {
  background: var(--navy);
  color: var(--cream);
  border-color: var(--gold);
  transform: translateY(-3px);
}
.donate-partner__cta-eyebrow {
  display: block;
  font-family: var(--sc);
  font-weight: 600;
  font-size: 0.78rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 0.5rem;
}
.donate-partner__cta-headline {
  display: block;
  font-family: var(--body);
  font-weight: 600;
  font-style: italic;
  font-size: 2rem;
  line-height: 1.1;
  margin-bottom: 0.9rem;
  color: inherit;
}
.donate-partner__cta-sub {
  display: block;
  font-family: var(--body);
  font-size: 0.96rem;
  line-height: 1.5;
  color: inherit;
  opacity: 0.86;
  margin-bottom: 1rem;
}
.donate-partner__cta-arrow {
  display: inline-block;
  font-family: var(--body);
  font-style: normal;
  font-size: 1.4rem;
  color: var(--gold);
  transition: transform 0.25s ease;
}
.donate-partner__cta-box:hover .donate-partner__cta-arrow {
  transform: translateX(4px);
  color: var(--gold);
}

@media (max-width: 900px) {
  .donate-impact {
    padding: 8rem 1.4rem 4rem;
  }
  .donate-impact__inner {
    grid-template-columns: 1fr;
    gap: 2.6rem;
  }
  .donate-impact__stats {
    grid-template-columns: 1fr;
    gap: 1.4rem;
  }
  .donate-impact__sublist {
    grid-template-columns: 1fr;
    gap: 1rem;
  }

  .donate-partner {
    padding: 4rem 1.4rem 4rem;
    background-position: center;
  }
  .donate-partner__gauze {

    background:
      linear-gradient(
        180deg,
        rgba(0, 0, 0, 0.05) 0%,
        rgba(0, 0, 0, 0.10) 55%,
        rgba(0, 0, 0, 0.25) 100%
      );
  }
  .donate-partner__inner {
    grid-template-columns: 1fr;
    gap: 2.4rem;
  }
  .donate-partner__cta-col {
    justify-content: stretch;
  }
  .donate-partner__cta-box {
    max-width: none;
  }
}

.donate-windowshade {
  position: relative;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  background: var(--navy);
  color: var(--cream);
  padding: 0;
  border-top: 4px solid var(--gold);
  border-bottom: 4px solid var(--gold);
}
.donate-windowshade__inner {
  display: grid;
  grid-template-columns: minmax(360px, 42%) 1fr;
  align-items: stretch;
  max-width: 1480px;
  margin: 0 auto;
  min-height: 300vh;
  position: relative;
  z-index: 1;
}
.donate-windowshade__inner::before {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  left: 85.5%;
  right: calc(50% - 50vw);
  background: var(--cream);
  pointer-events: none;
  z-index: 0;
}
.donate-windowshade__intro {
  position: sticky;
  top: 0;
  align-self: start;
  height: 100vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 1.4rem;
  padding: clamp(3rem, 6vw, 5.5rem) clamp(1.5rem, 4vw, 4rem);
  box-sizing: border-box;
  background: var(--navy);
  z-index: 2;
}
.donate-windowshade__eyebrow {
  font-family: 'Cormorant SC', serif;
  font-size: 0.92rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--gold);
  margin: 0;
}
.donate-windowshade__title {
  font-family: 'Cormorant Garamond', serif;
  font-weight: 500;
  font-style: italic;
  font-size: clamp(2rem, 3.6vw, 3.2rem);
  line-height: 1.1;
  color: #fff;
  margin: 0;
}
.donate-windowshade__title::after {
  content: '';
  display: block;
  width: 64px;
  height: 2px;
  background: var(--gold);
  margin: 1.1rem 0 0;
}
.donate-windowshade__lede {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(1.05rem, 1.35vw, 1.2rem);
  line-height: 1.55;
  color: rgba(245, 240, 232, 0.86);
  margin: 0;
  max-width: 42ch;
}
.donate-windowshade__nav {
  list-style: none;
  margin: auto 0 0;
  padding: 2rem 0 0;
  display: flex;
  flex-direction: column;
  gap: 0.95rem;
}
.donate-windowshade__nav-item {
  display: flex;
  align-items: center;
  gap: 0.95rem;
  font-family: 'Cormorant SC', serif;
  font-size: 0.86rem;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: rgba(245, 240, 232, 0.5);
  transition: color 220ms ease;
  cursor: default;
}
.donate-windowshade__nav-dot {
  display: inline-block;
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 50%;
  background: rgba(245, 240, 232, 0.28);
  flex: 0 0 auto;
  transition: background 220ms ease, transform 220ms ease, box-shadow 220ms ease;
}
.donate-windowshade__nav-item.is-active {
  color: #fff;
}
.donate-windowshade__nav-item.is-active .donate-windowshade__nav-dot {
  background: var(--gold);
  transform: scale(1.35);
  box-shadow: 0 0 8px rgba(196, 163, 90, 0.55);
}
.donate-windowshade__nav-label {
  display: inline-block;
  line-height: 1;
}
.donate-windowshade__stack {
  display: flex;
  flex-direction: column;
  gap: 0;
  position: relative;
  z-index: 1;
}
.donate-windowshade__panel {
  --dws-card-inset-x: 12%;
  --dws-card-inset-y: 8vh;
  --dws-card-trim: 3px;
  position: relative;
  display: block;
  height: 100vh;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  background: transparent;
}
.donate-windowshade__panel:first-child {
  border-top: 0;
}
.donate-windowshade__panel:focus {
  outline: none;
}
.donate-windowshade__panel:focus-visible {
  outline: 3px solid var(--gold);
  outline-offset: -3px;
}
.donate-windowshade__panel::after {
  content: '';
  position: absolute;
  top: var(--dws-card-inset-y);
  bottom: var(--dws-card-inset-y);
  left: var(--dws-card-inset-x);
  right: var(--dws-card-inset-x);
  border: var(--dws-card-trim) solid var(--gold);
  box-shadow: 0 0 0 1px rgba(196, 163, 90, 0.55) inset;
  pointer-events: none;
  z-index: 4;
}
.donate-windowshade__panel-bg {
  position: absolute;
  top: var(--dws-card-inset-y);
  bottom: var(--dws-card-inset-y);
  left: var(--dws-card-inset-x);
  right: var(--dws-card-inset-x);
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  display: block;
  transition: transform 0.7s cubic-bezier(0.4, 0.0, 0.2, 1);
  z-index: 1;
}
.donate-windowshade__panel:hover .donate-windowshade__panel-bg,
.donate-windowshade__panel:focus-visible .donate-windowshade__panel-bg {
  transform: scale(1.035);
}
.donate-windowshade__panel-scrim {
  display: none;
}
.donate-windowshade__panel-logo {
  position: absolute;
  top: var(--dws-card-inset-y);
  bottom: var(--dws-card-inset-y);
  left: var(--dws-card-inset-x);
  right: var(--dws-card-inset-x);
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  padding-bottom: clamp(8rem, 24vh, 15rem);
  pointer-events: none;
}
.donate-windowshade__panel-logo img {
  display: block;
  width: auto;
  max-width: clamp(9rem, 20vw, 18rem);
  max-height: clamp(9rem, 31vh, 20rem);
  object-fit: contain;
  filter: drop-shadow(0 0.8rem 1.35rem rgba(0, 0, 0, 0.42));
}
.donate-windowshade__panel[data-dws-panel="publication"] .donate-windowshade__panel-logo img {
  max-width: clamp(7.4rem, 14vw, 13rem);
  max-height: clamp(12rem, 36vh, 23rem);
}
.donate-windowshade__panel-text {
  position: absolute;
  left: var(--dws-card-inset-x);
  right: var(--dws-card-inset-x);
  bottom: var(--dws-card-inset-y);
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.55rem;
  padding: clamp(1.6rem, 3.2vw, 2.6rem) clamp(1.4rem, 3vw, 2.8rem);
  background: var(--navy);
  border-top: 2px solid var(--gold);
  color: #fff;
}
.donate-windowshade__panel-eyebrow {
  font-family: 'Cormorant SC', serif;
  font-size: 0.86rem;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: var(--gold);
  display: block;
}
.donate-windowshade__panel-name {
  font-family: 'Cormorant Garamond', serif;
  font-weight: 500;
  font-style: italic;
  font-size: clamp(1.8rem, 2.6vw, 2.4rem);
  line-height: 1.05;
  color: #fff;
  display: block;
  margin: 0;
}
.donate-windowshade__panel-caption {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(1.05rem, 1.35vw, 1.2rem);
  line-height: 1.5;
  color: rgba(245, 240, 232, 0.94);
  display: block;
  max-width: 56ch;
  margin: 0.2rem 0 0.4rem;
}
.donate-windowshade__panel-cta {
  font-family: 'Cormorant SC', serif;
  font-size: 0.82rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--gold);
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  border: 1px solid var(--gold);
  padding: 0.55rem 1rem 0.5rem;
  background: transparent;
  transition: background 0.25s ease, color 0.25s ease, border-color 0.25s ease, gap 0.25s ease;
}
.donate-windowshade__panel:hover .donate-windowshade__panel-cta,
.donate-windowshade__panel:focus-visible .donate-windowshade__panel-cta {
  background: var(--gold);
  color: var(--navy);
  border-color: var(--gold);
  gap: 0.85rem;
}
.donate-windowshade__panel-cta-arrow {
  display: inline-block;
  font-size: 1rem;
  line-height: 1;
}

@media (max-width: 900px) {
  .donate-windowshade__inner {
    grid-template-columns: 1fr;
    min-height: 0;
  }
  .donate-windowshade__inner::before {
    display: none;
  }
  .donate-windowshade__intro {
    position: static;
    height: auto;
    padding: clamp(2.4rem, 7vw, 3.6rem) clamp(1.4rem, 5vw, 2.4rem);
    text-align: left;
  }
  .donate-windowshade__nav {
    display: none;
  }
  .donate-windowshade__panel {
    --dws-card-inset-x: 0;
    --dws-card-inset-y: 0;
    height: auto;
    min-height: 62vh;
  }
  .donate-windowshade__panel::after {
    border-width: 0;
    box-shadow: none;
  }
  .donate-windowshade__panel-logo {
    top: 0;
    bottom: 0;
    left: clamp(1rem, 5vw, 2rem);
    right: clamp(1rem, 5vw, 2rem);
    padding-bottom: clamp(10rem, 30vh, 17rem);
  }
  .donate-windowshade__panel-logo img {
    max-width: clamp(7rem, 38vw, 11rem);
    max-height: clamp(7rem, 23vh, 11rem);
  }
  .donate-windowshade__panel[data-dws-panel="publication"] .donate-windowshade__panel-logo img {
    max-width: clamp(5.6rem, 30vw, 8.5rem);
    max-height: clamp(8rem, 27vh, 13rem);
  }
}

@media (max-width: 520px) {
  .donate-windowshade__panel {
    min-height: 68vh;
  }
  .donate-windowshade__panel-logo {
    padding-bottom: clamp(10rem, 33vh, 17rem);
  }
  .donate-windowshade__panel-logo img {
    max-width: clamp(6.4rem, 34vw, 9rem);
    max-height: clamp(6.4rem, 19vh, 9rem);
  }
  .donate-windowshade__panel[data-dws-panel="publication"] .donate-windowshade__panel-logo img {
    max-width: clamp(5rem, 26vw, 7rem);
    max-height: clamp(7rem, 22vh, 11rem);
  }
}

@media (prefers-reduced-motion: reduce) {
  .donate-windowshade__panel-bg,
  .donate-windowshade__panel-cta,
  .donate-windowshade__nav-dot,
  .donate-windowshade__nav-item {
    transition: none !important;
  }
}

.page-davenant-board { background: var(--cream, #f5f0e8); }

.page-leadership-staff .page-hero__walking-text {
  font-size: clamp(2.4rem, 6vw, 5.313rem);
  line-height: 1.035;
  letter-spacing: 0.025em;
  font-weight: 400;
  font-style: normal;
}
@media (max-width: 640px) {
  .page-leadership-staff .page-hero__walking-text {
    font-size: clamp(1.9rem, 8vw, 2.6rem);
    line-height: 1.05;
    letter-spacing: 0.025em;
  }
}

.page-davenant-board .page-hero__walking-text {
  font-size: clamp(2.4rem, 6vw, 5.313rem);
  line-height: 1.035;
  letter-spacing: 0.025em;
  font-weight: 400;
  font-style: normal;
}
@media (max-width: 640px) {
  .page-davenant-board .page-hero__walking-text {
    font-size: clamp(1.9rem, 8vw, 2.6rem);
    line-height: 1.05;
    letter-spacing: 0.025em;
  }
}

.db-intro {
  background: var(--cream, #f5f0e8);
  padding: 3.2rem 2rem 2.2rem;
}
.db-intro__inner {
  max-width: 880px;
  margin: 0 auto;
  text-align: center;
}
.db-intro__eyebrow {
  font-family: var(--body, inherit);
  font-size: 0.78rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--gold, #c4a35a);
  font-weight: 600;
  margin: 0 0 0.9rem;
}
.db-intro__lede {
  font-family: var(--display, 'Cormorant Garamond', serif);
  font-style: italic;
  font-size: clamp(1.15rem, 1.8vw, 1.4rem);
  line-height: 1.45;
  color: var(--navy, #1c2f4a);
  margin: 0;
}

.db-roster {
  background: var(--cream, #f5f0e8);
  padding: 1.4rem 1.5rem 4.5rem;
}
.db-roster__inner {
  max-width: 1180px;
  margin: 0 auto;
}

.db-section-header {
  text-align: center;
  margin: 0 auto 2.6rem;
}
.db-section-header__eyebrow {
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-size: 0.82rem;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--navy, #1c2f4a);
  margin: 0 0 0.85rem;
  font-weight: 500;
}
.db-section-header__rule {
  display: inline-block;
  width: 96px;
  height: 1px;
  background: var(--gold, #c4a35a);
}
/* The board page's section rule is authored as a core separator carrying this class,
   so core's own separator styling (100px max-width, 2px via border, its own margins)
   won out over the 96x1 above. Same root cause as the ls-intro and dc-statement rules.
   Needs the :not() specificity to beat core's max-width. 2026-07-24. */
hr.wp-block-separator.db-section-header__rule,
hr.wp-block-separator.db-section-header__rule:not(.is-style-wide):not(.is-style-dots) {
  display: inline-block;
  width: 96px;
  max-width: 96px;
  height: 1px;
  background: var(--gold, #c4a35a);
  border: 0;
  opacity: 1;
}

.db-roster__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3rem 3rem;
  align-items: start;
}
.db-member-card {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 1.6rem;
  align-items: start;
  background: transparent;
  scroll-margin-top: 100px;
}
.db-member-card__figure {
  margin: 0;
  padding: 0;
  border: 1px solid rgba(196, 163, 90, 0.35);
  background: #fff;
  overflow: hidden;
  aspect-ratio: 1 / 1;
  width: 220px;
  height: 220px;
  display: block;
}
.db-member-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.db-member-card__body {
  padding-top: 0.4rem;
}
.db-member-card__name {
  font-family: var(--display, 'Cormorant Garamond', serif);
  font-weight: 500;
  font-size: clamp(1.5rem, 2.1vw, 1.85rem);
  color: var(--navy, #1c2f4a);
  margin: 0 0 0.35rem;
  line-height: 1.15;
  letter-spacing: 0.005em;
}
.db-member-card__role {
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-style: italic;
  font-size: 1.05rem;
  color: var(--gold, #c4a35a);
  margin: 0 0 0.9rem;
  letter-spacing: 0.01em;
  line-height: 1.3;
}
.db-member-card__rule {
  display: block;
  width: 48px;
  height: 1px;
  background: var(--gold, #c4a35a);
  margin: 0 0 1rem;
}
/* Authored as a core separator in the block content, so it needs the same
   max-width/border override to render as prod's 48x1 gold hairline. 2026-07-24:
   prod shows one of these inside every member card; DEV had none at all. */
hr.wp-block-separator.db-member-card__rule,
hr.wp-block-separator.db-member-card__rule:not(.is-style-wide):not(.is-style-dots) {
  display: block;
  width: 48px;
  max-width: 48px;
  height: 1px;
  background: var(--gold, #c4a35a);
  border: 0;
  opacity: 1;
  margin: 0 0 1rem;
}
/* NOTE (2026-07-24): the 48px gold rule in each member card is drawn by
   .db-member-card__bio::before below — it is NOT a separator block. I briefly added
   six wp:separator blocks to the page content thinking the rules were missing; they
   were duplicates and made every card 17px taller. Removed from the content again.
   If a card rule ever looks absent, check the ::before rule, don't add markup. */
.db-member-card__bio p {
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-size: 1.02rem;
  line-height: 1.65;
  color: var(--text-dark, var(--navy, #1c2f4a));
  margin: 0 0 0.95rem;
}
.db-member-card__bio p:last-child {
  margin-bottom: 0;
}
.db-member-card__bio:empty {
  display: none;
}

/* v0.1.168 — Davenant Board converted from wp:html scaffolds to native blocks.
 * The portrait is now a core Image block (figure.wp-block-image) and the rule
 * is drawn via ::before on the bio group; neutralize core-block auto margins so
 * geometry matches the previous scaffold markup exactly. */
figure.wp-block-image.db-member-card__figure { margin: 0; }
.page-davenant-board .wp-block-group > * { margin-block-start: 0; margin-block-end: 0; }
.page-davenant-board .db-intro__eyebrow { margin: 0 0 0.9rem; }
.page-davenant-board .db-section-header__eyebrow { margin: 0 0 0.85rem; }
.page-davenant-board .db-member-card__name { margin: 0 0 0.35rem; }
.page-davenant-board .db-member-card__role { margin: 0 0 0.9rem; }
.page-davenant-board .db-member-card__bio p { margin: 0 0 0.95rem; }
.page-davenant-board .db-member-card__bio p:last-child { margin-bottom: 0; }
.db-member-card__bio::before {
  content: ""; display: block; width: 48px; height: 1px;
  background: var(--gold, #c4a35a); margin: 0 0 1rem;
}
@media (max-width: 700px) {
  .db-member-card__bio::before { margin-left: auto; margin-right: auto; }
  figure.wp-block-image.db-member-card__figure { margin: 0 auto; }
}

@media (max-width: 1100px) {
  .db-roster__grid {
    grid-template-columns: 1fr;
    gap: 2.4rem;
    max-width: 760px;
    margin: 0 auto;
  }
}

@media (max-width: 700px) {
  .db-roster {
    padding: 1rem 1.2rem 3.4rem;
  }
  .db-member-card {
    grid-template-columns: 1fr;
    gap: 1.2rem;
    text-align: center;
  }
  .db-member-card__figure {
    margin: 0 auto;
    width: 200px;
    height: 200px;
  }
  .db-member-card__rule {
    margin-left: auto;
    margin-right: auto;
  }
  .db-member-card__bio p {
    text-align: left;
  }
}

@media (max-width: 560px) {
  .db-intro { padding: 2.2rem 1.25rem 1.6rem; }
  .db-roster { padding: 0.6rem 1.25rem 2.8rem; }
}

body.home .site-header .nav-logo--non-home {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 110;
  display: flex;
  align-items: center;
  text-align: left;
  gap: 0;
  pointer-events: none;
  opacity: 0;
  transform: translateX(-12px);
  transition: opacity 350ms ease, transform 350ms ease;

  background:
    url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='280' height='280'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.78' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 0.18 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"),
    repeating-radial-gradient(circle at 0 0, rgba(216,184,112,0.10) 0px, rgba(216,184,112,0.10) 1.6px, transparent 1.6px, transparent 6px),
    linear-gradient(180deg, rgba(255,255,255,0.08) 0%, rgba(255,255,255,0.0) 100%),
    linear-gradient(180deg, rgba(28,47,74,0.96) 0%, rgba(28,47,74,0.90) 100%);
  padding: 0.6rem 1.8rem 0.6rem 1.2rem;
  border-top-right-radius: clamp(50px, 6vw, 90px);
  border-bottom-right-radius: clamp(50px, 6vw, 90px);
  box-shadow: 0 6px 18px rgba(0,0,0,0.18);
}
body.home .site-header .nav-logo--non-home.is-revealed {
  opacity: 1;
  transform: translateX(0);
  pointer-events: auto;
}
body.home .site-header .nav-logo--non-home a {
  display: flex; align-items: center; gap: 0; text-decoration: none;
}
body.home .site-header .nav-logo--non-home img {

  width: 96px;
  height: 96px;
  aspect-ratio: 1 / 1;
  object-fit: contain;
  margin: 0;
  filter: drop-shadow(0 1px 4px rgba(0,0,0,0.4));
}
@media (max-width: 600px) {
  body.home .site-header .nav-logo--non-home {
    padding: 0.45rem 1.2rem 0.45rem 0.8rem;
    border-top-right-radius: 36px;
    border-bottom-right-radius: 36px;
  }
  body.home .site-header .nav-logo--non-home img {
    width: 64px;
    height: 64px;
  }
}

.page-leadership-staff {
  background: var(--cream);
}

.ls-intro {
  background: var(--cream);
  padding: 4.5rem 1.5rem 2.5rem;
  text-align: center;
}
.ls-intro__inner {
  max-width: 820px;
  margin: 0 auto;
}
.ls-intro__eyebrow {
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-size: 0.78rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--gold);
  margin: 0 0 1.1rem;
  font-weight: 500;
}
.ls-intro__heading {
  font-family: var(--display, 'Cormorant Garamond', serif);
  font-style: italic;
  font-weight: 500;
  font-size: clamp(2.4rem, 4.2vw, 3.4rem);
  color: var(--navy);
  line-height: 1.1;
  letter-spacing: 0.01em;
  margin: 0 0 1.5rem;
}
.ls-intro__rule {
  display: inline-block;
  width: 64px;
  height: 1px;
  background: var(--gold);
  margin: 0 auto 1.6rem;
}
/* The block build emits a core <hr class="wp-block-separator"> here instead of the
   classic .ls-intro__rule span, so it rendered 100px wide and 2px tall with core's
   grey border colours instead of prod's 64x1 gold hairline (2026-07-24: ls-intro read
   ~3.5-4% divergence at every mobile width). Normalise the core separator inside this
   section to the classic rule's geometry. */
.ls-intro .wp-block-separator,
.ls-intro hr.wp-block-separator,
.ls-intro hr.wp-block-separator:not(.is-style-wide):not(.is-style-dots) {
  display: inline-block;
  width: 64px;
  /* core ships `.wp-block-separator:not(.is-style-wide):not(.is-style-dots){max-width:100px}`
     which out-specifies a bare width and left the rule 100px instead of prod's 64px. */
  max-width: 64px;
  height: 1px;
  background: var(--gold);
  border: 0;
  opacity: 1;
  margin: 0 auto 1.6rem;
}
.ls-intro__lede {
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-style: italic;
  font-size: clamp(1.05rem, 1.4vw, 1.2rem);
  color: var(--text-dark, var(--navy));
  line-height: 1.6;
  margin: 0;
}

.ls-section-header {
  text-align: center;
  margin: 0 auto 2.6rem;
}
.ls-section-header__eyebrow {
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-size: 0.82rem;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--navy);
  margin: 0 0 0.85rem;
  font-weight: 500;
}
.ls-section-header__rule {
  display: inline-block;
  width: 96px;
  height: 1px;
  background: var(--gold);
}

.ls-leadership {
  background: var(--cream);
  padding: 2rem 1.5rem 4rem;
}
.ls-leadership__inner {
  max-width: 1180px;
  margin: 0 auto;
}
.ls-leadership__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3rem 3rem;
  align-items: start;
}
.ls-leader-card {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 1.6rem;
  align-items: start;
  background: transparent;
}
.ls-leader-card__figure {
  margin: 0;
  padding: 0;
  border: 1px solid rgba(196, 163, 90, 0.35);
  background: #fff;
  overflow: hidden;
  aspect-ratio: 1 / 1;
  width: 220px;
  height: 220px;
  display: block;
}
.ls-leader-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.ls-leader-card__body {
  padding-top: 0.4rem;
}
.ls-leader-card__name {
  font-family: var(--display, 'Cormorant Garamond', serif);
  font-weight: 500;
  font-size: clamp(1.5rem, 2.1vw, 1.85rem);
  color: var(--navy);
  margin: 0 0 0.35rem;
  line-height: 1.15;
  letter-spacing: 0.005em;
}
.ls-leader-card__role {
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-style: italic;
  font-size: 1.05rem;
  color: var(--gold);
  margin: 0 0 0.9rem;
  letter-spacing: 0.01em;
  line-height: 1.3;
}
.ls-leader-card__rule {
  display: block;
  width: 48px;
  height: 1px;
  background: var(--gold);
  margin: 0 0 1rem;
}
.ls-leader-card__bio p {
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-size: 1.02rem;
  line-height: 1.65;
  color: var(--text-dark, var(--navy));
  margin: 0 0 0.95rem;
}
.ls-leader-card__bio p:last-child {
  margin-bottom: 0;
}
.ls-leader-card__bio:empty {
  display: none;
}

.ls-staff {
  background: var(--cream-faf5ef, #faf5ef);
  padding: 4rem 1.5rem 4.5rem;
  border-top: 1px solid rgba(196, 163, 90, 0.18);
}
.ls-staff__inner {
  max-width: 1180px;
  margin: 0 auto;
}
.ls-staff__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2.4rem 2.2rem;
}
.ls-staff-card {
  background: #fff;
  border: 1px solid rgba(196, 163, 90, 0.22);
  padding: 1.4rem 1.4rem 1.6rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease;
}
.ls-staff-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 22px rgba(28, 47, 74, 0.08);
  border-color: rgba(196, 163, 90, 0.55);
}
.ls-staff-card__figure {
  margin: 0 0 1.05rem;
  width: 160px;
  height: 160px;
  border-radius: 50%;
  overflow: hidden;
  background: var(--cream);
  border: 1px solid rgba(196, 163, 90, 0.45);
  flex: 0 0 auto;
}
.ls-staff-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.ls-staff-card__name {
  font-family: var(--display, 'Cormorant Garamond', serif);
  font-weight: 500;
  font-size: 1.35rem;
  color: var(--navy);
  margin: 0 0 0.3rem;
  line-height: 1.2;
}
.ls-staff-card__role {
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-style: italic;
  font-size: 0.98rem;
  color: var(--gold);
  margin: 0 0 0.8rem;
  line-height: 1.35;
  letter-spacing: 0.01em;
}
.ls-staff-card__rule {
  display: block;
  width: 36px;
  height: 1px;
  background: var(--gold);
  margin: 0 0 0.85rem;
}
.ls-staff-card__prompt {
  font-family: var(--sc, 'Cormorant SC', serif);
  font-size: 0.72rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--navy);
  opacity: 0.72;
}

.ls-board-pointer {
  background: var(--navy);
  color: var(--cream);
  padding: 4.5rem 1.5rem;
  text-align: center;
}
.ls-board-pointer__inner {
  max-width: 720px;
  margin: 0 auto;
}
.ls-board-pointer__eyebrow {
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-size: 0.78rem;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--gold-bright, #d8b870);
  margin: 0 0 0.95rem;
  font-weight: 500;
}
.ls-board-pointer__heading {
  font-family: var(--display, 'Cormorant Garamond', serif);
  font-style: italic;
  font-weight: 500;
  font-size: clamp(2rem, 3.4vw, 2.6rem);
  color: var(--cream);
  margin: 0 0 1rem;
  line-height: 1.15;
}
.ls-board-pointer__lede {
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-style: italic;
  font-size: 1.1rem;
  line-height: 1.6;
  color: var(--cream);
  opacity: 0.9;
  margin: 0 0 1.8rem;
}
.ls-board-pointer__cta {
  display: inline-block;
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-size: 0.88rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--cream);
  text-decoration: none;
  border: 1px solid var(--gold-bright, #d8b870);
  padding: 0.85rem 1.8rem;
  background: transparent;
  transition: background 220ms ease, color 220ms ease;
}
.ls-board-pointer__cta:hover,
.ls-board-pointer__cta:focus-visible {
  background: var(--gold-bright, #d8b870);
  color: var(--navy);
  outline: none;
}
.ls-board-pointer__cta span {
  margin-left: 0.4rem;
}

@media (max-width: 1100px) {
  .ls-leadership__grid {
    grid-template-columns: 1fr;
    gap: 2.4rem;
    max-width: 760px;
    margin: 0 auto;
  }
  .ls-staff__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 2rem 1.8rem;
  }
}

@media (max-width: 700px) {
  .ls-intro {
    padding: 3rem 1.2rem 2rem;
  }
  .ls-leadership {
    padding: 1.4rem 1.2rem 2.6rem;
  }
  .ls-leadership__grid {
    gap: 2rem;
  }
  .ls-leader-card,
  button.ls-leader-card {
    grid-template-columns: 1fr;
    gap: 1.2rem;
    text-align: center;
    width: 100%;
    min-width: 0;
    max-width: 100%;
  }
  .ls-leader-card__figure {
    margin: 0 auto;
    width: min(200px, 100%);
    height: auto;
    aspect-ratio: 1 / 1;
    max-width: 200px;
  }
  .ls-leader-card__body {
    min-width: 0;
  }
  .ls-leader-card__rule {
    margin-left: auto;
    margin-right: auto;
  }
  .ls-leader-card__bio p {
    text-align: left;
  }
  .ls-staff {
    padding: 3rem 1.2rem 3.4rem;
  }
  .ls-staff__grid {
    grid-template-columns: 1fr;
    gap: 1.6rem;
    max-width: 380px;
    margin: 0 auto;
  }
  .ls-staff-card {
    padding: 1.4rem 1.2rem 1.5rem;
  }
  .ls-staff-card__figure {
    width: 140px;
    height: 140px;
  }
  .ls-board-pointer {
    padding: 3.4rem 1.2rem;
  }
  .ls-section-header {
    margin-bottom: 1.8rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ls-staff-card,
  .ls-board-pointer__cta {
    transition: none !important;
  }
  .ls-staff-card:hover {
    transform: none !important;
  }
}

.ls-card-trigger {

  appearance: none;
  -webkit-appearance: none;
  font: inherit;
  color: inherit;
  text-align: left;
  cursor: pointer;
  width: 100%;

}
.ls-card-trigger:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 3px;
}

button.ls-leader-card {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 1.6rem;
  align-items: start;
  background: transparent;
  border: 0;
  padding: 0;
  margin: 0;
}

@media (max-width: 700px) {
  .ls-leadership__grid button.ls-leader-card,
  .ls-leadership__grid .ls-leader-card {
    grid-template-columns: 1fr;
    gap: 1.2rem;
    text-align: center;
    width: 100%;
    min-width: 0;
    max-width: 100%;
  }
  .ls-leadership__grid .ls-leader-card__figure {
    margin: 0 auto;
    width: min(200px, 100%);
    height: auto;
    aspect-ratio: 1 / 1;
    max-width: 200px;
  }
  .ls-leadership__grid .ls-leader-card__body {
    min-width: 0;
    text-align: center;
  }
  .ls-leadership__grid .ls-leader-card__bio p {
    text-align: left;
  }
}

button.ls-staff-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  background: #fff;
  border: 1px solid rgba(196, 163, 90, 0.22);
  padding: 1.4rem 1.4rem 1.6rem;
  margin: 0;
}
button.ls-staff-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 22px rgba(28, 47, 74, 0.08);
  border-color: rgba(196, 163, 90, 0.55);
}

.ls-modal {
  position: fixed;
  inset: 0;
  z-index: 9000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;

}
.ls-modal[hidden] {
  display: none !important;
}
.ls-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(28, 47, 74, 0.62);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
  opacity: 0;
  transition: opacity 240ms ease;
}
.ls-modal__panel {
  position: relative;
  background: var(--cream);
  max-width: 640px;
  width: 100%;
  max-height: calc(100vh - 3rem);
  overflow-y: auto;
  border: 1px solid rgba(196, 163, 90, 0.4);
  box-shadow: 0 14px 60px rgba(0, 0, 0, 0.32);
  opacity: 0;
  transform: scale(0.96);
  transition: opacity 240ms ease, transform 240ms ease;
}
.ls-modal.is-open .ls-modal__backdrop {
  opacity: 1;
}
.ls-modal.is-open .ls-modal__panel {
  opacity: 1;
  transform: scale(1);
}
.ls-modal__close {
  position: absolute;
  top: 0.6rem;
  right: 0.85rem;
  background: transparent;
  border: 0;
  color: var(--navy);
  font-size: 1.85rem;
  line-height: 1;
  cursor: pointer;
  padding: 0.25rem 0.5rem;
  font-family: var(--body, 'Cormorant Garamond', serif);
  transition: color 180ms ease;
}
.ls-modal__close:hover,
.ls-modal__close:focus-visible {
  color: var(--gold);
  outline: none;
}
.ls-modal__inner {
  padding: 2.6rem 2.2rem 2.2rem;
  display: grid;
  grid-template-columns: 180px 1fr;
  gap: 1.8rem;
  align-items: start;
}
.ls-modal__figure {
  margin: 0;
  width: 180px;
  height: 180px;
  border-radius: 50%;
  overflow: hidden;
  border: 1px solid rgba(196, 163, 90, 0.45);
  background: #fff;
  flex: 0 0 auto;
}
.ls-modal__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.ls-modal__name {
  font-family: var(--display, 'Cormorant Garamond', serif);
  font-weight: 500;
  font-size: clamp(1.6rem, 2.2vw, 1.95rem);
  color: var(--navy);
  margin: 0 0 0.35rem;
  line-height: 1.15;
}
.ls-modal__role {
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-style: italic;
  font-size: 1.05rem;
  color: var(--gold);
  margin: 0 0 0.9rem;
  letter-spacing: 0.01em;
  line-height: 1.3;
}
.ls-modal__rule {
  display: block;
  width: 48px;
  height: 1px;
  background: var(--gold);
  margin: 0 0 1rem;
}
.ls-modal__bio p,
.ls-modal__bio-placeholder {
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-size: 1rem;
  line-height: 1.65;
  color: var(--text-dark, var(--navy));
  margin: 0 0 0.9rem;
}
.ls-modal__bio p:last-child,
.ls-modal__bio-placeholder:last-child { margin-bottom: 0; }
.ls-modal__bio-placeholder em {
  color: rgba(28, 47, 74, 0.55);
}

body.ls-modal-open {
  overflow: hidden;
}

@media (max-width: 600px) {
  .ls-modal__inner {
    grid-template-columns: 1fr;
    text-align: center;
    padding: 2.2rem 1.5rem 1.8rem;
    gap: 1.2rem;
  }
  .ls-modal__figure {
    margin: 0 auto;
    width: 140px;
    height: 140px;
  }
  .ls-modal__rule {
    margin-left: auto;
    margin-right: auto;
  }
  .ls-modal__bio p,
  .ls-modal__bio-placeholder {
    text-align: left;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ls-modal__panel,
  .ls-modal__backdrop {
    transition: opacity 120ms linear !important;
    transform: none !important;
  }
  .ls-modal.is-open .ls-modal__panel {
    transform: none !important;
  }
}

.lw-intro {
  position: relative;
  width: 100%;

  height: 200vh;
  background: #14110d;
  color: var(--cream);
  font-family: var(--body);
}
.lw-intro__pin {
  position: sticky;
  top: 0;
  width: 100%;
  height: 100vh;

  overflow: hidden;
  z-index: 1;
}
.lw-intro__track {
  position: absolute;
  inset: 0;
  width: 200vw;
  height: 100%;
  display: flex;
  flex-direction: row;

  transform: translate3d(0, 0, 0);
  will-change: transform;
}
.lw-intro__panel {
  position: relative;
  width: 100vw;
  height: 100vh;
  flex: 0 0 100vw;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.lw-intro__panel--hero {

}
.lw-intro__bg {
  position: absolute;
  inset: 0;
  background-color: #14110d;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  z-index: 0;

  filter: brightness(0.55) saturate(0.85) contrast(1.04);
}
.lw-intro__veil {
  position: absolute;
  inset: 0;
  z-index: 1;

  background:
    radial-gradient(ellipse at center,
                    rgba(20, 16, 12, 0.30) 0%,
                    rgba(20, 16, 12, 0.62) 70%,
                    rgba(14, 11, 8, 0.82) 100%);
}
.lw-intro__inner {
  position: relative;
  z-index: 2;
  text-align: center;
  padding: 4rem 2rem;
  max-width: 1100px;
  margin: 0 auto;
}
.lw-intro__medallion {
  width: clamp(120px, 14vw, 200px);
  height: auto;
  margin: 0 auto 2.4rem;
}
.lw-intro__medallion img {
  width: 100%;
  height: auto;
  display: block;
  filter: drop-shadow(0 0 24px rgba(245, 240, 232, 0.18));
}
.lw-intro__title {
  font-family: var(--sc);
  font-size: clamp(2.4rem, 6vw, 5.4rem);
  font-weight: 500;
  letter-spacing: 0.04em;
  color: var(--gold-bright, #d8b870);
  margin: 0 0 1.2rem;
  line-height: 1.05;
  text-transform: none;
  font-style: italic;
}
.lw-intro__tagline {
  font-family: var(--body);
  font-size: clamp(1.2rem, 2vw, 1.7rem);
  letter-spacing: 0.08em;
  color: var(--cream-faf5ef, var(--cream));
  margin: 0;
  font-weight: 400;
  text-transform: uppercase;
}
.lw-intro__cue {
  font-family: var(--sc);
  font-style: italic;
  font-size: 0.95rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--gold);
  opacity: 0.78;
  margin: 2rem 0 0;
}

.lw-intro__panel--chapter {
  background: var(--cream);

  background-image:
    linear-gradient(rgba(245, 240, 232, 0.78), rgba(245, 240, 232, 0.78)),
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='340' height='340'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='1.35' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.42  0 0 0 0 0.32  0 0 0 0 0.16  0 0 0 0.10 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>"),
    url("images/living-well-chapter-bg.jpg");
  background-size: auto, auto, cover;
  background-position: center, center, center;
  background-repeat: no-repeat, no-repeat, no-repeat;
  background-blend-mode: normal, multiply, normal;
}
.lw-intro__chapter-card {
  text-align: center;
  max-width: 720px;
  padding: 3rem 2rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.4rem;
}
.lw-intro__chapter-eyebrow {
  font-family: var(--sc);
  font-style: italic;
  font-weight: 500;
  font-size: 0.85rem;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--navy);
  opacity: 0.78;
  margin: 0;
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
}
.lw-intro__chapter-mark {
  color: var(--gold);
  font-size: 0.7rem;
  font-style: normal;
}
.lw-intro__chapter-title {
  font-family: var(--sc);
  font-style: italic;
  font-weight: 500;
  font-size: clamp(2rem, 4.4vw, 3.4rem);
  color: var(--navy);
  margin: 0;
  letter-spacing: 0.02em;
  line-height: 1.1;
  text-transform: uppercase;
}
.lw-intro__chapter-sub {
  font-family: var(--body);
  font-size: clamp(1rem, 1.3vw, 1.2rem);
  line-height: 1.6;
  color: var(--text-dark);
  opacity: 0.92;
  margin: 0;
  max-width: 540px;
}
.lw-intro__chapter-rule {
  display: block;
  width: clamp(80px, 18vw, 200px);
  height: 1px;
  background: var(--gold);
  opacity: 0.6;
}

@media (max-width: 900px) {
  .lw-intro {
    height: auto;
    overflow: visible;
  }
  .lw-intro__pin {
    position: static;
    height: auto;
    overflow: visible;
  }
  .lw-intro__track {
    position: static;
    width: 100%;
    height: auto;
    flex-direction: column;
    transform: none !important;
  }
  .lw-intro__panel {
    width: 100%;
    flex: 0 0 auto;
    height: auto;
    min-height: 70vh;
  }
}
@media (prefers-reduced-motion: reduce) {
  .lw-intro {
    height: auto;
    overflow: visible;
  }
  .lw-intro__pin {
    position: static;
    height: auto;
    overflow: visible;
  }
  .lw-intro__track {
    position: static;
    width: 100%;
    height: auto;
    flex-direction: column;
    transform: none !important;
  }
  .lw-intro__panel {
    width: 100%;
    flex: 0 0 auto;
    height: auto;
    min-height: 70vh;
  }
}

.lw-aspects {
  position: relative;
  background-color: var(--cream);
  background-image:
    linear-gradient(rgba(245, 240, 232, 0.65), rgba(245, 240, 232, 0.65)),
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='340' height='340'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='1.35' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.42  0 0 0 0 0.32  0 0 0 0 0.16  0 0 0 0.10 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  background-blend-mode: multiply;

  --lw-panel-step: 100vh;
  min-height: calc(100vh + (6 * var(--lw-panel-step)) + 50vh);
}
.lw-aspects__header {
  text-align: center;
  padding: 5rem 2rem 0;
  max-width: 900px;
  margin: 0 auto;
}
.lw-aspects__heading {
  font-family: var(--sc);
  font-style: italic;
  font-weight: 500;
  font-size: clamp(2.4rem, 4.4vw, 3.8rem);
  color: var(--navy);
  letter-spacing: 0.01em;
  margin: 0 0 0.5rem;
}
.lw-aspects__sub {
  font-family: var(--body);
  color: var(--text-dark);
  opacity: 0.78;
  font-size: clamp(1rem, 1.3vw, 1.2rem);
  letter-spacing: 0.03em;
  margin: 0;
}

.lw-aspects__pin {
  position: sticky;
  top: 0;
  width: 100%;
  height: 100vh;
  overflow: hidden;
  z-index: 1;
}
.lw-aspects__stage {
  position: relative;
  width: 100%;
  height: 100%;
}

.lw-aspect {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;

  padding: 2rem 4rem;
  box-sizing: border-box;

  transform: translate3d(0, 100vh, 0);

  transition: none;
  will-change: transform;
}
.lw-aspect__inner {
  display: grid;

  grid-template-columns: 1.35fr 1fr;
  gap: 3rem;
  max-width: 1320px;
  width: 100%;

  align-items: center;
}

.lw-aspect--image-left .lw-aspect__inner {
  align-items: center;
}
.lw-aspect--image-left .lw-aspect__media { order: 1; align-self: center; }
.lw-aspect--image-left .lw-aspect__body  { order: 2; align-self: center; }

.lw-aspect--image-right .lw-aspect__inner {
  align-items: center;
}
.lw-aspect--image-right .lw-aspect__media { order: 2; align-self: center; }
.lw-aspect--image-right .lw-aspect__body  { order: 1; align-self: center; }

.lw-aspect__media {

  opacity: 1;
  width: 100%;
}
.lw-aspect__media .lw-window__frame {

  max-width: clamp(480px, 56vw, 720px);
  margin: 0 auto;
}
.lw-aspect__body {

  opacity: 1;

  max-width: 420px;
  width: 100%;
}
.lw-aspect__numeral {
  display: inline-block;
  font-family: var(--sc);
  font-style: italic;
  font-size: 0.95rem;
  letter-spacing: 0.18em;
  color: var(--gold);
  margin: 0 0 0.6rem;
  text-transform: uppercase;
}
.lw-aspect__title {
  font-family: var(--sc);
  font-style: italic;
  font-weight: 500;
  font-size: clamp(2rem, 3.6vw, 3rem);
  color: var(--navy);
  margin: 0 0 1.2rem;
  letter-spacing: 0.01em;
  line-height: 1.1;
}
.lw-aspect__blurb {
  font-family: var(--body);
  color: var(--text-dark);
  font-size: clamp(1.05rem, 1.35vw, 1.25rem);
  line-height: 1.6;
  margin: 0;
  opacity: 0.92;
}

@media (max-width: 900px) {
  .lw-aspects {
    min-height: 0;
  }
  .lw-aspects__pin {
    position: static;
    height: auto;
    overflow: visible;
  }
  .lw-aspects__stage {
    height: auto;
  }
  .lw-aspect {
    position: relative;
    inset: auto;
    min-height: 90vh;
    padding: 3.5rem 1.25rem;
    transform: none !important;
  }
  .lw-aspect__inner,
  .lw-aspect--image-left .lw-aspect__inner,
  .lw-aspect--image-right .lw-aspect__inner {
    grid-template-columns: 1fr;
    gap: 2.4rem;
    max-width: 520px;
    align-items: center;
  }
  .lw-aspect--image-left .lw-aspect__media,
  .lw-aspect--image-right .lw-aspect__media,
  .lw-aspect--image-left .lw-aspect__body,
  .lw-aspect--image-right .lw-aspect__body {
    order: initial;
    align-self: center;
    padding-top: 0;
    padding-bottom: 0;
  }
  .lw-aspect__media .lw-window__frame {
    max-width: 340px;
  }
  .lw-aspect__body {
    text-align: center;
    margin: 0 auto;
  }
}

@media (prefers-reduced-motion: reduce) {
  .lw-aspects {
    min-height: 0;
  }
  .lw-aspects__pin {
    position: static;
    height: auto;
    overflow: visible;
  }
  .lw-aspects__stage {
    height: auto;
  }
  .lw-aspect {
    position: relative;
    inset: auto;
    min-height: 100vh;
    transform: none !important;
    transition: none !important;
  }
}

.lw-aspect-cue {
  position: fixed;
  bottom: clamp(16px, 2.5vh, 28px);
  left: 50%;
  transform: translateX(-50%);
  z-index: 6;
  font-family: var(--sc);
  font-style: italic;
  font-weight: 500;
  font-size: 0.78rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--navy);
  background: rgba(245, 240, 232, 0.92);
  padding: 0.55rem 1.05rem;
  border: 1px solid rgba(48, 60, 84, 0.18);
  border-radius: 2px;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transition: opacity 360ms ease, visibility 0s linear 360ms;
  box-shadow: 0 1px 6px rgba(0, 0, 0, 0.08);
  white-space: nowrap;
}
.lw-aspect-cue.is-visible {
  opacity: 0.94;
  visibility: visible;
  transition: opacity 360ms ease, visibility 0s linear 0s;
}

.lw-aspect-cue::before {
  content: "[";
  margin-right: 0.55rem;
  color: var(--gold);
  font-style: normal;
}
.lw-aspect-cue::after {
  content: "]";
  margin-left: 0.55rem;
  color: var(--gold);
  font-style: normal;
}

.lw-progress {
  position: fixed;
  top: 50%;
  right: clamp(8px, 1.2vw, 18px);
  width: 3px;
  height: 56px;
  background: var(--gold);
  border-radius: 2px;
  z-index: 6;
  opacity: 0;
  transform: translateY(-50%) scaleY(0.6);
  transform-origin: top center;
  transition: opacity 280ms ease, transform 280ms ease;
  pointer-events: none;
  box-shadow: 0 0 8px rgba(216, 184, 112, 0.45);
}
.lw-progress.is-active {
  opacity: 0.95;
  transform: translateY(-50%) scaleY(1);
}

@media (max-width: 600px) {
  .lw-progress { width: 2px; height: 44px; right: 6px; }
  .lw-aspect-cue {
    font-size: 0.68rem;
    letter-spacing: 0.22em;
    padding: 0.45rem 0.85rem;
    bottom: 14px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .lw-aspect-cue {

    transition: opacity 0s linear !important;
  }
  .lw-progress {
    transition: opacity 200ms linear !important;
  }
}

/* Same classic-vs-block body-class gap as the Ad Fontes clamps above: the block
   theme emits .page-id-46215 rather than .page-template-page-living-well. */
body.page-template-page-living-well .site-header .nav-logo,
body.page-id-46215 .site-header .nav-logo,
body.page-template-page-living-well .lw-progress,
body.page-id-46215 .lw-progress {
  display: none !important;
}

.lw-chapter {
  position: relative;
  background-color: var(--cream);

  background-image:
    linear-gradient(rgba(245, 240, 232, 0.78), rgba(245, 240, 232, 0.78)),
    url("images/living-well-aspect-bg-text.jpg");
  background-size: auto, cover;
  background-position: center, center;
  background-repeat: no-repeat, no-repeat;
  background-attachment: scroll, scroll;
  background-blend-mode: normal, multiply, normal;

  --lw-chap-count: 5;
  --lw-chap-step: 320vh;

  min-height: calc((var(--lw-chap-count) + 1) * var(--lw-chap-step));
}

.lw-chapter__pin {
  position: sticky;
  top: 0;
  width: 100%;
  height: 100vh;
  overflow: hidden;
  z-index: 1;
}

.lw-chapter__title-bar {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  z-index: 5;
  padding: clamp(1.4rem, 2.6vh, 2.4rem) 1rem clamp(0.8rem, 1.4vh, 1.4rem);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  pointer-events: none;
  text-align: center;
  background: linear-gradient(to bottom,
                              rgba(245, 240, 232, 0.96) 0%,
                              rgba(245, 240, 232, 0.92) 70%,
                              rgba(245, 240, 232, 0) 100%);
}
.lw-chapter__title {
  font-family: var(--sc);
  font-style: italic;
  font-weight: 500;
  font-size: clamp(1.4rem, 2.4vw, 2.1rem);
  color: var(--navy);
  letter-spacing: 0.06em;
  margin: 0;
  text-transform: uppercase;
  display: inline-block;
  position: relative;
  padding: 0 1rem;
}
.lw-chapter__rule {
  position: absolute;
  top: 50%;
  width: clamp(60px, 12vw, 140px);
  height: 1px;
  background: var(--gold);
  opacity: 0.6;
}
.lw-chapter__rule--left  { right: 100%; transform: translateY(-50%); margin-right: 0.6rem; }
.lw-chapter__rule--right { left:  100%; transform: translateY(-50%); margin-left:  0.6rem; }
.lw-chapter__sub {
  font-family: var(--sc);
  font-style: italic;
  font-weight: 500;
  font-size: 0.78rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--navy);
  opacity: 0.78;
  margin: 0;
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
}
.lw-chapter__mark {
  color: var(--gold);
  font-style: normal;
  font-size: 0.7rem;
}

.lw-chapter__stage {
  position: absolute;
  inset: 0;
  overflow: hidden;
}

.lw-chapter__track {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  display: flex;
  flex-direction: row;
  align-items: stretch;

  padding-left: 12.5vw;
  padding-right: 12.5vw;
  box-sizing: content-box;

  transform: translate3d(0, 0, 0);
  will-change: transform;
}

.lw-chapter__panel {
  position: relative;
  z-index: 1;
  flex: 0 0 auto;

  width: clamp(640px, 75vw, 1080px);
  height: 100%;
  padding: 0 clamp(2.4rem, 5vw, 6rem);
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  gap: clamp(1.4rem, 2.8vw, 3rem);
  align-items: center;

  transform: translate3d(0, 0, 0);
  will-change: transform;
  pointer-events: none;
}
.lw-chapter__panel--top {
  align-items: flex-start;

  padding-top: clamp(3.5rem, 7vh, 5.5rem);
}
.lw-chapter__panel--bottom {
  align-items: flex-end;
  padding-bottom: clamp(4rem, 8vh, 6.5rem);
}

.lw-chapter__scatter {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 0;
}
.lw-chapter__scatter-art {
  position: absolute;
  width: clamp(180px, 18vw, 260px);
  height: auto;
  opacity: 0.85;
  pointer-events: none;
  user-select: none;

  mix-blend-mode: multiply;
}

.lw-chapter__scatter-art[data-pos="1"] {
  left:  clamp(820px, 88vw, 1180px);
  top:  18vh;
}
.lw-chapter__scatter-art[data-pos="2"] {
  left:  clamp(1640px, 162vw, 2160px);
  top:  62vh;
  transform: scaleX(-1);
}
.lw-chapter__scatter-art[data-pos="3"] {
  left:  clamp(2460px, 236vw, 3140px);
  top:  25vh;
}
.lw-chapter__scatter-art[data-pos="4"] {
  left:  clamp(3280px, 310vw, 4120px);
  top:  55vh;
  transform: scaleX(-1);
}

.lw-chapter__media {
  width: 100%;
  position: relative;
  z-index: 2;
}
.lw-chapter__body {
  position: relative;
  z-index: 2;
}
.lw-chapter__frame {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  background: var(--cream);

  border: 7px solid var(--gold);
  box-shadow:
    0 10px 30px rgba(28, 47, 74, 0.20),
    inset 0 0 0 1px rgba(245, 240, 232, 0.55);
}
.lw-chapter__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.lw-chapter__body {
  padding-right: 0.4rem;
  text-align: center;
}
.lw-chapter__numeral {
  display: block;
  text-align: center;
  font-family: var(--sc);
  font-style: italic;
  font-size: 0.95rem;
  letter-spacing: 0.18em;
  color: var(--gold);
  margin: 0 0 0.6rem;
  text-transform: uppercase;
}
.lw-chapter__panel-title {
  font-family: var(--sc);
  font-style: italic;
  font-weight: 500;
  font-size: clamp(1.85rem, 2.9vw, 2.55rem);
  color: var(--navy);

  margin: 0.4rem 0 1rem;
  letter-spacing: 0.02em;
  line-height: 1.15;
  text-transform: uppercase;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.55rem;
}
.lw-chapter__panel-title::before,
.lw-chapter__panel-title::after {
  content: "";
  display: block;
  width: 70px;
  height: 1px;
  background: var(--gold);
  opacity: 0.85;
}
.lw-chapter__desc {
  font-family: var(--body);
  color: var(--text-dark);
  font-size: clamp(0.95rem, 1.1vw, 1.05rem);
  line-height: 1.55;
  margin: 0;
  opacity: 0.92;
}

.lw-chapter__indicator {
  position: absolute;
  bottom: clamp(1.2rem, 2.4vh, 2rem);
  left: 50%;
  transform: translateX(-50%);
  z-index: 5;
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
  font-family: var(--sc);
  font-style: italic;
  font-weight: 500;
  font-size: 0.78rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--navy);
  background: rgba(245, 240, 232, 0.92);
  padding: 0.5rem 1rem;
  border: 1px solid rgba(48, 60, 84, 0.18);
  border-radius: 2px;
  pointer-events: none;
  box-shadow: 0 1px 6px rgba(0, 0, 0, 0.08);
  white-space: nowrap;
}
.lw-chapter__indicator::before { content: "["; color: var(--gold); font-style: normal; }
.lw-chapter__indicator::after  { content: "]"; color: var(--gold); font-style: normal; }
.lw-chapter__indicator-mark {
  color: var(--gold);
  font-size: 0.7rem;
  font-style: normal;
}

@media (max-width: 900px) {
  .lw-chapter {
    min-height: 0;
  }
  .lw-chapter__pin {
    position: static;
    height: auto;
    overflow: visible;
    padding: 3rem 1rem 4rem;
  }
  .lw-chapter__title-bar {
    position: static;
    margin-bottom: 2rem;
  }
  .lw-chapter__stage {
    position: static;
    inset: auto;
    overflow: visible;
  }
  .lw-chapter__track {
    position: static;
    transform: none !important;
    flex-direction: column;
    height: auto;
    align-items: center;
    gap: 3.5rem;
  }
  .lw-chapter__panel {
    position: static;
    transform: none !important;
    width: 100%;
    max-width: 480px;
    padding: 0;
    height: auto;
    grid-template-columns: 1fr;
    gap: 1.4rem;
    align-items: stretch !important;
    pointer-events: auto;
  }

  .lw-chapter__scatter,
  .lw-chapter__scatter-art {
    display: none;
  }
  .lw-chapter__frame {
    aspect-ratio: 4 / 3;
  }
  .lw-chapter__body {
    padding: 0;
    text-align: center;
  }
  .lw-chapter__indicator {
    position: static;
    transform: none;
    margin: 2.5rem auto 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .lw-chapter {
    min-height: 0;
  }
  .lw-chapter__pin {
    position: static;
    height: auto;
    overflow: visible;
    padding: 3rem 1rem 4rem;
  }
  .lw-chapter__title-bar {
    position: static;
    margin-bottom: 2rem;
  }
  .lw-chapter__stage {
    position: static;
    inset: auto;
    overflow: visible;
  }
  .lw-chapter__track {
    position: static;
    transform: none !important;
    flex-direction: column;
    height: auto;
    align-items: center;
    gap: 3.5rem;
  }
  .lw-chapter__panel {
    position: static;
    transform: none !important;
    transition: none !important;
    width: 100%;
    max-width: 720px;
    padding: 0;
    height: auto;
    align-items: stretch !important;
    pointer-events: auto;
  }
  .lw-chapter__indicator {
    position: static;
    transform: none;
    margin: 2.5rem auto 0;
  }
}

.lw-scrolly {
  position: relative;
  background-color: var(--cream);
  background-image:
    linear-gradient(rgba(245, 240, 232, 0.65), rgba(245, 240, 232, 0.65)),
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='340' height='340'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='1.35' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.42  0 0 0 0 0.32  0 0 0 0 0.16  0 0 0 0.10 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  background-blend-mode: multiply;

  padding-top: 0;
}
.lw-scrolly__inner {
  position: relative;

}
.lw-scrolly__header {
  position: relative;
  z-index: 3;
  text-align: center;
  padding: 5rem 2rem 2.4rem;
  max-width: 900px;
  margin: 0 auto;
}
.lw-scrolly__heading {
  font-family: var(--sc);
  font-style: italic;
  font-weight: 500;
  font-size: clamp(2.4rem, 4.4vw, 3.8rem);
  color: var(--navy);
  letter-spacing: 0.01em;
  margin: 0 0 0.5rem;
}
.lw-scrolly__sub {
  font-family: var(--body);
  color: var(--text-dark);
  opacity: 0.78;
  font-size: clamp(1rem, 1.3vw, 1.2rem);
  letter-spacing: 0.03em;
  margin: 0;
}
.lw-scrolly__stage {
  position: sticky;
  top: 8vh;
  height: 86vh;
  display: grid;
  grid-template-rows: 1fr auto;
  gap: 1.5rem;
  padding: 1rem 4rem 0;
  box-sizing: border-box;
  z-index: 2;
}
.lw-scrolly__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: repeat(2, 1fr);
  gap: 1.6rem 2rem;
  align-items: stretch;
  min-height: 0;
}

.lw-window {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  transition: transform 480ms cubic-bezier(0.22, 0.61, 0.36, 1),
              opacity 480ms ease,
              filter 480ms ease;
  will-change: transform, opacity, filter;
  min-height: 0;
}
.lw-window__frame {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 5;
  max-height: 100%;
  overflow: hidden;
  border: 2px solid var(--border-ornate);
  box-shadow:
    inset 0 0 0 6px var(--cream),
    inset 0 0 0 7px var(--border-ornate),
    0 8px 32px rgba(28, 47, 74, 0.18);
  border-top-left-radius: 50% 18%;
  border-top-right-radius: 50% 18%;
  background: var(--cream);
}
.lw-window__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  filter: saturate(0.85) sepia(0.06);
  transition: transform 600ms cubic-bezier(0.22, 0.61, 0.36, 1),
              filter 480ms ease;
}
.lw-window__label {
  font-family: var(--sc);
  font-style: italic;
  font-weight: 500;
  font-size: clamp(0.95rem, 1.3vw, 1.2rem);
  color: var(--navy);
  margin: 0.8rem 0 0;
  letter-spacing: 0.02em;
}

.lw-scrolly[data-lw-active="0"] .lw-window[data-lw-window]:not([data-lw-window="0"]) .lw-window__frame,
.lw-scrolly[data-lw-active="1"] .lw-window[data-lw-window]:not([data-lw-window="1"]) .lw-window__frame,
.lw-scrolly[data-lw-active="2"] .lw-window[data-lw-window]:not([data-lw-window="2"]) .lw-window__frame,
.lw-scrolly[data-lw-active="3"] .lw-window[data-lw-window]:not([data-lw-window="3"]) .lw-window__frame,
.lw-scrolly[data-lw-active="4"] .lw-window[data-lw-window]:not([data-lw-window="4"]) .lw-window__frame,
.lw-scrolly[data-lw-active="5"] .lw-window[data-lw-window]:not([data-lw-window="5"]) .lw-window__frame {
  opacity: 0.28;
  filter: saturate(0.5) brightness(0.92);
}
.lw-scrolly[data-lw-active="0"] .lw-window[data-lw-window]:not([data-lw-window="0"]) .lw-window__label,
.lw-scrolly[data-lw-active="1"] .lw-window[data-lw-window]:not([data-lw-window="1"]) .lw-window__label,
.lw-scrolly[data-lw-active="2"] .lw-window[data-lw-window]:not([data-lw-window="2"]) .lw-window__label,
.lw-scrolly[data-lw-active="3"] .lw-window[data-lw-window]:not([data-lw-window="3"]) .lw-window__label,
.lw-scrolly[data-lw-active="4"] .lw-window[data-lw-window]:not([data-lw-window="4"]) .lw-window__label,
.lw-scrolly[data-lw-active="5"] .lw-window[data-lw-window]:not([data-lw-window="5"]) .lw-window__label {
  opacity: 0.55;
}
.lw-scrolly[data-lw-active="0"] .lw-window[data-lw-window="0"],
.lw-scrolly[data-lw-active="1"] .lw-window[data-lw-window="1"],
.lw-scrolly[data-lw-active="2"] .lw-window[data-lw-window="2"],
.lw-scrolly[data-lw-active="3"] .lw-window[data-lw-window="3"],
.lw-scrolly[data-lw-active="4"] .lw-window[data-lw-window="4"],
.lw-scrolly[data-lw-active="5"] .lw-window[data-lw-window="5"] {
  opacity: 1;
  filter: none;
  transform: scale(1.03);
  z-index: 2;
}
.lw-scrolly[data-lw-active="0"] .lw-window[data-lw-window="0"] .lw-window__img,
.lw-scrolly[data-lw-active="1"] .lw-window[data-lw-window="1"] .lw-window__img,
.lw-scrolly[data-lw-active="2"] .lw-window[data-lw-window="2"] .lw-window__img,
.lw-scrolly[data-lw-active="3"] .lw-window[data-lw-window="3"] .lw-window__img,
.lw-scrolly[data-lw-active="4"] .lw-window[data-lw-window="4"] .lw-window__img,
.lw-scrolly[data-lw-active="5"] .lw-window[data-lw-window="5"] .lw-window__img {
  filter: saturate(1) sepia(0);
}

.lw-scrolly__panel {
  background: rgba(28, 47, 74, 0.93);
  color: var(--cream);
  padding: 1.6rem 2.2rem 1.4rem;
  border-top: 2px solid var(--gold);
  box-shadow: 0 -8px 28px rgba(28, 47, 74, 0.12);
  border-radius: 4px;
  text-align: center;
  max-width: 1080px;
  margin: 0 auto;
  width: 100%;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}
.lw-scrolly__panel-title {
  font-family: var(--sc);
  font-style: italic;
  font-size: clamp(1.4rem, 2.2vw, 2rem);
  color: var(--gold-bright, #d8b870);
  margin: 0;
  font-weight: 500;
  letter-spacing: 0.02em;
  transition: opacity 320ms ease;
}
.lw-scrolly__panel-body {
  font-family: var(--body);
  color: var(--cream-faf5ef, var(--cream));
  font-size: clamp(1rem, 1.3vw, 1.18rem);
  line-height: 1.5;
  margin: 0;
  opacity: 0.92;
  transition: opacity 320ms ease;
}
.lw-scrolly__panel.is-swapping .lw-scrolly__panel-title,
.lw-scrolly__panel.is-swapping .lw-scrolly__panel-body {
  opacity: 0;
}
.lw-scrolly__progress {
  display: flex;
  justify-content: center;
  gap: 0.55rem;
  margin-top: 0.4rem;
}
.lw-scrolly__tick {
  width: 28px;
  height: 3px;
  border-radius: 2px;
  background: rgba(245, 240, 232, 0.28);
  transition: background 260ms ease, transform 260ms ease;
}
.lw-scrolly__tick.is-active {
  background: var(--gold);
  transform: scaleY(1.4);
}

.lw-scrolly__anchors {
  position: relative;

  margin-top: -94vh;
}
.lw-scrolly__anchor {
  height: 85vh;
  pointer-events: none;
}

.lw-scrolly__mobile {
  display: none;
}

@media (max-width: 900px) {
  .lw-scrolly__stage,
  .lw-scrolly__anchors,
  .lw-scrolly__panel,
  .lw-scrolly__progress {
    display: none !important;
  }
  .lw-scrolly__mobile {
    display: block;
    padding: 0 1.25rem 3rem;
  }
  .lw-scrolly__mobile-item {
    margin: 0 auto 3rem;
    max-width: 540px;
    text-align: center;
  }
  .lw-scrolly__mobile-item .lw-window__frame {
    max-width: 360px;
    margin: 0 auto;
    aspect-ratio: 4 / 5;
  }
  .lw-scrolly__mobile-title {
    font-family: var(--sc);
    font-style: italic;
    font-weight: 500;
    font-size: 1.4rem;
    color: var(--navy);
    margin: 1rem 0 0.6rem;
    letter-spacing: 0.02em;
  }
  .lw-scrolly__mobile-body {
    font-family: var(--body);
    color: var(--text-dark);
    font-size: 1.05rem;
    line-height: 1.55;
    margin: 0;
    opacity: 0.88;
  }
}

.lw-register-hero {
  position: relative;
  width: 100%;
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  color: var(--cream);
  font-family: var(--body);
  padding: 4rem 2rem;
  box-sizing: border-box;
}
.lw-register-hero__bg {
  position: absolute;
  top: -10%;
  left: 0;
  right: 0;
  height: 130%;
  background-color: #14110d;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  z-index: 0;

  filter: brightness(0.55) saturate(0.85) contrast(1.04);
}
.lw-register-hero__veil {
  position: absolute;
  inset: 0;

  background:
    radial-gradient(ellipse at center,
                    rgba(20, 16, 12, 0.45) 0%,
                    rgba(20, 16, 12, 0.78) 70%,
                    rgba(14, 11, 8, 0.92) 100%);
  z-index: 1;
}
.lw-register-hero__inner {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 1fr 1.25fr;
  gap: 4.5rem;
  align-items: center;
  max-width: 1180px;
  width: 100%;
  margin: 0 auto;
}

.lw-register-hero__media {
  display: flex;
  align-items: center;
  justify-content: center;

  opacity: 0;
  transform: translate(28px, -22px);
  transition: opacity 820ms cubic-bezier(0.22, 0.61, 0.36, 1),
              transform 820ms cubic-bezier(0.22, 0.61, 0.36, 1);
  will-change: opacity, transform;
}
.lw-register-hero.is-image-in .lw-register-hero__media {
  opacity: 1;
  transform: translate(0, 0);
}
.lw-register-hero__medallion {
  width: clamp(140px, 18vw, 240px);
  height: auto;
}
.lw-register-hero__medallion img {
  width: 100%;
  height: auto;
  display: block;
  filter: drop-shadow(0 0 28px rgba(245, 240, 232, 0.22));
}

.lw-register-hero__body {
  opacity: 0;
  transform: translate(-40px, -34px);
  transition: opacity 820ms cubic-bezier(0.22, 0.61, 0.36, 1) 120ms,
              transform 820ms cubic-bezier(0.22, 0.61, 0.36, 1) 120ms;
  will-change: opacity, transform;
}
.lw-register-hero.is-desc-in .lw-register-hero__body {
  opacity: 1;
  transform: translate(0, 0);
}
.lw-register-hero__heading {
  font-family: var(--sc);
  font-style: italic;
  font-weight: 500;
  font-size: clamp(2.2rem, 4.8vw, 3.6rem);
  color: var(--gold-bright, #d8b870);
  margin: 0 0 0.8rem;
  letter-spacing: 0.02em;
  line-height: 1.08;
}
.lw-register-hero__tagline {
  font-family: var(--body);
  font-size: clamp(1.05rem, 1.5vw, 1.3rem);
  letter-spacing: 0.04em;
  color: var(--cream-faf5ef, var(--cream));
  margin: 0 0 1.8rem;
  opacity: 0.92;
  font-weight: 400;
}
.lw-register-hero__form {
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
  max-width: 520px;
}
.lw-register-hero__note {
  font-family: var(--sans);
  font-size: 0.82rem;
  color: var(--border-ornate);
  opacity: 0.72;
  margin: 0 0 0.4rem;
}
.lw-register-hero__field {
  display: flex;
  flex-direction: column;
  gap: 0.42rem;
}
.lw-register-hero__label {
  font-family: var(--sans);
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--cream-faf5ef, var(--cream));
  opacity: 0.78;
}
.lw-register-hero__input {
  background: rgba(245, 240, 232, 0.08);
  border: 1px solid rgba(196, 163, 90, 0.42);
  border-radius: 2px;
  padding: 0.85rem 1.05rem;
  color: var(--cream);
  font-family: var(--body);
  font-size: 1.02rem;
  outline: none;
  transition: border-color 200ms ease, background 200ms ease;
  cursor: default;
}
.lw-register-hero__input::placeholder {
  color: var(--cream);
  opacity: 0.42;
}
.lw-register-hero__submit-row {
  display: flex;
  justify-content: flex-start;
  margin-top: 0.6rem;
}
.lw-register-hero__submit {
  background: var(--gold);
  color: var(--navy);
  border: none;
  padding: 0.95rem 2.6rem;
  font-family: var(--sc);
  font-size: 1.05rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 600;
  cursor: not-allowed;
  border-radius: 2px;
  opacity: 0.88;
  pointer-events: none;
}

@media (max-width: 900px) {
  .lw-register-hero__inner {
    grid-template-columns: 1fr;
    gap: 2.4rem;
    max-width: 520px;
    text-align: center;
  }
  .lw-register-hero__medallion {
    width: clamp(120px, 30vw, 180px);
    margin: 0 auto;
  }
  .lw-register-hero__form {
    max-width: 100%;
    margin: 0 auto;
    text-align: left;
  }
  .lw-register-hero__submit-row {
    justify-content: center;
  }
}

@media (prefers-reduced-motion: reduce) {
  .lw-register-hero__media,
  .lw-register-hero__body {
    opacity: 1 !important;
    transform: none !important;
    transition: opacity 200ms linear !important;
  }
}

.lw-gallery {
  background: var(--cream);
  padding: 6rem 2rem 7rem;
  position: relative;
}
.lw-gallery__inner {
  max-width: 1280px;
  margin: 0 auto;
}
.lw-gallery__header {
  text-align: center;
  margin-bottom: 3.5rem;
}
.lw-gallery__heading {
  font-family: var(--sc);
  font-style: italic;
  font-size: clamp(2rem, 3.6vw, 3rem);
  color: var(--navy);
  margin: 0 0 0.6rem;
  font-weight: 500;
  letter-spacing: 0.01em;
}
.lw-gallery__sub {
  font-family: var(--body);
  color: var(--text-dark);
  font-size: clamp(1rem, 1.3vw, 1.2rem);
  opacity: 0.82;
  margin: 0;
}
.lw-gallery__grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 1.6rem;
}
.lw-gallery__card {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;

  opacity: 0;
  transform: translateY(-72px);
  transition: transform 760ms cubic-bezier(0.22, 0.61, 0.36, 1),
              opacity 600ms ease;
  transition-delay: var(--lw-float-delay, 0ms);
}
.lw-gallery.is-floating-in .lw-gallery__card {
  opacity: 1;
  transform: translateY(0);
}
.lw-gallery__card .lw-window__frame {
  max-width: 220px;
  width: 100%;
}
.lw-gallery__label {
  font-family: var(--sc);
  font-style: italic;
  font-size: clamp(0.95rem, 1.1vw, 1.1rem);
  color: var(--navy);
  margin: 0.8rem 0 0;
  letter-spacing: 0.02em;
  font-weight: 500;
}

@media (max-width: 1024px) {
  .lw-gallery__grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem 1.6rem;
  }
}
@media (max-width: 600px) {
  .lw-gallery__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 1.6rem 1.2rem;
  }
  .lw-gallery__card .lw-window__frame {
    max-width: 180px;
  }
}

.lw-register {
  position: relative;
  width: 100%;
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: var(--navy);
  color: var(--cream);
  padding: 4rem 2rem;
  box-sizing: border-box;
  background-image:
    radial-gradient(ellipse at top, rgba(196, 163, 90, 0.10) 0%, transparent 60%),
    radial-gradient(ellipse at bottom, rgba(28, 47, 74, 0.40) 0%, transparent 60%);
}
.lw-register__inner {
  width: 100%;
  max-width: 640px;
  text-align: center;
}
.lw-register__header {
  margin-bottom: 3rem;
}
.lw-register__heading {
  font-family: var(--sc);
  font-style: italic;
  font-weight: 500;
  font-size: clamp(2rem, 3.8vw, 3rem);
  color: var(--gold-bright, #d8b870);
  margin: 0 0 1rem;
  letter-spacing: 0.01em;
}
.lw-register__intro {
  font-family: var(--body);
  font-size: clamp(1.05rem, 1.3vw, 1.2rem);
  line-height: 1.5;
  color: var(--cream-faf5ef, var(--cream));
  margin: 0 0 1rem;
  opacity: 0.92;
}
.lw-register__note {
  font-family: var(--sans);
  font-size: 0.85rem;
  color: var(--border-ornate);
  opacity: 0.7;
  margin: 0;
}
.lw-register__form {
  display: flex;
  flex-direction: column;
  gap: 1.4rem;
  text-align: left;
}
.lw-register__field {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}
.lw-register__label {
  font-family: var(--sans);
  font-size: 0.85rem;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--cream-faf5ef, var(--cream));
  opacity: 0.82;
}
.lw-register__input {
  background: rgba(245, 240, 232, 0.06);
  border: 1px solid rgba(196, 163, 90, 0.42);
  border-radius: 2px;
  padding: 0.95rem 1.1rem;
  color: var(--cream);
  font-family: var(--body);
  font-size: 1.05rem;
  outline: none;
  transition: border-color 200ms ease, background 200ms ease;
  cursor: default;
}
.lw-register__input::placeholder {
  color: var(--cream);
  opacity: 0.45;
}
.lw-register__submit-row {
  display: flex;
  justify-content: center;
  margin-top: 1rem;
}
.lw-register__submit {
  background: var(--gold);
  color: var(--navy);
  border: none;
  padding: 1rem 3rem;
  font-family: var(--sc);
  font-size: 1.1rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 600;
  cursor: not-allowed;
  border-radius: 2px;
  opacity: 0.88;
  pointer-events: none;
}

@media (prefers-reduced-motion: reduce) {

  .lw-hero__bg {
    background-attachment: scroll !important;
    transform: none !important;
    top: 0 !important;
    height: 100% !important;
    will-change: auto !important;
  }

  .lw-window,
  .lw-window__img,
  .lw-scrolly__panel-title,
  .lw-scrolly__panel-body {
    transition: none !important;
    transform: none !important;
  }
  .lw-scrolly[data-lw-active] .lw-window,
  .lw-scrolly[data-lw-active] .lw-window[data-lw-window] {
    opacity: 1 !important;
    filter: none !important;
    transform: none !important;
  }

  .lw-gallery__card {
    opacity: 1 !important;
    transform: none !important;
    transition: opacity 320ms linear !important;
    transition-delay: 0ms !important;
  }
}

.page-contact {
  background: var(--cream);
  color: var(--navy);
}

.contact-hero {
  padding: 4.5rem 1.5rem 2rem;
  background: var(--cream);
}
.contact-hero__inner {
  max-width: 920px;
  margin: 0 auto;
  text-align: center;
}
.contact-hero__rule {
  display: inline-block;
  width: 80px;
  height: 2px;
  background: var(--gold);
  vertical-align: middle;
  margin: 0 1rem;
  opacity: 0.85;
}
.contact-hero__title {
  display: inline-block;
  font-family: var(--sc);
  font-size: clamp(2.4rem, 5vw, 3.6rem);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--navy);
  margin: 0;
  vertical-align: middle;
  font-weight: 600;
}
.contact-hero__lede {
  font-family: var(--body);
  font-style: italic;
  font-size: clamp(1.15rem, 2vw, 1.5rem);
  color: var(--navy);
  margin: 1.5rem auto 0;
  max-width: 40ch;
  line-height: 1.4;
}

.contact-emails {
  padding: 1.5rem 1.5rem 2.5rem;
}
.contact-emails__inner {
  max-width: 720px;
  margin: 0 auto;
  text-align: center;
}
.contact-emails__intro {
  font-family: var(--body);
  font-size: 1.05rem;
  line-height: 1.55;
  color: var(--navy);
  margin: 0 0 1.75rem;
}
.contact-emails__list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.contact-emails__item {
  margin: 0.4rem 0;
}
.contact-emails__link {
  font-family: var(--sc);
  font-size: 1.25rem;
  letter-spacing: 0.04em;
  color: var(--navy);
  text-decoration: none;
  border-bottom: 1px solid rgba(28,47,74,0.35);
  padding-bottom: 2px;
  transition: color 0.2s, border-color 0.2s;
}
.contact-emails__link:hover,
.contact-emails__link:focus {
  color: var(--gold);
  border-color: var(--gold);
}

.contact-form-section {
  padding: 1rem 1.5rem 5rem;
  background: var(--cream);
}
.contact-form-section__inner {
  max-width: 720px;
  margin: 0 auto;
}

.contact-form__notice {
  padding: 1rem 1.25rem;
  margin-bottom: 1.5rem;
  border-radius: 2px;
  font-family: var(--body);
  font-size: 1rem;
  line-height: 1.4;
}
.contact-form__notice--success {
  background: #eef5ec;
  color: #2c5b2c;
  border: 1px solid #c2dfbf;
}
.contact-form__notice--error {
  background: #fbecec;
  color: #8a2a2a;
  border: 1px solid #f2c2c2;
}

.contact-form {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}
.contact-form__honeypot {
  position: absolute;
  left: -10000px;
  top: auto;
  width: 1px;
  height: 1px;
  overflow: hidden;
}
.contact-form__fieldset {
  border: none;
  margin: 0;
  padding: 0;
}
.contact-form__legend {
  font-family: var(--sc);
  font-size: 0.95rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--navy);
  margin-bottom: 0.6rem;
  padding: 0;
}
.contact-form__row {
  display: grid;
  gap: 0.75rem;
}
.contact-form__row--name {
  grid-template-columns: 1fr 2fr 2fr 1fr;
}
.contact-form__field {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.contact-form__field--full {
  width: 100%;
}
.contact-form__label {
  font-family: var(--sans);
  font-size: 0.85rem;
  letter-spacing: 0.06em;
  color: var(--navy);
  margin-bottom: 0.3rem;
  font-weight: 500;
}
.contact-form__required {
  color: var(--gold);
}
.contact-form__input,
.contact-form__textarea {
  width: 100%;
  padding: 0.75rem 0.9rem;
  font-family: var(--sans);
  font-size: 0.95rem;
  color: var(--text-dark);
  background: #fff;
  border: 1px solid rgba(28,47,74,0.25);
  border-radius: 2px;
  transition: border-color 0.2s, box-shadow 0.2s;
  -webkit-appearance: none;
  appearance: none;
}
.contact-form__textarea {
  resize: vertical;
  min-height: 180px;
  line-height: 1.5;
}
.contact-form__input::placeholder,
.contact-form__textarea::placeholder {
  color: rgba(28,47,74,0.4);
}
.contact-form__input:focus,
.contact-form__textarea:focus {
  outline: none;
  border-color: var(--navy);
  box-shadow: 0 0 0 3px rgba(28,47,74,0.15);
}
.contact-form__actions {
  display: flex;
  justify-content: flex-start;
  margin-top: 0.5rem;
}
.contact-form__submit {
  display: inline-block;
  padding: 0.95rem 2.4rem;
  font-family: var(--sans);
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  background: var(--navy);
  color: #fff;
  border: 2px solid var(--navy);
  border-radius: 2px;
  cursor: pointer;
  transition: background 0.25s, color 0.25s, border-color 0.25s;
}
.contact-form__submit:hover,
.contact-form__submit:focus {
  background: var(--gold);
  border-color: var(--gold);
  color: var(--navy);
  outline: none;
}

@media (max-width: 720px) {
  .contact-hero {
    padding: 3rem 1.25rem 1.5rem;
  }
  .contact-hero__rule {
    width: 48px;
    margin: 0 0.6rem;
  }
  .contact-form-section {
    padding: 1rem 1.25rem 3.5rem;
  }
  .contact-form__row--name {
    grid-template-columns: 1fr 1fr;
  }
  .contact-form__submit {
    width: 100%;
    text-align: center;
  }
}

@media (max-width: 480px) {
  .contact-emails__link {
    font-size: 0.95rem;
    letter-spacing: normal;
    word-break: break-all;
    overflow-wrap: anywhere;
    display: inline-block;
    max-width: 100%;
  }
}

.page-doctrinal-commitments { background: var(--cream, #f5f0e8); }

.dc-hero {
  position: relative;
  width: 100%;
  margin: 0;
  padding: 0;
  overflow: hidden;
  background: var(--cream, #f5f0e8);
  isolation: isolate;
}
.page-doctrinal-commitments .dc-hero__art.page-hero__art {
  display: block;
  width: 100%;
  height: auto;
  max-height: none;
  
  aspect-ratio: 1280 / 514;
  object-fit: cover;
  object-position: center center;
}
.page-doctrinal-commitments .page-hero__walking-text {
  font-size: clamp(2.4rem, 6vw, 5.313rem);
  line-height: 1.035;
  letter-spacing: 0.025em;
  font-weight: 400;
  font-style: normal;
}
@media (max-width: 640px) {
  .page-doctrinal-commitments .page-hero__walking-text {
    font-size: clamp(1.9rem, 8vw, 2.6rem);
    line-height: 1.05;
    letter-spacing: 0.025em;
  }
}

.dc-statement {
  background: var(--cream, #f5f0e8);
  
  padding: clamp(0.4rem, 1vw, 0.8rem) 1.5rem clamp(3rem, 7vw, 5.5rem);
}
.dc-statement__inner {
  max-width: 820px;
  margin: 0 auto;
  text-align: center;
}
.dc-statement__eyebrow {
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-size: 0.78rem;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--gold, #c4a35a);
  font-weight: 600;
  margin: 0 0 1.4rem;
}
.dc-statement__rule {
  display: block;
  width: clamp(180px, 40%, 360px);
  height: 1px;
  background: var(--gold, #c4a35a);
  opacity: 0.85;
  margin: 0 auto 2.2rem;
}

/* The block build emits a core <hr class="wp-block-separator"> for the TOP rule here
   (the bottom one kept its .dc-statement__rule class), so it rendered 100x2 at full
   opacity with core's grey borders instead of prod's gold hairline. Same root cause as
   the .ls-intro separator. Core ships
   `.wp-block-separator:not(.is-style-wide):not(.is-style-dots){max-width:100px}`, so the
   override needs matching specificity AND max-width. 2026-07-24. */
.dc-statement .wp-block-separator,
.dc-statement hr.wp-block-separator,
.dc-statement hr.wp-block-separator:not(.is-style-wide):not(.is-style-dots) {
  display: block;
  /* prod's rule is a child of the statement's inner text column, so its 40% resolves
     to ~213px at 390px viewport. The core separator sits one level higher where 40%
     resolves to the 180px clamp floor, so match prod by measuring against the same
     box instead of inheriting whatever this parent happens to be. */
  width: clamp(180px, 60%, 360px);
  max-width: 360px;
  height: 1px;
  background: var(--gold, #c4a35a);
  border: 0;
  opacity: 0.85;
  /* prod's TOP rule sits at margin-bottom 25.6px (1.6rem), not the 2.2rem the shared
     .dc-statement__rule uses for the bottom one. Using 2.2rem here pushed the whole
     statement 10px down and made the divergence WORSE (5.95% -> 10.6%). Measured
     against prod 2026-07-24: eyebrow mb 22.4, rule mb 25.6. */
  margin: 0 auto 1.6rem;
}
.dc-statement__rule--bottom {
  margin: 2.4rem auto 0;
}
.dc-statement__body {
  font-family: var(--display, 'Cormorant Garamond', serif);
  font-size: clamp(1.2rem, 1.8vw, 1.55rem);
  line-height: 1.7;
  color: var(--navy, #1c2f4a);
  text-align: left;
  margin: 0;
  letter-spacing: 0.005em;
}
.dc-statement__dropcap {
  float: left;
  font-family: var(--sc, 'Cormorant SC', serif);
  font-weight: 600;
  font-size: clamp(3.6rem, 7vw, 5.4rem);
  line-height: 0.9;
  color: var(--gold, #c4a35a);
  padding: 0.35rem 0.7rem 0 0;
  margin: 0;
}
.dc-statement__confession {
  font-style: italic;
  color: var(--navy, #1c2f4a);
}

@media (max-width: 640px) {
  .dc-statement { padding: 0.9rem 1.1rem 2.6rem; }
  .dc-statement__body {
    font-size: 1.1rem;
    line-height: 1.6;
  }
  .dc-statement__dropcap {
    font-size: 3rem;
    padding: 0.4rem 0.55rem 0 0;
  }
  .dc-statement__rule { width: 60%; margin-bottom: 1.6rem; }
  .dc-statement__rule--bottom { margin-top: 1.8rem; }
}

.page-editorial-board { background: var(--cream, #f5f0e8); }

.eb-hero {
  position: relative;
  width: 100%;
  margin: 0;
  padding: 0;
  overflow: hidden;
  background: var(--cream, #f5f0e8);
  isolation: isolate;
  min-height: 240px;
}
.eb-hero__art {
  display: block;
  width: 100%;
  height: auto;
  max-height: 44vh;
  object-fit: cover;
  object-position: center center;
}
.eb-hero__title-wrap {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.9rem;
  padding: 1.2rem clamp(1rem, 4vw, 4rem) 1.6rem;
  pointer-events: none;
  z-index: 2;
  background: transparent;
}
.eb-hero__rule {
  display: block;
  width: clamp(140px, 28%, 320px);
  height: 1px;
  background: var(--gold, #c4a35a);
  opacity: 0.95;
}
.eb-hero__title {
  font-family: var(--display, 'Cormorant Garamond', serif);
  font-weight: 500;
  font-style: normal;
  font-size: clamp(1.9rem, 4.2vw, 3.4rem);
  line-height: 1.1;
  color: #fff;
  letter-spacing: 0.04em;
  text-align: center;
  margin: 0;
  font-variant: small-caps;
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.55), 0 1px 2px rgba(0, 0, 0, 0.45);
}

@media (max-width: 820px) {
  .eb-hero { min-height: 200px; }
  .eb-hero__art { max-height: 38vh; }
  .eb-hero__title-wrap {
    padding: 1rem 1.1rem 1.2rem;
    gap: 0.7rem;
  }
  .eb-hero__rule { width: 50%; }
}

.eb-eic {
  background: var(--cream, #f5f0e8);
  padding: clamp(3rem, 7vw, 5rem) 1.5rem clamp(2rem, 4vw, 3rem);
}
.eb-eic__inner {
  max-width: 760px;
  margin: 0 auto;
  text-align: center;
}
.eb-eic__eyebrow {
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-size: 0.78rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--gold, #c4a35a);
  font-weight: 600;
  margin: 0 0 1.2rem;
}
.eb-eic__rule {
  display: block;
  width: clamp(180px, 36%, 320px);
  height: 1px;
  background: var(--gold, #c4a35a);
  opacity: 0.85;
  margin: 0 auto 1.8rem;
}
.eb-eic__name {
  font-family: var(--display, 'Cormorant Garamond', serif);
  font-weight: 500;
  font-size: clamp(2.2rem, 4.4vw, 3.4rem);
  line-height: 1.15;
  color: var(--navy, #1c2f4a);
  letter-spacing: 0.01em;
  margin: 0;
}

.eb-board {
  background: var(--cream, #f5f0e8);
  padding: clamp(2rem, 4vw, 3rem) 1.5rem clamp(3.5rem, 7vw, 5.5rem);
}
.eb-board__inner {
  max-width: 920px;
  margin: 0 auto;
}
.eb-board__header {
  text-align: center;
  margin: 0 auto clamp(2rem, 4vw, 3rem);
}
.eb-board__eyebrow {
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-size: 0.78rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--gold, #c4a35a);
  font-weight: 600;
  margin: 0 0 1.2rem;
}
.eb-board__rule {
  display: block;
  width: clamp(220px, 50%, 480px);
  height: 1px;
  background: var(--gold, #c4a35a);
  opacity: 0.85;
  margin: 0 auto;
}
.eb-board__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: clamp(1.5rem, 4vw, 3.2rem);
  row-gap: clamp(1.1rem, 2.2vw, 1.6rem);
}
.eb-board__item {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 0.4rem 0 0.9rem;
  border-bottom: 1px solid rgba(28, 47, 74, 0.12);
}
.eb-board__item:last-child,
.eb-board__item:nth-last-child(2):nth-child(odd) {
  border-bottom: 1px solid rgba(28, 47, 74, 0.12);
}
.eb-board__name {
  font-family: var(--display, 'Cormorant Garamond', serif);
  font-weight: 500;
  font-size: clamp(1.25rem, 1.8vw, 1.55rem);
  line-height: 1.25;
  color: var(--navy, #1c2f4a);
  letter-spacing: 0.005em;
}
.eb-board__affiliation {
  font-family: var(--display, 'Cormorant Garamond', serif);
  font-style: italic;
  font-size: clamp(0.95rem, 1.4vw, 1.1rem);
  line-height: 1.4;
  color: #4a4a4a;
  margin-top: 0.15rem;
}

@media (max-width: 720px) {
  .eb-board__list {
    grid-template-columns: 1fr;
    row-gap: 1rem;
  }
  .eb-eic { padding: 2.4rem 1.1rem 1.8rem; }
  .eb-board { padding: 1.8rem 1.1rem 3rem; }
}

/* === Davenant Academics Multi-Panel === */

.dh-academics {
  position: relative;
  overflow: hidden;
  min-height: 600px;
  color: #fff;
  background: var(--navy);
  
  border-top: 4px solid var(--gold-bright);
  border-bottom: 4px solid var(--gold-bright);
}
.dh-academics__bg-stack {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.dh-academics__bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  opacity: 0;
  transition: opacity 0.4s ease;
}
.dh-academics__bg.is-active { opacity: 1; }
.dh-academics__scrim {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  
  background:
    linear-gradient(90deg, rgba(0,0,0,0.40) 0%, rgba(0,0,0,0.20) 60%, rgba(0,0,0,0.20) 100%),
    linear-gradient(180deg, rgba(0,0,0,0.10) 0%, rgba(0,0,0,0.20) 100%);
}
.dh-academics__inner {
  position: relative;
  z-index: 2;
  max-width: 1240px;
  margin: 0 auto;
  padding: 4rem 2rem 4.5rem;
  display: grid;
  grid-template-columns: 1fr minmax(280px, 40%);
  gap: 2.5rem;
  align-items: start;
  min-height: 600px;
}
.dh-academics__main {
  grid-column: 1 / 2;
  align-self: start;
  max-width: 36rem;
}
.dh-academics__eyebrow {
  font-family: 'Cormorant SC', serif;
  font-size: 0.85rem;
  letter-spacing: 0.22em;
  color: #fff;
  margin: 0 0 0.4rem;
  opacity: 0.9;
}
.dh-academics__title {
  font-family: 'Cormorant Garamond', serif;
  font-style: italic;
  font-size: clamp(2rem, 3.4vw, 2.8rem);
  margin: 0 0 1rem;
  font-weight: 500;
  line-height: 1.05;
  color: #fff;
}
.dh-academics__lede {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.15rem;
  line-height: 1.5;
  color: rgba(255,255,255,0.92);
  margin: 0;
  max-width: 32rem;
}
.dh-academics__stack {
  grid-column: 2 / 3;
  list-style: none;
  padding: 0.5rem 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  
  background: rgba(8, 24, 47, 0.55);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
  border-radius: 4px;
  border: 1px solid var(--gold);
}

.dh-academics__card-item {
  list-style: none;
  display: block;
}
.dh-academics__card {
  display: flex;
  flex-direction: column;
  padding: 1.0rem 1.4rem;
  cursor: pointer;
  color: #fff;
  text-decoration: none;
  
  border-top: 1px solid rgba(196, 163, 90, 0.45);
  transition: background 0.2s ease, padding-left 0.2s ease;
  gap: 0.3rem;
  outline: none;
}
.dh-academics__card:visited { color: #fff; }
.dh-academics__card-item:first-child .dh-academics__card { border-top: none; }
.dh-academics__card:first-child { border-top: none; }
.dh-academics__card:hover,
.dh-academics__card:focus-visible,
.dh-academics__card.is-active {
  background: rgba(23, 69, 42, 0.55);
  padding-left: 1.7rem;
}
.dh-academics__card-title {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.4rem;
  font-style: italic;
  line-height: 1.15;
  
  color: var(--gold);
}
.dh-academics__card-teaser {
  font-family: 'Cormorant Garamond', serif;
  font-size: 0.95rem;
  line-height: 1.45;
  color: rgba(255,255,255,0.85);
}

@media (max-width: 768px) {
  .dh-academics {
    min-height: 0;
  }
  .dh-academics__scrim {
    background: linear-gradient(180deg, rgba(0,0,0,0.55) 0%, rgba(0,0,0,0.55) 100%);
  }
  .dh-academics__inner {
    grid-template-columns: 1fr;
    padding: 2.6rem 1.2rem 3rem;
    min-height: 0;
    gap: 1.5rem;
  }
  .dh-academics__main,
  .dh-academics__stack {
    grid-column: 1 / -1;
  }
  .dh-academics__card { padding: 0.9rem 1rem; }
  .dh-academics__card:hover,
  .dh-academics__card:focus-visible,
  .dh-academics__card.is-active { padding-left: 1.2rem; }
}

/* === Davenant Hall - Program page templates (Certificate / M.St. / M.Litt.) === */
.dh-prog-main { background: var(--cream); color: var(--navy); }

.dh-prog-hero { color: var(--cream-faf5ef, #faf5ef); }
.dh-prog-hero__overlay {
  position: absolute;
  inset: auto 0 8% 0;
  text-align: center;
  padding: 0 1.5rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.6rem;
}
.dh-prog-hero__eyebrow {
  font-family: 'Cormorant SC', serif;
  font-size: 0.9rem;
  letter-spacing: 0.22em;
  color: var(--cream-faf5ef, #faf5ef);
  text-shadow: 0 1px 4px rgba(0,0,0,0.6);
  margin: 0;
}

.dh-prog-hero__medallion {
  display: block;
  width: 96px;
  height: auto;
  margin: 0 auto 0.2rem;
  filter: drop-shadow(0 2px 8px rgba(0,0,0,0.55));
}
@media (max-width: 720px) {
  
  .dh-prog-hero__medallion { width: 72px; }
}
.dh-prog-hero__title {
  font-family: 'Cormorant Garamond', serif;
  font-style: italic;
  font-size: clamp(2.4rem, 5vw, 4rem);
  font-weight: 500;
  margin: 0;
  text-shadow: 0 2px 12px rgba(0,0,0,0.45);
  line-height: 1.05;
}
.dh-prog-hero__tagline {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(1rem, 1.6vw, 1.25rem);
  max-width: 720px;
  margin: 0;
  text-shadow: 0 1px 6px rgba(0,0,0,0.5);
}

.dh-prog-cores,
.dh-prog-faq {
  background: var(--cream);
  padding: 4rem 2rem;
}

.dh-prog-structure {
  background: #17452a;
  color: var(--cream-faf5ef, #faf5ef);
  padding: 4rem 2rem;
}
.dh-prog-tuition {
  background: var(--cream-faf5ef, #faf5ef);
  padding: 4rem 2rem;
}

.dh-prog-tuition__cta-wrap {
  text-align: center;
  margin: 2.4rem 0 0;
}
.dh-prog-tuition__cta {
  display: inline-block;
  font-family: 'Cormorant SC', serif;
  font-size: 0.85rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--navy);
  border: 1px solid var(--navy);
  padding: 0.7rem 1.3rem;
  background: transparent;
  text-decoration: none;
  transition: background 0.2s ease, color 0.2s ease;
}
.dh-prog-tuition__cta:hover {
  background: var(--navy);
  color: var(--cream-faf5ef, #faf5ef);
}

.dh-prog-apply {
  background: var(--navy);
  color: var(--cream-faf5ef, #faf5ef);
  padding: 4rem 2rem;
}
.dh-prog-crosssell {
  background: #17452a;
  color: var(--cream-faf5ef, #faf5ef);
  padding: 3.5rem 2rem;
  text-align: center;
}
.dh-prog-structure__inner,
.dh-prog-tuition__inner,
.dh-prog-cores__inner,
.dh-prog-crosssell__inner,
.dh-prog-apply__inner,
.dh-prog-faq__inner {
  max-width: 980px;
  margin: 0 auto;
}

.dh-prog-structure__eyebrow,
.dh-prog-tuition__eyebrow,
.dh-prog-cores__eyebrow,
.dh-prog-crosssell__eyebrow,
.dh-prog-faq__eyebrow {
  font-family: 'Cormorant SC', serif;
  font-size: 0.9rem;
  letter-spacing: 0.22em;
  color: #17452a;
  margin: 0 0 0.6rem;
}
.dh-prog-crosssell__eyebrow { color: var(--gold); }

.dh-prog-structure__eyebrow { color: var(--gold-bright); }
.dh-prog-structure__title,
.dh-prog-tuition__title,
.dh-prog-cores__title,
.dh-prog-apply__title,
.dh-prog-faq__title {
  font-family: 'Cormorant Garamond', serif;
  font-style: italic;
  font-size: clamp(1.8rem, 3vw, 2.4rem);
  font-weight: 500;
  margin: 0 0 1.6rem;
  line-height: 1.1;
  color: var(--navy);
}
.dh-prog-structure__title { color: var(--cream-faf5ef, #faf5ef); }

.dh-prog-apply__title { color: var(--gold-bright, #d8b870); }
.dh-prog-cores__lede {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.1rem;
  line-height: 1.55;
  margin: 0 0 1.6rem;
}

.dh-prog-tracks {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 1.2rem;
}
.dh-prog-track {
  background: var(--cream-faf5ef, #faf5ef);
  border: 1px solid var(--border-ornate);
  border-radius: 4px;
  padding: 1.2rem 1.2rem;
}
.dh-prog-tracks--modules .dh-prog-track {
  background: var(--cream-faf5ef, #faf5ef);
}
.dh-prog-track__name {
  font-family: 'Cormorant Garamond', serif;
  font-style: italic;
  font-size: 1.3rem;
  font-weight: 500;
  margin: 0 0 0.5rem;
  color: var(--navy);
}
.dh-prog-track__credits {
  font-family: 'Cormorant SC', serif;
  font-style: normal;
  font-size: 0.78rem;
  letter-spacing: 0.14em;
  color: #17452a;
  margin-left: 0.3rem;
}
.dh-prog-track__desc {
  font-family: 'Cormorant Garamond', serif;
  font-size: 0.98rem;
  line-height: 1.5;
  margin: 0;
  color: var(--navy);
}

.dh-prog-track__items {
  font-family: 'Cormorant Garamond', serif;
  font-size: 0.98rem;
  line-height: 1.5;
  margin: 0;
  padding-left: 1.1em;
  color: var(--navy);
  list-style-type: disc;
}
.dh-prog-track__items > li {
  margin: 0 0 0.15em 0;
}
.dh-prog-track__items > li:last-child { margin-bottom: 0; }

.dh-prog-track--total {
  background: var(--cream-faf5ef, #faf5ef);
  color: var(--navy);
  border: 1px solid var(--border-ornate);
  text-align: center;
}
.dh-prog-track--total .dh-prog-track__name {
  color: var(--navy);
}
.dh-prog-track--total .dh-prog-track__credits {
  color: #17452a;
}

.dh-prog-tuition__grid {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 1rem;
}
.dh-prog-tuition__item {
  background: var(--cream);
  border: 1px solid var(--border-ornate);
  border-radius: 4px;
  padding: 1.2rem;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  text-align: center;
}
.dh-prog-tuition__label {
  font-family: 'Cormorant SC', serif;
  font-size: 0.82rem;
  letter-spacing: 0.14em;
  color: #17452a;
}
.dh-prog-tuition__value {
  font-family: 'Cormorant Garamond', serif;
  font-style: italic;
  font-size: 1.8rem;
  font-weight: 500;
  color: var(--navy);
}
.dh-prog-tuition__note {
  font-family: 'Cormorant Garamond', serif;
  font-size: 0.88rem;
  color: var(--navy);
  opacity: 0.8;
}

.dh-prog-cores__list {
  list-style: none;
  counter-reset: dh-core;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.dh-prog-cores__item {
  counter-increment: dh-core;
  padding: 1rem 1.1rem 1rem 3.3rem;
  border-left: 3px solid #17452a;
  background: var(--cream-faf5ef, #faf5ef);
  position: relative;
}
.dh-prog-cores__item::before {
  content: counter(dh-core, decimal-leading-zero);
  position: absolute;
  left: 1rem;
  top: 1.1rem;
  font-family: 'Cormorant SC', serif;
  font-size: 0.95rem;
  letter-spacing: 0.1em;
  color: #17452a;
}
.dh-prog-cores__name {
  font-family: 'Cormorant Garamond', serif;
  font-style: italic;
  font-size: 1.25rem;
  font-weight: 500;
  margin: 0 0 0.3rem;
  color: var(--navy);
}
.dh-prog-cores__desc {
  font-family: 'Cormorant Garamond', serif;
  font-size: 0.98rem;
  line-height: 1.5;
  margin: 0;
}

.dh-prog-crosssell__body {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.15rem;
  line-height: 1.5;
  max-width: 720px;
  margin: 0 auto 1.4rem;
}
.dh-prog-crosssell__ctas,
.dh-prog-apply__ctas {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0.9rem;
}
.dh-prog-cta {
  font-family: 'Cormorant SC', serif;
  font-size: 0.85rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--cream-faf5ef, #faf5ef);
  border: 1px solid var(--cream-faf5ef, #faf5ef);
  padding: 0.7rem 1.3rem;
  transition: background 0.2s ease, color 0.2s ease;
}
.dh-prog-cta:hover {
  background: var(--cream-faf5ef, #faf5ef);
  color: #17452a;
}
.dh-prog-apply { text-align: center; }

.dh-prog-apply__body {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.1rem;
  margin: 0 0 1.4rem;
  color: var(--cream-faf5ef, #faf5ef);
}

.dh-prog-apply__btn {
  font-family: 'Cormorant SC', serif;
  font-size: 0.85rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--navy);
  background: var(--gold-bright, #d8b870);
  border: 1px solid var(--gold-bright, #d8b870);
  padding: 0.8rem 1.5rem;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
.dh-prog-apply__btn:hover {
  background: var(--cream-faf5ef, #faf5ef);
  border-color: var(--cream-faf5ef, #faf5ef);
  color: var(--navy);
}

.dh-prog-apply__btn--alt {
  background: transparent;
  color: var(--cream-faf5ef, #faf5ef);
  border-color: var(--cream-faf5ef, #faf5ef);
}
.dh-prog-apply__btn--alt:hover {
  background: var(--cream-faf5ef, #faf5ef);
  border-color: var(--cream-faf5ef, #faf5ef);
  color: var(--navy);
}

.dh-apply-cta {
  background: #17452a;
  padding: 3rem 2rem;
  text-align: center;
}
.dh-apply-cta__inner {
  max-width: 760px;
  margin: 0 auto;
}
.dh-apply-cta__title {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.85rem;
  font-weight: 600;
  color: var(--gold-bright);
  margin: 0 0 0.85rem;
  line-height: 1.2;
}
.dh-apply-cta__body {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.1rem;
  color: #fff;
  margin: 0 0 1.6rem;
  line-height: 1.45;
}
.dh-apply-cta__buttons {
  display: flex;
  justify-content: center;
  gap: 1rem;
  flex-wrap: wrap;
}
.dh-apply-cta__btn {
  font-family: 'Cormorant SC', serif;
  font-size: 0.85rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  padding: 0.8rem 1.6rem;
  border: 1px solid var(--gold-bright);
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
  display: inline-block;
  text-decoration: none;
}
.dh-apply-cta__btn--primary {
  background: var(--gold-bright);
  color: #17452a;
}
.dh-apply-cta__btn--primary:hover {
  background: transparent;
  color: var(--gold-bright);
}
.dh-apply-cta__btn--secondary {
  background: transparent;
  color: var(--gold-bright);
}
.dh-apply-cta__btn--secondary:hover {
  background: var(--gold-bright);
  color: #17452a;
}
@media (max-width: 600px) {
  .dh-apply-cta { padding: 2.4rem 1.25rem; }
  .dh-apply-cta__title { font-size: 1.6rem; }
  .dh-apply-cta__body { font-size: 1rem; }
  .dh-apply-cta__buttons {
    flex-direction: column;
    align-items: stretch;
    gap: 0.7rem;
  }
  .dh-apply-cta__btn { width: 100%; }
}

.dh-prog-faq__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
}
.dh-prog-faq__item {
  padding: 1.1rem 1.2rem;
  background: var(--cream-faf5ef, #faf5ef);
  border-left: 3px solid #17452a;
}
.dh-prog-faq__q {
  font-family: 'Cormorant SC', serif;
  font-size: 1rem;
  letter-spacing: 0.06em;
  color: var(--navy);
  margin: 0 0 0.4rem;
}
.dh-prog-faq__a {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1rem;
  line-height: 1.55;
  margin: 0;
}

@media (max-width: 720px) {
  .dh-prog-structure,
  .dh-prog-cores,
  .dh-prog-faq,
  .dh-prog-tuition,
  .dh-prog-apply,
  .dh-prog-crosssell { padding: 2.6rem 1.2rem; }
  .dh-prog-hero__overlay { inset: auto 0 6% 0; padding: 0 1rem; }
  .dh-prog-cores__item { padding-left: 2.8rem; }
}

@media (max-width: 480px) {
  /* (1) shrink the global medallion that overlays the hero */
  body:not(.home) .site-header .nav-logo--logo-only img {
    width: 44px;
    height: 44px;
  }
  body:not(.home) .site-header .nav-logo--logo-only {
    padding: 0.35rem 0.7rem 0.35rem 0.6rem;
  }
  /* (2) raise hero image so overlay has clearance from medallion */
  .dh-prog-hero .page-hero__art {
    min-height: 320px;
    max-height: 320px;
  }
  /* (3) push overlay below medallion bottom (~y=82 after shrink) */
  .dh-prog-hero__overlay {
    inset: auto 0 5% 0;
    padding: 0 0.75rem;
    padding-top: 0;
    min-width: 0;
    gap: 0.4rem;
  }
  /* (4) title: 1.95rem, line-height 1.1, allow wrap */
  .dh-prog-hero__title {
    font-size: 1.95rem;
    line-height: 1.1;
    overflow-wrap: break-word;
    word-break: normal;
    hyphens: none;
    min-width: 0;
    max-width: 100%;
  }
  /* (5) tighten eyebrow + tagline */
  .dh-prog-hero__eyebrow {
    font-size: 0.8rem;
    letter-spacing: 0.18em;
    line-height: 1.2;
  }
  .dh-prog-hero__tagline {
    font-size: 0.92rem;
    line-height: 1.3;
  }
}

.merch-main { background: var(--cream-faf5ef, #faf5ef); color: var(--navy); }
.merch-hero { position: relative; min-height: 62vh; overflow: hidden; }
.merch-hero__art { filter: saturate(0.92) contrast(0.98); }
.merch-hero__veil {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(28,47,74,0.82), rgba(28,47,74,0.30) 58%, rgba(28,47,74,0.12));
  z-index: 1;
}
.merch-hero__content {
  position: absolute; z-index: 2; left: 7vw; bottom: 12vh;
  max-width: 720px; color: var(--cream-faf5ef, #faf5ef);
}
.merch-hero__eyebrow,
.merch-coming-soon__eyebrow {
  font-family: var(--sc); letter-spacing: 0.22em; text-transform: uppercase;
  color: var(--gold-bright); font-size: 0.95rem; margin: 0 0 0.75rem;
}
.merch-hero__title {
  font-family: var(--body); font-style: italic; font-weight: 400;
  font-size: clamp(3.8rem, 9vw, 8rem); line-height: 0.9; margin: 0;
  /* On dark merch hero panel — cream text. Live target rgb(250,245,239). */
  color: rgb(250, 245, 239);
}
.merch-coming-soon { padding: 5.5rem 1.5rem 6rem; }
.merch-coming-soon__inner {
  max-width: 820px; margin: 0 auto; text-align: center;
  border-top: 1px solid rgba(196, 163, 90, 0.45);
  border-bottom: 1px solid rgba(196, 163, 90, 0.45);
  padding: 3.5rem 1.5rem;
}
.merch-coming-soon__title {
  font-family: var(--body); font-style: italic; font-weight: 400;
  color: var(--navy); font-size: clamp(3rem, 7vw, 6rem); line-height: 0.95;
  margin: 0 0 1rem;
}
.merch-coming-soon__body {
  font-family: var(--body); font-size: clamp(1.1rem, 2vw, 1.35rem);
  line-height: 1.55; margin: 0 auto 1.8rem; max-width: 560px;
}
.merch-coming-soon__back {
  display: inline-flex; align-items: center; justify-content: center;
  font-family: var(--sc); letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--navy); border: 1px solid var(--navy); padding: 0.85rem 1.35rem;
  text-decoration: none; transition: background 0.2s ease, color 0.2s ease;
}
.merch-coming-soon__back:hover { background: var(--navy); color: var(--cream-faf5ef); }

.lecture-modules-main { background: var(--cream-faf5ef, #faf5ef); color: var(--navy); }
.lm-hero { position: relative; min-height: 68vh; overflow: hidden; }
.lm-hero__art { filter: saturate(0.88) contrast(0.96); }
.lm-hero__veil {
  position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(90deg, rgba(28,47,74,0.86), rgba(28,47,74,0.45) 58%, rgba(28,47,74,0.16));
}
.lm-hero__content {
  position: absolute; z-index: 2; left: 7vw; bottom: 11vh;
  max-width: 820px; color: var(--cream-faf5ef, #faf5ef);
}
.lm-hero__eyebrow,
.lm-intro__kicker,
.lm-feature__eyebrow,
.lm-modules__eyebrow,
.lm-card__meta {
  font-family: var(--sc); letter-spacing: 0.2em; text-transform: uppercase;
  color: var(--gold-bright); font-size: 0.9rem; margin: 0 0 0.75rem;
}
.lm-hero__title {
  font-family: var(--body); font-style: italic; font-weight: 400;
  font-size: clamp(3.2rem, 8vw, 7.2rem); line-height: 0.95; margin: 0;
  color: var(--cream-faf5ef, #faf5ef); /* v0.1.73: match prod hero title cream rgb(250,245,239), not inherited navy */
}
.lm-hero__subtitle {
  font-family: var(--body); font-size: clamp(1.25rem, 2.2vw, 1.8rem);
  margin: 1rem 0 0; max-width: 620px;
}
.lm-intro { padding: 5rem 1.5rem 4rem; }
.lm-intro__inner { max-width: 980px; margin: 0 auto; text-align: left; }
.lm-intro__heading {
  font-family: var(--body); font-style: italic; font-weight: 400;
  font-size: clamp(2.2rem, 4.8vw, 4.2rem); line-height: 1.02;
  margin: 0 0 1.4rem; color: var(--navy);
}
.lm-intro__copy { max-width: 760px; font-size: 1.18rem; line-height: 1.65; }
.lm-intro__copy p { margin: 0 0 1rem; }
.lm-intro__cta-row { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 2rem; }
.lm-btn,
.lm-card__purchase,
.lm-card__syllabus,
.lm-inline-link {
  font-family: var(--sc); letter-spacing: 0.16em; text-transform: uppercase;
  text-decoration: none; font-size: 0.88rem;
}
.lm-btn { display: inline-flex; padding: 0.9rem 1.35rem; border: 1px solid var(--navy); }

.lm-btn--primary {
  background: #17452a;
  color: var(--gold-bright);
  border-color: var(--gold-bright);
  transition: background 0.2s, color 0.2s;
}
.lm-btn--primary:hover { background: var(--gold-bright); color: #17452a; }
.lm-btn--ghost { color: var(--navy); }

.lm-feature { padding: 2.4rem 1.5rem 4rem; }
.lm-feature__inner {
  max-width: 1120px; margin: 0 auto; display: grid; grid-template-columns: 1.05fr 0.95fr;
  gap: clamp(2rem, 5vw, 4.5rem); align-items: center;
  background: #ede0c6;
  border-top: 3px solid var(--gold-bright);
  border-bottom: 3px solid var(--gold-bright);
  box-shadow: 0 6px 30px rgba(28, 47, 74, 0.10);
  padding: clamp(1.6rem, 3.5vw, 3rem);
}
.lm-feature__art { margin: 0; border: 1px solid rgba(196,163,90,0.35); background: var(--navy); padding: 0.5rem; }
.lm-feature__art img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.lm-feature__title {
  font-family: var(--body); font-style: italic; font-weight: 400;
  font-size: clamp(2.1rem, 4.2vw, 3.8rem); line-height: 1; margin: 0 0 0.8rem;
}
.lm-feature__tagline { font-family: var(--sc); color: #17452a; font-size: 1.35rem; margin: 0 0 1rem; }
.lm-feature__body p:not([class]) { font-size: 1.15rem; line-height: 1.65; margin: 0 0 1.3rem; }
.lm-inline-link { color: var(--navy); border-bottom: 1px solid var(--gold-bright); padding-bottom: 0.2rem; }
.lm-modules { padding: 5rem 1.5rem 6rem; background: var(--navy); color: var(--cream-faf5ef); }
.lm-modules__header { max-width: 1120px; margin: 0 auto 2.4rem; }
.lm-modules__heading {
  font-family: var(--body); font-style: italic; font-weight: 400;
  font-size: clamp(2.2rem, 4.6vw, 4rem); margin: 0; line-height: 1;
}
.lm-modules__grid { max-width: 1120px; margin: 0 auto; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.4rem; }
.lm-card { background: #233b5e; border: 1px solid rgba(216,184,112,0.22); display: flex; flex-direction: column; min-width: 0; }
.lm-card__figure { margin: 0; overflow: hidden; border-bottom: 1px solid rgba(216,184,112,0.18); }
.lm-card__figure img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; transition: transform 0.35s ease; }
.lm-card:hover .lm-card__figure img { transform: scale(1.035); }
.lm-card__body { padding: 1.5rem 1.35rem 1.6rem; display: flex; flex-direction: column; gap: 0.75rem; }
.lm-card__meta { font-size: 0.75rem; margin: 0; }
.lm-card__title { font-family: var(--body); font-style: italic; font-weight: 400; font-size: 1.7rem; line-height: 1.05; margin: 0; }
.lm-card__instructor { font-family: var(--sc); color: var(--gold-bright); letter-spacing: 0.08em; margin: 0; }
.lm-card__tagline { font-style: italic; font-size: 1.08rem; margin: 0; color: var(--cream-faf5ef); }
.lm-card__desc { line-height: 1.55; margin: 0; opacity: 0.92; }
.lm-card__details { border-top: 1px solid rgba(216,184,112,0.18); padding-top: 0.85rem; margin-top: 0.2rem; }
.lm-card__details summary { cursor: pointer; font-family: var(--sc); letter-spacing: 0.12em; color: var(--gold-bright); }
.lm-card__details ul { margin: 0.75rem 0 0 1.2rem; padding: 0; line-height: 1.45; }
.lm-card__details li { margin-bottom: 0.4rem; }
.lm-card__actions { display: flex; gap: 0.9rem; margin-top: auto; padding-top: 0.9rem; }
.lm-card__purchase,
.lm-card__syllabus { color: var(--cream-faf5ef); border-bottom: 1px solid var(--gold-bright); padding-bottom: 0.16rem; }

@media (max-width: 980px) {
  .lm-feature__inner { grid-template-columns: 1fr; }
  .lm-modules__grid { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .merch-hero, .lm-hero { min-height: 54vh; }
  .merch-hero__content, .lm-hero__content { left: 1.5rem; right: 1.5rem; bottom: 4rem; }
  .lm-intro, .lm-modules, .merch-coming-soon { padding-left: 1.25rem; padding-right: 1.25rem; }
}

/* Page: Tuition & Calendar (page-tuition-calendar.php) */
.page-tuition-calendar { background:var(--cream); color:var(--text-dark); }

/* Intro */
.tc-intro { padding: 4rem 1.5rem 2rem; background: var(--cream); }
.tc-intro__inner { max-width: 880px; margin: 0 auto; text-align: center; }
.tc-intro__eyebrow {
  font-family: var(--sc); font-size: 1.05rem; letter-spacing: 0.18em;
  color: var(--gold); text-transform: uppercase; margin: 0 0 0.8rem;
}
.tc-intro__heading {
  font-family: var(--sc); font-size: clamp(1.9rem, 3vw, 2.6rem);
  color: var(--navy); margin: 0 0 1.1rem; letter-spacing: 0.02em;
}
.tc-intro__rule {
  display: inline-block; width: 60px; height: 2px;
  background: var(--gold); margin: 0 0 1.4rem;
}
.tc-intro__lede {
  font-family: var(--body); font-size: 1.18rem; line-height: 1.65;
  color: var(--text-dark); margin: 0;
}

/* Stat blurbs row */
.tc-stats { padding: 2.5rem 1.5rem; background: var(--cream); }
.tc-stats__inner {
  max-width: 1100px; margin: 0 auto;
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem;
  border-top: 1px solid var(--border-ornate);
  border-bottom: 1px solid var(--border-ornate);
  padding: 2.4rem 0;
}
.tc-stat { text-align: center; padding: 0 0.6rem; }
.tc-stat__figure {
  font-family: var(--sc); font-size: clamp(2.4rem, 4vw, 3.4rem);
  color: var(--navy); margin: 0 0 0.2rem; line-height: 1; letter-spacing: 0.01em;
}
.tc-stat__unit {
  font-family: var(--sc); font-size: 0.95rem; letter-spacing: 0.18em;
  color: var(--gold); text-transform: uppercase; margin: 0 0 0.7rem;
}
.tc-stat__caption {
  font-family: var(--body); font-size: 1rem; line-height: 1.5;
  color: var(--text-dark); margin: 0;
}

/* Shared section header */
.tc-section-header { text-align: center; margin-bottom: 2.2rem; }
.tc-section-header__eyebrow {
  font-family: var(--sc); font-size: 1rem; letter-spacing: 0.18em;
  color: var(--gold); text-transform: uppercase; margin: 0 0 0.6rem;
}
.tc-section-header__heading {
  font-family: var(--sc); font-size: clamp(1.8rem, 2.6vw, 2.4rem);
  color: var(--navy); margin: 0 0 0.9rem;
}
.tc-section-header__rule {
  display: inline-block; width: 60px; height: 2px;
  background: var(--gold);
}

/* Rates table */
.tc-rates { padding: 4rem 1.5rem; background: #fbf7f0; }
.tc-rates__inner { max-width: 980px; margin: 0 auto; }
.tc-rates__table-wrap { overflow-x: auto; }
.tc-rates__table {
  width: 100%; border-collapse: collapse;
  font-family: var(--body); background: #fff;
  border: 1px solid var(--border-ornate);
  box-shadow: 0 1px 3px rgba(28,47,74,0.06);
}
.tc-rates__table thead {
  background: var(--navy); color: var(--cream);
}
.tc-rates__table th, .tc-rates__table td {
  padding: 0.95rem 1.1rem; text-align: left;
  border-bottom: 1px solid rgba(184,168,138,0.4);
  font-size: 1.02rem; line-height: 1.45;
}
.tc-rates__table thead th {
  font-family: var(--sc); letter-spacing: 0.14em; font-size: 0.95rem;
  text-transform: uppercase; font-weight: 500;
}
.tc-rates__table tbody th {
  font-weight: 600; color: var(--navy); width: 30%;
}
.tc-rates__amount {
  font-family: var(--sc); color: var(--burgundy); font-size: 1.08rem;
  white-space: nowrap; width: 22%;
}
.tc-rates__note { color: #4a5a72; font-size: 0.97rem; }
.tc-rates__footnote {
  margin: 1.6rem auto 0; max-width: 780px; text-align: center;
  font-family: var(--body); font-size: 0.95rem; color: #5a6680;
  font-style: italic;
}

.tc-degrees { padding: 4rem 1.5rem; background: #17452a; }
.tc-degrees__inner { max-width: 1080px; margin: 0 auto; }
.tc-degrees .tc-section-header__eyebrow { color: var(--gold-bright); }
.tc-degrees .tc-section-header__heading { color: var(--gold-bright); }
.tc-degrees .tc-section-header__rule { background: var(--gold-bright); }
.tc-degrees__lede {
  text-align: center; font-family: var(--body); color: #fff;
  font-size: 1.05rem; margin: 0 0 2rem; font-style: italic;
}
.tc-degrees__grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem;
}
.tc-degree-card {
  background: #fff; padding: 1.8rem 1.4rem;
  border: 1px solid var(--border-ornate);
  border-top: 4px solid var(--gold-bright);
  text-align: center; box-shadow: 0 2px 4px rgba(0,0,0,0.18);
}
.tc-degree-card__name {
  font-family: var(--sc); font-size: 1.5rem; color: var(--navy);
  margin: 0 0 0.4rem; letter-spacing: 0.04em;
}
.tc-degree-card__credits {
  font-family: var(--sc); font-size: 0.85rem; letter-spacing: 0.16em;
  color: var(--gold); text-transform: uppercase; margin: 0 0 0.9rem;
}
.tc-degree-card__cost {
  font-family: var(--sc); font-size: 1.6rem; color: var(--burgundy);
  margin: 0;
}

.tc-catalog { padding: 4rem 1.5rem; background: #fbf7f0; }
.tc-catalog__inner { max-width: 980px; margin: 0 auto; text-align: center; }
.tc-catalog__lede {
  font-family: var(--body); font-size: 1.05rem; line-height: 1.55;
  color: var(--text-dark); max-width: 720px; margin: 0 auto 1.6rem;
}
.tc-catalog__browse { margin: 1.4rem 0 0; }

.tc-catalog__past {
  margin: 2.6rem auto 0;
  max-width: 640px;
  text-align: left;
  background: #fff;
  border: 1px solid var(--border-ornate);
  border-left: 3px solid var(--burgundy);
  padding: 1.4rem 1.6rem;
}
.tc-catalog__past-heading {
  font-family: var(--sc); font-size: 1.05rem; letter-spacing: 0.14em;
  color: var(--navy); text-transform: uppercase;
  margin: 0 0 0.9rem; text-align: center;
}
.tc-catalog__past-list {
  list-style: none; margin: 0; padding: 0;
  max-height: 240px; overflow-y: auto;
}
.tc-catalog__past-list li { margin: 0; padding: 0; }
.tc-catalog__past-link {
  display: flex; justify-content: space-between; align-items: baseline;
  gap: 1rem;
  padding: 0.7rem 0.4rem;
  border-bottom: 1px dotted rgba(184,168,138,0.5);
  text-decoration: none;
  transition: background 0.15s, color 0.15s;
}
.tc-catalog__past-list li:last-child .tc-catalog__past-link { border-bottom: none; }
.tc-catalog__past-link:hover { background: #fbf7f0; }
.tc-catalog__past-year {
  font-family: var(--sc); font-size: 1rem; color: var(--burgundy);
  letter-spacing: 0.04em;
}
.tc-catalog__past-meta {
  font-family: var(--body); font-size: 0.85rem; color: var(--text-dark);
  opacity: 0.7;
}

/* Calendar */
.tc-calendar { padding: 4rem 1.5rem; background: #fbf7f0; }
.tc-calendar__inner { max-width: 1080px; margin: 0 auto; }
.tc-calendar__terms {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem;
  margin-bottom: 3rem;
}
.tc-term-card {
  background: #fff; padding: 1.4rem 1rem; text-align: center;
  border: 1px solid var(--border-ornate);
  border-left: 3px solid var(--burgundy);
}
.tc-term-card__sub {
  font-family: var(--sc); font-size: 0.8rem; letter-spacing: 0.18em;
  color: var(--gold); text-transform: uppercase; margin: 0 0 0.3rem;
}
.tc-term-card__name {
  font-family: var(--sc); font-size: 1.25rem; color: var(--navy);
  margin: 0 0 0.5rem; letter-spacing: 0.03em;
}
.tc-term-card__dates {
  font-family: var(--body); font-size: 0.96rem; color: var(--text-dark);
  margin: 0;
}

.tc-calendar__dates {
  background: #17452a;
  padding: 2.4rem 1.8rem;
  margin-top: 1rem;
}
.tc-calendar__dates-heading {
  font-family: var(--sc); font-size: 1.4rem; letter-spacing: 0.08em;
  color: var(--gold-bright); text-align: center; margin: 0 0 1.4rem;
  text-transform: uppercase;
}
.tc-calendar__dates-tabs {
  display: flex; flex-wrap: wrap; justify-content: center;
  gap: 0.4rem; margin-bottom: 1.4rem;
  border-bottom: 1px solid rgba(216,184,112,0.45);
}
.tc-tab {
  background: transparent; border: none; cursor: pointer;
  padding: 0.7rem 1.2rem; font-family: var(--sc);
  font-size: 0.95rem; letter-spacing: 0.12em; text-transform: uppercase;
  color: #fff; transition: color 0.18s, border-color 0.18s;
  border-bottom: 2px solid transparent; margin-bottom: -1px;
}
.tc-tab:hover { color: var(--gold-bright); }
.tc-tab.is-active { color: var(--gold-bright); border-bottom-color: var(--gold-bright); }
.tc-tabpanel {
  background: var(--cream-faf5ef); padding: 1.4rem 1.8rem;
  border: 1px solid rgba(216,184,112,0.45);
}
.tc-tabpanel[hidden] { display: none; }
.tc-date-list { list-style: none; margin: 0; padding: 0; }
.tc-date-row {
  display: grid; grid-template-columns: 180px 1fr; gap: 1rem;
  padding: 0.55rem 0; border-bottom: 1px dotted rgba(184,168,138,0.5);
  font-family: var(--body); font-size: 1.02rem; line-height: 1.45;
}
.tc-date-row:last-child { border-bottom: none; }
.tc-date-row__date {
  font-family: var(--sc); color: var(--burgundy);
  letter-spacing: 0.04em; font-size: 1rem;
}
.tc-date-row__desc { color: var(--text-dark); }

/* CTA */
.tc-cta { padding: 4rem 1.5rem; background: var(--navy); color: var(--cream); }
.tc-cta__inner { max-width: 760px; margin: 0 auto; text-align: center; }
.tc-cta__heading {
  font-family: var(--sc); font-size: clamp(1.7rem, 2.6vw, 2.2rem);
  color: var(--cream); margin: 0 0 0.9rem; letter-spacing: 0.04em;
}
.tc-cta__lede {
  font-family: var(--body); color: rgba(245,240,232,0.85);
  font-size: 1.08rem; margin: 0 0 1.8rem;
}
.tc-cta__buttons {
  display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap;
}
.tc-cta__btn {
  display: inline-block; padding: 0.85rem 1.6rem;
  font-family: var(--sc); font-size: 0.95rem; letter-spacing: 0.16em;
  text-transform: uppercase; transition: background 0.18s, color 0.18s;
}
.tc-cta__btn--primary {
  background: var(--gold); color: var(--navy);
}
.tc-cta__btn--primary:hover { background: var(--gold-bright); }
.tc-cta__btn--ghost {
  background: transparent; color: var(--navy);
  border: 1.5px solid var(--navy);
}
.tc-cta__btn--ghost:hover { background: var(--navy); color: var(--cream); }

.tc-cta .tc-cta__btn--ghost,
.section-navy .tc-cta__btn--ghost,
.dh-prog-hero .tc-cta__btn--ghost,
.dh-apply-cta .tc-cta__btn--ghost {
  color: var(--cream);
  border-color: var(--cream);
}
.tc-cta .tc-cta__btn--ghost:hover,
.section-navy .tc-cta__btn--ghost:hover,
.dh-prog-hero .tc-cta__btn--ghost:hover,
.dh-apply-cta .tc-cta__btn--ghost:hover {
  background: var(--cream);
  color: var(--navy);
}

@media (max-width: 880px) {
  .tc-stats__inner { grid-template-columns: 1fr; gap: 1.6rem; }
  .tc-degrees__grid { grid-template-columns: 1fr; }
  .tc-calendar__terms { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
  .tc-calendar__terms { grid-template-columns: 1fr; }
  .tc-date-row { grid-template-columns: 1fr; gap: 0.2rem; }
  .tc-date-row__date { font-weight: 600; }
  .tc-tabpanel { padding: 1rem 1rem; }
  .tc-rates__table th, .tc-rates__table td { padding: 0.7rem 0.6rem; font-size: 0.92rem; }
}

/* Page: Davenant Hall Faculty (page-davenant-hall-faculty.php)
 Style reuses ls-* (leadership/staff) component vocabulary where possible. */
.page-davenant-hall-faculty { background: var(--cream); }

.dhf-intro { padding: 4rem 1.5rem 2rem; }
.dhf-intro__inner { max-width: 860px; margin: 0 auto; text-align: center; }
.dhf-intro__eyebrow {
  font-family: var(--sc); font-size: 1.05rem; letter-spacing: 0.18em;
  color: var(--gold); text-transform: uppercase; margin: 0 0 0.8rem;
}
.dhf-intro__heading {
  font-family: var(--sc); font-size: clamp(1.9rem, 3vw, 2.6rem);
  color: var(--navy); margin: 0 0 1.1rem;
}
.dhf-intro__rule {
  display: inline-block; width: 60px; height: 2px;
  background: var(--gold); margin: 0 0 1.4rem;
}
.dhf-intro__lede {
  font-family: var(--body); font-size: 1.18rem; line-height: 1.65;
}

.dhf-section { padding: 3rem 1.5rem; }
.dhf-section__inner { max-width: 1180px; margin: 0 auto; }
.dhf-section-header { margin-bottom: 2.2rem; }

.dhf-grid {
  display: grid; gap: 1.6rem;
}
.dhf-grid--large  { grid-template-columns: repeat(2, 1fr); }
.dhf-grid--medium { grid-template-columns: repeat(3, 1fr); }
.dhf-grid--small  { grid-template-columns: repeat(4, 1fr); }

.dhf-card {
  background: #fff; border: 1px solid var(--border-ornate);
  text-align: left; padding: 0; cursor: pointer;
  transition: transform 0.18s, box-shadow 0.18s, border-color 0.18s;
  display: flex; flex-direction: column; font-family: inherit;
}
.dhf-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 14px rgba(28,47,74,0.12);
  border-color: var(--gold);
}
.dhf-card__figure {
  margin: 0; aspect-ratio: 1/1; overflow: hidden; background: var(--cream);
  position: relative;
}
.dhf-card__img {
  width: 100%; height: 100%; object-fit: cover; display: block;
}
.dhf-card__img--placeholder {
  display: flex; align-items: center; justify-content: center;
  width: 100%; height: 100%; font-size: 3rem; color: var(--border-ornate);
}
.dhf-card__body { padding: 1.2rem 1.2rem 1.4rem; flex: 1; }
.dhf-card__name {
  font-family: var(--sc); font-size: 1.2rem; color: var(--navy);
  margin: 0 0 0.3rem; letter-spacing: 0.02em;
}
.dhf-card__role {
  font-family: var(--sc); font-size: 0.78rem; letter-spacing: 0.16em;
  color: var(--gold); text-transform: uppercase; margin: 0 0 0.4rem;
}
.dhf-card__cred {
  font-family: var(--body); font-style: italic; font-size: 0.92rem;
  color: #5a6680; margin: 0 0 0.7rem;
}
.dhf-card__rule {
  display: block; width: 36px; height: 1px;
  background: var(--gold); margin: 0.5rem 0 0.7rem;
}
.dhf-card__readmore {
  font-family: var(--sc); font-size: 0.85rem; letter-spacing: 0.12em;
  color: var(--burgundy); text-transform: uppercase;
}

.dhf-card--large .dhf-card__name { font-size: 1.5rem; }
.dhf-card--medium .dhf-card__name { font-size: 1.2rem; }
.dhf-card--small .dhf-card__name { font-size: 1.05rem; }

.dhf-card--large .dhf-card__figure { aspect-ratio: 4/3; }

/* Modal — reuse ls-modal styles shared class names; override sizing */
.dhf-modal.ls-modal {
  position: fixed; inset: 0; z-index: 9999;
  display: none; align-items: center; justify-content: center;
}
.dhf-modal.ls-modal.is-open { display: flex; }
.dhf-modal.ls-modal[hidden] { display: none; }
.dhf-modal__backdrop {
  position: absolute; inset: 0;
  
  background: rgba(23,69,42,0.7);
}
.dhf-modal__panel {
  position: relative; background: #fff;
  max-width: 760px; width: calc(100% - 2rem);
  max-height: 86vh; overflow-y: auto;
  border: 1px solid var(--border-ornate);
  box-shadow: 0 14px 40px rgba(0,0,0,0.4);
  z-index: 1;
}
.dhf-modal__close {
  position: absolute; top: 0.6rem; right: 0.8rem; z-index: 2;
  background: transparent; border: none; cursor: pointer;
  font-size: 2rem; line-height: 1; color: var(--navy);
}
.dhf-modal__inner {
  display: grid; grid-template-columns: 220px 1fr; gap: 1.5rem;
  padding: 1.8rem 1.6rem;
}
.dhf-modal__figure { margin: 0; }
.dhf-modal__img {
  width: 100%; aspect-ratio: 1/1; object-fit: cover;
  border: 1px solid var(--border-ornate);
}
.dhf-modal__name {
  font-family: var(--sc); font-size: 1.8rem; color: var(--navy);
  margin: 0 0 0.3rem; letter-spacing: 0.02em;
}
.dhf-modal__role {
  font-family: var(--sc); font-size: 0.85rem; letter-spacing: 0.16em;
  color: var(--gold); text-transform: uppercase; margin: 0 0 0.3rem;
}
.dhf-modal__cred {
  font-family: var(--body); font-style: italic; font-size: 1rem;
  color: #5a6680; margin: 0 0 0.6rem;
}
.dhf-modal__rule {
  display: block; width: 50px; height: 1px;
  background: var(--gold); margin: 0.6rem 0 1rem;
}
.dhf-modal__bio { font-family: var(--body); font-size: 1.05rem; line-height: 1.65; }
.dhf-modal__bio p { margin: 0 0 1rem; }
.dhf-modal__bio p:last-child { margin-bottom: 0; }
body.dhf-modal-open { overflow: hidden; }

@media (max-width: 880px) {
  .dhf-grid--large  { grid-template-columns: 1fr; }
  .dhf-grid--medium { grid-template-columns: repeat(2, 1fr); }
  .dhf-grid--small  { grid-template-columns: repeat(2, 1fr); }
  .dhf-modal__inner { grid-template-columns: 1fr; }
  .dhf-modal__img { max-width: 220px; margin: 0 auto; }
}
@media (max-width: 480px) {
  .dhf-grid--medium { grid-template-columns: 1fr; }
  .dhf-grid--small  { grid-template-columns: 1fr; }
}

/* Davenant Distinctives — embedded block on /davenant-hall/
 (template-parts/davenant-hall-distinctives.php)

 Replicates Haverford:
 - image LEFT extending under a white panel on the right
 - heading + vertical 3-name picker (prev/active/next)
 - up/down arrow controls
 - description card below picker (NO link)
 - footprint capped at ~480px desktop to match Haverford
 Architected for 5–6 distinctives data/dh-distinctives.json. */
.dh-distinctives {
  background: var(--cream);
  padding: 3.2rem 1.5rem;
}
.dh-distinctives__inner {
  position: relative;
  max-width: 1240px;
  margin: 0 auto;
  min-height: 336px;         
}

.dh-distinctives__media {
  position: absolute;
  top: 0; left: 0; right: 38%;
  height: 336px;             
  overflow: hidden;
  background: var(--navy);
  border: 1px solid var(--border-ornate);
  box-shadow: 0 8px 22px rgba(28,47,74,0.18);
}
.dh-distinctives__bg {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
  opacity: 0; transition: opacity 0.42s ease;
}
.dh-distinctives__bg.is-active { opacity: 1; }

.dh-distinctives__panel {
  position: absolute;
  top: 38px;
  right: 0;
  width: 52%;                /* extends LEFT over the image, creating overlap */
  max-width: 620px;
  background: #17452a;       /* deep Davenant Hall green (theme token, used across.dh-*) */
  border: 1px solid #17452a;
  box-shadow: 0 10px 28px rgba(28,47,74,0.18);
  padding: 1.8rem 2rem 1.6rem;
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
}

/* Header row inside panel: heading on left, picker + arrows on right */
.dh-distinctives__header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1.2rem;
  align-items: center;
  padding-bottom: 0.9rem;
  border-bottom: 1px solid rgba(216,184,112,0.45);
}
.dh-distinctives__heading {
  font-family: var(--sc);
  font-size: clamp(1.5rem, 2.1vw, 1.95rem);
  color: var(--gold-bright);
  margin: 0;
  line-height: 1.15;
  letter-spacing: 0.005em;
}

/* Picker: vertical 3-item slot (prev/active/next) + arrows column */
.dh-distinctives__picker {
  display: flex;
  align-items: center;
  gap: 0.9rem;
}
.dh-distinctives__picker-list {
  list-style: none; padding: 0; margin: 0;
  position: relative;
  width: 168px;
  height: 84px;              /* 3 lines @ ~28px each */
  overflow: hidden;
}
.dh-distinctives__picker-item {
  position: absolute;
  top: 50%;
  left: 0; right: 0;
  text-align: right;
  font-family: var(--sc);
  font-size: 0.92rem;
  letter-spacing: 0.18em;
  color: rgba(250,245,239,0.55);   /* cream @ 55% on green */
  cursor: pointer;
  transform: translateY(calc(-50% + (var(--dh-d-offset, 0)) * 28px));
  transition: transform 0.32s ease, color 0.22s ease, opacity 0.22s ease;
  opacity: 1;
  user-select: none;
  white-space: nowrap;
}
.dh-distinctives__picker-item.is-active {
  color: var(--gold-bright);
  font-weight: 600;
}
.dh-distinctives__picker-item.is-hidden { opacity: 0; pointer-events: none; }
.dh-distinctives__picker-item:hover:not(.is-active) { color: var(--cream-faf5ef); }

.dh-distinctives__arrows {
  display: flex; flex-direction: column; gap: 0.35rem;
}
.dh-distinctives__arrow {
  background: transparent;
  color: var(--gold-bright);
  border: none;
  width: 28px; height: 22px;
  display: inline-flex; align-items: center; justify-content: center;
  cursor: pointer;
  padding: 0;
  transition: color 0.18s, transform 0.12s;
}
.dh-distinctives__arrow:hover { color: var(--cream-faf5ef); transform: scale(1.1); }

/* Detail card (slides) */
.dh-distinctives__detail {
  position: relative;
  flex: 1;
  min-height: 0;
}
.dh-distinctives__slide {
  position: absolute; inset: 0;
  opacity: 0; pointer-events: none;
  transition: opacity 0.32s ease;
}
.dh-distinctives__slide.is-active {
  opacity: 1; pointer-events: auto; position: relative;
}
.dh-distinctives__slide-title {
  font-family: var(--sc);
  font-size: clamp(1.05rem, 1.5vw, 1.25rem);
  color: var(--gold-bright);       /* gold header on green card */
  margin: 0 0 0.7rem;
  line-height: 1.22;
}
.dh-distinctives__slide-body {
  font-family: var(--body);
  font-size: 0.98rem;
  line-height: 1.55;
  color: var(--cream-faf5ef);      /* cream body text on green card */
  margin: 0;
  /* enforce 5-line max visually with clamp; CSS guardrail in addition to
 editorial discipline */
  display: -webkit-box;
  -webkit-line-clamp: 5;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Tablet / small-desktop: panel narrows */
@media (max-width: 1100px) {
  .dh-distinctives__inner { min-height: 350px; }            
  .dh-distinctives__media { top: 0; left: 0; right: 34%; height: 350px; bottom: auto; }
  .dh-distinctives__panel { width: 58%; padding: 1.6rem 1.6rem 1.4rem; }
}

@media (max-width: 768px) {
  .dh-distinctives { padding: 2rem 1rem; }
  .dh-distinctives__inner { min-height: 0; height: auto; }
  .dh-distinctives__media {
    position: relative;
    inset: auto;
    top: auto; left: auto; right: auto; bottom: auto;
    height: auto;
    aspect-ratio: 16 / 6.3;   
    width: 100%;
    box-shadow: none;
  }
  .dh-distinctives__panel {
    position: relative;
    top: -28px;
    right: auto;
    width: calc(100% - 1.4rem);
    max-width: 100%;
    margin: 0 0.7rem 0 0.7rem;
    padding: 1.4rem 1.2rem 1.3rem;
  }
  .dh-distinctives__header {
    grid-template-columns: 1fr;
    gap: 0.9rem;
  }
  .dh-distinctives__heading {
    text-align: center;
    font-size: 1.45rem;
  }
  .dh-distinctives__picker {
    justify-content: center;
    gap: 0.7rem;
  }
  .dh-distinctives__picker-list {
    width: auto;
    min-width: 160px;
    height: 28px;
    flex: 0 1 auto;
  }
  .dh-distinctives__picker-item {
    text-align: center;
    transform: translateY(calc(-50% + (var(--dh-d-offset, 0)) * 28px));
  }
  .dh-distinctives__arrows {
    flex-direction: row;
    gap: 0.4rem;
  }
  .dh-distinctives__arrow { width: 32px; height: 28px; }
  .dh-distinctives__arrow--prev svg { transform: rotate(-90deg); }
  .dh-distinctives__arrow--next svg { transform: rotate(-90deg); }
}
@media (max-width: 420px) {
  .dh-distinctives__heading { font-size: 1.3rem; }
  .dh-distinctives__slide-body { font-size: 0.94rem; }
}

/* Page: Course Catalogue (page-course-catalogue.php)
 Episcopal Academy panel — left vertical nav, right content panel. */
.page-course-catalogue { background: var(--cream); }

.dcc-intro { padding: 4rem 1.5rem 1.5rem; }
.dcc-intro__inner { max-width: 880px; margin: 0 auto; text-align: center; }
.dcc-intro__eyebrow {
  font-family: var(--sc); font-size: 1.05rem; letter-spacing: 0.18em;
  color: var(--gold); text-transform: uppercase; margin: 0 0 0.8rem;
}
.dcc-intro__heading {
  font-family: var(--sc); font-size: clamp(1.9rem, 3vw, 2.6rem);
  color: var(--navy); margin: 0 0 1.1rem;
}
.dcc-intro__rule {
  display: inline-block; width: 60px; height: 2px;
  background: var(--gold); margin: 0 0 1.4rem;
}
.dcc-intro__lede {
  font-family: var(--body); font-size: 1.18rem; line-height: 1.65;
}

.cc-pdf-cta-wrap {
  margin: 1.6rem 0 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.55rem;
}
.cc-pdf-cta {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  font-family: 'Cormorant SC', serif;
  font-size: 0.95rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  padding: 0.85rem 1.7rem;
  border: 1px solid var(--gold-bright);
  background: var(--gold-bright);
  color: #17452a;
  text-decoration: none;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
.cc-pdf-cta:hover,
.cc-pdf-cta:focus-visible {
  background: transparent;
  color: var(--gold-bright);
}
.cc-pdf-cta__icon {
  font-size: 1.1em;
  line-height: 1;
  transform: translateY(1px);
}
.cc-pdf-cta__hint {
  font-family: var(--body);
  font-size: 0.85rem;
  color: var(--navy);
  opacity: 0.7;
  font-style: italic;
}

.dcc-stage { padding: 2.4rem 1.5rem 4rem; }
.dcc-stage__inner {
  max-width: 1320px; margin: 0 auto;
  
  display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 0;
  background: #fbf7f0;
  border: 1px solid var(--border-ornate);
  box-shadow: 0 6px 20px rgba(28,47,74,0.12);
  min-height: 560px;
  overflow: hidden; 
}

.dcc-stage__nav {
  background: #17452a; /* Davenant Hall green */
  padding: 1.4rem 0;
  border-right: 1px solid var(--gold-bright);
}
.dcc-nav-list { list-style: none; margin: 0; padding: 0; }
.dcc-nav-item {
  background: transparent; border: none;
  width: 100%; text-align: left; cursor: pointer;
  display: flex; align-items: baseline; justify-content: space-between;
  padding: 0.95rem 1.4rem;
  font-family: var(--sc); font-size: 1.05rem; letter-spacing: 0.05em;
  color: var(--cream-faf5ef);
  border-left: 3px solid transparent;
  transition: color 0.18s, background 0.18s, border-color 0.18s;
}
.dcc-nav-item:hover,
.dcc-nav-item:focus-visible {
  color: var(--gold-bright); background: rgba(216,184,112,0.10);
}
.dcc-nav-item.is-active {
  color: var(--gold-bright);
  border-left-color: var(--gold-bright);
  background: rgba(216,184,112,0.14);
}
.dcc-nav-item__count {
  font-family: var(--sans); font-size: 0.78rem; letter-spacing: 0.05em;
  color: var(--cream-faf5ef);
  background: rgba(250,245,239,0.12);
  padding: 0.15rem 0.5rem; border-radius: 999px;
  transition: color 0.18s, background 0.18s;
}
.dcc-nav-item:hover .dcc-nav-item__count,
.dcc-nav-item:focus-visible .dcc-nav-item__count {
  color: #17452a; background: var(--gold-bright);
}
.dcc-nav-item.is-active .dcc-nav-item__count {
  color: #17452a; background: var(--gold-bright);
}

/* Right panel */
.dcc-stage__panel-wrap {
  position: relative; min-height: 0; min-width: 0;
  
}
.dcc-panel { display: none; padding: 2rem 2.2rem; min-width: 0; }
.dcc-panel.is-active { display: flex; flex-direction: column; }

.dcc-panel__header {
  margin-bottom: 1.6rem; padding-bottom: 1rem;
  border-bottom: 1px solid rgba(196,163,90,0.4);
}
.dcc-panel__season {
  font-family: var(--sc); font-size: 0.85rem; letter-spacing: 0.2em;
  color: var(--gold); text-transform: uppercase; margin: 0 0 0.35rem;
}
.dcc-panel__name {
  font-family: var(--sc); font-size: clamp(1.6rem, 2.4vw, 2.2rem);
  color: var(--navy); margin: 0 0 0.4rem;
}
.dcc-panel__dates {
  font-family: var(--body); font-size: 1rem; color: var(--burgundy);
  margin: 0 0 0.7rem;
}
.dcc-panel__lede {
  font-family: var(--body); font-size: 1.02rem; line-height: 1.55;
  color: var(--text-dark); margin: 0;
  font-style: italic;
}

.dcc-panel__empty {
  background: #fff; padding: 1.6rem; border: 1px dashed var(--border-ornate);
  text-align: center; color: #5a6680; font-family: var(--body);
}
.dcc-panel__empty a {
  color: var(--burgundy); text-decoration: underline;
}

.dcc-panel__carousel {
  position: relative; flex: 1; min-height: 0; min-width: 0;
}
/* Right-edge fade affordance — universal visible scroll cue.
 pointer-events: none so it never blocks scrollbar drag or card clicks. */
.dcc-panel__carousel::after {
  content: ""; position: absolute;
  top: 0; right: 0; bottom: 18px; /* sit above the scrollbar gutter */
  width: 72px; pointer-events: none;
  background: linear-gradient(to right, rgba(251,247,240,0) 0%,
                                        rgba(251,247,240,0.85) 60%,
                                        #fbf7f0 100%);
  z-index: 2;
}
.dcc-course-list {
  list-style: none; margin: 0; padding: 0;
  display: flex; gap: 1rem;
  /* `scroll` (not `auto`) so the scrollbar paints persistently on platforms
 that distinguish — gives users a static visible 
 marker rather than overlay auto-hide. */
  overflow-x: scroll; overflow-y: hidden;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  padding-bottom: 0.4rem;
  scrollbar-gutter: stable;
  /* Firefox: thin gold thumb on navy-tinted track (brand palette). */
  scrollbar-width: thin;
  scrollbar-color: var(--gold-bright) rgba(28,47,74,0.12);
}
/* WebKit/Blink: visible brand scrollbar. Gold thumb on a cream-on-navy track
 so users notice it instantly against the cream panel. */
.dcc-course-list::-webkit-scrollbar {
  height: 12px;
}
.dcc-course-list::-webkit-scrollbar-track {
  background: rgba(28,47,74,0.10);
  border-radius: 6px;
  margin: 0 4px;
}
.dcc-course-list::-webkit-scrollbar-thumb {
  background: var(--gold-bright);
  border-radius: 6px;
  border: 2px solid #fbf7f0;
  box-shadow: inset 0 0 0 1px rgba(28,47,74,0.18);
}
.dcc-course-list::-webkit-scrollbar-thumb:hover {
  background: var(--gold);
}

.dcc-course {
  flex: 0 0 320px;
  background: #fff; border: 1px solid var(--border-ornate);
  border-top: 3px solid var(--burgundy);
  padding: 1.2rem 1.2rem 1.4rem;
  scroll-snap-align: start;
  display: flex; flex-direction: column;
}
.dcc-course__meta {
  display: flex; justify-content: space-between; align-items: baseline;
  margin-bottom: 0.6rem;
}
.dcc-course__code {
  font-family: var(--sans); font-size: 0.75rem; letter-spacing: 0.12em;
  color: var(--burgundy); text-transform: uppercase; font-weight: 600;
}
.dcc-course__dept {
  font-family: var(--sc); font-size: 0.75rem; letter-spacing: 0.14em;
  color: var(--gold); text-transform: uppercase;
}
.dcc-course__title {
  font-family: var(--sc); font-size: 1.18rem; color: var(--navy);
  margin: 0 0 0.5rem; line-height: 1.25;
}
.dcc-course__faculty {
  font-family: var(--body); font-style: italic; font-size: 0.95rem;
  color: #5a6680; margin: 0 0 0.7rem;
}
.dcc-course__desc {
  font-family: var(--body); font-size: 0.96rem; line-height: 1.5;
  color: var(--text-dark); margin: 0;
  /* clamp at 8 lines so the cards stay uniform */
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 8;
  overflow: hidden;
}

/* Carousel arrows — only shown when overflow exists */
.dcc-carousel-arrow {
  position: absolute; top: 50%; transform: translateY(-50%);
  background: var(--navy); color: var(--gold);
  width: 42px; height: 42px;
  border: 1px solid var(--gold); border-radius: 50%;
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: background 0.18s, color 0.18s;
  z-index: 5;
  box-shadow: 0 2px 6px rgba(0,0,0,0.18);
}
.dcc-carousel-arrow:hover { background: var(--gold); color: var(--navy); }
.dcc-carousel-arrow--prev { left: -18px; }
.dcc-carousel-arrow--next { right: -18px; }
.dcc-carousel-arrow[hidden] { display: none !important; }

/* Outro */
.dcc-outro { padding: 3rem 1.5rem; background: var(--cream); text-align: center; }
.dcc-outro__inner { max-width: 720px; margin: 0 auto; }
.dcc-outro__lede {
  font-family: var(--body); font-size: 1.05rem; line-height: 1.6;
  color: var(--text-dark); margin: 0 0 1.2rem; font-style: italic;
}
.dcc-outro__cta {
  display: inline-block; padding: 0.75rem 1.4rem;
  font-family: var(--sc); font-size: 0.92rem; letter-spacing: 0.16em;
  text-transform: uppercase;
  background: transparent; color: var(--navy);
  border: 1px solid var(--gold);
  transition: background 0.18s, color 0.18s;
}
.dcc-outro__cta:hover { background: var(--gold); color: var(--navy); }

@media (max-width: 980px) {
  
  .dcc-stage__inner { grid-template-columns: minmax(0, 1fr); }
  .dcc-stage__nav {
    border-right: none; border-bottom: 1px solid var(--gold-bright);
    padding: 0.5rem 0;
  }
  .dcc-nav-list {
    display: flex; overflow-x: auto;
    scrollbar-width: none;
  }
  .dcc-nav-list::-webkit-scrollbar { display: none; }
  .dcc-nav-item {
    border-left: none; border-bottom: 3px solid transparent;
    flex: 0 0 auto; white-space: nowrap;
    padding: 0.7rem 1.1rem;
  }
  .dcc-nav-item.is-active {
    border-left: none; border-bottom-color: var(--gold-bright);
  }
  .dcc-panel { padding: 1.4rem 1.2rem; }
  .dcc-course { flex: 0 0 280px; }
  .dcc-carousel-arrow--prev { left: 4px; }
  .dcc-carousel-arrow--next { right: 4px; }
}
@media (max-width: 480px) {
  .dcc-course { flex: 0 0 84vw; }
}

.page-davenant-hall-apply { background: var(--cream); }

.dh-apply__intro { padding: 3.5rem 1.5rem 1.5rem; }
.dh-apply__intro-inner {
  max-width: 820px; margin: 0 auto; text-align: center;
}
.dh-apply__intro-heading {
  font-family: var(--sc); font-size: clamp(1.6rem, 2.6vw, 2.1rem);
  color: var(--navy); margin: 0 0 1.2rem; letter-spacing: 0.02em;
}
.dh-apply__intro-body {
  font-family: var(--body); font-size: 1.08rem; line-height: 1.7;
  color: var(--text-dark); margin: 0;
}

.dh-apply__programs { padding: 2.5rem 1.5rem 4rem; }
.dh-apply__green-wrap { background: #17452a; }
.dh-apply__programs-inner {
  max-width: 980px; margin: 0 auto; text-align: center;
}

.dh-apply__programs-eyebrow {
  font-family: var(--sc); font-size: 1rem; letter-spacing: 0.22em;
  color: var(--gold-bright); text-transform: uppercase; margin: 0 0 0.7rem;
}
.dh-apply__programs-rule {
  display: inline-block; width: 64px; height: 2px;
  background: var(--gold-bright); margin: 0 0 2.2rem;
}

.dh-apply__populi-list {
  list-style: none; padding: 0; margin: 0;
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.6rem;
}

.dh-apply__populi-item {
  background: var(--cream-faf5ef);
  border: 1px solid var(--border-ornate);
  padding: 1.6rem 1.4rem 1.5rem;
  text-align: left;
  display: flex; flex-direction: column; gap: 0.7rem;
  transition: border-color 0.18s, box-shadow 0.18s;
}
.dh-apply__populi-item:hover {
  border-color: var(--gold);
  box-shadow: 0 4px 12px rgba(28,47,74,0.08);
}
.dh-apply__populi-meta {
  display: flex; justify-content: space-between; align-items: baseline;
  gap: 1rem; flex-wrap: wrap;
}
.dh-apply__populi-program {
  font-family: var(--sc); font-size: 1.05rem; color: var(--navy);
  letter-spacing: 0.04em;
}
.dh-apply__populi-fee {
  font-family: var(--body); font-style: italic; font-size: 0.92rem;
  color: var(--burgundy);
}
.dh-apply__populi-link {
  display: inline-block; align-self: flex-start;
  font-family: var(--sc); font-size: 0.92rem; letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--navy); text-decoration: none;
  padding: 0.7rem 1.3rem;
  border: 1px solid var(--gold);
  background: transparent;
  transition: background 0.18s, color 0.18s;
}
.dh-apply__populi-link:hover {
  background: var(--gold); color: var(--navy);
}
.dh-apply__populi-note {
  font-family: var(--body); font-size: 0.92rem; line-height: 1.5;
  color: #5a6680; margin: 0;
}

.dh-apply__next {
  background: var(--cream-soft, #f4ebd9);
  padding: 2.5rem 1.5rem;
  border-top: 1px solid var(--border-ornate);
  border-bottom: 1px solid var(--border-ornate);
}
.dh-apply__next-inner {
  max-width: 720px; margin: 0 auto; text-align: center;
}
.dh-apply__next-heading {
  font-family: var(--sc); font-size: 1.4rem; color: var(--navy);
  margin: 0 0 0.9rem; letter-spacing: 0.04em;
}
.dh-apply__next-body {
  font-family: var(--body); font-size: 1.05rem; line-height: 1.65;
  color: var(--text-dark); margin: 0;
}

@media (max-width: 760px) {
  .dh-apply__populi-list { grid-template-columns: 1fr; }
  .dh-apply__intro { padding: 2.4rem 1.2rem 1rem; }
  .dh-apply__programs { padding: 2rem 1.2rem 3rem; }
  .dh-apply__intro-body { font-size: 1rem; }
}

/* Migrated narrative content from davenanthall.com/about/. Lives at
 /davenant-hall/about/ on test579dev. Styled to match the DH subpage family
 aesthetic (navy hero band + cream/green section alternation, same type stack
 as dh-apply / dh-faculty / dh-certificate). */

.page-davenant-hall-about { background: var(--cream-faf5ef, #faf5ef); }

.dh-about__intro { padding: 3rem 1.5rem 1.5rem; text-align: center; }
.dh-about__intro-inner { max-width: 820px; margin: 0 auto; }
.dh-about__intro-eyebrow {
  font-family: var(--sc); text-transform: uppercase; letter-spacing: 0.18em;
  font-size: 0.9rem; color: var(--gold); margin: 0 0 0.6rem;
}
.dh-about__intro-rule {
  display: block; width: 60px; height: 1px; background: var(--gold);
  margin: 0 auto 1.2rem; opacity: 0.6;
}
.dh-about__intro-heading {
  font-family: var(--sc); font-size: clamp(1.8rem, 3.2vw, 2.4rem);
  color: var(--navy); margin: 0; letter-spacing: 0.02em;
}

.dh-about__section { padding: 3rem 1.5rem; }
.dh-about__section-inner { max-width: 820px; margin: 0 auto; }
.dh-about__section-heading {
  font-family: var(--sc); font-size: clamp(1.4rem, 2.4vw, 1.9rem);
  color: var(--navy); margin: 0 0 1rem; letter-spacing: 0.02em;
}
.dh-about__section-body {
  font-family: var(--body); font-size: 1.05rem; line-height: 1.7;
  color: var(--text-dark); margin: 0 0 1.2rem;
}
.dh-about__section-body:last-child { margin-bottom: 0; }

.dh-about__subsection { margin: 1.6rem 0 1rem; }
.dh-about__subsection-heading {
  font-family: var(--sc); text-transform: uppercase; letter-spacing: 0.15em;
  font-size: 1rem; color: var(--gold); margin: 0 0 0.8rem;
}
.dh-about__subsection-body {
  font-family: var(--body); font-size: 1.05rem; line-height: 1.7;
  color: var(--text-dark); margin: 0 0 1rem;
}

/* Alternating green section — odd-indexed sections (Our Vision sits 2nd, gets green) */
.dh-about__section--green { background: #17452a; }
.dh-about__section--green .dh-about__section-heading { color: #f5e8c8; }
.dh-about__section--green .dh-about__section-body,
.dh-about__section--green .dh-about__subsection-body { color: #f5e8c8; }
.dh-about__section--green .dh-about__subsection-heading { color: var(--gold); }

/* CTA card at bottom */
.dh-about__cta {
  padding: 3rem 1.5rem 4rem; text-align: center;
  background: #17452a; color: #f5e8c8;
}
.dh-about__cta-inner { max-width: 720px; margin: 0 auto; }
.dh-about__cta-eyebrow {
  font-family: var(--sc); text-transform: uppercase; letter-spacing: 0.18em;
  font-size: 0.9rem; color: var(--gold); margin: 0 0 0.8rem;
}
.dh-about__cta-heading {
  font-family: var(--sc); font-size: clamp(1.6rem, 2.6vw, 2.1rem);
  color: #f5e8c8; margin: 0 0 1rem; letter-spacing: 0.02em;
}
.dh-about__cta-body {
  font-family: var(--body); font-size: 1.05rem; line-height: 1.7;
  color: #e8dab8; margin: 0 0 2rem;
}
.dh-about__cta-buttons {
  list-style: none; padding: 0; margin: 0;
  display: flex; flex-wrap: wrap; gap: 1rem; justify-content: center;
}
.dh-about__cta-button {
  display: inline-block; padding: 0.8rem 1.6rem;
  font-family: var(--sc); text-transform: uppercase; letter-spacing: 0.12em;
  font-size: 0.95rem; color: #f5e8c8;
  background: transparent; border: 1px solid var(--gold);
  text-decoration: none; transition: background 0.2s, color 0.2s;
}
.dh-about__cta-button:hover { background: var(--gold); color: #17452a; }

@media (max-width: 700px) {
  .dh-about__intro { padding: 2rem 1.2rem 1rem; }
  .dh-about__section { padding: 2rem 1.2rem; }
  .dh-about__cta { padding: 2rem 1.2rem 3rem; }
  .dh-about__cta-buttons { flex-direction: column; align-items: stretch; }
}

/* Editor-in-Chief + 17-member board. Issue G7. */

.page-davenant-press-editorial-board { background: var(--cream-faf5ef, #faf5ef); }

.dp-eb__intro { padding: 3rem 1.5rem 1.5rem; text-align: center; }
.dp-eb__intro-inner { max-width: 760px; margin: 0 auto; }
.dp-eb__intro-eyebrow {
  font-family: var(--sc); text-transform: uppercase; letter-spacing: 0.18em;
  font-size: 0.85rem; color: var(--gold); margin: 0 0 0.6rem;
}
.dp-eb__intro-rule {
  display: block; width: 60px; height: 1px; background: var(--gold);
  margin: 0 auto 1.2rem; opacity: 0.6;
}
.dp-eb__intro-heading {
  font-family: var(--sc); font-size: clamp(2rem, 3.6vw, 2.8rem);
  color: var(--navy); margin: 0 0 1.4rem; letter-spacing: 0.02em;
}
.dp-eb__intro-body {
  font-family: var(--body); font-size: 1.05rem; line-height: 1.7;
  color: var(--text-dark); margin: 0;
}

.dp-eb__eic { padding: 2rem 1.5rem 1rem; text-align: center; }
.dp-eb__eic-inner { max-width: 600px; margin: 0 auto; padding: 1.6rem 1.5rem;
  border-top: 1px solid rgba(196, 163, 90, 0.25); border-bottom: 1px solid rgba(196, 163, 90, 0.25);
}
.dp-eb__eic-label {
  font-family: var(--sc); text-transform: uppercase; letter-spacing: 0.18em;
  font-size: 0.85rem; color: var(--gold); margin: 0 0 0.5rem;
}
.dp-eb__eic-name {
  font-family: var(--sc); font-size: clamp(1.4rem, 2.4vw, 1.9rem);
  color: var(--navy); margin: 0; letter-spacing: 0.02em;
}

.dp-eb__members { padding: 2.5rem 1.5rem 3rem; text-align: center; }
.dp-eb__members-inner { max-width: 880px; margin: 0 auto; }
.dp-eb__members-label {
  font-family: var(--sc); text-transform: uppercase; letter-spacing: 0.18em;
  font-size: 0.85rem; color: var(--gold); margin: 0 0 0.5rem;
}
.dp-eb__members-rule {
  display: block; width: 60px; height: 1px; background: var(--gold);
  margin: 0 auto 1.6rem; opacity: 0.6;
}
.dp-eb__members-list {
  list-style: none; padding: 0; margin: 0;
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem 2.5rem;
  text-align: left;
}
.dp-eb__member {
  display: flex; flex-direction: column; padding: 0.6rem 0;
  border-bottom: 1px solid rgba(34, 26, 22, 0.08);
}
.dp-eb__member-name {
  font-family: var(--sc); font-size: 1.05rem; color: var(--navy);
  letter-spacing: 0.02em; font-weight: 500;
}
.dp-eb__member-aff {
  font-family: var(--body); font-style: italic; font-size: 0.92rem;
  color: rgba(34, 26, 22, 0.7); margin-top: 0.15rem;
}

.dp-eb__back { padding: 1.5rem 1.5rem 3rem; text-align: center; }
.dp-eb__back-inner { max-width: 760px; margin: 0 auto; }
.dp-eb__back-link {
  display: inline-block; padding: 0.6rem 1.4rem;
  font-family: var(--sc); text-transform: uppercase; letter-spacing: 0.12em;
  font-size: 0.9rem; color: var(--navy);
  text-decoration: none; border: 1px solid var(--gold);
  transition: background 0.2s, color 0.2s;
}
.dp-eb__back-link:hover { background: var(--gold); color: var(--navy); }

/* v0.1.166 — Editorial Board converted from wp:html scaffolds to native groups/
 * paragraphs (editor showed white sandbox iframes). Neutralize paragraph margins
 * inside member cards, draw the two gold rules via ::after (rule spans removed
 * from markup), and keep group-flow gaps at zero so geometry matches classic. */
p.dp-eb__member-name, p.dp-eb__member-aff { margin: 0; }
.dp-eb__member-aff { margin-top: 0.15rem; }
.dp-eb__intro-eyebrow::after,
.dp-eb__members-label::after {
  content: ""; display: block; width: 60px; height: 1px;
  background: var(--gold); opacity: 0.6; margin: 0 auto;
}
.dp-eb__intro-eyebrow::after { margin-top: 0.6rem; margin-bottom: 1.2rem; }
.dp-eb__members-label::after { margin-top: 0.5rem; margin-bottom: 1.6rem; }
p.dp-eb__intro-eyebrow { margin-bottom: 0; }
p.dp-eb__members-label { margin-bottom: 0; }
.dp-eb__members-list > .dp-eb__member { margin: 0; }
.dp-eb__back-p { margin: 0; }
main.page-davenant-press-editorial-board > * { margin-block-start: 0; }
/* Zero the theme's auto block-gap inside converted groups — original spacing is
 * fully authored via the section/element margins above (v0.1.167). */
.page-davenant-press-editorial-board .wp-block-group > * { margin-block-start: 0; margin-block-end: 0; }
.page-davenant-press-editorial-board p.dp-eb__intro-eyebrow,
.page-davenant-press-editorial-board p.dp-eb__members-label { margin: 0; }
.page-davenant-press-editorial-board .dp-eb__intro-heading { margin: 0 0 1.4rem; }
.page-davenant-press-editorial-board .dp-eb__eic-label { margin: 0 0 0.5rem; }
.page-davenant-press-editorial-board .dp-eb__member-aff { margin-top: 0.15rem; }

@media (max-width: 700px) {
  .dp-eb__intro { padding: 2rem 1.2rem 1rem; }
  .dp-eb__eic { padding: 1.5rem 1.2rem 1rem; }
  .dp-eb__members { padding: 2rem 1.2rem 2rem; }
  .dp-eb__members-list { grid-template-columns: 1fr; gap: 0.8rem; }
  .dp-eb__back { padding: 1rem 1.2rem 2.5rem; }
}

@media (max-width: 720px) {

  

  /* Ticket 2: + flanking gold lines must be
 centered on mobile (currently overflows + pushes title off-center
 because min-width:140px per line forces 489px total width into a
 375px viewport). Shrink lines so they actually fit. */
  .pillars-section.pillars-v2 .pillars-rule {
    max-width: 100%;
    gap: 0.6rem;
    padding-left: 0;
    padding-right: 0;
    box-sizing: border-box;
  }
  .pillars-section.pillars-v2 .pillars-rule .pillars-rule-line {
    min-width: 0;
    flex: 1 1 0;
  }

  /* Ticket 3: Hide director thumbnails in the FIRST content
 block (welcome blurb) below the hero on /davenant-hall/, /ad-fontes/,
 /davenant-press/. Keep welcome note text intact. */
  .dh-welcome__portrait,
  .dp-welcome__portrait,
  .af-welcome__portrait {
    display: none !important;
  }

  /* Ticket 4: /davenant-press/ imprint blocks (Davenant Press
 navy, Davenant Academic burgundy). On mobile:
 (a) text block FIRST, logo block SECOND (reverse the existing mobile
 rule at line ~4155 which puts image-wrap order:1, text order:2)
 (b) add padding-top to the text block so the title isn't crammed
 against the top of the colored panel. */
  .dp-block.dp-img-left .dp-block-image-wrap,
  .dp-block.dp-img-right .dp-block-image-wrap { order: 2; }
  .dp-block.dp-img-left .dp-block-text,
  .dp-block.dp-img-right .dp-block-text { order: 1; padding: 2.5rem 1.5rem 2rem; }

  /* Ticket 5: Lock the dropdown menu bottom bar to ONLY show
 the cathedral image background + tagline, regardless of which nav link is hovered/focused.
 Hide all titled panels; force the default tagline panel to always
 render on mobile. */
  .menu-drawer-panels .drawer-panel { display: none !important; }
  .menu-drawer-panels .drawer-panel[data-panel="default"] {
    display: block !important;
  }

  /* Ticket 6: Remove the Portico background image that sits
 behind the Our Pillars cards on mobile. Desktop rule at line ~1334
 sets `background-image: url('images/Portico-v5.png')` on.pillars-section.pillars-v2 — at mobile width the portico crowds the
 navy pillar cards and reads as visual noise. Nullify the bg-image
 on mobile only; keep desktop untouched. The cream ` — cream` fill
 from the parent.portico-bg-wrapper shows through and the section
 renders flat-cream below the cards. */
  .pillars-section.pillars-v2 {
    background-image: none !important;
  }

  
  .pillar-v2-name,
  .pillar-v2-card:hover .pillar-v2-name {
    max-height: none;
    opacity: 1;
    margin: 0 0 1rem;
    transition: none;
  }
  .pillar-v2-blurb,
  .pillar-v2-card:hover .pillar-v2-blurb {
    max-height: none;
    opacity: 1;
    margin: 0 0 1.4rem;
    transition: none;
  }
  /* WordPress global layout injects
     ":root :where(.is-layout-flow) > :last-child { margin-block-end: 0 }"
     (specificity 0,2,0). The pillar blurb is the LAST child of the
     .pillar-v2-body flow group, so that logical-property reset beats the
     .pillar-v2-blurb margin above and zeroes its bottom margin — collapsing
     each mobile pillar card ~22px (×3 ≈ 67px), shifting every section below
     the pillars up vs the classic theme (no .is-layout-flow wrapper there).
     Re-assert margin-block-end at higher specificity to restore parity. */
  .pillar-v2-card .pillar-v2-body > .pillar-v2-blurb:last-child {
    margin-block-end: 1.4rem;
  }
}

.lecture-module-main {
  background: var(--cream, #f8f3e8);
  /* Full-bleed: classic renders this at body width (no root padding); the block
     single template nests it in is-layout-constrained has-global-padding
     post-content, narrowing content ~40px on mobile so text reflows ~404px
     taller and the page cumulatively offsets. Break out to the viewport so the
     inner sections (which carry their own max-width/padding) match classic. */
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}

.lm-breadcrumb {
  max-width: 1180px;
  margin: 0 auto;
  padding: 1.6rem 1.5rem 0;
}
.lm-breadcrumb__link {
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-size: 1.05rem;
  color: var(--ink, #1a2840);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: .45rem;
}
.lm-breadcrumb__link:hover { text-decoration: underline; }
.lm-breadcrumb__arrow { font-size: 1.15rem; }

.lm-detail-hero {
  max-width: 1180px;
  margin: 1.5rem auto 0;
  padding: 2.2rem 1.5rem;
  background: #fff;
  border: 1px solid rgba(184,168,138,0.32);
  border-radius: 6px;
}
.lm-detail-hero__inner {
  display: grid;
  grid-template-columns: minmax(220px, 360px) 1fr;
  gap: 2.4rem;
  align-items: start;
}
.lm-detail-hero__art img {
  width: 100%;
  height: auto;
  border-radius: 4px;
  display: block;
  box-shadow: 0 6px 24px rgba(26,40,64,0.10);
}
.lm-detail-hero__eyebrow {
  font-family: var(--display, 'Cormorant SC', serif);
  text-transform: uppercase;
  letter-spacing: 0.18em;
  font-size: 0.78rem;
  color: #8a6d3b;
  margin: 0 0 .6rem;
}
.lm-detail-hero__title {
  font-family: var(--display, 'Cormorant Garamond', serif);
  font-size: 2.4rem;
  line-height: 1.15;
  color: var(--ink, #1a2840);
  margin: 0 0 .35rem;
}
.lm-detail-hero__tagline {
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-style: italic;
  font-size: 1.2rem;
  color: #555;
  margin: 0 0 .8rem;
}
.lm-detail-hero__instructor {
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-size: 1.1rem;
  color: #3a3a3a;
  margin: 0 0 .35rem;
}
.lm-detail-hero__format {
  font-family: var(--ui, 'Inter', sans-serif);
  font-size: 0.85rem;
  color: #6a6a6a;
  margin: .35rem 0 .25rem;
  letter-spacing: 0.02em;
}
.lm-detail-hero__price {
  font-family: var(--display, 'Cormorant Garamond', serif);
  font-size: 1.5rem;
  font-weight: 600;
  color: var(--ink, #1a2840);
  margin: .35rem 0 1.1rem;
}
.lm-detail-hero__actions {
  display: flex;
  gap: .9rem;
  flex-wrap: wrap;
  margin-top: .6rem;
}

.lm-detail-about,
.lm-detail-syllabus,
.lm-detail-lecturer,
.lm-detail-cta {
  max-width: 1180px;
  margin: 2.4rem auto 0;
  padding: 2rem 1.5rem;
  background: #fff;
  border: 1px solid rgba(184,168,138,0.32);
  border-radius: 6px;
}
.lm-detail-about__inner,
.lm-detail-syllabus__inner,
.lm-detail-lecturer__inner,
.lm-detail-cta__inner {
  max-width: 880px;
  margin: 0 auto;
}
.lm-detail-about__heading,
.lm-detail-syllabus__heading,
.lm-detail-lecturer__heading,
.lm-detail-cta__heading {
  font-family: var(--display, 'Cormorant Garamond', serif);
  font-size: 1.7rem;
  color: var(--ink, #1a2840);
  margin: 0 0 1rem;
  border-bottom: 1px solid rgba(184,168,138,0.4);
  padding-bottom: .55rem;
}
.lm-detail-about p,
.lm-detail-lecturer p {
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-size: 1.08rem;
  line-height: 1.65;
  color: #3a3a3a;
  margin: 0 0 1rem;
}
.lm-detail-lecturer__name {
  font-family: var(--display, 'Cormorant Garamond', serif);
  font-size: 1.25rem;
  color: var(--ink, #1a2840);
  margin: 0 0 .6rem;
}
.lm-detail-syllabus__sub {
  font-family: var(--display, 'Cormorant Garamond', serif);
  font-style: italic;
  font-size: 1.18rem;
  color: var(--ink, #1a2840);
  margin: 1.2rem 0 .5rem;
}
.lm-detail-syllabus__list {
  list-style: none;
  padding: 0;
  margin: 0;
  counter-reset: lm-lecture;
}
.lm-detail-syllabus__list li {
  display: grid;
  grid-template-columns: 2.2rem 1fr;
  gap: .8rem;
  align-items: baseline;
  padding: .55rem 0;
  border-bottom: 1px solid rgba(184,168,138,0.22);
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-size: 1.05rem;
  color: #3a3a3a;
}
.lm-detail-syllabus__list li:last-child { border-bottom: 0; }
.lm-detail-syllabus__num {
  font-family: var(--display, 'Cormorant SC', serif);
  font-size: 0.95rem;
  color: #8a6d3b;
  letter-spacing: 0.06em;
}
.lm-detail-cta { background: var(--ink, #1a2840); color: #f8f3e8; }
.lm-detail-cta__heading { color: #f8f3e8; border-bottom-color: rgba(248,243,232,0.3); }
.lm-detail-cta p { color: rgba(248,243,232,0.92); font-family: var(--body, 'Cormorant Garamond', serif); font-size: 1.08rem; line-height: 1.6; margin: 0 0 1.2rem; }
.lm-detail-cta__actions { display: flex; gap: .9rem; flex-wrap: wrap; }

@media (max-width: 820px) {
  .lm-detail-hero__inner {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }
  .lm-detail-hero__art { max-width: 320px; margin: 0 auto; }
  .lm-detail-hero__title { font-size: 1.85rem; }
}

.lm-detail-hero-banner {
  position: relative;
  /* Full-bleed: classic renders this hero at body width (1440); the block
     single template nests it inside is-layout-constrained post-content
     (~1100px), so break out to the viewport like the classic theme. Same
     proven breakout used by .donate-windowshade. */
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  min-height: 64vh;
  overflow: hidden;
  background: var(--ink, #1a2840);
}
.lm-detail-hero-banner__art {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  filter: saturate(0.92) contrast(0.96);
}
.lm-detail-hero-banner__veil {
  position: absolute;
  inset: 0;
  z-index: 1;
  
  background: transparent;
}
.lm-detail-hero-banner__content {
  position: absolute;
  z-index: 2;
  left: 7vw;
  right: 7vw;
  bottom: 10vh;
  max-width: 820px;
  color: var(--cream, #faf5ef);
}
.lm-detail-hero-banner__eyebrow {
  font-family: var(--sc, var(--display, 'Cormorant SC', serif));
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--gold-bright, #d8b665);
  font-size: 0.9rem;
  margin: 0 0 0.8rem;
  text-shadow: 0 1px 4px rgba(0,0,0,0.55);
}
.lm-detail-hero-banner__title {
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-style: italic;
  font-weight: 400;
  font-size: clamp(2.4rem, 6vw, 5.2rem);
  line-height: 1.02;
  margin: 0;
  color: var(--cream, #faf5ef);
  text-shadow:
    0 2px 6px rgba(0,0,0,0.55),
    0 1px 2px rgba(0,0,0,0.65);
}
.lm-detail-hero-banner__tagline {
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-size: clamp(1.05rem, 1.8vw, 1.4rem);
  margin: 0.9rem 0 0;
  max-width: 620px;
  color: var(--cream, #faf5ef);
  text-shadow:
    0 1px 4px rgba(0,0,0,0.65),
    0 2px 8px rgba(0,0,0,0.5);
}
@media (max-width: 820px) {
  /* Mobile uses hamburger so no medallion-overlap concern; keep banner
 shorter so the page can scroll to content sooner. */
  .lm-detail-hero-banner { min-height: 48vh; }
  .lm-detail-hero-banner__content { left: 1.4rem; right: 1.4rem; bottom: 2.2rem; }
  .lm-detail-hero-banner__veil {
    background:
      linear-gradient(180deg, rgba(0,0,0,0.10) 0%, rgba(0,0,0,0.70) 100%),
      linear-gradient(90deg, rgba(28,47,74,0.55), rgba(28,47,74,0.30));
  }
  .lm-detail-hero-banner__title { font-size: clamp(2rem, 8vw, 2.6rem); }
}

@media (max-width: 900px) {
  .dh-prog-hero__eyebrow,
  .dh-prog-hero__title,
  .dh-prog-hero__tagline {
    text-shadow:
      0 1px 2px rgba(0,0,0,0.85),
      0 2px 8px rgba(0,0,0,0.75),
      0 0 14px rgba(0,0,0,0.55);
  }
  /* Dark gradient scrim under the text block — fades from transparent at the
 top of the overlay to ~75% black at the bottom of the hero. Sits behind
 the text content, on top of the photo. */
  .dh-prog-hero__overlay::before {
    content: "";
    position: absolute;
    inset: -20% 0 -1px 0;
    background: linear-gradient(
      to bottom,
      rgba(8, 18, 36, 0)   0%,
      rgba(8, 18, 36, 0.55) 50%,
      rgba(8, 18, 36, 0.78) 100%
    );
    pointer-events: none;
    z-index: 0;
  }
  .dh-prog-hero__overlay > * {
    position: relative;
    z-index: 1;
  }
}

.tc-catalog__browse .tc-cta__btn--ghost {
  background: var(--navy) !important;
  color: var(--cream) !important;
  border-color: var(--navy) !important;
}
.tc-catalog__browse .tc-cta__btn--ghost:hover {
  background: var(--navy-dark, #0f1d33) !important;
  color: var(--cream) !important;
  border-color: var(--navy-dark, #0f1d33) !important;
}

.dav-cart-sticky {
  position: fixed;
  top: 1.2rem;
  right: calc(1.4rem + 52px + 0.6rem); /* menu-toggle width + gap */
  z-index: 200;
  width: 52px;
  height: 52px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(28, 47, 74, 0.85); /* navy at toggle's opacity */
  border: 1px solid var(--gold-bright);
  border-radius: 50%;
  color: var(--gold-bright);
  text-decoration: none;
  
  padding: 0;
  font: inherit;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
  transition: background 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}
.dav-cart-sticky:hover,
.dav-cart-sticky:focus-visible {
  background: rgba(28, 47, 74, 0.96);
  transform: scale(1.05);
  outline: none;
  box-shadow: 0 0 0 2px rgba(216, 184, 112, 0.35);
}
.dav-cart-sticky__ring {
  position: absolute;
  inset: 3px;
  border-radius: 50%;
  border: 1px solid rgba(216, 184, 112, 0.45); /* inner gold trim */
  pointer-events: none;
}
.dav-cart-sticky__icon {
  width: 24px;
  height: 24px;
  color: var(--gold-bright);
  position: relative;
}
.dav-cart-sticky__count {
  position: absolute;
  top: -4px;
  right: -4px;
  min-width: 20px;
  height: 20px;
  padding: 0 5px;
  border-radius: 999px;
  background: var(--gold-bright);
  color: var(--navy);
  font-family: var(--sans);
  font-weight: 600;
  font-size: 0.72rem;
  line-height: 20px;
  text-align: center;
  border: 1.5px solid var(--navy);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.35);
  /* Hidden when cart is empty. data-count attr is updated both on
 server render AND woocommerce_add_to_cart_fragments — so the
 badge reacts to ajax add-to-cart without page reload. */
  opacity: 0;
  transform: scale(0.6);
  transition: opacity 0.18s ease, transform 0.18s ease;
  pointer-events: none;
}
.dav-cart-sticky__count[data-count]:not([data-count="0"]) {
  opacity: 1;
  transform: scale(1);
}

@media (max-width: 600px) {
  .dav-cart-sticky {
    width: 46px;
    height: 46px;
    top: 0.9rem;
    right: calc(1rem + 46px + 0.5rem);
  }
  .dav-cart-sticky__icon { width: 22px; height: 22px; }
  .dav-cart-sticky__count {
    min-width: 18px; height: 18px; line-height: 18px;
    font-size: 0.68rem;
    top: -3px; right: -3px;
  }
}

body.dav-cart-page .wp-block-group.opd-centered,
body.dav-cart-page .entry-content {
  max-width: none;
  padding: 0;
}

.dav-cart-wrap {
  display: flex;
  gap: 1.8rem;
  align-items: stretch;
  max-width: 1320px;
  margin: 3rem auto 4rem;
  padding: 0 1.6rem;
  font-family: var(--body);
  color: var(--navy);
}

.dav-cart-stilllife {
  flex: 0 0 22%;
  max-width: 280px;
  align-self: stretch;
  border-radius: 6px;
  overflow: hidden;
  box-shadow: 0 6px 22px rgba(28, 47, 74, 0.18);
  background: var(--cream);
}
.dav-cart-stilllife img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center;
}

.dav-cart-items {
  flex: 1 1 auto;
  background: var(--cream);
  padding: 2.4rem 2.4rem 2rem;
  border-radius: 6px;
  border: 1px solid var(--border-ornate);
  box-shadow: 0 4px 18px rgba(28, 47, 74, 0.10);
}
.dav-cart-items__title {
  font-family: var(--sc);
  font-weight: 600;
  font-size: clamp(1.7rem, 2.4vw, 2.2rem);
  letter-spacing: 0.04em;
  color: var(--navy);
  margin-bottom: 1.4rem;
  padding-bottom: 0.9rem;
  border-bottom: 1px solid var(--border-ornate);
}

/* WC table inside cream tab — parchment-aesthetic */
.dav-cart-table {
  width: 100%;
  border-collapse: collapse;
  font-family: var(--body);
  color: var(--navy);
  background: transparent;
}
.dav-cart-table thead th {
  font-family: var(--sc);
  font-weight: 600;
  font-size: 0.78rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(28, 47, 74, 0.7);
  padding: 0.6rem 0.5rem;
  border-bottom: 1px solid var(--border-ornate);
  text-align: left;
}
.dav-cart-table thead th.product-price,
.dav-cart-table thead th.product-subtotal,
.dav-cart-table thead th.product-quantity { text-align: right; }

.dav-cart-table tbody td,
body.dav-cart-page .woocommerce table.dav-cart-table tbody td {
  padding: 1.05rem 0.5rem;
  border-bottom: 1px solid rgba(184, 168, 138, 0.45);
  border-top: 0;
  font-size: 1.05rem;
  vertical-align: middle;
  background: transparent;
}
.dav-cart-table tbody td.product-price,
.dav-cart-table tbody td.product-subtotal { text-align: right; font-variant-numeric: tabular-nums; }
.dav-cart-table tbody td.product-quantity { text-align: right; }
.dav-cart-table tbody tr:last-of-type td { border-bottom: none; }

.dav-cart-table .product-remove a.remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px; height: 28px;
  border-radius: 50%;
  background: transparent;
  color: var(--burgundy);
  font-size: 1.35rem;
  line-height: 1;
  font-weight: 400;
  text-decoration: none;
  transition: background 0.15s ease, color 0.15s ease;
}
.dav-cart-table .product-remove a.remove:hover {
  background: var(--burgundy);
  color: var(--cream);
}

/* 2026-07-29 (#89 investigation): WooCommerce's own stylesheet ships
   `.woocommerce-cart table.cart img { width: 32px }`, which beat the rule below
   on specificity — and because the cell then sized to 32px with 8px padding
   either side, `max-width:100%` clamped the image to a 16px CONTENT BOX. Cart
   thumbnails were rendering 16px square from a 300px source, on prod and dev
   alike. Overriding width alone is not enough: max-width has to go too, or the
   narrow column keeps squeezing it. Measured: img 16->64px, cell 32->80px,
   table still fits its container. */
.dav-cart-table .product-thumbnail img,
.woocommerce-cart table.cart td.product-thumbnail img {
  width: 64px;
  height: 64px;
  max-width: none;
  object-fit: cover;
  border-radius: 4px;
  border: 1px solid var(--border-ornate);
  background: #fff;
  overflow: hidden;
  position: relative;
}
/* #89 (David 2026-07-29: "why does it look broken in the screenshot") — an
   earlier pass only CONTAINED a failed image; the browser's broken-image glyph
   and raw alt text were still visible. ::after on the <img> paints only when the
   image fails to render (a successfully painted image covers it), so a broken
   thumbnail becomes a parchment tile carrying the product name instead of
   browser chrome. CSS-only: no per-image JS, no onerror handlers. */
.dav-cart-table .product-thumbnail img::after,
.woocommerce-cart table.cart td.product-thumbnail img::after {
  content: attr(alt);
  position: absolute;
  inset: 0;
  background: #efe7d7;
  border-radius: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 4px;
  box-sizing: border-box;
  font-family: inherit;
  font-size: 0.5rem;
  line-height: 1.1;
  color: rgba(28, 47, 74, 0.5);
  overflow: hidden;
}

.dav-cart-table .product-name a {
  color: var(--navy);
  font-family: var(--body);
  font-weight: 600;
  font-size: 1.08rem;
  text-decoration: none;
}
.dav-cart-table .product-name a:hover { color: var(--gold); }

.dav-cart-table .quantity input.qty {
  width: 64px;
  padding: 0.4rem 0.5rem;
  border: 1px solid var(--border-ornate);
  background: #fff;
  font-family: var(--body);
  font-size: 1rem;
  color: var(--navy);
  text-align: center;
  border-radius: 3px;
}

.dav-cart-table td.actions {
  padding-top: 1.4rem;
  border-bottom: none;
}
.dav-cart-table td.actions .coupon {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin-right: 1rem;
}
.dav-cart-table td.actions .coupon input.input-text {
  padding: 0.5rem 0.7rem;
  border: 1px solid var(--border-ornate);
  background: #fff;
  font-family: var(--body);
  font-size: 0.95rem;
  border-radius: 3px;
  min-width: 160px;
}

.dav-cart-btn,
.dav-cart-table td.actions button.button {
  display: inline-block;
  padding: 0.55rem 1.2rem;
  background: var(--navy);
  color: var(--cream);
  border: 1px solid var(--navy);
  font-family: var(--sc);
  font-size: 0.85rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 600;
  cursor: pointer;
  border-radius: 3px;
  transition: background 0.18s ease, color 0.18s ease, border-color 0.18s ease;
}
.dav-cart-btn:hover,
.dav-cart-table td.actions button.button:hover {
  background: var(--cream);
  color: var(--navy);
  border-color: var(--navy);
}

/* RIGHT — navy totals tab */
.dav-cart-totals {
  flex: 0 0 280px;
  background: var(--navy);
  color: var(--cream);
  padding: 2.4rem 1.8rem 2rem;
  border-radius: 6px;
  box-shadow: 0 4px 18px rgba(28, 47, 74, 0.18);
  display: flex;
  flex-direction: column;
  align-items: stretch;
  text-align: center;
  align-self: flex-start;
  position: sticky;
  top: 90px;
}
.dav-cart-totals__heading {
  font-family: var(--sc);
  font-weight: 600;
  font-size: 0.92rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--cream);
  opacity: 0.85;
  margin-bottom: 0.7rem;
}
.dav-cart-totals__amount {
  font-family: var(--sc);
  font-weight: 600;
  color: var(--cream);
  font-size: clamp(2.2rem, 3.4vw, 2.8rem);
  line-height: 1.1;
  margin-bottom: 0.4rem;
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 0.15rem;
  font-variant-numeric: tabular-nums;
}
.dav-cart-totals__symbol {
  color: var(--gold-bright);
  font-family: var(--sc);
  font-weight: 600;
  font-size: 0.85em;
  line-height: 1;
}
.dav-cart-totals__number {
  color: var(--cream);
}
.dav-cart-totals__tail {
  font-size: 0.5em;
  color: rgba(245, 240, 232, 0.7);
  margin-left: 0.3rem;
  font-family: var(--body);
}
.dav-cart-totals__note {
  font-family: var(--body);
  font-size: 0.88rem;
  color: rgba(245, 240, 232, 0.75);
  margin: 0.4rem 0 1.5rem;
  font-style: italic;
}
/* 2026-07-25 PARITY — /cart @390 the gap between the totals AMOUNT and this note is
   16px in classic-on-dev but only 10px in block, making the panel 6px shorter and
   shifting the ENTIRE footer up by 6px. Every footer glyph edge then counts as a
   difference, which was the whole ~4% figure for this page.
   Ruled out first: cart.php templates are byte-identical (diff = 0 lines);
   .dav-cart-totals__note, .dav-cart-totals base block and .cart-panel__totals-amount
   are identical in both stylesheets. So the 6px comes from the block theme's global
   paragraph/heading margin defaults reaching this <p>, not from any cart rule.
   Pin the resolved gap explicitly. Measured target: 16px. */
/* 2026-07-25 CORRECTION: 16px OVERSHOT — the note then started at row 1538 vs classic's
   1528, i.e. 10px too FAR (it had been 6px short at the inherited value). The inherited
   margin was therefore 16-6=10px... no: measuring the overshoot directly, 16px put it
   +10 past target, so the correct explicit value is 16-10 = 6px. Verified by the band
   positions in the harness capture pair, not by arithmetic on prod. */
body.dav-cart-page p.dav-cart-totals__note,
.cart-panel p.dav-cart-totals__note {
  margin-top: 6px !important;
}

.dav-cart-totals__checkout {
  display: block;
  padding: 0.85rem 1rem;
  background: var(--gold-bright);
  color: var(--navy);
  font-family: var(--sc);
  font-weight: 600;
  font-size: 1rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  text-decoration: none;
  border-radius: 3px;
  border: 1px solid var(--gold-bright);
  transition: background 0.18s ease, color 0.18s ease, transform 0.18s ease;
}
.dav-cart-totals__checkout:hover,
.dav-cart-totals__checkout:focus-visible {
  background: var(--cream);
  color: var(--navy);
  border-color: var(--gold-bright);
  transform: translateY(-1px);
  outline: none;
}

/* WooCommerce empty-cart message styled with parchment palette */
body.dav-cart-page .cart-empty.woocommerce-info {
  font-family: var(--body);
  font-size: 1.1rem;
  color: var(--navy);
  background: var(--cream);
  border: 1px solid var(--border-ornate);
  padding: 1.5rem 1.8rem;
  border-radius: 6px;
  border-left: 4px solid var(--gold);
}

body.dav-cart-page .woocommerce-info::before,
body.dav-cart-page .woocommerce-message::before,
body.dav-cart-page .woocommerce-error::before,
body.woocommerce-cart .woocommerce-info::before,
body.woocommerce-cart .woocommerce-message::before,
body.woocommerce-checkout .woocommerce-info::before {
  display: none !important;
  content: '' !important;
}

/* Filled-cart add-to-cart notice parity: classic Woo renders the success
 * message as the default pale notice with a compact filled "View cart" button.
 * Block/global button styles otherwise leak in as a pill/link and keep the
 * cart page visually offset. Scope to the populated-cart success notice only. */
body.dav-cart-page .woocommerce-message,
body.dav-cart-page .wc-block-components-notice-banner.is-success {
  display: block !important;
  background-color: rgb(247, 246, 247) !important;
  color: rgb(81, 81, 81) !important;
  font-family: var(--body) !important;
  font-size: 16px !important;
  line-height: 25.6px !important;
  font-weight: 400 !important;
  padding: 16px 32px 16px 56px !important;
  margin: 0 0 32px 0 !important;
  border-width: 3px 0 0 0 !important;
  border-style: solid !important;
  border-color: rgb(143, 174, 27) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
body.dav-cart-page .wc-block-components-notice-banner.is-success > svg {
  display: none !important;
}
body.dav-cart-page .wc-block-components-notice-banner.is-success .wc-block-components-notice-banner__content {
  margin: 0 !important;
  padding: 0 !important;
  color: rgb(81, 81, 81) !important;
  font-family: var(--body) !important;
  font-size: 16px !important;
  line-height: 25.6px !important;
}
body.dav-cart-page .woocommerce-message .button,
body.dav-cart-page .woocommerce-message a.button,
body.dav-cart-page .wc-block-components-notice-banner.is-success .button,
body.dav-cart-page .wc-block-components-notice-banner.is-success a.button {
  float: right !important;
  display: inline-block !important;
  padding: 9.888px 16px !important;
  line-height: 16px !important;
  min-height: 0 !important;
  background-color: rgb(233, 230, 237) !important;
  color: rgb(81, 81, 81) !important;
  font-family: var(--body) !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  letter-spacing: normal !important;
  text-transform: none !important;
  text-decoration: none !important;
  border: 0 !important;
  border-radius: 3px !important;
  box-shadow: none !important;
}

/* 0.1.45 — checkout form parity (body.woocommerce-checkout, WC shortcode form).
 * prod = classic theme + WC defaults; block theme's global form styling inflates
 * fields/button. prod baselines: input.input-text h31.31 (padding .5em=6.6667 @
 * font 13.333, lh normal); #place_order h35.75 (padding 9.888 TB, lh 16px, font 16).
 * Dev had input padding 14.4 (+15.5/field x ~12 = +242 billing block) and
 * place_order lh 25.6 / padding 12.672 (+15.2). Re-assert prod box-models. */
body.woocommerce-checkout .woocommerce form .form-row input.input-text,
body.woocommerce-checkout .woocommerce form .form-row textarea,
body.woocommerce-checkout #customer_details input.input-text,
body.woocommerce-checkout #customer_details textarea,
body.woocommerce-checkout #order_comments {
  font-size: 13.333px !important;
  line-height: normal !important;
  padding: 0.5em !important;
}
body.woocommerce-checkout #place_order {
  padding-top: 9.888px !important;
  padding-bottom: 9.888px !important;
  line-height: 16px !important;
}
/* 0.1.46 — checkout field-label gap. prod label margin-bottom 0; block theme
 * adds 11.2px under each field label => +11.2 x ~10.5 fields @1440 (+118) and
 * ~16 stacked @<=768 (+182). Zero it to match prod. */
body.woocommerce-checkout .woocommerce form .form-row label,
body.woocommerce-checkout #customer_details .form-row label,
body.woocommerce-checkout .woocommerce-billing-fields .form-row label,
body.woocommerce-checkout .woocommerce-shipping-fields .form-row label,
body.woocommerce-checkout .woocommerce-additional-fields .form-row label {
  margin-bottom: 0 !important;
}

/* 0.1.47 — checkout select2 + notice-callout parity.
 * (a) select2 country/state control: block theme inflates the rendered box to the
 *     old input height (selection h46.78 / rendered 44.78); prod is selection h38,
 *     rendered lh36. Re-assert prod box (+8.78 x 2 fields = the billing residual).
 * (b) .woocommerce-info notice callout: block theme strips WC's default styled box,
 *     collapsing each login/coupon toggle notice to a thin unstyled line, so the form
 *     starts -37.19 high at 1440/768. Restore prod's box (bg f6f5f8, 3px 1e85be top
 *     accent, pad 16/32/16/56, mb32, Cormorant 16/25.6) -> lands the -37 AND fixes the
 *     missing-callout appearance. Mobile (390) carries a separate page-main delta. */
body.woocommerce-checkout .select2-container--default .select2-selection--single {
  height: 38px !important;
}
body.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered {
  /* 0.1.48: mirror prod EXACTLY (getComputedStyle @1440): h36, lh normal, pad 8, fs16.
   * 0.1.47 pinned lh:36px which, added to the block theme's leaked pad 14.4/17.6 + fs13,
   * gave rendered h64.78 (36 + 28.8 pad). Reset all three to prod -> border-box h~36. */
  font-size: 16px !important;
  line-height: normal !important;
  padding: 8px !important;
}
body.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow {
  height: 36px !important;
}
/* 0.1.49 — the login/coupon toggle notices render as the WC BLOCK component
 * `.wc-block-components-notice-banner.is-info` (flex + svg icon), NOT classic
 * `.woocommerce-info` (dev emits 0 of the latter). Prod getComputedStyle of the
 * checkout `.woocommerce-info` box @1440 = bg f6f5f8 / border-top 3px #1e85be /
 * pad 16/32/16/56 / mb32 / Cormorant 16 / lh 25.6 / border-box h60.59 — values
 * are exactly 0.1.47's; only the selector was wrong. Target the block class (and
 * keep classic as a harmless fallback), kill the icon, neutralise the flex. */
body.woocommerce-checkout .woocommerce-info,
body.woocommerce-checkout .wc-block-components-notice-banner.is-info {
  display: block !important;
  background-color: rgb(246, 245, 248) !important;
  color: rgb(81, 81, 81) !important;
  font-family: 'Cormorant Garamond', serif !important;
  font-size: 16px !important;
  line-height: 25.6px !important;
  font-weight: 400 !important;
  padding: 16px 32px 16px 56px !important;
  margin: 0 0 32px 0 !important;
  border-width: 3px 0 0 0 !important;
  border-style: solid !important;
  border-color: rgb(30, 133, 190) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
/* kill the block notice's leading SVG icon (prod has none; the 56px left pad keeps the indent) */
body.woocommerce-checkout .wc-block-components-notice-banner.is-info > svg {
  display: none !important;
}
/* the block notice wraps its text in __content — neutralise its own box so the
 * banner box above is what shows; match prod text metrics. */
body.woocommerce-checkout .wc-block-components-notice-banner.is-info .wc-block-components-notice-banner__content {
  margin: 0 !important;
  padding: 0 !important;
  font-family: 'Cormorant Garamond', serif !important;
  font-size: 16px !important;
  line-height: 25.6px !important;
  color: rgb(81, 81, 81) !important;
}
body.woocommerce-checkout .wc-block-components-notice-banner.is-info a {
  color: rgb(81, 81, 81) !important;
}
/* 0.1.50 — order-notes textarea parity. #order_comments is rows=2 on both, with
 * identical padding/font/line-height/border; prod min-height:0 -> natural rectH 47.31,
 * but the block theme's global textarea min-height:100px forces dev to 100 (+52.69),
 * inflating #order_comments_field (85.31->138) and the whole form/page at <=768.
 * Drop min-height so it falls to prod's intrinsic 2-row height. */
body.woocommerce-checkout #order_comments {
  min-height: 0 !important;
}

/* 0.1.51 — my-account login form parity. Register is disabled (prod+dev), so only
 * .woocommerce-form-login shows. Block-theme global form defaults inflate it +68.5px
 * vs prod (consistent at 1440/768/390), cascading to page/doc height. Decomposed:
 *   username row +26.66 + password row +26.66 + submit/rememberme row +15.19 = 68.51.
 * Per-element vs prod getComputedStyle @1440:
 *   inputs #username/#password: dev pad 14.4 -> prod 6.667 (rectH 46.78 -> 31.31)
 *   field labels: dev margin-bottom 11.2 -> prod 0
 *   submit button: dev pad 12.672 / lh 25.6 / Cormorant -> prod pad 9.888 / lh 16 / Arial (rectH 50.94 -> 35.75)
 * Scoped to body.woocommerce-account so checkout/other forms are untouched. */
body.woocommerce-account .woocommerce-form-login input.input-text,
body.woocommerce-account .woocommerce-form-login input#username,
body.woocommerce-account .woocommerce-form-login input#password {
  padding: 6.667px !important;
  font-size: 13.333px !important;
  line-height: normal !important;
}
body.woocommerce-account .woocommerce-form-login .form-row label {
  margin-bottom: 0 !important;
}
body.woocommerce-account .woocommerce-form-login button[type="submit"],
body.woocommerce-account .woocommerce-form-login button.woocommerce-button,
body.woocommerce-account .woocommerce-form-login button.woocommerce-form-login__submit,
body.woocommerce-account .woocommerce-form-register button[type="submit"],
body.woocommerce-account .woocommerce-form-register button.woocommerce-button {
  padding: 9.888px 16px !important;
  line-height: 16px !important;
  font-family: Arial !important;
  /* v0.1.71: block theme defaults WC buttons dark (rgb(50,55,60)/white);
     classic/prod uses WC-default light. Match prod exactly (border stays 0px). */
  background-color: rgb(233, 230, 237) !important;
  color: rgb(81, 81, 81) !important;
  /* v0.1.72: block global .wp-element-button also forces a 9999px pill + weight 400;
     prod (classic) renders these submits as border-radius:3px / font-weight:700.
     Match prod glyph weight + corner radius (width stays auto -- 700 closes the gap). */
  border-radius: 3px !important;
  font-weight: 700 !important;
}

/* My Account dashboard parity: classic Woo renders the nav as a compact
 * outside-marker list whose text starts at the page column edge. Keep this
 * account-scoped so cart/checkout navigation and footer lists are untouched. */
body.woocommerce-account .woocommerce-MyAccount-navigation ul {
  list-style: disc outside !important;
  margin: 0 !important;
  padding: 0 !important;
}
body.woocommerce-account .woocommerce-MyAccount-navigation li {
  display: list-item !important;
  list-style: disc outside !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1.6 !important;
}
body.woocommerce-account .woocommerce-MyAccount-navigation a {
  line-height: 1.6 !important;
  text-decoration: none !important;
}

@media (max-width: 600px) {
  body.woocommerce-cart .page-main,
  body.woocommerce-checkout .page-main,
  body.dav-cart-page .page-main {
    padding-top: 140px;
  }
}
body.dav-cart-page .return-to-shop .button,
body.dav-cart-page .wc-backward {
  display: inline-block;
  padding: 0.6rem 1.2rem;
  line-height: 16px !important; /* prod button line-height; dev .wp-element-button is 25.6px */
  background: var(--navy);
  color: var(--cream);
  font-family: var(--sc);
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  text-decoration: none;
  border-radius: 3px;
  border: 1px solid var(--navy);
  margin-top: 1rem;
}
body.dav-cart-page .return-to-shop .button:hover,
body.dav-cart-page .wc-backward:hover {
  background: var(--cream);
  color: var(--navy);
}

/* Hide WC's default cart-collaterals duplicate totals block on our cart
 (we render totals in the right navy tab). */
body.dav-cart-page .cart-collaterals,
body.dav-cart-page .cart_totals {
  display: none;
}

.dav-cart-extras {
  max-width: 1320px;
  margin: 0 auto 3rem;
  padding: 0 1.6rem;
}

/* Tablet / mobile breakpoints */
@media (max-width: 1024px) {
  .dav-cart-wrap {
    gap: 1.2rem;
    padding: 0 1rem;
  }
  .dav-cart-stilllife { flex-basis: 18%; max-width: 220px; }
  .dav-cart-totals { flex-basis: 240px; }
}

@media (max-width: 768px) {
  .dav-cart-wrap {
    flex-direction: column;
    gap: 1.2rem;
    margin: 2rem auto 3rem;
  }
  .dav-cart-stilllife {
    flex-basis: auto;
    max-width: 100%;
    max-height: 320px;
  }
  .dav-cart-stilllife img {
    object-position: center 20%;
  }
  .dav-cart-items {
    padding: 1.5rem 1.2rem 1.2rem;
  }
  .dav-cart-totals {
    flex-basis: auto;
    position: static;
    padding: 1.8rem 1.2rem 1.5rem;
  }
  /* WC's shop_table_responsive already stacks cells on narrow widths,
 but we add explicit handling for the dav cart styling. */
  .dav-cart-table thead { display: none; }
  /* #88 (2026-07-29): same fix as the classic theme — this grid reserved a
     fixed 64px "thumb" track while td.product-thumbnail is display:none at
     phone width, so the table computed wider than its container and every
     cell's bottom border painted past the item panel. */
  .dav-cart-table {
    table-layout: fixed;
    width: 100%;
  }
  .dav-cart-table tbody tr.woocommerce-cart-form__cart-item {
    display: grid;
    /* col 2 = min-content so the price/subtotal column takes only what it needs
       and the product name keeps the rest — with max-content it claimed 153px of
       270 and titles wrapped to five lines. Measured at 390px: name 101px -> 159px,
       row height 161px -> 85px. */
    grid-template-columns: minmax(0, 1fr) min-content;
    grid-template-areas:
      "name   remove"
      "price  price"
      "qty    subtotal";
    gap: 0.4rem 0.8rem;
    padding: 1rem 0;
    border-bottom: 1px solid rgba(184, 168, 138, 0.45);
  }
  .dav-cart-table tbody td {
    min-width: 0;
    /* break only a word that genuinely cannot fit — `anywhere` split ordinary
       titles mid-word ("Introductio / n to Biblical Wisdom"). */
    overflow-wrap: break-word;
  }
  .dav-cart-table tbody td {
    border-bottom: none;
    padding: 0;
    font-size: 1rem;
  }
  .dav-cart-table tbody td.product-thumbnail { grid-area: thumb; }
  .dav-cart-table tbody td.product-name      { grid-area: name; }
  .dav-cart-table tbody td.product-remove    { grid-area: remove; text-align: right; }
  .dav-cart-table tbody td.product-price     { grid-area: price; text-align: left; }
  .dav-cart-table tbody td.product-quantity  { grid-area: qty; text-align: left; }
  .dav-cart-table tbody td.product-subtotal  { grid-area: subtotal; text-align: right; font-weight: 600; }
  .dav-cart-table tbody td[data-title]::before {
    content: attr(data-title) ": ";
    font-family: var(--sc);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-size: 0.72rem;
    color: rgba(28, 47, 74, 0.6);
    margin-right: 0.35rem;
  }
  .dav-cart-table tbody td.product-name::before,
  .dav-cart-table tbody td.product-thumbnail::before,
  .dav-cart-table tbody td.product-remove::before { content: none; }

  .dav-cart-table td.actions {
    display: block;
    padding-top: 1rem;
  }
  .dav-cart-table td.actions .coupon {
    display: flex;
    flex-wrap: wrap;
    margin: 0 0 0.8rem 0;
  }
  .dav-cart-table td.actions .coupon input.input-text { flex: 1 1 auto; }
}

@media (max-width: 480px) {
  .dav-cart-wrap { padding: 0 0.8rem; margin-top: 1.4rem; }
  .dav-cart-items { padding: 1.2rem 0.9rem 1rem; }
  .dav-cart-items__title { font-size: 1.55rem; }
  .dav-cart-totals__amount { font-size: 2rem; }
}

.dav-cart-btn:disabled,
.dav-cart-btn[disabled],
.dav-cart-btn--update:disabled,
.dav-cart-btn--update[disabled],
.dav-cart-table td.actions button.button[disabled],
.dav-cart-table td.actions button[name="update_cart"]:disabled {
  background: rgba(28, 47, 74, 0.25);
  color: var(--cream);
  border-color: rgba(28, 47, 74, 0.35);
  cursor: not-allowed;
  opacity: 1; /* don't let UA double-mute opacity */
}
.dav-cart-btn:disabled:hover,
.dav-cart-btn[disabled]:hover,
.dav-cart-btn--update:disabled:hover,
.dav-cart-btn--update[disabled]:hover {
  background: rgba(28, 47, 74, 0.25);
  color: var(--cream);
  border-color: rgba(28, 47, 74, 0.35);
}

.cart-panel-backdrop {
  position: fixed; inset: 0;
  background: rgba(0, 0, 0, 0.5);
  opacity: 0; pointer-events: none;
  z-index: 198;
  transition: opacity 0.3s ease;
}
body.cart-open .cart-panel-backdrop {
  opacity: 1; pointer-events: auto;
}

body.cart-open .menu-toggle,
body.cart-open .dav-cart-sticky {
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s ease;
}

.cart-panel {
  position: fixed;
  top: 0; right: 0; bottom: 0;
  width: min(960px, 92%);
  max-width: 100%;
  background: var(--cream);
  z-index: 199;
  transform: translateX(100%);
  transition: transform 0.3s ease;
  display: flex;
  overflow: hidden;
  box-shadow: none;
}
body.cart-open .cart-panel {
  transform: translateX(0);
  box-shadow: -16px 0 40px rgba(0, 0, 0, 0.18);
}
body.cart-open { overflow: hidden; }

.cart-panel__close {
  position: absolute;
  top: 0.8rem; right: 0.9rem;
  width: 38px; height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--navy, #1c2f4a);
  border: 1.5px solid var(--gold, #c4a35a);
  border-radius: 50%;
  color: var(--gold, #c4a35a);
  font-size: 1.25rem;
  font-weight: 600;
  line-height: 1;
  cursor: pointer;
  z-index: 3;
  transition: background 0.18s ease, border-color 0.18s ease, transform 0.18s ease, color 0.18s ease;
  box-shadow: 0 2px 6px rgba(0,0,0,0.18);
}
.cart-panel__close:hover,
.cart-panel__close:focus-visible {
  background: var(--gold, #c4a35a);
  border-color: var(--gold, #c4a35a);
  color: var(--navy, #1c2f4a);
  outline: none;
  transform: scale(1.05);
}

.cart-panel__inner {
  display: flex;
  width: 100%; height: 100%;
  position: relative;
}

/* LEFT — artwork ~25% */
.cart-panel__art {
  flex: 0 0 25%;
  background: var(--navy);
  overflow: hidden;
  display: flex;
  align-items: stretch;
  justify-content: center;
  position: relative; 
}
.cart-panel__art img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  
  filter: brightness(0.72) contrast(1.05);
}

.cart-panel__art::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(ellipse at center, rgba(0,0,0,0) 35%, rgba(0,0,0,0.55) 100%);
  z-index: 1;
}

/* MIDDLE — items ~50% on cream */
.cart-panel__items {
  flex: 1 1 50%;
  background: var(--cream);
  padding: 2.4rem 1.8rem 2rem;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.cart-panel__items-title {
  font-family: var(--sc);
  font-weight: 600;
  font-size: 1.4rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--navy);
  margin: 0 0 1.2rem;
  padding-bottom: 0.6rem;
  border-bottom: 1px solid rgba(28, 47, 74, 0.18);
  text-align: left;
}
.cart-panel__items-body {
  flex: 1 1 auto;
  overflow-y: auto;
  margin: 0;
  padding-right: 0.4rem;
}
.cart-panel__empty {
  font-family: var(--body);
  font-style: italic;
  font-size: 1.05rem;
  color: rgba(28, 47, 74, 0.7);
  text-align: center;
  margin: 2rem 0;
}
.cart-panel__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.cart-panel__item {
  display: grid;
  grid-template-columns: 64px 1fr 24px;
  gap: 0.9rem;
  align-items: center;
  padding-bottom: 1rem;
  border-bottom: 1px dotted rgba(28, 47, 74, 0.18);
}
.cart-panel__item:last-child {
  border-bottom: none;
  padding-bottom: 0;
}
.cart-panel__item-thumb {
  width: 64px; height: 64px;
  background: #fff;
  border: 1px solid rgba(28, 47, 74, 0.12);
  overflow: hidden;
  display: flex; align-items: center; justify-content: center;
}
.cart-panel__item-thumb img {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  display: block;
}
.cart-panel__item-body { min-width: 0; }
.cart-panel__item-name {
  font-family: var(--body);
  font-size: 1.02rem;
  line-height: 1.25;
  color: var(--navy);
  margin-bottom: 0.3rem;
  overflow: hidden;
  text-overflow: ellipsis;
}
.cart-panel__item-name a {
  color: var(--navy);
  text-decoration: none;
}
.cart-panel__item-name a:hover { color: var(--burgundy); }
.cart-panel__item-meta {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.5rem;
  font-family: var(--sc);
  font-size: 0.85rem;
  letter-spacing: 0.05em;
  color: rgba(28, 47, 74, 0.85);
}
.cart-panel__item-qty {
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-size: 0.72rem;
  color: rgba(28, 47, 74, 0.65);
}
.cart-panel__item-subtotal {
  font-family: var(--sc);
  font-weight: 600;
  font-size: 0.95rem;
  color: var(--navy);
}
.cart-panel__item-remove {
  width: 24px; height: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: rgba(28, 47, 74, 0.55);
  text-decoration: none;
  font-size: 1.1rem;
  line-height: 1;
  border-radius: 50%;
  transition: background 0.18s ease, color 0.18s ease;
}
.cart-panel__item-remove:hover,
.cart-panel__item-remove:focus-visible {
  color: var(--burgundy);
  background: rgba(107, 58, 58, 0.08);
  outline: none;
}

/* RIGHT — totals ~25% on navy */
.cart-panel__totals {
  flex: 0 0 25%;
  background: var(--navy);
  color: var(--cream);
  padding: 2.4rem 1.4rem 2rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: stretch;
  text-align: center;
  gap: 0.5rem;
}
.cart-panel__totals-label {
  font-family: var(--sc);
  font-weight: 600;
  font-size: 0.9rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--cream);
  opacity: 0.85;
  margin-bottom: 0.4rem;
}
.cart-panel__totals-amount {
  font-family: var(--sc);
  font-weight: 600;
  color: var(--cream);
  font-size: clamp(2rem, 2.6vw, 2.6rem);
  line-height: 1.1;
  margin-bottom: 0.8rem;
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 0.15rem;
  font-variant-numeric: tabular-nums;
}
.cart-panel__totals-symbol {
  color: var(--gold-bright);
  font-family: var(--sc);
  font-weight: 600;
  font-size: 0.85em;
  line-height: 1;
}
.cart-panel__totals-number { color: var(--cream); }
.cart-panel__totals-tail {
  font-size: 0.5em;
  color: rgba(245, 240, 232, 0.7);
  margin-left: 0.3rem;
}
.cart-panel__checkout {
  display: inline-block;
  background: var(--gold-bright);
  color: var(--navy);
  font-family: var(--sc);
  font-weight: 600;
  font-size: 0.92rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  text-decoration: none;
  padding: 0.85rem 1.2rem;
  border: 1px solid var(--gold-bright);
  border-radius: 3px;
  transition: background 0.18s ease, color 0.18s ease, transform 0.18s ease;
}
.cart-panel__checkout:hover,
.cart-panel__checkout:focus-visible {
  background: transparent;
  color: var(--gold-bright);
  outline: none;
  transform: translateY(-1px);
}
.cart-panel__view-cart {
  display: inline-block;
  margin-top: 0.4rem;
  font-family: var(--body);
  font-style: italic;
  font-size: 0.92rem;
  color: rgba(245, 240, 232, 0.75);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.cart-panel__view-cart:hover { color: var(--gold-bright); }

@media (max-width: 768px) {
  .cart-panel {
    width: 100%;
    max-width: 100%;
  }
  .cart-panel__inner {
    flex-direction: column;
    overflow-y: auto;
  }
  .cart-panel__art {
    flex: 0 0 140px;
    width: 100%;
  }
  .cart-panel__art img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 20%;
  }
  .cart-panel__items,
  .cart-panel__totals {
    flex: 0 0 auto;
    width: 100%;
  }
  .cart-panel__items {
    padding: 1.6rem 1.2rem 1.4rem;
    overflow: visible;
  }
  .cart-panel__items-body { overflow: visible; }
  .cart-panel__items-title { font-size: 1.2rem; }
  .cart-panel__totals {
    padding: 1.6rem 1.2rem 2rem;
  }
  .cart-panel__close {
    top: 0.6rem; right: 0.7rem;
    width: 34px; height: 34px;
  }
}

.ptt-footer-silhouette {
  width: 100%;
  margin: 0;
  padding: 0;
  line-height: 0;
  display: block;
  font-size: 0;
}
.ptt-footer-silhouette img {
  display: block;
  width: 100%;
  height: auto;
  margin: 0 0 -1px;
  padding: 0;
  border: 0;
}

.bookstore-flourish-bridge {
  position: relative;
  height: 0;
  width: 100%;
  margin: 0;
  padding: 0;
  pointer-events: none;
  overflow: visible;
  z-index: 0;
}
.bookstore-flourish-bridge::before {
  content: '';
  position: absolute;
  left: 50%;
  top: 0;
  transform: translate(-50%, -50%);
  
  width: 88px;
  height: 140px;
  background: url('images/bookstore-flourish-silhouette.png') center/contain no-repeat;
  pointer-events: none;
  opacity: 0.7;
}
@media (max-width: 600px) {
  .bookstore-flourish-bridge::before {
    width: 62px;
    height: 100px;
  }
}

@media (min-width: 769px) {
  .press-title-carousel {
    position: sticky;
    top: 110px;
    align-self: start;
  }
}

/* Expanded inline endorsements in the right column. Visual hierarchy:
 small uppercase eyebrow heading, then italicized blockquote pull
 quotes with subtle gold accent rule, then attribution in small caps.
 Each item separated by a hairline cream border. */
.pti-endorsements {
  margin-top: 2.2rem;
  padding-top: 1.8rem;
  border-top: 1px solid rgba(196, 163, 90, 0.35);
}
.pti-endorsements__heading {
  font-family: var(--sc, 'Cormorant SC', serif);
  font-size: 1.02rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--gold, #c4a35a);
  margin: 0 0 1.4rem;
}
.pti-endorsements__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
}
.pti-endorsements__item {
  padding: 0;
  border: 0;
}
.pti-endorsements__item + .pti-endorsements__item {
  padding-top: 1.4rem;
  border-top: 1px solid rgba(28, 47, 74, 0.10);
}
.pti-endorsements__quote {
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-style: italic;
  font-size: 1.05rem;
  line-height: 1.55;
  color: var(--navy, #1c2f4a);
  margin: 0 0 0.6rem;
  padding: 0;
  border-left: 2px solid var(--gold, #c4a35a);
  padding-left: 1rem;
}
.pti-endorsements__attr {
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-size: 0.92rem;
  letter-spacing: 0.04em;
  color: rgba(28, 47, 74, 0.78);
  margin: 0;
  padding-left: 1rem;
}
.pti-endorsements__attr strong {
  font-weight: 600;
}
.pti-endorsements__affil {
  font-style: italic;
  color: rgba(28, 47, 74, 0.65);
}

/* Consider These Titles — full-width strip below the hero. 3-up grid
 on desktop, 1-col on mobile. Each card: cover image (aspect 4/5) +
 title + author below. Whole card is a link to /davenant-press/{slug}/. */
.press-title-consider {
  max-width: 1200px;
  margin: 3.5rem auto 0;
  padding: 3rem 2rem 1.5rem;
  border-top: 1px solid rgba(196, 163, 90, 0.35);
}
.press-title-consider__heading {
  font-family: var(--sc, 'Cormorant SC', serif);
  font-size: 1.2rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--gold, #c4a35a);
  text-align: center;
  margin: 0 0 2rem;
}
.press-title-consider__grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2.2rem;
}
.press-title-consider__item {
  margin: 0;
  padding: 0;
}
.press-title-consider__link {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  text-decoration: none;
  color: var(--navy, #1c2f4a);
  transition: transform 0.25s ease;
}
.press-title-consider__link:hover {
  transform: translateY(-2px);
}
.press-title-consider__cover {
  width: 100%;
  aspect-ratio: 4 / 5;
  background: #fbf6ee;
  border: 1px solid rgba(184, 168, 138, 0.30);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.press-title-consider__cover img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.press-title-consider__title {
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-size: 1.15rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  line-height: 1.3;
  margin: 0;
  color: var(--navy, #1c2f4a);
}
.press-title-consider__author {
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-size: 0.92rem;
  font-style: italic;
  color: rgba(28, 47, 74, 0.7);
  margin: 0;
}
@media (max-width: 768px) {
  .press-title-consider {
    padding: 2rem 1.2rem 1rem;
  }
  .press-title-consider__grid {
    grid-template-columns: 1fr;
    gap: 2rem;
  }
}

.pti-about-author,
.pti-pubdetails {
  margin-top: 2.2rem;
  padding-top: 1.8rem;
  border-top: 1px solid rgba(196, 163, 90, 0.35);
}
.pti-about-author__heading,
.pti-pubdetails__heading {
  font-family: var(--sc, 'Cormorant SC', serif);
  font-size: 1.02rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--gold, #c4a35a);
  margin: 0 0 1.2rem;
}
.pti-about-author__body p {
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-size: 1.02rem;
  line-height: 1.55;
  color: var(--navy, #1c2f4a);
  margin: 0 0 0.9rem;
}
.pti-about-author__name {
  font-family: var(--display, 'Cormorant Garamond', serif);
  font-size: 1.18rem;
  font-weight: 600;
  color: var(--navy, #1c2f4a);
  margin: 0.6rem 0 0.5rem;
}
.pti-pubdetails__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}
.pti-pubdetails__list li {
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-size: 0.98rem;
  color: var(--navy, #1c2f4a);
}
.pti-pubdetails__list strong {
  color: rgba(28, 47, 74, 0.78);
  font-weight: 600;
  margin-right: 0.4rem;
}

/* Drop-down below the hero — collapsed by default. */
.press-title-endorse-more {
  max-width: 1200px;
  margin: 2.4rem auto 0;
  padding: 0 2rem;
}
.ptem-tab {
  border-top: 1px solid rgba(196, 163, 90, 0.35);
  border-bottom: 1px solid rgba(196, 163, 90, 0.35);
}
.ptem-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
  padding: 1.1rem 0;
  list-style: none;
  font-family: var(--sc, 'Cormorant SC', serif);
  font-size: 1.02rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--gold, #c4a35a);
}
.ptem-summary::-webkit-details-marker { display: none; }
.ptem-icon {
  font-family: var(--body, serif);
  font-size: 1.4rem;
  line-height: 1;
  color: var(--gold, #c4a35a);
  transition: transform 0.2s ease;
}
.ptem-tab[open] .ptem-icon { transform: rotate(45deg); }
.ptem-body {
  padding: 0.4rem 0 1.6rem;
}
.ptem-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
}
.ptem-item + .ptem-item {
  padding-top: 1.4rem;
  border-top: 1px solid rgba(28, 47, 74, 0.10);
}
.ptem-quote {
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-style: italic;
  font-size: 1.05rem;
  line-height: 1.55;
  color: var(--navy, #1c2f4a);
  margin: 0 0 0.6rem;
  padding-left: 1rem;
  border-left: 2px solid var(--gold, #c4a35a);
}
.ptem-attr {
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-size: 0.92rem;
  color: rgba(28, 47, 74, 0.78);
  margin: 0;
  padding-left: 1rem;
}
.ptem-affil {
  font-style: italic;
  color: rgba(28, 47, 74, 0.65);
}

.pti-page-header__inner {
  flex-direction: column;
  gap: 0.4rem;
}
.pti-page-header__wordmark {
  font-family: var(--sc, 'Cormorant SC', serif);
  font-size: 1.6rem;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--navy, #1c2f4a);
  text-align: center;
  margin: 0;
  font-weight: 500;
}
@media (max-width: 600px) {
  .pti-page-header__wordmark {
    font-size: 1.1rem;
    letter-spacing: 0.2em;
  }
}

.dp-bestsellers-footer .dp-block-cta {
  border-color: var(--gold, #c4a35a);
  color: var(--gold, #c4a35a);
}
.dp-bestsellers-footer .dp-block-cta:hover {
  background: var(--gold, #c4a35a);
  color: var(--navy, #1c2f4a);
}
.dp-bestsellers-footer .dp-block-cta-arrow {
  background: var(--navy, #1c2f4a);
  color: var(--gold, #c4a35a);
}

.lm-detail-lecturer {
  background: #17452a;                 /* DH green */
  border-color: transparent;
}
.lm-detail-lecturer__heading {
  color: #d8b870;                       /* gold-bright */
  border-bottom-color: rgba(216,184,112,0.4);
}
.lm-detail-lecturer__name,
.lm-detail-lecturer p {
  color: #faf5ef;                       /* cream */
}
.lm-detail-lecturer__name {
  font-style: italic;
}
.lm-detail-lecturer__body {
  display: grid;
  grid-template-columns: minmax(140px, 200px) 1fr;
  gap: 1.5rem;
  align-items: start;
}
.lm-detail-lecturer__portrait {
  width: 100%;
  max-width: 200px;
  height: auto;
  border-radius: 6px;
  display: block;
  border: 2px solid #d8b870;
}
.lm-detail-lecturer__text {
  min-width: 0;
}
@media (max-width: 600px) {
  .lm-detail-lecturer__body {
    grid-template-columns: 1fr;
    gap: 1rem;
    justify-items: center;
    text-align: center;
  }
  .lm-detail-lecturer__portrait {
    max-width: 160px;
  }
}

.lm-intro__back-link {
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-size: 0.95rem;
  color: var(--ink, #1a2840);
  margin: 0 0 0.4rem;
  display: flex;
  gap: 0.5rem;
  align-items: center;
  flex-wrap: wrap;
}
.lm-intro__back-link a {
  color: var(--ink, #1a2840);
  text-decoration: none;
  border-bottom: 1px dotted rgba(26,40,64,0.5);
  padding-bottom: 1px;
  transition: color 0.15s, border-bottom-color 0.15s;
}
.lm-intro__back-link a:hover,
.lm-intro__back-link a:focus {
  color: var(--gold, #c4a35a);
  border-bottom-color: var(--gold, #c4a35a);
}

.dh-product-main {
  max-width: 1100px;
  margin: 0 auto;
  padding: 3rem 1.5rem 5rem;
  background: var(--cream, #FAF5EF);
  color: var(--text, #1f1e1c);
}
.dh-product .product_title.entry-title,
.dh-product .product_title {
  font-family: var(--sc, "Cormorant SC", serif);
  font-size: clamp(1.6rem, 3vw, 2.4rem);
  letter-spacing: 0.02em;
  color: var(--navy, #1a2c44);
  margin: 0 0 1rem;
}
.dh-product .woocommerce-Price-amount,
.dh-product .price {
  color: var(--burgundy, #9D4F44);
  font-size: 1.25rem;
}
.dh-product .single_add_to_cart_button {
  background: var(--navy, #1a2c44);
  color: var(--cream, #FAF5EF);
  font-family: var(--sc, "Cormorant SC", serif);
  font-size: 1rem;
  letter-spacing: 0.08em;
  padding: 0.75rem 1.5rem;
  border: none;
  border-radius: 2px;
  cursor: pointer;
}
.dh-product .single_add_to_cart_button:hover {
  background: var(--burgundy, #9D4F44);
}
.dh-product .variations select {
  font-family: var(--body, "Cormorant Garamond", serif);
  padding: 0.5rem;
  border: 1px solid rgba(31,30,28,0.3);
  background: white;
}
.dh-product .summary {
  padding: 0 1rem;
}
.dh-product .woocommerce-product-details__short-description,
.dh-product .woocommerce-Tabs-panel {
  font-family: var(--body, "Cormorant Garamond", serif);
  line-height: 1.7;
}
.dh-product .woocommerce-product-gallery img {
  max-width: 100%;
  height: auto;
}
/* Hide WC's default breadcrumb (we use davenant's own nav) */
.dh-product .woocommerce-breadcrumb { display: none; }

.dcc-course__cta {
  margin: 0.8rem 0 0;
}
.dcc-course__register {
  display: inline-block;
  font-family: var(--sc, "Cormorant SC", serif);
  font-size: 0.95rem;
  letter-spacing: 0.08em;
  color: var(--burgundy, #9d4f44);
  text-decoration: none;
  border-bottom: 1px solid currentColor;
  padding-bottom: 1px;
  transition: color 0.15s ease;
}
.dcc-course__register:hover {
  color: var(--navy, #1a2c44);
}
.dcc-course__register--soon {
  color: rgba(31,30,28,0.55);
  font-style: italic;
  border-bottom-style: dotted;
}

.mlitt-form-wrap { max-width: 720px; margin: 2rem auto; }
.mlitt-form__radios { display: flex; flex-direction: column; gap: 0.4rem; }
.mlitt-form__radio {
  display: flex; align-items: flex-start; gap: 0.6rem;
  font-family: var(--body, 'Cormorant Garamond', serif);
  font-size: 1rem; line-height: 1.4; color: var(--ink, #1a2840);
  cursor: pointer;
}
.mlitt-form__radio input[type="radio"] { margin-top: 0.25rem; flex-shrink: 0; }
.mlitt-form__hint {
  font-size: 0.92rem; color: rgba(26,40,64,0.7);
  margin: 0.1rem 0 0.6rem; font-style: italic;
  font-family: var(--body, 'Cormorant Garamond', serif);
}

/* v0.31.43.76 (#314 Audit 2.0) — Browse by Collection on /davenant-press/ */
.dp-collections { padding: 3.5rem 1.25rem 4rem; }
.dp-collections-inner { max-width: 920px; margin: 0 auto; }
.dp-collections-header { text-align: center; margin-bottom: 2rem; }
.dp-collections-title { font-family: var(--font-display, Georgia, serif); font-size: clamp(1.6rem, 3vw, 2.25rem); margin: 0 0 .75rem; }
.dp-collections-rule { display: block; width: 64px; height: 2px; margin: 0 auto; background: var(--gold, #b08d57); }
.dp-collections-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 1rem; }
.dp-collections-item { margin: 0; }
.dp-collections-link { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.1rem 1.4rem; border: 1px solid rgba(176,141,87,.4); border-radius: 4px; background: #fff; color: inherit; text-decoration: none; transition: border-color .18s ease, transform .18s ease, box-shadow .18s ease; }
.dp-collections-link:hover, .dp-collections-link:focus-visible { border-color: var(--gold, #b08d57); transform: translateY(-2px); box-shadow: 0 6px 18px rgba(0,0,0,.08); }
.dp-collections-link-label { font-weight: 600; }
.dp-collections-link-arrow { color: var(--gold, #b08d57); font-size: 1.15rem; flex: 0 0 auto; }

/* v0.31.43.86 (Audit 2.0 #3): data-driven series collections via [davenant_series].
   Reuses .press-collection-grid / .pc-card; only the wrapper + heading need rules. */
.davenant-series-collection { margin: 1.5rem 0 2.5rem; }
.davenant-series-collection .press-collection-count { margin: 0 0 1rem; opacity: .75; font-size: .95rem; }
.press-collection-series-heading {
  font-family: var(--font-serif, Georgia, serif);
  font-size: clamp(1.4rem, 2.4vw, 2rem);
  margin: 0 0 .75rem;
}

/* ============================================================
   Events page (/events/) — Audit 2.0 #1. Theme-consistent
   chrome + a card grid driven by davenant_get_di_events().
   ============================================================ */
.events-main { background: var(--cream); }
.ev-section { padding: 4.5rem 1.5rem 5.5rem; }
.ev-section__inner { max-width: 1100px; margin: 0 auto; text-align: center; }
.ev-eyebrow {
  font-family: var(--font-sans, "Inter", sans-serif);
  text-transform: uppercase; letter-spacing: .18em; font-size: .8rem;
  color: var(--gold); margin: 0 0 .6rem; font-weight: 600;
}
.ev-title {
  font-family: "Cormorant Garamond", serif; color: var(--navy);
  font-size: 2.6rem; line-height: 1.1; margin: 0 0 .8rem; font-weight: 600;
}
.ev-lede {
  font-family: "Cormorant Garamond", serif; color: var(--navy);
  font-size: 1.25rem; max-width: 640px; margin: 0 auto 3rem; opacity: .85;
}
.ev-list {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1.5rem; text-align: left;
}
.ev-card { display: flex; }
.ev-card__link {
  display: flex; flex-direction: column; width: 100%;
  background: #fff; border: 1px solid rgba(28,47,74,.12);
  border-radius: 6px; padding: 1.8rem 1.6rem; color: var(--navy);
  text-decoration: none; transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
a.ev-card__link:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 28px rgba(28,47,74,.14);
  border-color: var(--gold);
}
.ev-card__link--static { cursor: default; }
.ev-card__title {
  font-family: "Cormorant Garamond", serif; font-size: 1.5rem;
  line-height: 1.2; margin: 0 0 .5rem; color: var(--navy); font-weight: 600;
}
.ev-card__meta {
  font-family: var(--font-sans, "Inter", sans-serif);
  font-size: .92rem; letter-spacing: .02em; color: rgba(28,47,74,.7);
  margin: 0 0 1.2rem;
}
.ev-card__cta {
  margin-top: auto; font-family: var(--font-sans, "Inter", sans-serif);
  text-transform: uppercase; letter-spacing: .12em; font-size: .78rem;
  font-weight: 600; color: var(--gold);
}
a.ev-card__link:hover .ev-card__cta { color: var(--gold-bright); }
.ev-empty {
  font-family: "Cormorant Garamond", serif; font-size: 1.25rem;
  color: var(--navy); opacity: .8;
}
@media (max-width: 600px) {
  .ev-title { font-size: 2.1rem; }
  .ev-section { padding: 3.5rem 1.2rem 4rem; }
}

/* ===== Generic page/post content typography parity (page.html / single.html) =====
   Generic pages with no bespoke page-{slug} template render via page.html:
   wp:post-title (h1) + wp:post-content. The block theme's default heading scale
   (theme.json elements: h1=xx-large 48px, h2=x-large; elements.heading.fontFamily=body)
   renders these LARGER than the classic site and in the body face, inflating page
   height (the 200-480px drift on davenant-house / submissions / davenant-retrievals).
   Match prod exactly: h1 32px Cormorant SC w700 (mb 32px), h2 24px Cormorant Garamond
   w600, line-height 1.6. Scoped to post-title / post-content so the bespoke,
   pattern-built templates (which do not put headings in post-content) are untouched.
   Verified prod target is flat across 1440/1024/768/375. (v0.1.5) */
/* Generic page main spacing parity (v0.1.8): classic drives vertical rhythm with explicit
   wp:spacer blocks and renders flow children at margin 0 (prod-measured: intro/body/Convivium
   p margin-top = 0). The block theme injects --wp--style--block-gap (24px) between siblings
   ON TOP of those spacers, inflating height (Submissions +128, Retrievals +400+). Zero the gap
   on the generic main and reset flow-child margins; explicit spacers carry their own height so
   they're unaffected and reproduce prod spacing. Excludes query-loop cards. */
.page-main{ --wp--style--block-gap: 0px; }
/* WP bakes the layout gap as a LITERAL into generated .wp-container-* rules, so the
   --wp--style--block-gap override above does not reach them. Zero the gap margins DIRECTLY
   on every flow child inside the generic page main — post-content itself (gap from title),
   its direct children, and the children of any nested group/column at any depth (groups,
   columns, spacers, forms, CTA, p, headings). Specificity > the generated .wp-container rule
   (which is not !important). Excludes query-loop card internals; spacers keep explicit height.
   (v0.1.9) */
.page-main > .wp-block-post-content,
.page-main .wp-block-post-content *{
  margin-top:0;
  margin-block-start:0;
}
/* Note (v0.1.10): the margin reset deliberately does NOT exclude .wp-block-query — prod
   renders query-card spacer/title/meta at margin 0 too, so the cards (e.g. Retrievals first
   card 516 vs 420) need them zeroed. The card GRID spacing is CSS grid `gap` (not margin) so
   it is unaffected, and wp:spacer height is `height` (not margin) so explicit spacer heights
   survive. The query exclusion is kept ONLY on the FONT/heading rules below so card titles do
   not inherit the page-title face/size. */

/* Page title (h1) — scoped to the DIRECT child of .page-main so query-loop card post-titles
   do NOT inherit small-caps / 32px / margin-bottom:32px (v0.1.8 leak fix). */
.page-main > .wp-block-post-title{
  font-family:'Cormorant SC', Georgia, serif;
  font-size:32px;
  line-height:1.6;
  font-weight:700;
  margin-top:0;
  margin-bottom:32px;
}

/* 2026-07-26 PARITY — /my-account page title sat 48px too far right at 390.
   MEASURED from the harness's same-install capture pair: the "MY ACCOUNT" glyphs start
   at x=34 in classic-on-dev and x=82 in block. A computed-style probe on dev showed the
   H1 carrying `padding-left: 48px` (from WordPress's global-styles padding on the
   post-title block) on top of `main.page-main`'s own 32px — classic applies no such
   padding to the title.
   VERIFIED REAL, NOT NOISE: two harness runs with no code change returned 1.539%
   byte-identical, and a whole-page shift test showed dx=0 fits best (0.488%) — so it is
   this element specifically, not the page. Scoped to the account page. */
body.woocommerce-account .page-main > .wp-block-post-title {
  padding-left: 0 !important;
  padding-right: 0 !important;
}
/* 2026-06-25: the prior `.wp-block-post-content h{1,2,3,4,6}` rule-block
   was specificity (0,0,2,1) and silently defeated every bespoke single-class
   heading rule (.about-welcome__heading, .pillars-h2, .lm-hero__title etc.)
   that lacked !important. Ultron's full-page audit caught the regression
   across 11 pages — every section heading was falling to this default's
   24px/1.6/700 instead of the class's own size/weight. The defaults here
   were just replicating the UA scale + setting Cormorant family, both of
   which the body inherit chain (theme.json fontFamily=body + UA defaults)
   already provide. Removing the rule-block lets the bespoke class rules
   win their own elements without an !important arms race. The single-
   product / cart overrides are KEPT (those scope to body.single-product
   / body.dav-cart-page which is higher-specificity and intended). */
body.single-product .wp-block-post-content h2:not(.wp-block-query *),
body.single-product .woocommerce div.product h2,
body.single-product .woocommerce-Tabs-panel h2,
body.single-product .related.products > h2,

/* #62: content hero headings (e.g. an 80px single-word "Submissions") must break rather
   than overflow their box and clip at the mobile viewport edge. overflow-wrap is independent
   of any inline font-size, so no !important is needed. */
.wp-block-post-content :where(h1,h2,h3,h4,h5,h6):not(.wp-block-query *),
.entry-content :where(h1,h2,h3,h4,h5,h6) {
  overflow-wrap: break-word;
}


/* Generic-page columns + in-content nav GAP parity (v0.1.11). These are flex `gap`, not
   margins, so the margin reset above does not reach them.
   1) wp:columns: classic (non-FSE, no theme block-gap) renders columns at WP core's default
      2em (32px) gap; the block theme's 1.5rem (24px) makes dev columns narrower and they wrap
      ~51px taller (House 699 vs prod 648). Restore 32px on both axes (also normalizes the
      stacked row-gap at <=768).
   2) In-content vertical nav (the Categories "opd-menu--fade-all" wp:navigation on Retrievals):
      prod item gap is 8px, dev is 16px -> +8px/item x ~8 items = +64px once stacked at <=768.
      Scoped to post-content so the site header/footer nav is untouched. */
.page-main .wp-block-post-content .wp-block-columns{ gap:2em; }
.page-main .wp-block-post-content .wp-block-navigation.is-vertical{ gap:8px; }

/*   3) Retrievals book covers (Query-Loop featured images, figure.aligncenter): prod
        left-pins them (margin:0 -> x64 at the 247px inner-container left edge), while the
        block theme honored core .aligncenter auto-margins and centered them (-> x94.5),
        ghosting all four covers + cascading the footer vs prod. Pin left to match prod.
        Scoped to post-content so genuinely-centered images elsewhere are untouched. */
.page-main .wp-block-post-content .wp-block-post-featured-image.aligncenter{ margin-left:0 !important; margin-right:0 !important; }

/* ============================================================
   Single post (single.html) — match classic prod exactly:
   full-width edge-to-edge, 32px title, date · author meta line.
   Scoped to .single-main so pages/front-page are untouched.
   ============================================================ */
.single-main.alignfull { max-width: none; }
.single-main,
.single-main > .single-article,
.single-main .single-article__header,
.single-main .single-article__content,
.single-main .wp-block-post-content {
  max-width: none;
  padding-left: 0;
  padding-right: 0;
  margin-left: 0;
  margin-right: 0;
}
.single-main .single-article__title { margin: 0 0 0 0; text-align: left; }
.single-main .single-article__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  column-gap: 0.5ch;
  row-gap: 0;
  margin: 0;
  font-size: 16px;
  line-height: 1.6;
  color: var(--wp--preset--color--navy);
}
.single-main .single-article__meta > *,
.single-main .single-article__meta time,
.single-main .single-article__meta a,
.single-main .single-article__meta .wp-block-post-date,
.single-main .single-article__meta .wp-block-post-author-name {
  margin: 0;
  padding: 0;
  font-size: 16px;
  line-height: 1.6;
  font-weight: 400;
  color: var(--wp--preset--color--navy);
  text-decoration: none;
}
.single-main .single-article__meta-sep { margin: 0; }

/* single: prod body is fully flush — every paragraph/list mt0 mb0, zero blockGap.
   Dev's 1.5rem blockGap added 24px between blocks (5 gaps = +120px). Match prod. */
.single-main .single-article__content { --wp--style--block-gap: 0px; }
.single-main .single-article__content > * { margin-top: 0; margin-bottom: 0; }

/* single: also zero the article-level header->content gap (24px blockGap between
   .single-article__header and post-content). Prod content top = meta bottom (0 gap). */
.single-main .single-article > * + * { margin-top: 0; }

/* WC block-notice empty-cart parity (Gap5 follow-up, 0.1.35): on dev WooCommerce
 * renders the empty-cart notice as the block component
 * div.wc-block-components-notice-banner.is-info (svg info icon + __content),
 * NOT the classic .cart-empty.woocommerce-info. Mirror the plain parchment look
 * (cream bg / ornate border / gold left rule / no icon / navy body text) so the
 * /cart/ empty state matches prod. CSS normalization only. */
body.dav-cart-page .wc-block-components-notice-banner.is-info,
body.dav-cart-page .cart-empty.wc-block-components-notice-banner {
  font-family: var(--body);
  font-size: 1.1rem;
  color: var(--navy);
  background: var(--cream);
  border: 1px solid var(--border-ornate);
  border-left: 4px solid var(--gold);
  /* pixel-match prod .cart-empty.woocommerce-info box model; !important beats WC block notice CSS (16px all) */
  padding: 24px 28.8px !important;
  margin: 0 0 35.2px !important;
  border-radius: 6px;
  box-shadow: none;
  gap: 0;
}
body.dav-cart-page .wc-block-components-notice-banner.is-info > svg,
body.dav-cart-page .wc-block-components-notice-banner > svg,
body.dav-cart-page .wc-block-components-notice-banner__content > svg {
  display: none !important;
}
body.dav-cart-page .wc-block-components-notice-banner__content {
  color: var(--navy);
  font-family: var(--body);
  margin: 0;
  /* prod empty-notice text line-height 28.16px (1.6); dev block default 26.4px (1.5)
     -> closes the last 1.75px notice-height delta (76.39 -> 78.14) */
  line-height: 1.6 !important;
}

/* ------------------------------------------------------------------
 * 0.1.39 — Filled-cart top-offset parity.
 * The block theme's core layout system zeroes the first-child top margin
 * inside the constrained post-content wrapper, so .dav-cart-wrap loses its
 * 3rem top margin on dev (computed marginTop 0). Classic prod has no such
 * reset and keeps it (1440 wrap topY: prod 345.94 vs dev 302.78 = -43px),
 * which re-misaligns the whole cart below it and inflates the visual diff.
 * Re-assert with body.dav-cart-page scope; mirror the existing breakpoint
 * margin-top values (base 3rem / <=768 2rem / <=480 1.4rem).
 * ------------------------------------------------------------------ */
body.dav-cart-page .dav-cart-wrap { margin-top: 3rem; }
@media (max-width: 768px) { body.dav-cart-page .dav-cart-wrap { margin-top: 2rem; } }
@media (max-width: 480px) { body.dav-cart-page .dav-cart-wrap { margin-top: 1.4rem; } }

/* ------------------------------------------------------------------
 * 0.1.40 — Filled-cart actions/coupon row parity.
 * WC's block form CSS overrides the theme's .input-text rule on dev:
 *   #coupon_code renders h50 (prod h31, +19px) with padding 0/0;
 *   .dav-cart-btn apply/update get line-height:normal -> h36.59
 *   (prod h33.19/32.38 at line-height 13.6px).
 * That inflated the actions row (+21 @1440) and, with the full-width
 * input forcing the Apply button to wrap, +57 @768. Pin both to the
 * prod box model with body-scope + !important to beat WC block CSS.
 * Prod targets (computed, add-to-cart "Christ and His Work"):
 *   coupon input h31 padT/B 6/5 fontSize 15.2 box-sizing border-box;
 *   apply/update line-height 13.6px (padding 8.8/8.8 already matches).
 * ------------------------------------------------------------------ */
body.dav-cart-page .dav-cart-table td.actions .coupon input.input-text,
body.dav-cart-page #coupon_code {
  height: 31px !important;
  min-height: 31px !important;
  padding-top: 6px !important;
  padding-bottom: 5px !important;
  font-size: 15.2px !important;
  line-height: normal !important;
  box-sizing: border-box !important;
}
body.dav-cart-page .dav-cart-table td.actions .dav-cart-btn,
body.dav-cart-page .dav-cart-table td.actions button {
  line-height: 13.6px !important;
}

/* ------------------------------------------------------------------
 * 0.1.41 — 768 (tablet band) actions-row inline parity.
 * Notice-free, wrap topY + 1440/390 actions rows already match prod.
 * Remaining 768 gap: prod keeps the coupon input + Apply button inline
 * (compact, actions 129.34), but WC block CSS lets dev's input fill the
 * row (flex:1 1 auto) and renders buttons full-width, wrapping Apply onto
 * its own line -> actions 161 (+31.8). Keep input+Apply on one line at the
 * tablet band ONLY (481-768). At <=480 prod ALSO stacks full-width
 * (390 actions already matched 173.94), so that band is left untouched.
 * ------------------------------------------------------------------ */
@media (min-width: 481px) and (max-width: 768px) {
  body.dav-cart-page .dav-cart-table td.actions .coupon {
    flex-wrap: nowrap;
    align-items: center;
  }
  body.dav-cart-page .dav-cart-table td.actions .coupon input.input-text {
    flex: 1 1 auto;
    min-width: 0;
  }
  body.dav-cart-page .dav-cart-table td.actions .coupon .dav-cart-btn {
    width: auto !important;
    display: inline-block !important;
    flex: 0 0 auto;
    white-space: nowrap;
  }
}

/* ------------------------------------------------------------------
 * 0.1.42 — Filled-cart totals heading font-size (root of BOTH big 1440
 * buckets). The theme rule sets .dav-cart-totals__heading to 0.92rem
 * (prod computes fs14.72/lh23.552, h23.55) but the block theme's global
 * h2 styling overrides it on dev to fs24/lh38.4 (h38.39, +14.85). That
 * makes the totals column +8.45 taller -> the wrap (max-column) +8.45 ->
 * the still-life column (align-self:stretch) +8.45 -> object-fit:cover
 * RESCALES the whole 1115x1800 image at the new height, remapping ~97%
 * of its pixels (the "still-life 37.7%" diff bucket) AND shifting the
 * footer (the "below-wrap 38.3%" bucket). One pin fixes all three.
 * ------------------------------------------------------------------ */
body.dav-cart-page .dav-cart-totals__heading {
  font-size: 0.92rem !important;
  line-height: 1.6 !important;
}

/* ------------------------------------------------------------------
 * 0.1.98 — Populated cart-actions row parity (the coupon input + update
 * cart button residual). Diagnostic dump showed block was rendering:
 *   coupon_code input  : 215w (vs classic 160) padding 16.72px (vs 6px)
 *                        margin-right 12.16px (vs 4px)
 *   update_cart button : 152w (vs 141) padding 19.2/8.8 (vs 13.6/8.4)
 * Block theme's FSE form-field defaults + the wp-element-button override
 * inflate both. Pin to classic exact metrics, scoped to the cart page.
 * ------------------------------------------------------------------ */
body.dav-cart-page .woocommerce-cart-form input[name="coupon_code"],
body.dav-cart-page .dav-cart-table td.actions .coupon input.input-text {
  width: 160px !important;
  padding: 6px !important;
  margin-right: 4px !important;
  border-radius: 3px !important;
}
body.dav-cart-page .woocommerce-cart-form button[name="update_cart"],
body.dav-cart-page .dav-cart-table td.actions button[name="update_cart"] {
  padding: 8.4048px 13.6px !important;
  line-height: 16px !important;
}

/* 2026-07-26 — CART OVERFLOW AT PHONE WIDTH.
   RESEARCHED rather than guessed, after four failed attempts (David: "make code research
   a hard rule rather than guesing and poking around for hours").
   A/B probe of the SAME page under BOTH themes on the same install @390:
       CLASSIC (renders correctly):  table-layout auto | border-collapse separate | right=349
       BLOCK   (mine, broken):       table-layout fixed | border-collapse collapse | right=330
   So classic contains its cells with the DEFAULT table algorithm and no mobile overrides
   at all. Every rule I had added — table-layout:fixed, border-collapse:collapse, forced
   widths on tbody/tr, max-width on td — was a deviation FROM the working implementation,
   and each one moved the cells further out of the box.
   The fix is therefore to STOP overriding: keep only the container constraint so the
   table cannot exceed its parent, and let the browser's own table algorithm place the
   cells exactly as it does for classic. */
@media (max-width: 600px) {
  body.dav-cart-page .woocommerce-cart-form,
  body.dav-cart-page .dav-cart-table {
    max-width: 100% !important;
    box-sizing: border-box !important;
  }
}

/* ------------------------------------------------------------------
 * 0.1.103 — Tablet (481-768) cart-actions row pin. Probe at 768: classic
 * cart_actions h=129.34, block h=123.75 — block is 5.6px SHORTER (the
 * 0.1.41 inline rule over-compressed). Pin to classic exact height to
 * restore the missing 5.6px. Cascades up to items/wrap height parity.
 * ------------------------------------------------------------------ */
@media (min-width: 481px) and (max-width: 768px) {
  body.dav-cart-page .dav-cart-table tr.actions,
  body.dav-cart-page .dav-cart-table td.actions {
    height: 129.34px !important;
  }
}
/* ------------------------------------------------------------------
 * 0.1.103 — Mobile (<=480) cart-actions row pin. Probe at 390: classic
 * cart_actions h=173.94, block h=176.34 — block is 2.4px TALLER (same
 * +2.4 drift the desktop fix addresses). Pin to classic exact height.
 * ------------------------------------------------------------------ */
@media (max-width: 480px) {
  body.dav-cart-page .dav-cart-table tr.actions,
  body.dav-cart-page .dav-cart-table td.actions {
    height: 173.94px !important;
  }
}

/* ------------------------------------------------------------------
 * 0.1.43 — Filled-cart items title size (the wrapH / still-life lever).
 * .dav-cart-items__title carries the theme clamp(1.7rem,2.4vw,2.2rem)
 * (prod computes fs34.56/lh55.296, h70.69) but the block theme's global
 * heading typography shrinks it on dev to h66.58 (-4.11). The items
 * column is the tallest -> it sets the wrap height -> the still-life
 * column (align-self:stretch) -> object-fit:cover. So that -4.11 keeps
 * dev's wrap 3.29 short, which rescales the cover photo and lights up
 * ~97% of the still-life region (the 38% diff bucket). Pin the title to
 * the theme clamp + lh1.6 with !important to restore the size and close
 * the column height. Also a real (slightly-small title) visible fix.
 * ------------------------------------------------------------------ */
body.dav-cart-page .dav-cart-items__title {
  /* v0.1.97 — block theme's FSE h1 typography (Cormorant Garamond / 700) was
   * winning over the .dav-cart-items__title rule above and shipping the cart
   * h1 as serif Garamond instead of the classic Cormorant SC small-caps look.
   * That mis-sized the items column, which cascaded into still-life image
   * scaling differences and the bulk of the populated-cart pixel diff.
   * Pin family + weight with !important so the cart h1 matches classic exactly.
   * (No text-transform: Cormorant SC is already a small-caps font.) */
  font-family: var(--sc) !important;
  font-weight: 600 !important;
  font-size: clamp(1.7rem, 2.4vw, 2.2rem) !important;
  line-height: 1.6 !important;
  letter-spacing: 0.04em !important;
}
/* 0.1.44 — restore the <=480 title size. The clamp !important above (no media
 * query) also overrode prod's small-screen rule, leaving dev's 390 title 2.4px
 * oversized (27.2 vs prod 24.8 = 1.55rem). prod: 768 title is 27.2px/1.7rem
 * (clamp min, already matched above); <=480 is 1.55rem (24.8px @390). lh:1.6
 * already matches prod at every width. */
@media (max-width: 480px) {
  body.dav-cart-page .dav-cart-items__title { font-size: 1.55rem !important; }
}


/* 0.1.52 — 404 page parity. block theme had no 404.html (fell back to index.html =
 * blog loop) and no .error-404 styles (these live only in classic style.css).
 * Ported verbatim from classic 404.php styling so block 404.html matches prod. */
.error-404-main { background: var(--cream, #f5f0e8); }
.error-404 { max-width: 760px; margin: 0 auto; padding: 7rem 2rem 8rem; text-align: center; }
.error-404__code { font-family: 'Cormorant SC', serif; font-size: 6rem; line-height: 1; color: var(--gold, #c4a35a); margin: 0; letter-spacing: .04em; }
.error-404__title { font-family: 'Cormorant SC', serif; font-size: 2.4rem; color: var(--navy, #1c2f4a); margin: .4rem 0 1rem; }
.error-404__text { font-family: 'Cormorant Garamond', serif; font-size: 1.2rem; color: var(--ink, #3a3a3a); margin: 0 auto 2rem; max-width: 46ch; }
.error-404__cta { display: inline-block; font-family: 'Inter', sans-serif; font-weight: 700; text-transform: uppercase; letter-spacing: .22em; font-size: .85rem; color: #fff; background: var(--navy, #1c2f4a); padding: .9em 2em; border-radius: 2px; text-decoration: none; }
.error-404__cta:hover { background: var(--navy-deep, #142139); color: #fff; }
@media (max-width: 600px) { .error-404 { padding: 4.5rem 1.5rem 5.5rem; } .error-404__code { font-size: 4.2rem; } .error-404__title { font-size: 1.8rem; } }

/* 0.1.52 — search/index parity. index.html now inherits the main query (was a fixed
 * 10-latest-posts query that ignored the search term -> dev search showed 10 posts for
 * any term and == 404). Per-item spacing to match classic article.index-article. */
.index-main .wp-block-post { margin-bottom: 2rem; }
/* 0.1.53 — search result titles: block post-title inherits the block-theme display h2
 * (42px) vs classic search h2 (24px), the sole remaining search height delta
 * (+29px/title x ~10 results). Pin to prod's computed 24px/38.4 line-height. */
.index-main .wp-block-post-title,
.index-main .wp-block-post-title a { font-size: 24px !important; line-height: 38.4px !important; }

/* ── Order-received (thank-you) parity ───────────────────────────────────────
   v0.1.88 — keep this scoped to the order-received page. The classic template
   uses the site page title + page-content/opd-centered wrapper with a 57px spacer,
   then Woo's default floated overview/table/address styling. This keeps the
   v0.1.85 desktop/tablet spacing baseline; the v0.1.86 trim and v0.1.87 duplicate
   h1 hide both worsened pixels. Mobile remains separate. */
body.woocommerce-order-received main.page-main--order-confirmation {
  padding-top: 0;
  /* 2026-07-25 PARITY — measured from the harness's OWN same-install capture pair
     (block vs classic on dev, the gate's actual baseline — NOT prod):
       content bands above the footer: classic (6,132) (185,196) (237,241)
                                       block   (6,132) (185,196) (261,265)
     The first two bands match to the pixel; only the footer's top edge sits +24px.
     The gap between last content and footer is 1px in BOTH, so the 24px is added by
     this main's own bottom margin (computed 32px) rather than anything below it.
     32 - 24 = 8px.
     2026-07-25 CORRECTION: 8px OVERSHOT at 1440 — the next harness run put block 21px
     ABOVE classic (bands: classic 185/237, block 164/216) while 768 improved sharply
     (12.894% -> 4.713%). So the original 32px was closer at desktop than 8px is.
     8 + 21 = 29px. Keeping one number for both breakpoints deliberately: the earlier
     per-breakpoint edits are what let this page drift in two directions at once. */
  margin-bottom: 29px !important;
}
body.woocommerce-order-received .page-title--order-confirmation {
  font-family: var(--sc) !important;
  font-size: 32px !important;
  line-height: 38.4px !important;
  font-weight: 700 !important;
  margin: 96px auto 0 !important;
  /* 2026-07-25 PARITY: was `center`. MEASURED against prod classic — the h1 occupies
     the SAME box (x=302, w=836, top=96) in both themes, but classic computes
     text-align:start while we forced center, so the words sat in a different place
     and the diff lit up ~22% of the page. Match prod. */
  text-align: start;
}
body.woocommerce-order-received .wp-block-woocommerce-legacy-template h1 {
  display: none !important;
}
/* 2026-07-25 PARITY — WooCommerce's newer order-confirmation blocks render prose the
   classic (legacy-template) checkout never showed. MEASURED main-text on
   /checkout/order-received/47112/:
     classic (55 chars): "Order received Thank you. Your order has been received."
     block  (209 chars): ...plus "Great news! Your order has been received, and a
                         confirmation will be sent to your email address."
                         and a "Log in here" button.
   Those two elements are 51px + 46px, and account for the block page running 77px
   taller (818 -> 895) and the 30-34% pixel diff that blocks the cutover.
   The cutover contract is that customers see NO change, so suppress them to match
   what the live site shows today.
   NOTE FOR REVIEW: this HIDES genuinely useful copy (email-confirmation notice +
   account login link). Recommend re-enabling deliberately AFTER cutover as a
   visible-change decision, rather than smuggling it in as a side effect. */
body.woocommerce-order-received .wc-block-order-confirmation-status-description,
body.woocommerce-order-received .wc-block-order-confirmation-status a.button {
  display: none !important;
}

/* 2026-07-25 PARITY — the 57px wp:spacer in templates/order-confirmation.html has no
   counterpart in the classic layout. MEASURED from the harness's own same-install
   capture pair (content-row analysis of the PNGs, not a re-render):
     @1440 the "Thank you..." band starts at row 185 in classic vs 245 in block (+60)
     @768  the same band starts at 301 vs 409 (+108, the spacer plus the larger
           mobile heading block above it)
   Collapse the spacer so the confirmation copy sits where prod puts it. Kept in the
   template (rather than deleted) so the editor still shows the intended structure. */
body.woocommerce-order-received .order-confirmation-spacer {
  height: 0 !important;
  min-height: 0 !important;
}

body.woocommerce-order-received .woocommerce-order {
  margin-top: 57px !important;
}
/* 2026-07-25: scoped to the order content for the same reason as the size rules —
   a bare `body.<page> h2` selector reaches the global footer headings. */
body.woocommerce-order-received .woocommerce-order h1,
body.woocommerce-order-received .woocommerce-order h2,
body.woocommerce-order-received .page-title,
body.woocommerce-order-received .woocommerce-order-details__title,
body.woocommerce-order-received .woocommerce-column__title {
  font-family: var(--sc) !important;
}
/* 2026-07-25 PARITY — the block markup does NOT use .woocommerce-thankyou-order-received;
   WooCommerce's newer block emits `.wc-block-order-confirmation-status`, and our own
   template asks for {"fontSize":"large"} on it. SEEN in the harness's same-install
   capture pair: classic renders "Thank you. Your order has been received." as small
   body text, block renders it ~2x larger, which pushes the whole footer down and kept
   the page at ~22% diff after the height and alignment fixes. Include the block class
   so both themes show the same line at the same size. */
body.woocommerce-order-received .woocommerce-notice,
body.woocommerce-order-received .woocommerce-thankyou-order-received,
body.woocommerce-order-received .wc-block-order-confirmation-status,
body.woocommerce-order-received .wc-block-order-confirmation-status p {
  font-family: var(--body) !important;
  font-size: 16px !important;
  line-height: 25.6px !important;
  font-weight: 400 !important;
}
/* 2026-07-25 SCOPE FIX — this bare `body.woocommerce-order-received h2` selector is
   page-wide, so it also hit the GLOBAL FOOTER headings (`<h2 class="site-footer-v2__title">`
   in patterns/footer-inner.php) and, being !important, won every time.
   MEASURED on /checkout/order-received/47112/: footer "MISSION" title rendered
   font-size 22.4px / line-height 35.84px / letter-spacing 4.032px in block vs
   15.2px / 24.32px / 2.736px in classic — 44px tall vs 33px. Same footer measured
   IDENTICAL on /cart/ and /, which is what proved the leak was order-received-only.
   The classic theme has NO blanket rule here (grep: 0 matches), so restrict ours to
   the order content and leave the footer alone. */
body.woocommerce-order-received .woocommerce-order h2,
body.woocommerce-order-received h2.woocommerce-order-details__title,
body.woocommerce-order-received h2.woocommerce-column__title,
body.woocommerce-order-received .woocommerce-order-details__title,
body.woocommerce-order-received .woocommerce-column__title {
  font-size: 22.4px !important;
  line-height: 35.84px !important;
  font-weight: 600 !important;
}
body.woocommerce-order-received .woocommerce-order-overview.woocommerce-thankyou-order-details {
  display: block !important;
  margin: 0 0 2rem !important;
  padding: 0 !important;
  list-style: none !important;
}
body.woocommerce-order-received .woocommerce-order-overview.woocommerce-thankyou-order-details li {
  float: left !important;
  width: auto !important;
  margin: 0 2em 1em 0 !important;
  padding: 0 2em 0 0 !important;
  border-right: 1px dashed rgba(28, 47, 74, 0.22) !important;
  list-style: none !important;
  font-size: 11.44px !important;
  line-height: 18.304px !important;
  text-transform: uppercase;
}
body.woocommerce-order-received .woocommerce-order-overview.woocommerce-thankyou-order-details li strong {
  display: block;
  font-size: 16px !important;
  line-height: 25.6px !important;
  text-transform: none;
}
body.woocommerce-order-received .woocommerce-order-overview.woocommerce-thankyou-order-details li:last-child {
  border-right: 0 !important;
}
body.woocommerce-order-received .woocommerce-order-overview.woocommerce-thankyou-order-details::after {
  clear: both;
  content: "";
  display: table;
}
body.woocommerce-order-received table.shop_table,
body.woocommerce-order-received .woocommerce-order-details table {
  width: 100% !important;
}
body.woocommerce-order-received table.shop_table th,
body.woocommerce-order-received table.shop_table td,
body.woocommerce-order-received .woocommerce-order-details table th,
body.woocommerce-order-received .woocommerce-order-details table td {
  padding: 9px 12px !important;
  line-height: 24px !important;
}
@media (min-width: 768px) {
  body.woocommerce-order-received table.shop_table th,
  body.woocommerce-order-received table.shop_table td,
  body.woocommerce-order-received .woocommerce-order-details table th,
  body.woocommerce-order-received .woocommerce-order-details table td {
    padding-top: 13px !important;
    padding-bottom: 13px !important;
  }
}
body.woocommerce-order-received .woocommerce-customer-details address {
  border: 1px solid rgba(28, 47, 74, 0.16) !important;
  border-radius: 4px !important;
  padding: 6px 12px !important;
}
body.woocommerce-order-received .woocommerce-customer-details address p {
  margin: 0 !important;
}
@media (max-width: 768px) {
  /* 2026-07-25: same footer leak as the desktop rule above — scope to the order
     content so the global .site-footer-v2__title h2 keeps its own metrics. */
  body.woocommerce-order-received .woocommerce-order h2,
  body.woocommerce-order-received h2.woocommerce-order-details__title,
  body.woocommerce-order-received h2.woocommerce-column__title,
  body.woocommerce-order-received .woocommerce-order-details__title,
  body.woocommerce-order-received .woocommerce-column__title {
    font-size: 19.2px !important;
    line-height: 30.72px !important;
  }
}
@media (max-width: 600px) {
  body.woocommerce-order-received main.page-main--order-confirmation {
    /* 2026-07-25 PARITY: was 140px. MEASURED from the harness's same-install capture
       pair at 390 — EVERY content band in the block render sat exactly 27px lower than
       classic (401/461/633/674/715 vs 428/488/660/701/742), i.e. one uniform offset
       above the content rather than any per-element difference. The classic theme has
       NO order-received rules at all (grep: 0), so this padding was ours alone.
       113px reproduces the classic top offset. */
    padding-top: 113px;
  }
  body.woocommerce-order-received .page-title--order-confirmation {
    display: block !important;
    box-sizing: border-box !important;
    width: 326px !important;
    max-width: 326px !important;
    margin-top: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    text-align: left !important;
  }
  body.woocommerce-order-received h2.woocommerce-order-details__title,
  body.woocommerce-order-received h2.woocommerce-column__title,
  body.woocommerce-order-received .woocommerce-order-details__title,
  body.woocommerce-order-received .woocommerce-column__title {
    font-family: var(--sc) !important;
    font-size: 19.2px !important;
    line-height: 30.72px !important;
    font-weight: 600 !important;
  }
  body.woocommerce-order-received table.shop_table,
  body.woocommerce-order-received .woocommerce-order-details table {
    border: 1px solid #e5e7eb !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
    margin: 0 -1px 0 0 !important;
    width: 100% !important;
  }
  body.woocommerce-order-received table.shop_table th,
  body.woocommerce-order-received table.shop_table td,
  body.woocommerce-order-received .woocommerce-order-details table th,
  body.woocommerce-order-received .woocommerce-order-details table td {
    border: 0 !important;
  }
  body.woocommerce-order-received .woocommerce-customer-details address {
    display: block !important;
    box-sizing: border-box !important;
    width: 326px !important;
    max-width: 326px !important;
    padding: 10px 12px !important;
    line-height: 25.6px !important;
  }
  body.woocommerce-order-received .woocommerce-customer-details address p {
    margin: 0 0 6px !important;
  }
  body.woocommerce-order-received .woocommerce-order-overview.woocommerce-thankyou-order-details li {
    float: none !important;
    margin-right: 0 !important;
    padding-right: 0 !important;
    border-right: 0 !important;
  }
}

/* v0.1.94 — modern Woo Blocks thank-you page mobile containment.
   David approved the new Woo Blocks confirmation layout, but at 390px the
   block totals table rendered 452px wide inside the 326px page column and the
   off-canvas cart was being injected on /checkout/order-received/. Keep this
   scoped to the thank-you page and to Woo's confirmation blocks. */
body.woocommerce-order-received .wp-block-woocommerce-order-confirmation-totals,
body.woocommerce-order-received .wp-block-woocommerce-order-confirmation-totals.alignwide,
body.woocommerce-order-received .wc-block-order-confirmation-totals,
body.woocommerce-order-received .wc-block-order-confirmation-totals__table {
  box-sizing: border-box !important;
  max-width: 100% !important;
}
@media (max-width: 600px) {
  body.woocommerce-order-received .wp-block-woocommerce-order-confirmation-totals,
  body.woocommerce-order-received .wp-block-woocommerce-order-confirmation-totals.alignwide,
  body.woocommerce-order-received .wc-block-order-confirmation-totals {
    width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    overflow-x: clip !important;
  }
  body.woocommerce-order-received .wc-block-order-confirmation-totals__table,
  body.woocommerce-order-received .wp-block-woocommerce-order-confirmation-totals table {
    width: 100% !important;
    min-width: 0 !important;
    table-layout: fixed !important;
  }
  body.woocommerce-order-received .wc-block-order-confirmation-totals__table th,
  body.woocommerce-order-received .wc-block-order-confirmation-totals__table td,
  body.woocommerce-order-received .wp-block-woocommerce-order-confirmation-totals th,
  body.woocommerce-order-received .wp-block-woocommerce-order-confirmation-totals td {
    box-sizing: border-box !important;
    min-width: 0 !important;
    max-width: 100% !important;
    padding-left: 8px !important;
    padding-right: 8px !important;
    overflow-wrap: anywhere !important;
    word-break: break-word !important;
  }
  body.woocommerce-order-received .wc-block-order-confirmation-totals__table th:last-child,
  body.woocommerce-order-received .wc-block-order-confirmation-totals__table td:last-child,
  body.woocommerce-order-received .wp-block-woocommerce-order-confirmation-totals th:last-child,
  body.woocommerce-order-received .wp-block-woocommerce-order-confirmation-totals td:last-child {
    width: 34% !important;
    text-align: right !important;
    white-space: normal !important;
  }
  body.woocommerce-order-received .wc-block-order-confirmation-totals__product,
  body.woocommerce-order-received .wc-block-order-confirmation-totals__description,
  body.woocommerce-order-received .wp-block-woocommerce-order-confirmation-additional-information,
  body.woocommerce-order-received .woocommerce-order-confirmation-additional-information,
  body.woocommerce-order-received .woocommerce-order-confirmation-summary {
    max-width: 100% !important;
    overflow-wrap: anywhere !important;
    word-break: break-word !important;
  }
}

/* Woo ACCOUNT view-order MOBILE: the classic order-details table
   (table.shop_table.order_details / .woocommerce-table--order-details) on
   /my-account/view-order/ overflows ~20px at 390px (table right edge ~410).
   This is a different table than the block totals on the thank-you page
   (fixed in v0.1.59), so it needs its own rule. Contain to the account
   content column + make the table fit. Scoped to account pages. (v0.1.60) */
@media (max-width: 600px) {
  body.woocommerce-account .woocommerce-MyAccount-content {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  body.woocommerce-account table.order_details,
  body.woocommerce-account .woocommerce-table--order-details,
  body.woocommerce-account .woocommerce-order-details table {
    width: 100%;
    max-width: 100%;
    table-layout: fixed;
  }
  body.woocommerce-account table.order_details th,
  body.woocommerce-account table.order_details td,
  body.woocommerce-account .woocommerce-table--order-details th,
  body.woocommerce-account .woocommerce-table--order-details td {
    word-break: break-word;
    overflow-wrap: anywhere;
  }
}

/* ── /shop/ archive parity with classic (v0.1.61) ─────────────────────────────
   Classic serves /shop/ as a singular page (plain .page-title "Shop", no
   breadcrumb, no products-header band). The block route is the real WC product
   archive, so WooCommerce renders a breadcrumb + .woocommerce-products-header.
   Scoped, CSS-only (no WC template override) so the route stays the standard,
   human-editable WC archive. Suppress the breadcrumb and neutralize the
   products-header band so the "Shop" title matches classic. */
body.post-type-archive-product .woocommerce-breadcrumb,
body.woocommerce-shop .woocommerce-breadcrumb { display: none; }
body.post-type-archive-product .woocommerce-products-header,
body.woocommerce-shop .woocommerce-products-header { margin: 0 0 2rem; padding: 0; }
body.post-type-archive-product .woocommerce-products-header__title,
body.woocommerce-shop .woocommerce-products-header__title {
  font-size: 32px;        /* v0.1.68: dev was 48px, prod 32px */
  line-height: 1.6;
  margin: 0 0 32px;       /* prod h1 margin-bottom 32px */
}

/* /shop/ archive parity v0.1.63: the WC shop blocks (products-header, result-count,
   ordering, ul.products) render with max-width:none → ~1280px wide, left-aligned at the
   global padding, whereas classic serves /shop/ inside .page-main { max-width:900px;
   margin:auto; padding:0 2rem } (inner ~836px, centered). The is-layout-constrained
   content-size var does NOT govern these blocks, so constrain them directly to a 900px
   centered column with matching 2rem side padding. Scoped to the shop archive only. */
body.post-type-archive-product .woocommerce-products-header,
body.post-type-archive-product .woocommerce-notices-wrapper,
body.post-type-archive-product .woocommerce-result-count,
body.post-type-archive-product .woocommerce-ordering,
body.post-type-archive-product ul.products,
body.woocommerce-shop .woocommerce-products-header,
body.woocommerce-shop .woocommerce-notices-wrapper,
body.woocommerce-shop .woocommerce-result-count,
body.woocommerce-shop .woocommerce-ordering,
body.woocommerce-shop ul.products {
  max-width: none;
  margin-left: 0;
  margin-right: 0;
  padding-left: 0;
  padding-right: 0;
}
/* v0.1.68: constrain the shop MAIN to classic's page-main column so the blocks above
   fill an 836px inner box (border box 836@302 desktop / 326@32 mobile) == prod. */
body.post-type-archive-product main.is-layout-constrained,
body.woocommerce-shop main.is-layout-constrained {
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 2rem;
  padding-right: 2rem;
  box-sizing: border-box;
}

/* /shop/ archive parity v0.1.64: classic shop cards use WooCommerce-DEFAULT styling;
   the block theme layers its own type scale + pill button (wp-element-button) on top.
   Neutralize to classic's measured values (computed-style probe, dev vs prod @1440):
   - loop title: block 19.2px/30.72lh/9.6pad  ->  classic 16px/25.6lh/8pad
   - add-to-cart: block pill 16/25.6lh/12.672x23.328pad/r9999/h50.9 -> classic 16/16lh/9.888x16pad/r3/h35.75
   - top offset: hiding the breadcrumb (v0.1.61) collapsed its band, raising the grid
     71px (card_top dev 150 vs classic 221); restore the spacing on the header.
   Scoped to the shop archive only. Responsive offset tuned after deploy. */
/* 2026-07-25 PARITY — /shop header offset. MEASURED on dev @390 (DOM + geometry probe):
     /cart : .site-header top=96  .nav-bar top=96  .nav-logo top=104
     /shop : .site-header top=0   .nav-bar top=0   .nav-logo top=8   <- 96px too high
   Identical markup and identical computed logo box on both, so this is not a logo rule.
   `.site-header` is position:absolute at this width, so its top resolves against its
   containing block — and /shop has NO archive-product template, falling back to
   index.html (`.index-main`) while the commerce pages use page-main-classed templates.
   Cross-page control: the badge sits at 104 on /cart, /my-account and /checkout in BOTH
   themes; only block's /shop differs. Restore the 96px on the shop archive only.
   (The margin-top:96px below is a DIFFERENT rule for .woocommerce-products-header —
   same number, unrelated purpose. Do not conflate them.) */
@media (max-width: 600px) {
  body.post-type-archive-product .site-header,
  body.woocommerce-shop .site-header {
    top: 96px;
  }
}

body.post-type-archive-product .woocommerce-products-header,
body.woocommerce-shop .woocommerce-products-header {
  margin-top: 96px;   /* v0.1.69: 6rem == classic page-main margin-top; restores card_top=221
                          uniformly now that h1 is the correct 32px (71px was tuned to the old 48px h1) */
}
body.post-type-archive-product ul.products li.product .woocommerce-loop-product__title,
body.woocommerce-shop ul.products li.product .woocommerce-loop-product__title {
  font-size: 16px;
  line-height: 25.6px;
  padding-top: 8px;
  padding-bottom: 8px;
  font-family: 'Cormorant Garamond', serif;      /* v0.1.68: drop inherited Georgia (prod has none) */
}
body.post-type-archive-product ul.products li.product a.button.add_to_cart_button,
body.woocommerce-shop ul.products li.product a.button.add_to_cart_button {
  font-size: 16px;
  line-height: 16px;
  padding: 9.888px 16px;
  border-radius: 3px;
  font-weight: 700;                              /* v0.1.68: dev was 400, prod 700 */
  font-family: 'Cormorant Garamond', serif;      /* drop stray Georgia from stack */
  /* v0.1.70: the block theme paints the loop button dark (rgb(50,55,60)/white); classic uses
     the WooCommerce-default light button (rgb(233,230,237)/rgb(81,81,81)). Match prod. */
  background-color: rgb(233, 230, 237);
  color: rgb(81, 81, 81);
  border-color: rgb(81, 81, 81);
}

/* /shop/ archive parity v0.1.65: fix responsive layout.
   (1) The block shop <main> carries has-global-padding (~20px) AND my v0.1.63 per-element
       2rem padding => double side-padding: dev cards start ~20px in and render narrower
       than classic (whose only side padding is page-main's 2rem). Zero the global padding
       on the shop main so the 2rem per-element padding alone matches classic at all widths.
   (2) The fixed 71px header top-offset lands card_top=221 (== classic) at 768/1440 but
       overshoots at ≤480 (dev title band wraps taller); trim it there. */
/* (v0.1.65 has-global-padding zero removed in v0.1.68 — the main column rule above now
   sets the side padding to exactly 2rem, replacing the global padding.) */
/* (v0.1.65 @≤480 margin-top:29px override removed in v0.1.69 — with the correct 32px h1 the
   96px/6rem offset lands card_top=221 uniformly at 390/768/1440.) */

/* /shop/ archive parity v0.1.66: prod leaves an 80px gap between the product grid bottom
   and the footer (classic page-main margin-bottom); the block archive leaves 64px, sitting
   the footer 16px high and misaligning the (tall) footer region. Add 16px below the grid. */
body.post-type-archive-product main.is-layout-constrained,
body.woocommerce-shop main.is-layout-constrained {
  padding-bottom: 16px;
}

/* v0.1.73: WooCommerce ARCHIVE/LOOP price color parity. Block theme defaults the
   loop .amount to navy var; prod (classic) renders it gold rgb(149,142,9)=#958e09.
   Scoped to ul.products loop ONLY -> single-product price (already prod-exact) untouched. */
.woocommerce ul.products li.product .price,
.woocommerce ul.products li.product .price .woocommerce-Price-amount,
.woocommerce ul.products li.product .price .woocommerce-Price-amount.amount,
.woocommerce ul.products li.product .price bdi {
  color: rgb(149, 142, 9) !important;
}

/* v0.1.74: lecture-modules dark-section text color parity. `.lm-modules` sets cream,
   but a block global recolors these specific nodes navy; prod renders them cream
   rgb(250,245,239)=#faf5ef. Re-assert cream on the section heading + card titles. */
.lm-modules__heading,
.lm-card__title,
.lm-card__title-link {
  color: var(--cream-faf5ef, #faf5ef) !important;
}

/* v0.1.74: shop archive ordering <select> font-size parity. Block defaults it to 13px;
   prod (classic) renders the UA-default 13.333px. Match prod. */
body.woocommerce-shop .woocommerce-ordering select.orderby,
body.post-type-archive-product .woocommerce-ordering select.orderby,
.woocommerce-ordering select.orderby {
  font-size: 13.3333px !important;
}

/* v0.1.75: lost-password (.woocommerce-ResetPassword) form parity. prod/classic leaves
   this form at WC-core defaults; the block theme over-styles it (+42px taller). Scope to
   the reset form ONLY so the already-pixel-exact login form is untouched. Match prod box. */
form.woocommerce-ResetPassword.lost_reset_password label {
  margin-bottom: 0 !important;
}
form.woocommerce-ResetPassword.lost_reset_password input.woocommerce-Input {
  padding: 6.66667px !important;
  font-size: 13.3333px !important;
  line-height: normal !important;
  border-width: 1px !important;
  border-radius: 4px !important;
}
form.woocommerce-ResetPassword.lost_reset_password button {
  padding: 9.888px 16px !important;
  font-size: 16px !important;
  line-height: 16px !important;
  border-radius: 3px !important;
}


/* v0.1.76: query-loop (index/search/archive) post-title wrap parity. Dev inherits
   `word-break: break-word` on the post-title link, so multi-line titles fill each line to
   the full column width (breaking to fit); classic/prod uses `word-break: normal`, breaking
   only at word boundaries. Identical text + line-height, but different break points => every
   multi-line card title's words land at different x — a distributed diff on /?s= and date
   archives (single-line titles like most /tag/ pages are unaffected, which is why they
   already matched). Match prod: normal. Scoped to query-loop cards so post-content hero
   headings (which intentionally break-word to avoid clipping) are untouched. */
.wp-block-query .wp-block-post-title,
.wp-block-query .wp-block-post-title a {
  word-break: normal;
}

/* v0.1.76: lost-password submit button — bind to classic/prod pixel parity on THIS surface
   ONLY (David's parity baseline overrides brand styling; not relaxed). Prod renders the
   default WooCommerce button: Arial 700, light-grey fill, grey text, no border (dev's
   brand-dark Cormorant/400/white differs). Matching font-family+weight also resolves the
   width (129->~155). Scoped to .lost_reset_password so cart/checkout/account buttons keep
   the brand-dark style. */
form.lost_reset_password button[type="submit"] {
  font-family: Arial, "Helvetica Neue", Helvetica, sans-serif;
  font-weight: 700;
  background-color: rgb(233, 230, 237);
  color: rgb(81, 81, 81);
  border-style: none;
}

/* v0.1.76 (cont.): the ACTUAL post-title wrap driver. Dev sets the query-card title link to
   display:inline-block, which stretches it to the full column width and fills each line
   (breaking to fit); classic/prod leaves it display:inline, which shrink-wraps to the natural
   word-boundary line breaks. Identical text/font/line-height, but inline-block vs inline =>
   different break points and the distributed title diff on /?s= + date archives. Match prod. */
.wp-block-query .wp-block-post-title a {
  display: inline;
}

/* #parity 2026-06-27: home regression fix. The native-block rebuild made the post-content
   flow layout inject a 24px block-gap above .portico-bg-wrapper (hero->portico), shifting
   intro/pillars/media/news down +24px vs classic (classic gap = 0). Zero it to re-align. */
.home .portico-bg-wrapper{ margin-top:0 !important; margin-block-start:0 !important; }

/* #parity 2026-06-30 (David visual QA): color-seam / white band defect on home. The
   subscribe (gold mailing-list) section is a flow sibling under .entry-content and the
   native-block flow layout injects a 24px --wp--style--block-gap margin-block-start above
   it; the parent .portico-bg-wrapper cream (#f5f0e8) shows through that 24px gap, rendering
   a cream seam between DAVENANT NEWS and the gold section (all 8 viewports). Same class of
   bug as the portico gap above. Zero the top gap so the gold section butts the news band. */
.home .subscribe-section{ margin-top:0 !important; margin-block-start:0 !important; }

/* #parity 2026-07-01 (parity harness run#6 root-cause): net home +24px vs classic traced to
   .resource-card-content inside .media-section — the block-flow default
   (:where(.is-layout-flow) > * { margin-block-start:1.5rem }) injects a 24px top margin the
   classic build zeroed. One card-content row carries it, adding 24px to the media-section
   column height and cascading +24 to news-scroller/subscribe/footer. Measured on dev vs prod
   (media-section h 628 classic vs 652 block). Zero it to re-align. Card internal spacing is
   handled by the card gap (0.8rem), not this flow margin. */
.home .resource-card-content{ margin-top:0 !important; margin-block-start:0 !important; }


/* === hero-cover: editor-native cover hero (parity with classic .hero) — full-height navy panel, no overflow:hidden, no body.home/vh hacks === */
.hero-cover.wp-block-cover {
  align-items: stretch;            /* stretch inner-container to full cover height (override is-position-bottom-left flex-end) */
  justify-content: flex-start;     /* flush left */
  padding: 0;
  min-height: 100vh;               /* full viewport hero, native cover min-height (no .hero height:75vh / body.home 100vh) */
}
.hero-cover .wp-block-cover__inner-container {
  width: auto;
  max-width: none;
  margin: 0;
  padding: 0;
  align-self: stretch;             /* full height */
  display: flex;
}
.hero-cover .wp-block-cover__image-background { filter: grayscale(100%); }
/* panel already has align-self:stretch + its own width/gradient/radius; stretch now resolves to full cover height */


/* subscribe illustration: native wp:image (attachment 47292) form — figure carries .subscribe-illustration-img; size the inner <img> so look matches the legacy raw-<img> markup. Additive: legacy bare .subscribe-illustration-img (Ad Fontes page) rule untouched. */
.subscribe-illustration-img.wp-block-image{ margin:0; }
.subscribe-illustration-img.wp-block-image img{ display:block; width:100%; height:auto; max-width:520px; max-height:520px; object-fit:contain; }
.page-template-page-adfontes .subscribe-illustration-img.wp-block-image img,
.page-id-10278 .subscribe-illustration-img.wp-block-image img{ max-width:416px; max-height:416px; }
/* mobile: classic clamps .subscribe-illustration-img to 280px at <=820px, but in the native
   wp:image form that class sits on the FIGURE - the inner img kept max-height:520px and
   overflowed the clamped figure over the subscribe headline (seen dev vs prod @768/430).
   Mirror the clamp onto the inner img. */
@media (max-width: 820px) {
  .subscribe-illustration-img.wp-block-image img{ max-height: 280px; }
  .page-template-page-adfontes .subscribe-illustration-img.wp-block-image img,
  .page-id-10278 .subscribe-illustration-img.wp-block-image img{ max-height: 224px; }
}


/* === EDITOR-ONLY shims (scoped under .editor-styles-wrapper — element exists ONLY in the
   Gutenberg canvas, so front-end DOM/CSS is untouched; zero parity risk). Fixes the
   donate-page grade-D editor render (2026-07-02 audit): the windowshade section uses
   vh-based sticky scroll theatre (min-height:300vh, panel height:100vh, inset 8vh).
   Inside the editor's auto-growing iframe, vh resolves against the iframe height →
   runaway feedback loop (canvas ballooned to the 33554432px browser cap) and ~5
   viewport-tall empty navy boxes. In the editor, collapse the scroll theatre to a
   plain stacked preview with fixed px heights so each pillar panel paints its bg
   image + logo + caption like a card. === */
.editor-styles-wrapper .donate-windowshade__inner {
  min-height: 0;
  grid-template-columns: minmax(300px, 42%) 1fr;
}
.editor-styles-wrapper .donate-windowshade__intro {
  position: static;
  height: auto;
  padding: 3rem 2rem;
}
.editor-styles-wrapper .donate-windowshade__panel {
  height: 480px;
  --dws-card-inset-y: 32px;
}
.editor-styles-wrapper .donate-windowshade__nav { position: static; }

/* === SANDBOX-PREVIEW shims (v0.1.136). Diagnosis 2026-07-02: each wp:html block
   renders in its own srcdoc sandbox iframe whose <body> does NOT carry
   .editor-styles-wrapper (only data-resizable-iframe-connected, set by
   Gutenberg's resizable-sandbox bridge) — so the v0.1.134 shims above never
   matched and the vh feedback loop persisted (canvas pinned at the 33554432px
   browser cap). body[data-resizable-iframe-connected] exists ONLY inside
   Gutenberg sandbox preview iframes; the front-end body never has it → zero
   parity risk. Collapse all vh-based scroll-theatre + JS-reveal states into
   static stacked previews. === */

/* donate: three-pillars windowshade */
body[data-resizable-iframe-connected] .donate-windowshade__inner {
  min-height: 0;
  grid-template-columns: minmax(300px, 42%) 1fr;
}
body[data-resizable-iframe-connected] .donate-windowshade__intro {
  position: static;
  height: auto;
  padding: 3rem 2rem;
}
body[data-resizable-iframe-connected] .donate-windowshade__panel {
  height: 480px;
  --dws-card-inset-y: 32px;
}
body[data-resizable-iframe-connected] .donate-windowshade__nav { position: static; }

/* living-well: horizontal intro theatre → stacked panels */
body[data-resizable-iframe-connected] .lw-intro {
  height: auto;
}
body[data-resizable-iframe-connected] .lw-intro__pin {
  position: static;
  height: auto;
  overflow: visible;
}
body[data-resizable-iframe-connected] .lw-intro__track {
  position: static;
  width: 100%;
  height: auto;
  flex-direction: column;
  transform: none !important;
}
body[data-resizable-iframe-connected] .lw-intro__panel {
  width: 100%;
  flex: 0 0 auto;
  height: auto;
  min-height: 560px;
}

/* living-well: chapter scroll-theatre → stacked panels */
body[data-resizable-iframe-connected] .lw-chapter {
  min-height: 0;
}
body[data-resizable-iframe-connected] .lw-chapter__pin {
  position: static;
  height: auto;
  overflow: visible;
}
body[data-resizable-iframe-connected] .lw-chapter__stage {
  position: static;
  overflow: visible;
}
body[data-resizable-iframe-connected] .lw-chapter__track {
  position: static;
  height: auto;
  flex-direction: column;
  padding-left: 0;
  padding-right: 0;
  transform: none !important;
}
body[data-resizable-iframe-connected] .lw-chapter__panel {
  width: 100%;
  height: auto;
  min-height: 420px;
  padding-top: 3rem;
  padding-bottom: 3rem;
  transform: none !important;
  align-items: center;
}
body[data-resizable-iframe-connected] .lw-chapter__scatter { display: none; }
body[data-resizable-iframe-connected] .lw-chapter__title-bar { position: static; }
body[data-resizable-iframe-connected] .lw-chapter__indicator { position: static; }

/* living-well: register hero — undo JS reveal (opacity 0 until .is-*-in) */
body[data-resizable-iframe-connected] .lw-register-hero {
  min-height: 0;
  padding: 4rem 2rem;
}
body[data-resizable-iframe-connected] .lw-register-hero__media,
body[data-resizable-iframe-connected] .lw-register-hero__body {
  opacity: 1;
  transform: none;
}

/* === SANDBOX-PREVIEW shims v0.1.137 — editor-likeness for davenant-press 46207,
   bookstore 46208, board 46211 (2026-07-02 audit fix plan, sub-B pages).
   Scope: body[data-resizable-iframe-connected] exists ONLY inside Gutenberg's
   wp:html srcdoc sandbox iframes (proven v0.1.136); front-end body never has it
   → zero parity risk. === */

/* GLOBAL: undo JS scroll-reveal states — main.js never runs in the sandbox, so
   .reveal-up/.reveal-left/.reveal-right stay opacity:0 forever (dp Top Releases
   covers were "huge blank areas"). */
body[data-resizable-iframe-connected] .reveal-up,
body[data-resizable-iframe-connected] .reveal-left,
body[data-resizable-iframe-connected] .reveal-right {
  opacity: 1 !important;
  transform: none !important;
}

/* GLOBAL: page-hero art gate — JS adds page-hero--art-loaded on front; in the
   sandbox the gate never opens, leaving walking-text at opacity:0 over the art
   (dp hero rendered as "empty beige box"). Show text + skip the logo intro. */
body[data-resizable-iframe-connected] .page-hero--art-pending .page-hero__walking-text,
body[data-resizable-iframe-connected] .page-hero__walking-text {
  opacity: 1 !important;
}
body[data-resizable-iframe-connected] .page-hero__line.is-pending { opacity: 1; }
body[data-resizable-iframe-connected] .page-hero__walking-text .word { opacity: 1; transform: none; }
body[data-resizable-iframe-connected] .hero-logo-intro { display: none; }
/* vh clamps resolve against the auto-growing iframe → give the hero art a fixed
   editor height so the section paints like the front (~600px banner). */
body[data-resizable-iframe-connected] .page-hero__art {
  max-height: 600px;
}

/* dp (davenant-press): Top Releases cards — full-iframe-width 3:4 cover =
   ~1500px-tall blank monolith. Constrain to card scale, centered. */
body[data-resizable-iframe-connected] .dp-book {
  max-width: 340px;
  margin: 0 auto;
}

/* bookstore 46208: best-seller + category cards render one per sandbox at full
   canvas width (2:3 thumb → 1650px tall). Constrain to card scale. */
body[data-resizable-iframe-connected] .bsb-card {
  max-width: 340px;
  margin: 0 auto;
}
body[data-resizable-iframe-connected] .bookstore-categories__card {
  max-width: 420px;
  margin: 0 auto;
  opacity: 1 !important;
  transform: none !important;
}
/* bookstore hero: non-active slides are position:absolute+opacity:0 (JS slider)
   → blank full-viewport beige stretches in the editor. Static stacked preview. */
body[data-resizable-iframe-connected] .bookstore-hero__slide {
  position: relative;
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
body[data-resizable-iframe-connected] .bookstore-hero__slide-image {
  max-height: 420px;
  object-fit: cover;
}

/* board 46211: member cards one per sandbox; center at card scale so the stack
   reads like the front grid column. */
body[data-resizable-iframe-connected] .db-member-card {
  max-width: 560px;
  margin: 0 auto;
}

/* 0.1.146 — 2026 Convivium native editorial rebuild. All content remains Gutenberg-owned. */
body.page-slug-2026-convivium .wp-site-blocks > main,
body.page-slug-2026-convivium main.page-main { max-width:none; margin:0; padding:0; background:var(--cream); }
body.page-slug-2026-convivium main > .wp-block-post-content { max-width:none; margin:0; padding:0; }
.conv3-shell { width:min(calc(100% - 3rem),1100px); margin-inline:auto; }
.conv3-hero { display:grid; grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr); min-height:760px; margin:0; background:var(--navy); }
.conv3-hero__copy { display:flex; flex-direction:column; justify-content:center; padding:clamp(9rem,13vw,12rem) clamp(2.5rem,6vw,6rem) clamp(4rem,8vw,7rem); color:var(--cream); }
.conv3-kicker,.conv3-label { font-family:var(--sans); font-size:.77rem; font-weight:700; letter-spacing:.18em; line-height:1.4; text-transform:uppercase; }
.conv3-kicker { color:var(--gold-bright); margin:0 0 1.25rem; }
.conv3-title { max-width:10ch; margin:0; color:var(--cream); font-family:var(--sc); font-size:clamp(3.4rem,6.4vw,6.5rem); font-weight:500; letter-spacing:-.03em; line-height:.9; }
.conv3-subtitle { max-width:28ch; margin:1.5rem 0 0; color:var(--gold-bright); font-size:clamp(1.3rem,2vw,1.9rem); font-style:italic; line-height:1.2; }
.conv3-rule { width:80px; margin:2rem 0; border:0; border-top:1px solid var(--gold); }
.conv3-meta { margin:0; color:var(--cream); font-size:1.05rem; line-height:1.55; }
.conv3-meta strong { color:var(--gold-bright); }
.conv3-hero__art { display:flex; align-items:flex-end; justify-content:center; overflow:hidden; min-width:0; background:var(--cream); }
.conv3-hero__art figure { margin:0; width:100%; height:100%; display:flex; align-items:flex-end; justify-content:center; }
.conv3-hero__art img { display:block; width:100%; height:100%; max-height:900px; object-fit:contain; object-position:center bottom; }
.conv3-section { padding:clamp(4.5rem,8vw,7rem) 0; }
.conv3-label { color:var(--gold); margin:0 0 .8rem; }
.conv3-heading { margin:0; color:var(--navy); font-family:var(--sc); font-size:clamp(2.35rem,4vw,3.8rem); font-weight:500; line-height:1; }
.conv3-intro__grid { display:grid; grid-template-columns:minmax(220px,.75fr) minmax(0,1.6fr); gap:clamp(2.5rem,7vw,7rem); align-items:start; }
.conv3-intro__copy p { max-width:700px; font-size:clamp(1.16rem,1.45vw,1.34rem); line-height:1.62; }
.conv3-details { color:var(--cream); background:var(--navy); }
.conv3-details .conv3-heading { color:var(--cream); }
.conv3-details__grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:3rem; border-block:1px solid var(--gold); }
.conv3-detail { padding:2.25rem; border-left:1px solid rgba(196,163,90,.58); }
.conv3-detail:first-child { border-left:0; }
.conv3-detail h3 { margin:0 0 .75rem; color:var(--gold-bright); font-family:var(--sans); font-size:.76rem; letter-spacing:.15em; text-transform:uppercase; }
.conv3-detail p { margin:0; color:var(--cream); font-size:clamp(1.2rem,1.8vw,1.55rem); line-height:1.38; }
.conv3-register__inner { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr); gap:clamp(2.5rem,7vw,6rem); align-items:center; }
.conv3-register__copy p,.conv3-travel__item p { font-size:1.18rem; line-height:1.6; }
.conv3-register__action { padding:2.5rem; border:1px solid var(--gold); text-align:center; }
.conv3-register .wp-block-button__link,.conv3-close .wp-block-button__link { min-height:48px; padding:.8rem 1.4rem; border:1px solid var(--gold); border-radius:0; background:var(--navy); color:var(--cream); font-family:var(--sans); font-size:.82rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.conv3-travel { border-top:1px solid rgba(28,47,74,.2); }
.conv3-travel__grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); margin-top:3rem; }
.conv3-travel__item { padding-right:clamp(2rem,5vw,4rem); }
.conv3-travel__item + .conv3-travel__item { padding-right:0; padding-left:clamp(2rem,5vw,4rem); border-left:1px solid var(--gold); }
.conv3-travel__item h3 { margin:0 0 1rem; color:var(--navy); font-family:var(--sc); font-size:1.8rem; }
.conv3-travel__item a { text-decoration:underline; text-decoration-color:var(--gold); text-underline-offset:.17em; }
.conv3-close { padding:3.5rem 0; color:var(--cream); background:var(--navy); text-align:center; }
.conv3-close p { margin:0 0 1.2rem; color:var(--gold-bright); font-size:1.2rem; }
@media(max-width:767px){
 .conv3-shell{width:min(calc(100% - 2.5rem),1100px)}
 .conv3-hero{display:flex; flex-direction:column; min-height:0}
 .conv3-hero__copy{padding:8rem 1.5rem 3.5rem; text-align:center}
 .conv3-title{margin-inline:auto; font-size:clamp(3rem,14vw,4rem)} .conv3-subtitle{margin-inline:auto}.conv3-rule{margin-inline:auto}
 .conv3-hero__art{height:min(132vw,560px); padding:1rem 0 0}
 .conv3-hero__art img{max-height:560px}
 .conv3-intro__grid,.conv3-details__grid,.conv3-register__inner,.conv3-travel__grid{display:block}
 .conv3-intro__copy{margin-top:2rem}.conv3-detail{padding:1.6rem 0;border-left:0;border-top:1px solid rgba(196,163,90,.42)}.conv3-detail:first-child{border-top:0}
 .conv3-register__action{margin-top:2.5rem;padding:2rem 1.25rem}.conv3-register .wp-block-button,.conv3-register .wp-block-button__link,.conv3-close .wp-block-button,.conv3-close .wp-block-button__link{width:100%}
 .conv3-travel__item{padding:0}.conv3-travel__item + .conv3-travel__item{margin-top:2.5rem;padding:2.5rem 0 0;border-left:0;border-top:1px solid var(--gold)}
}


/* v0.1.147 — generic-page mobile clearance for the absolute corner seal.
 * The 64px seal occupies x=0–65 through y≈236 at phone widths; generic page
 * titles begin at x=32/y=96 and their first body block can also enter that
 * footprint. Indent only those two opening blocks, preserving all later page
 * rhythm and every bespoke/full-bleed template. */
@media (max-width: 600px) {
  .page-main > .wp-block-post-title,
  .page-main > .wp-block-post-content > :nth-child(-n+3) {
    padding-inline-start: 48px;
  }
}

/* v0.1.151 — Doctrinal Commitments is a bespoke full-bleed page. The generic
 * constrained Group wrapper was adding 20px mobile / 90px desktop gutters, so
 * its native post content could not match the existing classic template. */
.doctrinal-content-main {
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
.doctrinal-content-main.has-global-padding {
  padding-left: 0 !important;
  padding-right: 0 !important;
}
.doctrinal-content-main > .wp-block-post-content {
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* v0.1.153 — Leadership & Staff is another bespoke full-bleed native page. */
.leadership-content-main,
.leadership-content-main.has-global-padding {
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
.leadership-content-main > .wp-block-post-content {
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
/* Native wrapper spacing reset: classic leadership sections are contiguous; core flow
 * injects a 24px block gap between every top-level section otherwise. */
.page-leadership-staff > * {
  margin-block-start: 0 !important;
  margin-top: 0 !important;
}

/* v0.1.156 — Merchandise native page: remove FSE constrained gutters and flow gap. */
.merchandise-content-main,
.merchandise-content-main.has-global-padding {
  max-width: none !important; margin: 0 !important; padding: 0 !important;
  padding-left: 0 !important; padding-right: 0 !important;
}
.merchandise-content-main > .wp-block-post-content { max-width:none !important; margin:0 !important; padding:0 !important; }
.merch-main > * { margin-block-start:0 !important; margin-top:0 !important; }
/* Merchandise native Button markup parity: move classic CTA styling from the
 * core/button wrapper to its anchor and neutralize core default fill/padding. */
.merch-coming-soon__back {
  padding: 0;
  border: 0;
  display: inline-block;
}
.merch-coming-soon__back .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
  color: var(--navy);
  background: transparent;
  border: 1px solid var(--navy);
  border-radius: 0;
  padding: 0.85rem 1.35rem;
  text-decoration: none;
}
.merch-coming-soon__back .wp-block-button__link:hover { background:var(--navy); color:var(--cream-faf5ef); }

/* v0.1.158 — Events native page: remove FSE constrained gutters and flow gaps. */
.events-content-main, .events-content-main.has-global-padding { max-width:none !important; margin:0 !important; padding:0 !important; padding-left:0 !important; padding-right:0 !important; }
.events-content-main > .wp-block-post-content { max-width:none !important; margin:0 !important; padding:0 !important; }
.events-main > *, .ev-section__inner > * { margin-block-start:0 !important; margin-top:0 !important; }

/* === v0.1.159 — home parity fixes (editor-native markup vs classic CSS) ===
 * 1) Media cards: DEV uses native wp:image <figure class="resource-card-thumb ...">
 *    with a real <img>; classic painted the SAME classes via background-image on a
 *    118px-tall div. The unconstrained native img rendered natural-size (292px tall
 *    Podcasts) and overlapped the caption. Constrain the img to the classic geometry
 *    and drop the duplicate background paint. object-position preserves the classic
 *    podcasts crop (center 62%).
 * 2) Hero medallion: native wp:image markup carries inline width:128px and lost the
 *    hero-brand-logo-v3 class; classic renders clamp(136px,14.45vw,204px). The short
 *    first grid row also floated the centered headline ~25px high. Restore classic size.
 * 3) Scroll pill: .hero-corner-cta{right:0} resolved against the positioned
 *    .wp-block-cover__inner-container (panel-width) instead of the full cover.
 *    Make the inner container static so the pill anchors to the cover's corner. */
figure.resource-card-thumb.wp-block-image { background-image: none !important; height: 118px; flex: 0 0 118px; margin: 0 0 0.4rem; }
figure.resource-card-thumb.wp-block-image img { width: 100%; height: 118px !important; object-fit: contain; display: block; }
figure.resource-card-thumb--podcasts.wp-block-image img { object-position: center 62%; }

.hero-brand-logo-fig { margin: 0; line-height: 0; font-size: 0; }
.hero-brand-logo-fig img { width: clamp(136px, 14.45vw, 204px) !important; height: auto; aspect-ratio: 1 / 1; margin: 0 0 0 4%; display: block; }
@media (max-width: 600px) {
  .hero-brand-logo-fig img { width: clamp(102px, 27.2vw, 144.5px) !important; margin: 0; }
}

.hero-cover .wp-block-cover__inner-container { position: static; }

/* v0.1.162 — news scroller background must center like classic. The block Group's
 * saved backgroundPosition "50% 0" (top-anchored) rides in as an inline style and,
 * with background-attachment:fixed, shows SKY where classic shows the cathedral.
 * Force the classic center crop over the inline attribute. */
.marlborough-scroller { background-position: 50% 50% !important; }

/* ============================================================
   v0.1.164 — port classic PR#76/#80 seal-clearance rules (2026-06-30)
   to the block theme. Classic gained header/seal overlap fixes AFTER
   the block parity baseline; parity run 2026-07-20 showed the block
   side missing them: single Δ200px desktop, my-account/cart/checkout
   (and shop) Δ160/20px at 390. Same selectors, block-template classes.
   ============================================================ */

/* Fix 1 — desktop single-post: clear the ~180px fixed header (classic L14802) */
.single-main .single-article__header { padding-block-start: 200px; }

/* Fix 2 — mobile single-post: header absolute <=600px, clear the corner seal
   horizontally instead (classic L14806-14810) */
@media (max-width: 600px) {
  .single-main .single-article__header { padding-block-start: 0; }
  .single-main .single-article__header .single-article__title,
  .single-main .single-article__header .single-article__meta { padding-inline-start: 64px; }
}

/* Fix 3 — mobile hero-less page-title templates: push first content below the
   absolute seal (classic L14815-14818). Must be padding (margin would collapse).
   Placed AFTER the 140px woo cart/checkout rule so 160px wins, matching classic's
   cascade. Includes the shop archive main (block template carries no .page-main). */
@media (max-width: 600px) {
  body:not(.home) main.index-main,
  body:not(.home) main.page-main,
  body.post-type-archive-product main.is-layout-constrained,
  body.woocommerce-shop main.is-layout-constrained { padding-top: 160px; }

  /* 2026-07-25 PARITY — order-received needs 133px, not the generic 160px.
     MEASURED from the harness's same-install capture pair: EVERY content band on
     /checkout/order-received/ sat exactly 27px lower in block than classic, at BOTH
     390 and 768 (classic 461/633/674/715 vs block 488/660/701/742). 160-27 = 133.
     NOTE TO SELF: an earlier attempt edited the <=600px `140px` rule instead — that
     rule never applied here, and the harness numbers did not move at all (9.756% /
     9.627% byte-identical across runs). A computed-style probe on dev showed the main
     actually resolving to 160px, which is what identified THIS rule as the winner.
     Lesson: read the COMPUTED value before editing a rule you assume is in play. */
  body.woocommerce-order-received main.page-main--order-confirmation { padding-top: 133px; }
}

/* === EDITOR-ONLY: native bookstore card-block layout (v0.1.175) ===========
   The front-end grids/scroller rely on direct child selectors. Gutenberg wraps
   InnerBlocks in .block-editor-inner-blocks/.block-editor-block-list__layout;
   without these editor-only equivalents, correct cards stack at canvas width
   and look nothing like the page. These selectors cannot match the front end. */
.editor-styles-wrapper [data-davenant-category-grid="1"] > .block-editor-inner-blocks > .block-editor-block-list__layout {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(14px, 2vw, 28px);
}
.editor-styles-wrapper [data-davenant-category-card="1"] {
  opacity: 1 !important;
  transform: none !important;
  max-width: none !important;
  margin: 0 !important;
}
.editor-styles-wrapper [data-davenant-bestseller-grid="1"] .best-selling-books__grid > .block-editor-inner-blocks > .block-editor-block-list__layout {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(16px, 2vw, 30px);
}
.editor-styles-wrapper [data-davenant-bestseller-card="1"] {
  max-width: none !important;
  margin: 0 !important;
}
.editor-styles-wrapper [data-davenant-releases-grid="1"] .whats-on-track > .block-editor-inner-blocks > .block-editor-block-list__layout {
  display: flex;
  gap: 1.25rem;
  align-items: stretch;
  overflow-x: auto;
  padding: 0 0 1rem;
}
.editor-styles-wrapper [data-davenant-release-card="1"] {
  flex: 0 0 240px;
  width: 240px;
  min-width: 240px;
}
@media (max-width: 760px) {
  .editor-styles-wrapper [data-davenant-category-grid="1"] > .block-editor-inner-blocks > .block-editor-block-list__layout,
  .editor-styles-wrapper [data-davenant-bestseller-grid="1"] .best-selling-books__grid > .block-editor-inner-blocks > .block-editor-block-list__layout {
    grid-template-columns: 1fr;
  }
}

/* The editor canvas is ~1000px wide; front-end mobile breakpoints (<900px)
   would collapse these sections to one column even though the block canvas is
   showing the desktop composition. Explicit editor-canvas desktop overrides. */
@media (max-width: 900px) {
  .editor-styles-wrapper [data-davenant-category-grid="1"] {
    padding: 3rem 2rem 5.5rem;
  }
  .editor-styles-wrapper [data-davenant-category-grid="1"] > .block-editor-inner-blocks > .block-editor-block-list__layout {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 2rem;
  }
  .editor-styles-wrapper [data-davenant-bestseller-grid="1"] {
    padding: 4.4rem 2rem 4.8rem;
  }
  .editor-styles-wrapper [data-davenant-bestseller-grid="1"] .best-selling-books__grid > .block-editor-inner-blocks > .block-editor-block-list__layout {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 2.4rem;
    max-width: 1280px;
  }
}

/* v0.1.177: use the wrapper Gutenberg actually renders. InnerBlocks wrappers
   are inserted *inside* the already-grid .__inner/.best-selling-books__grid;
   neutralize the intermediate wrapper, then make its block-list the card grid. */
.editor-styles-wrapper [data-davenant-category-grid="1"] .bookstore-categories__inner {
  display: block;
}
.editor-styles-wrapper [data-davenant-category-grid="1"] .bookstore-categories__inner > .block-editor-inner-blocks > .block-editor-block-list__layout {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2rem;
}
.editor-styles-wrapper [data-davenant-bestseller-grid="1"] .best-selling-books__grid {
  display: block;
}
.editor-styles-wrapper [data-davenant-bestseller-grid="1"] .best-selling-books__grid > .block-editor-inner-blocks > .block-editor-block-list__layout {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2.4rem;
}

/* v0.1.178 editor-only bookstore hero: Gutenberg's InnerBlocks wrapper is the
   layout container; stack all editable slides as useful previews, exactly like
   the proven old HTML-sandbox shim did, but with selection/edit controls. */
.editor-styles-wrapper [data-davenant-bookstore-hero="1"] .bookstore-hero__track {
  position: static;
  display: block;
  height: auto;
}
.editor-styles-wrapper [data-davenant-bookstore-hero="1"] .bookstore-hero__track > .block-editor-inner-blocks > .block-editor-block-list__layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.editor-styles-wrapper [data-davenant-bookstore-hero-slide="1"] {
  position: relative;
  display: block;
  min-height: 260px;
  overflow: hidden;
}
.editor-styles-wrapper [data-davenant-bookstore-hero-slide="1"] .bookstore-hero__slide {
  position: absolute;
  inset: 0;
  opacity: 1;
  visibility: visible;
}
.editor-styles-wrapper [data-davenant-bookstore-hero-slide="1"] .bookstore-hero__slide-image { height: 100%; object-fit: cover; }
.editor-styles-wrapper .davenant-hero-slide-editor-label {
  position: absolute; left: 1rem; right: 1rem; bottom: 1rem; z-index: 3;
  background: rgba(245,240,232,.92); color: #1c2f4a; padding: .55rem .7rem;
  display: flex; justify-content: space-between; gap: .75rem; font-family: var(--body,'Cormorant Garamond',serif);
}
.editor-styles-wrapper .davenant-subscribe-form-preview { display:flex; flex-direction:column; gap:.55rem; }
.editor-styles-wrapper .davenant-subscribe-form-preview .subscribe-row-split { display:grid; grid-template-columns:1fr 1fr; gap:.55rem; }
.editor-styles-wrapper .davenant-subscribe-form-preview .subscribe-input { display:block; background:#fff; color:#777; padding:.7rem; font:12px var(--sans,Arial,sans-serif); }
.editor-styles-wrapper .davenant-subscribe-form-preview .subscribe-btn { display:block; text-align:center; }

/* v0.1.181 Ad Fontes editor composition: show all profile cards in a useful
   2x2 editing grid; the front end keeps the existing one-at-a-time carousel. */
.editor-styles-wrapper [data-davenant-editors="1"] .editors-track > .block-editor-inner-blocks > .block-editor-block-list__layout {
  display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem;
}
.editor-styles-wrapper [data-davenant-editor-card="1"] { display:grid; grid-template-columns: 150px 1fr; opacity:1; visibility:visible; transform:none; }
.editor-styles-wrapper [data-davenant-af-hero="1"] .page-hero__walking-text span { opacity:1; visibility:visible; transform:none; }
.editor-styles-wrapper [data-davenant-editors="1"] .editors-track { display:block; }
.editor-styles-wrapper [data-davenant-editors="1"] .editors-track > .block-editor-inner-blocks > .block-editor-block-list__layout { align-items:start; }
.editor-styles-wrapper [data-davenant-editor-card="1"] { grid-template-columns:110px minmax(0,1fr); gap:.8rem; min-width:0; max-width:none; padding:.75rem; border:1px solid rgba(28,47,74,.12); }
.editor-styles-wrapper [data-davenant-editor-card="1"] .editor-card__portrait { width:110px; height:110px; }
.editor-styles-wrapper [data-davenant-editor-card="1"] .editor-card__name { font-size:1.35rem; }
.editor-styles-wrapper [data-davenant-editor-card="1"] .editor-card__role { font-size:1.1rem; }
.editor-styles-wrapper [data-davenant-editor-card="1"] .editor-card__degree { font-size:.72rem; margin-bottom:.55rem; padding-bottom:.4rem; }
.editor-styles-wrapper [data-davenant-editor-card="1"] .editor-card__bio { font-size:.86rem; line-height:1.45; }
.editor-styles-wrapper [data-davenant-lw-hero="1"] { min-height:700px; display:grid; grid-template-columns:1.15fr .85fr; gap:1rem; }
.editor-styles-wrapper [data-davenant-lw-hero="1"] .lw-intro__panel { position:relative!important; inset:auto!important; transform:none!important; opacity:1!important; visibility:visible!important; min-height:560px; }
.editor-styles-wrapper [data-davenant-lw-aspects="1"] > .block-editor-inner-blocks > .block-editor-block-list__layout { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.editor-styles-wrapper [data-davenant-lw-aspect="1"] { position:relative!important; inset:auto!important; transform:none!important; opacity:1!important; visibility:visible!important; min-width:0; display:grid; grid-template-columns:140px 1fr; gap:1rem; padding:1rem; border:1px solid rgba(28,47,74,.15); }
.editor-styles-wrapper [data-davenant-lw-aspect="1"] .lw-aspect__media img { width:140px; height:140px; object-fit:cover; }
.editor-styles-wrapper [data-davenant-lw-register="1"] { min-height:650px; padding:5rem; color:#fff; background:#1c2f4a; }
.editor-styles-wrapper [data-davenant-lw-register="1"] .lw-register__form { max-width:520px; display:grid; gap:.6rem; }
.editor-styles-wrapper [data-davenant-lw-register="1"] .lw-register__input { display:block; background:#fff; color:#777; padding:.8rem; }
.editor-styles-wrapper [data-davenant-lw-aspects="1"] { min-height:0!important; height:auto!important; }
.editor-styles-wrapper [data-davenant-lw-aspects="1"] > .block-editor-inner-blocks > .block-editor-block-list__layout { position:relative!important; inset:auto!important; min-height:0!important; height:auto!important; transform:none!important; }
.editor-styles-wrapper [data-davenant-lw-hero="1"] .lw-intro__panel--chapter { display:flex!important; flex-direction:column; justify-content:center; align-items:center; padding:3rem; color:#f5f0e8; background:#13110e; }
.editor-styles-wrapper [data-davenant-lw-register="1"] { display:flex; flex-direction:column; justify-content:center; align-items:center; }
.editor-styles-wrapper [data-davenant-lw-register="1"] .lw-register__title { color:#f5f0e8; font-size:2.5rem; }
.editor-styles-wrapper [data-davenant-lw-hero="1"] .lw-intro__panel--chapter .lw-intro__chapter-title,
.editor-styles-wrapper [data-davenant-lw-hero="1"] .lw-intro__panel--chapter .lw-intro__chapter-sub { opacity:1!important; visibility:visible!important; transform:none!important; color:#f5f0e8!important; position:relative!important; inset:auto!important; }
.editor-styles-wrapper [data-about-hero-editor="1"] .page-hero__walking-text { opacity:1!important; visibility:visible!important; transform:none!important; }
.editor-styles-wrapper [data-about-story-editor="1"] { height:auto!important; min-height:0!important; padding:2rem; }
.editor-styles-wrapper [data-about-story-editor="1"] > .block-editor-inner-blocks > .block-editor-block-list__layout { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; position:relative!important; transform:none!important; }
.editor-styles-wrapper [data-about-story-panel-editor="1"] { position:relative!important; inset:auto!important; opacity:1!important; visibility:visible!important; transform:none!important; display:grid; grid-template-columns:150px 1fr; gap:1rem; padding:1rem; border:1px solid rgba(28,47,74,.15); }
.editor-styles-wrapper [data-about-story-panel-editor="1"] .about-story-carousel__art img { width:150px; height:150px; object-fit:cover; }
.editor-styles-wrapper [data-about-principles-editor="1"] { padding:2rem; }
.editor-styles-wrapper [data-about-principle-editor="1"] { display:grid; grid-template-columns:180px 1fr; gap:1.5rem; }
.editor-styles-wrapper [data-about-principle-editor="1"].principle-block--reverse { grid-template-columns:1fr 180px; }
.editor-styles-wrapper [data-about-story-editor="1"] .about-story-carousel__track { display:block!important; width:auto!important; transform:none!important; }
.editor-styles-wrapper [data-about-story-editor="1"] [data-about-story-panel-editor="1"] { width:auto!important; min-width:0!important; max-width:none!important; flex:none!important; }
.editor-styles-wrapper [data-about-story-editor="1"] [data-about-story-panel-editor="1"] .about-story-carousel__text { width:auto!important; max-width:none!important; font-size:.86rem; line-height:1.45; }
.editor-styles-wrapper [data-about-principles-editor="1"] > .block-editor-inner-blocks > .block-editor-block-list__layout { display:grid; gap:1.5rem; }
.editor-styles-wrapper [data-events-hero-editor="1"] .page-hero__walking-text,
.editor-styles-wrapper [data-events-hero-editor="1"] .page-hero__line { opacity:1!important; visibility:visible!important; transform:none!important; }
.editor-styles-wrapper [data-events-list-editor="1"] { padding:3rem; }
.editor-styles-wrapper [data-events-list-editor="1"] > .block-editor-inner-blocks > .block-editor-block-list__layout { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.editor-styles-wrapper [data-event-card-editor="1"] { padding:1.25rem; border:1px solid rgba(28,47,74,.15); background:#fff; }
.editor-styles-wrapper [data-press-hero-editor="1"] .page-hero__walking-text,.editor-styles-wrapper [data-press-hero-editor="1"] .page-hero__line { opacity:1!important; visibility:visible!important; transform:none!important; }
.editor-styles-wrapper [data-press-welcome-editor="1"],.editor-styles-wrapper [data-press-imprint-editor="1"] { display:grid; grid-template-columns:2fr 1fr; gap:2rem; padding:3rem; }
.editor-styles-wrapper [data-press-releases-editor="1"] { padding:3rem; }
.editor-styles-wrapper [data-press-releases-editor="1"] > .block-editor-inner-blocks > .block-editor-block-list__layout { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.5rem; }
.editor-styles-wrapper [data-press-book-editor="1"] { display:block!important; opacity:1!important; visibility:visible!important; transform:none!important; }
.editor-styles-wrapper [data-press-book-editor="1"] .dp-book-cover { width:100%; height:250px; object-fit:contain; }
.editor-styles-wrapper [data-press-coming-editor="1"] { grid-column:1/-1; opacity:1!important; visibility:visible!important; transform:none!important; }
.editor-styles-wrapper [data-press-collections-editor="1"],.editor-styles-wrapper [data-press-proposals-editor="1"] { padding:3rem; }
.editor-styles-wrapper [data-press-collections-editor="1"] .dp-collections-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.editor-styles-wrapper [data-donate-hero-editor="1"] .page-hero__walking-text { opacity:1!important; visibility:visible!important; transform:none!important; }
.editor-styles-wrapper [data-donate-welcome-editor="1"],.editor-styles-wrapper [data-donate-pillars-editor="1"],.editor-styles-wrapper [data-donate-impact-editor="1"],.editor-styles-wrapper [data-donate-partner-editor="1"],.editor-styles-wrapper [data-donate-form-editor="1"] { padding:3rem; height:auto!important; min-height:0!important; }
.editor-styles-wrapper [data-donate-pillars-editor="1"] .donate-windowshade__stack,.editor-styles-wrapper [data-donate-impact-editor="1"] .donate-impact__stats { display:grid!important; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; position:relative!important; transform:none!important; }
.editor-styles-wrapper [data-donate-pillars-editor="1"] .donate-windowshade__panel { position:relative!important; inset:auto!important; opacity:1!important; visibility:visible!important; transform:none!important; height:auto!important; min-height:300px; padding:1rem; }
.editor-styles-wrapper [data-lectures-hero-editor="1"],.editor-styles-wrapper [data-lectures-intro-editor="1"],.editor-styles-wrapper [data-lectures-feature-editor="1"],.editor-styles-wrapper [data-lectures-grid-editor="1"] { padding:3rem; }
.editor-styles-wrapper [data-lectures-feature-editor="1"] { display:grid; grid-template-columns:1fr 1fr; gap:2rem; }
.editor-styles-wrapper [data-lectures-grid-editor="1"] > .block-editor-inner-blocks > .block-editor-block-list__layout { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.5rem; }
.editor-styles-wrapper [data-lecture-card-editor="1"] { display:block!important; opacity:1!important; visibility:visible!important; transform:none!important; }
.editor-styles-wrapper [data-lecture-card-editor="1"] .lm-card__figure { width:100%; height:220px; object-fit:cover; }
.editor-styles-wrapper [data-hall-about-editor="1"] .dh-subpage-hero,.editor-styles-wrapper [data-hall-about-editor="1"] .dh-about__intro,.editor-styles-wrapper [data-hall-about-editor="1"] .dh-about__section,.editor-styles-wrapper [data-hall-about-editor="1"] .dh-about__cta { display:block!important; visibility:visible!important; opacity:1!important; transform:none!important; min-height:0!important; padding:3rem; }
.editor-styles-wrapper [data-hall-about-editor="1"] .dh-about__cta-buttons { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }

/* v0.1.195 — release-candidate corrections found during human DEV review.
 * Front-end only: block-theme scripts can miss the initial reveal pass when
 * lazy images settle after load; press cards are core content, never hide them. */
.dp-bestsellers .reveal-up,
.dp-bestsellers .reveal-left,
.dp-bestsellers .reveal-right {
  opacity: 1;
  transform: none;
}
.dp-bestsellers-grid > .dp-coming-soon {
  grid-column: 1 / -1;
  width: 100%;
}

/* ---------------------------------------------------------------------------
   Block-wrapper margin reset (2026-07-24)
   WP's layout stylesheet applies `margin-block-start:1.5rem` to every child of
   an is-layout-flow container. Our page sections are edge-to-edge bands that
   must butt against each other exactly as they do in the classic theme; the
   injected 24px opened a seam and inflated page height (e.g. /davenant-board/
   +10.4% at every viewport). Reset it for our own section wrappers only.
--------------------------------------------------------------------------- */
.wp-block-group.db-intro,
.wp-block-group.db-roster,
.wp-block-group.db-member-card,
.wp-block-group.db-roster__inner,
.wp-block-group[class*="about-"],
.wp-block-group[class*="donate-"],
.wp-block-group[class*="dp-"],
.wp-block-group[class*="dh-"],
.wp-block-group[class*="bookstore-"],
.wp-block-group[class*="db-"],
/* 2026-07-24 (2nd pass): the prefix allow-list above missed sections that don't
   carry a page prefix — e.g. .subscribe-section on /ad-fontes/ still received the
   injected 24px, opening a 25px seam above the subscribe band that prod does not
   have. Generalise: ANY full-width band that is a direct child of one of our page
   mains butts its neighbour, exactly as in the classic theme. */
/* 2026-07-24 (3rd pass, /ad-fontes/ residual +44..51px): whitespace text nodes
   between full-width <section> bands generate line boxes inside the page main.
   PROVEN: setting font-size:0 on .adfontes-main drops it 3280 -> 3227px, exactly
   the delta vs prod. The classic theme's markup/flow does not produce them.
   Collapse the strut on the band container and restore text metrics on the bands
   themselves (every visible child sets its own font-size anyway). */
/* WITHDRAWN 2026-07-24: the font-size:0 strut hack (for whitespace line-boxes
   between full-width bands) is NOT safe. `font-size/line-height: revert` resolves
   to the UA default rather than the theme's inherited value, so descendants lost
   their metrics: /bookstore/ categories H2 rendered 0px tall and /ad-fontes/ lost
   ~1350px. A `> *` restore is equally wrong (nested headings still inherit 0).
   Reverted wholesale; the ~44px whitespace residual on /ad-fontes/ is cosmetic and
   is tracked separately. Do NOT reintroduce a font-size:0 container hack. */
/* 2026-07-25 SCOPE FIX — the two `> section` selectors below were over-reaching.
   Lecture/product pages nest `main.lecture-module-main` inside `.entry-content`, so
   `.entry-content > main > section` and `main > .entry-content > * > section` also
   matched `.lm-detail-*` bands and zeroed their legitimate `margin: 2.4rem auto 0`.
   MEASURED on /product/an-introduction-to-biblical-wisdom/: classic renders 38.4px
   gaps between the about/syllabus/lecturer/cta bands, block rendered 0px, making the
   page 178px shorter and blowing the parity gate (24.8% @390, 21.6% @768, 17.0% @1440).
   The reset itself is still correct for the pages it was written for, so exclude the
   lecture-module bands rather than reverting it. */
.entry-content > .wp-block-group > section,
.entry-content > main:not(.lecture-module-main) > section,
main > .entry-content > *:not(.lecture-module-main) > section,
.wp-site-blocks section.subscribe-section,
.wp-site-blocks section[class*="-section"] {
  margin-block-start: 0;
  margin-block-end: 0;
}

/* ...but the blanket reset above also zeroed margins on NON-band elements that
   legitimately carry one. .db-section-header ships `margin: 0 auto 2.6rem` (41.6px);
   losing it pulled the whole board roster 41px up relative to prod, which the
   section-anchored visual judge reported as ~22% divergence at every viewport even
   though all six cards were pixel-identical (2026-07-24). Restore it explicitly. */
.db-roster__inner > .db-section-header,
.db-section-header {
  margin-block-end: 2.6rem;
}

/* Davenant Hall 5px overflow: NOT OURS. Probed 2026-07-24 — /davenant-hall/ is
   served by a SEPARATE WordPress install (body.wp-theme-davenanthall, page-id-1168,
   davenanthall.com). Our block stylesheet is not loaded there at all, so a rule
   here can never apply. The 5px comes from .opd-site-header__search in that site's
   own theme and is identical on prod. Fix belongs in the davenanthall repo, not
   here. Do not re-add CSS for it in this stylesheet. */

/* v0.1.274 — board-approved About page mission, motto, and vision */
.about-purpose {
  padding: clamp(4rem, 8vw, 7rem) var(--wp--preset--spacing--50, 2rem);
  background: #f6f1e7;
  color: #142c4b;
}
.about-purpose__inner { max-width: 1120px; margin: 0 auto; }
.about-purpose__eyebrow { margin: 0 0 2rem; color: #b38c3f; font-size: .72rem; letter-spacing: .32em; text-transform: uppercase; }
.about-purpose__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .72fr); gap: 0; border-top: 1px solid rgba(179, 140, 63, .45); }
.about-purpose__item { padding: clamp(2rem, 4vw, 3.5rem); border-right: 1px solid rgba(179, 140, 63, .35); border-bottom: 1px solid rgba(179, 140, 63, .35); }
.about-purpose__item:nth-child(2) { border-right: 0; }
.about-purpose__item--vision { grid-column: 1 / -1; border-right: 0; }
.about-purpose__heading { margin: 0 0 1rem; color: #b38c3f; font-family: var(--wp--preset--font-family--sans, sans-serif); font-size: .72rem; font-weight: 500; letter-spacing: .24em; line-height: 1.4; text-transform: uppercase; }
.about-purpose__item p { margin: 0; max-width: 62rem; font-family: var(--wp--preset--font-family--serif, Georgia, serif); font-size: clamp(1.35rem, 2.3vw, 2rem); line-height: 1.45; }
.about-purpose__item--motto p { font-style: italic; }
@media (max-width: 700px) {
  .about-purpose { padding-inline: 1.5rem; }
  .about-purpose__grid { grid-template-columns: 1fr; }
  .about-purpose__item, .about-purpose__item:nth-child(2) { border-right: 0; }
  .about-purpose__item--vision { grid-column: auto; }
}
