:root {
  --bg: #0b0d10;
  --bg-soft: #11141a;
  --gold: #d4af37;
  --white: #ffffff;
  --gray: #b5b5b5;
  --accent: #1e90ff;
  --ok: #3ddc97;
  --err: #ff6b6b;
  --radius: 1.2rem;
}

* { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; }

body {
  font-family: 'Inter', sans-serif;
  background: radial-gradient(circle at top, #141824 0%, var(--bg) 60%);
  color: var(--white);
  line-height: 1.6;
  overflow-x: hidden;
}

.skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  background: var(--gold);
  color: #000;
  padding: 0.5rem 1rem;
  z-index: 1000;
}
.skip-link:focus { left: 1rem; top: 1rem; }

.offline-banner {
  position: sticky;
  top: 0;
  z-index: 90;
  background: #2a1f00;
  color: var(--gold);
  text-align: center;
  padding: 0.6rem 1rem;
  font-size: 0.9rem;
  border-bottom: 1px solid rgba(212, 175, 55, 0.35);
}

.site-nav {
  position: sticky;
  top: 0;
  z-index: 80;
  backdrop-filter: blur(10px);
  background: rgba(8, 10, 14, 0.75);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.nav-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.9rem 0;
}

.brand {
  font-family: 'Oswald', sans-serif;
  color: var(--white);
  text-decoration: none;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
}

.brand-logo { border-radius: 50%; }

.nav-menu {
  display: flex;
  align-items: center;
  gap: 1.25rem;
}

.nav-links {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
}

.nav-links a {
  color: var(--gray);
  text-decoration: none;
  font-size: 0.92rem;
}
.nav-links a:hover,
.nav-links a.is-active { color: var(--gold); }

.nav-cta { white-space: nowrap; }

.nav-toggle {
  display: none;
  background: transparent;
  border: 1px solid rgba(255,255,255,0.15);
  border-radius: 0.6rem;
  padding: 0.55rem 0.65rem;
  cursor: pointer;
}
.nav-toggle-bar {
  display: block;
  width: 1.25rem;
  height: 2px;
  background: var(--white);
  margin: 4px 0;
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  border: 0;
}

.hero {
  min-height: calc(100vh - 4rem);
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 4rem 1.5rem;
  position: relative;
  background-color: #0b0d10;
  background-image: linear-gradient(165deg, #1c2333 0%, #121820 52%, #0b0d10 100%);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
}

.hero[style*="--hero-image"],
.hero.hero--has-image {
  background-image:
    linear-gradient(165deg, rgba(28, 35, 51, 0.72) 0%, rgba(18, 24, 32, 0.78) 52%, rgba(11, 13, 16, 0.88) 100%),
    var(--hero-image);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.hero-bg-video,
.hero-bg-youtube {
  position: absolute;
  inset: 0;
  overflow: hidden;
  z-index: 0;
  pointer-events: none;
}

.hero-bg-video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.hero-bg-youtube iframe {
  position: absolute;
  top: 50%;
  left: 50%;
  width: max(100vw, 177.78vh);
  height: max(56.25vw, 100vh);
  transform: translate(-50%, -50%);
  border: 0;
}

.hero--has-video .hero-overlay,
.hero--has-youtube .hero-overlay {
  background: linear-gradient(180deg, rgba(11, 13, 16, 0.35) 0%, rgba(11, 13, 16, 0.72) 100%);
}

.hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(11, 13, 16, 0.08) 0%, rgba(11, 13, 16, 0.42) 100%);
  z-index: 0;
}

.hero-content {
  position: relative;
  max-width: 900px;
  z-index: 2;
}

.badge {
  display: inline-block;
  border: 1px solid var(--gold);
  color: var(--gold);
  padding: 0.4rem 1rem;
  border-radius: 999px;
  font-size: 0.8rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  margin-bottom: 1.5rem;
}

h1 {
  font-family: 'Oswald', sans-serif;
  font-size: clamp(3rem, 6vw, 5rem);
  letter-spacing: 0.05em;
  margin-bottom: 1rem;
  text-transform: uppercase;
}

h1 span, .section-title span { color: var(--gold); }

.subtitle {
  font-size: 1.2rem;
  color: var(--gray);
  margin-bottom: 3rem;
}

.cta {
  display: inline-flex;
  gap: 1rem;
  flex-wrap: wrap;
  justify-content: center;
}

.btn {
  padding: 0.9rem 2.2rem;
  border-radius: 999px;
  font-weight: 600;
  text-decoration: none;
  transition: all 0.25s ease;
  border: none;
  cursor: pointer;
  font: inherit;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.btn-sm { padding: 0.55rem 1.2rem; font-size: 0.9rem; }

.btn-primary {
  background: linear-gradient(135deg, var(--gold), #f5d76e);
  color: #000;
  box-shadow: 0 10px 30px rgba(212, 175, 55, 0.35);
}
.btn-primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 40px rgba(212, 175, 55, 0.5);
}

.btn-secondary {
  border: 1px solid rgba(255,255,255,0.2);
  color: var(--white);
  background: transparent;
}
.btn-secondary:hover { background: rgba(255,255,255,0.05); }

section { padding: 6rem 1.5rem; }

.container {
  max-width: 1200px;
  margin: 0 auto;
}

.section-title {
  font-family: 'Oswald', sans-serif;
  font-size: 2.5rem;
  margin-bottom: 1.5rem;
  text-transform: uppercase;
}

.section-text {
  color: var(--gray);
  max-width: 700px;
  font-size: 1.05rem;
}

.values {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 2rem;
  margin-top: 3rem;
}

.value-card, .card {
  background: linear-gradient(180deg, #151a28, #0f121a);
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: var(--radius);
  padding: 2rem;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.value-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 60px rgba(0,0,0,0.6);
}

.value-card h3 {
  font-family: 'Oswald', sans-serif;
  margin-bottom: 0.6rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.value-card p { color: var(--gray); font-size: 0.95rem; }

.stats {
  background: linear-gradient(180deg, #0f121a, #0b0d10);
  border-top: 1px solid rgba(255,255,255,0.05);
  border-bottom: 1px solid rgba(255,255,255,0.05);
}

.stats-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 2rem;
  text-align: center;
}

.stat { padding: 2rem; }

.stat strong {
  display: block;
  font-family: 'Oswald', sans-serif;
  font-size: 3rem;
  color: var(--gold);
}

.stat span {
  color: var(--gray);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-size: 0.85rem;
}

.contact-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
  align-items: start;
}

.contact-form.card {
  background: linear-gradient(165deg, rgba(255, 255, 255, 0.98) 0%, rgba(245, 247, 252, 0.96) 100%);
  border: 1px solid rgba(212, 175, 55, 0.32);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.9) inset,
    0 24px 56px rgba(0, 0, 0, 0.34);
  color: #0f172a;
}

.contact-form label {
  display: block;
  margin-bottom: 1rem;
}

.contact-form label span {
  display: block;
  margin-bottom: 0.4rem;
  font-size: 0.88rem;
  font-weight: 600;
  color: #475569;
  letter-spacing: 0.01em;
}

.contact-form input,
.contact-form select,
.contact-form textarea {
  width: 100%;
  background: #ffffff;
  border: 1px solid rgba(148, 163, 184, 0.45);
  color: #0f172a;
  border-radius: 0.75rem;
  padding: 0.8rem 0.95rem;
  font: inherit;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.contact-form input::placeholder,
.contact-form textarea::placeholder {
  color: #94a3b8;
}

.contact-form input:-webkit-autofill,
.contact-form textarea:-webkit-autofill,
.contact-form select:-webkit-autofill {
  -webkit-box-shadow: 0 0 0 1000px #ffffff inset;
  -webkit-text-fill-color: #0f172a;
  caret-color: #0f172a;
}

.contact-form select {
  appearance: none;
  background-image:
    linear-gradient(45deg, transparent 50%, #64748b 50%),
    linear-gradient(135deg, #64748b 50%, transparent 50%);
  background-position:
    calc(100% - 18px) calc(50% + 2px),
    calc(100% - 12px) calc(50% + 2px);
  background-size: 6px 6px, 6px 6px;
  background-repeat: no-repeat;
  padding-right: 2.2rem;
}

.contact-form select option {
  color: #0f172a;
  background: #ffffff;
}

.contact-form input:focus,
.contact-form select:focus,
.contact-form textarea:focus {
  outline: none;
  border-color: #c9a227;
  box-shadow: 0 0 0 3px rgba(212, 175, 55, 0.22);
}

.contact-form .btn-contact-submit {
  width: 100%;
  margin-top: 0.25rem;
}

.card-inset {
  background: rgba(248, 250, 252, 0.95);
  border: 1px solid rgba(148, 163, 184, 0.28);
  border-radius: 0.9rem;
  padding: 1rem 1.05rem;
  margin-bottom: 1rem;
}

.heimdall-captcha-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.45rem;
}

.heimdall-captcha-label {
  margin: 0;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #64748b;
}

.heimdall-captcha-question {
  margin: 0 0 0.75rem;
  font-size: 1rem;
  font-weight: 600;
  color: #0f172a;
}

.heimdall-captcha-refresh {
  border: 1px solid rgba(148, 163, 184, 0.45);
  background: #fff;
  color: #475569;
  border-radius: 0.55rem;
  width: 2rem;
  height: 2rem;
  cursor: pointer;
  font-size: 1rem;
  line-height: 1;
}

.heimdall-captcha-refresh:hover {
  border-color: #c9a227;
  color: #0f172a;
}


/* Heimdall attribution backlink */
a.heimdall-backlink {
  color: inherit;
  text-decoration: underline;
  text-decoration-color: rgba(212, 175, 55, 0.55);
  text-underline-offset: 0.15em;
  font-weight: inherit;
}
a.heimdall-backlink:hover {
  color: var(--gold, #d4af37);
  text-decoration-color: var(--gold, #d4af37);
}
.heimdall-security a.heimdall-backlink {
  font-weight: 650;
}
.heimdall-security {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  margin: 0.85rem 0 0;
  font-size: 0.78rem;
  color: #64748b;
}

.heimdall-security-icon {
  color: #9a7b1a;
  flex-shrink: 0;
}

.heimdall-security a {
  color: #9a7b1a;
  font-weight: 600;
  text-decoration: none;
}

.heimdall-security a:hover {
  text-decoration: underline;
}

.hp {
  position: absolute;
  left: -9999px;
  opacity: 0;
  height: 0;
  overflow: hidden;
}

.form-status { margin-top: 0.75rem; font-size: 0.92rem; min-height: 1.4em; }
.form-status.ok { color: var(--ok); }
.form-status.err { color: var(--err); }

.legal-page { padding-top: 4rem; }
.legal-card { margin: 2rem 0; }
.legal-prose h2 {
  font-family: 'Oswald', sans-serif;
  margin: 1.5rem 0 0.6rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-size: 1.1rem;
}
.legal-prose p { color: var(--gray); margin-bottom: 0.75rem; }
.legal-prose a { color: var(--gold); }
.legal-prose h2 { margin-top: 1rem; }
.legal-prose ul { margin: 0.5rem 0 0.75rem 1.25rem; color: var(--gray); }
.legal-prose a { color: var(--gold); }
.legal-prose h2 { margin-top: 1rem; }
.legal-prose ul { margin: 0.5rem 0 0.75rem 1.25rem; color: var(--gray); }
.legal-note { margin-top: 1rem; font-size: 0.9rem; color: var(--gray); }

.site-footer {
  padding: 3rem 1.5rem;
  text-align: center;
  color: var(--gray);
  font-size: 0.9rem;
  background: #080a0e;
}

.site-footer strong { color: var(--white); }
.site-footer span, .site-footer a { color: var(--gold); }
.footer-links { margin: 0.5rem 0 1rem; }
.footer-links a { color: var(--gray); text-decoration: none; margin: 0 0.35rem; }
.footer-links a:hover { color: var(--gold); }

.btn-xs {
  padding: 0.4rem 0.85rem;
  font-size: 0.78rem;
}

/* PWA install — footer strip only (no popup overlay) */
.footer-pwa {
  border-top: 1px solid rgba(212, 175, 55, 0.15);
  background: rgba(8, 10, 14, 0.95);
  padding: 0.55rem 0;
}

.footer-pwa:not([hidden]) { display: block; }

.footer-pwa-row {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  flex-wrap: wrap;
}

.footer-pwa-feather {
  display: inline-flex;
  color: var(--gold);
  opacity: 0.85;
  flex-shrink: 0;
}

.footer-pwa-icon {
  flex-shrink: 0;
  border-radius: 0.4rem;
}

.footer-pwa-text {
  flex: 1;
  min-width: 0;
  margin: 0;
  display: grid;
  gap: 0.05rem;
  text-align: left;
}
.footer-pwa-text strong {
  font-family: 'Oswald', sans-serif;
  font-size: 0.78rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--white);
}
.footer-pwa-text span {
  font-size: 0.72rem;
  color: var(--gray);
  line-height: 1.25;
}

.footer-pwa-actions {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  margin-left: auto;
  flex-shrink: 0;
}

#pwa-install-dismiss {
  min-width: 2rem;
  padding: 0.35rem 0.55rem;
  font-size: 1rem;
  line-height: 1;
}

.footer-pwa.is-ios-hint #pwa-install-btn {
  display: none;
}

@media (max-width: 560px) {
  .footer-pwa-row { gap: 0.5rem; }
  .footer-pwa-text span { display: none; }
  .footer-pwa-actions {
    width: 100%;
    margin-left: 0;
    justify-content: flex-end;
  }
}

.section-alt { background: linear-gradient(180deg, #0f121a, #0b0d10); }
.section-header {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 1.5rem;
  margin-bottom: 2rem;
  flex-wrap: wrap;
}
.section-header-center { flex-direction: column; align-items: center; text-align: center; }
.section-text-center { margin-inline: auto; }
.section-cta-center { text-align: center; margin-top: 2rem; }
.section-title-sm { font-size: 1.8rem; margin-bottom: 1.5rem; }

.page-hero { padding: 5rem 1.5rem 3rem; }
.page-hero-compact { padding: 4rem 1.5rem 2rem; }
.page-kicker {
  color: var(--gold);
  text-transform: uppercase;
  letter-spacing: 0.14em;
  font-size: 0.78rem;
  margin-bottom: 0.75rem;
}
.page-title {
  font-family: 'Oswald', sans-serif;
  font-size: clamp(2.2rem, 5vw, 3.5rem);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: 0.75rem;
}
.page-title span { color: var(--gold); }
.page-title-article { font-size: clamp(1.8rem, 4vw, 2.8rem); line-height: 1.15; }
.page-lead { color: var(--gray); max-width: 720px; font-size: 1.05rem; }

.match-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1.5rem;
}
.match-grid-landing {
  grid-template-columns: 1fr;
  gap: 1.25rem;
}
@media (min-width: 1100px) {
  .match-grid-landing { grid-template-columns: repeat(2, 1fr); }
}
.match-card-detailed { padding: 1.75rem; }
.match-card-details-wide {
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
}
.match-card-detail-full { grid-column: 1 / -1; }
.match-card-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  margin-top: 0.25rem;
}
.match-squad-preview { margin-top: 1rem; }
.match-squad-preview-sub { margin-top: 0.75rem; }
.match-squad-heading {
  font-family: 'Oswald', sans-serif;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-size: 0.82rem;
  color: var(--gold);
  margin-bottom: 0.5rem;
}
.match-player-list {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}
.match-player-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 999px;
  padding: 0.35rem 0.75rem;
  font-size: 0.86rem;
}
.match-player-chip.is-captain {
  border-color: rgba(212,175,55,0.45);
  background: rgba(212,175,55,0.08);
}
.match-player-pos {
  color: var(--gray);
  font-size: 0.78rem;
}
.match-player-cap {
  font-family: 'Oswald', sans-serif;
  color: var(--gold);
  font-size: 0.72rem;
  font-weight: 700;
}
.match-squad-empty {
  color: var(--gray);
  font-size: 0.88rem;
  margin-top: 0.75rem;
  font-style: italic;
}
.match-grid-landing {
  grid-template-columns: 1fr;
  gap: 1.25rem;
}
@media (min-width: 1100px) {
  .match-grid-landing { grid-template-columns: repeat(2, 1fr); }
}
.match-card-detailed { padding: 1.75rem; }
.match-card-details-wide {
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
}
.match-card-detail-full { grid-column: 1 / -1; }
.match-card-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  margin-top: 0.25rem;
}
.match-squad-preview { margin-top: 1rem; }
.match-squad-preview-sub { margin-top: 0.75rem; }
.match-squad-heading {
  font-family: 'Oswald', sans-serif;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-size: 0.82rem;
  color: var(--gold);
  margin-bottom: 0.5rem;
}
.match-player-list {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}
.match-player-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 999px;
  padding: 0.35rem 0.75rem;
  font-size: 0.86rem;
}
.match-player-chip.is-captain {
  border-color: rgba(212,175,55,0.45);
  background: rgba(212,175,55,0.08);
}
.match-player-pos {
  color: var(--gray);
  font-size: 0.78rem;
}
.match-player-cap {
  font-family: 'Oswald', sans-serif;
  color: var(--gold);
  font-size: 0.72rem;
  font-weight: 700;
}
.match-squad-empty {
  color: var(--gray);
  font-size: 0.88rem;
  margin-top: 0.75rem;
  font-style: italic;
}
.match-card-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
  margin-bottom: 0.75rem;
}
.match-badge {
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  border: 1px solid rgba(212,175,55,0.35);
  color: var(--gold);
  border-radius: 999px;
  padding: 0.2rem 0.65rem;
}
.match-badge-muted { border-color: rgba(255,255,255,0.12); color: var(--gray); }
.match-score { margin-left: auto; font-family: 'Oswald', sans-serif; color: var(--gold); font-size: 1.2rem; }
.match-card-title { font-family: 'Oswald', sans-serif; font-size: 1.2rem; margin-bottom: 0.35rem; text-transform: uppercase; }
.match-card-title a { color: var(--white); text-decoration: none; }
.match-card-title a:hover { color: var(--gold); }
.match-card-competition { color: var(--gray); font-size: 0.9rem; margin-bottom: 1rem; }
.match-card-details {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.65rem 1rem;
  margin: 1rem 0 1.25rem;
  font-size: 0.88rem;
}
.match-card-details dt { color: var(--gray); }
.match-card-details dd { font-weight: 500; }
.match-result-big {
  font-family: 'Oswald', sans-serif;
  font-size: 3rem;
  color: var(--gold);
  margin-top: 0.5rem;
}

.team-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 1.25rem;
}
.team-grid-compact { grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
.team-grid-players { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
.team-card { text-align: center; }
.team-card-player { display: flex; align-items: center; gap: 1rem; text-align: left; }
.team-avatar {
  width: 88px;
  height: 88px;
  border-radius: 50%;
  margin: 0 auto 1rem;
  background: linear-gradient(135deg, #1a2030, #0f121a);
  border: 2px solid rgba(212,175,55,0.35);
  display: grid;
  place-items: center;
  overflow: hidden;
  font-family: 'Oswald', sans-serif;
  font-size: 1.8rem;
  color: var(--gold);
}
.team-avatar-sm { width: 56px; height: 56px; margin: 0; font-size: 1.2rem; flex-shrink: 0; }
.team-avatar img { width: 100%; height: 100%; object-fit: cover; }
.team-card h3 { font-family: 'Oswald', sans-serif; text-transform: uppercase; letter-spacing: 0.04em; }
.team-role { color: var(--gold); font-size: 0.88rem; margin-top: 0.25rem; }
.team-bio { color: var(--gray); font-size: 0.9rem; margin-top: 0.75rem; }

.news-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1.5rem;
}
.news-grid-full { grid-template-columns: 1fr; max-width: 820px; }
.news-card { overflow: hidden; padding: 0; }
.news-cover { display: block; aspect-ratio: 16/9; overflow: hidden; }
.news-cover img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.3s ease; }
.news-card:hover .news-cover img { transform: scale(1.03); }
.news-body { padding: 1.5rem; }
.news-body time { color: var(--gray); font-size: 0.82rem; text-transform: uppercase; letter-spacing: 0.06em; }
.news-body h2, .news-body h3 { font-family: 'Oswald', sans-serif; margin: 0.5rem 0; text-transform: uppercase; font-size: 1.15rem; }
.news-body h2 a, .news-body h3 a { color: var(--white); text-decoration: none; }
.news-body h2 a:hover, .news-body h3 a:hover { color: var(--gold); }
.news-body p { color: var(--gray); font-size: 0.95rem; margin-top: 0.5rem; }
.news-link { display: inline-block; margin-top: 0.75rem; color: var(--gold); text-decoration: none; font-size: 0.92rem; }

.sponsor-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 1rem;
  align-items: center;
}
.sponsor-card {
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: var(--radius);
  min-height: 90px;
  display: grid;
  place-items: center;
  padding: 1rem;
  text-decoration: none;
  color: var(--gray);
  transition: border-color 0.2s ease, transform 0.2s ease;
}
.sponsor-card:hover { border-color: rgba(212,175,55,0.35); transform: translateY(-2px); }
.sponsor-card img { max-width: 100%; max-height: 48px; object-fit: contain; filter: grayscale(0.2); }

.partner-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 1.25rem;
  margin-bottom: 2rem;
}
.partner-card { text-align: center; }
.partner-logo { max-height: 64px; max-width: 100%; object-fit: contain; margin-bottom: 1rem; }
.partner-cta { margin-top: 2rem; text-align: center; }

/* Partner page: center page copy */
.page-partner .page-hero .container {
  text-align: center;
}
.page-partner .page-lead {
  margin-inline: auto;
}
.page-partner > section > .container {
  text-align: center;
}
.page-partner .section-title,
.page-partner .section-title-sm {
  text-align: center;
}
.page-partner .section-text {
  margin-inline: auto;
  text-align: center;
}
.page-partner .partner-cta .section-text {
  margin-inline: auto;
}
.page-partner .empty-state {
  margin-inline: auto;
  max-width: 40rem;
}


.detail-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1.25rem;
}
.detail-heading {
  font-family: 'Oswald', sans-serif;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 1rem;
}
.detail-list { display: grid; gap: 0.75rem; }
.detail-list div { display: flex; justify-content: space-between; gap: 1rem; border-bottom: 1px solid rgba(255,255,255,0.06); padding-bottom: 0.5rem; }
.detail-list dt { color: var(--gray); }
.detail-muted { color: var(--gray); margin: 0.35rem 0 1rem; }
.prose-card .prose p { color: var(--gray); margin-bottom: 0.75rem; }
.prose-card .prose a { color: var(--gold); }
.prose-card .prose h2, .prose-card .prose h3 { font-family: 'Oswald', sans-serif; margin: 1rem 0 0.5rem; text-transform: uppercase; }

.squad-list ul { list-style: none; display: grid; gap: 0.5rem; }
.squad-list li { display: flex; align-items: center; gap: 0.75rem; padding: 0.5rem 0; border-bottom: 1px solid rgba(255,255,255,0.05); }
.squad-number {
  font-family: 'Oswald', sans-serif;
  color: var(--gold);
  min-width: 2rem;
  text-align: center;
}
.squad-badge {
  margin-left: auto;
  font-size: 0.75rem;
  color: var(--gold);
  border: 1px solid rgba(212,175,55,0.35);
  border-radius: 999px;
  padding: 0.15rem 0.5rem;
}

.empty-state { color: var(--gray); text-align: center; }
.section-cta { padding-top: 0; padding-bottom: 4rem; }

.contact-highlights {
  list-style: none;
  margin-top: 1.5rem;
  display: grid;
  gap: 0.5rem;
  color: var(--gray);
}
.contact-highlights li::before {
  content: "✓";
  color: var(--gold);
  margin-right: 0.5rem;
}

.checkbox-label {
  display: flex !important;
  align-items: flex-start;
  gap: 0.65rem;
  font-size: 0.88rem;
  color: #475569;
  line-height: 1.45;
}
.checkbox-label input { width: auto; margin-top: 0.2rem; flex-shrink: 0; accent-color: #c9a227; }
.checkbox-label a { color: #9a7b1a; font-weight: 600; }

.contact-form .form-status { color: #475569; }
.contact-form .form-status.ok { color: #0d7a4d; }
.contact-form .form-status.err { color: #b91c1c; }

/* Magazine-style article cover & reading column */
.article-page .article-header {
  max-width: 46rem;
  margin-inline: auto;
}
.article-page .article-header time {
  display: inline-block;
  font-size: 0.82rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--gold, #c9a227);
  margin-bottom: 0.65rem;
}
.article-page .page-title-article {
  letter-spacing: 0.02em;
  margin-bottom: 0.55rem;
}
.article-page .article-header .page-lead {
  margin-bottom: 0;
  font-size: 0.98rem;
}

.article-cover {
  margin: 1.6rem auto 0;
  max-width: min(100%, 42rem);
}
.article-cover-media {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  max-height: min(36vh, 340px);
  border-radius: 0.9rem;
  overflow: hidden;
  display: grid;
  place-items: center;
  background:
    radial-gradient(120% 100% at 50% 0%, rgba(212, 175, 55, 0.14), transparent 58%),
    linear-gradient(165deg, rgba(15, 23, 42, 0.04), rgba(15, 23, 42, 0.1));
  border: 1px solid rgba(148, 163, 184, 0.28);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.45) inset,
    0 18px 42px -28px rgba(15, 23, 42, 0.55);
}
.article-cover-media img {
  width: 100%;
  height: 100%;
  max-height: min(36vh, 340px);
  object-fit: contain;
  object-position: center;
  padding: clamp(1rem, 3.5vw, 2.25rem);
  display: block;
}

/* Full-bleed photo look when cover is clearly landscape content-image style */
.article-cover.is-photo .article-cover-media img {
  object-fit: cover;
  padding: 0;
}

.article-content {
  margin-top: 0;
  max-width: 46rem;
  margin-inline: auto;
}
.article-back {
  margin-top: 1.5rem;
  max-width: 46rem;
  margin-inline: auto;
}

/* First body image: editorial inset, not oversized hero */
.article-content .prose > p:first-child > img:only-child,
.article-content .prose > figure:first-child {
  display: block;
  max-width: min(100%, 34rem);
  margin: 0.35rem auto 1.35rem;
}
.article-content .prose > figure:first-child img,
.article-content .prose > p:first-child > img:only-child {
  width: 100%;
  height: auto;
  max-height: min(42vh, 380px);
  object-fit: cover;
  object-position: center;
  border-radius: 0.75rem;
  box-shadow: 0 14px 36px -24px rgba(15, 23, 42, 0.45);
  border: 1px solid rgba(148, 163, 184, 0.22);
}
.article-content .prose > figure:first-child figcaption {
  text-align: center;
  font-size: 0.82rem;
  color: var(--gray, #64748b);
  margin-top: 0.45rem;
  font-style: italic;
}

@media (max-width: 640px) {
  .article-cover-media {
    aspect-ratio: 4 / 3;
    max-height: min(40vh, 280px);
  }
  .article-cover-media img {
    max-height: min(40vh, 280px);
    padding: 0.9rem 1rem;
  }
}

.footer-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 2rem;
  text-align: left;
  max-width: 1200px;
  margin: 0 auto 2rem;
  padding: 0 1.5rem;
}
.footer-heading {
  font-family: 'Oswald', sans-serif;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--white);
  margin-bottom: 0.75rem;
  font-size: 0.9rem;
}
.footer-nav ul, .footer-legal ul { list-style: none; display: grid; gap: 0.35rem; }
.footer-nav a, .footer-legal a, .footer-brand a { color: var(--gray); text-decoration: none; }
.footer-nav a:hover, .footer-legal a:hover, .footer-brand a:hover { color: var(--gold); }
.footer-tagline { margin: 0.35rem 0 0.75rem; }
.social-links { display: flex; flex-wrap: wrap; gap: 0.5rem 1rem; }
.social-links a { color: var(--gray); text-decoration: none; font-size: 0.9rem; }
.social-links a:hover { color: var(--gold); }
.footer-copy { border-top: 1px solid rgba(255,255,255,0.06); padding-top: 1.5rem; }

@media (max-width: 900px) {
  .contact-grid { grid-template-columns: 1fr; }
  .nav-toggle { display: block; }
  .nav-menu {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: rgba(8, 10, 14, 0.97);
    border-bottom: 1px solid rgba(255,255,255,0.08);
    flex-direction: column;
    align-items: stretch;
    padding: 1rem 1.5rem 1.25rem;
    display: none;
  }
  .nav-inner { position: relative; }
  .site-nav.is-open .nav-menu { display: flex; }
  .nav-links { flex-direction: column; gap: 0.75rem; }
  .nav-cta { width: 100%; justify-content: center; }
  .section-header { flex-direction: column; align-items: flex-start; }
}

@media (max-width: 600px) {
  .subtitle { font-size: 1rem; }
  .match-card-details { grid-template-columns: 1fr; }
}

.print-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  margin-top: 1rem;
}

.print-modal {
  position: fixed;
  inset: 0;
  z-index: 1300;
  display: grid;
  place-items: center;
  padding: 1rem;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.32s ease;
}
.print-modal[hidden] { display: none !important; }
body.print-modal-open .print-modal {
  opacity: 1;
  pointer-events: auto;
}
body.print-modal-closing .print-modal { opacity: 0; }
.print-modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(4, 6, 10, 0.72);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.print-modal-dialog {
  position: relative;
  z-index: 1;
  width: min(94vw, 640px);
  max-height: 90vh;
  overflow: auto;
  padding: 1.15rem 1.15rem 1.25rem;
  border-radius: 1rem;
  background: linear-gradient(180deg, #171c25 0%, #12161d 100%);
  border: 1px solid rgba(255, 255, 255, 0.1);
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.5);
  transform: translateY(10px) scale(0.98);
  transition: transform 0.32s ease, opacity 0.32s ease;
}
body.print-modal-open .print-modal-dialog {
  transform: translateY(0) scale(1);
}
body.print-modal-closing .print-modal-dialog {
  transform: translateY(6px) scale(0.98);
  opacity: 0.7;
}
.print-modal-close {
  position: absolute;
  top: 0.55rem;
  right: 0.65rem;
  width: 2.2rem;
  height: 2.2rem;
  border: 0;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.08);
  color: #e8edf5;
  font-size: 1.4rem;
  line-height: 1;
  cursor: pointer;
}
.print-modal-close:hover,
.print-modal-close:focus-visible {
  background: rgba(255, 255, 255, 0.14);
  outline: none;
}
.print-modal-title {
  margin: 0 2rem 0.35rem 0;
  font-family: 'Oswald', sans-serif;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-size: 1.35rem;
}
.print-modal-lead {
  margin: 0 0 1rem;
  color: var(--gray);
  font-size: 0.9rem;
  line-height: 1.45;
}
.print-modal-section + .print-modal-section {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}
.print-modal-section h3 {
  margin: 0 0 0.55rem;
  font-family: 'Oswald', sans-serif;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.82rem;
  color: var(--gold);
}
.print-modal-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.45rem;
}
.print-modal-link {
  display: grid;
  gap: 0.15rem;
  width: 100%;
  padding: 0.7rem 0.8rem;
  border-radius: 0.7rem;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.03);
  color: inherit;
  text-align: left;
  text-decoration: none;
  transition: border-color 0.2s ease, background 0.2s ease;
}
.print-modal-link:hover,
.print-modal-link:focus-visible {
  border-color: rgba(212, 175, 55, 0.45);
  background: rgba(212, 175, 55, 0.08);
  outline: none;
}
.print-modal-link-btn {
  font: inherit;
  cursor: pointer;
}
.print-modal-link-title {
  font-weight: 600;
  font-size: 0.95rem;
}
.print-modal-link-desc {
  color: var(--gray);
  font-size: 0.82rem;
  line-height: 1.35;
}
.print-modal-status {
  margin: 0.55rem 0 0;
  font-size: 0.85rem;
  color: var(--gold);
}
/* News status pills & archive vault */
.news-meta-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.75rem;
  margin-bottom: 0.35rem;
}
.news-status-pill {
  display: inline-block;
  padding: 0.12rem 0.5rem;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}
