/* ═══════════════════════════════════════════════════
   ALEXANDRE AVOCAT — MUJI
   One layer. Zero overrides. Nothing unnecessary.
   Fonts: Newsreader + Manrope (per site rules)
   Palette: #0084bd blue, used sparingly
   ═══════════════════════════════════════════════════ */

:root {
  --blue: #0084bd;
  --blue-q: #00739e;
  --blue-w: rgba(0,132,189,0.06);

  --black: #1a1a18;
  --ink: #303028;
  --body: #5e5b54;
  --muted: #8a867e;
  --faint: #bfbbb2;
  --rule: #d8d4cb;
  --wash: #edeae2;
  --paper: #f6f4ee;
  --white: #fdfcf8;

  --err: #a8342c;
  --ok: #2c7040;

  --w: min(1200px, 91vw);
  --sans: "Manrope", system-ui, sans-serif;
  --serif: "Newsreader", Georgia, serif;
  --ease: cubic-bezier(.4,0,.2,1);
}

@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after {
    animation-duration:.01ms!important;
    transition-duration:.01ms!important;
    scroll-behavior:auto!important;
  }
}

*,*::before,*::after { box-sizing:border-box }
html,body { margin:0;padding:0 }
html { scroll-behavior:smooth }

body {
  min-height:100dvh;
  color:var(--body);
  font:400 15px/1.78 var(--sans);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
}

::selection { color:var(--white);background:var(--blue) }
a { color:inherit;text-decoration:none }
img,svg,iframe { max-width:100%;display:block }

.sr-only,.sr-only-focusable {
  position:absolute!important;width:1px!important;height:1px!important;
  padding:0!important;margin:-1px!important;overflow:hidden!important;
  clip:rect(0,0,0,0)!important;clip-path:inset(50%)!important;
  white-space:nowrap!important;border:0!important;
}
.skip-link {
  z-index:999;color:var(--white);background:var(--black);
  font-size:.7rem;font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;padding:.5rem .75rem;
}
.sr-only-focusable:focus,.sr-only-focusable:focus-visible {
  position:fixed!important;left:1rem!important;top:.8rem!important;
  width:auto!important;height:auto!important;margin:0!important;
  overflow:visible!important;clip:auto!important;clip-path:none!important;
  white-space:normal!important;
}

.scroll-progress {
  position:fixed;top:0;left:0;z-index:220;
  width:0;height:1px;background:var(--faint);
  pointer-events:none;
}

.container { width:var(--w);margin:0 auto }


/* ═══ HEADER ═══ */
.site-header {
  position:sticky;top:0;z-index:200;
  background:rgba(246,244,238,.92);
  backdrop-filter:blur(14px);
  border-bottom:1px solid var(--rule);
}

.nav-wrap {
  min-height:3.8rem;
  display:grid;grid-template-columns:auto 1fr auto;
  align-items:center;gap:1.5rem;
}

.brand { display:inline-flex;align-items:center;gap:.7rem }
.brand-mark {
  width:2rem;height:2rem;display:grid;place-items:center;
  border:1px solid var(--rule);color:var(--ink);
  font:600 .95rem/1 var(--serif);
  transition:border-color .3s var(--ease);
}
.brand:hover .brand-mark { border-color:var(--faint) }

.brand-title {
  color:var(--black);font-size:.92rem;font-weight:700;
  letter-spacing:.02em;line-height:1.1;
}
.brand-sub {
  margin-top:.1rem;color:var(--muted);
  font-size:.56rem;font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;
}

.nav-panel { display:contents }
.nav-links { display:flex;justify-content:center;flex-wrap:wrap;gap:0 }
.nav-links a {
  color:var(--muted);font-size:.68rem;font-weight:600;
  letter-spacing:.06em;padding:.35rem .65rem;
  transition:color .25s var(--ease);
}
.nav-links a:hover,.nav-links a[aria-current="page"] { color:var(--black) }

.nav-actions { display:flex;align-items:center;justify-content:flex-end;gap:.6rem }

