:root{color-scheme:light;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
body{margin:0}
img{max-width:100%}
[hidden]{display:none!important}
/* Layout : Riviera chic. Photo plein cadre en ouverture, filets fins, angles nets, titres Bodoni avec italiques,
   petites capitales espacées en Jost ; une alternance de fonds blancs et de bandes « nuit méditerranéenne ». */
:root{
  --bg:#fbfaf8;          /* blanc chaud des façades */
  --surface:#ffffff;
  --ink:#13202c;         /* bleu nuit */
  --muted:#5f6a74;
  --line:#e4e0d9;
  --sand:#b58d5c;        /* laiton / sable doré, l'accent */
  --sea:#1d9893;         /* l'eau de la piscine, en touches */
  --night:#101b26;
  --night-fg:#f3efe8;
  --night-muted:#a9b2ba;
  --t1:#e3efed; --t2:#bfdeda; --t3:#efd9ba; --t4:#ddb27c;   /* saisons : de la douceur au plein été */
  --display:"Bodoni Moda","Didot","Bodoni 72","Georgia",serif;
  --sans:"Jost","Futura","Century Gothic","Segoe UI",system-ui,sans-serif;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#0e1720; --surface:#14202b; --ink:#ece8e1; --muted:#9ba5ae; --line:#26343f;
  --sand:#d2aa78; --sea:#4cc4be; --night:#070f17; --night-fg:#ece8e1; --night-muted:#9ba5ae;
  --t1:#18302f; --t2:#1f4744; --t3:#4a3a22; --t4:#7a5a30; color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#0e1720; --surface:#14202b; --ink:#ece8e1; --muted:#9ba5ae; --line:#26343f;
  --sand:#d2aa78; --sea:#4cc4be; --night:#070f17; --night-fg:#ece8e1; --night-muted:#9ba5ae;
  --t1:#18302f; --t2:#1f4744; --t3:#4a3a22; --t4:#7a5a30; color-scheme:dark}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:17.5px;font-weight:400;line-height:1.65;-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:var(--display);font-weight:400;line-height:1.05;text-wrap:balance;margin:0;letter-spacing:-.005em}
h1 em,h2 em,h3 em{font-style:italic;color:var(--sand)}
p{margin:0}
a{color:inherit}
img{display:block}
:focus-visible{outline:2px solid var(--sand);outline-offset:3px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}

.wrap{max-width:1240px;margin:0 auto;padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}
section{padding-block:clamp(72px,10vw,140px)}
.kicker{display:inline-flex;align-items:center;gap:14px;font-size:.74rem;font-weight:500;letter-spacing:.28em;text-transform:uppercase;color:var(--sand)}
.kicker::before{content:"";width:36px;height:1px;background:currentColor}
.h2{font-size:clamp(2.3rem,5vw,4.2rem);margin-top:18px}
.lead{font-size:1.12rem;font-weight:300;color:var(--muted);max-width:56ch}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;font:500 .78rem/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;padding:18px 28px;border:0;border-radius:0;cursor:pointer;text-decoration:none;transition:background .25s,color .25s,gap .25s}
.btn::after{content:"→";font-size:1rem;letter-spacing:0;transition:transform .25s}
.btn:hover::after{transform:translateX(4px)}
.btn-sand{background:var(--sand);color:#13202c}
.btn-sand:hover{background:#c9a273}
.btn-line{background:transparent;color:inherit;box-shadow:inset 0 0 0 1px currentColor}
.btn-line:hover{background:rgba(255,255,255,.1)}
.btn-ink{background:var(--ink);color:var(--bg)}
.btn.noarrow::after{content:none}

/* En-tête : transparent sur la photo, plein au défilement */
header.top{position:fixed;left:0;right:0;top:0;z-index:30;padding-top:env(safe-area-inset-top,0px);color:#fff;transition:background .3s,color .3s,box-shadow .3s}
header.top.solid{background:var(--bg);background:color-mix(in srgb,var(--bg) 94%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:var(--ink);box-shadow:0 1px 0 var(--line)}
.top .wrap{display:flex;align-items:center;gap:28px;height:78px}
.logo{text-decoration:none;display:flex;flex-direction:column;line-height:1}
.logo b{font-family:var(--display);font-weight:400;font-size:1.55rem;letter-spacing:.01em}
.logo b i{color:var(--sand)}
.logo span{font-size:.6rem;letter-spacing:.34em;text-transform:uppercase;margin-top:6px;opacity:.8}
nav.menu{display:flex;gap:30px;margin-left:auto;font-size:.74rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase}
nav.menu a{text-decoration:none;opacity:.85}
nav.menu a:hover{opacity:1}
.top .btn{padding:14px 20px}
@media (max-width:980px){nav.menu{display:none}.top .btn{margin-left:auto}}
@media (max-width:420px){.top .btn{padding:12px 14px;letter-spacing:.14em}.top .btn::after{content:none}}

/* Hero plein cadre */
.hero{position:relative;min-height:min(92vh,880px);min-height:min(92svh,880px);display:flex;align-items:flex-end;color:#fff;overflow:hidden;padding:0}
.hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 62%;animation:slowzoom 18s ease-out both}
@keyframes slowzoom{from{transform:scale(1.06)}to{transform:scale(1)}}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,18,26,.45) 0%,rgba(10,18,26,0) 28%,rgba(10,18,26,.1) 50%,rgba(10,18,26,.78) 100%)}
.hero .wrap{position:relative;z-index:1;width:100%;padding-block:150px 56px}
.hero .kicker{color:#fff}
.hero h1{font-size:clamp(2.8rem,7.4vw,6.4rem);max-width:12ch;margin-top:22px}
.hero h1 em{color:#e9cfa6}
.hero-row{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:28px;margin-top:30px}
.hero-row p{max-width:46ch;font-weight:300;font-size:1.1rem;opacity:.92}
.hero-ctas{display:flex;flex-wrap:wrap;gap:12px}

/* Chiffres */
.facts{background:var(--surface);border-bottom:1px solid var(--line)}
.facts .wrap{display:grid;grid-template-columns:repeat(5,1fr)}
.fact{padding:34px 10px;text-align:center;border-left:1px solid var(--line)}
.fact:first-child{border-left:0}
.fact b{display:block;font-family:var(--display);font-weight:400;font-size:clamp(2rem,3.6vw,3rem);line-height:1;font-variant-numeric:lining-nums tabular-nums}
.fact b small{font-size:.5em;margin-left:2px}
.fact span{display:block;margin-top:10px;font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}
@media (max-width:720px){.facts .wrap{grid-template-columns:repeat(2,1fr)}.fact{border-left:0;border-top:1px solid var(--line)}.fact:nth-child(-n+2){border-top:0}.fact:nth-child(even){border-left:1px solid var(--line)}.fact:last-child{grid-column:1/-1}}

/* Intro famille */
.intro{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,96px);align-items:end}
.intro p.lead{font-size:1.2rem}
.intro .sign{margin-top:26px;font-family:var(--display);font-style:italic;font-size:1.25rem;color:var(--sand)}
@media (max-width:860px){.intro{grid-template-columns:1fr}}

/* Pour qui : trois cartes décalées */
.who{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,3vw,40px);margin-top:clamp(48px,6vw,80px)}
.who article{display:flex;flex-direction:column;gap:18px}
.who article:nth-child(2){margin-top:clamp(0px,6vw,80px)}
.who .img{aspect-ratio:4/5;overflow:hidden;max-width:100%}
.who img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s}
.who article:hover img{transform:scale(1.04)}
.who .num{font-size:.7rem;letter-spacing:.26em;text-transform:uppercase;color:var(--sand)}
.who h3{font-size:1.85rem}
.who p{color:var(--muted);font-weight:300}
@media (max-width:860px){.who{grid-template-columns:1fr}.who article:nth-child(2){margin-top:0}.who .img{aspect-ratio:4/3}}

/* Vidéo */
.video-band{background:var(--night);color:var(--night-fg)}
.sec-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:24px;margin-bottom:clamp(32px,4vw,52px)}
.sec-head > p{max-width:42ch;font-weight:300}
.video-band .sec-head > p{color:var(--night-muted)}
.video{position:relative;aspect-ratio:16/9;background:#000;max-width:100%}
.video video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.play{position:absolute;inset:0;margin:auto;width:104px;height:104px;border-radius:50%;background:rgba(255,255,255,.14);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:inset 0 0 0 1px rgba(255,255,255,.7);display:grid;place-items:center;border:0;cursor:pointer;transition:transform .3s,background .3s}
.play:hover{transform:scale(1.06);background:rgba(255,255,255,.24)}
.play::after{content:"";margin-left:6px;border-left:24px solid #fff;border-top:15px solid transparent;border-bottom:15px solid transparent}
.video .dur{position:absolute;left:20px;bottom:18px;font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;color:#fff;pointer-events:none}
@media (max-width:520px){.play{width:72px;height:72px}.play::after{border-left-width:18px;border-top-width:11px;border-bottom-width:11px}}

/* Galerie */
.chips{display:flex;flex-wrap:wrap;gap:6px 22px}
.chip{font:500 .74rem var(--sans);letter-spacing:.2em;text-transform:uppercase;background:none;color:var(--muted);border:0;border-bottom:1px solid transparent;padding:6px 0;cursor:pointer}
.chip small{font-size:.9em;letter-spacing:.05em;margin-left:4px;opacity:.7}
.chip[aria-pressed="true"]{color:var(--ink);border-bottom-color:var(--sand)}
.gallery{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:clamp(130px,17vw,230px);grid-auto-flow:dense;gap:8px}
.gallery button{all:unset;cursor:zoom-in;position:relative;overflow:hidden;background:var(--line)}
.gallery button:focus-visible{outline:2px solid var(--sand);outline-offset:2px}
.gallery img{width:100%;height:100%;object-fit:cover;transition:transform .9s}
.gallery button:hover img{transform:scale(1.05)}
.gallery .big{grid-column:span 2;grid-row:span 2}
.gallery .wide{grid-column:span 2}
@media (max-width:860px){.gallery{grid-template-columns:repeat(2,1fr)}}

/* Bande salon */
.band{position:relative;min-height:clamp(380px,60vw,680px);display:flex;align-items:flex-end;color:#fff;overflow:hidden;padding:0}
.band img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.band::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,18,26,.72) 0%,rgba(10,18,26,.15) 60%,rgba(10,18,26,0) 100%)}
.band .wrap{position:relative;z-index:1;width:100%;padding-block:56px}
.band .kicker{color:#e9cfa6}
.band h2{font-size:clamp(2.1rem,4.8vw,4rem);max-width:15ch;margin-top:16px}
.band h2 em{color:#e9cfa6}
.band p{margin-top:16px;max-width:44ch;font-weight:300;opacity:.92}

/* La villa */
.villa-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:clamp(40px,6vw,96px);align-items:start}
.villa-photos{display:grid;grid-template-columns:1.25fr 1fr;gap:10px;margin-top:40px}
.villa-photos div{overflow:hidden;max-width:100%}
.villa-photos div:first-child{aspect-ratio:4/5}
.villa-photos div:last-child{aspect-ratio:4/5;margin-top:48px}
.villa-photos img{width:100%;height:100%;object-fit:cover}
.amen{display:grid;grid-template-columns:1fr 1fr;gap:44px 40px}
.amen h3{font-family:var(--sans);font-size:.72rem;font-weight:500;letter-spacing:.26em;text-transform:uppercase;color:var(--sand);padding-bottom:14px;border-bottom:1px solid var(--line);margin-bottom:6px}
.amen ul{list-style:none;margin:0;padding:0}
.amen li{padding:11px 0;border-bottom:1px solid var(--line);font-weight:300;display:flex;justify-content:space-between;gap:12px}
.opt{font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);white-space:nowrap;align-self:center}
@media (max-width:900px){.villa-grid{grid-template-columns:1fr}}
@media (max-width:540px){.amen{grid-template-columns:1fr}}

/* Avis */
.reviews-band{background:var(--surface);border-block:1px solid var(--line)}
.reviews{display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,6vw,96px);margin-top:clamp(40px,5vw,64px)}
blockquote{margin:0;display:flex;flex-direction:column;gap:22px}
blockquote .q{font-family:var(--display);font-size:5rem;line-height:.5;color:var(--sand);height:28px}
blockquote p{font-family:var(--display);font-style:italic;font-size:clamp(1.25rem,1.9vw,1.55rem);line-height:1.4}
blockquote footer{font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}
blockquote footer b{color:var(--ink);font-weight:500}
.stars{color:var(--sand);letter-spacing:4px;font-size:.85rem}
@media (max-width:780px){.reviews{grid-template-columns:1fr}}

