/* Phronesis IT, feuille de style (version 5 : noir) */
@font-face{font-family:"Jost";font-style:normal;font-weight:300;font-display:swap;src:url(fonts/jost-latin-300-normal.woff2) format("woff2")}
@font-face{font-family:"Jost";font-style:italic;font-weight:300;font-display:swap;src:url(fonts/jost-latin-300-italic.woff2) format("woff2")}
@font-face{font-family:"Jost";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/jost-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Jost";font-style:normal;font-weight:500;font-display:swap;src:url(fonts/jost-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Phronesis Greek";font-style:italic;font-weight:400;font-display:swap;src:url(fonts/eb-garamond-greek-400-italic.woff2) format("woff2")}
@property --a{syntax:"<angle>";inherits:false;initial-value:0deg}

:root{
  --noir:#09090A;
  --noir-2:#0F0F11;
  --noir-3:#16161A;
  --texte:#ECE9E3;
  --texte-2:rgba(236,233,227,.64);
  --texte-3:rgba(236,233,227,.42);
  --champ:#CDBF9F;
  --champ-2:#E3D8C0;
  --ligne:rgba(236,233,227,.11);
  --ligne-2:rgba(236,233,227,.22);
  --font:"Jost", "Futura", "Century Gothic", system-ui, sans-serif;
  --greek:"Phronesis Greek", Georgia, serif;
  --header-h:5rem;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;background:var(--noir)}
body{margin:0;background:var(--noir);color:var(--texte);font:400 1.0625rem/1.75 var(--font);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;letter-spacing:.005em}
img,svg{max-width:100%;display:block}
a{color:inherit;text-underline-offset:.3em;text-decoration-thickness:1px;text-decoration-color:var(--ligne-2)}
a:hover{text-decoration-color:var(--champ)}
h1,h2,h3{font-weight:300;line-height:1.08;margin:0;letter-spacing:-.012em}
p{margin:0}
::selection{background:var(--champ);color:var(--noir)}
:focus-visible{outline:1px solid var(--champ);outline-offset:4px}
.wrap{max-width:80rem;margin:0 auto;padding:0 clamp(1.25rem,5vw,3.5rem)}
.wrap.narrow{max-width:62rem}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:0;background:var(--texte);color:var(--noir);padding:.6rem 1rem;z-index:100}
.skip:focus{left:1rem;top:1rem}
.todo{background:rgba(205,191,159,.22);color:var(--champ-2);padding:0 .25em;outline:1px dashed rgba(205,191,159,.5)}
.guilloche{display:none}

/* En-tête */
.site-header{position:sticky;top:0;z-index:30;background:rgba(9,9,10,.72);-webkit-backdrop-filter:blur(16px) saturate(1.2);backdrop-filter:blur(16px) saturate(1.2);padding-top:env(safe-area-inset-top,0px);border-bottom:1px solid transparent;transition:border-color .4s,background-color .4s}
.site-header.scrolled{border-bottom-color:var(--ligne);background:rgba(9,9,10,.86)}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;height:var(--header-h);gap:2rem}
.brand{display:flex;align-items:center;gap:.8rem;text-decoration:none}
.brand-mark{width:1.9rem;height:1.9rem;color:var(--champ);flex:none}
.brand-name{font-weight:400;font-size:.95rem;letter-spacing:.32em;text-transform:uppercase;line-height:1;display:flex;align-items:baseline;gap:.5rem}
.brand-name small{font-size:.62rem;font-weight:500;letter-spacing:.3em;color:var(--champ)}
.nav-links{display:flex;gap:2.1rem;list-style:none;margin:0;padding:0}
.nav-links a{text-decoration:none;font-size:.76rem;font-weight:400;letter-spacing:.2em;text-transform:uppercase;color:var(--texte-2);padding:.4rem 0;background:linear-gradient(var(--champ),var(--champ)) left bottom/0 1px no-repeat;transition:color .3s,background-size .5s cubic-bezier(.2,.7,.2,1)}
.nav-links a:hover,.nav-links a[aria-current]{color:var(--texte);background-size:100% 1px}
.header-tools{display:flex;align-items:center;gap:1.5rem}
.lang{display:flex;gap:.15rem;align-items:center;font-size:.72rem;letter-spacing:.18em;color:var(--texte-3)}
.lang a,.lang span{padding:.2rem .3rem;text-decoration:none}
.lang a:hover{color:var(--texte)}
.lang [aria-current]{color:var(--champ)}
.header-wa{font-size:.76rem;letter-spacing:.18em;text-transform:uppercase;color:var(--texte-2);text-decoration:none}
.header-wa:hover{color:var(--texte)}
.header-call{font-feature-settings:"lnum"}
.header-call .call-word{display:none}

/* Boutons */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:3.25rem;padding:0 2rem;border-radius:0;font:500 .74rem/1.2 var(--font);letter-spacing:.22em;text-transform:uppercase;text-decoration:none;text-align:center;border:1px solid transparent;transition:background-color .35s,border-color .35s,color .35s;cursor:pointer}
.btn-primary,.btn-dark{background:var(--texte);color:var(--noir)}
.btn-primary:hover,.btn-dark:hover{background:var(--champ-2)}
.btn-ghost,.btn-line{border-color:var(--ligne-2);color:var(--texte);background:transparent}
.btn-ghost:hover,.btn-line:hover{border-color:var(--champ);color:var(--champ-2)}
.btn-small{min-height:2.6rem;padding:0 1.2rem;font-size:.7rem;letter-spacing:.16em}
.text-link{display:inline-block;font-size:.95rem;color:var(--texte-2);text-decoration:none;border-bottom:1px solid var(--ligne-2);padding-bottom:.15rem;transition:color .3s,border-color .3s}
.text-link:hover,.text-link.dark-text:hover{color:var(--texte);border-color:var(--champ)}
.text-link.dark-text{color:var(--texte-2)}
.link-or{text-decoration:none;font-size:.74rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;border-bottom:1px solid var(--champ);padding-bottom:.35rem;transition:color .3s}
.link-or:hover{color:var(--champ-2)}
.actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2rem}

/* Accueil */
.hero{position:relative;overflow:hidden;min-height:calc(100svh - var(--header-h));display:flex;flex-direction:column;justify-content:center;padding:clamp(3rem,7vw,5rem) 0 clamp(2.5rem,5vw,3.5rem);background:radial-gradient(ellipse 55% 60% at 74% 46%,rgba(205,191,159,.09),transparent 70%),var(--noir)}
.hero-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:3rem clamp(3rem,6vw,6rem);align-items:center}
.hero h1{font-weight:300;font-size:clamp(2.8rem,6.2vw,5.6rem);line-height:1.02;letter-spacing:-.025em;max-width:13ch}
.hero .sub{margin-top:2rem;font-size:clamp(1.05rem,1.4vw,1.2rem);line-height:1.7;color:var(--texte-2);max-width:32rem;font-weight:300}
.hero .actions{margin-top:2.75rem}
.hero .text-link{margin-top:1.75rem}
.medal-wrap{margin:0;display:flex;flex-direction:column;align-items:center;gap:1.75rem}
.medal{position:relative;width:min(100%,27rem);aspect-ratio:1;border-radius:50%;box-shadow:0 60px 120px -30px rgba(0,0,0,.9),0 0 0 1px rgba(205,191,159,.28),0 0 0 9px #111113,0 0 0 10px rgba(205,191,159,.16)}
.medal-dial{position:absolute;inset:0;border-radius:50%;background:
  repeating-conic-gradient(from 0deg,rgba(255,255,255,.028) 0deg .35deg,transparent .35deg 1.1deg),
  conic-gradient(from var(--a),#121214 0deg,#34322E 40deg,#121214 90deg,#26251F 135deg,#121214 180deg,#34322E 220deg,#121214 270deg,#26251F 315deg,#121214 360deg);
  animation:turn 48s linear infinite}
.medal-dial::after{content:"";position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle at 50% 50%,transparent 38%,rgba(0,0,0,.55) 100%)}
.medal-ring{position:absolute;inset:6%;border-radius:50%;background:repeating-conic-gradient(rgba(205,191,159,.75) 0deg .7deg,transparent .7deg 30deg);-webkit-mask:radial-gradient(circle,transparent 0 89%,#000 89.5% 97%,transparent 97.5%);mask:radial-gradient(circle,transparent 0 89%,#000 89.5% 97%,transparent 97.5%)}
.medal-ring::after{content:"";position:absolute;inset:0;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(205,191,159,.22)}
.medal .brand-mark{position:absolute;inset:30%;width:40%;height:40%;color:var(--champ);filter:drop-shadow(0 1px 0 rgba(0,0,0,.8)) drop-shadow(0 -1px 0 rgba(255,255,255,.08))}
.medal-wrap figcaption{font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;color:var(--texte-3);display:flex;align-items:baseline;gap:.9rem}
.medal-wrap figcaption span{font-family:var(--greek);font-style:italic;font-size:1.25rem;letter-spacing:.02em;text-transform:none;color:var(--champ)}
@keyframes turn{to{--a:360deg}}
.hero-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem 2.5rem;list-style:none;margin:clamp(4rem,8vw,6rem) 0 0;padding:2rem 0 0;border-top:1px solid var(--ligne)}
.hero-facts li{font-size:.9rem;color:var(--texte-3);line-height:1.55}
.hero-facts strong{display:block;font-weight:400;font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--texte);margin-bottom:.5rem}

/* Sections */
.section{padding:clamp(6rem,12vw,10rem) 0;position:relative}
.section-velin,.half.section-velin{background:var(--noir-2)}
.dark{background:var(--noir)}
.section-head{max-width:46rem;margin-bottom:clamp(3.5rem,7vw,5rem)}
.section-head h2,.split-head h2,.about h2,.conditions h2{font-weight:300;font-size:clamp(2.3rem,4.4vw,3.8rem);letter-spacing:-.02em}
.section-head p,.split-head p{margin-top:1.4rem;font-size:1.1rem;color:var(--texte-2);max-width:36rem;font-weight:300}
.statement{font-weight:300;font-size:clamp(2.1rem,4.4vw,3.9rem);line-height:1.12;letter-spacing:-.022em;max-width:20ch;margin-bottom:clamp(4rem,8vw,6rem)}
.pledges{list-style:none;margin:0;padding:0;border-top:1px solid var(--ligne-2)}
.pledges li{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:.6rem 4rem;padding:2.25rem 0;border-bottom:1px solid var(--ligne);align-items:baseline}
.pledges h3{font-weight:300;font-size:clamp(1.5rem,2.4vw,2.05rem);letter-spacing:-.01em}
.pledges p{color:var(--texte-2);max-width:32rem;font-weight:300}
.pledges a{color:var(--texte)}

/* Diptyque */
.diptych{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--ligne);border-bottom:1px solid var(--ligne)}
.half{padding:clamp(5rem,10vw,8rem) clamp(1.5rem,6vw,6rem);background:var(--noir)}
.half + .half{border-left:1px solid var(--ligne)}
.half-inner{max-width:32rem;margin-left:auto}
.half + .half .half-inner{margin-left:0}
.half h2{font-weight:300;font-size:clamp(2.2rem,3.8vw,3.3rem)}
.half-inner > p{margin-top:1.2rem;color:var(--texte-2);font-weight:300}
.half .actions{margin-top:2.5rem}
.half .text-link{margin-top:1.4rem}
.ticks{list-style:none;margin:2.25rem 0 0;padding:0}
.ticks li{padding:.95rem 0;border-top:1px solid var(--ligne);font-weight:300;color:var(--texte)}
.ticks li:last-child{border-bottom:1px solid var(--ligne)}