.lang-switch {
  display:inline-flex;gap:0;border:1px solid var(--rule);overflow:hidden;
}
.lang-link {
  display:inline-flex;align-items:center;justify-content:center;
  min-width:1.7rem;height:1.4rem;
  color:var(--muted);font-size:.56rem;font-weight:700;letter-spacing:.08em;
  transition:color .2s,background .2s;
}
.lang-link.is-active { color:var(--white);background:var(--black) }

.menu-toggle {
  display:none;justify-self:end;
  border:1px solid var(--rule);background:transparent;
  color:var(--ink);font:inherit;font-size:.6rem;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;padding:.35rem .55rem;
  cursor:pointer;
}


/* ═══ TYPE ═══ */
h1,h2,h3,h4 { margin:0 0 .6rem;color:var(--black) }

h1 {
  font:500 clamp(2rem,5vw,3.6rem)/1.08 var(--serif);
  letter-spacing:-.025em;text-wrap:balance;
}
h2 {
  font:500 clamp(1.4rem,3.2vw,2.6rem)/1.12 var(--serif);
  letter-spacing:-.018em;text-wrap:balance;
}
h3 {
  font:500 clamp(1rem,1.6vw,1.22rem)/1.32 var(--serif);
  letter-spacing:0;
}
h4 { font-size:.78rem;font-weight:700;letter-spacing:.04em }

p { margin:0 0 .85rem }

.lead {
  max-width:54ch;color:var(--ink);
  font-size:clamp(.96rem,1.3vw,1.06rem);line-height:1.82;
}

.eyebrow {
  display:block;margin-bottom:.9rem;
  color:var(--muted);font-size:.58rem;font-weight:700;
  letter-spacing:.16em;text-transform:uppercase;
}
.eyebrow::before { display:none }


/* ═══ PAGE & HERO ═══ */
.page-main { padding:clamp(1.8rem,3.5vw,3rem) 0 6rem }
.page-intro { margin-top:.5rem }

.hero {
  position:relative;overflow:hidden;
  padding:clamp(2.5rem,5vw,4.5rem) 0 clamp(2rem,4vw,3.5rem);
}
.hero::before { display:none }
.hero-copy { max-width:66ch }
.hero-actions { display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.6rem }

.hero-proof { margin-top:1rem }
.proof-chip {
  display:inline-flex;align-items:baseline;gap:.35rem;
  color:var(--muted);font-size:.74rem;font-weight:500;
}
.proof-chip strong { color:var(--black);font-size:1.05rem;line-height:1 }

.hero-tags { margin-top:1rem;display:flex;flex-wrap:wrap;gap:.35rem }
.hero-tag {
  border:1px solid var(--rule);color:var(--muted);
  font-size:.66rem;font-weight:600;padding:.24rem .55rem;
}

.hero-home { padding:0;border:0 }
.hero-home::before,.hero-home::after { display:none }

.hero-stage {
  display:grid;grid-template-columns:1fr;
  min-height:auto;border:0;overflow:visible;
  background:transparent;box-shadow:none;
}
.hero-panel {
  display:grid;align-content:start;gap:1rem;
  padding:0;border:0;background:transparent;
  max-width:min(880px,100%);
}
.hero-panel .lead { max-width:46ch }

.hero-home h1 {
  max-width:14ch;
  font-size:clamp(2.2rem,5.5vw,4.4rem);line-height:1.06;
}

.hero-mode-grid { display:flex;flex-wrap:wrap;gap:.38rem }
.mode-chip {
  display:inline-flex;align-items:center;min-height:2.1rem;
  border:1px solid var(--rule);background:transparent;
  color:var(--muted);font-size:.66rem;font-weight:600;
  padding:.38rem .7rem;
  transition:color .3s var(--ease),border-color .3s var(--ease);
}
.mode-chip.is-active { border-color:var(--faint);color:var(--ink) }

.hero-searchbar {
  display:grid;grid-template-columns:1fr 1fr auto;
  gap:.4rem;margin-top:.3rem;
}
.hero-searchfield {
  display:grid;gap:.05rem;
  border:1px solid var(--rule);background:var(--white);
  padding:.55rem .7rem;
}
.hero-searchlabel {
  color:var(--muted);font-size:.52rem;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;
}
.hero-searchfield strong {
  color:var(--black);font-size:.82rem;font-weight:600;
}
.hero-searchbar .btn { min-width:8rem }