.news-status-preview {
  background: rgba(245, 158, 11, 0.2);
  color: #fbbf24;
  border: 1px solid rgba(245, 158, 11, 0.4);
}
.news-status-archived {
  background: rgba(148, 163, 184, 0.18);
  color: #cbd5e1;
  border: 1px solid rgba(148, 163, 184, 0.35);
}
.news-card-preview {
  border-color: rgba(245, 158, 11, 0.35);
  box-shadow: 0 0 0 1px rgba(245, 158, 11, 0.12);
}
.team-preview-banner,
.archive-banner {
  margin: 0 0 1rem;
  padding: 0.7rem 1rem;
  border-radius: 0.65rem;
  font-size: 0.9rem;
  line-height: 1.4;
}
.team-preview-banner {
  background: rgba(245, 158, 11, 0.12);
  border: 1px solid rgba(245, 158, 11, 0.35);
  color: #fde68a;
}
.archive-banner {
  background: rgba(100, 116, 139, 0.15);
  border: 1px solid rgba(148, 163, 184, 0.35);
  color: #e2e8f0;
}
.archive-banner a { color: #fde68a; }
.archive-link-footer {
  margin-top: 2rem;
  text-align: center;
}
.archive-link-footer a {
  color: #c9a227;
  font-weight: 600;
}
.page-hero-actions { margin-top: 0.75rem; }

/* Archive vault filters */
.archive-vault { padding-bottom: 3rem; }
.archive-filters {
  margin-bottom: 1.5rem;
  padding: 1.1rem 1.25rem;
}
.archive-filters-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 0.85rem 1rem;
  align-items: end;
}
.archive-filters label {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--text-muted, #94a3b8);
}
.archive-filters input,
.archive-filters select {
  width: 100%;
  padding: 0.55rem 0.7rem;
  border-radius: 0.5rem;
  border: 1px solid rgba(148, 163, 184, 0.35);
  background: rgba(15, 23, 42, 0.65);
  color: inherit;
  font: inherit;
}
.archive-filters-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
}
.archive-result-count {
  margin: 0 0 1rem;
  font-size: 0.9rem;
  color: var(--text-muted, #94a3b8);
}
.archive-group { margin-bottom: 2rem; }
.archive-group-title {
  font-family: Oswald, sans-serif;
  font-size: 1.35rem;
  margin: 0 0 0.85rem;
  letter-spacing: 0.02em;
  border-bottom: 1px solid rgba(201, 162, 39, 0.25);
  padding-bottom: 0.35rem;
}
.news-author {
  font-size: 0.85rem;
  color: var(--text-muted, #94a3b8);
  margin: 0 0 0.4rem;
}

/* About section: title left, academy logo right */
.about-header {
  align-items: center;
  gap: 1.5rem 2.5rem;
  margin-bottom: 1.75rem;
}
.about-header-text {
  flex: 1 1 auto;
  min-width: 0;
}
.about-header-text .section-title {
  margin-bottom: 0.75rem;
}
.about-header-text .section-text {
  margin-bottom: 0;
  max-width: 42rem;
}
.about-header-logo {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
}
.about-logo {
  display: block;
  width: clamp(120px, 18vw, 220px);
  height: auto;
  max-height: 220px;
  object-fit: contain;
  filter: drop-shadow(0 8px 24px rgba(15, 23, 42, 0.12));
}
@media (max-width: 720px) {
  .about-header {
    flex-direction: column;
    align-items: flex-start;
  }
  .about-header-logo {
    align-self: center;
  }
  .about-logo {
    width: min(180px, 55vw);
  }
}

/* Überblick / person page */
.person-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(140px, 0.7fr);
  gap: 1.5rem 2rem;
  align-items: center;
}
.person-role {
  margin: 0.35rem 0 0.85rem;
  font-weight: 650;
  color: var(--gold, #d4af37);
  letter-spacing: 0.02em;
}
.person-motto {
  margin: 1rem 0 0;
  font-size: 1.05rem;
  color: var(--dark-muted, #c5cddb);
}
.person-hero-media {
  display: flex;
  justify-content: flex-end;
}
.person-hero-logo {
  width: clamp(140px, 20vw, 240px);
  height: auto;
  object-fit: contain;
  filter: drop-shadow(0 10px 28px rgba(0, 0, 0, 0.25));
}
.person-intro {
  padding: 2rem 0 1rem;
}
.person-bio .prose h2 {
  margin-top: 0;
}
.person-timeline-section {
  padding: 2.5rem 0 3rem;
}
.person-timeline-head {
  margin-bottom: 2rem;
}
.career-timeline {
  list-style: none;
  margin: 0;
  padding: 0;
  position: relative;
  display: grid;
  gap: 1.25rem;
}
.career-timeline::before {
  content: "";
  position: absolute;
  left: 0.85rem;
  top: 0.25rem;
  bottom: 0.25rem;
  width: 2px;
  background: linear-gradient(180deg, rgba(212, 175, 55, 0.75), rgba(148, 163, 184, 0.25));
}
.career-timeline-item {
  display: grid;
  grid-template-columns: 2rem minmax(0, 1fr);
  gap: 0.85rem 1.1rem;
  align-items: start;
  position: relative;
}
.career-timeline-marker {
  display: flex;
  justify-content: center;
  padding-top: 1.15rem;
  z-index: 1;
}
.career-timeline-dot {
  width: 0.9rem;
  height: 0.9rem;
  border-radius: 50%;
  background: var(--gold, #d4af37);
  box-shadow: 0 0 0 4px rgba(212, 175, 55, 0.2);
  border: 2px solid rgba(255, 255, 255, 0.85);
}
.career-timeline-card {
  margin: 0;
  padding: 1rem 1.15rem 1.1rem;
}
.career-timeline-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem 0.75rem;
  margin-bottom: 0.45rem;
}
.career-timeline-tag {
  display: inline-block;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 0.18rem 0.5rem;
  border-radius: 999px;
  background: rgba(212, 175, 55, 0.16);
  color: #9a7b1a;
  border: 1px solid rgba(212, 175, 55, 0.35);
}
.career-timeline-period {
  font-size: 0.86rem;
  font-weight: 650;
  color: var(--text-muted, #5c6570);
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}
.career-timeline-title {
  margin: 0 0 0.4rem;
  font-family: 'Oswald', sans-serif;
  font-size: 1.2rem;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--text, #141820);
}
.career-timeline-text {
  margin: 0;
  color: var(--text-muted, #5c6570);
  line-height: 1.55;
  font-size: 0.95rem;
}
.person-cta-section {
  padding: 0 0 3rem;
}
.person-cta {
  text-align: center;
  padding: 1.5rem 1.25rem;
}
.person-cta .section-text {
  margin-left: auto;
  margin-right: auto;
  max-width: 36rem;
}
.person-cta-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  justify-content: center;
  margin-top: 1rem;
}
@media (max-width: 720px) {
  .person-hero-grid {
    grid-template-columns: 1fr;
  }
  .person-hero-media {
    justify-content: center;
  }
}

/* Academy video gallery + cinema popup */
.academy-video-section {
  padding: 2rem 0 2.5rem;
}
.academy-video-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
  margin-top: 0.5rem;
}
.academy-video-thumb {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  text-align: left;
  color: inherit;
  font: inherit;
}
.academy-video-thumb-media {
  position: relative;
  display: block;
  aspect-ratio: 16 / 10;
  border-radius: 0.85rem;
  overflow: hidden;
  border: 1px solid var(--border, rgba(20, 24, 32, 0.1));
  background: #0f141c;
  box-shadow: 0 10px 28px rgba(15, 23, 42, 0.12);
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}
.academy-video-thumb:hover .academy-video-thumb-media,
.academy-video-thumb:focus-visible .academy-video-thumb-media {
  transform: translateY(-3px);
  box-shadow: 0 16px 36px rgba(15, 23, 42, 0.18);
  outline: none;
}
.academy-video-thumb:focus-visible {
  outline: none;
}
.academy-video-thumb-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.academy-video-thumb-fallback {
  display: block;
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, #1e293b, #0f172a);
}
.academy-video-play-icon {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  font-size: 1.35rem;
  color: #fff;
  background: radial-gradient(circle at center, rgba(0,0,0,0.15), rgba(0,0,0,0.45));
  text-shadow: 0 2px 8px rgba(0,0,0,0.5);
}
.academy-video-thumb-label {
  font-size: 0.88rem;
  font-weight: 650;
  color: var(--text, #141820);
}

/* Page blur when cinema open */
html.video-cinema-open,
html.video-cinema-open body {
  overflow: hidden;
}
html.video-cinema-open body > *:not(.video-cinema),
html.video-cinema-open body .site-nav,
html.video-cinema-open body main,
html.video-cinema-open body .site-footer {
  /* main content blurred — cinema is a sibling after main sections inside body structure:
     body > skip, offline, nav, main, footer — video cinema is inside main via page include before footer.
     So we blur everything except cinema overlay. */
}
/* Cinema is inside the page flow before footer partial closes main... actually ueberblick puts cinema before cta still inside main */
body.video-cinema-open .site-nav,
body.video-cinema-open main > *:not(.video-cinema),
body.video-cinema-open .site-footer,
body.video-cinema-open .offline-banner {
  filter: blur(8px) brightness(0.55);
  transition: filter 0.35s ease;
  pointer-events: none;
  user-select: none;
}
body:not(.video-cinema-open) .site-nav,
body:not(.video-cinema-open) main > *,
body:not(.video-cinema-open) .site-footer {
  filter: none;
  transition: filter 0.35s ease;
}

.video-cinema[hidden] {
  display: none !important;
}
.video-cinema {
  position: fixed;
  inset: 0;
  z-index: 2000;
  display: grid;
  place-items: center;
  padding: 1rem;
}
.video-cinema-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(5, 8, 14, 0.55);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
  cursor: pointer;
}
.video-cinema-dialog {
  position: relative;
  z-index: 1;
  width: min(960px, 100%);
  background: linear-gradient(165deg, #121822, #0b0f16);
  color: #f4f6fa;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 1rem;
  box-shadow: 0 24px 80px rgba(0, 0, 0, 0.55);
  padding: 0.9rem 1rem 1rem;
  animation: video-cinema-in 0.28s ease;
}
@keyframes video-cinema-in {
  from { opacity: 0; transform: translateY(10px) scale(0.98); }
  to { opacity: 1; transform: none; }
}
.video-cinema-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.65rem;
}
.video-cinema-title {
  margin: 0;
  font-family: 'Oswald', sans-serif;
  font-size: 1.15rem;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}
.video-cinema-close {
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.18);
  background: rgba(255,255,255,0.08);
  color: #fff;
  font-size: 1.35rem;
  line-height: 1;
  cursor: pointer;
}
.video-cinema-close:hover {
  background: rgba(255,255,255,0.16);
}
.video-cinema-stage {
  border-radius: 0.75rem;
  overflow: hidden;
  background: #000;
  border: 1px solid rgba(255,255,255,0.08);
}
.video-cinema-stage video {
  display: block;
  width: 100%;
  max-height: min(62vh, 540px);
  background: #000;
}
.video-cinema-controls {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: center;
  margin-top: 0.85rem;
}
.video-cinema-controls .btn {
  min-width: 6.5rem;
}
.video-cinema-counter {
  margin: 0.65rem 0 0;
  text-align: center;
  font-size: 0.85rem;
  color: #94a3b8;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}

@media (max-width: 900px) {
  .academy-video-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 520px) {
  .academy-video-grid {
    grid-template-columns: 1fr 1fr;
    gap: 0.75rem;
  }
  .video-cinema-controls .btn {
    flex: 1 1 calc(50% - 0.5rem);
  }
}
body.video-cinema-open main > .video-cinema,
body.video-cinema-open .video-cinema {
  filter: none !important;
  pointer-events: auto !important;
  user-select: auto !important;
}

/* Enhanced legal pages */
.legal-container { max-width: 48rem; }
.legal-header { margin-bottom: 0.5rem; }
.legal-header .section-text { max-width: 40rem; }
.legal-prose h2 {
  font-family: 'Oswald', sans-serif;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  font-size: 1.25rem;
  margin: 1.6rem 0 0.65rem;
  color: var(--text, #141820);
  border-bottom: 1px solid var(--border, rgba(20,24,32,.1));
  padding-bottom: 0.35rem;
}
.legal-prose h3 {
  font-size: 1.02rem;
  margin: 1.1rem 0 0.45rem;
  color: var(--text, #141820);
}
.legal-prose p,
.legal-prose li {
  color: var(--text-muted, #5c6570);
  line-height: 1.65;
}
.legal-prose ul {
  margin: 0.45rem 0 0.9rem 1.2rem;
}
.legal-agency {
  margin: 0.5rem 0 0.75rem;
  padding: 0.85rem 1rem;
  border-radius: 0.75rem;
  border: 1px solid rgba(212, 175, 55, 0.35);
  background: linear-gradient(135deg, rgba(212,175,55,0.1), rgba(255,255,255,0.04));
}
.legal-agency-bolt {
  margin: 0 0.1rem;
  color: #d4af37;
}
.legal-note {
  font-size: 0.9rem;
  opacity: 0.95;
}
.legal-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  margin: 0 0 2.5rem;
}

/* Contact story + vertical accordion tabs */
.contact-section { position: relative; }
.contact-story { min-width: 0; }
.contact-kicker { margin-bottom: 0.5rem; }
.contact-lead { max-width: 36rem; }
.contact-hook {
  margin: 0 0 1.25rem;
  padding: 0.85rem 1rem;
  border-left: 3px solid var(--gold, #d4af37);
  background: linear-gradient(90deg, rgba(212, 175, 55, 0.12), transparent);
  border-radius: 0 0.75rem 0.75rem 0;
  color: var(--text, #141820);
  font-weight: 550;
  line-height: 1.55;
  max-width: 36rem;
}

.contact-tabs {
  display: grid;
  gap: 0.55rem;
  margin: 0 0 1.35rem;
  max-width: 38rem;
}
.contact-tab {
  border-radius: 0.95rem;
  border: 1px solid var(--border, rgba(20, 24, 32, 0.1));
  background: var(--card-bg, #fff);
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.06);
  overflow: hidden;
  transition: border-color 0.18s ease, box-shadow 0.18s ease;
}
.contact-tab.is-open {
  border-color: rgba(212, 175, 55, 0.45);
  box-shadow: 0 12px 32px rgba(15, 23, 42, 0.1);
}
.contact-tab-trigger {
  width: 100%;
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 0.75rem;
  align-items: center;
  text-align: left;
  padding: 0.9rem 1rem;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  cursor: pointer;
}
.contact-tab-trigger:hover { background: rgba(212, 175, 55, 0.06); }
.contact-tab-index {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: #b8922a;
  min-width: 1.6rem;
}
.contact-tab-title {
  font-weight: 700;
  font-size: 0.95rem;
  line-height: 1.35;
  color: var(--text, #141820);
}
.contact-tab-chevron {
  width: 0.55rem;
  height: 0.55rem;
  border-right: 2px solid #94a3b8;
  border-bottom: 2px solid #94a3b8;
  transform: rotate(45deg);
  transition: transform 0.2s ease;
  margin-top: -0.2rem;
}
.contact-tab.is-open .contact-tab-chevron {
  transform: rotate(225deg);
  margin-top: 0.15rem;
  border-color: #b8922a;
}
.contact-tab-panel {
  padding: 0 1rem 1rem 2.9rem;
  color: var(--text-muted, #5c6570);
  font-size: 0.92rem;
  line-height: 1.6;
}
.contact-tab-panel[hidden] { display: none !important; }
.contact-tab-panel p { margin: 0 0 0.65rem; }
.contact-tab-panel p:last-child { margin-bottom: 0; }
.contact-tab-list {
  margin: 0.35rem 0 0.5rem;
  padding-left: 1.1rem;
}
.contact-tab-list li { margin-bottom: 0.3rem; }
.contact-tab-cta-line {
  color: var(--text, #141820) !important;
  margin-top: 0.5rem !important;
}

.contact-highlights {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.45rem;
}
.contact-highlights li {
  position: relative;
  padding: 0.55rem 0.75rem 0.55rem 2rem;
  border-radius: 0.7rem;
  background: rgba(212, 175, 55, 0.08);
  border: 1px solid rgba(212, 175, 55, 0.2);
  font-weight: 600;
  font-size: 0.9rem;
  color: var(--text, #141820);
}
.contact-highlights li::before {
  content: "✓";
  position: absolute;
  left: 0.7rem;
  top: 50%;
  transform: translateY(-50%);
  color: #b8922a;
  font-weight: 800;
}

@media (max-width: 900px) {
  .contact-grid {
    grid-template-columns: 1fr;
  }
  .contact-tab-panel { padding-left: 1rem; }
}

/* Digital Widerruf form + signature / preview modals */
.widerruf-form {
  margin: 1rem 0 1.5rem;
  padding: 1.25rem 1.35rem 1.4rem;
  display: grid;
  gap: 1rem;
  background: linear-gradient(180deg, #fff, #f8fafc);
  border: 1px solid rgba(15, 23, 42, 0.1);
  color: #0f172a;
}
.widerruf-recipient-label {
  margin: 0 0 0.25rem;
  font-size: 0.72rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-weight: 700;
  color: #64748b;
}
.widerruf-fieldset {
  border: 1px solid rgba(15, 23, 42, 0.1);
  border-radius: 0.85rem;
  padding: 0.85rem 1rem 1rem;
  margin: 0;
}
.widerruf-fieldset legend {
  padding: 0 0.35rem;
  font-weight: 700;
  font-size: 0.9rem;
}
.widerruf-radio {
  display: flex;
  gap: 0.55rem;
  align-items: flex-start;
  margin: 0.35rem 0;
  font-size: 0.92rem;
  cursor: pointer;
}
.widerruf-radio input { margin-top: 0.2rem; accent-color: #c9a227; }
.widerruf-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.85rem 1rem;
}
.widerruf-field {
  display: grid;
  gap: 0.35rem;
  font-size: 0.9rem;
}
.widerruf-field-full { grid-column: 1 / -1; }
.widerruf-field > span {
  font-size: 0.8rem;
  font-weight: 650;
  color: #475569;
}
.widerruf-field input,
.widerruf-field textarea,
.widerruf-form input[type="text"],
.widerruf-form input[type="email"],
.widerruf-form input[type="date"],
.widerruf-form textarea {
  width: 100%;
  border: 1px solid rgba(15, 23, 42, 0.12);
  border-radius: 0.7rem;
  padding: 0.65rem 0.8rem;
  background: #fff;
  color: #0f172a;
  font: inherit;
}
.widerruf-field input:focus,
.widerruf-field textarea:focus {
  outline: none;
  border-color: #d4af37;
  box-shadow: 0 0 0 3px rgba(212, 175, 55, 0.18);
}
.widerruf-signature-box {
  border: 1px dashed rgba(212, 175, 55, 0.55);
  border-radius: 0.9rem;
  padding: 0.9rem 1rem;
  background: rgba(212, 175, 55, 0.06);
}
.widerruf-signature-head {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 0.65rem;
}
.widerruf-signature-head .sig-head-hint {
  margin: 0.2rem 0 0;
  font-size: 0.86rem;
  color: #64748b;
  line-height: 1.4;
}
.widerruf-signature-preview {
  position: relative;
  /* Regular compact signature field (metric-normalized placeholder font) */
  height: 100px;
  min-height: 100px;
  max-height: 100px;
  border-radius: 0.75rem;
  border: 1px solid rgba(15, 23, 42, 0.08);
  background:
    linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
  display: block;
  padding: 0.45rem 0.75rem 2.35rem;
  overflow: hidden;
  box-sizing: border-box;
}
.widerruf-signature-preview.is-clickable-sign-area {
  cursor: pointer;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.widerruf-signature-preview.is-clickable-sign-area:hover {
  border-color: rgba(212, 175, 55, 0.45);
  box-shadow: 0 0 0 2px rgba(212, 175, 55, 0.1);
}
.widerruf-signature-preview.is-clickable-sign-area:focus-visible {
  outline: 2px solid rgba(212, 175, 55, 0.55);
  outline-offset: 2px;
}
/* Empty placeholder text is visual only; clicks go to the preview container */
.widerruf-signature-preview.is-clickable-sign-area .widerruf-signature-empty {
  pointer-events: none;
}
.widerruf-signature-preview img {
  max-width: 100%;
  max-height: 52px;
  width: auto;
  height: auto;
  object-fit: contain;
  display: none;
  margin: 0 auto;
}
.widerruf-signature-preview img[hidden],
.widerruf-signature-preview:not(.has-real-signature) img {
  display: none !important;
}
.widerruf-signature-preview.has-real-signature img:not([hidden]) {
  display: block !important;
}
.widerruf-signature-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.12rem;
  width: 100%;
  max-width: 100%;
  /* Reserved band above the CTA button — regular height */
  height: 3rem;
  min-height: 3rem;
  max-height: 3rem;
  padding: 0.15rem 0.4rem 0;
  margin: 0 auto;
  text-align: center;
  pointer-events: none;
  user-select: none;
  overflow: hidden;
  box-sizing: border-box;
}
.widerruf-signature-empty[hidden] {
  display: none !important;
}
.sig-placeholder-mark {
  font-family: var(--font-placeholder, "Rockybilly", "Caveat", "Segoe Print", cursive, sans-serif);
}
.widerruf-signature-empty .sig-placeholder-mark {
  display: block;
  font-family: var(--font-placeholder, "Rockybilly", "Caveat", "Segoe Print", "Comic Sans MS", cursive, sans-serif);
  /* Regular signature-placeholder size (font metrics normalized via size-adjust) */
  font-size: clamp(1.05rem, 2.4vw, 1.28rem);
  font-weight: 400;
  letter-spacing: 0.01em;
  color: #64748b;
  line-height: 1.2;
  border-bottom: 1px solid rgba(148, 163, 184, 0.45);
  padding: 0.05rem 0.4rem 0.08rem;
  margin: 0 auto;
  max-width: 100%;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.widerruf-signature-empty .sig-placeholder-hint {
  display: block;
  font-family: Inter, system-ui, sans-serif;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  color: #94a3b8;
  text-transform: none;
  line-height: 1.2;
  margin: 0;
}
.widerruf-signature-preview.has-real-signature .widerruf-signature-empty {
  display: none !important;
}
.sig-inline-btn {
  position: absolute;
  left: 50%;
  bottom: 0.4rem;
  transform: translateX(-50%);
  z-index: 2;
  appearance: none;
  border: 0;
  cursor: pointer;
  min-height: 1.85rem;
  padding: 0.32rem 0.9rem;
  border-radius: 999px;
  font-family: Inter, system-ui, sans-serif;
  font-size: 0.8rem;
  font-weight: 650;
  letter-spacing: -0.01em;
  color: #0b0d10;
  background: linear-gradient(180deg, #f0d78c 0%, #d4af37 100%);
  box-shadow:
    0 1px 0 rgba(255,255,255,0.45) inset,
    0 6px 14px rgba(180, 140, 30, 0.25);
  transition: transform 0.15s ease, box-shadow 0.15s ease, filter 0.15s ease;
}
.sig-inline-btn:hover {
  filter: brightness(1.03);
  box-shadow:
    0 1px 0 rgba(255,255,255,0.5) inset,
    0 8px 18px rgba(180, 140, 30, 0.3);
}
.sig-inline-btn:active {
  transform: translateX(-50%) scale(0.98);
}
.sig-inline-btn:focus-visible {
  outline: 2px solid rgba(212, 175, 55, 0.55);
  outline-offset: 3px;
}
.widerruf-signature-preview.has-real-signature {
  padding-bottom: 2.35rem;
  display: grid;
  place-items: center;
}
/* Contact form: same stable height, no grid blow-up */
.contact-form .widerruf-signature-box {
  margin: 0.15rem 0;
  padding: 0.65rem 0.75rem;
}
.contact-form .widerruf-signature-preview {
  height: 100px;
  min-height: 100px;
  max-height: 100px;
}
.widerruf-signature-preview.has-real-signature .sig-inline-btn {
  background: #fff;
  color: #0f172a;
  border: 1px solid rgba(15, 23, 42, 0.12);
  box-shadow: 0 6px 16px rgba(15, 23, 42, 0.08);
  font-weight: 600;
}
body.theme-academy-nights .widerruf-signature-preview {
  background: linear-gradient(180deg, #161e2b 0%, #121822 100%);
  border-color: rgba(255,255,255,0.1);
}
body.theme-academy-nights .widerruf-signature-preview.has-real-signature .sig-inline-btn {
  background: #1c2433;
  color: #eef2f7;
  border-color: rgba(255,255,255,0.14);
}
body.theme-academy-nights .widerruf-signature-head .sig-head-hint {
  color: #a8b3c4;
}
.widerruf-signature-box.is-unsigned {
  border-style: dashed;
}
.widerruf-signature-box.is-signed {
  border-style: solid;
  border-color: rgba(34, 197, 94, 0.35);
  background: rgba(34, 197, 94, 0.05);
}

.widerruf-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  justify-content: flex-end;
}
.widerruf-privacy { align-items: flex-start; }
.widerruf-captcha { margin: 0; }

body.wr-modal-open { overflow: hidden; }
.wr-modal[hidden] { display: none !important; }
.wr-modal {
  position: fixed;
  inset: 0;
  z-index: 2100;
  display: grid;
  place-items: center;
  padding: 1rem;
}
.wr-modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.5);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  cursor: pointer;
}
.wr-modal-dialog {
  position: relative;
  z-index: 1;
  width: min(720px, 100%);
  max-height: min(92vh, 900px);
  overflow: auto;
  background: linear-gradient(180deg, #fff, #f8fafc);
  color: #0f172a;
  border-radius: 1rem;
  border: 1px solid rgba(15, 23, 42, 0.1);
  box-shadow: 0 28px 80px rgba(15, 23, 42, 0.35);
  padding: 1.1rem 1.2rem 1.25rem;
}
.wr-modal-dialog-wide { width: min(860px, 100%); }
.wr-modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.65rem;
}
.wr-modal-header h3 {
  margin: 0;
  font-family: Oswald, sans-serif;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  font-size: 1.15rem;
}
.wr-modal-close {
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 999px;
  border: 1px solid rgba(15, 23, 42, 0.12);
  background: rgba(15, 23, 42, 0.04);
  font-size: 1.3rem;
  cursor: pointer;
  line-height: 1;
}
.wr-modal-hint {
  margin: 0 0 0.85rem;
  color: #64748b;
  font-size: 0.9rem;
  line-height: 1.5;
}
.wr-sign-pad-wrap {
  border: 1px solid rgba(15, 23, 42, 0.12);
  border-radius: 0.85rem;
  background: #fff;
  overflow: hidden;
  touch-action: none;
}
#widerruf-sign-canvas {
  display: block;
  width: 100%;
  height: 220px;
  cursor: crosshair;
}
.wr-modal-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  justify-content: flex-end;
  margin-top: 0.9rem;
}
.wr-preview-sheet {
  border: 1px solid rgba(15, 23, 42, 0.1);
  border-radius: 0.85rem;
  background: #fff;
  padding: 1.1rem 1.2rem;
}
.wr-doc-kicker {
  margin: 0 0 0.25rem;
  font-size: 0.72rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #94a3b8;
  font-weight: 700;
}
.wr-doc h2 {
  margin: 0 0 0.35rem;
  font-family: Oswald, sans-serif;
  text-transform: uppercase;
}
.wr-doc-date { margin: 0 0 1rem; color: #64748b; font-size: 0.9rem; }
.wr-doc-block { margin-bottom: 1rem; }
.wr-doc-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.65rem 1rem;
}
.wr-doc-span { grid-column: 1 / -1; }
.wr-doc-sign img {
  max-width: 280px;
  border: 1px solid #e2e8f0;
  background: #fff;
  border-radius: 0.4rem;
  padding: 0.35rem;
}
.wr-doc-sign-meta { margin: 0.35rem 0 0; font-size: 0.85rem; color: #64748b; }

@media (max-width: 720px) {
  .widerruf-grid,
  .wr-doc-grid { grid-template-columns: 1fr; }
  .widerruf-actions { flex-direction: column-reverse; }
  .widerruf-actions .btn { width: 100%; justify-content: center; }
}

@media print {
  body * { visibility: hidden !important; }
  #widerruf-preview-sheet, #widerruf-preview-sheet * { visibility: visible !important; }
  #widerruf-preview-sheet {
    position: absolute;
    left: 0; top: 0; width: 100%;
    border: 0; box-shadow: none;
  }
}

/* Partner / Sponsoring contact extensions */
.partner-sponsor-panel {
  margin: 0 0 1.1rem;
  padding: 1rem 1.05rem 1.05rem;
  border-radius: 0.95rem;
  border: 1px solid rgba(212, 175, 55, 0.35);
  background: linear-gradient(165deg, rgba(255,252,245,0.98), rgba(248,250,252,0.96));
  display: grid;
  gap: 0.85rem;
}
.partner-sponsor-panel[hidden] { display: none !important; }
.partner-sponsor-intro strong {
  display: block;
  margin-bottom: 0.25rem;
  color: #0f172a;
  font-size: 0.98rem;
}
.partner-sponsor-intro p {
  margin: 0;
  color: #64748b;
  font-size: 0.9rem;
  line-height: 1.45;
}
.partner-subpanel {
  display: grid;
  gap: 0.75rem;
  padding-top: 0.35rem;
  border-top: 1px solid rgba(15, 23, 42, 0.08);
}
.partner-subpanel[hidden] { display: none !important; }
.partner-subpanel-title {
  margin: 0;
  font-weight: 700;
  font-size: 0.92rem;
  color: #0f172a;
}
.partner-tier-fieldset {
  margin: 0;
  padding: 0.75rem 0.85rem;
  border: 1px solid rgba(15, 23, 42, 0.1);
  border-radius: 0.8rem;
  display: grid;
  gap: 0.45rem;
}
.partner-tier-fieldset legend {
  padding: 0 0.3rem;
  font-size: 0.8rem;
  font-weight: 700;
  color: #475569;
}
.partner-choice {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.55rem;
  align-items: start;
  padding: 0.55rem 0.6rem;
  border-radius: 0.65rem;
  cursor: pointer;
  border: 1px solid transparent;
}
.partner-choice:hover {
  background: rgba(212, 175, 55, 0.08);
}
.partner-choice:has(input:checked) {
  background: rgba(212, 175, 55, 0.14);
  border-color: rgba(212, 175, 55, 0.4);
}
.partner-choice input { margin-top: 0.2rem; accent-color: #c9a227; }
.partner-choice span {
  display: grid;
  gap: 0.15rem;
  color: #0f172a;
}
.partner-choice strong { font-size: 0.92rem; }
.partner-choice em {
  font-style: normal;
  color: #64748b;
  font-size: 0.82rem;
  line-height: 1.35;
}
.sponsor-pricing-hint {
  margin: 0.25rem 0 0;
  font-size: 0.84rem;
  color: #64748b;
  line-height: 1.4;
}
.sponsor-gold-upgrade {
  padding: 0.75rem 0.85rem;
  border-radius: 0.75rem;
  background: rgba(212, 175, 55, 0.1);
  border: 1px solid rgba(212, 175, 55, 0.28);
}
body.theme-academy-nights .partner-sponsor-panel {
  background: var(--card-bg, #161e2b);
  border-color: rgba(212, 175, 55, 0.3);
}
body.theme-academy-nights .partner-subpanel-title,
body.theme-academy-nights .partner-sponsor-intro strong,
body.theme-academy-nights .partner-choice span {
  color: var(--text, #eef2f7);
}
body.theme-academy-nights .partner-sponsor-intro p,
body.theme-academy-nights .partner-choice em,
body.theme-academy-nights .sponsor-pricing-hint {
  color: var(--text-muted, #a8b3c4);
}

/* NavPro classic dropdown + mega menu */
.nav-item { position: relative; display: inline-flex; align-items: center; }
.nav-dropdown-trigger,
.nav-mega-trigger {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  font-weight: 600;
  cursor: pointer;
  padding: 0.35rem 0.15rem;
}
.nav-caret {
  width: 0.4rem;
  height: 0.4rem;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg);
  margin-top: -0.15rem;
  opacity: 0.7;
}
.nav-item.is-open .nav-caret { transform: rotate(225deg); margin-top: 0.15rem; }
.nav-dropdown-panel {
  position: absolute;
  top: calc(100% + 0.55rem);
  left: 0;
  min-width: 12rem;
  display: grid;
  gap: 0.15rem;
  padding: 0.55rem;
  border-radius: 0.85rem;
  background: rgba(255,255,255,0.98);
  border: 1px solid rgba(15,23,42,0.1);
  box-shadow: 0 16px 40px rgba(15,23,42,0.14);
  z-index: 80;
}
.nav-dropdown-panel[hidden] { display: none !important; }
.nav-dropdown-panel a {
  display: block;
  padding: 0.5rem 0.7rem;
  border-radius: 0.55rem;
  color: #0f172a !important;
  text-decoration: none;
  font-weight: 600;
  font-size: 0.9rem;
}
.nav-dropdown-panel a:hover,
.nav-dropdown-panel a.is-active {
  background: rgba(212,175,55,0.14);
  color: #0f172a !important;
}

.nav-item-mega { position: static; }
.site-nav-mega .nav-inner { position: relative; }
.nav-mega-panel {
  position: absolute;
  left: 0;
  right: 0;
  top: calc(100% + 0.35rem);
  z-index: 90;
  padding: 1.1rem 1.25rem 1.25rem;
  border-radius: 1rem;
  background: linear-gradient(180deg, #ffffff, #f8fafc);
  border: 1px solid rgba(15,23,42,0.1);
  box-shadow: 0 24px 60px rgba(15,23,42,0.16);
}
.nav-mega-panel[hidden] { display: none !important; }
.nav-mega-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 1rem 1.25rem;
}
.nav-mega-col-title {
  margin: 0 0 0.35rem;
  font-family: Oswald, sans-serif;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-size: 0.95rem;
  color: #0f172a;
}
.nav-mega-col-desc {
  margin: 0 0 0.65rem;
  font-size: 0.82rem;
  color: #64748b;
  line-height: 1.4;
}
.nav-mega-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.25rem;
}
.nav-mega-list a {
  display: grid;
  gap: 0.1rem;
  padding: 0.5rem 0.6rem;
  border-radius: 0.6rem;
  text-decoration: none;
  color: #0f172a !important;
}
.nav-mega-list a:hover,
.nav-mega-list a.is-active {
  background: rgba(212,175,55,0.14);
}
.nav-mega-link-label { font-weight: 700; font-size: 0.9rem; }
.nav-mega-link-desc { font-size: 0.78rem; color: #64748b; font-weight: 500; }

body.theme-academy-nights .nav-dropdown-panel,
body.theme-academy-nights .nav-mega-panel {
  background: linear-gradient(180deg, #161e2b, #121822);
  border-color: rgba(255,255,255,0.1);
}
body.theme-academy-nights .nav-dropdown-panel a,
body.theme-academy-nights .nav-mega-col-title,
body.theme-academy-nights .nav-mega-list a {
  color: #eef2f7 !important;
}
body.theme-academy-nights .nav-mega-col-desc,
body.theme-academy-nights .nav-mega-link-desc {
  color: #a8b3c4;
}

@media (max-width: 900px) {
  .nav-item { display: block; width: 100%; }
  .nav-dropdown-trigger,
  .nav-mega-trigger { width: 100%; justify-content: space-between; }
  .nav-dropdown-panel,
  .nav-mega-panel {
    position: static;
    box-shadow: none;
    margin: 0.35rem 0 0.55rem;
  }
  .nav-mega-grid { grid-template-columns: 1fr; }
}

/* Branding: imprint logo, NETCORE credit, SEO nano */
.legal-identity-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1.25rem 2rem;
  margin: 0.35rem 0 1rem;
}
.legal-identity-text { flex: 1 1 auto; min-width: 0; }
.legal-identity-text p { margin-top: 0; }
.legal-identity-logo {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
}
.legal-imprint-logo {
  display: block;
  width: clamp(96px, 16vw, 160px);
  height: auto;
  max-height: 160px;
  object-fit: contain;
  filter: drop-shadow(0 6px 18px rgba(15, 23, 42, 0.12));
}
@media (max-width: 640px) {
  .legal-identity-row { flex-direction: column; }
  .legal-identity-logo { align-self: center; }
}

.footer-copy-bar {
  border-top: 1px solid rgba(255,255,255,0.06);
  padding: 1.25rem 0 0.35rem;
  display: grid;
  gap: 0.35rem;
  justify-items: center;
  text-align: center;
}
.footer-copy-bar .footer-copy {
  border-top: 0;
  padding-top: 0;
  margin: 0;
}
.footer-netcore {
  margin: 0;
  font-size: 0.82rem;
  opacity: 0.88;
}
.netcore-brand-link {
  color: inherit;
  text-decoration: none;
  font-weight: 700;
  letter-spacing: 0.02em;
}
.netcore-brand-link:hover {
  color: #d4af37;
  text-decoration: underline;
}
.netcore-bolt,
.legal-agency-bolt {
  color: #d4af37;
}
.legal-agency.netcore-brand a.netcore-brand-link {
  color: inherit;
  text-decoration: none;
}
.legal-agency.netcore-brand a.netcore-brand-link:hover {
  color: #d4af37;
}

/* Visually hidden for humans; still in DOM for crawlers */
.netcore-seo-nano {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
  pointer-events: none !important;
  user-select: none !important;
}

/* Admin settings: brand previews & emoji grid */
.brand-preview-row {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem 1.5rem;
  align-items: center;
  margin: 0.5rem 0 0.75rem;
}
.brand-preview-box {
  display: grid;
  gap: 0.35rem;
  justify-items: center;
  min-width: 96px;
}
.brand-preview-box span {
  font-size: 0.75rem;
  opacity: 0.8;
}
.brand-preview-box img {
  width: 72px;
  height: 72px;
  object-fit: contain;
  border-radius: 0.65rem;
  background: rgba(15,23,42,0.04);
  border: 1px solid rgba(15,23,42,0.08);
  padding: 0.35rem;
}
.brand-emoji-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(2.4rem, 1fr));
  gap: 0.35rem;
  max-width: 28rem;
}
.brand-emoji-grid label {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.4rem;
  height: 2.4rem;
  border-radius: 0.5rem;
  border: 1px solid rgba(15,23,42,0.12);
  background: #fff;
  cursor: pointer;
  font-size: 1.25rem;
  margin: 0;
}
.brand-emoji-grid input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.brand-emoji-grid label:has(input:checked) {
  border-color: #d4af37;
  box-shadow: 0 0 0 2px rgba(212,175,55,0.35);
  background: rgba(212,175,55,0.12);
}
body.theme-academy-nights .brand-emoji-grid label {
  background: #161e2b;
  border-color: rgba(255,255,255,0.12);
  color: #eef2f7;
}

/* NETCORE impressum brand card */
.netcore-brand-impressum {
  display: grid;
  gap: 0.35rem;
  margin: 0.65rem 0 1rem;
  padding: 1rem 1.15rem 1.1rem;
}
.netcore-brand-impressum .netcore-brand-kicker {
  margin: 0;
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 700;
  color: #a16207;
  opacity: 0.95;
}
.netcore-brand-impressum .netcore-brand-name {
  margin: 0;
  font-size: 1.2rem;
  line-height: 1.25;
}
.netcore-brand-impressum .netcore-brand-tagline {
  margin: 0 0 0.25rem;
  font-weight: 600;
  opacity: 0.92;
}
.netcore-brand-impressum .netcore-brand-text {
  margin: 0.15rem 0 0;
  line-height: 1.55;
  font-size: 0.95rem;
}
.netcore-brand-impressum .netcore-brand-url {
  margin: 0.45rem 0 0;
  font-size: 0.92rem;
}
.netcore-brand-impressum .netcore-brand-url-link {
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 0.12em;
  color: #0f172a;
}
.netcore-brand-impressum .netcore-brand-link {
  color: #0f172a;
  text-decoration: underline;
  text-underline-offset: 0.12em;
  text-decoration-color: rgba(212, 175, 55, 0.55);
}
.netcore-brand-impressum .netcore-brand-link:hover {
  color: #a16207;
  text-decoration-color: #d4af37;
}
.netcore-brand-impressum .netcore-brand-ref {
  opacity: 0.75;
  font-size: 0.85em;
}
body.theme-academy-nights .netcore-brand-impressum .netcore-brand-url-link,
body.theme-academy-nights .netcore-brand-impressum .netcore-brand-link {
  color: #f8fafc;
}
body.theme-academy-nights .netcore-brand-impressum .netcore-brand-kicker {
  color: #fbbf24;
}

/* CampPro */
.camp-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 1.25rem;
  margin: 0 0 2rem;
}
.camp-card {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  padding: 0;
}
.camp-card.is-featured {
  border-color: rgba(212,175,55,.45);
  box-shadow: 0 16px 40px rgba(15,23,42,.1);
}
.camp-card-media {
  display: block;
  aspect-ratio: 16/10;
  overflow: hidden;
  background: #0f172a;
}
.camp-card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.camp-card-body {
  padding: 1.1rem 1.15rem 1.2rem;
  display: grid;
  gap: .45rem;
  flex: 1;
}
.camp-card-kicker {
  margin: 0;
  font-size: .75rem;
  letter-spacing: .06em;
  text-transform: uppercase;
  font-weight: 700;
  color: #a16207;
}
.camp-card-title {
  margin: 0;
  font-size: 1.15rem;
  line-height: 1.25;
}
.camp-card-title a {
  color: inherit;
  text-decoration: none;
}
.camp-card-title a:hover { color: #a16207; }
.camp-card-sub { margin: 0; opacity: .85; font-size: .92rem; }
.camp-card-meta {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: .15rem;
  font-size: .86rem;
  opacity: .9;
}
.camp-card-text {
  margin: .15rem 0 0;
  font-size: .9rem;
  line-height: 1.45;
  opacity: .92;
}
.camp-card-footer {
  margin-top: auto;
  padding-top: .65rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  flex-wrap: wrap;
}
.camp-card-price { font-weight: 700; }
.camp-badge {
  display: inline-block;
  padding: .25rem .55rem;
  border-radius: .5rem;
  font-size: .78rem;
  font-weight: 700;
}
.camp-badge-sold { background: rgba(239,68,68,.12); color: #b91c1c; }

.camp-detail-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(280px, .9fr);
  gap: 1.5rem;
  align-items: start;
  padding-bottom: 2.5rem;
}
@media (max-width: 900px) {
  .camp-detail-grid { grid-template-columns: 1fr; }
}
.camp-detail-cover {
  overflow: hidden;
  padding: 0;
  margin-bottom: 1rem;
}
.camp-detail-cover img {
  width: 100%;
  max-height: 360px;
  object-fit: cover;
  display: block;
}
.camp-detail-facts ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: .55rem;
}
.camp-detail-facts li {
  display: grid;
  grid-template-columns: 7.5rem 1fr;
  gap: .5rem;
  font-size: .95rem;
}
.camp-detail-body { margin-top: 1rem; line-height: 1.6; }
.camp-order-card h2 { margin-top: 0; font-size: 1.25rem; }
.camp-package-list { display: grid; gap: .75rem; margin: 0 0 1rem; }
.camp-package-row {
  display: flex;
  justify-content: space-between;
  gap: .75rem;
  padding: .75rem;
  border-radius: .75rem;
  border: 1px solid rgba(15,23,42,.1);
  background: rgba(15,23,42,.03);
}
.camp-package-info { display: grid; gap: .2rem; font-size: .9rem; }
.camp-package-info em { font-style: normal; font-weight: 700; color: #a16207; }
.camp-package-qty { display: grid; gap: .2rem; font-size: .78rem; min-width: 4.5rem; }
.camp-package-qty input { width: 100%; }
.camp-order-form label { display: grid; gap: .3rem; margin: 0 0 .7rem; font-size: .9rem; }
.camp-order-form input,
.camp-order-form textarea {
  width: 100%;
  padding: .55rem .65rem;
  border-radius: .55rem;
  border: 1px solid rgba(15,23,42,.14);
  background: #fff;
  color: inherit;
}
.camp-order-total { font-size: 1.05rem; margin: .25rem 0 1rem; }
.camp-order-note { font-size: .8rem; opacity: .75; margin-top: .75rem; }
.btn-block { width: 100%; justify-content: center; }
.section-camps .section-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.25rem;
}
body.theme-academy-nights .camp-package-row {
  background: rgba(255,255,255,.03);
  border-color: rgba(255,255,255,.1);
}
body.theme-academy-nights .camp-order-form input,
body.theme-academy-nights .camp-order-form textarea {
  background: #161e2b;
  border-color: rgba(255,255,255,.12);
  color: #eef2f7;
}

/* StatsPro */
.stats-header { margin-bottom: 1.25rem; }
.stats-header .section-title { margin-bottom: .5rem; }
.stats-header .section-text { margin: 0; max-width: 40rem; }
.stat {
  display: grid;
  justify-items: center;
  gap: .35rem;
  text-align: center;
}
.stat-emoji {
  font-size: 1.55rem;
  line-height: 1;
  filter: drop-shadow(0 4px 10px rgba(0,0,0,.12));
}
.stats-emoji-none span { font-size: .95rem; opacity: .65; }

/* CampPro event detail (elite-soccer style) */
.camp-event-hero {
  padding: 2rem 0 1.25rem;
  background: linear-gradient(180deg, rgba(212,175,55,.08), transparent 70%);
}
.camp-event-hero-inner {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(220px, .7fr);
  gap: 1.5rem;
  align-items: center;
}
@media (max-width: 900px) {
  .camp-event-hero-inner { grid-template-columns: 1fr; }
}
.camp-event-hero-media {
  border-radius: 1rem;
  overflow: hidden;
  border: 1px solid rgba(15,23,42,.08);
  background: #0f172a;
}
.camp-event-hero-media img {
  display: block;
  width: 100%;
  max-height: 280px;
  object-fit: contain;
  padding: 1rem;
  background: #fff;
}
.camp-event-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
  align-items: center;
  margin-top: 1rem;
}
.camp-event-from {
  font-weight: 700;
  color: #a16207;
}
.camp-event-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(240px, .7fr);
  gap: 1.35rem;
  align-items: start;
  padding: 1rem 0 2.75rem;
}
@media (max-width: 960px) {
  .camp-event-layout { grid-template-columns: 1fr; }
}
.camp-event-main { display: grid; gap: 1rem; }
.camp-info-list {
  margin: 0;
  display: grid;
  gap: .7rem;
}
.camp-info-list > div {
  display: grid;
  grid-template-columns: 8rem 1fr;
  gap: .5rem;
}
.camp-info-list dt { font-weight: 700; margin: 0; }
.camp-info-list dd { margin: 0; }
.camp-info-list .muted { opacity: .8; font-size: .92em; }
.camp-note {
  margin: 1rem 0 0;
  padding: .75rem .9rem;
  border-radius: .7rem;
  background: rgba(212,175,55,.12);
  border: 1px solid rgba(212,175,55,.28);
  font-size: .92rem;
}
.camp-about-card h3 {
  margin: 1.1rem 0 .45rem;
  font-size: 1.05rem;
}
.camp-about-text { line-height: 1.65; }
.camp-bullet-list {
  margin: .35rem 0 0;
  padding-left: 1.15rem;
  line-height: 1.55;
}
.camp-ticket-category { margin: 0 0 1.25rem; }
.camp-ticket-category-title {
  margin: 0 0 .65rem;
  font-size: 1.05rem;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: #a16207;
}
.camp-ticket-list { display: grid; gap: .75rem; }
.camp-ticket {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 1rem;
  padding: 1rem;
  border-radius: .9rem;
  border: 1px solid rgba(15,23,42,.1);
  background: linear-gradient(180deg, #fff, #f8fafc);
}
.camp-ticket-head {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem .7rem;
  align-items: center;
}
.camp-ticket-head h4 { margin: 0; font-size: 1.05rem; }
.camp-pill {
  display: inline-block;
  font-size: .72rem;
  font-weight: 700;
  padding: .2rem .5rem;
  border-radius: 999px;
  background: rgba(212,175,55,.18);
  color: #92400e;
}
.camp-ticket-short { margin: .35rem 0; opacity: .9; font-size: .92rem; }
.camp-ticket-more { margin: .35rem 0; font-size: .9rem; }
.camp-ticket-more summary {
  cursor: pointer;
  font-weight: 700;
  color: #a16207;
}
.camp-ticket-more div { margin-top: .4rem; line-height: 1.5; opacity: .92; }
.camp-ticket-price { margin: .5rem 0 0; }
.camp-ticket-fee { display: block; font-size: .82rem; opacity: .8; font-weight: 500; }
.camp-ticket-qty {
  display: grid;
  gap: .3rem;
  align-content: start;
  min-width: 5rem;
  font-size: .8rem;
  font-weight: 700;
}
.camp-ticket-qty input {
  width: 4.5rem;
  padding: .45rem .5rem;
  border-radius: .5rem;
  border: 1px solid rgba(15,23,42,.16);
}
.camp-order-summary { margin-top: 1rem; }
.camp-order-fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .7rem;
  margin-bottom: .9rem;
}
.camp-order-fields label { display: grid; gap: .3rem; font-size: .9rem; margin: 0; }
.camp-order-fields .camp-order-span { grid-column: 1 / -1; }
.camp-order-fields input,
.camp-order-fields textarea {
  width: 100%;
  padding: .55rem .65rem;
  border-radius: .55rem;
  border: 1px solid rgba(15,23,42,.14);
}
@media (max-width: 640px) {
  .camp-ticket { grid-template-columns: 1fr; }
  .camp-order-fields { grid-template-columns: 1fr; }
  .camp-info-list > div { grid-template-columns: 1fr; }
}
.camp-aside-sticky { position: sticky; top: 1rem; }
.camp-aside-list {
  list-style: none;
  margin: 0 0 1rem;
  padding: 0;
  display: grid;
  gap: .55rem;
}
.camp-aside-list li {
  display: grid;
  grid-template-columns: 4rem 1fr;
  gap: .4rem;
  font-size: .92rem;
}
.camp-aside-list .btn-block,
.btn-block { width: 100%; text-align: center; justify-content: center; }
.camp-aside-sticky .btn { margin-bottom: .45rem; }
body.theme-academy-nights .camp-ticket {
  background: linear-gradient(180deg, #161e2b, #121822);
  border-color: rgba(255,255,255,.1);
}
body.theme-academy-nights .camp-ticket-qty input,
body.theme-academy-nights .camp-order-fields input,
body.theme-academy-nights .camp-order-fields textarea {
  background: #161e2b;
  border-color: rgba(255,255,255,.12);
  color: #eef2f7;
}
body.theme-academy-nights .camp-event-hero-media img { background: #121822; }

/* Professional Camp Order System focus */
.camp-order-intro {
  margin: 0 0 1.1rem;
  line-height: 1.55;
  opacity: .92;
  max-width: 42rem;
}
.camp-ticket {
  box-shadow: 0 10px 30px rgba(15,23,42,.06);
  border-color: rgba(212,175,55,.28);
}
.camp-ticket-category-title {
  font-size: .78rem;
}
.camp-order-summary {
  border: 1px solid rgba(212,175,55,.35);
  background: linear-gradient(180deg, rgba(212,175,55,.08), rgba(255,255,255,.9));
}
.camp-order-summary .camp-order-total {
  font-size: 1.2rem;
  margin-bottom: 1rem;
}
.camp-event-hero-actions .btn-primary {
  min-width: 12rem;
}
body.theme-academy-nights .camp-order-summary {
  background: linear-gradient(180deg, rgba(212,175,55,.12), rgba(18,24,34,.95));
}

/* Camp hero motivation panel (replaces oversized logo) */
.camp-event-hero-motivation {
  padding: 1.25rem 1.35rem 1.35rem;
  border: 1px solid rgba(212,175,55,.35);
  background: linear-gradient(160deg, rgba(212,175,55,.14), rgba(255,255,255,.92));
  box-shadow: 0 16px 40px rgba(15,23,42,.08);
}
.camp-motivation-kicker {
  margin: 0 0 .55rem;
  font-size: .75rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #a16207;
}
.camp-motivation-text {
  margin: 0 0 .9rem;
  line-height: 1.55;
  font-size: 1.02rem;
  font-weight: 600;
}
.camp-motivation-points {
  margin: 0;
  padding-left: 1.1rem;
  display: grid;
  gap: .35rem;
  font-size: .92rem;
  line-height: 1.4;
  opacity: .95;
}
body.theme-academy-nights .camp-event-hero-motivation {
  background: linear-gradient(160deg, rgba(212,175,55,.16), rgba(18,24,34,.96));
  border-color: rgba(212,175,55,.35);
}
/* Keep legacy media (if used) compact */
.camp-event-hero-media img {
  max-height: 140px !important;
  object-fit: contain !important;
  padding: .5rem !important;
}


/* ===== Camp Order System · Apple-inspired ===== */
.page-camp-apple {
  --camp-bg: #f5f5f7;
  --camp-surface: rgba(255,255,255,0.82);
  --camp-surface-solid: #ffffff;
  --camp-text: #1d1d1f;
  --camp-secondary: #6e6e73;
  --camp-line: rgba(0,0,0,0.08);
  --camp-blue: #0071e3;
  --camp-blue-hover: #0077ed;
  --camp-radius: 18px;
  --camp-radius-sm: 12px;
  --camp-shadow: 0 4px 24px rgba(0,0,0,0.06), 0 1px 2px rgba(0,0,0,0.04);
  --camp-shadow-lg: 0 20px 50px rgba(0,0,0,0.10);
  background: var(--camp-bg);
  color: var(--camp-text);
}

body.theme-academy-nights.page-camp-apple,
body.theme-academy-nights .page-camp-apple {
  --camp-bg: #000000;
  --camp-surface: rgba(28,28,30,0.92);
  --camp-surface-solid: #1c1c1e;
  --camp-text: #f5f5f7;
  --camp-secondary: #a1a1a6;
  --camp-line: rgba(255,255,255,0.10);
  --camp-blue: #2997ff;
  --camp-blue-hover: #4dabff;
  --camp-shadow: 0 8px 32px rgba(0,0,0,0.45);
  --camp-shadow-lg: 0 24px 60px rgba(0,0,0,0.55);
}

.page-camp-apple .camp-os {
  font-family: Inter, -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  letter-spacing: -0.01em;
}

.page-camp-apple .camp-os-hero {
  padding: 3.5rem 0 2.25rem;
  text-align: center;
  background:
    radial-gradient(1200px 500px at 50% -10%, rgba(0,113,227,0.08), transparent 60%),
    linear-gradient(180deg, #ffffff 0%, var(--camp-bg) 100%);
}
body.theme-academy-nights.page-camp-apple .camp-os-hero {
  background:
    radial-gradient(1000px 420px at 50% -10%, rgba(41,151,255,0.14), transparent 55%),
    linear-gradient(180deg, #0b0b0c 0%, #000 100%);
}

.camp-os-hero-inner { max-width: 820px; margin: 0 auto; }
.camp-os-breadcrumb {
  display: flex;
  justify-content: center;
  gap: .45rem;
  margin: 0 0 1.35rem;
  font-size: .84rem;
  color: var(--camp-secondary);
}
.camp-os-breadcrumb a {
  color: var(--camp-blue);
  text-decoration: none;
}
.camp-os-breadcrumb a:hover { text-decoration: underline; }

.camp-os-eyebrow {
  margin: 0 0 .65rem;
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--camp-secondary);
}
.camp-os-title {
  margin: 0 0 .85rem;
  font-size: clamp(2rem, 4.5vw, 3.15rem);
  line-height: 1.08;
  font-weight: 700;
  letter-spacing: -0.03em;
  color: var(--camp-text);
}
.camp-os-lead {
  margin: 0 auto .75rem;
  max-width: 34rem;
  font-size: clamp(1.15rem, 2vw, 1.4rem);
  line-height: 1.35;
  font-weight: 600;
  letter-spacing: -0.02em;
  color: var(--camp-text);
}
.camp-os-summary {
  margin: 0 auto 1.5rem;
  max-width: 36rem;
  font-size: 1.05rem;
  line-height: 1.55;
  color: var(--camp-secondary);
  font-weight: 450;
}

.camp-os-meta {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .65rem;
  margin: 0 0 1.6rem;
}
.camp-os-chip {
  min-width: 7.5rem;
  padding: .7rem .95rem;
  border-radius: 14px;
  background: var(--camp-surface-solid);
  border: 1px solid var(--camp-line);
  box-shadow: var(--camp-shadow);
  text-align: left;
}
.camp-os-chip-label {
  display: block;
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--camp-secondary);
  margin-bottom: .2rem;
}
.camp-os-chip-value {
  display: block;
  font-size: .95rem;
  font-weight: 600;
  letter-spacing: -0.01em;
}
.camp-os-chip-price .camp-os-chip-value { color: var(--camp-blue); }

.camp-os-hero-cta {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: .7rem;
}

.camp-os-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  min-height: 2.75rem;
  padding: .7rem 1.35rem;
  border-radius: 980px;
  border: none;
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: -0.01em;
  text-decoration: none;
  cursor: pointer;
  transition: transform .15s ease, background .15s ease, opacity .15s ease;
}
.camp-os-btn:active { transform: scale(0.98); }
.camp-os-btn-primary {
  background: var(--camp-blue);
  color: #fff !important;
  box-shadow: 0 8px 24px rgba(0,113,227,0.28);
}
.camp-os-btn-primary:hover { background: var(--camp-blue-hover); }
.camp-os-btn-ghost {
  background: transparent;
  color: var(--camp-blue) !important;
  border: 1px solid rgba(0,113,227,0.25);
}
.camp-os-btn-ghost:hover { background: rgba(0,113,227,0.06); }
.camp-os-btn-block { width: 100%; }
.camp-os-btn:disabled { opacity: .55; cursor: not-allowed; }

.camp-os-body { padding: 0 0 4.5rem; }
.camp-os-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(320px, .85fr);
  gap: 1.5rem;
  align-items: start;
}
@media (max-width: 980px) {
  .camp-os-grid { grid-template-columns: 1fr; }
  .camp-os-order-wrap { order: -1; }
}

.camp-os-content { display: grid; gap: 1rem; }
.camp-os-panel {
  background: var(--camp-surface-solid);
  border: 1px solid var(--camp-line);
  border-radius: var(--camp-radius);
  padding: 1.45rem 1.5rem 1.5rem;
  box-shadow: var(--camp-shadow);
}
.camp-os-panel-title {
  margin: 0 0 1rem;
  font-size: 1.25rem;
  font-weight: 700;
  letter-spacing: -0.02em;
}
.camp-os-prose {
  color: var(--camp-secondary);
  line-height: 1.65;
  font-size: 1.02rem;
}
.camp-os-prose-soft { margin-top: 1.1rem; }
.camp-os-prose h3,
.camp-os-detail-grid h3 {
  margin: 0 0 .35rem;
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: var(--camp-secondary);
}
.camp-os-feature-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: .7rem;
}
.camp-os-feature-list li {
  display: grid;
  grid-template-columns: 1.4rem 1fr;
  gap: .65rem;
  align-items: start;
  font-size: 1.02rem;
  line-height: 1.4;
  letter-spacing: -0.01em;
}
.camp-os-check {
  display: inline-flex;
  width: 1.25rem;
  height: 1.25rem;
  border-radius: 999px;
  align-items: center;
  justify-content: center;
  font-size: .72rem;
  font-weight: 800;
  color: #fff;
  background: var(--camp-blue);
  margin-top: .12rem;
}
.camp-os-feature-list-muted li { color: var(--camp-secondary); }
.camp-os-detail-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem 1.25rem;
}
@media (max-width: 640px) {
  .camp-os-detail-grid { grid-template-columns: 1fr; }
}
.camp-os-detail-grid p {
  margin: 0;
  font-size: 1.02rem;
  font-weight: 550;
  letter-spacing: -0.01em;
}
.camp-os-note {
  margin: 1.15rem 0 0;
  padding: .85rem 1rem;
  border-radius: var(--camp-radius-sm);
  background: rgba(0,113,227,0.07);
  color: var(--camp-text);
  font-size: .95rem;
  line-height: 1.45;
}

/* Order card */
.camp-os-order-wrap { position: relative; }
.camp-os-order {
  position: sticky;
  top: 1rem;
  background: var(--camp-surface-solid);
  border: 1px solid var(--camp-line);
  border-radius: 22px;
  padding: 1.35rem 1.3rem 1.4rem;
  box-shadow: var(--camp-shadow-lg);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
}
.camp-os-order-head { margin-bottom: 1.1rem; }
.camp-os-order-kicker {
  margin: 0 0 .25rem;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--camp-secondary);
}
.camp-os-order-title {
  margin: 0 0 .55rem;
  font-size: 1.45rem;
  font-weight: 700;
  letter-spacing: -0.025em;
}
.camp-os-order-price {
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: .1rem;
}
.camp-os-order-price-value {
  font-size: 1.75rem;
  font-weight: 700;
  letter-spacing: -0.03em;
  color: var(--camp-text);
}
.camp-os-order-price-note {
  font-size: .88rem;
  color: var(--camp-secondary);
}

/* Camp order: primary ticket + addons */
.camp-os-products-label {
  margin: 0.35rem 0 0;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #64748b;
}
.camp-os-products-label-addon { margin-top: 0.85rem; }

/* Camp addons – Apple-style collapsible group */
.camp-os-addons {
  margin-top: 0.35rem;
  border-radius: 16px;
  background: rgba(120, 120, 128, 0.1);
  border: 1px solid rgba(60, 60, 67, 0.08);
  overflow: hidden;
  transition: background 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}
.camp-os-addons.has-selection {
  background: rgba(212, 175, 55, 0.1);
  border-color: rgba(212, 175, 55, 0.28);
}
.camp-os-addons-trigger {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.85rem;
  padding: 0.95rem 1rem;
  border: 0;
  background: transparent;
  cursor: pointer;
  text-align: left;
  color: inherit;
  font: inherit;
  -webkit-tap-highlight-color: transparent;
  transition: background 0.15s ease;
}
.camp-os-addons-trigger:hover {
  background: rgba(120, 120, 128, 0.08);
}
.camp-os-addons-trigger:active {
  background: rgba(120, 120, 128, 0.14);
}
.camp-os-addons-trigger-main {
  display: grid;
  gap: 0.15rem;
  min-width: 0;
}
.camp-os-addons-trigger-title {
  font-size: 1.02rem;
  font-weight: 650;
  letter-spacing: -0.02em;
  color: var(--camp-text, #0f172a);
}
.camp-os-addons-trigger-sub {
  font-size: 0.84rem;
  font-weight: 500;
  color: var(--camp-secondary, #64748b);
  letter-spacing: -0.01em;
}
.camp-os-addons-chevron {
  flex: 0 0 auto;
  width: 1.55rem;
  height: 1.55rem;
  border-radius: 999px;
  background: rgba(120, 120, 128, 0.16);
  position: relative;
  transition: transform 0.28s cubic-bezier(0.22, 1, 0.36, 1), background 0.15s ease;
}
.camp-os-addons-chevron::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 46%;
  width: 0.42rem;
  height: 0.42rem;
  border-right: 2px solid #8e8e93;
  border-bottom: 2px solid #8e8e93;
  transform: translate(-50%, -60%) rotate(45deg);
}
.camp-os-addons.is-open .camp-os-addons-chevron {
  transform: rotate(180deg);
  background: rgba(0, 113, 227, 0.12);
}
.camp-os-addons.is-open .camp-os-addons-chevron::before {
  border-color: var(--camp-blue, #0071e3);
}
.camp-os-addons-panel {
  display: grid;
  grid-template-rows: 0fr;
  opacity: 0;
  transition:
    grid-template-rows 0.3s cubic-bezier(0.22, 1, 0.36, 1),
    opacity 0.22s ease;
  pointer-events: none;
}
.camp-os-addons-panel.is-visible {
  grid-template-rows: 1fr;
  opacity: 1;
  pointer-events: auto;
}
.camp-os-addons-panel[hidden] {
  display: none;
}
.camp-os-addons-panel.is-visible[hidden] {
  display: grid; /* mid-transition safety: JS removes hidden before anim */
}
.camp-os-addons-panel-inner {
  overflow: hidden;
  min-height: 0;
  display: grid;
  gap: 0;
  padding: 0 0.55rem 0.55rem;
}
.camp-os-addons-panel-inner .camp-os-product {
  border-radius: 12px;
  margin: 0 0 0.45rem;
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(60, 60, 67, 0.06);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.5) inset;
}
.camp-os-addons-panel-inner .camp-os-product:last-child {
  margin-bottom: 0.15rem;
}
/* hide old flat addon section label when using disclosure */
.camp-os-products-label-addon { display: none; }

body.theme-academy-nights .camp-os-addons {
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 255, 255, 0.08);
}
body.theme-academy-nights .camp-os-addons.has-selection {
  background: rgba(212, 175, 55, 0.1);
  border-color: rgba(212, 175, 55, 0.28);
}
body.theme-academy-nights .camp-os-addons-trigger:hover {
  background: rgba(255, 255, 255, 0.04);
}
body.theme-academy-nights .camp-os-addons-trigger-title {
  color: #f1f5f9;
}
body.theme-academy-nights .camp-os-addons-panel-inner .camp-os-product {
  background: rgba(22, 30, 43, 0.9);
  border-color: rgba(255, 255, 255, 0.08);
}

.camp-os-product.is-primary-ticket {
  border-color: rgba(212, 175, 55, 0.45);
  box-shadow: 0 0 0 1px rgba(212, 175, 55, 0.12);
}
.camp-os-product-tag {
  display: inline-block;
  margin-left: 0.4rem;
  padding: 0.12rem 0.45rem;
  border-radius: 999px;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  vertical-align: middle;
  background: rgba(212, 175, 55, 0.18);
  color: #7a5f12;
}
.camp-os-products { display: grid; gap: .75rem; margin-bottom: 1rem; }
.camp-os-product {
  display: grid;
  gap: .85rem;
  padding: 1rem;
  border-radius: 16px;
  background: rgba(120,120,128,0.08);
  border: 1px solid transparent;
}
.camp-os-product-top {
  display: flex;
  justify-content: space-between;
  gap: .75rem;
  align-items: flex-start;
}
.camp-os-product-top h3 {
  margin: 0;
  font-size: 1.02rem;
  font-weight: 650;
  letter-spacing: -0.015em;
}
.camp-os-product-price {
  margin: 0;
  font-size: 1.02rem;
  font-weight: 700;
  white-space: nowrap;
  color: var(--camp-text);
}
.camp-os-product-desc {
  margin: .35rem 0 0;
  font-size: .9rem;
  line-height: 1.4;
  color: var(--camp-secondary);
}
.camp-os-product-fee {
  margin: .25rem 0 0;
  font-size: .8rem;
  color: var(--camp-secondary);
}
.camp-os-details {
  margin-top: .45rem;
  font-size: .88rem;
  color: var(--camp-secondary);
}
.camp-os-details summary {
  cursor: pointer;
  color: var(--camp-blue);
  font-weight: 600;
  list-style: none;
}
.camp-os-details summary::-webkit-details-marker { display: none; }
.camp-os-details div { margin-top: .4rem; line-height: 1.45; }

.camp-os-qty {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  font-size: .88rem;
  font-weight: 600;
  color: var(--camp-secondary);
}
/* Shirt upgrade: qty stepper sits above name/number slots */
.camp-os-qty--above-shirt {
  margin-top: 0.75rem;
  margin-bottom: 0.15rem;
  padding: 0.55rem 0.75rem;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.55);
  border: 1px solid rgba(15, 23, 42, 0.08);
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}
.camp-os-product.is-shirt-upgrade .camp-os-qty--above-shirt + .camp-os-shirt-options,
.camp-os-product.is-shirt-upgrade .camp-os-shirt-options {
  margin-top: 0.55rem;
}
body.theme-academy-nights .camp-os-qty--above-shirt {
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 255, 255, 0.1);
}

.camp-os-stepper {
  display: inline-flex;
  align-items: center;
  gap: 0;
  border-radius: 999px;
  background: var(--camp-surface-solid);
  border: 1px solid var(--camp-line);
  overflow: hidden;
}
.camp-os-step {
  width: 2.2rem;
  height: 2.2rem;
  border: 0;
  background: transparent;
  color: var(--camp-blue);
  font-size: 1.15rem;
  font-weight: 500;
  cursor: pointer;
  line-height: 1;
}
.camp-os-step:hover { background: rgba(0,113,227,0.08); }
.camp-os-stepper input {
  width: 2.4rem;
  border: 0;
  background: transparent;
  text-align: center;
  font-weight: 700;
  font-size: .95rem;
  color: var(--camp-text);
  -moz-appearance: textfield;
}
.camp-os-stepper input::-webkit-outer-spin-button,
.camp-os-stepper input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.camp-os-total-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: .85rem 0 1rem;
  margin-bottom: .35rem;
  border-top: 1px solid var(--camp-line);
  border-bottom: 1px solid var(--camp-line);
  font-size: 1rem;
  color: var(--camp-secondary);
}
.camp-os-total-row strong {
  font-size: 1.35rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--camp-text);
}

.camp-os-fieldset {
  margin: 1rem 0 0;
  padding: 0;
  border: 0;
}
.camp-os-fieldset-title {
  margin: 0 0 .55rem;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
  color: var(--camp-secondary);
}
.camp-os-field {
  display: grid;
  gap: .3rem;
  margin: 0 0 .55rem;
  font-size: .84rem;
  font-weight: 600;
  color: var(--camp-secondary);
}
.camp-os-field input,
.camp-os-field select,
.camp-os-field textarea {
  width: 100%;
  min-height: 2.7rem;
  padding: .7rem .85rem;
  border-radius: 12px;
  border: 1px solid var(--camp-line);
  background: rgba(120,120,128,0.08);
  color: var(--camp-text);
  font-size: 1rem;
  font-weight: 500;
  letter-spacing: -0.01em;
  outline: none;
  transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
.camp-os-field textarea { min-height: 5.5rem; resize: vertical; }
.camp-os-field input::placeholder,
.camp-os-field textarea::placeholder { color: #8e8e93; font-weight: 450; }
.camp-os-field input:focus,
.camp-os-field select:focus,
.camp-os-field textarea:focus {
  border-color: rgba(0,113,227,0.55);
  box-shadow: 0 0 0 4px rgba(0,113,227,0.15);
  background: var(--camp-surface-solid);
}

.camp-os-form .camp-os-submit { margin-top: .85rem; min-height: 3rem; font-size: 1.05rem; }
.camp-os-legal {
  margin: .75rem 0 0;
  font-size: .78rem;
  line-height: 1.4;
  color: var(--camp-secondary);
  text-align: center;
}
.camp-os-status {
  margin-top: .75rem !important;
  text-align: center;
  border-radius: 12px;
  padding: .7rem .8rem;
}
.camp-os-order-closed {
  margin: 0 0 1rem;
  color: var(--camp-secondary);
  line-height: 1.5;
}

@media (max-width: 640px) {
  .page-camp-apple .camp-os-hero { padding: 2.25rem 0 1.5rem; }
  .camp-os-order { position: static; border-radius: 18px; }
  .camp-os-chip { min-width: calc(50% - .4rem); flex: 1 1 40%; }
}

/* Homepage camps: overview + cards */
.camps-home-layout {
  display: grid;
  grid-template-columns: minmax(260px, 0.95fr) minmax(0, 1.15fr);
  gap: 1.35rem;
  align-items: stretch;
}
.camps-home-layout.is-single {
  grid-template-columns: minmax(280px, 1fr) minmax(280px, 1fr);
}
@media (max-width: 900px) {
  .camps-home-layout,
  .camps-home-layout.is-single {
    grid-template-columns: 1fr;
  }
}
.camps-home-overview {
  padding: 1.4rem 1.45rem 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  border: 1px solid rgba(212, 175, 55, 0.28);
  background:
    linear-gradient(165deg, rgba(212,175,55,0.10), rgba(255,255,255,0.92) 48%);
}
body.theme-academy-nights .camps-home-overview {
  background: linear-gradient(165deg, rgba(212,175,55,0.12), rgba(18,24,34,0.96) 55%);
  border-color: rgba(212,175,55,0.28);
}
.camps-home-kicker {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #a16207;
}
.camps-home-overview-title {
  margin: 0;
  font-size: clamp(1.25rem, 2vw, 1.55rem);
  line-height: 1.2;
  letter-spacing: -0.02em;
}
.camps-home-overview-text {
  margin: 0;
  line-height: 1.55;
  opacity: 0.92;
}
.camps-home-points {
  list-style: none;
  margin: 0.25rem 0 0;
  padding: 0;
  display: grid;
  gap: 0.55rem;
}
.camps-home-points li {
  display: grid;
  grid-template-columns: 1.25rem 1fr;
  gap: 0.55rem;
  align-items: start;
  font-size: 0.95rem;
  line-height: 1.4;
}
.camps-home-check {
  display: inline-flex;
  width: 1.15rem;
  height: 1.15rem;
  margin-top: 0.12rem;
  border-radius: 999px;
  align-items: center;
  justify-content: center;
  font-size: 0.7rem;
  font-weight: 800;
  color: #0b0d10;
  background: #d4af37;
}
.camps-home-overview-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  margin-top: auto;
  padding-top: 0.65rem;
}
.camp-grid-single {
  grid-template-columns: 1fr;
}
.camps-home-cards .camp-card {
  height: 100%;
}
.section-camps .camps-home-header {
  margin-bottom: 1.15rem;
}

/* Camps overview page – single camp enriched layout */
.camps-single-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(280px, 0.85fr);
  gap: 1.35rem;
  align-items: start;
  padding-bottom: 2.5rem;
}
@media (max-width: 960px) {
  .camps-single-layout {
    grid-template-columns: 1fr;
  }
  .camps-single-side { order: -1; }
}
.camps-single-main {
  display: grid;
  gap: 1rem;
}
.camps-single-overview {
  padding: 1.4rem 1.45rem 1.5rem;
  border: 1px solid rgba(212, 175, 55, 0.28);
  background:
    linear-gradient(165deg, rgba(212,175,55,0.10), rgba(255,255,255,0.95) 50%);
}
body.theme-academy-nights .camps-single-overview {
  background: linear-gradient(165deg, rgba(212,175,55,0.12), rgba(18,24,34,0.96) 55%);
}
.camps-single-facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
  margin-top: 1rem;
}
@media (max-width: 640px) {
  .camps-single-facts { grid-template-columns: 1fr; }
}
.camps-single-fact {
  padding: 0.75rem 0.85rem;
  border-radius: 0.8rem;
  background: rgba(15, 23, 42, 0.04);
  border: 1px solid rgba(15, 23, 42, 0.06);
}
body.theme-academy-nights .camps-single-fact {
  background: rgba(255,255,255,0.04);
  border-color: rgba(255,255,255,0.08);
}
.camps-single-fact-wide { grid-column: 1 / -1; }
.camps-single-fact-label {
  display: block;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  opacity: 0.75;
  margin-bottom: 0.2rem;
}
.camps-single-fact strong {
  font-size: 0.98rem;
  font-weight: 700;
}
.camps-single-extra {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}
@media (max-width: 720px) {
  .camps-single-extra { grid-template-columns: 1fr; }
}
.camps-single-panel {
  padding: 1.2rem 1.25rem 1.3rem;
}
.camps-single-panel h3 {
  margin: 0 0 0.75rem;
  font-size: 1.05rem;
}
.camps-single-panel-wide { grid-column: 1 / -1; }
.camps-single-prose {
  line-height: 1.6;
  opacity: 0.92;
}
.camps-single-side {
  display: grid;
  gap: 1rem;
  position: sticky;
  top: 5.5rem;
}
@media (max-width: 960px) {
  .camps-single-side { position: static; }
}
.camps-single-cta {
  padding: 1.2rem 1.25rem 1.3rem;
  border: 1px solid rgba(212, 175, 55, 0.3);
}
.camps-single-cta-kicker {
  margin: 0 0 0.25rem;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #a16207;
}
.camps-single-cta-text {
  margin: 0 0 0.9rem;
  line-height: 1.45;
}
.camps-single-cta-note {
  margin: 0.75rem 0 0;
  font-size: 0.85rem;
  opacity: 0.8;
  line-height: 1.4;
}
.page-camps-single .camps-listing {
  padding-top: 0.5rem;
}