/* Étapes */
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:3rem;counter-reset:step}
.steps li{counter-increment:step;border-top:1px solid var(--ligne-2);padding-top:1.75rem}
.steps li::before{content:counter(step,decimal-leading-zero);display:block;font-size:.74rem;font-weight:500;letter-spacing:.22em;color:var(--champ);margin-bottom:1.5rem}
.steps h3{font-weight:400;font-size:1.3rem;margin-bottom:.7rem;letter-spacing:0}
.steps p{color:var(--texte-2);font-weight:300;font-size:1rem}

/* Formules */
.pricing-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1.5rem 3rem;margin-bottom:clamp(3.5rem,7vw,5rem)}
.pricing-head .section-head{margin-bottom:0}
.region-toggle{display:inline-flex;align-items:center;gap:.25rem;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--texte-3)}
.region-toggle .label{margin-right:.75rem}
.region-toggle button{font:500 .72rem/1 var(--font);letter-spacing:.18em;text-transform:uppercase;border:0;background:transparent;color:var(--texte-3);padding:.6rem .55rem;cursor:pointer;border-bottom:1px solid transparent;transition:color .3s}
.region-toggle button:hover{color:var(--texte)}
.region-toggle button[aria-pressed="true"]{color:var(--texte);border-bottom-color:var(--champ)}
.carte{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--ligne);border:1px solid var(--ligne)}
.plan{background:var(--noir-2);padding:clamp(2.5rem,4vw,3.5rem) clamp(1.5rem,2.6vw,2.5rem);text-align:center;display:flex;flex-direction:column;align-items:center}
.section-velin .plan{background:var(--noir)}
.plan h3{font-weight:400;font-size:.8rem;letter-spacing:.3em;text-transform:uppercase}
.plan .for{font-weight:300;font-style:italic;color:var(--texte-2);margin-top:.9rem}
.price{font-weight:300;font-size:clamp(3rem,4.8vw,4rem);line-height:1;margin-top:2.25rem;letter-spacing:-.02em;font-feature-settings:"lnum"}
.price-unit{display:block;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--texte-3);margin-top:.9rem}
.plan .ticks{margin:2.25rem 0 0;width:100%;flex:1}
.plan .ticks li{padding:.85rem 0;font-size:.97rem}
.plan .cta{margin-top:2.5rem}
.plan.inverse{background:var(--noir-3);box-shadow:inset 0 0 0 1px rgba(205,191,159,.35)}
.plan.inverse h3{color:var(--champ)}
.plan.inverse .price{color:var(--champ-2)}
.pro{display:grid;grid-template-columns:1fr 1fr;gap:2rem 5rem;align-items:end;margin-top:clamp(3.5rem,7vw,5rem);padding:clamp(2.5rem,4vw,3.5rem) 0;border-top:1px solid var(--ligne-2);border-bottom:1px solid var(--ligne)}
.pro h3{font-weight:300;font-size:clamp(2rem,3.4vw,2.8rem)}
.pro p{color:var(--texte-2);margin-top:1rem;font-weight:300}
.pro .pro-price{font-size:1.45rem;line-height:1.4;color:var(--texte);margin-top:0;font-weight:300}
.pro .btn{margin-top:2rem}
.fine,.fine-print{margin-top:1.5rem;font-size:.9rem;color:var(--texte-3);max-width:52rem}
.launch{margin-top:3rem;padding:1.4rem 0;border-top:1px solid rgba(205,191,159,.4);border-bottom:1px solid var(--ligne);display:flex;flex-wrap:wrap;gap:.4rem 1.75rem;align-items:baseline;font-weight:300}
.launch span{font-size:.72rem;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:var(--champ)}
.wrap.narrow > .launch:first-child{margin:0 0 4.5rem}

/* Réservation */
.booking-options{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--ligne);border:1px solid var(--ligne)}
.booking-option{background:var(--noir);padding:clamp(2rem,3.5vw,3rem);display:flex;flex-direction:column}
.section-velin .booking-option{background:var(--noir-2)}
.booking-options.single{grid-template-columns:1fr;max-width:52rem}
.booking-option h3{font-weight:300;font-size:1.9rem}
.booking-option .meta{margin-top:.8rem;font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;color:var(--champ)}
.booking-option p.desc{margin-top:1.25rem;color:var(--texte-2);flex:1;font-weight:300}
.booking-option .row{display:flex;flex-wrap:wrap;gap:1rem 1.75rem;align-items:center;margin-top:2rem}
.booking-option .row a.plain{font-size:.9rem;color:var(--texte-3)}
.booking-block{margin-top:clamp(3.5rem,7vw,5rem)}
.calendar{margin-top:2rem;background:#FBFAF6;border:1px solid var(--ligne)}
.calendar[hidden]{display:none}
.calendar iframe{display:block;width:100%;height:720px;border:0}
.calendar-note{margin-top:1.75rem;font-size:.86rem;color:var(--texte-3);max-width:52rem}

/* À propos */
.about{display:grid;grid-template-columns:5fr 6fr;gap:3rem clamp(4rem,8vw,8rem);align-items:center}
.portrait-frame{position:relative}
.portrait{position:relative;aspect-ratio:4/5;background:radial-gradient(ellipse at 50% 35%,#1E1D1B,var(--noir-2) 70%);border:1px solid var(--ligne);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.25rem;color:var(--texte-3);font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;overflow:hidden}
.portrait .brand-mark{width:4rem;height:4rem;opacity:.8}
.portrait img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(.15)}
.about p{margin-top:1.4rem;font-weight:300}
.about .muted{color:var(--texte-2)}
.list-title{font-size:.72rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--champ);margin:2.5rem 0 0}
.list-title + .ticks{margin-top:1rem}
.zones{display:grid;grid-template-columns:repeat(2,1fr);gap:0 4rem;margin:0}
.zones div{border-top:1px solid var(--ligne);padding:1.75rem 0}
.zones dt{font-size:.74rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase}
.zones dd{margin:.6rem 0 0;color:var(--texte-2);font-weight:300}

/* Questions */
.split{display:grid;grid-template-columns:4fr 7fr;gap:3rem clamp(4rem,8vw,7rem);align-items:start}
.split-head{position:sticky;top:calc(var(--header-h) + 3rem)}
.faq{border-top:1px solid var(--ligne-2)}
.faq details{border-bottom:1px solid var(--ligne)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:baseline;gap:2rem;padding:1.75rem 0;font-weight:300;font-size:clamp(1.25rem,1.9vw,1.55rem);line-height:1.35;transition:color .3s}
.faq summary:hover{color:var(--champ-2)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";flex:none;width:.75rem;height:.75rem;background:linear-gradient(var(--champ),var(--champ)) center/100% 1px no-repeat,linear-gradient(var(--champ),var(--champ)) center/1px 100% no-repeat;transition:transform .4s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{padding:0 0 1.9rem;color:var(--texte-2);max-width:44rem;font-weight:300}

/* Contact */
.contact{background:var(--noir-2);border-top:1px solid var(--ligne)}
.contact-grid{display:grid;grid-template-columns:6fr 5fr;gap:4rem clamp(4rem,8vw,7rem);align-items:start}
.contact h2{font-weight:300;font-size:clamp(2.5rem,5vw,4.4rem);letter-spacing:-.025em;max-width:12ch}
.contact .lead{margin-top:1.5rem;color:var(--texte-2);font-weight:300;font-size:1.1rem}
.big-phone{display:inline-block;margin-top:2.5rem;font-weight:300;font-size:clamp(2rem,3.4vw,2.9rem);letter-spacing:-.01em;line-height:1.1;text-decoration:none;font-feature-settings:"lnum";background:linear-gradient(var(--champ),var(--champ)) left bottom/0 1px no-repeat;padding-bottom:.25rem;transition:background-size .6s cubic-bezier(.2,.7,.2,1)}
.big-phone:hover{background-size:100% 1px}
.channels{margin:2.5rem 0 0}
.channels div{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:1.1rem 0;border-top:1px solid var(--ligne)}
.channels div:last-child{border-bottom:1px solid var(--ligne)}
.channels dt{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--texte-3);align-self:center}
.channels dd{margin:0;text-align:right;font-weight:300}
.channels a{text-decoration:none}
.channels a:hover{color:var(--champ-2)}
.form-title{font-weight:300;font-size:clamp(1.6rem,2.6vw,2.1rem);margin-bottom:2rem}

/* Formulaire */
.form{display:grid;grid-template-columns:1fr 1fr;gap:1.6rem 2rem;position:relative}
.form .field{display:flex;flex-direction:column;gap:.4rem;min-width:0}
.form .full,.form .form-foot,.form .form-error{grid-column:1/-1}
.form label,.form legend{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--texte-3)}
.form input:not([type=radio]):not([type=hidden]),.form textarea{font:300 1.05rem/1.5 var(--font);color:var(--texte);background:transparent;border:0;border-bottom:1px solid var(--ligne-2);border-radius:0;padding:.6rem 0;width:100%;transition:border-color .3s}
.form textarea{resize:vertical;min-height:6.5rem}
.form input:focus,.form textarea:focus{outline:none;border-bottom-color:var(--champ)}
.form .choice{border:0;margin:0;padding:0;min-width:0}
.form .choice legend{margin-bottom:.4rem;padding:0}
.form .choice label{display:inline-flex;align-items:center;gap:.55rem;font-size:1rem;letter-spacing:0;text-transform:none;color:var(--texte);cursor:pointer;margin:.5rem 1.6rem .2rem 0;font-weight:300}
.form input[type=radio]{accent-color:var(--champ);width:1rem;height:1rem;margin:0}
.form-foot{display:flex;flex-wrap:wrap;align-items:center;gap:1.25rem 1.75rem;margin-top:.75rem}
.form-note{font-size:.84rem;color:var(--texte-3);flex:1;min-width:14rem;font-weight:300}
.form-error{color:#E8B4A2;border-left:1px solid #E8B4A2;padding:.3rem 0 .3rem 1rem;font-size:.95rem}
.form-error[hidden]{display:none}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.contact-grid.light .big-phone{margin-top:0}

/* Pied de page */
.site-footer{background:var(--noir);border-top:1px solid var(--ligne);color:var(--texte-3);font-size:.9rem;padding:clamp(5rem,9vw,7rem) 0 calc(2rem + env(safe-area-inset-bottom,0px));overflow:hidden}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:3rem}
.footer-grid h2{font-size:.7rem;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:var(--texte);margin-bottom:1.25rem}
.footer-grid ul{list-style:none;margin:0;padding:0}
.footer-grid li + li{margin-top:.6rem}
.footer-grid a{text-decoration:none;font-weight:300}
.footer-grid a:hover{color:var(--texte)}
.footer-brand p{margin-top:1.4rem;max-width:22rem;font-weight:300}
.wordmark{font-weight:300;font-size:clamp(3.5rem,13.5vw,12rem);line-height:.9;letter-spacing:.14em;text-transform:uppercase;margin:clamp(4rem,8vw,6rem) 0 0;color:transparent;-webkit-text-stroke:1px rgba(236,233,227,.13);user-select:none;white-space:nowrap}
.footer-bottom{margin-top:2rem;padding-top:1.75rem;border-top:1px solid var(--ligne);display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;font-size:.82rem}
.footer-bottom .areas{max-width:46rem;color:rgba(236,233,227,.3)}