/* Cap d'Agde */
.place-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(40px,6vw,96px);align-items:center}
.carousel{position:relative;min-width:0}
.car-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none}
.car-track::-webkit-scrollbar{display:none}
.car-slide{position:relative;flex:0 0 100%;margin:0;scroll-snap-align:start;aspect-ratio:4/5;overflow:hidden}
.car-slide img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.car-slide figcaption{position:absolute;left:0;right:0;bottom:0;padding:60px 22px 20px;background:linear-gradient(180deg,transparent,rgba(10,18,26,.7));color:#fff;font-family:var(--display);font-style:italic;font-size:1.2rem}
.car-nav{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:18px}
.car-count{font-size:.72rem;letter-spacing:.24em;color:var(--muted);font-variant-numeric:tabular-nums}
.car-btns{display:flex;gap:8px}
.car-btn{width:48px;height:48px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:400 1.2rem var(--sans);cursor:pointer;transition:border-color .2s}
.car-btn:hover{border-color:var(--sand)}
.car-btn:disabled{opacity:.35;cursor:default;border-color:var(--line)}
.dist{margin-top:34px}
.dist div{display:flex;justify-content:space-between;gap:16px;padding:16px 0;border-bottom:1px solid var(--line);font-weight:300}
.dist b{font-weight:500;text-align:right}
.acts{display:flex;flex-wrap:wrap;gap:8px 10px;margin-top:30px}
.acts span{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;padding:8px 14px;border:1px solid var(--line);color:var(--muted)}
@media (max-width:900px){.place-grid{grid-template-columns:1fr}.car-slide{aspect-ratio:4/3}}

/* Tarifs & calendrier */
.tarifs{background:var(--surface);border-top:1px solid var(--line)}
.tf-grid{display:grid;grid-template-columns:1.55fr 1fr;gap:clamp(24px,4vw,56px);align-items:start}
.cal{min-width:0}
.cal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}
.cal-hint{font-family:var(--display);font-style:italic;font-size:1.15rem;text-align:center}
.cal-months{display:grid;grid-template-columns:1fr 1fr;gap:clamp(18px,3vw,36px)}
.month h3{font-family:var(--sans);font-size:.74rem;font-weight:500;letter-spacing:.24em;text-transform:uppercase;text-align:center;margin-bottom:12px}
.dow,.days{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.dow span{font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);text-align:center;padding-bottom:6px}
.day{all:unset;box-sizing:border-box;aspect-ratio:1/1;display:grid;place-items:center;font-size:.86rem;font-variant-numeric:tabular-nums;cursor:pointer;position:relative;color:var(--ink);transition:box-shadow .15s}
.day:hover{box-shadow:inset 0 0 0 1px var(--ink)}
.day:focus-visible{outline:2px solid var(--sand);outline-offset:1px}
.day[disabled]{cursor:default;color:var(--muted);opacity:.4}
.day[disabled]:hover{box-shadow:none}
.day.in{box-shadow:inset 0 0 0 999px rgba(120,130,140,.22);box-shadow:inset 0 0 0 999px color-mix(in srgb,var(--ink) 16%,transparent)}
.day.edge{background:var(--ink)!important;color:var(--bg);font-weight:500}
.legend{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:18px;font-size:.78rem;color:var(--muted)}
.legend i{display:inline-block;width:12px;height:12px;margin-right:7px;vertical-align:-1px}
.quote{background:var(--bg);border:1px solid var(--line);padding:clamp(22px,3vw,34px);position:sticky;top:calc(96px + env(safe-area-inset-top,0px))}
.q-empty{margin-top:14px;color:var(--muted);font-weight:300}
.q-dates{font-family:var(--display);font-size:1.5rem;margin-top:12px;line-height:1.2}
.q-lines{margin:18px 0 0;padding:0;list-style:none}
.q-lines li{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-weight:300;font-variant-numeric:tabular-nums}
.q-lines li b{font-weight:500;white-space:nowrap}
.q-total{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-top:16px}
.q-total span{font-size:.72rem;letter-spacing:.22em;text-transform:uppercase}
.q-total b{font-family:var(--display);font-weight:400;font-size:2.3rem;font-variant-numeric:lining-nums tabular-nums}
.q-check{display:flex;gap:10px;align-items:flex-start;margin-top:14px;font-size:.92rem;font-weight:300;cursor:pointer}
.q-check input{width:auto;margin-top:5px;accent-color:var(--ink)}
.q-warn{margin-top:14px;padding:12px 14px;background:rgba(181,141,92,.16);background:color-mix(in srgb,var(--sand) 16%,transparent);font-size:.9rem}
.q-small{margin-top:12px;font-size:.8rem;color:var(--muted);font-weight:300}
.quote .btn{width:100%;margin-top:18px}
.all-periods{margin-top:clamp(36px,5vw,56px);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.tbl-wrap{overflow-x:auto;padding-bottom:20px}
.tbl{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums;font-weight:300;min-width:520px}
.tbl th{font-size:.68rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);text-align:left;padding:10px 12px;border-bottom:1px solid var(--line)}
.tbl td{padding:12px;border-bottom:1px solid var(--line)}
.tbl td:nth-child(n+3),.tbl th:nth-child(n+3){text-align:right}
.tbl td:first-child{display:flex;align-items:center;gap:10px}
.tbl td:first-child i{width:10px;height:10px;flex:none}
.tbl tr.now td{font-weight:500}
.tf-note{margin-top:22px;font-size:.85rem;color:var(--muted);font-weight:300;max-width:90ch}
@media (max-width:980px){.tf-grid{grid-template-columns:1fr}.quote{position:static}}
@media (max-width:640px){.cal-months{grid-template-columns:1fr}.cal-months .month:nth-child(2){display:none}}

