
:root{--cream:#f8f0e3;--cream2:#fff8ee;--olive:#3f4b24;--olive2:#667044;--terracotta:#a8492b;--gold:#c9a36a;--ink:#283015;--line:#d8c7a6;--shadow:0 18px 45px rgba(63,75,36,.14)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:Georgia,'Times New Roman',serif;line-height:1.62}p,li{font-size:18px;text-align:justify}a{color:inherit}.topbar{background:var(--olive);color:#fff;padding:8px 0;font-size:15px}.topbar a{text-decoration:none}.wrap{width:min(1180px,92vw);margin:auto}.topbar .wrap{display:flex;justify-content:flex-end;gap:24px;align-items:center;flex-wrap:wrap}.navbar{background:linear-gradient(180deg,#fff9ee,#f8efdf);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10;box-shadow:0 4px 16px rgba(63,75,36,.06)}.navinner{display:flex;align-items:center;justify-content:space-between;padding:12px 0}.brand{display:flex;align-items:center;gap:16px;text-decoration:none;color:var(--olive)}.brand img{width:96px;height:68px;object-fit:contain}.brand-title{font-size:36px;line-height:.9;letter-spacing:.02em}.brand-title span{display:block;color:var(--terracotta);font-style:italic;font-size:34px}.nav{display:flex;gap:18px;align-items:center}.nav a{color:var(--ink);text-decoration:none;text-transform:uppercase;font-size:14px;letter-spacing:.06em;padding:10px 0;border-bottom:2px solid transparent}.nav a:hover,.nav a.active{color:var(--terracotta);border-bottom-color:var(--terracotta)}.menu{display:none;background:transparent;border:1px solid var(--line);font-size:28px;color:var(--olive);border-radius:8px;padding:4px 12px}.hero{position:relative;overflow:hidden;background:linear-gradient(90deg,rgba(248,240,227,.98) 0%,rgba(248,240,227,.86) 44%,rgba(248,240,227,.24) 100%),url('assets/hero-spa.png') center right/cover no-repeat;border-bottom:1px solid var(--line)}.hero .wrap{min-height:460px;display:grid;grid-template-columns:minmax(320px,590px) 1fr;align-items:center}.hero h1{font-size:58px;line-height:1.03;margin:0;color:var(--olive);font-weight:500}.hero h1 em{display:block;color:var(--terracotta);font-size:64px;font-weight:400}.orn{display:flex;align-items:center;gap:16px;color:var(--terracotta);font-size:34px;margin:16px 0}.orn:before,.orn:after{content:"";height:1px;background:var(--terracotta);width:90px}.baseline{font-size:24px;color:var(--olive);margin:0 0 28px;text-align:left;font-style:italic}.dot{color:var(--terracotta);padding:0 12px}.btn{display:inline-block;background:var(--terracotta);color:#fff;text-decoration:none;padding:13px 26px;border-radius:6px;box-shadow:0 8px 18px rgba(168,73,43,.22);text-transform:uppercase;letter-spacing:.06em;font-size:14px}.btn.secondary{background:transparent;color:var(--olive);border:1px solid var(--olive);box-shadow:none}.section{padding:70px 0}.section.alt{background:linear-gradient(180deg,#fff7eb,#f4ead8)}.intro-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}.photo-card{border-radius:20px;overflow:hidden;box-shadow:var(--shadow);border:10px solid #fff8ee}.photo-card img{width:100%;height:auto;display:block}.eyebrow{color:var(--terracotta);letter-spacing:.12em;text-transform:uppercase;font-size:14px;text-align:left}.h2{font-size:40px;line-height:1.08;color:var(--olive);margin:8px 0 16px;font-weight:500}.h2 em{color:var(--terracotta);font-weight:400}.features{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff8ee}.feature{padding:26px 28px;display:grid;grid-template-columns:58px 1fr;gap:16px;border-right:1px solid var(--line)}.feature:last-child{border-right:none}.icon{width:58px;height:58px;border:2px solid var(--olive);border-radius:50%;display:grid;place-items:center;color:var(--olive);font-size:28px}.feature h3{margin:0 0 6px;color:var(--terracotta);font-size:17px;text-transform:uppercase}.feature p{margin:0;font-size:15px;text-align:left}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}.cards.two{grid-template-columns:repeat(2,1fr)}.card{background:#fff8ee;border:1px solid var(--line);border-radius:20px;padding:28px;box-shadow:var(--shadow);position:relative;overflow:hidden}.card:after{content:"♡";position:absolute;right:18px;top:4px;font-size:54px;color:rgba(168,73,43,.12)}.card h3{font-size:28px;color:var(--olive);margin:0 0 10px}.card ul{padding-left:20px;margin:14px 0 0}.price-layout{display:grid;grid-template-columns:1fr 1fr;gap:28px}.price-box{background:#fffaf1;border:1px solid var(--line);border-radius:22px;padding:28px;box-shadow:var(--shadow)}.price-box h3{display:inline-block;margin:0 0 18px;padding:9px 24px;background:var(--olive);color:#fff;border-radius:999px;font-size:19px;text-transform:uppercase;letter-spacing:.04em}.price-box.terra h3{background:var(--terracotta)}.price-row{display:grid;grid-template-columns:1fr auto auto;gap:14px;border-bottom:1px dotted #c8b899;padding:8px 0;align-items:end}.price-row span,.price-row strong{font-size:16px}.price-row small{display:block;font-style:italic;color:#555}.muted{color:#6c654f}.hours{display:grid;grid-template-columns:1fr 1fr;gap:28px}.hours .panel,.contact-panel{background:#fff8ee;border:1px solid var(--line);border-radius:22px;padding:32px;box-shadow:var(--shadow)}.contact-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:30px;align-items:start}.contact-list{list-style:none;padding:0;margin:0}.contact-list li{padding:12px 0;border-bottom:1px solid var(--line);font-size:20px;text-align:left}.banner-info{width:100%;border-radius:22px;box-shadow:var(--shadow);border:1px solid var(--line)}.footer{background:var(--olive);color:#fff;padding:30px 0;text-align:center}.footer p{text-align:center;font-size:16px}.footer a{color:#fff}.page-hero{padding:52px 0;background:linear-gradient(180deg,#fff8ec,#f4ead8);border-bottom:1px solid var(--line)}.page-hero h1{font-size:42px;margin:0;color:var(--olive);line-height:1.12;font-weight:500}.page-hero p{font-size:20px;margin:8px 0 0;color:var(--terracotta);text-align:left;font-style:italic}.service-hero{background:#fff8ee;border:1px solid var(--line);border-radius:22px;padding:32px;box-shadow:var(--shadow)}.tags{display:flex;gap:12px;flex-wrap:wrap}.tags a{border:1px solid var(--line);background:#fff8ee;border-radius:999px;text-decoration:none;padding:8px 14px;color:var(--olive)}.mini-seo{padding:36px 0;background:#f1e6d2}.notice{border-left:5px solid var(--terracotta);background:#fff8ee;padding:18px 22px;border-radius:12px}.local-list{columns:2;column-gap:40px}.local-list li{break-inside:avoid;margin-bottom:6px}.cta-band{background:var(--olive);color:white;border-radius:22px;padding:36px;display:flex;justify-content:space-between;align-items:center;gap:24px;box-shadow:var(--shadow)}.cta-band p{text-align:left;margin:0}.cta-band .btn{background:#fff;color:var(--olive)}@media(max-width:900px){.menu{display:block}.nav{display:none;position:absolute;left:0;right:0;top:100%;background:#fff8ee;flex-direction:column;align-items:flex-start;padding:18px 4vw;border-bottom:1px solid var(--line)}.nav.open{display:flex}.hero .wrap,.intro-grid,.contact-grid,.price-layout,.hours{grid-template-columns:1fr}.hero{background-position:center}.hero .wrap{min-height:480px}.hero h1{font-size:44px}.hero h1 em{font-size:50px}.features,.cards,.cards.two{grid-template-columns:1fr}.feature{border-right:none;border-bottom:1px solid var(--line)}.brand-title{font-size:28px}.brand-title span{font-size:28px}.topbar .wrap{justify-content:center;flex-wrap:wrap}.section{padding:48px 0}.h2{font-size:38px}.local-list{columns:1}.cta-band{display:block}.page-hero h1{font-size:34px}}


/* Ajouts v9 : page esthéticienne et galerie */
.cta-row{display:flex;gap:14px;flex-wrap:wrap;margin:26px 0 8px}
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:30px}
.gallery-grid figure{margin:0;background:#fff8ee;border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:var(--shadow)}
.gallery-grid img{width:100%;height:245px;object-fit:cover;display:block}
.gallery-grid figcaption{padding:13px 16px;color:var(--olive);font-style:italic;text-align:center}
.note-card{background:#fff8ee;border:1px solid var(--line);border-radius:20px;padding:28px;box-shadow:var(--shadow)}
.note-card h3{margin-top:0;color:var(--terracotta);font-size:24px}
@media(max-width:900px){.gallery-grid{grid-template-columns:1fr 1fr}.gallery-grid img{height:210px}}
@media(max-width:640px){.gallery-grid{grid-template-columns:1fr}.gallery-grid img{height:auto}}


/* Ajouts v10 : formulaire de contact */
.contact-form{margin-top:26px;background:#fffaf1;border:1px solid var(--line);border-radius:18px;padding:24px;box-shadow:0 10px 24px rgba(63,75,36,.08)}
.contact-form h2{margin:0 0 8px;color:var(--olive);font-size:28px;font-weight:500}
.contact-form .form-intro{font-size:16px;text-align:justify;margin:0 0 18px;color:#5f5847}
.contact-form label{display:block;color:var(--olive);font-weight:bold;font-size:16px;margin:14px 0 6px;text-align:left}
.contact-form input,.contact-form select,.contact-form textarea{width:100%;margin-top:6px;border:1px solid #d2c2a4;border-radius:10px;background:#fffdf8;padding:12px 13px;font:16px Georgia,'Times New Roman',serif;color:var(--ink)}
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{outline:2px solid rgba(168,73,43,.22);border-color:var(--terracotta)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.privacy-note{font-size:14px;color:#6c654f;text-align:left;margin:10px 0 18px}.hp-field{position:absolute!important;left:-9999px!important;opacity:0!important;height:0!important;width:0!important}
@media(max-width:700px){.form-grid{grid-template-columns:1fr}}

/* Prise de rendez-vous */
.booking-layout { display:grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; align-items:start; }
.booking-card { background: rgba(255,255,255,.72); border: 1px solid rgba(116,128,91,.25); border-radius: 24px; padding: 1.2rem; box-shadow: 0 12px 30px rgba(67, 55, 37, .08); }
.booking-card label { display:block; font-weight:700; color:#465239; margin:.75rem 0 .25rem; }
.booking-card input, .booking-card select, .booking-card textarea { width:100%; padding:.85rem 1rem; border:1px solid rgba(116,128,91,.35); border-radius:16px; background:#fffdf8; font-family:inherit; }
.booking-card textarea { min-height:110px; resize:vertical; }
.slot-grid { display:grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap:.55rem; margin-top:.75rem; }
.slot-button { border:1px solid rgba(116,128,91,.35); background:#fffdf8; border-radius:999px; padding:.65rem .7rem; cursor:pointer; color:#465239; font-weight:700; }
.slot-button:hover, .slot-button.selected { background:#74805b; color:#fffdf8; }
.notice-soft { background:#f6efe4; border-left:4px solid #b46f50; border-radius:16px; padding:1rem; margin:1rem 0; }
@media (max-width: 850px) { .booking-layout { grid-template-columns:1fr; } .slot-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }


.table-wrap{overflow-x:auto}.price-table{width:100%;border-collapse:collapse}.price-table th,.price-table td{padding:.75rem;border-bottom:1px solid rgba(91,102,71,.18);text-align:left;vertical-align:top}.price-table th{color:#55633f;font-family:Georgia,serif}.error-page{min-height:55vh;display:flex;align-items:center;justify-content:center}.notice-soft{background:#fbf4ea;border:1px solid rgba(181,109,72,.25);padding:1rem;border-radius:18px;margin:1rem 0}.slot-button.selected{outline:2px solid #b56d48;outline-offset:2px}


/* V14 — ajustements ergonomie et sous-titres */
.sr-only{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;white-space:nowrap!important;border:0!important}
.page-hero{padding:24px 0;background:linear-gradient(180deg,#fff8ec,#f4ead8);border-bottom:1px solid var(--line)}
.page-hero .wrap{display:flex;justify-content:center}
.page-hero p,.page-hero .subtitle{max-width:900px;margin:0 auto;color:var(--terracotta);font-size:19px;line-height:1.45;text-align:center!important;font-style:italic}
.booking-wrap{padding:44px 0 70px}
.booking-layout{width:100%;max-width:1080px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr);gap:28px;align-items:start}
.booking-card{background:#fff8ee;border:1px solid var(--line);border-radius:22px;padding:28px;box-shadow:var(--shadow)}
.booking-card h2{margin-top:0;color:var(--olive);font-size:28px;font-weight:500}
.booking-card label{text-align:left}
.booking-card input,.booking-card select,.booking-card textarea{width:100%;max-width:100%}
.slot-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px}
.slot-grid p{text-align:left;font-size:16px;margin:0}
@media(max-width:900px){.page-hero{padding:20px 0}.page-hero p,.page-hero .subtitle{font-size:17px}.booking-wrap{padding:30px 4vw 52px}.booking-layout{grid-template-columns:1fr;max-width:720px}.booking-card{padding:22px}.slot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.slot-grid{grid-template-columns:1fr}.booking-wrap{padding-left:5vw;padding-right:5vw}}

.selected-slot{margin:.7rem 0 0!important;text-align:left!important;font-size:15px!important;color:var(--olive);font-style:italic}.selected-slot.error{color:#a8492b;font-weight:700}


/* Override admin : suppression menu flottant */
.admin-menu,
.admin-subnav,
.admin-header,
.admin-topbar{
  position:static !important;
  top:auto !important;
  bottom:auto !important;
  left:auto !important;
  right:auto !important;
  z-index:auto !important;
}
