/*fsbase*/#karting-hero-1{font-size:16px;}
/* ============================================================================
   KARTING HERO 1 — Apex "Chase the perfect lap"
   Carbon scene, racing-red accent, diagonal speed streaks, checkered corner,
   glass lap-time badge, count-up chips. Tokens on #ID, .light/.dark re-scope.
   ========================================================================== */
#karting-hero-1{
  --kh-carbon:#0c0d10;
  --kh-accent:var(--btn-primary-light-background-color,#ff2e3f);
  --kh-lime:#d8ff36;
  --kh-ink:#f5f6f8;
  --kh-soft:#9a9da6;
  --kh-line:rgba(255,255,255,.12);
  position:relative;
  overflow:hidden;
  background:radial-gradient(120% 120% at 80% -10%, #1a1c22 0%, #0c0d10 58%, #060608 100%);
  color:var(--kh-ink);
}
#karting-hero-1.light{
  --kh-ink:#0c0d10; --kh-soft:#5c5f67; --kh-line:rgba(12,13,16,.12);
  --kh-accent:var(--btn-primary-light-background-color,#ff2e3f);
  background:radial-gradient(120% 120% at 80% -10%, #ffffff 0%, #f3f4f6 60%, #eceef1 100%);
}
#karting-hero-1.dark{ --kh-accent:var(--btn-primary-dark-background-color,#ff3b4a); }
#karting-hero-1 *{ box-sizing:border-box; }

/* ---- BACKDROP ---------------------------------------------------------- */
#karting-hero-1 .kh1-bg{ position:absolute; inset:0; pointer-events:none; z-index:0; overflow:hidden; }
#karting-hero-1 .kh1-streak{
  position:absolute; height:2px; width:60%; left:-10%;
  background:linear-gradient(90deg, transparent, color-mix(in srgb,var(--kh-accent) 70%,transparent), transparent);
  transform:rotate(-18deg); opacity:.5;
}
#karting-hero-1 .kh1-streak-1{ top:24%; animation:kh1streak 3.2s linear infinite; }
#karting-hero-1 .kh1-streak-2{ top:52%; width:48%; opacity:.35; animation:kh1streak 4.1s linear infinite .6s; }
#karting-hero-1 .kh1-streak-3{ top:76%; width:42%; background:linear-gradient(90deg, transparent, color-mix(in srgb,var(--kh-lime) 55%,transparent), transparent); opacity:.3; animation:kh1streak 3.6s linear infinite 1.1s; }
@keyframes kh1streak{ 0%{ transform:translateX(-20%) rotate(-18deg); opacity:0; } 30%{ opacity:.5; } 100%{ transform:translateX(180%) rotate(-18deg); opacity:0; } }
#karting-hero-1 .kh1-glow{
  position:absolute; top:-20%; right:-10%; width:60%; height:90%;
  background:radial-gradient(circle at 60% 40%, color-mix(in srgb,var(--kh-accent) 26%,transparent), transparent 62%);
  filter:blur(10px);
}
#karting-hero-1 .kh1-checker{
  position:absolute; left:0; bottom:0; width:160px; height:160px; opacity:.12;
  background-image:conic-gradient(currentColor 90deg, transparent 90deg 180deg, currentColor 180deg 270deg, transparent 270deg);
  background-size:26px 26px; color:var(--kh-ink);
  -webkit-mask-image:radial-gradient(120% 120% at 0% 100%, #000 0%, transparent 70%);
  mask-image:radial-gradient(120% 120% at 0% 100%, #000 0%, transparent 70%);
}

#karting-hero-1 .container{ position:relative; z-index:2; }

/* ---- LAYOUT ------------------------------------------------------------ */
#karting-hero-1 .kh1-hero{ display:grid; grid-template-columns:1.05fr .95fr; align-items:center; gap:clamp(32px,5vw,76px); }
#karting-hero-1 .kh1-copy{ max-width:580px; }

/* ---- KICKER ------------------------------------------------------------ */
#karting-hero-1 .kh1-kicker{
  display:inline-flex; align-items:center; gap:10px;
  font-size:12px; letter-spacing:.16em; text-transform:uppercase; font-weight:800; font-style:italic;
  color:var(--kh-ink); margin:0 0 22px; padding:7px 15px;
  border:1px solid var(--kh-line); border-radius:999px;
  background:color-mix(in srgb,var(--kh-ink) 5%,transparent);
}
#karting-hero-1 .kh1-dot{ width:8px; height:8px; border-radius:50%; background:var(--kh-accent); box-shadow:0 0 0 4px color-mix(in srgb,var(--kh-accent) 26%,transparent); animation:kh1blink 1.4s ease-in-out infinite; }
@keyframes kh1blink{ 0%,100%{ opacity:1; } 50%{ opacity:.35; } }

/* ---- HEADLINE ---------------------------------------------------------- */
#karting-hero-1 h1{ font-size:clamp(44px,6.4vw,86px); line-height:.94; font-weight:900; letter-spacing:-.03em; margin:0 0 24px; text-transform:uppercase; }
#karting-hero-1 h1 em{ font-style:italic; font-weight:900; color:var(--kh-accent); }
#karting-hero-1 .kh1-lede{ font-size:clamp(16px,1.45vw,18.5px); line-height:1.65; margin:0; max-width:50ch; color:var(--kh-soft); text-transform:none; }

