/* Concept : le papier à en-tête de l'hôtel — filet doré en dégradé, fleur de lys, script marine — devenu une mise en scène : rideau d'ouverture, façade au couchant, suite royale en vidéo. */
:root{
  --paper:#FCFBF8;
  --stone:#F2EEE6;
  --navy:#17213A;
  --navy-2:#24315A;
  --night:#0E1426;
  --ink:#1E2230;
  --muted:#5D6270;
  --line:#E2DACB;
  --gold:#A87A2C;
  --gold-light:#E7BE66;
  --gold-rule:linear-gradient(90deg,#6E4318 0%,#B8862F 45%,#ECC56E 100%);
  --gold-shine:linear-gradient(100deg,#B8862F 0%,#F6D98E 40%,#FFF3CF 50%,#F6D98E 60%,#B8862F 100%);
  --on-navy:#F4EFE4;
  --on-navy-muted:#B9BFCF;
  --wa:#1F8F4E;

  --f-display:"Cormorant Garamond","Cormorant",Georgia,"Times New Roman",serif;
  --f-body:"Jost","Avenir Next","Segoe UI",Helvetica,Arial,sans-serif;

  --step--1:.875rem; --step-0:1.0625rem; --step-1:1.3rem; --step-2:1.75rem; --step-3:clamp(2rem,3.6vw,2.6rem); --step-4:clamp(2.6rem,6.2vw,5rem);
  --gutter:clamp(16px,4vw,48px);
  --maxw:1180px;
  --ease:cubic-bezier(.2,.7,.1,1);
  color-scheme:light;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--f-body);font-size:var(--step-0);line-height:1.65;font-weight:400;overflow-x:hidden}
img,video{max-width:100%;display:block}
[hidden]{display:none!important}
a{color:inherit}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
h1,h2,h3{font-family:var(--f-display);font-weight:500;line-height:1.08;text-wrap:balance;margin:0;color:var(--navy)}
p{margin:0}
.wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter)}
.eyebrow{font-size:var(--step--1);letter-spacing:.22em;text-transform:uppercase;color:var(--gold);font-weight:500}
.rule{height:3px;background:var(--gold-rule);border:0;margin:0}
.shine{background:var(--gold-shine);background-size:250% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shine 6s linear infinite}
@keyframes shine{from{background-position:100% 0}to{background-position:-150% 0}}

