/* Haveli, par Digital Corail. Téléphone d'abord, ordinateur ensuite.
   La charte vient des photos des appartements : murs blancs, bois sculpté, coussins safran, aubergine et paon,
   nuit indigo ; le motif, c'est l'arcade polylobée de la tête de lit sculptée (img/arc.svg). */
@font-face{font-family:'Archivo';font-style:normal;font-weight:400 900;font-stretch:62% 125%;font-display:swap;src:url('/fonts/archivo-latin.woff2') format('woff2')}

:root{
  --fond:#faf7f2;--lin:#f1eadf;--blanc:#fffdf9;--encre:#1c1a19;--mut:#5d564e;--ligne:rgba(28,26,25,.12);
  --indigo:#223a5e;--indigo2:#2b4670;--indigo3:#355480;--txt-n:#f3efe8;--mut-n:#c8d1de;--ligne-n:rgba(255,255,255,.13);
  --teck:#9e5721;--teck-c:#e3a36f;--rose:#c9581f;--rose-c:#f4a477;--safran:#e0a43a;
  --u1:#6a2c66;--u2:#1f6f8b;--u3:#c9581f;
  --arc:url('/img/arc.svg?v=3');
  --wa:#25d366;
  --gut:clamp(16px,5vw,56px);--wrap:1180px;--tete:60px;--dock:76px;--r:20px;
  --t1:clamp(2.1rem,10.6vw,5.6rem);--t2:clamp(1.7rem,7.6vw,4.3rem);
  --jali:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' fill='none' stroke='%23ffffff' stroke-opacity='.07' stroke-width='1.5'%3E%3Ccircle cx='24' cy='24' r='17'/%3E%3Ccircle cx='0' cy='0' r='17'/%3E%3Ccircle cx='48' cy='0' r='17'/%3E%3Ccircle cx='0' cy='48' r='17'/%3E%3Ccircle cx='48' cy='48' r='17'/%3E%3C/svg%3E");
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;overflow-x:clip;scroll-padding-top:calc(var(--tete) + 30px);scroll-padding-bottom:calc(var(--dock) + 30px)}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{margin:0;background:var(--fond);color:var(--encre);font:400 1.0625rem/1.55 'Archivo',system-ui,sans-serif;overflow-x:clip}
img,video{display:block;max-width:100%}
a{color:inherit}
button,input,select,textarea{font:inherit;color:inherit}
button{background:none;border:0;padding:0;cursor:pointer}
h1,h2,h3{font-family:'Archivo',sans-serif;font-weight:900;font-stretch:112%;text-transform:uppercase;line-height:.92;letter-spacing:-.01em;margin:0}
h1 em,h2 em,h3 em{font-style:normal;color:var(--teck)}
p,ul,dl,dd,figure{margin:0}
ul{padding:0;list-style:none}
.ic{width:1.15em;height:1.15em;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.saut{position:absolute;left:-9999px}.saut:focus{left:12px;top:30px;z-index:99;background:var(--indigo);color:#fff;padding:10px 14px}
:focus-visible{outline:2px solid var(--rose);outline-offset:3px}
.nuit :focus-visible,.pied :focus-visible,.dock :focus-visible{outline-color:var(--rose-c)}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gut)}
[hidden]{display:none!important}
.nw{white-space:nowrap}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* L'arcade, en signature de section */
.arche{display:block;width:20px;height:26px;background:var(--teck);-webkit-mask:var(--arc) top/100% auto no-repeat;mask:var(--arc) top/100% auto no-repeat;margin-bottom:14px}
.nuit .arche{background:var(--teck-c)}
/* L'arcade polylobée découpe les photos ; le SVG fait trois fois la largeur en hauteur, il couvre toute la boîte */
.arc{-webkit-mask:var(--arc) top/100% auto no-repeat;mask:var(--arc) top/100% auto no-repeat}
.surtitre{font:800 .78rem/1.35 'Archivo',sans-serif;font-stretch:118%;letter-spacing:.16em;text-transform:uppercase;color:var(--teck);display:block;margin-bottom:12px}
.nuit .surtitre{color:var(--teck-c)}
.chapo{color:var(--mut);max-width:34em;margin-top:16px}
.nuit .chapo{color:var(--mut-n)}