/* ---- ACTIONS ----------------------------------------------------------- */
#karting-hero-1 .kh1-actions{ display:flex; flex-wrap:wrap; align-items:center; gap:14px; margin-top:34px; }
#karting-hero-1 .kh1-btn-primary{
  display:inline-flex; align-items:center; justify-content:center;
  background:var(--kh-accent); color:#fff; border:0;
  border-radius:11px; clip-path:polygon(10px 0,100% 0,calc(100% - 10px) 100%,0 100%);
  padding:16px 34px; font-weight:900; font-size:15px; font-style:italic; letter-spacing:.04em; text-transform:uppercase;
  box-shadow:0 16px 34px -14px color-mix(in srgb,var(--kh-accent) 85%,transparent);
  transition:transform .2s ease, box-shadow .2s ease, filter .2s ease;
}
#karting-hero-1 .kh1-btn-primary:hover{ transform:translateY(-3px); box-shadow:0 24px 46px -16px color-mix(in srgb,var(--kh-accent) 95%,transparent); filter:brightness(1.06); }
#karting-hero-1 .kh1-btn-soft{
  display:inline-flex; align-items:center; gap:9px;
  border-radius:11px; padding:15px 26px; font-weight:800; font-size:14px; letter-spacing:.04em; text-transform:uppercase; color:inherit;
  border:1px solid var(--kh-line); background:color-mix(in srgb,var(--kh-ink) 5%,transparent);
  transition:border-color .2s ease, transform .2s ease;
}
#karting-hero-1 .kh1-btn-soft:hover{ border-color:var(--kh-accent); transform:translateY(-3px); }
#karting-hero-1 .kh1-arrow{ width:17px; height:17px; color:var(--kh-accent); transition:transform .2s ease; }
#karting-hero-1 .kh1-btn-soft:hover .kh1-arrow{ transform:translateX(4px); }

/* ---- STAT CHIPS -------------------------------------------------------- */
#karting-hero-1 .kh1-chips{ display:flex; flex-wrap:wrap; gap:14px 30px; margin-top:42px; padding-top:30px; border-top:1px solid var(--kh-line); }
#karting-hero-1 .kh1-chip-num{ display:flex; align-items:baseline; gap:2px; font-size:clamp(28px,3vw,38px); font-weight:900; font-style:italic; letter-spacing:-.03em; line-height:1; margin:0; color:var(--kh-ink); }
#karting-hero-1 .kh1-chip-suffix{ color:var(--kh-accent); font-size:.5em; font-weight:800; font-style:normal; }
#karting-hero-1 .kh1-chip-label{ margin:8px 0 0; font-size:12px; letter-spacing:.06em; text-transform:uppercase; font-weight:700; color:var(--kh-soft); }

/* ---- MEDIA ------------------------------------------------------------- */
#karting-hero-1 .kh1-media{ position:relative; }
#karting-hero-1 .kh1-media img{
  width:100%; display:block; aspect-ratio:4/5; object-fit:cover; border-radius:16px;
  border:1px solid var(--kh-line);
  box-shadow:0 40px 80px -34px rgba(0,0,0,.8);
}
#karting-hero-1 .kh1-badge{
  position:absolute; left:-16px; bottom:28px;
  display:flex; align-items:center; gap:13px;
  padding:14px 20px; border-radius:13px;
  background:color-mix(in srgb,var(--kh-carbon) 78%, transparent);
  border:1px solid var(--kh-line);
  -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px);
  box-shadow:0 24px 50px -26px rgba(0,0,0,.8);
}
#karting-hero-1.light .kh1-badge{ background:color-mix(in srgb,#fff 82%, transparent); }
#karting-hero-1 .kh1-badge-flag{ display:inline-flex; align-items:center; justify-content:center; width:42px; height:42px; border-radius:10px; background:color-mix(in srgb,var(--kh-accent) 18%,transparent); color:var(--kh-accent); flex:0 0 auto; }
#karting-hero-1 .kh1-badge-flag svg{ width:23px; height:23px; }
#karting-hero-1 .kh1-badge-num{ margin:0; font-size:26px; font-weight:900; font-style:italic; color:var(--kh-ink); letter-spacing:-.02em; line-height:1; }
#karting-hero-1 .kh1-badge-num span{ font-size:.55em; color:var(--kh-accent); }
#karting-hero-1 .kh1-badge-label{ margin:5px 0 0; font-size:11px; letter-spacing:.08em; text-transform:uppercase; font-weight:700; color:var(--kh-soft); }

/* ---- RESPONSIVE -------------------------------------------------------- */
@media (max-width:880px){
  #karting-hero-1 .kh1-hero{ grid-template-columns:1fr; gap:40px; }
  #karting-hero-1 .kh1-media{ order:-1; max-width:480px; }
  #karting-hero-1 .kh1-media img{ aspect-ratio:16/11; }
}
@media (max-width:520px){
  #karting-hero-1 .kh1-actions{ gap:11px; }
  #karting-hero-1 .kh1-btn-primary, #karting-hero-1 .kh1-btn-soft{ width:100%; justify-content:center; }
  #karting-hero-1 .kh1-chips{ gap:14px 22px; }
  #karting-hero-1 .kh1-badge{ left:0; right:0; bottom:-18px; margin:0 12px; }
}

