/* Content determines height; browser chrome must never crop the first screen. */
.homepage-offer .hero {
  height: auto;
  min-height: 100vh;
  min-height: 100svh;
  padding-top: 170px;
  padding-bottom: 150px;
}
.homepage-offer .hero-grid { min-width: 0; }
.homepage-offer .hero-copy,.homepage-offer .gift-card { min-width: 0; }
.homepage-offer .hero-facts { grid-template-columns: repeat(3,minmax(0,1fr)); }
.homepage-offer .hero-facts strong { white-space: normal; }
.homepage-offer .header nav.is-open { max-height: calc(100vh - 78px); max-height: calc(100svh - 78px); overflow-y: auto; overscroll-behavior: contain; }
.homepage-offer .section-heading h2 { min-width: 0; }
.homepage-offer .topup-config,.homepage-offer .topup-result { min-width: 0; }
/* A short landscape viewport is a scrollable page, never a compressed poster. */
@media(min-width:901px) and (max-height:700px) {
  .homepage-offer main,.homepage-offer .footer { padding-left: 0; }
  .homepage-offer .route-rail { display: none; }
  .homepage-offer .hero { padding-top: 165px; padding-bottom: 145px; }
  .homepage-offer .hero h1 { font-size: clamp(46px,5vw,68px); }
  .homepage-offer .hero-lead { font-size: 15px; }
}
/* Portrait tablets: give the offer full width, then the route and gift. */
@media(max-width:900px) {
  .homepage-offer .hero { display: block; padding-top: 128px; padding-bottom: 32px; }
  .homepage-offer .hero .hero-grid { grid-template-columns: minmax(0,1fr); row-gap: 160px; }
  .homepage-offer .hero h1 { font-size: clamp(42px,7.4vw,66px); }
  .homepage-offer .hero-copy { max-width: 100%; }
  .homepage-offer .hero-lead { font-size: 16px; max-width: 640px; }
  .homepage-offer .hero-sub { font-size: 13px; max-width: 620px; }
  .homepage-offer .hero .gift-card { width: 100%; max-width: 620px; margin: 0; }
  .homepage-offer .hero-scroll { position: relative; bottom: auto; margin-top: 70px; justify-content: center; }
  .homepage-offer .hero .stop-label { width: 110px; white-space: normal; font-size: 10px; top: calc(50% + 13px); }
  .homepage-offer .hero .stop-label small { display: block; position: absolute; top: -32px; width: 100%; margin: 0; font-size: 8px; }
  .homepage-offer .hero .route-stop:nth-child(5) .stop-label { width: 90px; }
  .homepage-offer .tasks .section-heading { display: block; }
  .homepage-offer .task-dialogue { margin-top: 28px; max-width: 520px; }
  .homepage-offer .topup-calculator { grid-template-columns: minmax(0,1fr); }
  .homepage-offer .limit-demo-body { grid-template-columns: minmax(0,1fr); }
  .homepage-offer .section-heading>p { max-width: 100%; }
}
@media(min-width:641px) and (max-width:900px) {
  .homepage-offer .hero .gift-card { display: grid; grid-template-columns: 1fr 1fr; column-gap: 28px; padding: 28px 32px 52px; }
  .homepage-offer .gift-top { grid-column: 1/-1; }
  .homepage-offer .gift-verb { grid-column: 1; margin-top: 25px; }
  .homepage-offer .gift-value { grid-column: 1; grid-row: 3/5; font-size: 128px; }
  .homepage-offer .gift-card h2 { grid-column: 2; grid-row: 2; align-self: end; margin-top: 25px; font-size: 25px; }
  .homepage-offer .gift-caption { grid-column: 2; grid-row: 3/5; font-size: 14px; }
  .homepage-offer .gift-route,.homepage-offer .gift-terms,.homepage-offer .gift-card>small { grid-column: 1/-1; }
}
@media(max-width:640px) {
  .homepage-offer .hero { padding-top: 116px; }
  .homepage-offer .hero h1 { font-size: clamp(35px,10.4vw,61px); }
  .homepage-offer .hero-lead { font-size: 14px; }
  .homepage-offer .hero-sub { font-size: 12px; }
  .homepage-offer .hero .stop-label { width: 100px; }
  .homepage-offer .hero .route-stop:nth-child(5) .stop-label { width: 80px; }
  .homepage-offer .hero-facts { gap: 8px; }
  .homepage-offer .hero-facts>div+div { padding-left: 8px; }
  .homepage-offer .hero-facts strong { font-size: 13px; }
  .homepage-offer .hero-facts>div>span { overflow-wrap: anywhere; }
  .homepage-offer .header nav.is-open { max-height: calc(100svh - 72px); }
}
@media(max-width:374px) {
  .homepage-offer .wrap { padding-left: 18px; padding-right: 18px; }
  .homepage-offer .hero-copy .eyebrow { font-size: 9px; letter-spacing: .09em; }
  .homepage-offer .hero .gift-card { padding-left: 17px; padding-right: 17px; column-gap: 12px; }
  .homepage-offer .gift-value { font-size: 76px; }
  .homepage-offer .gift-value>span { font-size: 18px; margin-left: 6px; }
  .homepage-offer .hero .gift-card h2 { font-size: 15px; }
  .homepage-offer .gift-terms { font-size: 9px; letter-spacing: 0; }
  .homepage-offer .hero-motion-controls { gap: 9px; }
  .homepage-offer .route-impulse { font-size: 10px; }
  .homepage-offer .hero-facts strong { font-size: 12px; }
  .homepage-offer .total-hours>output { font-size: 53px; }
  .homepage-offer .topup-payment>output { font-size: 30px; }
}
