/* ============================================================
   Änderungsschneiderei Vavra — Design-Tokens & Komponenten
   Konzept "Der zweite Schnitt" — Schnittmuster-Ästhetik, cinematisch erzählt.
   Siehe BAUAUFTRAG.md für Herleitung von Farbe/Font/Motion.
   ============================================================ */

@font-face { font-display: swap; }

:root{
  color-scheme: light;
  --color-bg:#FAF5EC; --color-fg:#241C18; --color-surface:#FFFDF8; --color-surface-2:#F3E9D8;
  --color-brand:#7A2333; --color-brand-ink:#FFFDF8; --color-secondary:#2E4239; --color-accent:#B08D57;
  --color-muted:#8C8072; --color-border:#E4D9C8; --focus:#7A2333;

  --shadow-sm:0 1px 2px rgb(36 20 15 / .07);
  --shadow:0 12px 36px rgb(36 20 15 / .12);
  --shadow-lg:0 24px 60px rgb(36 20 15 / .18);

  --radius-sm:.5rem; --radius:.9rem; --radius-lg:1.4rem; --radius-full:999px;

  --space-xs:.5rem; --space-sm:1rem; --space-md:1.5rem; --space-lg:2.5rem; --space-xl:4rem; --space-2xl:6rem;

  --text-eyebrow:.8rem; --text-body:1.0625rem; --text-lead:clamp(1.15rem,1.4vw,1.35rem);
  --text-h4:clamp(1.15rem,1.4vw,1.35rem); --text-h3:clamp(1.25rem,2.2vw,1.6rem);
  --text-h2:clamp(1.5rem,3.5vw,2.25rem); --text-h1:clamp(2.1rem,5vw,3.5rem);
  --lh-tight:1.08; --lh-snug:1.25; --lh-body:1.65;
  --tracking-tight:-.02em; --tracking-label:.14em;

  --dur:.4s; --ease-out:cubic-bezier(.16,1,.3,1);

  /* scroll-gekoppelte Hintergrund-Reise ("Papierbahn") */
  --bgHue:18; --bgShift:22%; --bgShift2:82%; --bgLine:8%;
}
[data-theme="dark"]{
  color-scheme: dark;
  --color-bg:#1E1815; --color-fg:#EDE3D6; --color-surface:#2A211C; --color-surface-2:#231B17;
  --color-brand:#C1596B; --color-secondary:#5A7568; --color-accent:#C7A468;
  --color-muted:#A79A8B; --color-border:#3A2F28; --focus:#D98CA0;
  --shadow:0 16px 40px rgb(0 0 0 / .4); --shadow-lg:0 30px 70px rgb(0 0 0 / .5);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0; background:var(--color-bg); color:var(--color-fg);
  font-family:"Archivo",system-ui,-apple-system,"Segoe UI",sans-serif;
  font-size:var(--text-body); line-height:var(--lh-body); -webkit-font-smoothing:antialiased;
  transition:background .5s ease, color .5s ease;
  overflow-x:clip;
}
[data-theme="dark"] body{ color:#EDE3D6; }
h1,h2,h3,h4{ font-family:"Marcellus",serif; line-height:var(--lh-tight); letter-spacing:var(--tracking-tight); margin:0; font-weight:400; }
h1{ font-size:var(--text-h1); }
h2{ font-size:var(--text-h2); }
h3{ font-size:var(--text-h3); }
h4{ font-size:var(--text-h4); }
p{ margin:0; }
a{ color:inherit; }
img{ max-width:100%; height:auto; display:block; }
.sr-only{ position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0; }
:focus-visible{ outline:2px solid var(--focus); outline-offset:3px; border-radius:2px; }

.wrap{ max-width:1240px; margin-inline:auto; padding-inline:1.25rem; }
@media (min-width:768px){ .wrap{ padding-inline:2rem; } }
section{ padding-block: clamp(3.5rem, 7vw, 5rem); position:relative; }
.eyebrow{
  display:inline-flex; align-items:center; gap:.5rem; font-size:var(--text-eyebrow); font-weight:600;
  letter-spacing:var(--tracking-label); text-transform:uppercase; color:var(--color-brand);
}
.eyebrow::before{ content:""; width:1.6rem; height:1px; background:currentColor; display:inline-block; }
.lead{ font-size:var(--text-lead); font-weight:500; max-width:60ch; color:var(--color-fg); opacity:.85; }
.prose-measure{ max-width:65ch; }

/* ===== Buttons ===== */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.55rem;
  padding:.85rem 1.6rem; border-radius:var(--radius-full); font-weight:600; font-size:.98rem;
  text-decoration:none; cursor:pointer; border:1px solid transparent; transition:transform .35s var(--ease-out), box-shadow .35s ease, background .3s ease, color .3s ease, border-color .3s ease;
  min-height:48px;
}
.btn-primary{ background:var(--color-brand); color:var(--color-brand-ink); box-shadow:var(--shadow-sm); }
.btn-primary:hover{ box-shadow:var(--shadow); transform:translateY(-2px); }
.btn-ghost{ background:transparent; color:currentColor; border-color:currentColor; opacity:.9; }
.btn-ghost:hover{ opacity:1; background:rgb(122 35 51 / .07); }
.btn-light{ background:var(--color-surface); color:var(--color-fg); border-color:var(--color-border); }