.hero-visual { display:none }
.hero-visual::before,.hero-visual::after { display:none }
.hero-visual-frame,.hero-visual-note { display:none }


/* ═══ METRICS ═══ */
.metric-wall {
  margin-top:0;
  display:grid;grid-template-columns:repeat(4,1fr);gap:0;
  border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);
}
.metric-card { padding:1.2rem .85rem;border-right:1px solid var(--rule) }
.metric-card:last-child { border-right:0 }

.metric-value {
  display:block;margin-bottom:.2rem;color:var(--black);
  font:500 clamp(1.5rem,2.2vw,2.1rem)/1 var(--serif);
  letter-spacing:-.02em;
}
.metric-label { display:block;color:var(--muted);font-size:.68rem;font-weight:500 }


/* ═══ SECTIONS ═══ */
.section { margin-top:clamp(3rem,6vw,5.5rem) }

.section-head {
  display:flex;flex-wrap:wrap;align-items:flex-end;
  justify-content:space-between;gap:1.2rem;
  margin-bottom:1.4rem;padding-bottom:1rem;
  border-bottom:1px solid var(--rule);
}
.section-copy { max-width:66rem }
.section-head .eyebrow { margin-bottom:.7rem }
.section-head h2 {
  max-width:20ch;margin-bottom:.5rem;
  font-size:clamp(1.8rem,4vw,3.2rem);line-height:1.08;
}
.section-summary {
  max-width:58rem;margin:0;color:var(--body);
  font-size:clamp(.95rem,1.35vw,1.08rem);line-height:1.78;
}


/* ═══ GRIDS & CARDS ═══ */
.grid { display:grid;gap:.75rem }
.grid-2 { grid-template-columns:repeat(2,1fr) }
.grid-3 { grid-template-columns:repeat(3,1fr) }

.card {
  padding:1.2rem 1.1rem;
  border:1px solid var(--rule);background:var(--white);
}
.card p:last-child,.card ul:last-child { margin-bottom:0 }
.card ul { margin:.55rem 0 0;padding:0;list-style:none;color:var(--body) }
.card ul li { margin-bottom:.32rem;padding-left:.8rem;position:relative }
.card ul li::before {
  content:"";position:absolute;left:0;top:.72em;
  width:3px;height:1px;background:var(--faint);
}

.value-switcher,.switch-panel,.accordion-item,
.booking-card-main,.booking-result,
.admin-shell > .card,.admin-extensions .card,
.booking-shell .card {
  border:1px solid var(--rule);background:var(--white);
  box-shadow:none;padding:clamp(1rem,2vw,1.4rem);
}

.tilt-card { transition:none }
.tilt-card:hover { transform:none!important;border-color:var(--rule) }

.service-grid { gap:.75rem }
.service-card {
  display:grid;gap:.45rem;position:relative;
  min-height:auto;align-content:start;overflow:hidden;
  border:1px solid var(--rule);background:var(--white);
  padding:1.2rem 1.1rem;
  transition:background .3s var(--ease);
}
.service-card:hover { background:var(--wash) }
.service-card::before { display:none }
.service-card > * { position:relative;z-index:1 }
.service-card h3 {
  font:500 clamp(1.15rem,1.8vw,1.5rem)/1.25 var(--serif);
  margin-bottom:.2rem;
}
.service-head { display:none }
.service-icon { display:none }
.service-meta { display:none }

.home-solutions .section-head,.trust-section .section-head { margin-bottom:1.1rem }

.solution-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem }
.solution-tile {
  display:grid;align-content:start;gap:.6rem;
  min-height:auto;border:1px solid var(--rule);
  background:var(--white);padding:1.15rem 1rem;
  transition:background .3s var(--ease);
}
.solution-tile:hover { transform:none;background:var(--wash) }

.solution-kicker {
  color:var(--muted);font-size:.56rem;font-weight:700;
  letter-spacing:.16em;text-transform:uppercase;
}
.solution-link {
  align-self:end;width:fit-content;
  color:var(--ink);font-size:.7rem;font-weight:600;
  border-bottom:1px solid var(--faint);padding-bottom:.04rem;
  transition:color .25s var(--ease),border-color .25s var(--ease);
}
.solution-link:hover { color:var(--blue);border-color:var(--blue) }

