/* Shared public-site visual language, based on the birthday landing.
   Load after page-local styles. Business data and widget contracts stay intact. */
:root {
  --paper:#f0eee8;
  --ff-display:'Oswald','Arial Narrow',Arial,sans-serif;
  --ff-body:'Manrope',Arial,sans-serif;
  --ff-tech:'Manrope',Arial,sans-serif;
}
html { color-scheme:dark; }
[hidden] { display:none!important; }
:focus-visible { outline:3px solid #ff343b; outline-offset:4px; }
body.site-page { font-size:15px; line-height:1.75; text-rendering:optimizeLegibility; }
.site-page h1,.site-page h2 { font-family:var(--ff-display); font-weight:600; text-transform:uppercase; line-height:1.12; letter-spacing:-.025em; }
.site-page h1 { overflow-wrap:normal; }
.site-page h3,.site-page h4 { line-height:1.35; }
.site-page .display { font-size:clamp(46px,5.2vw,76px); }
.site-page .section-title { font-size:clamp(34px,3.65vw,52px); line-height:1.15; }
.site-page .section { padding-block:100px; }
.site-page .section--tight { padding-block:70px; }
.site-page .section-head { max-width:none; display:flex; justify-content:space-between; align-items:flex-end; gap:40px; margin-bottom:44px; }
.site-page .section-head>h2 { max-width:760px; }
.site-page .section-head>.lead { max-width:370px; font-size:14px; margin:0; }
.site-page .lead { font-size:15px; line-height:1.9; }
.site-page .eyebrow { gap:10px; font-size:10px; font-weight:800; letter-spacing:.12em; }
.site-page .eyebrow:before { width:7px; height:7px; border-radius:50%; box-shadow:none; }
.site-page .grid-bg,.site-page .page-hero:before,.site-page .page-hero__streaks { display:none; }
.site-page .breadcrumb { font-size:10px; letter-spacing:.1em; }
.site-page .card,.site-page .panel,.site-page .spec,.site-page .perk,.site-page .op-feat { border-radius:3px; box-shadow:none; }
.site-page .card:after { display:none; }
.site-page .card:hover,.site-page .spec:hover,.site-page .mini-feat:hover { transform:translateY(-3px); }
.site-page .card__title { font:800 21px/1.35 var(--ff-body); margin-bottom:14px; }
.site-page .card__text { font-size:14px; line-height:1.8; }
.site-page .card__num { font-size:10px; letter-spacing:.13em; }
.site-page .chip { border-radius:3px; font:700 10px/1.5 var(--ff-body); letter-spacing:.08em; }
.site-page .media { border-radius:3px; }
.site-page .media__tag { top:auto; bottom:16px; left:16px; font:700 9px/1.5 var(--ff-body); padding:12px 16px; background:#111214d9; }
image-slot::part(frame),image-slot::part(image) { border-radius:inherit; }

/* Header and shared forms also apply to the birthday page's isolated chrome. */
.site-header { background:#111214f7; border-bottom:1px solid #ffffff24; backdrop-filter:blur(16px); }
.site-header.scrolled { background:#111214f7; }
.site-header__inner { height:84px; gap:22px; }
.site-header .brand img { height:48px; max-width:128px; object-fit:contain; }
.site-header .nav { margin-left:auto; gap:0; }
.site-header .nav a { font:600 11px/1.5 'Manrope',Arial,sans-serif; padding:12px 9px; letter-spacing:0; }
.site-header .nav a.active:after { bottom:5px; left:9px; right:9px; background:#ff343b; }
.site-header .header-spacer { flex:0; }
.site-header .header-actions { gap:12px; }
.site-header .header-tel { border-color:#ffffff24; width:42px; height:42px; border-radius:3px; }
.btn { clip-path:none; border-radius:3px; min-height:54px; padding:16px 23px; gap:20px; font:800 12px/1.45 'Manrope',Arial,sans-serif; text-transform:none; letter-spacing:0; box-shadow:none; }
.btn:hover { box-shadow:none; }
.btn--lg { min-height:58px; padding:18px 25px; font-size:13px; }
.btn--ghost { border-color:var(--line-strong); }
.btn .arr { width:21px; height:21px; }
.site-header .btn { min-height:44px; font-size:11px; padding:12px 16px; }
.link-arrow { font:800 12px/1.6 var(--ff-body); letter-spacing:0; text-transform:none; }
.drawer { background:#111214fb; overflow-y:auto; padding-top:85px; }
.drawer a { font-family:'Oswald',sans-serif; text-transform:uppercase; font-size:clamp(23px,4vw,32px); padding:11px 0; }
.drawer .header-tel { font-family:'Manrope',sans-serif; font-size:16px; text-transform:none; }
.drawer-close,.burger { border-radius:3px; background:transparent; }
.modal__card { border-radius:4px; background:#1b1c1f; }
.modal h3 { font-family:'Oswald',sans-serif; text-transform:uppercase; font-size:32px; font-weight:600; }
.modal .field label { font:600 12px/1.6 'Manrope',sans-serif; text-transform:none; letter-spacing:0; }
.modal .eyebrow { font-size:10px; }
.modal .field input,.modal .field select,.modal .field textarea { border-radius:3px; min-height:50px; font-size:16px; }
.modal .consent__txt { font-size:11px; line-height:1.7; }
.bw,.bw-back { --bg:#111214; --bg-2:#17181b; --surface:#1b1c1f; --accent:#ff343b; --ff-display:'Oswald',sans-serif; --ff-body:'Manrope',sans-serif; --ff-tech:'Manrope',sans-serif; }
.bw .bw__title b { font-size:24px; font-weight:600; }
.bw .bw-srv button,.bw .bw-mon button,.bw .bw-days button { border-radius:3px; }
.bw .bw-srv b { font-size:14px; letter-spacing:0; }

.site-page .reveal { opacity:1; transform:none; transition:none; }

/* Paper sections reset component tokens locally, retaining semantic colors. */
.site-page .dz-paper {
  --bg:#f0eee8; --bg-2:#e9e6df; --surface:#faf9f5; --surface-2:#e9e6df; --surface-3:#dfdcd5;
  --text:#202125; --text-dim:#66656a; --text-faint:#737177;
  --line:#20212526; --line-strong:#20212540;
  background:var(--paper); color:var(--text); border-color:var(--line);
}
.dz-paper .card,.dz-paper .spec,.dz-paper .mini-feat,.dz-paper .perk,.dz-paper .op-feat { background:var(--surface); }
.dz-paper .btn { color:#fff; }
.dz-paper .btn--ghost { color:var(--text); }
.dz-paper .feat__mark { border-color:#20212530; background:transparent; }
.dz-paper .section-head>.lead { color:var(--text-dim); }
.dz-paper .mini-feat h4 { color:var(--text); }
.dz-paper .rv-card__text { color:var(--text-dim); font-size:14px; line-height:1.8; }
.dz-paper .rv__nav { color:#fff; }
.dz-paper .rv__dots button { background:#20212533; }
.dz-paper .rv__dots button[aria-current=true] { background:var(--accent); }

/* Photo-led heroes, with existing admin slots and useful local fallbacks. */
.site-page .page-hero { background:#111214; padding-block:70px 80px; isolation:isolate; }
.site-page .page-hero h1 { font-size:clamp(44px,5vw,70px); margin-top:20px; text-wrap:initial; max-width:700px; }
.site-page .page-hero .lead { max-width:430px; margin-top:25px; font-size:14px; }
.site-page .page-hero .eyebrow { color:#d5d3d5; }
.site-page .dz-photo-hero { min-height:610px; display:flex; align-items:center; }
.dz-photo-hero .page-hero__grid { display:block; }
.dz-photo-hero .page-hero__grid>div { max-width:650px; }
.page-hero__backdrop { position:absolute; inset:0 0 0 29%; z-index:-1; }
.page-hero__backdrop image-slot { display:block; width:100%; height:100%; border:0; }
.page-hero__backdrop:after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,#111214 0%,#111214c4 19%,#11121420 68%),linear-gradient(0deg,#111214,transparent 50%); pointer-events:none; }
.site-page .page-hero__cta { margin-top:30px; gap:16px; }
.site-page .price-hero .big { font-family:var(--ff-display); font-size:37px; }
.site-page .price-hero .label { font-size:11px; }
.site-page .price-hero { margin-top:20px; }

/* Home: quieter visual hierarchy, real imagery and a red racing ribbon. */
.page-home .hero { min-height:0; border-bottom:0; }
.page-home .hero__inner { padding-block:65px 80px; }
.page-home .hero h1 { max-width:710px; font-size:clamp(48px,5.65vw,80px); line-height:1.1; }
.page-home .hero .lead { max-width:440px; font-size:14px; margin-top:26px; }
.page-home .hero__media { inset:0 0 0 27%; background:#111214; }
.page-home .hero__media:after { content:''; position:absolute; inset:0; z-index:2; pointer-events:none; background:linear-gradient(90deg,#111214 0%,#111214c4 19%,#11121418 70%); }
.page-home .hero__media:before,.page-home .hero__speed,.page-home .hero__streaks,.page-home .hero__pulse,.page-home .hero__scroll { display:none; }
.page-home .hero__overlay { background:linear-gradient(0deg,#111214 0%,transparent 75%); }
.page-home .hero__readout { display:none; }
.page-home .hero__cta { gap:16px; margin-top:30px; }
.page-home .hero__specs { gap:0; margin-top:35px; }
.page-home .hero__specs .chip { border:0; background:transparent; padding:0 19px; border-right:1px solid #ffffff30; border-radius:0; font-size:9px; color:#b1afb5; }
.page-home .hero__specs .chip:first-child { padding-left:0; }
.page-home .hero__specs .chip:last-child { border:0; }
.page-home .marquee { background:#df2530; border:0; }
.page-home .marquee__track span { font:500 18px/1.4 var(--ff-display); letter-spacing:.06em; padding:13px 0; color:white; }
.page-home .marquee__track span:after { content:'✳'; display:inline; background:transparent; box-shadow:none; width:auto; height:auto; border-radius:0; margin:0 30px; }
.page-home .about { gap:55px; }
.page-home .about>.reveal>.lead { max-width:490px; }
.page-home .mini-feat { border:0; border-top:1px solid var(--line); border-radius:0; background:transparent; padding:20px 0; gap:18px; }
.page-home .mini-feat h4 { font:800 15px/1.4 var(--ff-body); }
.page-home .mini-feat p { font-size:13px; }
.page-home .mini-feat .feat__mark { background:transparent; border:0; color:#ba1f28; }
.page-home .tspecs { gap:16px; }
.page-home .tspec { background:var(--surface); border-radius:3px; }
.page-home .tspec--pop { background:var(--surface); border-color:#ff343b; }
.page-home .tspec__name { font-family:var(--ff-display); font-size:27px; letter-spacing:.01em; }
.page-home .tspec__price { font-family:var(--ff-display); font-size:30px; }
.page-home .tspec__sub { font-size:11px; letter-spacing:0; }
.page-home .tspec dt,.page-home .tspec dd { font-size:11px; }
.page-home .core { gap:18px; }
.page-home .dir { min-height:400px; padding:32px; }
.page-home .dir .card__title { font-size:29px; font-family:var(--ff-display); text-transform:uppercase; max-width:330px; margin-top:auto; }
.page-home .dir .card__text { max-width:380px; color:#ceccd0; font-size:13px; }
.page-home .dir__media { opacity:1; }
.page-home .dir:before { z-index:1; background:linear-gradient(0deg,#111214f5,transparent); }
.page-home .dir>.card__num { margin-bottom:85px; }
.page-home .dir__price { margin-top:22px; }
.page-home .teasers .card { min-height:300px; border-top:2px solid var(--accent); }
.page-home .teaser .card__title { font-family:var(--ff-display); font-size:30px; text-transform:uppercase; }
.page-home .gallery2 { gap:16px; }

/* Interior pages retain their individual content and pricing tables. */
.site-page .specs { gap:16px; }
.site-page .tspec { min-width:0; }
.site-page .tspec__head { flex-wrap:wrap; }
.site-page .spec .lbl { font-size:10px; }
.site-page .spec .val { font-family:var(--ff-display); font-size:28px; }
.site-page .spec p,.site-page .perk p { font-size:14px; line-height:1.8; }
.site-page .disc { border-radius:3px; background:var(--surface); }
.site-page .disc h3 { font:800 19px/1.4 var(--ff-body); }
.site-page .ptable { border-radius:3px; background:var(--surface); }
.site-page .ptable th { font-family:var(--ff-body); font-size:11px; letter-spacing:.02em; }
.site-page .ptable .tname { font-family:var(--ff-display); font-size:22px; letter-spacing:.01em; }
.site-page .ptable .price { font-size:26px; }
.site-page .bd-strip { border-radius:3px; }
.site-page .perks { gap:18px; }
.site-page .perk { border:0; border-top:1px solid var(--line); padding:25px 0; background:transparent; }
.site-page .perk__n { font-family:var(--ff-display); font-size:38px; font-weight:500; }
.site-page .perk h4 { font:800 18px/1.4 var(--ff-body); }
.site-page .step .num { font-family:var(--ff-display); font-size:38px; }
.site-page .cta-band { background:#1b1c1f; }
.site-page .cta-band__inner { padding-block:65px; }
.site-page .cta-band h2 { font-size:clamp(34px,3.6vw,52px); max-width:740px; }
.site-page .cc-hero { padding-block:75px; }
.site-page .cc-hero__bg { background:#111214; }
.site-page .cc-hero h1 { font-size:clamp(44px,4.8vw,68px); font-weight:600; }
.site-page .cc-card { border-radius:5px; background:linear-gradient(135deg,#25262a,#121315 65%); border:1px solid #ffffff40; }
.site-page .cc-card__pct { font-size:55px; font-weight:600; }
.site-page .cc-item,.site-page .cc-form,.site-page .cc-calc { border-radius:3px; }
.site-page .cc-item b { font-size:23px; font-weight:600; }
.site-page .tr-hero { padding-block:75px; }
.site-page .tr-hero__bg { background:linear-gradient(90deg,#111214,#111214a8),url('img/site/gal-1.webp') center/cover; }
.site-page .tr-hero h1 { font-size:clamp(43px,5vw,73px); font-weight:600; }
.site-page .tr-seats { border-radius:3px; background:#1b1c1ff0; }
.site-page .tr-date,.site-page .op-date { border-radius:3px; font-size:11px; letter-spacing:.05em; }
.site-page .tr-cond__i,.site-page .tr-prize,.site-page .tr-form { border-radius:3px; }
.site-page .tr-cond__v { font-family:var(--ff-display); font-size:28px; }
.site-page .tr-reg-head { text-align:left; }
.site-page .op-hero { padding-block:90px; }
.site-page .op-hero__bg { background:linear-gradient(0deg,#111214f0,#11121480),url('img/site/fr-hero.webp') center/cover; }
.site-page .op-hero__bg:before { display:none; }
.site-page .op-hero h1 { font-size:clamp(42px,5vw,72px); font-weight:600; }
.site-page .op-hero .lead { color:#dedce0; }
.site-page .op-sale,.site-page .op-form,.site-page .op-info>div,.site-page .op-time__row { border-radius:3px; }
.site-page .op-feat h3 { font-family:var(--ff-body); font-size:18px; font-weight:800; }
.site-page .op-time__t { font-family:var(--ff-display); font-size:24px; letter-spacing:0; font-weight:500; }
.page-reviews .rv { background:#111214; min-height:100dvh; }
.page-reviews .rv__in { max-width:580px; }
.page-reviews .rv h1 { font-family:var(--ff-display); font-weight:600; font-size:clamp(36px,7vw,52px); }
.page-reviews .rv-step h2 { font-family:var(--ff-display); font-size:30px; }
.page-reviews .rv-maps a,.page-reviews .rv-form,.page-reviews .rv-done { border-radius:3px; }
.site-page .legal .legal__body h2 { font-size:28px; }
.site-page .legal__body p,.site-page .legal__body ul { font-size:14px; line-height:1.9; }
.site-page .legal__toc { border-radius:3px; top:110px; }
.site-page .legal__updated { font:500 11px/1.7 var(--ff-body); letter-spacing:0; }
.site-page .page-hero:has(+.legal) h1 { font-size:clamp(36px,4.5vw,62px); }

/* A compact contact footer with an actual map, not a separate screen of map. */
.site-footer { background:#111214; }
.footer-intro { display:flex; justify-content:space-between; align-items:center; gap:35px; padding-top:60px; }
.footer-intro .brand img { height:48px; }
.footer-intro p { font:500 31px/1.2 var(--ff-display); text-transform:uppercase; margin:0 auto 0 20px; }
.site-footer .footer-grid { grid-template-columns:.95fr .85fr 1.2fr; gap:50px; padding-block:45px; }
.site-footer .footer-col h5 { color:#ff343b; font:800 10px/1.5 var(--ff-body); letter-spacing:.1em; }
.site-footer .footer-col p,.site-footer .footer-col a { font-size:12px; }
.site-footer .footer-tel { font:500 30px/1.3 var(--ff-display)!important; }
.site-footer .footer-links { display:grid; grid-template-columns:1fr 1fr; gap:4px 20px; }
.site-footer .footer-map-wrap { border:1px solid #ffffff24; min-width:0; }
.site-footer .footer-map { height:235px; }
.site-footer .social { width:38px; height:38px; border-radius:3px; }
.site-footer .footer-bottom { font-size:10px; padding-block:23px; }

@media(min-width:1480px) {
  .site-header .header-tel { font-size:12px; width:auto; padding:0 7px; border:0; gap:8px; }
}
@media(max-width:1150px) {
  .site-page .section { padding-block:80px; }
  .site-page .section--tight { padding-block:60px; }
  .site-page .section-head { gap:30px; }
  .site-header__inner { gap:16px; }
  .site-header .header-spacer { flex:1; }
  .site-page .page-hero h1 { font-size:58px; }
  .site-footer .footer-grid { gap:30px; }
  .footer-intro p { font-size:27px; }
}
@media(max-width:800px) {
  .site-header__inner { height:72px; }
  .site-header .brand img { height:42px; }
  .site-page .section-head { display:block; }
  .site-page .section-head>.lead { max-width:540px; margin-top:20px; }
  .site-page .page-hero h1 { font-size:clamp(42px,6.8vw,58px); }
  .site-page .dz-photo-hero { min-height:580px; }
  .page-hero__backdrop { left:12%; }
  .page-hero__backdrop:after { background:linear-gradient(90deg,#111214,#111214bd 35%,#11121430),linear-gradient(0deg,#111214,transparent 80%); }
  .page-home .hero__media { left:10%; }
  .page-home .hero h1 { font-size:62px; max-width:590px; }
  .page-home .hero .lead { max-width:400px; }
  .site-footer .footer-grid { grid-template-columns:1fr 1fr; }
  .site-footer .footer-map-wrap { grid-column:1/-1; }
  .site-footer .footer-map { height:250px; }
  .footer-intro { flex-wrap:wrap; gap:22px; }
  .footer-intro p { font-size:23px; margin-left:0; }
  .footer-intro>.btn { display:none; }
}
@media(max-width:580px) {
  .site-header__inner { height:68px; gap:10px; }
  .site-header .brand img { height:38px; max-width:102px; }
  .site-header .header-actions { gap:8px; }
  .site-header .header-actions .btn { font-size:10px; min-height:42px; padding:11px 13px; gap:9px; }
  .site-header .header-actions .btn .arr { width:17px; height:17px; }
  .site-header .header-tel { display:none; }
  .burger { width:40px; height:42px; }
  .burger span { left:10px; right:10px; }
  .site-page .section { padding-block:60px; }
  .site-page .section--tight { padding-block:45px; }
  .site-page .section-title { font-size:clamp(30px,9vw,34px); }
  .site-page .section-head { margin-bottom:30px; }
  .site-page .section-head>.lead { font-size:13px; }
  .site-page .lead { font-size:14px; }
  .site-page .card { padding:24px; }
  .site-page .card__title { font-size:20px; }
  .site-page .card__text { font-size:13px; }
  .site-page .btn { min-height:52px; font-size:12px; padding:15px 20px; }
  .site-page .page-hero { padding-block:42px; }
  .site-page .page-hero h1 { font-size:clamp(30px,10vw,40px); margin-top:15px; }
  .site-page .page-hero .eyebrow { font-size:8px; }
  .site-page .page-hero .lead { font-size:13px; line-height:1.85; margin-top:20px; }
  .site-page .dz-photo-hero { display:block; min-height:0; padding-top:225px; padding-bottom:35px; }
  .page-hero__backdrop { inset:0 0 auto; height:350px; }
  .page-hero__backdrop:after { background:linear-gradient(0deg,#111214 0%,#111214ba 30%,#1112140a 90%); }
  .site-page .page-hero__cta { margin-top:25px; display:grid; grid-template-columns:1fr; gap:12px; }
  .site-page .page-hero__cta .btn { width:100%; justify-content:space-between; }
  .site-page .page-hero__cta .btn--ghost { justify-content:center; }
  .page-home .hero__inner { padding-block:225px 34px; }
  .page-home .hero__media { inset:0 0 auto; height:360px; }
  .page-home .hero__media:after { display:none; }
  .page-home .hero__overlay { background:linear-gradient(0deg,#111214 0%,#111214ba 35%,#11121410 88%); height:370px; }
  .page-home .hero h1 { font-size:44px; line-height:1.1; max-width:100%; margin-top:15px; }
  .page-home .hero .lead { font-size:13px; line-height:1.85; }
  .page-home .hero__cta { display:grid; grid-template-columns:1fr; gap:12px; margin-top:25px; }
  .page-home .hero__cta .btn { justify-content:space-between; }
  .page-home .hero__cta .btn--ghost { justify-content:center; }
  .page-home .hero__specs { margin-top:28px; row-gap:12px; }
  .page-home .hero__specs .chip { font-size:8px; padding-inline:9px; }
  .page-home .marquee__track span { font-size:15px; }
  .page-home .about { gap:30px; }
  .page-home .tspec__head { flex-wrap:wrap; }
  .page-home .tspec__price { font-size:28px; }
  .page-home .dir { min-height:370px; padding:26px; }
  .page-home .dir .card__title { font-size:29px; }
  .site-page .cta-band__inner { padding-block:45px; }
  .site-page .cta-band h2 { font-size:35px; }
  .site-page .cta-band .btn { width:100%; justify-content:space-between; }
  .site-page .price-hero .big { font-size:34px; }
  .site-page .cc-hero,.site-page .tr-hero { padding-block:45px; }
  .site-page .cc-hero h1,.site-page .tr-hero h1 { font-size:40px; }
  .site-page .tr-seats { max-width:none; padding:24px; }
  .site-page .op-hero { padding-block:65px; }
  .site-page .op-hero h1 { font-size:40px; }
  .site-page .op-feats { grid-template-columns:1fr; }
  .site-page .legal .legal__body h2 { font-size:25px; }
  .site-page .legal__body p,.site-page .legal__body ul { font-size:13px; }
  .site-page .legal__toc { position:static; }
  .site-page .page-hero:has(+.legal) h1 { font-size:33px; overflow-wrap:anywhere; }
  .footer-intro { padding-top:40px; }
  .footer-intro .brand img { height:42px; }
  .footer-intro p { font-size:20px; max-width:160px; margin:0; }
  .site-footer .footer-grid { grid-template-columns:1fr; gap:30px; padding-block:35px; }
  .site-footer .footer-map-wrap { grid-column:auto; }
  .site-footer .footer-col p,.site-footer .footer-col a { font-size:12px; }
  .site-footer .footer-bottom { font-size:9px; gap:18px; }
  .site-footer .footer-bottom .row { gap:12px!important; }
}
@media(max-width:359px) {
  .site-header__inner { gap:8px; }
  .site-header .brand img { max-width:88px; height:34px; }
  .site-header .header-actions { gap:6px; }
  .site-header .header-actions .btn { padding-inline:10px; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  .site-page .reveal { opacity:1; transform:none; transition:none; }
}

/* Review pass: a short overview at home, the full comparison on the price page. */
.page-home .ride-card { display:flex; flex-direction:column; padding:0 0 28px; overflow:hidden; }
.page-home .ride-photo { width:100%; height:220px; object-fit:cover; margin-bottom:26px; }
.page-home .ride-card .tspec__head,.page-home .ride-card .tspec__sub,.page-home .ride-card .ride-copy { margin-inline:26px; }
.page-home .ride-card .tspec__head { display:block; }
.page-home .ride-card .tspec__price { display:block; margin-top:10px; }
.page-home .ride-card .tspec__sub { margin-top:12px; color:var(--text-dim); font-size:12px; }
.page-home .ride-copy { font-size:13px; line-height:1.8; color:var(--text-dim); margin-block:16px 24px; }
.page-home .ride-card .btn { margin:auto 26px 0; width:auto; }
.home-faq { display:grid; grid-template-columns:.8fr 1.2fr; gap:80px; }
.home-faq .eyebrow { color:#a61920; margin-bottom:18px; }
.home-faq .btn { margin-top:32px; }
.home-faq .faq-list details { border-top:1px solid var(--line-strong); }
.home-faq .faq-list details:last-child { border-bottom:1px solid var(--line-strong); }
.home-faq .faq-list summary { padding:25px 36px 25px 0; font-weight:800; font-size:15px; cursor:pointer; position:relative; list-style:none; }
.home-faq .faq-list summary::-webkit-details-marker { display:none; }
.home-faq .faq-list summary:after { content:'+'; position:absolute; right:5px; top:19px; color:#a61920; font-size:26px; font-weight:400; }
.home-faq .faq-list details[open] summary:after { content:'−'; }
.home-faq .faq-list p { font-size:14px; line-height:1.85; color:var(--text-dim); margin:0 28px 25px 0; }
.home-faq .faq-list a { text-decoration:underline; text-underline-offset:3px; color:#a61920; }
.page-club .dz-photo-hero { min-height:430px; }
.page-club .dz-photo-hero h1 { font-size:clamp(40px,4.5vw,64px); }
.page-club .dz-photo-hero .page-hero__backdrop { left:45%; }
.site-header .header-lk { border-radius:3px; width:40px; height:42px; }
.site-header .nav a { padding-inline:8px; }
/* Red text on paper needs a darker ink than the button fill. */
.dz-paper .accent,.dz-paper .tspec__price,.dz-paper .price-foot .k { color:#ba1f28; }
.site-page .dz-paper { --accent:#ba1f28; --accent-2:#ba1f28; --text-dim:#5e5c63; --text-faint:#6e6b73; }
@media(max-width:800px) {
 .home-faq { gap:35px; grid-template-columns:1fr; }
}
@media(max-width:580px) {
 .page-home .ride-photo { height:210px; }
 .page-club .dz-photo-hero { min-height:0; }
 .page-club .dz-photo-hero .page-hero__backdrop { inset:0 0 auto; }
 .site-header .header-lk { width:36px; height:40px; }
 .site-header .header-actions .btn { padding-inline:10px; }
 .site-header .header-actions .btn .arr { display:none; }
}
@media(prefers-reduced-motion:reduce) {
 *,*:before,*:after { animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; scroll-behavior:auto!important; }
}

/* White small button text retains sufficient contrast. */
.btn:not(.btn--ghost),.birthday-landing .button:not(.button--outline) { background:#df2530; border-color:#df2530; }
.btn:not(.btn--ghost):hover,.birthday-landing .button:not(.button--outline):hover { background:#bd1c27; border-color:#bd1c27; }
.site-page .dz-paper { color-scheme:light; }
.site-page .dz-paper .tspec__sub { color:#ba1f28; }
.site-page .dz-paper .summer-tag { color:#fff; background:#b21e27; }

html { scroll-padding-top:100px; }
#first-race { scroll-margin-top:100px; }

/* Подписи карточек лежат прямо на фото: без подложки красный текст теряется. */
.page-home .dir:has(.dir__media)>.card__num { position:relative; z-index:2; align-self:flex-start; width:fit-content; padding:3px 8px; color:#fff; background:#111214d9; border-radius:2px; }

/* Класс .rv-stars занят полосой рейтинга из drivezone.css: там маска и ширина 80px,
   поэтому кнопки оценки на /otzyv были крошечными. */
#rv-stars { display:flex; justify-content:center; width:auto; height:auto; background:none; -webkit-mask:none; mask:none; }

/* Клубная карта: стили таблиц живут только в club.php, а чекбокс ломало общее правило .cc-form label. */
.page-club-card .ptable { border:1px solid var(--line); border-radius:3px; overflow:hidden; background:var(--surface); }
.page-club-card .ptable-scroll { overflow-x:auto; }
.page-club-card .ptable table { width:100%; min-width:420px; border-collapse:collapse; }
.page-club-card .ptable th,.page-club-card .ptable td { padding:14px 12px; border-bottom:1px solid var(--line); text-align:center; }
.page-club-card .ptable tr:last-child td { border-bottom:0; }
.page-club-card .ptable th:first-child,.page-club-card .ptable td:first-child { text-align:left; }
.page-club-card .ptable .cname { font-weight:700; color:var(--text); }
.page-club-card .ptable .cname .n { display:block; font-size:12px; font-weight:500; color:var(--text-dim); }
.page-club-card .ptable .price { font-family:var(--ff-display); font-size:22px; font-weight:600; white-space:nowrap; }
.page-club-card .ptable .price .u { font-size:.6em; margin-left:3px; color:var(--text-dim); }
.page-club-card .cc-form label.consent { display:flex; font-family:var(--ff-body); font-size:13px; letter-spacing:0; text-transform:none; }
.page-club-card .cc-form .consent input { position:absolute; width:0; height:0; padding:0; border:0; opacity:0; }

@media(max-width:700px) {
  /* Таблицы с ценами шире экрана: без подсказки видно только первую колонку. */
  .page-club .ptable:has(thead)::after,.page-club-card .ptable:has(thead)::after { content:'Листайте таблицу вправо →'; display:block; padding:9px 14px; font-size:12px; color:var(--text-dim); border-top:1px solid var(--line); }
  /* Строки с текстом вместо цен: подпись и условие друг под другом, иначе текст обрезается. */
  .page-club .ptable table:not(:has(thead)),.page-club .ptable table:not(:has(thead)) tbody,.page-club .ptable table:not(:has(thead)) tr,.page-club .ptable table:not(:has(thead)) td { display:block; width:auto; min-width:0; }
  .page-club .ptable table:not(:has(thead)) td:first-child { border-bottom:0; padding-bottom:4px; }
  .page-club .ptable table:not(:has(thead)) td.wide { padding-top:0; font-size:14px; }
  .page-club .ptable .cname .n { display:block; margin-left:0; margin-top:3px; }
}

/* Контраст: белый текст на #ff343b даёт 3.6:1, тот же красный и серый на бумаге — 3.1–4.2:1. */
.birthday-landing .racing-strip,.birthday-landing .tariff__ribbon,.site-page .tr-date,.site-page .op-date,.kids__price .badge { background:#df2530; }
.birthday-landing .tariff__ribbon { font-size:10px; }
.birthday-landing .program .eyebrow,.birthday-landing .tariffs .eyebrow,.birthday-landing [data-quiz="tariff-help"] { color:#a61920; font-size:11px; }
.birthday-landing .tariff__unit,.birthday-landing .fine-print { color:#5f5e63; font-size:11px; }
.site-page .dz-paper .ptable thead .sub th { color:#5c5961; }
.bw .bw-btn:not(:disabled),.bw .bw-dur button.is-on { background:#df2530; }
