/* Homepage film: readable on every frame, responsive, optional motion. */
.hero { min-height: 0; padding-top: var(--nav-h); }
.hero > .hero-texture, .hero > .hero-vline, .hero > .hero-corner, .hero > .hero-scroll { display: none; }
.hero-top {
  isolation: isolate;
  min-height: clamp(570px, 76svh, 820px);
  justify-content: center;
  padding: clamp(64px, 7vw, 110px) 24px 104px;
  overflow: hidden;
  background: #0d1b2a;
}
.hero-film { position: absolute; inset: 0; z-index: -2; pointer-events: none; }
.hero-film img, .hero-film video { width: 100%; height: 100%; position: absolute; inset: 0; object-fit: cover; object-position: center; }
.hero-film video { opacity: 0; filter: saturate(.72); transition: opacity .6s ease; }
.hero-film video.is-ready { opacity: 1; }
.hero-top::after { content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: linear-gradient(180deg, rgba(13,27,42,.74), rgba(13,27,42,.76) 55%, rgba(13,27,42,.96)); }
.hero-eyebrow { max-width: 100%; }
.hero-eyebrow-text { color: #e8c97a; opacity: 1; line-height: 1.7; }
.hero-eyebrow-line { flex: 0 0 24px; }
.hero-h1 { font-size: clamp(52px, 7.5vw, 108px); }
.hero-h1 em { color: #e8c97a; }
.hero-sub { color: #f5f0e8; line-height: 1.6; max-width: 38ch; }
.hero-cta-wrap { max-width: 100%; }
.hero-cta-primary { min-height: 48px; line-height: 1.5; white-space: normal; }
.hero-cta-sub { color: #f5f0e8; line-height: 1.8; letter-spacing: .1em; }
.hero-film-footer { position: absolute; left: 24px; right: 24px; bottom: 18px; display: flex; align-items: end; justify-content: space-between; gap: 16px; text-align: left; }
.hero-film-disclosure { color: #f5f0e8; font: 11px/1.6 var(--font-body); max-width: 72%; }
.hero-film-disclosure span { display: block; }
.hero-motion-toggle { flex-shrink: 0; cursor: pointer; background: #0d1b2a; border: 1px solid #c9a84c; color: #f5f0e8; padding: 11px 15px; min-height: 44px; font: 12px/1.5 var(--font-body); }
.hero-motion-toggle[hidden] { display: none; }
.hero-motion-toggle:focus-visible, .hero-cta-primary:focus-visible { outline: 3px solid #f5f0e8; outline-offset: 4px; }
.hero-panels { background: #0d1b2a; }
.hero-panel-p, .hero-panel-points li { color: #c7c9cb; }
@media (max-width: 1280px) { .hero { padding-top: var(--nav-h-mobile); } }
@media (max-width: 600px) {
  .hero-top { min-height: 580px; min-height: clamp(550px, 78svh, 680px); padding: 56px 20px 128px; }
  .hero-eyebrow { gap: 8px; margin-bottom: 22px; }
  .hero-eyebrow-text { font-size: 9px; letter-spacing: .12em; }
  .hero-eyebrow-line { flex-basis: 12px; }
  .hero-sub { font-size: 16px; letter-spacing: .01em; margin-bottom: 28px; }
  .hero-cta-wrap { width: min(100%, 360px); }
  .hero-cta-primary { padding: 15px 18px; font-size: 11px; letter-spacing: .1em; }
  .hero-cta-sub { font-size: 9px; }
  .hero-film-footer { left: 20px; right: 20px; bottom: 16px; align-items: center; }
  .hero-film-disclosure { font-size: 10px; max-width: 62%; }
  .hero-motion-toggle { padding: 10px; font-size: 11px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .hero * { animation: none !important; transition: none !important; }
  .hero-eyebrow, .hero-h1, .hero-sub, .hero-cta-wrap, .hero-divider, .hero-panels { opacity: 1; transform: none; }
}
/* Keep navigation reachable on tablets and community cards within the phone width. */
@media (max-width: 1280px) {
  .nav-hamburger { display: flex; width: 44px; height: 44px; flex-shrink: 0; }
  .nav-ctas, .nav-tagline { display: none; }
}
@media (max-width: 900px) {
  .comm-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .comm-card, .comm-expand-content { min-width: 0; overflow-wrap: anywhere; }
  .comm-expand { grid-template-columns: 1fr; }
}
@media (max-width: 520px) {
  .comm-grid { grid-template-columns: minmax(0, 1fr); }
}
body:has(.mob-drawer.open) .a11y-widget { visibility: hidden; }
@media (max-width: 900px) {
  .communities-header, .comm-expanding, .comm-featured { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .communities-inner { padding-inline: 24px; }
  .comm-featured { padding: 32px 24px; }
  .comm-expand-card { padding: 28px 24px; }
  .commission-trust { padding: 32px 20px; grid-template-columns: minmax(0, 1fr); }
  .commission-trust-cta { white-space: normal; padding-inline: 16px; line-height: 1.6; }
}
@media (max-width: 840px) {
  .ydrc .ydrc-wrap { grid-template-columns: minmax(0, 1fr); }
  .ydrc .ydrc-wrap > * { min-width: 0; }
  .ydrc .ydrc-eyebrow { overflow-wrap: anywhere; }
  .ydrc .ydrc-card { padding: 28px 22px; }
  .ydrc .ydrc-stat { gap: 16px; flex-wrap: wrap; }
  .ydrc .ydrc-card a.link { overflow-wrap: anywhere; }
  .ydrc .ydrc-btn { padding-inline: 20px; max-width: 100%; white-space: normal; }
}

/* Keep motion controls clear of the existing floating text-size widget. */
.hero-motion-toggle { position: absolute; top: 16px; right: 24px; }
@media (max-width: 600px) { .hero-motion-toggle { top: 12px; right: 20px; } }