/* ===== Header ===== */
.site-header{
  position:fixed; inset-inline:0; top:0; z-index:100; color:#fff; background:transparent;
  transition:background .4s ease, color .4s ease, box-shadow .4s ease, backdrop-filter .4s ease;
  padding-block:.75rem;
}
.site-header::before{
  content:""; position:absolute; inset:0 0 -1.5rem 0; z-index:-1; pointer-events:none;
  background:linear-gradient(180deg, rgb(16 10 8 / .55) 0%, rgb(16 10 8 / .4) 70%, rgb(16 10 8 / 0) 100%);
  opacity:1; transition:opacity .4s ease;
}
.site-header.scrolled::before{ opacity:0; }
.site-header .wrap{ display:flex; align-items:center; justify-content:space-between; gap:1rem; max-width:1320px; }
.site-header.scrolled{ background:color-mix(in oklch, var(--color-bg) 92%, transparent); color:var(--color-fg); box-shadow:var(--shadow-sm); backdrop-filter:blur(10px); }
.site-logo{ display:flex; align-items:center; gap:.6rem; font-family:"Marcellus",serif; font-size:1.15rem; letter-spacing:.02em; text-decoration:none; color:inherit; }
.site-logo svg{ width:2rem; height:2rem; flex:none; }
.site-nav{ display:none; align-items:center; gap:2rem; font-weight:600; font-size:.95rem; }
.site-nav a{ text-decoration:none; opacity:.88; position:relative; padding-block:.3rem; }
.site-nav a::after{ content:""; position:absolute; left:0; right:0; bottom:0; height:2px; background:currentColor; transform:scaleX(0); transform-origin:right; transition:transform .35s var(--ease-out); }
.site-nav a:hover{ opacity:1; }
.site-nav a:hover::after, .site-nav a[aria-current="page"]::after{ transform:scaleX(1); transform-origin:left; }
@media (min-width:960px){ .site-nav{ display:flex; } .nav-cta{ display:inline-flex; } }
.nav-cta{ display:none; }
.burger{ display:inline-flex; width:44px; height:44px; align-items:center; justify-content:center; border-radius:var(--radius-sm); border:1px solid currentColor; background:transparent; color:inherit; cursor:pointer; }
@media (min-width:960px){ .burger{ display:none; } }
.mobile-menu{
  position:fixed; inset:0; z-index:99; background:var(--color-bg); color:var(--color-fg);
  display:flex; flex-direction:column; justify-content:center; gap:1.5rem; padding:2rem 1.5rem;
  transform:translateY(-100%); transition:transform .5s var(--ease-out); overflow-y:auto;
}
.mobile-menu.open{ transform:translateY(0); }
.mobile-menu a{ font-family:"Marcellus",serif; font-size:2rem; text-decoration:none; color:inherit; }
.mobile-menu .btn{ align-self:flex-start; }