.camp-os-legal-box {
  margin-top: 0.85rem;
  padding: 0.85rem 0.95rem;
  border-radius: 12px;
  background: rgba(120, 120, 128, 0.08);
  border: 1px solid rgba(0,0,0,0.06);
}
.camp-os-legal-title {
  margin: 0 0 0.35rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--camp-secondary, #6e6e73);
}
.camp-os-legal-box .camp-os-legal {
  margin: 0;
  text-align: left;
  font-size: 0.82rem;
  line-height: 1.45;
}
/* Camp order: shop-style price / MwSt. footer note */
.camp-os-price-vat-note {
  margin: 0.85rem 0 0;
  padding-top: 0.75rem;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  font-size: 0.78rem;
  line-height: 1.45;
  color: var(--gray, #b5b5b5);
  letter-spacing: 0.01em;
}
.camp-os-legal-box .camp-os-price-vat-note {
  opacity: 0.95;
}

.camp-os-bank-info {
  margin: 0.65rem 0 0;
  padding: 0.65rem 0.75rem;
  border-radius: 10px;
  background: rgba(255,255,255,0.7);
  font-size: 0.8rem;
  line-height: 1.45;
  white-space: pre-wrap;
  font-family: inherit;
}

/* Hero carousel (MediaVault Pro) */
.hero.hero--carousel,
.hero.hero--has-carousel {
  position: relative;
  overflow: hidden;
}
.hero-carousel {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.hero-carousel-track {
  position: absolute;
  inset: 0;
}
.hero-carousel-slide {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: 50% 50%;
  opacity: 0;
  transition: opacity 0.8s ease;
  transform: scale(1.02);
}
.hero-carousel--fade .hero-carousel-slide.is-active {
  opacity: 1;
  z-index: 1;
  transform: scale(1);
}
.hero-carousel--slide .hero-carousel-slide {
  opacity: 1;
  transform: translateX(100%);
  transition: transform 0.7s ease;
}
.hero-carousel--slide .hero-carousel-slide.is-active {
  transform: translateX(0);
  z-index: 1;
}
.hero-carousel--slide .hero-carousel-slide.is-prev {
  transform: translateX(-100%);
}
.hero-carousel-btn {
  position: absolute;
  top: 50%;
  z-index: 3;
  transform: translateY(-50%);
  width: 2.4rem;
  height: 2.4rem;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.35);
  background: rgba(15, 23, 42, 0.45);
  color: #fff;
  font-size: 1.4rem;
  line-height: 1;
  cursor: pointer;
  display: grid;
  place-items: center;
}
.hero-carousel-prev { left: 0.75rem; }
.hero-carousel-next { right: 0.75rem; }
.hero-carousel-dots {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 1rem;
  z-index: 3;
  display: flex;
  justify-content: center;
  gap: 0.4rem;
}
.hero-carousel-dot {
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 999px;
  border: 0;
  background: rgba(255, 255, 255, 0.45);
  cursor: pointer;
  padding: 0;
}
.hero-carousel-dot.is-active {
  background: #d4af37;
  transform: scale(1.15);
}
@media (prefers-reduced-motion: reduce) {
  .hero-carousel-slide {
    transition: none !important;
  }
}
@media (max-width: 640px) {
  .hero-carousel-btn { width: 2rem; height: 2rem; font-size: 1.2rem; }
}

/* Camp checkout buttons */
.camp-os-checkout {
  margin-top: 0.85rem;
  padding: 0.85rem;
  border-radius: 0.75rem;
  border: 1px solid rgba(212, 175, 55, 0.35);
  background: rgba(255, 255, 255, 0.08);
}
.camp-os-checkout-title {
  margin: 0 0 0.55rem;
  font-weight: 700;
  font-size: 0.95rem;
}
.camp-os-checkout-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.camp-os-checkout-actions .camp-os-btn {
  flex: 1 1 auto;
  text-align: center;
  text-decoration: none;
}


.camp-os-order-seats {
  margin: 0.35rem 0 0;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--camp-os-accent, #0ea5e9);
}

/* InteractivMaps */
.imap-map {
  width: 100%;
  height: 280px;
  border-radius: 0.85rem;
  overflow: hidden;
  border: 1px solid rgba(148, 163, 184, 0.35);
  z-index: 1;
  background: #e2e8f0;
}
.imap-map-sm { height: 220px; }
.imap-map-lg { height: min(52vh, 420px); margin-bottom: 1.5rem; }

/* Public Spielorte: map + address cards on one row (equal height) */
.imap-layout {
  display: grid;
  gap: 1.15rem;
  align-items: stretch;
}
.imap-layout--split {
  grid-template-columns: 1fr;
}
.imap-layout-map {
  min-width: 0;
  display: flex;
  flex-direction: column;
}
.imap-map-public {
  flex: 1 1 auto;
  width: 100%;
  height: min(48vh, 360px);
  min-height: 280px;
  margin: 0;
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.6) inset,
    0 12px 28px rgba(15, 23, 42, 0.08);
}
.imap-layout-cards {
  min-width: 0;
  display: flex;
  flex-direction: column;
  min-height: 0;
}
.imap-venue-grid {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  margin-top: 0;
  flex: 1 1 auto;
  min-height: 0;
}
.imap-venue-card {
  display: flex;
  flex-direction: column;
  padding: 0;
  margin: 0;
  overflow: hidden;
  border-radius: 0.9rem;
  min-height: 0;
}
/* Single card stretches to full column (= map) height */
.imap-venue-grid:has(> .imap-venue-card:only-child) {
  height: 100%;
}
.imap-venue-grid:has(> .imap-venue-card:only-child) > .imap-venue-card {
  flex: 1 1 auto;
  height: 100%;
  min-height: 100%;
}