.day.booked{background:repeating-linear-gradient(135deg,var(--line) 0 3px,transparent 3px 7px)!important;color:var(--muted);text-decoration:line-through}
.booked-chip{background:repeating-linear-gradient(135deg,var(--muted) 0 2px,transparent 2px 5px)}

/* Espace propriétaire */
.admin-link{font:inherit;letter-spacing:inherit;text-transform:inherit;background:none;border:0;border-left:1px solid rgba(255,255,255,.25);color:var(--night-fg);margin-left:12px;padding:0 0 0 12px;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.admin{position:fixed;inset:0;z-index:60;background:var(--bg);overflow-y:auto;padding-bottom:env(safe-area-inset-bottom,0px)}
.ad-bar{position:sticky;top:0;z-index:2;background:var(--surface);border-bottom:1px solid var(--line);padding-top:env(safe-area-inset-top,0px)}
.ad-bar-in{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;padding-block:18px}
.ad-bar h2{font-size:1.9rem;margin-top:6px}
.ad-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.ad-actions .btn{padding:14px 18px}
.ad-actions .btn:disabled{opacity:.45;cursor:default}
.ad-status{font-size:.88rem;color:var(--muted);margin-right:6px}
.ad-tabs{display:flex;flex-wrap:wrap;gap:4px 26px}
.ad-tab{font:500 .74rem var(--sans);letter-spacing:.18em;text-transform:uppercase;background:none;border:0;border-bottom:2px solid transparent;color:var(--muted);padding:12px 0;cursor:pointer}
.ad-tab[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--sand)}
.ad-body{padding-block:28px 60px}
.ad-tools{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px}
.ad-mode{display:flex;flex-wrap:wrap;gap:8px}
.ad-mode label{display:flex;align-items:center;gap:8px;border:1px solid var(--line);padding:10px 16px;cursor:pointer;font-size:.95rem;text-transform:none;letter-spacing:0;color:var(--ink);background:var(--surface)}
.ad-mode label:has(input:checked){border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.ad-mode input{width:auto;accent-color:var(--ink)}
.ad-count{font-size:.85rem;color:var(--muted)}
.ad-hint{margin-top:14px;color:var(--muted);font-weight:300;font-size:.95rem;max-width:80ch}
.ad-warn{margin-top:14px;padding:12px 14px;background:rgba(192,57,43,.12);background:color-mix(in srgb,#c0392b 12%,transparent);font-size:.9rem}
.ad-months{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:28px;margin-top:24px}
.ad-months .day{font-size:.8rem}
.ad-tbl{min-width:640px}
.ad-tbl td{padding:6px 8px}
.ad-tbl td:first-child{display:table-cell}
.ad-tbl input{border:1px solid var(--line);padding:8px 10px;background:var(--surface);font-size:.92rem}
.ad-tbl input[type=number]{text-align:right;max-width:110px;margin-left:auto;display:block}
.ad-del{font:500 .68rem var(--sans);letter-spacing:.14em;text-transform:uppercase;background:none;border:0;color:var(--muted);cursor:pointer;text-decoration:underline}
.ad-fees{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:22px 28px;max-width:900px}

/* Réservation */
.book{background:var(--night);color:var(--night-fg)}
.book-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(40px,6vw,96px);align-items:start}
.book .lead{color:var(--night-muted)}
.steps{list-style:none;padding:0;margin:40px 0 0;counter-reset:s}
.steps li{display:grid;grid-template-columns:56px 1fr;gap:10px;padding:20px 0;border-top:1px solid rgba(255,255,255,.12);counter-increment:s}
.steps li::before{content:"0" counter(s);font-family:var(--display);font-size:1.6rem;color:var(--sand);line-height:1}
.steps b{display:block;font-weight:500}
.steps span{color:var(--night-muted);font-weight:300;font-size:.95rem}
.phone{margin-top:28px;font-weight:300;color:var(--night-muted)}
.phone b{display:block;font-family:var(--display);font-weight:400;font-size:1.9rem;color:var(--night-fg);margin-top:4px;font-variant-numeric:lining-nums}
form.card{background:var(--surface);color:var(--ink);padding:clamp(24px,3.4vw,44px);display:grid;grid-template-columns:1fr 1fr;gap:18px 20px}
form.card h3{grid-column:1/-1;font-size:1.9rem;margin-bottom:6px}
.field{display:flex;flex-direction:column;gap:6px;min-width:0}
.full{grid-column:1/-1}
label{font-size:.68rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
input,select,textarea{font:inherit;font-size:1rem;font-weight:400;color:var(--ink);background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:10px 0;width:100%}
select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 10px) 55%,calc(100% - 5px) 55%;background-size:5px 5px;background-repeat:no-repeat}
input:focus,select:focus,textarea:focus{outline:none;border-bottom-color:var(--sand)}
textarea{min-height:90px;resize:vertical}
.err{color:#c0392b;font-size:.85rem;min-height:1em}
form.card .btn{grid-column:1/-1;margin-top:6px}
.fine{grid-column:1/-1;color:var(--muted);font-size:.85rem;font-weight:300;text-align:center}
.done{grid-column:1/-1;display:flex;flex-direction:column;gap:14px}
.done pre{white-space:pre-wrap;background:var(--bg);border:1px solid var(--line);padding:16px;font:inherit;font-size:.92rem;font-weight:300;margin:0;max-height:260px;overflow:auto}
.done .row{display:flex;flex-wrap:wrap;gap:10px}
@media (max-width:900px){.book-grid{grid-template-columns:1fr}}
@media (max-width:540px){form.card{grid-template-columns:1fr}}

/* FAQ */
.faq-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(40px,6vw,96px);align-items:start}
.faq{border-top:1px solid var(--line)}
details{border-bottom:1px solid var(--line)}
summary{cursor:pointer;list-style:none;padding:24px 0;font-family:var(--display);font-size:1.35rem;display:flex;justify-content:space-between;align-items:center;gap:16px}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";font-family:var(--sans);font-weight:300;font-size:1.6rem;color:var(--sand);transition:transform .25s}
details[open] summary::after{transform:rotate(45deg)}
details p{padding-bottom:24px;color:var(--muted);font-weight:300;max-width:60ch}
@media (max-width:860px){.faq-grid{grid-template-columns:1fr}}

/* Pied de page */
footer.site{background:var(--night);color:var(--night-fg);padding-block:clamp(72px,9vw,120px) 120px;border-top:1px solid rgba(255,255,255,.08)}
.foot-cta{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:28px;padding-bottom:56px;border-bottom:1px solid rgba(255,255,255,.12)}
.foot-cta h2{font-size:clamp(2.3rem,5.4vw,4.6rem);max-width:13ch}
.foot-cta h2 em{color:var(--sand)}
.foot{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:36px;padding-top:44px}
.foot h3{font-family:var(--sans);font-size:.7rem;letter-spacing:.26em;text-transform:uppercase;font-weight:500;color:var(--sand);margin-bottom:14px}
.foot p{font-weight:300;color:var(--night-muted)}
.foot .logo b{font-size:1.9rem;color:var(--night-fg)}
.copyline{display:flex;align-items:center;gap:10px;flex-wrap:wrap;color:var(--night-fg)!important}
.copy{font:500 .62rem var(--sans);letter-spacing:.18em;text-transform:uppercase;background:transparent;color:var(--night-muted);border:1px solid rgba(255,255,255,.25);padding:4px 9px;cursor:pointer}
.legal{margin-top:56px;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--night-muted);opacity:.7}
@media (max-width:780px){.foot{grid-template-columns:1fr}}