/* Pages intérieures */
.page-hero{position:relative;background:radial-gradient(ellipse 50% 90% at 85% 40%,rgba(205,191,159,.07),transparent 70%),var(--noir);padding:clamp(5rem,11vw,8.5rem) 0 clamp(4rem,8vw,6rem);border-bottom:1px solid var(--ligne)}
.page-hero h1{font-weight:300;font-size:clamp(2.6rem,6vw,5rem);letter-spacing:-.025em;max-width:18ch;line-height:1.04}
.page-hero p{margin-top:1.75rem;color:var(--texte-2);max-width:40rem;font-size:1.1rem;font-weight:300}
.page-hero .actions{margin-top:2.5rem}
.prose{max-width:46rem;padding:clamp(4rem,9vw,6rem) 0;font-weight:300}
.prose h2{font-weight:300;font-size:1.9rem;margin:3.25rem 0 1rem}
.prose h2:first-child{margin-top:0}
.prose h3{font-weight:400;font-size:1.15rem;margin:2rem 0 .5rem;letter-spacing:.01em}
.prose p,.prose ul,.prose ol{margin:0 0 1.1rem;color:rgba(236,233,227,.82)}
.prose ul,.prose ol{padding-left:1.25rem}
.prose li + li{margin-top:.4rem}
.prose strong{font-weight:500}
.prose .note{font-size:.9rem;color:var(--texte-3)}
.prose .box{background:var(--noir-2);border:1px solid var(--ligne);border-top:1px solid rgba(205,191,159,.45);padding:1.75rem;margin:1.75rem 0}
.pay-options{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--ligne);border:1px solid var(--ligne);margin-top:clamp(4rem,9vw,6rem)}
.pay-option{background:var(--noir);padding:clamp(2rem,3.5vw,3rem)}
.pay-option h2{font-weight:300;font-size:1.9rem}
.pay-option p{margin-top:1rem;color:var(--texte-2);font-weight:300}
.pay-option .btn{margin:2rem .5rem 0 0}
.center-page{min-height:78vh;display:flex;align-items:center;background:radial-gradient(ellipse 50% 60% at 50% 50%,rgba(205,191,159,.08),transparent 70%),var(--noir);padding:5rem 0;text-align:center}
.center-page .wrap{display:flex;flex-direction:column;align-items:center}
.center-page .lemma{font-family:var(--greek);font-style:italic;font-size:clamp(3rem,9vw,5.5rem);line-height:1.1;color:var(--champ);margin:0;padding:0 .1em .15em}
.center-page h1{font-weight:300;font-size:clamp(2.2rem,4.5vw,3.4rem);margin-top:1rem}
.center-page p{margin-top:1.25rem;color:var(--texte-2);max-width:34rem;font-weight:300}
.center-page .actions{justify-content:center}

/* Situations, tarifs, témoignages */
.cases{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--ligne);border:1px solid var(--ligne)}
.case{background:var(--noir);padding:clamp(2rem,3.5vw,2.75rem);display:flex;flex-direction:column}
.case h3{font-weight:300;font-size:1.65rem}
.case p{margin-top:1.1rem;color:var(--texte-2);font-weight:300}
.case .case-plan{margin-top:auto;padding-top:1.75rem;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--champ)}
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.tarifs{width:100%;min-width:34rem;border-collapse:collapse;table-layout:fixed;font-feature-settings:"lnum"}
.tarifs caption{text-align:left;font-weight:300;font-size:clamp(2rem,3.4vw,2.8rem);letter-spacing:-.015em;line-height:1.1;padding-bottom:1.75rem}
.tarifs thead th{font:500 .7rem/1.3 var(--font);letter-spacing:.2em;text-transform:uppercase;color:var(--texte-3);text-align:left;padding:.8rem 1rem .8rem 0;border-bottom:1px solid var(--ligne-2)}
.tarifs thead th:first-child{width:36%}
.tarifs tbody th{text-align:left;font-weight:400;padding:1.2rem 1rem 1.2rem 0;border-bottom:1px solid var(--ligne);vertical-align:top}
.tarifs td{padding:1.2rem 1rem 1.2rem 0;border-bottom:1px solid var(--ligne);font-weight:300;vertical-align:top;color:rgba(236,233,227,.86)}
.table-note{margin:1.1rem 0 clamp(4rem,8vw,6rem);font-size:.9rem;color:var(--texte-3)}
.conditions .ticks{margin-top:1.75rem}
.testimonials{display:grid;grid-template-columns:repeat(auto-fit,minmax(18rem,1fr));gap:3rem;margin-bottom:2.5rem}
.testimonial{margin:0;border-top:1px solid var(--ligne-2);padding-top:1.75rem}
.testimonial blockquote{margin:0;font-weight:300;font-style:italic;font-size:1.35rem;line-height:1.5}
.testimonial figcaption{margin-top:1.25rem;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--texte-3)}
.muted-dark{color:var(--texte-2);margin-top:1.4rem}
.lead{font-size:1.1rem;font-weight:300}

/* Menu mobile */
.mnav{display:none;position:static}
.mnav summary{list-style:none;cursor:pointer;font:500 .7rem/1 var(--font);letter-spacing:.22em;text-transform:uppercase;color:var(--texte);border:1px solid var(--ligne-2);padding:.9rem 1.1rem}
.mnav summary::-webkit-details-marker{display:none}
.mnav[open] summary{border-color:var(--champ);color:var(--champ-2)}
.mnav-panel{position:absolute;left:0;right:0;top:100%;background:var(--noir);border-top:1px solid var(--ligne);padding:1.5rem clamp(1.25rem,5vw,3.5rem) 2.25rem;max-height:calc(100svh - var(--header-h));overflow:auto}
.mnav-panel ul{list-style:none;margin:0;padding:0}
.mnav-panel li a{display:block;padding:1rem 0;border-bottom:1px solid var(--ligne);font-weight:300;font-size:1.6rem;text-decoration:none;color:var(--texte)}
.mnav-panel li a[aria-current]{color:var(--champ)}
.mnav-contact{display:grid;gap:.6rem;margin-top:1.75rem}
.mnav-panel .lang{margin-top:1.5rem}