/* Boutons */
.btn{position:relative;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;gap:.55em;padding:.9em 1.5em;font:500 .92rem/1 var(--f-body);letter-spacing:.08em;text-transform:uppercase;text-decoration:none;border:1px solid transparent;cursor:pointer;transition:background .25s,color .25s,border-color .25s,transform .25s var(--ease)}
.btn::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.45) 50%,transparent 70%);transform:translateX(-120%);transition:transform .7s var(--ease)}
.btn:hover::after{transform:translateX(120%)}
.btn:hover{transform:translateY(-2px)}
.btn-gold{background:var(--navy);color:var(--on-navy);border-color:var(--navy)}
.btn-gold:hover{background:var(--navy-2)}
.btn-line{background:transparent;color:var(--navy);border-color:var(--navy)}
.btn-line:hover{background:var(--navy);color:var(--on-navy)}
.btn-or{background:var(--gold-rule);color:var(--night);border:0}
.btn-ghost{background:rgba(255,255,255,.08);color:#fff;border-color:rgba(255,255,255,.55);backdrop-filter:blur(6px)}
.btn-ghost:hover{background:#fff;color:var(--navy)}
.btn-wa{background:var(--wa);color:#fff}

/* Rideau d'ouverture (CSS seul : se retire même sans JavaScript) */
.curtain{position:fixed;inset:0;z-index:200;pointer-events:none;display:grid;place-items:center}
.curtain::before,.curtain::after{content:"";position:absolute;top:0;bottom:0;width:50.5%;background:var(--night);animation:curtain 1.1s var(--ease) 1.15s forwards}
.curtain::before{left:0;border-right:1px solid rgba(231,190,102,.5)}
.curtain::after{right:0;--dir:1;animation-name:curtainR}
.curtain-mark{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:1rem;animation:markOut .5s ease 1s forwards}
.curtain-mark img{width:150px;height:auto;filter:drop-shadow(0 0 22px rgba(231,190,102,.35));animation:markIn 1s var(--ease) both;background:var(--paper);padding:14px 18px;border-radius:2px}
.curtain-mark i{display:block;height:2px;width:0;background:var(--gold-rule);animation:line .9s var(--ease) .15s forwards}
@keyframes curtain{to{transform:translateX(-100%)}}
@keyframes curtainR{to{transform:translateX(100%)}}
@keyframes markIn{from{opacity:0;transform:scale(.85)}to{opacity:1;transform:none}}
@keyframes markOut{to{opacity:0;transform:scale(1.06)}}
@keyframes line{to{width:180px}}

/* En-tête */
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:rgba(252,251,248,.92);backdrop-filter:saturate(1.2) blur(10px);-webkit-backdrop-filter:saturate(1.2) blur(10px);border-bottom:1px solid var(--line);transition:box-shadow .3s}
.top.scrolled{box-shadow:0 8px 30px rgba(23,33,58,.08)}
.top .wrap{display:flex;align-items:center;gap:1.1rem;min-height:74px}
.brand img{height:52px;width:auto;transition:height .3s}
.top.scrolled .brand img{height:44px}
.nav{display:flex;gap:1.3rem;white-space:nowrap;margin-left:auto;align-items:center}
.nav a{position:relative;text-decoration:none;font-size:.88rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink)}
.nav a::after{content:"";position:absolute;left:0;right:100%;bottom:-6px;height:1px;background:var(--gold);transition:right .35s var(--ease)}
.nav a:hover::after,.nav a.on::after{right:0}
.socials{display:flex;gap:.35rem;align-items:center}
.socials a{display:grid;place-items:center;width:34px;height:34px;color:var(--navy);border:1px solid var(--line);transition:background .25s,color .25s,transform .25s}
.socials a:hover{background:var(--navy);color:var(--gold-light);transform:translateY(-2px)}
.socials svg{width:16px;height:16px;fill:currentColor}
.lang{display:flex;border:1px solid var(--line)}
.lang button{border:0;background:transparent;font:500 .8rem/1 var(--f-body);letter-spacing:.1em;padding:.55em .7em;cursor:pointer;color:var(--muted)}
.lang button[aria-pressed="true"]{background:var(--navy);color:var(--on-navy)}
.top .btn{padding:.75em 1.1em;font-size:.8rem}
.burger{display:none;margin-left:auto;background:none;border:1px solid var(--line);width:44px;height:44px;cursor:pointer;color:var(--navy);font-size:1.3rem}
.progress{position:absolute;left:0;bottom:-1px;height:2px;width:100%;background:var(--gold-rule);transform-origin:left;transform:scaleX(var(--p,0))}
@media (max-width:1320px){.top .socials{display:none}}
@media (max-width:960px){
  .burger{display:block}
  .nav{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:flex-start;gap:0;background:var(--paper);border-bottom:1px solid var(--line);padding:.5rem var(--gutter) 1rem;margin:0}
  .nav.open{display:flex}
  .nav a{padding:.75rem 0;width:100%;border-bottom:1px solid var(--line)}
  .nav a::after{display:none}
  .top .btn-desk{display:none}
  .lang{margin-left:.5rem}
}

/* Héros plein cadre */
.hero{position:relative;min-height:clamp(560px,88vh,860px);display:flex;align-items:flex-end;overflow:hidden;color:#fff;isolation:isolate}
.hero-bg{position:absolute;inset:-4%;z-index:-2;transform:translate3d(var(--mx,0),var(--my,0),0)}
.hero-bg img{width:100%;height:100%;object-fit:cover;object-position:50% 45%;animation:kenburns 22s ease-out both}
@keyframes kenburns{from{transform:scale(1.14)}to{transform:scale(1)}}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(14,20,38,.25) 0%,rgba(14,20,38,0) 30%,rgba(14,20,38,.35) 60%,rgba(14,20,38,.88) 100%),linear-gradient(90deg,rgba(14,20,38,.55) 0%,rgba(14,20,38,0) 60%)}
.hero-inner{width:100%;padding-block:clamp(6rem,14vh,9rem) clamp(1.5rem,4vw,2.5rem);display:grid;gap:1.4rem}
.hero .eyebrow{color:var(--gold-light)}
.hero h1{color:#fff;font-size:var(--step-4);font-weight:400;max-width:15ch;letter-spacing:-.01em}
.hero h1 em{font-style:italic}
.hero-lead{max-width:36rem;color:rgba(255,255,255,.86);font-size:1.12rem}
.hero-ctas{display:flex;flex-wrap:wrap;gap:.8rem}
.hero .btn-gold{background:var(--paper);color:var(--navy);border-color:var(--paper)}
.rise{animation:rise 1s var(--ease) both}
.d1{animation-delay:1.6s}.d2{animation-delay:1.75s}.d3{animation-delay:1.9s}.d4{animation-delay:2.05s}.d5{animation-delay:2.2s}
@keyframes rise{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
.facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:1.2rem;border-top:1px solid rgba(255,255,255,.28)}
.fact{padding:1rem 1rem 0 0}
.fact+.fact{padding-left:1rem;border-left:1px solid rgba(255,255,255,.2)}
.fact b{display:block;font-family:var(--f-display);font-size:clamp(1.9rem,3.4vw,2.6rem);font-weight:500;color:#fff;line-height:1;font-variant-numeric:lining-nums tabular-nums}
.fact span{font-size:.8rem;color:rgba(255,255,255,.75);letter-spacing:.04em;line-height:1.35;display:block;margin-top:.35rem}
.scroll-hint{position:absolute;right:var(--gutter);bottom:2rem;writing-mode:vertical-rl;font-size:.72rem;letter-spacing:.3em;text-transform:uppercase;color:rgba(255,255,255,.7);display:flex;align-items:center;gap:.8rem}
.scroll-hint::after{content:"";width:1px;height:60px;background:linear-gradient(var(--gold-light),transparent);animation:drip 2s ease-in-out infinite}
@keyframes drip{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
@media (max-width:760px){.facts{grid-template-columns:repeat(2,minmax(0,1fr))}.fact:nth-child(3){padding-left:0;border-left:0}.scroll-hint{display:none}}

/* Sections */
section{scroll-margin-top:84px}
.sec{padding-block:clamp(4rem,9vw,7rem)}
.sec-alt{background:var(--stone)}
.sec-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:1.5rem 4rem;align-items:end;margin-bottom:clamp(2rem,4vw,3.2rem)}
.sec-head h2{font-size:var(--step-3)}
.sec-head p{color:var(--muted);max-width:36rem}
.sec-head .eyebrow{margin-bottom:.8rem}
@media (max-width:760px){.sec-head{grid-template-columns:1fr}}

/* Apparition au défilement (navigateurs récents ; ailleurs le contenu reste simplement visible) */
@supports (animation-timeline:view()){
  .reveal{animation:reveal linear both;animation-timeline:view();animation-range:entry 0% entry 55%}
  .reveal-l{animation:revealL linear both;animation-timeline:view();animation-range:entry 0% entry 60%}
  .reveal-r{animation:revealR linear both;animation-timeline:view();animation-range:entry 0% entry 60%}
  .band img{animation:parallax linear both;animation-timeline:view()}
  .unveil{animation:unveil linear both;animation-timeline:view();animation-range:entry 0% cover 40%}
}
@keyframes reveal{from{opacity:0;transform:translateY(46px)}to{opacity:1;transform:none}}
@keyframes revealL{from{opacity:0;transform:translateX(-50px)}to{opacity:1;transform:none}}
@keyframes revealR{from{opacity:0;transform:translateX(50px)}to{opacity:1;transform:none}}
@keyframes parallax{from{transform:translateY(-12%) scale(1.15)}to{transform:translateY(12%) scale(1.15)}}
@keyframes unveil{from{clip-path:inset(12% 12% 12% 12%)}to{clip-path:inset(0 0 0 0)}}

/* Promesse */
.promise{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line)}
.promise div{padding:1.6rem 1.6rem 0 0;display:flex;flex-direction:column;gap:.5rem;min-width:0}
.promise div+div{padding-left:1.6rem;border-left:1px solid var(--line)}
.promise .num{font-family:var(--f-display);font-style:italic;color:var(--gold);font-size:1.1rem}
.promise h3{font-size:var(--step-2)}
.promise p{color:var(--muted)}
@media (max-width:760px){.promise{grid-template-columns:1fr}.promise div+div{padding-left:0;border-left:0;border-top:1px solid var(--line);margin-top:1.6rem}}

/* Chambres */
.rooms{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(1.5rem,3vw,2.5rem)}
.room{background:var(--paper);display:flex;flex-direction:column;min-width:0;border:1px solid var(--line);transition:transform .4s var(--ease),box-shadow .4s;transform:perspective(900px) rotateX(var(--rx,0)) rotateY(var(--ry,0))}
.room:hover{box-shadow:0 24px 50px rgba(23,33,58,.14)}
.room-pics{display:grid;grid-template-columns:2fr 1fr;gap:4px;overflow:hidden}
.room-pics img{width:100%;height:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .8s var(--ease)}
.room-pics img:first-child{grid-row:span 2;aspect-ratio:auto}
.room:hover .room-pics img:first-child{transform:scale(1.05)}
.room-body{padding:1.6rem;display:flex;flex-direction:column;gap:1rem;flex:1}
.room-top{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;flex-wrap:wrap}
.room h3{font-size:var(--step-2)}
.price{font-family:var(--f-display);font-size:1.9rem;color:var(--navy);white-space:nowrap;font-variant-numeric:lining-nums}
.price small{font-family:var(--f-body);font-size:.8rem;color:var(--muted);letter-spacing:.04em;margin-left:.3rem}
.ticks{list-style:none;padding:0;margin:0;display:grid;gap:.45rem}
.ticks li{padding-left:1.4rem;position:relative}
.ticks li::before{content:"";position:absolute;left:0;top:.62em;width:.6rem;height:2px;background:var(--gold)}
.room .btn{margin-top:auto;align-self:flex-start}
.badge{display:inline-block;font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;background:var(--gold-rule);color:var(--night);padding:.35em .7em;font-weight:500}
.stay-info{margin-top:2rem;display:flex;flex-wrap:wrap;gap:.6rem 2.2rem;font-size:.95rem;color:var(--muted)}
.stay-info b{color:var(--navy);font-weight:500}
@media (max-width:760px){.rooms{grid-template-columns:1fr}}

/* Suite Royale — vidéo */
.royal{position:relative;background:radial-gradient(120% 90% at 80% 10%,#24315A 0%,var(--night) 60%);color:var(--on-navy);overflow:hidden}
.royal::before{content:"";position:absolute;right:-8%;top:50%;width:min(70vw,780px);aspect-ratio:1;transform:translateY(-50%);background:url("../img/favicon.png") center/contain no-repeat;opacity:.05;pointer-events:none}
.royal-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(2rem,6vw,6rem);align-items:center;position:relative}
.royal h2{color:var(--on-navy);font-size:clamp(2.4rem,5vw,4rem);font-weight:400}
.royal .eyebrow{color:var(--gold-light)}
.royal-copy{display:flex;flex-direction:column;gap:1.4rem;min-width:0}
.royal-copy>p{color:var(--on-navy-muted);max-width:32rem}
.royal-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:.8rem 1.4rem}
.royal-list li{border-top:1px solid rgba(231,190,102,.3);padding-top:.7rem;font-size:.95rem;color:var(--on-navy)}
.royal-list small{display:block;font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-light);margin-bottom:.15rem}
.royal-price{font-family:var(--f-display);font-size:2.6rem;line-height:1}
.royal-price small{font-family:var(--f-body);font-size:.85rem;color:var(--on-navy-muted);margin-left:.4rem}
.royal-ctas{display:flex;flex-wrap:wrap;gap:.8rem}
.stage{position:relative;display:flex;justify-content:center;align-items:center;gap:clamp(.8rem,2vw,1.4rem);min-width:0}
.phone{position:relative;width:min(300px,62vw);aspect-ratio:9/16;padding:8px;background:var(--gold-rule);box-shadow:0 40px 80px rgba(0,0,0,.45),0 0 0 1px rgba(255,255,255,.08);transform:rotate(-2deg);transition:transform .6s var(--ease)}
.phone:hover{transform:rotate(0) scale(1.02)}
.phone video,.phone img{width:100%;height:100%;object-fit:cover;background:#000}
.phone .play{position:absolute;inset:8px;display:flex;align-items:flex-end;justify-content:center;padding-bottom:1.4rem;background:linear-gradient(transparent 55%,rgba(0,0,0,.6));border:0;cursor:pointer;color:#fff;font:500 .82rem/1 var(--f-body);letter-spacing:.14em;text-transform:uppercase}
.phone .play span{display:inline-flex;align-items:center;gap:.6rem}
.phone .play span::before{content:"";width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.18) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M8 5v14l11-7z'/%3E%3C/svg%3E") center/20px no-repeat;border:1px solid rgba(255,255,255,.6);animation:pulse 2s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(231,190,102,.6)}100%{box-shadow:0 0 0 16px rgba(231,190,102,0)}}
.side-shot{width:min(170px,30vw);height:auto;aspect-ratio:9/16;object-fit:cover;border:6px solid var(--paper);transform:rotate(4deg) translateY(30px);box-shadow:0 30px 60px rgba(0,0,0,.4)}
@media (max-width:860px){.royal-grid{grid-template-columns:1fr}.royal-list{grid-template-columns:1fr 1fr}}

/* Bande piscine */
.band{position:relative;overflow:hidden;height:clamp(280px,48vw,560px)}
.band img{width:100%;height:100%;object-fit:cover;object-position:50% 60%}
.band figcaption{position:absolute;left:var(--gutter);bottom:clamp(1.2rem,4vw,2.5rem);color:#fff;font-family:var(--f-display);font-style:italic;font-size:clamp(1.6rem,3.6vw,2.8rem);max-width:20ch;line-height:1.1;text-shadow:0 2px 24px rgba(0,0,0,.45)}
.band::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 50%,rgba(14,20,38,.55))}
.band figcaption{z-index:1}

/* Séminaires */
.seminar{background:var(--navy);color:var(--on-navy)}
.seminar h2,.seminar h3{color:var(--on-navy)}
.seminar .sec-head p{color:var(--on-navy-muted)}
.seminar .eyebrow{color:var(--gold-light)}
.sem-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(2rem,4vw,3.5rem);align-items:stretch}
.sem-photos{display:grid;grid-template-columns:2fr 1fr;grid-template-rows:1fr 1fr;gap:10px;height:100%;min-height:340px}
.sem-photos img{width:100%;height:100%;object-fit:cover}
.sem-photos img:first-child{grid-row:span 2}
.sem-list{display:grid;border-top:1px solid rgba(244,239,228,.18)}
.sem-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem;padding:1rem 0;border-bottom:1px solid rgba(244,239,228,.18);align-items:baseline}
.sem-row span{color:var(--on-navy-muted);font-size:.95rem}
.sem-row b{font-weight:500;color:var(--on-navy);display:block;font-size:1.05rem}
.sem-row .amt{font-family:var(--f-display);font-size:1.6rem;color:var(--gold-light);white-space:nowrap;font-variant-numeric:lining-nums}
.sem-incl{margin:1.4rem 0 0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem 1.5rem;font-size:.95rem;color:var(--on-navy-muted);list-style:none}
.sem-incl li::before{content:"✓";color:var(--gold-light);margin-right:.6rem}
.sem-cta{margin-top:1.8rem;display:flex;flex-wrap:wrap;gap:.8rem}
.seminar .btn-gold{background:var(--gold-light);color:var(--navy);border-color:var(--gold-light)}
.sem-note{margin-top:1rem;font-size:.85rem;color:var(--on-navy-muted)}
@media (max-width:860px){.sem-grid{grid-template-columns:1fr}.sem-incl{grid-template-columns:1fr}}