.imap-venue-header {
  position: relative;
  flex: 0 0 auto;
  min-height: 7.5rem;
  background:
    linear-gradient(145deg, rgba(15, 23, 42, 0.06), rgba(212, 175, 55, 0.12)),
    #e8edf3;
  border-bottom: 1px solid rgba(148, 163, 184, 0.28);
}
.imap-venue-header.has-image {
  min-height: 9.5rem;
  background: #0f172a;
}
.imap-venue-header-bg {
  position: absolute;
  inset: 0;
  background-image: var(--imap-header-image);
  background-size: cover;
  background-position: center;
  transform: scale(1.01);
}
.imap-venue-header-shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(15, 23, 42, 0.35), transparent 55%);
  pointer-events: none;
}
.imap-venue-partner {
  position: absolute;
  right: 0.85rem;
  bottom: 0.75rem;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.35rem;
  z-index: 2;
  max-width: 55%;
}
.imap-venue-partner-link {
  display: block;
  line-height: 0;
  border-radius: 0.65rem;
  box-shadow: 0 8px 22px rgba(15, 23, 42, 0.22);
  background: #fff;
  padding: 0.35rem 0.45rem;
}
.imap-venue-partner-logo {
  display: block;
  max-height: 3.25rem;
  max-width: 8.5rem;
  width: auto;
  height: auto;
  object-fit: contain;
}
.imap-venue-partner-label {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #fff;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.45);
  background: rgba(15, 23, 42, 0.45);
  backdrop-filter: blur(6px);
  padding: 0.2rem 0.45rem;
  border-radius: 999px;
}
.imap-venue-card:not(.has-header) .imap-venue-partner-label {
  color: #334155;
  text-shadow: none;
  background: rgba(255, 255, 255, 0.85);
}
.imap-venue-card:not(.has-header) .imap-venue-partner {
  bottom: auto;
  top: 0.75rem;
}

.imap-venue-body {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  padding: 0.95rem 1.05rem 1.05rem;
  min-height: 0;
}
.imap-venue-title {
  margin: 0 0 0.5rem;
  font-size: 1.05rem;
  line-height: 1.25;
}
.imap-venue-meta {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.28rem;
  font-size: 0.88rem;
  line-height: 1.35;
}
.imap-venue-meta span {
  display: inline-block;
  min-width: 4.25rem;
  font-weight: 600;
  color: var(--muted, #64748b);
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}
.imap-venue-notes {
  margin: 0.55rem 0 0;
  font-size: 0.86rem;
  color: var(--muted, #64748b);
  flex: 1 1 auto;
}
.imap-venue-actions {
  margin-top: auto;
  padding-top: 0.85rem;
}

@media (min-width: 900px) {
  .imap-layout--split {
    grid-template-columns: minmax(0, 1.15fr) minmax(300px, 0.85fr);
    gap: 1.25rem 1.35rem;
    /* equal-height columns */
    --imap-panel-height: min(58vh, 460px);
    align-items: stretch;
  }
  .imap-layout--split .imap-layout-map,
  .imap-layout--split .imap-layout-cards {
    height: var(--imap-panel-height);
    max-height: var(--imap-panel-height);
  }
  .imap-layout--split .imap-map-public {
    height: 100%;
    min-height: 0;
  }
  .imap-layout--split .imap-venue-grid {
    height: 100%;
    overflow-y: auto;
    scrollbar-gutter: stable;
    padding-right: 0.15rem;
  }
  .imap-layout--split .imap-venue-grid::-webkit-scrollbar {
    width: 8px;
  }
  .imap-layout--split .imap-venue-grid::-webkit-scrollbar-thumb {
    background: rgba(148, 163, 184, 0.55);
    border-radius: 999px;
  }
  /* one card: fill panel height like the map */
  .imap-layout--split .imap-venue-grid:has(> .imap-venue-card:only-child) {
    overflow: hidden;
  }
  .imap-layout--split .imap-venue-grid:has(> .imap-venue-card:only-child) > .imap-venue-card {
    height: 100%;
  }
  .imap-layout--split .imap-venue-card.has-header .imap-venue-header {
    min-height: 38%;
    flex: 0 0 38%;
  }
}

@media (min-width: 1100px) {
  .imap-layout--split {
    grid-template-columns: minmax(0, 1.25fr) minmax(320px, 0.75fr);
  }
}

@media (max-width: 899px) {
  .imap-map-public {
    height: min(42vh, 300px);
  }
  .imap-venue-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr));
  }
  .imap-venue-grid:has(> .imap-venue-card:only-child) {
    display: flex;
    height: auto;
  }
}