/* Barre d'appel mobile */
.mobile-bar{display:none}

/* Apparition douce au chargement et au défilement */
@media (prefers-reduced-motion:no-preference){
  .hero h1,.hero .sub,.hero .actions,.hero .text-link{animation:rise 1.4s cubic-bezier(.2,.7,.2,1) both}
  .hero .sub{animation-delay:.15s}.hero .actions{animation-delay:.3s}.hero .text-link{animation-delay:.4s}
  .medal-wrap{animation:fade 2.2s ease .2s both}
  @keyframes rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
  @keyframes fade{from{opacity:0;transform:scale(.97)}to{opacity:1;transform:none}}
  .reveal{opacity:0;transform:translateY(22px);transition:opacity 1.2s cubic-bezier(.2,.7,.2,1),transform 1.2s cubic-bezier(.2,.7,.2,1)}
  .reveal.is-in{opacity:1;transform:none}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.medal-dial{animation:none}}

@media (max-width:80rem){.header-wa{display:none}.nav-links{gap:1.5rem}}
@media (max-width:68rem){.header-call .call-num{display:none}.header-call .call-word{display:inline}.hero-facts{grid-template-columns:1fr 1fr}.footer-grid{grid-template-columns:1fr 1fr}}
@media (max-width:60rem){
  .steps{grid-template-columns:1fr 1fr}
  .carte,.cases{grid-template-columns:1fr}
  .split{grid-template-columns:1fr}
  .split-head{position:static}
  .diptych{grid-template-columns:1fr}
  .half + .half{border-left:0;border-top:1px solid var(--ligne)}
  .half-inner,.half + .half .half-inner{margin:0;max-width:40rem}
  .hero-grid{grid-template-columns:1fr}
  .medal-wrap{order:-1}
  .medal{width:min(70vw,20rem)}
}
@media (max-width:56rem){
  .nav,.header-tools > .lang,.header-call{display:none}
  .mnav{display:block}
  .pledges li,.pro,.about,.contact-grid,.booking-options,.pay-options,.zones{grid-template-columns:1fr}
  .form{grid-template-columns:1fr}
  .channels dd{text-align:left}
  .mobile-bar{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;position:fixed;left:0;right:0;bottom:0;z-index:40;background:rgba(9,9,10,.9);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);padding:.6rem 1rem calc(.6rem + env(safe-area-inset-bottom,0px));border-top:1px solid var(--ligne)}
  .mobile-bar .btn{min-height:2.9rem}
  body.has-bar{padding-bottom:4.6rem}
  .portrait-frame{max-width:22rem}
}
@media (max-width:34rem){
  .steps,.hero-facts,.footer-grid{grid-template-columns:1fr}
  .calendar iframe{height:900px}
  .medal{width:min(62vw,15rem)}
  .wordmark{letter-spacing:.08em}
}
@media print{.site-header,.mobile-bar,.site-footer,.calendar,.medal-wrap{display:none}body{background:#fff;color:#000}}
.nav-links a{white-space:nowrap}
.medal .brand-mark circle{stroke-width:.55}
.medal .brand-mark ellipse,.medal .brand-mark line{stroke-width:.9}
@media (max-width:90rem){.header-wa{display:none}.nav-links{gap:1.6rem}}
@media (max-width:74rem){.nav-links{gap:1.15rem}.nav-links a{letter-spacing:.14em}}

/* Illustrations au trait */
.illu{color:var(--champ);width:100%;height:auto;overflow:visible}
.page-hero-grid{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:3rem 5rem;align-items:center}
.page-hero-art .illu-scene{max-width:33rem;margin-left:auto}
.panorama-band{padding:clamp(4.5rem,9vw,7rem) 0 clamp(1rem,3vw,2rem);background:var(--noir)}
.panorama-band figure{margin:0}
.panorama-band figcaption{margin-top:2rem;text-align:center;font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;color:var(--texte-3)}
.charter-head{display:grid;grid-template-columns:minmax(0,1fr) 15rem;gap:3rem 5rem;align-items:center;margin-bottom:clamp(4rem,8vw,6rem)}
.charter-head .statement{margin-bottom:0}
.illu-seal{max-width:15rem;margin-left:auto}
.case .illu-vignette{width:8.5rem;margin:0 0 1.75rem -.4rem}
@media (prefers-reduced-motion:no-preference){
  .illu-panorama .water{animation:drift 12s ease-in-out infinite alternate}
  @keyframes drift{from{transform:translateX(-7px)}to{transform:translateX(7px)}}
  .illu-seal{animation:fade 2s ease both}
}
@media (max-width:60rem){
  .page-hero-grid{grid-template-columns:1fr}
  .page-hero-art .illu-scene{max-width:26rem;margin:0}
  .charter-head{grid-template-columns:1fr}
  .illu-seal{margin:0;max-width:11rem}
}

/* ===================== Photographies ===================== */
picture{display:block}
picture img{display:block;width:100%;height:auto}
.hero-photo{isolation:isolate;justify-content:flex-end;background:var(--noir)}
.hero-bg{position:absolute;inset:0;z-index:-2;overflow:hidden}
.hero-bg img{width:100%;height:100%;object-fit:cover;object-position:62% 50%}
.hero-shade{position:absolute;inset:0;z-index:-1;background:
  linear-gradient(90deg,rgba(9,9,10,.94) 0%,rgba(9,9,10,.78) 34%,rgba(9,9,10,.25) 64%,rgba(9,9,10,.3) 100%),
  linear-gradient(0deg,rgba(9,9,10,1) 0%,rgba(9,9,10,.4) 24%,rgba(9,9,10,0) 46%),
  linear-gradient(180deg,rgba(9,9,10,.55) 0%,rgba(9,9,10,0) 18%)}
.hero-copy{max-width:40rem;padding-top:clamp(2rem,8vh,6rem)}
.half-img{margin:0 0 2.75rem}
.half-img img{aspect-ratio:3/2;object-fit:cover}
.wide-img{margin:0 0 clamp(4rem,8vw,6rem)}
.wide-img img{aspect-ratio:21/9;object-fit:cover;object-position:50% 55%}
.hero-art-img img{aspect-ratio:3/2;object-fit:cover}
.hero-art-img.portrait-ratio{max-width:28rem;margin-left:auto}
.hero-art-img.portrait-ratio img{aspect-ratio:4/5}
.page-hero-art .hero-art-img{box-shadow:0 50px 100px -40px rgba(0,0,0,.9)}
.case{padding-top:0}
.case-img{margin:0 calc(clamp(2rem,3.5vw,2.75rem) * -1) 2rem}
.case-img img{aspect-ratio:3/2;object-fit:cover}
.charter-img{max-width:15rem;margin-left:auto}
.charter-img img{aspect-ratio:1;object-fit:cover}
.portrait img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:none}
.portrait picture{position:absolute;inset:0}
.zone-art{margin:0 0 clamp(3rem,6vw,4.5rem);opacity:.85}
@media (prefers-reduced-motion:no-preference){
  .hero-bg img{animation:settle 14s cubic-bezier(.2,.6,.2,1) both}
  @keyframes settle{from{transform:scale(1.07)}to{transform:scale(1)}}
}
@media (max-width:60rem){
  .hero-bg img{object-position:74% 50%}
  .hero-shade{background:linear-gradient(0deg,rgba(9,9,10,1) 0%,rgba(9,9,10,.82) 45%,rgba(9,9,10,.35) 75%,rgba(9,9,10,.55) 100%)}
  .hero-art-img.portrait-ratio{margin:0;max-width:24rem}
  .charter-img{margin:0;max-width:11rem}
}

/* ===================== Réservation intégrée ===================== */
.bk-app{margin-top:2rem;border:1px solid var(--ligne);background:var(--noir);padding:clamp(1.75rem,3.5vw,3rem)}
.section-velin .bk-app{background:var(--noir)}
.bk-app[hidden]{display:none}
.bk-label{font-size:.72rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--texte);margin:0 0 1.1rem;display:flex;gap:.9rem;align-items:baseline}
.bk-label span{color:var(--champ)}
.bk-label em{font-style:normal;color:var(--texte-3);letter-spacing:.14em}
.bk-days{display:flex;gap:.5rem;overflow-x:auto;padding-bottom:.5rem;margin-bottom:2.25rem;scrollbar-width:thin}
.bk-day{flex:none;display:flex;flex-direction:column;align-items:center;gap:.15rem;min-width:4.4rem;padding:.8rem .6rem;background:transparent;border:1px solid var(--ligne);color:var(--texte-2);font:300 .8rem/1.2 var(--font);letter-spacing:.06em;cursor:pointer;transition:border-color .3s,color .3s,background-color .3s}
.bk-day strong{font-weight:300;font-size:1.6rem;color:var(--texte);letter-spacing:0;line-height:1.1}
.bk-day:hover{border-color:var(--ligne-2);color:var(--texte)}
.bk-day[aria-pressed="true"]{border-color:var(--champ);background:rgba(205,191,159,.07);color:var(--champ-2)}
.bk-day[aria-pressed="true"] strong{color:var(--champ-2)}
.bk-slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(6rem,1fr));gap:.5rem}
.bk-slot{padding:.85rem .5rem;background:transparent;border:1px solid var(--ligne);color:var(--texte);font:300 1rem/1 var(--font);cursor:pointer;font-feature-settings:"lnum";transition:border-color .3s,background-color .3s,color .3s}
.bk-slot:hover,.bk-slot:focus-visible{border-color:var(--champ);background:rgba(205,191,159,.07);color:var(--champ-2)}
.bk-empty{grid-column:1/-1;color:var(--texte-3);font-weight:300}
.bk-summary{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;padding-bottom:1.5rem;border-bottom:1px solid var(--ligne);margin-bottom:.5rem;grid-column:1/-1}
.bk-summary p{font-weight:300;color:var(--texte-2)}
.bk-summary strong{font-weight:400;color:var(--texte);font-size:1.2rem}
.bk-summary .text-link{background:none;border:0;border-bottom:1px solid var(--ligne-2);font:inherit;font-size:.9rem;cursor:pointer;padding:0 0 .15rem}
.bk-form [aria-invalid="true"]{border-bottom-color:#E8B4A2 !important}
.bk-form button[disabled]{opacity:.6;cursor:wait}
.bk-done h3{font-weight:300;font-size:2rem;color:var(--champ-2)}
.bk-done p{margin-top:1rem;color:var(--texte-2);font-weight:300}
.bk-done strong{color:var(--texte);font-weight:400}
.booking-option .row{margin-top:2rem}
.booking-option button[aria-pressed="true"]{background:var(--champ-2)}

/* ===================== Administration ===================== */
.admin-wrap{padding-top:4rem;padding-bottom:6rem}
.admin-bar{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;border-bottom:1px solid var(--ligne);padding-bottom:1.5rem}
.admin-title{font-weight:300;font-size:2.6rem}
.admin-h2{font-weight:300;font-size:1.6rem;margin:3.5rem 0 1.25rem}
.admin-login{max-width:26rem;margin-top:2rem}
.admin-table{min-width:56rem;table-layout:auto;font-size:.95rem}
.admin-table td,.admin-table th{padding-right:1.25rem}
.admin-table a{text-decoration:none;color:var(--texte-2)}
.admin-inline{display:flex;align-items:center;gap:.75rem;margin-left:auto}
.admin-inline label{font-size:.8rem;color:var(--texte-3);display:flex;gap:.35rem;align-items:center}
.admin-block{max-width:44rem;margin-bottom:1.5rem}
.admin .ticks li{display:flex;justify-content:space-between;align-items:center;gap:1rem}
.admin-feed code{display:block;word-break:break-all;background:var(--noir-2);border:1px solid var(--ligne);padding:1rem;font-size:.85rem;color:var(--champ-2)}
.tag{font-size:.65rem;letter-spacing:.18em;text-transform:uppercase;color:#E8B4A2;border:1px solid rgba(232,180,162,.4);padding:.15rem .4rem;margin-left:.4rem}
.admin .form input[type=date],.admin .form input[type=time]{color-scheme:dark}
[hidden]{display:none !important}
.form fieldset.choice{display:block}

/* ===================== Paiement intégré et espace client ===================== */
.pay-form,.client-login{max-width:46rem}
.checkout-wrap{margin-top:1rem;border:1px solid var(--ligne);background:var(--noir-2)}
.checkout-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.1rem 1.5rem;border-bottom:1px solid var(--ligne)}
.checkout-head p{font-size:.72rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--champ)}
.checkout-head .text-link,.client-head .text-link{background:none;border:0;border-bottom:1px solid var(--ligne-2);font:inherit;font-size:.9rem;cursor:pointer;padding:0 0 .15rem;color:var(--texte-2)}
.checkout{min-height:24rem;padding:1rem}
.pay-aside{margin-top:clamp(4rem,8vw,6rem);padding-top:2.5rem;border-top:1px solid var(--ligne-2)}
.pay-aside h2{font-weight:300;font-size:2rem}
.pay-aside p{margin-top:1rem;color:var(--texte-2);font-weight:300;max-width:36rem}
.pay-aside .btn{margin-top:1.75rem}
.sub-form .region-toggle{margin-bottom:1.75rem}
.sub-plans{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--ligne);border:1px solid var(--ligne)}
.sub-plan{position:relative;display:flex;flex-direction:column;gap:.6rem;padding:1.75rem 1.5rem;background:var(--noir);cursor:pointer;transition:background-color .3s}
.sub-plan input{position:absolute;top:1.5rem;right:1.4rem;accent-color:var(--champ);width:1.05rem;height:1.05rem}
.sub-plan:hover{background:var(--noir-2)}
.sub-plan:has(input:checked){background:var(--noir-3);box-shadow:inset 0 0 0 1px rgba(205,191,159,.55)}
.sub-name{font-size:.78rem;font-weight:500;letter-spacing:.28em;text-transform:uppercase}
.sub-plan:has(input:checked) .sub-name{color:var(--champ)}
.sub-price{font-weight:300;font-size:2.2rem;line-height:1.1;font-feature-settings:"lnum"}
.sub-price small{font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--texte-3)}
.sub-desc{font-size:.92rem;color:var(--texte-2);font-weight:300}
.sub-custom{padding:1.5rem;border:1px solid rgba(205,191,159,.4);font-weight:300}
.sub-custom strong{font-weight:400;color:var(--champ-2);text-transform:capitalize}
.sub-form .fine{margin-top:1.5rem}
.sub-terms{display:flex;gap:.8rem;align-items:flex-start;margin:2rem 0 0;font-weight:300;cursor:pointer}
.sub-terms input{accent-color:var(--champ);width:1.1rem;height:1.1rem;margin-top:.3rem;flex:none}
.sub-terms input[aria-invalid="true"]{outline:1px solid #E8B4A2;outline-offset:3px}
.sub-form .form-error{margin-top:1.25rem}
.sub-form .form-foot{margin-top:2rem}
.notice{border-left:1px solid var(--champ);padding:.4rem 0 .4rem 1rem;color:var(--champ-2);font-weight:300;margin-top:1rem}
.client-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;padding-bottom:1.5rem;border-bottom:1px solid var(--ligne)}
.client-head strong{font-weight:400;font-size:1.2rem}
.client-head p{color:var(--texte-2);font-weight:300}
.client-h2{font-weight:300;font-size:1.9rem;margin:3rem 0 1.25rem}
.client-sub{border:1px solid var(--ligne);padding:1.75rem;margin-bottom:1rem}
.client-sub-top{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}
.client-sub h3{font-weight:300;font-size:1.5rem}
.tag-st{font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--champ);border:1px solid rgba(205,191,159,.4);padding:.25rem .55rem}
.client-dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:1rem 2rem;margin:1.5rem 0 0}
.client-dl dt{font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--texte-3)}
.client-dl dd{margin:.35rem 0 0;font-weight:300}
.client-sub .actions{margin-top:1.5rem;align-items:center}
.cancel-form{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--ligne)}
.client-inv{min-width:32rem}
@media (max-width:56rem){.sub-plans{grid-template-columns:1fr}}