/* Restaurant */
.menu-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.5rem,3vw,2.5rem)}
.menu-col{min-width:0}
.menu-col h3{font-family:var(--f-body);font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin-bottom:.8rem;font-size:.9rem}
.dish{display:flex;align-items:baseline;gap:.5rem;padding:.45rem 0;transition:padding .3s var(--ease)}
.dish:hover{padding-left:.4rem}
.dish .n{font-family:var(--f-display);font-size:1.3rem;color:var(--navy)}
.dish .d{flex:1;border-bottom:1px dotted var(--line);transform:translateY(-.3em);min-width:1rem}
.dish .p{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.95rem}
.menu-foot{margin-top:2.2rem;display:flex;flex-wrap:wrap;gap:.8rem;align-items:center}
.menu-foot p{color:var(--muted);font-size:.92rem;margin-right:auto}
@media (max-width:860px){.menu-grid{grid-template-columns:1fr}}

/* Miss CI & réseaux */
.social-sec{background:var(--night);color:var(--on-navy);overflow:hidden}
.social-sec h2{color:var(--on-navy)}
.social-sec .eyebrow{color:var(--gold-light)}
.social-sec .sec-head p{color:var(--on-navy-muted)}
.tiktoks{display:grid;grid-template-columns:repeat(2,minmax(0,325px)) minmax(0,1fr);gap:clamp(1rem,3vw,2rem);align-items:start}
.tt{position:relative;aspect-ratio:9/16;background:#000;border:1px solid rgba(231,190,102,.4);overflow:hidden;min-width:0}
.tt iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.tt-face{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;gap:.6rem;padding:1.2rem;background-color:var(--navy);background-position:center;background-size:cover;border:0;color:#fff;text-align:left;cursor:pointer;font:inherit}
.tt-face b{font-family:var(--f-display);font-size:1.6rem;font-weight:500;line-height:1.1}
.tt-face small{font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-light)}
.tt-face .pl{width:64px;height:64px;border-radius:50%;align-self:center;margin-bottom:auto;margin-top:auto;background:rgba(255,255,255,.15) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M8 5v14l11-7z'/%3E%3C/svg%3E") center/26px no-repeat;border:1px solid rgba(255,255,255,.7);animation:pulse 2s infinite}
.tt-link{display:inline-block;margin-top:.6rem;font-size:.85rem;color:var(--gold-light)}
.follow{display:flex;flex-direction:column;gap:1rem;min-width:0}
.follow p{color:var(--on-navy-muted)}
.follow a.net{display:flex;align-items:center;gap:1rem;padding:1rem 1.1rem;border:1px solid rgba(244,239,228,.18);text-decoration:none;transition:background .3s,border-color .3s,transform .3s var(--ease)}
.follow a.net:hover{background:rgba(231,190,102,.08);border-color:var(--gold-light);transform:translateX(6px)}
.follow a.net svg{width:26px;height:26px;fill:var(--gold-light);flex:none}
.follow a.net b{display:block;font-weight:500}
.follow a.net span{font-size:.85rem;color:var(--on-navy-muted);overflow-wrap:anywhere}
@media (max-width:900px){.tiktoks{grid-template-columns:repeat(2,minmax(0,1fr))}.follow{grid-column:1/-1}}

/* Galerie défilante */
.marquee{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.marquee+.marquee{margin-top:12px}
.track{display:flex;gap:12px;width:max-content;animation:marquee 60s linear infinite}
.marquee.rev .track{animation-direction:reverse;animation-duration:70s}
.marquee:hover .track{animation-play-state:paused}
@keyframes marquee{to{transform:translateX(-50%)}}
.track button{flex:none;padding:0;border:0;background:none;cursor:zoom-in;overflow:hidden;height:clamp(180px,24vw,280px)}
.track img{height:100%;width:auto;aspect-ratio:3/2;object-fit:cover;transition:transform .6s var(--ease),filter .6s}
.track button:hover img{transform:scale(1.06);filter:brightness(1.08)}

/* Avis */
.reviews{display:grid;grid-template-columns:auto 1fr 1fr;gap:clamp(1.5rem,3vw,3rem);align-items:start}
.score{display:flex;flex-direction:column;gap:.3rem;padding-right:clamp(1rem,3vw,3rem);border-right:1px solid var(--line)}
.score b{font-family:var(--f-display);font-size:4.4rem;line-height:1;color:var(--navy);font-weight:500}
.score span{font-size:.85rem;color:var(--muted);letter-spacing:.04em}
blockquote{margin:0;display:flex;flex-direction:column;gap:.8rem;min-width:0}
blockquote p{font-family:var(--f-display);font-size:1.6rem;line-height:1.25;color:var(--navy);font-style:italic}
blockquote footer{font-size:.88rem;color:var(--muted)}
blockquote footer b{color:var(--gold);font-weight:500}
@media (max-width:860px){.reviews{grid-template-columns:1fr}.score{border-right:0;border-bottom:1px solid var(--line);padding:0 0 1.2rem}}

/* Réservation */
.book{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:clamp(2rem,4vw,4rem);align-items:start}
@media (max-width:860px){.book{grid-template-columns:1fr}}
form{display:grid;grid-template-columns:1fr 1fr;gap:1rem 1.2rem}
.field{display:flex;flex-direction:column;gap:.35rem;min-width:0}
.field.full{grid-column:1/-1}
label{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:500}
input,select,textarea{font:inherit;font-size:1rem;padding:.75rem .85rem;border:1px solid var(--line);background:var(--paper);color:var(--ink);border-radius:0;width:100%;transition:border-color .2s,box-shadow .2s}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(168,122,44,.15)}
textarea{min-height:96px;resize:vertical}
.estimate{grid-column:1/-1;display:flex;justify-content:space-between;align-items:baseline;gap:1rem;flex-wrap:wrap;padding:1rem 1.1rem;background:var(--stone);border-left:3px solid var(--gold)}
.estimate b{font-family:var(--f-display);font-size:1.7rem;color:var(--navy);font-weight:500;font-variant-numeric:lining-nums}
.estimate span{font-size:.9rem;color:var(--muted)}
.form-actions{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:.8rem}
.form-msg{grid-column:1/-1;font-size:.92rem;color:var(--muted)}
.form-msg.err{color:#A3341F}
@media (max-width:600px){form{grid-template-columns:1fr}}
.contact{display:flex;flex-direction:column;gap:1.4rem;background:var(--navy);color:var(--on-navy);padding:clamp(1.5rem,3vw,2.2rem)}
.contact h3{color:var(--on-navy);font-size:var(--step-2)}
.c-row{display:flex;flex-direction:column;gap:.15rem;padding-bottom:1rem;border-bottom:1px solid rgba(244,239,228,.16)}
.c-row:last-child{border-bottom:0;padding-bottom:0}
.c-row small{font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-light)}
.c-row a,.c-row span{color:var(--on-navy);text-decoration:none;font-size:1.05rem;overflow-wrap:anywhere}
.c-row a:hover{color:var(--gold-light)}
.contact .socials a{color:var(--gold-light);border-color:rgba(231,190,102,.35)}

/* Pied */
.foot{background:var(--night);color:var(--on-navy-muted);padding-block:3rem;font-size:.88rem}
.foot .wrap{display:flex;flex-wrap:wrap;gap:1.4rem 2rem;justify-content:space-between;align-items:center}
.foot img{height:46px;width:auto;background:var(--paper);padding:6px 10px}
.foot a{color:var(--on-navy-muted)}
.foot .socials a{color:var(--gold-light);border-color:rgba(231,190,102,.35)}

/* Visionneuse */
.lightbox{position:fixed;inset:0;z-index:150;background:rgba(10,14,28,.94);display:flex;align-items:center;justify-content:center;padding:max(16px,env(safe-area-inset-top,0px)) 16px;animation:fade .3s ease}
@keyframes fade{from{opacity:0}}
.lightbox img,.lightbox video{max-height:88vh;max-width:min(1000px,100%);width:auto;object-fit:contain;background:#000;animation:zoomIn .4s var(--ease)}
@keyframes zoomIn{from{transform:scale(.94);opacity:0}}
.lightbox .x{position:absolute;top:calc(env(safe-area-inset-top,0px) + 14px);right:16px;background:var(--paper);border:0;width:44px;height:44px;font-size:1.4rem;cursor:pointer;color:var(--navy);z-index:2}

/* WhatsApp flottant */
.wa-float{position:fixed;right:18px;bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:60;width:56px;height:56px;border-radius:50%;background:var(--wa);display:flex;align-items:center;justify-content:center;box-shadow:0 6px 20px rgba(0,0,0,.25);animation:pulseWa 2.6s infinite}
@keyframes pulseWa{0%{box-shadow:0 0 0 0 rgba(31,143,78,.55)}70%{box-shadow:0 0 0 14px rgba(31,143,78,0)}100%{box-shadow:0 0 0 0 rgba(31,143,78,0)}}
.wa-float svg{width:28px;height:28px;fill:#fff}

/* Paillettes dorées (canvas du héros) */
#sparks{position:absolute;inset:0;z-index:-1;pointer-events:none;mix-blend-mode:screen}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .curtain{display:none}
  #sparks{display:none}
}
@media (max-width:600px){.tt-face{padding:.8rem}.tt-face b{font-size:1.15rem}.tt-face small{font-size:.62rem;letter-spacing:.08em;overflow-wrap:anywhere}.tt-face .pl{width:48px;height:48px}}