.imap-match-meta {
  list-style: none;
  margin: 0.5rem 0 0.75rem;
  padding: 0;
  display: grid;
  gap: 0.25rem;
  font-size: 0.9rem;
  color: var(--muted, #64748b);
}
.imap-match-meta span { font-weight: 600; color: inherit; margin-right: 0.35rem; }


/* Partner sponsoring pricing */
.partner-pricing-grid {
  display: grid;
  gap: 0.85rem;
  margin: 1rem 0 1.25rem;
}
@media (min-width: 720px) {
  .partner-pricing-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.partner-pricing-card { display: block; cursor: pointer; margin: 0; }
.partner-pricing-card > input { position: absolute; opacity: 0; pointer-events: none; }
.partner-pricing-card-inner {
  height: 100%;
  border: 1px solid rgba(148, 163, 184, 0.35);
  border-radius: 1rem;
  padding: 1rem 1.05rem;
  background: rgba(248, 250, 252, 0.92);
  transition: border-color .15s ease, box-shadow .15s ease;
}
.partner-pricing-card > input:checked + .partner-pricing-card-inner {
  border-color: rgba(212, 175, 55, 0.65);
  box-shadow: 0 0 0 2px rgba(212, 175, 55, 0.18);
}
.partner-pricing-card-inner h3 { margin: 0 0 0.35rem; font-size: 1.05rem; }
.partner-pricing-from { margin: 0 0 0.5rem; font-weight: 700; color: #9a7b1a; }
.partner-pricing-classes { margin-top: 0.75rem; display: grid; gap: 0.35rem; }
.partner-pricing-classes-label { font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: #64748b; }
.partner-pricing-summary { font-weight: 600; margin: 0.5rem 0 1rem; }


/* Clean legal text popup (Datenschutzerklärung under signature field) */
.legal-text-modal {
  z-index: 2200;
}
.legal-text-dialog {
  display: flex;
  flex-direction: column;
  width: min(720px, 100%);
  max-height: min(88vh, 820px);
  overflow: hidden;
  padding: 0;
  background: #fff;
}
.legal-text-header {
  flex: 0 0 auto;
  margin: 0;
  padding: 0.95rem 1.1rem;
  border-bottom: 1px solid rgba(15, 23, 42, 0.08);
  background: #fff;
  position: sticky;
  top: 0;
  z-index: 1;
}
.legal-text-header h3 {
  font-size: 1.05rem;
}
.legal-text-body {
  flex: 1 1 auto;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  padding: 1rem 1.2rem 1.4rem;
  color: #0f172a;
}
.legal-text-body .legal-stand {
  margin: 0 0 0.85rem;
  font-size: 0.86rem;
  color: #64748b;
}
.legal-text-body h2:first-of-type {
  margin-top: 0.35rem;
}
.legal-text-body h2 {
  color: #0f172a;
  font-size: 1rem;
  margin: 1.25rem 0 0.5rem;
}
.legal-text-body p,
.legal-text-body li {
  color: #334155;
  font-size: 0.94rem;
  line-height: 1.55;
}
.legal-text-body a {
  color: #9a7b1a;
  font-weight: 600;
}
.legal-text-body .legal-note {
  margin-top: 1.25rem;
  font-size: 0.86rem;
  color: #64748b;
}
body.theme-academy-nights .legal-text-dialog {
  background: #121822;
  color: #e8eef7;
  border-color: rgba(255,255,255,0.1);
}
body.theme-academy-nights .legal-text-header {
  background: #121822;
  border-bottom-color: rgba(255,255,255,0.08);
}
body.theme-academy-nights .legal-text-header h3 {
  color: #f4f7fb;
}
body.theme-academy-nights .legal-text-body p,
body.theme-academy-nights .legal-text-body li {
  color: #c5d0e0;
}
body.theme-academy-nights .legal-text-body h2 {
  color: #f0d78c;
}
body.theme-academy-nights .wr-modal-close {
  background: rgba(255,255,255,0.06);
  border-color: rgba(255,255,255,0.12);
  color: #e8eef7;
}


/* WritePro / Blog Studio public prose */
.prose img { max-width: 100%; height: auto; border-radius: 0.5rem; }
.prose figure { margin: 1rem 0; }
.prose figcaption { font-size: 0.85rem; color: var(--gray, #64748b); margin-top: 0.35rem; }
.prose pre {
  background: rgba(15, 23, 42, 0.06);
  padding: 0.85rem 1rem;
  border-radius: 0.55rem;
  overflow: auto;
  font-size: 0.88rem;
}
.prose code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 0.9em; }
.prose table { width: 100%; border-collapse: collapse; margin: 1rem 0; }
.prose th, .prose td { border: 1px solid rgba(148,163,184,0.45); padding: 0.4rem 0.55rem; }
.writepro-embed {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  margin: 1rem 0;
  border-radius: 0.65rem;
  overflow: hidden;
  background: #0f172a;
}
.writepro-embed iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}


/* Partner showcase cards */
.partner-card .partner-logo {
  max-width: min(100%, 220px);
  max-height: 88px;
  width: auto;
  height: auto;
  object-fit: contain;
  margin: 0 auto 0.85rem;
  display: block;
}
.partner-role {
  margin: 0 0 0.45rem;
  font-weight: 700;
  font-size: 0.95rem;
  color: var(--gold, #d4af37);
  letter-spacing: -0.01em;
}
.partner-desc {
  margin: 0 0 0.85rem;
  color: var(--gray, #64748b);
  line-height: 1.55;
  font-size: 0.92rem;
}
.partner-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 1.1rem;
  margin: 1rem 0 2rem;
}


/* Partner showcase – transparent cards with description */
.section-partners .partner-showcase-grid,
.section-partner-showcase .partner-showcase-grid {
  margin-top: 0.35rem;
}
.partner-showcase-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 1.15rem;
  align-items: stretch;
}
.partner-showcase-grid-home {
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}
.partner-showcase-grid-page {
  grid-template-columns: repeat(auto-fit, minmax(270px, 1fr));
  margin-bottom: 1.75rem;
}
.partner-showcase-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 0.45rem;
  min-height: 100%;
  padding: 1.35rem 1.2rem 1.25rem;
  border-radius: 1.1rem;
  text-decoration: none;
  color: inherit;
  /* transparent glass card */
  background: rgba(255, 255, 255, 0.045);
  border: 1px solid rgba(255, 255, 255, 0.1);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.04) inset,
    0 12px 36px rgba(0, 0, 0, 0.18);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  transition: border-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}
.partner-showcase-card:hover {
  border-color: rgba(212, 175, 55, 0.4);
  background: rgba(255, 255, 255, 0.07);
  transform: translateY(-3px);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.06) inset,
    0 16px 44px rgba(0, 0, 0, 0.22);
}
.partner-showcase-logo-wrap {
  display: grid;
  place-items: center;
  width: 100%;
  min-height: 4.5rem;
  margin-bottom: 0.35rem;
  padding: 0.65rem 0.85rem;
  border-radius: 0.85rem;
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid rgba(15, 23, 42, 0.06);
}
.partner-showcase-logo {
  max-width: min(100%, 200px);
  max-height: 72px;
  width: auto;
  height: auto;
  object-fit: contain;
  display: block;
}
.partner-showcase-logo-fallback {
  font-family: Oswald, sans-serif;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #0f172a;
  font-size: 1rem;
}
.partner-showcase-name {
  margin: 0.15rem 0 0;
  font-family: Oswald, sans-serif;
  font-size: 1.15rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--white, #fff);
  line-height: 1.2;
}
.partner-showcase-role {
  margin: 0;
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--gold, #d4af37);
  letter-spacing: -0.01em;
  line-height: 1.35;
}
.partner-showcase-desc {
  margin: 0.15rem 0 0;
  flex: 1 1 auto;
  font-size: 0.9rem;
  line-height: 1.55;
  color: var(--gray, #a8b3c4);
}
.partner-showcase-link {
  margin-top: 0.55rem;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--gold, #d4af37);
}
.partner-tier-heading {
  margin-top: 1.5rem;
  margin-bottom: 0.85rem;
  text-align: center;
}
.page-partner .section-partner-showcase > .container {
  text-align: center;
}
.page-partner .partner-showcase-card {
  text-align: center;
}

/* Light theme fallback if white text not ideal on light bg */
body:not(.theme-academy-nights) .section-partners .partner-showcase-card,
body.theme-academy-days .partner-showcase-card {
  background: rgba(15, 23, 42, 0.04);
  border-color: rgba(15, 23, 42, 0.08);
  box-shadow: 0 10px 28px rgba(15, 23, 42, 0.06);
}
body:not(.theme-academy-nights) .partner-showcase-name,
body.theme-academy-days .partner-showcase-name {
  color: #0f172a;
}
body:not(.theme-academy-nights) .partner-showcase-desc,
body.theme-academy-days .partner-showcase-desc {
  color: #475569;
}
body.theme-academy-nights .partner-showcase-logo-wrap {
  background: rgba(255, 255, 255, 0.96);
}

@media (max-width: 640px) {
  .partner-showcase-grid,
  .partner-showcase-grid-home,
  .partner-showcase-grid-page {
    grid-template-columns: 1fr;
  }
}


/* Partner showcase – logos only mode */
.partner-logo-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 0.9rem;
  align-items: stretch;
}
.partner-logo-grid-home {
  grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
}
.partner-logo-grid-page {
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  margin-bottom: 1.75rem;
}
.partner-logo-tile {
  display: grid;
  place-items: center;
  min-height: 96px;
  padding: 1rem 1.1rem;
  border-radius: 0.95rem;
  text-decoration: none;
  color: inherit;
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid rgba(255, 255, 255, 0.14);
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.14);
  transition: transform 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
}
a.partner-logo-tile:hover {
  transform: translateY(-2px);
  border-color: rgba(212, 175, 55, 0.45);
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.18);
}
.partner-logo-tile.is-static {
  cursor: default;
}
.partner-logo-tile img {
  max-width: 100%;
  max-height: 52px;
  width: auto;
  height: auto;
  object-fit: contain;
  display: block;
}
.partner-logo-tile span {
  font-family: Oswald, sans-serif;
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: #0f172a;
  text-align: center;
}
body:not(.theme-academy-nights) .partner-logo-tile,
body.theme-academy-days .partner-logo-tile {
  background: #fff;
  border-color: rgba(15, 23, 42, 0.08);
  box-shadow: 0 8px 22px rgba(15, 23, 42, 0.06);
}


/* Camp addons: shirt personalization + cancel protect choices */
.camp-os-flow-step-body--product {
  padding: 0.75rem 1rem 1.1rem;
  max-width: 100%;
  box-sizing: border-box;
}
.camp-os-flow-step-body--product .camp-os-product {
  margin: 0;
  max-width: 100%;
  box-sizing: border-box;
  overflow: hidden;
}
.camp-os-flow-step-body--product .camp-os-product-top {
  flex-wrap: wrap;
  gap: 0.5rem 0.85rem;
}
.camp-os-flow-step-body--product .camp-os-product-top h3 {
  flex: 1 1 12rem;
  min-width: 0;
  word-break: break-word;
}
.camp-os-flow-step-body--product .camp-os-qty {
  max-width: 100%;
}
.camp-os-product.is-shirt-upgrade {
  gap: 0.95rem;
  padding: 1.05rem 1.05rem 1.15rem;
  background:
    linear-gradient(165deg, rgba(255, 255, 255, 0.96), rgba(248, 250, 252, 0.92));
  border: 1px solid rgba(15, 23, 42, 0.1);
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.05);
}
.camp-os-shirt-options {
  margin-top: 0.15rem;
  padding: 0.95rem 1rem 1.05rem;
  border-radius: 16px;
  background: rgba(15, 23, 42, 0.035);
  border: 1px solid rgba(15, 23, 42, 0.09);
  max-width: 100%;
  box-sizing: border-box;
}
.camp-os-shirt-hint {
  margin: 0 0 0.75rem;
  font-size: 0.84rem;
  line-height: 1.45;
  color: #475569;
}
.camp-os-shirt-fields {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(7.5rem, 0.85fr);
  gap: 0.7rem 0.85rem;
  align-items: end;
}
@media (max-width: 560px) {
  .camp-os-shirt-fields { grid-template-columns: 1fr; }
}
.camp-os-shirt-preview {
  margin: 0.65rem 0 0;
  padding: 0.45rem 0.65rem;
  border-radius: 10px;
  font-size: 0.88rem;
  background: rgba(212, 175, 55, 0.12);
  border: 1px solid rgba(212, 175, 55, 0.28);
  color: #3f3f46;
}
.camp-os-shirt-slots {
  display: grid;
  gap: 0.85rem;
  max-width: 100%;
}
.camp-os-shirt-slot {
  padding: 0.9rem 0.95rem;
  border-radius: 14px;
  border: 1px solid rgba(15, 23, 42, 0.1);
  background: rgba(255, 255, 255, 0.88);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8);
  max-width: 100%;
  box-sizing: border-box;
}
.camp-os-shirt-slot-title {
  margin: 0 0 0.65rem;
  font-size: 0.78rem;
  font-weight: 750;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #64748b;
}
.camp-os-field select,
.camp-os-shirt-select {
  width: 100%;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  border: 1px solid rgba(60, 60, 67, 0.18);
  border-radius: 12px;
  background-color: rgba(255, 255, 255, 0.92);
  background-image: linear-gradient(45deg, transparent 50%, #8e8e93 50%),
    linear-gradient(135deg, #8e8e93 50%, transparent 50%);
  background-position: calc(100% - 16px) calc(50% - 3px), calc(100% - 11px) calc(50% - 3px);
  background-size: 5px 5px, 5px 5px;
  background-repeat: no-repeat;
  padding: 0.7rem 2rem 0.7rem 0.85rem;
  font: inherit;
  font-weight: 500;
  color: var(--camp-text, #1c1c1e);
  min-height: 2.75rem;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.65);
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.camp-os-field select:focus,
.camp-os-shirt-select:focus {
  outline: none;
  border-color: rgba(0, 113, 227, 0.55);
  box-shadow: 0 0 0 3px rgba(0, 113, 227, 0.18);
}
.camp-os-product-tag--shirt {
  background: rgba(37, 99, 235, 0.12);
  color: #1d4ed8;
}
.camp-os-cancel-group {
  margin-top: 1rem;
  padding-top: 0.85rem;
  border-top: 1px solid rgba(15, 23, 42, 0.08);
}
.camp-os-cancel-head h3 {
  margin: 0 0 0.35rem;
  font-size: 1rem;
}
.camp-os-cancel-note {
  margin: 0 0 0.75rem;
  font-size: 0.84rem;
  line-height: 1.45;
  opacity: 0.9;
}
.camp-os-cancel-note--corporate {
  margin: 0 0 0.85rem;
  padding: 0.85rem 0.95rem;
  border-radius: 12px;
  border: 1px solid rgba(15, 23, 42, 0.1);
  background: linear-gradient(180deg, rgba(255,255,255,0.92), rgba(248,250,252,0.96));
  box-shadow: 0 1px 0 rgba(255,255,255,0.65) inset;
  font-size: 0.84rem;
  line-height: 1.5;
  color: #334155;
}
.camp-os-cancel-note--corporate .camp-os-cancel-note-title {
  margin: 0 0 0.35rem;
  font-size: 0.8rem;
  font-weight: 750;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #0f172a;
}
.camp-os-cancel-note--corporate p {
  margin: 0 0 0.45rem;
}
.camp-os-cancel-note--corporate p:last-child {
  margin-bottom: 0;
}
.camp-os-cancel-note--corporate a {
  color: #9a7b1a;
  font-weight: 650;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.camp-os-choice-legal a {
  color: inherit;
  font-weight: 650;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.camp-os-choice {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 0.65rem 0.75rem;
  align-items: start;
  padding: 0.75rem 0.8rem;
  margin-bottom: 0.5rem;
  border-radius: 14px;
  border: 1px solid rgba(15, 23, 42, 0.1);
  background: rgba(255, 255, 255, 0.55);
  cursor: pointer;
}
.camp-os-choice:has(input:checked) {
  border-color: rgba(15, 23, 42, 0.45);
  box-shadow: 0 0 0 1px rgba(15, 23, 42, 0.2);
  background: rgba(255, 255, 255, 0.92);
}
.camp-os-choice input {
  margin-top: 0.2rem;
}
.camp-os-choice-title {
  display: block;
  font-weight: 600;
  font-size: 0.95rem;
}
.camp-os-choice-desc {
  display: block;
  margin-top: 0.2rem;
  font-size: 0.84rem;
  opacity: 0.8;
}
.camp-os-choice-legal {
  display: block;
  margin-top: 0.3rem;
  font-size: 0.78rem;
  color: #9a3412;
}
.camp-os-choice-price {
  font-weight: 700;
  white-space: nowrap;
  font-size: 0.92rem;
}
.camp-os-choice-price {
  display: grid;
  justify-items: end;
  gap: 0.15rem;
  text-align: right;
}
.camp-os-choice-price-meta {
  display: block;
  font-size: 0.72rem;
  font-weight: 500;
  opacity: 0.75;
  white-space: nowrap;
}
.camp-os-choice-price-meta[hidden] {
  display: none !important;
}



/* ── NETCORE × ClubCore · Imprint brand + Landing Concept Page (LCP) ── */
/* Light academy surface concept (same as camp order / page-camp-apple), NOT dark theme */
:root {
  --nclcp-void: #f5f5f7;
  --nclcp-ink: #ffffff;
  --nclcp-panel: #ffffff;
  --nclcp-elev: #fbfbfc;
  --nclcp-deep: #f0f0f2;
  --nclcp-line: rgba(0, 0, 0, 0.08);
  --nclcp-line-strong: rgba(0, 0, 0, 0.12);
  --nclcp-line-soft: rgba(0, 0, 0, 0.06);
  --nclcp-text: #1d1d1f;
  --nclcp-muted: #6e6e73;
  --nclcp-soft: #6e6e73;
  --nclcp-metal: #b8860b;
  --nclcp-metal-hi: #d4af37;
  --nclcp-gold: var(--gold, #d4af37);
  --nclcp-blue: #0071e3;
  --nclcp-blue-hover: #0077ed;
  --nclcp-chrome: #86868b;
  --nclcp-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
  --nclcp-shadow: 0 20px 50px rgba(0, 0, 0, 0.10), 0 1px 2px rgba(0, 0, 0, 0.04);
  --nclcp-shadow-sm: 0 4px 24px rgba(0, 0, 0, 0.06), 0 1px 2px rgba(0, 0, 0, 0.04);
  --nclcp-radius: 18px;
}

/* ── Imprint credit card (light surface on dark site page) ── */
.nc-credit {
  margin-top: 0.35rem;
  border-radius: var(--nclcp-radius);
  border: 1px solid rgba(212, 175, 55, 0.35);
  background:
    radial-gradient(ellipse 90% 70% at 100% 0%, rgba(212, 175, 55, 0.10), transparent 55%),
    linear-gradient(165deg, rgba(255, 255, 255, 0.99) 0%, #f8f8fa 100%);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.95) inset,
    var(--nclcp-shadow);
  overflow: hidden;
  position: relative;
  color: var(--nclcp-text);
}
.nc-credit::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 3px;
  background: linear-gradient(180deg, var(--nclcp-metal-hi), var(--nclcp-metal), transparent 92%);
  border-radius: var(--nclcp-radius) 0 0 var(--nclcp-radius);
}
.nc-credit-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1.25rem;
  padding: 1.4rem 1.3rem 1.45rem 1.5rem;
  align-items: stretch;
}
@media (min-width: 720px) {
  .nc-credit--visual .nc-credit-grid {
    grid-template-columns: minmax(0, 1.25fr) minmax(210px, 0.9fr);
    gap: 1.5rem;
    align-items: center;
  }
}
.nc-credit-main {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.7rem;
}
.nc-credit-brand {
  margin: 0;
  font-family: "Oswald", "Inter", sans-serif;
  font-size: clamp(1.35rem, 3vw, 1.7rem);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  line-height: 1.15;
}
.nc-credit-brand-link {
  color: var(--nclcp-text);
  text-decoration: none;
  display: inline-flex;
  align-items: baseline;
  gap: 0.12em;
  transition: color 0.2s ease;
}
.nc-credit-brand-link:hover {
  color: var(--nclcp-metal);
}
.nc-credit-brand-strong {
  font-weight: 700;
  color: var(--nclcp-text);
}
.nc-credit-brand-soft {
  font-weight: 400;
  letter-spacing: 0.16em;
  color: var(--nclcp-metal);
  font-size: 0.92em;
}
.nc-credit-line {
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.4rem 0.55rem;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--nclcp-muted);
}
.nc-credit-dot {
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--nclcp-metal-hi);
  opacity: 0.95;
  flex: 0 0 auto;
}
.nc-credit-copy {
  margin: 0.1rem 0 0.15rem;
  max-width: 46ch;
  font-size: 0.95rem;
  line-height: 1.55;
  color: var(--nclcp-soft);
}
.nc-credit-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  margin-top: 0.4rem;
}
.nc-credit-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.65rem;
  padding: 0.55rem 1.2rem;
  border-radius: 980px;
  font-size: 0.78rem;
  font-weight: 650;
  letter-spacing: -0.01em;
  text-decoration: none;
  border: 1px solid transparent;
  cursor: pointer;
  transition: transform 0.15s ease, background 0.2s ease, border-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
  font-family: inherit;
}
.nc-credit-btn--primary {
  background: var(--nclcp-blue);
  color: #ffffff;
  box-shadow: 0 8px 24px rgba(0, 113, 227, 0.22);
}
.nc-credit-btn--primary:hover {
  background: var(--nclcp-blue-hover);
  transform: translateY(-1px);
}
.nc-credit-btn--ghost {
  background: transparent;
  color: var(--nclcp-blue);
  border-color: rgba(0, 113, 227, 0.28);
}
.nc-credit-btn--ghost:hover {
  background: rgba(0, 113, 227, 0.06);
  border-color: rgba(0, 113, 227, 0.4);
}
.nc-credit-media {
  appearance: none;
  border: 0;
  background: transparent;
  padding: 0;
  margin: 0;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  text-align: left;
  width: 100%;
  min-width: 0;
  color: inherit;
  font: inherit;
}
.nc-credit-media:focus-visible {
  outline: none;
}
.nc-credit-media:focus-visible .nc-credit-media-frame {
  box-shadow:
    0 0 0 3px rgba(0, 113, 227, 0.28),
    var(--nclcp-shadow-sm);
}
.nc-credit-media-frame {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid var(--nclcp-line);
  background: linear-gradient(160deg, #ffffff, #f0f0f2);
  box-shadow: var(--nclcp-shadow-sm);
  transition: transform 0.3s var(--nclcp-ease), box-shadow 0.3s ease, border-color 0.2s ease;
}
.nc-credit-media:hover .nc-credit-media-frame {
  transform: translateY(-2px);
  border-color: rgba(0, 0, 0, 0.12);
  box-shadow: var(--nclcp-shadow);
}
.nc-credit-media-frame img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}
.nc-credit-media:hover .nc-credit-media-frame img {
  transform: scale(1.04);
}
.nc-credit-media-caption {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0 0.15rem;
}
.nc-credit-media-label {
  font-size: 0.84rem;
  font-weight: 650;
  letter-spacing: -0.01em;
  color: var(--nclcp-text);
}
.nc-credit-media-cta {
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: 0.02em;
  color: var(--nclcp-blue);
  white-space: nowrap;
}
@media (max-width: 719px) {
  .nc-credit-grid {
    padding: 1.2rem 1.1rem 1.25rem 1.25rem;
  }
  .nc-credit-actions { width: 100%; }
  .nc-credit-btn {
    flex: 1 1 auto;
    min-width: min(100%, 9.5rem);
  }
  .nc-credit-media-frame { aspect-ratio: 16 / 9; }
}

.legal-page h2 + .nc-credit,
.page-legal h2 + .nc-credit {
  margin-top: 0.85rem;
  margin-bottom: 0.25rem;
}

/* Footer credit stays on dark site footer */
.footer-netcore {
  margin: 0;
  font-size: 0.82rem;
  opacity: 0.92;
  color: var(--gray, #b5b5b5);
  line-height: 1.45;
}
.netcore-brand-link {
  color: inherit;
  text-decoration: none;
  font-weight: 700;
  letter-spacing: 0.02em;
}
.netcore-brand-link:hover {
  color: var(--gold, #d4af37);
  text-decoration: underline;
}
.netcore-bolt,
.legal-agency-bolt {
  color: var(--gold, #d4af37);
}

/* ── LCP shell: light academy camp background ── */
html.netcore-lfsp-open,
body.netcore-lfsp-open {
  overflow: hidden;
}

.nclcp {
  position: fixed;
  inset: 0;
  z-index: 10050;
  display: flex;
  align-items: stretch;
  justify-content: center;
  font-family: Inter, -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  color: var(--nclcp-text);
  -webkit-font-smoothing: antialiased;
  letter-spacing: -0.01em;
}
.nclcp[hidden] { display: none !important; }

.nclcp-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(29, 29, 31, 0.38);
  backdrop-filter: blur(14px) saturate(1.15);
  -webkit-backdrop-filter: blur(14px) saturate(1.15);
  animation: nclcpFade 0.4s var(--nclcp-ease);
}

.nclcp-stage {
  position: relative;
  z-index: 1;
  width: min(1120px, 100%);
  max-height: 100%;
  display: flex;
  flex-direction: column;
  background: var(--nclcp-void);
  color: var(--nclcp-text);
  box-shadow: var(--nclcp-shadow);
  animation: nclcpRise 0.45s var(--nclcp-ease);
  border: 1px solid var(--nclcp-line);
}
@media (min-width: 900px) {
  .nclcp-stage {
    margin: 1.5rem auto;
    max-height: calc(100% - 3rem);
    border-radius: 22px;
    overflow: hidden;
  }
}

.nclcp-chrome {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.9rem 1.3rem;
  border-bottom: 1px solid var(--nclcp-line);
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  flex-shrink: 0;
}
.nclcp-chrome-left,
.nclcp-chrome-right {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.nclcp-mark {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: radial-gradient(circle at 30% 30%, var(--nclcp-metal-hi), var(--nclcp-metal) 55%, #8a7020);
  box-shadow: 0 0 0 1px rgba(212, 175, 55, 0.35);
}
.nclcp-chrome-text { display: flex; flex-direction: column; line-height: 1.15; }
.nclcp-chrome-product {
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--nclcp-text);
}
.nclcp-chrome-meta {
  font-size: 0.62rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--nclcp-muted);
}
.nclcp-chrome-link {
  font-size: 0.72rem;
  letter-spacing: 0.04em;
  color: var(--nclcp-blue);
  text-decoration: none;
  font-weight: 600;
}
.nclcp-chrome-link:hover { text-decoration: underline; }

.nclcp-close {
  width: 2.4rem;
  height: 2.4rem;
  border: 1px solid var(--nclcp-line-strong);
  border-radius: 50%;
  background: #fff;
  cursor: pointer;
  position: relative;
  transition: background 0.2s ease, border-color 0.2s ease;
}
.nclcp-close:hover {
  background: rgba(0, 0, 0, 0.04);
  border-color: rgba(0, 0, 0, 0.18);
}
.nclcp-close span,
.nclcp-close span::before {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 12px;
  height: 1px;
  background: var(--nclcp-text);
  display: block;
}
.nclcp-close span { transform: translate(-50%, -50%) rotate(45deg); }
.nclcp-close span::before {
  content: "";
  transform: rotate(90deg);
  left: 0;
  top: 0;
}

.nclcp-scroll {
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  flex: 1;
  scroll-behavior: smooth;
  background:
    radial-gradient(1200px 500px at 50% -10%, rgba(0, 113, 227, 0.07), transparent 60%),
    linear-gradient(180deg, #ffffff 0%, var(--nclcp-void) 28%);
}

/* Hero */
.nclcp-hero {
  position: relative;
  min-height: min(68vh, 540px);
  display: grid;
  align-items: end;
}
.nclcp-hero-media {
  position: absolute;
  inset: 0;
  background: #eef0f3;
}
.nclcp-hero-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.88;
  filter: saturate(1.02) contrast(1.02);
}
.nclcp-hero-media--void {
  background:
    radial-gradient(ellipse 80% 60% at 70% 40%, rgba(0, 113, 227, 0.10), transparent 55%),
    linear-gradient(160deg, #ffffff, #f0f2f5 70%);
}
.nclcp-hero-veil {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(245, 245, 247, 0.96) 0%, rgba(245, 245, 247, 0.78) 48%, rgba(245, 245, 247, 0.42) 100%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.12) 0%, rgba(245, 245, 247, 0.92) 100%);
}
.nclcp-hero-content {
  position: relative;
  z-index: 1;
  padding: clamp(2rem, 5vw, 4rem) clamp(1.25rem, 4vw, 3rem) clamp(1.75rem, 4vw, 2.75rem);
  max-width: 42rem;
}

.nclcp-eyebrow {
  margin: 0 0 1rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--nclcp-muted);
}
.nclcp-display {
  margin: 0 0 1.1rem;
  font-size: clamp(2.2rem, 5.5vw, 3.35rem);
  font-weight: 700;
  line-height: 1.05;
  letter-spacing: -0.03em;
  color: var(--nclcp-text);
}
.nclcp-display em {
  font-style: normal;
  font-weight: 600;
  color: var(--nclcp-blue);
}
.nclcp-display--sm {
  font-size: clamp(1.7rem, 4.2vw, 2.45rem);
}
.nclcp-lede {
  margin: 0 0 1.5rem;
  font-size: 1.05rem;
  line-height: 1.6;
  color: var(--nclcp-soft);
  font-weight: 450;
  max-width: 36rem;
}
.nclcp-lede--center {
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}
.nclcp-lede strong {
  color: var(--nclcp-text);
  font-weight: 650;
}

.nclcp-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  margin-bottom: 2rem;
}
.nclcp-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.75rem;
  padding: 0.7rem 1.35rem;
  border-radius: 980px;
  font-size: 0.95rem;
  font-weight: 600;
  letter-spacing: -0.01em;
  text-decoration: none;
  transition: transform 0.15s ease, background 0.2s ease, border-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}
.nclcp-btn--solid {
  background: var(--nclcp-blue);
  color: #ffffff;
  border: none;
  box-shadow: 0 8px 24px rgba(0, 113, 227, 0.24);
}
.nclcp-btn--solid:hover {
  background: var(--nclcp-blue-hover);
  transform: translateY(-1px);
}
.nclcp-btn--ghost {
  border: 1px solid rgba(0, 113, 227, 0.28);
  color: var(--nclcp-blue);
  background: #ffffff;
}
.nclcp-btn--ghost:hover {
  background: rgba(0, 113, 227, 0.06);
  border-color: rgba(0, 113, 227, 0.4);
}
.nclcp-btn--lg {
  min-height: 3.1rem;
  padding-inline: 1.75rem;
}

.nclcp-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.75rem 1rem;
  margin: 0;
  padding-top: 1.25rem;
  border-top: 1px solid var(--nclcp-line);
  max-width: 28rem;
}
@media (max-width: 480px) {
  .nclcp-stats { grid-template-columns: 1fr; gap: 0.85rem; }
}
.nclcp-stats dt {
  margin: 0 0 0.2rem;
  font-size: 0.68rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--nclcp-muted);
  font-weight: 650;
}
.nclcp-stats dd {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--nclcp-text);
}

/* Strip */
.nclcp-strip {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.65rem 1rem;
  padding: 1rem 1.25rem;
  border-block: 1px solid var(--nclcp-line);
  background: rgba(255, 255, 255, 0.72);
  font-size: 0.68rem;
  font-weight: 650;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--nclcp-muted);
}
.nclcp-strip-dot {
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: var(--nclcp-blue);
  opacity: 0.85;
}

/* Sections */
.nclcp-section {
  padding: clamp(2.5rem, 5vw, 4rem) clamp(1.25rem, 4vw, 3rem);
  border-bottom: 1px solid var(--nclcp-line);
}
.nclcp-section--tight { padding-bottom: clamp(2rem, 4vw, 3rem); }
.nclcp-section-head {
  max-width: 36rem;
  margin-bottom: 2rem;
}
.nclcp-section-index {
  display: block;
  margin-bottom: 0.75rem;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  color: var(--nclcp-blue);
}
.nclcp-section-head h3 {
  margin: 0 0 0.65rem;
  font-size: clamp(1.45rem, 2.8vw, 1.9rem);
  font-weight: 700;
  letter-spacing: -0.025em;
  line-height: 1.15;
  color: var(--nclcp-text);
}
.nclcp-section-head p {
  margin: 0;
  font-size: 1rem;
  line-height: 1.6;
  color: var(--nclcp-soft);
}
.nclcp-fine {
  display: block;
  margin-top: 0.35rem;
  font-size: 0.78rem;
  color: var(--nclcp-muted);
}

