:root{--bg:#f5f3ee;--bg-alt:#fff;--accent:#6b8c52;--accent-dark:#4d6a3a;--text:#2f3437;--muted:#7b8489;--border:#e0ddd6;--shadow-soft:0 18px 45px rgba(0,0,0,.08);--radius-xl:24px;--radius-lg:18px;--radius-pill:999px;--max-width:1100px}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:Nunito,system-ui,sans-serif;background:radial-gradient(circle at top,#fdfaf5 0,var(--bg) 55%,#ece6dc 100%);color:var(--text);line-height:1.6}img{max-width:100%;display:block}a{text-decoration:none;color:inherit}.page{min-height:100vh;display:flex;flex-direction:column}header{position:sticky;top:0;z-index:50;backdrop-filter:blur(14px);background:rgba(245,243,238,.88);border-bottom:1px solid rgba(213,208,196,.7)}.nav{max-width:var(--max-width);margin:0 auto;padding:.7rem 1.25rem;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;overflow:visible}.logo{display:flex;align-items:center;gap:.65rem;font-family:serif;font-weight:700;letter-spacing:.06em;text-transform:uppercase;font-size:.85rem}.logo-mark{width:30px;height:30px;border-radius:40% 60% 55% 45%;background:radial-gradient(circle at 30% 30%,#fdfbf7,var(--accent));display:inline-flex;align-items:center;justify-content:center;color:#fff}.nav-links{display:flex;gap:1.05rem;align-items:center;font-size:.9rem;flex-wrap:wrap}.nav-links a{padding:.4rem .65rem;border-radius:var(--radius-pill);color:var(--muted)}.nav-cta{background:var(--accent);color:#fff!important;font-weight:700;box-shadow:0 10px 25px rgba(107,140,82,.35)}.lang-dropdown{position:relative;flex-shrink:0}.lang-btn{border:1px solid rgba(107,140,82,.35);border-radius:12px;padding:.45rem .7rem;background:rgba(255,255,255,.6);cursor:pointer}.lang-menu{display:none;position:absolute;right:0;top:calc(100% + .35rem);background:rgba(255,255,255,.94);border-radius:14px;box-shadow:0 12px 35px rgba(0,0,0,.22);overflow:hidden;z-index:300;min-width:160px}.lang-menu.open{display:block}.lang-menu a{display:block;padding:.55rem .8rem;white-space:nowrap}.section{max-width:var(--max-width);margin:0 auto;padding:3.5rem 1.25rem}.section-header{margin-bottom:2.2rem;max-width:760px}.section-kicker{font-size:.8rem;text-transform:uppercase;letter-spacing:.18em;color:var(--accent-dark);font-weight:800;margin-bottom:.4rem}.section-title{font-family:serif;font-size:2rem;margin-bottom:.4rem}.section-subtitle,.hero-lead{color:var(--muted)}.hero{max-width:var(--max-width);margin:0 auto;padding:2rem 1.25rem 4rem;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:2.8rem;align-items:center}.badge{display:inline-flex;align-items:center;gap:.5rem;font-size:.78rem;text-transform:uppercase;letter-spacing:.18em;border-radius:var(--radius-pill);padding:.28rem .8rem;background:rgba(107,140,82,.09);color:var(--accent-dark);margin-bottom:.9rem}.badge-dot,.meta-dot{border-radius:50%;background:var(--accent);display:inline-block}.badge-dot{width:7px;height:7px}.meta-dot{width:6px;height:6px}.hero-title{font-family:serif;font-size:clamp(2.2rem,3vw,3rem);line-height:1.1;margin-bottom:.8rem}.hero-title span{color:var(--accent-dark)}.hero-meta,.hero-actions{display:flex;flex-wrap:wrap;gap:1rem;margin:1.4rem 0}.meta-pill{display:inline-flex;align-items:center;gap:.4rem;padding:.35rem .8rem;border-radius:var(--radius-pill);border:1px solid rgba(107,140,82,.35);background:rgba(252,251,247,.9);color:var(--muted);font-size:.86rem}.btn{border-radius:var(--radius-pill);padding:.7rem 1.4rem;border:none;cursor:pointer;font-size:.9rem;font-weight:700;display:inline-flex;align-items:center;gap:.5rem}.btn-primary{background:var(--accent);color:#fff;box-shadow:0 16px 35px rgba(107,140,82,.3)}.btn-ghost{background:transparent;color:var(--accent-dark);border:1px solid rgba(107,140,82,.45)}.hero-card,.chalet-card,.contact-card,.reservation-card{background:rgba(255,255,255,.9);border-radius:var(--radius-xl);box-shadow:var(--shadow-soft);border:1px solid rgba(224,221,214,.75)}.hero-card{padding:.85rem}.hero-image-main,.chalet-image{border-radius:var(--radius-lg);overflow:hidden;aspect-ratio:4/3}.hero-image-main img,.chalet-image img,.gallery-item img{width:100%;height:100%;object-fit:cover}.hero-image-main{position:relative}.hero-tag{position:absolute;left:1.1rem;top:1.1rem;padding:.28rem .7rem;font-size:.75rem;border-radius:var(--radius-pill);background:rgba(9,18,9,.32);color:#f5f3ee}.hero-visual{position:relative}.hero-floating{position:absolute;bottom:-.9rem;left:50%;transform:translateX(-50%);background:#fff;border-radius:18px;padding:.7rem .9rem;min-width:230px;box-shadow:var(--shadow-soft);display:flex;gap:.7rem;font-size:.78rem}.hero-floating strong{display:block}.hero-floating-badge{width:34px;height:34px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#fff,var(--accent));flex-shrink:0}.chalets-grid,.contact-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.8rem}.chalet-card{padding:1rem;display:flex;flex-direction:column;gap:.9rem}.chalet-title{font-family:serif;font-size:1.3rem}.chalet-tagline{color:var(--muted);font-style:italic}.gallery-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem}.gallery-item{position:relative;overflow:hidden;border:0;border-radius:18px;aspect-ratio:4/3;cursor:pointer;background:transparent;padding:0}.gallery-label{position:absolute;left:.6rem;bottom:.6rem;padding:.25rem .6rem;font-size:.72rem;color:#fff;background:rgba(0,0,0,.38);border-radius:var(--radius-pill);backdrop-filter:blur(6px)}.contact-card{padding:1.4rem 1.5rem}.contact-card h3{font-family:serif;font-size:1.4rem;margin-bottom:.8rem}form{display:flex;flex-direction:column;gap:.75rem}label{font-size:.85rem;font-weight:700;color:var(--text);display:block}input,textarea,select{width:100%;padding:.6rem .75rem;border-radius:12px;border:1px solid rgba(197,192,182,.9);background:#faf7f1;font-family:inherit}textarea{min-height:120px;resize:vertical}.form-row{display:flex;gap:.8rem;flex-wrap:wrap}.form-row>div{flex:1;min-width:140px}.form-success{margin:0 0 1rem;padding:.75rem 1rem;border-radius:10px;background:rgba(32,107,68,.14);color:#205335}.contact-side{font-size:.9rem;color:var(--muted);display:flex;flex-direction:column;gap:1.1rem}.contact-highlight{padding:1rem;border-radius:18px;border:1px dashed rgba(107,140,82,.4);background:rgba(248,246,240,.95)}.contact-list{list-style:none;display:grid;gap:.6rem}.reservation-card{padding:1.5rem}.seo-bottom{max-width:650px;margin:2rem auto 0;font-size:.9rem;color:var(--muted);line-height:1.5;padding:0 1.25rem}footer{border-top:1px solid rgba(213,208,196,.8);margin-top:2rem}.footer-inner{max-width:var(--max-width);margin:0 auto;padding:1rem 1.25rem 1.8rem;display:flex;flex-wrap:wrap;justify-content:space-between;gap:.8rem;font-size:.8rem;color:var(--muted)}.whatsapp-float{position:fixed;bottom:20px;right:20px;width:56px;height:56px;border-radius:50%;background:#25d366;color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 12px 28px rgba(0,0,0,.25);z-index:120;font-weight:900}.lightbox{position:fixed;inset:0;display:none;align-items:center;justify-content:center;z-index:1000}.lightbox.open{display:flex}.lightbox-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.76);backdrop-filter:blur(6px)}.lightbox-inner{position:relative;max-width:1000px;width:calc(100% - 2rem);max-height:90vh;display:flex;flex-direction:column;align-items:center;gap:.6rem}.lightbox-inner img{max-width:100%;max-height:78vh;object-fit:contain;border-radius:18px;box-shadow:0 20px 60px rgba(0,0,0,.45)}#lightbox-caption{color:#fff;text-align:center;text-shadow:0 2px 8px rgba(0,0,0,.8)}.lightbox-close,.lightbox-arrow{position:absolute;border:0;cursor:pointer;z-index:2;background:rgba(0,0,0,.55);color:#fff}.lightbox-close{top:-42px;right:0;font-size:2rem;width:40px;height:40px;border-radius:50%}.lightbox-arrow{top:50%;transform:translateY(-50%);font-size:2rem;width:44px;height:44px;border-radius:50%}.lightbox-prev{left:8px}.lightbox-next{right:8px}@media(max-width:880px){.hero,.chalets-grid,.contact-layout{grid-template-columns:1fr}.hero-visual{order:-1}.gallery-grid{grid-template-columns:repeat(2,1fr)}header{position:static}.nav{justify-content:center;flex-wrap:wrap}.hero-floating{display:none}}@media(max-width:540px){.gallery-grid{grid-template-columns:1fr}.section{padding:3rem 1.1rem}}
/* Deux galeries distinctes */
.galleries-wrap{display:grid;gap:2.4rem}.gallery-block{padding:1rem;background:rgba(255,255,255,.72);border:1px solid rgba(224,221,214,.8);border-radius:var(--radius-xl);box-shadow:var(--shadow-soft)}.gallery-block-head{display:flex;align-items:center;justify-content:space-between;padding:.25rem .25rem 1rem}.gallery-block-head h3{font-family:serif;font-size:1.45rem;color:var(--text)}.gallery-preview{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.65rem}.gallery-preview .gallery-item,.gallery-more-tile{aspect-ratio:4/3;border-radius:16px;overflow:hidden;border:0;cursor:pointer;padding:0}.gallery-preview .gallery-item{position:relative;background:transparent}.gallery-preview .gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}.gallery-preview .gallery-item:hover img{transform:scale(1.045)}.gallery-more-tile{background-size:cover;background-position:center;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.15rem;text-align:center;transition:transform .25s ease,box-shadow .25s ease}.gallery-more-tile:hover{transform:translateY(-3px);box-shadow:0 14px 28px rgba(0,0,0,.18)}.gallery-more-icon{font-size:1.6rem;line-height:1}.gallery-more-tile strong{font-size:.88rem;padding:0 .45rem}.gallery-more-tile small{font-size:.75rem;opacity:.86}.gallery-preview .gallery-label:empty{display:none}@media(max-width:880px){.gallery-preview{grid-template-columns:repeat(3,1fr)}.gallery-preview>*:nth-child(4){display:none}}@media(max-width:540px){.gallery-block{padding:.7rem}.gallery-preview{grid-template-columns:repeat(2,1fr)}.gallery-preview>*:nth-child(3),.gallery-preview>*:nth-child(4){display:none}.gallery-more-tile{display:flex!important}.gallery-block-head h3{font-size:1.25rem}}