/* ===================== Bouton d'aide flottant ===================== */
.help{position:fixed;right:clamp(1rem,2.5vw,2rem);bottom:calc(clamp(1rem,2.5vw,2rem) + env(safe-area-inset-bottom,0px));z-index:45;font-family:var(--font)}
.help-fab{display:flex;align-items:center;gap:.75rem;height:3.5rem;padding:0 1.35rem 0 1.1rem;border-radius:999px;background:rgba(9,9,10,.92);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(205,191,159,.55);color:var(--texte);cursor:pointer;box-shadow:0 20px 50px -10px rgba(0,0,0,.8);transition:border-color .3s,background-color .3s,transform .3s}
.help-fab:hover{border-color:var(--champ);background:var(--noir-3)}
.help-fab-icon{width:1.45rem;height:1.45rem;color:var(--champ);display:flex}
.help-fab-icon svg{width:100%;height:100%}
.help-fab-label{font-size:.72rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;white-space:nowrap}
.help-ico-close{display:none}
.help.is-open .help-ico-open{display:none}
.help.is-open .help-ico-close{display:flex}
.help-panel{position:absolute;right:0;bottom:calc(100% + .9rem);width:min(24rem,calc(100vw - 2rem));max-height:min(40rem,calc(100svh - 8rem));display:flex;flex-direction:column;background:var(--noir);border:1px solid var(--ligne-2);box-shadow:0 40px 90px -20px rgba(0,0,0,.9)}
.help-head{display:flex;align-items:center;gap:.5rem;padding:1rem 1rem 1rem 1.4rem;border-bottom:1px solid var(--ligne)}
.help-title{flex:1;font-size:.72rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--texte)}
.help-icon-btn{width:2.2rem;height:2.2rem;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid transparent;color:var(--texte-2);cursor:pointer;flex:none}
.help-icon-btn svg{width:1.2rem;height:1.2rem}
.help-icon-btn:hover{color:var(--texte);border-color:var(--ligne-2)}
.help-back{margin-left:-.6rem}
.help-view{overflow:auto;padding:1.25rem 1.4rem 1.4rem}
.help-intro{font-size:.9rem;color:var(--texte-3);font-weight:300;margin-bottom:1rem}
.help-opt{display:flex;flex-direction:column;gap:.2rem;width:100%;text-align:left;padding:1rem 0;background:transparent;border:0;border-top:1px solid var(--ligne);color:var(--texte);text-decoration:none;cursor:pointer;font:inherit;transition:padding .3s,color .3s}
.help-opt:last-child{border-bottom:1px solid var(--ligne)}
.help-opt:hover{padding-left:.5rem;color:var(--champ-2)}
.help-opt-t{font-size:1.05rem;font-weight:400}
.help-opt-d{font-size:.84rem;font-weight:300;color:var(--texte-3)}
.help-view[data-view="chat"]{display:flex;flex-direction:column;gap:.9rem;padding-bottom:1rem}
.help-view[data-view="chat"][hidden]{display:none}
.help-log{display:flex;flex-direction:column;gap:.7rem;min-height:9rem}
.help-msg{max-width:88%;padding:.75rem .95rem;font-size:.93rem;line-height:1.55;font-weight:300}
.help-msg.is-bot{align-self:flex-start;background:var(--noir-3);border:1px solid var(--ligne)}
.help-msg.is-me{align-self:flex-end;background:rgba(205,191,159,.12);border:1px solid rgba(205,191,159,.3);color:var(--texte)}
.help-msg a{color:var(--champ-2)}
.help-typing{letter-spacing:.3em;color:var(--texte-3)}
.help-chips{display:flex;flex-wrap:wrap;gap:.45rem}
.help-chip{padding:.5rem .8rem;background:transparent;border:1px solid var(--ligne-2);color:var(--texte-2);font:300 .85rem/1.2 var(--font);cursor:pointer;transition:border-color .3s,color .3s}
.help-chip:hover{border-color:var(--champ);color:var(--champ-2)}
.help-ask{display:flex;border:1px solid var(--ligne-2)}
.help-ask input{flex:1;min-width:0;background:transparent;border:0;color:var(--texte);font:300 1rem/1.4 var(--font);padding:.8rem .9rem}
.help-ask input:focus{outline:none}
.help-ask:focus-within{border-color:var(--champ)}
.help-ask button{width:3rem;display:flex;align-items:center;justify-content:center;background:transparent;border:0;border-left:1px solid var(--ligne);color:var(--champ);cursor:pointer}
.help-ask button svg{width:1.2rem;height:1.2rem}
.help-note{font-size:.76rem;color:var(--texte-3);font-weight:300}
.help-cb{grid-template-columns:1fr;gap:1.1rem}
.help-moments{border:0;margin:0;padding:0;display:block}
.help-moments legend{margin-bottom:.6rem}
.help-moments label{display:inline-flex;margin:0 .35rem .45rem 0;cursor:pointer;letter-spacing:0;text-transform:none}
.help-moments input{position:absolute;opacity:0;pointer-events:none}
.help-moments span{padding:.5rem .75rem;border:1px solid var(--ligne-2);font-size:.85rem;font-weight:300;color:var(--texte-2);transition:border-color .3s,color .3s}
.help-moments input:checked + span{border-color:var(--champ);color:var(--champ-2);background:rgba(205,191,159,.07)}
.help-moments input:focus-visible + span{outline:1px solid var(--champ);outline-offset:2px}
.help-done{font-weight:300;color:var(--champ-2);border-left:1px solid var(--champ);padding:.4rem 0 .4rem 1rem}
.mobile-bar [data-help-open]{min-width:0}
@media (max-width:56rem){
  .help-fab{display:none}
  .help{left:0;right:0;bottom:calc(4.4rem + env(safe-area-inset-bottom,0px))}
  .help-panel{right:.75rem;left:.75rem;width:auto;bottom:.5rem;max-height:calc(100svh - 10rem)}
  .mobile-bar{grid-template-columns:1.2fr 1fr .8fr}
  .mobile-bar .btn{padding:0 .6rem;letter-spacing:.14em}
}
@media print{.help{display:none}}
.help-panel .help-view{flex:1 1 auto;min-height:0}
.help-view[data-view="chat"]{overflow:hidden;height:min(30rem,calc(100svh - 14rem))}
.help-log{flex:1 1 auto;overflow-y:auto;min-height:0;padding-right:.25rem;scrollbar-width:thin}
.help-chips,.help-ask,.help-note{flex:none}
.form fieldset.help-moments{display:block}
.help-title{letter-spacing:.14em}

