@import url('https://fonts.googleapis.com/css2?family=DM+Serif+Display&family=Inter:wght@400;500;600&display=swap');
:root{--paper:#fbf7f2;--cream:#f5efe7;--cocoa:#2b1d18;--brown:#493229;--rust:#a75e43;--gold:#c5a36a;--taupe:#b8a69b;--white:#fff;--serif:Georgia,'Times New Roman',serif}
*{box-sizing:border-box}[hidden]{display:none!important}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--cocoa);font-family:Inter,Arial,sans-serif;line-height:1.5}img{width:100%;height:100%;object-fit:cover;display:block}a{text-decoration:none;color:inherit}button,input,select,textarea{font:inherit}.container{width:min(1280px,calc(100% - 64px));margin:auto}.header{height:88px;position:fixed;inset:0 0 auto;z-index:30;color:#fff;transition:.35s}.header.scrolled{background:rgba(43,29,24,.92);backdrop-filter:blur(16px)}.nav{height:100%;display:flex;align-items:center;justify-content:space-between}.brand{font-family:var(--serif);font-size:22px;line-height:.85}.links{display:flex;gap:28px;align-items:center;font-size:12px;text-transform:uppercase;letter-spacing:.08em}.links a:hover,.links a.active{color:var(--gold)}.btn{display:inline-flex;border:0;border-radius:999px;background:var(--rust);color:#fff;padding:14px 24px;text-transform:uppercase;letter-spacing:.07em;font-size:12px;font-weight:600;cursor:pointer}.btn.light{background:var(--paper);color:var(--cocoa)}.menu{display:none;color:#fff;background:none;border:0;font-size:23px}.hero{height:900px;position:relative;background:center/cover url('assets/hero-immersif.webp') fixed;color:#fff}.hero:after,.image-band:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(28,18,14,.82),rgba(28,18,14,.16))}.hero-content{position:relative;z-index:2;padding-top:210px}.eyebrow{color:var(--gold);letter-spacing:.16em;text-transform:uppercase;font-size:12px;font-weight:600}.hero h1,.page-hero h1{font-family:var(--serif);font-size:clamp(55px,6vw,86px);line-height:.98;font-weight:400;margin:28px 0}.hero p{font-size:18px;max-width:550px;color:var(--cream)}.scroll-note{position:absolute;z-index:2;bottom:60px;left:max(32px,calc((100% - 1280px)/2));font-size:10px;letter-spacing:.16em}.section{padding:110px 0}.cream{background:var(--cream)}.dark{background:var(--brown);color:#fff}.chapter{color:var(--rust);text-transform:uppercase;letter-spacing:.14em;font-size:12px;font-weight:600}.display{font-family:var(--serif);font-size:clamp(42px,5vw,65px);line-height:1.04;font-weight:400;margin:28px 0}.intro-grid{display:grid;grid-template-columns:1fr 540px;gap:100px;align-items:center}.arch-photo{height:650px;border-radius:260px 260px 140px 140px;overflow:hidden}.floating-card{background:rgba(251,247,242,.95);padding:26px;border-radius:20px;width:360px;margin:-150px 0 0 -90px;position:relative;box-shadow:0 18px 50px rgba(43,29,24,.16)}.image-band{min-height:850px;position:relative;background:center/cover url('assets/rituel-produits.webp') fixed}.image-band .panel{position:relative;z-index:2;margin-left:auto;width:470px;background:rgba(251,247,242,.94);padding:50px;border-radius:28px}.services{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.service{min-height:470px;padding:36px;border-radius:22px;background:var(--cream);display:flex;flex-direction:column;justify-content:flex-end}.service.featured{background:var(--rust);color:#fff;transform:translateY(40px)}.service h3{font:30px var(--serif)}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:55px}.gallery figure{height:540px;margin:0;overflow:hidden}.gallery figure:nth-child(2){margin-top:80px}.gallery figcaption{font-size:11px;color:var(--rust);text-transform:uppercase;margin-top:12px}.quote-grid{display:grid;grid-template-columns:1.4fr .7fr;gap:90px;align-items:center}.team-photo{height:520px;border-radius:180px;overflow:hidden}.page-hero{padding:210px 0 100px;background:var(--cocoa);color:#fff;text-align:center}.page-hero p{max-width:650px;margin:auto;color:var(--cream)}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.card,.panel{background:#fff;padding:32px;border-radius:22px}.card h3{font:26px var(--serif)}.price{font:25px var(--serif);color:var(--rust)}.contact-grid,.booking-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:40px}.form{display:grid;gap:16px}.field{display:grid;gap:7px}.field input,.field select,.field textarea{padding:14px;border:1px solid #d8cbc2;border-radius:10px;background:#fff}.field textarea{min-height:130px}.slots{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.slot{padding:12px;border:1px solid #d8cbc2;background:#fff;border-radius:10px}.slot.selected{background:var(--rust);color:#fff}.notice{display:none;background:#edf0e7;color:#566042;padding:14px;border-radius:10px}.notice.show{display:block}.footer{background:var(--cocoa);color:#fff;padding:60px 0}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px}.footer p,.footer a{color:#d7c8bf}.reveal{opacity:0;transform:translateY(55px);transition:.9s cubic-bezier(.2,.7,.2,1)}.reveal.visible{opacity:1;transform:none}.parallax{will-change:transform}.dashboard{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.metric{background:var(--cream);padding:25px;border-radius:18px}.metric strong{font:40px var(--serif);color:var(--rust)}
@media(max-width:800px){.container{width:min(100% - 40px,560px)}.header{height:68px}.menu{display:block}.links{position:fixed;inset:68px 0 auto;background:rgba(43,29,24,.98);display:none;flex-direction:column;align-items:stretch;padding:28px}.links.open{display:flex}.hero{height:720px;background-attachment:scroll}.hero-content{padding-top:175px}.hero h1,.page-hero h1{font-size:45px}.hero p{font-size:16px}.section{padding:72px 0}.intro-grid,.quote-grid,.contact-grid,.booking-grid{grid-template-columns:1fr;gap:35px}.intro-grid>div:first-child{order:0}.arch-photo{height:420px;border-radius:160px 160px 90px 90px}.floating-card{width:calc(100% - 30px);margin:-100px 15px 0}.image-band{min-height:650px;background-attachment:scroll;padding:170px 0 50px}.image-band .panel{width:100%;padding:30px}.services,.cards,.dashboard{grid-template-columns:1fr}.service{min-height:260px}.service.featured{transform:none}.gallery{grid-template-columns:1fr;gap:32px}.gallery figure,.gallery figure:nth-child(2){height:430px;margin:0}.team-photo{height:400px}.page-hero{padding:150px 0 75px}.slots{grid-template-columns:repeat(2,1fr)}.footer-grid{grid-template-columns:1fr}}
@media(min-width:801px){html{scroll-snap-type:y proximity;scroll-padding-top:88px}.hero,.page-hero,.section{scroll-snap-align:start;scroll-snap-stop:normal}}
@media(max-width:800px){html{scroll-snap-type:y proximity;scroll-padding-top:68px}.hero,.page-hero,.section{scroll-snap-align:start}}
.promo-banner{position:fixed;z-index:40;left:50%;bottom:22px;transform:translateX(-50%);width:min(960px,calc(100% - 32px));background:var(--cocoa);color:#fff;padding:15px 18px;border:1px solid rgba(197,163,106,.35);border-radius:16px;box-shadow:0 18px 55px rgba(0,0,0,.28);display:flex;align-items:center;gap:18px}.promo-banner span{color:#d7c8bf;flex:1}.promo-banner a{background:var(--rust);padding:9px 14px;border-radius:999px;font-size:12px;font-weight:700}.promo-banner button{border:0;background:transparent;color:#fff;font-size:23px;cursor:pointer}@media(max-width:700px){.promo-banner{align-items:flex-start;flex-wrap:wrap}.promo-banner span{width:100%;flex-basis:75%}}






.admin-dashboard{width:min(1100px,calc(100% - 48px));max-width:none!important;margin:auto;display:block}.admin-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:26px}.admin-heading h2{margin:4px 0 0;font-size:34px}.admin-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.admin-section{margin-top:28px;background:rgba(255,255,255,.72);padding:24px;border-radius:18px}.admin-section h3{margin-top:0}.admin-list{display:grid;gap:10px}.admin-list article{display:grid;grid-template-columns:1fr 1.4fr 2fr;gap:15px;padding:15px;background:#fff;border-radius:12px;align-items:center}.admin-list span,.admin-list small,.admin-list p{margin:0;color:var(--muted)}.admin-empty{padding:22px;background:#fff;border-radius:12px;color:var(--muted)}@media(max-width:800px){.admin-dashboard{width:100%}.admin-heading{align-items:flex-start}.admin-metrics{grid-template-columns:1fr 1fr}.admin-list article{grid-template-columns:1fr}.admin-heading h2{font-size:28px}}

/* Composants reliés à Supabase */
.skip{position:fixed;left:16px;top:-80px;z-index:80;background:#fff;padding:12px}.skip:focus{top:12px}.footer-brand{font-family:var(--serif);font-weight:400}.text-link{display:inline-block;margin-top:18px;color:var(--rust);font-weight:600}.center-link{text-align:center;margin-top:46px}.full-gallery figure{height:auto;min-height:520px;display:flex;flex-direction:column;overflow:visible}.full-gallery figure img{height:500px;border-radius:6px}.gallery figcaption{display:grid;gap:6px}.gallery figcaption span{color:var(--brown);text-transform:none;letter-spacing:0;line-height:1.45}.contact-title{font-size:40px}.contact-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.btn.whatsapp{background:#4f7158}.notice{line-height:1.5}.price-note{padding:13px 15px;border-radius:10px;background:#f3e4d2;color:var(--brown)}.booking-summary{position:sticky;top:120px;align-self:start}.muted{color:#76665d}.review-carousel{display:flex;gap:22px;overflow:hidden;padding:12px 0}.review-carousel article{flex:0 0 min(380px,82vw);background:#fff;color:var(--cocoa);padding:28px;border-radius:18px;animation:reviewDrift 24s linear infinite}.review-carousel .stars{color:var(--gold);letter-spacing:.12em}.review-carousel strong{color:var(--rust)}@keyframes reviewDrift{to{transform:translateX(calc(-100% - 22px))}}
@media(max-width:800px){.full-gallery figure{min-height:0}.full-gallery figure img{height:420px}.booking-summary{position:static;grid-row:1}.contact-actions .btn{flex:1}.review-carousel{overflow-x:auto}.review-carousel article{animation:none}}

.price del{color:#8f8178;font-size:.72em;margin-right:7px}.price em{display:inline-block;font:600 11px Arial,sans-serif;background:var(--rust);color:#fff;border-radius:999px;padding:5px 8px;margin-left:7px;vertical-align:middle}
.location-section{background:var(--paper)}.location-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(420px,1.2fr);gap:70px;align-items:center}.location-copy p{max-width:560px}.map-frame{height:500px;border-radius:28px;overflow:hidden;box-shadow:0 20px 55px rgba(43,29,24,.16);background:var(--cream)}.map-frame iframe{width:100%;height:100%;border:0;display:block}
@media(max-width:800px){.location-grid{grid-template-columns:1fr;gap:34px}.map-frame{height:360px}.location-copy .contact-actions{display:grid}.location-copy .btn{width:100%}}
.header .brand{display:grid;gap:5px;line-height:.95}.header .brand small{font:500 9px Inter,Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--gold)}
.header .logo-link{display:flex;width:190px;height:66px}.header .logo-link img,.footer-logo img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 2px 5px rgba(251,247,242,.35))}.footer-logo{display:flex;width:230px;height:100px;margin-bottom:16px}
@media(max-width:800px){.header .logo-link{width:145px;height:54px}.footer-logo{width:200px;height:88px}}
.calendar-date-value{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none}.availability-calendar{margin-top:8px;border:1px solid rgba(74,45,31,.14);border-radius:20px;background:#fff;padding:18px}.calendar-head{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;text-align:center;margin-bottom:14px}.calendar-head strong{text-transform:capitalize;font-size:17px}.calendar-head button{width:40px;height:40px;border:0;border-radius:50%;background:#f2e4cf;color:#432c20;font-size:28px;line-height:1}.calendar-week,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.calendar-week{margin-bottom:7px;text-align:center;color:#806f65;font-size:12px}.calendar-day{min-height:62px;border:1px solid transparent;border-radius:12px;display:grid;place-items:center;padding:6px 2px;line-height:1.1}.calendar-day b{font-size:15px}.calendar-day small{font-size:9px}.calendar-day.available{background:#e5f1df;color:#315c34;border-color:#9bbc8e}.calendar-day.available:hover,.calendar-day.selected{background:#668e5c;color:#fff;border-color:#668e5c;transform:translateY(-1px)}.calendar-day.unavailable{background:#f5e2dc;color:#9b5547;border-color:#e4bdb2;opacity:.75;cursor:not-allowed}.calendar-legend{display:flex;gap:20px;flex-wrap:wrap;margin-top:15px;font-size:11px;color:#806f65}.calendar-legend span{display:flex;align-items:center;gap:7px}.calendar-legend i{width:11px;height:11px;border-radius:50%}.calendar-legend i.available{background:#668e5c}.calendar-legend i.unavailable{background:#c77f6e}.calendar-loading,.calendar-error{margin:0;text-align:center;padding:24px 8px}.calendar-error{color:#9b4038}@media(max-width:520px){.availability-calendar{padding:12px}.calendar-week,.calendar-days{gap:4px}.calendar-day{min-height:52px;border-radius:9px}.calendar-day small{display:none}}

.booking-actions,.form .actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;align-items:stretch;margin-top:6px}.booking-actions .btn,.form .actions .btn{width:100%;min-height:48px;justify-content:center;align-items:center;text-align:center}.booking-actions .btn.light,.form .actions .btn.light{border:1px solid var(--rust);background:#fff;color:var(--rust)}.calendar-head strong{padding:0 10px}.calendar-head button:first-child{justify-self:start}.calendar-head button:last-child{justify-self:end}@media(max-width:520px){.booking-actions,.form .actions{grid-template-columns:1fr}.booking-actions .btn,.form .actions .btn{min-height:50px}}

.calendar-day .day-name{display:none;text-transform:capitalize;font-size:11px;font-weight:600}@media(max-width:520px){.calendar-head{grid-template-columns:42px 1fr 42px}.calendar-head strong{font-size:14px;line-height:1.25}.calendar-week{display:none}.calendar-days{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.calendar-day{min-height:68px;grid-template-columns:auto auto;grid-template-rows:auto auto;column-gap:7px;align-content:center;justify-content:center}.calendar-day .day-name{display:block;grid-column:1;grid-row:1 / span 2}.calendar-day b{grid-column:2;grid-row:1;font-size:17px}.calendar-day small{display:block;grid-column:2;grid-row:2;font-size:10px}.calendar-day:last-child:nth-child(odd){grid-column:1 / -1}}

html,body{max-width:100%;overflow-x:hidden}.booking-grid>*{min-width:0}.form input,.form select,.form textarea{display:block;width:100%;max-width:100%;min-width:0}@media(max-width:800px){.container{width:calc(100% - 32px);max-width:560px}.contact-grid,.booking-grid{grid-template-columns:minmax(0,1fr);gap:24px}.booking-summary{grid-row:auto;position:static}.card,.panel{padding:24px}.page-hero{padding:118px 0 54px}.page-hero h1{font-size:40px;margin:18px 0}.section{padding:42px 0}}@media(max-width:420px){.container{width:calc(100% - 24px)}.card,.panel{padding:20px;border-radius:18px}.availability-calendar{padding:10px}.calendar-days{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-day:last-child:nth-child(odd){grid-column:1 / -1}.calendar-head strong{font-size:13px}.booking-actions{gap:9px}}
