@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=DM+Serif+Display:ital@0;1&display=swap');
:root{--ink:#3b302f;--muted:#756a66;--clay:#ab6958;--terra:#bf7965;--light:#fffaf5;--cream:#f7eee7;--rose:#ecd8ce;--line:#e7d8ce;--sage:#8d9787;--white:#fff;--shadow:0 22px 68px rgba(81,52,43,.10)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--light);font-family:'DM Sans',Arial,sans-serif;color:var(--ink);line-height:1.7}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}img{max-width:100%;display:block}.wrap{width:min(1150px,calc(100% - 48px));margin:auto}.skip{position:absolute;top:-100px;left:10px;padding:12px;background:white;z-index:99}.skip:focus{top:10px}.top{position:sticky;top:0;z-index:20;background:rgba(255,250,245,.95);backdrop-filter:blur(14px);border-bottom:1px solid rgba(140,103,90,.12)}.head{height:86px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;align-items:center;gap:12px;line-height:1.2}.mark{width:43px;height:43px;border-radius:50% 50% 45% 45%;background:var(--rose);display:grid;place-items:center;color:var(--clay);font-family:'DM Serif Display',serif;font-size:25px}.brand strong{display:block;font-family:'DM Serif Display',serif;font-size:22px;font-weight:400}.brand small{color:var(--muted);font-size:11px;letter-spacing:1.7px;text-transform:uppercase}.nav{display:flex;align-items:center;gap:27px;font-size:13px;font-weight:600}.nav a:hover,.foot a:hover{color:var(--clay)}.nav .active{color:var(--clay)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;border:1px solid var(--clay);background:var(--clay);color:#fff!important;border-radius:50px;padding:13px 23px;font-size:13px;font-weight:700;cursor:pointer;transition:.2s}.btn:hover{transform:translateY(-2px);background:#915643}.btn.outline{background:transparent;color:var(--clay)!important}.btn.outline:hover{background:var(--cream)}.menu-toggle{display:none;border:1px solid var(--line);background:transparent;padding:9px 14px;border-radius:12px}.hero{padding:90px 0 95px;position:relative;overflow:hidden}.hero:before{content:'';width:450px;height:450px;background:#f6e6db;border-radius:50%;position:absolute;right:-260px;top:0;opacity:.65}.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:90px;align-items:center}.eyebrow{letter-spacing:3px;text-transform:uppercase;color:var(--clay);font-size:11px;font-weight:700;display:block;margin-bottom:20px}.hero h1,h1,h2,h3{font-family:'DM Serif Display',Georgia,serif;font-weight:400;line-height:1.16}h1{font-size:clamp(44px,5vw,75px);letter-spacing:-1px;margin:0 0 26px}h2{font-size:clamp(33px,3.5vw,49px);margin:0 0 25px}h3{font-size:26px;margin:0 0 15px}.serif-em{font-style:italic;color:var(--clay)}.lede{font-size:17px;color:var(--muted);max-width:550px}.actions{display:flex;gap:13px;flex-wrap:wrap;margin-top:33px}.small-note{font-size:12px;color:var(--muted);margin-top:24px}.portrait-wrap{position:relative;padding:18px 20px 25px 10px}.portrait-wrap:before{content:'';background:#eacdc1;position:absolute;inset:42px 0 0 53px;border-radius:47% 47% 44% 44%}.portrait{position:relative;width:100%;max-height:550px;object-fit:cover;object-position:center 28%;aspect-ratio:4/5;border-radius:47% 47% 44% 44%;box-shadow:var(--shadow)}.stamp{position:absolute;bottom:12px;left:-28px;background:var(--light);padding:17px 24px;border-radius:70px;box-shadow:var(--shadow);color:var(--clay);font-family:'DM Serif Display',serif;font-size:18px}.section{padding:90px 0}.section.tint{background:var(--cream)}.section-heading{max-width:740px;margin:0 auto 45px;text-align:center}.section-heading p{color:var(--muted)}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.card{background:white;padding:34px;border:1px solid #eee3dc;border-radius:20px;box-shadow:0 7px 25px rgba(60,36,26,.025)}.card .icon{font-size:30px;color:var(--clay);display:inline-block;margin-bottom:20px;font-family:Georgia,serif}.card p{color:var(--muted);font-size:14px;margin-bottom:20px}.text-link{font-size:13px;font-weight:700;color:var(--clay);border-bottom:1px solid #c6a99d;padding-bottom:5px}.split{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.panel{background:var(--rose);padding:50px;border-radius:32px;position:relative}.panel blockquote{font:italic 30px/1.45 'DM Serif Display',Georgia,serif;margin:0}.panel .tiny{display:block;margin-top:25px;color:var(--muted);font-size:12px}.pill{display:inline-block;background:#fff3ec;color:var(--clay);border-radius:30px;padding:8px 14px;font-size:12px;margin:5px 5px 0 0}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}.step{padding:25px;border-top:1px solid #c9aea0}.number{color:var(--clay);font:italic 35px 'DM Serif Display',serif}.step p{font-size:14px;color:var(--muted)}.cta{background:var(--clay);color:#fff;text-align:center;border-radius:28px;padding:65px 20px}.cta h2{color:white}.cta p{color:#f9eae4}.cta .btn{background:#fff;color:var(--clay)!important;border-color:#fff}.foot{padding:70px 0 25px;background:#382d2b;color:#f6e8e1}.foot-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:60px}.foot p,.foot a,.foot small{color:#dac9c2;font-size:13px}.foot-links{display:grid;gap:10px}.foot-bottom{border-top:1px solid #62504a;margin-top:55px;padding-top:20px;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}.pagehero{padding:85px 0 72px;background:var(--cream);text-align:center}.pagehero .wrap{max-width:800px}.pagehero p{color:var(--muted)}.prose{max-width:760px;margin:auto}.prose p,.prose li{color:var(--muted)}.prose h2{margin-top:40px}.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:35px}.info-box{border-radius:24px;background:white;padding:34px;border:1px solid var(--line)}.price{font:48px 'DM Serif Display',serif;color:var(--clay)}.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:65px}.form{background:white;border:1px solid var(--line);border-radius:24px;padding:35px}.form label{display:block;font-size:13px;font-weight:700;margin-bottom:7px}.form input,.form textarea{width:100%;border:1px solid #d9cac1;border-radius:12px;padding:12px 14px;background:#fffcfa;color:var(--ink)}.form input:focus,.form textarea:focus{outline:2px solid #c48b76;outline-offset:2px}.form .field{margin-bottom:20px}.form textarea{min-height:125px;resize:vertical}.muted{color:var(--muted)}.alert{border-left:3px solid var(--clay);background:var(--cream);padding:17px 21px;font-size:13px;color:#634c43;border-radius:0 12px 12px 0}.faq details{background:white;border-radius:14px;margin-bottom:10px;padding:20px;border:1px solid var(--line)}.faq summary{cursor:pointer;font-weight:700}.faq details p{color:var(--muted)}.hidden{display:none}.required-note{color:#8a483f;font-weight:600}.photo-inline{width:100%;aspect-ratio:5/5;object-fit:cover;object-position:center 25%;border-radius:42% 42% 20px 20px}.success{display:none;color:#567753;font-weight:600}.error{color:#8a483f}.checkline{display:flex;gap:12px;align-items:flex-start}.checkline input{width:auto;margin-top:6px}.checkline label{font-weight:400;line-height:1.5}a:focus-visible,button:focus-visible{outline:3px solid #8d9787;outline-offset:3px}@media(max-width:880px){.nav{display:none;position:absolute;left:0;right:0;top:86px;background:var(--light);padding:22px 24px;flex-direction:column;align-items:stretch;border-bottom:1px solid var(--line);gap:18px}.nav.open{display:flex}.menu-toggle{display:block}.hero-grid,.split,.contact-grid{grid-template-columns:1fr;gap:35px}.hero{padding:55px 0}.portrait-wrap{width:min(480px,90%);margin:auto}.cards,.steps{grid-template-columns:1fr 1fr}.foot-grid{grid-template-columns:1fr 1fr}.info-grid{grid-template-columns:1fr}}@media(max-width:590px){.wrap{width:min(100% - 36px,1150px)}.head{height:74px}.nav{top:74px}.brand strong{font-size:19px}.brand small{font-size:9px}.hero h1{font-size:45px}.section{padding:62px 0}.cards,.steps,.foot-grid{grid-template-columns:1fr}.card,.panel,.form{padding:27px}.stamp{left:0;font-size:15px}.pagehero{padding:62px 0}.contact-grid{gap:32px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.btn{transition:none}}



/* ============================================================
   BARBARA CAMPINOTTI — V1.3
   Restauration du thème original et finition interface RDV.
   ============================================================ */
:root {
  --ink: #382e2b;
  --muted: #756a66;
  --clay: #a6604e;
  --terra: #bb7560;
  --light: #fffaf5;
  --cream: #f7eee7;
  --rose: #ecd8ce;
  --line: #e6d8ce;
  --focus: #466d64;
}
body { min-width: 320px; }
button, input, select, textarea { font: inherit; }
a, button { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; }
.prototype-ribbon {
  padding: 9px 22px;
  background: #4b3833;
  color: #fff3ec;
  text-align: center;
  font-size: 12px;
  letter-spacing: .035em;
  line-height: 1.5;
}
/* Header: logo lisible, navigation stable, action impossible à manquer */
.top { z-index: 100; }
.head { min-height: 92px; height: auto; padding-block: 12px; }
.brand { flex-shrink: 0; }
.nav { gap: clamp(12px, 1.35vw, 24px); flex-wrap: wrap; justify-content: flex-end; }
.nav a:not(.btn) { white-space: nowrap; }
.nav .btn, .nav a.btn[href='/rdv'] {
  background: #9e5544;
  border: 1px solid #9e5544;
  color: #fff !important;
  min-height: 46px;
  padding: 12px 20px;
  white-space: nowrap;
  box-shadow: 0 5px 15px rgba(109, 56, 43, .16);
}
.nav .btn:hover, .nav a.btn[href='/rdv']:hover {
  background: #804132;
  border-color: #804132;
  color: #fff !important;
  box-shadow: 0 8px 22px rgba(109, 56, 43, .21);
}
.btn { min-height: 45px; text-align: center; }
.btn:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; }
/* rythme, contraste et lisibilité */
.lede { line-height: 1.8; }
.card { transition: transform .2s ease, box-shadow .2s ease; }
.card:hover { transform: translateY(-3px); box-shadow: 0 16px 32px rgba(60,36,26,.07); }
.pagehero { border-bottom: 1px solid rgba(110,73,61,.08); }
.section { scroll-margin-top: 115px; }
/* RDV - reprend les codes visuels des cartes et encarts du site */
.book-shell {
  max-width: 790px;
  margin-inline: auto;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 28px;
  padding: clamp(24px, 4vw, 48px);
  box-shadow: 0 20px 56px rgba(81,52,43,.07);
}
.book-head { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 20px; margin-bottom: 28px; }
.book-price { color: var(--clay); font: 40px/1.1 'DM Serif Display', Georgia, serif; }
.booking-picker, .book-shell input[type='date'], .book-shell select {
  display: block; width: min(100%, 370px); min-height: 48px;
  padding: 12px 15px; border: 1px solid #d7c5ba; border-radius: 12px;
  background: #fffdfb; color: var(--ink);
}
.booking-picker:focus, .book-shell input:focus-visible, .book-shell select:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; }
.booking-slots { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; margin: 22px 0; }
.booking-slots button {
  min-height: 48px; padding: 12px 10px;
  background: #fffaf7; border: 1px solid #d8bbae;
  border-radius: 12px; color: #754737; cursor: pointer;
  font-weight: 600; transition: background-color .16s ease,border-color .16s ease;
}
.booking-slots button:not(:disabled):hover { background: #f2ddd3; border-color: var(--clay); }
.booking-slots button:disabled { opacity: .4; cursor: not-allowed; }
.booking-alert { margin-top: 20px; padding: 19px 22px; background: var(--cream); border-radius: 14px; line-height: 1.75; }
.booking-link { display: inline-flex; margin-top: 12px; color: #824533; font-weight: 700; overflow-wrap: anywhere; }
.booking-status { min-height: 34px; }
.demo-note { color: var(--muted); font-size: 13px; margin-top: 22px; }
/* garder le grand écran élégant sans écraser la navigation */
@media (max-width: 1120px) and (min-width: 881px) {
  .head { align-items: center; }
  .nav { gap: 12px; font-size: 12px; }
  .brand strong { font-size: 20px; }
  .brand small { font-size: 10px; }
  .nav .btn { padding: 11px 15px; }
}
@media (max-width: 880px) {
  .head { min-height: 82px; }
  .nav {
    display: none; position: absolute; top: 100%; left: 0; right: 0;
    z-index: 110; background: #fffaf5; padding: 24px max(24px, calc((100vw - 1150px)/2));
    flex-direction: column; flex-wrap: nowrap; align-items: stretch;
    gap: 18px; border-bottom: 1px solid var(--line);
    box-shadow: 0 18px 28px rgba(81,52,43,.08);
  }
  .nav.open { display: flex; }
  .nav .btn, .nav a.btn[href='/rdv'] { width: 100%; }
  .menu-toggle { display: block; cursor: pointer; color: var(--ink); }
}
@media (max-width: 590px) {
  .head { min-height: 74px; }
  .book-shell { border-radius: 20px; padding: 22px 18px; }
  .booking-slots { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .book-price { font-size: 34px; }
  .hero { padding-block: 58px; }
  .hero h1 { overflow-wrap: anywhere; }
}
@media (prefers-reduced-motion: reduce) {
  .card { transition: none; }
  .card:hover { transform: none; }
}

/* V1.4 — parcours de réservation */
.booking-slots button.selected-slot {background:#a6604e;color:white;border-color:#a6604e;box-shadow:0 4px 14px rgba(109,56,43,.15)}
.booking-person {margin:30px 0 15px;padding-top:26px;border-top:1px solid var(--line)}
.booking-section-label {display:flex;align-items:center;gap:12px;margin-bottom:14px}
.booking-section-label h3 {font-size:22px;margin:0}
.booking-step {width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:var(--cream);color:var(--clay);font-weight:700}
.booking-choice {background:var(--cream);border-radius:12px;padding:13px 17px;font-weight:700;margin:18px 0 22px}
.booking-person-grid {display:grid;grid-template-columns:1fr 1fr;gap:16px}
.booking-field {display:flex;flex-direction:column;gap:7px;margin-bottom:18px}
.booking-field label {font-weight:700;font-size:14px}
.booking-field input {width:100%;min-width:0;padding:13px 15px;border:1px solid #d7c5ba;border-radius:12px;background:#fffdfb;color:var(--ink)}
.booking-field input:focus-visible {outline:3px solid var(--focus);outline-offset:1px}
.booking-field small {font-size:12px;color:var(--muted)}
.booking-consent {margin:5px 0 22px;font-size:13px;color:var(--muted)}
.booking-consent label {display:flex;align-items:flex-start;gap:10px;cursor:pointer}
.booking-consent input {margin-top:5px;accent-color:var(--clay)}
.booking-submit {width:100%;min-height:51px;border-radius:12px}
.booking-submit:disabled {opacity:.55;cursor:wait}
@media(max-width:590px){.booking-person-grid{grid-template-columns:1fr}}