/* ===================== En-têtes de page : image en fondu ===================== */
.page-hero.has-img{position:relative;overflow:hidden;isolation:isolate;min-height:clamp(28rem,68vh,42rem);display:flex;align-items:center;background:var(--noir)}
.page-hero.has-img .wrap{width:100%}
.page-hero-copy{position:relative;max-width:40rem}
.page-hero-bg{position:absolute;top:0;right:0;bottom:0;width:min(70%,68rem);z-index:-2}
.page-hero-bg img{width:100%;height:100%;object-fit:cover;filter:brightness(.78) saturate(.92);
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.35) 22%,#000 55%),linear-gradient(0deg,transparent 0%,#000 32%);
  -webkit-mask-composite:source-in;mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.35) 22%,#000 55%),linear-gradient(0deg,transparent 0%,#000 32%);mask-composite:intersect}
.hero-veil{position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(90deg,rgba(9,9,10,.9) 0%,rgba(9,9,10,.55) 38%,rgba(9,9,10,0) 62%),linear-gradient(180deg,rgba(9,9,10,.5) 0%,rgba(9,9,10,0) 22%)}
.img-bureau img{object-position:50% 38%}
.img-villa img{object-position:30% 55%}
.img-mains img{object-position:55% 45%}
.img-portrait img{object-position:58% 28%}
.img-leman img{object-position:70% 50%}
.img-cle img{object-position:50% 45%}
.page-hero.has-img h1{max-width:16ch}
@media (prefers-reduced-motion:no-preference){
  .page-hero-bg img{animation:settle 12s cubic-bezier(.2,.6,.2,1) both}
}
@media (max-width:56rem){
  .page-hero.has-img{min-height:auto;align-items:flex-end;padding-top:clamp(14rem,62vw,20rem)}
  .page-hero-bg{width:100%;height:78%;bottom:auto}
  .page-hero-bg img{filter:brightness(.7) saturate(.92);-webkit-mask-image:linear-gradient(0deg,transparent 0%,#000 55%);mask-image:linear-gradient(0deg,transparent 0%,#000 55%);-webkit-mask-composite:source-over;mask-composite:add}
  .hero-veil{background:linear-gradient(0deg,rgba(9,9,10,1) 0%,rgba(9,9,10,.3) 40%,rgba(9,9,10,0) 70%)}
}
.hero-links{display:flex;flex-wrap:wrap;gap:.75rem 2rem;margin-top:1.75rem}
.hero-links .text-link{margin-top:0}
.case .case-cta{align-self:flex-start;margin-top:1.25rem}
.half .actions .btn{padding:0 1.4rem}
.header-cta{white-space:nowrap}
@media (max-width:68rem){.header-cta{padding:0 .9rem;letter-spacing:.12em}}
@media (max-width:56rem){.header-cta{display:none}}

/* ===================== Prestations et formations ===================== */
.booking-options:not(.single){grid-template-columns:repeat(auto-fit,minmax(17rem,1fr))}
.booking-options.quad{grid-template-columns:repeat(auto-fit,minmax(15rem,1fr))}
.booking-option .row{gap:.6rem}
.booking-option .row .btn{padding:0 1.1rem}
.booking-option .desc a{color:var(--texte)}
.bk-note{border-left:1px solid var(--champ);padding:.3rem 0 .3rem 1rem;margin:0 0 1.75rem;font-size:.92rem;color:var(--texte-2);font-weight:300}
.bk-credit .fine{margin-top:.6rem}
.cases.modules .case{padding-top:clamp(2rem,3.5vw,2.75rem)}
.credits-fields{margin-top:2rem;grid-template-columns:1fr 1fr}
.credits-form .sub-plan input{top:1.4rem}
.credit-count{font-weight:300;font-size:2.4rem;line-height:1;color:var(--champ-2);font-feature-settings:"lnum"}
.credit-hist li{display:flex;justify-content:space-between;gap:1rem;font-size:.95rem}
.credit-hist strong{font-weight:400;color:var(--champ-2)}
.section.dark .pledges{border-top-color:var(--ligne-2)}
@media (max-width:56rem){.credits-fields{grid-template-columns:1fr}}
.booking-options.trio,.booking-options.six{grid-template-columns:repeat(3,1fr)}
.booking-options.quad{grid-template-columns:repeat(2,1fr)}
@media (max-width:64rem){.booking-options.trio,.booking-options.six{grid-template-columns:repeat(2,1fr)}}
@media (max-width:40rem){.booking-options.trio,.booking-options.quad,.booking-options.six{grid-template-columns:1fr}}

/* ===================== Assistance à distance ===================== */
.steps.steps-3{grid-template-columns:repeat(3,1fr)}
.dl-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:1px;background:var(--ligne);border:1px solid var(--ligne);max-width:60rem}
.dl-card{position:relative;display:flex;flex-direction:column;gap:.35rem;padding:2rem 1.75rem;background:var(--noir);text-decoration:none;transition:background-color .3s}
.dl-card:hover{background:var(--noir-3)}
.dl-ico{width:2rem;height:2rem;color:var(--champ);margin-bottom:.75rem}
.dl-ico svg{width:100%;height:100%}
.dl-name{font-weight:300;font-size:1.6rem}
.dl-sub{font-size:.9rem;color:var(--texte-3);font-weight:300}
.dl-tag{display:none;position:absolute;top:1.25rem;right:1.25rem;font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--champ);border:1px solid rgba(205,191,159,.45);padding:.25rem .5rem}
.dl-card.is-detected{background:var(--noir-3);box-shadow:inset 0 0 0 1px rgba(205,191,159,.55)}
.dl-card.is-detected .dl-tag{display:block}
.dl-pending{max-width:40rem;border-left:1px solid var(--champ);padding-left:1.25rem;color:var(--texte-2)}
@media (max-width:60rem){.steps.steps-3{grid-template-columns:1fr}}
.remote-conf{margin-top:2rem;max-width:60rem;border:1px solid var(--ligne);padding:1.75rem}
.remote-conf dl{margin:1.25rem 0 1rem}
.remote-conf dl div{display:grid;grid-template-columns:8rem 1fr;gap:1rem;align-items:center;padding:.9rem 0;border-top:1px solid var(--ligne)}
.remote-conf dt{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--texte-3)}
.remote-conf dd{margin:0;display:flex;gap:1rem;align-items:center;flex-wrap:wrap;min-width:0}
.remote-conf code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9rem;color:var(--champ-2);word-break:break-all;flex:1;min-width:12rem}
@media (max-width:40rem){.remote-conf dl div{grid-template-columns:1fr}}