/* ===== Hintergrund-Szene (Papierbahn, scroll-gekoppelt + idle) ===== */
.bg-scene{
  position:fixed; inset:0; z-index:-2; pointer-events:none; overflow:hidden;
}
.bg-scene__gradient{
  position:absolute; inset:-10%;
  background:
    radial-gradient(55% 55% at var(--bgShift,22%) 28%, hsl(var(--bgHue,18) 55% 52% / .16), transparent 68%),
    radial-gradient(50% 50% at var(--bgShift2,82%) 74%, hsl(calc(var(--bgHue,18) + 130) 35% 38% / .13), transparent 66%),
    repeating-linear-gradient(118deg, transparent 0 42px, color-mix(in oklch, var(--color-brand) 8%, transparent) 42px 43px);
  animation: bgBreathe 16s ease-in-out infinite;
}
[data-theme="dark"] .bg-scene__gradient{
  background:
    radial-gradient(55% 55% at var(--bgShift,22%) 28%, hsl(var(--bgHue,18) 45% 32% / .3), transparent 68%),
    radial-gradient(50% 50% at var(--bgShift2,82%) 74%, hsl(calc(var(--bgHue,18) + 130) 30% 24% / .26), transparent 66%),
    repeating-linear-gradient(118deg, transparent 0 42px, color-mix(in oklch, var(--color-accent) 12%, transparent) 42px 43px);
}
@keyframes bgBreathe{ 0%,100%{ transform:translate3d(0,0,0) scale(1); } 50%{ transform:translate3d(1.5%,-2%,0) scale(1.03); } }
.bg-scene__lines{ position:absolute; inset:0; width:100%; height:100%; opacity:.35; }
[data-theme="dark"] .bg-scene__lines{ opacity:.22; }
.bg-scene__lines path{ fill:none; stroke:var(--color-brand); stroke-width:1; stroke-dasharray:2 10; }

/* ===== Karten ===== */
.card{
  background:var(--color-surface); border:1px solid var(--color-border); border-radius:var(--radius);
  overflow:hidden; box-shadow:var(--shadow-sm); display:flex; flex-direction:column; height:100%;
  transition:box-shadow .4s ease, transform .4s var(--ease-out);
}
.card:hover{ box-shadow:var(--shadow); }
.card__media{ position:relative; aspect-ratio:4/3; overflow:hidden; }
.card__media img{ width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease-out); }
.card:hover .card__media img{ transform:scale(1.06); }
.card__body{ padding:1.4rem 1.5rem 1.6rem; display:flex; flex-direction:column; gap:.5rem; flex:1; }
.card__body h3{ font-size:1.2rem; }
.card__body p{ opacity:.8; font-size:.96rem; }

/* Bogen-Bildform (wiederkehrendes Signatur-Motiv) */
.arch-media{ border-radius: var(--radius-lg) var(--radius-lg) 4rem var(--radius-lg); overflow:hidden; box-shadow:var(--shadow); }
.arch-media img{ width:100%; height:100%; object-fit:cover; }

/* ===== Grid-Helfer ===== */
.grid-auto{ display:grid; gap:1.5rem; grid-template-columns:repeat(auto-fit, minmax(min(100%, 17rem), 1fr)); }
.grid-2{ display:grid; gap:2rem; grid-template-columns:1fr; }
@media (min-width:860px){ .grid-2{ grid-template-columns:1fr 1fr; align-items:center; } }

/* ===== Konstruktionslinie (Signatur-Element) ===== */
.chalkline{ width:100%; height:auto; }
.chalkline path{ fill:none; stroke:var(--color-accent); stroke-width:2; stroke-dasharray:6 7; stroke-linecap:round; }

/* ===== Hero ===== */
.hero{ position:relative; min-height:100svh; display:flex; align-items:stretch; overflow:hidden; padding-top:0; }
.hero__grid{ display:grid; grid-template-columns:1fr; width:100%; }
@media (min-width:900px){ .hero__grid{ grid-template-columns:1.05fr .95fr; } }
.hero__media{ position:relative; min-height:46svh; overflow:hidden; }
@media (min-width:900px){ .hero__media{ min-height:100svh; order:2; } }
.hero__media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transform:scale(1.12); }
.hero__media::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgb(36 20 15/.05), rgb(36 20 15/.55)); }
@media (min-width:900px){ .hero__media::after{ background:linear-gradient(90deg, var(--color-bg) 0%, transparent 14%, transparent 86%, rgb(36 20 15/.2) 100%); } }
.hero__content{ position:relative; display:flex; flex-direction:column; justify-content:center; gap:1.4rem; padding:7.5rem 1.25rem 3rem; }
@media (min-width:900px){ .hero__content{ padding:2rem 3rem 2rem 4rem; order:1; } }
.hero__content h1{ text-wrap:balance; }
.hero__stitch{ position:absolute; inset:0; width:100%; height:100%; pointer-events:none; z-index:2; }
.hero__stitch path{ fill:none; stroke:var(--color-brand); stroke-width:2.4; }
.hero__needle{ transform-box:fill-box; transform-origin:50% 50%; }
.hero__cta-row{ display:flex; flex-wrap:wrap; gap:1rem; align-items:center; }
.hero__meta{ display:flex; gap:1.5rem; flex-wrap:wrap; margin-top:.5rem; font-size:.85rem; color:var(--color-muted); }