.trust-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem }
.trust-chip {
  display:grid;place-items:center;min-height:4.5rem;
  border:1px solid var(--rule);background:var(--white);
  color:var(--ink);font:500 clamp(.9rem,1.35vw,1.05rem)/1.3 var(--serif);
  text-align:center;padding:.55rem;
  transition:background .3s var(--ease);
}
.trust-chip:hover { background:var(--wash) }

.highlight-box {
  border-left:2px solid var(--faint);background:transparent;
  padding:.55rem 0 .55rem .85rem;margin:0 0 .85rem;color:var(--ink);
}

.value-switcher { display:grid;gap:.65rem }
.switch-controls {
  display:inline-flex;gap:0;border:1px solid var(--rule);padding:0;
}
.switch-btn {
  border:0;background:transparent;color:var(--muted);
  font:inherit;font-size:.7rem;font-weight:700;
  letter-spacing:.04em;padding:.38rem .75rem;cursor:pointer;
  transition:background .2s,color .2s;
}
.switch-btn:hover { color:var(--ink) }
.switch-btn.is-active { color:var(--white);background:var(--black) }
.switch-panels { display:grid;gap:.5rem }

.split { display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem }
.timeline { display:grid;gap:.65rem }
.timeline-row {
  display:grid;grid-template-columns:auto 1fr;
  gap:.6rem;align-items:flex-start;
}
.step-dot {
  width:1.5rem;aspect-ratio:1;border:1px solid var(--rule);
  color:var(--ink);background:var(--white);
  display:grid;place-items:center;font-size:.62rem;font-weight:700;
}


/* ═══ BUTTONS ═══ */
.btn {
  --btn-x:0px;--btn-y:0px;
  display:inline-flex;align-items:center;justify-content:center;
  gap:.35rem;border:1px solid transparent;
  padding:.58rem .95rem;color:inherit;background:transparent;
  font:inherit;font-size:.68rem;font-weight:700;
  letter-spacing:.06em;cursor:pointer;
  transform:translate3d(var(--btn-x),var(--btn-y),0);
  transition:background .25s var(--ease),border-color .25s var(--ease),color .25s var(--ease);
}
.magnetic { --btn-x:0px!important;--btn-y:0px!important }

.btn-primary { color:var(--white);background:var(--blue);border-color:var(--blue) }
.btn-primary:hover { background:var(--blue-q);border-color:var(--blue-q) }

.btn-ghost { border-color:var(--rule);color:var(--body) }
.btn-ghost:hover { border-color:var(--faint);color:var(--ink);background:var(--wash) }

.btn:disabled { cursor:not-allowed;opacity:.4 }

.btn:focus-visible,.menu-toggle:focus-visible,
.nav-links a:focus-visible,.accordion-trigger:focus-visible,
input:focus-visible,textarea:focus-visible,select:focus-visible,
.lang-link:focus-visible,.calendar-card:focus-visible,
.switch-btn:focus-visible,.booking-slot:focus-visible,
.admin-date-btn:focus-visible,.admin-slot-btn:focus-visible,
.admin-day-chip:focus-visible {
  outline:2px solid var(--blue);outline-offset:2px;
}


/* ═══ ACCORDION ═══ */
.accordion { display:grid;gap:.5rem }
.accordion-item {
  padding:.9rem 1rem;border:1px solid var(--rule);
  background:var(--white);box-shadow:none;
}
.accordion-item > .accordion-trigger {
  list-style:none;
}
.accordion-item > .accordion-trigger::-webkit-details-marker {
  display:none;
}
.accordion-trigger {
  width:100%;display:flex;justify-content:space-between;
  align-items:center;gap:1.2rem;border:0;
  background:transparent;color:var(--black);
  font:inherit;font-size:.88rem;font-weight:600;
  text-align:left;cursor:pointer;padding:0;
}
.accordion-trigger::after {
  content:"+";flex-shrink:0;
  color:var(--muted);font-size:.95rem;font-weight:300;
  transition:transform .3s var(--ease),color .3s var(--ease);
}
.accordion-trigger:hover::after { color:var(--ink) }
.accordion-trigger[aria-expanded="true"]::after { transform:rotate(45deg);color:var(--blue) }
.accordion-item[open] > .accordion-trigger::after { transform:rotate(45deg);color:var(--blue) }