/* ---- CSS entrance (no JS) ---------------------------------------------- */
@keyframes kh1rise{ from{ opacity:0; transform:translateY(16px); } to{ opacity:1; transform:none; } }
#karting-hero-1 [data-rise]{ animation:kh1rise .6s ease both; animation-delay:var(--d,0s); }
@media (prefers-reduced-motion:reduce){ #karting-hero-1 [data-rise], #karting-hero-1 .kh1-streak, #karting-hero-1 .kh1-dot{ animation:none; } }
/*fsreset*/#karting-hero-1 p,#karting-hero-1 li,#karting-hero-1 a,#karting-hero-1 blockquote,#karting-hero-1 figcaption,#karting-hero-1 span,#karting-hero-1 strong,#karting-hero-1 em{font-size:inherit;}

/* img-safety */#karting-hero-1 img{max-width:100%;}
#karting-hero-1 img[class]{max-height:720px;}



/*fsbase*/#karting-gallery-1--2{font-size:16px;}
/* ============================================================================
   KARTING GALLERY 1 — Apex "Where the laps happen"
   Dark bento gallery: image + gradient overlay + red tag + meta, hover zoom.
   .light store-shell fallback.
   ========================================================================== */
#karting-gallery-1--2{
  --kgl-accent:var(--btn-primary-light-background-color,#ff2e3f);
  --kgl-ink:#f5f6f8;
  --kgl-muted:#9a9da6;
  position:relative;
  background:linear-gradient(180deg,#0c0d10 0%, #101116 100%);
  color:var(--kgl-ink);
  font-family:inherit;
}
#karting-gallery-1--2.dark{ --kgl-accent:var(--btn-primary-dark-background-color,#ff3b4a); }
#karting-gallery-1--2 *{ box-sizing:border-box; }

#karting-gallery-1--2 .kgl1-head{ display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:18px 40px; margin:0 0 40px; }
#karting-gallery-1--2 .kgl1-eyebrow{ display:inline-block; font-size:12.5px; font-weight:800; font-style:italic; letter-spacing:.14em; text-transform:uppercase; color:var(--kgl-accent); margin:0 0 12px; }
#karting-gallery-1--2 .kgl1-title{ margin:0; font-size:clamp(30px,3.4vw,46px); line-height:1.05; font-weight:900; letter-spacing:-.02em; text-transform:uppercase; }
#karting-gallery-1--2 .kgl1-sub{ margin:0; max-width:42ch; font-size:16px; line-height:1.6; color:var(--kgl-muted); }

#karting-gallery-1--2 .kgl1-grid{ display:grid; grid-template-columns:repeat(3,1fr); grid-auto-rows:230px; gap:18px; }
#karting-gallery-1--2 .kgl1-card{
  position:relative; overflow:hidden; border-radius:18px; display:block;
  border:1px solid rgba(255,255,255,.08);
  box-shadow:0 22px 46px -28px rgba(0,0,0,.7);
}
#karting-gallery-1--2 .kgl1-card-lg{ grid-row:span 2; }
#karting-gallery-1--2 .kgl1-card-wide{ grid-column:span 2; }
#karting-gallery-1--2 .kgl1-card img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .55s cubic-bezier(.2,.7,.2,1); }
#karting-gallery-1--2 .kgl1-card:hover img{ transform:scale(1.07); }
#karting-gallery-1--2 .kgl1-overlay{
  position:absolute; inset:0; display:flex; flex-direction:column; justify-content:flex-end; padding:22px; color:#fff;
  background:linear-gradient(180deg, rgba(6,6,8,0) 26%, rgba(6,6,8,.85) 100%);
}
#karting-gallery-1--2 .kgl1-tag{
  align-self:flex-start; font-size:11px; font-weight:800; font-style:italic; letter-spacing:.08em; text-transform:uppercase;
  color:#fff; background:var(--kgl-accent); padding:5px 11px; border-radius:7px; clip-path:polygon(6px 0,100% 0,calc(100% - 6px) 100%,0 100%); margin-bottom:auto;
}
#karting-gallery-1--2 .kgl1-card-title{ margin:10px 0 5px; font-size:20px; font-weight:900; letter-spacing:-.01em; text-transform:uppercase; }
#karting-gallery-1--2 .kgl1-card-meta{ margin:0; font-size:14px; color:rgba(255,255,255,.82); }

/* responsive */
@media (max-width:880px){
  #karting-gallery-1--2 .kgl1-grid{ grid-template-columns:repeat(2,1fr); grid-auto-rows:200px; }
  #karting-gallery-1--2 .kgl1-card-lg{ grid-row:span 1; }
  #karting-gallery-1--2 .kgl1-card-wide{ grid-column:span 2; }
}
@media (max-width:520px){
  #karting-gallery-1--2 .kgl1-grid{ grid-template-columns:1fr; grid-auto-rows:200px; }
  #karting-gallery-1--2 .kgl1-card-wide{ grid-column:span 1; }
}

/* light store shell */
#karting-gallery-1--2.light,
.light #karting-gallery-1--2{
  --kgl-ink:#0c0d10; --kgl-muted:#5c5f67;
  background:linear-gradient(180deg,#eceef1 0%, #f4f5f7 100%);
}

