/* Shared Go Beyond brand-color layer for every program page. */
:root {
  --program-navy: #1e1d49;
  --program-cool-black: #1e1d49; /* retired Cool Black, now Yankees Blue */
  --program-jazzberry: #b50061;
  --program-orange: #e45b01;
  --program-cardinal: #bf1630;
  --program-black: #000;
  --program-dark-gray: #333;
  --program-medium-gray: #ccc;
  --program-light-gray: #f4f4f4;
  --program-white: #fff;
}

/* Pesach */
.pesach-page {
  --pesach-ink: var(--program-navy);
  --pesach-ink-soft: var(--program-dark-gray);
  --pesach-forest: var(--program-cool-black);
  --pesach-forest-dark: var(--program-navy);
  --pesach-gold: var(--program-jazzberry);
  --pesach-gold-light: var(--program-jazzberry);
  --pesach-berry: var(--program-jazzberry);
  --pesach-cream: var(--program-white);
  --pesach-sand: var(--program-light-gray);
  --pesach-white: var(--program-white);
  --pesach-line: rgba(30, 29, 73, .14);
}

.pesach-hero-overlay {
  background: rgba(32, 32, 32, 0.34);
}

.pesach-button-primary:hover,
.pesach-button-primary:focus-visible {
  background: var(--button-primary-hover);
}

/* Chanukah */
.chanukah-page {
  --chanukah-night: var(--program-navy);
  --chanukah-blue: var(--program-cool-black);
  --chanukah-gold: var(--program-jazzberry);
  --chanukah-gold-light: var(--program-jazzberry);
  --chanukah-berry: var(--program-jazzberry);
  --chanukah-cream: var(--program-white);
  --chanukah-sand: var(--program-light-gray);
  --chanukah-ink: var(--program-navy);
  --chanukah-muted: var(--program-dark-gray);
  --chanukah-line: rgba(30, 29, 73, .13);
}

.chanukah-hero-overlay {
  background: rgba(32, 32, 32, 0.34);
}

/* Jazzberry on navy is 2.4:1; small text on navy stays white. */
.chanukah-page .chanukah-eyebrow,
.chanukah-page .chanukah-expect .chanukah-section-kicker,
.chanukah-page .chanukah-intro-image figcaption span {
  color: var(--program-white);
}

.chanukah-expect {
  background: var(--program-cool-black);
}

/* Panama Yeshiva Week */
.pyw-page {
  --pyw-ink: var(--program-navy);
  --pyw-berry: var(--program-jazzberry);
  --pyw-berry-dark: #8e004c;
  --pyw-paper: var(--program-white);
  --pyw-mist: var(--program-light-gray);
  --pyw-line: rgba(30, 29, 73, .12);
}

.pyw-hero-overlay {
  background: rgba(32, 32, 32, 0.34);
}

.pyw-hero-image {
  object-position: center 52%;
}

.pyw-hero-copy-program {
  max-width: 700px;
}