.accordion-panel {
  max-height:none;
  opacity:1;
  overflow:visible;
  padding-top:.6rem;
  transition:opacity .2s ease;
}
.accordion-panel.is-open { opacity:1;padding-top:.6rem }
.panel-hidden { display:none }
.accordion-item .accordion-panel { display:none }
.accordion-item[open] .accordion-panel { display:block }


/* ═══ FORMS ═══ */
form,.booking-form { display:grid;gap:.7rem }

label {
  color:var(--muted);font-size:.56rem;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;
}

input,textarea,select {
  width:100%;border:1px solid var(--rule);
  background:var(--white);color:var(--black);
  font:inherit;font-size:.88rem;padding:.55rem .6rem;
  transition:border-color .25s var(--ease);
}
input:hover,textarea:hover,select:hover { border-color:var(--faint) }
input:focus,textarea:focus,select:focus {
  border-color:var(--blue);outline:none;
  box-shadow:0 0 0 2px var(--blue-w);
}
textarea { min-height:6rem;resize:vertical }
.note { margin:0;color:var(--muted);font-size:.72rem }


/* ═══ BOOKING ═══ */
.booking-shell {
  display:grid;grid-template-columns:1.05fr .95fr;gap:.75rem;
}
.booking-card-main,.booking-result { display:grid;gap:.7rem }

.booking-stepper { display:flex;flex-wrap:wrap;gap:.24rem }
.step-pill {
  border:1px solid var(--rule);color:var(--muted);
  font-size:.54rem;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;padding:.17rem .48rem;
}
.step-pill.is-active { border-color:var(--faint);color:var(--ink) }

.booking-slot-grid {
  display:grid;grid-template-columns:repeat(3,1fr);gap:.32rem;
}
.booking-slot {
  border:1px solid var(--rule);background:var(--white);
  color:var(--muted);font:inherit;font-size:.72rem;font-weight:600;
  padding:.45rem .28rem;cursor:pointer;
  transition:border-color .2s,color .2s,background .2s;
}
.booking-slot:hover { border-color:var(--faint);color:var(--ink) }
.booking-slot.is-selected {
  border-color:var(--blue);color:var(--white);background:var(--blue);
}

.booking-preview { border-top:1px solid var(--rule);padding-top:.7rem }
.booking-preview h4 { margin-bottom:.2rem }
.booking-preview-line { margin:.1rem 0;font-size:.74rem }

.booking-success { border-color:var(--blue) }
.booking-success-head { display:grid;grid-template-columns:auto 1fr;gap:.6rem }
.booking-check {
  width:1.6rem;aspect-ratio:1;display:grid;place-items:center;
  color:var(--white);background:var(--blue);
  font-size:.58rem;font-weight:700;
}
.booking-summary { margin:0;color:var(--body);font-size:.76rem }
.booking-meta {
  margin:0;padding:0;list-style:none;
  display:grid;gap:.28rem;font-size:.76rem;
}
.booking-calendar-grid { display:grid;gap:.32rem }
.calendar-card {
  display:block;border:1px solid var(--rule);
  padding:.5rem .65rem;color:var(--body);
  font-size:.7rem;font-weight:600;
  transition:border-color .2s,color .2s,background .2s;
}
.calendar-card:hover { border-color:var(--faint);color:var(--ink);background:var(--wash) }


/* ═══ ADMIN ═══ */
.admin-shell { display:grid;gap:.85rem }
.admin-status { margin-top:.3rem;min-height:1.1rem;color:var(--muted);font-size:.72rem }
.admin-status.is-error { color:var(--err) }
.admin-status.is-success { color:var(--ok) }
.admin-login-form { max-width:380px }

.admin-toolbar {
  display:flex;flex-wrap:wrap;align-items:center;
  justify-content:space-between;gap:.7rem;
  padding-bottom:.7rem;margin-bottom:.75rem;
  border-bottom:1px solid var(--rule);
}
.admin-toolbar-actions { display:flex;flex-wrap:wrap;gap:.4rem }
.admin-layout { display:grid;grid-template-columns:220px 1fr;gap:.75rem }