.mobilebar{position:fixed;left:0;right:0;bottom:0;z-index:30;display:none;gap:8px;background:var(--surface);border-top:1px solid var(--line);
  padding-top:10px;padding-bottom:calc(10px + env(safe-area-inset-bottom,0px));
  padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.mobilebar .btn{flex:1;padding:15px 10px}
.mobilebar .btn::after{content:none}
@media (max-width:760px){.mobilebar{display:flex}}

/* Visionneuse */
.lightbox{position:fixed;inset:0;z-index:50;background:rgba(8,14,20,.96);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;
  padding:max(24px,env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) max(24px,env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px))}
.lightbox img{max-width:min(1400px,100%);max-height:78vh;width:auto;height:auto;object-fit:contain}
.lb-cap{color:#fff;font-family:var(--display);font-style:italic;font-size:1.15rem;text-align:center}
.lb-cap span{font-family:var(--sans);font-style:normal;font-size:.72rem;letter-spacing:.22em;opacity:.6;margin-left:12px;font-variant-numeric:tabular-nums}
.lb-btn{position:absolute;background:transparent;color:#fff;border:1px solid rgba(255,255,255,.5);font:400 .72rem var(--sans);letter-spacing:.2em;text-transform:uppercase;cursor:pointer}
.lb-close{top:calc(18px + env(safe-area-inset-top,0px));right:calc(18px + env(safe-area-inset-right,0px));padding:12px 16px}
.lb-prev,.lb-next{top:50%;transform:translateY(-50%);width:52px;height:52px;font-size:1.3rem;letter-spacing:0}
.lb-prev{left:calc(14px + env(safe-area-inset-left,0px))}
.lb-next{right:calc(14px + env(safe-area-inset-right,0px))}
@media (max-width:600px){.lb-prev,.lb-next{top:auto;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:none}}

/* Langues */
.langs{display:flex;gap:2px;font-size:.7rem;font-weight:500;letter-spacing:.14em}
.langs a{text-decoration:none;padding:6px 7px;opacity:.7}
.langs a[aria-current="page"]{opacity:1;box-shadow:inset 0 -1px 0 currentColor}
.langs a:hover{opacity:1}
@media (max-width:980px){.langs{margin-left:auto}.top .btn{margin-left:0}}
@media (max-width:420px){.langs a{padding:6px 4px}.logo span{display:none}}

/* Prix d'appel */
.hero-price{margin-top:22px;font-size:.95rem;font-weight:300;opacity:.95}
.hero-price b{font-family:var(--display);font-weight:400;font-size:1.35rem;color:#e9cfa6}
.hero-price small{display:block;font-size:.75rem;opacity:.75;margin-top:2px}

/* Prix par personne */
.q-pp{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;font-size:.92rem;font-weight:300}
.q-pp input{width:72px;border:1px solid var(--line);padding:6px 8px;text-align:right;background:var(--surface)}
.q-pp-line{margin-top:6px;font-size:.92rem;color:var(--sea)}

.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* Confiance */
.hero-trust{display:inline-block;margin-top:10px;font-size:.85rem;letter-spacing:.04em;color:#fff;opacity:.9;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.4);padding-bottom:2px}
.hero-trust:hover{opacity:1;border-bottom-color:#fff}
.g-block{border:1px solid var(--line);background:var(--bg);padding:20px 24px;min-width:0}
.g-score{display:flex;align-items:baseline;gap:6px}
.g-score b{font-family:var(--display);font-weight:400;font-size:3rem;line-height:1;font-variant-numeric:lining-nums}
.g-score span{font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.g-count{margin-top:6px;font-size:.92rem;font-weight:300}
.g-links{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:12px;font-size:.85rem}
.g-links a{color:var(--ink);text-underline-offset:3px}
.owners{border-top:1px solid var(--line)}
.owners-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(32px,6vw,96px);align-items:start}
.owners-text p{font-family:var(--display);font-size:clamp(1.15rem,1.7vw,1.4rem);line-height:1.5;margin-bottom:18px;max-width:56ch}
.own-sign{font-style:italic;color:var(--sand)!important;margin-top:28px}
.own-sign span{display:block;font-family:var(--sans);font-style:normal;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-top:6px}
@media (max-width:860px){.owners-grid{grid-template-columns:1fr}}

/* Photos de la section La villa avec légende */
.villa-photos figure{margin:0;min-width:0}
.villa-photos figure > div{overflow:hidden;aspect-ratio:4/5}
.villa-photos figure:last-child{margin-top:48px}
.villa-photos figcaption{margin-top:10px;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.villa-photos figure > div{margin-top:0!important}

picture{display:contents}

/* Légende des saisons */
.legend{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 24px;font-size:.85rem}
.legend span{display:flex;align-items:center;gap:0;flex-wrap:wrap}
.legend .lg b{font-weight:500;color:var(--ink);margin-right:8px}
.legend .lg-r{font-style:normal;color:var(--muted);font-variant-numeric:tabular-nums}
@media (max-width:520px){.legend{grid-template-columns:1fr}}

/* Espace propriétaire : réservations */
.ad-new{margin-top:18px;border:1px solid var(--line);background:var(--surface);padding:20px 22px}
.ad-new h3{font-size:1.3rem;margin-bottom:14px}
.ad-new-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:14px 18px}
.ad-new-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.ad-new-actions .btn{padding:13px 18px}
.ad-new-actions .btn:disabled{opacity:.45;cursor:default}
.ad-h3{font-size:1.6rem;margin-top:48px}
.ad-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);margin:16px 0 12px}
.ad-stats div{background:var(--surface);padding:14px 16px}
.ad-stats b{display:block;font-family:var(--display);font-weight:400;font-size:1.9rem;line-height:1;font-variant-numeric:lining-nums tabular-nums}
.ad-stats span{display:block;margin-top:6px;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.ad-res td:first-child{display:table-cell}
.ad-res input[type=text]{min-width:160px}
.ad-res tr.hl td{background:color-mix(in srgb,var(--sand) 18%,transparent)}
.ad-empty{color:var(--muted);font-style:italic;padding:18px 12px!important}
.ad-past{margin-top:14px;border-top:1px solid var(--line)}
.ad-past summary{cursor:pointer;padding:14px 0;font-weight:500}
@media (max-width:640px){.ad-new-grid{grid-template-columns:1fr 1fr}.ad-new-grid .field:first-child{grid-column:1/-1}.ad-stats{grid-template-columns:1fr 1fr}}
.book-know{margin-top:24px;padding:14px 16px;border:1px solid rgba(255,255,255,.18);font-size:.88rem;letter-spacing:.04em;color:var(--night-fg)}

/* Règlement */
.rules{margin-top:clamp(40px,5vw,64px);border:1px solid var(--line);background:var(--surface)}
.rules summary{cursor:pointer;list-style:none;padding:22px 24px;font-family:var(--display);font-size:1.35rem;display:flex;justify-content:space-between;align-items:center;gap:16px}
.rules summary::-webkit-details-marker{display:none}
.rules summary::after{content:"+";font-family:var(--sans);font-weight:300;font-size:1.6rem;color:var(--sand);transition:transform .25s}
.rules[open] summary::after{transform:rotate(45deg)}
.rules-intro,.rules-contact{padding:0 24px;color:var(--muted);font-weight:300;max-width:70ch}
.rules-contact{padding-bottom:24px;margin-top:20px}
.rules-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px 48px;padding:20px 24px 0}
.rules-grid h3{font-family:var(--sans);font-size:.72rem;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:var(--sand);padding-bottom:10px;border-bottom:1px solid var(--line)}
.rules-grid ul{list-style:none;margin:0;padding:0}
.rules-grid li{position:relative;padding:9px 0 9px 22px;border-bottom:1px solid var(--line);font-weight:300;font-size:.95rem}
.rules-no li::before{content:"×";position:absolute;left:0;top:7px;color:var(--sand);font-size:1.1rem}
.rules-ok li::before{content:"·";position:absolute;left:4px;top:4px;color:var(--sand);font-size:1.4rem}
@media (max-width:760px){.rules-grid{grid-template-columns:1fr}}
.rules-engage{margin:14px 24px 0;padding:12px 16px;border-left:2px solid var(--sand);background:var(--bg);font-weight:500;max-width:70ch}

/* === Lisibilité du premier écran (16/10/2026) === */
.hero::after{background:
  linear-gradient(90deg,rgba(8,15,22,.80) 0%,rgba(8,15,22,.62) 34%,rgba(8,15,22,.18) 58%,rgba(8,15,22,0) 72%),
  linear-gradient(180deg,rgba(8,15,22,.50) 0%,rgba(8,15,22,0) 22%,rgba(8,15,22,0) 62%,rgba(8,15,22,.72) 100%)}
.hero .wrap{text-shadow:0 1px 18px rgba(0,0,0,.35)}
.hero h1 em,.hero-price b{color:#f0d3a4}
.hero-row p{opacity:1}
.logo b{white-space:nowrap}
@media (max-width:760px){
  .hero{display:block;min-height:0;background:var(--night)}
  .hero img{position:relative;inset:auto;height:50vh;height:50svh;min-height:300px;max-height:460px}
  .hero::after{bottom:auto;height:50vh;height:50svh;min-height:300px;max-height:460px;
    background:linear-gradient(180deg,rgba(8,15,22,.62) 0%,rgba(8,15,22,0) 34%,rgba(8,15,22,0) 72%,var(--night) 100%)}
  .hero .wrap{padding-block:6px 40px;text-shadow:none}
  .hero h1{font-size:clamp(2.3rem,10.5vw,3.1rem);margin-top:14px}
  .hero-row{margin-top:20px;gap:22px}
  .hero-row p{font-size:1rem}
  .hero-ctas{width:100%}
  .hero-ctas .btn{flex:1 1 100%;justify-content:center}
  .logo b{font-size:1.25rem}
  .logo span{display:none}
}
@media (max-width:760px){.top .wrap{gap:10px}}
@media (max-width:420px){.logo b{font-size:1.12rem}.langs{letter-spacing:.06em}.langs a{padding:6px 3px}.top .btn{padding:11px 10px;letter-spacing:.1em;font-size:.68rem}}
@media (max-width:760px){.hero picture,.hero img{display:block}.hero img{margin:0}}
@media (max-width:760px){.hero img{animation:none;transform:none}.hero .kicker{letter-spacing:.2em}}
/* Espace propriétaire : nom des locataires dans le calendrier */
.ad-months{grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr))}
.ad-months .days,.ad-months .dow{grid-template-columns:repeat(7,minmax(0,1fr))}
.ad-months .day{min-width:0}
.ad-months .day.res{display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:1px;padding:0 2px;text-decoration:none;color:var(--ink);font-weight:500}
.ad-months .day.res span{text-align:center;line-height:1}
.ad-months .day.res small{display:block;font-size:.56rem;font-weight:500;line-height:1.1;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:.01em}
.ad-months .day.res-start{box-shadow:inset 3px 0 0 var(--ink)}
.ad-months .day.rc0{background:#e9d3b2!important}
.ad-months .day.rc1{background:#f3e3a8!important}
.ad-months .day.rc2{background:#d9cbe6!important}
.ad-months .day.rc3{background:#f2c9bd!important}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .ad-months .day.res{color:#13202c}}
:root[data-theme="dark"] .ad-months .day.res{color:#13202c}
.ad-months .day.res small{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:anywhere;font-size:.54rem}
/* Espace propriétaire : options (ne bloquent pas les dates) */
.ad-stats{grid-template-columns:repeat(5,minmax(0,1fr))}
@media (max-width:640px){.ad-stats{grid-template-columns:1fr 1fr}}
.ad-kind{display:flex;flex-wrap:wrap;gap:10px 14px;margin-top:16px;align-items:flex-end}
.ad-kind > label{display:flex;align-items:center;gap:8px;border:1px solid var(--line);padding:10px 14px;cursor:pointer;font-size:.85rem}
.ad-kind > label span{color:var(--muted);font-size:.75rem}
.ad-kind > label:has(input:checked){border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.ad-kind .field{min-width:200px}
.ad-months .day.opt{display:flex;flex-direction:column;justify-content:center;gap:1px;padding:0 2px;outline:2px dashed #b0763a;outline-offset:-3px;color:var(--ink);font-weight:500}
.ad-months .day.opt span{text-align:center;line-height:1}
.ad-months .day.opt small{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;font-size:.52rem;line-height:1.1;text-align:center;font-style:italic;color:#8a5a26}
.ad-months .day.opt-start{border-left:3px solid #b0763a}
.ad-months .day.opt-late{outline-color:#c0392b}
.ad-months .day.opt-late small{color:#c0392b}
.ad-months .day.res-plus::after{content:"";position:absolute;top:3px;right:3px;width:6px;height:6px;border-radius:50%;background:#b0763a}
.ad-ok{font:500 .68rem var(--sans);letter-spacing:.1em;text-transform:uppercase;background:var(--ink);color:var(--bg);border:0;padding:7px 10px;cursor:pointer;margin-right:10px}
.ad-opt tr.late td{background:rgba(192,57,43,.07)}
.late-tag{display:block;color:#c0392b;font-size:.68rem;margin-top:3px;text-transform:uppercase;letter-spacing:.1em}
.ad-h3 small{font-family:var(--sans);font-size:.75rem;color:var(--muted);letter-spacing:.04em;font-weight:400}
.ad-kind > label{flex:0 1 auto;justify-content:flex-start;text-transform:none;letter-spacing:normal;font-size:.9rem;color:var(--ink);margin:0}
.ad-kind > label b{font-weight:600;letter-spacing:normal;text-transform:none}
.ad-kind > label span{text-transform:none;letter-spacing:normal}
.ad-kind > label input{margin:0;accent-color:var(--ink)}
.ad-kind .field{flex:0 0 220px}
.ad-new .ad-kind > label{display:grid!important;grid-template-columns:auto auto auto;justify-content:start;align-items:center;column-gap:8px;width:auto}
.ad-new .ad-kind > label span{white-space:nowrap}
/* Espace propriétaire : statistiques */
.st-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}
.st-head .ad-hint{margin:0}
.st-range{display:inline-flex;border:1px solid var(--line)}
.st-range button{font:500 .72rem var(--sans);letter-spacing:.12em;text-transform:uppercase;background:none;border:0;padding:10px 14px;cursor:pointer;color:var(--muted)}
.st-range button[aria-pressed="true"]{background:var(--ink);color:var(--bg)}
.st-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);margin-bottom:18px}
.st-kpi{background:var(--surface);padding:16px 18px;display:flex;flex-direction:column;gap:6px}
.st-kl{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.st-kv{font-family:var(--display);font-weight:400;font-size:2.1rem;line-height:1;font-variant-numeric:lining-nums tabular-nums;color:var(--ink)}
.st-kd{font-size:.72rem;color:var(--muted)}
.st-kd.up{color:#2f7d4f}.st-kd.down{color:#b0473a}
.st-card{background:var(--surface);border:1px solid var(--line);padding:18px 20px;margin-bottom:18px}
.st-h{font-family:var(--display);font-weight:400;font-size:1.25rem;margin:0 0 4px}
.st-sub{font-size:.8rem;color:var(--muted);margin:0 0 12px}
.st-chart svg{display:block;width:100%;height:auto;margin-top:8px}
.st-bar{fill:var(--sand)}
.st-grid-l{stroke:var(--line);stroke-width:1}
.st-base{stroke:var(--muted);stroke-width:1}
.st-ax{font:11px var(--sans);fill:var(--muted)}
.st-tip{position:absolute;pointer-events:none;background:var(--ink);color:var(--bg);font-size:.75rem;padding:6px 9px;white-space:nowrap}
.st-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.st-grid .st-card{margin:0}
.st-row,.st-fun{display:grid;grid-template-columns:minmax(120px,38%) 1fr auto;align-items:center;gap:12px;padding:6px 0;font-size:.85rem}
.st-fun{grid-template-columns:minmax(160px,34%) 1fr auto;padding:8px 0}
.st-rl,.st-fl{color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.st-rt,.st-ft{height:10px;background:color-mix(in srgb,var(--line) 60%,transparent);background:var(--line)}
.st-ft{height:14px}
.st-rf,.st-ff{height:100%;background:var(--sand);border-radius:0 4px 4px 0;min-width:0}
.st-rv,.st-fv{font-variant-numeric:tabular-nums;color:var(--muted);font-size:.8rem;text-align:right;min-width:72px}
.st-empty{color:var(--muted);font-size:.85rem;margin:6px 0}
@media (max-width:820px){.st-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.st-grid{grid-template-columns:1fr}.st-row,.st-fun{grid-template-columns:minmax(100px,40%) 1fr auto}}
@media (max-width:820px){
  .st-kpi:last-child:nth-child(odd){grid-column:1/-1}
  .st-row,.st-fun{grid-template-columns:1fr auto;row-gap:4px}
  .st-rl,.st-fl{white-space:normal}
  .st-rt,.st-ft{grid-column:1/-1;grid-row:2}
  .st-kd{font-size:.68rem}
}
/* Espace propriétaire : réservations des plateformes */
.ad-months .day.pf small{font-style:normal}
.ad-months .day.pf-airbnb{background:#f7d4d6!important}
.ad-months .day.pf-abritel{background:#cfe0f5!important}
.ad-months .day.pf-pap{background:#d3ecd5!important}
.src-badge{display:inline-block;font-size:.68rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:4px 8px;border-radius:3px;background:var(--line);color:var(--ink)}
.src-badge.src-airbnb{background:#f7d4d6;color:#7a1f27}
.src-badge.src-abritel{background:#cfe0f5;color:#1d3f6e}
.src-badge.src-pap{background:#d3ecd5;color:#1f5a2a}
.src-badge.src-direct{background:#ecdcc4;color:#5c4020}
.pf-note{font-size:.75rem;color:var(--muted);max-width:220px}
.ad-links{display:grid;gap:8px;margin:10px 0 14px}
.ad-links .ad-copy{margin-top:0}
.ad-links .src-badge{min-width:70px;text-align:center}
/* Statistiques : dates recherchées */
.st-dh{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px}
.st-year{display:flex;align-items:center;gap:8px;text-transform:none;letter-spacing:0;font-size:.85rem;color:var(--ink)}
.st-year select{font:inherit;padding:6px 10px;border:1px solid var(--line);background:var(--surface);color:var(--ink)}
.st-legend{display:flex;flex-wrap:wrap;align-items:center;gap:6px 6px;font-size:.75rem;color:var(--muted);margin:6px 0 14px}
.st-legend span{margin:0 6px 0 2px}
.st-legend .st-c{width:16px;height:16px;display:inline-block}
.st-heat{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:18px 22px}
.st-mon h4{font:500 .72rem var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--ink);margin:0 0 6px}
.st-mg{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px}
.st-dw{font-size:.6rem;color:var(--muted);text-align:center}
.st-c{position:relative;aspect-ratio:1/1;border-radius:2px;background:#efebe4}
.st-c.q1{background:#f6e9d3}.st-c.q2{background:#ebcb98}.st-c.q3{background:#d9a35c}.st-c.q4{background:#ad6e2e}.st-c.q5{background:#5c3510}
.st-c.st-occ{box-shadow:inset 0 0 0 2px #13202c}
.st-dot{position:absolute;top:50%;left:50%;width:5px;height:5px;margin:-2.5px 0 0 -2.5px;border-radius:50%;background:#fff;box-shadow:0 0 0 1.5px #13202c}
.st-legend .st-dot{position:relative;display:block;top:auto;left:auto;margin:5px auto 0}
.st-ptbl td,.st-ptbl th{white-space:nowrap}
.st-tag{display:inline-block;font-size:.68rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:4px 8px;border-radius:3px}
.st-tag.high{background:#7d5a31;color:#fff}
.st-tag.mid{background:#e3c79f;color:#3d2b14}
.st-tag.low{background:#efebe4;color:#6b6358}
.st-tag.full{background:#13202c;color:#fff}
.st-year{white-space:nowrap}
.st-legend .st-c{aspect-ratio:auto;flex:0 0 16px;vertical-align:middle}
.st-ptbl td,.st-ptbl th{padding-left:8px;padding-right:8px}
@media (max-width:640px){.st-heat{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 12px}.st-mon h4{font-size:.62rem}.st-dot{width:4px;height:4px;margin:-2px 0 0 -2px}}
.st-lg{display:inline-flex;align-items:center;gap:5px;margin-right:8px}
.st-lg small{font-size:.72rem;color:var(--muted);white-space:nowrap}
.st-lt{margin:0 4px}
.st-c.q5 .st-dot,.st-c.q4 .st-dot{background:#fff;box-shadow:0 0 0 1.5px #fff,0 0 0 2.5px #13202c}
.st-c.q0{background:#f5f3ef;box-shadow:inset 0 0 0 1px #e4e0d8}
.st-c.q0.st-occ,.st-c.st-occ{box-shadow:inset 0 0 0 2px #13202c}
.st-c.q1{background:#f3d9ae}
.st-c.q2{background:#e5b673}.st-c.q3{background:#cf8b3e}
/* === Conversion (16/10/2026) : disponibilités, WhatsApp, réponse 24 h === */
.hero-avail{display:inline-block;margin-top:12px;padding:8px 14px;background:rgba(240,211,164,.16);border:1px solid rgba(240,211,164,.55);color:#f6e2bf;font-size:.88rem;letter-spacing:.02em;text-decoration:none;border-radius:2px}
.hero-avail:hover{background:rgba(240,211,164,.28)}
.avail{border:1px solid var(--line);background:var(--surface);padding:18px 20px;margin-bottom:26px}
.avail .kicker{margin-bottom:10px}
.av-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 16px;margin-top:8px}
.av-l{font-family:var(--display);font-size:1.15rem;color:var(--ink);margin:0;min-width:240px}
.av-chips{display:flex;flex-wrap:wrap;gap:8px}
.av-chip{all:unset;box-sizing:border-box;cursor:pointer;display:inline-flex;flex-direction:column;gap:2px;padding:8px 12px;border:1px solid var(--line);background:var(--bg);font-size:.8rem;color:var(--ink);transition:border-color .15s,box-shadow .15s}
.av-chip b{font-weight:600;color:var(--sand);font-variant-numeric:tabular-nums}
.av-chip:hover,.av-chip:focus-visible{border-color:var(--sand);box-shadow:0 0 0 1px var(--sand)}
.av-hint{font-size:.78rem;color:var(--muted);margin:12px 0 0}
.wa-link{display:inline-flex;align-items:center;gap:10px;margin-top:16px;padding:12px 18px;border:1px solid rgba(255,255,255,.28);color:var(--night-fg);text-decoration:none;font-size:.9rem;letter-spacing:.02em}
.wa-link:hover{border-color:#25d366;color:#fff}
.wa-link .wa-ico{color:#25d366}
.reply-badge{display:inline-flex;align-items:center;gap:8px;margin:-4px 0 6px;padding:6px 10px;background:#eef6ef;color:#255b33;font-size:.78rem;font-weight:500;letter-spacing:.04em;width:max-content}
.mobilebar .mb-wa{flex:0 0 56px;display:inline-flex;align-items:center;justify-content:center;color:#1a8f47;padding:0}
@media (max-width:760px){
  .book-intro{display:contents}
  .book-grid{display:flex;flex-direction:column;gap:28px}
  .book-intro > *{order:3}
  .book-intro > .kicker,.book-intro > .h2,.book-intro > .lead{order:1}
  .book-intro > .h2{margin-top:-14px}
  .book-intro > .lead{margin-top:-6px!important}
  #bookForm{order:2}
  .av-l{min-width:0;width:100%}
}
/* Espace propriétaire : Aujourd'hui, paiements, chiffre d'affaires */
.ad-today{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:0 0 22px}
.td-card{background:var(--surface);border:1px solid var(--line);padding:12px 14px;min-width:0}
.td-card h4{font:600 .68rem var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 8px}
.td-item{all:unset;box-sizing:border-box;display:block;width:100%;cursor:pointer;font-size:.82rem;line-height:1.35;padding:5px 0;border-top:1px solid var(--line);color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.td-item:hover{color:var(--sand)}
.td-item.late{color:#b0473a;font-weight:600}
.td-empty{font-size:.8rem;color:var(--muted);margin:0}
@media (max-width:1100px){.ad-today{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.ad-today{grid-template-columns:1fr}}
.pay-row td{padding-top:0!important;border-top:0!important}
.pay{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;padding:0 0 10px}
.pay-chip{display:inline-flex;align-items:center;gap:6px;font:500 .72rem var(--sans);padding:5px 9px;border-radius:999px;border:1px solid var(--line);background:var(--bg);color:var(--ink);cursor:pointer}
.pay-chip i{width:8px;height:8px;border-radius:50%;background:#c9c3b8}
.pay-chip.ok i{background:#2f7d4f}.pay-chip.ok{border-color:#bfdcc8}
.pay-chip.wait i{background:#d6a23f}
.pay-chip.late{border-color:#e2b2aa;color:#8f2f24}.pay-chip.late i{background:#b0473a}
.pay-note{font-size:.75rem;color:var(--muted)}
.pay-amt{display:inline-flex;align-items:center;gap:6px;margin-left:auto;font-size:.75rem;color:var(--muted);text-transform:none;letter-spacing:0}
.pay-amt input{width:110px;padding:4px 6px}
.ca-year{font:inherit;font-size:.9rem;margin-left:10px;padding:3px 6px;border:1px solid var(--line);background:var(--surface);color:var(--ink);vertical-align:middle}
.ca-tbl td,.ca-tbl th{white-space:nowrap}
.ca-est{font-style:italic;color:var(--muted)}
.ca-total td{font-weight:600;border-top:2px solid var(--ink)}
.td-item{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.ad-h3 .ca-year{display:inline-block;width:auto;margin-left:12px}
.pay-amt input{width:150px}
/* Espace propriétaire : base clients */
.cl-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);margin-bottom:16px}
.cl-kpis div{background:var(--surface);padding:12px 14px}
.cl-kpis b{display:block;font-family:var(--display);font-weight:400;font-size:1.7rem;line-height:1}
.cl-kpis span{display:block;margin-top:5px;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
@media (max-width:760px){.cl-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
.cl-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:14px}
.cl-bar input[type=search]{flex:1 1 260px;padding:10px 12px;border:1px solid var(--line);background:var(--surface);font:inherit;color:var(--ink)}
.cl-bar select{width:auto;padding:9px 10px;border:1px solid var(--line);background:var(--surface);font:inherit;color:var(--ink)}
.cl-bar .btn{padding:11px 14px;font-size:.66rem}
.cl-tbl tr.cl-row{cursor:pointer}
.cl-tbl tr.cl-row:hover td{background:color-mix(in srgb,var(--sand) 8%,transparent)}
.cl-tbl tr.old td{color:var(--muted)}
.cl-tbl td{white-space:nowrap}
.cl-tag{display:inline-block;margin-left:6px;font-size:.6rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:2px 6px;border-radius:3px;vertical-align:middle}
.cl-tag.fid{background:#7d5a31;color:#fff}.cl-tag.pro{background:#efebe4;color:#6b6358}.cl-tag.fut{background:#e3c79f;color:#3d2b14}.cl-tag.old{background:#f2d6d1;color:#8f2f24}
.cl-edit{background:var(--surface);border:1px solid var(--sand);padding:18px 20px;margin-bottom:16px}
.cl-head{display:flex;justify-content:space-between;align-items:center;gap:10px}
.cl-head h3{font-family:var(--display);font-weight:400;font-size:1.5rem;margin:0}
.cl-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 18px;margin-top:12px}
.cl-grid .full{grid-column:1/-1}
.cl-grid textarea{width:100%;font:inherit;padding:8px;border:1px solid var(--line);background:var(--bg);color:var(--ink)}
.cl-optin{grid-column:1/-1;display:flex;align-items:center;gap:8px;text-transform:none;letter-spacing:0;font-size:.85rem;color:var(--ink)}
@media (max-width:760px){.cl-grid{grid-template-columns:1fr}}
.cl-edit h4{font:600 .7rem var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:18px 0 6px}
.cl-hist{margin:0;padding-left:18px;font-size:.88rem;line-height:1.7}
.cl-hist li.fut{color:var(--sand);font-weight:500}
.cl-act{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:14px}
.cl-act .btn{padding:10px 14px;font-size:.66rem}
.pay-chip.fiche{border-style:dashed}
.cl-edit .cl-optin{display:flex!important;justify-content:flex-start;align-items:center;text-align:left;margin-top:4px}
.cl-edit .cl-optin input{width:18px!important;height:18px;flex:0 0 auto;margin:0;accent-color:var(--ink)}
.cl-act .ad-del[disabled]{text-decoration:none;opacity:.6;cursor:default}
.cl-bar input[type=search]{flex:1 1 220px}
.cl-tbl td{vertical-align:top}
.cl-stays div{white-space:nowrap;font-size:.84rem;line-height:1.6}
.cl-stays div.fut{color:var(--sand);font-weight:500}
.cl-tbl th,.cl-tbl td{text-align:left!important}
.cl-tbl td:nth-child(3){white-space:normal;word-break:break-all;max-width:220px}
.cl-tbl td:nth-child(5),.cl-tbl td:nth-child(6),.cl-tbl th:nth-child(5),.cl-tbl th:nth-child(6){text-align:right!important}
/* Avantage réservation directe */
.hero-direct{margin:6px 0 0;font-size:.95rem;font-weight:600;color:#fff;letter-spacing:.01em}
.q-direct{margin:10px 0 4px;padding:8px 12px;border-radius:8px;background:#e8f3ea;color:#24613a;font-size:.88rem;font-weight:600;line-height:1.35}
/* Ancre calendrier sous l'en-tête fixe */
#calendrier{scroll-margin-top:96px}
@media (max-width:760px){#calendrier{scroll-margin-top:88px}}
/* Espace propriétaire : prix des demandes */
.dem-prix{min-width:190px;white-space:nowrap;font-size:.82rem;line-height:1.45}
.dem-prix span{display:block}
.dem-prix .ok{color:#24613a}
.dem-prix .no{color:var(--muted)}
.dem-prix .unk{color:var(--muted);font-style:italic}
.dem-prix .warn{color:#b3261e}
.dem-prix .tot{font-weight:600;margin-top:2px}
/* ===== Sections plus compactes : Avis, Mot des propriétaires, Cap d'Agde ===== */
#avis,#proprietaires,#cap-agde{padding-block:clamp(56px,7vw,100px)}
/* Avis : guillemet plus discret, espacements resserrés */
#avis .reviews{gap:clamp(28px,3.5vw,48px) clamp(36px,6vw,96px);margin-top:clamp(28px,3.5vw,44px)}
#avis blockquote{gap:12px}
#avis blockquote .q{font-size:3.4rem;height:16px}
/* Mot des propriétaires */
#proprietaires .owners-text p{margin-bottom:12px}
#proprietaires .own-sign{margin-top:18px}
/* Cap d'Agde : titre sur moins de lignes, distances sur 2 colonnes, activités plus compactes */
#cap-agde .place-grid{align-items:start}
#cap-agde .lead{margin-top:16px!important}
#cap-agde .dist{margin-top:20px}
#cap-agde .dist div{padding:10px 0}
#cap-agde .dist b{white-space:nowrap}
#cap-agde .acts{margin-top:20px;gap:6px 8px}
#cap-agde .acts span{padding:6px 12px}
@media (max-width:900px){#cap-agde .dist b{white-space:normal}}
/* Mobile : les avis défilent horizontalement (une carte à la fois, la suivante dépasse légèrement) */
@media (max-width:780px){
  #avis .reviews{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:14px;scrollbar-width:none;padding-bottom:4px}
  #avis .reviews::-webkit-scrollbar{display:none}
  #avis .reviews blockquote{flex:0 0 86%;scroll-snap-align:start;border:1px solid var(--line);background:var(--bg);padding:18px 18px 20px}
  #avis .rev-hint{display:block}
}
.rev-hint{display:none;margin-top:12px;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
/* ===== « Vos dates sont-elles libres ? » : section plus compacte ===== */
#reserver{padding-block:clamp(56px,7vw,100px)}
#reserver .lead{margin-top:16px!important}
#reserver .steps{margin-top:26px}
#reserver .steps li{grid-template-columns:48px 1fr;gap:4px 8px;padding:13px 0}
#reserver .steps span{line-height:1.55}
#reserver .book-know{margin-top:18px;padding:11px 14px}
#reserver .phone{margin-top:20px}
#reserver .wa-link{margin-top:12px;padding:11px 16px}
#reserver form.card{gap:14px 20px}
#reserver form.card h3{margin-bottom:0}
#reserver textarea{min-height:70px}
@media (min-width:901px){#reserver #bookForm{position:sticky;top:100px}}
@media (max-width:540px){
  #reserver form.card{grid-template-columns:1fr 1fr;gap:14px 14px;padding:22px 18px}
  #reserver input[type="date"]{font-size:.92rem;min-width:0}
  #reserver label{letter-spacing:.14em}
}
@media (max-width:340px){#reserver form.card{grid-template-columns:1fr}}
/* ===== Questions fréquentes plus compactes ===== */
#faq{padding-block:clamp(56px,7vw,100px)}
#faq .lead{margin-top:16px!important}
#faq .faq summary{padding:16px 0}
#faq .faq details p{padding-bottom:18px}
#faq .rules{margin-top:clamp(28px,3.5vw,40px)}
#faq .rules summary{padding:18px 22px}
/* ===== Pied de page noir plus compact ===== */
footer.site{padding-block:clamp(48px,6vw,80px) 48px}
footer.site .foot-cta{padding-bottom:36px;align-items:center}
footer.site .foot-cta h2{max-width:none}
footer.site .foot{padding-top:28px;gap:24px 36px}
footer.site .foot h3{margin-bottom:8px}
@media (max-width:780px){footer.site{padding-bottom:110px}footer.site .foot{grid-template-columns:1fr 1fr}footer.site .foot > div:first-child{grid-column:1/-1}}
@media (max-width:420px){footer.site .foot{grid-template-columns:1fr}}
/* ===== Espace propriétaire : récapitulatif taxe de séjour ===== */
.tx-pf{display:flex;flex-wrap:wrap;gap:6px 22px;margin:8px 0 12px;font-size:.88rem;color:var(--muted)}
.tx-pf label{display:inline-flex;align-items:center;gap:8px;cursor:pointer}
.tx-tbl td:nth-child(2),.tx-tbl td:nth-child(5),.tx-tbl td:nth-child(6),.tx-tbl td:nth-child(7),.tx-tbl td:nth-child(8){font-variant-numeric:tabular-nums}
.tx-pfrow td{color:var(--muted)}
.tx-miss{color:#b3261e!important;font-weight:500}
.tx-tbl td:first-child{white-space:nowrap}
.tx-pf label{display:inline-flex!important;align-items:center;gap:8px;width:auto;margin:0;font-family:var(--sans);font-size:.88rem;font-weight:400;letter-spacing:normal;text-transform:none;color:var(--muted)}
.tx-pf input[type="checkbox"]{width:16px;height:16px;margin:0;flex:0 0 auto;accent-color:var(--sand)}
.tx-pf{flex-direction:column;align-items:flex-start}