.nclcp-pillars {
  display: grid;
  gap: 0.75rem;
}
@media (min-width: 800px) {
  .nclcp-pillars { grid-template-columns: repeat(3, 1fr); }
}
.nclcp-pillar {
  background: var(--nclcp-panel);
  border: 1px solid var(--nclcp-line);
  border-radius: var(--nclcp-radius);
  padding: 1.45rem 1.35rem 1.55rem;
  box-shadow: var(--nclcp-shadow-sm);
}
.nclcp-pillar-num {
  display: block;
  margin-bottom: 1rem;
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  color: var(--nclcp-blue);
  font-weight: 700;
}
.nclcp-pillar h4 {
  margin: 0 0 0.55rem;
  font-size: 1.08rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--nclcp-text);
}
.nclcp-pillar p {
  margin: 0;
  font-size: 0.94rem;
  line-height: 1.55;
  color: var(--nclcp-soft);
}

/* Gallery */
.nclcp-gallery {
  display: grid;
  gap: 0.75rem;
}
@media (min-width: 800px) {
  .nclcp-gallery {
    grid-template-columns: 0.85fr 1.15fr;
    grid-template-rows: auto auto;
  }
  .nclcp-gallery-item--mark { grid-row: span 2; }
}
.nclcp-gallery-item {
  margin: 0;
  position: relative;
  overflow: hidden;
  border: 1px solid var(--nclcp-line);
  background: #eef0f3;
  min-height: 180px;
  border-radius: 14px;
  box-shadow: var(--nclcp-shadow-sm);
}
.nclcp-gallery-item img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 180px;
  object-fit: cover;
  transition: transform 0.7s var(--nclcp-ease);
}
.nclcp-gallery-item:hover img { transform: scale(1.03); }
.nclcp-gallery-item--mark img { min-height: 100%; }
.nclcp-gallery-item figcaption {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 0.85rem 1rem;
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #fff;
  background: linear-gradient(180deg, transparent, rgba(29, 29, 31, 0.72));
  display: flex;
  gap: 0.65rem;
  align-items: center;
  font-weight: 650;
}
.nclcp-gallery-item figcaption span { color: #f5d76e; }

/* Journey */
.nclcp-journey {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0;
  border-top: 1px solid var(--nclcp-line);
}
.nclcp-journey li {
  display: grid;
  grid-template-columns: 6.5rem 1.5rem 1fr;
  gap: 0.75rem;
  align-items: baseline;
  padding: 1.15rem 0;
  border-bottom: 1px solid var(--nclcp-line);
}
@media (max-width: 560px) {
  .nclcp-journey li { grid-template-columns: 1fr; gap: 0.35rem; }
  .nclcp-journey-line { display: none; }
}
.nclcp-journey-step {
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--nclcp-blue);
}
.nclcp-journey-line {
  height: 1px;
  background: var(--nclcp-line-strong);
  align-self: center;
}
.nclcp-journey-text {
  font-size: 0.98rem;
  line-height: 1.5;
  color: var(--nclcp-soft);
}

/* Spec table */
.nclcp-spec {
  border: 1px solid var(--nclcp-line);
  border-radius: var(--nclcp-radius);
  overflow: hidden;
  background: var(--nclcp-panel);
  box-shadow: var(--nclcp-shadow-sm);
}
.nclcp-spec-head,
.nclcp-spec-row {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 1rem;
  padding: 1rem 1.15rem;
  border-bottom: 1px solid var(--nclcp-line);
}
.nclcp-spec-head {
  font-size: 0.68rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--nclcp-muted);
  background: rgba(0, 0, 0, 0.02);
  font-weight: 650;
}
.nclcp-spec-row:last-child { border-bottom: 0; }
.nclcp-spec-row:hover { background: rgba(0, 113, 227, 0.03); }
.nclcp-spec-main h4 {
  margin: 0 0 0.3rem;
  font-size: 0.98rem;
  font-weight: 650;
  letter-spacing: -0.015em;
  color: var(--nclcp-text);
}
.nclcp-spec-main p {
  margin: 0;
  font-size: 0.86rem;
  line-height: 1.45;
  color: var(--nclcp-muted);
  max-width: 42rem;
}
.nclcp-spec-price {
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--nclcp-blue);
  white-space: nowrap;
  align-self: start;
  padding-top: 0.1rem;
}
@media (max-width: 520px) {
  .nclcp-spec-head,
  .nclcp-spec-row {
    grid-template-columns: 1fr;
    gap: 0.35rem;
  }
  .nclcp-spec-price { padding-top: 0; }
}

.nclcp-included {
  margin-top: 1.5rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--nclcp-line);
}
.nclcp-included h4 {
  margin: 0 0 0.75rem;
  font-size: 0.72rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--nclcp-muted);
  font-weight: 700;
}
.nclcp-included ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.55rem;
}
.nclcp-included li {
  display: grid;
  gap: 0.15rem;
  font-size: 0.9rem;
  color: var(--nclcp-soft);
}
.nclcp-included li strong { color: var(--nclcp-text); font-weight: 650; }
.nclcp-included li span { font-size: 0.82rem; color: var(--nclcp-muted); }

/* Duo panels */
.nclcp-duo {
  display: grid;
  gap: 0.75rem;
}
@media (min-width: 800px) {
  .nclcp-duo { grid-template-columns: 1fr 1fr; }
}
.nclcp-panel {
  background: var(--nclcp-panel);
  border: 1px solid var(--nclcp-line);
  border-radius: var(--nclcp-radius);
  padding: 1.55rem 1.4rem 1.65rem;
  box-shadow: var(--nclcp-shadow-sm);
}
.nclcp-panel-label {
  display: block;
  margin-bottom: 0.75rem;
  font-size: 0.68rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--nclcp-blue);
  font-weight: 700;
}
.nclcp-panel h4 {
  margin: 0 0 0.7rem;
  font-size: 1.2rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--nclcp-text);
}
.nclcp-panel p {
  margin: 0 0 1rem;
  font-size: 0.95rem;
  line-height: 1.55;
  color: var(--nclcp-soft);
}
.nclcp-panel ul {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0.4rem;
}
.nclcp-panel li {
  font-size: 0.86rem;
  color: var(--nclcp-muted);
  padding-left: 0.9rem;
  position: relative;
}
.nclcp-panel li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.55em;
  width: 6px;
  height: 1.5px;
  background: var(--nclcp-blue);
}

/* Tiers */
.nclcp-tiers {
  display: grid;
  gap: 0.75rem;
}
@media (min-width: 800px) {
  .nclcp-tiers { grid-template-columns: repeat(3, 1fr); }
}
.nclcp-tier {
  background: var(--nclcp-panel);
  border: 1px solid var(--nclcp-line);
  border-radius: var(--nclcp-radius);
  padding: 1.45rem 1.35rem 1.55rem;
  box-shadow: var(--nclcp-shadow-sm);
}
.nclcp-tier-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.65rem;
  height: 1.65rem;
  padding: 0 0.45rem;
  margin-bottom: 0.85rem;
  border-radius: 999px;
  border: 1px solid rgba(0, 113, 227, 0.22);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--nclcp-blue);
  background: rgba(0, 113, 227, 0.07);
}
.nclcp-tier h4 {
  margin: 0 0 0.4rem;
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--nclcp-text);
}
.nclcp-tier-range {
  margin: 0 0 0.4rem;
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--nclcp-blue);
  letter-spacing: -0.02em;
}
.nclcp-tier-detail {
  margin: 0;
  font-size: 0.88rem;
  line-height: 1.45;
  color: var(--nclcp-soft);
}

/* HEIMDALL */
.nclcp-heimdall {
  background:
    radial-gradient(ellipse 70% 80% at 10% 50%, rgba(212, 175, 55, 0.10), transparent 55%),
    #ffffff;
}
.nclcp-heimdall-inner {
  max-width: 40rem;
}
.nclcp-heimdall h3 {
  margin: 0.35rem 0 0.85rem;
  font-size: clamp(1.35rem, 2.8vw, 1.75rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--nclcp-text);
}
.nclcp-heimdall p {
  margin: 0;
  font-size: 1rem;
  line-height: 1.6;
  color: var(--nclcp-soft);
}

/* Finale */
.nclcp-finale {
  padding: clamp(2.75rem, 6vw, 4.5rem) clamp(1.25rem, 4vw, 3rem);
  text-align: center;
  background:
    radial-gradient(ellipse 60% 50% at 50% 0%, rgba(0, 113, 227, 0.08), transparent 60%),
    linear-gradient(180deg, #ffffff 0%, var(--nclcp-void) 100%);
}
.nclcp-finale .nclcp-display {
  margin-left: auto;
  margin-right: auto;
}
.nclcp-finale .nclcp-btn {
  margin-top: 0.35rem;
}
.nclcp-dismiss-hint {
  margin: 1.25rem 0 0;
  font-size: 0.78rem;
  color: var(--nclcp-muted);
}
.nclcp-dismiss-hint kbd {
  display: inline-block;
  padding: 0.12rem 0.45rem;
  border-radius: 0.4rem;
  border: 1px solid var(--nclcp-line-strong);
  font-size: 0.72rem;
  font-family: inherit;
  color: var(--nclcp-soft);
  background: #fff;
}

@keyframes nclcpFade {
  from { opacity: 0; }
  to { opacity: 1; }
}
@keyframes nclcpRise {
  from { opacity: 0; transform: translateY(18px) scale(0.992); }
  to { opacity: 1; transform: none; }
}

@media (prefers-reduced-motion: reduce) {
  .nclcp-backdrop,
  .nclcp-stage,
  .nclcp-gallery-item img,
  .nclcp-btn,
  .nc-credit-media-frame,
  .nc-credit-btn {
    animation: none !important;
    transition: none !important;
  }
}

/* Cancel protect info icon (24h why it costs) */
.camp-os-choice-wrap {
  margin-bottom: 0.5rem;
}
.camp-os-choice-wrap .camp-os-choice {
  margin-bottom: 0;
}
.camp-os-choice-title {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.45rem;
}
.camp-os-info-btn {
  appearance: none;
  border: 0;
  padding: 0;
  margin: 0;
  width: 1.25rem;
  height: 1.25rem;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(0, 113, 227, 0.12);
  color: #0071e3;
  cursor: pointer;
  vertical-align: middle;
  flex: 0 0 auto;
  transition: background 0.15s ease, transform 0.15s ease;
}
.camp-os-info-btn:hover,
.camp-os-info-btn:focus-visible {
  background: rgba(0, 113, 227, 0.22);
  outline: none;
  transform: scale(1.06);
}
.camp-os-info-btn[aria-expanded="true"] {
  background: #0071e3;
  color: #fff;
}
.camp-os-info-icon {
  font-size: 0.72rem;
  font-weight: 800;
  font-style: italic;
  font-family: Georgia, "Times New Roman", serif;
  line-height: 1;
}
.camp-os-info-panel {
  margin: 0.45rem 0 0.15rem;
  padding: 0.85rem 0.95rem;
  border-radius: 14px;
  border: 1px solid rgba(0, 113, 227, 0.18);
  background: rgba(0, 113, 227, 0.06);
  animation: campOsInfoIn 0.2s ease;
}
.camp-os-info-panel[hidden] {
  display: none !important;
}
.camp-os-info-panel-title {
  margin: 0 0 0.45rem;
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--camp-text, #1c1c1e);
}
.camp-os-info-list {
  margin: 0;
  padding-left: 1.1rem;
  font-size: 0.84rem;
  line-height: 1.45;
  color: var(--camp-secondary, #6e6e73);
}
.camp-os-info-list li {
  margin: 0 0 0.35rem;
}
.camp-os-info-panel-note {
  margin: 0.55rem 0 0;
  font-size: 0.8rem;
  line-height: 1.4;
  color: var(--camp-secondary, #6e6e73);
}
@keyframes campOsInfoIn {
  from { opacity: 0; transform: translateY(-4px); }
  to { opacity: 1; transform: none; }
}
.visually-hidden {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0);
  white-space: nowrap; border: 0;
}

/* Legal page keyboard navigation */
.legal-keys-hint {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.55rem 0.85rem;
  width: 100%;
  margin: 0.85rem 0 0;
  padding: 0.65rem 0.85rem;
  border-radius: 12px;
  border: 1px solid rgba(15, 23, 42, 0.08);
  background: rgba(15, 23, 42, 0.03);
  font-size: 0.82rem;
  color: var(--text-secondary, #6e6e73);
  line-height: 1.4;
}
.legal-keys-hint-keys {
  display: inline-flex;
  gap: 0.3rem;
}
.legal-keys-hint kbd {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.6rem;
  height: 1.55rem;
  padding: 0 0.35rem;
  border-radius: 6px;
  border: 1px solid rgba(15, 23, 42, 0.12);
  background: #fff;
  box-shadow: 0 1px 0 rgba(15, 23, 42, 0.06);
  font-size: 0.78rem;
  font-family: inherit;
  color: #1c1c1e;
}
.legal-keys-hint a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.legal-links a.is-legal-current,
.footer-legal a.is-legal-current {
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.footer-legal a.is-legal-current {
  color: inherit;
}

/* Contact form multi-step wizard */
.contact-wizard {
  position: relative;
}
.contact-wizard-tabs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.5rem;
  margin: 0 0 0.85rem;
}
.contact-wizard-tab {
  appearance: none;
  border: 1px solid rgba(15, 23, 42, 0.1);
  background: rgba(120, 120, 128, 0.06);
  border-radius: 14px;
  padding: 0.7rem 0.75rem;
  display: flex;
  align-items: center;
  gap: 0.65rem;
  text-align: left;
  cursor: pointer;
  transition: border-color 0.18s ease, background 0.18s ease, box-shadow 0.18s ease, opacity 0.18s ease;
  color: inherit;
  font: inherit;
}
.contact-wizard-tab:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}
.contact-wizard-tab.is-active {
  background: #fff;
  border-color: rgba(0, 113, 227, 0.35);
  box-shadow: 0 0 0 3px rgba(0, 113, 227, 0.1);
}
.contact-wizard-tab.is-complete:not(.is-active) {
  border-color: rgba(13, 122, 77, 0.28);
  background: rgba(13, 122, 77, 0.06);
}
.contact-wizard-tab-num {
  flex: 0 0 auto;
  width: 1.85rem;
  height: 1.85rem;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  background: rgba(15, 23, 42, 0.08);
  color: #475569;
}
.contact-wizard-tab.is-active .contact-wizard-tab-num {
  background: #0071e3;
  color: #fff;
}
.contact-wizard-tab.is-complete:not(.is-active) .contact-wizard-tab-num {
  background: #0d7a4d;
  color: #fff;
}
.contact-wizard-tab-copy {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  min-width: 0;
}
.contact-wizard-tab-title {
  font-size: 0.9rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  line-height: 1.2;
}
.contact-wizard-tab-sub {
  font-size: 0.72rem;
  color: #6e6e73;
  line-height: 1.25;
}
.contact-wizard-hint {
  margin: 0 0 1rem;
  font-size: 0.8rem;
  line-height: 1.4;
  color: #6e6e73;
}
.contact-wizard-step[hidden] {
  display: none !important;
}
.contact-wizard-step.is-active {
  animation: contactWizardIn 0.28s ease;
}
.contact-wizard-nav {
  display: flex;
  justify-content: flex-end;
  margin-top: 0.85rem;
}
.contact-wizard-nav--split {
  justify-content: space-between;
  gap: 0.65rem;
  flex-wrap: wrap;
}
.contact-wizard-nav .btn {
  min-height: 2.75rem;
}

/* Contact wizard – Galmand-style arrow “Weiter” (gold Academy) */
.contact-wizard-nav .btn-wizard-next {
  --btn-next-bg: #12161d;
  --btn-next-bg-hover: #1a2030;
  --btn-next-gold: #d4af37;
  --btn-next-gold-deep: #b8922a;
  --btn-next-gold-soft: #f0d78c;
  --btn-next-ink: #0b0d10;
  appearance: none;
  border: 1px solid rgba(212, 175, 55, 0.45);
  background: var(--btn-next-bg);
  color: var(--btn-next-gold-soft);
  border-radius: 999px;
  padding: 0.2rem 0.2rem 0.2rem 1.15rem;
  min-height: 3rem;
  display: inline-flex;
  align-items: center;
  gap: 0.85rem;
  cursor: pointer;
  font: inherit;
  font-weight: 700;
  font-size: 0.95rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  position: relative;
  overflow: hidden;
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.06) inset,
    0 10px 28px rgba(0, 0, 0, 0.28);
  transition:
    border-color 0.28s ease,
    background 0.28s ease,
    box-shadow 0.28s ease,
    transform 0.28s ease,
    opacity 0.2s ease;
}
.contact-wizard-nav .btn-wizard-next__label {
  position: relative;
  z-index: 1;
  padding-right: 0.15rem;
  transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1), color 0.28s ease;
}
.contact-wizard-nav .btn-wizard-next__circle {
  position: relative;
  z-index: 1;
  flex: 0 0 auto;
  width: 2.55rem;
  height: 2.55rem;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(145deg, var(--btn-next-gold-soft) 0%, var(--btn-next-gold) 48%, var(--btn-next-gold-deep) 100%);
  box-shadow:
    0 0 0 1px rgba(255, 255, 255, 0.2) inset,
    0 6px 16px rgba(184, 146, 42, 0.35);
  transition:
    transform 0.4s cubic-bezier(0.4, 0, 0.2, 1),
    box-shadow 0.35s ease,
    background 0.35s ease;
}
/* Arrow (two bars forming > ) */
.contact-wizard-nav .btn-wizard-next__arrow {
  position: relative;
  display: block;
  width: 0.72rem;
  height: 0.72rem;
  transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}
.contact-wizard-nav .btn-wizard-next__arrow::before,
.contact-wizard-nav .btn-wizard-next__arrow::after {
  content: "";
  position: absolute;
  left: 0;
  width: 100%;
  height: 2px;
  border-radius: 2px;
  background: var(--btn-next-ink);
  transform-origin: right center;
}
.contact-wizard-nav .btn-wizard-next__arrow::before {
  top: calc(50% - 1px);
  transform: rotate(40deg);
}
.contact-wizard-nav .btn-wizard-next__arrow::after {
  top: calc(50% - 1px);
  transform: rotate(-40deg);
}
/* Hover / focus – Galmand-style motion */
.contact-wizard-nav .btn-wizard-next:hover:not(:disabled),
.contact-wizard-nav .btn-wizard-next:focus-visible:not(:disabled) {
  background: var(--btn-next-bg-hover);
  border-color: rgba(212, 175, 55, 0.85);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.08) inset,
    0 12px 32px rgba(212, 175, 55, 0.22),
    0 0 0 3px rgba(212, 175, 55, 0.12);
  outline: none;
}
.contact-wizard-nav .btn-wizard-next:hover:not(:disabled) .btn-wizard-next__label,
.contact-wizard-nav .btn-wizard-next:focus-visible:not(:disabled) .btn-wizard-next__label {
  transform: translateX(3px);
  color: #fff8e1;
}
.contact-wizard-nav .btn-wizard-next:hover:not(:disabled) .btn-wizard-next__circle,
.contact-wizard-nav .btn-wizard-next:focus-visible:not(:disabled) .btn-wizard-next__circle {
  transform: translateX(4px) scale(1.06);
  box-shadow:
    0 0 0 1px rgba(255, 255, 255, 0.28) inset,
    0 8px 22px rgba(212, 175, 55, 0.5);
  background: linear-gradient(145deg, #fff0b8 0%, var(--btn-next-gold) 45%, #9a7b1a 100%);
}
.contact-wizard-nav .btn-wizard-next:hover:not(:disabled) .btn-wizard-next__arrow,
.contact-wizard-nav .btn-wizard-next:focus-visible:not(:disabled) .btn-wizard-next__arrow {
  transform: translateX(3px);
  animation: btnWizardNextArrow 0.7s cubic-bezier(0.4, 0, 0.2, 1) infinite alternate;
}
.contact-wizard-nav .btn-wizard-next:active:not(:disabled) {
  transform: translateY(1px) scale(0.99);
}
.contact-wizard-nav .btn-wizard-next:disabled {
  opacity: 0.42;
  cursor: not-allowed;
  filter: grayscale(0.25);
  box-shadow: none;
}
@keyframes btnWizardNextArrow {
  from { transform: translateX(0); }
  to { transform: translateX(5px); }
}
@media (prefers-reduced-motion: reduce) {
  .contact-wizard-nav .btn-wizard-next,
  .contact-wizard-nav .btn-wizard-next__label,
  .contact-wizard-nav .btn-wizard-next__circle,
  .contact-wizard-nav .btn-wizard-next__arrow {
    transition: none !important;
    animation: none !important;
  }
  .contact-wizard-nav .btn-wizard-next:hover:not(:disabled) .btn-wizard-next__arrow {
    animation: none !important;
    transform: none;
  }
}

.contact-wizard .btn-contact-submit:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
@keyframes contactWizardIn {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: none; }
}
@media (max-width: 520px) {
  .contact-wizard-tabs { grid-template-columns: 1fr; }
  .contact-wizard-nav--split { flex-direction: column-reverse; }
  .contact-wizard-nav--split .btn { width: 100%; }
  .contact-wizard-nav .btn-wizard-next { width: 100%; justify-content: space-between; padding-left: 1.25rem; }
}

/* Partner overview – alternating feature cards */
.section-partner-feature .partner-tier-heading {
  margin-top: 2.25rem;
  margin-bottom: 1.1rem;
}
.partner-feature-list {
  display: grid;
  gap: 1.25rem;
  margin: 0 0 2rem;
}
.partner-feature-card {
  display: grid;
  grid-template-columns: minmax(180px, 0.9fr) minmax(0, 1.35fr);
  gap: 0;
  align-items: stretch;
  overflow: hidden;
  border-radius: 1.15rem;
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(255, 255, 255, 0.045);
  box-shadow: 0 14px 40px rgba(0, 0, 0, 0.16);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
.partner-feature-card.is-reverse {
  grid-template-columns: minmax(0, 1.35fr) minmax(180px, 0.9fr);
}
.partner-feature-card.is-reverse .partner-feature-media {
  order: 2;
}
.partner-feature-card.is-reverse .partner-feature-body {
  order: 1;
}
.partner-feature-media {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 180px;
  padding: 1.5rem;
  background: rgba(255, 255, 255, 0.94);
}
.partner-feature-logo-panel {
  width: 100%;
  display: grid;
  place-items: center;
}
.partner-feature-logo {
  max-width: min(100%, 260px);
  max-height: 110px;
  width: auto;
  height: auto;
  object-fit: contain;
  display: block;
}
.partner-feature-logo-fallback {
  font-family: Oswald, sans-serif;
  font-size: 1.35rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #0f172a;
  text-align: center;
}
.partner-feature-body {
  padding: 1.5rem 1.6rem 1.55rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.45rem;
  text-align: left;
}
.partner-feature-tier {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--gold, #d4af37);
}
.partner-feature-name {
  margin: 0;
  font-family: Oswald, sans-serif;
  font-size: clamp(1.35rem, 2.4vw, 1.75rem);
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  line-height: 1.15;
  color: var(--white, #fff);
}
.partner-feature-desc {
  margin: 0.15rem 0 0;
  font-size: 0.98rem;
  line-height: 1.6;
  color: var(--gray, #a8b3c4);
}
.partner-feature-desc--muted {
  font-style: italic;
  opacity: 0.85;
}
.partner-feature-link {
  display: inline-flex;
  align-self: flex-start;
  margin-top: 0.65rem;
  padding: 0.45rem 0.85rem;
  border-radius: 999px;
  border: 1px solid rgba(212, 175, 55, 0.45);
  color: var(--gold, #d4af37);
  text-decoration: none;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  transition: background 0.18s ease, color 0.18s ease, border-color 0.18s ease;
}
.partner-feature-link:hover {
  background: rgba(212, 175, 55, 0.14);
  border-color: rgba(212, 175, 55, 0.7);
}

/* Light theme */
body:not(.theme-academy-nights) .partner-feature-card,
body.theme-academy-days .partner-feature-card {
  background: rgba(15, 23, 42, 0.03);
  border-color: rgba(15, 23, 42, 0.08);
  box-shadow: 0 12px 32px rgba(15, 23, 42, 0.06);
}
body:not(.theme-academy-nights) .partner-feature-name,
body.theme-academy-days .partner-feature-name {
  color: #0f172a;
}
body:not(.theme-academy-nights) .partner-feature-desc,
body.theme-academy-days .partner-feature-desc {
  color: #475569;
}
body:not(.theme-academy-nights) .partner-feature-media,
body.theme-academy-days .partner-feature-media {
  background: #fff;
  border-right: 1px solid rgba(15, 23, 42, 0.06);
}
body:not(.theme-academy-nights) .partner-feature-card.is-reverse .partner-feature-media,
body.theme-academy-days .partner-feature-card.is-reverse .partner-feature-media {
  border-right: 0;
  border-left: 1px solid rgba(15, 23, 42, 0.06);
}

.page-partner .section-partner-feature > .container {
  text-align: initial;
}
.page-partner .section-partner-feature .partner-tier-heading,
.page-partner .section-partner-feature .page-title {
  text-align: center;
}

@media (max-width: 800px) {
  .partner-feature-card,
  .partner-feature-card.is-reverse {
    grid-template-columns: 1fr;
  }
  .partner-feature-card.is-reverse .partner-feature-media,
  .partner-feature-card.is-reverse .partner-feature-body {
    order: initial;
  }
  .partner-feature-media {
    min-height: 140px;
    padding: 1.25rem;
  }
  .partner-feature-body {
    padding: 1.25rem 1.2rem 1.35rem;
  }
  body:not(.theme-academy-nights) .partner-feature-media,
  body.theme-academy-days .partner-feature-media,
  body:not(.theme-academy-nights) .partner-feature-card.is-reverse .partner-feature-media,
  body.theme-academy-days .partner-feature-card.is-reverse .partner-feature-media {
    border-left: 0;
    border-right: 0;
    border-bottom: 1px solid rgba(15, 23, 42, 0.06);
  }
}

/* Contact wizard auto-forward countdown (layered) */
html.contact-wizard-countdown-open,
body.contact-wizard-countdown-open {
  overflow: hidden;
}
.contact-wizard-countdown {
  position: fixed;
  inset: 0;
  z-index: 10040;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
}
.contact-wizard-countdown[hidden] {
  display: none !important;
}
.contact-wizard-countdown-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(8, 10, 14, 0.48);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  animation: contactWizardCdFade 0.25s ease;
}
.contact-wizard-countdown-dialog {
  position: relative;
  z-index: 1;
  width: min(400px, 100%);
  padding: 1.35rem 1.35rem 1.25rem;
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.98);
  border: 1px solid rgba(15, 23, 42, 0.08);
  box-shadow: 0 24px 70px rgba(0, 0, 0, 0.28);
  text-align: center;
  color: #0f172a;
  animation: contactWizardCdIn 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.contact-wizard-countdown-kicker {
  margin: 0 0 0.4rem;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #0071e3;
}
.contact-wizard-countdown-dialog h3 {
  margin: 0 0 0.55rem;
  font-size: 1.15rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.25;
}
.contact-wizard-countdown-text {
  margin: 0 0 1rem;
  font-size: 0.9rem;
  line-height: 1.5;
  color: #475569;
}
.contact-wizard-countdown-ring {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 5.5rem;
  height: 5.5rem;
  margin: 0 auto 1.1rem;
  border-radius: 999px;
  border: 3px solid rgba(0, 113, 227, 0.2);
  background: radial-gradient(circle at 40% 35%, #fff, rgba(0, 113, 227, 0.08));
  box-shadow: 0 0 0 6px rgba(0, 113, 227, 0.06);
}
.contact-wizard-countdown-num {
  font-size: 2rem;
  font-weight: 800;
  line-height: 1;
  color: #0071e3;
  letter-spacing: -0.03em;
}
.contact-wizard-countdown-unit {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #64748b;
  margin-top: 0.15rem;
}
.contact-wizard-countdown-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: center;
}
@keyframes contactWizardCdFade {
  from { opacity: 0; }
  to { opacity: 1; }
}
@keyframes contactWizardCdIn {
  from { opacity: 0; transform: translateY(10px) scale(0.98); }
  to { opacity: 1; transform: none; }
}
body.theme-academy-nights .contact-wizard-countdown-dialog {
  background: #12151c;
  color: #f1f5f9;
  border-color: rgba(255, 255, 255, 0.1);
}
body.theme-academy-nights .contact-wizard-countdown-text {
  color: #94a3b8;
}
body.theme-academy-nights .contact-wizard-countdown-dialog h3 {
  color: #f8fafc;
}


/* Partner corporate application – light modern (aligned with main page) */
body.page-partner-corporate,
body.page-partner-corporate main {
  background: #f5f5f7;
  color: #0f172a;
}
.page-partner-corporate {
  --pca-void: #f5f5f7;
  --pca-panel: #ffffff;
  --pca-line: rgba(15, 23, 42, 0.1);
  --pca-text: #0f172a;
  --pca-muted: rgba(15, 23, 42, 0.58);
  --pca-soft: rgba(15, 23, 42, 0.74);
  --pca-metal: #b8860b;
  --pca-metal-hi: #d4af37;
  --pca-ink: #ffffff;
}

.pca-hero {
  position: relative;
  padding: clamp(3.5rem, 8vw, 6rem) 0 clamp(2.5rem, 5vw, 3.5rem);
  background:
    radial-gradient(ellipse 70% 80% at 85% 20%, rgba(212, 175, 55, 0.16), transparent 55%),
    linear-gradient(165deg, #ffffff 0%, var(--pca-void) 70%);
  color: var(--pca-text);
  overflow: hidden;
}
.pca-hero-veil {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(245, 245, 247, 0.35), transparent 55%);
  pointer-events: none;
}
.pca-hero-inner { position: relative; z-index: 1; max-width: 46rem; }
.pca-eyebrow {
  margin: 0 0 1rem;
  font-size: 0.7rem;
  font-weight: 650;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--pca-metal);
}
.pca-display {
  margin: 0 0 1.15rem;
  font-size: clamp(2.5rem, 6vw, 3.9rem);
  font-weight: 500;
  letter-spacing: -0.03em;
  line-height: 0.98;
}
.pca-display em {
  font-style: italic;
  font-weight: 400;
  color: var(--pca-soft);
}
.pca-lede {
  margin: 0 0 1.75rem;
  font-size: 1.05rem;
  line-height: 1.65;
  color: var(--pca-soft);
  max-width: 38rem;
}
.pca-lede strong { color: var(--pca-text); font-weight: 600; }
.pca-process {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem 1.25rem;
}
.pca-process li {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--pca-muted);
}
.pca-process li span {
  color: var(--pca-metal);
  font-weight: 700;
}
.pca-process li.is-current {
  color: var(--pca-text);
}

.pca-section {
  padding: clamp(2.5rem, 5vw, 4rem) 0 4.5rem;
  background: linear-gradient(180deg, #f8f8fa 0%, #f5f5f7 100%);
  color: var(--pca-text);
}
.pca-layout {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.35fr);
  gap: clamp(1.5rem, 3vw, 2.5rem);
  align-items: start;
}
@media (max-width: 960px) {
  .pca-layout { grid-template-columns: 1fr; }
}

.pca-aside-card {
  position: sticky;
  top: 1.25rem;
  padding: 1.6rem 1.45rem 1.55rem;
  border: 1px solid var(--pca-line);
  border-radius: 16px;
  background: #ffffff;
  box-shadow: 0 12px 36px rgba(15, 23, 42, 0.06);
}
.pca-aside-kicker {
  margin: 0 0 0.65rem;
  font-size: 0.68rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--pca-metal);
  font-weight: 650;
}
.pca-aside-card h2 {
  margin: 0 0 1.25rem;
  font-size: 1.45rem;
  font-weight: 500;
  letter-spacing: -0.02em;
  line-height: 1.15;
}
.pca-aside-block {
  padding: 0.95rem 0;
  border-top: 1px solid var(--pca-line);
}
.pca-aside-block h3 {
  margin: 0 0 0.4rem;
  font-size: 0.95rem;
  font-weight: 600;
  letter-spacing: 0.02em;
}
.pca-aside-block p {
  margin: 0;
  font-size: 0.88rem;
  line-height: 1.55;
  color: var(--pca-muted);
}
.pca-aside-list {
  list-style: none;
  margin: 1rem 0 1.25rem;
  padding: 0.9rem 0 0;
  border-top: 1px solid var(--pca-line);
  display: grid;
  gap: 0.45rem;
}
.pca-aside-list li {
  position: relative;
  padding-left: 0.95rem;
  font-size: 0.82rem;
  color: var(--pca-soft);
  line-height: 1.4;
}
.pca-aside-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.55em;
  width: 6px;
  height: 1px;
  background: var(--pca-metal);
}
.pca-aside-link {
  display: inline-flex;
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--pca-metal);
  text-decoration: none;
  border-bottom: 1px solid rgba(196, 165, 116, 0.35);
  padding-bottom: 0.15rem;
}
.pca-aside-link:hover { color: var(--pca-metal-hi); }

