/* Domaine du Tertre Ychot — finition visuelle V1.0
   Couche finale au-dessus de app.css + refonte.css. */

:root{
  --v1-forest:#152119;
  --v1-forest-soft:#24342a;
  --v1-moss:#687866;
  --v1-cream:#f6f2e8;
  --v1-paper:#fffdf8;
  --v1-stone:#ded6c7;
  --v1-ink:#20241f;
  --v1-muted:#696d65;
  --v1-line:rgba(31,36,31,.16);
  --v1-display:"Iowan Old Style","Palatino Linotype","Book Antiqua",Palatino,Georgia,"Times New Roman",serif;
}

/* Typographie et respiration globale */
.public-site{background:var(--v1-cream);color:var(--v1-ink);overflow-x:hidden}
.public-site h1,.public-site h2,.public-site h3,.public-site h4,.public-site .brand-copy strong,.public-site .footer-brand h2{font-family:var(--v1-display)}
.public-site h1,.public-site h2{font-kerning:normal;text-wrap:balance}
.public-site p{text-wrap:pretty}
.public-site .eyebrow,.public-site .section-kicker{letter-spacing:.19em}
.public-site .button{min-height:48px;padding-inline:23px;border-radius:0;text-transform:uppercase;letter-spacing:.1em;font-size:.69rem}
.public-site .text-link{font-size:.7rem;letter-spacing:.14em}
.public-site .circle-link{border-radius:0;transform:rotate(0)}
.public-site .section{padding-top:clamp(78px,9vw,140px);padding-bottom:clamp(78px,9vw,140px)}

/* Header : plus éditorial, moins “template SaaS” */
.public-site .site-header{transition:background .3s ease,color .3s ease,box-shadow .3s ease,transform .3s ease}
.public-site .header-inner{height:92px;max-width:1540px;padding-inline:clamp(18px,4vw,72px)}
.public-site .brand{gap:15px}
.public-site .brand-mark{width:48px;height:48px;border-radius:50%;font-family:var(--v1-display);font-size:.9rem;position:relative}
.public-site .brand-mark:after{content:"";position:absolute;inset:5px;border:1px solid currentColor;border-radius:50%;opacity:.25}
.public-site .brand-copy strong{font-size:1.16rem;letter-spacing:-.025em}
.public-site .brand-copy span{font-size:.62rem;letter-spacing:.2em;margin-top:5px}
.public-site .site-header.is-scrolled{background:rgba(246,242,232,.96);box-shadow:0 1px 0 rgba(31,36,31,.12)}
.public-site .nav-links{gap:clamp(13px,1.5vw,26px)}
.public-site .nav-links a,.public-site .language-link{font-size:.67rem;letter-spacing:.12em}
.public-site .button-book{border-color:currentColor;background:transparent;color:inherit}
.public-site .site-header.is-scrolled .button-book{background:var(--v1-forest);border-color:var(--v1-forest);color:#fff}

/* Accueil — hero plus “maison de caractère / magazine” */
.public-site .home-hero{min-height:100svh}
.public-site .home-hero-content{max-width:1540px;padding-left:clamp(22px,6vw,104px);padding-right:clamp(22px,6vw,104px);padding-bottom:clamp(105px,13vh,170px)}
.public-site .home-hero h1{font-family:var(--v1-display);font-size:clamp(3.7rem,7.7vw,8.7rem);line-height:.88;letter-spacing:-.055em;max-width:1120px}
.public-site .home-hero h1 span{font-family:var(--sans);font-size:clamp(.65rem,.85vw,.8rem);letter-spacing:.28em;margin-bottom:27px}
.public-site .hero-lead{font-size:clamp(1rem,1.45vw,1.25rem);max-width:650px;line-height:1.65}
.public-site .home-hero .hero-shade{background:linear-gradient(90deg,rgba(10,19,13,.76) 0%,rgba(10,19,13,.36) 45%,rgba(10,19,13,.12) 72%),linear-gradient(0deg,rgba(10,18,13,.62),transparent 46%)}
.public-site .home-hero:after{content:"";position:absolute;left:clamp(22px,6vw,104px);right:clamp(22px,6vw,104px);bottom:68px;height:1px;background:rgba(255,255,255,.24);z-index:2}
.public-site .hero-index{bottom:34px;right:clamp(22px,6vw,104px);letter-spacing:.18em}
.public-site .hero-actions{margin-top:38px}
.public-site .home-opening-statement{max-width:1540px;margin:auto;padding:clamp(90px,11vw,170px) clamp(22px,6vw,104px);display:grid;grid-template-columns:minmax(0,1.08fr) minmax(280px,.62fr);gap:clamp(40px,9vw,145px);align-items:end}
.public-site .home-opening-statement h2{font-size:clamp(3rem,5.8vw,6.7rem);line-height:.94;letter-spacing:-.05em;max-width:900px}
.public-site .home-opening-statement>p{font-size:clamp(1rem,1.4vw,1.18rem);line-height:1.82;color:var(--v1-muted);margin:0 0 .4em}

/* Hébergements accueil : rythme moins répétitif */
.public-site .accommodation-showcase{max-width:1460px}
.public-site .stay-grid{gap:clamp(32px,5vw,76px) clamp(22px,3.2vw,48px)}
.public-site .stay-card:nth-child(even){margin-top:clamp(45px,6vw,90px)}
.public-site .stay-media{aspect-ratio:5/4}
.public-site .stay-card:nth-child(3n) .stay-media{aspect-ratio:4/5}
.public-site .stay-media:after,.public-site .stay-row-media:after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 0 1px rgba(255,255,255,.12);pointer-events:none}
.public-site .stay-number,.public-site .stay-row-index{border-radius:0;background:rgba(246,242,232,.94);color:var(--v1-ink);font-size:.62rem;letter-spacing:.08em}
.public-site .stay-copy{padding-top:24px}
.public-site .stay-copy h3{font-size:clamp(2.05rem,3.25vw,3.2rem);letter-spacing:-.035em}
.public-site .home-stay-facts{display:flex;flex-wrap:wrap;gap:5px 17px;margin-top:15px;color:var(--v1-muted);font-size:.68rem;text-transform:uppercase;letter-spacing:.1em}
.public-site .home-stay-facts span+span:before{content:"·";margin-right:17px}

