/* Cherry Hill Programs — base stylesheet (adapted from the design handoff).
   Layout lives in native Webflow classes generated from the design's
   inline styles; this sheet carries base type, buttons and helpers. */
:root { --chp-red: #D8344A;        
  --chp-red-deep: #A52139;
  --chp-red-soft: #FADFE2;

  
  --safe-bg: #FAFAF7;
  --safe-surface: #FFFFFF;
  --safe-ink: #13110E;
  --safe-ink-2: #4A4640;
  --safe-ink-3: #8A847B;
  --safe-line: #E6E2DA;
  --safe-accent: var(--chp-red);

  
  --bold-bg: #F4EEE4;         
  --bold-surface: #FFFBF5;
  --bold-ink: #1A0E10;
  --bold-ink-2: #5A3C3F;
  --bold-merlot: #5C1A28;
  --bold-red: #D8344A;
  --bold-ochre: #C68E3A;
  --bold-line: #E4D8C4; }
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body { font-family: 'Söhne', 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  color: var(--safe-ink);
  background: var(--safe-bg);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility; }
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button { font-family: inherit; cursor: pointer; border: none; background: none; padding: 0; color: inherit; }
body { font-family: 'Inter', 'Söhne', -apple-system, system-ui, sans-serif;
  color: var(--safe-ink);
  background: var(--safe-bg);
  font-feature-settings: 'ss01', 'cv11';
  letter-spacing: -0.005em; }
.serif { font-family: 'Fraunces', 'Tiempos Headline', Georgia, serif; font-optical-sizing: auto; }
h1, h2, h3 { margin: 0; letter-spacing: -0.02em; line-height: 1.05; font-weight: 500; }
p { margin: 0; line-height: 1.55; color: var(--safe-ink-2); }
.eyebrow { font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--safe-ink-3); font-weight: 500; }
.btn { display: inline-flex; align-items: center; gap: 10px;
  padding: 14px 22px; border-radius: 999px;
  font-size: 14px; font-weight: 500; letter-spacing: -0.005em;
  transition: transform .15s ease, background .15s, color .15s, box-shadow .15s; }