/* Mise en page lisible des descriptions de gîtes */
.gite-content{display:flex;flex-direction:column;gap:1.15rem}.gite-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}.gite-fact{display:flex;align-items:center;gap:.65rem;min-height:52px;padding:.65rem .75rem;border-radius:13px;background:rgba(107,140,82,.07);border:1px solid rgba(107,140,82,.15);font-size:.86rem;font-weight:700;line-height:1.25}.gite-fact-icon{width:30px;height:30px;flex:0 0 30px;display:grid;place-items:center;border-radius:10px;background:#fff;color:var(--accent-dark);box-shadow:0 4px 12px rgba(0,0,0,.06)}.gite-fact-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.gite-copy{padding-top:.2rem;font-size:.95rem;line-height:1.78;color:var(--text)}.gite-copy p{margin:0 0 1rem}.gite-copy h4{display:flex;align-items:center;gap:.55rem;margin:1.35rem 0 .7rem;font-family:serif;font-size:1.08rem;line-height:1.3;color:var(--accent-dark)}.gite-copy h4:first-child{margin-top:.25rem}.gite-copy h4::before{content:"";width:22px;height:3px;flex:0 0 22px;border-radius:999px;background:var(--accent)}.gite-text-list{display:grid;gap:.48rem;margin:0 0 1rem;padding:0;list-style:none}.gite-text-list li{position:relative;padding:.55rem .7rem .55rem 1.9rem;border-radius:10px;background:rgba(245,243,238,.75);line-height:1.45}.gite-text-list li::before{content:"✓";position:absolute;left:.7rem;top:.52rem;color:var(--accent-dark);font-weight:900}.chalet-card>.chalet-link{margin-top:auto}@media(max-width:540px){.gite-facts{grid-template-columns:1fr}.gite-copy{font-size:.93rem;line-height:1.7}.gite-fact{min-height:48px}}


/* Diaporama discret de l’image principale */
.hero-slideshow{position:relative;isolation:isolate;background:#e9e5dc}
.hero-slideshow .hero-slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.035);transition:opacity 1.8s ease-in-out,transform 7s ease-out;will-change:opacity,transform}
.hero-slideshow .hero-slide.is-active{opacity:1;transform:scale(1);z-index:1}
.hero-slideshow .hero-tag{z-index:3}
@media(prefers-reduced-motion:reduce){.hero-slideshow .hero-slide{transition:none;transform:none}.hero-slideshow .hero-slide:not(.is-active){display:none}}

