/* CALM Conciergerie — réplique fidèle du site Framer (Geist, fond nuit, crème) */
@font-face{font-family:"Geist";src:url(/assets/fonts/geist-latin-300-normal.woff2) format("woff2");font-weight:300;font-display:swap}
@font-face{font-family:"Geist";src:url(/assets/fonts/geist-latin-400-normal.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Geist";src:url(/assets/fonts/geist-latin-500-normal.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Geist";src:url(/assets/fonts/geist-latin-600-normal.woff2) format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"Geist";src:url(/assets/fonts/geist-latin-700-normal.woff2) format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:"Geist";src:url(/assets/fonts/geist-latin-ext-400-normal.woff2) format("woff2");font-weight:400;font-display:swap;unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

:root{
  --bg:#0a0e14; --bg2:#0b0f17; --cream:#d9d5c5; --cream-70:rgba(217,213,197,.7); --cream-50:rgba(217,213,197,.5);
  --muted:rgba(240,239,234,.5); --line:rgba(217,213,197,.15); --star:#e3af14;
  --ink:#0b0f17; --ink-60:rgba(10,18,20,.6);
  --font:"Geist",system-ui,-apple-system,"Segoe UI",Helvetica,Arial,sans-serif;
  --m:20px; --ease:cubic-bezier(.22,1,.36,1);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--cream);font:400 16px/1.4 var(--font);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
h1,h2,h3,h4,h5,h6,p{margin:0}
ul{margin:0;padding:0;list-style:none}
:focus-visible{outline:1px solid var(--cream);outline-offset:4px}
.ico{width:1em;height:1em;flex:none}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:8px;background:var(--cream);color:var(--ink);padding:8px 14px;z-index:999}
.skip:focus{left:8px}
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.muted{color:var(--muted)}

/* ---------- Typo (échelle relevée sur le site Framer) ---------- */
.label{font-size:16px;color:var(--muted);text-transform:uppercase}
.label.cream{color:var(--cream)}
.t-hero{font-size:120px;font-weight:500;letter-spacing:-.06em;line-height:.9;text-transform:uppercase}
.t-h1{font-size:90px;font-weight:500;letter-spacing:-.06em;line-height:.9;text-transform:uppercase}
.t-h1-s{font-size:72px;font-weight:500;letter-spacing:-.06em;line-height:.9;text-transform:uppercase}
.t-display{font-size:61px;font-weight:700;letter-spacing:-.04em;line-height:.9;text-transform:uppercase}
.t-section{font-size:56px;font-weight:700;letter-spacing:-.04em;line-height:.9;text-transform:uppercase}
.t-xl{font-size:58px;font-weight:500;letter-spacing:-.04em;line-height:.9;text-transform:uppercase}
.t-l{font-size:43px;font-weight:500;letter-spacing:-.04em;line-height:1;text-transform:uppercase}
.t-m{font-size:29px;font-weight:500;letter-spacing:-.04em;line-height:.9;text-transform:uppercase}
.t-36{font-size:36px;font-weight:400;letter-spacing:-.02em;line-height:1.1}
.t-24{font-size:24px;font-weight:400;letter-spacing:-.02em;line-height:1.4}
.t-21{font-size:21px;font-weight:300;letter-spacing:-.02em;line-height:1.4}
.t-18{font-size:18px;line-height:1.4}
.lead{color:var(--muted)}
.c{text-align:center}
.link{display:inline-block;font-size:18px;font-weight:500;text-transform:uppercase;position:relative;padding-bottom:2px}
.link::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform-origin:left;transition:transform .5s var(--ease)}
.link:hover::after{transform:scaleX(0);transform-origin:right}
.stars{display:inline-flex;gap:5px;vertical-align:middle;color:var(--star)}
.stars svg{width:16px;height:16px;fill:currentColor}
.rating{display:inline-flex;align-items:center;gap:14px;font-size:16px}

