/* Rim Séjours — feuille de style unique. Mobile d'abord (390 px), puis élargissement.
   Base claire et neutre, inspirée d'Apple ; accent rose Rim utilisé avec parcimonie. */

@font-face{font-family:"Inter";font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/inter-var.woff2) format("woff2")}
@font-face{font-family:"Caveat";font-style:normal;font-weight:600 700;font-display:swap;src:url(/fonts/caveat-700.woff2) format("woff2")}

:root{
  --fond:#fff;--gris:#f5f5f7;--gris-2:#ececf0;--gris-3:#d9d9de;
  --encre:#1d1d1f;--doux:#424245;--pale:#6e6e73;--pale-2:#86868b;
  --ligne:rgba(0,0,0,.08);--ligne-2:rgba(0,0,0,.14);
  --accent:#D70F45;--accent-h:#B70C3A;--accent-doux:rgba(215,15,69,.08);
  --ok:#1a7f37;--ok-doux:rgba(26,127,55,.09);--alerte:#b42318;--alerte-doux:rgba(180,35,24,.08);--attente:#9a6700;
  --ombre:0 1px 2px rgba(0,0,0,.04),0 14px 36px -16px rgba(0,0,0,.20);
  --ombre-forte:0 2px 6px rgba(0,0,0,.05),0 28px 60px -24px rgba(0,0,0,.30);
  --f:"Inter",-apple-system,BlinkMacSystemFont,"SF Pro Text","Helvetica Neue",Arial,sans-serif;
  --f-script:"Caveat","Segoe Print","Bradley Hand",cursive;
  --r-s:12px;--r-m:18px;--r-l:26px;--r-xl:32px;
  --wrap:1240px;--pad:20px;--tete:64px;
  --ease:cubic-bezier(.2,.7,.2,1);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--tete) + 16px)}
body{margin:0;background:var(--fond);color:var(--encre);font-family:var(--f);font-size:16.5px;line-height:1.55;letter-spacing:-.011em;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,video,svg{display:block;max-width:100%}
img{height:auto}
a{color:inherit}
p{margin:0 0 1em}
h1,h2,h3,h4{margin:0;line-height:1.15;letter-spacing:-.022em;font-weight:700}
ul,ol{margin:0;padding:0}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
[hidden]{display:none!important}
:focus-visible{outline:2.5px solid var(--encre);outline-offset:3px;border-radius:8px}
::selection{background:rgba(215,15,69,.14)}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.evitement{position:absolute;left:12px;top:-60px;z-index:200;background:var(--encre);color:#fff;padding:10px 14px;border-radius:10px;font-weight:600;text-decoration:none}
.evitement:focus{top:12px}
.i{width:20px;height:20px;flex:none}
.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--pad)}
.etroit{max-width:820px}
.muted{color:var(--pale)}
.petit{font-size:14px}
.script{font-family:var(--f-script);font-weight:700;color:var(--accent);font-size:1.18em;line-height:.8;letter-spacing:0;white-space:nowrap}

