/* polices auto-hébergées (plus d'appel à Google Fonts) */
@font-face{font-family:"Sorts Mill Goudy";font-style:normal;font-weight:400;font-display:swap;src:url("/assets/fonts/sorts-mill-goudy-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"Sorts Mill Goudy";font-style:italic;font-weight:400;font-display:swap;src:url("/assets/fonts/sorts-mill-goudy-latin-400-italic.woff2") format("woff2")}
@font-face{font-family:"DM Sans";font-style:normal;font-weight:400;font-display:swap;src:url("/assets/fonts/dm-sans-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"DM Sans";font-style:normal;font-weight:500;font-display:swap;src:url("/assets/fonts/dm-sans-latin-500-normal.woff2") format("woff2")}
@font-face{font-family:"DM Sans";font-style:normal;font-weight:600;font-display:swap;src:url("/assets/fonts/dm-sans-latin-600-normal.woff2") format("woff2")}
@font-face{font-family:"DM Sans";font-style:normal;font-weight:700;font-display:swap;src:url("/assets/fonts/dm-sans-latin-700-normal.woff2") format("woff2")}
/* CBR Conciergerie — design system v4 (d'après la maquette validée du 02/09)
   palette : pourpre #7F1734 (marque) · bleu clair #CFE6FF · bleu #7796C5 · blanc · nude #E6E0DB · noir */

:root{--ink:#000000;--aubergine:#000000;--dark:#000000;--paper:#FFFFFF;--white:#FFFFFF;--sand:#E6E0DB;--page:#E6E0DB;--wine:#7F1734;--wine-deep:#640F28;--rose:#CFE6FF;--blue:#7796C5;--nude:#E6E0DB;--line:#E6E0DB;--muted:#5A5A5A;--green:#7796C5;--alert:#C4491F;--r:16px;--r-sm:12px;--r-site:26px;--gut:clamp(18px,4.2vw,64px);--sp:clamp(56px,6.5vw,96px);/* respiration entre sections */
  --sp-sm:clamp(44px,5vw,72px)}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--page);color:var(--ink);line-height:1.65;-webkit-font-smoothing:antialiased}
.site{background:var(--paper)}
@media(max-width:760px){.site{margin:0;border-radius:0}}
h1,h2,h3,.serif{font-family:"Sorts Mill Goudy","Goudy Old Style",Georgia,serif;font-weight:400;letter-spacing:-.005em}
h1{margin:0 0 20px}
h2{margin:0 0 18px}
h3{font-size:clamp(19px,2vw,24px);line-height:1.25;margin:0 0 10px}
p{margin:0 0 16px}
a{color:inherit}
img{max-width:100%;display:block}
.wrap{max-width:var(--large);margin:0 auto;padding:0 var(--gut)}
.narrow{max-width:none}
.section{padding:var(--sp) 0}
.section-sm{padding:var(--sp-sm) 0}
.bg-white{background:var(--paper)}
.bg-paper{background:var(--paper)}
.eyebrow{font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--wine);margin:0 0 16px;font-weight:600}
.lead{color:#2A2A2A}
.muted{color:var(--muted)}
.tiny{font-size:13px;color:var(--muted)}
.kicker{display:block;font-family:"DM Sans",sans-serif;font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;font-weight:600;color:var(--wine);margin-bottom:16px;line-height:1.4}
.hero-in .kicker,.kicker-rose{color:var(--rose)}

/* deux colonnes : label à gauche, contenu à droite */
.two{display:grid;gap:22px}
@media(min-width:900px){.two{grid-template-columns:minmax(220px,1fr) minmax(0,2.3fr);gap:clamp(36px,6vw,96px)}}
.two .col-l .serif{font-size:clamp(26px,2.6vw,36px);line-height:1.12;display:block;margin-top:4px}
.col-r{min-width:0}

/* ---------- barre de progression · bandeau · header ---------- */
.progress{position:fixed;inset:0 auto auto 0;height:2px;width:0;background:var(--wine);z-index:120}
.announce{background:var(--aubergine);text-align:center;font-size:12px;letter-spacing:.16em;text-transform:uppercase;padding:11px 16px}
.header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);border-bottom:1px solid transparent}
.header.stuck{border-bottom-color:var(--line);box-shadow:0 8px 26px rgba(0,0,0,.05)}
.header-in{max-width:var(--large);margin:0 auto;padding:18px var(--gut);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px}
.hnav{display:flex;gap:22px;font-size:14px}
.hnav a{text-decoration:none;position:relative;padding:3px 0}
.hnav a::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:0;transition:width .3s}
.hnav a:hover::after,.hnav a[aria-current="page"]::after{width:100%}

.brand{justify-self:center;text-decoration:none;font-family:"Sorts Mill Goudy","Goudy Old Style",Georgia,serif;font-size:clamp(22px,2vw,28px);white-space:nowrap;display:flex;align-items:center;gap:8px}
.brand svg{width:22px;height:22px;flex:none}
.hcta{justify-self:end}