/* ---------- En-tête ---------- */
.site-header{position:fixed;top:0;left:0;right:0;height:80px;z-index:60;pointer-events:none}
.logo{position:absolute;left:var(--m);top:27px;font-size:30px;font-weight:500;letter-spacing:-.04em;line-height:.9;pointer-events:auto;mix-blend-mode:normal}
.nav-box{position:absolute;right:var(--m);top:10px;height:60px;display:flex;align-items:center;gap:24px;background:var(--cream);padding:5px 5px 5px 24px;pointer-events:auto}
.nav-box .book{font-size:18px;font-weight:500;color:var(--bg2);text-transform:uppercase}
.burger{width:70px;height:50px;background:var(--bg);display:grid;place-items:center;position:relative}
.burger span{position:absolute;left:23px;right:23px;height:1px;background:var(--cream);transition:transform .45s var(--ease),top .45s var(--ease)}
.burger span:first-child{top:21px}.burger span:last-child{top:28px}
.menu-open .burger span:first-child{top:25px;transform:rotate(45deg)}
.menu-open .burger span:last-child{top:25px;transform:rotate(-45deg)}
.menu{position:fixed;inset:0;z-index:55;pointer-events:none}
.menu-panel{position:absolute;top:0;right:0;bottom:0;width:50%;background:var(--bg2);padding:130px 50px 50px;display:flex;flex-direction:column;transform:translateX(100%);transition:transform .7s var(--ease)}
.menu-open .menu{pointer-events:auto}
.menu-open .menu-panel{transform:none}
.menu-panel ul{margin-top:28px}
.menu-panel li a{display:inline-block;font-size:28px;font-weight:500;letter-spacing:-.03em;line-height:1.2;text-transform:uppercase;transition:opacity .3s}
.menu-panel li a:hover,.menu-panel li a[aria-current]{opacity:.55}
.menu-socials{margin-top:auto;display:flex;gap:30px}
.menu-socials a{font-size:18px;font-weight:500;text-decoration:underline;text-underline-offset:3px}
.menu-veil{position:absolute;inset:0;background:rgba(10,14,20,.4);opacity:0;transition:opacity .6s}
.menu-open .menu-veil{opacity:1}

/* ---------- Grille de lignes verticales (hero / vitrine) ---------- */
.vlines{position:absolute;inset:0;pointer-events:none;z-index:2}
.vlines::before,.vlines::after{content:"";position:absolute;top:0;bottom:0;width:1px;background:rgba(217,213,197,.18)}
.vlines::before{left:33.333%}.vlines::after{left:66.666%}

/* ---------- Hero accueil ---------- */
.hero{position:relative;height:100vh;height:100svh;min-height:640px;overflow:hidden;background:var(--bg)}
.hero-img{position:absolute;inset:0}
.hero-img img{width:100%;height:100%;object-fit:cover}
.hero-img::after{content:"";position:absolute;inset:0;background:rgba(10,14,20,.38)}
.hero-inner{position:relative;z-index:3;height:100%;display:flex;flex-direction:column;align-items:center;padding:200px var(--m) 60px;text-align:center}
.hero-title{max-width:1100px}
.hero-text{max-width:400px;margin-top:auto;font-size:16px;line-height:1.4}
.hero-explore{margin-top:70px;display:flex;flex-direction:column;align-items:center;gap:6px;font-size:16px;text-transform:uppercase}
.hero-explore svg{width:16px;height:16px;animation:bob 2s ease-in-out infinite}
@keyframes bob{50%{transform:translateY(5px)}}