/* Histoire du domaine : panneau photographique plus premium */
.public-site .home-estate-story{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);min-height:760px;background:var(--v1-forest);color:#fff}
.public-site .home-estate-story figure{margin:0;min-height:760px;overflow:hidden}
.public-site .home-estate-story figure img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.2s cubic-bezier(.2,.65,.2,1)}
.public-site .home-estate-story:hover figure img{transform:scale(1.018)}
.public-site .home-estate-story>div{padding:clamp(64px,8vw,125px);display:flex;flex-direction:column;justify-content:center}
.public-site .home-estate-story h2{font-size:clamp(3rem,5.5vw,6.2rem);line-height:.93;letter-spacing:-.05em;max-width:760px}
.public-site .home-estate-story>div>p:not(.eyebrow){max-width:620px;line-height:1.8;color:rgba(255,255,255,.72);margin:25px 0 38px}
.public-site .home-estate-details{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid rgba(255,255,255,.19);border-bottom:1px solid rgba(255,255,255,.19);margin:0 0 36px}
.public-site .home-estate-details span{padding:22px 12px 22px 0;display:flex;flex-direction:column;font-size:.62rem;text-transform:uppercase;letter-spacing:.12em;color:rgba(255,255,255,.62)}
.public-site .home-estate-details b{font-family:var(--v1-display);font-size:2rem;font-weight:500;color:#fff;text-transform:none;letter-spacing:-.02em}

/* Expériences */
.public-site .home-experience-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:16px}
.public-site .home-experience-card{position:relative;min-height:570px;overflow:hidden;color:#fff}
.public-site .home-experience-card.is-large{min-height:690px}
.public-site .home-experience-card>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.2,.65,.2,1)}
.public-site .home-experience-card:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(10,18,13,.79),rgba(10,18,13,.06) 65%)}
.public-site .home-experience-card>div{position:absolute;z-index:2;left:clamp(24px,4vw,54px);right:clamp(24px,4vw,54px);bottom:clamp(28px,4vw,54px)}
.public-site .home-experience-card span{font-size:.65rem;text-transform:uppercase;letter-spacing:.17em}
.public-site .home-experience-card h3{font-size:clamp(2.15rem,3.6vw,4.25rem);line-height:.98;letter-spacing:-.045em;margin:9px 0 0;max-width:690px}
.public-site .home-experience-card:hover>img{transform:scale(1.025)}