@media (prefers-reduced-motion:reduce){ #karting-gallery-1--2 .kgl1-card img{ transition:none; } }

/* ---- Builder-safe scroll reveal (data-rise) — CSS-only entrance that ALWAYS ends visible (no AOS/JS dependency); backwards fill preserves hover transforms. ---- */
@keyframes kgl1rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
#karting-gallery-1--2 [data-rise]{animation:kgl1rise .65s cubic-bezier(.2,.7,.2,1) backwards;animation-delay:var(--d,0s);}
@media (prefers-reduced-motion:reduce){#karting-gallery-1--2 [data-rise]{animation:none;}}
/*fsreset*/#karting-gallery-1--2 p,#karting-gallery-1--2 li,#karting-gallery-1--2 a,#karting-gallery-1--2 blockquote,#karting-gallery-1--2 figcaption,#karting-gallery-1--2 span,#karting-gallery-1--2 strong,#karting-gallery-1--2 em{font-size:inherit;}

/* img-safety */#karting-gallery-1--2 img{max-width:100%;}
#karting-gallery-1--2 img[class]{max-height:720px;}



/*fsbase*/#karting-lap-1--1{font-size:16px;}
/* ============================================================================
   KARTING LAP 1 — Apex "THE LAP"  (signature scroll-fix-top / pinned scrollytelling)
   A 360vh section whose inner .stage PINS to the top; one scroll-progress var --p
   (0..1, set by custom.js) drives the whole lap: start lights -> launch + speedo
   sweep -> apex lean -> chequered finish + locked lap time. Mouse 3D-tilt on the
   scene. GRACEFUL DEGRADATION: every visual reads var(--p,1) so JS-off = final frame.
   ========================================================================== */

/* sticky-breaker fix: the store sets section{overflow:hidden}, which kills
   position:sticky. id+class specificity beats the bare `section` rule (no !important);
   all clipping happens on the inner .klap1-stage. */
#karting-lap-1--1.klap1{
  --kl-accent:var(--btn-primary-light-background-color,#ff2e3f);
  --kl-lime:#d8ff36;
  --kl-carbon:#0b0c0f;
  --kl-ink:#f5f6f8;
  --kl-soft:#9a9da6;
  --kl-line:rgba(255,255,255,.12);
  position:relative;
  overflow:visible;
  min-height:360vh;
  background:var(--kl-carbon);
  color:var(--kl-ink);
  font-family:inherit;
}
#karting-lap-1--1.klap1.dark{ --kl-accent:var(--btn-primary-dark-background-color,#ff3b4a); }
#karting-lap-1--1 *{ box-sizing:border-box; }

#karting-lap-1--1 .klap1-stage{
  position:sticky; top:0; height:100vh; overflow:hidden;
  display:flex; align-items:center; justify-content:center;
  background:radial-gradient(120% 90% at 50% -10%, #16171d 0%, #0b0c0f 60%, #060608 100%);
  perspective:1100px;
  /* phase progress tokens (inherit to all children) */
  --lightsout:clamp(0,(var(--p,1) - .15)/.04,1);
  --gp:clamp(0,(var(--p,1) - .16)/.42,1);
  --apex:clamp(0,(var(--p,1) - .5)/.24,1);
  --fin:clamp(0,(var(--p,1) - .76)/.18,1);
}

/* ---- BACKDROP : grid floor + red glow + accelerating speed streaks ---- */
#karting-lap-1--1 .klap1-bg{ position:absolute; inset:0; pointer-events:none; }
#karting-lap-1--1 .klap1-grid{
  position:absolute; inset:0;
  background-image:linear-gradient(var(--kl-line) 1px,transparent 1px),linear-gradient(90deg,var(--kl-line) 1px,transparent 1px);
  background-size:54px 54px;
  -webkit-mask-image:radial-gradient(110% 80% at 50% 38%, #000 0%, transparent 75%);
  mask-image:radial-gradient(110% 80% at 50% 38%, #000 0%, transparent 75%);
  opacity:.35;
}
#karting-lap-1--1 .klap1-glow{
  position:absolute; left:50%; top:42%; width:70vw; height:70vw; max-width:900px; max-height:900px;
  transform:translate(-50%,-50%);
  background:radial-gradient(circle, color-mix(in srgb,var(--kl-accent) 26%,transparent), transparent 60%);
  filter:blur(14px); opacity:calc(.4 + var(--gp)*.5);
}
#karting-lap-1--1 .klap1-streaks{ position:absolute; inset:0; opacity:calc(.15 + var(--gp)*.85); }
#karting-lap-1--1 .klap1-streaks i{
  position:absolute; right:-30%; height:2px; width:38%;
  background:linear-gradient(90deg, transparent, color-mix(in srgb,var(--kl-accent) 75%,transparent), transparent);
  animation:klap1streak 1.1s linear infinite;
}
#karting-lap-1--1 .klap1-streaks i:nth-child(1){ top:14%; width:46%; animation-duration:.9s; }
#karting-lap-1--1 .klap1-streaks i:nth-child(2){ top:24%; width:30%; animation-delay:.3s; }
#karting-lap-1--1 .klap1-streaks i:nth-child(3){ top:38%; width:52%; animation-delay:.1s; animation-duration:.8s; background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--kl-lime) 55%,transparent),transparent); }
#karting-lap-1--1 .klap1-streaks i:nth-child(4){ top:52%; width:34%; animation-delay:.5s; }
#karting-lap-1--1 .klap1-streaks i:nth-child(5){ top:63%; width:44%; animation-delay:.2s; animation-duration:.95s; }
#karting-lap-1--1 .klap1-streaks i:nth-child(6){ top:74%; width:28%; animation-delay:.65s; }
#karting-lap-1--1 .klap1-streaks i:nth-child(7){ top:84%; width:40%; animation-delay:.35s; animation-duration:.85s; }
#karting-lap-1--1 .klap1-streaks i:nth-child(8){ top:8%; width:24%; animation-delay:.75s; }
@keyframes klap1streak{ from{ transform:translateX(0); } to{ transform:translateX(-170vw); } }

/* ---- START LIGHTS : flare on 0->.15, then lights out ---- */
#karting-lap-1--1 .klap1-lights{ position:absolute; top:9%; left:50%; transform:translateX(-50%); display:flex; gap:14px; z-index:4; }
#karting-lap-1--1 .klap1-lamp{ width:26px; height:26px; border-radius:50%; background:#241012; border:1px solid rgba(255,90,90,.3); }
#karting-lap-1--1 .klap1-lamp{ box-shadow:none; }
#karting-lap-1--1 .klap1-l1{ opacity:calc(clamp(0,var(--p,1)/.03,1) * (1 - var(--lightsout))); }
#karting-lap-1--1 .klap1-l2{ opacity:calc(clamp(0,(var(--p,1) - .03)/.03,1) * (1 - var(--lightsout))); }
#karting-lap-1--1 .klap1-l3{ opacity:calc(clamp(0,(var(--p,1) - .06)/.03,1) * (1 - var(--lightsout))); }
#karting-lap-1--1 .klap1-l4{ opacity:calc(clamp(0,(var(--p,1) - .09)/.03,1) * (1 - var(--lightsout))); }
#karting-lap-1--1 .klap1-l5{ opacity:calc(clamp(0,(var(--p,1) - .12)/.03,1) * (1 - var(--lightsout))); }
#karting-lap-1--1 .klap1-lamp{ background:radial-gradient(circle at 50% 40%, #ff5a5a, #c00 70%); box-shadow:0 0 18px 2px rgba(255,46,63,.7); }

/* ---- SCENE (mouse-tilt layer) : gauge + readout + kart ---- */
#karting-lap-1--1 .klap1-scene{
  position:relative; z-index:3; display:flex; flex-direction:column; align-items:center; justify-content:center;
  transform:rotateX(calc(var(--my,0)*-5deg)) rotateY(calc(var(--mx,0)*7deg));
  transform-style:preserve-3d; transition:transform .25s ease;
  will-change:transform;
}