/* ===== Unterseiten-Hero (kompakt) ===== */
.subhero{ position:relative; min-height:56svh; display:flex; align-items:flex-end; overflow:hidden; color:#fff; }
.subhero img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.subhero::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgb(36 20 15/.35), rgb(20 12 9/.82)); }
.subhero .wrap{ position:relative; z-index:2; padding-block:3.5rem 3rem; }
.subhero .eyebrow{ color:var(--color-accent); }
.subhero h1{ color:#fff; max-width:20ch; }
.subhero .lead{ color:#f2e9dd; opacity:.92; margin-top:1rem; }

/* ===== Prozess-Set-Piece (Pin-Story) ===== */
.story{ position:relative; overflow:hidden; height:100svh; }
.story__track{ display:flex; height:100%; }
.story__panel{ width:100vw; flex:0 0 100vw; display:flex; align-items:center; }
.story__panel .wrap{ display:grid; gap:2.5rem; grid-template-columns:1fr; align-items:center; width:100%; }
@media (min-width:860px){ .story__panel .wrap{ grid-template-columns:1fr 1fr; } }
.story__stage{ position:relative; aspect-ratio:1/1; max-width:420px; margin-inline:auto; }
.story__stage svg{ width:100%; height:100%; }
.story__num{ font-family:"Marcellus",serif; font-size:3rem; color:var(--color-accent); opacity:.5; line-height:1; }
.story__dots{ position:absolute; bottom:1.5rem; left:50%; transform:translateX(-50%); display:flex; gap:.5rem; z-index:3; }
.story__dot{ width:8px; height:8px; border-radius:50%; background:currentColor; opacity:.3; }
.story__dot.is-active{ opacity:1; background:var(--color-brand); }

/* ===== Vorher/Nachher ===== */
.ba{ position:relative; border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow); aspect-ratio:16/10; max-width:640px; margin-inline:auto; background:var(--color-surface-2); }
.ba svg{ position:absolute; inset:0; width:100%; height:100%; }
.ba-after{ position:absolute; inset:0; }
.ba-before{ position:absolute; inset:0; }
.ba-tag{ position:absolute; top:.9rem; z-index:3; font-size:.72rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; padding:.3rem .7rem; border-radius:var(--radius-full); background:rgb(36 20 15/.72); color:#fff; pointer-events:none; }
.ba-tag-l{ left:.9rem; } .ba-tag-r{ right:.9rem; }
.ba-range{ position:absolute; inset:0; width:100%; height:100%; margin:0; opacity:0; cursor:ew-resize; z-index:4; }
.ba-handle{ position:absolute; top:0; bottom:0; left:var(--ba,50%); width:3px; background:#fff; z-index:3; pointer-events:none; box-shadow:0 0 0 1px rgb(0 0 0/.15); }
.ba-handle::after{ content:"↔"; position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:2.6rem; height:2.6rem; border-radius:50%; background:#fff; color:var(--color-brand); display:flex; align-items:center; justify-content:center; font-weight:700; box-shadow:var(--shadow-sm); }

/* ===== Zahlen/Count-up ===== */
.stat{ text-align:center; }
.stat__num{ font-family:"Marcellus",serif; font-size:clamp(2.2rem,5vw,3.2rem); color:var(--color-brand); }
.stat__label{ font-size:.88rem; color:var(--color-muted); margin-top:.35rem; }

/* ===== Testimonials ===== */
.testi{ background:var(--color-surface); border:1px solid var(--color-border); border-radius:var(--radius); padding:1.6rem; box-shadow:var(--shadow-sm); }
.testi__quote-icon{ width:1.8rem; height:1.8rem; color:var(--color-accent); margin-bottom:.6rem; }
.testi__name{ margin-top:1rem; font-weight:700; font-size:.9rem; }
.testi__loc{ font-size:.82rem; color:var(--color-muted); }

/* ===== FAQ Accordion ===== */
.faq-item{ border-bottom:1px solid var(--color-border); }
.faq-q{ width:100%; display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1.25rem 0; background:none; border:0; text-align:left; font:inherit; font-weight:600; font-size:1.02rem; cursor:pointer; color:inherit; }
.faq-q svg{ flex:none; width:1.3rem; height:1.3rem; transition:transform .4s var(--ease-out); }
.faq-item[data-open="true"] .faq-q svg{ transform:rotate(180deg); }
.faq-a{ overflow:hidden; height:0; }
.faq-a__in{ padding-bottom:1.25rem; opacity:.82; max-width:65ch; }

/* ===== Footer ===== */
.site-footer{ background:var(--color-surface-2); border-top:1px solid var(--color-border); padding-block:3.5rem 1.5rem; }
.footer-grid{ display:grid; gap:2.2rem; grid-template-columns:1fr; margin-bottom:2.5rem; }
@media (min-width:800px){ .footer-grid{ grid-template-columns:1.2fr 1fr 1fr; } }
.footer-grid h4{ font-size:1rem; margin-bottom:.9rem; font-family:"Archivo",sans-serif; font-weight:700; text-transform:uppercase; letter-spacing:.08em; font-size:.78rem; color:var(--color-muted); }
.footer-grid ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.55rem; }
.footer-grid a{ text-decoration:none; opacity:.85; }
.footer-grid a:hover{ opacity:1; }
.footer-bottom{ border-top:1px solid var(--color-border); padding-top:1.5rem; display:flex; flex-wrap:wrap; gap:1rem; align-items:center; justify-content:space-between; padding-bottom:15px; }
.footer-legal{ display:flex; gap:1.2rem; flex-wrap:wrap; font-size:.85rem; opacity:.75; }
.footer-legal a{ text-decoration:none; }
.footer-legal a:hover{ text-decoration:underline; }
.footer-demo-note{ font-size:.78rem; opacity:.6; max-width:60ch; margin-top:1rem; }
.theme-toggle{ display:inline-flex; align-items:center; justify-content:center; width:40px; height:40px; border-radius:50%; border:1px solid var(--color-border); background:var(--color-surface); cursor:pointer; color:inherit; }
.theme-toggle svg{ width:1.15rem; height:1.15rem; }

/* ===== Sektions-Rhythmus hell/dunkel ===== */
.section-dark{ background:var(--color-fg); color:var(--color-bg); }
[data-theme="dark"] .section-dark{ background:#151009; }
.section-dark .eyebrow{ color:var(--color-accent); }
.section-dark .card{ background:rgb(255 255 255/.05); border-color:rgb(255 255 255/.12); backdrop-filter:blur(6px); }
.section-dark .lead{ color:inherit; opacity:.75; }

/* ===== Preloader ===== */
#preloader{ position:fixed; inset:0; z-index:9999; background:var(--color-bg); display:flex; align-items:center; justify-content:center; }
#preloader svg{ width:5rem; height:5rem; }
#preloader .mark path{ fill:none; stroke:var(--color-brand); stroke-width:6; }

/* ===== Reveal-Utility (Start-Zustände NUR via GSAP gesetzt, s. main.js) ===== */
[data-split]{ overflow:hidden; }
[data-tilt]{ transform-style:preserve-3d; }
.no-anim [data-reveal] > *, .no-anim [data-split], .no-anim [data-depth]{ opacity:1 !important; transform:none !important; }
.no-anim #preloader{ display:none; }

@media (max-width:767px){
  .story{ height:auto; min-height:100svh; }
  .hero__content{ padding-top:6.5rem; }
}

/* ===== Kontakt+Termin-Vorlage (Vorlagen/kontakt-termin-vorlage.html) — Struktur/JS unverändert, nur Farben oben via --k-* ===== */
.k-card{ background:var(--k-card,var(--color-surface)); border:1px solid var(--k-border,var(--color-border)); border-radius:var(--k-radius,var(--radius)); padding:1.75rem; }
.k-card h2{ font-size:1.4rem; margin:0 0 .35rem; }
.k-sub{ color:var(--k-muted,var(--color-muted)); margin:0 0 1.25rem; font-family:"Archivo",sans-serif; }
.k-card label{ display:block; font-size:.9rem; font-weight:600; margin:.75rem 0 .3rem; }
.k-card input, .k-card textarea, .k-card select{ width:100%; padding:.7rem .8rem; border:1px solid var(--k-border,var(--color-border)); border-radius:10px; background:var(--color-bg); color:var(--color-fg); font:inherit; }
.k-card input:focus, .k-card textarea:focus, .k-card select:focus{ outline:2px solid var(--k-accent,var(--color-brand)); border-color:var(--k-accent,var(--color-brand)); }
.k-row{ display:grid; grid-template-columns:1fr 1fr; gap:.75rem; }
@media (max-width:560px){ .k-row{ grid-template-columns:1fr; } }
.k-btn{ appearance:none; border:0; cursor:pointer; font:inherit; font-weight:700; padding:.75rem 1.2rem; border-radius:10px; background:var(--k-accent,var(--color-brand)); color:var(--k-accent-ink,#fff); }
.k-btn[disabled]{ opacity:.55; cursor:not-allowed; }
.k-btn.ghost{ background:transparent; color:var(--k-accent,var(--color-brand)); border:1px solid var(--k-accent,var(--color-brand)); }
.k-consent{ display:flex; gap:.5rem; align-items:flex-start; font-size:.85rem; color:var(--k-muted,var(--color-muted)); margin:.8rem 0; }
.k-consent input{ width:auto; margin-top:.2rem; flex:none; }
.k-note{ font-size:.9rem; padding:.7rem .9rem; border-radius:10px; margin-top:.9rem; display:none; }
.k-note.ok{ display:block; background:#e8f5f0; color:#0f6b52; }
.k-note.err{ display:block; background:#fdeaea; color:#a5251f; }
.hp{ position:absolute!important; left:-9999px!important; width:1px; height:1px; overflow:hidden; }
.bk{ display:grid; grid-template-columns:1.1fr .9fr; gap:1.25rem; margin-top:1rem; }
@media (max-width:640px){ .bk{ grid-template-columns:1fr; } }
.bk-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:.6rem; }
.bk-nav{ width:2rem; height:2rem; border:1px solid var(--k-border,var(--color-border)); background:var(--color-bg); color:var(--color-fg); border-radius:8px; cursor:pointer; font-size:1.1rem; line-height:1; }
.bk-nav[disabled]{ opacity:.35; cursor:not-allowed; }
.bk-wd, .bk-days{ display:grid; grid-template-columns:repeat(7,1fr); gap:.3rem; }
.bk-wd span{ text-align:center; font-size:.72rem; color:var(--k-muted,var(--color-muted)); padding:.2rem 0; }
.bk-day{ padding:.55rem 0; border:1px solid var(--k-border,var(--color-border)); background:var(--color-bg); color:var(--color-fg); border-radius:8px; cursor:pointer; font:inherit; text-align:center; }
.bk-day.is-empty{ border:0; background:transparent; cursor:default; }
.bk-day.is-off{ color:#8a8a8a; background:rgb(128 128 128/.08); cursor:not-allowed; }
.bk-day.is-free{ border-color:var(--k-accent,var(--color-brand)); color:var(--k-accent,var(--color-brand)); font-weight:600; }
.bk-day.is-sel{ background:var(--k-accent,var(--color-brand)); color:var(--k-accent-ink,#fff); border-color:var(--k-accent,var(--color-brand)); }
.bk-hint{ font-size:.78rem; color:var(--k-muted,var(--color-muted)); margin:.6rem 0 0; }
.bk-slots{ display:grid; grid-template-columns:repeat(3,1fr); gap:.4rem; margin:.5rem 0; }
.bk-slot{ padding:.55rem 0; border:1px solid var(--k-border,var(--color-border)); background:var(--color-bg); color:var(--color-fg); border-radius:8px; cursor:pointer; font:inherit; }
.bk-slot.is-sel{ background:var(--k-accent,var(--color-brand)); color:var(--k-accent-ink,#fff); border-color:var(--k-accent,var(--color-brand)); }
.bk-side-title{ font-weight:700; margin:0 0 .5rem; }
.bk-cal-links{ display:flex; gap:.5rem; flex-wrap:wrap; margin-top:.8rem; }
.bk-cal-links a{ font-size:.85rem; text-decoration:none; color:var(--k-accent,var(--color-brand)); border:1px solid var(--k-accent,var(--color-brand)); border-radius:8px; padding:.4rem .7rem; }

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto !important; }
  .bg-scene__gradient{ animation-duration:90s; }
  [data-parallax]{ animation:none !important; }
}