/* Page liste hébergements */
.public-site .accommodations-index-hero{min-height:72vh;padding-top:0}
.public-site .accommodations-index-hero .editorial-hero-inner{padding-top:190px;padding-bottom:85px}
.public-site .accommodations-index-intro{max-width:1380px;margin:auto;padding:clamp(78px,9vw,135px) clamp(20px,4vw,54px) clamp(40px,5vw,72px);display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.55fr);gap:clamp(42px,8vw,120px);align-items:end}
.public-site .accommodations-index-intro h2{font-size:clamp(3rem,5.4vw,6rem);line-height:.95;letter-spacing:-.05em}
.public-site .accommodations-index-intro>p{color:var(--v1-muted);line-height:1.8;margin:0}
.public-site .stay-listing-editorial{max-width:1380px;padding-top:30px}
.public-site .stay-listing-editorial .stay-row{grid-template-columns:minmax(0,1.15fr) minmax(340px,.65fr);gap:clamp(45px,8vw,120px);padding:clamp(58px,7vw,100px) 0}
.public-site .stay-listing-editorial .stay-row.is-reverse .stay-row-media{order:2}
.public-site .stay-listing-editorial .stay-row-media{aspect-ratio:4/3;position:relative;min-height:0}
.public-site .stay-listing-editorial .stay-row-copy{max-width:500px}
.public-site .stay-listing-editorial .stay-row h2{font-size:clamp(3rem,5vw,5.7rem);line-height:.92}
.public-site .stay-row-lead{font-size:1.03rem;line-height:1.75}
.public-site .stay-comparison-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--v1-line);margin:28px 0 34px}
.public-site .stay-comparison-facts>div{padding:16px 16px 16px 0;border-bottom:1px solid var(--v1-line);display:flex;flex-direction:column}
.public-site .stay-comparison-facts strong{font-family:var(--v1-display);font-size:2rem;font-weight:500;line-height:1}
.public-site .stay-comparison-facts strong small{font-family:var(--sans);font-size:.68rem}
.public-site .stay-comparison-facts span{font-size:.62rem;text-transform:uppercase;letter-spacing:.1em;color:var(--v1-muted);margin-top:5px}
.public-site .accommodations-choice-band{background:var(--v1-forest-soft);color:#fff;padding:clamp(70px,9vw,125px) max(clamp(22px,5vw,78px),calc((100vw - 1380px)/2 + 54px));display:flex;justify-content:space-between;align-items:flex-end;gap:60px}
.public-site .accommodations-choice-band h2{font-size:clamp(2.8rem,5vw,5.5rem);line-height:.96;letter-spacing:-.045em;max-width:900px}
.public-site .accommodations-choice-band p:not(.eyebrow){max-width:700px;color:rgba(255,255,255,.72);line-height:1.7}
.public-site .accommodations-choice-band .actions{display:flex;flex-direction:column;align-items:flex-start;gap:18px;min-width:210px}

/* Fiches gîte */
.public-site .accommodation-hero{min-height:88vh}
.public-site .accommodation-hero-copy{max-width:1440px;padding-left:clamp(22px,5.3vw,82px);padding-right:clamp(22px,5.3vw,82px);padding-bottom:clamp(70px,9vw,125px)}
.public-site .accommodation-hero-copy h1{font-size:clamp(4.2rem,9.5vw,10rem);line-height:.86;max-width:1150px}
.public-site .accommodation-hero-copy>p:not(.eyebrow){max-width:690px;line-height:1.7}
.public-site .accommodation-overview-band{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));background:#f0ebe1;border-bottom:1px solid var(--v1-line)}
.public-site .accommodation-overview-band>div{padding:clamp(25px,3vw,43px);border-right:1px solid var(--v1-line);display:flex;flex-direction:column}
.public-site .accommodation-overview-band>div:last-child{border-right:0}
.public-site .accommodation-overview-band strong{font-family:var(--v1-display);font-size:clamp(2rem,3.3vw,3.7rem);font-weight:500;line-height:1}
.public-site .accommodation-overview-band strong small{font-family:var(--sans);font-size:.66rem}
.public-site .accommodation-overview-band span{margin-top:6px;font-size:.62rem;text-transform:uppercase;letter-spacing:.12em;color:var(--v1-muted)}
.public-site .accommodation-detail{max-width:1380px}
.public-site .accommodation-main{grid-template-columns:minmax(0,1.2fr) minmax(290px,.48fr);gap:clamp(55px,8vw,130px)}
.public-site .stay-facts-editorial{position:sticky;top:125px;padding:26px 0;border-top:1px solid var(--v1-ink);border-bottom:1px solid var(--v1-line)}
.public-site .stay-facts-editorial>p:not(.eyebrow){color:var(--v1-muted);line-height:1.7}
.public-site .accommodation-photo-story{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:14px;margin:clamp(85px,10vw,145px) 0 0}
.public-site .accommodation-photo-story figure{grid-column:span 5;margin:0;min-height:440px;overflow:hidden;background:var(--stone)}
.public-site .accommodation-photo-story figure.is-large{grid-column:span 7;min-height:650px}
.public-site .accommodation-photo-story figure:nth-child(3){grid-column:3/span 5}
.public-site .accommodation-photo-story figure:nth-child(4){grid-column:8/span 5}
.public-site .accommodation-photo-story img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s ease}
.public-site .accommodation-photo-story figure:hover img{transform:scale(1.02)}
.public-site .accommodation-subsection{margin-top:clamp(90px,11vw,155px)}
.public-site .amenity-groups{display:grid;gap:42px}
.public-site .amenity-group{display:grid;grid-template-columns:minmax(150px,.25fr) minmax(0,1fr);gap:clamp(28px,5vw,75px);padding-top:24px;border-top:1px solid var(--v1-ink)}
.public-site .amenity-group>h3{font-family:var(--sans);font-size:.68rem;text-transform:uppercase;letter-spacing:.15em;color:var(--v1-muted);padding-top:7px}
.public-site .amenity-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--v1-line)}
.public-site .amenity-grid article{border:0;background:var(--v1-paper);min-height:122px;padding:24px 26px;position:relative}
.public-site .amenity-grid strong{font-size:1.35rem}
.public-site .amenity-badge{position:absolute;right:14px;top:14px;font-size:.55rem!important;text-transform:uppercase;letter-spacing:.12em;padding:5px 7px;border:1px solid var(--v1-line);color:var(--v1-ink)!important}
.public-site .bed-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--v1-line);border:1px solid var(--v1-line)}
.public-site .bed-grid article{background:var(--v1-paper);border:0;padding:24px 26px;min-height:100px;align-items:center}
.public-site .bed-grid strong{font-family:var(--v1-display);font-size:1.45rem;font-weight:500}
.public-site .bed-grid small{display:block;color:var(--v1-muted);margin-top:4px}
.public-site .bed-grid>article>span{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;text-align:right}
.public-site .accommodation-good-to-know{margin-top:55px;padding:30px 0;border-top:1px solid var(--v1-line);border-bottom:1px solid var(--v1-line);display:grid;grid-template-columns:180px 1fr;gap:30px}
.public-site .accommodation-good-to-know strong{font-size:.67rem;text-transform:uppercase;letter-spacing:.15em}
.public-site .accommodation-good-to-know p{margin:0;color:var(--v1-muted);line-height:1.75}
.public-site .editorial-gallery{gap:12px}
.public-site .gallery-item{min-height:430px}
.public-site .gallery-item.wide{min-height:650px}
.public-site .gallery-item figcaption{border-radius:0;background:rgba(15,25,18,.68)}

