/* Page logement : univers du Repaire d'Orée (sauge, eucalyptus, chêne, laiton) */
.lg-hero{position:relative;min-height:88vh;min-height:88svh;display:flex;align-items:flex-end;padding:calc(var(--nav-h) + 40px) clamp(16px,5vw,64px) clamp(40px,7vw,80px);background:var(--canvas-deep);overflow:hidden}
.lg-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.03)}
.lg-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,rgba(14,19,22,.72) 0,rgba(14,19,22,0) 160px),linear-gradient(to top,rgba(14,19,22,.92) 0%,rgba(14,19,22,.55) 40%,rgba(14,19,22,.1) 72%,rgba(14,19,22,.3) 100%)}
.lg-hero .inner{position:relative;z-index:1;max-width:1200px;width:100%;margin:0 auto;display:grid;gap:16px;text-shadow:var(--tshadow)}
.lg-hero h1{font-size:clamp(3rem,8vw,6.6rem)}
.lg-hero .chips{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 0;padding:0;list-style:none}
.lg-hero .chips li{border:1px solid rgba(236,234,227,.4);border-radius:999px;padding:6px 14px;font-size:.92rem;text-shadow:none;background:rgba(20,28,32,.35);backdrop-filter:blur(6px)}
.lg-hero .row{display:flex;flex-wrap:wrap;align-items:center;gap:14px 24px;margin-top:10px}
.lg-hero .rating strong{font-size:1.8rem}

/* galerie */
.gallery{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-rows:clamp(120px,14vw,190px);gap:12px}
.gallery button{position:relative;padding:0;border:0;border-radius:4px;overflow:hidden;cursor:zoom-in;background:var(--canvas-light-2)}
.gallery img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease-out)}
.gallery button:hover img{transform:scale(1.04)}
.gallery .w{grid-column:span 4;grid-row:span 3}
.gallery .t{grid-column:span 2;grid-row:span 3}
.gallery .s{grid-column:span 2;grid-row:span 2}
.gallery figcaption{position:absolute;left:10px;bottom:10px;background:rgba(236,234,227,.92);color:var(--ink);border-radius:999px;padding:4px 12px;font-size:.82rem}
@media (max-width:760px){.gallery{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:clamp(140px,44vw,240px)}.gallery .w,.gallery .t,.gallery .s{grid-column:span 1;grid-row:span 1}.gallery .w{grid-column:span 2}}
.lightbox{border:0;padding:0;background:transparent;max-width:min(1200px,94vw);max-height:92vh}
.lightbox::backdrop{background:rgba(10,14,16,.9)}
.lightbox img{max-width:100%;max-height:84vh;width:auto;margin:0 auto;border-radius:4px}
.lightbox .lb-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:12px;color:var(--text-primary)}
.lightbox button{background:none;border:1px solid rgba(236,234,227,.4);color:var(--text-primary);border-radius:999px;min-height:44px;padding:0 18px;cursor:pointer}

/* thème */
.theme{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,6vw,96px);align-items:center}
.theme .portrait{border-radius:4px;overflow:hidden;aspect-ratio:3/4;max-height:640px;justify-self:end;width:100%}
.theme .portrait img{width:100%;height:100%;object-fit:cover}
.theme blockquote{margin:12px 0 0;padding-left:20px;border-left:1px solid var(--laiton);font-family:var(--font-display);font-style:italic;font-size:clamp(1.25rem,1.9vw,1.6rem);line-height:1.35}
.theme blockquote footer{font-family:var(--font-body);font-style:normal;font-size:.92rem;color:var(--text-secondary);margin-top:8px}
@media (max-width:860px){.theme{grid-template-columns:1fr}.theme .portrait{justify-self:stretch;max-height:520px}}

/* pièces */
.floors{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2.4vw,28px)}
.floor{border-top:1px solid var(--line-light);padding-top:22px;display:grid;gap:12px;align-content:start}
.floor h3{margin:0;font-family:var(--font-display);font-style:italic;font-weight:400;font-size:clamp(1.5rem,2.2vw,1.9rem)}
.floor ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.floor li{display:grid;grid-template-columns:22px 1fr;gap:10px;align-items:baseline}
.floor li::before{content:"";width:9px;height:9px;transform:translateY(-1px) rotate(45deg);border:1px solid var(--laiton)}
.included{margin-top:clamp(36px,5vw,56px);display:flex;flex-wrap:wrap;gap:10px}
.included span{border:1px solid var(--line-light);border-radius:999px;padding:8px 16px;font-size:.95rem}
@media (max-width:860px){.floors{grid-template-columns:1fr}}

