/* ==========================================================
   Célénitude – feuille de style du site
   Charte : rose poudré, framboise, lavande, bleu ciel,
   turquoise, pêche, crème, doré, bleu profond.
   ========================================================== */
:root {
  --rose: #EFA6B8;
  --framboise: #C83F78;
  --lavande: #9C8BC4;
  --ciel: #8CC9E5;
  --turquoise: #2399AD;
  --peche: #F5B39D;
  --creme: #FFF4EC;
  --or: #C99A52;
  --or-clair: #E2C48F;
  --bleu: #176B83;

  --ink: #33475B;
  --ink-soft: #5E6E80;
  --paper: #FFFAF6;
  --line: rgba(201, 154, 82, .45);

  --grad-brand: linear-gradient(100deg, #C83F78 0%, #B4508F 30%, #9C8BC4 62%, #2399AD 100%);
  --grad-btn: linear-gradient(120deg, #EFA6B8 0%, #C83F78 42%, #9C8BC4 100%);

  --font-script: "Great Vibes", "Snell Roundhand", "Apple Chancery", cursive;
  --font-sans: "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;

  --radius: 22px;
  --radius-sm: 12px;
  --shadow: 0 18px 40px -22px rgba(120, 60, 100, .35);
  --shadow-sm: 0 8px 20px -12px rgba(120, 60, 100, .3);
  --container: 1200px;
  --header-h: 84px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--header-h) + 12px); }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation: none !important; transition: none !important; } }

body {
  margin: 0;
  font-family: var(--font-sans);
  font-size: clamp(15.5px, .3vw + 14.5px, 17px);
  line-height: 1.75;
  color: var(--ink);
  background-color: var(--creme);
  /* légère texture de papier aquarelle */
  background-image:
    radial-gradient(1200px 600px at 110% -10%, rgba(140, 201, 229, .18), transparent 60%),
    radial-gradient(900px 500px at -10% 30%, rgba(239, 166, 184, .16), transparent 60%),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .6 0 0 0 0 .45 0 0 0 0 .4 0 0 0 .06 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-attachment: fixed, fixed, scroll;
  overflow-x: hidden;
}
img, svg, picture { display: block; max-width: 100%; }
img { height: auto; }
a { color: var(--bleu); text-underline-offset: 3px; text-decoration-thickness: 1px; }
a:hover { color: var(--framboise); }
p { margin: 0 0 1em; }
h1, h2, h3 { margin: 0; font-weight: 500; line-height: 1.2; color: var(--bleu); }
:focus-visible { outline: 2px solid var(--framboise); outline-offset: 3px; border-radius: 4px; }
::selection { background: rgba(239, 166, 184, .45); }

.sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.skip-link { position: absolute; left: 1rem; top: -4rem; z-index: 100; padding: .6rem 1rem; background: var(--paper); border-radius: 999px; box-shadow: var(--shadow-sm); }
.skip-link:focus { top: 1rem; }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.container { width: min(100% - 2.5rem, var(--container)); margin-inline: auto; }
.narrow { max-width: 760px; margin-inline: auto; }
.center { text-align: center; }
.muted { color: var(--ink-soft); }
.icon { width: 1.25em; height: 1.25em; flex: none; }

/* ---------- Typographie de marque ---------- */
.script-grad {
  font-family: var(--font-script);
  font-weight: 400;
  background: var(--grad-brand);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
  padding: .05em .18em .12em;
  line-height: 1.15;
}
.section-title { font-size: clamp(2.6rem, 5.5vw, 4rem); text-align: center; font-weight: 400; }
.section-title--left { text-align: left; }
.section-sub { max-width: 640px; margin: .4rem auto 0; color: var(--ink-soft); }
.eyebrow { margin: 0 0 .25rem; font-size: .78rem; font-weight: 600; letter-spacing: .24em; text-transform: uppercase; color: var(--turquoise); }
.lead { font-size: 1.12em; }
.lead-script { font-family: var(--font-script); font-size: clamp(1.9rem, 3.2vw, 2.5rem); line-height: 1.25; color: var(--bleu); margin-bottom: 1.2rem; }
.script-quote { font-family: var(--font-script); font-size: clamp(1.7rem, 3.4vw, 2.4rem); line-height: 1.35; color: var(--bleu); text-align: center; margin: .6rem 0; }
.script-quote--sm { font-size: clamp(1.4rem, 2.4vw, 1.9rem); }
.mini-title { font-size: .82rem; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; color: var(--bleu); margin: 1.6rem 0 .8rem; }
.mini-title:first-child { margin-top: 0; }

.prose > :last-child { margin-bottom: 0; }
.prose h3 { font-size: .9rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; margin: 1.8em 0 .6em; color: var(--bleu); }
.prose ul { padding-left: 1.2em; }
.prose li::marker { color: var(--rose); }
.prose strong { font-weight: 600; color: var(--bleu); }

/* Séparateur doré avec cœur */
.divider { display: flex; align-items: center; justify-content: center; gap: .9rem; margin: 1.1rem auto 1.4rem; max-width: 280px; }
.divider::before, .divider::after { content: ""; flex: 1; height: 1px; background: linear-gradient(90deg, transparent, var(--or)); }
.divider::after { background: linear-gradient(270deg, transparent, var(--or)); }
.divider svg { width: 16px; height: 15px; }