.admin-date-list {
  max-height:500px;overflow-y:auto;display:grid;gap:.28rem;
}
.admin-date-btn {
  width:100%;display:flex;align-items:center;
  justify-content:space-between;gap:.4rem;
  border:1px solid var(--rule);background:var(--white);
  color:var(--body);font:inherit;font-size:.74rem;font-weight:600;
  padding:.42rem .5rem;cursor:pointer;
  transition:border-color .2s,color .2s;
}
.admin-date-btn small { color:var(--muted);font-size:.6rem }
.admin-date-btn:hover { border-color:var(--faint) }
.admin-date-btn.is-active { border-color:var(--ink);color:var(--black) }

.admin-edit-panel {
  border:1px solid var(--rule);background:var(--white);padding:.95rem;
}
.admin-date-title { margin-bottom:.65rem;font-size:.92rem }

.admin-slot-grid {
  display:grid;grid-template-columns:repeat(4,1fr);gap:.28rem;
}
.admin-slot-btn {
  border:1px solid var(--rule);background:var(--white);
  color:var(--muted);font:inherit;font-size:.7rem;font-weight:600;
  padding:.36rem .14rem;cursor:pointer;
  transition:border-color .2s,background .2s,color .2s;
}
.admin-slot-btn:hover { border-color:var(--faint) }
.admin-slot-btn.is-active {
  border-color:var(--blue);color:var(--white);background:var(--blue);
}

.admin-extensions { margin-top:1rem;display:grid;gap:.75rem }
.admin-inline-form { display:grid;gap:.5rem;margin-top:.55rem }
.admin-rule-list { display:grid;gap:.38rem;margin-bottom:.65rem }
.admin-rule-item {
  display:flex;justify-content:space-between;align-items:center;
  gap:.5rem;border:1px solid var(--rule);
  padding:.42rem .5rem;background:var(--white);
}
.admin-rule-remove { white-space:nowrap }
.admin-rule-builder { display:grid;gap:.55rem }
.admin-rule-days { display:flex;flex-wrap:wrap;gap:.28rem }
.admin-day-chip {
  border:1px solid var(--rule);background:var(--white);
  color:var(--muted);font:inherit;font-size:.64rem;font-weight:700;
  letter-spacing:.04em;padding:.22rem .45rem;cursor:pointer;
  transition:border-color .2s,background .2s,color .2s;
}
.admin-day-chip.is-active {
  border-color:var(--blue);color:var(--white);background:var(--blue);
}
.admin-rule-fields {
  display:grid;grid-template-columns:repeat(3,1fr);gap:.45rem;
}
.admin-rule-actions { display:flex;flex-wrap:wrap;gap:.4rem }


/* ═══ LEGAL ═══ */
.legal-list { margin:0;display:grid;gap:.22rem }
.legal-list dt {
  margin-top:.38rem;color:var(--ink);font-size:.6rem;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;
}
.legal-list dd { margin:0;color:var(--body) }


/* ═══ FOOTER ═══ */
.footer { border-top:1px solid var(--rule);background:transparent }
.footer-wrap {
  min-height:4.2rem;display:flex;flex-wrap:wrap;
  align-items:center;justify-content:space-between;
  gap:.55rem;color:var(--muted);font-size:.68rem;
}
.footer-links { display:flex;flex-wrap:wrap;gap:.65rem }
.footer-links a { transition:color .25s var(--ease) }
.footer-links a:hover { color:var(--ink) }


/* ═══ COOKIE ═══ */
.cookie-banner {
  position:fixed;left:1rem;right:1rem;top:auto!important;bottom:1rem;z-index:300;
  max-width:860px;margin-inline:auto;
  display:grid;gap:.55rem;
  border:1px solid var(--rule);
  background:var(--white);color:var(--ink);
  padding:.8rem .95rem;
  box-shadow:0 10px 24px rgba(0,0,0,.07);
}
.cookie-banner,.cookie-banner * { pointer-events:auto }
.cookie-banner p { margin:0;color:var(--ink);font-size:.8rem;line-height:1.55 }
.cookie-actions { display:flex;flex-wrap:wrap;gap:.38rem }
.cookie-actions .btn { width:auto!important;font-size:.68rem }
.cookie-actions .btn-primary { background:var(--blue);border-color:var(--blue);color:var(--white) }
.cookie-actions .btn-primary:hover { background:var(--blue-q);border-color:var(--blue-q) }
.cookie-actions .btn-ghost { border-color:var(--rule);color:var(--ink) }
.cookie-actions .btn-ghost:hover { background:var(--wash) }
.cookie-link { color:var(--ink);border-bottom:1px solid var(--faint);font-size:.7rem }