/* gauge */
#karting-lap-1--1 .klap1-gauge{ width:clamp(230px,34vw,360px); height:auto; filter:drop-shadow(0 20px 40px rgba(0,0,0,.6)); }
#karting-lap-1--1 .klap1-arc-track{ stroke:rgba(255,255,255,.1); stroke-width:9; stroke-linecap:round; stroke-dasharray:.75 .25; transform:rotate(135deg); transform-origin:120px 120px; }
#karting-lap-1--1 .klap1-arc-fill{ stroke:var(--kl-accent); stroke-width:9; stroke-linecap:round; stroke-dasharray:1; stroke-dashoffset:calc(1 - var(--gp)*.75); transform:rotate(135deg); transform-origin:120px 120px; filter:drop-shadow(0 0 8px color-mix(in srgb,var(--kl-accent) 70%,transparent)); }
#karting-lap-1--1 .klap1-ticks line{ stroke:rgba(255,255,255,.25); stroke-width:3; stroke-linecap:round; }
#karting-lap-1--1 .klap1-needle{ stroke:var(--kl-lime); stroke-width:4; stroke-linecap:round; transform:rotate(calc(-126deg + var(--gp)*252deg)); transform-origin:120px 120px; filter:drop-shadow(0 0 6px color-mix(in srgb,var(--kl-lime) 70%,transparent)); }
#karting-lap-1--1 .klap1-hub{ fill:var(--kl-ink); }

/* readout : big lap time + speed, overlaid on the gauge centre */
#karting-lap-1--1 .klap1-readout{ position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); text-align:center; pointer-events:none; }
#karting-lap-1--1 .klap1-time{ margin:0; font-weight:900; font-style:italic; font-size:clamp(35px,4.6vw,54px); letter-spacing:-.03em; line-height:1; color:var(--kl-ink); }
#karting-lap-1--1 .klap1-time-u{ font-size:.4em; color:var(--kl-accent); margin-left:2px; }
#karting-lap-1--1 .klap1-speed{ margin:8px 0 0; font-size:12px; letter-spacing:.16em; text-transform:uppercase; font-weight:700; color:var(--kl-soft); }
#karting-lap-1--1 .klap1-speed-num{ color:var(--kl-lime); }

/* kart : drives up under the gauge, leans into the apex */
#karting-lap-1--1 .klap1-kart{ width:clamp(180px,26vw,300px); height:auto; margin-top:clamp(-6px,-1vw,2px);
  transform:translateY(calc((1 - var(--gp))*40px)) rotate(calc(var(--apex)*-7deg)); transition:none;
  opacity:calc(.25 + var(--gp)*.75); }
#karting-lap-1--1 .klap1-wheel{ fill:#15161b; stroke:rgba(255,255,255,.25); stroke-width:3; }
#karting-lap-1--1 .klap1-body{ fill:var(--kl-accent); }
#karting-lap-1--1 .klap1-driver{ fill:#15161b; stroke:var(--kl-ink); stroke-width:2; }
#karting-lap-1--1 .klap1-bar{ stroke:#15161b; stroke-width:6; stroke-linecap:round; }

/* ---- CHEQUERED FINISH : waves in at the line ---- */
#karting-lap-1--1 .klap1-flag{ position:absolute; right:5%; top:50%; transform:translateY(-50%) scale(calc(.7 + var(--fin)*.3)); z-index:5; opacity:var(--fin); }
#karting-lap-1--1 .klap1-checker{ display:block; width:clamp(70px,9vw,118px); height:clamp(70px,9vw,118px); border:3px solid var(--kl-ink);
  background-image:conic-gradient(#fff 90deg, #0b0c0f 90deg 180deg, #fff 180deg 270deg, #0b0c0f 270deg);
  background-size:26px 26px; box-shadow:0 14px 30px -10px rgba(0,0,0,.7); transform:rotate(calc(var(--fin)*-6deg)); }

/* ---- HUD : kicker, phase headlines, progress bar, hint ---- */
#karting-lap-1--1 .klap1-hud{ position:absolute; left:0; right:0; bottom:6%; z-index:6; display:flex; flex-direction:column; align-items:center; gap:14px; padding:0 24px; text-align:center; }
#karting-lap-1--1 .klap1-kicker{ display:inline-flex; align-items:center; gap:9px; margin:0; font-size:11px; letter-spacing:.2em; text-transform:uppercase; font-weight:800; font-style:italic; color:var(--kl-accent); }
#karting-lap-1--1 .klap1-dot{ width:7px; height:7px; border-radius:50%; background:var(--kl-accent); box-shadow:0 0 0 4px color-mix(in srgb,var(--kl-accent) 24%,transparent); animation:klap1blink 1.3s ease-in-out infinite; }
@keyframes klap1blink{ 0%,100%{ opacity:1; } 50%{ opacity:.3; } }
#karting-lap-1--1 .klap1-phases{ position:relative; height:clamp(40px,6vw,68px); width:100%; }
#karting-lap-1--1 .klap1-phase{ position:absolute; left:0; right:0; margin:0; font-weight:900; font-style:italic; text-transform:uppercase; letter-spacing:-.02em; line-height:1; font-size:clamp(30px,5vw,54px); }
#karting-lap-1--1 .klap1-ph1{ opacity:calc(clamp(0,var(--p,1)/.05,1) * clamp(0,(.18 - var(--p,1))/.04,1)); }
#karting-lap-1--1 .klap1-ph2{ opacity:calc(clamp(0,(var(--p,1) - .2)/.05,1) * clamp(0,(.5 - var(--p,1))/.05,1)); }
#karting-lap-1--1 .klap1-ph3{ opacity:calc(clamp(0,(var(--p,1) - .52)/.05,1) * clamp(0,(.76 - var(--p,1))/.05,1)); }
#karting-lap-1--1 .klap1-ph4{ opacity:clamp(0,(var(--p,1) - .78)/.06,1); color:var(--kl-lime); }
#karting-lap-1--1 .klap1-track-bar{ width:min(420px,72vw); height:4px; border-radius:999px; background:rgba(255,255,255,.12); overflow:hidden; }
#karting-lap-1--1 .klap1-fill{ display:block; height:100%; width:calc(var(--p,1)*100%); background:linear-gradient(90deg,var(--kl-accent),var(--kl-lime)); border-radius:999px; }
#karting-lap-1--1 .klap1-hint{ margin:0; font-size:11.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--kl-soft); opacity:calc(1 - var(--gp)); }