/* ---------- boutons pilules ---------- */
.btn{display:inline-block;padding:12px 24px;border-radius:999px;font-size:14px;font-weight:500;text-decoration:none;border:1px solid transparent;cursor:pointer;transition:transform .18s,background .22s,color .22s,border-color .22s}
.btn:hover{transform:translateY(-1px)}
.btn-wine{background:var(--wine)}
.btn-wine:hover{background:var(--wine-deep)}
.btn-light{background:#fff}
.btn-light:hover{background:var(--paper)}
.btn-line{border-color:rgba(255,255,255,.55)}
.btn-line:hover{background:#fff;color:var(--ink)}
.btn-dark-line{border-color:rgba(0,0,0,.3);color:var(--ink)}
.btn-dark-line:hover{background:var(--ink);color:#fff}
.link-arrow{font-size:14px;font-weight:500;text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:2px}
:focus-visible{outline:2px solid var(--wine);outline-offset:3px;border-radius:4px}

/* ---------- hero ---------- */
.hero{position:relative;border-radius:var(--r);overflow:hidden;min-height:clamp(420px,43vw,640px);display:flex;align-items:flex-end;margin-top:6px}
.hero-bg{position:absolute;background-size:cover;will-change:transform}
.hero::after{content:"";position:absolute;inset:0}
.hero-in{position:relative;color:#fff}
.hero-in h1{color:#fff;margin-bottom:16px}
.hero-in p{color:rgba(255,255,255,.9);line-height:1.55}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
.hero-panel{background:rgba(0,0,0,.55);backdrop-filter:blur(6px);border-radius:var(--r);padding:clamp(26px,3.4vw,44px);max-width:640px;margin:clamp(24px,4vw,52px)}

/* ---------- bande de chiffres ---------- */
.band{background:var(--aubergine);color:#fff;border-radius:var(--r);overflow:hidden;display:grid;margin-top:16px}
@media(min-width:760px){.band{grid-template-columns:repeat(4,1fr)}}
.band-item{padding:26px clamp(20px,3vw,44px);border-top:1px solid rgba(255,255,255,.1)}
@media(min-width:760px){.band-item{border-top:0;border-left:1px solid rgba(255,255,255,.12)}.band-item:first-child{border-left:0}}
.band-item .n{font-size:12px;letter-spacing:.16em;display:block;margin-bottom:8px;font-weight:600}
.band-item .t{font-size:clamp(16px,1.35vw,18px);line-height:1.35;font-weight:500;display:block}

/* ---------- grille des services ---------- */
.grid-num{display:grid;gap:16px}
@media(min-width:640px){.grid-num{grid-template-columns:repeat(2,1fr)}}
@media(min-width:980px){.grid-num{grid-template-columns:repeat(3,1fr)}}
.tile{border:1px solid var(--line);border-radius:var(--r-sm);background:transparent;transition:border-color .3s,background .3s}

.tile .n{font-size:12px;letter-spacing:.16em;color:var(--wine);display:block;margin-bottom:12px;font-weight:600}
.tile .t{font-family:"DM Sans",sans-serif;font-weight:600;line-height:1.3;margin:0 0 8px;letter-spacing:0}
.tile .t::after{content:" —";font-weight:400}
.tile p{color:var(--muted);margin:0}

/* ---------- duo propriétaires / voyageurs ---------- */
.duo{display:grid;gap:16px}
@media(min-width:820px){.duo{grid-template-columns:1fr 1fr}}
.panel{border-radius:var(--r);padding:clamp(28px,3.4vw,44px);display:flex;flex-direction:column;justify-content:flex-start}
.panel-dark{background:var(--aubergine);color:#FFFFFF}
.panel-dark .eyebrow{color:var(--rose)}
.panel-dark h3{color:#fff;font-size:clamp(26px,2.8vw,36px)}
.panel-dark p{color:#D6D6D6;font-size:15px}
.panel-sand{color:var(--ink)}
.panel-sand .eyebrow{color:var(--wine)}
.panel-sand h3{font-size:clamp(26px,2.8vw,36px)}
.panel-sand p{color:#3A3A3A;font-size:15px}
.panel .btn,.panel .link-arrow{align-self:flex-start;margin-top:auto}
.panel p:last-of-type{margin-bottom:22px}

/* ---------- bande de photos ---------- */
.strip{display:grid;gap:16px}
@media(min-width:700px){.strip{grid-template-columns:repeat(3,1fr)}}
.strip img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:var(--r-sm)}
@media(max-width:699px){.strip img{aspect-ratio:4/3}}

/* ---------- blocs alternés carte / photo ---------- */
.alt{display:grid;gap:16px;margin-bottom:16px}
@media(min-width:860px){.alt{grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);align-items:stretch}.alt.flip{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)}.alt.flip .alt-card{order:2}.alt.flip .alt-photo{order:1}}
.alt-card{border-radius:var(--r);padding:clamp(28px,3.4vw,44px);display:flex;flex-direction:column;justify-content:flex-end;min-height:300px}
.alt-card .n{font-size:12px;letter-spacing:.16em;display:block;margin-bottom:16px;font-weight:600}
.alt-card h3{font-size:clamp(24px,2.5vw,32px)}
.alt-card p{font-size:15px;margin:0}
.alt-dark{background:var(--aubergine);color:#FFFFFF}
.alt-dark .n{color:var(--rose)}
.alt-dark h3{color:#fff}
.alt-dark p{color:#D6D6D6}

.alt-sand .n{color:var(--wine)}
.alt-sand p{color:#3A3A3A}
.alt-photo{border-radius:var(--r);background-size:cover;background-position:center;min-height:300px}

/* ---------- CTA bordeaux ---------- */
.cta-wine{position:relative;background:var(--wine);color:#fff;border-radius:var(--r);padding:clamp(52px,6.5vw,92px) clamp(24px,4vw,60px);text-align:center;overflow:hidden}

.cta-wine h2{color:#fff;margin:0 auto 18px;position:relative;z-index:2;font-size:clamp(32px,3.8vw,50px)}
.cta-wine p{color:rgba(255,255,255,.82);max-width:52ch;position:relative;z-index:2}
.cta-wine .eyebrow,.cta-wine .hero-actions{position:relative;z-index:2}
.cta-wine .hero-actions{justify-content:center;margin-top:18px}
.scene{position:absolute;inset:0;z-index:1;opacity:.45;pointer-events:none}
@media(max-width:860px){.scene{display:none}}

/* ---------- tableaux ---------- */
.table{width:100%;border-collapse:collapse;font-size:14.5px}
.table th,.table td{text-align:left;padding:16px 20px;border-bottom:1px solid var(--line);overflow-wrap:break-word;hyphens:manual}
.table th{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-weight:600}
.table td.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.table tr:last-child td{border-bottom:0}
.table-card{background:var(--white);border:1px solid var(--line);border-radius:var(--r);overflow-x:auto;-webkit-overflow-scrolling:touch}

/* ---------- simulateur ---------- */
.sim{background:var(--sand);border-radius:var(--r);padding:clamp(26px,3.4vw,44px)}
.sim-grid{display:grid;gap:28px}
@media(min-width:900px){.sim-grid{grid-template-columns:1fr 1fr;gap:44px}}
.field{margin-bottom:20px}
.field label{display:block;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:9px;font-weight:600}
.field input,.field select,.field textarea{width:100%;padding:13px 15px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--white);font:inherit;font-size:15px;color:var(--ink)}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--wine);outline:none}
.field textarea{min-height:120px;resize:vertical}
.choices{display:flex;flex-wrap:wrap;gap:8px}
.choice{border:1px solid var(--line);border-radius:999px;padding:10px 17px;font:inherit;font-size:14px;cursor:pointer;transition:all .2s}

.sim-out{background:var(--white);border-radius:var(--r);padding:clamp(24px,3vw,32px)}
.sim-line{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:13px 0;border-bottom:1px solid var(--line)}
.sim-line:last-of-type{border-bottom:0}
.sim-line .k{font-size:14px;color:var(--muted)}
.sim-line .v{font-variant-numeric:tabular-nums;font-size:16px}
.sim-net{margin-top:14px;padding-top:16px;border-top:2px solid var(--ink)}
.sim-net .v{font-family:"Sorts Mill Goudy","Goudy Old Style",Georgia,serif;line-height:1}
.sim-note{font-size:13px;color:var(--muted);margin:18px 0 0;line-height:1.55}

/* ---------- FAQ ---------- */
.faq{border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;font-family:"Sorts Mill Goudy","Goudy Old Style",Georgia,serif;list-style:none;display:flex;justify-content:space-between;gap:20px;align-items:center}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:"DM Sans",sans-serif;font-size:20px;flex:none;transition:transform .25s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq .answer{padding:0 0 22px;max-width:68ch;color:#3A3A3A;font-size:15px}

/* ---------- formulaires ---------- */
.form{background:var(--sand);border-radius:var(--r);padding:clamp(26px,3.4vw,44px)}
.form-grid{display:grid;gap:0 20px}
@media(min-width:680px){.form-grid{grid-template-columns:1fr 1fr}.form-grid .full-w{grid-column:1/-1}}
.pot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-msg{margin-top:16px;font-size:14.5px;display:none;padding:13px 16px;border-radius:var(--r-sm)}
.form-msg.ok{display:block}
.form-msg.ko{display:block;background:rgba(196,73,31,.1);color:var(--alert)}
.consent{font-size:12.5px;color:var(--muted);margin:14px 0 0}

/* ---------- brouillon + légal ---------- */
.draft{background:rgba(196,73,31,.11);border:1px solid rgba(196,73,31,.32);color:#8A3213;border-radius:var(--r-sm);padding:15px 18px;font-size:14px;margin-bottom:34px}
.draft strong{color:var(--alert)}
.legal h2{font-size:clamp(22px,2.6vw,28px);margin-top:40px}
.legal h3{font-size:18px;margin-top:24px}
.legal p,.legal li{font-size:15px;color:#3A3A3A}
.legal ul{padding-left:20px}

/* ---------- footer ---------- */
.footer{background:var(--aubergine);color:#D6D6D6;border-radius:var(--r);padding:clamp(30px,3.6vw,48px) clamp(26px,3.6vw,52px);margin:0 0 22px}
.footer a{color:#D6D6D6;text-decoration:none;transition:color .2s}
.footer a:hover{color:#fff}
.footer-in{display:flex;flex-wrap:wrap;gap:22px;justify-content:space-between;align-items:center}
.footer .brand{justify-self:start;font-size:clamp(22px,2vw,28px)}
.footer nav{display:flex;flex-wrap:wrap;gap:22px;font-size:14px}
.footer-base{margin-top:32px;padding-top:22px;border-top:1px solid rgba(255,255,255,.1);font-size:13px;color:#9A9A9A;text-align:center}
.footer-base span{display:block;margin:4px 0}

/* ---------- reveals ---------- */
.reveal{opacity:0;transform:translateY(18px)}
.reveal.in{opacity:1;transform:none;transition:opacity .75s cubic-bezier(.22,.61,.36,1),transform .75s cubic-bezier(.22,.61,.36,1)}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none}.hero-bg{transform:none!important}.scene{display:none}.btn:hover{transform:none}}
@media(max-width:760px){
  
  .hero{min-height:clamp(380px,86vw,520px)}.hero-panel{margin:14px}
}

/* ---------- v4.1 : d'après la maquette Propriétaires ---------- */
:root{--tan:#E6E0DB;--blue-text:#3F5F94;--large:none;--lecture:none}
.kicker-pill{display:table;padding:7px 14px;border-radius:999px;font-family:"DM Sans",sans-serif;font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;margin-bottom:18px;line-height:1.4}
.pairs{display:grid;gap:16px}
@media(min-width:960px){.pairs{grid-template-columns:1fr 1fr}}
.pair{display:grid;grid-template-columns:1.05fr 1fr;border-radius:var(--r);overflow:hidden}
.pair.flip .pair-card{order:2}.pair.flip .pair-photo{order:1}
.pair-card{padding:clamp(22px,2.4vw,32px);display:flex;flex-direction:column;justify-content:center}
.pair-card .n{font-size:12px;letter-spacing:.16em;font-weight:600;display:block;margin-bottom:12px}
.pair-card .n::after{content:" —"}
.pair-card h3{font-family:"DM Sans",sans-serif;font-weight:600;font-size:clamp(17px,1.5vw,20px);line-height:1.3;margin:0 0 10px;letter-spacing:0}
.pair-card h3::after{content:" —";font-weight:400;opacity:.7}
.pair-card p{font-size:13.5px;line-height:1.55;margin:0}
.pair-photo{background-size:cover;background-position:center;min-height:200px}
.pair-dark{background:var(--aubergine);color:#FFFFFF}.pair-dark .n{color:var(--rose)}.pair-dark h3{color:#fff}.pair-dark p{color:#D6D6D6}
.pair-tan{background:var(--tan);color:var(--ink)}.pair-tan .n{color:var(--wine)}.pair-tan p{color:#2A2A2A}
@media(max-width:600px){.pair{grid-template-columns:1fr}.pair-photo{min-height:190px;order:1}.pair-card{order:2}}
.form{background:var(--tan)}
.form .field input,.form .field select{border-radius:999px;padding:13px 18px;border-color:transparent}
.form .field textarea{border-radius:14px;border-color:transparent}
.form .field label{color:#4A4A4A}

.sim .field label{color:#4A4A4A}

.panel-sand{background:var(--tan)}
.alt-sand{background:var(--tan)}

/* ═══════════ v5 : animations avancées + scène 3D ═══════════ */
.preloader{position:fixed;inset:0;z-index:200;background:var(--aubergine);display:flex;align-items:center;justify-content:center;color:var(--paper)}
.preloader .pre-brand{font-family:"Sorts Mill Goudy","Goudy Old Style",Georgia,serif;font-size:clamp(28px,4vw,48px);opacity:0;letter-spacing:.01em}
.preloader .pre-line{position:absolute;left:50%;bottom:22%;width:0;height:1px;background:var(--rose);transform:translateX(-50%)}
.line{display:block;overflow:hidden;padding-bottom:.12em;margin-bottom:-.12em}
.w{display:inline-block;will-change:transform}
.tilt{transform-style:preserve-3d;transition:transform .35s cubic-bezier(.22,.61,.36,1);will-change:transform}
.tilt.tilting{transition:transform .08s linear}

.cursor{position:fixed;left:0;top:0;width:10px;height:10px;border-radius:50%;background:var(--wine);pointer-events:none;z-index:300;transform:translate(-50%,-50%);transition:width .25s,height .25s,opacity .3s;opacity:0;mix-blend-mode:multiply}
.cursor.hover{width:44px;height:44px;background:rgba(122,19,48,.16)}
@media(pointer:coarse){.cursor{display:none}}
.strip img,.alt-photo,.pair-photo{transition:transform .8s cubic-bezier(.22,.61,.36,1)}
.strip a{display:block;overflow:hidden;border-radius:var(--r-sm)}
.strip a:hover img{transform:scale(1.045)}
.hero-bg{transform-origin:center}

/* section 3D épinglée */
.scene3d{position:relative;height:100vh;min-height:600px;overflow:hidden}
.scene3d-canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.scene3d-copy{position:relative;z-index:2;max-width:520px;height:100%;display:flex;flex-direction:column;justify-content:center;padding:0 var(--gut)}
.scene3d-copy h2{font-size:clamp(30px,3.6vw,48px)}
.scene3d-steps{list-style:none;margin:26px 0 0;padding:0}
.scene3d-steps li{font-size:clamp(16px,1.5vw,20px);padding:11px 0 11px 22px;border-left:2px solid var(--line);color:var(--muted);transition:color .5s,border-color .5s,transform .5s,opacity .5s;opacity:.55}
.scene3d-steps li.on{color:var(--ink);border-left-color:var(--wine);transform:translateX(8px);opacity:1}
.scene3d-hint{position:absolute;right:var(--gut);bottom:28px;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);z-index:2}
@media(max-width:860px){
  .scene3d{min-height:640px}
  .scene3d-copy{justify-content:flex-end;padding-bottom:56px;max-width:none}
  .scene3d-canvas{height:58%}
  .scene3d-hint{display:none}
}
@media(prefers-reduced-motion:reduce){.preloader,.cursor{display:none}.scene3d{height:auto;min-height:0;padding:var(--sp) 0}.scene3d-canvas{display:none}.scene3d-steps li{opacity:1;color:var(--ink)}}

/* ---------- v4.2 : fond continu, header intelligent, animations ---------- */
.bg-white,.bg-paper{background:transparent}
:root{--sp:clamp(56px,6.5vw,96px);--sp-sm:clamp(36px,4.5vw,64px)}
.header{transition:border-color .3s,box-shadow .3s,transform .45s cubic-bezier(.22,.61,.36,1)}
.header.hide{transform:translateY(-100%)}
.hero-scene{position:absolute;inset:0;z-index:1;pointer-events:none}
.hero-in{z-index:2}
.hero::after{z-index:0}
.hero-bg{z-index:0}
@media(max-width:900px){.hero-scene{display:none}}

/* révélation par mots */
.split-ready .w{display:inline-block;overflow:hidden;vertical-align:bottom;padding-bottom:.08em;margin-bottom:-.08em}
.split-ready .w>span{display:inline-block;transform:translateY(112%);transition:transform .9s cubic-bezier(.2,.75,.2,1)}
.split-ready.in .w>span{transform:none}
.split-ready .kicker,.split-ready .kicker-pill{opacity:0;transform:translateY(8px);transition:opacity .6s,transform .6s}
.split-ready.in .kicker,.split-ready.in .kicker-pill{opacity:1;transform:none}

/* révélation des images */
.reveal-img{clip-path:inset(0 0 100% 0);transform:scale(1.12);transition:clip-path 1.1s cubic-bezier(.2,.75,.2,1),transform 1.4s cubic-bezier(.2,.75,.2,1)}
.reveal-img.in{clip-path:inset(0);transform:none}
.strip .reveal-img:nth-child(2){transition-delay:.12s}
.strip .reveal-img:nth-child(3){transition-delay:.24s}

/* cartes inclinables */
.tilt{transform-style:preserve-3d;will-change:transform;transition:box-shadow .4s}
.tilt:hover{box-shadow:0 24px 60px rgba(0,0,0,.14)}
.btn{will-change:transform;transition:transform .35s cubic-bezier(.2,.75,.2,1),background .22s,color .22s,border-color .22s}
.band-item .t{transition:transform .4s}
.band-item:hover .t{transform:translateX(4px)}
@media(prefers-reduced-motion:reduce){
  .split-ready .w>span,.split-ready .kicker,.split-ready .kicker-pill{transform:none;opacity:1}
  .reveal-img{clip-path:inset(0);transform:none}
  .header.hide{transform:none}
}

/* ---------- v4.3 : palette officielle ---------- */
a{color:var(--blue)}
.hnav a,.brand,.footer a,.link-arrow,summary,.choice{color:inherit}
.hnav a{color:var(--ink)}

.lead a{color:var(--blue)}
.sim-net .v{color:var(--blue)}
.form-msg.ok{background:rgba(119,150,197,.14);color:#3F5F94}
.kicker-pill{color:var(--ink)}
.hero-in .kicker,.kicker-rose,.band-item .n,.pair-dark .n,.alt-dark .n,.panel-dark .eyebrow{color:var(--rose)}
.panel-dark .btn-line,.cta-wine .btn-line{border-color:rgba(255,255,255,.6)}

.tile{border-color:var(--nude)}
.table-card{border-color:var(--nude)}
.faq,.faq details{border-color:var(--nude)}
.footer{background:#000}
.band{background:#000}
.panel-dark,.alt-dark,.pair-dark,.announce{background:#000}
::selection{background:var(--rose);color:var(--ink)}
.btn-wine{color:#fff}.btn-light{color:var(--wine)}.btn-line{color:#fff}.btn-line:hover,.btn-light:hover{color:var(--ink)}

/* ═══════ v4.4 : équilibre bleu/pourpre, sections compactes, hero physique ═══════ */
:root{--sp:clamp(44px,5.5vw,80px);--sp-sm:clamp(32px,4vw,56px)}
.eyebrow,.kicker,.tile .n,.pair-tan .n,.alt-sand .n,.panel-sand .eyebrow,.panel-blue .eyebrow,.pair-blue .n{color:var(--blue)}
.brand{color:var(--ink)}
.hnav a[aria-current="page"]{color:var(--blue)}
.hnav a::after{background:var(--blue)}
.progress{background:var(--blue)}
.faq summary::after{color:var(--blue)}

.choice:hover{border-color:var(--blue)}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--blue)}
.tile:hover{border-color:var(--blue);background:rgba(119,150,197,.06)}
.tile .t::after{color:var(--blue)}
.pair-card h3::after,.pair-card .n::after{color:inherit}
.legal a{color:var(--blue)}
:focus-visible{outline-color:var(--blue)}
.cta-wine{background:var(--blue)}
.cta-wine .eyebrow{color:rgba(255,255,255,.8)}

.cta-wine .btn-line{border-color:rgba(255,255,255,.7)}
.panel-blue{background:var(--rose);color:var(--ink)}
.panel-blue h3{font-size:clamp(26px,2.8vw,36px)}
.panel-blue p{color:#1F2A3A;font-size:15px}
.pair-blue{background:var(--rose);color:var(--ink)}
.pair-blue p{color:#1F2A3A}
.sim{background:var(--rose)}
.sim .field label,.form .field label{color:#3A4655}
.sim-net{border-top-color:var(--blue)}
.band-item .n{color:var(--rose)}
.kicker-pill{background:var(--rose)}

.link-arrow{color:var(--blue)}
.panel-dark .btn-line{border-color:rgba(207,230,255,.55)}
.announce{color:#CFE6FF}
.hero-scene,.scene{display:none}

/* en-têtes de section empilés (plus de colonne vide) */
.sec-head{max-width:var(--lecture);margin-bottom:34px}
.sec-head .lead{margin:0}
.section+.section{padding-top:0}

.section+.section-sm{padding-top:0}

/* hero : carte physique qui suit le curseur + reflet */
.hero{transform-style:preserve-3d;transition:transform .6s cubic-bezier(.2,.75,.2,1);will-change:transform}
.hero.live{transition:transform .12s linear}
.hero-glare{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:0;transition:opacity .5s}
.hero:hover .hero-glare{opacity:1}
.hero-in{transform:translateZ(40px)}
@media(prefers-reduced-motion:reduce){.hero{transform:none!important}.hero-glare{display:none}}
.panel-blue .link-arrow,.pair-blue a{color:var(--ink)}
.cta-wine .btn-light{color:#3F5F94;font-weight:600}

/* ═══════ v5 : sections colorées pleine largeur, densité, éléments graphiques officiels ═══════ */
:root{--sp:clamp(48px,5.5vw,80px);--sp-sm:clamp(36px,4vw,60px)}
.section+.section,.section-sm+.section,.section+.section-sm{padding-top:var(--sp)}
.section-sm+.section{padding-top:var(--sp)}
.s-white{background:#fff}
.s-nude{background:var(--nude)}
.s-blue{background:var(--rose)}
.s-black{background:#000;color:#fff}
.s-black .eyebrow{color:var(--rose)}
.s-black h2,.s-black h3{color:#fff}
.s-black .lead{color:#D6D6D6}
.s-blue .eyebrow{color:#3F5F94}
.s-blue .lead{color:#1F2A3A}
.s-nude .tile{background:#fff;border-color:transparent}
.s-blue .tile{background:#fff;border-color:transparent}
.s-nude .table-card,.s-blue .table-card{border-color:transparent}
.s-nude .form,.s-blue .form{background:#fff}
.s-nude .sim{background:var(--rose)}
.s-blue .sim{background:#fff}
.s-blue .sim-out{background:var(--nude)}
.s-black .faq,.s-black .faq details{border-color:rgba(255,255,255,.14)}
.s-black .faq summary,.s-black .faq .answer{color:#fff}
.s-nude .faq,.s-nude .faq details{border-color:rgba(0,0,0,.14)}
.panel-white{background:#fff;color:var(--ink)}
.panel-white .eyebrow{color:var(--blue)}
.panel-white h3{font-size:clamp(26px,2.8vw,36px)}
.panel-white p{color:#2A2A2A;font-size:15px}
.panel-white .link-arrow{color:var(--blue)}

/* logo officiel */
.brand img{height:44px;width:auto;display:block}
.footer .brand img{height:40px}
.footer .brand{color:#fff}
/* éléments graphiques : clé, stickers */
.deco-key{display:block;width:clamp(90px,9vw,130px);height:auto;margin-top:28px;opacity:.95;transform:rotate(-8deg);transform-origin:top left}
.hero-sticker{position:absolute;z-index:2;transform:rotate(-10deg);filter:drop-shadow(0 10px 24px rgba(0,0,0,.35));transition:transform .5s cubic-bezier(.2,.75,.2,1)}
.hero:hover .hero-sticker{transform:rotate(-4deg) translateY(-4px)}
@media(max-width:760px){.hero-sticker{display:none}}
.strip-wrap{position:relative}
.strip-sticker{position:absolute;right:-8px;top:-46px;width:120px;transform:rotate(12deg);z-index:2;pointer-events:none}
@media(max-width:900px){.strip-sticker{display:none}}
.cta-sticker{position:absolute;left:clamp(16px,3vw,44px);top:clamp(16px,3vw,44px);width:clamp(80px,7vw,110px);transform:rotate(-12deg);z-index:2;opacity:.95}
@media(max-width:900px){.cta-sticker{display:none}}

/* "Notre métier" : colonne gauche remplie, plus de vide */
.metier{display:grid;gap:26px;align-items:start}
@media(min-width:900px){.metier{grid-template-columns:minmax(220px,1fr) minmax(0,2.2fr);gap:clamp(36px,6vw,96px)}}
.metier .serif{font-size:clamp(28px,2.8vw,40px);line-height:1.1;display:block;margin-top:4px}
.stats-mini{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:26px}
.stats-mini div{background:#fff;border-radius:var(--r-sm);padding:16px 18px}
.stats-mini b{display:block;font-family:"Sorts Mill Goudy","Goudy Old Style",Georgia,serif;font-weight:400;font-size:clamp(24px,2.4vw,32px);line-height:1;color:var(--blue)}
.stats-mini span{font-size:12.5px;color:var(--muted);display:block;margin-top:6px}
@media(max-width:560px){.stats-mini{grid-template-columns:1fr}}

/* densité : hero un peu moins haut, panneaux et paires compacts */
.hero{min-height:clamp(400px,40vw,580px)}
.panel{min-height:240px}
.pair{min-height:230px}

.s-black .panel-blue h3,.s-black .panel-white h3,.s-black .panel-blue p,.s-black .panel-white p{color:var(--ink)}
.s-black .panel-blue .eyebrow,.s-black .panel-white .eyebrow{color:var(--blue)}
.s-black .panel-blue p{color:#1F2A3A}
.brand img{height:52px}
@media(max-width:760px){.brand img{height:38px}}

/* ---------- typographie : Goudy (titres) + DM Sans (texte) ---------- */
h1,h2,h3,.serif{font-family:"Sorts Mill Goudy","Goudy Old Style",Georgia,serif;letter-spacing:0}
h1{font-size:clamp(38px,4.9vw,62px);line-height:1.04}
h2{line-height:1.1}

.sim-net .v{font-size:clamp(30px,3.2vw,40px)}
body{font-family:"DM Sans",system-ui,-apple-system,"Segoe UI",sans-serif;font-size:16px}
.tile .t,.pair-card h3{font-family:"DM Sans",sans-serif}
.skip{position:absolute;left:-9999px;top:8px;background:#000;color:#fff;padding:10px 16px;border-radius:999px;z-index:300;font-size:14px;text-decoration:none}
.skip:focus{left:12px}
.footer-zone{font-size:11.5px;color:#7A7A7A;margin-top:10px}

/* ═══════ v6.1 : page Voyageurs orientée réservation, charte sur toutes les pages ═══════ */
.lodgings{display:grid;gap:18px}
.lodging{display:grid;border-radius:var(--r);overflow:hidden;background:var(--nude)}
@media(min-width:860px){.lodging{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}.lodging:nth-child(even) .lodging-photo{order:2}}
.lodging-photo{background-size:cover;background-position:center;min-height:300px}
.lodging-body{padding:clamp(24px,3vw,40px);display:flex;flex-direction:column}
.lodging-body h3{font-size:clamp(28px,3vw,40px);margin-bottom:10px}
.lodging-body>p{color:#2A2A2A;font-size:15px}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 20px}
.chip{background:#fff;border-radius:999px;padding:7px 13px;font-size:12.5px;font-weight:500}
.lodging-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:auto}
.lodging-actions .link-arrow{margin-left:4px}
.steps-wrap{position:relative}
.steps-key{position:absolute;right:calc(var(--gut) - 10px);top:-120px;width:clamp(70px,6vw,96px);transform:rotate(14deg);pointer-events:none;opacity:.9}
@media(max-width:900px){.steps-key{display:none}}
.deco-wrap{position:relative}
.deco-key-right{position:absolute;right:clamp(12px,3vw,48px);top:clamp(24px,3vw,44px);width:clamp(60px,5.5vw,90px);transform:rotate(12deg);opacity:.85;pointer-events:none}
@media(max-width:900px){.deco-key-right{display:none}}
.form-sticker{position:absolute;pointer-events:none}
@media(max-width:900px){.form-sticker{display:none}}
.hero-panel{display:none}

/* ═══════ v6.2 : champs toujours visibles, tampon cadré ═══════ */
.field input,.field select,.field textarea{
  background:#fff;border:1px solid #C2C8D4;color:var(--ink);box-shadow:inset 0 1px 2px rgba(0,0,0,.03)}
.form .field input,.form .field select,.form .field textarea{border-color:#C2C8D4}
.field input:focus,.field select:focus,.field textarea:focus{
  border-color:var(--blue);box-shadow:0 0 0 3px rgba(119,150,197,.2);outline:none}
.field input::placeholder,.field textarea::placeholder{color:#8A8A8A}
.field select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%237796C5' stroke-width='1.6'%3E%3Cpath d='M4 6l4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;background-size:16px;padding-right:44px}
.choice{border-color:#C2C8D4}
.form-sticker{top:auto;right:16px;bottom:16px;width:86px;transform:rotate(8deg)}
.s-blue .form .field input,.s-blue .form .field select,.s-blue .form .field textarea,
.s-white .form .field input,.s-white .form .field select,.s-white .form .field textarea,
.s-blue .sim .field input,.s-white .sim .field input{background-color:#FAFAFA;background-image:none}
.field select{background-color:#fff}
.s-blue .form .field select,.s-white .form .field select{
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%237796C5' stroke-width='1.6'%3E%3Cpath d='M4 6l4 4 4-4'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 16px center;background-size:16px}
.consent{max-width:calc(100% - 120px)}
.form-sticker{opacity:.4}
.choice{background:#fff;color:var(--ink)}
.choice[aria-pressed="true"]{background:var(--blue);border-color:var(--blue);color:#fff;font-weight:600}

/* ═══════ v7 : hero pleine largeur, cadre supprimé ═══════ */
body{background:#fff}
.site{max-width:none;margin:0;border-radius:0;box-shadow:none;overflow:visible}
.hero,.hero-full{border-radius:0;margin:0;min-height:clamp(560px,78vh,820px);align-items:flex-end}
.hero-bg{inset:-4% 0;background-position:center}

.hero-in{max-width:var(--large);margin:0 auto;width:100%;padding:0 var(--gut) clamp(44px,6vw,84px)}
.hero-in h1{font-size:clamp(40px,5.4vw,72px)}
.hero-in p{font-size:clamp(16px,1.4vw,18px)}
.hero-sticker{right:clamp(20px,4vw,72px);bottom:clamp(20px,4vw,64px);width:clamp(92px,8vw,132px)}
.hero-glare{background:radial-gradient(680px circle at var(--gx,50%) var(--gy,50%),rgba(255,255,255,.14),rgba(255,255,255,0) 60%)}
.hero{transform:none!important}
.strip-full{padding:0}
.strip-full .strip{gap:2px}

@media(max-width:760px){
  .hero,.hero-full{min-height:clamp(440px,68vh,560px)}
  .hero-in h1{font-size:clamp(32px,8vw,42px)}
}

/* ═══════ v7.1 : guides et articles ═══════ */
.cards-3{display:grid;gap:18px}
@media(min-width:900px){.cards-3{grid-template-columns:repeat(3,1fr)}}
.cards{display:grid;gap:18px}
@media(min-width:820px){.cards{grid-template-columns:repeat(2,1fr)}}
.card-guide{background:#fff;border:1px solid var(--nude);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column}
.s-nude .card-guide,.s-blue .card-guide{border-color:transparent}
.card-guide-photo{display:block;aspect-ratio:16/10;background-size:cover;background-position:center}
.card-guide-body{padding:24px 26px 28px;display:flex;flex-direction:column;flex:1}
.card-guide-body h2,.card-guide-body h3{font-size:clamp(21px,2vw,26px);line-height:1.2;margin:0 0 10px}
.card-guide-body a{text-decoration:none;color:inherit}
.card-guide-body h2 a:hover,.card-guide-body h3 a:hover{color:var(--blue)}
.card-guide-body p{font-size:14.5px;color:var(--muted)}
.card-guide-body .link-arrow{margin-top:auto;align-self:flex-start;color:var(--blue)}

.hero-article .hero-in h1{max-width:22ch;font-size:clamp(32px,4.2vw,56px)}
.article{max-width:var(--lecture)}
.article h2{font-size:clamp(24px,2.6vw,32px);margin:44px 0 14px}
.article p{font-size:17px;line-height:1.72;color:#2A2A2A}
.article .faq{margin-top:8px}
.bcrumb{font-size:12.5px;color:var(--muted);margin-bottom:8px}
.bcrumb a{color:var(--blue);text-decoration:underline;text-underline-offset:3px}
.bcrumb span{margin:0 6px;opacity:.5}
.article-cta{background:var(--nude);border-radius:var(--r);padding:clamp(26px,3vw,38px);margin:44px 0 26px}
.article-cta h3{font-size:clamp(24px,2.6vw,32px);margin-bottom:10px}
.article-cta p{font-size:15px}
.article-cta .hero-actions{margin-top:18px}
.strip-full .sec-head,.strip-full .strip-sticker{padding-left:var(--gut);padding-right:var(--gut)}
.strip-full .strip-sticker{right:var(--gut);padding:0}
.hero-article{min-height:clamp(340px,44vh,460px)}
.hero-article::after{background:linear-gradient(180deg,rgba(0,0,0,.5) 0%,rgba(0,0,0,.35) 40%,rgba(0,0,0,.82) 100%)}
.hero-article .hero-bg{filter:saturate(.92)}
.hero-short::after{background:linear-gradient(180deg,rgba(0,0,0,.42) 0%,rgba(0,0,0,.2) 40%,rgba(0,0,0,.78) 100%)}

/* ═══════ v7.2 : Google Business ═══════ */
.gbiz{display:grid;gap:18px}
@media(min-width:900px){.gbiz{grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);align-items:stretch}}
.gcard{background:#fff;border:1px solid var(--nude);border-radius:var(--r);padding:clamp(26px,3vw,38px);display:flex;flex-direction:column}
.s-nude .gcard,.s-blue .gcard{border-color:transparent}
.gcard .glogo{display:flex;align-items:center;gap:10px;font-weight:600;font-size:14px;color:var(--muted);margin-bottom:18px}
.gcard .glogo svg{width:20px;height:20px;flex:none}
.gscore{display:flex;align-items:baseline;gap:12px;margin-bottom:6px}
.gscore b{font-family:"Sorts Mill Goudy",Georgia,serif;font-weight:400;font-size:clamp(40px,5vw,60px);line-height:1}
.gstars{color:#F5B301;font-size:19px;letter-spacing:2px}
.gcount{font-size:14px;color:var(--muted);margin:0 0 20px}
.gcard .hero-actions{margin-top:auto}
.gmap{position:relative;border-radius:var(--r);overflow:hidden;min-height:320px}
.gmap iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.gmap-facade{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;color:#fff;text-align:center;padding:24px;cursor:pointer;border:0;font:inherit;width:100%}
.gmap-facade span{font-size:14px;max-width:34ch;color:rgba(255,255,255,.9)}
.gmap-facade .btn{pointer-events:none}
.reviews{display:grid;gap:16px;margin-top:18px}
@media(min-width:820px){.reviews{grid-template-columns:repeat(3,1fr)}}
.review{background:#fff;border:1px solid var(--nude);border-radius:var(--r);padding:24px 26px}
.s-nude .review{border-color:transparent}
.review .gstars{font-size:15px;margin-bottom:10px}
.review p{font-size:14.5px;line-height:1.6;color:#2A2A2A}
.review .who{font-size:13px;color:var(--muted);margin:12px 0 0;font-weight:500}
.gmap{background:#4A4A4A}
.gmap-facade{background:linear-gradient(rgba(0,0,0,.25),rgba(0,0,0,.45))}
.gmap-facade .btn{background:#fff;color:var(--wine);font-weight:600;padding:12px 24px;border-radius:999px;display:inline-block}
.gscore b{color:var(--ink)}
.gscore b[data-note]:empty::before,.gscore b[data-note]{letter-spacing:-.02em}

/* ═══════ v7.3 : lisibilité mobile ═══════ */
@media(max-width:760px){
  .hero::after{background:linear-gradient(180deg,rgba(0,0,0,.30) 0%,rgba(0,0,0,.52) 46%,rgba(0,0,0,.86) 100%)}
  .hero-in{padding-bottom:clamp(30px,7vw,48px)}
  .hero-in h1{font-size:clamp(30px,7.6vw,38px);line-height:1.08;text-shadow:0 2px 18px rgba(0,0,0,.45)}
  .hero-in p{font-size:15px;color:rgba(255,255,255,.94);text-shadow:0 1px 12px rgba(0,0,0,.5)}
  .hero-actions{gap:10px}
  .hero-actions .btn{width:100%;justify-content:center;text-align:center}
  .deco-key{width:64px;margin-top:20px}
  .steps-key,.deco-key-right,.form-sticker,.strip-sticker,.cta-sticker{display:none}
  .announce{font-size:10.5px;line-height:1.5;padding:9px 14px}
  .stats-mini{gap:10px}
  .article h2{margin-top:34px}
  .lodging-actions .btn{width:100%;justify-content:center}
  .gbiz .hero-actions .btn{width:100%;justify-content:center}
}
@media(max-width:400px){
  .hero-in h1{font-size:29px}
  .kicker-pill{font-size:10px;padding:6px 12px}
}

/* ═══════ v7.4 : menu mobile ═══════ */
.burger{display:none;width:44px;height:44px;border:0;background:transparent;padding:0;cursor:pointer;align-items:center;justify-content:center}
.burger span{display:block;width:22px;height:1.5px;background:var(--ink);position:relative;transition:background .2s}
.burger span::before,.burger span::after{content:"";position:absolute;left:0;width:22px;height:1.5px;background:var(--ink);transition:transform .32s cubic-bezier(.2,.75,.2,1)}
.burger span::before{top:-7px}
.burger span::after{top:7px}
body.nav-open .burger span{background:transparent}
body.nav-open .burger span::before{transform:translateY(7px) rotate(45deg)}
body.nav-open .burger span::after{transform:translateY(-7px) rotate(-45deg)}
@media(max-width:760px){
  .header-in{grid-template-columns:auto 1fr auto;gap:8px;align-items:center}
  .burger{display:flex;order:-1;margin-left:-10px}
  .brand{justify-self:center}
  .hcta{justify-self:end}
  .hcta .btn{padding:10px 16px;font-size:13px}
  .hnav{display:flex;position:fixed;inset:0;z-index:150;background:#fff;flex-direction:column;justify-content:center;gap:4px;padding:0 28px;font-size:28px;opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .3s,transform .38s cubic-bezier(.2,.75,.2,1),visibility .3s}
  body.nav-open .hnav{opacity:1;visibility:visible;transform:none}
  body.nav-open{overflow:hidden}
  .hnav a{font-family:"Sorts Mill Goudy",Georgia,serif;padding:14px 0;border-bottom:1px solid var(--nude);opacity:0;transform:translateY(14px);transition:opacity .4s,transform .45s cubic-bezier(.2,.75,.2,1)}
  body.nav-open .hnav a{opacity:1;transform:none}
  body.nav-open .hnav a:nth-child(1){transition-delay:.06s}
  body.nav-open .hnav a:nth-child(2){transition-delay:.11s}
  body.nav-open .hnav a:nth-child(3){transition-delay:.16s}
  body.nav-open .hnav a:nth-child(4){transition-delay:.21s}
  .hnav a::after{display:none}
  .hnav a[aria-current="page"]{color:var(--blue)}
  .hnav::after{content:"Réponse sous 2 h, 8 h à 22 h, 7 j/7";font-family:"DM Sans",sans-serif;font-size:13px;color:var(--muted);margin-top:26px;letter-spacing:.02em}
}
/* sur mobile : pas de flou sur l'en-tête, sinon le menu plein écran s'y trouve enfermé */
@media(max-width:760px){
  .header{backdrop-filter:none;background:rgba(251,250,248,.97)}
  .header-in{grid-template-columns:auto 1fr auto}
  .hnav{background:#FBFAF8;z-index:150}
  .burger{position:relative;z-index:160}
  .header{z-index:160}
}
/* rien ne doit dépasser latéralement (les images révélées sont agrandies avant d'entrer) */
html,body{overflow-x:clip;max-width:100%}
.strip,.strip-full,.hero{overflow:clip}

/* ═══════ largeurs de texte ═══════ */
/* deux largeurs seulement : --large pour les grilles, tableaux et photos,
   --lecture pour tout ce qui se lit. Les valeurs en ch bornent la longueur de ligne. */
.sec-head{max-width:var(--lecture)}
.sec-head h2{max-width:28ch}
.lead{max-width:70ch}
.hero-in h1{max-width:20ch}
.hero-in p{max-width:72ch}
@media(min-width:1200px){
  .sec-head h2{max-width:32ch}
  .hero-in h1{max-width:22ch;font-size:clamp(46px,5.6vw,76px)}
}
@media(min-width:1500px){
  .hero-in h1{max-width:24ch}
}
.metier .serif{max-width:none}
.s-black .lead,.cta-wine p{max-width:70ch}
.cta-wine h2{max-width:26ch;margin-left:auto;margin-right:auto}
.cta-wine p{margin-left:auto;margin-right:auto}

/* bande de photos : hauteur unique, alignée */
.strip-full .strip{gap:2px;grid-template-columns:repeat(3,1fr)}
.strip-full .strip img{aspect-ratio:auto;height:clamp(280px,26vw,420px);width:100%;object-fit:cover;border-radius:0}
@media(max-width:760px){.strip-full .strip{grid-template-columns:1fr}.strip-full .strip img{height:240px}}

/* accueil dans la navigation */
.hnav a.home{display:inline-flex;align-items:center;gap:6px}
/* grand écran : titres plus larges, sur-titre lisible sur photo claire */
@media(min-width:1200px){
  .hero-in h1{max-width:30ch}
  .sec-head h2{max-width:30ch}
}
.hero::after{background:linear-gradient(180deg,rgba(0,0,0,.44) 0%,rgba(0,0,0,.16) 34%,rgba(0,0,0,.74) 100%)}
.hero-in .kicker{color:#fff;text-shadow:0 1px 10px rgba(0,0,0,.6)}
.hero-in h1{text-shadow:0 2px 24px rgba(0,0,0,.4)}
.hero-in p{text-shadow:0 1px 14px rgba(0,0,0,.5)}

/* ═══════ v9 : blocs cliquables sur l'accueil, pages Prestations ═══════ */
a.band-item{display:block;color:inherit;text-decoration:none}
a.band-item .t::after{content:" →";display:inline-block;margin-left:.15em;opacity:0;transform:translateX(-4px);transition:opacity .3s,transform .3s}
a.band-item:hover .t::after{opacity:.8;transform:none}
a.tile{display:flex;flex-direction:column;color:inherit;text-decoration:none}
a.tile .t{display:block}
a.tile p{flex:1}
.tile-more{display:inline-block;margin-top:16px;font-size:13px;font-weight:600;color:var(--blue);align-self:flex-start;border-bottom:1px solid currentColor;padding-bottom:2px;transition:color .25s}
a.tile:hover .tile-more{color:var(--wine)}
a.tile:hover .t{color:var(--blue)}
.h-link{color:inherit;text-decoration:none;transition:color .25s}
.h-link:hover{color:var(--blue)}
.h-link::after{content:" →";display:inline-block;margin-left:.1em;opacity:0;transform:translateX(-6px);transition:opacity .3s,transform .3s;color:var(--blue)}
.h-link:hover::after{opacity:1;transform:none}
.s-black .h-link:hover{color:var(--rose)}
.s-black .h-link::after{color:var(--rose)}
.sec-link{margin:8px 0 0;font-size:14px}
.sec-head .sec-link{margin-top:14px}
.panel-link{position:relative}
.panel-stretch{position:absolute;inset:0;border-radius:var(--r);z-index:0}
.panel-link .btn,.panel-link .link-arrow{position:relative;z-index:1}
.panel-link:hover .link-arrow{color:var(--wine)}
.strip-full .strip a{border-radius:0}
.strip a:nth-child(2) .reveal-img{transition-delay:.12s}
.strip a:nth-child(3) .reveal-img{transition-delay:.24s}
/* pages Prestations */
.steps{list-style:none;padding:0;margin:8px 0 0}
.steps li{display:grid;grid-template-columns:96px minmax(0,1fr);gap:18px;padding:18px 0;border-top:1px solid var(--nude)}
.steps li:last-child{border-bottom:1px solid var(--nude)}
.steps .n{font-family:"DM Sans",sans-serif;font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--blue);padding-top:6px}
.steps b{display:block;font-family:"Sorts Mill Goudy","Goudy Old Style",Georgia,serif;font-weight:400;font-size:22px;line-height:1.2;margin-bottom:4px}
.steps p{margin:0;font-size:15.5px;line-height:1.6;color:#2A2A2A}
@media(max-width:600px){.steps li{grid-template-columns:1fr;gap:6px}.steps .n{padding-top:0}}
.article ul.plain{padding-left:20px;margin:0 0 16px}
.article ul.plain li{font-size:16px;line-height:1.65;color:#2A2A2A;margin-bottom:6px}
.article .table-card{margin:18px 0 8px}
.article .table td{font-size:15px}
.rel{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));margin-top:14px}
.rel a{display:block;text-decoration:none;color:inherit;border:1px solid var(--nude);border-radius:var(--r-sm);padding:16px 18px;transition:border-color .25s,background .25s}
.rel a:hover{border-color:var(--blue);background:rgba(119,150,197,.06)}
.rel .n{display:block;font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:600;color:var(--blue);margin-bottom:6px}
.rel b{font-family:"DM Sans",sans-serif;font-weight:600;font-size:15px;line-height:1.35}
.prest-grid{display:grid;gap:16px}
@media(min-width:640px){.prest-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:980px){.prest-grid{grid-template-columns:repeat(3,1fr)}}
.prest-grid .tile{padding:28px 26px 30px}
.prest-grid .tile .t{font-size:20px}
.mains{display:grid;gap:16px}
@media(min-width:760px){.mains{grid-template-columns:repeat(2,1fr)}}
.mains .tile{background:#fff;border-color:transparent}
.mains .tile .t::after{content:none}
.mains .tile p{color:#2A2A2A;font-size:15px}
.note-contrat{font-size:13.5px;color:var(--muted);margin-top:26px}
.note-contrat a{color:var(--blue)}

/* ═══════ v10 : séquence défilement (scroll-scrub) sur l'accueil ═══════ */
.scrub{position:relative;height:calc(8 * 100vh);height:calc(8 * 100svh);background:#05060a;color:#fff}
.scrub-stage{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;background:#05060a}
.sc{position:absolute;inset:0;margin:0;opacity:0;visibility:hidden;transition:opacity 1s cubic-bezier(.4,0,.2,1),visibility 1s}
.sc.on{opacity:1;visibility:visible}
.sc-img{position:absolute;inset:-6%;background-size:cover;background-position:center;transform:scale(1.16);transition:transform 2.2s cubic-bezier(.16,.7,.3,1);filter:brightness(.58) saturate(.82) contrast(1.04)}
.sc.on .sc-img{transform:scale(1.02)}
.sc-veil{position:absolute;inset:0;background:radial-gradient(120% 78% at 50% 50%,rgba(var(--tint),.10) 0%,rgba(var(--tint),.46) 48%,rgba(4,5,10,.88) 100%)}
.sc-veil::after{content:"";position:absolute;inset:0;opacity:.055;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E")}
.sc-ghost{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(1.1);font-family:"Sorts Mill Goudy","Goudy Old Style",Georgia,serif;font-size:min(58vw,64vh);line-height:1;color:rgba(255,255,255,.085);letter-spacing:-.04em;pointer-events:none;transition:transform 2s cubic-bezier(.16,.7,.3,1),opacity 1.2s;opacity:0}
.sc.on .sc-ghost{transform:translate(-50%,-50%) scale(1);opacity:1}
.sc-cap{position:absolute;inset:0;z-index:3;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:0 clamp(20px,5vw,80px);margin:0}
.sc-cap>*{max-width:var(--lecture)}
.sc-link{display:flex;flex-direction:column;align-items:center;color:#fff;text-decoration:none;padding:clamp(16px,3vh,32px) clamp(16px,3vw,40px);border-radius:24px;transition:background .4s}
.sc-link:hover{background:rgba(255,255,255,.04)}
.sc-n{font-family:"DM Sans",sans-serif;font-size:11.5px;letter-spacing:.36em;text-transform:uppercase;color:rgba(207,230,255,.85);margin-bottom:clamp(18px,2.4vh,30px);opacity:0;transform:translateY(16px);transition:opacity .8s .1s,transform .9s .1s cubic-bezier(.2,.75,.2,1)}
.sc-t{font-family:"Sorts Mill Goudy","Goudy Old Style",Georgia,serif;font-weight:400;line-height:.92;letter-spacing:-.02em;margin:0;color:#fff;font-size:clamp(54px,12.5vw,190px);text-shadow:0 8px 60px rgba(0,0,0,.5);max-width:none}
.sc-intro .sc-t{font-size:clamp(46px,9.5vw,150px)}
.sc-t .w1,.sc-t .w2{display:inline-block;opacity:0;transform:translateY(.42em) rotate(1.5deg);
  transition:opacity .9s cubic-bezier(.2,.75,.2,1),transform 1.05s cubic-bezier(.16,.75,.24,1)}
.sc-t .w1{transition-delay:.2s}
.sc-t .w2{font-style:italic;color:#CFE6FF;transition-delay:.34s}
.sc.on .sc-t .w1,.sc.on .sc-t .w2{opacity:1;transform:none}
.sc-link:hover .sc-t .w2{color:#fff}
.sc-line{display:block;width:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.7),transparent);margin:clamp(20px,3vh,38px) 0 clamp(16px,2.4vh,28px);transition:width 1.4s .55s cubic-bezier(.2,.75,.2,1)}
.sc.on .sc-line{width:min(420px,64vw)}
.sc-p{font-size:clamp(14px,1.25vw,17.5px);line-height:1.66;color:rgba(255,255,255,.8);max-width:54ch;margin:0;opacity:0;transform:translateY(18px);transition:opacity .9s .7s,transform 1s .7s cubic-bezier(.2,.75,.2,1)}
.sc.on .sc-p{opacity:1;transform:none}
.sc-more,.sc-actions{margin-top:clamp(18px,3vh,30px);opacity:0;transform:translateY(14px);transition:opacity .9s .95s,transform 1s .95s cubic-bezier(.2,.75,.2,1)}
.sc.on .sc-more,.sc.on .sc-actions{opacity:1;transform:none}
.sc-more{white-space:nowrap;display:inline-flex;align-items:center;gap:10px;font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;font-weight:500;border:1px solid rgba(255,255,255,.4);border-radius:999px;padding:12px 22px;transition:background .3s,color .3s,border-color .3s,opacity .9s .95s,transform 1s .95s}
.sc-more::after{content:"→";transition:transform .3s}
.sc-link:hover .sc-more{background:#fff;color:#000;border-color:#fff}
.sc-link:hover .sc-more::after{transform:translateX(4px)}
.sc-actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}
.sc-actions .btn{width:auto}
.scrub-rail{position:fixed;right:clamp(16px,2.6vw,34px);top:50%;transform:translateY(-50%);z-index:90;display:flex;flex-direction:column;gap:13px;opacity:0;visibility:hidden;transition:opacity .5s,visibility .5s}
body.scrub-active .scrub-rail{opacity:1;visibility:visible}
.dot{width:7px;height:7px;border-radius:50%;border:0;background:rgba(255,255,255,.3);cursor:pointer;padding:0;transition:.4s}
.dot.on{background:#CFE6FF;height:28px;border-radius:99px}
.scrub-hint{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:90;font-size:10.5px;letter-spacing:.26em;text-transform:uppercase;color:rgba(255,255,255,.55);display:flex;align-items:center;gap:10px;opacity:0;visibility:hidden;transition:opacity .6s,visibility .6s}
body.scrub-active.scrub-start .scrub-hint{opacity:1;visibility:visible}
.scrub-hint i{display:block;width:1px;height:26px;background:linear-gradient(rgba(255,255,255,.7),transparent);animation:scrubfall 2s infinite}
@keyframes scrubfall{0%{opacity:0;transform:translateY(-8px)}40%{opacity:1}100%{opacity:0;transform:translateY(8px)}}
/* en-tête transparent sur la séquence */
.header{transition:background .5s,border-color .3s,box-shadow .3s,transform .45s cubic-bezier(.22,.61,.36,1)}
body.scrub-active .header{background:transparent;backdrop-filter:none;border-bottom-color:transparent;box-shadow:none}
body.scrub-active .hnav a{color:#fff}
body.scrub-active .hnav a::after{background:#fff}
body.scrub-active .hnav a[aria-current="page"]{color:#CFE6FF}
body.scrub-active .brand img{filter:invert(1)}
body.scrub-active .burger span,body.scrub-active .burger span::before,body.scrub-active .burger span::after{background:#fff}
body.scrub-active.nav-open .hnav a{color:var(--ink)}
body.scrub-active.nav-open .hnav a[aria-current="page"]{color:var(--blue)}
body.scrub-active.nav-open .burger span{background:transparent}
body.scrub-active.nav-open .burger span::before,body.scrub-active.nav-open .burger span::after{background:var(--ink)}
body.scrub-active.nav-open .brand img{filter:none}
.band{margin-top:0;border-radius:0}
@media(max-width:760px){
  .scrub-rail{display:none}
  .sc-t{font-size:clamp(46px,15vw,84px)}
  .sc-intro .sc-t{font-size:clamp(40px,12vw,64px)}
  .sc-ghost{font-size:76vw}
  .sc-p{font-size:14.5px}
  .sc-actions .btn{width:100%}
  .sc-more{font-size:11.5px;letter-spacing:.1em;padding:11px 18px}
}
@media(prefers-reduced-motion:reduce){.sc,.sc-img,.sc-ghost,.sc-n,.sc-t .w1,.sc-t .w2,.sc-line,.sc-p,.sc-more,.sc-actions{transition:none}.scrub-hint i{animation:none}}

/* v10.2 : plus de tirets décoratifs */
.tile .t::after,.pair-card h3::after,.pair-card .n::after{content:none}

/* ═══════ v10.3 : processus animés (page Prestations) ═══════ */
.proc{--p:0;position:relative}
.proc-panel{position:relative;border-radius:var(--r);overflow:hidden;min-height:150px}
.s-nude .proc-panel{background:#fff;border:1px solid rgba(0,0,0,.05)}
.s-white .proc-panel{background:var(--nude)}
.proc-step{display:none;grid-template-columns:auto minmax(0,1fr);column-gap:28px;row-gap:4px;align-items:baseline}
.proc-step.on{display:grid;animation:procin .6s cubic-bezier(.2,.75,.2,1)}
.proc-step .d{grid-row:span 2;font-family:"Sorts Mill Goudy","Goudy Old Style",Georgia,serif;font-size:clamp(34px,4vw,56px);line-height:1;color:var(--blue);white-space:nowrap;align-self:start}
.proc-step b{font-family:"Sorts Mill Goudy","Goudy Old Style",Georgia,serif;font-weight:400;font-size:23px;line-height:1.2}
.proc-step p{margin:0;font-size:15.5px;line-height:1.6;color:#2A2A2A;max-width:62ch}
@keyframes procin{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.proc-bar{position:absolute;left:0;right:0;bottom:0;height:3px;background:rgba(0,0,0,.06)}
.proc-bar i{display:block;height:100%;background:var(--blue);transform-origin:left;transform:scaleX(0)}
@keyframes procbar{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.proc:hover .proc-bar i,.proc:focus-within .proc-bar i{animation-play-state:paused}
.proc-node{background:none;border:0;padding:0;cursor:pointer;font:inherit;color:inherit;text-align:center}
.proc-node .k{display:block;width:12px;height:12px;border-radius:50%;background:#fff;border:2px solid rgba(0,0,0,.28);transition:transform .35s,background .35s,border-color .35s,box-shadow .35s}
.proc-node.done .k{background:var(--blue);border-color:var(--blue)}
.proc-node.on .k{background:var(--blue);border-color:var(--blue);transform:scale(1.55);box-shadow:0 0 0 7px rgba(119,150,197,.22)}
.proc-node.star .k{border-color:var(--wine)}
.proc-node.star.done .k,.proc-node.star.on .k{background:var(--wine);border-color:var(--wine);box-shadow:0 0 0 7px rgba(127,23,52,.18)}
.proc-node .d{display:block;font-family:"DM Sans",sans-serif;font-size:12px;letter-spacing:.12em;font-weight:600;color:var(--muted);transition:color .3s}
.proc-node.on .d{color:var(--ink)}
.proc-node.star .d{color:var(--wine)}
/* frise */
.proc-line .proc-track{position:relative;height:118px;margin:8px 60px 10px}
.proc-line .proc-rail{position:absolute;left:0;right:0;top:44px;height:2px;background:rgba(0,0,0,.14)}
.proc-line .proc-fill{position:absolute;left:0;top:0;bottom:0;width:calc(var(--p) * 100%);background:var(--blue);transition:width .9s cubic-bezier(.2,.75,.2,1)}
.proc-line .proc-node{position:absolute;left:var(--x);top:0;transform:translateX(-50%);width:120px}
.proc-line .proc-node .d{height:24px}
.proc-line .proc-node .k{margin:14px auto 0}
.proc-line .proc-node .t{display:block;margin-top:16px;font-size:13px;line-height:1.3;color:var(--muted);transition:color .3s,font-weight .3s}
.proc-line .proc-node.on .t{color:var(--ink);font-weight:600}
/* cycle */
.proc-ring{display:grid;gap:26px;align-items:center}
@media(min-width:880px){.proc-ring{grid-template-columns:400px minmax(0,1fr)}}
.proc-ring .proc-track{position:relative;width:min(380px,84vw);aspect-ratio:1;margin:18px auto}
.proc-ring svg{width:100%;height:100%;display:block;overflow:visible}
.proc-ring .ring-bg{fill:none;stroke:rgba(0,0,0,.12);stroke-width:2}
.proc-ring .proc-arc{fill:none;stroke:var(--blue);stroke-width:4;stroke-linecap:round;transform:rotate(-90deg);transform-origin:50% 50%;transition:stroke-dashoffset .9s cubic-bezier(.2,.75,.2,1)}
.proc-ring .proc-node{position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-50%);width:14px;height:14px}
.proc-ring .proc-node .k{position:absolute;left:1px;top:1px}
.proc-ring .proc-node .d{position:absolute;left:50%;top:50%;transform:translate(calc(-50% + var(--lx)),calc(-50% + var(--ly)));white-space:nowrap;padding:3px 8px;border-radius:999px;background:transparent;transition:background .3s,color .3s}
.proc-ring .proc-node.on .d{background:var(--blue);color:#fff}
.proc-ring .ring-center{position:absolute;inset:30%;display:flex;align-items:center;justify-content:center;text-align:center}
.proc-lab{display:none;flex-direction:column;align-items:center}
.proc-lab.on{display:flex;animation:procin .6s cubic-bezier(.2,.75,.2,1)}
.proc-lab .d{font-family:"Sorts Mill Goudy","Goudy Old Style",Georgia,serif;font-size:clamp(38px,5vw,60px);line-height:1;color:var(--blue)}
.proc-lab .t{margin-top:8px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:600}
.proc-ring .proc-step .d{display:none}
.proc-ring .proc-step{grid-template-columns:1fr}
@media(max-width:720px){
  .proc-line .proc-track{margin:8px 22px 4px;height:70px}
  .proc-line .proc-node{width:44px}
  .proc-line .proc-node .d{font-size:10.5px;letter-spacing:.04em}
  .proc-line .proc-node .t{display:none}
  .proc-step{grid-template-columns:1fr}
  .proc-step .d{grid-row:auto;font-size:34px}
  .proc-panel{padding:20px 20px 22px}
  .proc-ring .proc-node .d{font-size:11px;padding:2px 6px}
}
@media(prefers-reduced-motion:reduce){.proc-step.on,.proc-lab.on{animation:none}.proc-bar{display:none}}

@media(min-width:640px){.prest-grid.grid-4{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1100px){.prest-grid.grid-4{grid-template-columns:repeat(4,1fr)}}

/* tableau comparatif : cartes empilées sur mobile */
@media(max-width:720px){
  table.compare,table.compare tbody,table.compare tr,table.compare td{display:block;width:100%;box-sizing:border-box}
  table.compare tr:first-child{display:none}
  table.compare tr{padding:14px 18px;border-bottom:1px solid var(--nude)}
  table.compare td{border:0;padding:4px 0}
  table.compare td:first-child{font-family:"Sorts Mill Goudy","Goudy Old Style",Georgia,serif;font-size:20px;padding-bottom:8px}
  table.compare td[data-h]::before{content:attr(data-h);display:block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--blue);margin-bottom:2px}
  table.compare td[data-h="Hôtel"]{color:var(--muted)}
}

/* v10.6 : petits textes bleus un cran plus foncés (lisibilité), le bleu de base est inchangé ailleurs */
.eyebrow,.kicker,.tile .n,.pair-tan .n,.alt-sand .n,.panel-sand .eyebrow,.panel-blue .eyebrow,.pair-blue .n,.panel-white .eyebrow,
.link-arrow,.panel-white .link-arrow,.card-guide-body .link-arrow,.tile-more,.rel .n,.steps .n,.proc-node .d,.proc-lab .t,.bcrumb a,.note-contrat a,.legal a,.lead a,.faq summary::after,
.hnav a[aria-current="page"],table.compare td[data-h]::before{color:var(--blue-text)}
.s-black .eyebrow,.panel-dark .eyebrow,.s-black .panel-blue .eyebrow,.s-black .panel-white .eyebrow,.pair-dark .n,body.scrub-active .hnav a[aria-current="page"]{color:var(--rose)}

.sc-skip{margin-top:clamp(18px,3vh,30px);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.55);text-decoration:none;opacity:0;transition:opacity .9s 1.2s,color .3s}
.sc.on .sc-skip{opacity:1}.sc-skip:hover{color:#fff}
.sim-mail{margin-top:18px;padding:18px 20px;border-radius:var(--r-sm);background:rgba(255,255,255,.7);border:1px solid rgba(0,0,0,.06)}
.sim-mail .field{margin-bottom:12px}.sim-mail .consent{margin:10px 0 0;font-size:12.5px}

.lang-bar{margin-top:22px;font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.6);display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.lang-bar a{color:#fff;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.4)}.lang-bar a:hover{border-color:#fff}
.lang-bar strong{color:#CFE6FF;font-weight:600}
.s-black .link-arrow{color:var(--rose)}

/* v10.8 : respiration — sections plus hautes, tuiles plus grandes, bandes photo */
:root{--sp:clamp(72px,8vw,120px);--sp-sm:clamp(56px,6vw,88px)}
.hero-short{min-height:clamp(560px,72vh,800px)}
.sec-head{margin-bottom:clamp(36px,4vw,56px)!important}
.lead{font-size:clamp(17px,1.6vw,19px);line-height:1.6}
h2{font-size:clamp(34px,4vw,52px)}
.tile{padding:34px 32px 36px;overflow:hidden}.tile .t{font-size:22px;margin-bottom:12px}.tile p{font-size:16px;line-height:1.6}
.prest-grid,.grid-num{gap:22px}
.tile-photo{display:block;height:190px;margin:-34px -32px 26px;background-size:cover;background-position:center;transition:transform .6s}
.tile-link:hover .tile-photo{transform:scale(1.03)}
.photo-band{position:relative;height:clamp(340px,54vh,600px);background-size:cover;background-position:center}
.photo-band .cap{position:absolute;left:0;right:0;bottom:0;padding:34px var(--gut) 30px;background:linear-gradient(180deg,rgba(0,0,0,0),rgba(0,0,0,.6));color:#fff}
.photo-band .cap p{max-width:var(--large);margin:0 auto;font-family:"Sorts Mill Goudy",serif;font-size:clamp(24px,2.8vw,38px);line-height:1.15}
.photo-band .cap p em{font-style:italic;color:var(--rose)}
.proc-panel{padding:34px 36px}
.faq summary{font-size:19px;padding:22px 0}
@media(min-width:960px){.proc-ring{grid-template-columns:480px minmax(0,1fr);gap:48px}}
@media(max-width:700px){:root{--sp:clamp(56px,10vw,72px)}.tile{padding:26px 22px 28px}.tile-photo{margin:-26px -22px 20px;height:150px}.photo-band{height:280px}}

/* ---------- cartes graphiques (chiffres France) ---------- */
.chart-grid{display:grid;gap:18px}
@media(min-width:900px){.chart-grid{grid-template-columns:repeat(3,1fr);gap:24px}}
.chart-card{background:#fff;border-radius:var(--r-sm);padding:28px 26px 24px;margin:0;display:flex;flex-direction:column;gap:16px}
.chart-card h3{font-family:"DM Sans",sans-serif;font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--wine);font-weight:600;margin:0}
.chart-card svg{width:100%;height:auto;display:block;overflow:visible}
.chart-card .big{font-family:"Sorts Mill Goudy","Goudy Old Style",Georgia,serif;font-size:clamp(30px,3.2vw,40px);line-height:1;margin:0}
.chart-card figcaption{font-size:14px;color:var(--muted);line-height:1.55;margin-top:auto}

/* ---------- section bordeaux (simulateur) ---------- */
.s-wine{background:var(--wine);color:#fff}
.s-wine .eyebrow{color:rgba(255,255,255,.70)}
.s-wine h2,.s-wine h3{color:#fff}
.s-wine .lead{color:rgba(255,255,255,.86)}
.s-wine .sim{background:var(--rose)}
.s-wine .sim-out{background:#fff}
.s-wine .deco-key-right{opacity:.5}

/* ---------- fiche d'identité (qui tient CBR) ---------- */
.id-card{background:#fff;border-radius:var(--r-sm);padding:6px 24px;margin-top:26px}
.id-line{display:grid;gap:2px;padding:15px 0;border-bottom:1px solid var(--line)}
@media(min-width:620px){.id-line{grid-template-columns:150px 1fr;gap:18px;align-items:baseline}}
.id-line:last-child{border-bottom:0}
.id-line .k{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--wine);font-weight:600}
.id-line .v{font-size:15px;line-height:1.5}

/* ---------- titres : pas de mot orphelin en fin de titre ---------- */
h1,h2,h3,.faq summary,.sec-head h2,.article h2,.article-cta h3,.tile .t{text-wrap:balance}
.lead,.hero-in p,.sim-note,figcaption{text-wrap:pretty}
/* une phrase par ligne dans les chapeaux de section (les <br> du contenu) */
.hero-in p br,.sec-head .lead br{display:inline}

/* ---------- articles : le texte reste lisible dans une page plus large ---------- */
.article p,.article ul.plain li{max-width:72ch}
.article .faq summary{max-width:none}

/* ---------- pages article : titre à gauche, contenu à droite ---------- */
.art-row{display:grid;gap:12px;padding:clamp(26px,3.2vw,46px) 0;border-top:1px solid var(--line)}
.art-row:first-of-type{border-top:0;padding-top:clamp(18px,2vw,26px)}
@media(min-width:1000px){
  .art-row{grid-template-columns:minmax(210px,.75fr) minmax(0,2.15fr);gap:clamp(36px,4vw,68px);align-items:start}
  .art-h h2{position:sticky;top:104px}
}
.art-h h2{margin:0;font-size:clamp(23px,2.3vw,32px);line-height:1.12;text-wrap:balance}
.art-c > *:first-child{margin-top:0}
.art-c p{max-width:72ch;margin-top:0}
.art-c p + p{margin-top:14px}
.art-c .table-card,.art-c .faq{margin-top:4px}
.article .rel,.article .article-cta{margin-top:clamp(28px,3vw,44px)}
.art-c .table{font-size:15px}
.art-c .table td:first-child{width:22%;min-width:150px;font-weight:600}
.s-wine .sim-out{color:var(--ink)}

/* ═══════ v11.11 : passe design — respiration, placeholders photo, corrections ═══════ */
/* placeholders photo : à remplacer par une vraie image (même balise, ajouter style="background-image:url(...)") */
.ph{position:relative;background:repeating-linear-gradient(135deg,#F3F0EC 0 14px,#E9E3DD 14px 28px)}
.ph::before{content:"";position:absolute;inset:10px;border:1.5px dashed #B9AFA6;border-radius:12px;pointer-events:none}
.ph-tag,.ph i{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font:600 11px/1.4 "DM Sans",sans-serif;letter-spacing:.14em;text-transform:uppercase;color:#7A6F66;background:#fff;padding:8px 14px;border-radius:999px;white-space:nowrap;font-style:normal;max-width:calc(100% - 40px);overflow:hidden;text-overflow:ellipsis}
.ph-band{height:clamp(260px,38vh,440px);margin:0}
.ph-band.has-img{background:none}.ph-band.has-img::before,.ph-band.has-img .ph-tag{display:none}
.ph-tile{position:relative;display:block}
.tile-photo.has-img::before,.tile-photo.has-img i{display:none}
.tile-photo.has-img{background-image:var(--img)}
@media(max-width:700px){.ph-band{height:200px}}

/* lecture : lignes plus courtes, paragraphes plus aérés */
.lead{max-width:62ch}
.hero-in p{max-width:56ch}
.faq .answer{max-width:62ch;line-height:1.65}
.tile p{max-width:38ch}
.pair-card p{max-width:40ch}
.panel p{max-width:46ch}
.sim-note{max-width:64ch;line-height:1.6}
.sim-note+.sim-note{margin-top:10px}
.prest-grid,.grid-num{gap:24px}
.duo,.pairs{gap:20px}

/* tableaux : première colonne en repère, cellules moins denses */
.table td{line-height:1.55;vertical-align:top}
.table th,.table td{padding:17px 22px}
.table-card .table td:first-child{font-weight:600;width:30%;min-width:160px}
.table td:first-child .tiny{font-weight:400}
/* mobile : les tableaux à deux colonnes s'empilent (repère au-dessus, contenu dessous) au lieu de se tasser */
@media(max-width:720px){
  .table-card .table:not(.compare),.table-card .table:not(.compare) tbody,.table-card .table:not(.compare) tr,.table-card .table:not(.compare) td{display:block;width:100%;box-sizing:border-box}
  .table-card .table:not(.compare) tr:first-child{display:none}
  .table-card .table:not(.compare) tr{padding:16px 18px;border-bottom:1px solid var(--nude)}
  .table-card .table:not(.compare) tr:last-child{border-bottom:0}
  .table-card .table:not(.compare) td{border:0;padding:0;min-width:0;width:auto}
  .table-card .table:not(.compare) td:first-child{margin-bottom:6px}
  .table-card .table:not(.compare) td.num{text-align:left;white-space:normal}
  .sim-line{flex-direction:column;align-items:flex-start;gap:2px}
}

/* panneaux clairs sur fond noir : le surtitre rose pâle était illisible sur blanc */
.s-black .panel-white .eyebrow,.s-black .panel-blue .eyebrow{color:var(--blue-text)}
.s-black .panel-white .link-arrow,.s-black .panel-blue .link-arrow{color:var(--blue-text)}

/* mention de consentement : pleine largeur quand le sticker est masqué */
.consent{max-width:none}
@media(min-width:901px){.form .consent{max-width:calc(100% - 120px)}}

/* ═══════ v11.12 : charte unifiée + système de largeurs ═══════ */
/* ---- 1. Charte : le logo, un tampon, rien d'autre ----
   Logo noir dans l'en-tête, logo blanc dans le pied de page.
   Tampon pourpre : hero des pages commerciales uniquement, bas droite, calé sur la colonne de contenu.
   La clé n'apparaît que dans le logo. Plus de tampon sur les CTA, les formulaires ou les bandes photo. */
.brand img{height:48px}
@media(max-width:760px){.brand img{height:36px}}
.hero-sticker{position:absolute;z-index:2;width:clamp(96px,7.6vw,124px);height:auto;bottom:clamp(28px,4.2vw,64px);right:var(--gut);transform:rotate(-8deg);opacity:.94;filter:drop-shadow(0 10px 24px rgba(0,0,0,.35));transition:none}
.hero:hover .hero-sticker{transform:rotate(-8deg) translateY(0)}
.hero-article .hero-sticker{display:none}
@media(max-width:760px){.hero-sticker{display:none}}
.cta-sticker,.form-sticker,.strip-sticker,.steps-key,.deco-key-right,.deco-key{display:none!important}
.consent,.form .consent{max-width:none!important}
/* sur-titres et libellés : bleu texte. Bordeaux = boutons, badges, section simulateur. */
.eyebrow,.kicker,.chart-card h3,.id-line .k,.tile .n,.steps .n,.rel .n{color:var(--blue-text)}
.s-wine .eyebrow{color:rgba(255,255,255,.72)}
.s-black .eyebrow,.panel-dark .eyebrow,.pair-dark .n,.alt-dark .n{color:var(--rose)}
.hero-in .kicker{color:#fff}
.pair-card p{font-size:14.5px}

/* ---- 2. Largeurs ----
   --large 1340 : hero, en-tête, pied de page, grilles (tuiles, paires, graphiques, cartes, bandes photo)
   --lecture 1080 : tout ce qui se lit en ligne : tableaux, FAQ, formulaires seuls, CTA final, pages légales
   texte : bornes en ch (déjà en place) */
:root{--lecture:none}
.wrap>.table-card,.wrap>.faq,.wrap>.form,.wrap>.sim-note,.wrap>.note-contrat{max-width:var(--lecture)}
.wrap.narrow{max-width:var(--lecture)}
.cta-wine{max-width:var(--lecture);margin-left:auto;margin-right:auto}
/* sections de lecture : titre à gauche (collant), contenu à droite — même rythme que « Qui tient CBR » */
.lect{display:grid;gap:22px}
@media(min-width:1000px){
  .lect{grid-template-columns:minmax(220px,1fr) minmax(0,2.3fr);gap:clamp(36px,6vw,96px);align-items:start}
  .lect-l{align-self:stretch}
  .lect-l .sec-head{position:sticky;top:104px;margin-bottom:0!important}
  .lect-l .sec-head h2{font-size:clamp(27px,2.4vw,36px);max-width:15ch}
  .lect-l .sec-head .lead{font-size:16px;max-width:30ch}
  .lect-l .sec-head .sec-link{font-size:13.5px}
  .lect-r{min-width:0}
  .lect-r>*{max-width:none}
  .lect-r>.table-card,.lect-r>.faq,.lect-r>.form{margin-top:2px}
}

/* ═══════ v11.15 : lisibilité — polices plus grandes, pages en pleine largeur ═══════ */
/* Règles : texte courant 17 px sur ordinateur (16 px sur téléphone), rien sous 14,5 px pour un texte qui se lit,
   rien sous 12,5 px pour un libellé ; le blanc sur fond noir passe en blanc franc, un cran plus grand.
   Le bleu de la marque ne change pas ; seuls les petits textes et les états (puce sélectionnée) prennent le bleu texte. */
body{font-size:17px;line-height:1.65}
h3{font-size:clamp(21px,2.1vw,26px)}
.lead{font-size:clamp(18px,1.7vw,21px);line-height:1.6}
.hero-in p{font-size:clamp(17px,1.5vw,19.5px)}
.two .col-l .serif{font-size:clamp(28px,2.8vw,40px)}
.metier .serif{font-size:clamp(30px,3vw,44px)}

/* libellés, sur-titres, navigation, boutons, liens */
.eyebrow,.kicker,.chart-card h3{font-size:12.5px;letter-spacing:.16em}
.kicker-pill{font-size:12px}
.announce{font-size:12.5px}
.hnav{font-size:15.5px;gap:24px}
.btn{font-size:15px;padding:13px 26px}
.link-arrow,.sec-link{font-size:15px}
.tile-more{font-size:14.5px}
.tiny{font-size:14px}
.bcrumb{font-size:13.5px}
.lang-bar{font-size:13.5px}

/* bande des engagements (quatre carrés noirs sous l'accueil) */
.band-item{padding:30px clamp(22px,3vw,48px)}
.band-item .n{font-size:13px}
.band-item .t{font-size:clamp(19px,1.5vw,22px);line-height:1.35;font-weight:600;color:#fff}

/* tuiles */
.tile .n{font-size:13px}
.tile .t{font-size:24px}
.tile p{font-size:17px;line-height:1.6;max-width:40ch}
.prest-grid .tile .t{font-size:22px}
.mains .tile p{font-size:17px}

/* paires (carte + photo) : les petits carrés noirs et bleus */
.pair{min-height:250px}
.pair-card{padding:clamp(26px,2.8vw,38px)}
.pair-card .n{font-size:13px}
.pair-card h3{font-size:clamp(20px,1.7vw,24px);line-height:1.3}
.pair-card p{font-size:16.5px;line-height:1.6;max-width:42ch}
.pair-dark p,.panel-dark p,.alt-dark p{color:#ECECEC}

/* panneaux */
.panel-dark p,.panel-white p,.panel-blue p,.panel-sand p{font-size:17px;line-height:1.6}
.alt-card p{font-size:17px}
.s-black .lead{color:#E6E6E6}

/* chiffres clés, graphiques, fiche d'identité */
.stats-mini b{font-size:clamp(28px,2.6vw,36px)}
.stats-mini span{font-size:14.5px;margin-top:8px}
.chart-card figcaption{font-size:15px}
.id-line .k{font-size:12px}
.id-line .v{font-size:16.5px}

/* tableaux, FAQ, étapes, processus */
.table{font-size:16px}
.table th{font-size:12px}
.art-c .table,.article .table td{font-size:16px}
.faq summary{font-size:21px}
.faq .answer{font-size:17px}
.steps .n{font-size:13px}
.steps b{font-size:24px}
.steps p{font-size:17px}
.proc-step b{font-size:25px}
.proc-step p{font-size:17px}
.proc-node .d{font-size:13px}
.proc-line .proc-node .t{font-size:14px}
.rel .n{font-size:12px}
.rel b{font-size:16px}
.note-contrat{font-size:14.5px}

/* simulateur et formulaires */
.field label{font-size:12.5px}
.field input,.field select,.field textarea{font-size:16px}
.choice{font-size:15px;padding:11px 18px}
.choice[aria-pressed="true"]{background:var(--blue-text);border-color:var(--blue-text)}
.sim-line .k{font-size:15.5px}
.sim-line .v{font-size:17px}
.sim-note{font-size:14.5px}
.sim-mail .consent,.consent{font-size:13.5px}
.form-msg{font-size:15px}
.proc-ring .proc-node.on .d{background:var(--blue-text)}

/* guides, articles, pages légales */
.card-guide-body h2,.card-guide-body h3{font-size:clamp(23px,2.1vw,28px)}
.card-guide-body p{font-size:16px}
.article p{font-size:18px}
.article ul.plain li{font-size:17px}
.article-cta p{font-size:16.5px}
.legal h3{font-size:20px}
.legal p,.legal li{font-size:16.5px}
.review p{font-size:16px}
.gmap-facade span{font-size:15px}

/* appel à l'action bleu : blanc franc, texte plus grand (le fond garde le bleu de la marque) */
.cta-wine .eyebrow{color:rgba(255,255,255,.9)}
.cta-wine p{color:#fff;font-size:18px;font-weight:500;max-width:56ch}

/* séquence d'accueil */
.sc-n{font-size:12.5px}
.sc-p{font-size:clamp(16px,1.35vw,19px);color:rgba(255,255,255,.88)}
.sc-more{font-size:13.5px}
.sc-skip{font-size:12.5px}

/* pied de page */
.footer{color:#E0E0E0}
.footer a{color:#E0E0E0}
.footer nav{font-size:15px}
.footer-base{font-size:14px;color:#B0B0B0}
.footer-zone{font-size:13px;color:#9A9A9A}

/* colonnes de lecture (titre collant à gauche) */
@media(min-width:1000px){
  .lect-l .sec-head .lead{font-size:17px}
  .lect-l .sec-head .sec-link{font-size:14.5px}
}

/* téléphone : on garde 16 px de base, le reste suit */
@media(max-width:760px){
  body{font-size:16px}
  .hnav{font-size:28px}
  .hcta .btn{font-size:13.5px;padding:10px 16px}
  .band-item .t{font-size:18px}
  .tile .t{font-size:22px}
  .tile p,.pair-card p,.panel-dark p,.panel-white p,.panel-blue p,.panel-sand p{font-size:16px}
  .table{font-size:15px}
  .faq summary{font-size:19px}
  .faq .answer{font-size:16px}
  .article p{font-size:17px}
  .sc-p{font-size:15.5px}
}

/* écrans moyens (tablette, petit portable) : la navigation reste compacte pour laisser sa place au logo */
@media(min-width:761px) and (max-width:1199px){
  .hnav{font-size:14px;gap:16px}
  .hcta .btn{font-size:14px;padding:11px 20px}
}
.brand img{max-width:none}

/* carré bleu du bas de page : bleu foncé, le texte blanc se lit (contraste 6,4 au lieu de 3) */
.cta-wine{background:var(--blue-text)}

/* emplacements « Photo à venir » : masqués en ligne tant que la photo n'est pas posée
   (pour afficher une photo : ajouter la classe has-img et l'image, comme prévu en v11.11) */
.ph:not(.has-img){display:none!important}

/* simulateur : le montant final reste le chiffre le plus grand du bloc, en bleu foncé */
.sim-net .v{font-size:clamp(32px,3.4vw,44px);color:var(--blue-text)}

/* v11.20 : liens dans le texte distinguables sans la couleur */
.footer-base a,.footer-zone a{text-decoration:underline;text-underline-offset:3px;text-decoration-color:rgba(255,255,255,.35)}

/* v11.23 : bandeau cookies */
.consent{position:fixed;left:16px;right:auto;bottom:16px;z-index:200;width:min(420px,calc(100vw - 32px));margin:0;background:#fff;color:var(--ink);border:1px solid var(--nude);border-radius:14px;box-shadow:0 18px 50px rgba(0,0,0,.16);padding:18px 20px;display:flex;gap:16px;align-items:center;flex-wrap:wrap;font-size:15px;line-height:1.45}
.consent p{margin:0;flex:1 1 100%}.consent a{color:var(--wine);text-decoration:underline;text-underline-offset:3px}
.consent-btns{display:flex;gap:10px;margin-left:auto}.consent button{font:inherit;font-size:14.5px;padding:10px 18px;border-radius:999px;cursor:pointer;border:1px solid var(--ink);background:#fff;color:var(--ink)}
.consent-oui{background:var(--wine)!important;border-color:var(--wine)!important;color:#fff!important}
@media(max-width:600px){.consent{bottom:88px}}