/* ═══ ANIMATE ═══ */
[data-animate] { opacity:1;transform:none }
.js [data-animate] {
  opacity:0;transform:translateY(14px);
  transition:opacity .7s var(--ease),transform .7s var(--ease);
}
.js [data-animate].is-visible { opacity:1;transform:none }
.is-hidden { display:none!important }


/* ═══ ZEN CLASSES (Home V2) ═══ */
.zen-hero {
  padding:clamp(3rem,7vw,6rem) 0 clamp(2rem,4vw,3.5rem);
  border-bottom:1px solid var(--rule);
}
.zen-kicker {
  margin:0 0 .85rem;color:var(--muted);
  font-size:.6rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
}
.zen-hero-title {
  margin:0;max-width:14ch;color:var(--black);
  font:500 clamp(2.2rem,5.5vw,4.4rem)/1.08 var(--serif);
  letter-spacing:-.025em;
}
.zen-lead {
  margin:1.2rem 0 0;max-width:52ch;color:var(--ink);
  font-size:clamp(.96rem,1.4vw,1.1rem);line-height:1.85;
}
.zen-actions { margin-top:1.3rem;display:flex;flex-wrap:wrap;gap:.55rem }
.zen-meta { margin-top:1.2rem;display:flex;flex-wrap:wrap;gap:.45rem }
.zen-meta span {
  display:inline-flex;align-items:center;min-height:1.9rem;
  padding:.3rem .7rem;border:1px solid var(--rule);
  background:var(--white);color:var(--ink);
  font-size:.7rem;font-weight:500;
}

.zen-section-head { display:grid;gap:.45rem;margin-bottom:1.2rem }
.zen-section-head .eyebrow { margin-bottom:0 }
.zen-section-head h2 {
  margin:0;max-width:19ch;
  font-size:clamp(1.6rem,4vw,3.4rem);line-height:1.12;letter-spacing:-.02em;
}

.zen-manifesto .zen-lines { border-top:1px solid var(--rule) }
.zen-lines article {
  display:grid;grid-template-columns:3.8rem 1fr;gap:.5rem 1rem;
  padding:.9rem 0;border-bottom:1px solid var(--rule);
}
.line-index {
  color:var(--blue-q);font:600 1rem/1 var(--serif);letter-spacing:.02em;
}
.zen-lines h3 { margin:0;font:600 .95rem/1.36 var(--sans) }
.zen-lines p { margin:.25rem 0 0;color:var(--body) }

.zen-domaines-grid {
  display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem;
}
.zen-domaines-grid article {
  padding:1.05rem 1.1rem;border:1px solid var(--rule);background:var(--white);
}
.zen-domaines-grid h3 {
  margin:0;font:500 clamp(1.2rem,1.8vw,1.55rem)/1.3 var(--serif);
}
.zen-domaines-grid p { margin:.5rem 0 0 }

.zen-process-list {
  margin:0;padding:0;list-style:none;border-top:1px solid var(--rule);
}
.zen-process-list li {
  display:grid;grid-template-columns:3.8rem 1fr;gap:1rem;
  align-items:start;padding:.9rem 0;border-bottom:1px solid var(--rule);
}
.zen-process-list li > span {
  color:var(--blue-q);font:600 1rem/1 var(--serif);
}
.zen-process-list p { margin:0 }

.zen-booking-panel {
  display:grid;grid-template-columns:1.4fr 1fr;gap:1rem;align-items:end;
  padding:clamp(1.1rem,2.5vw,1.8rem);border:1px solid var(--rule);background:var(--white);
}
.zen-booking-panel h2 { margin:.1rem 0 .5rem }
.zen-booking-panel p { margin:0;max-width:52ch }
.zen-booking-panel .zen-actions { margin-top:0;justify-content:flex-end }

