/* Approved campaign composition. Search is a sibling row, never an overlay. */
.hero.has-campaign-layout { min-height: 0; background: var(--paper-light); }
.hero.has-campaign-layout .hero-stage { position: relative; isolation: isolate; overflow: hidden; height: clamp(280px, 25vw, 360px); min-height: 280px; }
.hero.has-campaign-layout .hero-collage { position: absolute; z-index: 0; inset: 0; height: 100%; }
.hero.has-campaign-layout [hidden] { display: none !important; }
.hero-frozen-frame, .hero-frozen-art { display: block; width: 100%; height: 100%; }
.hero-frozen-frame { width: min(100%, 1080px); margin-inline: auto; }
.hero-frozen-art { object-fit: cover; object-position: center; }
.hero-campaign-copy, .hero.has-campaign-layout .hero-default-heading { position: absolute; z-index: 2; top: 50%; left: 50%; transform: translate(-50%, -50%); width: min(56%, 760px); margin: 0; padding: 0 8px; color: var(--petrol-dark); text-align: center; }
.hero-campaign-label { display: inline-block; max-width: 100%; margin: 0 0 12px; padding: 5px 18px; border: 1px solid var(--gold); border-radius: 999px; color: var(--burgundy); font: 700 clamp(12px, 1.1vw, 15px)/1.35 var(--sans); letter-spacing: .12em; text-transform: uppercase; }
.hero-campaign-copy h1 { margin: 0; max-width: none; font: italic 600 clamp(34px, 4.4vw, 64px)/1.02 "Cormorant Reviews GUT", Georgia, serif; letter-spacing: -.025em; text-wrap: balance; }
.hero-campaign-copy h1 > span, .hero-campaign-copy h1 > em { display: block; padding: 0; background: none; }
.hero-campaign-copy h1 > em { margin-top: 2px; color: var(--burgundy); font-style: italic; }
.hero-campaign-terms { margin: 12px auto 0; max-width: 40ch; font: 600 .875rem/1.45 var(--sans); text-wrap: balance; }
.hero.has-campaign-layout .hero-default-heading { width: min(82%, 1080px); }
.hero.has-campaign-layout .hero-default-heading h1 { margin: 0; font-size: clamp(40px, 5vw, 68px); line-height: 1.1; white-space: normal; }
.hero.has-campaign-layout .hero-seal { position: absolute; z-index: 3; top: 12px; right: 16px; width: 80px; margin: 0; transform: none; }
.hero.is-frozen-fares .hero-seal { display: none; }
.hero.has-campaign-layout .hero-carousel-controls { position: absolute; z-index: 3; top: auto; right: 0; bottom: 8px; left: 0; height: 44px; transform: none; }
.hero-search-row { position: relative; z-index: 2; width: 100%; min-width: 0; padding: 12px 20px 16px; background: var(--paper-light); }
.hero-search-row > .search-form { position: relative; width: min(100%, 740px); margin: 0 auto; }
.hero-search-row .search-control { width: 100%; min-width: 0; min-height: 56px; }
.hero-search-row .search-control input { min-width: 0; font-size: 1rem; }
.hero-search-row .search-control .button { min-height: 56px; }
.hero-search-row .catalog-load-error { width: min(100%, 740px); margin: 8px auto 0; }

@media (max-width: 760px) {
  .hero.has-campaign-layout { --hero-mobile-stage-height: clamp(300px, calc(40vw + 160px), 360px); }
  .hero.has-campaign-layout .hero-stage { height: var(--hero-mobile-stage-height); min-height: var(--hero-mobile-stage-height); }
  .hero.has-campaign-layout .hero-default-heading { width: calc(100% - 36px); padding: 0; }
  .hero.has-campaign-layout .hero-default-heading h1 { font-size: clamp(34px, 8.4vw, 48px); }
  .hero.has-campaign-layout .hero-seal { top: 8px; right: 12px; width: 54px; }
  .hero.is-frozen-fares .hero-stage { display: flex; flex-direction: column; height: auto; min-height: var(--hero-mobile-stage-height); padding: 14px 16px 52px; }
  .hero.is-frozen-fares .hero-collage { display: contents; }
  .hero.is-frozen-fares .hero-slide-frozen { position: static; order: 2; width: 100%; margin-top: 8px; }
  .hero.is-frozen-fares .hero-frozen-frame { height: clamp(88px, 24vw, 120px); }
  .hero.is-frozen-fares .hero-frozen-art { height: 100%; object-fit: contain; }
  .hero-campaign-copy { position: static; order: 1; width: 100%; padding: 0; transform: none; }
  .hero-campaign-label { margin-bottom: 7px; padding: 3px 12px; font-size: .75rem; letter-spacing: .09em; }
  .hero-campaign-copy h1 { font-size: clamp(30px, 8.6vw, 44px); line-height: 1.04; }
  .hero-campaign-terms { margin-top: 8px; font-size: .8125rem; }
  .hero-search-row { padding: 10px 16px 14px; }
  .hero-search-row .search-control { min-height: 52px; gap: 8px; padding-left: 12px; }
  .hero-search-row .search-control input { font-size: .875rem; }
  .hero-search-row .search-control .button { min-width: 84px; min-height: 52px; padding-inline: 10px; }
}

@media (prefers-reduced-motion: reduce) {
  .hero.has-campaign-layout .hero-slide { transition: none; }
}