/* ---------- Sections ---------- */
.sec{position:relative;padding:60px var(--m)}
.sec-c{display:flex;flex-direction:column;align-items:center;text-align:center}
.excellence-title{max-width:470px}
.duo{display:grid;grid-template-columns:440px 440px;gap:20px;justify-content:center;margin-top:120px}
.duo .img{aspect-ratio:440/600}
.excellence-text{max-width:450px;margin-top:70px;color:var(--muted);font-size:18px;line-height:1.4}
.excellence-text p+p{margin-top:0}
.excellence .link{margin-top:40px}
.img{position:relative;overflow:hidden;background:#141922}
.img img{width:100%;height:100%;object-fit:cover}
.img.broken img{opacity:0}
.divider{position:relative;height:20px;margin:60px var(--m)}
.divider::before{content:"";position:absolute;left:0;right:0;top:10px;height:1px;background:var(--line)}
.divider::after{content:"";position:absolute;left:50%;top:0;width:20px;height:20px;margin-left:-10px;border-radius:50%;background:#1d2229;box-shadow:0 0 0 20px var(--bg)}

/* split image / texte */
.split{display:grid;grid-template-columns:1fr 1fr;align-items:center;padding:0 var(--m)}
.split .img{aspect-ratio:700/737}
.split-text{display:flex;flex-direction:column;align-items:center;text-align:center;padding:40px 60px;gap:0}
.split-text .label{margin-bottom:22px}
.split-text h2{max-width:330px}
.split-text .lead{max-width:400px;margin-top:22px;font-size:18px}
.split-text .link{margin-top:36px}
.split.rev .img{order:2}

/* témoignages */
.testi{padding:100px var(--m) 80px;text-align:center}
.testi .label{color:var(--cream)}
.testi h2{margin:20px auto 0}
.slider{position:relative;margin:70px auto 0;min-height:320px}
.slides{position:relative;max-width:700px;margin:0 auto}
.slide{display:none}
.slide.on{display:block;animation:fadein .7s var(--ease)}
@keyframes fadein{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.slide blockquote{margin:0;font-size:36px;line-height:1.1;letter-spacing:-.02em}
.slide .who{margin-top:44px;font-size:16px}
.slide .from{margin-top:12px;font-size:13px;color:var(--muted)}
.arrow{position:absolute;top:120px;width:60px;height:60px;border-radius:50%;background:var(--cream);color:var(--ink);display:grid;place-items:center;transition:transform .3s}
.arrow:hover{transform:scale(1.06)}
.arrow svg{width:22px;height:22px}
.arrow.prev{left:calc(50% - 450px)}.arrow.next{right:calc(50% - 450px)}
.dots{display:flex;justify-content:center;gap:10px;margin-top:40px}
.dots button{width:10px;height:10px;border-radius:50%;background:var(--cream);opacity:.35;transition:opacity .3s}
.dots button.on{opacity:1}

/* galerie mosaïque */
.mosaic{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;padding:0 var(--m) 20px}
.mosaic .col{display:flex;flex-direction:column;gap:20px}
.mosaic .img:nth-child(1){aspect-ratio:335/365}
.mosaic .col:nth-child(1) .img:nth-child(1),.mosaic .col:nth-child(4) .img:nth-child(2){aspect-ratio:335/365}
.mosaic .col:nth-child(1) .img:nth-child(2),.mosaic .col:nth-child(4) .img:nth-child(1){aspect-ratio:335/244}
.mosaic .col:nth-child(2) .img:nth-child(1),.mosaic .col:nth-child(3) .img:nth-child(2){aspect-ratio:335/183}
.mosaic .col:nth-child(2) .img:nth-child(2),.mosaic .col:nth-child(3) .img:nth-child(1){aspect-ratio:335/426}

/* vitrine villas (accueil) */
.showcase{position:relative;height:100vh;min-height:700px;overflow:hidden;margin-top:40px}
.showcase-bg{position:absolute;inset:0}
.showcase-bg .img{position:absolute;inset:0;opacity:0;transition:opacity .9s var(--ease),transform 1.6s var(--ease);transform:scale(1.04)}
.showcase-bg .img.on{opacity:1;transform:none}
.showcase-bg::after{content:"";position:absolute;inset:0;background:rgba(10,14,20,.45);z-index:1}
.showcase-cols{position:relative;z-index:3;display:grid;grid-template-columns:repeat(3,1fr);height:100%;padding:0 var(--m)}
.showcase-cols a{display:flex;align-items:center;justify-content:center;text-align:center;padding:0 20px}
.showcase-cols h3{color:var(--cream-50);transition:color .5s}
.showcase-cols a:hover h3,.showcase-cols a:focus-visible h3{color:var(--cream)}
.showcase .link{position:absolute;z-index:3;left:50%;bottom:30px;transform:translateX(-50%)}

/* CTA + pied de page */
.cta-zone{position:relative;overflow:hidden;margin-top:100px}
.cta-bg{position:absolute;inset:0}
.cta-bg img{width:100%;height:100%;object-fit:cover}
.cta-bg::after{content:"";position:absolute;inset:0;background:rgba(10,14,20,.42)}
.cta{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;text-align:center;padding:150px var(--m) 90px}
.cta h2{max-width:520px;font-size:60px;font-weight:500;letter-spacing:-.04em;line-height:.9;text-transform:uppercase;margin-top:30px}
.cta-links{display:flex;gap:30px;margin-top:40px}
.footer-card{position:relative;z-index:2;margin:0 var(--m);background:var(--bg2);padding:50px 50px 0;display:grid;grid-template-columns:1fr 1fr;column-gap:20px}
.footer-card .f-logo{font-size:30px;font-weight:500;letter-spacing:-.04em;line-height:.9}
.footer-card .f-addr{font-style:normal;margin-top:20px;max-width:200px;color:var(--cream-70)}
.footer-card .f-contact{margin-top:28px;display:flex;flex-direction:column;gap:8px;font-size:18px;font-weight:500}
.footer-card .f-menu{padding-left:10px}
.footer-card .f-menu .label{color:var(--cream-70);text-transform:uppercase}
.footer-card .f-menu ul{margin-top:18px}
.footer-card .f-menu li a{font-size:28px;font-weight:500;letter-spacing:-.03em;line-height:1.2;text-transform:uppercase}
.footer-card .f-menu li a:hover{opacity:.55}
.f-bottom{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:70px;padding:30px 0 40px;border-top:1px solid var(--line)}
.f-socials{display:flex;gap:30px}
.f-socials a{font-size:18px;font-weight:500;text-decoration:underline;text-underline-offset:3px}
.f-bottom .copy{color:var(--cream)}
.giant{position:relative;z-index:2;font-size:clamp(120px,30.9vw,445px);font-weight:500;letter-spacing:-.06em;line-height:.8;text-transform:uppercase;text-align:center;margin:40px 0 0;padding-bottom:.02em;color:var(--cream);user-select:none}

/* ---------- En-têtes de pages ---------- */
.page-head{padding:200px var(--m) 0;text-align:center;display:flex;flex-direction:column;align-items:center}
.page-head .label{margin-bottom:22px}
.page-head h1{max-width:760px}
.page-head .sub{margin-top:30px;color:var(--muted)}
.page-head.left{text-align:left;align-items:flex-start}
.page-head.left .head-row{display:flex;justify-content:space-between;align-items:flex-end;width:100%;gap:30px;margin-top:24px}
.page-head.left h1{max-width:760px}
.wide{margin:70px var(--m) 0}
.wide .img{aspect-ratio:1400/933}
.intro-text{max-width:400px;margin:90px auto 0;color:var(--muted);font-size:18px;line-height:1.4;text-align:left}

/* ---------- Grille villas ---------- */
.v-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px 20px;padding:0 var(--m)}
.v-card .img{aspect-ratio:690/462}
.v-card .img img{transition:transform 1.2s var(--ease)}
.v-card:hover .img img{transform:scale(1.04)}
.v-card h3{margin-top:22px}
.v-card .loc{margin-top:12px;color:var(--muted)}
.v-card .desc{margin-top:14px;color:var(--muted)}
.v-card .price{margin-top:18px;display:flex;align-items:baseline;gap:6px;color:var(--muted)}
.v-card .price b{font-size:36px;font-weight:400;letter-spacing:-.02em}

/* ---------- FAQ ---------- */
.faq{display:grid;grid-template-columns:1fr 1fr;gap:40px 20px;padding:0 var(--m)}
.faq-intro h2{margin-top:6px}
.faq-intro p{margin-top:16px;max-width:450px;color:var(--muted)}
.faq-list{padding-left:15px}
.faq-item{border-bottom:1px solid var(--line)}
.faq-item summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 0;cursor:pointer;font-size:18px}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary h3{font-size:18px;font-weight:400}
.faq-item summary .pm{position:relative;width:12px;height:12px;flex:none}
.faq-item summary .pm::before,.faq-item summary .pm::after{content:"";position:absolute;background:var(--cream);transition:transform .35s var(--ease)}
.faq-item summary .pm::before{left:0;right:0;top:5.5px;height:1px}
.faq-item summary .pm::after{top:0;bottom:0;left:5.5px;width:1px}
.faq-item[open] summary .pm{transform:rotate(45deg)}
.faq-item .ans{margin:0 0 22px 18px;padding-left:20px;border-left:1px solid var(--line);color:var(--muted);font-size:16px;line-height:1.5;max-width:600px}

/* ---------- Fiche villa ---------- */
.v-layout{display:grid;grid-template-columns:540px 1fr;gap:69px;padding:0 var(--m);margin-top:60px;align-items:start}
.book-card{position:sticky;top:100px;background:var(--cream);color:var(--ink);padding:50px}
.book-card h2{font-size:36px;font-weight:400;letter-spacing:-.02em}
.book-card .bsub{margin-top:14px;color:var(--ink-60)}
.book-card .bprice{display:flex;align-items:baseline;gap:4px;margin-top:22px;color:var(--ink-60)}
.book-card .bprice b{font-size:58px;font-weight:500;letter-spacing:-.04em;line-height:1;color:var(--ink)}
.book-card .alt{display:block;text-align:center;margin-top:24px}
.book-card .sep{height:1px;background:rgba(10,18,20,.25);margin:24px 30px}
.btn-dark{display:block;width:100%;background:var(--bg2);color:var(--cream);text-align:center;padding:22px 20px;font-size:16px;font-weight:600;letter-spacing:-.03em;text-transform:uppercase;transition:opacity .3s}
.btn-dark:hover{opacity:.85}
.v-main{min-width:0}
.v-main .label{display:block;margin-bottom:22px}
.v-block{margin-bottom:80px}
.carousel{position:relative;aspect-ratio:791/544;overflow:hidden;background:#141922}
.carousel .img{position:absolute;inset:0;opacity:0;transition:opacity .8s var(--ease)}
.carousel .img.on{opacity:1}
.carousel .ctrl{position:absolute;right:20px;bottom:20px;display:flex;gap:10px;z-index:2}
.carousel .ctrl button{width:50px;height:50px;border-radius:50%;background:var(--cream);color:var(--ink);display:grid;place-items:center}
.carousel .ctrl svg{width:20px;height:20px}
.amen{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.amen li{display:flex;align-items:center;gap:18px;border:1px solid var(--line);padding:24px 26px;font-size:16px}
.amen svg{width:20px;height:20px;flex:none}
.desc-text{max-width:500px;font-size:16px;line-height:1.4}
.desc-text p{margin-bottom:1.4em}
.desc-text ul{margin:0 0 1.4em;padding-left:0}
.desc-text li::before{content:"- "}
.quote-mark{font-size:72px;font-weight:700;line-height:.6;height:36px;margin-bottom:20px}
.quote{max-width:600px;font-size:16px;font-weight:600;letter-spacing:-.03em;line-height:1.4}
.quote-by{margin-top:14px;color:var(--muted)}
.others{display:grid;grid-template-columns:repeat(4,275px);justify-content:center;gap:20px;padding:40px var(--m) 0}
.others .img{aspect-ratio:275/258}
.others .slug{margin-top:18px;font-size:14px;color:var(--muted)}
.others h3{margin-top:8px}
.form-light .f-row{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}
.form-light .fld{display:flex;flex-direction:column;margin-top:22px;min-width:0}
.form-light label{font-size:14px;text-transform:uppercase}
.form-light input,.form-light select,.form-light textarea{background:transparent;border:0;border-bottom:1px solid rgba(10,18,20,.25);padding:12px 0;font:400 14px var(--font);color:var(--ink);border-radius:0;width:100%}
.form-light input::placeholder,.form-light textarea::placeholder{color:var(--ink-60)}
.form-light textarea{resize:vertical;min-height:70px}
.form-light .btn-dark{margin-top:30px}
.form-light .consent,.form-dark .consent{display:flex;gap:10px;align-items:flex-start;font-size:12.5px;line-height:1.45;margin-top:22px}
.form-light .consent a,.form-dark .consent a{text-decoration:underline}
.form-light .consent input,.form-dark .consent input{width:16px;height:16px;flex:none;margin-top:1px}
.form-status{margin-top:16px;font-size:14px;min-height:1.2em}
.form-status.err{color:#c4462f}.form-status.ok{color:#2f6b45}
.form-dark .form-status.ok{color:#9fd3a9}
.sent .f-row,.sent .fld,.sent .btn-dark,.sent .send,.sent .consent{display:none!important}
.sent .form-status{font-size:20px;line-height:1.4;padding:20px 0}

/* formulaire sombre (contact / propriétaires) */
.contact-split{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding:0 var(--m)}
.c-info p{max-width:300px;color:var(--muted)}
.c-info ul{margin-top:110px;display:flex;flex-direction:column;gap:18px;padding-left:16px}
.c-info li{display:flex;gap:18px;align-items:flex-start}
.c-info li svg{width:18px;height:18px;margin-top:2px}
.c-info li .a{color:var(--cream-70);max-width:200px}
.c-info li a{font-size:18px;font-weight:500}
.form-dark{padding-left:15px}
.form-dark .f-row{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}
.form-dark .fld{display:flex;flex-direction:column;margin-bottom:22px;min-width:0}
.form-dark label{font-size:14px}
.form-dark input,.form-dark select,.form-dark textarea{background:transparent;border:0;border-bottom:1px solid var(--line);padding:12px 0;font:400 14px var(--font);color:var(--cream);border-radius:0;width:100%}
.form-dark input::placeholder,.form-dark textarea::placeholder{color:var(--muted)}
.form-dark textarea{min-height:90px;resize:vertical}
.form-dark select option{background:var(--bg2)}
.form-dark .send{display:block;margin:30px auto 0;font-size:16px;font-weight:600;letter-spacing:-.03em;text-transform:uppercase;padding:10px 20px}
.form-dark .send:hover{opacity:.7}
.invalid input,.invalid textarea{border-bottom-color:#c4462f!important}

/* ---------- Prestations / propriétaires ---------- */
.carte-head{display:flex;flex-direction:column;align-items:center;text-align:center;margin-bottom:60px}
.carte-head h2{max-width:380px;margin-top:22px}
.p-group{padding:0 var(--m) 0 40px;margin-bottom:50px}
.p-group h3{color:var(--muted);margin-bottom:30px}
.p-items{display:grid;grid-template-columns:1fr 1fr;gap:20px 30px}
.p-items li{border:1px solid var(--line);padding:10px 40px}
.comfort{padding:40px var(--m) 0}
.comfort h2{max-width:650px;margin:0 auto;text-align:center;font-size:55px;font-weight:700;letter-spacing:-.04em;line-height:.9;text-transform:uppercase}
.split-tall{display:grid;grid-template-columns:690px 1fr;gap:20px;padding:0 var(--m);align-items:center}
.split-tall .img{aspect-ratio:690/847}
.split-tall .txt{display:flex;flex-direction:column;align-items:center;text-align:center}
.split-tall .txt h2{font-size:53px;font-weight:500;letter-spacing:-.04em;line-height:.9;text-transform:uppercase}
.split-tall .txt p{max-width:400px;margin-top:22px;color:var(--muted);font-size:18px}
.split-tall .txt .link{margin-top:30px}
.steps{padding:0 var(--m)}
.step{display:grid;grid-template-columns:665px 1fr;gap:70px;align-items:center;margin-bottom:70px}
.step .img{aspect-ratio:665/471}
.step p{margin-top:16px;max-width:350px;color:var(--muted)}

/* ---------- Région ---------- */
.place{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding:0 var(--m);align-items:center}
.place .img{aspect-ratio:690/847;background:transparent}
.place .img img{object-fit:contain}
.place .txt{display:flex;flex-direction:column;align-items:center}
.place h2{max-width:470px;text-align:center;font-size:43px;font-weight:700;letter-spacing:-.04em;line-height:1;text-transform:uppercase}
.place .body{max-width:515px;margin-top:40px;color:var(--muted);font-size:18px;line-height:1.4}
.place .todo{margin-top:30px}
.place .todo strong{color:var(--cream);font-weight:600}
.place .todo ul{margin-top:14px;padding-left:22px;list-style:disc;font-size:16px}
.place .todo li{margin:4px 0}
.place.rev .img{order:2}

/* ---------- Histoire ---------- */
.story-hero{padding:160px var(--m) 0}
.story-hero h1{max-width:560px;margin-top:22px}
.story-grid{display:grid;grid-template-columns:798px 1fr;gap:70px;margin-top:40px;align-items:start}
.story-grid .img{aspect-ratio:798/1037}
.story-grid .txt{display:flex;flex-direction:column;gap:30px;padding-top:120px;color:var(--muted);font-size:24px;letter-spacing:-.02em;line-height:1.4}
.story-grid .txt strong{color:var(--cream);font-weight:600;font-style:italic}
.team-head{display:flex;flex-direction:column;align-items:center;text-align:center;padding:0 var(--m)}
.team-head h2{max-width:600px;margin-top:22px;font-size:65px;font-weight:500;letter-spacing:-.04em;line-height:.9;text-transform:uppercase}
.team-head p{max-width:880px;margin-top:30px}
.team{display:grid;grid-template-columns:584px 584px;gap:70px;justify-content:center;margin-top:100px;align-items:start}
.team figure{margin:0}
.team figure:nth-child(2){margin-top:200px}
.team .img{aspect-ratio:584/626}
.team figcaption{margin-top:24px}
.team figcaption span{display:block;margin-top:8px;max-width:450px}

/* ---------- Mentions / blog ---------- */
.legal{max-width:1400px;margin:60px auto 0;padding:0 var(--m);font-size:14px;color:var(--muted);line-height:1.6}
.legal h2{font-size:14px;font-weight:600;color:var(--cream);margin:26px 0 10px}
.legal p{margin-bottom:10px}
.legal a{text-decoration:underline}
.post-body{max-width:760px;margin:70px auto 0;padding:0 var(--m);font-size:18px;line-height:1.6;color:var(--cream)}
.post-body h2{font-size:36px;font-weight:500;letter-spacing:-.03em;line-height:1.1;margin:1.6em 0 .6em;text-transform:uppercase}
.post-body h3{font-size:24px;font-weight:500;margin:1.4em 0 .5em}
.post-body p,.post-body ul,.post-body ol{margin-bottom:1.1em;color:rgba(217,213,197,.85)}
.post-body ul,.post-body ol{padding-left:1.2em}
.post-body ul{list-style:disc}.post-body ol{list-style:decimal}
.post-body a{text-decoration:underline}
.post-body img{margin:1.4em 0}
.post-body blockquote{margin:1.4em 0;padding-left:20px;border-left:1px solid var(--line);color:var(--muted)}
.post-meta{margin-top:24px;color:var(--muted);font-size:14px;text-transform:uppercase}
.pager{display:flex;justify-content:center;gap:10px;margin-top:60px}
.pager a{width:42px;height:42px;display:grid;place-items:center;border:1px solid var(--line)}
.pager a[aria-current]{background:var(--cream);color:var(--ink)}

/* lightbox */
.lightbox{position:fixed;inset:0;z-index:100;background:rgba(10,14,20,.96);display:flex;align-items:center;justify-content:center}
.lightbox[hidden]{display:none}
.lightbox img{max-width:92vw;max-height:84vh;object-fit:contain}
.lightbox button{position:absolute;width:50px;height:50px;border-radius:50%;background:var(--cream);color:var(--ink);display:grid;place-items:center}
.lightbox svg{width:20px;height:20px}
.lb-close{top:20px;right:20px}.lb-prev{left:20px;top:50%}.lb-next{right:20px;top:50%}

/* ---------- Animations d'apparition (lettres + blocs) ---------- */
.js .rv{opacity:0;transform:translateY(30px);transition:opacity 1s var(--ease),transform 1s var(--ease)}
.js .rv.in{opacity:1;transform:none}
.split-letters .ch{display:inline-block;opacity:0;transform:translateY(.35em);transition:opacity .6s var(--ease),transform .8s var(--ease)}
.split-letters .w{display:inline-block;white-space:nowrap}
.split-letters.in .ch{opacity:1;transform:none}
.js .img-rv img{transform:scale(1.12);transition:transform 1.6s var(--ease)}
.js .img-rv.in img{transform:none}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.js .rv,.split-letters .ch{opacity:1;transform:none}.js .img-rv img{transform:none}}

/* ---------- Tablette ---------- */
@media (max-width:1200px){
  .t-hero{font-size:96px}.t-h1{font-size:72px}
  .duo{grid-template-columns:1fr 1fr;max-width:900px;margin-left:auto;margin-right:auto}
  .v-layout{grid-template-columns:420px 1fr;gap:40px}
  .others{grid-template-columns:repeat(2,1fr)}
  .split-tall,.step{grid-template-columns:1fr 1fr;gap:40px}
  .story-grid{grid-template-columns:1fr 1fr;gap:40px}
  .team{grid-template-columns:1fr 1fr;gap:40px;padding:0 var(--m)}
  .arrow.prev{left:20px}.arrow.next{right:20px}
}
/* ---------- Mobile (relevé à 390 px) ---------- */
@media (max-width:809px){
  :root{--m:12px}
  body{font-size:14px}
  .logo{top:27px;font-size:28px}
  .nav-box{top:12px;height:52px;gap:14px;padding:4px 4px 4px 16px}
  .nav-box .book{font-size:15px}
  .burger{width:56px;height:44px}
  .burger span{left:18px;right:18px}.burger span:first-child{top:18px}.burger span:last-child{top:25px}
  .menu-open .burger span:first-child,.menu-open .burger span:last-child{top:22px}
  .menu-panel{width:100%;padding:110px 24px 34px}
  .t-hero{font-size:52px}.t-h1{font-size:48px}.t-h1-s{font-size:44px}.t-display{font-size:40px}.t-section{font-size:42px}
  .t-xl{font-size:40px}.t-l{font-size:29px}.t-m{font-size:29px}.t-36{font-size:24px}.t-24{font-size:18px}.t-21{font-size:16px}
  .hero-inner{padding-top:200px}
  .hero-text{max-width:300px;font-size:14px}
  .duo{margin-top:50px;gap:12px}
  .excellence-text{font-size:14px;margin-top:40px}
  .split,.split.rev,.place,.place.rev,.split-tall,.step,.faq,.contact-split,.story-grid,.v-layout{grid-template-columns:1fr}
  .split .img,.split.rev .img,.place.rev .img{order:2}
  .split-text{padding:40px 20px}
  .split-text .lead{font-size:14px}
  .slide blockquote{font-size:22px}
  .arrow{top:auto;bottom:-14px;width:40px;height:40px}
  .arrow.prev{left:0}.arrow.next{right:0}
  .dots{margin-top:30px}
  .mosaic{grid-template-columns:1fr 1fr;gap:12px}
  .mosaic .col{gap:12px}
  .showcase{height:auto;min-height:0}
  .showcase-cols{grid-template-columns:1fr;padding:60px var(--m) 90px;gap:8px}
  .showcase-cols a{padding:30px 0}
  .showcase-cols h3{color:var(--cream)}
  .vlines{display:none}
  .cta h2{font-size:35px}
  .footer-card{grid-template-columns:1fr;margin:0 var(--m);padding:30px 30px 0}
  .footer-card .f-menu{padding:40px 0 0}
  .footer-card .f-menu li a{font-size:24px}
  .f-bottom{flex-direction:column;align-items:flex-start;margin-top:40px}
  .page-head{padding-top:150px}
  .page-head .sub{font-size:16px}
  .page-head.left .head-row{flex-direction:column;align-items:flex-start}
  .wide{margin-top:40px}
  .v-grid{grid-template-columns:1fr;gap:50px}
  .faq-list{padding-left:0}
  .book-card{position:static;padding:30px 24px}
  .book-card .bprice b{font-size:44px}
  .amen{grid-template-columns:1fr 1fr;gap:10px}
  .amen li{padding:16px;gap:10px;font-size:14px}
  .others{grid-template-columns:1fr 1fr;gap:12px}
  .p-group{padding:0 var(--m)}
  .p-items{grid-template-columns:1fr;gap:10px}
  .p-items li{padding:14px 20px}
  .comfort h2,.split-tall .txt h2,.team-head h2{font-size:36px}
  .place h2{font-size:29px}
  .place .body{font-size:14px}
  .story-grid .txt{padding-top:0;font-size:18px}
  .team{grid-template-columns:1fr;padding:0 var(--m)}
  .team figure:nth-child(2){margin-top:0}
  .c-info ul{margin-top:40px}
  .form-dark{padding-left:0}
  .form-light .f-row,.form-dark .f-row{grid-template-columns:1fr}
}
.form-light .consent,.form-dark .consent{text-transform:none;font-size:12.5px}
blockquote.quote{margin:0}
.sec > .faq,.sec > .v-grid,.sec > .contact-split,.sec > .place{padding-left:0;padding-right:0}
.sec > .place + .place{margin-top:0}
.p-group{padding:0 0 0 20px}
@media (max-width:809px){.p-group{padding:0}}