.pca-form {
  border: 1px solid var(--pca-line);
  border-radius: 16px;
  background: #ffffff;
  padding: clamp(1.25rem, 3vw, 1.85rem);
  box-shadow: 0 16px 44px rgba(15, 23, 42, 0.08);
}
.pca-steps {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.4rem;
  margin-bottom: 1rem;
}
.pca-step {
  appearance: none;
  border: 1px solid var(--pca-line);
  background: #f8fafc;
  color: var(--pca-muted);
  border-radius: 10px;
  padding: 0.65rem 0.45rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.2rem;
  cursor: pointer;
  font: inherit;
  transition: border-color 0.2s ease, color 0.2s ease, background 0.2s ease;
}
.pca-step span {
  font-size: 0.65rem;
  letter-spacing: 0.14em;
  color: var(--pca-metal);
  font-weight: 700;
}
.pca-step.is-active {
  border-color: rgba(196, 165, 116, 0.55);
  color: var(--pca-text);
  background: rgba(196, 165, 116, 0.08);
}
.pca-step.is-done:not(.is-active) {
  border-color: rgba(196, 165, 116, 0.28);
  color: var(--pca-soft);
}
.pca-step:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}
.pca-hint {
  margin: 0 0 1.25rem;
  font-size: 0.82rem;
  color: var(--pca-muted);
  line-height: 1.45;
}
.pca-panel[hidden] { display: none !important; }
.pca-panel.is-active { animation: pcaIn 0.28s ease; }
.pca-panel-head {
  margin-bottom: 1.25rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--pca-line);
}
.pca-panel-head h2 {
  margin: 0 0 0.45rem;
  font-size: 1.35rem;
  font-weight: 500;
  letter-spacing: -0.02em;
}
.pca-panel-head p {
  margin: 0;
  font-size: 0.92rem;
  color: var(--pca-muted);
  line-height: 1.5;
}

.pca-intent-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
}
@media (max-width: 640px) {
  .pca-intent-grid { grid-template-columns: 1fr; }
  .pca-steps { grid-template-columns: repeat(2, 1fr); }
}
.pca-intent {
  position: relative;
  display: grid;
  gap: 0.4rem;
  padding: 1.15rem 1.05rem 1.1rem;
  border: 1px solid var(--pca-line);
  border-radius: 3px;
  background: #f8fafc;
  cursor: pointer;
  transition: border-color 0.2s ease, background 0.2s ease, transform 0.2s ease;
}
.pca-intent input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.pca-intent.is-selected,
.pca-intent:has(input:checked) {
  border-color: rgba(196, 165, 116, 0.55);
  background: rgba(196, 165, 116, 0.07);
  transform: translateY(-1px);
}
.pca-intent-index {
  font-size: 0.7rem;
  letter-spacing: 0.16em;
  color: var(--pca-metal);
  font-weight: 700;
}
.pca-intent-title {
  font-size: 1.1rem;
  font-weight: 600;
  letter-spacing: -0.01em;
}
.pca-intent-text {
  font-size: 0.82rem;
  line-height: 1.45;
  color: var(--pca-muted);
}

.pca-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.85rem 0.9rem;
}
.pca-field-full { grid-column: 1 / -1; }
@media (max-width: 640px) {
  .pca-grid { grid-template-columns: 1fr; }
}
.pca-field {
  display: grid;
  gap: 0.35rem;
  font-size: 0.78rem;
  font-weight: 650;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--pca-muted);
}
.pca-field input,
.pca-field textarea,
.pca-field select,
.pca-captcha input {
  width: 100%;
  min-height: 2.85rem;
  padding: 0.75rem 0.9rem;
  border-radius: 12px;
  border: 1px solid rgba(15, 23, 42, 0.14);
  background: #ffffff;
  color: var(--pca-text);
  font: inherit;
  font-size: 0.98rem;
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
  outline: none;
  transition: border-color 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}
.pca-field textarea { min-height: 6.5rem; resize: vertical; }
.pca-field input::placeholder,
.pca-field textarea::placeholder { color: rgba(15, 23, 42, 0.38); }
.pca-field input:focus,
.pca-field textarea:focus,
.pca-field select:focus,
.pca-captcha input:focus {
  border-color: rgba(184, 134, 11, 0.55);
  box-shadow: 0 0 0 3px rgba(212, 175, 55, 0.18);
  background: #fff;
}

.pca-subhead {
  margin: 0 0 0.75rem;
  font-size: 0.72rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--pca-metal);
  font-weight: 700;
}
.pca-choices {
  border: 0;
  margin: 0 0 1rem;
  padding: 0;
  display: grid;
  gap: 0.5rem;
}
.pca-choice {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.75rem;
  align-items: start;
  padding: 0.85rem 0.95rem;
  border: 1px solid var(--pca-line);
  border-radius: 3px;
  cursor: pointer;
  background: #f8fafc;
}
.pca-choice:has(input:checked) {
  border-color: rgba(196, 165, 116, 0.5);
  background: rgba(196, 165, 116, 0.07);
}
.pca-choice input { margin-top: 0.2rem; accent-color: #c4a574; }
.pca-choice strong {
  display: block;
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--pca-text);
  letter-spacing: 0;
  text-transform: none;
}
.pca-choice em {
  display: block;
  margin-top: 0.2rem;
  font-style: normal;
  font-size: 0.82rem;
  color: var(--pca-muted);
  line-height: 1.4;
}
.pca-notice {
  margin: 0 0 1rem;
  padding: 0.95rem 1rem;
  border-left: 2px solid var(--pca-metal);
  background: rgba(196, 165, 116, 0.07);
}
.pca-notice strong {
  display: block;
  margin-bottom: 0.3rem;
  font-size: 0.78rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--pca-metal);
}
.pca-notice p {
  margin: 0;
  font-size: 0.88rem;
  line-height: 1.5;
  color: var(--pca-soft);
}
.pca-muted { color: var(--pca-muted); font-size: 0.9rem; }

.pca-review {
  margin-bottom: 1.15rem;
  border: 1px solid var(--pca-line);
  border-radius: 3px;
  background: #f8fafc;
  overflow: hidden;
}
.pca-review-dl {
  margin: 0;
  display: grid;
}
.pca-review-dl > div {
  display: grid;
  grid-template-columns: 8.5rem 1fr;
  gap: 0.75rem;
  padding: 0.75rem 1rem;
  border-bottom: 1px solid var(--pca-line);
}
.pca-review-dl > div:last-child { border-bottom: 0; }
.pca-review-dl dt {
  margin: 0;
  font-size: 0.68rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--pca-muted);
  font-weight: 650;
}
.pca-review-dl dd {
  margin: 0;
  font-size: 0.92rem;
  color: var(--pca-text);
  line-height: 1.45;
  white-space: pre-wrap;
}
@media (max-width: 560px) {
  .pca-review-dl > div { grid-template-columns: 1fr; gap: 0.25rem; }
}

.pca-check {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.7rem;
  align-items: start;
  margin: 0 0 1.1rem;
  font-size: 0.88rem;
  line-height: 1.5;
  color: var(--pca-soft);
}
.pca-check input { margin-top: 0.2rem; accent-color: #c4a574; }
.pca-check a { color: var(--pca-metal); }

.pca-captcha {
  margin-bottom: 1.1rem;
  border: 1px solid var(--pca-line) !important;
  background: #f8fafc !important;
}
.pca-captcha .heimdall-captcha-label,
.pca-captcha .heimdall-security { color: var(--pca-muted); }

.pca-nav {
  display: flex;
  justify-content: flex-end;
  gap: 0.6rem;
  margin-top: 1.35rem;
  flex-wrap: wrap;
}
.pca-nav-split { justify-content: space-between; }
.pca-btn {
  appearance: none;
  border: 1px solid transparent;
  border-radius: 2px;
  min-height: 2.85rem;
  padding: 0.7rem 1.25rem;
  font: inherit;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  cursor: pointer;
  transition: transform 0.2s ease, background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}
.pca-btn-primary {
  background: linear-gradient(180deg, var(--pca-metal-hi), var(--pca-metal));
  color: #16140f;
  border-color: rgba(255, 255, 255, 0.08);
}
.pca-btn-primary:hover { transform: translateY(-1px); filter: brightness(1.04); }
.pca-btn-ghost {
  background: #ffffff;
  color: var(--pca-text);
  border-color: var(--pca-line);
}
.pca-btn-ghost:hover { border-color: rgba(15, 23, 42, 0.28); background: rgba(15, 23, 42, 0.04); }
.pca-btn-submit { min-width: 14rem; }
.pca-status {
  margin-top: 1rem !important;
  font-size: 0.9rem !important;
}
.pca-status.ok { color: #047857 !important; }
.pca-status.err { color: #b91c1c !important; }

/* Corporate form follows light main-page concept (no force-dark override) */

/* Sponsoring package page – same system */
.pca-pricing-wrap .partner-pricing-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 0.85rem;
  margin: 1.25rem 0;
}
.pca-pricing-wrap .partner-pricing-card {
  display: block;
  cursor: pointer;
}
.pca-pricing-wrap .partner-pricing-card input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.pca-pricing-wrap .partner-pricing-card-inner {
  height: 100%;
  padding: 1.25rem 1.15rem 1.2rem;
  border: 1px solid var(--pca-line);
  border-radius: 3px;
  background: #ffffff;
  transition: border-color 0.2s ease, background 0.2s ease, transform 0.2s ease;
  color: var(--pca-text);
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.05);
}
.pca-pricing-wrap .partner-pricing-card:has(input:checked) .partner-pricing-card-inner,
.pca-pricing-wrap .partner-pricing-card input:checked + .partner-pricing-card-inner {
  border-color: rgba(196, 165, 116, 0.55);
  background: rgba(196, 165, 116, 0.08);
  transform: translateY(-2px);
}
.pca-pricing-wrap .partner-pricing-card-inner h3 {
  margin: 0 0 0.4rem;
  font-size: 1.15rem;
  font-weight: 600;
  letter-spacing: 0.02em;
}
.pca-pricing-wrap .partner-pricing-from {
  margin: 0 0 0.65rem;
  color: var(--pca-metal);
  font-weight: 700;
  letter-spacing: 0.04em;
}
.pca-pricing-wrap .partner-pricing-card-inner p {
  margin: 0;
  font-size: 0.88rem;
  line-height: 1.5;
  color: var(--pca-muted);
}
.pca-pricing-wrap .partner-pricing-summary {
  margin: 1rem 0;
  font-size: 1rem;
  color: var(--pca-metal-hi);
  font-weight: 600;
}

@keyframes pcaIn {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: none; }
}


/* === AAPL Footer Directory === */
/* Minimal Apple-inspired expandable footer (AAPL_DC) */
.site-footer.site-footer--apple {
  padding: 0;
  text-align: left;
  color: #86868b;
  font-size: 0.75rem;
  line-height: 1.33337;
  font-weight: 400;
  letter-spacing: -0.01em;
  background: #0a0a0c;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}
.site-footer.site-footer--apple a {
  color: #a1a1a6;
  text-decoration: none;
  transition: color 0.18s ease;
}
.site-footer.site-footer--apple a:hover {
  color: #f5f5f7;
  text-decoration: underline;
  text-underline-offset: 0.18em;
  text-decoration-thickness: 1px;
}
.site-footer.site-footer--apple strong,
.site-footer.site-footer--apple span {
  color: inherit;
}
.footer-shell {
  max-width: 980px;
  margin: 0 auto;
  padding: 1.15rem 1.375rem 0.85rem;
}
.footer-top {
  padding: 0.35rem 0 1rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  margin-bottom: 0.35rem;
}
.footer-brand-block {
  width: 100%;
}
.footer-brand-line {
  margin: 0;
  display: flex;
  flex-wrap: nowrap;
  align-items: baseline;
  gap: 0.4rem 0.55rem;
  white-space: nowrap;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  font-size: 0.75rem;
  line-height: 1.35;
  color: #86868b;
  scrollbar-width: none;
}
.footer-brand-line::-webkit-scrollbar {
  display: none;
}
.footer-brand-name {
  margin: 0;
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: -0.01em;
  color: #f5f5f7;
  font-family: inherit;
  text-transform: none;
  flex: 0 0 auto;
}
.footer-brand-sep {
  color: #6e6e73;
  flex: 0 0 auto;
  user-select: none;
}
.footer-brand-meta {
  margin: 0;
  color: #86868b;
  font-size: 0.75rem;
  flex: 0 0 auto;
}
.footer-brand-mail {
  display: inline;
  margin: 0;
  font-size: 0.75rem;
  color: #d4af37 !important;
  flex: 0 0 auto;
}
.footer-brand-mail:hover {
  color: #f0d78c !important;
}

/* Directory – accordion mobile / columns desktop */
.footer-directory {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  margin: 0;
  padding: 0;
}
.footer-dir {
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  margin: 0;
  padding: 0;
}
.footer-dir-summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  min-height: 2.75rem;
  padding: 0.7rem 0;
  color: #f5f5f7;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: -0.01em;
  user-select: none;
  -webkit-user-select: none;
}
.footer-dir-summary::-webkit-details-marker { display: none; }
.footer-dir-summary::marker { content: ""; }
.footer-dir-title {
  color: #f5f5f7;
}
.footer-dir-chevron {
  width: 0.55rem;
  height: 0.55rem;
  border-right: 1.5px solid #86868b;
  border-bottom: 1.5px solid #86868b;
  transform: rotate(45deg);
  transition: transform 0.22s ease, border-color 0.22s ease;
  flex-shrink: 0;
  margin-right: 0.2rem;
  margin-bottom: 0.15rem;
}
.footer-dir[open] .footer-dir-chevron {
  transform: rotate(225deg);
  margin-bottom: -0.1rem;
  border-color: #d4af37;
}
.footer-dir-summary:hover .footer-dir-chevron {
  border-color: #d4af37;
}
.footer-dir-list {
  list-style: none;
  margin: 0;
  padding: 0 0 0.85rem;
  display: grid;
  gap: 0.55rem;
}
.footer-dir-list a {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 400;
  color: #a1a1a6;
  line-height: 1.33337;
}
.footer-dir-list a.is-legal-current {
  color: #f5f5f7;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 0.18em;
}

.site-footer--apple .footer-copy-bar {
  border-top: 0;
  margin-top: 0.85rem;
  padding: 0.85rem 0 0.25rem;
  display: grid;
  gap: 0.35rem;
  justify-items: start;
  text-align: left;
}
.site-footer--apple .footer-copy {
  border-top: 0;
  padding-top: 0;
  margin: 0;
  font-size: 0.7rem;
  color: #6e6e73;
  line-height: 1.4;
}
.site-footer--apple .footer-netcore {
  font-size: 0.7rem;
  opacity: 0.9;
  color: #6e6e73;
}

/* Desktop: multi-column, always expanded (Apple directory) */
@media (min-width: 834px) {
  .footer-shell {
    padding: 1.35rem 1.375rem 1rem;
  }
  .footer-top {
    padding-bottom: 1.15rem;
    margin-bottom: 0.65rem;
  }
  .footer-directory {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1.25rem 1.5rem;
    padding: 0.35rem 0 0.5rem;
  }
  .footer-dir {
    border-bottom: 0;
  }
  .footer-dir-summary {
    min-height: 0;
    padding: 0 0 0.65rem;
    cursor: default;
    pointer-events: none;
  }
  .footer-dir-chevron {
    display: none;
  }
  .footer-dir-list {
    padding: 0;
    gap: 0.5rem;
  }
  /* Keep open state visual: content always visible via [open] attribute from JS;
     fallback if JS missing: force list visible */
  .footer-dir:not([open]) .footer-dir-list {
    display: grid;
  }
  .site-footer--apple .footer-copy-bar {
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    margin-top: 1.15rem;
    padding-top: 1rem;
  }
}
@media (min-width: 834px) and (max-width: 1023px) {
  .footer-directory {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (max-width: 833px) {
  .footer-dir:not([open]) .footer-dir-list {
    display: none;
  }
}
@media (prefers-reduced-motion: reduce) {
  .footer-dir-chevron {
    transition: none;
  }
}
/* === End AAPL Footer Directory === */


/* === Contact submit combo + SSC note === */
.contact-wizard-nav--submit {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.85rem;
  margin-top: 1.1rem;
}
.contact-submit-combo {
  display: flex;
  align-items: stretch;
  width: 100%;
  max-width: 100%;
  min-height: 3.1rem;
  border-radius: 999px;
  overflow: hidden;
  border: 1px solid rgba(212, 175, 55, 0.42);
  background: #12161d;
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.05) inset,
    0 10px 28px rgba(0, 0, 0, 0.22);
}
.contact-submit-combo__back {
  appearance: none;
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  min-width: 6.5rem;
  padding: 0 0.95rem 0 1rem;
  border: 0;
  border-right: 1px solid rgba(212, 175, 55, 0.28);
  background: rgba(212, 175, 55, 0.1);
  color: #f0d78c;
  font: inherit;
  font-size: 0.82rem;
  font-weight: 650;
  letter-spacing: 0.02em;
  cursor: pointer;
  transition: background 0.18s ease, color 0.18s ease;
}
.contact-submit-combo__back:hover,
.contact-submit-combo__back:focus-visible {
  background: rgba(212, 175, 55, 0.2);
  color: #fff8e1;
  outline: none;
}
.contact-submit-combo__back:active {
  background: rgba(212, 175, 55, 0.28);
}
.contact-submit-combo__back-chevron {
  width: 0.45rem;
  height: 0.45rem;
  border-left: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg);
  margin-right: 0.1rem;
}
.contact-submit-combo__back-text {
  line-height: 1;
}
.contact-submit-combo__send {
  appearance: none;
  flex: 1 1 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  min-width: 0;
  padding: 0.75rem 1.25rem;
  border: 0;
  background: linear-gradient(180deg, #e4c76a 0%, #d4af37 48%, #b8922a 100%);
  color: #0b0d10;
  font: inherit;
  font-size: 0.92rem;
  font-weight: 750;
  letter-spacing: 0.02em;
  cursor: pointer;
  transition: filter 0.18s ease, opacity 0.18s ease, box-shadow 0.18s ease;
}
.contact-submit-combo__send:hover:not(:disabled),
.contact-submit-combo__send:focus-visible:not(:disabled) {
  filter: brightness(1.05);
  outline: none;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.22);
}
.contact-submit-combo__send:active:not(:disabled) {
  filter: brightness(0.97);
}
.contact-submit-combo__send:disabled {
  opacity: 0.45;
  cursor: not-allowed;
  filter: grayscale(0.2);
}
.contact-submit-combo__send-label {
  white-space: nowrap;
}

/* Corporate SSC note under submit */
.contact-ssc-note {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.85rem;
  align-items: start;
  padding: 0.9rem 1rem;
  border-radius: 12px;
  border: 1px solid rgba(15, 23, 42, 0.1);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.92), rgba(248, 250, 252, 0.96));
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.7) inset, 0 8px 24px rgba(15, 23, 42, 0.06);
  color: #334155;
}
.contact-ssc-note__badge {
  flex: 0 0 auto;
  min-width: 2.5rem;
  height: 2.5rem;
  padding: 0 0.45rem;
  border-radius: 8px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #0b0d10;
  background: linear-gradient(145deg, #f0d78c, #d4af37 55%, #b8922a);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.35) inset;
}
.contact-ssc-note__content {
  min-width: 0;
}
.contact-ssc-note__title {
  margin: 0 0 0.25rem;
  font-size: 0.88rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: #0f172a;
  line-height: 1.25;
}
.contact-ssc-note__text {
  margin: 0;
  font-size: 0.8rem;
  line-height: 1.45;
  color: #475569;
}
.contact-ssc-note__checklist {
  list-style: none;
  margin: 0.55rem 0 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.45rem;
}
.contact-ssc-note__checklist li {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  padding: 0.22rem 0.55rem;
  border-radius: 999px;
  font-size: 0.7rem;
  font-weight: 650;
  letter-spacing: 0.01em;
  color: #334155;
  background: rgba(15, 23, 42, 0.05);
  border: 1px solid rgba(15, 23, 42, 0.08);
}
.contact-ssc-note__checklist li::before {
  content: "";
  width: 0.4rem;
  height: 0.4rem;
  border-radius: 999px;
  background: #d4af37;
  box-shadow: 0 0 0 2px rgba(212, 175, 55, 0.2);
}
@media (max-width: 520px) {
  .contact-submit-combo__back {
    min-width: 3.1rem;
    padding: 0 0.85rem;
  }
  .contact-submit-combo__back-text {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
  }
  .contact-submit-combo__send {
    font-size: 0.88rem;
    padding-inline: 1rem;
  }
  .contact-ssc-note {
    grid-template-columns: 1fr;
    gap: 0.65rem;
  }
}
/* === End contact submit combo === */


/* Camp order multi-step flow + children + slash tags */
.camp-os-flow {
  display: grid;
  gap: 0.75rem;
  margin: 0.85rem 0 1rem;
}
.camp-os-flow-head {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  align-items: baseline;
  flex-wrap: wrap;
}
.camp-os-flow-kicker {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 750;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #6e6e73;
}
.camp-os-flow-progress {
  margin: 0;
  font-size: 0.8rem;
  font-weight: 600;
  color: #9a7b1a;
}
.camp-os-flow-step {
  border-radius: 16px;
  border: 1px solid rgba(15, 23, 42, 0.1);
  background: rgba(255, 255, 255, 0.72);
  overflow: hidden;
  transition: box-shadow 0.2s ease, border-color 0.2s ease;
}
.camp-os-flow-step.is-active {
  border-color: rgba(212, 175, 55, 0.45);
  box-shadow: 0 0 0 1px rgba(212, 175, 55, 0.12), 0 10px 28px rgba(15, 23, 42, 0.06);
}
.camp-os-flow-step.is-done .camp-os-flow-step-head {
  cursor: pointer;
}
.camp-os-flow-step-head {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 0.75rem;
  align-items: center;
  padding: 0.85rem 1rem;
  background: rgba(15, 23, 42, 0.03);
}
.camp-os-flow-step-num {
  width: 1.85rem;
  height: 1.85rem;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.78rem;
  font-weight: 800;
  background: #0f172a;
  color: #fde68a;
}
.camp-os-flow-step.is-done .camp-os-flow-step-num {
  background: #0d7a4d;
  color: #fff;
}
.camp-os-flow-step-title {
  margin: 0;
  font-size: 0.98rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: #0f172a;
}
.camp-os-flow-step-sub {
  margin: 0.15rem 0 0;
  font-size: 0.78rem;
  color: #6e6e73;
}
.camp-os-flow-step-state {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #86868b;
}
.camp-os-flow-step.is-active .camp-os-flow-step-state {
  color: #9a7b1a;
}
.camp-os-flow-step.is-done .camp-os-flow-step-state {
  color: #0d7a4d;
}
.camp-os-flow-step-body {
  padding: 0.35rem 0.85rem 0.95rem;
}
.camp-os-flow-step.is-collapsed:not(.is-active) .camp-os-flow-step-body {
  display: none;
}
.camp-os-flow-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: flex-end;
  margin-top: 0.85rem;
}
.camp-os-flow-hint {
  margin: 0.55rem 0 0;
  font-size: 0.75rem;
  color: #6e6e73;
  line-height: 1.4;
}
.camp-os-fieldset-flat {
  border: 0;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 0.75rem;
}