/* ===================== Sélecteur de devise ===================== */
.cur{display:inline-flex;align-items:center;border:1px solid var(--ligne-2);border-radius:999px;padding:2px}
.cur button{font:500 .68rem/1 var(--font);letter-spacing:.14em;border:0;background:transparent;color:var(--texte-3);padding:.45rem .7rem;border-radius:999px;cursor:pointer;transition:color .3s,background-color .3s;font-feature-settings:"lnum"}
.cur button:hover{color:var(--texte)}
.cur button[aria-pressed="true"]{background:var(--texte);color:var(--noir)}
.mnav-prefs{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1.5rem}
.mnav-prefs .lang{margin-top:0}
@media (max-width:74rem){.header-tools > .cur{display:none}}
@media (max-width:100rem){
  .site-header .wrap{gap:1.25rem}
  .nav-links{gap:1.35rem}
  .nav-links a{letter-spacing:.14em}
  .header-tools{gap:1rem}
  .brand-name{letter-spacing:.26em}
}
@media (max-width:84rem){
  .nav-links{gap:1rem}
  .nav-links a{letter-spacing:.1em;font-size:.72rem}
  .header-cta{padding:0 .85rem;letter-spacing:.1em}
}
.site-header .wrap{gap:1.25rem}
.nav-links{gap:1.35rem}
.nav-links a{letter-spacing:.14em}
.header-tools{gap:1rem}
@media (max-width:72rem){
  .nav{display:none}
  .mnav{display:block}
  .header-tools > .cur{display:inline-flex}
}
@media (max-width:56rem){.header-tools > .cur{display:none}}
.header-wa{display:none}
.mobile-bar{transition:transform .45s cubic-bezier(.2,.7,.2,1),opacity .45s}
.mobile-bar.is-hidden{transform:translateY(110%);opacity:0;pointer-events:none}
@media (prefers-reduced-motion:reduce){.mobile-bar{transition:none}}

/* ===================== Titres en Michroma ===================== */
@font-face{font-family:"Michroma";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/michroma-latin-400-normal.woff2) format("woff2")}
:root{--display:"Michroma","Jost","Futura",system-ui,sans-serif}
.hero h1,.page-hero h1,.section-head h2,.split-head h2,.statement,.half h2,.about h2,.conditions h2,.contact h2,.pro h3,
.tarifs caption,.client-h2,.admin-title,.center-page h1,.pay-aside h2,.form-title,.prose h2,.bk-done h3{font-family:var(--display);font-weight:400;letter-spacing:-.01em}
.hero h1{font-size:clamp(1.9rem,4.1vw,3.6rem);line-height:1.2;max-width:19ch}
.page-hero h1{font-size:clamp(1.75rem,3.7vw,3.2rem);line-height:1.22;max-width:20ch}
.section-head h2,.split-head h2,.about h2,.conditions h2,.tarifs caption{font-size:clamp(1.45rem,2.6vw,2.3rem);line-height:1.25}
.statement{font-size:clamp(1.35rem,2.4vw,2.15rem);line-height:1.35;max-width:30ch}
.half h2{font-size:clamp(1.45rem,2.4vw,2.1rem);line-height:1.25}
.contact h2{font-size:clamp(1.7rem,3.1vw,2.7rem);line-height:1.22;max-width:16ch}
.pro h3{font-size:clamp(1.3rem,2.2vw,1.9rem);line-height:1.25}
.center-page h1{font-size:clamp(1.6rem,3.2vw,2.5rem);line-height:1.25}
.client-h2,.pay-aside h2,.prose h2{font-size:clamp(1.2rem,1.8vw,1.5rem);line-height:1.3}
.form-title{font-size:clamp(1.15rem,1.7vw,1.45rem);line-height:1.3}
.admin-title{font-size:1.9rem}
.bk-done h3{font-size:1.4rem}
.brand-name{font-family:var(--display);font-size:.82rem;letter-spacing:.2em}
.brand-name small{font-family:var(--font)}
.wordmark{font-family:var(--display);letter-spacing:.04em;font-size:clamp(2.6rem,10.5vw,9rem)}
@media (max-width:34rem){.wordmark{letter-spacing:0}}
.hero .hero-copy{max-width:56rem}
.hero h1{font-size:clamp(1.9rem,3.5vw,3.15rem);max-width:none}
.hero .sub{max-width:34rem}
.page-hero.has-img h1{max-width:18ch}

/* ===================== Michroma pour tous les titres ===================== */
h1,h2,h3,h4,.plan-name,.sub-name,.faq summary,.dl-name,.zones dt,.list-title,.site-footer h2{font-family:var(--display);font-weight:400}
h3{letter-spacing:-.005em;line-height:1.3}
.pledges h3{font-size:clamp(1.02rem,1.5vw,1.3rem)}
.case h3{font-size:clamp(1rem,1.35vw,1.18rem)}
.booking-option h3{font-size:clamp(1rem,1.35vw,1.2rem)}
.steps h3{font-size:clamp(.98rem,1.25vw,1.1rem)}
.split-head h3,.pro h3{font-size:clamp(1.2rem,2vw,1.7rem)}
.client-sub h3,.bk-done h3{font-size:1.15rem}
.prose h3{font-size:1rem;line-height:1.4}
.faq summary{font-size:clamp(.95rem,1.3vw,1.1rem);line-height:1.45;letter-spacing:0}
.plan-name,.sub-name{font-size:.7rem;letter-spacing:.2em}
.list-title,.site-footer h2{font-size:.66rem;letter-spacing:.2em}
.dl-name{font-size:1.2rem}
.zones dt{font-size:1.02rem;letter-spacing:0}
.help h3,.admin h3{font-family:var(--font)}

/* ===================== Michroma : espacement des lettres un peu plus ouvert ===================== */
h1,h2,h3,h4,.hero h1,.page-hero h1,.section-head h2,.split-head h2,.statement,.half h2,.about h2,.conditions h2,.contact h2,.pro h3,
.tarifs caption,.client-h2,.admin-title,.center-page h1,.pay-aside h2,.form-title,.prose h2,.bk-done h3{letter-spacing:.03em}
h3,.prose h3,.faq summary,.dl-name,.zones dt{letter-spacing:.035em}
.plan-name,.sub-name,.list-title,.site-footer h2{letter-spacing:.26em}
.brand-name{letter-spacing:.24em}
.wordmark{letter-spacing:.07em}
.hero .hero-copy{max-width:60rem}
.hero h1{font-size:clamp(1.85rem,3.3vw,3rem)}
.brand-name{letter-spacing:.2em}
@media (max-width:34rem){.hero h1{font-size:1.62rem;letter-spacing:.02em}.page-hero h1{letter-spacing:.02em}}