/* réservation */
.booking{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:clamp(24px,4vw,48px);align-items:start}
.cal{background:var(--panel);border:1px solid var(--line-dark);border-radius:8px;padding:clamp(16px,2.4vw,28px)}
.cal-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}
.cal-head button{background:none;border:1px solid var(--line-dark);color:var(--text-primary);border-radius:999px;min-width:44px;min-height:44px;cursor:pointer}
.cal-head button:disabled{opacity:.35;cursor:default}
.cal-months{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
.cal-month h3{margin:0 0 10px;font-family:var(--font-display);font-style:italic;font-weight:400;font-size:1.35rem;text-transform:capitalize}
.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;font-variant-numeric:tabular-nums}
.cal-grid .dow{text-align:center;font-size:.72rem;letter-spacing:.12em;color:var(--text-secondary);padding-bottom:4px}
.cal-day{aspect-ratio:1;max-width:100%;border:0;border-radius:6px;background:transparent;color:var(--text-primary);font-size:.95rem;cursor:pointer;position:relative;transition:background-color .2s var(--ease-out)}
.cal-day:hover:not(:disabled):not(.start):not(.end):not(.in-range){background:rgba(236,234,227,.08)}
.cal-day:disabled{color:rgba(236,234,227,.28);cursor:default;text-decoration:line-through}
.cal-day.past:disabled{text-decoration:none}
.cal-day.in-range{background:rgba(197,140,130,.18);border-radius:0}
.cal-day.start,.cal-day.end{background:var(--accent);color:var(--accent-ink);border-radius:6px}
.cal-day .price{display:block;font-size:.62rem;color:var(--text-secondary);line-height:1}
.cal-day.start .price,.cal-day.end .price{color:var(--accent-ink)}
.cal-legend{display:flex;flex-wrap:wrap;gap:16px;margin-top:16px;font-size:.85rem;color:var(--text-secondary)}
.cal-legend i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.cal-note{margin-top:16px;padding:14px 16px;border-radius:6px;background:rgba(226,179,106,.1);border:1px solid rgba(226,179,106,.3);color:var(--text-primary);font-size:.95rem}
.cal-note[hidden]{display:none}
@media (max-width:640px){.cal-months{grid-template-columns:1fr}.cal-month+.cal-month{display:none}}

.quote-box{position:sticky;top:calc(var(--nav-h) + 20px);background:var(--panel);border:1px solid var(--line-dark);border-radius:8px;padding:clamp(18px,2.4vw,28px);display:grid;gap:16px}
.quote-box h3{margin:0;font-family:var(--font-display);font-style:italic;font-weight:400;font-size:1.6rem}
.field{display:grid;gap:6px}
.field label{font-size:.9rem;color:var(--text-secondary)}
.dates{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.dates output{display:block;border:1px solid var(--line-dark);border-radius:6px;padding:10px 12px;min-height:46px}
.stepper{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line-dark);border-radius:6px;padding:6px 6px 6px 12px}
.stepper button{width:40px;height:40px;border-radius:50%;border:1px solid var(--line-dark);background:none;color:var(--text-primary);cursor:pointer;font-size:1.2rem;line-height:1}
.stepper button:disabled{opacity:.3;cursor:default}
.stepper output{font-variant-numeric:tabular-nums;min-width:2ch;text-align:center}
.lines{margin:0;padding:0;list-style:none;display:grid;gap:8px;font-variant-numeric:tabular-nums}
.lines li{display:flex;justify-content:space-between;gap:12px}
.lines .total{border-top:1px solid var(--line-dark);padding-top:10px;font-weight:600;font-size:1.1rem}
.quote-box .btn{width:100%}
.quote-box .btn[aria-disabled="true"]{opacity:.45;cursor:not-allowed;transform:none}
.quote-box .small{font-size:.85rem;color:var(--text-secondary);margin:0}
@media (max-width:960px){.booking{grid-template-columns:1fr}.quote-box{position:static}}

/* questions fréquentes */
.faq{display:grid;gap:0;max-width:860px}
.faq details{border-top:1px solid var(--line-light);padding:6px 0}
.faq details:last-child{border-bottom:1px solid var(--line-light)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:16px;align-items:center;padding:14px 0;font-family:var(--font-display);font-style:italic;font-size:clamp(1.15rem,1.7vw,1.4rem)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";flex:none;width:10px;height:10px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:rotate(45deg);transition:transform .35s var(--ease-out)}
.faq details[open] summary::after{transform:rotate(-135deg)}
.faq p{margin:0 0 16px;color:var(--ink-secondary);max-width:62ch}

.dark .faq details{border-color:var(--line-dark)}
.dark .faq p{color:var(--text-secondary)}

/* page de paiement /reserver/ */
.rs-head{padding-top:calc(var(--nav-h) + clamp(48px,8vw,96px));padding-bottom:clamp(48px,7vw,80px)}
.rs-head h1{font-size:clamp(2.4rem,6vw,4.6rem);margin:12px 0 28px}
.rs-recap{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 28px;margin:0 0 28px;max-width:1080px}
.rs-recap div{border-top:1px solid var(--line-dark);padding-top:12px}
.rs-recap dt{font-size:.85rem;color:var(--text-secondary)}
.rs-recap dd{margin:4px 0 0;font-family:var(--font-display);font-style:italic;font-size:clamp(1.1rem,1.7vw,1.35rem)}
@media (max-width:760px){.rs-recap{grid-template-columns:repeat(2,minmax(0,1fr))}}
.rs-body{padding-top:clamp(40px,6vw,72px)}
.rs-body .lede{margin-bottom:28px}
.rs-frame{background:#fff;border:1px solid var(--line-light);border-radius:8px;overflow:hidden}
.rs-frame iframe{display:block;width:100%;height:1500px;border:0}
.rs-help{margin-top:16px;color:var(--ink-secondary);font-size:.95rem}
.rs-help a{color:var(--ink)}