.pyw-hero-eyebrow {
  display: flex;
  margin-bottom: 22px !important;
  align-items: center;
  gap: 12px;
  color: var(--program-jazzberry) !important;
  font-size: 14px !important;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.pyw-hero-eyebrow span {
  width: 42px;
  height: 2px;
  background: var(--program-jazzberry);
}

.pyw-hero-copy-program h1 {
  max-width: 680px;
  margin-bottom: 24px;
  font-size: clamp(4.4rem, 6.7vw, 7.2rem);
  letter-spacing: -.055em;
  line-height: .86;
}

.pyw-hero-copy-program h1 em {
  display: block;
  color: var(--program-jazzberry);
  font-style: normal;
  font-weight: 600;
}

.pyw-hero-copy-program > p:not(.pyw-hero-eyebrow) {
  max-width: 560px;
}

.pyw-hero-actions {
  display: flex;
  margin-top: 30px;
  align-items: center;
  gap: 24px;
}

.pyw-hero-text-link {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  color: var(--program-white);
  font-size: .92rem;
  font-weight: 700;
}

.pyw-hero-text-link:hover,
.pyw-hero-text-link:focus-visible {
  color: var(--program-orange);
}

.pyw-button-primary:hover,
.pyw-button-primary:focus-visible {
  border-color: var(--button-primary-hover);
  background: var(--button-primary-hover);
}

/* Shared component rhythm across every modern program page. */
:is(.pesach-page, .chanukah-page, .pyw-page) {
  --program-content-width: 1240px;
}

:is(.pesach-shell, .chanukah-shell, .pyw-shell) {
  width: min(calc(100% - 48px), var(--program-content-width));
}

/* Keep the shared desktop height from overriding each program's mobile layout. */
@media (min-width: 901px) {
  :is(.pesach-hero, .chanukah-hero, .pyw-hero) {
    min-height: clamp(720px, 92svh, 880px);
  }
}

:is(.pesach-button, .chanukah-button, .pyw-button) {
  min-height: 54px;
  border-radius: var(--button-radius);
}

:is(.pesach-expect-card, .chanukah-expect-card, .pyw-included-list, .pyw-package-card, .pesach-form-card, .chanukah-form-card) {
  border-radius: var(--card-radius);
}

.unified-program-page .chanukah-hero-image {
  object-position: center;
}

.unified-program-page .chanukah-expect-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.unified-program-page .chanukah-expect-card:last-child {
  grid-column: 2;
}

.chanukah-page + .newsletter {
  padding-top: 110px;
  background-color: #202020;
  background-image: url('/assets/images/newsletter-bg-generated.webp'); box-shadow: inset 0 0 0 100vmax rgba(20, 20, 20, 0.34);
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  background-blend-mode: normal;
}

/* Classic Sukkot and Summer Break pages. This stylesheet is loaded only there. */
.inner-banner-overlay {
  background: rgba(32, 32, 32, .4);
}

.main-section h2,
.main-section h3,
.main-section .breadcrumb-item a {
  color: var(--program-navy) !important;
}

.main-section .tour-highlights i,
.main-section .card h3 i {
  color: var(--program-jazzberry) !important;
}

.main-section .booking-sidebar {
  border-top: 4px solid var(--program-jazzberry);
  background: var(--program-light-gray) !important;
  box-shadow: 0 18px 45px rgba(30, 29, 73, .1);
}

.main-section .form-control:focus {
  border-color: var(--program-jazzberry);
  box-shadow: 0 0 0 .2rem rgba(181, 0, 97, .12);
}

.main-section .btn-primary,
.main-section .btn-submit {
  border-color: var(--program-jazzberry);
  background: var(--program-jazzberry);
}

.main-section .btn-primary:hover,
.main-section .btn-primary:focus-visible,
.main-section .btn-submit:hover,
.main-section .btn-submit:focus-visible {
  border-color: var(--button-primary-hover);
  background: var(--button-primary-hover);
}

.main-section[style*="background"] {
  background: var(--program-light-gray) !important;
}

.main-section .single-package-items {
  border-top: 3px solid var(--program-jazzberry);
}

.main-section a:focus-visible,
.pesach-page a:focus-visible,
.chanukah-page a:focus-visible,
.pyw-page a:focus-visible {
  outline: 3px solid var(--program-orange);
  outline-offset: 3px;
}

@media (max-width: 1100px) {
  .unified-program-page .chanukah-expect-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .unified-program-page .chanukah-expect-card:last-child {
    grid-column: auto;
  }
}

@media (max-width: 700px) {
  :is(.pesach-shell, .chanukah-shell, .pyw-shell) {
    width: min(calc(100% - 32px), var(--program-content-width));
  }

  .unified-program-page .chanukah-expect-grid {
    grid-template-columns: 1fr;
  }

  .pyw-hero-image {
    object-position: 62% center;
  }

  .pyw-hero-copy-program h1 {
    font-size: clamp(3.35rem, 15vw, 4.4rem);
    line-height: .9;
  }

  .pyw-hero-actions {
    align-items: stretch;
    flex-direction: column;
    gap: 15px;
  }

  .pyw-hero-text-link {
    justify-content: center;
  }
}
