:root{
  --ink:#20231f; --deep:#0f3036; --olive:#68743e; --olive-dark:#4d5b2f;
  --gold:#b6a05d; --ivory:#f5f2ea; --paper:#fbfaf6; --line:#ded8cb; --white:#fff;
  --serif: Georgia, 'Times New Roman', serif; --sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --shadow:0 20px 60px rgba(23,31,27,.12);
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);font-family:var(--sans);line-height:1.55}img{display:block;width:100%}a{color:inherit}.skip-link{position:fixed;left:12px;top:-60px;z-index:999;background:#fff;padding:10px 14px}.skip-link:focus{top:12px}.section-pad{padding:76px clamp(22px,5vw,72px)}
.hero{min-height:690px;position:relative;color:#fff;background:url('../images/hero-piscine.webp') center 56%/cover no-repeat;overflow:hidden}.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(4,20,23,.78) 0%,rgba(6,24,27,.48) 36%,rgba(6,24,27,.10) 70%,rgba(6,24,27,.28) 100%)}.topbar{position:relative;z-index:4;max-width:1440px;margin:auto;padding:24px 4vw;display:flex;align-items:center;gap:28px}.brand{display:flex;align-items:center;gap:13px;text-decoration:none;min-width:260px}.brand-mark{font-size:43px;color:#d7c174;transform:rotate(-16deg)}.brand-copy{display:grid;line-height:1.05;letter-spacing:.14em}.brand-copy small{font-family:var(--serif);font-size:13px}.brand-copy strong{font-family:var(--serif);font-size:31px;font-weight:400;letter-spacing:.06em;margin:3px 0}.brand-copy em{font-style:normal;font-size:10px;letter-spacing:.33em}.menu{display:flex;justify-content:center;gap:28px;flex:1}.menu a{text-decoration:none;text-transform:uppercase;font-size:12px;letter-spacing:.05em;font-weight:650;opacity:.95}.menu a:hover{color:#e0cf90}.menu-toggle{display:none}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:47px;padding:0 24px;border:1px solid transparent;text-decoration:none;text-transform:uppercase;letter-spacing:.07em;font-size:12px;font-weight:760;transition:.2s ease}.btn:hover{transform:translateY(-1px)}.btn-gold{background:linear-gradient(135deg,#7f8144,#a49a52);color:#fff;box-shadow:0 12px 30px rgba(51,54,24,.22)}.nav-cta{min-width:145px}.btn-outline{border-color:var(--olive-dark);color:var(--olive-dark);background:transparent}.btn-ghost{border-color:rgba(255,255,255,.55);color:#fff}.hero-content{position:relative;z-index:2;max-width:1440px;margin:120px auto 0;padding:0 4vw 86px}.hero-content h1{font-family:var(--serif);font-weight:400;font-size:clamp(48px,5vw,77px);line-height:.99;margin:12px 0 24px;max-width:680px;letter-spacing:-.025em}.hero-content>p:not(.eyebrow){max-width:520px;font-size:18px;margin:0 0 28px}.eyebrow{text-transform:uppercase;letter-spacing:.22em;font-weight:700;font-size:11px;color:#707559;margin:0 0 10px}.eyebrow.light{color:#e8dfbd}.hero-caption{position:absolute;right:4vw;bottom:28px;z-index:2;font-family:var(--serif);font-size:13px;letter-spacing:.08em;color:rgba(255,255,255,.86)}
.facts{display:grid;grid-template-columns:repeat(6,1fr);max-width:1440px;margin:auto;padding:23px 4vw;background:var(--paper);border-bottom:1px solid var(--line)}.facts>div{min-height:64px;padding:0 18px;display:grid;grid-template-columns:34px 1fr;grid-template-rows:auto auto;align-content:center;border-right:1px solid var(--line)}.facts>div:last-child{border-right:0}.facts .icon{grid-row:1/3;font-family:var(--serif);font-size:28px;color:#46533a}.facts strong{font-size:13px}.facts small{font-size:10px;color:#666}
.tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;max-width:1440px;margin:auto}.tile{height:330px;position:relative;overflow:hidden;background:#111}.tile img{height:100%;object-fit:cover;transition:.6s ease}.tile:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(8,15,11,.72),rgba(8,15,11,.05) 60%)}.tile:hover img{transform:scale(1.035)}.tile div{position:absolute;z-index:2;left:0;right:0;bottom:24px;text-align:center;color:#fff}.tile h2{font:400 27px var(--serif);margin:0 0 12px}.tile a{display:inline-block;border:1px solid rgba(255,255,255,.7);padding:8px 17px;text-decoration:none;text-transform:uppercase;font-size:10px;letter-spacing:.08em}
.story{display:grid;grid-template-columns:minmax(0,.86fr) minmax(0,1.2fr);gap:7vw;max-width:1440px;margin:auto;align-items:center}.story h2,.section-heading h2,.region h2,.pool-copy h2,.reservation h2{font:400 clamp(38px,4vw,57px)/1.05 var(--serif);letter-spacing:-.02em;margin:0 0 22px}.story-text>p{max-width:600px}.flourish{color:var(--gold);font-family:var(--serif);margin:18px 0}.host-note{display:flex;align-items:center;gap:14px;margin-top:28px}.host-monogram{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:#d7d1c3;color:#314036;font-family:var(--serif);font-weight:bold}.host-note div:last-child{display:grid}.host-note span{font-size:12px;color:#666}.story-media{position:relative}.story-media img{height:490px;object-fit:cover;box-shadow:var(--shadow)}.story-stamp{position:absolute;right:-20px;bottom:-25px;width:145px;height:145px;border-radius:50%;display:grid;place-items:center;text-align:center;background:var(--deep);color:#fff;border:5px solid var(--paper);font:400 31px/1 var(--serif)}.story-stamp small{display:block;font:9px var(--sans);text-transform:uppercase;letter-spacing:.1em;padding:0 14px}
.pool-band{position:relative;min-height:560px;overflow:hidden}.pool-band img{position:absolute;inset:0;height:100%;object-fit:cover}.pool-band:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(11,38,42,.82),rgba(11,38,42,.10) 70%)}.pool-copy{position:relative;z-index:2;color:#fff;max-width:560px;padding:150px 7vw}.pool-copy p{font-size:17px}.rooms{max-width:1440px;margin:auto}.section-heading{margin-bottom:34px}.section-heading.centered{text-align:center;max-width:760px;margin:0 auto 42px}.section-heading.centered>p:last-child{color:#6e6e68}.room-grid{display:grid;grid-template-columns:1.25fr .85fr .85fr;gap:18px}.room-card{margin:0;position:relative;height:430px;overflow:hidden;background:#eee}.room-card img{height:100%;object-fit:cover}.room-card:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(9,18,14,.55),transparent 45%)}.room-card figcaption{position:absolute;z-index:2;left:24px;bottom:20px;color:#fff;display:grid}.room-card figcaption strong{font:400 27px var(--serif)}.room-card figcaption span{font-size:11px;text-transform:uppercase;letter-spacing:.11em}.region{display:grid;grid-template-columns:1.1fr .9fr;background:#ece8de;min-height:520px}.region-photo img{height:100%;min-height:520px;object-fit:cover}.region-copy{padding:90px clamp(34px,7vw,100px);align-self:center}.region-copy p{max-width:560px}.text-link{text-transform:uppercase;letter-spacing:.08em;font-size:12px;font-weight:800;color:var(--olive-dark)}
.gallery{max-width:1440px;margin:auto}.masonry{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:180px;gap:12px}.gallery-item{border:0;padding:0;cursor:zoom-in;overflow:hidden;background:#ddd}.gallery-item img{height:100%;object-fit:cover;transition:.35s ease}.gallery-item:hover img{transform:scale(1.025)}.gallery-item.tall{grid-row:span 2}.gallery-item.wide{grid-column:span 2;grid-row:span 2}.lightbox{padding:0;border:0;background:#10110f;max-width:92vw;max-height:92vh}.lightbox::backdrop{background:rgba(0,0,0,.86)}.lightbox img{max-width:90vw;max-height:88vh;object-fit:contain}.lightbox-close{position:absolute;right:8px;top:5px;border:0;background:rgba(0,0,0,.55);color:#fff;font-size:35px;width:45px;height:45px;cursor:pointer}
.reviews{background:linear-gradient(180deg,#f7f4ee 0%,#fdfcf9 100%);border-top:1px solid rgba(210,201,184,.42)}
.reviews-heading{margin-bottom:28px!important}
.review-layout-premium{max-width:1380px;margin:auto;display:grid;grid-template-columns:.82fr repeat(3,1fr);gap:26px;align-items:stretch}
.ratings-stack{padding:8px 28px 12px;display:flex;flex-direction:column;justify-content:center;text-align:center;min-height:270px}
.platform-rating{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:13px 0}
.platform-logo{display:block;font-weight:700;line-height:1;margin-bottom:9px}
.google-logo{font-family:Arial,Helvetica,sans-serif;font-size:27px;letter-spacing:-1.3px}.g-blue{color:#4285f4}.g-red{color:#ea4335}.g-yellow{color:#fbbc05}.g-green{color:#34a853}
.rating-line{display:flex;align-items:center;justify-content:center;gap:10px}.rating-line strong{font:400 24px var(--sans);color:#191a17}.stars{color:#efa900;letter-spacing:2px;font-size:17px;white-space:nowrap}.platform-rating small{font-size:12px;color:#3d3d38;margin-top:5px}.platform-divider{height:1px;background:#d8cba9;width:100%;margin:2px 0}
.booking-logo{font-family:Arial,Helvetica,sans-serif;font-size:22px;color:#003580;letter-spacing:-.5px}.booking-logo span{color:#009fe3}.booking-score{display:flex;justify-content:center;align-items:baseline;gap:2px}.booking-score strong{font-size:31px;line-height:1;color:#141512}.booking-score span{font-size:16px;color:#222}
.premium-quote{background:rgba(255,255,255,.58);padding:34px 30px 28px;min-height:270px;border:1px solid rgba(205,198,184,.68);display:flex;flex-direction:column;box-shadow:0 7px 24px rgba(34,35,27,.025)}
.quote-mark{font:400 58px/.6 Georgia,serif;color:#c2a35b;height:33px;display:block;margin-bottom:8px}.premium-quote p{font:400 16px/1.58 var(--serif);margin:0 0 24px;color:#282823;flex:1}.quote-footer{display:flex;align-items:center;justify-content:space-between;gap:12px}.quote-footer strong{font-size:12px;color:#23241f}.quote-footer .stars{font-size:14px;letter-spacing:1px}.reviews-cta{text-align:center;margin-top:30px}.reviews-cta .btn-outline{background:#fff;border-color:#a59a80;color:#34392c;padding:12px 30px}.reviews-cta .btn-outline:hover{background:#3f4d2c;color:#fff;border-color:#3f4d2c}
.practical{max-width:1320px;margin:auto}.practical-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.practical-grid div{padding:26px 22px;border-right:1px solid var(--line);display:grid}.practical-grid div:last-child{border-right:0}.practical-grid span{font-size:13px;color:#666;margin-top:5px}
.reservation{position:relative;display:grid;grid-template-columns:.9fr 1.1fr;background:var(--deep);color:#fff;min-height:370px;overflow:hidden}.reservation-art{background:linear-gradient(90deg,rgba(15,48,54,.08),rgba(15,48,54,.75)),url('images/jardin-portail.webp') center/cover no-repeat}.reservation-copy{padding:65px clamp(30px,6vw,86px);align-self:center}.reservation-copy p{max-width:560px}.reservation-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}footer{background:#293329;color:#ece9df;padding:30px 5vw;display:grid;grid-template-columns:1.2fr 1fr 1.1fr auto;gap:30px;align-items:center;font-size:12px}footer>div{display:grid;gap:4px}footer a{color:#ece9df;text-decoration:none}.footer-brand{display:flex!important;align-items:center;gap:11px}.footer-brand>span{font-size:34px;color:#c9b46c}.footer-brand div{display:grid}.footer-brand strong{font:400 22px var(--serif);letter-spacing:.08em}.footer-brand small,.footer-brand em{font-size:8px;letter-spacing:.17em;font-style:normal}.copyright{opacity:.72}
@media (max-width:1080px){.menu{gap:14px}.menu a{font-size:10px}.brand{min-width:230px}.facts{grid-template-columns:repeat(3,1fr)}.facts>div:nth-child(3){border-right:0}.facts>div:nth-child(-n+3){border-bottom:1px solid var(--line)}.tiles{grid-template-columns:repeat(2,1fr)}.story{grid-template-columns:1fr 1fr}.room-grid{grid-template-columns:1fr 1fr}.room-card.wide{grid-column:span 2}.review-layout-premium{grid-template-columns:1fr 1fr}.practical-grid{grid-template-columns:1fr 1fr}footer{grid-template-columns:1fr 1fr}}
@media (max-width:760px){.hero{min-height:670px;background-position:58% center}.topbar{padding:16px 18px}.brand{min-width:auto}.brand-copy strong{font-size:23px}.brand-copy small{font-size:10px}.brand-copy em{font-size:8px}.brand-mark{font-size:33px}.menu-toggle{display:block;margin-left:auto;background:transparent;border:1px solid rgba(255,255,255,.5);color:#fff;padding:9px 12px;text-transform:uppercase;font-size:10px;letter-spacing:.08em}.nav-cta{display:none}.menu{display:none;position:absolute;top:78px;left:16px;right:16px;background:rgba(14,41,45,.97);padding:18px;box-shadow:var(--shadow);flex-direction:column}.menu.open{display:flex}.menu a{font-size:12px;padding:6px 0}.hero-content{margin-top:118px;padding:0 22px 70px}.hero-content h1{font-size:49px}.hero-content>p:not(.eyebrow){font-size:16px}.hero-caption{display:none}.facts{grid-template-columns:1fr 1fr;padding:10px 14px}.facts>div{border-bottom:1px solid var(--line)!important;border-right:1px solid var(--line)!important;padding:12px 8px}.facts>div:nth-child(even){border-right:0!important}.facts>div:nth-last-child(-n+2){border-bottom:0!important}.tiles{grid-template-columns:1fr;padding:44px 18px}.tile{height:310px}.section-pad{padding:58px 22px}.story{grid-template-columns:1fr;gap:34px}.story-media img{height:370px}.story-stamp{right:8px}.pool-band{min-height:520px}.pool-copy{padding:110px 24px}.room-grid{grid-template-columns:1fr}.room-card,.room-card.wide{grid-column:auto;height:380px}.region{grid-template-columns:1fr}.region-photo img{min-height:330px}.region-copy{padding:55px 24px}.masonry{grid-template-columns:1fr 1fr;grid-auto-rows:160px}.gallery-item.wide{grid-column:span 2}.review-layout-premium{grid-template-columns:1fr}.ratings-stack{min-height:auto;padding:10px 28px 18px}.premium-quote{min-height:230px}.practical-grid{grid-template-columns:1fr}.practical-grid div{border-right:0;border-bottom:1px solid var(--line)}.practical-grid div:last-child{border-bottom:0}.reservation{grid-template-columns:1fr}.reservation-art{min-height:240px}.reservation-copy{padding:48px 24px}footer{grid-template-columns:1fr;text-align:center}.footer-brand{justify-content:center}.copyright{justify-self:center}}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* WordPress + Airbnb */
.admin-bar .topbar{top:32px}
.airbnb-logo{color:#ff385c;font-weight:800;text-transform:lowercase;letter-spacing:-.04em;font-family:Arial,sans-serif}
.airbnb-rating .stars{font-size:.78rem;letter-spacing:.08em}
@media(max-width:782px){.admin-bar .topbar{top:46px}}

/* Booking CTA visibility fix v1.1 */
.mobile-top-cta,.mobile-booking-bar{display:none}
@media (max-width:760px){
  .topbar{gap:10px}
  .mobile-top-cta{display:inline-flex;align-items:center;justify-content:center;margin-left:auto;min-height:38px;padding:0 13px;background:linear-gradient(135deg,#7f8144,#a49a52);color:#fff;text-decoration:none;text-transform:uppercase;letter-spacing:.08em;font-size:10px;font-weight:800;box-shadow:0 8px 20px rgba(30,32,15,.22)}
  .menu-toggle{margin-left:0}
  .mobile-booking-bar{display:flex;position:fixed;z-index:9999;left:14px;right:14px;bottom:12px;min-height:52px;align-items:center;justify-content:center;background:#85834b;color:#fff;text-decoration:none;text-transform:uppercase;letter-spacing:.1em;font-size:12px;font-weight:800;box-shadow:0 12px 34px rgba(12,26,25,.34);border:1px solid rgba(255,255,255,.35)}
  body{padding-bottom:76px}
}


/* v1.3 — review platform links */
.reviews-links { display:flex; flex-wrap:wrap; justify-content:center; gap:.75rem; }
.reviews-links .btn { min-width:150px; text-align:center; }
@media (max-width:640px) { .reviews-links { flex-direction:column; align-items:stretch; } .reviews-links .btn { width:100%; } }