/* ---------- Boutons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:50px;padding:0 24px;border-radius:999px;border:0;font-weight:600;font-size:16px;letter-spacing:-.01em;text-decoration:none;white-space:nowrap;transition:background .2s,transform .15s var(--ease),border-color .2s,box-shadow .2s;background:var(--encre);color:#fff}
.btn:hover{background:#000}
.btn:active{transform:scale(.985)}
.btn[disabled],.btn[aria-disabled="true"]{background:var(--gris-3);color:#fff;cursor:not-allowed}
.btn .i{width:18px;height:18px}
.btn-clair{background:#fff;color:var(--encre);border:1px solid var(--ligne-2)}
.btn-clair:hover{background:#fff;border-color:var(--encre)}
.btn-accent{background:var(--accent)}
.btn-accent:hover{background:var(--accent-h)}
.btn-bloc{width:100%}
.btn-sm{min-height:38px;padding:0 15px;font-size:14.5px}
.btn-lien{background:none;border:0;padding:0;font-weight:600;text-decoration:underline;text-underline-offset:3px;color:var(--encre);font-size:inherit}
.btn-rond{width:40px;height:40px;min-height:40px;padding:0;border-radius:50%}
.btn.charge{color:transparent;position:relative;pointer-events:none}
.btn.charge::after{content:"";position:absolute;width:20px;height:20px;border-radius:50%;border:2.2px solid rgba(255,255,255,.35);border-top-color:#fff;animation:tour .7s linear infinite}
.btn-clair.charge::after{border-color:rgba(0,0,0,.15);border-top-color:var(--encre)}
@keyframes tour{to{transform:rotate(360deg)}}

/* ---------- Bandeau test ---------- */
.bandeau-test{background:#1d1d1f;color:#fff;font-size:13.5px;text-align:center;padding:8px 14px;line-height:1.4}
.bandeau-test strong{color:#ffd6df}

/* ---------- En-tête ---------- */
.tete{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.86);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid var(--ligne)}
.tete-in{display:flex;align-items:center;gap:12px;height:var(--tete)}
.marque{display:flex;align-items:center;gap:10px;text-decoration:none;margin-right:auto}
.marque img{height:24px;width:auto}
.marque-txt{display:flex;flex-direction:column;line-height:1.05}
.marque-n{font-weight:700;font-size:15.5px;letter-spacing:-.02em}
.marque-s{font-size:12px;color:var(--pale);font-weight:500;letter-spacing:0}
.tete-nav{display:none;gap:4px;align-items:center}
.tete-nav a{text-decoration:none;font-size:14.5px;font-weight:500;color:var(--doux);padding:8px 12px;border-radius:999px}
.tete-nav a:hover{background:var(--gris);color:var(--encre)}
.tete-sejour{display:inline-flex;align-items:center;gap:7px;text-decoration:none;font-size:14.5px;font-weight:600;padding:8px 14px;border:1px solid var(--ligne-2);border-radius:999px}
.tete-sejour:hover{border-color:var(--encre)}
.tete-sejour .i{width:17px;height:17px}
@media (max-width:519px){.tete-sejour span{display:none}.tete-sejour{padding:9px}}

/* ---------- Pied de page ---------- */
.pied{background:var(--gris);color:var(--pale);font-size:14px;margin-top:96px;padding:48px 0 34px;border-top:1px solid var(--ligne)}
.pied-grille{display:grid;gap:30px}
.pied h2{font-size:13px;color:var(--encre);margin-bottom:12px;letter-spacing:0}
.pied ul{list-style:none;display:grid;gap:9px}
.pied a{text-decoration:none}
.pied a:hover{color:var(--encre);text-decoration:underline;text-underline-offset:3px}
.pied-marque p{margin:10px 0 0;max-width:32ch}
.pied-bas{margin-top:34px;padding-top:20px;border-top:1px solid var(--ligne);font-size:12.5px;line-height:1.6}
.pied-paiement{display:flex;gap:10px;align-items:center;color:var(--doux);font-weight:500;margin-top:14px}
@media (min-width:760px){.pied-grille{grid-template-columns:1.4fr 1fr 1fr 1fr}}

/* ---------- Accueil : héro ---------- */
.hero{padding-top:18px}
.hero-visuel{position:relative;border-radius:var(--r-xl);overflow:hidden;min-height:440px;background:#2a2a2d;isolation:isolate}
.hero-visuel img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:opacity .7s var(--ease)}
.hero-visuel img.cache{opacity:0}
.hero-visuel::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.16) 0%,rgba(0,0,0,.46) 32%,rgba(0,0,0,.72) 68%,rgba(0,0,0,.78) 100%);z-index:1}
.hero-texte h1,.hero-texte p{text-shadow:0 2px 22px rgba(0,0,0,.28)}
.hero-texte{position:absolute;left:0;right:0;bottom:0;z-index:2;color:#fff;padding:28px 22px 88px}
.hero-texte h1{font-size:clamp(2.3rem,8.6vw,4.4rem);line-height:1.02;letter-spacing:-.045em;max-width:13ch;text-wrap:balance}
.hero-texte h1 .script{color:#ffc2cf;font-size:1.12em}
.hero-texte p{font-size:17px;line-height:1.45;max-width:38ch;margin:14px 0 0;color:rgba(255,255,255,.9)}
.recherche{position:relative;z-index:5;margin:-64px 12px 0;background:#fff;border-radius:var(--r-l);box-shadow:var(--ombre-forte);padding:14px;display:grid;gap:10px}
.segmente{display:inline-grid;grid-auto-flow:column;grid-auto-columns:1fr;background:var(--gris);border-radius:999px;padding:4px;gap:2px;justify-self:start}
.segmente button{border:0;background:none;border-radius:999px;padding:8px 18px;font-weight:600;font-size:14.5px;color:var(--pale);display:flex;align-items:center;gap:8px}
.segmente button[aria-pressed="true"]{background:#fff;color:var(--encre);box-shadow:0 1px 3px rgba(0,0,0,.1)}
.recherche-champs{display:grid;gap:8px}
.champ-btn{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:#fff;border:1px solid var(--ligne-2);border-radius:var(--r-m);padding:10px 16px;min-height:60px}
.champ-btn:hover{border-color:var(--encre)}
.champ-btn .i{color:var(--pale)}
.champ-btn small{display:block;font-size:12px;font-weight:600;color:var(--pale);text-transform:uppercase;letter-spacing:.04em}
.champ-btn span{display:block;font-weight:600;font-size:15.5px;color:var(--encre)}
.champ-btn span.vide{color:var(--pale-2);font-weight:500}
.recherche .btn{min-height:56px;border-radius:var(--r-m)}
@media (min-width:860px){
  .hero-visuel{min-height:560px}
  .hero-visuel::after{background:linear-gradient(90deg,rgba(0,0,0,.66) 0%,rgba(0,0,0,.36) 42%,rgba(0,0,0,.04) 72%),linear-gradient(180deg,rgba(0,0,0,0) 45%,rgba(0,0,0,.38) 100%)}
  .hero-texte{padding:48px 52px 120px}
  .recherche{margin:-74px auto 0;max-width:980px;padding:16px;grid-template-columns:auto 1fr;align-items:center}
  .recherche-champs{grid-template-columns:1.25fr 1fr auto}
  .recherche .btn{padding:0 28px}
}

/* ---------- Filtres ---------- */
.filtres{position:sticky;top:var(--tete);z-index:40;background:rgba(255,255,255,.92);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);margin-top:28px;border-bottom:1px solid var(--ligne)}
.filtres-in{display:flex;gap:8px;overflow-x:auto;padding:12px 0;scrollbar-width:none}
.filtres-in::-webkit-scrollbar{display:none}
.puce{flex:none;display:inline-flex;align-items:center;gap:7px;border:1px solid var(--ligne-2);background:#fff;border-radius:999px;padding:8px 14px;font-size:14px;font-weight:500;color:var(--doux);white-space:nowrap}
.puce:hover{border-color:var(--encre);color:var(--encre)}
.puce[aria-pressed="true"]{background:var(--encre);border-color:var(--encre);color:#fff}
.puce .i{width:17px;height:17px}
.puce-sep{flex:none;width:1px;background:var(--ligne-2);margin:4px 4px}
.resultats-tete{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:26px 0 18px}
.resultats-tete h2{font-size:clamp(1.4rem,4vw,1.9rem)}
.resultats-tete p{margin:0;color:var(--pale);font-size:14.5px}
.reinit{font-size:14px}

/* ---------- Cartes logement ---------- */
.grille{display:grid;gap:34px 22px}
@media (min-width:640px){.grille{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1040px){.grille{grid-template-columns:repeat(3,1fr)}}
.carte{position:relative}
.carte a.carte-lien{text-decoration:none;color:inherit;display:block}
.carrousel{position:relative;border-radius:var(--r-m);overflow:hidden;aspect-ratio:4/3.1;background:var(--gris)}
.carrousel-piste{display:flex;height:100%;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;scroll-behavior:smooth}
.carrousel-piste::-webkit-scrollbar{display:none}
.carrousel-piste img{flex:0 0 100%;width:100%;height:100%;object-fit:cover;scroll-snap-align:start}
.carrousel-fl{position:absolute;top:50%;transform:translateY(-50%);width:32px;height:32px;border-radius:50%;border:0;background:rgba(255,255,255,.94);display:grid;place-items:center;box-shadow:0 2px 8px rgba(0,0,0,.18);opacity:0;transition:opacity .2s;z-index:2}
.carrousel-fl .i{width:16px;height:16px}
.carrousel-fl.g{left:10px}.carrousel-fl.d{right:10px}
.carte:hover .carrousel-fl,.carrousel-fl:focus-visible{opacity:1}
.carrousel-points{position:absolute;bottom:10px;left:0;right:0;display:flex;justify-content:center;gap:5px;z-index:2;pointer-events:none}
.carrousel-points i{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.6);transition:background .2s,transform .2s}
.carrousel-points i.on{background:#fff;transform:scale(1.15)}
.carte-badge{position:absolute;top:12px;left:12px;z-index:2;background:rgba(255,255,255,.96);border-radius:999px;padding:5px 11px;font-size:13px;font-weight:600;box-shadow:0 1px 4px rgba(0,0,0,.12)}
.carte-corps{padding:13px 2px 0}
.carte-l1{display:flex;justify-content:space-between;gap:10px;font-size:14px;color:var(--pale)}
.note{display:inline-flex;align-items:center;gap:4px;color:var(--encre);font-weight:600;white-space:nowrap}
.note .i{width:13px;height:13px}
.carte h3{font-size:17.5px;margin:3px 0 2px;letter-spacing:-.02em}
.carte-l3{font-size:14.5px;color:var(--pale)}
.carte-prix{margin-top:8px;font-size:15px;color:var(--encre)}
.carte-prix strong{font-weight:700}
.carte-prix .muted{font-size:14px}
.carte.indispo .carrousel{filter:grayscale(.75);opacity:.6}
.carte.indispo .carte-prix{color:var(--pale)}
.vide-res{text-align:center;padding:56px 20px;background:var(--gris);border-radius:var(--r-l)}
.vide-res h3{font-size:20px;margin-bottom:6px}

/* ---------- Sections éditoriales ---------- */
.sec{padding-top:88px}
.sec-tete{max-width:46rem;margin-bottom:30px}
.sec-tete h2{font-size:clamp(1.8rem,5.4vw,2.7rem);letter-spacing:-.035em;text-wrap:balance}
.sec-tete p{color:var(--pale);font-size:18px;margin:12px 0 0}
.assurances{display:grid;gap:14px}
@media (min-width:700px){.assurances{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1080px){.assurances{grid-template-columns:repeat(4,1fr)}}
.assurance{background:var(--gris);border-radius:var(--r-l);padding:24px 22px}
.assurance .i{width:30px;height:30px;margin-bottom:16px}
.assurance h3{font-size:17.5px;margin-bottom:6px}
.assurance p{color:var(--doux);font-size:15px;margin:0}
.destinations{display:grid;gap:16px}
@media (min-width:760px){.destinations{grid-template-columns:1fr 1fr}}
.destination{position:relative;display:block;border-radius:var(--r-xl);overflow:hidden;aspect-ratio:4/3.2;text-decoration:none;color:#fff;background:#333}
.destination img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.destination:hover img{transform:scale(1.035)}
.destination::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(0,0,0,.62))}
.destination div{position:absolute;left:24px;right:24px;bottom:22px;z-index:1}
.destination h3{font-size:clamp(1.6rem,4vw,2.2rem);letter-spacing:-.03em}
.destination p{margin:6px 0 0;color:rgba(255,255,255,.88)}
.hote{display:grid;gap:22px;align-items:center;background:var(--gris);border-radius:var(--r-xl);padding:28px 24px}
.hote img{width:72px;height:72px;border-radius:50%;object-fit:cover}
.hote h2{font-size:clamp(1.5rem,4vw,2rem)}
.hote-stats{display:flex;flex-wrap:wrap;gap:12px 28px;margin-top:14px}
.hote-stats div strong{display:block;font-size:22px;letter-spacing:-.02em}
.hote-stats div span{font-size:13.5px;color:var(--pale)}
.hote-stats a{color:inherit}
@media (min-width:860px){.hote{grid-template-columns:auto 1fr auto;padding:36px 40px}}
.faq{display:grid;gap:10px;max-width:860px}
.faq details{background:var(--gris);border-radius:var(--r-m);padding:0 20px}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:16px;align-items:center;padding:18px 0;font-weight:600;font-size:16.5px}
.faq summary::-webkit-details-marker{display:none}
.faq summary .i{transition:transform .25s var(--ease)}
.faq details[open] summary .i{transform:rotate(180deg)}
.faq details p{color:var(--doux);margin:0;padding:0 0 18px;max-width:68ch}

/* ---------- Fiche logement ---------- */
.fil{font-size:13.5px;color:var(--pale);padding:16px 0 0;display:flex;gap:6px;flex-wrap:wrap}
.fil a{text-decoration:none}.fil a:hover{text-decoration:underline}
.fiche-titre{padding:10px 0 18px}
.fiche-titre h1{font-size:clamp(1.45rem,4.4vw,2.3rem);line-height:1.12;letter-spacing:-.03em;text-wrap:balance}
.fiche-sous{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;margin-top:8px;font-size:15px;color:var(--doux)}
.fiche-sous .note{font-size:15px}
.badge{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;padding:4px 10px;border-radius:999px;background:var(--gris);color:var(--encre)}
.badge-accent{background:var(--accent-doux);color:var(--accent)}
.badge-ok{background:var(--ok-doux);color:var(--ok)}
.galerie{position:relative;margin:0 calc(var(--pad) * -1)}
.galerie-piste{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;aspect-ratio:4/3}
.galerie-piste::-webkit-scrollbar{display:none}
.galerie-piste button{flex:0 0 100%;border:0;padding:0;background:var(--gris);scroll-snap-align:start}
.galerie-piste img{width:100%;height:100%;object-fit:cover}
.galerie-compteur{position:absolute;right:14px;bottom:14px;background:rgba(0,0,0,.62);color:#fff;font-size:13px;font-weight:600;padding:4px 10px;border-radius:999px}
.galerie-tout{position:absolute;right:16px;bottom:16px;display:none}
.galerie-tout .btn{background:#fff;color:var(--encre);box-shadow:0 2px 10px rgba(0,0,0,.15);min-height:40px;font-size:14px;padding:0 16px}
@media (min-width:760px){
  .galerie{margin:0}
  .galerie-piste{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:1fr 1fr;gap:8px;aspect-ratio:auto;height:clamp(360px,46vw,520px);border-radius:var(--r-l);overflow:hidden}
  .galerie-piste button{flex:none;min-height:0;position:relative;overflow:hidden}
  .galerie-piste button img{transition:transform .6s var(--ease),filter .3s}
  .galerie-piste button:hover img{transform:scale(1.03);filter:brightness(.94)}
  .galerie-piste button:first-child{grid-row:1 / 3}
  .galerie-piste button:nth-child(n+6){display:none}
  .galerie-piste.n1{grid-template-columns:1fr;grid-template-rows:1fr}
  .galerie-piste.n2{grid-template-columns:1fr 1fr;grid-template-rows:1fr}
  .galerie-piste.n2 button:first-child{grid-row:auto}
  .galerie-piste.n3,.galerie-piste.n4{grid-template-columns:2fr 1fr}
  .galerie-piste.n4 button:nth-child(4){display:none}
  .galerie-compteur{display:none}
  .galerie-tout{display:block}
}
.fiche{display:grid;gap:0;padding-top:28px}
@media (min-width:1024px){.fiche{grid-template-columns:minmax(0,1fr) 384px;gap:72px;align-items:start}}
.bloc{padding:30px 0;border-bottom:1px solid var(--ligne)}
.bloc:first-child{padding-top:0}
.bloc h2{font-size:22px;letter-spacing:-.025em;margin-bottom:16px}
.capacite{font-size:17px;font-weight:600;margin-bottom:4px}
.capacite-sous{color:var(--pale);margin:0}
.atouts{display:grid;gap:18px;margin-top:22px}
.atout{display:flex;gap:16px;align-items:flex-start}
.atout .i{width:26px;height:26px;margin-top:2px}
.atout strong{display:block;font-size:16px}
.atout span{color:var(--pale);font-size:14.5px}
.description p{color:var(--doux)}
.description.replie{max-height:9.5em;overflow:hidden;position:relative}
.description.replie::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3em;background:linear-gradient(transparent,#fff)}
.couchages{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}
.couchage{border:1px solid var(--ligne-2);border-radius:var(--r-m);padding:18px}
.couchage .i{width:26px;height:26px;margin-bottom:12px}
.couchage strong{display:block}
.couchage span{color:var(--pale);font-size:14.5px}
.equip{display:grid;gap:14px 24px}
@media (min-width:560px){.equip{grid-template-columns:1fr 1fr}}
.equip li{display:flex;gap:14px;align-items:center;list-style:none;font-size:15.5px}
.equip .i{width:22px;height:22px;color:var(--doux)}
.carte-plan{position:relative;border-radius:var(--r-l);overflow:hidden;background:var(--gris);aspect-ratio:16/11;margin-top:4px}
@media (min-width:760px){.carte-plan{aspect-ratio:16/8}}
.carte-plan .attente{position:absolute;inset:0;display:grid;place-items:center;color:var(--pale);font-size:14.5px;text-align:center;padding:20px}
.proximite{display:grid;gap:10px;margin-top:18px}
@media (min-width:560px){.proximite{grid-template-columns:1fr 1fr}}
.proximite li{list-style:none;display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid var(--ligne);padding:10px 0;font-size:15px}
.proximite li span{color:var(--pale);text-align:right}
.a-savoir{display:grid;gap:26px}
@media (min-width:760px){.a-savoir{grid-template-columns:repeat(3,1fr)}}
.a-savoir h3{font-size:16px;margin-bottom:10px}
.a-savoir ul{list-style:none;display:grid;gap:8px;font-size:15px;color:var(--doux)}
.a-savoir li{display:flex;gap:10px;align-items:flex-start}
.a-savoir li .i{width:18px;height:18px;margin-top:3px;color:var(--pale)}
.legal-ligne{font-size:13.5px;color:var(--pale);margin-top:20px}

/* ---------- Carte de réservation ---------- */
.resa{display:none}
@media (min-width:1024px){.resa{display:block;position:sticky;top:calc(var(--tete) + 24px)}}
.resa-carte{border:1px solid var(--ligne-2);border-radius:var(--r-l);padding:24px;box-shadow:var(--ombre);background:#fff}
.resa-prix{margin-bottom:18px}
.resa-prix strong{font-size:23px;letter-spacing:-.02em}
.resa-prix span{color:var(--pale)}
.resa-prix .muted{display:block;font-size:14.5px}
.resa-champs{border:1px solid var(--ligne-2);border-radius:var(--r-m);overflow:hidden}
.resa-champs .ligne2{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--ligne-2)}
.resa-champs button{display:block;width:100%;text-align:left;background:#fff;border:0;padding:11px 14px}
.resa-champs .ligne2 button+button{border-left:1px solid var(--ligne-2)}
.resa-champs button:hover{background:var(--gris)}
.resa-champs small{display:block;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--encre)}
.resa-champs span{display:block;font-size:15px;color:var(--doux)}
.resa-options{margin-top:16px;border:1px solid var(--ligne-2);border-radius:var(--r-m);padding:0 14px}
.resa-options summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 0;cursor:pointer;list-style:none}
.resa-options summary::-webkit-details-marker{display:none}
.resa-options summary strong{display:block;font-size:15px}
.resa-options summary small{display:block;font-size:13px;color:var(--pale)}
.resa-options summary .i{transition:transform .25s var(--ease);flex:none}
.resa-options[open] summary .i{transform:rotate(180deg)}
.resa-options[open]{padding-bottom:6px}
.opt[hidden]{display:none}
.resa-options h3{font-size:15px;margin-bottom:4px}
.resa-options>p{font-size:13.5px;color:var(--pale);margin:0 0 8px}
.opt{display:flex;gap:12px;align-items:flex-start;padding:10px 0;border-top:1px solid var(--ligne);cursor:pointer}
.opt:first-of-type{border-top:0}
.opt input{margin:3px 0 0;width:18px;height:18px;accent-color:var(--encre);flex:none}
.opt div{flex:1;min-width:0}
.opt strong{display:block;font-size:14.5px;font-weight:600}
.opt small{display:block;color:var(--pale);font-size:13px;line-height:1.4}
.opt .opt-prix{font-size:14.5px;font-weight:600;white-space:nowrap}
.opt select{margin-top:6px;border:1px solid var(--ligne-2);border-radius:8px;padding:3px 6px;font-size:13.5px;background:#fff}
.promo{margin-top:14px}
.promo-form{display:flex;gap:8px;margin-top:8px}
.promo-form input{flex:1;min-width:0;border:1px solid var(--ligne-2);border-radius:10px;padding:0 12px;height:42px;text-transform:uppercase;font-weight:600;letter-spacing:.04em}
.promo-form .btn{min-height:42px}
.promo-msg{font-size:13.5px;margin:6px 0 0}
.promo-msg.ok{color:var(--ok)}.promo-msg.ko{color:var(--alerte)}
.detail{margin-top:18px;display:grid;gap:9px;font-size:15px}
.detail div{display:flex;justify-content:space-between;gap:12px}
.detail .remise{color:var(--ok)}
.detail .lien-info{color:var(--doux);text-decoration:underline dotted;text-underline-offset:3px;background:none;border:0;padding:0;text-align:left;font-size:inherit}
.detail .total{border-top:1px solid var(--ligne-2);padding-top:12px;margin-top:4px;font-weight:700;font-size:16.5px}
.detail .sous{font-size:13.5px;color:var(--pale)}
.resa .btn-resa,.btn-resa{margin-top:18px;width:100%;min-height:54px;font-size:16.5px;border-radius:var(--r-m)}
.resa-note{text-align:center;font-size:13.5px;color:var(--pale);margin:10px 0 0}
.resa-caution{display:flex;gap:10px;margin-top:16px;padding:12px 14px;background:var(--gris);border-radius:var(--r-s);font-size:13.5px;color:var(--doux);line-height:1.45}
.resa-caution .i{width:18px;height:18px;margin-top:1px}
.resa-erreur{margin-top:14px;padding:12px 14px;border-radius:var(--r-s);background:var(--alerte-doux);color:var(--alerte);font-size:14px}
.squelette{display:block;height:14px;border-radius:7px;background:linear-gradient(90deg,var(--gris) 25%,var(--gris-2) 37%,var(--gris) 63%);background-size:400% 100%;animation:squel 1.3s ease infinite}
@keyframes squel{0%{background-position:100% 50%}100%{background-position:0 50%}}
.resa-confiance{display:grid;gap:8px;margin-top:16px;padding:0 4px;font-size:13.5px;color:var(--pale)}
.resa-confiance span{display:flex;gap:8px;align-items:center}
.resa-confiance .i{width:16px;height:16px}

.barre-mobile{position:fixed;left:0;right:0;bottom:0;z-index:70;background:#fff;border-top:1px solid var(--ligne);padding:12px var(--pad) calc(12px + env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:space-between;gap:14px}
.barre-mobile strong{font-size:16.5px}
.barre-mobile small{display:block;color:var(--pale);font-size:13px}
.barre-mobile .btn{min-height:48px;padding:0 22px}
@media (min-width:1024px){.barre-mobile{display:none}}
body.avec-barre{padding-bottom:84px}
@media (min-width:1024px){body.avec-barre{padding-bottom:0}}

/* ---------- Feuilles (mobile) et fenêtres ---------- */
.voile{position:fixed;inset:0;z-index:90;background:rgba(0,0,0,.42);opacity:0;transition:opacity .25s;display:flex;align-items:flex-end;justify-content:center}
.voile.ouvert{opacity:1}
.feuille{background:#fff;width:100%;max-height:92vh;overflow:auto;border-radius:24px 24px 0 0;transform:translateY(24px);transition:transform .3s var(--ease);padding:0 var(--pad) calc(20px + env(safe-area-inset-bottom))}
.voile.ouvert .feuille{transform:none}
.feuille-tete{position:sticky;top:0;background:#fff;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:16px 0 12px;border-bottom:1px solid var(--ligne);margin-bottom:16px}
.feuille-tete h2{font-size:18px}
.fermer{width:38px;height:38px;border-radius:50%;border:0;background:var(--gris);display:grid;place-items:center;flex:none}
.fermer:hover{background:var(--gris-2)}
@media (min-width:760px){
  .voile{align-items:center}
  .feuille{max-width:var(--largeur,560px);border-radius:var(--r-l);max-height:86vh;transform:scale(.98)}
}

/* ---------- Calendrier ---------- */
.cal{user-select:none}
.cal-nav{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}
.cal-nav button{width:36px;height:36px;border-radius:50%;border:0;background:none;display:grid;place-items:center}
.cal-nav button:hover:not([disabled]){background:var(--gris)}
.cal-nav button[disabled]{opacity:.25;cursor:default}
.cal-mois{display:grid;gap:28px}
@media (min-width:760px){.cal-mois{grid-template-columns:1fr 1fr}}
.cal-titre{text-align:center;font-weight:700;font-size:15.5px;margin:6px 0 12px;text-transform:capitalize}
.cal-grille{display:grid;grid-template-columns:repeat(7,1fr);row-gap:2px}
.cal-jsem{text-align:center;font-size:12px;font-weight:600;color:var(--pale);padding:4px 0 8px}
.cal-jour{position:relative;aspect-ratio:1;border:0;background:none;padding:0;font-size:14.5px;font-weight:600;color:var(--encre);display:grid;place-items:center;z-index:0}
.cal-jour span{width:min(44px,100%);aspect-ratio:1;display:grid;place-items:center;border-radius:50%;transition:background .15s}
.cal-jour:hover:not([disabled]) span{box-shadow:inset 0 0 0 1.5px var(--encre)}
.cal-jour[disabled]{color:var(--gris-3);cursor:default}
.cal-jour.occupe span{text-decoration:line-through;text-decoration-thickness:1.5px}
.cal-jour.dans::before{content:"";position:absolute;inset:6% 0;background:var(--gris);z-index:-1}
.cal-jour.debut::before{content:"";position:absolute;inset:6% 0 6% 50%;background:var(--gris);z-index:-1}
.cal-jour.fin::before{content:"";position:absolute;inset:6% 50% 6% 0;background:var(--gris);z-index:-1}
.cal-jour.debut.fin::before{display:none}
.cal-jour.debut span,.cal-jour.fin span{background:var(--encre);color:#fff}
.cal-jour.depart-seul{color:var(--encre)}
.cal-jour.aujourdhui span::after{content:"";position:absolute;bottom:14%;width:4px;height:4px;border-radius:50%;background:var(--accent)}
.cal-vide{aspect-ratio:1}
.cal-info{min-height:22px;font-size:14px;color:var(--pale);margin:14px 0 0;text-align:center}
.cal-pied{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:16px;padding-top:14px;border-top:1px solid var(--ligne)}
.cal-legende{display:flex;gap:14px;font-size:12.5px;color:var(--pale);justify-content:center;margin-top:10px}
.cal-legende span{display:inline-flex;align-items:center;gap:6px}
.cal-legende s{color:var(--gris-3);font-weight:600}

/* ---------- Voyageurs ---------- */
.voyageurs{display:grid;gap:4px}
.compteur{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid var(--ligne)}
.compteur:last-child{border-bottom:0}
.compteur strong{display:block;font-size:16px}
.compteur small{color:var(--pale);font-size:13.5px}
.compteur-btns{display:flex;align-items:center;gap:14px}
.compteur-btns button{width:36px;height:36px;border-radius:50%;border:1px solid var(--ligne-2);background:#fff;display:grid;place-items:center}
.compteur-btns button:hover:not([disabled]){border-color:var(--encre)}
.compteur-btns button[disabled]{opacity:.3;cursor:default}
.compteur-btns output{min-width:20px;text-align:center;font-weight:600}

/* ---------- Visionneuse photos ---------- */
.visionneuse{position:fixed;inset:0;z-index:100;background:#fff;display:flex;flex-direction:column}
.vis-tete{display:flex;align-items:center;justify-content:space-between;padding:12px var(--pad);border-bottom:1px solid var(--ligne)}
.vis-grille{overflow:auto;flex:1;padding:20px var(--pad) 40px}
.vis-grille-in{max-width:900px;margin:0 auto;columns:2 240px;column-gap:10px}
.vis-grille button{display:block;width:100%;border:0;padding:0;margin:0 0 10px;break-inside:avoid;border-radius:12px;overflow:hidden;background:var(--gris)}
.vis-grille img{width:100%}
.vis-grille figcaption{font-size:13px;color:var(--pale);padding:4px 2px 8px;text-align:left}
.vis-une{position:fixed;inset:0;z-index:110;background:#0b0b0c;display:flex;flex-direction:column;color:#fff}
.vis-une .vis-tete{border-color:rgba(255,255,255,.1)}
.vis-une .fermer{background:rgba(255,255,255,.12);color:#fff}
.vis-image{flex:1;display:grid;place-items:center;position:relative;min-height:0;padding:10px}
.vis-image img{max-width:100%;max-height:100%;object-fit:contain;border-radius:6px}
.vis-image .vis-fl{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;border:0;background:rgba(255,255,255,.14);color:#fff;display:grid;place-items:center}
.vis-image .vis-fl.g{left:14px}.vis-image .vis-fl.d{right:14px}
.vis-legende{text-align:center;font-size:14px;color:rgba(255,255,255,.72);padding:10px 20px 18px}

/* ---------- Formulaires (réservation) ---------- */
.etape{border:1px solid var(--ligne-2);border-radius:var(--r-l);padding:22px;margin-bottom:16px}
.etape h2{font-size:19px;margin-bottom:14px;display:flex;align-items:center;gap:10px}
.etape h2 .num{width:26px;height:26px;border-radius:50%;background:var(--encre);color:#fff;font-size:13.5px;display:grid;place-items:center}
.champs{display:grid;gap:14px}
@media (min-width:640px){.champs.deux{grid-template-columns:1fr 1fr}}
.champ label{display:block;font-size:13.5px;font-weight:600;margin-bottom:6px;color:var(--doux)}
.champ input,.champ select,.champ textarea{width:100%;border:1px solid var(--ligne-2);border-radius:var(--r-s);background:#fff;padding:0 14px;height:50px;font-size:16px}
.champ textarea{height:auto;padding:12px 14px;resize:vertical;min-height:92px}
.champ input:focus,.champ select:focus,.champ textarea:focus{outline:none;border-color:var(--encre);box-shadow:0 0 0 3px rgba(0,0,0,.06)}
.champ .aide{font-size:13px;color:var(--pale);margin:6px 0 0}
.champ.erreur input,.champ.erreur select{border-color:var(--alerte)}
.coche{display:flex;gap:12px;align-items:flex-start;font-size:14.5px;line-height:1.5;color:var(--doux);padding:12px 0;cursor:pointer}
.coche input{width:20px;height:20px;margin:1px 0 0;accent-color:var(--encre);flex:none}
.coche.erreur{color:var(--alerte)}
.coche a{color:var(--encre)}
.recap{border:1px solid var(--ligne-2);border-radius:var(--r-l);padding:20px;background:#fff}
.recap-logement{display:flex;gap:14px;align-items:center;padding-bottom:16px;border-bottom:1px solid var(--ligne);margin-bottom:16px}
.recap-logement img{width:96px;height:80px;border-radius:12px;object-fit:cover;flex:none;background:var(--gris)}
.recap-logement strong{display:block;font-size:16px;line-height:1.3}
.recap-logement span{font-size:14px;color:var(--pale)}
.recap-dates{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px}
.recap-dates div{background:var(--gris);border-radius:12px;padding:10px 12px}
.recap-dates small{display:block;font-size:11.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--pale)}
.recap-dates strong{font-size:15px}
.mise-page{display:grid;gap:22px;padding-top:26px}
@media (min-width:1024px){.mise-page{grid-template-columns:minmax(0,1fr) 400px;gap:56px;align-items:start}.mise-page>aside{position:sticky;top:calc(var(--tete) + 24px)}}
.mise-page h1{font-size:clamp(1.6rem,4.6vw,2.3rem);letter-spacing:-.035em;margin-bottom:20px}
.alerte{border-radius:var(--r-m);padding:14px 16px;font-size:14.5px;line-height:1.5}
.alerte-info{background:var(--gris);color:var(--doux)}
.alerte-erreur{background:var(--alerte-doux);color:var(--alerte)}
.alerte-ok{background:var(--ok-doux);color:var(--ok)}
.puce-info{display:flex;gap:10px;font-size:14px;color:var(--doux);line-height:1.5}
.puce-info .i{width:18px;height:18px;margin-top:2px;flex:none}
.liste-info{display:grid;gap:12px;margin:6px 0 0}

/* ---------- Confirmation / espace voyageur ---------- */
.statut-tete{text-align:center;padding:40px 0 10px}
.statut-icone{width:76px;height:76px;border-radius:50%;display:grid;place-items:center;margin:0 auto 20px;background:var(--ok-doux);color:var(--ok)}
.statut-icone .i{width:38px;height:38px}
.statut-icone.attente{background:var(--gris);color:var(--pale)}
.statut-icone.erreur{background:var(--alerte-doux);color:var(--alerte)}
.statut-tete h1{font-size:clamp(1.8rem,5vw,2.6rem);letter-spacing:-.035em}
.statut-tete p{color:var(--pale);font-size:17px;margin:10px auto 0;max-width:40ch}
.ref{display:inline-block;margin-top:14px;font-weight:700;letter-spacing:.04em;background:var(--gris);padding:6px 14px;border-radius:999px;font-size:15px}
.frise{list-style:none;display:grid;gap:0;margin:8px 0 0}
.frise li{display:grid;grid-template-columns:28px 1fr;gap:14px;padding-bottom:20px;position:relative}
.frise li::before{content:"";position:absolute;left:13px;top:26px;bottom:0;width:2px;background:var(--gris-2)}
.frise li:last-child::before{display:none}
.frise .pt{width:28px;height:28px;border-radius:50%;background:var(--gris);display:grid;place-items:center;color:var(--pale)}
.frise .pt .i{width:15px;height:15px}
.frise li.fait .pt{background:var(--encre);color:#fff}
.frise strong{display:block;font-size:15.5px}
.frise span{color:var(--pale);font-size:14px}
.boite{border:1px solid var(--ligne-2);border-radius:var(--r-l);padding:22px;margin-top:16px}
.boite h2{font-size:18px;margin-bottom:12px}
.etat{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;padding:3px 10px;border-radius:999px;background:var(--gris)}
.etat.ok{background:var(--ok-doux);color:var(--ok)}
.etat.attente{background:#fff6e0;color:var(--attente)}
.etat.ko{background:var(--alerte-doux);color:var(--alerte)}

/* ---------- Pages légales ---------- */
.prose{max-width:760px;padding-top:34px}
.prose h1{font-size:clamp(1.9rem,5vw,2.6rem);letter-spacing:-.035em;margin-bottom:10px}
.prose h2{font-size:21px;margin:2.1em 0 .6em}
.prose h3{font-size:17px;margin:1.6em 0 .4em}
.prose p,.prose li{color:var(--doux)}
.prose ul,.prose ol{padding-left:1.25em;margin:0 0 1.2em}
.prose li{margin:.35em 0}
.prose a{color:var(--encre)}
.prose .maj{color:var(--pale);font-size:14px}
.prose table{width:100%;border-collapse:collapse;margin:1em 0 1.4em;font-size:15px}
.prose th,.prose td{text-align:left;border-bottom:1px solid var(--ligne);padding:10px 8px;vertical-align:top}

/* ---------- Divers ---------- */
.photo-vide{display:block;width:100%;height:100%;min-height:180px;background:var(--gris) url(/img/logo-rim-conciergerie-96.webp) center/56px auto no-repeat;opacity:.9}
.lieu{display:inline-flex;align-items:center;gap:5px}
.lieu .i{width:15px;height:15px;color:var(--pale)}
.plus-equip{margin-top:20px}
.quartier-txt{margin-top:18px;color:var(--doux)}
.titre-icone{display:flex;align-items:center;gap:8px}
.titre-icone .i{width:20px;height:20px}
.hote-txt{margin:8px 0 0;max-width:52ch}
.maplibregl-ctrl-attrib{font-size:11px}

/* ---------- Réservation, confirmation, espace voyageur (compléments) ---------- */
.feuille .resa-carte{border:0;box-shadow:none;padding:0}
.champ-message{margin-top:14px}
.msg-champ{font-size:13px;color:var(--alerte);margin:6px 0 0;width:100%}
.coche.erreur .msg-champ{flex-basis:100%}
.coche{flex-wrap:wrap}
.coche>span{flex:1;min-width:0}
.detail .ko{color:var(--alerte)}
img.photo-vide{object-fit:contain;min-height:0}
.recap-dates .muted{display:block;margin-top:2px}
.recap-logement .ref{display:table;margin:8px 0 0;padding:3px 10px;font-size:13px;color:var(--encre)}
.conf-recap{margin-top:26px}
.suite{list-style:none;padding:0;margin:26px 0 0;display:grid;gap:4px}
.suite li{display:grid;grid-template-columns:40px 1fr;gap:12px;align-items:start;padding:12px 0;border-top:1px solid var(--ligne)}
.suite li:first-child{border-top:0}
.suite .i{width:40px;height:40px;padding:10px;border-radius:50%;background:var(--gris);color:var(--encre)}
.suite li:first-child .i{background:var(--ok-doux);color:var(--ok)}
.suite strong{display:block;font-size:15.5px}
.suite span{color:var(--pale);font-size:14.5px;line-height:1.45}
.actions-conf{display:flex;flex-wrap:wrap;gap:10px;margin:26px 0 10px}
.actions-conf .btn{flex:1 1 220px}
.actions-conf .i{width:18px;height:18px}
.centre{text-align:center;margin-top:22px}
.sejour-tete{display:grid;gap:18px;margin:28px 0 18px}
.sejour-tete img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:var(--r-l);background:var(--gris)}
.sejour-tete h1{font-size:clamp(1.7rem,4.6vw,2.4rem);letter-spacing:-.035em;line-height:1.1}
.surtitre{font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--pale);margin:0 0 6px}
.ligne-etat{display:flex;gap:12px;align-items:flex-start;color:var(--doux);margin:0}
.ligne-etat .i{flex:none;margin-top:1px}
.liste-options{list-style:none;padding:0;margin:0 0 16px;display:grid;gap:10px}
.liste-options li{display:flex;gap:12px;align-items:flex-start}
.liste-options li div{flex:1;min-width:0}
.liste-options strong{display:block;font-size:15px}
.liste-options span{color:var(--pale);font-size:13.5px}
.liste-options .prix{color:var(--encre);font-weight:600;font-size:14.5px}
#form-options .btn{margin-top:14px}
.contacts{display:flex;flex-wrap:wrap;gap:10px}
.contacts .btn{flex:1 1 150px}
.contacts .i{width:18px;height:18px}
.titre-retrouver{font-size:clamp(1.6rem,4vw,2.1rem);letter-spacing:-.03em;margin-bottom:8px}
[data-retrouver]{margin-top:40px}
@media (min-width:760px){.sejour-tete{grid-template-columns:300px 1fr;align-items:center}.sejour-tete img{aspect-ratio:4/3}}

p.fil a{display:inline-flex;align-items:center;gap:6px}
p.fil a .i{width:16px;height:16px}

.liste-factures{list-style:none;padding:0;margin:16px 0 0;display:grid;gap:8px}
.liste-factures a{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--ligne-2);border-radius:var(--r-m);text-decoration:none;color:var(--encre)}
.liste-factures a:hover{background:var(--gris)}
.liste-factures span:not(.lien){flex:1;min-width:0}
.liste-factures strong{display:block;font-size:15px}
.liste-factures small{display:block;color:var(--pale);font-size:13.5px}
.liste-factures .lien{font-size:14px;font-weight:600;text-decoration:underline}

/* ---------- Carte MapLibre ---------- */
.plan-maison{width:46px;height:46px;border-radius:50%;background:var(--encre);color:#fff;display:grid;place-items:center;box-shadow:0 6px 18px rgba(0,0,0,.25);border:3px solid #fff}
.carte-plan .maplibregl-ctrl-group{border-radius:12px;box-shadow:0 2px 10px rgba(0,0,0,.12)}
.carte-plan .maplibregl-ctrl-group button{width:36px;height:36px}
.carte-plan .attente a{color:var(--encre)}

/* ---------- Visionneuse ---------- */
.vis-compte{font-weight:600;font-size:14.5px}

/* ---------- Animations ---------- */
.apparait{opacity:0;transform:translateY(14px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.apparait.vu{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .apparait{opacity:1;transform:none}
}
.toast{position:fixed;left:50%;bottom:100px;transform:translateX(-50%);z-index:120;background:var(--encre);color:#fff;padding:12px 18px;border-radius:999px;font-size:14.5px;box-shadow:var(--ombre-forte)}
@media (min-width:1024px){.toast{bottom:30px}}

@media print{.tete,.pied,.barre-mobile,.resa,.filtres{display:none!important}}
