/* manrope-latin-ext-wght-normal */
@font-face {
  font-family: 'DJFH Manrope';
  font-style: normal;
  font-display: swap;
  font-weight: 200 800;
  src: url(../fonts/manrope-latin-ext-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* manrope-latin-wght-normal */
@font-face {
  font-family: 'DJFH Manrope';
  font-style: normal;
  font-display: swap;
  font-weight: 200 800;
  src: url(../fonts/manrope-latin-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
/* lora-latin-ext-wght-normal */
@font-face {
  font-family: 'DJFH Lora';
  font-style: normal;
  font-display: swap;
  font-weight: 400 700;
  src: url(../fonts/lora-latin-ext-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* lora-latin-wght-normal */
@font-face {
  font-family: 'DJFH Lora';
  font-style: normal;
  font-display: swap;
  font-weight: 400 700;
  src: url(../fonts/lora-latin-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
/* lora-latin-ext-wght-italic */
@font-face {
  font-family: 'DJFH Lora';
  font-style: italic;
  font-display: swap;
  font-weight: 400 700;
  src: url(../fonts/lora-latin-ext-wght-italic.woff2) format('woff2-variations');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* lora-latin-wght-italic */
@font-face {
  font-family: 'DJFH Lora';
  font-style: italic;
  font-display: swap;
  font-weight: 400 700;
  src: url(../fonts/lora-latin-wght-italic.woff2) format('woff2-variations');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
/* DJFH 2.0 — one typography system, two accessible red/white palettes. */
:root {
 --sans: 'DJFH Manrope', sans-serif;
 --serif: 'DJFH Lora', Georgia, serif;
 --ink: #25141a; --muted: #66535a; --wine: #a51e36; --wine-dark: #7e1529;
 --pink: #fcf1f3; --gold: #fff; --gold-soft: #f8e8ec;
 --paper: #fff9fa; --white: #fff; --line: #e5cdd3;
 --feature-bg: #a51e36; --feature-fg: #fff;
 --focus: #a51e36;
 color-scheme: light;
}
:root[data-djfh-mode="dark"] {
 --ink: #fff8fa; --muted: #e0c3cb; --wine: #fff; --wine-dark: #f8dce3;
 --pink: #481320; --gold: #611329; --gold-soft: #45101e;
 --paper: #3c0d19; --white: #2c0a14; --line: #81515f;
 --feature-bg: #fceef2; --feature-fg: #68152b;
 --heading-accent: #f2c879; --heading-accent-on-light: #8a4e05;
 --focus: #fff;
 color-scheme: dark;
}
body { background: var(--white); color: var(--ink); font-family: var(--sans); }
.site-header, .site-footer { background: var(--white); color: var(--ink); }
:focus-visible { outline-color: var(--focus); }
.header-inner { gap: clamp(.75rem, 1.5vw, 1.5rem); flex-wrap: nowrap; }
.site-header .brand { flex: 0 1 auto; gap: .75rem; }
.site-header .brand-name { font-family: var(--sans); }
.site-header .brand-logo { width: 3.75rem; flex-basis: 3.75rem; }
.site-header .site-nav { margin-inline-start: auto; flex: 0 1 auto; font-family: var(--sans); }
.site-nav .wp-block-navigation__container { gap: clamp(.8rem, 1.3vw, 1.4rem); align-items: center; }
.site-nav .wp-block-navigation-item { align-self: center; margin: 0; padding: 0; }
.site-nav .wp-block-navigation-item__content {
 display: inline-flex; align-items: center; justify-content: center; min-height: 2.875rem;
 padding-block: 0; font: 650 .8125rem/1.3 var(--sans); letter-spacing: -.01em;
}
.site-nav .nav-cta > .wp-block-navigation-item__content { padding: 0 1.1rem; }
.site-nav .wp-block-navigation-item__label { display: block; line-height: 1.3; }
.site-nav .nav-cta:hover { color: var(--white); }
.djfh-site-tools { display: flex; align-items: center; gap: .4rem; flex: 0 0 auto; margin: 0; }
.djfh-languages { display: flex; align-items: center; gap: .125rem; }
.djfh-languages a {
 display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .2rem;
 width: 2.75rem; min-height: 2.875rem; border-radius: .6rem; border: 1px solid transparent;
 color: var(--muted); text-decoration: none; font: 700 .6rem/1.1 var(--sans);
}
.djfh-languages a[aria-current] { background: var(--pink); color: var(--wine); border-color: var(--line); }
.djfh-languages a:hover { color: var(--wine); border-color: var(--wine); }
.djfh-languages img { display: block; width: 22px; height: 15px; border: 1px solid #0002; border-radius: 2px; object-fit: cover; }
.djfh-mode-toggle { width: 2.875rem; height: 2.875rem; flex: 0 0 auto; border: 1px solid var(--line); border-radius: 50%; background: var(--white); color: var(--ink); cursor: pointer; display: inline-flex; justify-content: center; align-items: center; padding: 0; }
.djfh-mode-toggle[hidden] { display: none; }
.djfh-mode-toggle:hover { background: var(--pink); border-color: var(--wine); }
.djfh-mode-toggle svg { flex: 0 0 20px; }
.mode-sun, [data-djfh-mode="dark"] .mode-moon { display: none; }
[data-djfh-mode="dark"] .mode-sun { display: block; }
/* Specificity is intentional: override WordPress's zero block-gap margins. */
.djfh-home .history-intro > h2, .djfh-home .join-copy > h2 { margin-bottom: clamp(1.5rem, 2.4vw, 2.25rem); }
.djfh-home .junior-main > h2 { margin-block: 1.25rem 1.5rem; }
.djfh-home .junior-main > .junior-subtitle { margin-bottom: 1rem; }
.djfh-home .junior-main > .djfh-button-row { margin-block: 1.75rem 1rem; }
.djfh-home .join-copy > .djfh-button-row { margin-top: 1.75rem; }
.djfh-home .join-copy > .eyebrow, .djfh-home .history-intro > .eyebrow { margin-bottom: 1.25rem; }
.djfh-home .intro-copy > p + p { margin-top: 1.25rem; }
.djfh-home .section-heading-row .text-link { margin-top: 1rem; }
.djfh-home .archive-content > p, .djfh-home .archive-columns p { margin-bottom: 1.25rem; }
.djfh-home .archive-intro { margin-bottom: 1.5rem; }
.djfh-home .rehearsal { margin-block: 1.5rem; }
.junior-signup, .join { background: var(--feature-bg); color: var(--feature-fg); }
.junior-signup .eyebrow, .junior-signup h2 em, .join h2 em, .join .eyebrow,
.junior-main > p:not(.eyebrow), .junior-main .junior-subtitle, .join-copy > p:not(.eyebrow), .join .contact-email { color: var(--feature-fg); }
.junior-signup .text-link:hover, .join a:hover { color: var(--feature-fg); text-decoration-thickness: 2px; }
.junior-signup :focus-visible, .join :focus-visible { outline-color: var(--feature-fg); }
.junior-info :focus-visible { outline-color: var(--focus); }
.button-gold .wp-block-button__link { background: var(--feature-fg); color: var(--feature-bg); }
.button-gold .wp-block-button__link:hover { background: var(--feature-fg); color: var(--feature-bg); box-shadow: 0 0 0 2px var(--feature-fg); }
.badge { background: var(--feature-fg); color: var(--feature-bg); }
.card-wine { background: var(--wine); color: var(--white); }
.card-wine p, .card-wine a, .card-wine .card-label { color: inherit; }
.card-wine :focus-visible { outline-color: var(--white); }
.join-details { border-color: currentColor; }
.timeline .timeline-item, .timeline .timeline-item:last-child, .archive-disclosure, .board-term, .archive-roles > div, .history-source { border-color: var(--line); }
.archive-disclosure summary::after {
 content: ''; display: block; flex: 0 0 1.875rem; width: 1.875rem; height: 1.875rem; padding: 0;
 border: 1px solid currentColor; border-radius: 50%;
 background: linear-gradient(currentColor,currentColor) center / 11px 1.5px no-repeat, linear-gradient(currentColor,currentColor) center / 1.5px 11px no-repeat;
}
.moment-reel:hover strong { color: inherit; }
.moment-reel figcaption a { text-decoration: none; display: inline-block; }
.moment-reel figcaption strong a:hover, .moment-reel figcaption small a:hover { color: var(--wine); text-decoration: underline; }
.moment-reel figcaption small a { min-height: 2.75rem; display: inline-flex; align-items: center; }
/* Arrows and their adjacent text now share an actual link target. */
.audience-card, .news-item { position: relative; }
.audience-title a::after, .news-title a::after { content: ''; position: absolute; inset: 0; z-index: 1; }
.audience-title a:focus-visible::after, .news-title a:focus-visible::after { outline: 2px solid var(--focus); outline-offset: 4px; border-radius: .3rem; }
.audience-card:hover .audience-title, .news-item:hover .news-title { color: var(--wine); }
.hero-photo img { width: 100%; height: auto !important; max-height: none; aspect-ratio: auto; object-fit: contain !important; }
/* Mobile/tablet navigation: stretch inside the viewport, never right-align an oversized list. */
@media (max-width: 1179px) {
 .site-header .header-inner { min-height: 5rem; gap: .75rem; }
 .site-header .site-nav { order: 3; flex: 0 0 auto; margin: 0; width: auto; padding: 0; }
 .djfh-site-tools { margin-inline-start: auto; }
 .site-nav .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none !important; }
 .site-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: inline-flex; }
 .site-nav .wp-block-navigation__responsive-container.is-menu-open {
  position: fixed; inset: 0; width: 100%; max-width: 100%; height: 100vh; height: 100dvh;
  padding: max(1.5rem, env(safe-area-inset-top)) max(1.25rem, env(safe-area-inset-right)) max(2rem, env(safe-area-inset-bottom)) max(1.25rem, env(safe-area-inset-left));
  overflow-x: hidden; overflow-y: auto; background: var(--white) !important; color: var(--ink) !important; box-sizing: border-box;
 }
 .site-nav .is-menu-open .wp-block-navigation__responsive-close { width: 100%; max-width: 40rem; margin-inline: auto; }
 .site-nav .is-menu-open .wp-block-navigation__responsive-dialog { width: 100%; margin-top: 0; }
 .site-nav .is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 4.5rem; align-items: stretch; width: 100%; max-width: 100%; }
 .site-nav .is-menu-open .wp-block-navigation__container { display: flex; flex-direction: column; align-items: stretch; justify-content: flex-start; gap: .6rem; width: 100%; max-width: 100%; margin: 0; padding: 0; }
 .site-nav .is-menu-open .wp-block-navigation-item { width: 100%; min-width: 0; align-self: stretch; }
 .site-nav .is-menu-open .wp-block-navigation-item__content { display: flex; width: 100%; max-width: 100%; min-height: 3.5rem; padding: .8rem 1rem; justify-content: flex-start; text-align: start; white-space: normal; overflow-wrap: anywhere; font: 650 1.125rem/1.5 var(--sans); }
 .site-nav .is-menu-open .nav-cta { margin-top: .75rem; }
 .site-nav .is-menu-open .nav-cta > a { justify-content: center; }
 .site-nav .wp-block-navigation__responsive-container-close { display: inline-flex; position: absolute; top: 0; inset-inline-end: 0; padding: .75rem; color: var(--ink); border: 1px solid var(--line); border-radius: 50%; }
}
@media (min-width: 1180px) { .site-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: none; } }
@media (max-width: 600px) {
 .site-header .header-inner { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: .45rem .75rem; padding-block: .65rem; }
 .site-header .brand { grid-column: 1; grid-row: 1; gap: .65rem; }
 .site-header .brand-logo { flex-basis: 3rem; width: 3rem; }
 .site-header .brand-name { font-size: .6875rem; line-height: 1.4; }
 .site-header .brand-name strong { font-size: .8rem; }
 .site-header .site-nav { grid-column: 2; grid-row: 1; justify-self: end; }
 .djfh-site-tools { grid-column: 1 / -1; grid-row: 2; justify-self: end; margin: 0; }
 .djfh-languages a { flex-direction: row; gap: .35rem; width: auto; padding-inline: .65rem; min-height: 2.75rem; font-size: .65rem; }
 .djfh-mode-toggle { width: 2.75rem; height: 2.75rem; }
 html { scroll-padding-top: 8.25rem; }
 .hero h1 { font-size: clamp(1.8rem, 9.5vw, 3.2rem); }
 .hero h1 em { font-size: 1.6em; letter-spacing: -.06em; }
 .history-intro h2, .join h2 { line-height: 1.18; }
}
@media (prefers-reduced-motion: reduce) { * { scroll-behavior: auto !important; } }
/* Core's overlay item reset must not remove the call-to-action colors. */
.site-nav .is-menu-open .wp-block-navigation-item.nav-cta { background: var(--wine) !important; color: var(--white) !important; }
.site-nav .is-menu-open .wp-block-navigation-item.nav-cta > a { color: var(--white) !important; }
/* Override the core caption gray in both appearance modes. */
.moments-grid figcaption, .moments-grid figcaption > strong { color: var(--ink); }
/* A distinct warm accent for italic headings on each dark-mode surface. */
:root[data-djfh-mode="dark"] .djfh-home :is(h1, h2, h3, h4, h5, h6) em {
 color: var(--heading-accent);
}
:root[data-djfh-mode="dark"] .djfh-home :is(.junior-main, .join-copy, .card-wine) :is(h1, h2, h3, h4, h5, h6) em {
 color: var(--heading-accent-on-light);
}
