@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:wght@600;700&display=swap');
:root{--ink:#202722;--forest:#17231f;--gold:#b58b42;--cream:#f5f0e7;--paper:#fff;--muted:#6f756f;--line:#e8e1d6}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:'DM Sans',sans-serif;color:var(--ink);background:#fff}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}.nav{height:88px;padding:0 5vw;display:flex;align-items:center;justify-content:space-between;background:rgba(255,255,255,.96);position:sticky;top:0;z-index:20;border-bottom:1px solid #eee;backdrop-filter:blur(10px)}.brand img{height:67px;width:auto}.nav nav{display:flex;gap:26px;align-items:center;font-size:14px;font-weight:600}.btn{display:inline-flex;align-items:center;justify-content:center;background:var(--gold);color:#fff;padding:16px 24px;border-radius:7px;font-weight:700;border:0;cursor:pointer;transition:.2s}.btn:hover{transform:translateY(-2px);filter:brightness(.96)}.btn.small{padding:11px 18px}.menu{display:none;border:0;background:none;font-size:27px}.hero{height:calc(100vh - 88px);min-height:650px;position:relative;display:flex;align-items:center;color:white;overflow:hidden}.hero-bg{position:absolute;inset:0;background:url('images/gite/chambre-principale.jpg') center 48%/cover no-repeat;transform:scale(1.02)}.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(12,24,19,.86),rgba(12,24,19,.35) 58%,rgba(12,24,19,.08))}.hero-content{position:relative;max-width:760px;margin-left:8vw;padding-right:25px}.eyebrow{font-size:12px;letter-spacing:.22em;font-weight:700}.hero h1,.intro h2,.room-copy h2,.vexin h2,.local-copy h2,.reviews h2,.hosts h2,.booking h2,.reserve-title h1{font-family:'Playfair Display',serif;font-size:clamp(48px,6vw,84px);line-height:1.02;margin:18px 0}.hero p{font-size:20px;line-height:1.65;max-width:620px}.actions{display:flex;gap:22px;align-items:center;margin:31px 0}.ghost{border-bottom:1px solid rgba(255,255,255,.7);padding:12px 0}.proof{display:flex;gap:12px;align-items:center;font-size:14px;margin-top:38px;flex-wrap:wrap}.proof i{width:3px;height:3px;background:#fff;border-radius:50%;opacity:.7}.gold{color:#9a7432}.intro,.hosts{display:grid;grid-template-columns:1fr 1fr;gap:8vw;padding:105px 8vw;background:var(--cream);align-items:center}.intro h2,.room-copy h2,.vexin h2,.local-copy h2,.reviews h2,.hosts h2,.booking h2,.reserve-title h1{font-size:clamp(38px,4.2vw,62px)}.intro p,.hosts p,.room-copy p,.vexin p,.local-copy p{font-size:18px;line-height:1.8;color:#555e58}.textlink{display:inline-block;margin-top:18px;font-weight:700;border-bottom:1px solid currentColor;padding-bottom:3px}.showcase{display:grid;grid-template-columns:1.65fr 1fr;grid-template-rows:330px 330px;gap:10px;padding:10px;background:#fff}.shot{margin:0;position:relative;overflow:hidden}.shot-main{grid-row:1/3}.shot img{width:100%;height:100%;object-fit:cover;transition:transform .5s}.shot:hover img{transform:scale(1.025)}.shot figcaption{position:absolute;left:22px;bottom:20px;background:rgba(20,29,25,.82);color:#fff;padding:9px 13px;border-radius:5px;font-size:13px}.facts{display:grid;grid-template-columns:repeat(4,1fr);padding:48px 8vw;border-bottom:1px solid #eee}.facts div{padding:10px 28px;border-right:1px solid #ddd}.facts div:last-child{border:0}.facts strong{display:block;font-family:'Playfair Display',serif;font-size:30px}.facts span{color:var(--muted);font-size:14px}.comfort{display:grid;grid-template-columns:repeat(3,1fr);gap:25px;padding:85px 8vw}.comfort article{padding:35px;border:1px solid var(--line);border-radius:12px}.ico{font-size:29px;color:var(--gold)}.comfort h3{font-size:20px}.comfort p{color:var(--muted);line-height:1.7}.room-feature{display:grid;grid-template-columns:1.15fr .85fr;min-height:650px;background:var(--cream)}.room-photo img{width:100%;height:100%;object-fit:cover}.room-copy{padding:8vw;align-self:center}.mosaic{display:grid;grid-template-columns:1.4fr .8fr 1.2fr .8fr;height:410px;gap:8px;padding:8px}.mosaic img{width:100%;height:100%;object-fit:cover}.vexin{min-height:680px;background:linear-gradient(90deg,rgba(14,30,24,.93),rgba(14,30,24,.58)),url('images/gite/eglise.jpg') center/cover;color:white;display:flex;align-items:center;padding:8vw}.vexin-copy{max-width:650px}.vexin p{color:#e7ede9}.chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}.chips span{border:1px solid rgba(255,255,255,.38);border-radius:99px;padding:9px 14px}.local-grid{display:grid;grid-template-columns:1fr 1fr 1.05fr;min-height:480px}.local-grid>div:not(.local-copy){overflow:hidden}.local-grid img{width:100%;height:100%;object-fit:cover}.local-copy{padding:65px;align-self:center}.reviews{text-align:center;padding:105px 8vw}.platform-ratings{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;max-width:1000px;margin:45px auto 0}.review-platform{border:1px solid var(--line);border-radius:14px;padding:30px;background:#fff;text-align:left;transition:.2s}.review-platform:hover{transform:translateY(-3px);box-shadow:0 12px 35px rgba(20,35,49,.08)}.review-platform .platform{font-weight:700;color:var(--muted);margin-bottom:15px}.review-platform b{display:block;font-family:'Playfair Display',serif;font-size:30px}.stars{font-size:18px;letter-spacing:3px;color:var(--gold);margin:8px 0}.review-platform small,.review-note{color:var(--muted)}.review-note{margin-top:25px}.hosts{background:#f8f6f1}.host-mark{text-align:center}.host-mark img{max-width:350px;width:78%;margin:auto}.booking{text-align:center;background:var(--forest);color:#fff;padding:100px 8vw}.booking p{max-width:620px;margin:0 auto 30px;color:#d6ddd8;font-size:18px;line-height:1.7}.btn.light{background:#fff;color:var(--forest)}footer{display:grid;grid-template-columns:1fr 1.2fr 1fr auto;gap:35px;align-items:center;padding:45px 5vw;background:#fff;font-size:14px}footer img{width:150px}footer a{text-decoration:underline}
/* Réservation et administration : styles conservés */
.reserve-page{background:var(--cream)}.reserve-wrap{padding:70px 8vw 100px}.reserve-title{max-width:820px;margin-bottom:45px}.reserve-title p{color:var(--muted);line-height:1.7}.reserve-grid{display:grid;grid-template-columns:1.6fr .8fr;gap:35px;align-items:start}.reserve-form,.summary{background:#fff;padding:35px;border-radius:16px;box-shadow:0 10px 35px rgba(15,30,40,.06)}.reserve-form{display:grid;gap:18px}.reserve-form label{font-size:14px;font-weight:600}.reserve-form input,.reserve-form select,.reserve-form textarea{width:100%;margin-top:8px;border:1px solid #d9dde0;border-radius:8px;padding:13px;font:inherit;background:white}.two{display:grid;grid-template-columns:1fr 1fr;gap:15px}.check{font-weight:400!important;display:flex;gap:8px;align-items:flex-start}.check input{width:auto;margin:3px 0}.summary{position:sticky;top:105px}.summary img{width:120px}.sumline{display:flex;justify-content:space-between;padding:14px 0;border-bottom:1px solid #eee}.sumline.total{font-size:20px;border-bottom:0}.summary small{display:block;color:var(--muted);line-height:1.5;margin-top:15px}.calendar-card{background:#fff;padding:30px;border-radius:16px;box-shadow:0 10px 35px rgba(15,30,40,.06);margin-bottom:35px}.calendar-head{display:flex;justify-content:space-between;align-items:center;gap:20px}.calendar-head h2{margin:0}.calendar-head p{color:var(--muted);font-size:13px}.cal-nav{display:flex;align-items:center;gap:15px}.cal-nav button{border:1px solid #ddd;background:#fff;border-radius:8px;padding:8px 12px;cursor:pointer}.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:7px;margin-top:22px}.dow{text-align:center;font-size:12px;color:var(--muted);font-weight:700;padding:7px}.day{min-height:72px;border:1px solid #e5e5e5;background:#f3f8f2;border-radius:10px;padding:9px;text-align:left;cursor:pointer}.day b,.day small{display:block}.day small{font-size:10px;margin-top:7px;color:#5f6b63}.day.pending{background:#fff3d8;border-color:#e9c979}.day.busy{background:#f8e2e2;border-color:#e6aaaa;cursor:not-allowed}.day.past{background:#f1f1f1;color:#aaa;cursor:not-allowed}.alert{padding:16px 20px;border-radius:10px;margin:0 0 25px}.alert.success{background:#e7f5ea;color:#215e2c}.alert.error{background:#fae7e7;color:#842626}.loginbox{max-width:440px;margin:10vh auto;background:#fff;padding:40px;border-radius:18px;box-shadow:0 15px 45px rgba(15,30,40,.08)}.loginbox img{width:170px}.loginbox h1{font-family:'Playfair Display',serif}.loginbox form{display:grid;gap:18px}.loginbox input,.stack input{width:100%;padding:12px;border:1px solid #ddd;border-radius:8px;margin-top:7px}.loginbox small{display:block;color:var(--muted);margin-top:20px}.admin-page{background:#f6f2e9}.admin-head{height:82px;background:#fff;padding:0 5vw;display:flex;justify-content:space-between;align-items:center}.admin-head img{height:62px}.admin-head nav{display:flex;gap:20px}.admin-wrap{padding:55px 5vw}.admin-title{display:flex;justify-content:space-between;align-items:end;margin-bottom:30px}.admin-title h1{font-family:'Playfair Display',serif;font-size:48px;margin:8px 0}.kpis{display:flex;gap:12px}.kpis div{background:#fff;border-radius:12px;padding:16px 24px}.kpis b{font-size:26px;display:block}.kpis span{font-size:12px;color:var(--muted)}.admin-grid{display:grid;grid-template-columns:1fr 320px;gap:24px}.admin-card{background:#fff;border-radius:16px;padding:25px}.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:14px 10px;border-bottom:1px solid #eee;vertical-align:top}td small{display:block;color:var(--muted);margin-top:5px}.status{font-size:11px;font-weight:700;padding:6px 9px;border-radius:99px}.status.pending{background:#fff0c9}.status.confirmed{background:#dff3e2}.status.refused,.status.cancelled{background:#eee}.inline-actions{display:flex;gap:6px}.inline-actions button{border:1px solid #ddd;background:#fff;border-radius:7px;padding:7px;cursor:pointer}.stack{display:grid;gap:13px}.blockline{padding:12px 0;border-bottom:1px solid #eee}
@media(max-width:900px){.nav{height:74px;padding:0 20px}.brand img{height:55px}.nav nav{display:none;position:absolute;top:74px;left:0;right:0;background:#fff;padding:25px;flex-direction:column;align-items:flex-start;box-shadow:0 15px 25px rgba(0,0,0,.08)}.nav nav.open{display:flex}.menu{display:block}.hero{height:690px}.hero-content{margin:0 24px}.hero h1{font-size:52px}.hero p{font-size:17px}.intro,.hosts{grid-template-columns:1fr;padding:75px 24px}.showcase{grid-template-columns:1fr 1fr;grid-template-rows:360px 230px}.shot-main{grid-column:1/3;grid-row:auto}.facts{grid-template-columns:1fr 1fr;padding:30px 15px}.facts div{border-right:0;border-bottom:1px solid #ddd}.comfort{grid-template-columns:1fr;padding:65px 24px}.room-feature{grid-template-columns:1fr}.room-photo{height:520px}.room-copy{padding:70px 24px}.mosaic{grid-template-columns:1fr 1fr;height:auto}.mosaic img{height:300px}.vexin{padding:75px 24px;min-height:600px}.local-grid{grid-template-columns:1fr 1fr}.local-grid>div:not(.local-copy){height:320px}.local-copy{grid-column:1/3;padding:60px 24px}.platform-ratings{grid-template-columns:1fr}.booking{padding:75px 24px}footer{grid-template-columns:1fr;padding:35px 24px}.reserve-wrap{padding:50px 20px}.reserve-grid{grid-template-columns:1fr}.summary{position:static}.two{grid-template-columns:1fr}.calendar-card{padding:18px}.calendar-head{align-items:flex-start;flex-direction:column}.day{min-height:55px;padding:6px}.day small{display:none}.admin-title{align-items:flex-start;flex-direction:column}.admin-grid{grid-template-columns:1fr}.admin-card{padding:16px}.kpis{margin-top:15px}}
@media(max-width:560px){.hero-bg{background-position:55% center}.hero h1{font-size:46px}.actions{align-items:flex-start;flex-direction:column}.showcase{display:block;padding:6px}.shot{height:280px;margin-bottom:6px}.shot-main{height:390px}.facts strong{font-size:25px}.facts div{padding:16px}.room-photo{height:440px}.mosaic img{height:220px}.local-grid{display:block}.local-grid>div:not(.local-copy){height:280px}.local-copy{padding:55px 24px}}

/* Galerie compacte */
.showcase{max-width:1180px;margin:38px auto 0;padding:0 24px 70px;grid-template-columns:1.45fr 1fr;grid-template-rows:210px 210px;gap:12px}
.showcase .shot{border-radius:14px}.showcase .shot-main{grid-row:1/3}.showcase .shot figcaption{left:14px;bottom:14px;padding:7px 10px}
.room-feature{max-width:1180px;min-height:0;margin:35px auto 85px;border-radius:18px;overflow:hidden}.room-photo{min-height:430px}.room-photo img{height:430px}.room-copy{padding:55px}
.mosaic{max-width:1180px;height:300px;margin:0 auto 85px;padding:0 24px;gap:10px}.mosaic img{border-radius:12px}
.local-grid{max-width:1180px;min-height:0;margin:0 auto 85px;padding:0 24px;grid-template-columns:.85fr .85fr 1.15fr;gap:12px}.local-grid>div:not(.local-copy){height:330px;border-radius:14px}.local-copy{padding:30px 35px}
@media(max-width:900px){.showcase{grid-template-rows:290px 190px;padding:0 20px 55px}.room-feature{margin:20px 20px 65px}.room-photo,.room-photo img{height:390px;min-height:390px}.room-copy{padding:48px 28px}.mosaic{height:auto;padding:0 20px;margin-bottom:65px}.mosaic img{height:220px}.local-grid{padding:0 20px;margin-bottom:65px}.local-grid>div:not(.local-copy){height:270px}}
@media(max-width:560px){.showcase{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:260px 145px;gap:7px;padding:0 12px 45px}.showcase .shot{height:auto;margin:0}.showcase .shot-main{grid-column:1/3;grid-row:auto;height:auto}.showcase .shot figcaption{font-size:11px}.room-feature{margin:10px 12px 50px}.room-photo,.room-photo img{height:310px;min-height:310px}.room-copy{padding:38px 22px}.mosaic{grid-template-columns:1fr 1fr;padding:0 12px;gap:7px;margin-bottom:50px}.mosaic img{height:155px}.local-grid{display:grid;grid-template-columns:1fr 1fr;padding:0 12px;gap:7px}.local-grid>div:not(.local-copy){height:190px}.local-copy{grid-column:1/3;padding:35px 12px}}

/* Retour de la photo extérieure du hero de la première version */
.hero-bg{background-image:url('https://a0.muscache.com/im/pictures/hosting/Hosting-U3RheVN1cHBseUxpc3Rpbmc6MTE4Njg3MjEyMjM5OTQ5ODEwMQ%3D%3D/original/45b3cd49-3a98-4b33-bd8d-e7773d014374.jpeg?im_w=1440');background-position:center;background-size:cover;background-repeat:no-repeat}