/* Camp order age gate (5–14 concept) */
.camp-os-field-hint {
  font-style: normal;
  font-weight: 500;
  color: var(--gray, #64748b);
  font-size: 0.82em;
}
.camp-os-age-notice {
  margin: 0.75rem 0 1rem;
  padding: 0.9rem 1rem;
  border-radius: 0.75rem;
  border: 1px solid rgba(148, 163, 184, 0.35);
  background: rgba(15, 23, 42, 0.04);
  color: var(--gray, #475569);
  font-size: 0.92rem;
  line-height: 1.45;
}
.camp-os-age-notice strong {
  display: block;
  margin-bottom: 0.35rem;
  color: #0f172a;
  font-size: 0.98rem;
}
.camp-os-age-notice.is-age_too_young {
  border-color: rgba(14, 165, 233, 0.45);
  background: linear-gradient(180deg, rgba(14, 165, 233, 0.1), rgba(14, 165, 233, 0.04));
}
.camp-os-age-notice.is-age_too_old {
  border-color: rgba(201, 162, 39, 0.55);
  background: linear-gradient(180deg, rgba(201, 162, 39, 0.14), rgba(201, 162, 39, 0.05));
}
.camp-os-age-notice p { margin: 0.35rem 0 0; }
.camp-os-age-contact-link {
  display: inline-flex;
  margin-top: 0.35rem;
  font-weight: 600;
  color: #9a7b1a;
  text-decoration: underline;
}
.camp-os-child-age-msg {
  grid-column: 1 / -1;
  margin: 0.15rem 0 0;
  padding: 0.65rem 0.75rem;
  border-radius: 0.55rem;
  font-size: 0.86rem;
  line-height: 1.4;
  border: 1px solid rgba(148, 163, 184, 0.3);
  background: rgba(15, 23, 42, 0.03);
}
.camp-os-child-age-msg.is-age_too_young {
  border-color: rgba(14, 165, 233, 0.4);
  background: rgba(14, 165, 233, 0.08);
}
.camp-os-child-age-msg.is-age_too_old {
  border-color: rgba(201, 162, 39, 0.45);
  background: rgba(201, 162, 39, 0.1);
}
.camp-os-child-card.has-age-issue {
  border-color: rgba(201, 162, 39, 0.55);
  box-shadow: 0 0 0 1px rgba(201, 162, 39, 0.15);
}
body.theme-academy-nights .camp-os-age-notice strong,
body.theme-academy-nights .camp-os-child-age-msg strong {
  color: #f8fafc;
}
body.theme-academy-nights .camp-os-age-contact-link {
  color: #f0d78c;
}

.camp-os-children-lead {
  margin: 0 0 0.85rem;
  font-size: 0.86rem;
  line-height: 1.45;
  color: #475569;
}
.camp-os-children-slots {
  display: grid;
  gap: 0.85rem;
}
.camp-os-child-card {
  padding: 0.9rem 0.95rem;
  border-radius: 14px;
  border: 1px solid rgba(15, 23, 42, 0.1);
  background: rgba(248, 250, 252, 0.9);
}
.camp-os-child-card-title {
  margin: 0 0 0.65rem;
  font-size: 0.88rem;
  font-weight: 750;
  color: #0f172a;
}
.camp-os-child-grid {
  display: grid;
  grid-template-columns: 1.2fr 0.6fr 0.9fr;
  gap: 0.65rem;
}
@media (max-width: 720px) {
  .camp-os-child-grid { grid-template-columns: 1fr; }
}
.camp-os-field-span { grid-column: 1 / -1; }
.camp-os-trusted {
  grid-column: 1 / -1;
  display: flex;
  gap: 0.55rem;
  align-items: flex-start;
  padding: 0.65rem 0.75rem;
  border-radius: 12px;
  border: 1px solid rgba(184, 146, 42, 0.35);
  background: rgba(212, 175, 55, 0.1);
  font-size: 0.8rem;
  line-height: 1.4;
  color: #3f3f46;
}
.camp-os-trusted input { margin-top: 0.2rem; }

.camp-os-msg { margin-top: 1rem; }
.camp-os-msg-textarea,
.camp-os-msg textarea[data-msg-input],
.camp-os-msg textarea[name="notes"] {
  width: 100%;
  min-height: 12rem;
  height: 12rem;
  resize: vertical;
  box-sizing: border-box;
  padding: 0.85rem 1rem;
  border-radius: 14px;
  line-height: 1.5;
  font: inherit;
}

.camp-os-msg-help {
  display: block;
  margin-top: 0.2rem;
  font-size: 0.75rem;
  font-weight: 500;
  color: #6e6e73;
}
.camp-os-msg-help code {
  font-size: 0.72rem;
  padding: 0.08rem 0.3rem;
  border-radius: 4px;
  background: rgba(15, 23, 42, 0.06);
}
.camp-os-msg-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin: 0.45rem 0;
  min-height: 0;
}
.camp-os-chip {
  appearance: none;
  border: 0;
  border-radius: 999px;
  padding: 0.28rem 0.65rem;
  font-size: 0.75rem;
  font-weight: 700;
  cursor: pointer;
  line-height: 1.2;
}
.camp-os-chip--allergy { background: #fee2e2; color: #991b1b; }
.camp-os-chip--position { background: #dbeafe; color: #1e40af; }
.camp-os-chip--child { background: #dcfce7; color: #166534; }
.camp-os-chip--travel { background: #fef3c7; color: #92400e; }
.camp-os-chip.is-disabled { opacity: 0.55; cursor: not-allowed; }
.camp-os-msg-suggest {
  margin-top: 0.45rem;
  padding: 0.75rem;
  border-radius: 12px;
  border: 1px solid rgba(15, 23, 42, 0.1);
  background: #fff;
  box-shadow: 0 10px 30px rgba(15, 23, 42, 0.08);
}
.camp-os-msg-suggest-title {
  margin: 0 0 0.5rem;
  font-size: 0.78rem;
  font-weight: 750;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #64748b;
}
.camp-os-msg-cloud {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}
body.theme-academy-nights .camp-os-flow-step {
  background: rgba(22, 30, 43, 0.92);
  border-color: rgba(255, 255, 255, 0.08);
}
body.theme-academy-nights .camp-os-flow-step-title,
body.theme-academy-nights .camp-os-child-card-title {
  color: #f1f5f9;
}
body.theme-academy-nights .camp-os-child-card {
  background: rgba(15, 23, 42, 0.55);
  border-color: rgba(255, 255, 255, 0.08);
}


/* === Camps home feature + corporate tiles === */
.camps-home-layout.is-single {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: stretch;
}
.camps-home-layout.is-multi {
  grid-template-columns: minmax(260px, 0.9fr) minmax(0, 1.2fr);
  align-items: start;
}
.camps-home-cards {
  min-width: 0;
  display: flex;
  flex-direction: column;
}
.camps-home-layout.is-single .camps-home-cards,
.camps-home-layout.is-single .camps-home-overview {
  min-height: 100%;
}
.camps-home-layout.is-single .camps-home-feature {
  height: 100%;
}

/* Single camp – equal visual weight to overview */
.camps-home-feature {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid rgba(212, 175, 55, 0.28);
  background:
    linear-gradient(165deg, rgba(212, 175, 55, 0.08), rgba(255, 255, 255, 0.96) 42%);
  padding: 0;
}
body.theme-academy-nights .camps-home-feature {
  background: linear-gradient(165deg, rgba(212, 175, 55, 0.12), rgba(18, 24, 34, 0.96) 50%);
  border-color: rgba(212, 175, 55, 0.28);
}
.camps-home-feature-media {
  aspect-ratio: 16 / 9;
  max-height: 220px;
  overflow: hidden;
  background: rgba(15, 23, 42, 0.06);
}
.camps-home-feature-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.camps-home-feature-body {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  padding: 1.25rem 1.35rem 1.4rem;
  flex: 1;
}
.camps-home-feature-title {
  margin: 0;
  font-size: clamp(1.2rem, 2vw, 1.5rem);
  line-height: 1.2;
  letter-spacing: -0.02em;
}
.camps-home-feature-sub {
  margin: 0;
  font-size: 0.95rem;
  color: #6e6e73;
  line-height: 1.4;
}
.camps-home-feature-meta {
  list-style: none;
  margin: 0.25rem 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.55rem;
}
@media (max-width: 520px) {
  .camps-home-feature-meta { grid-template-columns: 1fr; }
}
.camps-home-feature-meta li {
  padding: 0.55rem 0.65rem;
  border-radius: 10px;
  background: rgba(15, 23, 42, 0.04);
  border: 1px solid rgba(15, 23, 42, 0.06);
  display: grid;
  gap: 0.12rem;
}
body.theme-academy-nights .camps-home-feature-meta li {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.08);
}
.camps-home-feature-meta span {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  opacity: 0.7;
}
.camps-home-feature-meta strong {
  font-size: 0.92rem;
  font-weight: 700;
}
.camps-home-feature-text {
  margin: 0.15rem 0 0;
  font-size: 0.92rem;
  line-height: 1.5;
  opacity: 0.92;
}
.camps-home-feature-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  margin-top: auto;
  padding-top: 0.85rem;
  justify-content: flex-end;
  align-items: center;
}

/* Multi camps – compact corporate rail */
.camps-home-rail {
  display: grid;
  gap: 0.65rem;
}
.camps-home-tile {
  position: relative;
  display: block;
  text-decoration: none;
  color: inherit;
  border-radius: 14px;
  border: 1px solid rgba(15, 23, 42, 0.1);
  background: rgba(255, 255, 255, 0.88);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.7) inset, 0 8px 22px rgba(15, 23, 42, 0.05);
  overflow: hidden;
  transition:
    border-color 0.22s ease,
    box-shadow 0.22s ease,
    transform 0.22s ease,
    background 0.22s ease;
}
body.theme-academy-nights .camps-home-tile {
  background: rgba(22, 30, 43, 0.92);
  border-color: rgba(255, 255, 255, 0.08);
  box-shadow: 0 8px 22px rgba(0, 0, 0, 0.2);
}
.camps-home-tile:hover,
.camps-home-tile:focus-visible {
  border-color: rgba(212, 175, 55, 0.5);
  box-shadow: 0 0 0 1px rgba(212, 175, 55, 0.15), 0 14px 34px rgba(15, 23, 42, 0.1);
  transform: translateY(-1px);
  outline: none;
  z-index: 2;
}
.camps-home-tile.is-featured {
  border-color: rgba(212, 175, 55, 0.4);
}
.camps-home-tile.is-sold-out {
  opacity: 0.88;
}
.camps-home-tile-main {
  padding: 0.85rem 1rem;
  display: grid;
  gap: 0.35rem;
}
.camps-home-tile-top {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  align-items: center;
}
.camps-home-tile-kicker {
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: #9a7b1a;
}
.camps-home-tile-kicker.is-sold {
  color: #b91c1c;
}
.camps-home-tile-price {
  font-size: 0.78rem;
  font-weight: 700;
  color: #0f172a;
  white-space: nowrap;
}
body.theme-academy-nights .camps-home-tile-price {
  color: #f8fafc;
}
.camps-home-tile-title {
  margin: 0;
  font-size: 1rem;
  font-weight: 750;
  letter-spacing: -0.015em;
  line-height: 1.25;
  color: #0f172a;
}
body.theme-academy-nights .camps-home-tile-title {
  color: #f1f5f9;
}
.camps-home-tile-line {
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.75rem;
  font-size: 0.8rem;
  color: #6e6e73;
  line-height: 1.35;
}
.camps-home-tile-line span:not(:last-child)::after {
  content: "·";
  margin-left: 0.75rem;
  opacity: 0.5;
}

/* Hover detail panel */
.camps-home-tile-hover {
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  padding: 0 1rem;
  border-top: 1px solid transparent;
  transition:
    max-height 0.28s ease,
    opacity 0.22s ease,
    padding 0.22s ease,
    border-color 0.22s ease;
  background: linear-gradient(180deg, rgba(248, 250, 252, 0.96), rgba(255, 255, 255, 0.98));
}
body.theme-academy-nights .camps-home-tile-hover {
  background: linear-gradient(180deg, rgba(15, 23, 42, 0.55), rgba(15, 23, 42, 0.85));
}
.camps-home-tile:hover .camps-home-tile-hover,
.camps-home-tile:focus-visible .camps-home-tile-hover,
.camps-home-tile:focus-within .camps-home-tile-hover {
  max-height: 220px;
  opacity: 1;
  padding: 0.75rem 1rem 0.9rem;
  border-top-color: rgba(212, 175, 55, 0.22);
}
.camps-home-tile-sub {
  margin: 0 0 0.35rem;
  font-size: 0.86rem;
  font-weight: 650;
  color: #334155;
}
body.theme-academy-nights .camps-home-tile-sub {
  color: #e2e8f0;
}
.camps-home-tile-summary {
  margin: 0 0 0.45rem;
  font-size: 0.8rem;
  line-height: 1.45;
  color: #64748b;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.camps-home-tile-facts {
  list-style: none;
  margin: 0 0 0.55rem;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem 0.4rem;
}
.camps-home-tile-facts li {
  font-size: 0.72rem;
  font-weight: 650;
  padding: 0.2rem 0.5rem;
  border-radius: 999px;
  background: rgba(15, 23, 42, 0.05);
  color: #475569;
}
body.theme-academy-nights .camps-home-tile-facts li {
  background: rgba(255, 255, 255, 0.06);
  color: #cbd5e1;
}
.camps-home-tile-cta {
  display: inline-flex;
  font-size: 0.8rem;
  font-weight: 750;
  color: #9a7b1a;
  letter-spacing: 0.02em;
}

@media (max-width: 900px) {
  .camps-home-layout.is-single,
  .camps-home-layout.is-multi {
    grid-template-columns: 1fr;
  }
}
@media (hover: none) {
  /* Touch: show a compact always-visible CTA strip */
  .camps-home-tile-hover {
    max-height: none;
    opacity: 1;
    padding: 0.55rem 1rem 0.75rem;
    border-top-color: rgba(15, 23, 42, 0.06);
  }
  .camps-home-tile-summary {
    -webkit-line-clamp: 2;
  }
}
/* === End camps home feature === */

/* Dynamic partner links in blog posts (PWL shortcodes) */
.prose .partner-pwl-list {
  list-style: none;
  margin: 1.1rem 0 1.4rem;
  padding: 0;
  display: grid;
  gap: 0.75rem;
}
.prose .partner-pwl-item {
  display: grid;
  gap: 0.35rem;
  padding: 0.9rem 1rem;
  border-radius: 14px;
  border: 1px solid rgba(212, 175, 55, 0.22);
  background: linear-gradient(165deg, rgba(255, 255, 255, 0.04), rgba(212, 175, 55, 0.05));
}
.prose-card .prose .partner-pwl-item,
.article-content .prose .partner-pwl-item {
  border-color: rgba(212, 175, 55, 0.28);
  background: linear-gradient(165deg, rgba(255, 255, 255, 0.03), rgba(212, 175, 55, 0.07));
}
.prose .partner-pwl-head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 0.6rem;
}
.prose .partner-pwl {
  font-weight: 700;
  color: var(--gold, #d4af37);
  text-decoration: none;
}
.prose .partner-pwl:hover {
  text-decoration: underline;
  text-underline-offset: 2px;
  color: #f5d76e;
}
.prose .partner-pwl--nolink {
  color: inherit;
  font-weight: 700;
}
.prose .partner-pwl-desc {
  margin: 0;
  font-size: 0.92em;
  line-height: 1.5;
  color: var(--gray, #b5b5b5);
  opacity: 0.95;
}
.prose .partner-pwl-empty {
  margin: 0.75rem 0;
  color: var(--gray, #b5b5b5);
  font-style: italic;
}
/* Inline partner tokens inside list items / paragraphs */
.prose li .partner-pwl,
.prose p .partner-pwl {
  font-weight: 700;
}


/* COP: Zusatzprodukte shell collapsed until expanded */
.camp-os-addons--flow {
  margin: 0.85rem 0 1rem;
}
.camp-os-addons--flow .camp-os-addons-panel[hidden] {
  display: none !important;
}
.camp-os-addons--flow:not(.is-open) .camp-os-flow {
  display: none;
}
.camp-os-addons--flow.is-open .camp-os-addons-panel {
  display: block;
}


/* === Footer social icons row === */
.site-footer--apple .footer-copy-bar {
  display: grid;
  gap: 0.45rem;
  width: 100%;
}
.footer-copy-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem 1.25rem;
  width: 100%;
}
.site-footer--apple .footer-copy-row .footer-copy {
  margin: 0;
  flex: 1 1 auto;
  min-width: min(100%, 14rem);
  text-align: left;
}
.footer-social-icons {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.45rem;
  flex: 0 0 auto;
  margin-left: auto;
}
.footer-social-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  background: rgba(255, 255, 255, 0.04);
  color: #f5f5f7 !important;
  text-decoration: none !important;
  transition: color 0.18s ease, border-color 0.18s ease, background 0.18s ease, transform 0.18s ease;
}
.footer-social-icon:hover,
.footer-social-icon:focus-visible {
  color: #0b0d10 !important;
  background: #d4af37;
  border-color: #d4af37;
  outline: none;
  transform: translateY(-1px);
}
.footer-social-icon svg {
  display: block;
}
.footer-social-fallback {
  font-size: 0.75rem;
  font-weight: 800;
}
/* Mobile: same single-line layout as desktop — copyright left, social right */
@media (max-width: 640px) {
  .footer-copy-row {
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem 0.75rem;
  }
  .site-footer--apple .footer-copy-row .footer-copy {
    flex: 1 1 auto;
    min-width: 0;
    max-width: none;
    font-size: 0.65rem;
    line-height: 1.3;
    padding-right: 0.35rem;
  }
  .footer-social-icons {
    margin-left: auto;
    justify-content: flex-end;
    flex: 0 0 auto;
    gap: 0.35rem;
  }
  .footer-social-icon {
    width: 1.75rem;
    height: 1.75rem;
  }
  .footer-social-icon svg {
    width: 15px;
    height: 15px;
  }
}
/* === End footer social icons === */


/* ── Corporate Newsroom (Aktuelles) ───────────────────────── */
.news-room { padding-bottom: 3.5rem; }
.news-room-container { max-width: 980px; }
.news-editorial {
  display: flex;
  flex-direction: column;
  gap: 0;
  border-top: 1px solid rgba(212, 175, 55, 0.28);
}
.news-editorial-item {
  display: grid;
  grid-template-columns: 5.25rem minmax(0, 1fr);
  gap: 1.25rem 1.5rem;
  align-items: start;
  padding: 1.45rem 0 1.55rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  position: relative;
  transition: background 0.2s ease;
}
.news-editorial-item.has-pic {
  grid-template-columns: 5.25rem minmax(0, 1fr) minmax(120px, 200px);
}
.news-editorial-item.is-feature {
  padding-top: 1.75rem;
  padding-bottom: 1.85rem;
}
.news-editorial-item:hover {
  background: linear-gradient(90deg, rgba(212, 175, 55, 0.06), transparent 55%);
}
.news-editorial-item.is-preview {
  box-shadow: inset 3px 0 0 rgba(234, 179, 8, 0.65);
}
.news-editorial-date {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  padding-top: 0.15rem;
  border-right: 1px solid rgba(212, 175, 55, 0.22);
  min-height: 4.5rem;
}
.news-editorial-day {
  font-family: 'Oswald', sans-serif;
  font-size: 1.85rem;
  line-height: 1;
  color: var(--gold, #d4af37);
  font-weight: 600;
  letter-spacing: 0.02em;
}
.news-editorial-month {
  margin-top: 0.2rem;
  font-size: 0.68rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.72);
  font-weight: 700;
}
.news-editorial-year {
  margin-top: 0.15rem;
  font-size: 0.72rem;
  color: rgba(255, 255, 255, 0.42);
  letter-spacing: 0.06em;
}
.news-editorial-main { min-width: 0; }
.news-editorial-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.5rem;
  margin-bottom: 0.45rem;
  font-size: 0.78rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--gray, #a0a6b0);
}
.news-editorial-meta time { color: var(--gold, #d4af37); font-weight: 600; }
.news-editorial-dot { opacity: 0.45; }
.news-editorial-author { color: rgba(255, 255, 255, 0.55); }
.news-editorial-title {
  margin: 0;
  font-family: 'Oswald', sans-serif;
  font-size: clamp(1.15rem, 2.2vw, 1.45rem);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  line-height: 1.2;
}
.news-editorial-item.is-feature .news-editorial-title {
  font-size: clamp(1.35rem, 2.6vw, 1.75rem);
}
.news-editorial-title a {
  color: #fff;
  text-decoration: none;
  transition: color 0.15s ease, text-shadow 0.15s ease;
  /* Tiny black text border for contrast on dark newsroom background */
  text-shadow:
    -0.5px -0.5px 0 #000,
     0.5px -0.5px 0 #000,
    -0.5px  0.5px 0 #000,
     0.5px  0.5px 0 #000,
     0 0 1.5px rgba(0, 0, 0, 0.85);
  -webkit-text-stroke: 0.35px rgba(0, 0, 0, 0.75);
}
.news-editorial-title a:hover {
  color: var(--gold, #d4af37);
  text-shadow:
    -0.5px -0.5px 0 #000,
     0.5px -0.5px 0 #000,
    -0.5px  0.5px 0 #000,
     0.5px  0.5px 0 #000,
     0 0 2px rgba(0, 0, 0, 0.9);
  -webkit-text-stroke: 0.35px rgba(0, 0, 0, 0.8);
}
.news-editorial-excerpt {
  margin: 0.55rem 0 0;
  color: var(--gray, #b4b9c2);
  font-size: 0.98rem;
  line-height: 1.55;
  max-width: 58ch;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.news-editorial-cta {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin-top: 0.85rem;
  color: var(--gold, #d4af37);
  text-decoration: none;
  font-size: 0.9rem;
  font-weight: 600;
  letter-spacing: 0.02em;
}
.news-editorial-cta:hover { text-decoration: underline; }
.news-editorial-pic {
  display: block;
  border-radius: 12px;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  border: 1px solid rgba(212, 175, 55, 0.22);
  background: rgba(0, 0, 0, 0.25);
  align-self: center;
}
.news-editorial-pic img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.35s ease;
}
.news-editorial-item:hover .news-editorial-pic img { transform: scale(1.04); }
.news-room-footer {
  margin-top: 2rem;
  padding-top: 1.25rem;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  text-align: center;
}
.news-room-footer a {
  color: var(--gold, #d4af37);
  text-decoration: none;
  font-size: 0.95rem;
}
.news-room-footer a:hover { text-decoration: underline; }


.admin-check-row {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  padding: 0.65rem 0.85rem;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.02);
}
.admin-check-row input { margin-top: 0.2rem; accent-color: #d4af37; }
.admin-check-row span { font-size: 0.9rem; line-height: 1.4; color: var(--gray, #c9cdd3); }

@media (max-width: 760px) {
  .news-editorial-item,
  .news-editorial-item.has-pic {
    grid-template-columns: 3.6rem minmax(0, 1fr);
  }
  .news-editorial-pic {
    grid-column: 2 / -1;
    max-width: 280px;
  }
  .news-editorial-day { font-size: 1.45rem; }
}


/* ── Homepage news (professional, image optional) ─────────── */
.news-home-list {
  display: flex;
  flex-direction: column;
  gap: 0;
  border-top: 1px solid rgba(212, 175, 55, 0.28);
  max-width: 920px;
}
.news-home-item {
  display: grid;
  grid-template-columns: 4.75rem minmax(0, 1fr);
  gap: 1.1rem 1.35rem;
  align-items: start;
  padding: 1.35rem 0 1.45rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  transition: background 0.2s ease;
}
.news-home-item.has-pic {
  grid-template-columns: 4.75rem minmax(0, 1fr) minmax(110px, 168px);
}
.news-home-item.is-lead {
  padding-top: 1.55rem;
  padding-bottom: 1.65rem;
}
.news-home-item:hover {
  background: linear-gradient(90deg, rgba(212, 175, 55, 0.07), transparent 60%);
}
.news-home-item.no-pic {
  /* Editorial text card — no image rail, clean corporate density */
}
.news-home-date {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  padding-top: 0.1rem;
  border-right: 1px solid rgba(212, 175, 55, 0.22);
  min-height: 4.2rem;
}
.news-home-day {
  font-family: 'Oswald', sans-serif;
  font-size: 1.7rem;
  line-height: 1;
  color: var(--gold, #d4af37);
  font-weight: 600;
  letter-spacing: 0.02em;
}
.news-home-month {
  margin-top: 0.18rem;
  font-size: 0.66rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.72);
  font-weight: 700;
}
.news-home-year {
  margin-top: 0.12rem;
  font-size: 0.7rem;
  color: rgba(255, 255, 255, 0.4);
  letter-spacing: 0.06em;
}
.news-home-main { min-width: 0; }
.news-home-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.3rem 0.45rem;
  margin-bottom: 0.4rem;
  font-size: 0.76rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--gray, #a0a6b0);
}
.news-home-meta time {
  color: var(--gold, #d4af37);
  font-weight: 600;
}
.news-home-dot { opacity: 0.45; }
.news-home-author { color: rgba(255, 255, 255, 0.52); }
.news-home-title {
  margin: 0;
  font-family: 'Oswald', sans-serif;
  font-size: clamp(1.08rem, 2vw, 1.32rem);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  line-height: 1.22;
}
.news-home-item.is-lead .news-home-title {
  font-size: clamp(1.2rem, 2.3vw, 1.5rem);
}
.news-home-title a {
  color: #fff;
  text-decoration: none;
  transition: color 0.15s ease, text-shadow 0.15s ease;
  /* Tiny black text border for contrast on dark gradients */
  text-shadow:
    -0.5px -0.5px 0 #000,
     0.5px -0.5px 0 #000,
    -0.5px  0.5px 0 #000,
     0.5px  0.5px 0 #000,
     0 0 1.5px rgba(0, 0, 0, 0.85);
  -webkit-text-stroke: 0.35px rgba(0, 0, 0, 0.75);
}
.news-home-title a:hover {
  color: var(--gold, #d4af37);
  text-shadow:
    -0.5px -0.5px 0 #000,
     0.5px -0.5px 0 #000,
    -0.5px  0.5px 0 #000,
     0.5px  0.5px 0 #000,
     0 0 2px rgba(0, 0, 0, 0.9);
  -webkit-text-stroke: 0.35px rgba(0, 0, 0, 0.8);
}
.news-home-excerpt {
  margin: 0.5rem 0 0;
  color: var(--gray, #b4b9c2);
  font-size: 0.95rem;
  line-height: 1.55;
  max-width: 56ch;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.news-home-item.no-pic .news-home-excerpt {
  -webkit-line-clamp: 4;
  max-width: 62ch;
}
.news-home-cta {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin-top: 0.8rem;
  color: var(--gold, #d4af37);
  text-decoration: none;
  font-size: 0.88rem;
  font-weight: 600;
  letter-spacing: 0.02em;
}
.news-home-cta:hover { text-decoration: underline; }
.news-home-pic {
  display: block;
  border-radius: 12px;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  border: 1px solid rgba(212, 175, 55, 0.2);
  background: rgba(0, 0, 0, 0.22);
  align-self: center;
}
.news-home-pic img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.35s ease;
}
.news-home-item:hover .news-home-pic img { transform: scale(1.04); }

@media (max-width: 720px) {
  .news-home-item,
  .news-home-item.has-pic {
    grid-template-columns: 3.4rem minmax(0, 1fr);
  }
  .news-home-pic {
    grid-column: 2 / -1;
    max-width: 240px;
  }
  .news-home-day { font-size: 1.4rem; }
}


/* ── Homepage news curtain (stage rise / collapse) ───────── */
.news-home-stage {
  position: relative;
  max-width: 920px;
}
.news-home-curtain {
  display: grid;
  grid-template-rows: 0fr;
  opacity: 0;
  overflow: hidden;
  transition:
    grid-template-rows 0.48s cubic-bezier(0.22, 1, 0.36, 1),
    opacity 0.35s ease;
  border-bottom: 0 solid transparent;
}
.news-home-curtain[hidden]:not(.is-closing) {
  display: none !important;
}
.news-home-curtain.is-closing[hidden],
.news-home-curtain.is-open {
  display: grid !important;
}
.news-home-curtain:not(.is-open):not(.is-closing) {
  pointer-events: none;
}
.news-home-curtain.is-open {
  grid-template-rows: 1fr;
  opacity: 1;
  pointer-events: auto;
}
.news-home-curtain.is-closing {
  grid-template-rows: 0fr;
  opacity: 0;
}
.news-home-curtain-inner {
  min-height: 0;
  overflow: hidden;
  transform: translateY(18px);
  opacity: 0.35;
  transition:
    transform 0.48s cubic-bezier(0.22, 1, 0.36, 1),
    opacity 0.4s ease;
  /* stage curtain: dark velvet edge */
  box-shadow:
    inset 0 12px 18px -14px rgba(0, 0, 0, 0.55),
    inset 0 1px 0 rgba(212, 175, 55, 0.2);
}
.news-home-curtain.is-open .news-home-curtain-inner {
  transform: translateY(0);
  opacity: 1;
}
.news-home-curtain.is-closing .news-home-curtain-inner {
  transform: translateY(14px);
  opacity: 0.25;
}
.news-home-list--extra {
  border-top: 0;
  max-width: none;
}
.news-home-curtain-controls {
  display: flex;
  justify-content: center;
  padding: 1.1rem 0 0.35rem;
}
.news-home-curtain-toggle {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  border: 1px solid rgba(212, 175, 55, 0.4);
  background:
    linear-gradient(180deg, rgba(212, 175, 55, 0.14), rgba(11, 13, 16, 0.55));
  color: #fff;
  border-radius: 999px;
  padding: 0.55rem 1.05rem 0.55rem 0.75rem;
  font: inherit;
  font-size: 0.9rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  cursor: pointer;
  box-shadow: 0 8px 22px rgba(0, 0, 0, 0.28);
  transition:
    border-color 0.15s ease,
    transform 0.15s ease,
    background 0.15s ease,
    box-shadow 0.15s ease;
}
.news-home-curtain-toggle:hover {
  border-color: rgba(212, 175, 55, 0.75);
  transform: translateY(-1px);
  box-shadow: 0 10px 26px rgba(0, 0, 0, 0.34);
}
.news-home-curtain-toggle:focus-visible {
  outline: 2px solid var(--gold, #d4af37);
  outline-offset: 3px;
}
.news-home-curtain-emoji {
  font-size: 1.25rem;
  line-height: 1;
  filter: drop-shadow(0 1px 1px rgba(0, 0, 0, 0.45));
}
.news-home-stage.is-open .news-home-curtain-toggle {
  border-color: rgba(212, 175, 55, 0.65);
  background: linear-gradient(180deg, rgba(212, 175, 55, 0.22), rgba(11, 13, 16, 0.65));
}
.news-home-curtain-label {
  color: rgba(255, 255, 255, 0.92);
}


/* Children identity + GoC steps */
.camp-os-child-grid--identity {
  display: grid;
  gap: 0.75rem;
  grid-template-columns: 1fr;
}
.camp-os-child-row {
  display: grid;
  gap: 0.65rem 0.75rem;
}
.camp-os-child-row--name {
  grid-template-columns: 1fr 1fr;
}
.camp-os-child-row--meta {
  grid-template-columns: minmax(5.5rem, 0.55fr) minmax(0, 1fr);
}
@media (max-width: 560px) {
  .camp-os-child-row--name,
  .camp-os-child-row--meta {
    grid-template-columns: 1fr;
  }
}
.camp-os-child-card {
  padding: 1rem 1.05rem 1.1rem;
  border-radius: 16px;
  border: 1px solid rgba(15, 23, 42, 0.1);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(248, 250, 252, 0.92));
  box-shadow: 0 6px 18px rgba(15, 23, 42, 0.04);
}
.camp-os-goc {
  gap: 0.85rem !important;
  padding: 0.25rem 0 0.15rem;
}
.camp-os-goc-lead {
  margin: 0 0 0.25rem;
  font-size: 0.86rem;
  line-height: 1.45;
  color: #475569;
}
.camp-os-goc-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.65rem 0.75rem;
}
@media (max-width: 560px) {
  .camp-os-goc-row { grid-template-columns: 1fr; }
}
.camp-os-goc-note {
  margin: -0.15rem 0 0;
  font-size: 0.78rem;
  color: #64748b;
  line-height: 1.4;
}
.camp-os-flow-step-body--children,
.camp-os-flow-step-body--goc {
  padding: 0.75rem 1rem 1.15rem;
}
.camp-os-flow-step-body--product .camp-os-flow-nav {
  margin-top: 1rem;
  padding-top: 0.35rem;
}


/* Partner / sponsor rich descriptions */
.partner-feature-desc--rich,
.partner-showcase-desc--rich,
.partner-tier-benefits {
  color: var(--gray, #475569);
  line-height: 1.55;
}
.partner-feature-desc--rich p,
.partner-showcase-desc--rich p,
.partner-tier-benefits p {
  margin: 0 0 0.65rem;
}
.partner-feature-desc--rich p:last-child,
.partner-showcase-desc--rich p:last-child,
.partner-tier-benefits p:last-child {
  margin-bottom: 0;
}
.partner-feature-desc--rich ul,
.partner-showcase-desc--rich ul,
.partner-tier-benefits ul {
  margin: 0.35rem 0 0.65rem 1.15rem;
}
.partner-feature-desc--rich strong,
.partner-showcase-desc--rich strong {
  color: inherit;
  font-weight: 600;
}


/* Camp trainers with avatar (name left, photo right) */
.camps-trainers-list {
  list-style: none;
  list-style-type: none;
  margin: 0.35rem 0 0;
  padding: 0;
  display: grid;
  gap: 0.45rem;
  width: 100%;
}
.camps-trainers-list > li,
.camps-trainer-row {
  list-style: none;
  list-style-type: none;
}
.camps-trainers-list > li::marker,
.camps-trainers-list > li::before {
  content: none !important;
  display: none !important;
}
.camps-trainer-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  width: 100%;
  padding-left: 0;
  margin-left: 0;
}
.camps-trainer-meta {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  min-width: 0;
  text-align: left;
}
.camps-trainer-name {
  font-size: 0.95rem;
  font-weight: 700;
  color: inherit;
  line-height: 1.25;
}
.camps-trainer-role {
  font-size: 0.78rem;
  color: var(--gray, #64748b);
  line-height: 1.3;
}
.camps-trainer-avatar {
  flex: 0 0 auto;
  width: 48px;
  height: 48px;
  border-radius: 999px;
  overflow: hidden;
  border: 1px solid rgba(148, 163, 184, 0.35);
  background: rgba(15, 23, 42, 0.06);
  display: grid;
  place-items: center;
}
.camps-trainer-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.camps-trainer-avatar-fallback {
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--gold, #c9a227);
  line-height: 1;
}
.camps-single-fact.camps-trainers-fact {
  align-items: flex-start;
}
.camps-single-fact.camps-trainers-fact > .camps-single-fact-label {
  margin-bottom: 0.35rem;
}
.camp-os-trainers .camps-trainers-list {
  margin-top: 0.5rem;
}