/* ---- responsive ---- */
@media (max-width:640px){
  #karting-lap-1--1 .klap1-lights{ gap:9px; } #karting-lap-1--1 .klap1-lamp{ width:20px; height:20px; }
  #karting-lap-1--1 .klap1-flag{ right:4%; }
}

/* ---- light store shell : keep it a dark cinematic stage even on a light store ---- */
#karting-lap-1--1.light,
.light #karting-lap-1--1{ background:#0b0c0f; color:var(--kl-ink); }

/* ---- reduced motion : no pinning drama, just the final frame, no looping anims ---- */
@media (prefers-reduced-motion:reduce){
  #karting-lap-1--1.klap1{ min-height:auto; }
  #karting-lap-1--1 .klap1-stage{ position:relative; height:auto; min-height:80vh; padding:60px 0; }
  #karting-lap-1--1 .klap1-streaks i, #karting-lap-1--1 .klap1-dot{ animation:none; }
}
/*fsreset*/#karting-lap-1--1 p,#karting-lap-1--1 li,#karting-lap-1--1 a,#karting-lap-1--1 blockquote,#karting-lap-1--1 figcaption,#karting-lap-1--1 span,#karting-lap-1--1 strong,#karting-lap-1--1 em{font-size:inherit;}

/* sticky-fix: #wrap{overflow:hidden} annule position:sticky — clip préserve le pin */
#wrap{overflow-x:clip !important;overflow-y:visible !important}



/*fsbase*/#karting-cta-1--0{font-size:16px;}
/* ============================================================================
   KARTING CTA 1 — Apex "Book your race"
   Light section, contained carbon panel with grid + red glow + checker, dual
   CTA, trust ticks.
   ========================================================================== */
