/* ============================================================
   My Auto Spa — shared add-ons (Oct 2026)
   1. LAYERED SCROLL: stacked sections + hero parallax
      CSS scroll-driven animations (animation-timeline) with a
      requestAnimationFrame fallback in assets/mk.js.
   2. Booking request form
   3. "Call or text Nick" lines
   ============================================================ */
:root{
  --layer-radius:28px;
  --layer-overlap:48px;
  --layer-shadow:0 -30px 60px rgba(0,0,0,.55), 0 -4px 14px rgba(0,0,0,.35);
  --layer-edge:rgba(255,255,255,.12);
}

/* ---------- 1. stacked layers ---------- */
body > .layer{
  position:relative;
  isolation:isolate;
  margin-top:calc(var(--layer-overlap) * -1);
  border-radius:var(--layer-radius) var(--layer-radius) 0 0;
  box-shadow:var(--layer-shadow), inset 0 1px 0 var(--layer-edge);
  border-top:0;border-bottom:0;
  background:#0b0d11;
  transform-origin:50% 0;
  will-change:transform,opacity;
}
body > section.layer{
  padding-top:80px!important;
  padding-bottom:calc(var(--layer-overlap) + 36px)!important;
}
body > .layer[data-layer="2"],body > .layer[data-layer="4"],body > .layer[data-layer="6"],
body > .layer[data-layer="8"],body > .layer[data-layer="10"],body > .layer[data-layer="12"]{background:#12151b}
body > footer.layer{background:#0e1014;padding-top:84px}
/* z-index staircase — each layer sits over the one before */
body > .layer-base{position:relative;z-index:2}
body > .layer[data-layer="1"]{z-index:4}
body > .layer[data-layer="2"]{z-index:5}
body > .layer[data-layer="3"]{z-index:6}
body > .layer[data-layer="4"]{z-index:7}
body > .layer[data-layer="5"]{z-index:8}
body > .layer[data-layer="6"]{z-index:9}
body > .layer[data-layer="7"]{z-index:10}
body > .layer[data-layer="8"]{z-index:11}
body > .layer[data-layer="9"]{z-index:12}
body > .layer[data-layer="10"]{z-index:13}
body > .layer[data-layer="11"]{z-index:14}
body > .layer[data-layer="12"]{z-index:15}
body > footer.layer{z-index:20}
/* the section underneath needs room for the layer that slides over it */
body > .layer-base:not(.hero):not(.phero){padding-bottom:calc(var(--layer-overlap) + 36px)!important}
body > .trust{position:relative;z-index:2;padding-bottom:var(--layer-overlap)}
body > article + .layer{margin-top:0}
.layer .trust{border-top:1px solid var(--line);border-bottom:0;background:transparent;margin-top:64px}

/* entry: each layer rises up onto the previous one */
@keyframes mk-layer-in{
  from{transform:translateY(96px) scale(.965);opacity:.5}
  60%{opacity:1}
  to{transform:translateY(0) scale(1);opacity:1}
}
/* exit: the layer underneath sinks back and dims */
@keyframes mk-layer-out{
  from{filter:brightness(1)}
  to{filter:brightness(.42)}
}
/* hero parallax (root scroll timeline, 0–1200px) */
@keyframes mk-px-bg   {to{translate:0 660px}}                 /* car photo: sinks back at 0.55x */
@keyframes mk-px-copy {from{translate:0 0;opacity:1} 55%{opacity:1} to{translate:0 180px;opacity:0}} /* headline floats over the car, fades late */
@keyframes mk-px-chip {to{translate:0 -260px;opacity:0}}      /* crimson accent chip: lifts away fast */

.hero{overflow:hidden}
.hero-slides,.hero-copy,.hero-chip{will-change:translate,opacity}

@supports (animation-timeline: view()) {
  body > .layer{
    animation:mk-layer-in cubic-bezier(.22,.7,.2,1) both, mk-layer-out linear both;
    animation-timeline:view(), view();
    animation-range:entry 0px entry 360px, exit 0% exit 100%;
  }
  body > footer.layer{
    animation:mk-layer-in cubic-bezier(.22,.7,.2,1) both;
    animation-timeline:view();
    animation-range:entry 0px entry 260px;
  }
  body > .layer-base{
    animation:mk-layer-out linear both;
    animation-timeline:view();
    animation-range:exit 0% exit 100%;
  }
  .hero > .hero-slides,.hero .hero-copy,.hero .hero-chip{
    animation-timing-function:linear;animation-fill-mode:both;
    animation-timeline:scroll(root);animation-range:0px 1200px;
  }
  .hero > .hero-slides{animation-name:mk-px-bg}
  .hero .hero-copy{animation-name:mk-px-copy}
  .hero .hero-chip{animation-name:mk-px-chip}
}

@media (max-width:760px){
  :root{--layer-radius:22px;--layer-overlap:36px}
  body > section.layer{padding-top:56px!important;padding-bottom:calc(var(--layer-overlap) + 24px)!important}
  body > footer.layer{padding-top:60px}
  .layer .trust{margin-top:44px}
  @keyframes mk-layer-in{
    from{transform:translateY(64px) scale(.975);opacity:.5}
    60%{opacity:1}
    to{transform:translateY(0) scale(1);opacity:1}
  }
}

/* reduced motion: keep the static stack, drop the motion */
@media (prefers-reduced-motion:reduce){
  body > .layer,body > .layer-base,.hero > .hero-slides,.hero .hero-copy,.hero .hero-chip{
    animation:none!important;translate:none!important;transform:none!important;opacity:1!important;filter:none!important}
}

/* ---------- hero without the old quote form + accent chip ---------- */
.hero-grid.solo{grid-template-columns:1fr}
.hero > .wrap{width:100%}
.hero-chip{position:absolute;right:max(24px,calc((100vw - var(--wrap)) / 2 + 24px));bottom:15%;z-index:3;display:flex;align-items:center;gap:14px;
  padding:14px 18px 14px 16px;border-radius:14px;background:rgba(12,13,16,.82);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  border:1px solid var(--line2);border-left:3px solid var(--accent);box-shadow:0 18px 40px -22px rgba(0,0,0,.8);transition:border-color .2s}
.hero-chip:hover{border-color:rgba(255,255,255,.4);border-left-color:var(--accent)}
.hero-chip .t{font-family:var(--font-label);text-transform:uppercase;letter-spacing:.12em;font-weight:700;font-size:.78rem;color:var(--accent)}
.hero-chip .d{font-family:var(--font-display);font-weight:700;font-size:1.05rem;color:var(--txt);line-height:1.2;margin-top:2px}
.hero-chip svg{width:18px;height:18px;color:var(--accent);flex:none}
@media(max-width:980px){.hero-chip{display:none}}

/* ---------- 2. booking request ---------- */
.book-grid{display:grid;grid-template-columns:.86fr 1.14fr;gap:52px;align-items:start}
.book-intro h2{font-size:clamp(2rem,4.4vw,3.1rem);margin:14px 0 12px}
.book-intro > p{color:var(--dim);font-size:1.05rem;max-width:34em}
.book-points{list-style:none;margin:24px 0 0;display:grid;gap:12px}
.book-points li{display:flex;align-items:center;gap:12px;color:var(--txt-soft);font-size:.98rem}
.book-points svg{width:20px;height:20px;color:var(--accent);flex:none}
.book-card{background:var(--card);border:1px solid var(--line2);border-top:3px solid var(--accent);border-radius:var(--radius);padding:30px;box-shadow:0 26px 60px -40px rgba(0,0,0,.9)}
.bookform .field{margin-bottom:16px}
.bookform textarea{min-height:92px;resize:vertical}
.bookform input[type="date"]{color-scheme:dark;-webkit-appearance:none;appearance:none;min-height:51px;display:block;text-align:left}
.bookform input[type="date"]::-webkit-date-and-time-value{text-align:left}
.bookform label .opt{color:var(--faint);font-weight:600;letter-spacing:.06em}
.bookform .fnote{font-size:.8rem;color:var(--faint);margin:-8px 0 16px}
.bookform .btn[disabled]{opacity:.65;cursor:progress;transform:none}
.book-err{display:none;margin-top:14px;padding:12px 14px;border-radius:12px;border:1px solid rgba(225,29,46,.5);background:var(--accent-soft);color:var(--txt);font-size:.92rem}
.book-err a{text-decoration:underline}
.book-ok{display:none;text-align:center;padding:34px 8px}
.book-ok svg{width:54px;height:54px;color:var(--accent);margin:0 auto 14px;display:block}
.book-ok h3{font-size:1.5rem;margin-bottom:8px}
.book-ok p{color:var(--txt-soft);font-size:1.05rem}
.book-card.sent .bookform{display:none}
.book-card.sent .book-ok{display:block}

/* ---------- 3. Nick line ---------- */
.nick{margin-top:22px;padding-top:20px;border-top:1px solid var(--line)}
.nick-line{color:var(--txt-soft);font-size:.95rem;margin:0 0 14px}
.nick-line b{color:var(--txt)}
.nick-actions{display:flex;gap:10px;flex-wrap:wrap}
.nick-actions .btn{flex:1 1 140px;width:auto;margin-top:0;padding:.75rem 1.2rem}
.nick-actions .btn svg{color:var(--accent)}
.info-card .nick-line,.fallback-card .nick-line{margin:16px 0 18px}
.book-intro .nick{max-width:420px}

@media(max-width:900px){
  .book-grid{grid-template-columns:1fr;gap:28px}
  .book-intro .nick,.book-points{display:none}
}
@media(max-width:520px){.book-card{padding:22px 18px}}
/* phones: the utility bar shows only the Nick line */
@media(max-width:600px){
  .topbar .tb-l{display:none}
  .topbar .wrap{justify-content:center}
  .topbar .tb-r a.tb-nick{display:inline!important;color:var(--txt-soft)}
  .topbar .tb-r a:nth-child(3){display:none}
}

/* ---------- nav: with the Book link added, collapse to the menu button below 1000px (fixes sideways scroll on tablets) ---------- */
@media(min-width:761px) and (max-width:1000px){
  .navlinks{display:none}
  .nav-cta{margin-left:auto}
  .navtoggle{display:inline-flex}
  .navlinks.open{display:flex;position:absolute;top:76px;left:0;right:0;flex-direction:column;gap:0;background:var(--bg);border-bottom:1px solid var(--line);margin:0;padding:8px 0}
  .navlinks.open a{padding:15px 24px;color:var(--txt)}
}
/* book / contact pages: the form layer already has its own top padding */
.book-sec.layer > .wrap,.contact-sec.layer > .wrap{padding-top:0!important}