.zen-faq .accordion { max-width:900px }

.zen-contact-row {
  padding-top:.9rem;border-top:1px solid var(--rule);
  display:flex;flex-wrap:wrap;align-items:flex-end;
  justify-content:space-between;gap:.9rem;
}
.zen-contact-row h2 { margin:0 0 .4rem }
.zen-contact-row p { margin:0;color:var(--ink);font-size:.98rem }
.zen-contact-row .zen-actions { margin-top:0 }


/* ═══ RESPONSIVE ═══ */
@media (max-width:1120px) {
  .metric-wall { grid-template-columns:repeat(2,1fr) }
  .metric-card:nth-child(2n) { border-right:0 }
  .grid-3 { grid-template-columns:repeat(2,1fr) }
  .admin-layout { grid-template-columns:195px 1fr }
  .solution-grid,.trust-grid { grid-template-columns:repeat(2,1fr) }
  .section-head h2 { max-width:100% }
}

@media (max-width:920px) {
  .nav-wrap {
    grid-template-columns:auto auto;
    grid-template-areas:"brand toggle" "panel panel";
    align-items:center;gap:.7rem;padding:.6rem 0;min-height:0;
  }
  .brand { grid-area:brand }
  .menu-toggle { display:inline-flex;grid-area:toggle }
  .nav-panel {
    grid-area:panel;display:none;
    border-top:1px solid var(--rule);padding-top:.65rem;gap:.65rem;
  }
  .nav-panel.is-open { display:grid }
  .nav-links { justify-content:flex-start }
  .nav-actions { justify-content:flex-start;flex-wrap:wrap }
  .booking-shell,.split,.grid-2,.grid-3 { grid-template-columns:1fr }
  .admin-layout { grid-template-columns:1fr }
  .admin-date-list { max-height:190px;grid-template-columns:repeat(2,1fr) }
  .zen-domaines-grid,.zen-booking-panel { grid-template-columns:1fr }
  .zen-booking-panel .zen-actions { justify-content:flex-start;margin-top:.4rem }
}

@media (max-width:720px) {
  .page-main { padding-bottom:4rem }
  h1 { line-height:1.12 }
  .hero { padding:clamp(1.5rem,3.5vw,2.5rem) 0 }
  .hero-home h1,.zen-hero-title { max-width:100%;font-size:clamp(1.8rem,8vw,2.8rem) }
  .hero-searchbar { grid-template-columns:1fr }
  .hero-searchbar .btn { min-width:0 }
  .metric-wall { grid-template-columns:1fr }
  .metric-card { border-right:0;border-bottom:1px solid var(--rule) }
  .metric-card:last-child { border-bottom:0 }
  .booking-slot-grid { grid-template-columns:repeat(2,1fr) }
  .admin-slot-grid { grid-template-columns:repeat(3,1fr) }
  .admin-rule-fields { grid-template-columns:1fr }
  .cookie-banner { left:.5rem;right:.5rem;bottom:.5rem }
  .solution-grid,.trust-grid { grid-template-columns:1fr }
  .section-head { margin-bottom:1rem;padding-bottom:.75rem }
  .section-head h2,.zen-section-head h2 { font-size:clamp(1.4rem,7vw,2.1rem) }
  .section-summary { font-size:.92rem }
  .card { padding:.95rem .85rem }
  .btn { width:100% }
  .hero-actions .btn,.cookie-actions .btn,.zen-actions .btn { width:auto }
  .zen-hero { padding-top:2.4rem }
  .zen-lines article,.zen-process-list li { grid-template-columns:1fr;gap:.35rem }
  .zen-actions { width:100% }
}

@media (max-width:560px) {
  .container { width:min(1200px,94vw) }
  .brand-mark { width:1.75rem;height:1.75rem;font-size:.82rem }
  .brand-title { font-size:clamp(.8rem,4.5vw,.95rem) }
  .brand-sub { font-size:.5rem }
  .admin-date-list { grid-template-columns:1fr }
  .admin-slot-grid { grid-template-columns:repeat(2,1fr) }
}