/* ---------- Boutons ---------- */
.btn {
  --b: var(--or-clair);
  position: relative;
  display: inline-flex; align-items: center; justify-content: center; gap: .55em;
  min-height: 48px; padding: .75em 1.7em;
  border: 0; border-radius: 999px;
  font: 600 .8rem/1.2 var(--font-sans); letter-spacing: .16em; text-transform: uppercase;
  text-decoration: none; cursor: pointer;
  transition: transform .25s ease, box-shadow .25s ease, background-position .5s ease, color .2s;
}
.btn .icon { width: 1.3em; height: 1.3em; }
.btn-primary {
  color: #fff;
  background: var(--grad-btn); background-size: 160% 100%; background-position: 0 0;
  box-shadow: 0 10px 24px -12px rgba(200, 63, 120, .8), inset 0 0 0 1px rgba(255, 255, 255, .25);
  text-shadow: 0 1px 2px rgba(110, 30, 70, .3);
}
/* filet doré */
.btn-primary::after { content: ""; position: absolute; inset: 3px; border-radius: inherit; border: 1px solid rgba(231, 198, 138, .75); pointer-events: none; }
.btn-primary:hover { color: #fff; background-position: 100% 0; transform: translateY(-2px); box-shadow: 0 14px 28px -12px rgba(156, 139, 196, .9); }
.btn-ghost { color: var(--bleu); background: rgba(255, 250, 246, .75); box-shadow: inset 0 0 0 1px var(--or); backdrop-filter: blur(4px); }
.btn-ghost:hover { color: var(--framboise); transform: translateY(-2px); box-shadow: inset 0 0 0 1px var(--framboise), var(--shadow-sm); }
.btn-lg { min-height: 56px; padding-inline: 2.2em; font-size: .85rem; }
.actions { display: flex; flex-wrap: wrap; gap: .8rem 1rem; justify-content: center; align-items: center; margin-top: 1.4rem; }
.link-arrow, .card-link { display: inline-flex; align-items: center; gap: .45em; font-size: .78rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; text-decoration: none; color: var(--framboise); }
.link-arrow .icon, .card-link .icon { width: 1.1em; transition: transform .2s; }
.link-arrow:hover .icon, .card-link:hover .icon { transform: translateX(4px); }
.link-muted { color: var(--ink-soft); font-size: .9rem; }

/* ---------- En-tête ---------- */
.site-header {
  position: sticky; top: 0; z-index: 50;
  background: rgba(255, 244, 236, .82);
  backdrop-filter: saturate(1.3) blur(12px); -webkit-backdrop-filter: saturate(1.3) blur(12px);
  border-bottom: 1px solid transparent;
  transition: box-shadow .3s, border-color .3s;
}
.site-header.is-scrolled { border-color: rgba(201, 154, 82, .3); box-shadow: 0 6px 24px -18px rgba(90, 50, 80, .5); }
.header-inner { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; min-height: var(--header-h); }
.brand { display: flex; align-items: center; gap: .7rem; text-decoration: none; min-width: 0; }
.brand-lotus { width: 58px; height: 45px; flex: none; }
.brand-text { display: flex; flex-direction: column; line-height: 1; }
.brand-name { font-family: var(--font-script); font-size: 2.1rem; background: var(--grad-brand); -webkit-background-clip: text; background-clip: text; color: transparent; padding: .08em .12em .1em 0; }
.brand-tag { font-size: .58rem; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; color: var(--bleu); white-space: nowrap; }

.site-nav { display: flex; align-items: center; gap: 1.6rem; }
.site-nav ul { display: flex; gap: .2rem; margin: 0; padding: 0; list-style: none; }
.site-nav ul a {
  position: relative; display: block; padding: .6rem .7rem;
  font-size: .74rem; font-weight: 500; letter-spacing: .16em; text-transform: uppercase;
  color: var(--bleu); text-decoration: none;
}
.site-nav ul a::after {
  content: ""; position: absolute; left: .7rem; right: .7rem; bottom: .35rem; height: 1px;
  background: linear-gradient(90deg, var(--rose), var(--or), var(--lavande));
  transform: scaleX(0); transform-origin: left; transition: transform .3s ease;
}
.site-nav ul a:hover, .site-nav ul a[aria-current] { color: var(--framboise); }
.site-nav ul a:hover::after, .site-nav ul a[aria-current]::after { transform: scaleX(1); }
.nav-cta { min-height: 44px; padding: .65em 1.4em; font-size: .72rem; }

.nav-toggle { display: none; position: relative; width: 48px; height: 48px; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .6); box-shadow: inset 0 0 0 1px var(--line); cursor: pointer; }
.nav-toggle-bars, .nav-toggle-bars::before, .nav-toggle-bars::after { position: absolute; left: 14px; width: 20px; height: 1.6px; background: var(--bleu); border-radius: 2px; transition: transform .3s, opacity .3s; }
.nav-toggle-bars { top: 23px; }
.nav-toggle-bars::before, .nav-toggle-bars::after { content: ""; left: 0; }
.nav-toggle-bars::before { top: -7px; }
.nav-toggle-bars::after { top: 7px; }
.nav-open .nav-toggle-bars { background: transparent; }
.nav-open .nav-toggle-bars::before { transform: translateY(7px) rotate(45deg); }
.nav-open .nav-toggle-bars::after { transform: translateY(-7px) rotate(-45deg); }

@media (max-width: 1140px) {
  .nav-toggle { display: block; }
  .site-nav {
    position: fixed; inset: var(--header-h) 0 auto 0; z-index: 49;
    flex-direction: column; align-items: stretch; gap: 1.2rem;
    max-height: calc(100dvh - var(--header-h)); overflow-y: auto;
    padding: 1.2rem 1.5rem 2rem;
    background: rgba(255, 246, 240, .97); backdrop-filter: blur(14px);
    border-bottom: 1px solid var(--line); box-shadow: 0 30px 40px -30px rgba(90, 50, 80, .45);
    transform: translateY(-12px); opacity: 0; visibility: hidden;
    transition: transform .3s ease, opacity .3s ease, visibility 0s .3s;
  }
  .nav-open .site-nav { transform: none; opacity: 1; visibility: visible; transition-delay: 0s; }
  .site-nav ul { flex-direction: column; }
  .site-nav ul a { padding: .9rem .4rem; font-size: .85rem; border-bottom: 1px solid rgba(201, 154, 82, .2); }
  .site-nav ul a::after { display: none; }
  .nav-cta { align-self: center; }
}
@media (max-width: 420px) {
  :root { --header-h: 72px; }
  .brand-lotus { width: 46px; height: 36px; }
  .brand-name { font-size: 1.75rem; }
  .brand-tag { font-size: .5rem; letter-spacing: .14em; }
}

/* ---------- Décors ---------- */
.deco-branch { position: absolute; width: clamp(110px, 14vw, 210px); height: auto; aspect-ratio: 1 / 2; pointer-events: none; z-index: 0; }
.deco-swirl { position: absolute; width: 80px; height: 70px; pointer-events: none; }