/* CMS éditorial : éviter l'effet succession de cartes */
.public-site .cms-section{position:relative}
.public-site .cms-section-grid{max-width:1280px;margin:auto}
.public-site .cms-section.section-offset{background:#eee8dd}
.public-site .cms-section.highlight{background:#dfe5da}
.public-site .cms-copy h2{font-size:clamp(2.7rem,5vw,5.5rem);line-height:.96;letter-spacing:-.045em}
.public-site .rich-copy p{font-size:1.06rem;line-height:1.82;color:#484d46}
.public-site .cms-media img{aspect-ratio:5/4}
.public-site .editorial-feature-list li{padding:20px 0;font-size:1rem}
.public-site .editorial-faq summary{font-size:clamp(1.25rem,2vw,1.65rem)}
.public-site .cms-gallery figure{border-radius:0}

/* Domaine / Services */
.public-site .page-domain .editorial-hero-inner,.public-site .page-services .editorial-hero-inner{padding-bottom:clamp(75px,9vw,125px)}
.public-site .editorial-fact-strip{display:grid;grid-template-columns:repeat(4,1fr);background:var(--v1-forest);color:#fff}
.public-site .editorial-fact-strip>div{padding:clamp(28px,4vw,56px);border-right:1px solid rgba(255,255,255,.16);display:flex;flex-direction:column}
.public-site .editorial-fact-strip strong{font-family:var(--v1-display);font-size:clamp(2rem,4vw,4.5rem);font-weight:500;line-height:1}
.public-site .editorial-fact-strip span{margin-top:8px;font-size:.62rem;text-transform:uppercase;letter-spacing:.12em;color:rgba(255,255,255,.62)}
.public-site .content-visual-ribbon{display:grid;grid-template-columns:repeat(3,1fr);gap:0;background:var(--v1-forest)}
.public-site .content-visual-ribbon figure{margin:0;min-height:440px;position:relative;overflow:hidden}
.public-site .content-visual-ribbon figure.is-wide{grid-column:span 2;min-height:600px}
.public-site[class*="public-route-event-"] .content-visual-ribbon figure:nth-child(3):last-child{grid-column:1/-1;min-height:520px}
.public-site .content-visual-ribbon img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s ease}
.public-site .content-visual-ribbon figure:hover img{transform:scale(1.02)}
.public-site .public-bookable-services{max-width:1380px;margin:auto;padding:clamp(85px,10vw,150px) clamp(20px,4vw,54px)}
.public-site .public-bookable-services-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.58fr);gap:clamp(40px,8vw,120px);align-items:end;margin-bottom:55px}
.public-site .public-bookable-services-head h2{font-size:clamp(3rem,5.3vw,5.9rem);line-height:.95;letter-spacing:-.05em}
.public-site .public-bookable-services-head>p{color:var(--v1-muted);line-height:1.8;margin:0}
.public-site .public-bookable-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.public-site .public-bookable-grid article{display:grid;grid-template-columns:minmax(180px,.85fr) minmax(0,1.15fr);background:var(--v1-paper);border:1px solid var(--v1-line)}
.public-site .public-bookable-grid figure{margin:0;min-height:290px;overflow:hidden}
.public-site .public-bookable-grid img{width:100%;height:100%;object-fit:cover;display:block}
.public-site .public-bookable-grid article>div{padding:28px;display:flex;flex-direction:column}
.public-site .public-bookable-grid article>div>span{font-size:.62rem;text-transform:uppercase;letter-spacing:.13em;color:var(--v1-muted)}
.public-site .public-bookable-grid h3{font-size:2rem;margin:8px 0 12px}
.public-site .public-bookable-grid p{color:var(--v1-muted)}
.public-site .public-service-price{margin-top:auto;padding-top:18px;display:flex;align-items:flex-end;justify-content:space-between;gap:20px;border-top:1px solid var(--v1-line)}
.public-site .public-service-price strong{font-family:var(--v1-display);font-size:1.7rem;font-weight:500}
.public-site .public-service-showcase{display:grid;grid-template-columns:repeat(3,1fr);background:#e8e1d4;border-top:1px solid var(--v1-line);border-bottom:1px solid var(--v1-line)}
.public-site .public-service-showcase article{padding:clamp(45px,6vw,90px);border-right:1px solid var(--v1-line)}
.public-site .public-service-showcase article:last-child{border-right:0}
.public-site .public-service-showcase>article>span{font-size:.62rem;letter-spacing:.14em;color:var(--v1-muted)}
.public-site .public-service-showcase h2{font-size:clamp(2.1rem,3.7vw,4rem);line-height:.98;margin:22px 0}
.public-site .public-service-showcase p{color:var(--v1-muted);line-height:1.75}

/* Destination / guide local : ton plus magazine */
.public-site .page-discover .editorial-hero-inner,.public-site[class*="public-route-discover-"] .editorial-hero-inner{padding-bottom:clamp(75px,9vw,125px)}
.public-site .discover-distance-strip{display:grid;grid-template-columns:repeat(4,1fr);background:#eee8dd;border-bottom:1px solid var(--v1-line)}
.public-site .discover-distance-strip>div{padding:clamp(28px,4vw,48px);border-right:1px solid var(--v1-line);display:flex;flex-direction:column}
.public-site .discover-distance-strip strong{font-family:var(--v1-display);font-size:clamp(2rem,3.5vw,3.8rem);font-weight:500}
.public-site .discover-distance-strip span{font-size:.65rem;text-transform:uppercase;letter-spacing:.11em;color:var(--v1-muted)}
.public-site[class*="public-route-discover-"] .content-visual-ribbon{grid-template-columns:1.25fr .75fr}

/* Événementiel : plus cinématographique et distinct */
.public-site .events-hero{min-height:94vh}
.public-site .events-hero-copy{max-width:1380px;width:min(1380px,calc(100% - 48px));padding-bottom:clamp(72px,9vw,120px)}
.public-site .events-hero-copy h1{font-size:clamp(4.2rem,9vw,9.5rem);max-width:1150px}
.public-site .event-card-grid{gap:12px}
.public-site .event-card{min-height:620px}
.public-site .event-card>div{left:clamp(24px,4vw,55px);right:clamp(24px,4vw,55px);bottom:clamp(27px,4vw,55px)}
.public-site .event-card h3{font-size:clamp(2.6rem,4.5vw,5rem)}
.public-site .event-proof-band{padding-left:max(clamp(24px,8vw,110px),calc((100vw - 1380px)/2 + 54px));padding-right:max(clamp(24px,8vw,110px),calc((100vw - 1380px)/2 + 54px))}
.public-site[class*="public-route-event-"]{--event-accent:#b49b78}
.public-site[class*="public-route-event-"] .editorial-hero{min-height:88vh}
.public-site[class*="public-route-event-"] .editorial-hero h1{font-size:clamp(4rem,8.4vw,8.8rem);line-height:.88}
.public-site[class*="public-route-event-"] .section-kicker,.public-site[class*="public-route-event-"] .eyebrow{color:var(--event-accent)}
.public-site[class*="public-route-event-"] .cms-section.section-offset{background:#eee6dc}
.public-site .event-subpage-signature{display:grid;grid-template-columns:minmax(0,1fr) repeat(3,minmax(160px,.38fr));background:var(--v1-forest);color:#fff;border-top:1px solid rgba(255,255,255,.12)}
.public-site .event-subpage-signature>div{padding:clamp(32px,5vw,70px);border-right:1px solid rgba(255,255,255,.15)}
.public-site .event-subpage-signature>div:first-child{padding-left:max(clamp(24px,6vw,90px),calc((100vw - 1380px)/2 + 54px))}
.public-site .event-subpage-signature strong{font-family:var(--v1-display);font-size:clamp(2rem,4vw,4.5rem);font-weight:500;display:block;line-height:1}
.public-site .event-subpage-signature span{display:block;margin-top:9px;font-size:.62rem;text-transform:uppercase;letter-spacing:.12em;color:rgba(255,255,255,.62)}
.public-site .event-subpage-signature .event-signature-intro strong{font-size:clamp(2.2rem,4.2vw,4.7rem);line-height:.98;max-width:620px}

/* Contact / réservation */
.public-site .contact-form-editorial{background:#eee8dd}
.public-site .contact-form-editorial input,.public-site .contact-form-editorial select,.public-site .contact-form-editorial textarea{border-width:0 0 1px;background:transparent;padding-left:0;padding-right:0}
.public-site .contact-direct-grid>a{transition:padding-left .2s ease}
.public-site .contact-direct-grid>a:hover{padding-left:10px}
.public-site .booking-box-refined{box-shadow:0 30px 80px rgba(23,34,27,.08)}
.public-site .booking-confidence>div{min-height:145px;justify-content:flex-end}

/* Footer */
.public-site .site-footer{background:#101a14;padding-top:clamp(80px,9vw,125px)}
.public-site .footer-main{max-width:1440px}
.public-site .footer-monogram{width:54px;height:54px;border-radius:50%;font-family:var(--v1-display);position:relative}
.public-site .footer-monogram:after{content:"";position:absolute;inset:6px;border:1px solid currentColor;border-radius:50%;opacity:.25}
.public-site .footer-brand h2{font-size:clamp(2.5rem,4vw,4.4rem);line-height:.98}
.public-site .footer-bottom>div{flex-wrap:wrap}

/* Responsive */
@media(max-width:1100px){
  .public-site .home-estate-story{grid-template-columns:1fr 1fr}
  .public-site .public-bookable-grid article{grid-template-columns:1fr}
  .public-site .public-bookable-grid figure{min-height:250px}
  .public-site .event-subpage-signature{grid-template-columns:1fr 1fr}
  .public-site .event-subpage-signature>div:first-child{grid-column:1/-1}
}

@media(max-width:900px){
  .public-site .home-opening-statement,.public-site .accommodations-index-intro,.public-site .public-bookable-services-head{grid-template-columns:1fr}
  .public-site .home-estate-story{grid-template-columns:1fr}
  .public-site .home-estate-story figure{min-height:500px}
  .public-site .home-estate-story>div{padding:65px 28px}
  .public-site .home-experience-grid{grid-template-columns:1fr}
  .public-site .home-experience-card,.public-site .home-experience-card.is-large{min-height:510px}
  .public-site .stay-listing-editorial .stay-row{grid-template-columns:1fr;gap:32px}
  .public-site .stay-listing-editorial .stay-row.is-reverse .stay-row-media{order:0}
  .public-site .stay-listing-editorial .stay-row-copy{max-width:none}
  .public-site .accommodations-choice-band{align-items:flex-start;flex-direction:column}
  .public-site .accommodation-main{grid-template-columns:1fr}
  .public-site .stay-facts-editorial{position:static}
  .public-site .amenity-group{grid-template-columns:1fr;gap:16px}
  .public-site .amenity-group>h3{padding:0}
  .public-site .content-visual-ribbon{grid-template-columns:1fr 1fr}
  .public-site .content-visual-ribbon figure.is-wide{grid-column:1/-1}
  .public-site .public-service-showcase{grid-template-columns:1fr}
  .public-site .public-service-showcase article{border-right:0;border-bottom:1px solid var(--v1-line)}
  .public-site .public-service-showcase article:last-child{border-bottom:0}
  .public-site .editorial-fact-strip,.public-site .discover-distance-strip{grid-template-columns:1fr 1fr}
  .public-site .event-card{min-height:510px}
}

@media(max-width:680px){
  .public-site .header-inner{height:76px;padding-inline:16px}
  .public-site .brand-mark{width:40px;height:40px}
  .public-site .brand-copy strong{font-size:1rem}
  .public-site .home-hero-content{padding-left:20px;padding-right:20px;padding-bottom:104px;padding-top:122px}
  .public-site .home-hero h1{font-size:clamp(3.35rem,15.8vw,5.25rem);line-height:.91;letter-spacing:-.045em}
  .public-site .home-hero:after{left:20px;right:20px;bottom:58px}
  .public-site .hero-index{left:20px;right:auto;bottom:27px;max-width:calc(100% - 40px);overflow:hidden;white-space:nowrap;font-size:.6rem}
  .public-site .hero-index i:last-of-type,.public-site .hero-index span:last-child{display:none}
  .public-site .home-opening-statement{padding-left:20px;padding-right:20px;gap:30px}
  .public-site .stay-grid{grid-template-columns:1fr}
  .public-site .home-stay-facts{font-size:.72rem;letter-spacing:.075em;line-height:1.55}
  .public-site .stay-card:nth-child(even){margin-top:0}
  .public-site .stay-card:nth-child(3n) .stay-media,.public-site .stay-media{aspect-ratio:4/3}
  .public-site .home-estate-details{grid-template-columns:1fr}
  .public-site .home-estate-details span{border-bottom:1px solid rgba(255,255,255,.13)}
  .public-site .home-estate-details span:last-child{border-bottom:0}
  .public-site .home-experience-card,.public-site .home-experience-card.is-large{min-height:420px}
  .public-site .accommodations-index-hero{min-height:65vh}
  .public-site .stay-comparison-facts{grid-template-columns:1fr 1fr}
  .public-site .accommodation-hero{min-height:78vh}
  .public-site .accommodation-hero-copy h1{font-size:clamp(3.8rem,17vw,6.5rem)}
  .public-site .accommodation-overview-band{grid-template-columns:repeat(2,1fr)}
  .public-site .accommodation-overview-band>div:nth-child(2n){border-right:0}
  .public-site .accommodation-overview-band>div{border-bottom:1px solid var(--v1-line)}
  .public-site .accommodation-photo-story{grid-template-columns:1fr;margin-top:75px}
  .public-site .accommodation-photo-story figure,.public-site .accommodation-photo-story figure.is-large,.public-site .accommodation-photo-story figure:nth-child(3),.public-site .accommodation-photo-story figure:nth-child(4){grid-column:1;min-height:320px}
  .public-site .amenity-grid,.public-site .bed-grid{grid-template-columns:1fr}
  .public-site .accommodation-good-to-know{grid-template-columns:1fr;gap:12px}
  .public-site .content-visual-ribbon,.public-site[class*="public-route-discover-"] .content-visual-ribbon{grid-template-columns:1fr}
  .public-site .content-visual-ribbon figure,.public-site .content-visual-ribbon figure.is-wide{grid-column:1;min-height:340px}
  .public-site .editorial-fact-strip,.public-site .discover-distance-strip{grid-template-columns:1fr 1fr}
  .public-site .public-bookable-grid{grid-template-columns:1fr}
  .public-site .event-subpage-signature{grid-template-columns:1fr 1fr}
  .public-site .event-subpage-signature>div:first-child{grid-column:1/-1}
  .public-site .events-hero-copy{width:calc(100% - 40px)}
  .public-site .event-card{min-height:440px}
  .public-site .event-card h3{font-size:clamp(2.5rem,11vw,4rem)}
}

@media(max-width:420px){
  .public-site .editorial-fact-strip,.public-site .discover-distance-strip{grid-template-columns:1fr 1fr}
  .public-site .event-subpage-signature{grid-template-columns:1fr}
  .public-site .event-subpage-signature>div:first-child{grid-column:1}
}

@media(prefers-reduced-motion:reduce){
  .public-site .home-estate-story:hover figure img,.public-site .home-experience-card:hover>img,.public-site .content-visual-ribbon figure:hover img,.public-site .accommodation-photo-story figure:hover img{transform:none!important}
}

/* Navigation mobile V1 */
@media(max-width:900px){
  .public-site .site-navigation{background:var(--v1-forest);padding:105px 24px 34px;transform:none;clip-path:inset(0 0 0 100%);visibility:hidden;pointer-events:none;transition:clip-path .35s cubic-bezier(.25,.7,.25,1),visibility .35s}
  .public-site.menu-open .site-navigation{transform:none;clip-path:inset(0);visibility:visible;pointer-events:auto}
  .public-site .nav-links{gap:4px}
  .public-site .nav-links a{font-family:var(--v1-display);font-size:clamp(2.35rem,9vw,4.4rem);line-height:1.05;letter-spacing:-.045em;padding:3px 0}
  .public-site .nav-links a:after{bottom:1px}
  .public-site .nav-actions{border-top:1px solid rgba(255,255,255,.18);padding-top:25px;margin-top:27px}
  .public-site .nav-actions .button-book{background:#fff;border-color:#fff;color:var(--v1-forest)}
  .public-site .menu-toggle{align-items:center}
}

/* Amenitiz booking bridge: the remote page opens the native Amenitiz side panel.
   We own the outer drawer and deliberately mask the native close control so closing
   can never expose the Amenitiz website sitting behind its booking panel. */
.public-site.booking-open{overflow:hidden}
.public-site .booking-drawer{position:fixed;inset:0;z-index:1800;visibility:hidden;pointer-events:none}
.public-site .booking-drawer.is-open{visibility:visible;pointer-events:auto}
.public-site .booking-drawer-backdrop{position:absolute;inset:0;border:0;margin:0;padding:0;background:rgba(9,18,13,.56);opacity:0;transition:opacity .32s ease;cursor:pointer}
.public-site .booking-drawer.is-open .booking-drawer-backdrop{opacity:1}
.public-site .booking-drawer-panel{position:absolute;top:0;right:0;width:min(540px,100vw);height:100dvh;min-height:100%;background:#fff;box-shadow:-28px 0 70px rgba(9,18,13,.24);transform:translateX(102%);transition:transform .34s cubic-bezier(.22,.75,.28,1);outline:0;overflow:hidden}
.public-site .booking-drawer.is-open .booking-drawer-panel{transform:translateX(0)}
.public-site .booking-drawer-frame-host{position:absolute;inset:0;background:#fff;overflow:hidden}
.public-site .booking-drawer-frame{position:absolute;inset:0;width:100%;height:100%;border:0;background:#fff;display:block;opacity:0;transition:opacity .2s ease}
.public-site .booking-drawer-frame-host.is-ready .booking-drawer-frame{opacity:1}
.public-site .booking-drawer-loading{position:absolute;inset:0;z-index:4;display:grid;place-content:center;justify-items:center;gap:14px;background:#f7f4ed;color:var(--v1-forest);transition:opacity .2s ease,visibility .2s ease}
.public-site .booking-drawer-frame-host.is-ready~.booking-drawer-loading{opacity:0;visibility:hidden}
.public-site .booking-drawer-loading span{width:34px;height:34px;border-radius:50%;border:1px solid rgba(23,34,27,.22);border-top-color:var(--v1-forest);animation:ty-booking-spin .8s linear infinite}
.public-site .booking-drawer-loading p{margin:0;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}
@keyframes ty-booking-spin{to{transform:rotate(360deg)}}
.public-site .booking-drawer-topmask{position:absolute;z-index:8;top:0;right:0;width:76px;height:70px;background:#fff;pointer-events:auto}
.public-site .booking-drawer-close{position:absolute;z-index:10;top:max(12px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right));width:44px;height:44px;border:1px solid rgba(24,36,29,.2);border-radius:50%;background:#fff;box-shadow:0 5px 18px rgba(24,36,29,.08);cursor:pointer;display:grid;place-items:center}
.public-site .booking-drawer-close span{position:absolute;width:17px;height:1px;background:var(--v1-forest)}
.public-site .booking-drawer-close span:first-child{transform:rotate(45deg)}
.public-site .booking-drawer-close span:last-child{transform:rotate(-45deg)}
.public-site .booking-drawer-close:hover{transform:rotate(4deg);border-color:rgba(24,36,29,.45)}
.public-site .booking-drawer-brand{position:absolute;z-index:7;top:0;left:0;max-width:calc(100% - 92px);padding:14px 14px 8px 18px;pointer-events:none;opacity:0}
.public-site .booking-drawer-brand span,.public-site .booking-drawer-brand strong{display:block}
.public-site .booking-drawer-noscript{position:absolute;z-index:12;left:50%;top:50%;transform:translate(-50%,-50%)}
.public-site .booking-launch-panel{display:flex;flex-direction:column;align-items:center;gap:18px}
.public-site .booking-launch-panel .text-link{margin-top:2px}
@media(max-width:620px){
  .public-site .booking-drawer-panel{width:100vw;max-width:none}
  .public-site .booking-drawer-topmask{width:72px;height:66px}
  .public-site .booking-drawer-close{width:42px;height:42px;top:max(10px,env(safe-area-inset-top));right:max(10px,env(safe-area-inset-right))}
}
@media(prefers-reduced-motion:reduce){
  .public-site .booking-drawer-backdrop,.public-site .booking-drawer-panel,.public-site .booking-drawer-frame,.public-site .booking-drawer-loading{transition:none!important}
  .public-site .booking-drawer-loading span{animation:none}
}

/* =========================================================
   Lot 1 — recadrage HOME / identité / navigation mobile
   ========================================================= */

/* Logo TY officiel fourni par le Domaine */
.public-site .brand-mark,
.public-site .footer-monogram{
  overflow:hidden;
  background:#fff;
  border:1px solid rgba(24,36,29,.18);
  padding:5px;
  color:var(--v1-forest);
}
.public-site .brand-mark img,
.public-site .footer-monogram img{
  width:100%;
  height:100%;
  display:block;
  object-fit:contain;
  border-radius:50%;
}
.public-site .footer-monogram{border-color:rgba(255,255,255,.34)}

/* CTA hero : plus affirmé, angles à peine arrondis */
.public-site .home-direct-button{
  border-radius:4px;
  border-width:1.5px;
  font-weight:850;
  letter-spacing:.11em;
}

/* Cartes gîtes : photo en premier, sans numérotation décorative */
.public-site .stay-copy-main{min-width:0;flex:1}
.public-site .stay-copy-panel{
  background:#eee8dd;
  padding:22px 24px 20px;
  border:1px solid rgba(31,36,31,.06);
}
.public-site .stay-copy-panel h3{margin:0}
.public-site .stay-copy-panel p{margin:9px 0 0;color:#62675f}
.public-site .home-stay-facts{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:0;
  margin-top:12px;
  color:var(--v1-ink);
  font-size:clamp(.62rem,.72vw,.72rem);
  font-weight:800;
  text-transform:none;
  letter-spacing:.025em;
  border-top:1px solid var(--v1-line);
  border-bottom:1px solid var(--v1-line);
}
.public-site .home-stay-facts span{
  position:relative;
  padding:11px 12px;
  text-align:center;
  white-space:nowrap;
}
.public-site .home-stay-facts span+span:before{
  content:"·";
  position:absolute;
  left:-2px;
  top:50%;
  transform:translateY(-50%);
  margin:0;
  color:var(--v1-muted);
}

/* Domaine : image moins serrée + chronologie plus dense */
.public-site .home-estate-story figure{
  padding:clamp(12px,1.35vw,22px);
  background:#d7cfbf;
}
.public-site .home-estate-story figure img{
  transform:none;
  object-position:center;
}
.public-site .home-estate-story:hover figure img{transform:none}
.public-site .home-estate-details{margin-bottom:30px}
.public-site .home-estate-details span{padding:18px 16px 18px 0;gap:4px}
.public-site .home-estate-details strong{
  font-size:.72rem;
  color:#fff;
  letter-spacing:.07em;
}
.public-site .home-estate-details small{
  display:block;
  max-width:190px;
  font-size:.7rem;
  line-height:1.45;
  letter-spacing:0;
  text-transform:none;
  color:rgba(255,255,255,.57);
}

.public-site .home-experience-note{
  max-width:480px;
  margin:14px 0 0;
  color:rgba(255,255,255,.72);
  line-height:1.55;
  font-size:.86rem;
}

/* Repères : conserver les chiffres mais leur donner du sens */
.public-site .home-proof-strip span{
  max-width:270px;
  line-height:1.55;
  letter-spacing:.07em;
  text-transform:none;
}

/* Services : présentés au public sans accès au portail client */
.public-site .home-service-contact .home-info-card:not(a){cursor:default}
.public-site .home-service-contact .home-info-card h2{font-family:var(--v1-display)}
.public-site .home-private-service-note,
.public-site .public-service-guest-note{
  display:inline-flex;
  align-self:flex-start;
  margin-top:12px;
  padding:7px 10px;
  border:1px solid currentColor;
  font-size:.62rem;
  font-weight:800;
  letter-spacing:.1em;
  text-transform:uppercase;
  opacity:.62;
}

/* Bouton flottant : contraste garanti sur fonds clairs comme foncés */
.public-site .floating-book{
  border:1.5px solid #fff;
  border-radius:47% 53% 49% 51% / 52% 46% 54% 48%;
  box-shadow:0 0 0 2px rgba(24,36,29,.22),0 15px 34px rgba(12,22,16,.28);
  background:rgba(21,33,25,.96);
  backdrop-filter:blur(5px);
}
.public-site .floating-book:before{
  content:"";
  position:absolute;
  inset:5px;
  border:1px solid rgba(255,255,255,.28);
  border-radius:inherit;
  pointer-events:none;
}

/* Panneau réservation : masque explicite de la fermeture Amenitiz */
.public-site .booking-drawer-topmask{
  width:88px;
  height:78px;
  background:#fff;
  box-shadow:-10px 8px 20px rgba(255,255,255,.92);
}
.public-site .booking-drawer-close{
  width:46px;
  height:46px;
  border-color:rgba(24,36,29,.24);
  box-shadow:0 5px 18px rgba(24,36,29,.11);
}

/* Mobile : scroll verrouillé sans saut iOS/Android et menu sur le vrai viewport */
@media(max-width:900px){
  .public-site .site-navigation{
    width:100vw;
    height:100dvh;
    min-height:-webkit-fill-available;
    overflow-y:auto;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    justify-content:flex-start;
    padding-top:max(110px,calc(84px + env(safe-area-inset-top)));
    padding-bottom:max(38px,calc(24px + env(safe-area-inset-bottom)));
    padding-left:max(28px,env(safe-area-inset-left));
    padding-right:max(28px,env(safe-area-inset-right));
  }
  .public-site.menu-open .site-header,
  body.menu-open .site-header{background:var(--v1-forest);box-shadow:none;backdrop-filter:none}
  .public-site .home-estate-story figure{padding:10px;min-height:470px}
}

@media(max-width:680px){
  .public-site .stay-copy{gap:12px}
  .public-site .stay-copy-panel{padding:18px 18px 16px}
  .public-site .home-stay-facts span{padding:10px 4px;font-size:.61rem}
  .public-site .home-estate-details{grid-template-columns:1fr}
  .public-site .home-estate-details span{padding:14px 0}
  .public-site .home-estate-details small{max-width:none}
  .public-site .home-proof-strip span{font-size:.66rem}
  .public-site .booking-drawer-topmask{width:82px;height:74px}
}

/* Five-language public navigation */
.public-site .language-switcher{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap}
.public-site .language-link{opacity:.62;padding:.2rem .1rem}
.public-site .language-link.is-current{opacity:1;font-weight:800}
@media(max-width:900px){
  .public-site .language-switcher{gap:.7rem 1rem}
  .public-site .language-link{font-size:.72rem}
}

/* =========================================================
   V1.1.3 Home — corrections validées propriétaire
   ========================================================= */

/* Logo : conserver l'enveloppe ronde, supprimer le cercle intérieur qui rognait le monogramme. */
.public-site .brand-mark:after,
.public-site .footer-monogram:after{content:none!important;display:none!important}
.public-site .brand-mark img,
.public-site .footer-monogram img{border-radius:0}

/* Bouton flottant : cercle géométrique net, sans second cercle intérieur. */
.public-site .floating-book{border-radius:50%;aspect-ratio:1/1}
.public-site .floating-book:before{content:none!important;display:none!important}

/* Accueil : vue aérienne ajoutée au premier manifeste éditorial. */
.public-site .home-opening-media{
  grid-column:1/-1;
  margin:clamp(36px,5vw,72px) 0 0;
  overflow:hidden;
  background:#ddd6c8;
}
.public-site .home-opening-media img{
  display:block;
  width:100%;
  height:auto;
}

/* Accueil : vignettes destinations à la place de 01 / 02 / 03. */
.public-site .explore-card{
  grid-template-columns:clamp(76px,8vw,104px) 1fr 50px;
}
.public-site .explore-card>.explore-thumb{
  width:100%;
  aspect-ratio:4/3;
  overflow:hidden;
  display:block;
  background:#ddd6c8;
}
.public-site .explore-card>.explore-thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .5s ease;
}
.public-site .explore-card:hover>.explore-thumb img{transform:scale(1.035)}

/* Accueil : deux visuels discrets pour les p'tits plus, sans surcharger le texte. */
.public-site .home-extras-card{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(170px,.7fr);
  align-items:end;
  gap:clamp(24px,4vw,54px);
}
.public-site .home-extras-copy{
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  min-width:0;
}
.public-site .home-extras-copy>span{
  font-size:.68rem;
  letter-spacing:.15em;
  text-transform:uppercase;
  margin-bottom:15px;
}
.public-site .home-extras-media{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  align-items:end;
}
.public-site .home-extras-media figure{margin:0;overflow:hidden;background:#d8d0c1}
.public-site .home-extras-media figure:first-child{transform:translateY(-16px)}
.public-site .home-extras-media img{
  display:block;
  width:100%;
  aspect-ratio:3/4;
  object-fit:cover;
}

/* Footer desktop : réduire le grand vide supérieur sans toucher à sa structure. */
@media(min-width:901px){
  .public-site .footer-main{padding-top:clamp(34px,4vw,56px)}
}

@media(max-width:900px){
  .public-site .home-extras-card{grid-template-columns:1fr;align-items:start}
  .public-site .home-extras-media{width:min(100%,520px)}
}

@media(max-width:680px){
  .public-site .explore-card{grid-template-columns:72px 1fr 24px;gap:13px}
  .public-site .home-opening-media{margin-top:28px}
  .public-site .home-extras-card{gap:28px}
  .public-site .home-extras-media{gap:8px}
  .public-site .home-extras-media figure:first-child{transform:translateY(-10px)}
}

@media(prefers-reduced-motion:reduce){
  .public-site .explore-card:hover>.explore-thumb img{transform:none}
}