/* Calendriers de disponibilités Airbnb */
.availability-shell{background:rgba(255,255,255,.94);border:1px solid rgba(224,221,214,.9);border-radius:28px;box-shadow:var(--shadow-soft);padding:1.25rem;overflow:hidden}.availability-tabs{display:flex;gap:.65rem;flex-wrap:wrap;margin-bottom:1.15rem}.availability-tab{border:1px solid rgba(107,140,82,.25);background:#fff;color:var(--muted);border-radius:999px;padding:.65rem 1rem;font:inherit;font-weight:800;cursor:pointer;transition:.2s ease}.availability-tab:hover,.availability-tab.is-active{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:0 10px 24px rgba(107,140,82,.22)}.availability-toolbar{display:grid;grid-template-columns:48px 1fr 48px;align-items:center;gap:1rem;padding:.85rem 0 1.1rem;border-bottom:1px solid rgba(224,221,214,.8)}.availability-property{text-align:center}.availability-property strong{display:block;font-family:serif;font-size:1.35rem;color:var(--text)}.availability-property span{display:block;margin-top:.15rem;font-size:.82rem;color:var(--muted)}.availability-arrow{width:44px;height:44px;border:1px solid rgba(107,140,82,.3);border-radius:50%;background:#fff;color:var(--accent-dark);font-size:1.8rem;line-height:1;cursor:pointer;transition:.2s ease}.availability-arrow:hover{transform:translateY(-1px);background:var(--accent);color:#fff}.availability-arrow:disabled{opacity:.35;cursor:not-allowed;transform:none}.availability-months{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.4rem;padding:1.35rem 0}.availability-month{border:1px solid rgba(224,221,214,.78);border-radius:20px;padding:1rem;background:linear-gradient(180deg,#fff,#fdfbf7)}.availability-month h3{text-align:center;font-family:serif;font-size:1.08rem;text-transform:capitalize;margin-bottom:.75rem}.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:.3rem}.calendar-weekdays span{text-align:center;color:var(--muted);font-size:.68rem;font-weight:900;text-transform:uppercase;padding:.2rem 0}.calendar-day{aspect-ratio:1;display:grid;place-items:center;border-radius:10px;font-size:.78rem;position:relative;background:rgba(107,140,82,.08);color:var(--text);border:1px solid transparent}.calendar-day.is-busy{background:rgba(211,13,43,.11);color:#a50b25;border-color:rgba(211,13,43,.14);font-weight:800}.calendar-day.is-past{opacity:.35}.calendar-day.is-today{outline:2px solid var(--accent);outline-offset:1px;font-weight:900}.calendar-day.is-empty{visibility:hidden}.availability-footer{display:flex;justify-content:space-between;gap:1rem;align-items:center;flex-wrap:wrap;padding-top:1rem;border-top:1px solid rgba(224,221,214,.8);color:var(--muted);font-size:.8rem}.availability-legend{display:flex;gap:1rem;flex-wrap:wrap}.availability-legend>span{display:flex;align-items:center;gap:.4rem}.legend-dot{width:10px;height:10px;border-radius:50%;display:inline-block}.legend-dot.is-free{background:rgba(107,140,82,.45)}.legend-dot.is-busy{background:rgba(211,13,43,.55)}.availability-actions{text-align:center;margin-top:1.1rem}.availability-error{grid-column:1/-1;padding:1.2rem;border-radius:16px;background:rgba(211,13,43,.08);color:#8f1024;text-align:center}.availability-loading{grid-column:1/-1;padding:2rem;text-align:center;color:var(--muted)}
@media(max-width:760px){.availability-months{grid-template-columns:1fr}.availability-shell{padding:1rem}.availability-toolbar{grid-template-columns:42px 1fr 42px}.availability-property strong{font-size:1.15rem}}
@media(max-width:460px){.availability-tab{flex:1 1 100%;text-align:center}.availability-footer{align-items:flex-start;flex-direction:column}.calendar-day{font-size:.72rem}.availability-month{padding:.75rem}}