/* ---------- Bandeau d'accueil ---------- */
.hero {
  position: relative; isolation: isolate; overflow: hidden;
  display: grid; place-items: center;
  min-height: clamp(600px, calc(100svh - var(--header-h)), 900px);
  padding: clamp(3rem, 6vw, 5rem) 1.25rem;
  background:
    radial-gradient(60% 70% at 18% 60%, rgba(239, 166, 184, .35), transparent 70%),
    radial-gradient(40% 50% at 30% 15%, rgba(245, 179, 157, .3), transparent 70%),
    var(--creme);
}
.hero-scene { position: absolute; inset: 0 0 0 auto; width: min(62%, 1000px); z-index: -2;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 38%); mask-image: linear-gradient(90deg, transparent 0%, #000 38%); }
.hero-scene .scene, .page-hero-scene .scene, .pricing-scene .scene { width: 100%; height: 100%; }
.hero-photo { position: absolute; left: -1%; top: 50%; translate: 0 -50%; width: min(34vw, 470px); z-index: -1;
  -webkit-mask-image: radial-gradient(ellipse 68% 72% at 45% 50%, #000 55%, transparent 73%); mask-image: radial-gradient(ellipse 68% 72% at 45% 50%, #000 55%, transparent 73%); }
.hero-photo img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.hero-frame { position: absolute; inset: clamp(10px, 1.6vw, 22px); border: 1px solid rgba(201, 154, 82, .55); pointer-events: none; z-index: 1; }
.deco-branch--hero-l { left: -18px; bottom: -30px; transform: rotate(-8deg); }
.deco-branch--hero-r { right: -26px; bottom: -40px; transform: scaleX(-1) rotate(-10deg); width: clamp(90px, 11vw, 170px); }
.hero.has-photo .deco-branch--hero-l { left: -30px; bottom: -60px; }
.deco-swirl--hero { right: 9%; bottom: 12%; opacity: .9; }

.hero-card { position: relative; z-index: 2; max-width: 680px; text-align: center; padding: clamp(1.5rem, 4vw, 3rem) clamp(1rem, 5vw, 4rem); }
.hero-card::before { /* halo crème pour la lisibilité */
  content: ""; position: absolute; inset: -12% -14%; z-index: -1; border-radius: 50%;
  background: radial-gradient(closest-side, rgba(255, 246, 240, .95) 55%, rgba(255, 246, 240, .7) 75%, rgba(255, 246, 240, 0));
}
.hero-card::after { /* ovale doré */
  content: ""; position: absolute; inset: -2% -6%; z-index: -1; border-radius: 50%;
  border: 1px solid rgba(201, 154, 82, .6); pointer-events: none;
}
.hero-lotus { width: clamp(120px, 15vw, 180px); height: auto; aspect-ratio: 120 / 92; margin: 0 auto -.6rem; filter: drop-shadow(0 6px 10px rgba(200, 63, 120, .15)); }
.hero-title { display: flex; flex-direction: column; align-items: center; gap: .3rem; }
.hero-name { font-size: clamp(4rem, 11vw, 8.2rem); line-height: 1.05; padding: .12em .25em .18em; }
.hero-tagline { display: flex; flex-direction: column; align-items: center; gap: .15rem; font-family: var(--font-sans); font-size: clamp(.8rem, 1.6vw, 1.05rem); font-weight: 500; letter-spacing: .26em; text-transform: uppercase; color: var(--bleu); line-height: 1.5; }
.with-rules { display: inline-flex; align-items: center; gap: 1rem; }
.with-rules::before, .with-rules::after { content: ""; width: clamp(28px, 6vw, 70px); height: 1px; background: var(--or); }
.hero-slogan { font-family: var(--font-script); font-size: clamp(2rem, 4vw, 2.9rem); color: var(--bleu); margin: 1rem 0 .2rem; line-height: 1.2; }
.hero-location { margin: 0; font-size: .82rem; letter-spacing: .12em; text-transform: uppercase; color: var(--turquoise); font-weight: 500; }
.hero-location .icon { display: inline-block; width: 1.1rem; height: 1.1rem; margin-right: .35rem; vertical-align: -.2em; }
.hero .divider { margin-block: .9rem .4rem; }

@media (max-width: 860px) {
  .hero { align-items: end; padding-top: 12rem; }
  .hero-scene { inset: 0 0 auto 0; width: 100%; height: 62%;
    -webkit-mask-image: linear-gradient(180deg, #000 55%, transparent 100%); mask-image: linear-gradient(180deg, #000 55%, transparent 100%); }
  .hero-photo { left: -8%; top: 3%; translate: none; width: 52vw; }
  .deco-swirl--hero { display: none; }
  .hero-card::before { inset: -6% -10%; }
}

/* ---------- Sections ---------- */
.section { position: relative; padding: clamp(4rem, 8vw, 6.5rem) 0; }
.section-tight { padding: clamp(2.5rem, 5vw, 4rem) 0; }
.section-head { margin-bottom: clamp(2rem, 4vw, 3rem); text-align: center; }
.section-foot { margin: 2.5rem 0 0; }
.watercolor-bg {
  background:
    radial-gradient(45% 60% at 8% 20%, rgba(239, 166, 184, .28), transparent 70%),
    radial-gradient(40% 55% at 95% 80%, rgba(140, 201, 229, .3), transparent 70%),
    radial-gradient(35% 45% at 60% 0%, rgba(156, 139, 196, .18), transparent 70%);
}
.paper {
  position: relative;
  background: rgba(255, 250, 246, .88);
  border: 1px solid rgba(201, 154, 82, .35);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: clamp(1.4rem, 3.5vw, 2.4rem);
}

/* Tons des catégories (médaillon aquarelle + couleur du titre) */
.tone-peach    { --t1: #FDE7DC; --t2: #F5B39D; --t-ink: #C83F78; }
.tone-pink     { --t1: #FCE4EB; --t2: #EFA6B8; --t-ink: #C83F78; }
.tone-lavender { --t1: #EEE9F7; --t2: #9C8BC4; --t-ink: #7A5FA6; }
.tone-blue     { --t1: #E3F2F9; --t2: #8CC9E5; --t-ink: #176B83; }
.tone-turquoise{ --t1: #DDF2F5; --t2: #2399AD; --t-ink: #176B83; }
.tone-gold     { --t1: #FBF1DE; --t2: #C99A52; --t-ink: #9A6F2E; }
.medallion {
  --size: 96px;
  display: grid; place-items: center; flex: none;
  width: var(--size); height: var(--size); border-radius: 50%;
  color: var(--bleu);
  background:
    radial-gradient(circle at 35% 30%, rgba(255, 255, 255, .85), transparent 45%),
    radial-gradient(circle at 60% 65%, var(--t2, #EFA6B8) -40%, var(--t1, #FCE4EB) 70%);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .7), 0 10px 20px -14px var(--t2, #EFA6B8);
  /* bord légèrement irrégulier, façon aquarelle */
  border-radius: 52% 48% 50% 50% / 50% 52% 48% 50%;
}
.medallion .icon { width: 46%; height: 46%; }
.medallion--sm { --size: 44px; }
.medallion--lg { --size: 110px; margin: 0 auto 1.4rem; }
.medallion--xl { --size: clamp(150px, 20vw, 220px); }

/* Cartes */
.cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: clamp(1.2rem, 2.5vw, 2rem); }
.card {
  position: relative; display: flex; flex-direction: column; align-items: center; text-align: center;
  padding: 2.2rem 1.8rem 1.8rem;
  background: linear-gradient(180deg, rgba(255, 252, 249, .95), rgba(255, 246, 240, .92));
  border: 1px solid rgba(201, 154, 82, .35); border-radius: var(--radius);
  box-shadow: var(--shadow);
  transition: transform .35s ease, box-shadow .35s ease;
}
.card::before { content: ""; position: absolute; inset: 7px; border-radius: calc(var(--radius) - 6px); border: 1px solid rgba(201, 154, 82, .18); pointer-events: none; }
.card:hover { transform: translateY(-6px); box-shadow: 0 26px 46px -24px rgba(120, 60, 100, .45); }
.card .medallion { margin-bottom: 1rem; }
.card-title { font-family: var(--font-script); font-size: 2.5rem; font-weight: 400; color: var(--t-ink, var(--framboise)); line-height: 1.15; margin-bottom: .6rem; }
.card-title--sans { font-family: var(--font-sans); font-size: .9rem; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var(--bleu); }
.card-prices { width: 100%; margin: .4rem 0 1.4rem; padding: 0; list-style: none; }
.card-prices li { display: flex; align-items: baseline; gap: .5rem; padding: .3rem 0; font-size: .8rem; letter-spacing: .14em; text-transform: uppercase; color: var(--bleu); }
.card-prices strong { font-weight: 600; font-size: 1rem; letter-spacing: .02em; color: var(--t-ink, var(--framboise)); white-space: nowrap; }
.card-link { margin-top: auto; }
.leader { flex: 1; min-width: 1.5rem; border-bottom: 2px dotted rgba(23, 107, 131, .35); transform: translateY(-.3em); }

/* Intro */
.intro .prose { font-size: 1.12em; }

/* Bloc à propos (accueil + page) */
.split { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(2rem, 5vw, 5rem); align-items: center; }
.split--about { align-items: start; }
.split-body .btn { margin-top: 1rem; }
.frame-watercolor { position: relative; padding: 14px; }
.frame-watercolor::before { /* tache aquarelle */
  content: ""; position: absolute; inset: -6% -8% -8% -6%; z-index: -1; border-radius: 46% 54% 42% 58% / 55% 45% 55% 45%;
  background: radial-gradient(circle at 30% 30%, rgba(239, 166, 184, .55), transparent 60%), radial-gradient(circle at 75% 70%, rgba(140, 201, 229, .55), transparent 60%);
  filter: blur(6px);
}
.frame-watercolor::after { content: ""; position: absolute; inset: 0; border: 1px solid var(--or); border-radius: 200px 200px var(--radius) var(--radius); pointer-events: none; }
.frame-photo img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 190px 190px 14px 14px; }
.frame-art { display: grid; place-items: center; aspect-ratio: 4 / 5; border-radius: 200px 200px var(--radius) var(--radius); background: rgba(255, 250, 246, .6); overflow: hidden; }
.art-lotus { width: 70%; height: auto; aspect-ratio: 120 / 92; }
.frame-art .deco-branch { left: -10px; bottom: -20px; }
.signature { font-size: 2.8rem; margin-top: 1rem; display: inline-block; }
@media (max-width: 860px) {
  .split { grid-template-columns: 1fr; }
  .split-media { max-width: 420px; margin-inline: auto; width: 100%; }
  .section-title--left { text-align: center; }
  .about-teaser .split-body { text-align: center; }
}

/* Bandeau appel à l'action */
.cta-band {
  position: relative; overflow: hidden; isolation: isolate; text-align: center;
  padding: clamp(4rem, 8vw, 6rem) 0;
  background:
    radial-gradient(50% 80% at 15% 50%, rgba(239, 166, 184, .45), transparent 70%),
    radial-gradient(50% 80% at 85% 50%, rgba(140, 201, 229, .45), transparent 70%),
    radial-gradient(40% 60% at 50% 100%, rgba(245, 179, 157, .35), transparent 70%);
  border-block: 1px solid rgba(201, 154, 82, .35);
}
.cta-text { max-width: 560px; margin: .4rem auto 0; color: var(--ink-soft); }
.deco-branch--cta-l { left: -10px; bottom: -50px; transform: rotate(-12deg); opacity: .85; }
.deco-branch--cta-r { right: -10px; top: -40px; transform: scaleX(-1) rotate(160deg); opacity: .6; }

/* ---------- En-tête des pages intérieures ---------- */
.page-hero {
  position: relative; isolation: isolate; overflow: hidden;
  padding: clamp(3.5rem, 7vw, 5.5rem) 0 clamp(2.5rem, 5vw, 3.5rem);
  text-align: center;
  background: radial-gradient(50% 90% at 20% 40%, rgba(239, 166, 184, .3), transparent 70%);
  border-bottom: 1px solid rgba(201, 154, 82, .25);
}
.page-hero-scene { position: absolute; inset: 0 0 0 auto; width: min(58%, 900px); z-index: -2; opacity: .9;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 45%); mask-image: linear-gradient(90deg, transparent, #000 45%); }
.page-hero-inner { position: relative; }
.page-hero-inner::before { content: ""; position: absolute; left: 50%; top: 50%; width: min(640px, 100%); height: 150%; translate: -50% -50%; z-index: -1;
  background: radial-gradient(closest-side, rgba(255, 246, 240, .95), rgba(255, 246, 240, .6) 70%, transparent); }
.page-hero-lotus { width: 92px; height: 71px; margin: 0 auto .2rem; }
.page-title { font-size: clamp(3.2rem, 8vw, 5.4rem); font-weight: 400; line-height: 1.1; }
.page-sub { margin: .3rem 0 0; font-size: .85rem; font-weight: 500; letter-spacing: .24em; text-transform: uppercase; color: var(--bleu); }
.page-hero .divider { margin-bottom: 0; }
.deco-branch--ph { left: -14px; bottom: -70px; transform: rotate(-10deg); }
@media (max-width: 700px) {
  .page-hero-scene { width: 100%; opacity: .55; -webkit-mask-image: linear-gradient(180deg, #000, transparent); mask-image: linear-gradient(180deg, #000, transparent); }
  .deco-branch--ph { width: 90px; bottom: -40px; }
}

/* ---------- Page Prestations ---------- */
.service-block {
  display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: clamp(1.5rem, 4vw, 4rem); align-items: center;
  padding: clamp(2rem, 4vw, 3rem) 0; scroll-margin-top: calc(var(--header-h) + 20px);
}
.service-block + .service-block { border-top: 1px solid rgba(201, 154, 82, .25); }
.service-block.is-reversed .service-visual { order: 2; }
.service-visual { position: relative; display: grid; place-items: center; min-height: 240px; }
.service-visual .deco-branch { width: 110px; right: 12%; bottom: -10px; transform: scaleX(-1) rotate(-15deg); opacity: .9; }
.service-visual .medallion { position: relative; z-index: 1; }
.service-title { font-family: var(--font-script); font-weight: 400; font-size: clamp(2.8rem, 5vw, 3.6rem); color: var(--t-ink); line-height: 1.1; }
.service-desc { color: var(--ink-soft); margin: .5rem 0 1.4rem; }
.service-items { display: grid; gap: 1rem; }
.service-item { padding: 1.2rem 1.4rem; background: rgba(255, 250, 246, .9); border: 1px solid rgba(201, 154, 82, .3); border-radius: var(--radius-sm); box-shadow: var(--shadow-sm); }
.service-item-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.service-item h3 { font-size: .86rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; }
.service-item p { margin: .4rem 0 0; font-size: .95em; color: var(--ink-soft); }
.service-item-foot { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: .8rem; flex-wrap: wrap; }
.duration { display: inline-flex; align-items: center; gap: .4rem; font-size: .8rem; color: var(--ink-soft); }
.duration .icon { width: 1rem; height: 1rem; color: var(--turquoise); }
@media (max-width: 760px) {
  .service-block { grid-template-columns: 1fr; }
  .service-block.is-reversed .service-visual { order: 0; }
  .service-visual { min-height: 170px; }
  .service-title { text-align: center; }
  .service-desc { text-align: center; }
}

/* Prix dans un cœur */
.price-heart { position: relative; display: inline-grid; place-items: center; flex: none; width: 78px; height: 70px; filter: drop-shadow(0 6px 8px rgba(200, 63, 120, .18)); }
.price-heart svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.price-heart span { position: relative; margin-top: -6px; font-size: .95rem; font-weight: 500; color: #6B3150; white-space: nowrap; }
.price-pill { flex: none; padding: .35em .9em; border-radius: 999px; background: linear-gradient(180deg, #FDE6E6, #F4B5BF); color: #6B3150; font-size: .85rem; font-weight: 500; white-space: nowrap; }

/* ---------- Page Tarifs (plaquette) ---------- */
.pricing-page { position: relative; isolation: isolate; padding: clamp(2rem, 5vw, 4rem) 0 clamp(3rem, 6vw, 5rem); overflow: hidden; }
.pricing-scene { position: absolute; inset: 0 0 0 auto; width: 55%; z-index: -1; -webkit-mask-image: linear-gradient(90deg, transparent, #000 40%); mask-image: linear-gradient(90deg, transparent, #000 40%); }
.sheet {
  position: relative; overflow: hidden;
  display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: clamp(1.5rem, 4vw, 3.5rem);
  padding: clamp(1.8rem, 4vw, 3.5rem);
  background: rgba(255, 247, 241, .9); backdrop-filter: blur(2px);
  border-radius: 6px; box-shadow: var(--shadow);
  outline: 1px solid rgba(201, 154, 82, .6); outline-offset: -14px;
}
.deco-branch--sheet-l { left: -24px; top: 30%; transform: rotate(-4deg); opacity: .9; }
.deco-branch--sheet-r { right: -30px; bottom: -40px; transform: scaleX(-1) rotate(-6deg); width: 130px; opacity: .9; }
.sheet-brand { position: relative; z-index: 1; text-align: center; display: flex; flex-direction: column; align-items: center; }
.sheet-lotus { width: 130px; height: 100px; margin-bottom: -.4rem; }
.sheet-name { font-size: clamp(3rem, 6vw, 4.6rem); margin: 0; }
.sheet-brand .hero-tagline { font-size: .78rem; }
.sheet-brand .hero-slogan { font-size: 2rem; margin-top: .6rem; }
.sheet-photo-wrap { width: 100%; max-width: 360px; margin-top: .5rem;
  -webkit-mask-image: radial-gradient(ellipse 70% 70% at 50% 50%, #000 58%, transparent 74%); mask-image: radial-gradient(ellipse 70% 70% at 50% 50%, #000 58%, transparent 74%); }
.sheet-photo-wrap img { width: 100%; aspect-ratio: 1; object-fit: cover; }
.sheet-art { width: 80%; height: auto; aspect-ratio: 120 / 92; opacity: .35; margin-top: 1rem; }
.sheet-prices { position: relative; z-index: 1; }
.sheet-title { position: relative; display: inline-flex; align-items: flex-end; font-size: clamp(3.6rem, 8vw, 6rem); font-weight: 400; line-height: 1; }
.sheet-title::after { content: ""; position: absolute; left: 20%; right: -8%; bottom: .05em; height: 1px; background: linear-gradient(90deg, var(--or), transparent); }
.sheet-swirl { width: 56px; height: 50px; margin: 0 0 .6em -.2em; }
.sheet-intro { margin: 1rem 0 1.5rem; color: var(--ink-soft); }
.price-cat { display: flex; align-items: flex-start; gap: clamp(1rem, 2.5vw, 1.8rem); padding: 1.2rem 0; scroll-margin-top: calc(var(--header-h) + 20px); }
.price-cat .medallion { --size: clamp(80px, 10vw, 118px); }
.price-cat-body { flex: 1; min-width: 0; }
.price-cat-title { font-family: var(--font-script); font-weight: 400; font-size: clamp(2.3rem, 4.2vw, 3.2rem); color: var(--t-ink); line-height: 1.1; margin-bottom: .3rem; }
.price-list { margin: 0; padding: 0; list-style: none; }
.price-row { display: flex; align-items: center; gap: .6rem; min-height: 64px; }
.price-name { font-size: .86rem; font-weight: 500; letter-spacing: .18em; text-transform: uppercase; color: var(--bleu); }
.price-name small { display: block; font-size: .72rem; letter-spacing: .08em; text-transform: none; color: var(--ink-soft); font-weight: 400; }
.price-row .leader { transform: none; }
.sheet-note { margin-top: 1rem; font-size: .9rem; color: var(--ink-soft); text-align: center; }
@media (max-width: 900px) {
  .sheet { grid-template-columns: 1fr; }
  .sheet-photo-wrap { max-width: 260px; }
  .sheet-prices { text-align: left; }
  .sheet-title { display: flex; justify-content: center; }
  .pricing-scene { width: 100%; height: 40%; -webkit-mask-image: linear-gradient(180deg, #000, transparent); mask-image: linear-gradient(180deg, #000, transparent); }
}
@media (max-width: 520px) {
  .price-cat { flex-direction: column; align-items: center; }
  .price-cat-title { text-align: center; }
  .price-cat-body { width: 100%; }
  .price-heart { width: 68px; height: 61px; }
  .price-name { letter-spacing: .1em; }
  .deco-branch--sheet-l { display: none; }
}

/* ---------- Galerie ---------- */
.gallery-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(46%, 240px), 1fr)); gap: clamp(.6rem, 1.5vw, 1.2rem); margin: 2.5rem 0 0; padding: 0; list-style: none; }
.gallery-grid li { position: relative; }
.gallery-grid a { display: block; overflow: hidden; border-radius: var(--radius-sm); box-shadow: var(--shadow-sm); outline: 1px solid rgba(201, 154, 82, .35); outline-offset: 4px; }
.gallery-grid img { width: 100%; aspect-ratio: 1; object-fit: cover; transition: transform .6s ease; }
.gallery-grid a:hover img { transform: scale(1.05); }
.gallery-grid--preview { grid-template-columns: repeat(3, 1fr); margin-top: 0; }
@media (max-width: 600px) { .gallery-grid--preview { grid-template-columns: repeat(2, 1fr); } }
.gallery-cap { display: block; margin-top: .6rem; font-size: .8rem; text-align: center; color: var(--ink-soft); }
.empty-note { text-align: center; padding: 3rem 1rem; color: var(--ink-soft); }
.empty-lotus { width: 110px; height: 85px; margin: 0 auto 1rem; opacity: .6; }

.lightbox { width: min(96vw, 1100px); max-height: 94vh; padding: 0; border: 0; background: transparent; overflow: visible; }
.lightbox::backdrop { background: rgba(40, 30, 50, .78); backdrop-filter: blur(4px); }
.lightbox figure { margin: 0; text-align: center; }
.lightbox img { max-width: 100%; max-height: 82vh; margin: 0 auto; border-radius: var(--radius-sm); box-shadow: 0 30px 60px -20px rgba(0, 0, 0, .5); }
.lightbox figcaption { margin-top: .8rem; color: #fff; font-size: .9rem; }
.lightbox-close, .lightbox-nav { position: absolute; display: grid; place-items: center; width: 48px; height: 48px; border: 0; border-radius: 50%; background: rgba(255, 250, 246, .9); color: var(--bleu); cursor: pointer; }
.lightbox-close { top: -12px; right: -12px; z-index: 2; }
.lightbox-nav { top: 50%; translate: 0 -50%; }
.lightbox-prev { left: 8px; } .lightbox-next { right: 8px; }
.lightbox .icon { width: 22px; height: 22px; }

/* ---------- Formulaires ---------- */
.form .mini-title { margin-top: 0; }
.field-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem 1.2rem; margin-bottom: 1.2rem; }
.field--full { grid-column: 1 / -1; }
@media (max-width: 560px) { .field-grid { grid-template-columns: 1fr; } }
.field label { display: block; margin-bottom: .35rem; font-size: .76rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--bleu); }
.req { color: var(--framboise); }
input[type=text], input[type=email], input[type=tel], textarea, select {
  width: 100%; min-height: 50px; padding: .75rem 1rem;
  font: inherit; font-size: 1rem; color: var(--ink);
  background: #fff; border: 1px solid rgba(23, 107, 131, .22); border-radius: var(--radius-sm);
  transition: border-color .2s, box-shadow .2s;
}
textarea { resize: vertical; min-height: 110px; }
input:focus, textarea:focus, select:focus { outline: none; border-color: var(--lavande); box-shadow: 0 0 0 4px rgba(156, 139, 196, .22); }
[aria-invalid="true"] { border-color: var(--framboise) !important; }
.field-error { margin: .35rem 0 0; font-size: .85rem; color: var(--framboise); }
.check { display: flex; gap: .7rem; align-items: flex-start; margin: .4rem 0 1rem; font-size: .9rem; cursor: pointer; }
.check input { width: 20px; height: 20px; margin-top: .2rem; accent-color: var(--framboise); flex: none; }
.alert { padding: .9rem 1.1rem; border-radius: var(--radius-sm); background: #EAF5F8; border: 1px solid rgba(35, 153, 173, .35); font-size: .95rem; }
.alert-error { background: #FCEBF1; border-color: rgba(200, 63, 120, .4); color: #8E2553; }
.hint { color: var(--ink-soft); font-size: .92rem; text-align: center; margin: 1rem 0; }

/* ---------- Contact ---------- */
.contact-grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(1.5rem, 3vw, 2.5rem); align-items: start; }
.contact-grid--single { grid-template-columns: minmax(0, 720px); justify-content: center; }
@media (max-width: 900px) { .contact-grid { grid-template-columns: 1fr; } }
.contact-list { margin: 0 0 1rem; padding: 0; list-style: none; }
.contact-list li { display: flex; gap: .7rem; align-items: flex-start; padding: .35rem 0; }
.contact-list .icon { width: 1.2rem; height: 1.2rem; margin-top: .3rem; color: var(--turquoise); }
.contact-list a { text-decoration: none; }
.contact-list--lg { margin-top: 1.5rem; font-size: 1.02rem; }
.socials { display: flex; gap: .6rem; margin: .8rem 0 0; padding: 0; list-style: none; }
.socials a { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; color: var(--bleu); background: rgba(255, 255, 255, .7); box-shadow: inset 0 0 0 1px var(--line); transition: background .2s, color .2s; }
.socials a:hover { color: #fff; background: var(--grad-btn); }
.socials .icon { width: 20px; height: 20px; }

.hours { margin: 0; }
.hours-row { display: flex; justify-content: space-between; gap: 1rem; padding: .35rem 0; border-bottom: 1px dashed rgba(201, 154, 82, .35); font-size: .92rem; }
.hours dt { font-weight: 500; }
.hours dd { margin: 0; text-align: right; color: var(--ink-soft); }
.hours-row.is-closed dd { color: var(--rose); }
.closure-note { display: flex; gap: .5rem; align-items: center; margin: .8rem 0 0; padding: .6rem .8rem; font-size: .85rem; border-radius: var(--radius-sm); background: rgba(239, 166, 184, .18); color: #8E2553; }
.closure-note .icon { width: 1rem; height: 1rem; }

/* ---------- Réservation ---------- */
.booking-layout { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: clamp(1.5rem, 3vw, 2.5rem); align-items: start; }
@media (max-width: 1000px) { .booking-layout { grid-template-columns: 1fr; } .booking-aside { order: -1; } }
.booking-form { display: grid; gap: 1.5rem; }
.booking-aside .paper { position: sticky; top: calc(var(--header-h) + 20px); }
.aside-lotus { width: 70px; height: 54px; margin: 0 auto .8rem; }
.step { margin: 0; min-width: 0; }
.step-title { display: flex; align-items: center; gap: .8rem; padding: 0; margin-bottom: 1.2rem; font-size: .9rem; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var(--bleu); }
.step-num { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; font-family: var(--font-script); font-size: 1.6rem; letter-spacing: 0; color: #fff; background: var(--grad-btn); box-shadow: 0 0 0 3px rgba(255, 255, 255, .8), 0 0 0 4px var(--or-clair); }

.svc-group + .svc-group { margin-top: 1.2rem; }
.svc-group-title { display: flex; align-items: center; gap: .7rem; margin-bottom: .6rem; font-family: var(--font-script); font-size: 2rem; font-weight: 400; color: var(--t-ink); }
.svc-option { position: relative; display: flex; align-items: center; gap: .9rem; padding: .85rem 1rem; margin-top: .5rem; background: #fff; border: 1px solid rgba(23, 107, 131, .16); border-radius: var(--radius-sm); cursor: pointer; transition: border-color .2s, box-shadow .2s, background .2s; }
.svc-option:hover { border-color: var(--rose); }
.svc-option input { position: absolute; opacity: 0; pointer-events: none; }
.svc-check { display: grid; place-items: center; flex: none; width: 24px; height: 24px; border-radius: 7px; border: 1.5px solid rgba(23, 107, 131, .35); color: transparent; transition: all .2s; }
.svc-check .icon { width: 16px; height: 16px; }
.svc-option input:checked ~ .svc-check { background: var(--grad-btn); border-color: transparent; color: #fff; }
.svc-option:has(input:checked) { border-color: var(--framboise); background: #FFF7FA; box-shadow: 0 0 0 3px rgba(239, 166, 184, .3); }
.svc-option input:focus-visible ~ .svc-check { outline: 2px solid var(--framboise); outline-offset: 2px; }
.svc-body { flex: 1; display: flex; flex-direction: column; }
.svc-name { font-weight: 500; }
.svc-meta { font-size: .8rem; color: var(--ink-soft); }
.svc-price { font-weight: 600; color: var(--framboise); white-space: nowrap; }
.svc-summary { display: flex; flex-wrap: wrap; gap: .4rem 1.5rem; justify-content: flex-end; margin: 1rem 0 0; font-size: .9rem; }
.svc-summary:empty { display: none; }

.picker { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 1.5rem; }
@media (max-width: 700px) { .picker { grid-template-columns: 1fr; } }
.calendar { position: relative; transition: opacity .2s; }
.calendar.is-loading { opacity: .45; pointer-events: none; }
.cal-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: .6rem; }
.cal-title { margin: 0; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; font-size: .85rem; color: var(--bleu); }
.cal-nav { width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--line); background: #fff; font-size: 1.3rem; line-height: 1; color: var(--bleu); cursor: pointer; }
.cal-nav:disabled { opacity: .3; cursor: default; }
.cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.cal-dow { text-align: center; font-size: .7rem; font-weight: 600; letter-spacing: .08em; color: var(--ink-soft); padding: .3rem 0; }
.cal-day { aspect-ratio: 1; min-height: 38px; border: 0; border-radius: 50%; font: inherit; font-size: .9rem; background: rgba(140, 201, 229, .2); color: var(--bleu); cursor: pointer; transition: background .2s, color .2s, transform .2s; }
.cal-day:hover:not(:disabled) { background: rgba(239, 166, 184, .45); transform: scale(1.06); }
.cal-day:disabled { background: transparent; color: rgba(51, 71, 91, .3); cursor: default; }
.cal-day.is-selected { background: var(--grad-btn); color: #fff; font-weight: 600; }
.slots-title { margin: 0 0 .7rem; font-weight: 600; color: var(--bleu); }
.slot-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(78px, 1fr)); gap: .5rem; }
.slot { min-height: 44px; border: 1px solid rgba(23, 107, 131, .2); border-radius: 999px; background: #fff; font: inherit; font-size: .9rem; color: var(--bleu); cursor: pointer; transition: all .2s; }
.slot:hover { border-color: var(--framboise); color: var(--framboise); }
.slot.is-selected { background: var(--grad-btn); border-color: transparent; color: #fff; font-weight: 600; }
.recap { margin: 0 0 1.2rem; padding: 1rem 1.2rem; border-radius: var(--radius-sm); background: linear-gradient(120deg, rgba(239, 166, 184, .18), rgba(140, 201, 229, .2)); border: 1px solid var(--line); font-size: .95rem; }

.summary { display: grid; gap: .1rem; margin: 1.5rem 0; text-align: left; }
.summary > div { display: grid; grid-template-columns: 150px 1fr; gap: 1rem; padding: .7rem 0; border-bottom: 1px dashed var(--line); }
.summary dt { display: flex; gap: .5rem; align-items: center; font-size: .78rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--bleu); }
.summary dt .icon { width: 1.1rem; height: 1.1rem; color: var(--turquoise); }
.summary dd { margin: 0; }
.summary-services { margin: 0; padding: 0; list-style: none; }
@media (max-width: 520px) { .summary > div { grid-template-columns: 1fr; gap: .2rem; } }
.status { display: inline-block; padding: .15rem .7rem; border-radius: 999px; font-size: .8rem; font-weight: 600; }
.status-pending { background: #FFF1DC; color: #9A6F2E; }
.status-confirmed { background: #E0F3F0; color: #176B83; }
.status-cancelled { background: #F4E4EA; color: #8E2553; }

/* ---------- Pied de page ---------- */
.site-footer { position: relative; margin-top: 0; background: linear-gradient(180deg, rgba(255, 244, 236, 0), rgba(252, 230, 224, .6) 30%, rgba(233, 226, 244, .7)); }
.footer-quote { padding: clamp(3rem, 6vw, 4.5rem) 0 1rem; text-align: center; }
.footer-grid { display: grid; grid-template-columns: 1.3fr 1fr 1fr .8fr; gap: 2.5rem; padding: 2.5rem 0; border-top: 1px solid var(--line); }
@media (max-width: 960px) { .footer-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .footer-grid { grid-template-columns: 1fr; text-align: center; } .footer-grid .contact-list li { justify-content: center; } .socials { justify-content: center; } .hours-row { justify-content: center; gap: .6rem; } }
.footer-brand { display: flex; flex-direction: column; align-items: flex-start; }
@media (max-width: 560px) { .footer-brand { align-items: center; } }
.footer-lotus { width: 84px; height: 65px; }
.footer-name { margin: 0; font-family: var(--font-script); font-size: 2.6rem; line-height: 1.2; background: var(--grad-brand); -webkit-background-clip: text; background-clip: text; color: transparent; padding-right: .2em; }
.footer-tag { margin: 0; font-size: .68rem; letter-spacing: .2em; text-transform: uppercase; color: var(--bleu); }
.footer-slogan { margin: .3rem 0 0; font-family: var(--font-script); font-size: 1.6rem; color: var(--bleu); }
.footer-title { margin-bottom: 1rem; font-size: .78rem; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; color: var(--bleu); }
.footer-links { margin: 0; padding: 0; list-style: none; }
.footer-links a { display: inline-block; padding: .2rem 0; text-decoration: none; color: var(--ink); font-size: .92rem; }
.footer-links a:hover { color: var(--framboise); }
.footer-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem 2rem; padding: 1.2rem 0 1.6rem; border-top: 1px solid rgba(201, 154, 82, .25); font-size: .8rem; color: var(--ink-soft); }
.footer-bottom p { margin: 0; }
.footer-bottom a { color: inherit; }

/* ---------- Avis clientes ---------- */
.quotes { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 290px), 1fr)); gap: clamp(1rem, 2.5vw, 1.8rem); }
.quote { position: relative; margin: 0; padding: 2.2rem 1.8rem 1.6rem; background: rgba(255, 250, 246, .92); border: 1px solid rgba(201, 154, 82, .35); border-radius: var(--radius); box-shadow: var(--shadow); }
.quote::before { content: "“"; position: absolute; top: -.35rem; left: 1.2rem; font-family: var(--font-script); font-size: 5rem; line-height: 1; color: var(--rose); }
.quote blockquote { margin: .4rem 0 1rem; font-style: italic; }
.quote blockquote p { margin: 0; }
.quote figcaption { font-family: var(--font-script); font-size: 1.7rem; color: var(--framboise); }
.stars { color: var(--or); letter-spacing: .15em; }
.stars-off { color: rgba(201, 154, 82, .3); }

/* ---------- Bandeau bons cadeaux ---------- */
.gift-band { padding: clamp(2.5rem, 5vw, 3.5rem) 0; }
.gift-band-inner { display: flex; align-items: center; gap: clamp(1rem, 3vw, 2rem); padding: clamp(1.4rem, 3vw, 2rem) clamp(1.4rem, 4vw, 2.6rem); border-radius: var(--radius);
  background: linear-gradient(110deg, rgba(251, 241, 222, .95), rgba(252, 228, 235, .9) 50%, rgba(227, 242, 249, .9)); border: 1px solid rgba(201, 154, 82, .45); box-shadow: var(--shadow); }
.gift-band-inner > div:nth-child(2) { flex: 1; }
.gift-band-inner p { margin: 0; color: var(--ink-soft); }
.gift-band-title { display: inline-block; font-size: clamp(2rem, 4vw, 2.8rem); font-weight: 400; }
@media (max-width: 700px) { .gift-band-inner { flex-direction: column; text-align: center; } }

/* ---------- Page bons cadeaux ---------- */
.gift-card-art { position: relative; aspect-ratio: 1.42; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 2rem; text-align: center;
  background: radial-gradient(60% 70% at 0% 100%, rgba(239, 166, 184, .5), transparent 70%), radial-gradient(55% 70% at 100% 0%, rgba(140, 201, 229, .5), transparent 70%), var(--creme);
  border-radius: 8px; box-shadow: var(--shadow); transform: rotate(-2.5deg); outline: 1px solid var(--or); outline-offset: -12px; }
.gift-art-lotus { width: 90px; height: 70px; }
.gift-art-name { margin: 0; font-size: clamp(2.6rem, 5vw, 3.4rem); }
.gift-art-label { margin: 0; font-family: var(--font-script); font-size: 2rem; color: var(--framboise); }
.gift-art-slogan { margin: 0; font-family: var(--font-script); font-size: 1.5rem; color: var(--bleu); }
.gift-card-art .divider { margin: .4rem auto; }
.steps { list-style: none; margin: 1.6rem 0 0; padding: 0; display: grid; gap: .9rem; }
.steps li { display: flex; align-items: center; gap: 1rem; font-weight: 500; color: var(--bleu); }
.choice-group { border: 0; padding: 0; margin: 0 0 1.2rem; }
.choice-group legend { margin-bottom: .6rem; font-size: .76rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--bleu); }
.chips { display: flex; flex-wrap: wrap; gap: .5rem; }
.chip { position: relative; cursor: pointer; }
.chip input { position: absolute; opacity: 0; }
.chip span { display: inline-block; padding: .6rem 1.1rem; border-radius: 999px; background: #fff; border: 1px solid rgba(23, 107, 131, .2); font-size: .92rem; transition: all .2s; }
.chip input:checked + span { background: var(--grad-btn); color: #fff; border-color: transparent; }
.chip input:focus-visible + span { outline: 2px solid var(--framboise); outline-offset: 2px; }

/* ---------- FAQ ---------- */
.faq-list { display: grid; gap: .8rem; margin-top: 2rem; }
.faq-item { background: rgba(255, 250, 246, .92); border: 1px solid rgba(201, 154, 82, .35); border-radius: var(--radius-sm); box-shadow: var(--shadow-sm); }
.faq-item summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.1rem 1.4rem; cursor: pointer; list-style: none; font-weight: 500; color: var(--bleu); }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-chev { width: 1.1rem; height: 1.1rem; color: var(--framboise); transition: transform .3s; }
.faq-item[open] .faq-chev { transform: rotate(90deg); }
.faq-answer { padding: 0 1.4rem 1.2rem; color: var(--ink-soft); }

/* Divers */
.deposit-note { display: flex; gap: .6rem; align-items: flex-start; margin-bottom: 1.2rem; }
.deposit-note .icon { color: var(--framboise); margin-top: .2rem; }
.actions--tight { margin-top: .4rem; }

/* ---------- Notifications ---------- */
.toasts { position: fixed; left: 50%; bottom: 1.2rem; translate: -50% 0; z-index: 90; display: grid; gap: .6rem; width: min(92vw, 520px); }
.toast { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; padding: 1rem 1.2rem; border-radius: var(--radius-sm); background: #fff; box-shadow: 0 20px 40px -18px rgba(60, 40, 80, .45); border-left: 4px solid var(--turquoise); animation: toast-in .4s ease; transition: opacity .4s, transform .4s; }
.toast-error { border-left-color: var(--framboise); }
.toast.is-leaving { opacity: 0; transform: translateY(10px); }
.toast-close { border: 0; background: none; font-size: 1.4rem; line-height: 1; color: var(--ink-soft); cursor: pointer; }
@keyframes toast-in { from { opacity: 0; transform: translateY(12px); } }

/* ---------- Apparition ---------- */
.js .reveal { opacity: 0; transform: translateY(22px); transition: opacity .8s ease, transform .8s ease; }
.js .reveal.is-visible { opacity: 1; transform: none; }
.cards .reveal:nth-child(2) { transition-delay: .1s; }
.cards .reveal:nth-child(3) { transition-delay: .2s; }
.hero-card { animation: hero-in 1.2s cubic-bezier(.2, .7, .2, 1) both; }
.hero-lotus { animation: lotus-in 1.4s cubic-bezier(.2, .7, .2, 1) both .1s; }
@keyframes hero-in { from { opacity: 0; transform: translateY(18px); } }
@keyframes lotus-in { from { opacity: 0; transform: scale(.85) translateY(10px); } }

@media print {
  .site-header, .site-footer, .cta-band, .deco-branch, .hero-scene, .page-hero-scene { display: none !important; }
  body { background: #fff; }
}