.btn-primary { background: var(--safe-ink); color: #fff; }
.btn-primary:hover { background: #000; transform: translateY(-1px); }
.btn-accent { background: var(--chp-red); color: #fff; }
.btn-accent:hover { background: var(--chp-red-deep); transform: translateY(-1px); }
.btn-ghost { background: transparent; color: var(--safe-ink); box-shadow: inset 0 0 0 1px var(--safe-line); }
.btn-ghost:hover { background: var(--safe-ink); color: #fff; box-shadow: none; }
.container { max-width: 1280px; margin: 0 auto; padding: 0 48px; }
.container-wide { max-width: 1440px; margin: 0 auto; padding: 0 48px; }
.stack-8 > * + * { margin-top: 8px; }
.stack-12 > * + * { margin-top: 12px; }
.stack-16 > * + * { margin-top: 16px; }
.stack-24 > * + * { margin-top: 24px; }
.stack-32 > * + * { margin-top: 32px; }
.ph { background: linear-gradient(135deg, #8a6b5c 0%, #3a2a24 100%);
  position: relative; overflow: hidden; }
.ph-img { background: none; }
.ph-img::after { display: none !important; }
.ph::after { content: ''; position: absolute; inset: 0;
  background: radial-gradient(circle at 30% 30%, rgba(255,255,255,0.12), transparent 50%); }
.ph-holiday { background: linear-gradient(135deg, #7a2a2e 0%, #2a0f14 60%, #4a1820 100%); }
.ph-holiday::after { content: ''; position: absolute; inset: 0;
  background:
    radial-gradient(circle at 20% 30%, rgba(216,52,74,0.4), transparent 40%),
    radial-gradient(circle at 80% 20%, rgba(255,200,150,0.2), transparent 30%),
    radial-gradient(circle at 60% 80%, rgba(255,240,200,0.15), transparent 40%); }
.ph-souvenir { background: linear-gradient(135deg, #1e3a4a 0%, #0a1820 60%, #2a4a5a 100%); }
.ph-souvenir::after { content: ''; position: absolute; inset: 0;
  background:
    radial-gradient(circle at 30% 40%, rgba(100,180,200,0.3), transparent 40%),
    radial-gradient(circle at 70% 60%, rgba(60,120,140,0.4), transparent 40%); }
.ph-people { background: linear-gradient(135deg, #6b4a3a 0%, #2a1a14 100%); }
.ph-people::after { content: ''; position: absolute; inset: 0;
  background:
    radial-gradient(circle at 40% 35%, rgba(255,210,180,0.3), transparent 40%),
    radial-gradient(circle at 65% 55%, rgba(200,140,100,0.25), transparent 40%); }
.ph-easter { background: linear-gradient(135deg, #c48ea8 0%, #6a3a52 100%); }
.ph-easter::after { content: ''; position: absolute; inset: 0;
  background:
    radial-gradient(circle at 30% 30%, rgba(255,230,240,0.35), transparent 40%),
    radial-gradient(circle at 70% 70%, rgba(180,120,150,0.3), transparent 40%); }
.ph-tech { background: linear-gradient(135deg, #1a1f2a 0%, #0a0d14 100%); }
.ph-tech::after { content: ''; position: absolute; inset: 0;
  background:
    radial-gradient(circle at 20% 20%, rgba(216,52,74,0.2), transparent 40%),
    radial-gradient(circle at 80% 80%, rgba(80,140,200,0.15), transparent 40%); }
.ph-pixie { background: linear-gradient(135deg, #f4c7d4 0%, #c48ea8 50%, #8a4e6a 100%); }
.ph-pixie::after { content: ''; position: absolute; inset: 0;
  background:
    radial-gradient(circle at 25% 25%, rgba(255,255,255,0.3), transparent 40%),
    radial-gradient(circle at 75% 75%, rgba(255,200,150,0.25), transparent 40%); }
.chip { display: inline-flex; align-items: center; gap: 8px;
  padding: 6px 12px; border-radius: 999px;
  font-size: 12px; font-weight: 500; letter-spacing: 0.02em; }
.chip { background: rgba(216,52,74,0.08); color: var(--chp-red-deep); }
.dot { display: inline-block; width: 6px; height: 6px; border-radius: 50%;
  background: var(--chp-red); vertical-align: middle; }
.ticker { overflow: hidden; white-space: nowrap;
  mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); }
.ticker-track { display: inline-flex; animation: ticker 40s linear infinite; }
@keyframes ticker {
  to { transform: translateX(-50%); }
}
.nav-burger { display: none; }
.nav-drawer { display: none; }
.nav-sub { position: absolute; top: 100%; left: 50%; transform: translateX(-50%) translateY(4px);
  min-width: 186px; padding: 7px; display: flex; flex-direction: column; gap: 1px;
  background: #FFFFFF; border: 1px solid var(--safe-line); border-radius: 12px;
  box-shadow: 0 18px 38px -14px rgba(0,0,0,0.22);
  opacity: 0; visibility: hidden; pointer-events: none;
  transition: opacity .16s ease, transform .16s ease;
  z-index: 60; }
.nav-item.has-sub:hover .nav-sub, .nav-item.has-sub:focus-within .nav-sub { opacity: 1; visibility: visible; pointer-events: auto; transform: translateX(-50%) translateY(0); }
.nav-sub button { text-align: left; padding: 10px 13px; font-size: 14px; font-weight: 500;
  color: var(--safe-ink-2); border-radius: 8px; text-transform: none; letter-spacing: -0.005em;
  font-family: 'Inter', sans-serif; }
.nav-sub button:hover { background: rgba(19,17,14,0.05); color: var(--safe-ink); }
.nav-sub button[data-current="true"] { color: var(--chp-red); }
.social-link { opacity: 0.82; transition: opacity .15s ease, transform .15s ease; }
.social-link:hover { opacity: 1; transform: translateY(-2px); }
.hero-stack { display: none; }
@media (max-width: 780px) {
  section.division-hero { aspect-ratio: auto !important;
    min-height: 480px !important;
    padding: 0 !important; }
  .division-hero-logo { display: none !important; }
  .division-hero-body { position: relative !important; inset: auto !important;
    min-height: 480px;
    padding: 26px 20px 34px !important; }
  .hero-split { display: none !important; }
  .hero-stack { display: block !important; }
  section.hero-stack { padding-left: 0 !important; padding-right: 0 !important; padding-top: 0 !important; padding-bottom: 0 !important; }
  nav { display: flex !important;
    align-items: center; justify-content: space-between;
    gap: 12px !important;
    padding: 12px 18px !important;
    background: rgba(250,250,247,0.96) !important;
    backdrop-filter: blur(14px);
    border-bottom: 1px solid #E6E2DA !important; }
  .nav-links, .nav-cta { display: none !important; }
  .nav-burger { display: flex; flex-direction: column; justify-content: center; gap: 5px;
    width: 44px; height: 44px; align-items: center; flex: 0 0 auto; }
  .nav-burger span { display: block; width: 22px; height: 2px; background: #13110E; border-radius: 2px; transition: transform .2s, opacity .2s; }
  .nav-burger[data-open="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .nav-burger[data-open="true"] span:nth-child(2) { opacity: 0; }
  .nav-burger[data-open="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
  .nav-logos { gap: 10px !important; }
  .nav-combo-logo { height: 26px !important; }
  .footer-combo-logo { height: 34px !important; }
  .nav-pgi-logo { height: 28px !important; }
  .nav-divider { height: 26px !important; }
  .nav-drawer[data-open="true"] { display: flex; flex-direction: column;
    position: absolute; top: 100%; left: 0; right: 0;
    background: #FFFFFF; border-bottom: 1px solid #E6E2DA;
    padding: 8px 18px 20px; gap: 2px;
    box-shadow: 0 24px 40px -20px rgba(0,0,0,0.25);
    max-height: 74cqh; overflow-y: auto; }
  .nav-drawer button { text-align: left; padding: 15px 4px; font-size: 17px; font-weight: 500;
    color: #13110E; border-bottom: 1px solid #F0EDE6; min-height: 48px; }
  .nav-drawer button[data-current="true"] { color: #D8344A; }
  .nav-drawer button.nav-drawer-sub { padding-left: 22px; font-size: 15.5px; color: #4A4640; }
  .nav-drawer .nav-sub { display: none !important; }
  .nav-drawer .nav-drawer-ctas { display: flex; flex-direction: column; gap: 10px; margin-top: 18px; }
  .nav-drawer .nav-drawer-ctas button { text-align: center; justify-content: center; border-bottom: none; padding: 15px; font-size: 15px; }
  1fr)"], 1fr)"] { grid-template-columns: repeat(2, 1fr) !important; }
  section { padding-left: 20px !important; padding-right: 20px !important;
    padding-top: 56px !important; padding-bottom: 56px !important; }
  footer { padding: 52px 20px 26px !important; }
  h1 { font-size: 40px !important; line-height: 1.05 !important; letter-spacing: -0.025em !important; }
  h1, h2, h3 { white-space: normal !important; overflow-wrap: break-word; }
  h2 { font-size: 28px !important; line-height: 1.1 !important; }
  h3 { font-size: 21px !important; }
  p { font-size: 15.5px !important; }
  img { max-width: 100% !important; }
  img.nav-combo-logo { height: 26px !important; width: auto !important; }
  img.footer-combo-logo { height: 34px !important; width: auto !important; }
  img.hero-combo-logo { width: 100% !important; max-width: 290px !important; height: auto !important; }
  img.hero-card-logo { height: 42px !important; max-height: 42px !important; width: auto !important; max-width: 78% !important; }
  img.hero-card-logo-souvenir { height: 95px !important; max-height: 95px !important; }
  .tile-sep { display: none !important; }
  .tile-tags { gap: 8px !important; }
  .tile-tags .tile-tag { display: inline-flex !important; align-items: center; }
  .tile-tags .tile-tag + .tile-tag::before, .tile-tags .tile-tag:not(:first-child)::before { content: "\2022" !important;
    display: inline-block !important;
    margin-right: 8px;
    font-size: 11px;
    line-height: 1;
    color: var(--safe-ink-3); }
  video { max-width: 100% !important; }
  nav, .nav-burger { flex-wrap: nowrap; }
  .btn { min-height: 46px; padding: 13px 20px !important; }
}

/* ---- mobile reflow, via marker classes stamped by transform.py ---- */
@media (max-width: 780px) {
  .chp-grid { grid-template-columns: 1fr !important; }
  .chp-grid-manycol { grid-template-columns: repeat(2, 1fr) !important; }
  .chp-isgrid { gap: 18px !important; }
  .chp-isflex { flex-wrap: wrap; }
  .chp-maxw { max-width: 100% !important; }
  .chp-vh { height: auto !important; min-height: 78vh !important; }
  .chp-wfix { width: 210px !important; }
  .chp-pb56 { padding-bottom: 34px !important; }
  .chp-fs-xl { font-size: 34px !important; line-height: 1.06 !important; letter-spacing: -0.025em !important; }
  .chp-fs-lg { font-size: 27px !important; line-height: 1.1 !important; }
  .chp-fs-md { font-size: 22px !important; }
  footer .chp-grid { gap: 34px !important; }
  nav, .nav-burger { flex-wrap: nowrap !important; }
}

/* ---- form controls (see note in make_css.py) ---- */
input, select, textarea, button { font-family: inherit; }
input, select, textarea { outline: none; }
input:focus, select:focus, textarea:focus { border-color: #D8344A; }
/* Keyboard focus stays visible. The design specified only `outline: none`,
   which leaves keyboard users with no focus indicator at all. */
input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 2px solid #D8344A;
  outline-offset: 1px;
}
/* The WHTML builder stamps Webflow's default placeholder="Example text" onto
   every text input it creates, and there is NO way to clear it through the API:
   FormTextInput exposes no `placeholder` setting key, and set_attributes fails
   with an internal error on these elements. The design uses visible labels with
   empty placeholders, so hide it here. Scoped to `input` on purpose — the
   textarea's placeholder is real copy and must survive. */
input.chp-partner-chp-041::placeholder,
input.chp-partner-pgi-041::placeholder { color: transparent; }

/* ---- leadership card hover (was React state) ---- */
.chp-leadership-025:hover { transform: translateY(-4px); }
/* headshot cards: cross-fade to the second image */
.chp-leadership-025:hover .chp-leadership-027 { opacity: 0; }
.chp-leadership-025:hover .chp-leadership-028 { opacity: 1; }
/* monogram cards: tile goes accent, initials shrink, caption rises */
.chp-leadership-025:hover .chp-leadership-034,
.chp-leadership-025:hover .chp-leadership-040,
.chp-leadership-025:hover .chp-leadership-042,
.chp-leadership-025:hover .chp-leadership-061,
.chp-leadership-025:hover .chp-leadership-063,
.chp-leadership-025:hover .chp-leadership-065,
.chp-leadership-025:hover .chp-leadership-067,
.chp-leadership-025:hover .chp-leadership-069 { background: #D8344A; }
.chp-leadership-025:hover .chp-leadership-035 {
  transform: scale(0.86) translateY(-10px);
}
.chp-leadership-025:hover .chp-leadership-037 {
  opacity: 1;
  transform: none;
}
.chp-leadership-025:hover .chp-leadership-031 { color: #D8344A; }

/* ---- press release reader (was React state) ---- */
.chp-press-066::before {
  content: '';
  display: inline-block;
  width: 4px;
  height: 4px;
  border-radius: 4px;
  background: #8A847B;
  margin-right: 10px;
  vertical-align: middle;
}
.chp-press-068 .chp-press-069:first-child { margin-top: 0; }
@media (max-width: 780px) {
  /* the panel's 60px side padding leaves almost no measure on a phone */
  .chp-press-061 { padding: 44px 24px 40px !important; }
  .chp-press-060 { padding: 24px 12px !important; }
  .chp-press-067 { font-size: 26px !important; }
}

/* ==== per-page mobile overrides ==== */
/* ---- about ---- */
@media (max-width: 780px) {
  .chp-about-001 { grid-template-columns: 1fr !important; gap: 18px !important; }
  .chp-about-002 { flex-wrap: wrap; }
  .chp-about-003 { flex-wrap: wrap; }
  .chp-about-005 { flex-wrap: wrap; }
  .chp-about-009 { flex-wrap: wrap; }
  .chp-about-013 { max-width: 100% !important; }
  .chp-about-014 { grid-template-columns: 1fr !important; gap: 18px !important; }
  .chp-about-016 { font-size: 34px !important; line-height: 1.06 !important; letter-spacing: -0.025em !important; }
  .chp-about-018 { max-width: 100% !important; }
  .chp-about-021 { grid-template-columns: 1fr !important; gap: 18px !important; }
  .chp-about-022 { font-size: 27px !important; line-height: 1.1 !important; }
  .chp-about-024 { grid-template-columns: 1fr !important; gap: 18px !important; }
  .chp-about-026 { font-size: 34px !important; line-height: 1.06 !important; letter-spacing: -0.025em !important; }
  .chp-about-027 { max-width: 100% !important; }
  .chp-about-030 { grid-template-columns: repeat(2, 1fr) !important; gap: 18px !important; }
  .chp-about-031 { font-size: 27px !important; line-height: 1.1 !important; }
  .chp-about-035 { grid-template-columns: 1fr !important; gap: 18px !important; }
  .chp-about-036 { grid-template-columns: 1fr !important; gap: 18px !important; }
  .chp-about-039 { font-size: 34px !important; line-height: 1.06 !important; letter-spacing: -0.025em !important; }
  .chp-about-040 { max-width: 100% !important; }
  .chp-about-041 { grid-template-columns: repeat(2, 1fr) !important; gap: 18px !important; }
  .chp-about-042 { font-size: 27px !important; line-height: 1.1 !important; }
  .chp-about-045 { grid-template-columns: 1fr !important; gap: 18px !important; max-width: 100% !important; }
  .chp-about-049 { font-size: 27px !important; line-height: 1.1 !important; }
  .chp-about-050 { grid-template-columns: 1fr !important; gap: 18px !important; }
  .chp-about-055 { grid-template-columns: 1fr !important; gap: 18px !important; padding-bottom: 34px !important; }
  .chp-about-056 { flex-wrap: wrap; }
  .chp-about-058 { max-width: 100% !important; }
  .chp-about-059 { flex-wrap: wrap; }
  .chp-about-060 { flex-wrap: wrap; }
  .chp-about-063 { flex-wrap: wrap; }
  .chp-about-065 { flex-wrap: wrap; }
  .chp-about-066 { flex-wrap: wrap; }
}
/* ---- careers ---- */
@media (max-width: 780px) {
  .chp-careers-001 { grid-template-columns: 1fr !important; gap: 18px !important; }
  .chp-careers-002 { flex-wrap: wrap; }
  .chp-careers-003 { flex-wrap: wrap; }
  .chp-careers-005 { flex-wrap: wrap; }
  .chp-careers-009 { flex-wrap: wrap; }
  .chp-careers-016 { max-width: 100% !important; }
  .chp-careers-017 { grid-template-columns: 1fr !important; gap: 18px !important; }
  .chp-careers-019 { font-size: 34px !important; line-height: 1.06 !important; letter-spacing: -0.025em !important; }
  .chp-careers-021 { max-width: 100% !important; }
  .chp-careers-022 { grid-template-columns: repeat(2, 1fr) !important; gap: 18px !important; }
  .chp-careers-024 { font-size: 34px !important; line-height: 1.06 !important; letter-spacing: -0.025em !important; }
  .chp-careers-029 { grid-template-columns: repeat(2, 1fr) !important; gap: 18px !important; }
  .chp-careers-031 { font-size: 22px !important; }
  .chp-careers-034 { flex-wrap: wrap; }
  .chp-careers-035 { font-size: 34px !important; line-height: 1.06 !important; letter-spacing: -0.025em !important; }
  .chp-careers-036 { flex-wrap: wrap; }
  .chp-careers-039 { grid-template-columns: 1fr !important; gap: 18px !important; }
  .chp-careers-044 { grid-template-columns: 1fr !important; gap: 18px !important; }
  .chp-careers-047 { grid-template-columns: 1fr !important; gap: 18px !important; padding-bottom: 34px !important; }
  .chp-careers-048 { flex-wrap: wrap; }
  .chp-careers-050 { max-width: 100% !important; }
  .chp-careers-051 { flex-wrap: wrap; }
  .chp-careers-052 { flex-wrap: wrap; }
  .chp-careers-055 { flex-wrap: wrap; }
  .chp-careers-057 { flex-wrap: wrap; }
  .chp-careers-058 { flex-wrap: wrap; }
}
/* ---- donotsell ---- */
@media (max-width: 780px) {
  .chp-donotsell-001 { grid-template-columns: 1fr !important; gap: 18px !important; }
  .chp-donotsell-002 { flex-wrap: wrap; }
  .chp-donotsell-003 { flex-wrap: wrap; }
  .chp-donotsell-005 { flex-wrap: wrap; }
  .chp-donotsell-008 { flex-wrap: wrap; }
  .chp-donotsell-012 { max-width: 100% !important; }
  .chp-donotsell-014 { font-size: 34px !important; line-height: 1.06 !important; letter-spacing: -0.025em !important; }
  .chp-donotsell-016 { max-width: 100% !important; }
  .chp-donotsell-019 { max-width: 100% !important; }
  .chp-donotsell-020 { grid-template-columns: 1fr !important; gap: 18px !important; padding-bottom: 34px !important; }
  .chp-donotsell-021 { flex-wrap: wrap; }
  .chp-donotsell-023 { max-width: 100% !important; }
  .chp-donotsell-024 { flex-wrap: wrap; }
  .chp-donotsell-025 { flex-wrap: wrap; }
  .chp-donotsell-028 { flex-wrap: wrap; }
  .chp-donotsell-030 { flex-wrap: wrap; }
  .chp-donotsell-031 { flex-wrap: wrap; }
}
/* ---- holiday ---- */
@media (max-width: 780px) {
  .chp-holiday-001 { grid-template-columns: 1fr !important; gap: 18px !important; }
  .chp-holiday-002 { flex-wrap: wrap; }
  .chp-holiday-003 { flex-wrap: wrap; }
  .chp-holiday-005 { flex-wrap: wrap; }
  .chp-holiday-009 { flex-wrap: wrap; }
  .chp-holiday-017 { width: 210px !important; }
  .chp-holiday-018 { flex-wrap: wrap; }
  .chp-holiday-019 { max-width: 100% !important; }
  .chp-holiday-021 { font-size: 34px !important; line-height: 1.06 !important; letter-spacing: -0.025em !important; }
  .chp-holiday-023 { flex-wrap: wrap; }
  .chp-holiday-026 { grid-template-columns: 1fr !important; gap: 18px !important; max-width: 100% !important; }
  .chp-holiday-031 { flex-wrap: wrap; }
  .chp-holiday-034 { font-size: 27px !important; line-height: 1.1 !important; }
  .chp-holiday-038 { max-width: 100% !important; }
  .chp-holiday-040 { grid-template-columns: 1fr !important; gap: 18px !important; }
  .chp-holiday-042 { font-size: 34px !important; line-height: 1.06 !important; letter-spacing: -0.025em !important; }
  .chp-holiday-043 { max-width: 100% !important; }
  .chp-holiday-044 { grid-template-columns: 1fr !important; gap: 18px !important; }
  .chp-holiday-046 { font-size: 22px !important; }
  .chp-holiday-049 { grid-template-columns: 1fr !important; gap: 18px !important; }
  .chp-holiday-050 { font-size: 34px !important; line-height: 1.06 !important; letter-spacing: -0.025em !important; }
  .chp-holiday-051 { grid-template-columns: repeat(2, 1fr) !important; gap: 18px !important; }
  .chp-holiday-058 { grid-template-columns: 1fr !important; gap: 18px !important; }
  .chp-holiday-060 { grid-template-columns: repeat(2, 1fr) !important; gap: 18px !important; }
  .chp-holiday-064 { grid-template-columns: 1fr !important; gap: 18px !important; }
  .chp-holiday-065 { font-size: 27px !important; line-height: 1.1 !important; }
  .chp-holiday-067 { grid-template-columns: repeat(2, 1fr) !important; gap: 18px !important; }
  .chp-holiday-074 { font-size: 27px !important; line-height: 1.1 !important; }
  .chp-holiday-078 { grid-template-columns: 1fr !important; gap: 18px !important; padding-bottom: 34px !important; }
  .chp-holiday-079 { flex-wrap: wrap; }
  .chp-holiday-081 { max-width: 100% !important; }
  .chp-holiday-082 { flex-wrap: wrap; }
  .chp-holiday-083 { flex-wrap: wrap; }
  .chp-holiday-086 { flex-wrap: wrap; }
  .chp-holiday-088 { flex-wrap: wrap; }
  .chp-holiday-089 { flex-wrap: wrap; }
}
/* ---- home ---- */
@media (max-width: 780px) {
  .chp-hm-001 { grid-template-columns: 1fr !important; gap: 18px !important; }
  .chp-hm-002 { flex-wrap: wrap; }
  .chp-hm-003 { flex-wrap: wrap; }
  .chp-hm-005 { flex-wrap: wrap; }
  .chp-hm-009 { flex-wrap: wrap; }
  .chp-hm-019 { font-size: 22px !important; }
  .chp-hm-028 { font-size: 27px !important; line-height: 1.1 !important; }
  .chp-hm-035 { flex-wrap: wrap; }
  .chp-hm-036 { flex-wrap: wrap; }
  .chp-hm-037 { max-width: 100% !important; }
  .chp-hm-044 { max-width: 100% !important; }
  .chp-hm-045 { grid-template-columns: 1fr !important; gap: 18px !important; }
  .chp-hm-046 { font-size: 34px !important; line-height: 1.06 !important; letter-spacing: -0.025em !important; }
  .chp-hm-048 { max-width: 100% !important; }
  .chp-hm-049 { grid-template-columns: 1fr !important; gap: 18px !important; }
  .chp-hm-054 { flex-wrap: wrap; }
  .chp-hm-056 { font-size: 27px !important; line-height: 1.1 !important; }
  .chp-hm-058 { flex-wrap: wrap; }
  .chp-hm-062 { grid-template-columns: 1fr !important; gap: 18px !important; }
  .chp-hm-067 { grid-template-columns: 1fr !important; gap: 18px !important; }
  .chp-hm-069 { font-size: 34px !important; line-height: 1.06 !important; letter-spacing: -0.025em !important; }
  .chp-hm-071 { max-width: 100% !important; }
  .chp-hm-072 { grid-template-columns: 1fr !important; gap: 18px !important; }
  .chp-hm-076 { flex-wrap: wrap; }
  .chp-hm-077 { max-width: 100% !important; }
  .chp-hm-078 { grid-template-columns: 1fr !important; gap: 18px !important; }
  .chp-hm-079 { max-width: 100% !important; }
  .chp-hm-081 { grid-template-columns: 1fr !important; gap: 18px !important; }
  .chp-hm-082 { flex-wrap: wrap; }
  .chp-hm-085 { flex-wrap: wrap; }
  .chp-hm-090 { max-width: 100% !important; }
  .chp-hm-092 { font-size: 34px !important; line-height: 1.06 !important; letter-spacing: -0.025em !important; }
  .chp-hm-093 { flex-wrap: wrap; }
  .chp-hm-094 { flex-wrap: wrap; }
  .chp-hm-095 { flex-wrap: wrap; }
  .chp-hm-096 { width: 210px !important; }
  .chp-hm-102 { grid-template-columns: 1fr !important; gap: 18px !important; padding-bottom: 34px !important; }
  .chp-hm-103 { flex-wrap: wrap; }
  .chp-hm-105 { max-width: 100% !important; }
  .chp-hm-106 { flex-wrap: wrap; }
  .chp-hm-107 { flex-wrap: wrap; }
  .chp-hm-111 { flex-wrap: wrap; }
  .chp-hm-112 { flex-wrap: wrap; }
}
/* ---- leadership ---- */
@media (max-width: 780px) {
  .chp-leadership-001 { grid-template-columns: 1fr !important; gap: 18px !important; }
  .chp-leadership-002 { flex-wrap: wrap; }
  .chp-leadership-003 { flex-wrap: wrap; }
  .chp-leadership-005 { flex-wrap: wrap; }
  .chp-leadership-009 { flex-wrap: wrap; }
  .chp-leadership-013 { max-width: 100% !important; }
  .chp-leadership-014 { grid-template-columns: 1fr !important; gap: 18px !important; }
  .chp-leadership-016 { font-size: 34px !important; line-height: 1.06 !important; letter-spacing: -0.025em !important; }
  .chp-leadership-018 { max-width: 100% !important; width: 210px !important; }
  .chp-leadership-020 { flex-wrap: wrap; }
  .chp-leadership-024 { grid-template-columns: repeat(2, 1fr) !important; gap: 18px !important; }
  .chp-leadership-030 { flex-wrap: wrap; }
  .chp-leadership-034 { flex-wrap: wrap; }
  .chp-leadership-035 { font-size: 34px !important; line-height: 1.06 !important; letter-spacing: -0.025em !important; }
  .chp-leadership-040 { flex-wrap: wrap; }
  .chp-leadership-042 { flex-wrap: wrap; }
  .chp-leadership-043 { flex-wrap: wrap; }
  .chp-leadership-046 { grid-template-columns: 1fr !important; gap: 18px !important; padding-bottom: 34px !important; }
  .chp-leadership-047 { flex-wrap: wrap; }
  .chp-leadership-049 { max-width: 100% !important; }
  .chp-leadership-050 { flex-wrap: wrap; }
  .chp-leadership-051 { flex-wrap: wrap; }
  .chp-leadership-054 { flex-wrap: wrap; }
  .chp-leadership-056 { flex-wrap: wrap; }
  .chp-leadership-057 { flex-wrap: wrap; }
}
/* ---- partner-chp ---- */
@media (max-width: 780px) {
  .chp-partner-chp-001 { grid-template-columns: 1fr !important; gap: 18px !important; }
  .chp-partner-chp-002 { flex-wrap: wrap; }
  .chp-partner-chp-003 { flex-wrap: wrap; }
  .chp-partner-chp-005 { flex-wrap: wrap; }
  .chp-partner-chp-008 { flex-wrap: wrap; }
  .chp-partner-chp-012 { max-width: 100% !important; }
  .chp-partner-chp-015 { flex-wrap: wrap; }
  .chp-partner-chp-017 { font-size: 34px !important; line-height: 1.06 !important; letter-spacing: -0.025em !important; }
  .chp-partner-chp-019 { width: 210px !important; }
  .chp-partner-chp-021 { grid-template-columns: 1fr !important; gap: 18px !important; max-width: 100% !important; }
  .chp-partner-chp-025 { flex-wrap: wrap; }
  .chp-partner-chp-026 { flex-wrap: wrap; }
  .chp-partner-chp-038 { flex-wrap: wrap; }
  .chp-partner-chp-048 { max-width: 100% !important; }
  .chp-partner-chp-049 { grid-template-columns: 1fr !important; gap: 18px !important; padding-bottom: 34px !important; }
  .chp-partner-chp-050 { flex-wrap: wrap; }
  .chp-partner-chp-052 { max-width: 100% !important; }
  .chp-partner-chp-053 { flex-wrap: wrap; }
  .chp-partner-chp-054 { flex-wrap: wrap; }
  .chp-partner-chp-057 { flex-wrap: wrap; }
  .chp-partner-chp-059 { flex-wrap: wrap; }
  .chp-partner-chp-060 { flex-wrap: wrap; }
}
/* ---- partner-pgi ---- */
@media (max-width: 780px) {
  .chp-partner-pgi-001 { grid-template-columns: 1fr !important; gap: 18px !important; }
  .chp-partner-pgi-002 { flex-wrap: wrap; }
  .chp-partner-pgi-003 { flex-wrap: wrap; }
  .chp-partner-pgi-005 { flex-wrap: wrap; }
  .chp-partner-pgi-008 { flex-wrap: wrap; }
  .chp-partner-pgi-012 { max-width: 100% !important; }
  .chp-partner-pgi-015 { flex-wrap: wrap; }
  .chp-partner-pgi-017 { font-size: 34px !important; line-height: 1.06 !important; letter-spacing: -0.025em !important; }
  .chp-partner-pgi-021 { grid-template-columns: 1fr !important; gap: 18px !important; max-width: 100% !important; }
  .chp-partner-pgi-025 { flex-wrap: wrap; }
  .chp-partner-pgi-026 { flex-wrap: wrap; }
  .chp-partner-pgi-038 { flex-wrap: wrap; }
  .chp-partner-pgi-048 { max-width: 100% !important; }
  .chp-partner-pgi-049 { grid-template-columns: 1fr !important; gap: 18px !important; padding-bottom: 34px !important; }
  .chp-partner-pgi-050 { flex-wrap: wrap; }
  .chp-partner-pgi-052 { max-width: 100% !important; }
  .chp-partner-pgi-053 { flex-wrap: wrap; }
  .chp-partner-pgi-054 { flex-wrap: wrap; }
  .chp-partner-pgi-057 { flex-wrap: wrap; }
  .chp-partner-pgi-059 { flex-wrap: wrap; }
  .chp-partner-pgi-060 { flex-wrap: wrap; }
}
/* ---- pixiepost ---- */
@media (max-width: 780px) {
  .chp-pixiepost-001 { grid-template-columns: 1fr !important; gap: 18px !important; }
  .chp-pixiepost-002 { flex-wrap: wrap; }
  .chp-pixiepost-003 { flex-wrap: wrap; }
  .chp-pixiepost-005 { flex-wrap: wrap; }
  .chp-pixiepost-009 { flex-wrap: wrap; }
  .chp-pixiepost-013 { grid-template-columns: 1fr !important; gap: 18px !important; max-width: 100% !important; }
  .chp-pixiepost-015 { font-size: 34px !important; line-height: 1.06 !important; letter-spacing: -0.025em !important; }
  .chp-pixiepost-017 { max-width: 100% !important; }
  .chp-pixiepost-018 { flex-wrap: wrap; }
  .chp-pixiepost-019 { flex-wrap: wrap; }
  .chp-pixiepost-022 { max-width: 100% !important; }
  .chp-pixiepost-023 { font-size: 34px !important; line-height: 1.06 !important; letter-spacing: -0.025em !important; }
  .chp-pixiepost-024 { grid-template-columns: 1fr !important; gap: 18px !important; }
  .chp-pixiepost-027 { font-size: 22px !important; }
  .chp-pixiepost-030 { grid-template-columns: 1fr !important; gap: 18px !important; padding-bottom: 34px !important; }
  .chp-pixiepost-031 { flex-wrap: wrap; }
  .chp-pixiepost-033 { max-width: 100% !important; }
  .chp-pixiepost-034 { flex-wrap: wrap; }
  .chp-pixiepost-035 { flex-wrap: wrap; }
  .chp-pixiepost-038 { flex-wrap: wrap; }
  .chp-pixiepost-040 { flex-wrap: wrap; }
  .chp-pixiepost-041 { flex-wrap: wrap; }
}
/* ---- press ---- */
@media (max-width: 780px) {
  .chp-press-001 { grid-template-columns: 1fr !important; gap: 18px !important; }
  .chp-press-002 { flex-wrap: wrap; }
  .chp-press-003 { flex-wrap: wrap; }
  .chp-press-005 { flex-wrap: wrap; }
  .chp-press-008 { flex-wrap: wrap; }
  .chp-press-012 { flex-wrap: wrap; max-width: 100% !important; }
  .chp-press-014 { font-size: 34px !important; line-height: 1.06 !important; letter-spacing: -0.025em !important; }
  .chp-press-016 { max-width: 100% !important; }
  .chp-press-018 { flex-wrap: wrap; max-width: 100% !important; }
  .chp-press-020 { flex-wrap: wrap; }
  .chp-press-023 { max-width: 100% !important; }
  .chp-press-024 { grid-template-columns: 1fr !important; gap: 18px !important; }
  .chp-press-026 { flex-wrap: wrap; }
  .chp-press-030 { max-width: 100% !important; }
  .chp-press-031 { max-width: 100% !important; }
  .chp-press-032 { flex-wrap: wrap; }
  .chp-press-035 { flex-wrap: wrap; max-width: 100% !important; }
  .chp-press-042 { max-width: 100% !important; }
  .chp-press-043 { grid-template-columns: 1fr !important; gap: 18px !important; padding-bottom: 34px !important; }
  .chp-press-044 { flex-wrap: wrap; }
  .chp-press-046 { max-width: 100% !important; }
  .chp-press-047 { flex-wrap: wrap; }
  .chp-press-048 { flex-wrap: wrap; }
  .chp-press-051 { flex-wrap: wrap; }
  .chp-press-053 { flex-wrap: wrap; }
  .chp-press-054 { flex-wrap: wrap; }
}
/* ---- privacy ---- */
@media (max-width: 780px) {
  .chp-privacy-001 { grid-template-columns: 1fr !important; gap: 18px !important; }
  .chp-privacy-002 { flex-wrap: wrap; }
  .chp-privacy-003 { flex-wrap: wrap; }
  .chp-privacy-005 { flex-wrap: wrap; }
  .chp-privacy-008 { flex-wrap: wrap; }
  .chp-privacy-012 { max-width: 100% !important; }
  .chp-privacy-014 { font-size: 34px !important; line-height: 1.06 !important; letter-spacing: -0.025em !important; }
  .chp-privacy-017 { max-width: 100% !important; }
  .chp-privacy-020 { max-width: 100% !important; }
  .chp-privacy-021 { grid-template-columns: 1fr !important; gap: 18px !important; padding-bottom: 34px !important; }
  .chp-privacy-022 { flex-wrap: wrap; }
  .chp-privacy-024 { max-width: 100% !important; }
  .chp-privacy-025 { flex-wrap: wrap; }
  .chp-privacy-026 { flex-wrap: wrap; }
  .chp-privacy-029 { flex-wrap: wrap; }
  .chp-privacy-031 { flex-wrap: wrap; }
  .chp-privacy-032 { flex-wrap: wrap; }
}
/* ---- sitemap ---- */
@media (max-width: 780px) {
  .chp-sitemap-001 { grid-template-columns: 1fr !important; gap: 18px !important; }
  .chp-sitemap-002 { flex-wrap: wrap; }
  .chp-sitemap-003 { flex-wrap: wrap; }
  .chp-sitemap-005 { flex-wrap: wrap; }
  .chp-sitemap-008 { flex-wrap: wrap; }
  .chp-sitemap-012 { max-width: 100% !important; }
  .chp-sitemap-014 { font-size: 34px !important; line-height: 1.06 !important; letter-spacing: -0.025em !important; }
  .chp-sitemap-017 { grid-template-columns: 1fr !important; gap: 18px !important; max-width: 100% !important; }
  .chp-sitemap-019 { flex-wrap: wrap; }
  .chp-sitemap-023 { max-width: 100% !important; }
  .chp-sitemap-024 { grid-template-columns: 1fr !important; gap: 18px !important; padding-bottom: 34px !important; }
  .chp-sitemap-025 { flex-wrap: wrap; }
  .chp-sitemap-027 { max-width: 100% !important; }
  .chp-sitemap-028 { flex-wrap: wrap; }
  .chp-sitemap-029 { flex-wrap: wrap; }
  .chp-sitemap-032 { flex-wrap: wrap; }
  .chp-sitemap-034 { flex-wrap: wrap; }
  .chp-sitemap-035 { flex-wrap: wrap; }
}
/* ---- souvenir ---- */
@media (max-width: 780px) {
  .chp-souvenir-001 { grid-template-columns: 1fr !important; gap: 18px !important; }
  .chp-souvenir-002 { flex-wrap: wrap; }
  .chp-souvenir-003 { flex-wrap: wrap; }
  .chp-souvenir-005 { flex-wrap: wrap; }
  .chp-souvenir-009 { flex-wrap: wrap; }
  .chp-souvenir-018 { max-width: 100% !important; }
  .chp-souvenir-019 { grid-template-columns: 1fr !important; gap: 18px !important; }
  .chp-souvenir-021 { font-size: 34px !important; line-height: 1.06 !important; letter-spacing: -0.025em !important; }
  .chp-souvenir-023 { max-width: 100% !important; }
  .chp-souvenir-024 { flex-wrap: wrap; }
  .chp-souvenir-026 { grid-template-columns: 1fr !important; gap: 18px !important; }
  .chp-souvenir-028 { font-size: 27px !important; line-height: 1.1 !important; }
  .chp-souvenir-031 { grid-template-columns: 1fr !important; gap: 18px !important; }
  .chp-souvenir-033 { font-size: 34px !important; line-height: 1.06 !important; letter-spacing: -0.025em !important; }
  .chp-souvenir-034 { max-width: 100% !important; }
  .chp-souvenir-039 { grid-template-columns: 1fr !important; gap: 18px !important; }
  .chp-souvenir-040 { font-size: 34px !important; line-height: 1.06 !important; letter-spacing: -0.025em !important; }
  .chp-souvenir-045 { grid-template-columns: 1fr !important; gap: 18px !important; }
  .chp-souvenir-048 { font-size: 27px !important; line-height: 1.1 !important; }
  .chp-souvenir-052 { flex-wrap: wrap; }
  .chp-souvenir-053 { font-size: 34px !important; line-height: 1.06 !important; letter-spacing: -0.025em !important; }
  .chp-souvenir-054 { grid-template-columns: 1fr !important; gap: 18px !important; }
  .chp-souvenir-057 { font-size: 34px !important; line-height: 1.06 !important; letter-spacing: -0.025em !important; }
  .chp-souvenir-058 { grid-template-columns: repeat(2, 1fr) !important; gap: 18px !important; }
  .chp-souvenir-064 { grid-template-columns: 1fr !important; gap: 18px !important; }
  .chp-souvenir-065 { font-size: 34px !important; line-height: 1.06 !important; letter-spacing: -0.025em !important; }
  .chp-souvenir-067 { grid-template-columns: 1fr !important; gap: 18px !important; }
  .chp-souvenir-069 { flex-wrap: wrap; }
  .chp-souvenir-072 { grid-template-columns: 1fr !important; gap: 18px !important; }
  .chp-souvenir-076 { grid-template-columns: 1fr !important; gap: 18px !important; }
  .chp-souvenir-077 { max-width: 100% !important; }
  .chp-souvenir-078 { grid-template-columns: 1fr !important; gap: 18px !important; }
  .chp-souvenir-079 { grid-template-columns: 1fr !important; gap: 18px !important; }
  .chp-souvenir-082 { grid-template-columns: 1fr !important; gap: 18px !important; }
  .chp-souvenir-085 { grid-template-columns: 1fr !important; gap: 18px !important; }
  .chp-souvenir-086 { font-size: 34px !important; line-height: 1.06 !important; letter-spacing: -0.025em !important; }
  .chp-souvenir-087 { max-width: 100% !important; }
  .chp-souvenir-089 { font-size: 34px !important; line-height: 1.06 !important; letter-spacing: -0.025em !important; }
  .chp-souvenir-091 { flex-wrap: wrap; }
  .chp-souvenir-092 { max-width: 100% !important; }
  .chp-souvenir-093 { flex-wrap: wrap; }
  .chp-souvenir-094 { flex-wrap: wrap; }
  .chp-souvenir-096 { font-size: 34px !important; line-height: 1.06 !important; letter-spacing: -0.025em !important; }
  .chp-souvenir-097 { grid-template-columns: 1fr !important; gap: 18px !important; }
  .chp-souvenir-101 { grid-template-columns: 1fr !important; gap: 18px !important; }
  .chp-souvenir-102 { grid-template-columns: 1fr !important; gap: 18px !important; }
  .chp-souvenir-110 { grid-template-columns: 1fr !important; gap: 18px !important; }
  .chp-souvenir-111 { font-size: 27px !important; line-height: 1.1 !important; }
  .chp-souvenir-112 { max-width: 100% !important; }
  .chp-souvenir-114 { grid-template-columns: 1fr !important; gap: 18px !important; }
  .chp-souvenir-115 { grid-template-columns: 1fr !important; gap: 18px !important; }
  .chp-souvenir-120 { max-width: 100% !important; }
  .chp-souvenir-121 { font-size: 34px !important; line-height: 1.06 !important; letter-spacing: -0.025em !important; }
  .chp-souvenir-122 { flex-wrap: wrap; }
  .chp-souvenir-125 { grid-template-columns: 1fr !important; gap: 18px !important; padding-bottom: 34px !important; }
  .chp-souvenir-126 { flex-wrap: wrap; }
  .chp-souvenir-128 { max-width: 100% !important; }
  .chp-souvenir-129 { flex-wrap: wrap; }
  .chp-souvenir-130 { flex-wrap: wrap; }
  .chp-souvenir-133 { flex-wrap: wrap; }
  .chp-souvenir-135 { flex-wrap: wrap; }
  .chp-souvenir-136 { flex-wrap: wrap; }
}

/* ==== round-2 mobile fixes (must follow the per-page overrides) ==== */
@media (max-width: 780px) {
  /* Homepage final CTA: the two partner logo buttons stack full-width and
     centre, and the vertical rule between them is hidden. */
  .chp-hm-094 {
    width: 100% !important;
    flex: 1 1 100% !important;
    align-items: center !important;
    text-align: center !important;
    gap: 22px !important;
    padding: 12px 0 !important;
  }
  .chp-hm-094 > div { height: auto !important; width: 100% !important; }
  .chp-hm-094 img { margin: 0 auto !important; }
  .chp-hm-094 .cta-link { justify-content: center !important; width: 100% !important; }
  .chp-hm-098 { display: none !important; }

  /* Partner forms: "what happens next" rows keep the number beside the text
     instead of wrapping it underneath. */
  .chp-partner-chp-025,
  .chp-partner-pgi-025 { flex-wrap: nowrap !important; align-items: flex-start; }
  .chp-partner-chp-025 > div:first-child,
  .chp-partner-pgi-025 > div:first-child { flex: 0 0 30px !important; }

  /* Photogenic form hero logo */
  .chp-partner-pgi-019 {
    height: 144px !important;
    max-height: 144px !important;
    width: auto !important;
  }

  /* Division check-lists keep their tick column rather than collapsing to 1fr */
  .chp-souvenir-101,
  .chp-souvenir-114 {
    grid-template-columns: 18px 1fr !important;
    align-items: start;
  }

  /* Bunny Dance sits flush under the cards above it; the blanket
     `section { padding-top: 56px }` mobile rule would otherwise reopen the gap. */
  section.bunny-dance-section { padding-top: 0 !important; }
}

/* ==========================================================================
   Homepage hero — intro animation + hover states.
   Ported from the prototype's React phase machine (home-safe2.jsx):
   phase 'logo' -> 'opening' @1500ms -> 'open' @2500ms.

   Pure CSS: the intro replays on every page load, so no JS and no gating.
   Base styles hold the FINISHED state, so if animation never runs the hero
   still reads correctly (curtains parked off-screen, logos in their halves,
   copy visible). Each @keyframes animates FROM the start state, with
   animation-fill-mode: both holding that start state during the delay.

   Lives in the injected stylesheet because it needs @keyframes, descendant
   selectors and :has() — none of which the WHTML builder's css param accepts.
   ========================================================================== */

/* ---------- intro ---------- */
@keyframes chp-hero-curtain-l { from { transform: translateX(0); } to { transform: translateX(-115%); } }
@keyframes chp-hero-curtain-r { from { transform: translateX(0); } to { transform: translateX(115%); } }
@keyframes chp-hero-move-h    { from { left: 50%; top: 36%; }      to { left: 25%; top: 57%; } }
@keyframes chp-hero-move-s    { from { left: 50%; top: 64%; }      to { left: 75%; top: 57%; } }
@keyframes chp-hero-fade      { from { opacity: 0; }               to { opacity: 1; } }

.chp-hero-curtain-l,
.chp-hero-curtain-r {
  position: absolute; inset: 0; z-index: 10; pointer-events: none; background: #000;
  animation: 1s cubic-bezier(0.76, 0, 0.24, 1) 1.5s both;
}
.chp-hero-curtain-l { clip-path: polygon(0 0, 53% 0, 47% 100%, 0 100%);   transform: translateX(-115%); animation-name: chp-hero-curtain-l; }
.chp-hero-curtain-r { clip-path: polygon(53% 0, 100% 0, 100% 100%, 47% 100%); transform: translateX(115%); animation-name: chp-hero-curtain-r; }

/* logos travel out of the centre into their own halves */
.chp-hero-logo-holiday  { animation: chp-hero-move-h 2.1s cubic-bezier(0.16, 1, 0.3, 1) 1.5s both; }
.chp-hero-logo-souvenir { animation: chp-hero-move-s 2.1s cubic-bezier(0.16, 1, 0.3, 1) 1.5s both; }

/* copy fades in once the curtains are clear, staggered as in the prototype */
.chp-hero-reveal-labels  { animation: chp-hero-fade .6s ease 2.65s both; }
.chp-hero-reveal-heading { animation: chp-hero-fade .6s ease 2.70s both; }
.chp-hero-reveal-tagline { animation: chp-hero-fade .6s ease 2.80s both; }

/* ---------- hover ---------- */
/* The two clickable halves sit BEFORE the logos in the DOM, so a sibling
   combinator would only ever work in one direction. :has() on the section
   handles both symmetrically. */
.chp-hero-dim-holiday,
.chp-hero-dim-souvenir { position: absolute; inset: 0; background: rgba(6, 5, 6, 0.62); transition: background .45s ease; }

.chp-hero:has(.chp-hero-half-holiday:hover)  .chp-hero-dim-holiday  { background: rgba(6, 5, 6, 0.30); }
.chp-hero:has(.chp-hero-half-holiday:hover)  .chp-hero-dim-souvenir { background: rgba(6, 5, 6, 0.86); }
.chp-hero:has(.chp-hero-half-souvenir:hover) .chp-hero-dim-souvenir { background: rgba(6, 5, 6, 0.30); }
.chp-hero:has(.chp-hero-half-souvenir:hover) .chp-hero-dim-holiday  { background: rgba(6, 5, 6, 0.86); }

.chp-hero-logo-holiday img,
.chp-hero-logo-souvenir img { transition: transform .45s ease; }
.chp-hero:has(.chp-hero-half-holiday:hover)  .chp-hero-logo-holiday img  { transform: scale(1.06); }
.chp-hero:has(.chp-hero-half-souvenir:hover) .chp-hero-logo-souvenir img { transform: scale(1.06); }

/* "Enter" captions are hover-only in the design */
.chp-hero-caption { opacity: 0; transform: translateY(8px); transition: opacity .4s ease, transform .4s ease; }
.chp-hero:has(.chp-hero-half-holiday:hover)  .chp-hero-logo-holiday  .chp-hero-caption,
.chp-hero:has(.chp-hero-half-souvenir:hover) .chp-hero-logo-souvenir .chp-hero-caption { opacity: 1; transform: translateY(0); }

/* Respect a reduced-motion preference: show the finished hero immediately. */
@media (prefers-reduced-motion: reduce) {
  .chp-hero-curtain-l, .chp-hero-curtain-r,
  .chp-hero-logo-holiday, .chp-hero-logo-souvenir,
  .chp-hero-reveal-labels, .chp-hero-reveal-heading, .chp-hero-reveal-tagline { animation: none; }
  .chp-hero-reveal-labels, .chp-hero-reveal-heading, .chp-hero-reveal-tagline { opacity: 1; }
}

/* Below the mobile breakpoint the stacked hero replaces this one entirely. */
@media (max-width: 780px) {
  .chp-hero-curtain-l, .chp-hero-curtain-r { display: none; }
}

/* ---- lifted from page components ---- */
/* lifted from the privacy page component */
.legal-prose { font-size: 16px; line-height: 1.72; }
        .legal-prose .lh { font-family: inherit; font-weight: 600; color: #13110E; font-size: 22px; letter-spacing: -0.015em; line-height: 1.2; margin: 52px 0 18px; }
        .legal-prose .lh:first-child { margin-top: 0; }
        .legal-prose .lsub { font-weight: 600; color: #13110E; font-size: 16px; margin: 30px 0 8px; }
        .legal-prose p { margin: 0 0 16px; color: #3A3631; }
        .legal-prose a { color: #D8344A; text-decoration: underline; text-underline-offset: 2px; word-break: break-word; }
        .legal-prose ol, .legal-prose ul { margin: 0 0 16px; padding-left: 24px; }
        .legal-prose li { margin: 0 0 12px; color: #3A3631; padding-left: 6px; }
        .legal-prose li b, .legal-prose p b { color: #13110E; font-weight: 600; }
        .legal-prose .callout { border-left: 3px solid #D8344A; background: #FFFFFF; padding: 18px 22px; margin: 0 0 16px; border-radius: 8px; }
        .legal-prose .contact { background: #FFFFFF; border: 1px solid #E6E2DA; border-radius: 12px; padding: 28px 30px; margin-top: 24px; }
        .legal-prose .contact div { margin: 2px 0; }

/* lifted from the donotsell page component */
.legal-prose { font-size: 16px; line-height: 1.72; }
        .legal-prose .lh { font-family: inherit; font-weight: 600; color: #13110E; font-size: 22px; letter-spacing: -0.015em; line-height: 1.2; margin: 52px 0 18px; }
        .legal-prose .lh:first-child { margin-top: 0; }
        .legal-prose .lsub { font-weight: 600; color: #13110E; font-size: 16px; margin: 30px 0 8px; }
        .legal-prose p { margin: 0 0 16px; color: #3A3631; }
        .legal-prose a { color: #D8344A; text-decoration: underline; text-underline-offset: 2px; word-break: break-word; }
        .legal-prose ol, .legal-prose ul { margin: 0 0 16px; padding-left: 24px; }
        .legal-prose li { margin: 0 0 12px; color: #3A3631; padding-left: 6px; }
        .legal-prose li b, .legal-prose p b { color: #13110E; font-weight: 600; }
        .legal-prose .callout { border-left: 3px solid #D8344A; background: #FFFFFF; padding: 18px 22px; margin: 0 0 16px; border-radius: 8px; }
        .legal-prose .contact { background: #FFFFFF; border: 1px solid #E6E2DA; border-radius: 12px; padding: 28px 30px; margin-top: 24px; }
        .legal-prose .contact div { margin: 2px 0; }
