.promo-page { background:#fff; }
.promo-page main { overflow:hidden; }
.promo-page .promo-hero,
.promo-page .promo-facts,
.promo-page .promo-section,
.promo-page .promo-cta { width:min(1280px,calc(100% - 40px)); margin:0 auto; }
.promo-page .promo-hero { display:grid; grid-template-columns:minmax(0,.82fr) minmax(520px,1.18fr); gap:clamp(28px,5vw,68px); align-items:center; padding:clamp(34px,5vw,68px) 0; }
.promo-page .promo-discount { display:inline-block; margin:0 0 12px; color:var(--red); font-size:clamp(54px,7vw,92px); font-weight:950; line-height:.9; letter-spacing:-.06em; }
.promo-page .promo-hero h1 { margin:0 0 22px; font-size:clamp(46px,5vw,72px); line-height:.92; letter-spacing:-.055em; }
.promo-page .promo-hero .lead { color:var(--muted); font-size:clamp(18px,1.7vw,23px); line-height:1.45; }
.promo-page .promo-hero .actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:26px; }
.promo-page .promo-hero__visual { position:relative; margin:0; aspect-ratio:16/10; overflow:hidden; border:1px solid var(--line); border-top:4px solid var(--red); border-radius:8px; box-shadow:0 14px 35px rgba(15,17,21,.09); }
.promo-page .promo-hero__visual img { width:100%; height:100%; object-fit:cover; object-position:center; }
.promo-page .promo-hero__visual figcaption { position:absolute; right:16px; bottom:16px; left:16px; padding:14px 16px; border:1px solid rgba(227,6,19,.2); border-radius:8px; background:rgba(255,255,255,.92); font-weight:900; }
.promo-page .promo-facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; padding-bottom:clamp(62px,7vw,90px); }
.promo-page .promo-facts div,
.promo-page .promo-card-grid article,
.promo-page .promo-explain ol li,
.promo-page .promo-locations article { border:1px solid var(--line); border-top:3px solid var(--red); border-radius:8px; background:#fff; box-shadow:0 14px 35px rgba(15,17,21,.07); transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease; }
.promo-page .promo-facts div { display:grid; gap:7px; padding:22px; }
.promo-page .promo-facts strong { color:var(--red); font-size:clamp(24px,2.5vw,36px); }
.promo-page .promo-facts span { color:var(--muted); line-height:1.4; }
.promo-page .promo-section { position:relative; padding:clamp(64px,7vw,92px) 0; }
.promo-page .promo-section--bordered::before { content:""; position:absolute; top:0; right:0; left:0; height:1px; background:var(--line); }
.promo-page .promo-section__head { display:grid; grid-template-columns:minmax(150px,.33fr) minmax(0,1fr); gap:30px; align-items:start; margin-bottom:30px; }
.promo-page .promo-section__head h2,
.promo-page .promo-explain h2 { margin:0 0 14px; font-size:clamp(34px,4.5vw,58px); line-height:1; letter-spacing:-.04em; }
.promo-page .promo-section__head p,
.promo-page .promo-explain > div > p:last-child { max-width:780px; color:var(--muted); font-size:18px; line-height:1.55; }
.promo-page .promo-card-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.promo-page .promo-card-grid article { min-height:250px; padding:24px; }
.promo-page .promo-card-grid article > span { display:grid; place-items:center; width:42px; height:42px; margin-bottom:34px; border-radius:50%; background:var(--red); color:#fff; font-weight:950; }
.promo-page .promo-card-grid h3 { margin:0 0 12px; font-size:23px; }
.promo-page .promo-card-grid p { margin:0; color:var(--muted); line-height:1.5; }
.promo-page .promo-explain { display:grid; grid-template-columns:minmax(0,.75fr) minmax(520px,1.25fr); gap:clamp(30px,6vw,80px); align-items:start; }
.promo-page .promo-explain ol { display:grid; gap:12px; margin:0; padding:0; list-style:none; counter-reset:stages; }
.promo-page .promo-explain ol li { position:relative; display:grid; grid-template-columns:minmax(160px,.38fr) minmax(0,1fr); gap:20px; padding:20px 22px 20px 66px; counter-increment:stages; }
.promo-page .promo-explain ol li::before { content:counter(stages); position:absolute; top:15px; left:18px; display:grid; place-items:center; width:34px; height:34px; border-radius:50%; background:var(--red); color:#fff; font-weight:950; }
.promo-page .promo-explain strong { font-size:19px; }
.promo-page .promo-explain span { color:var(--muted); line-height:1.45; }
.promo-page .promo-locations { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.promo-page .promo-locations article { display:grid; align-content:start; gap:10px; padding:clamp(24px,4vw,38px); }
.promo-page .promo-locations article > span { color:var(--red); font-size:13px; font-weight:950; letter-spacing:.06em; text-transform:uppercase; }
.promo-page .promo-locations h3 { margin:0; font-size:clamp(26px,3vw,38px); line-height:1.05; }
.promo-page .promo-locations p { margin:0 0 8px; color:var(--muted); }
.promo-page .promo-locations a { color:var(--red); font-size:17px; font-weight:950; }
.promo-page .promo-cta { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:30px; align-items:center; margin-bottom:clamp(64px,7vw,92px); padding:clamp(28px,4vw,44px); border-radius:8px; background:#111318; color:#fff; }
.promo-page .promo-cta__label { margin:0 0 12px; color:#ff8389; font-weight:950; text-transform:uppercase; letter-spacing:.07em; }
.promo-page .promo-cta h2 { margin:0 0 10px; font-size:clamp(30px,4vw,48px); }
.promo-page .promo-cta p:not(.promo-cta__label) { margin:0; color:#d7d9dd; line-height:1.5; }
.promo-page .promo-cta > div:last-child { display:grid; gap:12px; justify-items:end; }
.promo-page .promo-cta > div:last-child > a:first-child { color:#fff; font-size:22px; font-weight:950; text-decoration:none; }
@media (hover:hover) {
  .promo-page .promo-facts div:hover,
  .promo-page .promo-card-grid article:hover,
  .promo-page .promo-explain ol li:hover,
  .promo-page .promo-locations article:hover { transform:translateY(-4px); border-color:#efb8bc; box-shadow:0 20px 44px rgba(15,17,21,.11); }
  .promo-page .promo-locations a:hover { text-decoration:underline; text-underline-offset:4px; }
}
@media (max-width:1040px) {
  .promo-page .promo-hero { grid-template-columns:1fr; }
  .promo-page .promo-hero__visual { order:-1; width:min(820px,100%); justify-self:center; }
  .promo-page .promo-card-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .promo-page .promo-explain { grid-template-columns:1fr; }
}
@media (max-width:760px) {
  .promo-page .promo-section__head { grid-template-columns:1fr; gap:12px; }
  .promo-page .promo-facts,
  .promo-page .promo-locations { grid-template-columns:1fr; }
  .promo-page .promo-cta { grid-template-columns:1fr; }
  .promo-page .promo-cta > div:last-child { justify-items:start; }
}
@media (max-width:600px) {
  .promo-page .promo-hero,
  .promo-page .promo-facts,
  .promo-page .promo-section,
  .promo-page .promo-cta { width:min(100% - 28px,1280px); }
  .promo-page .promo-hero { padding-top:18px; }
  .promo-page .promo-hero__visual { aspect-ratio:4/3; }
  .promo-page .promo-hero__visual img { object-position:52% center; }
  .promo-page .promo-discount { font-size:64px; }
  .promo-page .promo-hero h1 { font-size:clamp(42px,12vw,54px); }
  .promo-page .promo-card-grid { grid-template-columns:1fr; }
  .promo-page .promo-card-grid article { min-height:0; }
  .promo-page .promo-hero .actions .button--primary { display:none; }
  .promo-page .promo-hero .actions .button--ghost { width:100%; justify-content:center; }
  .promo-page .promo-explain ol li { grid-template-columns:1fr; gap:6px; }
  .promo-page .promo-cta .button { width:100%; justify-content:center; }
}
@media (prefers-reduced-motion:reduce) {
  .promo-page .promo-facts div,
  .promo-page .promo-card-grid article,
  .promo-page .promo-explain ol li,
  .promo-page .promo-locations article { transition:none; }
}