#karting-cta-1--0{
  --kct-accent:var(--btn-primary-light-background-color,#ff2e3f);
  --kct-carbon:#0c0d10;
  --kct-ink:#f5f6f8;
  --kct-soft:#9a9da6;
  --kct-line:rgba(255,255,255,.12);
  position:relative;
  background:linear-gradient(180deg,#eceef1 0%, #f4f5f7 100%);
  color:var(--kct-carbon);
  font-family:inherit;
}
#karting-cta-1--0 *{ box-sizing:border-box; }

#karting-cta-1--0 .kct1-panel{
  position:relative; overflow:hidden; border-radius:26px;
  background:radial-gradient(120% 130% at 88% 0%, #17181f 0%, #0c0d10 58%, #08080a 100%);
  color:var(--kct-ink);
  padding:clamp(34px,5vw,64px);
  box-shadow:0 40px 80px -40px rgba(0,0,0,.6);
}
#karting-cta-1--0 .kct1-bg{ position:absolute; inset:0; pointer-events:none; }
#karting-cta-1--0 .kct1-grid{
  position:absolute; inset:0;
  background-image:linear-gradient(var(--kct-line) 1px,transparent 1px),linear-gradient(90deg,var(--kct-line) 1px,transparent 1px);
  background-size:44px 44px;
  -webkit-mask-image:radial-gradient(120% 120% at 90% 10%, #000 0%, transparent 62%);
  mask-image:radial-gradient(120% 120% at 90% 10%, #000 0%, transparent 62%);
  opacity:.4;
}
#karting-cta-1--0 .kct1-glow{
  position:absolute; top:-30%; right:-10%; width:55%; height:100%;
  background:radial-gradient(circle at 60% 40%, color-mix(in srgb,var(--kct-accent) 28%,transparent), transparent 60%);
  filter:blur(10px);
}
#karting-cta-1--0 .kct1-checker{
  position:absolute; left:0; bottom:0; width:130px; height:130px; opacity:.1; color:#fff;
  background-image:conic-gradient(currentColor 90deg, transparent 90deg 180deg, currentColor 180deg 270deg, transparent 270deg);
  background-size:22px 22px;
  -webkit-mask-image:radial-gradient(120% 120% at 0% 100%, #000 0%, transparent 70%);
  mask-image:radial-gradient(120% 120% at 0% 100%, #000 0%, transparent 70%);
}
#karting-cta-1--0 .kct1-inner{ position:relative; z-index:1; display:grid; grid-template-columns:1.2fr .8fr; gap:clamp(28px,4vw,56px); align-items:center; }

#karting-cta-1--0 .kct1-eyebrow{ display:inline-block; font-size:12.5px; font-weight:800; font-style:italic; letter-spacing:.14em; text-transform:uppercase; color:var(--kct-accent); margin:0 0 14px; }
#karting-cta-1--0 .kct1-title{ margin:0; font-size:clamp(32px,3.8vw,50px); line-height:1; font-weight:900; letter-spacing:-.03em; text-transform:uppercase; }
#karting-cta-1--0 .kct1-sub{ margin:18px 0 24px; font-size:17px; line-height:1.6; color:var(--kct-soft); max-width:48ch; }
#karting-cta-1--0 .kct1-trust{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:10px 24px; }
#karting-cta-1--0 .kct1-trust li{ display:flex; align-items:center; gap:9px; font-size:14px; font-weight:700; color:var(--kct-ink); }
#karting-cta-1--0 .kct1-tick{ display:inline-flex; align-items:center; justify-content:center; width:24px; height:24px; border-radius:7px; background:color-mix(in srgb,var(--kct-accent) 22%,transparent); color:var(--kct-accent); flex:0 0 auto; }
#karting-cta-1--0 .kct1-tick svg{ width:14px; height:14px; }

#karting-cta-1--0 .kct1-actions{ display:flex; flex-direction:column; align-items:stretch; gap:13px; }
#karting-cta-1--0 .kct1-btn-primary{
  display:inline-flex; align-items:center; justify-content:center;
  background:var(--kct-accent); color:#fff; border:0; border-radius:12px;
  clip-path:polygon(11px 0,100% 0,calc(100% - 11px) 100%,0 100%);
  padding:17px 32px; font-weight:900; font-style:italic; font-size:16px; letter-spacing:.04em; text-transform:uppercase;
  box-shadow:0 16px 34px -14px color-mix(in srgb,var(--kct-accent) 85%,transparent);
  transition:transform .2s ease, box-shadow .2s ease, filter .2s ease;
}
#karting-cta-1--0 .kct1-btn-primary:hover{ transform:translateY(-3px); box-shadow:0 24px 46px -16px color-mix(in srgb,var(--kct-accent) 95%,transparent); filter:brightness(1.06); }
#karting-cta-1--0 .kct1-btn-soft{
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  border-radius:12px; padding:15px 28px; font-weight:800; font-size:14px; letter-spacing:.04em; text-transform:uppercase; color:var(--kct-ink);
  border:1px solid var(--kct-line); background:color-mix(in srgb,#fff 6%,transparent);
  transition:border-color .2s ease, transform .2s ease;
}
#karting-cta-1--0 .kct1-btn-soft:hover{ border-color:var(--kct-accent); transform:translateY(-3px); }
#karting-cta-1--0 .kct1-phone{ margin:6px 0 0; text-align:center; font-size:13.5px; color:var(--kct-soft); }
#karting-cta-1--0 .kct1-phone-link{ color:var(--kct-ink); font-weight:800; text-decoration:none; border-bottom:1px solid var(--kct-accent); }

/* responsive */
@media (max-width:820px){ #karting-cta-1--0 .kct1-inner{ grid-template-columns:1fr; gap:30px; } }
@media (max-width:520px){ #karting-cta-1--0 .kct1-btn-primary, #karting-cta-1--0 .kct1-btn-soft{ width:100%; } }

/* dark store shell */
#karting-cta-1--0.dark,
.dark #karting-cta-1--0{ background:#0c0d10; }

@media (prefers-reduced-motion:reduce){ #karting-cta-1--0 *{ transition:none; } }

/* ---- Builder-safe scroll reveal (data-rise) — CSS-only entrance that ALWAYS ends visible (no AOS/JS dependency); backwards fill preserves hover transforms. ---- */
@keyframes kct1rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
#karting-cta-1--0 [data-rise]{animation:kct1rise .65s cubic-bezier(.2,.7,.2,1) backwards;animation-delay:var(--d,0s);}
@media (prefers-reduced-motion:reduce){#karting-cta-1--0 [data-rise]{animation:none;}}
/*fsreset*/#karting-cta-1--0 p,#karting-cta-1--0 li,#karting-cta-1--0 a,#karting-cta-1--0 blockquote,#karting-cta-1--0 figcaption,#karting-cta-1--0 span,#karting-cta-1--0 strong,#karting-cta-1--0 em{font-size:inherit;}



/* ===== SD-HGAL — hero Galerie (mosaïque) ===== */
#sd-hgal .sdg-mosaic{position:relative;display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(2,minmax(150px,26vh));gap:8px;min-height:62vh}
#sd-hgal .sdg-i{width:100%;height:100%;object-fit:cover;display:block;filter:grayscale(.15) brightness(.82);transition:filter .4s,transform .4s}
#sd-hgal .sdg-i1{grid-column:1/3;grid-row:1/3}
#sd-hgal .sdg-i2{grid-column:3/4;grid-row:1/2}
#sd-hgal .sdg-i3{grid-column:4/5;grid-row:1/2}
#sd-hgal .sdg-i4{grid-column:3/5;grid-row:2/3}
#sd-hgal .sdg-i:hover{filter:grayscale(0) brightness(1);transform:scale(1.02);z-index:2}
#sd-hgal .sdg-overlay{position:absolute;inset:0;z-index:3;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px;pointer-events:none;background:radial-gradient(circle at 50% 55%,rgba(10,10,14,.72),rgba(10,10,14,.42) 55%,transparent 90%)}
#sd-hgal .sdg-kicker{margin:0 0 12px;font-family:var(--sd-font-body,Inter,sans-serif);font-size:12px;font-weight:800;letter-spacing:.24em;text-transform:uppercase;color:var(--sd-red,#e8003a)}
#sd-hgal .sdg-title{font-family:var(--sd-font-display,Anton,sans-serif);font-weight:400;text-transform:uppercase;font-size:clamp(48px,8vw,110px);line-height:.92;color:#fff;margin:0 0 14px;text-shadow:0 14px 50px rgba(0,0,0,.7)}
#sd-hgal .sdg-title em{font-style:normal;color:var(--sd-red,#e8003a)}
#sd-hgal .sdg-sub{max-width:520px;margin:0;font-family:var(--sd-font-body,Inter,sans-serif);font-size:15.5px;line-height:1.6;color:#d6d8dd}
@media (max-width:760px){#sd-hgal .sdg-mosaic{grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(2,minmax(130px,22vh))}#sd-hgal .sdg-i1{grid-column:1/3;grid-row:1/2}#sd-hgal .sdg-i2{grid-column:1/2;grid-row:2/3}#sd-hgal .sdg-i3{grid-column:2/3;grid-row:2/3}#sd-hgal .sdg-i4{display:none}}

/* ART:cta */
/* ===== Super Drift — CTA final bespoke (prefixe sdxcta-) ===== */
.sdxcta-sec{position:relative;overflow:hidden}
.sdxcta-sec .container{position:relative;z-index:2}
#karting-cta-1--2.sdxcta-sec,#karting-cta-1--3.sdxcta-sec,#karting-cta-1--0.sdxcta-sec,#karting-cta-1--1.sdxcta-sec,#karting-cta-1--5.sdxcta-sec{background:var(--sd-carbon,#0A0A0E)}

.sdxcta-panel{
  position:relative;
  border:1px solid var(--sd-line,rgba(255,255,255,.09));
  border-radius:26px;
  background:linear-gradient(160deg,#16161d 0%,var(--sd-panel,#131318) 48%,#0e0e13 100%);
  padding:clamp(38px,6vw,84px) clamp(24px,5vw,72px);
  overflow:hidden;
  box-shadow:0 40px 90px -40px rgba(0,0,0,.9),inset 0 1px 0 rgba(255,255,255,.04);
}
/* couche fond decorative */
.sdxcta-bg{position:absolute;inset:0;z-index:0;pointer-events:none}
.sdxcta-glow{
  position:absolute;top:-30%;left:50%;transform:translateX(-50%);
  width:130%;height:120%;
  background:radial-gradient(60% 55% at 50% 40%,rgba(232,0,58,.30) 0%,rgba(232,0,58,.10) 38%,transparent 68%);
  filter:blur(6px);
}
.sdxcta-grid{
  position:absolute;inset:0;
  background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);
  background-size:46px 46px;
  -webkit-mask-image:radial-gradient(75% 75% at 50% 30%,#000 0%,transparent 75%);
  mask-image:radial-gradient(75% 75% at 50% 30%,#000 0%,transparent 75%);
}
/* liseré damier haut */
.sdxcta-checker{
  position:absolute;top:0;left:0;right:0;height:8px;
  background-image:linear-gradient(45deg,var(--sd-red,#E8003A) 25%,transparent 25%,transparent 75%,var(--sd-red,#E8003A) 75%),linear-gradient(45deg,var(--sd-red,#E8003A) 25%,#0e0e13 25%,#0e0e13 75%,var(--sd-red,#E8003A) 75%);
  background-size:16px 16px;
  background-position:0 0,8px 8px;
  opacity:.9;
}
.sdxcta-inner{
  position:relative;z-index:2;
  display:grid;grid-template-columns:1.35fr .9fr;gap:clamp(28px,4vw,56px);align-items:center;
}
.sdxcta-eyebrow{
  display:inline-flex;align-items:center;gap:9px;
  font-family:var(--sd-font-body,Inter),sans-serif;
  font-size:11.84px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;
  color:var(--sd-red-hot,#FF1E4F);
  margin:0 0 18px;
}
.sdxcta-eyebrow::before{content:"";width:26px;height:2px;background:var(--sd-red,#E8003A);display:inline-block}
.sdxcta-title{
  font-family:var(--sd-font-display,Anton),sans-serif;
  text-transform:uppercase;
  font-weight:400;
  line-height:.92;
  letter-spacing:.005em;
  font-size:clamp(40px,6.4vw,83.2px);
  color:#f6f7f9;
  margin:0 0 22px;
  text-shadow:0 2px 30px rgba(232,0,58,.18);
}
.sdxcta-title em{font-style:normal;color:var(--sd-red-hot,#FF1E4F)}
.sdxcta-sub{
  font-family:var(--sd-font-body,Inter),sans-serif;
  font-size:clamp(16px,1.5vw,17.92px);line-height:1.6;
  color:#a6aab5;
  margin:0 0 26px;max-width:46ch;
}
.sdxcta-trust{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:12px 26px}
.sdxcta-trust li{
  display:flex;align-items:center;gap:10px;
  font-family:var(--sd-font-body,Inter),sans-serif;
  font-size:15.2px;font-weight:600;color:#f6f7f9;
}
.sdxcta-tick{
  width:22px;height:22px;flex:0 0 auto;border-radius:50%;
  display:inline-flex;align-items:center;justify-content:center;
  background:rgba(0,199,103,.12);border:1px solid rgba(0,199,103,.4);
  color:var(--sd-green,#00C767);
}
.sdxcta-tick svg{width:13px;height:13px}
/* actions */
.sdxcta-actions{display:flex;flex-direction:column;gap:16px;align-items:stretch}
.sdxcta-btn-primary{
  position:relative;
  display:inline-flex;align-items:center;justify-content:center;gap:11px;
  font-family:var(--sd-font-body,Inter),sans-serif;
  font-size:16.32px;font-weight:800;letter-spacing:.01em;
  text-decoration:none;color:#fff;
  padding:19px 30px;border-radius:14px;border:0;
  background:linear-gradient(135deg,var(--sd-red-hot,#FF1E4F),var(--sd-red,#E8003A));
  box-shadow:0 16px 40px -14px rgba(232,0,58,.75),inset 0 1px 0 rgba(255,255,255,.22);
  transition:transform .25s ease,box-shadow .25s ease,filter .25s ease;
}
.sdxcta-btn-primary svg{width:19px;height:19px;transition:transform .25s ease}
.sdxcta-btn-primary:hover{transform:translateY(-3px);filter:brightness(1.06);box-shadow:0 22px 52px -14px rgba(232,0,58,.85),inset 0 1px 0 rgba(255,255,255,.3);color:#fff}
.sdxcta-btn-primary:hover svg{transform:translateX(4px)}
.sdxcta-phone{
  display:inline-flex;align-items:center;justify-content:center;gap:11px;
  font-family:var(--sd-font-body,Inter),sans-serif;
  font-size:16.32px;font-weight:700;text-decoration:none;color:#f6f7f9;
  padding:17px 30px;border-radius:14px;
  background:rgba(255,255,255,.03);border:1px solid var(--sd-line,rgba(255,255,255,.12));
  transition:border-color .25s ease,background .25s ease,transform .25s ease;
}
.sdxcta-phone svg{width:18px;height:18px;color:var(--sd-green,#00C767)}
.sdxcta-phone:hover{border-color:rgba(0,199,103,.5);background:rgba(0,199,103,.06);transform:translateY(-2px);color:#fff}
.sdxcta-phone small{display:block;font-size:11.2px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#9a9da6;margin-bottom:2px}
.sdxcta-phone .sdxcta-ph-wrap{display:flex;flex-direction:column;line-height:1.15;text-align:left}

@media (max-width:900px){
  .sdxcta-inner{grid-template-columns:minmax(0,1fr);gap:34px}
  .sdxcta-actions{align-items:stretch}
}
@media (max-width:600px){
  .sdxcta-panel{padding:34px 20px;border-radius:20px}
  .sdxcta-title{font-size:clamp(33.6px,10vw,48px)}
  .sdxcta-trust{gap:10px 18px}
  .sdxcta-btn-primary,.sdxcta-phone{padding:16px 20px}
}

/* override-guard */
html body .sdxcta-sec .sdxcta-trust{list-style:none!important;padding-left:0!important}
html body .sdxcta-sec .sdxcta-title{color:#f6f7f9!important}
html body .sdxcta-sec .sdxcta-btn-primary{color:#fff!important}
