/* Williams & Harper — nouvelle base graphique du site OVH (4 langues)
   Ivoire · encre · champagne · vert forêt (logo). Cormorant Garamond + Jost. */
:root{
  --bg:#f7f5f0;--surface:#fffdf8;--ink:#15130f;--muted:#6b655c;--line:#e3ded4;--line-strong:#cfc7b8;
  --champagne:#b59a6a;--champagne-deep:#7a6341;--green:#153f35;--green-deep:#0e2b24;--gold:#e6bd68;
  --display:"Cormorant Garamond","Times New Roman",Georgia,serif;
  --body:"Jost","Helvetica Neue",Arial,sans-serif;
  --gutter:clamp(20px,5vw,64px);--header:88px;
  color-scheme:light;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header) + 24px);background:var(--bg);-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--body);font-weight:300;font-size:1.02rem;line-height:1.75;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,video{max-width:100%;display:block;height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit}
h1,h2,h3,h4{font-family:var(--display);font-weight:300;line-height:1.04;margin:0;letter-spacing:-.005em;text-wrap:balance}
h1{font-size:clamp(2.7rem,6vw,5.4rem)}
h2{font-size:clamp(2rem,3.6vw,3.4rem)}
h3{font-size:clamp(1.5rem,2.2vw,2.05rem);line-height:1.15}
h4{font-size:1.35rem;line-height:1.25}
p{margin:0}
p+p{margin-top:1rem}
strong{font-weight:400}
small{font-size:.8em}
hr{border:0;border-top:1px solid var(--line);margin:0}
table{border-collapse:collapse;width:100%}
::selection{background:#e8dcc3;color:var(--ink)}
:focus-visible{outline:1px solid var(--champagne-deep);outline-offset:4px}
.wrap{width:min(1320px,100% - 2*var(--gutter));margin-inline:auto}
.wrap--narrow{width:min(880px,100% - 2*var(--gutter));margin-inline:auto}

/* Labels, liens, boutons */
.eyebrow,.label,.number,.company-chapter-label,.wh-film-count{font-family:var(--body);font-size:.64rem;letter-spacing:.34em;text-transform:uppercase;color:var(--champagne-deep);font-weight:400;line-height:1.6}
.eyebrow{margin-bottom:1.1rem}
.text-link,.link,.home-domain-more,.home-faq-link,.faq-back,.faq-footer-link,.plan-download a,.wh-footer a{font-family:var(--body);font-size:.66rem;letter-spacing:.3em;text-transform:uppercase;font-weight:400;display:inline-block;padding-bottom:.45rem;border-bottom:1px solid var(--champagne);line-height:1.6;transition:border-color .35s,color .35s}
.text-link:hover,.link:hover,.home-domain-more:hover,.home-faq-link:hover,.faq-back:hover{border-color:var(--ink)}
.button,.btn,.purchase-path .button,.faq-action .button{display:inline-flex;align-items:center;justify-content:center;gap:.9rem;font-family:var(--body);font-size:.66rem;letter-spacing:.3em;text-transform:uppercase;font-weight:400;padding:1.05rem 2.1rem;border:1px solid var(--ink);background:transparent;color:var(--ink);cursor:pointer;line-height:1.4;transition:background .4s,color .4s,border-color .4s;text-align:center}
.button:hover,.btn:hover{background:var(--ink);color:var(--bg)}
.button--solid,.btn--solid{background:var(--green);color:var(--bg);border-color:var(--green)}
.button--solid:hover,.btn--solid:hover{background:var(--green-deep);border-color:var(--green-deep);color:#fff}
.btn--light{color:#fff;border-color:rgba(255,255,255,.8)}
.btn--light:hover{background:#fff;color:var(--ink);border-color:#fff}
.wh-visual-notice,.residents-note,.comfort-note,.purchase-note,.brochure-note,.fine,.plan-zoom-hint,.estate-map-caption,.wh-film-note{font-size:.72rem;line-height:1.6;color:var(--muted);letter-spacing:.02em;max-width:none}
main section>p.wh-visual-notice,main section>p.residents-note,main section>p.comfort-note,main section>p.purchase-note,main section>p.brochure-note,main section>p.fine,main section>p.plan-zoom-hint,main section>p.estate-map-caption,main section>p.wh-film-note{max-width:none}
main>section .wh-visual-notice,main section>.wh-visual-notice,main div>.wh-visual-notice{margin-top:1.2rem;max-width:none}
main figure+.wh-visual-notice,main .wh-figures+p+.wh-visual-notice{margin-top:.5rem}

/* ===== En-tête ===== */
.wh-header{position:fixed;inset:env(safe-area-inset-top,0px) 0 auto 0;z-index:60;height:var(--header);display:flex;align-items:center;color:var(--bg);background:rgba(21,63,53,.94);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid rgba(247,245,240,.14);transition:background .5s,color .5s,border-color .5s,transform .45s}
.wh-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:2rem;width:min(1440px,100% - 2*var(--gutter))}
body.wh-photo-hero .wh-header:not(.is-solid):not(.is-open){background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;border-color:transparent;color:#fff}
.wh-header.is-hidden{transform:translateY(-100%)}
.wh-brand{display:block;flex-shrink:0;line-height:0}
.wh-brand img{height:34px;width:auto}
.wh-brand .wh-logo--light{display:block}
.wh-brand .wh-logo--dark{display:none}
body.wh-photo-hero .wh-header:not(.is-solid):not(.is-open) .wh-logo--light{display:block}
body.wh-photo-hero .wh-header:not(.is-solid):not(.is-open) .wh-logo--dark{display:none}
.wh-nav{display:flex;gap:clamp(1.1rem,2vw,2rem);align-items:center;font-size:.64rem;letter-spacing:.3em;text-transform:uppercase;font-weight:400}
.wh-nav a{position:relative;padding:.4rem 0;white-space:nowrap}
.wh-nav a::after{content:"";position:absolute;inset-inline:0;bottom:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .4s}
html[dir=rtl] .wh-nav a::after{transform-origin:right}
.wh-nav a:hover::after,.wh-nav a[aria-current=page]::after{transform:scaleX(1)}
.wh-tools{display:flex;align-items:center;gap:1.4rem;flex-shrink:0}
.wh-lang{display:flex;gap:.1rem;align-items:center;font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;font-weight:400;direction:ltr}
.wh-lang a{padding:.35rem .5rem;opacity:.72;border-bottom:1px solid transparent;transition:opacity .3s}
.wh-lang a img{display:none}
.wh-lang a:hover,.wh-lang a[aria-current=page]{opacity:1;border-bottom-color:currentColor}
.wh-nav .wh-cta{display:none}
.wh-cta{font-size:.62rem;letter-spacing:.3em;text-transform:uppercase;font-weight:400;padding:.85rem 1.4rem;border:1px solid currentColor;white-space:nowrap;transition:background .4s,color .4s}
.wh-cta:hover{background:var(--bg);color:var(--green);border-color:var(--bg)}
body.wh-photo-hero .wh-header:not(.is-solid):not(.is-open) .wh-cta:hover{background:#fff;color:var(--ink);border-color:#fff}
.wh-burger{display:none;background:none;border:0;width:44px;height:44px;cursor:pointer;padding:0;margin-inline-end:-10px}
.wh-burger span{display:block;height:1.5px;background:currentColor;margin:6px auto;width:24px;transition:transform .35s,opacity .3s}
.wh-header.is-open .wh-burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.wh-header.is-open .wh-burger span:nth-child(2){opacity:0}
.wh-header.is-open .wh-burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
@media (max-width:1100px){
  .wh-nav{gap:1.1rem;font-size:.58rem;letter-spacing:.22em}
  .wh-cta{display:none}
}
@media (max-width:900px){
  :root{--header:72px}
  .wh-brand img{height:28px}
  .wh-nav{display:none}.wh-burger{display:block}
  .wh-header.is-open{background:var(--green);color:var(--bg);border-color:rgba(247,245,240,.14)}
  .wh-header.is-open .wh-nav{display:flex;flex-direction:column;align-items:flex-start;gap:1.5rem;position:absolute;left:0;right:0;top:100%;background:var(--green);color:var(--bg);padding:1.8rem var(--gutter) 2.4rem;border-bottom:1px solid rgba(247,245,240,.14);font-size:.74rem;max-height:calc(100vh - var(--header));overflow:auto}
  .wh-header.is-open .wh-nav .wh-cta{display:inline-flex;margin-top:.6rem}
  .wh-lang{font-size:.56rem}
}
main{padding-top:0}
body:not(.wh-photo-hero) main{padding-top:var(--header)}

/* ===== Héros ===== */
.wh-hero{position:relative;min-height:min(92svh,980px);display:flex;align-items:flex-end;color:#fff;overflow:hidden;isolation:isolate;background:var(--green-deep)}
.wh-hero--villa,.wh-hero--domaine{min-height:min(78svh,860px)}
.wh-hero__media{position:absolute;inset:0;z-index:0}
.wh-hero__media img,.wh-hero__media video{width:100%;height:100%;object-fit:cover}
.wh-hero>.wrap,.wh-hero__copy,.wh-scrollcue{position:relative;z-index:2}
.wh-hero::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(to top,rgba(10,9,7,.66) 0%,rgba(10,9,7,.22) 46%,rgba(10,9,7,.06) 72%,rgba(10,9,7,.3) 100%),linear-gradient(to right,rgba(10,9,7,.42) 0%,rgba(10,9,7,.12) 45%,rgba(10,9,7,0) 70%)}
html[dir=rtl] .wh-hero::after{background:linear-gradient(to top,rgba(10,9,7,.66) 0%,rgba(10,9,7,.22) 46%,rgba(10,9,7,.06) 72%,rgba(10,9,7,.3) 100%),linear-gradient(to left,rgba(10,9,7,.42) 0%,rgba(10,9,7,.12) 45%,rgba(10,9,7,0) 70%)}
.wh-hero__copy{position:relative;padding:calc(var(--header) + 3rem) 0 clamp(3rem,7vw,6rem);max-width:min(100%,900px)}
.wh-hero .eyebrow{color:#e6d9bd}
.wh-hero h1{color:#fff;margin:.6rem 0 1.2rem;max-width:14ch}
.wh-hero p{max-width:46ch;color:#efe8db;font-size:1.02rem}
.wh-hero .hero-lead,.wh-hero p.hero-lead{font-family:var(--display);font-size:clamp(1.4rem,2.3vw,2rem);line-height:1.3;color:#fff;max-width:28ch}
.wh-hero .hero-description{margin-top:.8rem}
.wh-hero .location{font-size:.62rem;letter-spacing:.34em;text-transform:uppercase;color:#e6d9bd;margin-top:1.6rem}
.wh-hero__actions{display:flex;gap:1rem;flex-wrap:wrap;margin-top:2rem}
.wh-hero .text-link{color:#fff;border-color:rgba(255,255,255,.6)}
.wh-hero .text-link:hover{border-color:#fff}
.wh-scrollcue{position:absolute;right:var(--gutter);bottom:clamp(2rem,6vw,5rem);z-index:2;font-size:.56rem;letter-spacing:.34em;text-transform:uppercase;color:#e6d9bd;writing-mode:vertical-rl;display:flex;gap:1rem;align-items:center}
html[dir=rtl] .wh-scrollcue{right:auto;left:var(--gutter)}
.wh-scrollcue::after{content:"";width:1px;height:56px;background:#e6d9bd;opacity:.7}
@media (max-width:860px){.wh-scrollcue{display:none}.wh-hero{min-height:min(84svh,760px)}}
.wh-hero--text{padding:clamp(3rem,8vw,6rem) 0 clamp(2.4rem,5vw,4rem)}
.wh-hero .button{color:#fff;border-color:rgba(255,255,255,.8)}
.wh-hero .button:hover{background:#fff;color:var(--ink);border-color:#fff}
.wh-hero--villa .hero-lead{margin-top:1.2rem}
.wrap>.wh-visual-notice,.gallery-teaser .wh-visual-notice{grid-column:1/-1}
.wh-hero--text h1{margin:.6rem 0 1.4rem;max-width:16ch}
.wh-hero--text p{max-width:60ch;color:var(--muted);font-size:1.08rem}
.company-hero>.wrap{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,5rem);align-items:center}
.company-hero{padding-top:clamp(2rem,6vw,4rem)!important}
.company-portrait img{aspect-ratio:4/5;object-fit:cover;width:100%}
@media (max-width:860px){.company-hero>.wrap{grid-template-columns:1fr}}

/* ===== Sections génériques ===== */
main>section,main>div>section,main>article,.art-chapters>section,.lifestyle>section,.residents-group .rental-local{padding-block:clamp(3rem,5.5vw,4.5rem)}
main>section>.eyebrow:first-child+h2,main section .eyebrow+h2,main section .eyebrow+h1,main section .eyebrow+h3{margin-bottom:1.3rem}
main section>h2+p,main section>div>h2+p{color:var(--muted);max-width:60ch}
main section>p{max-width:60ch;color:var(--muted)}
.wh-two{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,5rem);align-items:center}
@media (max-width:860px){.wh-two{grid-template-columns:1fr}}
figure{margin:0}
figcaption{font-size:.74rem;color:var(--muted);letter-spacing:.03em;line-height:1.6;margin-top:.9rem}

/* ===== Accueil ===== */
.collection{position:relative;z-index:2}
.collection>h2{margin-bottom:2.4rem}
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.4rem,3vw,2.8rem);align-items:stretch}
.card{display:flex;flex-direction:column;min-width:0;background:transparent}
.villa-image-link{display:block;position:relative;overflow:hidden;aspect-ratio:4/3;background:var(--line)}
.villa-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;display:block;background-image:var(--villa-photo);background-size:cover;background-position:center;background-repeat:no-repeat;transition:transform 1.4s cubic-bezier(.2,.6,.2,1)}
.villa-image-link:hover .villa-image{transform:scale(1.04)}
.villa-image-cta{position:absolute;inset-inline-start:1.2rem;bottom:1.1rem;font-size:.6rem;letter-spacing:.3em;text-transform:uppercase;color:#fff;border-bottom:1px solid rgba(255,255,255,.7);padding-bottom:.35rem;opacity:0;transform:translateY(6px);transition:opacity .4s,transform .4s}
.villa-image-link:hover .villa-image-cta,.villa-image-link:focus-visible .villa-image-cta{opacity:1;transform:none}
.card-body{display:flex;flex-direction:column;flex:1;padding-top:1.6rem}
.card .number{margin-bottom:.6rem}
.card h3{font-size:clamp(1.9rem,2.6vw,2.5rem);margin:0 0 1.4rem}
.spec{display:flex;justify-content:space-between;gap:1rem;align-items:baseline;padding:.65rem 0;border-top:1px solid var(--line);font-size:.86rem}
.spec span:first-child{color:var(--muted)}
.spec span:last-child{white-space:nowrap;font-family:var(--display);font-size:1.2rem;line-height:1.1}
.spec small{display:block;font-size:.72rem;color:var(--muted)}
.villa-layout-option{font-size:.82rem;color:var(--muted);margin:1.1rem 0 0;border-top:1px solid var(--line);padding-top:.9rem}
.price{font-family:var(--display);font-size:clamp(1.7rem,2.4vw,2.2rem);margin-top:auto;padding-top:1.6rem;line-height:1.1}
.card .button{align-self:flex-start;margin-top:1.3rem;padding:0 0 .45rem;border:0;border-bottom:1px solid var(--champagne);background:none;color:var(--ink);font-size:.66rem;letter-spacing:.3em}
.card .button:hover{border-color:var(--ink);background:none;color:var(--ink)}
.collection .wh-visual-notice{margin-top:2.6rem}
@media (max-width:960px){.cards{grid-template-columns:1fr;gap:3rem}.villa-image-link{aspect-ratio:16/10}}

.home-domain{background:var(--surface);border-block:1px solid var(--line)}
.home-domain-head{max-width:720px;margin-bottom:3rem}
.home-domain-head p{color:var(--muted)}
.home-domain-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.4rem,3vw,2.6rem)}
.home-domain-card{display:block;min-width:0}
.home-domain-card img{aspect-ratio:4/3;object-fit:cover;width:100%;background:var(--line)}
.home-domain-card .wh-map-crop{display:block;width:100%;position:relative;aspect-ratio:1.3308;overflow:hidden;background:#fff;border:1px solid var(--line);padding:0;font-size:0}
.home-domain-card .wh-map-crop img{position:absolute;max-width:none;width:156.59%;height:auto;aspect-ratio:auto;left:-45.82%;top:-16.58%;object-fit:fill}
.home-domain-card h3{font-size:1.7rem;margin:1.2rem 0 .4rem}
.home-domain-card span{font-size:.66rem;letter-spacing:.3em;text-transform:uppercase;border-bottom:1px solid var(--champagne);padding-bottom:.4rem;display:inline-block}
.home-domain-more{margin-top:2.6rem}
@media (max-width:860px){.home-domain-grid{grid-template-columns:1fr;gap:2.4rem}}

.home-discoveries>.wrap{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,5rem)}
.home-discoveries>section{padding:0}
.home-discovery-card>a img,.home-discovery-card>img{aspect-ratio:4/3;object-fit:cover;width:100%;margin-bottom:1.8rem;background:var(--line)}
.home-discovery-card h2{font-size:clamp(1.9rem,2.8vw,2.7rem);margin-bottom:1rem}
.home-discovery-card p{color:var(--muted);max-width:48ch}
.home-discovery-card .text-link{margin-top:1.4rem}
@media (max-width:860px){.home-discoveries>.wrap{grid-template-columns:1fr;gap:3.5rem}}

/* Contact / réservation */
.contact{border-top:1px solid var(--line)}
.home-page .contact>.wrap{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(2.5rem,6vw,6rem);align-items:start}
.contact p{color:var(--muted);max-width:44ch}
.contact-phone{display:block;font-family:var(--display);font-size:clamp(1.8rem,3vw,2.6rem);margin:1.6rem 0 1.2rem;direction:ltr;unicode-bidi:isolate}
.contact-whatsapp{margin-bottom:1rem}
.home-faq-link{margin-top:1.4rem}
form#contactForm{display:grid;grid-template-columns:1fr 1fr;gap:1.6rem 1.6rem}
label{display:grid;gap:.5rem;font-size:.6rem;letter-spacing:.3em;text-transform:uppercase;color:var(--muted);font-weight:400}
input,select,textarea{width:100%;background:transparent;border:0;border-bottom:1px solid var(--line-strong);padding:.75rem 0;border-radius:0;color:var(--ink);font:300 1rem/1.5 var(--body);letter-spacing:0;text-transform:none;transition:border-color .3s}
input:focus,select:focus,textarea:focus{outline:none;border-bottom-color:var(--ink)}
select{appearance:none;-webkit-appearance:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%2315130f' stroke-width='1'/%3E%3C/svg%3E") no-repeat right center;padding-inline-end:1.4rem;cursor:pointer}
html[dir=rtl] select{background-position:left center}
textarea{resize:vertical;min-height:110px}
.wide{grid-column:1/-1}
.consent{display:flex;gap:.8rem;align-items:flex-start;font-size:.78rem;letter-spacing:0;text-transform:none;color:var(--muted);line-height:1.6}
.consent input{width:auto;margin-top:.35rem;accent-color:var(--green)}
form .button{justify-self:start;background:var(--green);color:var(--bg);border-color:var(--green)}
form .button:hover{background:var(--green-deep);border-color:var(--green-deep);color:#fff}
.form-status{font-size:.82rem;color:var(--green)}
@media (max-width:860px){.home-page .contact>.wrap{grid-template-columns:1fr;gap:3rem}form#contactForm{grid-template-columns:1fr}}
.reservation-intro{max-width:720px;margin-bottom:3.5rem}
.reservation-intro h1{margin:.6rem 0 1.2rem}
.reservation-layout{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(2.5rem,6vw,6rem);align-items:start}
.reservation-help{border-inline-start:1px solid var(--line);padding-inline-start:clamp(1.5rem,3vw,3rem)}
.reservation-help .contact-phone{margin-top:0}
.reservation-help p{font-size:.78rem!important;color:var(--muted);margin-top:1rem}
@media (max-width:860px){.reservation-layout{grid-template-columns:1fr}.reservation-help{border:0;padding:0;border-top:1px solid var(--line);padding-top:2rem}}

/* Brochure */
.brochure-downloads{border-top:1px solid var(--line)}
.brochure-downloads .wrap{display:grid;grid-template-columns:1fr 1fr;gap:1rem clamp(2rem,5vw,5rem);align-items:center}
.brochure-downloads .wh-lead{grid-row:span 2}
.brochure-downloads .brochure-languages{align-self:end}
.brochure-downloads .brochure-note{align-self:start;margin-top:0}
.brochure-languages{display:flex;flex-direction:column;gap:1rem}
.brochure-languages a{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1.5rem 1.8rem;border:1px solid var(--ink);transition:background .4s,color .4s;flex-wrap:wrap}
.brochure-languages a:hover{background:var(--ink);color:var(--bg)}
.brochure-languages a span{font-family:var(--display);font-size:1.5rem;line-height:1.2}
.brochure-languages a small{font-size:.62rem;letter-spacing:.24em;text-transform:uppercase;opacity:.8}
.brochure-note{margin-top:1rem}
@media (max-width:860px){.brochure-downloads .wrap{grid-template-columns:1fr;gap:2rem}}

/* ===== Pages villas ===== */
.villa-page .chloe-essentials{padding-block:0;background:var(--surface);border-bottom:1px solid var(--line)}
.essential-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1.5rem;padding:clamp(2rem,4vw,3.4rem) 0 1.8rem}
.essential-grid>div{border-inline-start:1px solid var(--line);padding-inline-start:1.2rem}
.essential-grid strong{display:block;font-family:var(--display);font-size:clamp(2rem,3.3vw,3.1rem);line-height:1;font-variant-numeric:tabular-nums;font-weight:300}
.essential-grid span{display:block;font-size:.62rem;letter-spacing:.26em;text-transform:uppercase;color:var(--muted);margin-top:.8rem;line-height:1.6}
.bathroom-detail,.service-room-detail{font-size:.84rem;color:var(--muted);max-width:70ch!important}
.bathroom-detail{margin-top:.5rem}
.service-room-detail{margin-top:.6rem}
.essential-actions{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;border-top:1px solid var(--line);margin-top:1.8rem;padding:1.6rem 0 clamp(2rem,4vw,3rem)}
.essential-actions p{font-family:var(--display);font-size:clamp(1.8rem,2.8vw,2.4rem);line-height:1.1;color:var(--ink)!important;max-width:none!important}
.essential-actions small{display:block;margin-top:.5rem;font-size:.72rem;color:var(--muted);letter-spacing:.02em}
@media (max-width:960px){.essential-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:640px){.essential-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2rem}.essential-actions{display:block}.essential-actions .text-link{margin-top:1.2rem}}

.gallery-teaser .wrap{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(2rem,5vw,5rem);align-items:center}
.gallery-teaser img{aspect-ratio:5/4;object-fit:cover;width:100%}
.gallery-teaser h2{margin-bottom:1rem}
.gallery-teaser p{color:var(--muted)}
.gallery-teaser .text-link{margin-top:1.6rem}
@media (max-width:860px){.gallery-teaser .wrap{grid-template-columns:1fr}}
.guest-room-option{background:var(--green);color:var(--bg);border-block:0}
.guest-room-option .wrap{width:min(820px,100% - 2*var(--gutter));text-align:center}
.guest-room-option h2{margin-bottom:1.2rem}
.included-features h2{margin-bottom:2.2rem}
.included-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 2.5rem}
.included-list li{padding:1rem 0;border-top:1px solid var(--line);font-family:var(--display);font-size:1.35rem;line-height:1.2}
.furniture-option{margin-top:3rem;padding-top:2.2rem;border-top:1px solid var(--line);max-width:64ch}
.furniture-option h3{margin-bottom:.8rem}
.furniture-option p{color:var(--muted)}
@media (max-width:860px){.included-list{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.included-list{grid-template-columns:1fr}}
.gallery-switch,.room-links,.domain-contents,.residents-nav,.material-chapters{display:flex;flex-wrap:wrap;gap:.4rem 2rem;padding:1.2rem 0;border-block:1px solid var(--line);font-size:.62rem;letter-spacing:.3em;text-transform:uppercase}
.gallery-switch a,.room-links a,.domain-contents a,.residents-nav a,.material-chapters a{padding:.5rem 0;opacity:.75;transition:opacity .3s}
.gallery-switch a:hover,.room-links a:hover,.domain-contents a:hover,.residents-nav a:hover,.material-chapters a:hover{opacity:1}
.gallery-switch{position:sticky;top:var(--header);z-index:20;background:rgba(247,245,240,.94);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);justify-content:center;padding-inline:var(--gutter)}
.room-links{border-top:0;padding-top:0;margin-bottom:1.5rem}
main>.room-links,main>.domain-contents{width:min(1320px,100% - 2*var(--gutter));margin-inline:auto}
.material-chapters{margin-top:2.4rem;border-bottom:0}

.floorplans .floorplans-heading{display:flex;align-items:baseline;justify-content:space-between;gap:2rem;flex-wrap:wrap;margin-bottom:2.4rem}
.floorplans .floorplans-heading p{color:var(--muted);font-size:.78rem;letter-spacing:.08em}
.floorplans .wrap>.plan-figure{margin-top:1.6rem}
.plan-figure{background:#fff;border:1px solid var(--line);padding:clamp(1rem,2.5vw,2rem)}
.plan-figure>figcaption{order:-1;margin:0 0 1.2rem;font-family:var(--display);font-size:1.6rem;color:var(--ink);letter-spacing:0;line-height:1.2}
.plan-figure{display:flex;flex-direction:column}
.plan-figure a{display:block;cursor:zoom-in}
.plan-figure img{width:100%;height:auto}
.plan-figure .plan-zoom-hint{margin-top:1rem}
.plan-download{margin-top:2rem}
html body .plan-figure>figcaption{background:none!important;color:var(--ink)!important;padding:0;border:0}
html body .plan-figure>.plan-zoom-hint{border:0;padding:0;background:none;font-family:var(--body);color:var(--muted)}

.gallery-heading{font-size:clamp(2rem,3.4vw,3.2rem);width:min(1320px,100% - 2*var(--gutter));margin:clamp(3rem,7vw,6rem) auto 1.8rem}
h3.gallery-heading{font-size:clamp(1.5rem,2.4vw,2.2rem);margin-top:clamp(2rem,5vw,4rem)}
main>section.photo-grid{padding-block:0 clamp(2rem,4vw,3rem)}
.photo-grid{--g:clamp(1rem,2.2vw,2rem)}
.photo-grid .wrap{display:flex;flex-wrap:wrap;justify-content:center;align-items:stretch;gap:var(--g)}
.photo-grid figure{min-width:0;display:flex;flex-direction:column;flex:0 0 calc((100% - 2*var(--g))/3)}
.photo-grid figure:nth-child(4n+1):not(:only-child){flex-basis:calc((100% - 2*var(--g))*2/3 + var(--g))}
.photo-grid figure button,.photo-grid figure a{flex:1;display:flex;flex-direction:column;min-height:0;width:100%;padding:0;border:0;background:var(--line);cursor:zoom-in;overflow:hidden}
.photo-grid figure img{width:100%;height:100%;flex:1;min-height:0;aspect-ratio:4/3;object-fit:cover;transition:transform 1.3s cubic-bezier(.2,.6,.2,1)}
.photo-grid figure:nth-child(4n+1):not(:only-child) img{aspect-ratio:16/9}
.photo-grid figure button:hover img,.photo-grid figure a:hover img{transform:scale(1.035)}
.photo-grid .wrap>.wh-visual-notice{flex:0 0 100%;width:100%;max-width:100%;text-align:center}
@media (max-width:860px){.photo-grid figure{flex-basis:calc((100% - var(--g))/2)}.photo-grid figure:nth-child(4n+1):not(:only-child){flex-basis:100%}}
@media (max-width:520px){.photo-grid figure,.photo-grid figure:nth-child(4n+1):not(:only-child){flex-basis:100%}.photo-grid figure:nth-child(4n+1):not(:only-child) img{aspect-ratio:4/3}}

.kitchen-feature .wrap,.villa-kitchenette .wrap,.celine-lift .wrap,.margaux-lift .wrap,.park-feature .wrap,.material-chapter{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(2rem,5vw,5rem);align-items:center}
.villa-laundry .wrap,.material-chapter:nth-of-type(even){grid-template-columns:1.1fr .9fr}
.villa-laundry .wrap>figure,.material-chapter:nth-of-type(even)>figure{order:-1}
.material-chapter{padding-block:clamp(3rem,7vw,6rem)}
.material-chapter>.wh-visual-notice{grid-column:1/-1}
.kitchen-feature h3{font-size:clamp(1.9rem,3vw,2.8rem)}
.kitchen-feature p,.villa-kitchenette p,.celine-lift p,.margaux-lift p,.park-feature p,.material-copy p{color:var(--muted)}
.kitchen-feature h3,.villa-kitchenette h2,.celine-lift h2,.margaux-lift h2,.park-feature h2{margin-bottom:1.2rem}
.kitchen-feature figure button,.villa-kitchenette figure button{display:block;width:100%;padding:0;border:0;background:var(--line);cursor:zoom-in;overflow:hidden}
.kitchen-feature figure img,.villa-kitchenette figure img,.park-feature figure img,.material-board img{width:100%;aspect-ratio:4/3;object-fit:cover}
.material-board{overflow:hidden}
.material-board img{aspect-ratio:auto;object-fit:contain;background:#fff;border:1px solid var(--line)}
.lift-main{display:block;cursor:zoom-in;overflow:hidden}
.lift-main img{width:100%;aspect-ratio:3/4;object-fit:cover}
.lift-thumbs{display:flex;gap:.6rem;margin-top:.8rem}
.lift-thumbs button{padding:0;border:1px solid transparent;background:none;cursor:pointer;width:58px;opacity:.6;transition:opacity .3s,border-color .3s}
.lift-thumbs button[aria-pressed=true],.lift-thumbs button:hover{opacity:1;border-color:var(--champagne)}
.lift-thumbs img{width:100%;aspect-ratio:3/4;object-fit:cover}
@media (max-width:860px){.kitchen-feature .wrap,.villa-kitchenette .wrap,.celine-lift .wrap,.margaux-lift .wrap,.park-feature .wrap,.material-chapter{grid-template-columns:1fr!important}.villa-laundry .wrap>figure,.material-chapter:nth-of-type(even)>figure{order:0}}

.celine-story,.margaux-room-heading{padding-block:clamp(3rem,7vw,6rem)!important}
.celine-story .wrap,.margaux-room-heading .wrap{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,5rem);align-items:end}
.celine-story h2,.margaux-room-heading h2{font-size:clamp(2.1rem,3.6vw,3.4rem)}
.celine-story p,.margaux-room-heading p{color:var(--muted);max-width:52ch}
@media (max-width:860px){.celine-story .wrap,.margaux-room-heading .wrap{grid-template-columns:1fr;gap:1.4rem}}
.margaux-hero{padding-block:0 clamp(2rem,4vw,3rem)!important}
.margaux-hero figure button{display:block;width:100%;padding:0;border:0;background:var(--line);cursor:zoom-in}
.margaux-hero figure img{width:100%;aspect-ratio:21/9;object-fit:cover}
.celine-materials .wrap{width:min(820px,100% - 2*var(--gutter));text-align:center}
.celine-materials h2{margin-bottom:1.2rem}
.celine-links{display:flex;gap:2rem;justify-content:center;flex-wrap:wrap;margin-top:2rem}
.materials-preview{background:var(--green);color:var(--bg);border-block:0}
.materials-preview .wrap{width:min(820px,100% - 2*var(--gutter));text-align:center}
.materials-preview h2{margin-bottom:1.2rem}
.materials-preview .text-link{margin-top:1.8rem}

.wh-construction{margin:0!important;border:0!important;scroll-margin-top:calc(var(--header) + 24px)}
.wh-construction h2{font-weight:300;font-size:clamp(2rem,3.6vw,3.4rem);margin:0 0 1.2rem;font-family:var(--display)}
.wh-film-intro{color:var(--muted);max-width:60ch}
.wh-film-stage{margin-top:2.4rem;background:var(--line)}
.wh-film-controls{background:var(--surface);border:1px solid var(--line);border-top:0;padding:1.6rem}
.wh-film-label{font:300 clamp(1.3rem,2.2vw,1.8rem)/1.2 var(--display);color:var(--ink)}
.wh-construction .wh-film-play{border-radius:0;background:var(--ink);border-color:var(--ink);color:var(--bg);font:400 .62rem/1.4 var(--body);letter-spacing:.3em;text-transform:uppercase;padding:.9rem 1.4rem}
.wh-film-play i{border-left-color:var(--gold)}
.wh-film-range{accent-color:var(--green)}
.wh-film-ends{font-family:var(--body);color:var(--muted);font-size:.72rem;letter-spacing:.06em}
.wh-film-note{font-family:var(--body)}

.purchase-heading{max-width:720px;margin-bottom:3rem}
.purchase-heading p{color:var(--muted)}
.purchase-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.5rem,3vw,3rem)}
.purchase-step{border-top:1px solid var(--ink);padding-top:1.4rem;font-family:var(--display);font-size:1.3rem;color:var(--champagne-deep)}
.purchase-step h3{margin:1rem 0 .8rem;color:var(--ink)}
.purchase-step p{font-family:var(--body);font-size:.92rem;color:var(--muted);line-height:1.7}
.purchase-note{margin-top:2.4rem}
.purchase-path .text-link{margin-top:1.4rem}
@media (max-width:860px){.purchase-steps{grid-template-columns:1fr}}

.chloe-faq .wrap,.villa-faq .wrap{width:min(860px,100% - 2*var(--gutter))}
.villa-faq h1{margin:.6rem 0 2.4rem}
.chloe-faq h2{margin-bottom:2rem}
details{border-top:1px solid var(--line)}
details:last-of-type{border-bottom:1px solid var(--line)}
summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:1.5rem;align-items:center;padding:1.3rem 0;font-family:var(--display);font-size:clamp(1.25rem,1.8vw,1.55rem);line-height:1.25;transition:color .3s}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";font-family:var(--body);font-weight:300;font-size:1.4rem;color:var(--champagne-deep);flex-shrink:0;transition:transform .35s}
details[open] summary::after{transform:rotate(45deg)}
details p{color:var(--muted);padding-bottom:1.4rem;max-width:66ch}
details .text-link{margin-bottom:1.4rem}
.faq-action{margin-top:2.6rem}
.faq-back{display:inline-block;margin-bottom:2rem}
.faq-page main>.faq-back{margin:2rem var(--gutter) 0}

.gallery-bottom{background:var(--green);color:var(--bg);text-align:center}
.gallery-bottom .eyebrow{color:var(--gold)}
.gallery-bottom h2{color:#fff;margin:.6rem 0 2rem}
.gallery-bottom .button{color:#fff;border-color:rgba(255,255,255,.75)}
.gallery-bottom .button:hover{background:#fff;color:var(--green);border-color:#fff}

.lightbox,dialog#detail{border:0;padding:0;max-width:none;width:100vw;height:100dvh;max-height:none;background:rgba(12,10,8,.94);color:#fff;margin:0;inset:0}
.lightbox::backdrop,dialog#detail::backdrop{background:rgba(12,10,8,.4)}
.lightbox img{position:absolute;inset:0;margin:auto;max-width:min(92vw,1500px);max-height:84dvh;width:auto;height:auto;object-fit:contain}
.lightbox .close,dialog#detail .close{position:absolute;top:1rem;inset-inline-end:1.2rem;background:none;border:0;color:#fff;font-size:2.4rem;line-height:1;cursor:pointer;z-index:2;padding:.4rem .6rem}
.lightbox-controls{position:absolute;inset-inline:0;bottom:1.4rem;display:flex;justify-content:center;align-items:center;gap:2rem;font-size:.66rem;letter-spacing:.3em;text-transform:uppercase}
.lightbox-controls button{background:none;border:1px solid rgba(255,255,255,.5);color:#fff;width:48px;height:48px;border-radius:50%;cursor:pointer;font-size:1.1rem;transition:background .3s}
.lightbox-controls button:hover{background:rgba(255,255,255,.15)}
dialog#detail{background:var(--bg);color:var(--ink);width:min(640px,92vw);height:auto;max-height:90dvh;margin:auto;padding:3rem;border:1px solid var(--line);overflow:auto}
dialog#detail .close{color:var(--ink)}

/* ===== Domaine ===== */
.wh-hero--domaine .facts{display:grid;grid-template-columns:repeat(4,auto);gap:clamp(1.5rem,4vw,4rem);margin-top:2.4rem;padding-top:1.8rem;border-top:1px solid rgba(255,255,255,.35)}
.wh-hero--domaine .fact strong{display:block;font-family:var(--display);font-size:clamp(2rem,3.4vw,3.2rem);line-height:1;color:#fff;font-weight:300}
.wh-hero--domaine .fact span{display:block;font-size:.58rem;letter-spacing:.3em;text-transform:uppercase;color:#e6d9bd;margin-top:.7rem}
@media (max-width:640px){.wh-hero--domaine .facts{grid-template-columns:1fr 1fr}}
.domain-page .domain-contents{padding-block:1.2rem;justify-content:center}
.park-feature figure img{aspect-ratio:4/3;object-fit:cover}
.park-feature .text-link{margin-top:1.6rem}
.estate-overview,.estate-masterplan{text-align:center}
.estate-overview figure,.estate-masterplan figure{margin-top:2.4rem}
.estate-overview-image,.estate-masterplan figure a{display:block;cursor:zoom-in}
.estate-overview img,.estate-masterplan img{width:100%;height:auto;object-fit:contain;background:#fff;border:1px solid var(--line)}
.estate-overview figcaption{display:flex;flex-direction:column;align-items:center;gap:1rem;margin-top:1.4rem}
.estate-overview figcaption p{color:var(--muted);max-width:52ch}
.estate-overview figcaption a{font-size:.66rem;letter-spacing:.3em;text-transform:uppercase;border:1px solid var(--ink);padding:.9rem 1.6rem;transition:background .4s,color .4s}
.estate-overview figcaption a:hover{background:var(--ink);color:var(--bg)}
.estate-location-heading{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:end;margin-bottom:2.4rem}
.estate-location-heading p{color:var(--muted)}
.estate-map a{display:block;cursor:zoom-in}
.estate-map img{width:100%;height:auto;border:1px solid var(--line);background:#fff}
.estate-map-caption{margin-top:1rem}
@media (max-width:860px){.estate-location-heading{grid-template-columns:1fr}}
.lifestyle>.wrap>.eyebrow+h2{margin-bottom:1.2rem}
.lifestyle>.wrap>h2+p{color:var(--muted);max-width:60ch}
.daily-hub{padding-top:clamp(3rem,6vw,5rem)!important}
.daily-hub h3{font-size:clamp(1.9rem,3vw,2.8rem);margin-bottom:1rem}
.daily-hub>p{color:var(--muted);max-width:66ch}
.daily-hub .wh-figures{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1rem,2.5vw,2rem);margin-top:2.4rem}
.daily-hub figure a{display:block;cursor:zoom-in;overflow:hidden}
.daily-hub figure img{width:100%;aspect-ratio:16/9;object-fit:cover}
@media (max-width:760px){.daily-hub .wh-figures{grid-template-columns:1fr}}
.lifestyle-photos{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:clamp(1rem,2.2vw,2rem);margin-top:clamp(3rem,6vw,5rem)}
.lifestyle-photos figure{grid-column:span 2;min-width:0}
.lifestyle-photos figure:nth-child(4),.lifestyle-photos figure:nth-child(5){grid-column:span 3}
.lifestyle-photos figure a{display:block;overflow:hidden;cursor:zoom-in}
.lifestyle-photos figure img{width:100%;aspect-ratio:4/3;object-fit:cover}
.lifestyle-photos figure:nth-child(4) img,.lifestyle-photos figure:nth-child(5) img{aspect-ratio:3/2}
.lifestyle-photos .wh-visual-notice{grid-column:1/-1}
@media (max-width:760px){.lifestyle-photos{grid-template-columns:1fr 1fr}.lifestyle-photos figure{grid-column:span 1}.lifestyle-photos figure:nth-child(4){grid-column:span 1}.lifestyle-photos figure:nth-child(5){grid-column:span 2}.lifestyle-photos figure:nth-child(4) img{aspect-ratio:4/3}.lifestyle-photos figure:nth-child(5) img{aspect-ratio:16/9}}
.residents-nav{margin-top:clamp(3rem,6vw,5rem);justify-content:center}
.residents-group{padding-top:clamp(3rem,6vw,5rem)!important;padding-bottom:0!important}
.residents-heading{font-size:clamp(1.9rem,3vw,2.8rem);margin-bottom:2.2rem;max-width:22ch}
.residents-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.4rem,3vw,2.6rem)}
.residents-card a{display:block;overflow:hidden;cursor:zoom-in;background:var(--line)}
.residents-card img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform 1.3s cubic-bezier(.2,.6,.2,1)}
.residents-card a:hover img{transform:scale(1.035)}
.residents-card h4{margin:1.2rem 0 .5rem}
.residents-card p{font-size:.92rem;color:var(--muted)}
@media (max-width:860px){.residents-grid{grid-template-columns:1fr}}
.rental-local{background:var(--surface);border:1px solid var(--line);padding:clamp(2rem,4vw,3.5rem)!important;margin:0 0 3rem;text-align:center}
.rental-local>h3{font-size:clamp(1.8rem,2.8vw,2.5rem);margin-bottom:1.6rem}
.rental-local h4{margin:1.8rem 0 .5rem}
.rental-local p{color:var(--muted);max-width:66ch;margin-inline:auto;text-wrap:balance}
.rental-photo{display:none}
.rental-metrics{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin:1.6rem auto .4rem;max-width:560px}
.rental-metrics strong{display:block;font-family:var(--display);font-size:clamp(2.2rem,3.4vw,3.2rem);line-height:1;font-weight:300;color:var(--green)}
.rental-metrics>div{font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);border-top:1px solid var(--line);padding-top:1rem}
.rental-local table{margin:1.4rem auto .8rem;font-size:.94rem;max-width:720px;width:100%}
.rental-local th,.rental-local td{text-align:center;padding:.85rem .6rem;border-bottom:1px solid var(--line);font-weight:400}
.rental-local thead th{font-size:.6rem;letter-spacing:.26em;text-transform:uppercase;color:var(--muted)}
.rental-local tbody th{font-family:var(--display);font-size:1.25rem;font-weight:700;color:var(--ink)}
.rental-local td{font-family:var(--display);font-size:1.25rem}
.rental-local .fine{margin-top:.8rem}

/* ===== À propos ===== */
.company-monogram{font-family:var(--display);font-size:clamp(3rem,6vw,5rem);line-height:1;color:var(--champagne);margin:.4rem 0 .4rem}
.company-signature{font-size:.62rem;letter-spacing:.4em;text-transform:uppercase;color:var(--muted);margin-bottom:2rem}
.company-identity h1{font-size:clamp(2.2rem,4.2vw,3.8rem);margin-bottom:1.2rem}
.company-identity p{color:var(--muted);font-size:1.08rem}
.company-story{background:var(--surface);border-block:1px solid var(--line)}
.company-chapter{display:grid;grid-template-columns:200px 1fr;gap:clamp(1.5rem,4vw,4rem);padding:clamp(2rem,4vw,3.2rem) 0;border-top:1px solid var(--line)}
.company-chapter:first-child{border-top:0;padding-top:0}
.company-chapter:last-child{padding-bottom:0}
.company-chapter-label{line-height:1.8}
.company-chapter h2{font-size:clamp(1.8rem,3vw,2.7rem);margin-bottom:1rem}
.company-chapter p{color:var(--muted);max-width:62ch}
@media (max-width:760px){.company-chapter{grid-template-columns:1fr;gap:.6rem}}
.brand-welcome h2{margin-bottom:1rem}
.brand-welcome>.wrap>p{color:var(--muted);max-width:62ch}
.brand-welcome figure{margin-top:2.6rem}
.brand-welcome figure a{display:block;cursor:zoom-in}
.brand-welcome figure img{width:100%;aspect-ratio:16/9;object-fit:cover}
.brand-details{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.5rem,3vw,3rem);margin-top:3rem}
.brand-details article{border-top:1px solid var(--ink);padding-top:1.2rem}
.brand-details h3{font-size:1.5rem;margin-bottom:.6rem}
.brand-details p{font-size:.92rem;color:var(--muted)}
@media (max-width:860px){.brand-details{grid-template-columns:1fr}}
.company-contact{text-align:center;border-top:1px solid var(--line)}
.company-contact h2{margin-bottom:1rem}
.company-contact p{color:var(--muted);margin-inline:auto}
.company-actions{display:flex;gap:2rem;justify-content:center;flex-wrap:wrap;margin-top:2rem}

/* ===== ART ===== */
.art-opening h1{font-size:clamp(2.4rem,5vw,4.6rem)}
.art-hero{padding:0 0 clamp(3rem,7vw,6rem)}
.art-hero figure button,.art-image{display:block;width:100%;padding:0;border:0;background:none;cursor:zoom-in}
.art-hero figure img{width:100%;aspect-ratio:21/9;object-fit:cover}
.art-chapter{padding-block:clamp(3rem,7vw,6rem)!important}
.art-copy{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,5rem);align-items:end;margin-bottom:2.6rem}
.art-copy h2{font-size:clamp(2.1rem,3.6vw,3.4rem)}
.art-copy p{color:var(--muted);max-width:52ch}
.art-chapter>.wrap>figure{margin-top:2rem}
.art-chapter figure img{width:100%;aspect-ratio:3/2;object-fit:cover}
.art-pair{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1rem,2.5vw,2rem);margin-top:2rem}
.art-quote{text-align:center;background:var(--green);color:var(--bg);border-block:0}
.art-quote p{font-family:var(--display);font-size:clamp(1.7rem,3.2vw,2.9rem);line-height:1.3;max-width:46ch;margin-inline:auto;color:var(--bg);text-wrap:balance}
.art-ending{text-align:center}
.art-ending h2{margin-bottom:1rem}
.art-ending p{margin-inline:auto;color:var(--muted)}
.art-ending .text-link{margin:2rem 1rem 0}
@media (max-width:860px){.art-copy{grid-template-columns:1fr;gap:1.2rem}.art-pair{grid-template-columns:1fr}}

/* ===== Matières & finitions ===== */
.materials-story{padding-top:0!important}
.materials-intro{max-width:820px;margin-bottom:0}
.materials-intro.wh-split{max-width:none}
.comfort-editorial{padding-block:clamp(3rem,7vw,6rem)!important}
.comfort-brand{display:none}
.comfort-intro{color:var(--muted);max-width:60ch;margin-bottom:2.6rem}
.comfort-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.5rem,3vw,3rem)}
.comfort-card{border-top:1px solid var(--ink);padding-top:1.2rem;font-family:var(--display);font-size:1.2rem;color:var(--champagne-deep)}
.comfort-card h3{font-size:1.5rem;margin:.8rem 0 .6rem;color:var(--ink)}
.comfort-card p{font-family:var(--body);font-size:.92rem;color:var(--muted);line-height:1.7}
.comfort-construction{margin-top:3rem;padding-top:2rem;border-top:1px solid var(--line);max-width:70ch}
.comfort-construction h3{margin-bottom:.8rem}
.comfort-construction p{color:var(--muted)}
.comfort-gate{margin-top:2.4rem;padding:1.6rem 2rem;background:var(--surface);border:1px solid var(--line);max-width:560px}
.comfort-gate .eyebrow{margin-bottom:.4rem}
.comfort-gate p{font-family:var(--display);font-size:1.4rem;color:var(--ink)!important}
.comfort-note{margin-top:1.6rem}
@media (max-width:860px){.comfort-cards{grid-template-columns:1fr}}
.material-chapter .material-copy h3{font-size:clamp(1.9rem,3vw,2.8rem);margin-bottom:1rem}
.material-chapter>.park-highlight{grid-column:1/-1;font-family:var(--display);font-size:1.4rem;line-height:1.35;color:var(--ink);max-width:40ch;border-inline-start:1px solid var(--champagne);padding-inline-start:1.4rem}
.collection-boards{text-align:center;background:var(--surface);border-block:1px solid var(--line)}
.collection-boards h2{margin-bottom:2.4rem}
.collection-boards .wh-boards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1rem,2.5vw,2rem)}
.collection-boards figure a{display:block;cursor:zoom-in;border:1px solid var(--line);background:#fff}
.collection-boards figure img{display:block;width:auto;max-width:100%;height:auto;max-height:min(90vh,1100px);aspect-ratio:auto;object-fit:contain;margin-inline:auto}
@media (max-width:860px){.collection-boards .wh-boards{grid-template-columns:1fr}}
.materials-ending{text-align:center;padding-top:clamp(3rem,6vw,5rem);border-top:1px solid var(--line);margin-top:clamp(3rem,6vw,5rem)}
.materials-ending p{color:var(--muted);margin-inline:auto;max-width:48ch}
.materials-ending p+p{margin-top:1.2rem}

/* ===== Pied de page ===== */
.wh-footer{background:var(--green);color:#e9e2d2;padding:clamp(3.5rem,7vw,6rem) 0 2.4rem;margin-top:0}
.wh-footer .wrap{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:clamp(2rem,5vw,5rem)}
.wh-footer__brand img{width:180px;height:auto}
.wh-footer__brand p{margin-top:1.6rem;font-size:.86rem;color:#c9d2c8;max-width:34ch}
.wh-footer h4{font-family:var(--body);font-size:.6rem;letter-spacing:.34em;text-transform:uppercase;color:var(--gold);margin-bottom:1.4rem;font-weight:400}
.wh-footer nav{display:flex;flex-direction:column;gap:.9rem}
.wh-footer nav.wh-lang{flex-direction:row;gap:0}
.wh-footer a{border:0;padding:0;color:#e9e2d2;font-size:.64rem;letter-spacing:.28em}
.wh-footer a:hover{color:#fff}
.wh-footer .contact-phone{font-family:var(--display);font-size:1.9rem;letter-spacing:0;text-transform:none;margin:0 0 1rem;color:#fff}
.wh-footer .wh-lang{margin-top:1.4rem;font-size:.6rem}
.wh-footer .wh-lang a{padding-inline:0;margin-inline-end:1rem}
.wh-footer__legal{grid-column:1/-1;margin-top:clamp(2rem,4vw,3.5rem);padding-top:1.6rem;border-top:1px solid rgba(255,255,255,.14);font-size:.72rem;color:#b9c3b8;line-height:1.9}
.wh-footer__legal a{font-size:.6rem;letter-spacing:.26em;text-transform:uppercase;border-bottom:1px solid rgba(255,255,255,.3);padding-bottom:.2rem}
.wh-footer__legal .wh-footer-notice{display:block;margin:.2rem 0}
@media (max-width:860px){.wh-footer .wrap{grid-template-columns:1fr;gap:2.4rem}}

/* ===== Conseiller (widget) — pastille ivoire discrète ===== */
html body .wh-launch{font:400 .58rem/1.3 var(--body);letter-spacing:.26em;text-transform:uppercase;background:rgba(247,245,240,.94);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--champagne);color:var(--ink);border-radius:999px;box-shadow:0 10px 28px rgba(21,19,15,.12);padding:0 1.2rem 0 .45rem;gap:.7rem;min-height:0;height:48px;right:28px;bottom:calc(28px + env(safe-area-inset-bottom));max-width:none;transition:background .35s,border-color .35s,box-shadow .35s,transform .35s}
html body .wh-launch:hover{background:#fff;border-color:var(--champagne-deep);box-shadow:0 14px 32px rgba(21,19,15,.16);transform:translateY(-2px)}
html body .wh-launch>span:last-child{font:inherit;letter-spacing:inherit;text-transform:inherit;line-height:1.3;color:var(--ink)}
html body .wh-launch .wh-seal{flex:0 0 38px;width:38px;min-width:38px;height:38px;border:0;background:transparent;border-radius:0;font:inherit;padding:2px;object-fit:contain}
html body .wh-launch .wh-seal:after{display:none}
@media (max-width:600px){html body .wh-launch{right:16px;bottom:calc(16px + env(safe-area-inset-bottom));height:44px;padding:0 1rem 0 .4rem;gap:.5rem;font-size:.54rem}html body .wh-launch .wh-seal{flex-basis:32px;width:32px;min-width:32px;height:32px}}
html[dir=rtl] body .wh-launch{right:auto;left:28px;padding:0 .45rem 0 1.2rem}
@media (max-width:600px){html[dir=rtl] body .wh-launch{left:16px;padding:0 .4rem 0 1rem}}
.wh-dialog{border-radius:0;font-family:var(--body);border-color:var(--line-strong)}
.wh-head{background:var(--green)}
.wh-head h2,.wh-body h3{font-family:var(--display);font-weight:300}
.wh-body{font-family:var(--body)}

/* ===== Révélation douce ===== */
@media (prefers-reduced-motion:no-preference){
  .wh-reveal{opacity:0;transform:translateY(14px);transition:opacity .6s cubic-bezier(.2,.6,.2,1),transform .6s cubic-bezier(.2,.6,.2,1)}
  .wh-reveal.in{opacity:1;transform:none}
}

/* ===== Arabe ===== */
@font-face{font-family:'WH Arabic';src:url('fonts/NotoSansArabic-Regular.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:'WH Arabic';src:url('fonts/NotoSansArabic-Bold.ttf') format('truetype');font-weight:700;font-display:swap}
@font-face{font-family:'WH Arabic Display';src:url('fonts/NotoNaskhArabic-Regular.ttf') format('truetype');font-weight:400;font-display:swap}
html[lang=ar]{--display:'WH Arabic Display','Amiri',serif;--body:'WH Arabic',Tahoma,Arial,sans-serif}
html[lang=ar] body{font-weight:400}
html[lang=ar] :is(h1,h2,h3,h4){line-height:1.35;letter-spacing:0}
html[lang=ar] h1{font-size:clamp(2.2rem,5vw,4.4rem)}
html[lang=ar] :is(.eyebrow,.label,.text-link,.button,.btn,.wh-nav,.wh-cta,.wh-lang,.gallery-switch,.room-links,.domain-contents,.residents-nav,.material-chapters,label,.essential-grid span,.wh-footer a,.wh-footer h4,.spec,.brochure-languages a small){letter-spacing:0;font-size:.86rem}
html[lang=ar] .wh-nav{font-size:.9rem;gap:1.6rem}
html[lang=ar] :is(p,li){line-height:1.95}
html[lang=ar] .wh-brand,html[lang=ar] .wh-lang,html[lang=ar] .contact-phone{direction:ltr}
html[lang=ar] .wh-hero h1{max-width:none}
html[lang=ar] .wh-scrollcue{display:none}

/* Planche « Bois nobles » (2:1) : affichée entière, sans recadrage */
main #bois-nobles img{aspect-ratio:2/1!important;object-fit:contain!important;height:auto!important;background:#fff}

/* À propos : planche des tenues (portrait) et coffret (paysage) côte à côte, à la même hauteur */
.brand-figures{display:grid;grid-template-columns:1fr 2.25fr;gap:clamp(1rem,2.5vw,2rem);align-items:start;margin-top:2.4rem}
.brand-figures figure{margin:0}
.brand-figures img{width:100%;height:auto!important;display:block;aspect-ratio:auto!important;object-fit:contain!important}
@media (max-width:760px){.brand-figures{grid-template-columns:1fr}}

/* À propos : logo à l'écusson à la place du monogramme WH */
.company-logo{display:block;width:min(260px,70%);height:auto;margin:.6rem 0 2rem}
html[dir=rtl] .company-logo{margin-inline:0 auto}
/* Cartes résidents : une rangée de deux cartes est centrée (même largeur que dans une rangée de trois) */
.residents-grid:has(>article:nth-child(2):last-child){grid-template-columns:repeat(2,calc((100% - 2*clamp(1.4rem,3vw,2.6rem))/3));justify-content:center}
@media (max-width:860px){.residents-grid:has(>article:nth-child(2):last-child){grid-template-columns:1fr}}

/* Blocs sur fond vert forêt : chambre d'hôtes (villas), « Notre approche » (Chloé), Prestations (Matières) */
.guest-room-option .eyebrow,.materials-preview .eyebrow,.comfort-editorial .eyebrow{color:#e6d9bd}
.guest-room-option h2,.materials-preview h2,.comfort-editorial h2{color:var(--bg);text-wrap:balance}
.guest-room-option .wrap>p,.materials-preview .wrap>p,.comfort-editorial .comfort-intro{color:rgba(247,245,240,.8)!important;max-width:60ch;margin-inline:auto;text-wrap:balance}
.guest-room-option .wrap>p{text-wrap:pretty}
.materials-preview .text-link{color:var(--bg);border-color:rgba(247,245,240,.6)}
.materials-preview .text-link:hover{color:var(--gold);border-color:var(--gold)}
/* Prestations : bandeau vert pleine largeur, cartes ivoire liserées d'or, appel à l'action */
.comfort-editorial{background:var(--green);color:var(--bg);box-shadow:0 0 0 100vmax var(--green);clip-path:inset(0 -100vmax);padding-block:clamp(3.5rem,7vw,6rem)!important;margin-top:clamp(3rem,6vw,5rem);text-align:center}
.comfort-editorial .comfort-intro{margin-bottom:clamp(2.4rem,4vw,3.4rem)}
.comfort-cards{text-align:start}
.comfort-card{border:1px solid rgba(230,189,104,.45);border-top:1px solid rgba(230,189,104,.45);background:rgba(247,245,240,.05);padding:1.6rem 1.6rem 1.8rem;color:var(--gold);transition:background .4s,transform .4s,border-color .4s}
.comfort-card:hover{background:rgba(247,245,240,.1);border-color:var(--gold);transform:translateY(-3px)}
.comfort-card h3{color:var(--bg)}
.comfort-card p{color:rgba(247,245,240,.78)}
.comfort-cta{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:1.2rem 2.4rem;margin-top:clamp(2.4rem,4vw,3.4rem)}
.comfort-cta .btn--light:hover{color:var(--green)}
.comfort-cta .text-link{color:var(--bg);border-color:rgba(247,245,240,.6)}
.comfort-cta .text-link:hover{color:var(--gold);border-color:var(--gold)}
.comfort-editorial .comfort-construction{margin-inline:auto;text-align:start;border-top-color:rgba(247,245,240,.2)}
.comfort-editorial .comfort-construction h3{color:var(--bg)}
.comfort-editorial .comfort-construction p,.comfort-editorial .comfort-note{color:rgba(247,245,240,.78)}
.comfort-editorial .comfort-gate{margin-inline:auto;background:rgba(247,245,240,.06);border-color:rgba(230,189,104,.45);text-align:start}
.comfort-editorial .comfort-gate p{color:var(--bg)!important}
.wh-green-block{}

/* Planche botanique détourée : pas de fond blanc ni de bordure autour de l'image transparente */
.material-board img[src*="sans-fond"]{background:transparent!important;border:0!important;box-shadow:none!important}

/* Accueil : « du trait à la villa », trois films (filaire → villa réelle) */
.wh-vision{background:var(--surface);border-block:1px solid var(--line)}
.wh-vision__head{text-align:center;max-width:720px;margin:0 auto clamp(2.4rem,4vw,3.4rem)}
.wh-vision__head h2{font-size:clamp(2rem,3.4vw,3.2rem);margin-bottom:1.1rem;text-wrap:balance}
.wh-vision__head p{color:var(--muted);text-wrap:pretty}
.wh-vision__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1rem,2.2vw,2rem)}
.wh-vision__item{margin:0;overflow:hidden;background:transparent;display:grid;gap:.6rem}
.wh-vision__item img{display:block;width:100%;aspect-ratio:3/2;height:auto;object-fit:cover;background:var(--line)}
.wh-vision__item video{display:block;width:100%;aspect-ratio:752/416;height:auto;object-fit:cover;background:var(--line)}
.wh-vision__links{display:flex;flex-wrap:wrap;justify-content:center;gap:1rem 3rem;margin-top:clamp(2rem,3.5vw,3rem)}
.wh-vision .wh-visual-notice{text-align:center;margin-inline:auto}
@media (max-width:860px){.wh-vision__grid{grid-template-columns:1fr}}

/* Jardins & paysages : texte et citation à gauche, planche à droite alignée en haut */
.landscape-chapter{align-items:start}
.landscape-chapter>.park-highlight{grid-column:1;margin-top:1.4rem}
.landscape-chapter>figure{grid-column:2;grid-row:1/span 2;margin:0}
@media (max-width:860px){.landscape-chapter>.park-highlight,.landscape-chapter>figure{grid-column:1;grid-row:auto}}

/* Entrée de la page Matières : texte à gauche, photo à droite, sommaire pleine largeur */
.wh-split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,5rem);align-items:center}
.wh-split .wh-split__copy h1{font-size:clamp(2.3rem,3.6vw,3.6rem);max-width:none;text-wrap:balance;margin:.6rem 0 1.2rem}
.wh-split .wh-split__copy p{max-width:48ch}
.wh-split__media{margin:0;overflow:hidden}
.wh-split__media img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover}
.wh-split>.material-chapters{grid-column:1/-1;margin-top:clamp(1.2rem,2.5vw,2rem);gap:.4rem clamp(1.4rem,2.6vw,2.6rem)}
@media (max-width:860px){.wh-split{grid-template-columns:1fr}.wh-split__media img{aspect-ratio:3/2}}

/* Photos entières sur mobile : plus de format imposé ni de recadrage (le hero plein écran reste couvrant) */
@media (max-width:860px){
  main figure img,main .wh-figures img,main .residents-card img,main .home-domain-card img,main .photo-grid img,main .park-feature img,main .material-board img,main .wh-split__media img,main .wh-vision__item img,main .brand-figures img,main .lifestyle-photos img,main .company-portrait img,main .estate-overview img,main .estate-masterplan img,main .estate-map img{aspect-ratio:auto!important;height:auto!important;max-height:none!important;object-fit:contain!important;width:100%}
  .villa-image-link{aspect-ratio:auto!important}
  img.villa-image{position:static;height:auto;object-fit:contain}
  .home-discovery-card>a img,.home-discovery-card>img{aspect-ratio:auto;height:auto;object-fit:contain}
}

/* Sous-navigations sur mobile (galeries des villas, chapitres du domaine et des matières) : une ligne qui défile au doigt */
@media (max-width:860px){
  .gallery-switch,.room-links,.domain-contents,.residents-nav,.material-chapters{flex-wrap:nowrap;justify-content:flex-start;gap:0 1.8rem;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:.9rem 2.5rem .9rem 0;margin-inline:0;width:100%;font-size:.6rem;letter-spacing:.22em;mask-image:linear-gradient(to right,#000 calc(100% - 2.5rem),transparent);-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 2.5rem),transparent)}
  .gallery-switch::-webkit-scrollbar,.room-links::-webkit-scrollbar,.domain-contents::-webkit-scrollbar,.residents-nav::-webkit-scrollbar,.material-chapters::-webkit-scrollbar{display:none}
  .gallery-switch a,.room-links a,.domain-contents a,.residents-nav a,.material-chapters a{flex:0 0 auto;white-space:nowrap;padding:.4rem 0;opacity:.85}
  .wh-split>.material-chapters{grid-column:1/-1}
  .gallery-switch{padding-inline-start:var(--gutter)}
}

/* Adresse postale : pied de page et page Contact */
.wh-footer__address{font-style:normal;font-size:.8rem;line-height:1.7;color:#c9d2c8;margin:-.2rem 0 1.2rem;max-width:30ch}
.wh-contact-address{display:block;font-style:normal;font-size:.92rem;line-height:1.7;color:var(--muted);margin:-.4rem 0 1.4rem}
html[dir=rtl] .wh-footer__address,html[dir=rtl] .wh-contact-address{text-align:start}