/* ===================== Guide pas à pas ===================== */
.guide{max-width:60rem;border:1px solid var(--ligne);background:var(--noir)}
.guide-tabs{display:flex;border-bottom:1px solid var(--ligne)}
.guide-tabs button{flex:1;padding:1.1rem 1rem;background:transparent;border:0;border-right:1px solid var(--ligne);color:var(--texte-3);font:500 .72rem/1 var(--font);letter-spacing:.22em;text-transform:uppercase;cursor:pointer;transition:color .3s,background-color .3s}
.guide-tabs button:last-child{border-right:0}
.guide-tabs button:hover{color:var(--texte)}
.guide-tabs button[aria-selected="true"]{color:var(--champ-2);background:var(--noir-3);box-shadow:inset 0 -1px 0 var(--champ)}
.guide-panel{padding:clamp(1.5rem,3.5vw,2.75rem)}
.guide-panel .actions{margin:0 0 2rem}
.guide-steps{list-style:none;margin:0;padding:0;counter-reset:gs}
.guide-steps li{position:relative;padding:1.25rem 0 1.25rem 3.5rem;border-top:1px solid var(--ligne);counter-increment:gs}
.guide-steps li::before{content:counter(gs,decimal-leading-zero);position:absolute;left:0;top:1.3rem;font:400 .95rem/1 var(--display);letter-spacing:.05em;color:var(--champ)}
.guide-steps h3{font-size:clamp(.98rem,1.3vw,1.1rem)}
.guide-steps p{margin-top:.5rem;color:var(--texte-2);font-weight:300;max-width:42rem}
.guide-version{margin-top:1rem}
.guide-warning{max-width:60rem;margin-top:2rem;padding:1.5rem 1.75rem;border:1px solid rgba(232,180,162,.35);background:rgba(232,180,162,.05)}
.guide-warning h3{font-size:1rem;color:#E8B4A2}
.guide-warning p{margin-top:.6rem;color:var(--texte-2);font-weight:300}
.page-hero-copy > .text-link{display:inline-block;margin-top:1.5rem}

/* Défilement vers une section : tenir compte de l'en-tête fixe */
/* Ancres : la cible s'arrête sous l'en-tête fixe (pas de défilement animé global, que Chrome abandonne pendant le chargement) */
[id]{scroll-margin-top:calc(6.5rem + env(safe-area-inset-top,0px))}
@media (max-width:56rem){[id]{scroll-margin-top:calc(5.5rem + env(safe-area-inset-top,0px))}}
.sub-launch{font-size:.88rem;font-weight:300;color:var(--champ-2)}
.sub-launch strong{font-weight:400;color:var(--champ-2)}

/* ===================== Nouvelles offres ===================== */
.more-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(18rem,1fr));gap:1px;background:var(--ligne);border:1px solid var(--ligne)}
.more-card{display:flex;flex-direction:column;gap:.9rem;padding:clamp(1.75rem,3vw,2.5rem);background:var(--noir);text-decoration:none;color:var(--texte);transition:background-color .3s}
.more-card:hover{background:var(--noir-3)}
.more-card h3{font-size:clamp(1.1rem,1.6vw,1.35rem)}
.more-card p{color:var(--texte-2);font-weight:300;max-width:40rem}
.more-card .link-or{margin-top:auto;align-self:flex-start}
.more-wide h3{font-size:clamp(1.15rem,2vw,1.6rem);max-width:34ch}
.offer-box{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:1px;background:var(--ligne);border:1px solid var(--ligne);margin:2.5rem 0 1.25rem;max-width:60rem}
.offer-box > div{padding:1.75rem;background:var(--noir)}
.offer-price{font-weight:300;font-size:clamp(1.8rem,3vw,2.4rem);line-height:1.1;font-feature-settings:"lnum"}
.offer-price small{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--texte-3)}
.offer-box .fine{margin-top:.9rem}
.gift-choice{margin-top:1.75rem}
.redeem-form{max-width:46rem}
/* Carte cadeau */
.gift-page .section{padding-top:clamp(3rem,8vw,6rem)}
.gift-card{position:relative;max-width:40rem;margin:0 auto;aspect-ratio:1.6/1;padding:clamp(1.5rem,4vw,2.75rem);background:radial-gradient(120% 90% at 85% 0%,rgba(205,191,159,.16),transparent 55%),#0F0F11;border:1px solid rgba(205,191,159,.45);display:flex;flex-direction:column;justify-content:space-between;box-shadow:0 40px 80px -30px rgba(0,0,0,.9)}
.gift-top{display:flex;align-items:center;gap:.8rem}
.gift-mark{font-family:Georgia,serif;font-size:1.6rem;color:var(--champ)}
.gift-brand{font-family:var(--display);font-size:.85rem;letter-spacing:.24em;color:var(--texte)}
.gift-brand small{font-family:var(--font);color:var(--champ);letter-spacing:.2em}
.gift-kicker{font-size:.68rem;letter-spacing:.26em;text-transform:uppercase;color:var(--champ)}
.gift-for{font-family:var(--display);font-size:clamp(1.2rem,3vw,1.8rem);letter-spacing:.03em}
.gift-what{font-weight:300;font-size:1.05rem;color:var(--texte-2)}
.gift-msg{font-weight:300;font-style:italic;color:var(--texte-2);max-width:30rem}
.gift-from{font-size:.9rem;color:var(--texte-3)}
.gift-code{display:flex;align-items:baseline;gap:1rem;border-top:1px solid rgba(205,191,159,.3);padding-top:.9rem}
.gift-code span{font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;color:var(--texte-3)}
.gift-code strong{font-family:var(--display);font-weight:400;font-size:clamp(1rem,2.4vw,1.3rem);letter-spacing:.12em;color:var(--champ-2)}
.gift-how{font-size:.78rem;color:var(--texte-3)}
.gift-actions{justify-content:center;margin-top:2rem}
.gift-empty{text-align:center}
.gift-empty .actions{justify-content:center}
@media print{
  body{background:#fff}
  .site-header,.site-footer,.mobile-bar,.help,.gift-actions,.skip{display:none !important}
  .gift-card{box-shadow:none;-webkit-print-color-adjust:exact;print-color-adjust:exact;margin-top:2cm}
}

/* ===================== IA et automatisation ===================== */
.ai-band{border-top:1px solid var(--ligne);border-bottom:1px solid var(--ligne);background:radial-gradient(80% 120% at 100% 0%,rgba(205,191,159,.08),transparent 60%),var(--noir)}
.ai-band .bk-label{margin-bottom:1.5rem}
.ai-points{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--ligne);border:1px solid var(--ligne);margin:2.5rem 0}
.ai-points > div{padding:1.75rem;background:var(--noir)}
.ai-points h3{font-size:clamp(1rem,1.4vw,1.15rem)}
.ai-points p{margin-top:.6rem;color:var(--texte-2);font-weight:300}
.offer-5{max-width:none;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr))}
.offer-5 .offer-price{font-size:clamp(1.4rem,2.2vw,1.9rem)}
@media (max-width:56rem){.ai-points{grid-template-columns:1fr}}
/* Menu à sept entrées : espacement légèrement resserré */
.nav-links{gap:1.1rem}
.nav-links a{letter-spacing:.12em}
.header-tools{gap:.85rem}
@media (max-width:84rem){.nav-links{gap:.9rem}.nav-links a{letter-spacing:.09em}}
.offer-5{grid-template-columns:repeat(4,1fr)}
.offer-5 > div:last-child{grid-column:1/-1;display:grid;grid-template-columns:minmax(14rem,1fr) auto minmax(16rem,2fr);gap:.5rem 2.5rem;align-items:baseline;background:linear-gradient(90deg,rgba(205,191,159,.07),transparent 70%),var(--noir)}
.offer-5 > div:last-child .fine{margin-top:0}
@media (max-width:72rem){.offer-5{grid-template-columns:repeat(2,1fr)}}
@media (max-width:48rem){.offer-5{grid-template-columns:1fr}.offer-5 > div:last-child{display:block}.offer-5 > div:last-child .fine{margin-top:.9rem}}

/* ===================== Articles ===================== */
.article-hero h1{font-size:clamp(1.45rem,2.7vw,2.35rem);line-height:1.3;max-width:30ch}
.article{max-width:46rem}
.article-meta{font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--texte-3);margin-bottom:2rem}
.article-meta a{color:var(--champ-2)}
.article h2{margin-top:2.5rem}
.article .actions{margin-top:2.5rem}
.more-card h3{font-size:clamp(.98rem,1.2vw,1.12rem);hyphens:auto;overflow-wrap:break-word}
.more-wide h3{font-size:clamp(1.1rem,1.8vw,1.45rem)}
.page-hero.has-img.article-hero h1{max-width:30ch}
.article-hero .page-hero-copy{max-width:54rem}.article-hero h1{font-size:clamp(1.4rem,2.4vw,2.1rem)}
/* Résultats de recherche dans l'assistant */
.help-res-list{display:flex;flex-direction:column;gap:.5rem;margin-top:.7rem}
.help-res{display:flex;flex-direction:column;gap:.2rem;padding:.65rem .75rem;border:1px solid var(--ligne-2);text-decoration:none;transition:border-color .3s,background-color .3s}
.help-res:hover{border-color:var(--champ);background:rgba(205,191,159,.06)}
.help-res strong{font-weight:400;font-size:.88rem;color:var(--champ-2)}
.help-res span{font-size:.82rem;line-height:1.45;color:var(--texte-2)}
.help-more{display:block;margin-top:.8rem;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--texte-3)}
.bk-done:focus{outline:none}

/* Administration : message après une action */
.admin-flash{display:flex;gap:1rem;align-items:baseline;margin:1.5rem 0 .5rem;padding:1rem 1.25rem;border:1px solid;font-weight:300;line-height:1.5}
.admin-flash strong{font-weight:500;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;white-space:nowrap}
.admin-flash.is-ok{border-color:rgba(146,196,150,.55);background:rgba(146,196,150,.08);color:#CFE6D1}
.admin-flash.is-ok strong{color:#9BD3A1}
.admin-flash.is-err{border-color:rgba(232,140,120,.6);background:rgba(232,140,120,.08);color:#F2CFC6}
.admin-flash.is-err strong{color:#E8957F}
.admin-resend{margin-bottom:.6rem}

/* Tarifs : colonne de la devise choisie mise en avant, une seule colonne sur mobile */
.tarifs-dual th.col-ch,.tarifs-dual th.col-fr,.tarifs-dual td.col-ch,.tarifs-dual td.col-fr{transition:opacity .3s,color .3s}
html[data-region="ch"] .tarifs-dual .col-fr,html[data-region="fr"] .tarifs-dual .col-ch{opacity:.38}
html[data-region="ch"] .tarifs-dual th.col-ch,html[data-region="fr"] .tarifs-dual th.col-fr{color:var(--champ-2);box-shadow:inset 0 -1px 0 var(--champ)}
.tarifs-note{display:none}
@media (max-width:40rem){
  html[data-region="ch"] .tarifs-dual .col-fr,html[data-region="fr"] .tarifs-dual .col-ch{display:none}
  .tarifs-note{display:block}
}
/* Menu mobile ouvert : la barre d'appel ne recouvre plus le bas du menu */
body:has(.mnav[open]) .mobile-bar{transform:translateY(110%);opacity:0;pointer-events:none}
@media (max-width:72rem){.mnav-panel{padding-bottom:calc(6rem + env(safe-area-inset-bottom,0px))}}
@media (max-width:40rem){
  .tarifs-dual{min-width:0;table-layout:auto}
  .tarifs-dual caption{font-size:1.3rem;overflow-wrap:break-word}
  .tarifs-dual th[scope="row"]{width:46%}
}
.tarifs-note{margin-bottom:1.25rem}