/* Boutons en pilule */
.btn{--f:var(--encre);--c:#fff;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 24px;border-radius:999px;background:var(--f);color:var(--c);font:800 .9rem/1 'Archivo',sans-serif;font-stretch:110%;text-transform:uppercase;letter-spacing:.04em;text-decoration:none;white-space:nowrap;transition:filter .2s,transform .2s,background .2s}
.btn:active{transform:scale(.97)}
@media (hover:hover){.btn:hover{filter:brightness(1.12)}}
.btn-p{--f:var(--rose);--c:#fff}
.btn-n{--f:var(--indigo);--c:#fff}
.btn-l{--f:rgba(28,26,25,.07);--c:var(--encre)}
.nuit .btn-l,.dock .btn-l,.pied .btn-l{--f:rgba(255,255,255,.11);--c:var(--txt-n)}
.btn-wa{--f:var(--wa);--c:#062b14}
.lien{display:inline-flex;align-items:center;gap:8px;font-weight:700;text-decoration:none;color:var(--teck);min-height:44px}
.lien .ic{transition:transform .2s}
@media (hover:hover){.lien:hover .ic{transform:translateX(4px)}}
.lien-p{min-height:44px;font-weight:700;text-decoration:underline;text-underline-offset:3px}

/* En-tête */
.mq{position:fixed;inset:0 0 auto;z-index:51;height:24px;display:flex;align-items:center;justify-content:center;background:var(--indigo);color:var(--txt-n);font:600 .72rem/1 'Archivo',sans-serif;letter-spacing:.02em}
.tete{position:fixed;inset:0 0 auto;z-index:50;height:var(--tete);display:flex;align-items:center;gap:14px;padding:0 var(--gut);transition:background .3s,transform .35s,border-color .3s;border-bottom:1px solid transparent}
.tete.voile{background:rgba(250,247,242,.88);-webkit-backdrop-filter:blur(14px) saturate(1.4);backdrop-filter:blur(14px) saturate(1.4);border-color:var(--ligne)}
.tete.cache{transform:translateY(-100%)}
.marque{display:flex;align-items:center;gap:10px;min-height:44px;text-decoration:none;margin-right:auto;font:900 .98rem/1 'Archivo',sans-serif;font-stretch:112%;text-transform:uppercase;letter-spacing:.01em;white-space:nowrap}
.marque em{font-style:normal;color:var(--teck)}
.marque-a{width:26px;height:26px;background:var(--teck);-webkit-mask:url('/img/marque.svg?v=5') center/contain no-repeat;mask:url('/img/marque.svg?v=5') center/contain no-repeat;flex:none}
.menu .marque-a,.pied .marque-a{background:var(--teck-c)}
/* Le logo : le H à l'arcade est la première lettre de HAVELI (img/logo-haveli.svg, 7,36:1), teinté par currentColor */
.logo-h{display:block;height:22px;aspect-ratio:736/100;background:currentColor;-webkit-mask:url('/img/logo-haveli.svg?v=1') center/contain no-repeat;mask:url('/img/logo-haveli.svg?v=1') center/contain no-repeat;flex:none}
.pied .logo-h{height:30px}
.tete .logo-h{background:var(--indigo)}
.nav{display:none}
.tete>.btn{display:none}
.menu-b{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:0 4px;font:800 .82rem/1 'Archivo',sans-serif;font-stretch:115%;letter-spacing:.12em;text-transform:uppercase}
.menu-b .barres{display:grid;gap:4px}
.menu-b .barres i{display:block;width:20px;height:3px;border-radius:2px;background:currentColor}
.menu-b .barres i:nth-child(2){width:13px;margin-left:7px;background:var(--rose)}

/* Menu plein écran */
.menu{border:0;padding:0;margin:0;width:100%;max-width:none;height:100%;max-height:none;background:var(--indigo) var(--jali);color:var(--txt-n);overflow-y:auto}
.menu::backdrop{background:rgba(0,0,0,.6)}
.menu[open]{display:flex;flex-direction:column}
.menu-h{display:flex;align-items:center;justify-content:space-between;padding:24px var(--gut) 12px;height:calc(var(--tete) + 24px)}
.menu .marque em{color:var(--teck-c)}
.menu-x{width:48px;height:48px;display:grid;place-items:center;border:1px solid var(--ligne-n);border-radius:50%}
.menu nav{display:grid;padding:10px var(--gut) 0}
.menu nav a{display:flex;align-items:baseline;gap:14px;padding:14px 0;border-bottom:1px solid var(--ligne-n);text-decoration:none;font:900 2rem/1 'Archivo',sans-serif;font-stretch:112%;text-transform:uppercase}
.menu nav a span{font:700 .8rem/1 'Archivo',sans-serif;color:var(--teck-c);letter-spacing:.1em;width:24px}
.menu-pied{margin-top:auto;padding:24px var(--gut) calc(24px + env(safe-area-inset-bottom));display:grid;gap:10px}
.menu-pied a{display:flex;align-items:center;gap:14px;text-decoration:none;padding:12px 16px;min-height:56px;background:var(--indigo2);border-radius:14px;font-weight:800;text-transform:uppercase;font-stretch:110%}
.menu-pied a b{display:grid;place-items:center;width:30px;height:30px;border-radius:15px 15px 6px 6px;background:var(--u);color:#fff;font-size:.78rem}
.menu-pied a small{margin-left:auto;color:var(--mut-n);font-weight:600;text-transform:none}
.menu-pied .menu-tel{background:transparent;border:1px solid var(--ligne-n)}

/* Ouverture : la vidéo des appartements dans une arcade */
.hero{padding:calc(var(--tete) + 40px) 0 34px}
.hero-g{display:grid;gap:24px}
.arche-v{position:relative;aspect-ratio:6/5;border-radius:0 0 22px 22px;overflow:hidden;background:var(--lin);isolation:isolate}
.arche-v img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.2s ease}
.arche-v img.on{opacity:1}
@media (prefers-reduced-motion:no-preference){.arche-v img.on{animation:zoom 7s ease-out both}}
@keyframes zoom{from{transform:scale(1.08)}to{transform:none}}
.arche-v img:first-child{opacity:1}
.js .arche-v img:first-child:not(.on){opacity:0}
.arche-v figcaption{position:absolute;left:14px;bottom:14px;padding:7px 12px;border-radius:999px;background:rgba(28,26,25,.6);color:#fff;font-size:.8rem;font-weight:700;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.lecture{position:absolute;right:12px;bottom:8px;width:44px;height:44px;display:grid;place-items:center;border-radius:50%;background:rgba(255,253,249,.92);color:var(--encre)}
.lecture .ic{fill:currentColor;stroke-width:2.5}
.hero h1{font-size:var(--t1);max-width:10em;text-wrap:balance}
.hero h1 em{white-space:nowrap}
.hero-p{margin-top:16px;max-width:31em;color:var(--mut);font-size:1.05rem}
.hero-a{display:flex;flex-wrap:wrap;align-items:center;gap:8px 20px;margin-top:22px}
.hero-faits{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.hero-faits li{display:inline-flex;align-items:center;gap:8px;min-height:38px;padding:6px 14px;border-radius:999px;background:var(--lin);font-size:.88rem;font-weight:700}
.hero-faits .lance{background:#fbe6d9;color:#8a3a12}
.hero-faits .ic{width:1em;height:1em}
.hero-faits small{font-weight:500;color:var(--mut)}
.hero-heure{display:none!important}

/* Ruban */
.ruban{overflow:hidden;background:var(--indigo);color:var(--txt-n);padding:16px 0}
.ruban-d{display:flex;gap:30px;width:max-content;animation:ruban 40s linear infinite}
.ruban span{display:inline-flex;align-items:center;gap:30px;font:900 1.15rem/1 'Archivo',sans-serif;font-stretch:118%;text-transform:uppercase;white-space:nowrap}
.ruban span::after{content:"";width:10px;height:13px;border-radius:5px 5px 1px 1px;background:var(--safran)}
@keyframes ruban{to{transform:translateX(calc(-50% - 15px))}}
@media (prefers-reduced-motion:reduce){.ruban-d{animation:none}}
.ruban:hover .ruban-d{animation-play-state:paused}

/* Sections */
.sec{padding:68px 0}
.sec-h{margin-bottom:26px}
.sec-h h2{font-size:var(--t2);text-wrap:balance}
.nuit{background:var(--indigo) var(--jali);color:var(--txt-n)}
.nuit h2 em,.nuit h3 em{color:var(--teck-c)}

/* Vous venez pour */
.qui-t{font:800 .78rem/1 'Archivo',sans-serif;font-stretch:118%;letter-spacing:.14em;text-transform:uppercase;color:var(--mut);margin-bottom:10px}
.qui{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin:0 calc(-1 * var(--gut)) 14px;padding:2px var(--gut)}
.qui::-webkit-scrollbar{display:none}
.qui button{display:inline-flex;align-items:center;gap:8px;min-height:46px;padding:0 16px;border-radius:999px;border:1.5px solid var(--ligne);background:var(--blanc);font-weight:700;font-size:.95rem;white-space:nowrap;transition:background .2s,border-color .2s,color .2s}
.qui button[aria-pressed=true]{background:var(--indigo);border-color:var(--indigo);color:#fff}
.qui button[aria-pressed=true] .ic{color:var(--rose-c)}
.qui-note{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;margin-bottom:16px;padding:12px 16px;border-radius:14px;background:var(--lin);font-size:.95rem;font-weight:600}
.qui-note .lien{min-height:44px}

/* Carrousels à aimantation */
.rail{display:grid;grid-auto-flow:column;grid-auto-columns:84%;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;margin-inline:calc(-1 * var(--gut));padding:0 var(--gut) 6px;scroll-padding-inline:var(--gut);overscroll-behavior-x:contain}
.rail::-webkit-scrollbar{display:none}
.rail>*{scroll-snap-align:start}
.jauge{height:3px;border-radius:2px;background:var(--ligne);margin-top:18px;position:relative;overflow:hidden}
.jauge i{position:absolute;inset:0 auto 0 0;width:30%;border-radius:2px;background:var(--teck)}

/* Les trois appartements : chaque photo dans son arcade */
.loge{display:flex;flex-direction:column;background:var(--blanc);border-radius:var(--r);overflow:hidden;box-shadow:0 1px 0 var(--ligne),0 18px 40px -28px rgba(28,26,25,.45)}
.loge-img{position:relative;display:block;margin:10px 10px 0;aspect-ratio:1/1;overflow:hidden;background:var(--lin);border-radius:0 0 12px 12px}
.loge-img img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.6,.3,1)}
@media (hover:hover){.loge-img:hover img{transform:scale(1.04)}}
.loge-img:focus-visible{outline-offset:-5px;outline-width:3px}
.tag-n{position:absolute;left:12px;bottom:12px;display:grid;place-items:center;min-width:40px;height:34px;padding:0 10px;border-radius:17px 17px 6px 6px;background:var(--u);color:#fff;font:900 .9rem/1 'Archivo',sans-serif;font-stretch:115%}
.nb-photos{position:absolute;right:12px;bottom:12px;display:inline-flex;align-items:center;gap:6px;padding:7px 11px;border-radius:999px;background:rgba(28,26,25,.62);color:#fff;font-size:.8rem;font-weight:700;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.loge-c{display:flex;flex-direction:column;gap:12px;flex:1;padding:16px 18px 16px}
.loge h3{font-size:1.9rem}
.loge h3 em{color:var(--u)}
.specs{display:flex;flex-wrap:wrap;gap:6px}
.specs li{display:inline-flex;align-items:center;gap:6px;padding:6px 11px;border-radius:999px;background:var(--fond);font-size:.86rem;font-weight:700}
.specs .ic{width:1em;height:1em;color:var(--teck)}
.accroche{color:var(--mut)}
.conseil{align-self:flex-start;display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:999px;background:var(--lin);font-size:.82rem;font-weight:700;color:var(--mut);line-height:1.3}
.conseil.top{background:var(--indigo);color:#fff}
.conseil.top::before{content:"★";color:var(--safran)}
.dispo{display:flex;align-items:center;gap:8px;font-size:.9rem;font-weight:700}
.dispo::before{content:"";width:9px;height:9px;border-radius:50%;background:#1f9d6b;box-shadow:0 0 0 4px rgba(31,157,107,.16);flex:none}
.dispo.non::before{background:var(--rose);box-shadow:0 0 0 4px rgba(201,88,31,.16)}
.loge-a{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;margin-top:auto;padding-top:4px}
.loge-a .btn{min-height:48px}

/* Le lieu */
.lieu{background:var(--lin)}
.lieu .sec-h h2{font-size:clamp(1.7rem,min(7.6vw,4vw + 1rem),3.4rem)}
.lieu-g{display:grid;gap:30px}
.lieu-photos{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:10px;align-items:end}
.lieu-photos figure{display:grid;gap:8px}
.lieu-photos img{width:100%;height:auto;object-fit:cover;background:var(--fond)}
.lieu-a img{aspect-ratio:3/4;border-radius:0 0 14px 14px}
.lieu-b img{aspect-ratio:4/5;border-radius:14px}
.lieu-photos figcaption{font-size:.84rem;font-weight:700;color:var(--mut)}
.pres{display:grid;gap:2px;margin-top:4px}
.pres li{display:flex;align-items:center;gap:14px;padding:12px 0;border-top:1px solid var(--ligne)}
.pres li:first-child{border-top:0}
.pres .ic{width:26px;height:26px;color:var(--teck)}
.pres div{display:grid;gap:1px}
.pres span{color:var(--mut);font-size:.94rem}
.adresse{display:flex;align-items:center;gap:10px;margin-top:14px;padding:12px 14px;border-radius:14px;background:var(--blanc);font-weight:700}
.adresse .ic{color:var(--rose)}
.lieu-btn{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}

/* Pour les entreprises */
.atouts{display:grid;gap:10px}
.atouts li{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:14px;row-gap:3px;padding:16px;border-radius:16px;background:var(--blanc);box-shadow:0 1px 0 var(--ligne)}
.atouts .ic{grid-row:1/3;width:28px;height:28px;color:var(--rose)}
.atouts b{font:900 1rem/1.1 'Archivo',sans-serif;font-stretch:112%;text-transform:uppercase}
.atouts span{color:var(--mut);font-size:.94rem}
.secteurs-t{margin-top:26px;font:800 .78rem/1 'Archivo',sans-serif;font-stretch:118%;letter-spacing:.14em;text-transform:uppercase;color:var(--mut)}
.secteurs{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.secteurs li{padding:8px 13px;border-radius:999px;border:1.5px solid var(--ligne);font-size:.88rem;font-weight:700}
.pro-a{display:flex;flex-wrap:wrap;align-items:center;gap:8px 20px;margin-top:24px}

/* Réservation */
.resa-g{display:grid;gap:16px;grid-template-columns:minmax(0,1fr)}
.resa{display:grid;gap:12px;grid-template-columns:minmax(0,1fr)}
.bloc{margin:0;padding:18px 16px 16px;border:0;border-radius:var(--r);background:var(--indigo2);min-width:0}
.bloc legend{float:left;width:100%;display:flex;align-items:center;gap:10px;margin-bottom:14px;padding:0;font:900 1.12rem/1 'Archivo',sans-serif;font-stretch:112%;text-transform:uppercase}
.bloc legend small{margin-left:auto;font:500 .8rem/1.2 'Archivo',sans-serif;text-transform:none;color:var(--mut-n);text-align:right}
.bloc legend+*{clear:both}
.num{display:grid;place-items:center;flex:none;width:28px;height:28px;border-radius:14px 14px 5px 5px;background:var(--rose);color:#fff;font-size:.85rem}
.choix-l{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.choix-l [data-u=duplex]{--uc:#dcb0d9}.choix-l [data-u=f2]{--uc:#8fd0e6}.choix-l [data-u=studio]{--uc:var(--rose-c)}
.choix-l button{position:relative;display:grid;gap:2px;justify-items:start;padding:12px 10px 10px;min-height:92px;border-radius:30px 30px 14px 14px;border:2px solid var(--ligne-n);background:var(--indigo3);text-align:left;transition:border-color .2s,background .2s}
.cle-n{font:900 1.3rem/.9 'Archivo',sans-serif;font-stretch:118%;color:var(--uc)}
.choix-l b{font:900 .95rem/1 'Archivo',sans-serif;font-stretch:112%;text-transform:uppercase}
.choix-l small{font-size:.75rem;color:var(--mut-n);font-weight:600}
.choix-l button[aria-pressed=true]{border-color:var(--uc);background:color-mix(in srgb,var(--uc) 16%,var(--indigo3))}
.choix-l button[aria-pressed=true]::after{content:"";position:absolute;right:9px;top:10px;width:20px;height:20px;border-radius:50%;background:var(--uc) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231c1a19' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/13px no-repeat}
.choix-l button.pris{opacity:.55}
.dates{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:8px;margin-bottom:12px}
.date-c{display:grid;gap:3px;padding:10px 12px;border-radius:12px;background:var(--indigo3);border:2px solid transparent;min-width:0}
.date-c small{font-size:.74rem;color:var(--mut-n);font-weight:600;text-transform:uppercase;letter-spacing:.08em}
.date-c b{font-size:.98rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.date-c.vide b{color:var(--mut-n);font-weight:600}
.date-c.attend{border-color:var(--rose-c)}
.nuits{display:grid;justify-items:center;gap:2px;font-size:.78rem;color:var(--mut-n)}
.nuits b{font-size:1.05rem;color:var(--txt-n)}
.cal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.cal-nav button{width:44px;height:44px;display:grid;place-items:center;border-radius:50%;background:var(--indigo3)}
.cal-nav button:disabled{opacity:.3;cursor:default}
.cal-mois{display:grid;gap:22px}
.cal-titre{height:44px;margin:-50px 0 6px;text-align:center;font:800 1rem/44px 'Archivo',sans-serif;text-transform:capitalize;pointer-events:none}
.cal-j{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));row-gap:3px}
.cal-j>span{display:grid;place-items:center;height:28px;font-size:.72rem;font-weight:700;color:var(--mut-n)}
.cal-j button{position:relative;height:44px;display:grid;place-items:center;font-size:.95rem;font-weight:600;border-radius:12px}
.cal-j button:disabled{color:rgba(243,239,232,.3);cursor:default}
.cal-j button.pris{text-decoration:line-through;text-decoration-color:var(--rose-c)}
.cal-j button.auj{box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.4)}
.cal-j button.dans{border-radius:0;background:rgba(244,164,119,.2)}
.cal-j button.deb,.cal-j button.fin{background:var(--rose);color:#fff;font-weight:800}
.cal-j button.deb.lie{border-radius:12px 0 0 12px}
.cal-j button.fin{border-radius:0 12px 12px 0}
.cal-j button.deb:not(.lie){border-radius:12px}
.durees{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.durees button{min-height:44px;padding:0 14px;border-radius:999px;border:1.5px solid var(--ligne-n);font-weight:700;font-size:.9rem}
.durees button[aria-pressed=true]{background:var(--rose);border-color:var(--rose);color:#fff}
.durees button:disabled{opacity:.35;cursor:default}
.cal-pied{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:8px;font-size:.88rem;color:var(--mut-n)}
.cal-pied .lien-p{color:var(--txt-n);font-size:.9rem}
.cal-aide.alerte{color:var(--rose-c);font-weight:700}
.comp{display:grid;grid-template-columns:minmax(0,1fr) 44px 34px 44px;align-items:center;gap:6px;padding:10px 0;border-top:1px solid var(--ligne-n)}
.comp:first-of-type{border-top:0;padding-top:0}
.comp div{display:grid;gap:2px}
.comp small{font-size:.8rem;color:var(--mut-n)}
.comp button{width:44px;height:44px;display:grid;place-items:center;border-radius:50%;border:1.5px solid var(--ligne-n)}
.comp button:disabled{opacity:.3;cursor:default}
.comp output{text-align:center;font-weight:800;font-size:1.1rem}
.place{margin-top:10px;padding:12px 14px;border-radius:12px;background:rgba(244,164,119,.14);font-size:.92rem;line-height:1.45}
.place button{margin-top:8px;display:inline-flex;min-height:44px;align-items:center;font-weight:800;color:var(--rose-c);text-decoration:underline;text-underline-offset:3px}
.recap{display:grid;gap:16px;align-content:start;grid-template-columns:minmax(0,1fr)}
.recap-c{padding:22px 18px 18px;border-radius:var(--r);background:var(--fond);color:var(--encre);display:grid;gap:14px}
.recap-c h3{font-size:1.6rem}
.recap-l{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 14px;font-size:.95rem}
.recap-l dt{color:var(--mut);font-weight:600}
.recap-l dd{font-weight:700;text-align:right}
.recap-prix{padding:12px 14px;border-radius:12px;background:var(--lin);font-size:.92rem;line-height:1.45}
.recap-prix b{font-size:1.15rem}
.champ{display:grid;gap:6px;font-weight:700;font-size:.92rem}
.champ small{color:var(--mut);font-weight:500}
.champ input,.champ textarea{width:100%;min-height:50px;padding:12px 14px;border-radius:12px;border:1.5px solid var(--ligne);background:var(--blanc);font-size:1rem;font-weight:500}
.champ textarea{resize:vertical;min-height:72px}
.champ input:focus,.champ textarea:focus{outline:none;border-color:var(--rose);box-shadow:0 0 0 3px rgba(201,88,31,.2)}
.champ.erreur input{border-color:var(--rose)}
.manque{padding:10px 14px;border-radius:12px;background:#fbe6d9;color:#8a3a12;font-weight:700;font-size:.92rem}
.recap-c .btn-l{--f:rgba(28,26,25,.07);--c:var(--encre)}
.case{display:flex;align-items:center;gap:12px;min-height:44px;font-weight:700;font-size:.92rem;cursor:pointer}
.case input{width:22px;height:22px;margin:0;accent-color:var(--rose);flex:none}
.envoi{display:grid;gap:8px}
.envoi .btn{width:100%}
.envoye{display:flex;gap:12px;padding:14px;border-radius:14px;background:#dff3ea;color:#0d3b2a}
.envoye>.ic{width:28px;height:28px;padding:5px;border-radius:50%;background:#1f9d6b;color:#fff;stroke-width:3}
.envoye p{font-size:.92rem;margin-top:2px}
.direct{display:grid;gap:4px;padding:6px 4px}
.direct li{display:flex;gap:14px;padding:12px 0;border-top:1px solid var(--ligne-n)}
.direct li:first-child{border-top:0}
.direct .ic{width:24px;height:24px;color:var(--teck-c);margin-top:2px}
.direct div{display:grid;gap:2px}
.direct span{color:var(--mut-n);font-size:.93rem}

/* Bon à savoir */
.infos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.infos li{display:grid;gap:4px;align-content:start;padding:16px 14px;border-radius:16px;background:var(--blanc);box-shadow:0 1px 0 var(--ligne)}
.infos .ic{width:24px;height:24px;color:var(--teck);margin-bottom:6px}
.infos b{font:900 .95rem/1 'Archivo',sans-serif;font-stretch:112%;text-transform:uppercase}
.infos span{font-size:.92rem;color:var(--mut);line-height:1.35}

/* Questions */
.faq{background:var(--lin)}
.faq-l{max-width:820px}
.faq details{border-bottom:1px solid var(--ligne)}
.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:16px;align-items:center;min-height:60px;padding:14px 0;font-weight:800;font-size:1.04rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary .ic{color:var(--rose);transition:transform .25s}
.faq details[open] summary .ic{transform:rotate(45deg)}
.faq details p{padding:0 0 18px;color:var(--mut);max-width:40em}

/* Pied */
.pied{padding:60px 0 calc(var(--dock) + 40px);background:var(--indigo) var(--jali);color:var(--txt-n)}
.pied .marque{font-size:1.15rem}
.pied .marque em{color:var(--teck-c)}
.pied-p{margin-top:14px;color:var(--mut-n);max-width:30em}
.pied-a{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.pied-nav{display:flex;flex-wrap:wrap;gap:4px 22px;margin-top:28px}
.pied-nav a{min-height:44px;display:inline-flex;align-items:center;text-decoration:none;font-weight:700;color:var(--mut-n)}
.pied-c{margin-top:18px;font-size:.85rem;color:var(--mut-n)}
.dc{margin-top:30px;padding-top:20px;border-top:1px solid var(--ligne-n);font-size:.85rem;color:var(--mut-n)}

/* Dock au téléphone */
.dock{position:fixed;left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));z-index:40;display:flex;align-items:center;gap:8px;padding:8px 8px 8px 18px;border-radius:999px;background:rgba(34,58,94,.94);-webkit-backdrop-filter:blur(14px) saturate(1.4);backdrop-filter:blur(14px) saturate(1.4);color:var(--txt-n);box-shadow:0 14px 34px -14px rgba(0,0,0,.6);transition:transform .35s,opacity .35s}
.dock.cache{transform:translateY(140%);opacity:0;pointer-events:none}
.dock-etat{display:grid;gap:2px;margin-right:auto;min-width:0;line-height:1.15}
.dock-etat b{font-size:.92rem;white-space:nowrap}
.dock-etat small{font-size:.76rem;color:var(--mut-n);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dock .btn{min-height:48px;padding:0 18px}
.dock .btn-l{width:48px;padding:0}
@media (max-width:399px){.dock .btn-p .ic{display:none}.dock .btn{padding:0 16px}}
@media (max-width:359px){.marque{font-size:.8rem;gap:8px}.menu-b{font-size:0;gap:0}.tete{gap:8px}.btn{white-space:normal;text-align:center;line-height:1.15;padding-block:10px}}

/* Fiche d'un appartement : monte du bas au téléphone, fenêtre à l'ordinateur */
.fiche{border:0;padding:0;margin:0;width:100%;max-width:none;height:100%;max-height:none;background:var(--blanc);color:var(--encre);overflow:hidden}
.fiche::backdrop{background:rgba(20,30,48,.62);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.fiche[open]{display:block}
@media (prefers-reduced-motion:no-preference){.fiche[open] .fiche-in{animation:monte .42s cubic-bezier(.2,.8,.2,1)}}
@keyframes monte{from{transform:translateY(40px);opacity:0}}
.fiche-in{height:100%;display:flex;flex-direction:column;overflow-y:auto;overscroll-behavior:contain}
.fiche-g{position:relative;flex:none;background:var(--lin)}
.fiche-rail{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;aspect-ratio:4/3}
.fiche-rail::-webkit-scrollbar{display:none}
.fiche-rail img{flex:0 0 100%;width:100%;height:100%;object-fit:cover;scroll-snap-align:start}
.fiche-n{position:absolute;right:12px;bottom:12px;padding:6px 11px;border-radius:999px;background:rgba(28,26,25,.62);color:#fff;font-size:.82rem;font-weight:700}
.fiche-x{position:absolute;right:12px;top:calc(12px + env(safe-area-inset-top));width:46px;height:46px;display:grid;place-items:center;border-radius:50%;background:rgba(255,253,249,.94);color:var(--encre);box-shadow:0 6px 16px -6px rgba(0,0,0,.4)}
.fiche-fl{position:absolute;top:50%;width:44px;height:44px;margin-top:-22px;display:none;place-items:center;border-radius:50%;background:rgba(255,253,249,.92);color:var(--encre)}
.fiche-fl.g{left:12px}.fiche-fl.d{right:12px}
.fiche-fl:disabled{opacity:0;pointer-events:none}
.fiche-c{position:relative;padding:22px var(--gut) 28px;display:grid;gap:14px;align-content:start}
.fiche-c .tag-n{position:static;justify-self:start}
.fiche-type{font:800 .78rem/1.3 'Archivo',sans-serif;font-stretch:118%;letter-spacing:.16em;text-transform:uppercase;color:var(--mut)}
.fiche-c h2{font-size:clamp(2.2rem,10vw,3.4rem);margin-top:-6px}
.fiche-c h2 em{color:var(--u)}
.fiche-txt{color:var(--mut);font-size:1.02rem;max-width:36em}
.fiche-c h3{font-size:1.15rem;margin-top:12px}
.dodo{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.dodo li{display:grid;gap:4px;padding:14px;border-radius:14px;background:var(--fond)}
.dodo .ic{width:22px;height:22px;color:var(--teck)}
.dodo b{font-size:.95rem}
.dodo span{font-size:.86rem;color:var(--mut)}
.equip{display:flex;flex-wrap:wrap;gap:6px}
.equip li{display:inline-flex;align-items:center;gap:8px;padding:9px 13px;border-radius:999px;background:var(--fond);font-size:.9rem;font-weight:700}
.equip .ic{color:var(--teck)}
.note{display:flex;gap:10px;padding:13px 15px;border-radius:14px;background:#fbe6d9;font-size:.93rem;line-height:1.45}
.note::before{content:"!";display:grid;place-items:center;flex:none;width:22px;height:22px;border-radius:50%;background:var(--rose);color:#fff;font-weight:900;font-size:.8rem}
.autres{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.autres button{display:grid;text-align:left;border-radius:14px;overflow:hidden;background:var(--fond)}
.autres img{aspect-ratio:4/3;width:100%;object-fit:cover}
.autres span{display:grid;gap:2px;padding:10px 12px 12px}
.autres b{font:900 .95rem/1 'Archivo',sans-serif;font-stretch:112%;text-transform:uppercase}
.autres small{font-size:.8rem;color:var(--mut)}
.fiche-b{position:sticky;bottom:0;margin-top:auto;display:flex;align-items:center;gap:12px;padding:12px var(--gut) calc(12px + env(safe-area-inset-bottom));background:rgba(255,253,249,.95);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--ligne)}
.fiche-etat{flex:1;font-size:.88rem;line-height:1.3;color:var(--mut);min-width:0}
@media (max-width:379px){.fiche-b .btn .ic{display:none}.fiche-b .btn{padding:0 14px}}
.fiche-etat b{display:block;color:var(--encre);font-size:.98rem}
.fiche-b .btn{min-height:50px;padding:0 20px;flex:none}

/* Ce qui reste à confirmer, visible avec ?brouillon */
.brouillon [data-ac]{outline:2px dashed #00a3a3;outline-offset:3px}

/* Tablette et ordinateur */
@media (min-width:700px){
  .infos{grid-template-columns:repeat(3,minmax(0,1fr))}
  .atouts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .fiche{width:min(1100px,calc(100% - 48px));height:min(860px,calc(100% - 48px));margin:auto;border-radius:24px}
  .fiche-x{top:14px}
  .fiche-fl{display:grid}
  .lieu-photos{max-width:560px}
}
@media (min-width:1000px){
  :root{--dock:0px}
  .dock{display:none}
  .nav{display:flex;gap:26px;margin-right:18px}
  .nav a{text-decoration:none;font-weight:700;font-size:.95rem;color:var(--mut);transition:color .2s;white-space:nowrap}
  .nav a:hover{color:var(--encre)}
  .menu-b{display:none}
  .tete>.btn{display:inline-flex;min-height:44px;padding:0 20px;font-size:.82rem}
  .sec{padding:110px 0}
  .hero{padding:calc(var(--tete) + 64px) 0 72px}
  .hero-g{grid-template-columns:minmax(0,1fr) minmax(0,.92fr);gap:64px;align-items:center}
  .arche-v{order:2;aspect-ratio:4/5;max-height:calc(100svh - 170px);justify-self:end;width:100%;border-radius:0 0 26px 26px}
  .hero-heure{display:inline-flex!important}
  .hero h1{font-size:clamp(2.8rem,4.4vw,4rem);max-width:none}
  .rail.loges{grid-auto-flow:row;grid-template-columns:repeat(3,minmax(0,1fr));overflow:visible;margin-inline:0;padding:0}
  .loges+.jauge{display:none}
  .qui{margin-inline:0;padding-inline:0;flex-wrap:wrap}
  .lieu-g{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:center}
  .lieu-photos{max-width:none}
  .atouts{grid-template-columns:repeat(4,minmax(0,1fr))}
  .resa-g{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:24px;align-items:start}
  .recap{position:sticky;top:calc(var(--tete) + 40px)}
  .cal-mois{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
  .cal-nav{padding:0 4px}
  .bloc{padding:24px 22px 22px}
  .fiche-in{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto;overflow:hidden}
  .fiche-g{grid-row:1/3;height:100%}
  .fiche-rail{height:100%;aspect-ratio:auto}
  .fiche-c{overflow-y:auto;padding:34px 34px 28px}
  .fiche-b{grid-column:2;padding:14px 34px}
  .pied .wrap{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:40px}
  .pied-a{grid-column:2;grid-row:1/3;align-self:start;margin-top:0}
}
