@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:wght@500;600;700&display=swap');
:root{--ink:#252b27;--muted:#69716a;--cream:#f5f3ed;--paper:#fffefa;--green:#42584a;--line:#e3e0d7;--gold:#b58d5c}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif;line-height:1.65}a{color:inherit;text-decoration:none}.topbar{height:82px;padding:0 6vw;display:flex;align-items:center;justify-content:space-between;background:rgba(255,254,250,.96);position:sticky;top:0;z-index:10;border-bottom:1px solid var(--line)}.brand{font-family:'Playfair Display',serif;font-size:23px;line-height:1.1;letter-spacing:.02em}.brand small{display:block;font:10px 'DM Sans',sans-serif;letter-spacing:.25em;text-transform:uppercase;color:var(--muted);margin-top:6px}.nav{display:flex;align-items:center;gap:30px;font-size:13px;letter-spacing:.08em;text-transform:uppercase}.nav a{padding:8px 0}.nav a:hover,.nav a.active{color:var(--gold)}.nav .book{background:var(--green);color:white;padding:12px 19px}.menu{display:none;background:none;border:0;font-size:24px}.hero{height:min(77vh,760px);min-height:520px;position:relative;background:#333;overflow:hidden}.hero img{width:100%;height:100%;object-fit:cover;object-position:center 56%;filter:brightness(.72)}.hero-copy{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:white;padding:30px}.eyebrow{text-transform:uppercase;letter-spacing:.28em;font-size:11px;font-weight:600}.hero h1{font:clamp(44px,7vw,82px)/1.08 'Playfair Display',serif;margin:20px 0 15px;max-width:900px}.hero p{font-size:16px;max-width:540px;margin:0 auto 28px}.button{display:inline-block;background:var(--green);color:white;padding:14px 24px;text-transform:uppercase;letter-spacing:.12em;font-size:11px;font-weight:700;border:1px solid var(--green);transition:.2s}.button:hover{background:#314237}.button.light{background:transparent;border-color:white}.button.light:hover{background:white;color:var(--ink)}.intro{text-align:center;max-width:760px;margin:90px auto;padding:0 25px}.intro h2,.section-head h2{font:clamp(32px,4vw,48px)/1.18 'Playfair Display',serif;margin:12px 0 18px}.intro p{color:var(--muted);font-size:16px}.kicker{font-size:10px;letter-spacing:.25em;text-transform:uppercase;color:var(--gold);font-weight:700}.feature-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:0 5vw 90px}.feature{position:relative;height:430px;overflow:hidden;background:#ddd}.feature img{width:100%;height:100%;object-fit:cover;transition:transform .6s}.feature:hover img{transform:scale(1.035)}.feature span{position:absolute;bottom:25px;left:28px;color:white;font:30px 'Playfair Display',serif;text-shadow:0 2px 15px #000}.wide-photo{height:500px;overflow:hidden}.wide-photo img{width:100%;height:100%;object-fit:cover}.cta-band{background:var(--cream);padding:75px 20px;text-align:center}.cta-band h2{font:40px 'Playfair Display',serif;margin:10px 0 20px}.page-hero{height:390px;position:relative;overflow:hidden;background:#333}.page-hero img{width:100%;height:100%;object-fit:cover;filter:brightness(.58)}.page-hero .page-title{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;color:#fff;padding:20px}.page-title h1{font:clamp(40px,6vw,66px) 'Playfair Display',serif;margin:8px 0}.content{max-width:1120px;margin:75px auto;padding:0 28px}.content h2{font:36px 'Playfair Display',serif;line-height:1.2}.content h3{font:25px 'Playfair Display',serif}.lead{font-size:18px;color:var(--muted);max-width:780px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:55px;align-items:center;margin:65px 0}.two-col img{width:100%;height:410px;object-fit:cover}.checks{display:grid;grid-template-columns:1fr 1fr;gap:12px 25px;padding:0;list-style:none;color:var(--muted)}.checks li:before{content:'✦';color:var(--gold);margin-right:10px}.gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin:45px 0}.gallery img{width:100%;height:330px;object-fit:cover}.gallery img:nth-child(2),.gallery img:nth-child(5){height:410px}.reservation-layout{display:grid;grid-template-columns:1fr 1fr;gap:50px;margin-top:45px}.price-card,.calendar-card{border:1px solid var(--line);padding:30px;background:white}.price-row{display:flex;justify-content:space-between;padding:15px 0;border-bottom:1px solid var(--line)}.note{font-size:12px;color:var(--muted)}.calendar-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;text-align:center}.calendar b{font-size:11px;color:var(--muted);padding:8px 0}.calendar span{padding:9px 0;background:#f4f2ec;font-size:13px}.calendar span.demo-open{background:#e5eee6;color:#35533d}.calendar span.demo-booked{background:#f0e4dc;color:#8c563f;text-decoration:line-through}.legend{display:flex;gap:18px;font-size:11px;color:var(--muted);margin-top:16px}.dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px}.activities{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:40px 0}.activity{background:var(--cream);padding:26px}.activity h3{margin:5px 0 10px}.footer{background:#26342b;color:#f8f6ef;padding:55px 6vw 25px}.footer-inner{display:flex;justify-content:space-between;gap:35px;align-items:flex-start}.footer h2{font:30px 'Playfair Display',serif;margin:0 0 10px}.footer p{color:#d0d5ce;font-size:13px}.footer a:not(.button){text-decoration:underline;text-underline-offset:4px}.footer-bottom{border-top:1px solid #506056;margin-top:40px;padding-top:18px;display:flex;justify-content:space-between;color:#b9c1ba;font-size:11px}.contact-pill{display:inline-block;margin-top:12px;border-bottom:1px solid #d0d5ce;padding-bottom:3px}@media(max-width:760px){.topbar{height:70px;padding:0 20px}.menu{display:block}.nav{display:none;position:absolute;top:70px;left:0;right:0;background:var(--paper);padding:20px;flex-direction:column;gap:10px;border-bottom:1px solid var(--line)}.nav.open{display:flex}.hero{min-height:530px;height:72vh}.hero h1{font-size:48px}.feature-grid,.two-col,.reservation-layout{grid-template-columns:1fr}.feature{height:320px}.intro{margin:65px auto}.page-hero{height:300px}.content{margin:50px auto;padding:0 20px}.two-col{gap:22px;margin:45px 0}.two-col img{height:300px}.gallery{grid-template-columns:1fr}.gallery img,.gallery img:nth-child(2),.gallery img:nth-child(5){height:280px}.activities{grid-template-columns:1fr}.footer-inner,.footer-bottom{flex-direction:column}.wide-photo{height:300px}.checks{grid-template-columns:1fr}}

.calendar-live{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:20px}.month h4{text-transform:capitalize}.calendar .demo-booked{background:#f0e4dc;border-radius:6px}.calendar .demo-open{background:#e5eee6;border-radius:6px}.admin{color:#24302a}.admin-section{box-shadow:0 8px 30px #0000000a}

/* Espaces détaillés du chalet */
.space-section{padding:55px 0;border-bottom:1px solid var(--line);scroll-margin-top:100px}
.space-copy{max-width:760px;margin-bottom:25px}.space-copy h2{margin:8px 0 12px}.space-main{display:block;height:480px;overflow:hidden;background:#eee}.space-main img{width:100%;height:100%;object-fit:cover;transition:transform .35s}.space-main:hover img{transform:scale(1.015)}
.space-thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:12px}.space-thumbs a{display:block;height:150px;overflow:hidden;background:#eee}.space-thumbs img{width:100%;height:100%;object-fit:cover;transition:transform .3s}.space-thumbs a:hover img{transform:scale(1.06)}
.lightbox-overlay{display:none;position:fixed;inset:0;background:#101510ed;z-index:100;align-items:center;justify-content:center;padding:5vw}.lightbox-overlay.visible{display:flex}.lightbox-overlay img{max-width:95vw;max-height:88vh;object-fit:contain}.lightbox-overlay button{position:absolute;top:20px;right:28px;color:white;background:transparent;border:0;font-size:42px;cursor:pointer}
.feature-grid-four{grid-template-columns:repeat(2,minmax(0,1fr))}
.map-section{display:grid;grid-template-columns:.8fr 1.2fr;gap:35px;align-items:center;margin:70px 0;padding:30px;background:var(--cream)}.map-section iframe{width:100%;height:390px;border:0}
@media(max-width:760px){.space-main{height:300px}.space-thumbs{grid-template-columns:repeat(2,1fr)}.space-thumbs a{height:125px}.map-section{grid-template-columns:1fr;padding:20px}.map-section iframe{height:320px}.feature-grid-four{grid-template-columns:1fr}}

/* FOND BOIS CLAIR NATUREL — règle unique */
html {
    min-height: 100%;
    background-color: #f5f3ed !important;
}

body {
    min-height: 100vh;
    margin: 0;
    color: var(--ink);
    background-color: transparent !important;
    background-image: url("/assets/bois-creme-naturel.jpg") !important;
    background-repeat: repeat !important;
    background-position: left top !important;
    background-size: 1600px auto !important;
    background-attachment: fixed !important;
}

/* Surfaces légèrement translucides : la texture reste perceptible */
.topbar { background: rgba(255, 254, 250, .82) !important; }
.intro, .content { background: transparent !important; }
.price-card, .calendar-card { background: rgba(255, 251, 244, .88); }
.activity, .map-section { background: rgba(243, 235, 222, .58); }
.cta-band { background: rgba(243, 235, 222, .62); }

/* Navigation : repère visuel de la page active */
.nav a.active, .nav a.active:hover {
    color: #171a17 !important;
    font-weight: 800;
}
.nav a.book.active, .nav a.book.active:hover {
    color: #171a17 !important;
    background: #e8dfcf;
    font-weight: 800;
}

.space-thumbs { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.environment-extra-photos { margin: 24px 0 55px; }
.calendar .demo-booked { background: #f0e4dc; color: #8c563f; }

@media (max-width: 760px) {
    .nav { background: rgba(255, 254, 250, .94) !important; }
    .space-thumbs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
