/* =========================================================
   Holidays Ardenne — feuille de style
   Tokens repris de la maquette Webflow (Lora / Open Sans)
   ========================================================= */

:root{
  /* Couleurs */
  --ink:        #110E03;
  --ink-70:     rgba(17,14,3,.70);
  --ink-60:     rgba(17,14,3,.60);
  --ink-10:     rgba(17,14,3,.10);
  --dark:       #0F352C;   /* vert forêt du logo */
  --forest-deep:#0A2620;   /* variante profonde, sections CTA */
  --gold:       #ADA862;   /* or olive du logo, accent uniquement */
  --gold-soft:  rgba(173,168,98,.18);
  --black:      #000000;
  --white:      #FFFFFF;
  --white-70:   rgba(255,255,255,.70);
  --white-10:   rgba(255,255,255,.10);
  --off:        #F5F1E8;   /* creme chaud, remplace le gris neutre */
  --cream:      #F5F1E8;
  --sand:       #ECE3CF;
  --sage:       #E1E9D8;
  --sage-deep:  #C9D8BD;
  --moss:       #4C7155;
  --gray-text:  #939393;
  --red-color:  #B4442E;
  --vfy:        #3BC3AF;   /* turquoise Villa for You, reserve aux blocs partenaire */
  --vfy-ink:    #17806F;
  --vfy-soft:   rgba(59,195,175,.14);

  /* Formes */
  --radius:     16px;
  --radius-s:   10px;
  --shadow:     0 28px 60px -30px rgba(10,38,32,.45);

  /* Typographie */
  --serif: 'Lora', Georgia, 'Times New Roman', serif;
  --sans:  'Open Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

  --fs-5xl: 62px;  --lh-5xl: 113%;  --ls-5xl: -1.24px;
  --fs-4xl: 48px;  --lh-4xl: 116%;  --ls-4xl: -.96px;
  --fs-3xl: 36px;  --lh-3xl: 122%;  --ls-3xl: -.72px;
  --fs-2xl: 28px;  --lh-2xl: 128%;  --ls-2xl: -.56px;
  --fs-xl:  24px;  --lh-xl:  133%;  --ls-xl:  -.48px;
  --fs-l:   20px;  --lh-l:   140%;  --ls-l:   -.20px;
  --fs-m:   18px;  --lh-m:   143%;  --ls-m:   -.18px;
  --fs-s:   16px;  --lh-s:   150%;  --ls-s:   -.16px;
  --fs-xs:  14px;

  /* Espacements */
  --gutter: 10px;
  --container: 1250px;
  --sec-pad: 100px;
}

/* ---------- Reset ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--white);
  color:var(--ink-70);
  font-family:var(--sans);
  font-size:var(--fs-s);
  line-height:var(--lh-s);
  letter-spacing:var(--ls-s);
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
:focus-visible{ outline:2px solid var(--gold); outline-offset:3px; border-radius:2px; }
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; margin:0; padding:0; }
button{ font:inherit; color:inherit; background:none; border:0; cursor:pointer; }
h1,h2,h3,h4,h5,h6,p,figure,blockquote{ margin:0; }
address{ font-style:normal; }

/* ---------- Titres ---------- */
h1,h2,h3,h4,h5,h6,.serif{
  font-family:var(--serif);
  font-weight:500;
  color:var(--ink);
}
h1{ font-size:var(--fs-5xl); line-height:var(--lh-5xl); letter-spacing:var(--ls-5xl); }
h2{ font-size:var(--fs-4xl); line-height:var(--lh-4xl); letter-spacing:var(--ls-4xl); }
h3{ font-size:var(--fs-2xl); line-height:var(--lh-2xl); letter-spacing:var(--ls-2xl); }

/* ---------- Cadre (hairlines verticales) ---------- */
.frame{
  max-width:var(--container);
  margin-inline:auto;
  padding-inline:24px;
  border-inline:1px solid var(--ink-10);
}
.section--dark .frame,
.cta .frame,
.footer .frame{ border-color:var(--white-10); }

.sec-pad{ padding-block:var(--sec-pad); }
.sec-pad--tight{ padding-block:var(--sec-pad) 50px; }

.section--soft{ background:var(--off); }
.section--dark{ background:var(--dark); color:var(--white-70); }
.section--dark h1,.section--dark h2,.section--dark h3{ color:var(--white); }

/* ---------- Éléments récurrents ---------- */
.label{
  font-family:var(--sans);
  font-size:var(--fs-xs);
  font-weight:600;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--ink-60);
  display:flex; align-items:center; gap:10px;
  margin-bottom:24px;
}
.label::before{
  content:""; width:28px; height:1px; background:var(--gold); flex:none;
}
.label--light{ color:var(--white-70); }

.sec-title{ font-size:var(--fs-4xl); line-height:var(--lh-4xl); letter-spacing:var(--ls-4xl); }

.sec-head{ margin-bottom:60px; }
.sec-head--split{
  display:flex; align-items:flex-end; justify-content:space-between; gap:40px; flex-wrap:wrap;
}

/* ---------- Boutons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:12px;
  padding:8px 8px 8px 24px;
  border-radius:100px;
  border:1px solid transparent;
  font-family:var(--sans); font-weight:600; font-size:var(--fs-s);
  letter-spacing:var(--ls-s);
  white-space:nowrap;
  transition:background .25s ease, color .25s ease, border-color .25s ease;
}
.btn__ico{
  width:42px; height:42px; border-radius:50%;
  display:grid; place-items:center; flex:none;
  transition:transform .3s cubic-bezier(.2,.7,.3,1), background .25s ease, color .25s ease;
}
.btn__ico svg{ width:20px; height:20px; }
.btn:hover .btn__ico{ transform:rotate(45deg); }

.btn--dark{ background:var(--dark); color:var(--white); }
.btn--dark .btn__ico{ background:var(--gold); color:var(--dark); }
.btn--dark:hover{ background:var(--forest-deep); }

.btn--gold{ background:var(--gold); color:var(--forest-deep); }
.btn--gold .btn__ico{ background:var(--forest-deep); color:var(--gold); }
.btn--gold:hover{ background:#bcb570; }

.btn--ghost{ background:transparent; color:var(--white); border-color:var(--white-10); }
.btn--ghost .btn__ico{ background:var(--white-10); color:var(--white); }
.btn--ghost:hover{ background:var(--white-10); }

.btn--light{ background:var(--white); color:var(--ink); }
.btn--light .btn__ico{ background:var(--ink); color:var(--white); }

.link-btn{
  display:inline-flex; align-items:center; gap:8px;
  font-weight:600; font-size:var(--fs-s); color:inherit;
  padding-bottom:4px;
  border-bottom:1px solid currentColor;
  transition:gap .25s ease, opacity .25s ease;
}
.link-btn svg{ width:16px; height:16px; }
.link-btn:hover{ gap:14px; opacity:.7; }

.rbtn{
  width:52px; height:52px; border-radius:50%;
  border:1px solid var(--ink-10);
  display:grid; place-items:center; color:var(--ink);
  transition:background .25s ease, color .25s ease;
}
.rbtn svg{ width:20px; height:20px; }
.rbtn:hover{ background:var(--ink); color:var(--white); }
.rbtn:disabled{ opacity:.35; cursor:default; }
.rbtn:disabled:hover{ background:none; color:var(--ink); }

/* =========================================================
   NAV
   ========================================================= */
.nav{
  position:sticky; top:0; z-index:50;
  background:var(--white);
  border-bottom:1px solid var(--ink-10);
}
.nav__inner{
  display:flex; align-items:center; gap:24px;
  min-height:96px;
  border-block:0;
}
.nav__brand img{ height:48px; width:auto; }
.nav__menu{
  display:flex; align-items:center; gap:32px;
  margin-inline:auto;
}
.nav__link{
  color:var(--ink); font-size:var(--fs-s); letter-spacing:var(--ls-s);
  position:relative; padding-block:4px;
}
.nav__link::after{
  content:""; position:absolute; left:0; bottom:0; height:1px; width:0;
  background:var(--ink); transition:width .3s ease;
}
.nav__link:hover::after,.nav__link.is-active::after{ width:100%; }

.nav__burger{ display:none; width:44px; height:44px; }
.nav__burger span{ display:block; height:1.5px; background:var(--ink); margin:5px auto; width:22px; transition:transform .3s ease; }

/* =========================================================
   HERO
   ========================================================= */
.hero{
  background:var(--white);
  border-bottom:1px solid var(--ink-10);
}
.hero__inner{
  display:flex; gap:24px;
  padding-block:100px 0;
}
/* Le visuel est un bandeau, pas un fond : l'écart avec le texte est donc
   garanti quelle que soit la largeur d'écran. */
.hero__art{
  margin-top:12px;
  width:100%;
  height:clamp(260px, 42vw, 820px);
  background:url("../img/header-home.jpg") center bottom / cover no-repeat;
}
.hero__eyebrow{
  font-family:var(--serif);
  font-size:var(--fs-m);
  line-height:1.35;
  color:var(--ink);
  width:230px; flex:none;
  padding-top:6px;
}
.hero__body{ max-width:730px; }
.hero__title{
  font-size:var(--fs-5xl); line-height:var(--lh-5xl); letter-spacing:var(--ls-5xl);
  margin-bottom:28px;
}
.hero__text{
  max-width:470px;
  color:var(--ink-70);
  font-size:var(--fs-s); line-height:var(--lh-s);
}

/* mot qui tourne */
.rotator{
  display:inline-grid;
  overflow:hidden;
  vertical-align:bottom;
  height:1.13em;
}
.rotator__word{
  grid-area:1/1;
  display:block;
  animation:wordIn .5s cubic-bezier(.2,.7,.3,1) both;
}
.rotator__word.is-out{ animation:wordOut .4s cubic-bezier(.6,0,.8,.3) both; }
@keyframes wordIn { from{ transform:translateY(105%); opacity:0 } to{ transform:none; opacity:1 } }
@keyframes wordOut{ from{ transform:none; opacity:1 } to{ transform:translateY(-105%); opacity:0 } }

/* =========================================================
   MARQUEE
   ========================================================= */
.marquee-sec{ border-bottom:1px solid var(--ink-10); }
.marquee-sec .frame{ padding-block:44px; }
.marquee__label{
  text-align:center; font-size:var(--fs-xs); font-weight:600;
  letter-spacing:.08em; text-transform:uppercase; color:var(--ink-60);
  margin-bottom:26px;
}
.marquee{ overflow:hidden; -webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent); mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent); }
.marquee__track{
  display:flex; align-items:center; gap:36px; width:max-content;
  animation:slide 32s linear infinite;
}
.marquee:hover .marquee__track{ animation-play-state:paused; }
.marquee__item{
  font-family:var(--serif); font-size:24px; color:var(--ink);
  opacity:.55; white-space:nowrap;
}
.marquee__dot{ width:5px; height:5px; border-radius:50%; background:var(--ink-10); flex:none; }
@keyframes slide{ to{ transform:translateX(-50%) } }

/* =========================================================
   À PROPOS
   ========================================================= */
.statement{
  font-size:var(--fs-3xl); line-height:var(--lh-3xl); letter-spacing:var(--ls-3xl);
  max-width:960px;
  margin-bottom:60px;
}
.about__row{
  display:grid;
  grid-template-columns:1fr 300px 260px;
  gap:40px; align-items:start;
  margin-bottom:40px;
}
.about__text{ max-width:420px; color:var(--ink-70); }
.about__fig{ overflow:hidden; }
.about__fig img{ width:100%; height:226px; object-fit:cover; transition:transform .7s cubic-bezier(.2,.7,.3,1); }
.about__fig:hover img{ transform:scale(1.05); }
.about__cta{ margin-bottom:60px; }

.stats{
  display:grid; grid-template-columns:repeat(4,1fr); gap:24px;
  padding-top:50px;
}
.stat{ border-top:2px solid var(--gold); padding-top:22px; }
.stat__num{
  display:block;
  font-family:var(--serif); font-weight:500;
  font-size:var(--fs-5xl); line-height:1; letter-spacing:var(--ls-5xl);
  color:var(--ink);
  font-variant-numeric:tabular-nums;
}
.stat__label{ margin-top:12px; color:var(--ink-70); font-size:var(--fs-s); }

/* =========================================================
   SERVICES
   ========================================================= */
.services{ border-top:1px solid var(--white-10); }
.service{
  display:grid;
  grid-template-columns:120px 1fr 300px;
  gap:40px; align-items:center;
  padding-block:40px;
  border-bottom:1px solid var(--white-10);
  transition:padding .35s ease;
}
.service__no{
  font-family:var(--sans); font-size:var(--fs-xs); font-weight:600;
  letter-spacing:.08em; color:var(--gold);
}
.service__title{ color:var(--white); margin-bottom:14px; }
.service__text{ color:var(--white-70); max-width:560px; margin-bottom:22px; }
.service .link-btn{ color:var(--white); }
.service__fig{ overflow:hidden; }
.service__fig img{
  width:100%; height:200px; object-fit:cover;
  transition:transform .7s cubic-bezier(.2,.7,.3,1);
}
.service:hover .service__fig img{ transform:scale(1.06); }

/* =========================================================
   RÉALISATIONS (rail horizontal)
   ========================================================= */
.rail{
  display:flex; gap:24px; align-items:flex-end;
  overflow-x:auto; scroll-snap-type:x mandatory;
  padding:0 24px 100px;
  max-width:var(--container); margin-inline:auto;
  scrollbar-width:none;
}
.rail::-webkit-scrollbar{ display:none; }
.proj{ flex:none; width:440px; scroll-snap-align:start; }
.proj__img{ overflow:hidden; height:var(--h,420px); }
.proj__img img{ width:100%; height:100%; object-fit:cover; transition:transform .7s cubic-bezier(.2,.7,.3,1); }
.proj:hover .proj__img img{ transform:scale(1.05); }
.proj__meta{
  display:flex; gap:20px; flex-wrap:wrap;
  padding-block:18px 12px;
  font-size:var(--fs-xs); color:var(--ink-60);
}
.proj__meta li{ position:relative; padding-left:14px; }
.proj__meta li::before{
  content:""; position:absolute; left:0; top:50%; transform:translateY(-50%);
  width:5px; height:5px; border-radius:50%; background:var(--ink-10);
}
.proj__title{ font-size:var(--fs-xl); letter-spacing:var(--ls-xl); }
.proj__year{ margin-top:4px; color:var(--ink-60); font-size:var(--fs-xs); }

/* =========================================================
   CITATION FONDATEURS
   ========================================================= */
.quote{ display:grid; grid-template-columns:389px 1fr; gap:60px; align-items:center; }
.quote__fig{ overflow:hidden; }
.quote__fig img{ width:100%; height:394px; object-fit:cover; }
.quote__text{
  font-family:var(--serif); font-weight:500;
  font-size:var(--fs-3xl); line-height:var(--lh-3xl); letter-spacing:var(--ls-3xl);
  color:var(--ink);
  margin-bottom:24px;
}
.quote__sign{ color:var(--ink-70); font-size:var(--fs-s); }

/* =========================================================
   POURQUOI NOUS
   ========================================================= */
.why{ display:grid; grid-template-columns:repeat(4,1fr); gap:0; border-top:1px solid var(--ink-10); }
.why__item{
  padding:40px 30px 40px 0;
  border-right:1px solid var(--ink-10);
}
.why__item:last-child{ border-right:0; }
.why__item:not(:first-child){ padding-left:30px; }
.why__no{
  display:block; font-family:var(--sans); font-size:var(--fs-xs); font-weight:600;
  letter-spacing:.08em; color:var(--gold); margin-bottom:20px;
}
.why__title{ font-size:var(--fs-xl); letter-spacing:var(--ls-xl); margin-bottom:12px; }
.why__text{ color:var(--ink-70); font-size:var(--fs-s); }

/* =========================================================
   NOS GÎTES
   ========================================================= */
.props{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.prop__img{ overflow:hidden; }
.prop__img img{ width:100%; height:340px; object-fit:cover; transition:transform .7s cubic-bezier(.2,.7,.3,1); }
.prop:hover .prop__img img{ transform:scale(1.05); }
.prop__meta{
  display:flex; gap:24px; padding-block:18px 10px;
  font-size:var(--fs-xs); color:var(--ink-60);
}
.prop__meta strong{ font-family:var(--serif); font-size:var(--fs-m); color:var(--ink); font-weight:500; margin-right:4px; }
.prop__title{ font-size:var(--fs-xl); letter-spacing:var(--ls-xl); }
.prop__loc{ margin-top:4px; color:var(--ink-60); font-size:var(--fs-xs); }

/* =========================================================
   MEDIA
   ========================================================= */
.media-sec .frame{ padding-block:0 100px; }
.media{ position:relative; overflow:hidden; }
.media img{ width:100%; height:560px; object-fit:cover; }
.media__play{
  position:absolute; inset:0; margin:auto;
  width:96px; height:96px; border-radius:50%;
  background:var(--white); color:var(--ink);
  display:grid; place-items:center;
  transition:transform .3s ease;
}
.media__play svg{ width:28px; height:28px; }
.media__play:hover{ transform:scale(1.08); }

/* =========================================================
   TÉMOIGNAGES
   ========================================================= */
.slider-nav{ display:flex; gap:12px; }
.tstm{
  display:flex; gap:24px;
  overflow-x:auto; scroll-snap-type:x mandatory;
  scrollbar-width:none;
}
.tstm::-webkit-scrollbar{ display:none; }
.tstm__card{
  flex:none; width:calc((100% - 48px)/3);
  min-width:300px;
  scroll-snap-align:start;
  border:1px solid var(--ink-10);
  padding:40px 32px;
  display:flex; flex-direction:column; justify-content:space-between; gap:40px;
  transition:background .3s ease;
}
.tstm__card:hover{ background:var(--off); }
.tstm__text{
  font-family:var(--serif); font-size:var(--fs-l); line-height:var(--lh-l);
  letter-spacing:var(--ls-l); color:var(--ink);
}
.tstm__name{ font-weight:600; color:var(--ink); }
.tstm__role{ color:var(--ink-60); font-size:var(--fs-xs); margin-top:2px; }

/* =========================================================
   FAQ
   ========================================================= */
.faq{ display:grid; grid-template-columns:420px 1fr; gap:60px; align-items:start; }
.faq__head{ position:sticky; top:130px; }
.faq__list{ border-top:1px solid var(--ink-10); }
.faq__item{ border-bottom:1px solid var(--ink-10); }
.faq__item summary{
  list-style:none; cursor:pointer;
  display:flex; align-items:center; justify-content:space-between; gap:24px;
  padding-block:26px;
  font-family:var(--serif); font-size:var(--fs-l); line-height:var(--lh-l);
  letter-spacing:var(--ls-l); color:var(--ink);
}
.faq__item summary::-webkit-details-marker{ display:none; }
.faq__ico{
  position:relative; width:20px; height:20px; flex:none;
}
.faq__ico::before,.faq__ico::after{
  content:""; position:absolute; inset:0; margin:auto;
  background:var(--ink); transition:transform .3s ease, opacity .3s ease;
}
.faq__ico::before{ width:100%; height:1.5px; }
.faq__ico::after{ width:1.5px; height:100%; }
.faq__item[open] .faq__ico::after{ transform:rotate(90deg); opacity:0; }
.faq__body{ padding-bottom:26px; max-width:640px; color:var(--ink-70); }

/* =========================================================
   BLOG
   ========================================================= */
.posts{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.post__img{ overflow:hidden; }
.post__img img{ width:100%; height:280px; object-fit:cover; transition:transform .7s cubic-bezier(.2,.7,.3,1); }
.post:hover .post__img img{ transform:scale(1.05); }
.post__body{ padding-top:20px; }
.post__title{ font-size:var(--fs-l); line-height:var(--lh-l); letter-spacing:var(--ls-l); }
.post__meta{ margin-top:10px; color:var(--ink-60); font-size:var(--fs-xs); }

/* =========================================================
   CTA
   ========================================================= */
.cta{ background:var(--forest-deep); color:var(--white-70); }
.cta__inner{ max-width:640px; }
.cta .label--light{ color:var(--white-70); }
.cta__title{
  color:var(--white);
  font-size:var(--fs-4xl); line-height:var(--lh-4xl); letter-spacing:var(--ls-4xl);
  margin-bottom:20px;
}
.cta__text{ color:var(--white-70); margin-bottom:32px; }

/* =========================================================
   FOOTER
   ========================================================= */
.footer{ background:var(--dark); color:var(--white-70); }
.footer__top{
  display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:40px;
  padding-block:80px 50px;
}
.footer__brand img{ height:34px; width:auto; filter:brightness(0) invert(1); margin-bottom:32px; }
.news__label{ display:block; color:var(--white); font-size:var(--fs-s); margin-bottom:14px; }
.news__row{
  display:flex; align-items:center; gap:8px;
  border:1px solid var(--white-10); border-radius:100px;
  padding:6px 6px 6px 20px; max-width:340px;
}
.news__input{
  flex:1; min-width:0; background:none; border:0; outline:none;
  color:var(--white); font:inherit;
}
.news__input::placeholder{ color:var(--white-70); }
.news__btn{
  width:44px; height:44px; border-radius:50%; flex:none;
  background:var(--white); color:var(--ink);
  display:grid; place-items:center;
  transition:transform .3s cubic-bezier(.2,.7,.3,1);
}
.news__btn svg{ width:20px; height:20px; }
.news__btn:hover{ transform:rotate(45deg); }

.footer__h{ color:var(--white); font-weight:600; font-size:var(--fs-s); margin-bottom:18px; }
.footer__col{ display:flex; flex-direction:column; gap:12px; }
.footer__col a{ color:var(--white-70); transition:color .25s ease; }
.footer__col a:hover{ color:var(--white); }

.footer__bottom{
  display:flex; align-items:center; justify-content:space-between; gap:24px;
  flex-wrap:wrap;
  padding-block:28px;
  border-top:1px solid var(--white-10);
  font-size:var(--fs-xs);
}
.footer__legal{ display:flex; gap:28px; }
.footer__legal a:hover{ color:var(--white); }

/* =========================================================
   Animations d'apparition
   ========================================================= */
.reveal{ opacity:0; transform:translateY(24px); }
.reveal.is-in{
  opacity:1; transform:none;
  transition:opacity .7s cubic-bezier(.2,.7,.3,1), transform .7s cubic-bezier(.2,.7,.3,1);
}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{ animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
  .reveal{ opacity:1; transform:none; }
}

/* =========================================================
   COMPOSANTS DES PAGES INTERIEURES
   ========================================================= */

/* ---------- Menu deroulant ---------- */
.nav__item{ position:relative; display:flex; align-items:center; }
.nav__toggle{ display:flex; align-items:center; gap:6px; }
.nav__toggle svg{ width:12px; height:12px; transition:transform .25s ease; }
.nav__item.is-open .nav__toggle svg{ transform:rotate(180deg); }
.nav__drop{
  position:absolute; top:calc(100% + 18px); left:50%; transform:translateX(-50%) translateY(-6px);
  min-width:264px; background:var(--white);
  border:1px solid var(--ink-10); border-radius:4px;
  padding:8px; display:flex; flex-direction:column;
  box-shadow:0 18px 40px rgba(17,14,3,.10);
  opacity:0; visibility:hidden; transition:opacity .22s ease, transform .22s ease, visibility .22s;
}
.nav__item.is-open .nav__drop{ opacity:1; visibility:visible; transform:translateX(-50%) translateY(0); }




/* ---------- Liste vide ---------- */
.empty{ padding:80px 0; text-align:center; color:var(--ink-60); }
.empty.is-hidden{ display:none; }



/* ---------- Colonnes de contenu ---------- */
.split{ display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:start; }
.split--media{ grid-template-columns:1fr 1fr; gap:60px; align-items:center; }
.split img{ width:100%; height:440px; object-fit:cover; }
.prose p{ color:var(--ink-70); margin-bottom:18px; }
.prose p:last-child{ margin-bottom:0; }
.section--dark .prose p{ color:var(--white-70); }


.checks{ display:grid; grid-template-columns:repeat(2,1fr); gap:0 40px; }
.checks li{ padding:16px 0 16px 30px; position:relative; border-bottom:1px solid var(--ink-10); color:var(--ink-70); }
.checks li::before{
  content:""; position:absolute; left:0; top:23px;
  width:11px; height:6px; border-left:1.5px solid var(--gold); border-bottom:1.5px solid var(--gold);
  transform:rotate(-45deg);
}
.section--dark .checks li{ border-color:var(--white-10); color:var(--white-70); }


/* ---------- Bandeau communes ---------- */
.zone{ display:flex; flex-wrap:wrap; gap:10px; }
.zone span{
  border:1px solid var(--ink-10); border-radius:100px;
  padding:9px 18px; font-size:var(--fs-xs); color:var(--ink-70);
}
.zone span b{ color:var(--gold); font-weight:600; margin-left:6px; }

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width:1100px){
  :root{ --fs-5xl:52px; --fs-4xl:40px; --fs-3xl:30px; --sec-pad:80px; }
  .about__row{ grid-template-columns:1fr 1fr; }
  .about__fig--b{ display:none; }
  .service{ grid-template-columns:90px 1fr 220px; gap:28px; }
  .why{ grid-template-columns:repeat(2,1fr); }
  .why__item:nth-child(2){ border-right:0; }
  .why__item:nth-child(-n+2){ border-bottom:1px solid var(--ink-10); }
  .faq{ grid-template-columns:1fr; gap:40px; }
  .faq__head{ position:static; }
  .quote{ grid-template-columns:1fr; gap:32px; }
  .props,.posts{ grid-template-columns:repeat(2,1fr); }
  .footer__top{ grid-template-columns:1fr 1fr; }
}

@media (max-width:820px){
  :root{ --fs-5xl:40px; --fs-4xl:32px; --fs-3xl:26px; --sec-pad:64px; }
  .frame{ padding-inline:20px; }

  .nav__menu{
    position:fixed; inset:96px 0 auto; z-index:40;
    flex-direction:column; align-items:flex-start; gap:0;
    background:var(--white); border-bottom:1px solid var(--ink-10);
    padding:8px 20px 24px; margin:0;
    display:none;
  }
  .nav__menu.is-open{ display:flex; }
  .nav__link{ padding-block:14px; width:100%; border-bottom:1px solid var(--ink-10); }
  .nav__cta{ display:none; }
  .nav__burger{ display:block; margin-left:auto; }

  .hero__inner{ flex-direction:column; padding-block:64px 0; }
  .hero__art{ margin-top:8px; }
  .hero__eyebrow{ width:auto; }
  .hero__text{ max-width:none; }

  .stats{ grid-template-columns:repeat(2,1fr); gap:32px 24px; }
  .about__row{ grid-template-columns:1fr; }
  .about__fig img{ height:260px; }

  .service{ grid-template-columns:1fr; gap:20px; padding-block:32px; }
  .service__fig img{ height:220px; }

  .proj{ width:78vw; }
  .proj__img{ height:auto; aspect-ratio:1/1; }

  .why{ grid-template-columns:1fr; }
  .why__item{ border-right:0; border-bottom:1px solid var(--ink-10); padding:32px 0; }
  .why__item:not(:first-child){ padding-left:0; }

  .props,.posts{ grid-template-columns:1fr; }
  .tstm__card{ width:85%; }
  .media img{ height:340px; }
  .media__play{ width:68px; height:68px; }

  .footer__top{ grid-template-columns:1fr; gap:36px; padding-block:56px 40px; }
  .footer__bottom{ flex-direction:column; align-items:flex-start; gap:12px; }
}

/* --- Pages interieures : responsive --- */
@media (max-width:1100px){
  .split,.split--media{ grid-template-columns:1fr; gap:32px; }
  .split img{ height:340px; }
}
@media (max-width:820px){
  .checks{ grid-template-columns:1fr; }
  .nav__drop{
    position:static; transform:none; opacity:1; visibility:visible;
    box-shadow:none; border:0; border-left:2px solid var(--gold);
    border-radius:0; min-width:0; padding:0 0 0 14px; margin:4px 0 12px;
    display:none;
  }
  .nav__item.is-open .nav__drop{ display:flex; transform:none; }
  .nav__item{ flex-direction:column; align-items:flex-start; width:100%; }
  .nav__toggle{ width:100%; justify-content:space-between; padding-block:14px; border-bottom:1px solid var(--ink-10); }
}

/* ---------- Ajustements accueil v2 ---------- */
.hero__actions{ margin-top:32px; }
.cta__actions{ display:flex; flex-wrap:wrap; gap:12px; }
.cta__addr{ margin-top:28px; font-size:var(--fs-xs); color:var(--white-70); }
.footer__pitch{ color:var(--white-70); font-size:var(--fs-s); max-width:34ch; }
.footer__col address{ color:var(--white-70); line-height:1.7; font-size:var(--fs-s); }
.footer__col address a{ color:var(--white); }
.footer__col address a:hover{ color:var(--gold); }

.zone-sec{ border-bottom:1px solid var(--ink-10); }
.zone-sec__in{ display:flex; align-items:center; gap:32px; padding-block:34px; flex-wrap:wrap; }
.zone-sec__label{
  font-size:var(--fs-xs); font-weight:600; letter-spacing:.08em;
  text-transform:uppercase; color:var(--ink-60); flex:none;
}
.quote--noimg{ grid-template-columns:1fr; }
.quote--noimg .quote__text{ max-width:20ch; font-size:var(--fs-4xl); line-height:var(--lh-4xl); letter-spacing:var(--ls-4xl); }

/* ---------- Bandeaux paysage ---------- */
.band{ overflow:hidden; }
.band img{ width:100%; height:clamp(240px, 34vw, 480px); object-fit:cover; display:block; }
.band--tall img{ height:clamp(300px, 42vw, 620px); }
.band__cap{
  display:flex; align-items:center; gap:10px;
  padding-top:14px; font-size:var(--fs-xs); color:var(--ink-60);
}
.band__cap::before{ content:""; width:24px; height:1px; background:var(--gold); flex:none; }
.section--dark .band__cap{ color:var(--white-70); }

/* ---------- Split avec visuel ---------- */
.split__fig{ overflow:hidden; }
.split__fig img{ width:100%; height:430px; object-fit:cover; }
.split--rev .split__fig{ order:-1; }
@media (max-width:1100px){ .split__fig img{ height:320px; } .split--rev .split__fig{ order:0; } }

/* ---------- Portrait détouré sur fond blanc ---------- */
.quote__fig{ background:var(--white); display:flex; align-items:flex-end; justify-content:center; }
.quote__fig img{ height:440px; object-fit:contain; object-position:bottom center; }
@media (max-width:1100px){ .quote__fig img{ height:360px; } }

/* Photo classique (non détourée) dans le bloc citation */
.quote__fig--photo{ background:none; display:block; }
.quote__fig--photo img{ width:100%; height:394px; object-fit:cover; object-position:center top; }
@media (max-width:1100px){ .quote__fig--photo img{ height:320px; } }

/* =========================================================
   HERO DESKTOP : l'image repasse en fond, les arbres
   encadrent le texte qui repose sur la zone de ciel.
   La hauteur suit la largeur (31vw) pour que le cadrage,
   donc la ligne de toiture, reste constant à tout écran.
   ========================================================= */
@media (min-width:1101px){
  .hero{
    background:url("../img/header-home.jpg") center bottom / cover no-repeat;
    background-color:var(--white);
  }
  .hero__inner{
    min-height:min(calc(580px + 31vw), 1500px);
    padding-block:100px;
  }
  .hero__art{ display:none; }
}

/* Le logo reste lisible sans bousculer le burger sur petit écran */
@media (max-width:820px){
  .nav__brand img{ height:42px; }
}

/* =========================================================
   PAGE CONTACT
   ========================================================= */

/* ---------- Cartes de contact ---------- */
.ccards{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; padding-bottom:60px; }
.ccard{
  position:relative; display:flex; flex-direction:column; gap:8px;
  border:1px solid var(--ink-10); padding:30px 30px 34px;
  transition:background .3s ease, border-color .3s ease, transform .3s ease;
}
.ccard:hover{ background:var(--off); border-color:var(--gold); transform:translateY(-3px); }
.ccard__label{
  font-size:var(--fs-xs); font-weight:600; letter-spacing:.08em;
  text-transform:uppercase; color:var(--gold);
}
.ccard__value{
  font-family:var(--serif); font-size:var(--fs-l); line-height:1.3;
  letter-spacing:var(--ls-l); color:var(--ink);
}
.ccard__note{ font-size:var(--fs-xs); color:var(--ink-60); margin-top:2px; }
.ccard__ico{
  position:absolute; top:26px; right:26px; width:20px; height:20px; color:var(--ink-60);
  transition:transform .3s cubic-bezier(.2,.7,.3,1), color .3s ease;
}
.ccard__ico svg{ width:20px; height:20px; }
.ccard:hover .ccard__ico{ transform:rotate(-45deg); color:var(--dark); }

/* ---------- Grille formulaire / aside ---------- */
.contact{ display:grid; grid-template-columns:1fr 360px; gap:60px; align-items:start; padding-bottom:100px; }
.contact__h{ font-size:var(--fs-3xl); letter-spacing:var(--ls-3xl); }
.contact__sub{ margin:10px 0 34px; font-size:var(--fs-xs); color:var(--ink-60); }

/* ---------- Champs ---------- */
.grid2{ display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.field{ display:flex; flex-direction:column; gap:8px; margin-bottom:22px; }
.grid2 .field{ margin-bottom:0; }
.field label{ font-size:var(--fs-xs); font-weight:600; color:var(--ink); letter-spacing:.02em; }
.req{ color:var(--gold); margin-left:3px; }
.field input, .field select, .field textarea{
  font:inherit; font-size:var(--fs-s); color:var(--ink);
  background:var(--white); border:1px solid var(--ink-10); border-radius:3px;
  padding:14px 16px; width:100%;
  transition:border-color .25s ease, box-shadow .25s ease;
}
.field textarea{ resize:vertical; min-height:150px; line-height:1.6; }
.field select{
  appearance:none; cursor:pointer;
  background:var(--white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23110E03' stroke-width='1.6'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 14px center/16px;
  padding-right:42px;
}
.field input::placeholder, .field textarea::placeholder{ color:var(--ink-60); }
.field input:focus, .field select:focus, .field textarea:focus{
  outline:none; border-color:var(--gold); box-shadow:0 0 0 3px var(--gold-soft);
}
.field.is-invalid input, .field.is-invalid select, .field.is-invalid textarea{ border-color:var(--red-color); }
.field__err{ font-size:var(--fs-xs); color:var(--red-color); min-height:0; }
.field__err:empty{ display:none; }

/* ---------- Sélecteur voyageur / propriétaire ---------- */
.seg{ border:0; padding:0; margin:0 0 26px; }
.seg legend{ font-size:var(--fs-xs); font-weight:600; color:var(--ink); margin-bottom:10px; padding:0; }
.seg__row{ display:inline-flex; border:1px solid var(--ink-10); border-radius:100px; padding:4px; gap:4px; }
.seg__row input{ position:absolute; opacity:0; pointer-events:none; }
.seg__row label{
  padding:11px 26px; border-radius:100px; cursor:pointer;
  font-size:var(--fs-s); font-weight:600; color:var(--ink-70);
  transition:background .25s ease, color .25s ease;
}
.seg__row label:hover{ color:var(--ink); }
.seg__row input:checked + label{ background:var(--dark); color:var(--white); }
.seg__row input:focus-visible + label{ outline:2px solid var(--gold); outline-offset:2px; }

/* ---------- Consentement ---------- */
.check{ display:flex; align-items:flex-start; gap:12px; margin:6px 0 10px; }
.check input{
  appearance:none; flex:none; width:20px; height:20px; margin-top:2px;
  border:1px solid var(--ink-10); border-radius:3px; background:var(--white); cursor:pointer;
  transition:background .2s ease, border-color .2s ease;
}
.check input:checked{ background:var(--dark); border-color:var(--dark); }
.check input:checked::after{
  content:""; display:block; width:6px; height:11px; margin:2px auto 0;
  border-right:2px solid var(--gold); border-bottom:2px solid var(--gold);
  transform:rotate(45deg);
}
.check input:focus-visible{ outline:2px solid var(--gold); outline-offset:2px; }
.check label{ font-size:var(--fs-xs); color:var(--ink-70); line-height:1.6; cursor:pointer; }
.check.is-invalid input{ border-color:var(--red-color); }

.form__submit{ margin-top:22px; }
.form__submit[disabled]{ opacity:.55; pointer-events:none; }
.form__status{ margin-top:18px; font-size:var(--fs-s); }
.form__status:empty{ display:none; }
.form__status.is-ok{ color:var(--dark); font-weight:600; }
.form__status.is-ko{ color:var(--red-color); }
.form__status.is-info{ color:var(--ink-70); }

/* ---------- Colonne de droite ---------- */
.contact__aside{ display:flex; flex-direction:column; gap:24px; position:sticky; top:130px; }
.contact__box{ border:1px solid var(--ink-10); padding:30px; }
.contact__box--soft{ background:var(--off); border-color:transparent; }
.contact__box h3{ font-size:var(--fs-l); letter-spacing:var(--ls-l); margin-bottom:14px; }
.contact__box p{ font-size:var(--fs-xs); color:var(--ink-70); margin-bottom:20px; }
.steps-mini{ display:flex; flex-direction:column; gap:16px; }
.steps-mini li{
  display:flex; gap:12px; align-items:flex-start;
  font-size:var(--fs-xs); color:var(--ink-70); line-height:1.6;
}
.steps-mini span{
  flex:none; width:24px; height:24px; border-radius:50%;
  background:var(--gold-soft); color:var(--dark);
  display:grid; place-items:center; font-weight:600; font-size:11px;
}

/* ---------- Bandeau localisation ---------- */
.locband{
  display:grid; grid-template-columns:1fr 1fr; gap:0;
  border:1px solid var(--ink-10); margin-bottom:100px;
}
.locband__fig{ overflow:hidden; }
.locband__fig img{ width:100%; height:100%; min-height:380px; object-fit:cover; }
.locband__body{ padding:56px 50px; align-self:center; }
.locband__addr{ font-size:var(--fs-m); line-height:1.8; color:var(--ink-70); margin:22px 0 30px; }
.locband__actions{ display:flex; flex-wrap:wrap; gap:12px; }

@media (max-width:1100px){
  .contact{ grid-template-columns:1fr; gap:44px; }
  .contact__aside{ position:static; }
  .ccards{ grid-template-columns:1fr; }
  .locband{ grid-template-columns:1fr; }
  .locband__body{ padding:40px 30px; }
}
@media (max-width:820px){
  .grid2{ grid-template-columns:1fr; }
  .seg__row{ display:flex; width:100%; }
  .seg__row label{ flex:1; text-align:center; padding:11px 14px; }
}

/* =========================================================
   REFONTE V3 : COULEURS, FONDS ET COMPOSANTS
   Palette : vert foret + or olive (logo), creme, sauge.
   Le turquoise Villa for You reste cantonne aux blocs partenaire.
   ========================================================= */

/* ---------- Fonds de section ---------- */
.section--sage{ background:var(--sage); }
.section--cream{ background:var(--cream); }
.section--pt0 > .frame > .sec-pad{ padding-top:0; }
.section--tight-top > .frame > .sec-pad{ padding-top:70px; }
.section--motif{ position:relative; isolation:isolate; overflow:hidden; }
.section--motif::before{
  content:""; position:absolute; z-index:-1; pointer-events:none;
  top:-140px; right:-220px; width:980px; height:660px;
  background:url("../img/motif-courbes.svg") center / contain no-repeat;
  opacity:.55;
}
.section--dark.section--motif::before{ opacity:.35; }
.section--sage .frame, .section--soft .frame{ border-color:rgba(15,53,44,.08); }
.sec-head__aside{ max-width:44ch; color:var(--ink-70); font-size:var(--fs-m); line-height:var(--lh-m); }
.section--dark .sec-head__aside{ color:var(--white-70); }
.prose .sec-title{ margin-bottom:24px; }
.lead{ max-width:60ch; font-size:var(--fs-m); line-height:var(--lh-m); color:var(--ink-70); }
.ico{ width:24px; height:24px; flex:none; }

/* ---------- Menu deroulant enrichi ---------- */
.nav__drop{ min-width:330px; padding:10px; border-radius:var(--radius); border-color:transparent; box-shadow:0 30px 60px -20px rgba(10,38,32,.28); }
.nav__drop a{ display:flex; align-items:center; gap:14px; padding:12px; border-radius:var(--radius-s); color:var(--ink); }
.nav__drop a:hover{ background:var(--cream); }
.nav__drop-ico{ width:40px; height:40px; border-radius:50%; background:var(--sage); color:var(--dark); display:grid; place-items:center; flex:none; transition:background .25s ease, color .25s ease; }
.nav__drop-ico .ico{ width:20px; height:20px; }
.nav__drop a:hover .nav__drop-ico{ background:var(--dark); color:var(--gold); }
.nav__drop b{ display:block; font-weight:600; font-size:15px; line-height:1.3; }
.nav__drop small{ display:block; font-size:13px; color:var(--ink-60); line-height:1.4; }

/* ---------- Fil d'ariane ---------- */
.crumbs{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; font-size:13px; color:var(--ink-60); padding-block:22px; }
.crumbs i{ font-style:normal; opacity:.5; }
.crumbs a:hover{ color:var(--ink); text-decoration:underline; text-underline-offset:3px; }
.crumbs--light{ color:rgba(255,255,255,.62); padding-block:0; }
.crumbs--light a:hover{ color:var(--white); }
.crumbs--light [aria-current]{ color:rgba(255,255,255,.9); }

/* ---------- Collines en pied d'en-tete ---------- */
.hills{ position:absolute; left:0; right:0; bottom:-1px; width:100%; height:64px; display:block; pointer-events:none; }
.hills path{ fill:currentColor; }
.hills .hills__back{ opacity:.35; }
.hills--white{ color:var(--white); }
.hills--sage{ color:var(--sage); }
.hills--cream{ color:var(--cream); }

/* =========================================================
   EN-TETE DE PAGE INTERIEURE
   ========================================================= */
.phero{
  position:relative; isolation:isolate; overflow:hidden;
  background:var(--dark); color:var(--white-70);
}
.phero:not(.phero--img)::before{
  content:""; position:absolute; z-index:-1; pointer-events:none;
  top:-60px; right:-160px; width:1100px; height:740px;
  background:url("../img/motif-courbes.svg") center / contain no-repeat; opacity:.45;
}
.phero .frame{ border-color:var(--white-10); }
.phero__bg{ position:absolute; inset:0; z-index:-2; width:100%; height:100%; object-fit:cover; object-position:70% 50%; }
.phero--img::after{
  content:""; position:absolute; inset:0; z-index:-1;
  background:
    linear-gradient(90deg, rgba(10,38,32,.95) 0%, rgba(10,38,32,.86) 34%, rgba(10,38,32,.42) 66%, rgba(10,38,32,.12) 100%),
    linear-gradient(0deg, rgba(10,38,32,.5) 0%, transparent 35%);
}
.phero__in{ padding-block:30px 130px; }
.phero--img .phero__in{ min-height:640px; display:flex; flex-direction:column; }
.phero--img .phero__body{ margin-block:auto; padding-top:60px; }
.phero__body{ max-width:760px; padding-top:70px; }
.phero .label{ color:var(--gold); margin-bottom:22px; }
.phero__title{ color:var(--white); font-size:var(--fs-5xl); line-height:var(--lh-5xl); letter-spacing:var(--ls-5xl); max-width:17ch; }
.phero__text{ margin-top:24px; max-width:56ch; color:rgba(255,255,255,.82); font-size:var(--fs-m); line-height:var(--lh-m); }
.phero__actions{ display:flex; flex-wrap:wrap; gap:12px; margin-top:34px; }
.phero__actions .btn--ghost{ border-color:rgba(255,255,255,.28); }
.phero__facts{ display:flex; flex-wrap:wrap; gap:12px; margin-top:44px; }
.phero__fact{
  min-width:150px; padding:14px 20px; border-radius:var(--radius-s);
  background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.14);
  -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
}
.phero--compact .phero__in{ padding-bottom:104px; }
.phero--compact .phero__body{ max-width:none; padding-top:44px; }
.phero--compact .phero__title{ max-width:none; }
.phero--compact .phero__facts{ margin-top:32px; }
.phero__fact strong{ display:block; font-family:var(--serif); font-weight:500; font-size:26px; line-height:1.15; color:var(--white); }
.phero__fact span{ font-size:13px; color:rgba(255,255,255,.72); }

/* =========================================================
   LISTE DES HEBERGEMENTS
   ========================================================= */
.lhead{ position:relative; isolation:isolate; overflow:hidden; background:var(--dark); color:var(--white-70); }
.lhead::before{
  content:""; position:absolute; z-index:-1; pointer-events:none;
  top:-240px; right:-120px; width:900px; height:620px;
  background:url("../img/motif-courbes.svg") center / contain no-repeat; opacity:.45;
}
.lhead .frame{ border-color:var(--white-10); }
.lhead__in{ padding-block:24px 92px; }
.lhead__row{ display:flex; align-items:flex-end; justify-content:space-between; gap:40px; margin-top:26px; }
.lhead__title{ color:var(--white); font-size:var(--fs-4xl); line-height:var(--lh-4xl); letter-spacing:var(--ls-4xl); }
.lhead__text{ margin-top:12px; max-width:62ch; color:rgba(255,255,255,.78); }
.lhead__facts{ display:flex; gap:10px; flex:none; }
.lhead__facts li{
  padding:10px 16px; border-radius:100px; font-size:13px; white-space:nowrap;
  background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.14); color:rgba(255,255,255,.75);
}
.lhead__facts strong{ color:var(--gold); font-weight:600; margin-right:2px; }

.liste{ position:relative; z-index:2; }
.filters{
  display:flex; flex-wrap:wrap; align-items:flex-end; gap:14px;
  margin-top:-60px; padding:20px 24px;
  background:var(--white); border-radius:var(--radius); box-shadow:var(--shadow);
}
.filters__field{ display:flex; flex-direction:column; gap:6px; }
.filters__field label{ font-size:11px; font-weight:600; color:var(--ink-60); letter-spacing:.08em; text-transform:uppercase; padding-left:4px; }
.filters select{
  appearance:none; font:inherit; font-size:15px; color:var(--ink);
  padding:12px 42px 12px 16px; min-width:200px;
  background:var(--cream) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230F352C' stroke-width='1.8'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 14px center/16px;
  border:1px solid transparent; border-radius:100px; cursor:pointer;
  transition:border-color .2s ease, background-color .2s ease;
}
.filters select:hover{ border-color:var(--gold); background-color:var(--white); }
.filters__count{ margin-left:auto; align-self:center; font-size:var(--fs-s); color:var(--ink-60); }
.filters__count b{ display:inline-grid; place-items:center; min-width:34px; height:34px; padding:0 8px; margin-right:6px; border-radius:100px; background:var(--dark); color:var(--gold); font-weight:600; }
.filters__reset{ align-self:center; font-size:13px; color:var(--ink-60); border-bottom:1px solid var(--ink-10); padding-bottom:2px; }
.filters__reset:hover{ color:var(--ink); border-color:var(--gold); }

.ggrid{ display:grid; grid-template-columns:repeat(3,1fr); gap:40px 24px; padding-block:44px 90px; }
.ggrid--3{ padding-block:0; }

/* ---------- Carte d'hebergement ---------- */
.gcard{ display:flex; flex-direction:column; }
.gcard.is-hidden{ display:none; }
.gcard__media{ position:relative; overflow:hidden; border-radius:var(--radius); }
.gcard__media img{ width:100%; height:300px; object-fit:cover; transition:transform .7s cubic-bezier(.2,.7,.3,1); }
.gcard:hover .gcard__media img{ transform:scale(1.05); }
.gcard__tag{
  position:absolute; top:14px; left:14px;
  background:rgba(255,255,255,.94); color:var(--dark);
  font-size:11px; font-weight:600; letter-spacing:.08em; text-transform:uppercase;
  padding:7px 13px; border-radius:100px;
}
.gcard__go{
  position:absolute; right:14px; bottom:14px; width:44px; height:44px; border-radius:50%;
  display:grid; place-items:center; background:var(--gold); color:var(--dark);
  opacity:0; transform:translateY(8px) scale(.9);
  transition:opacity .3s ease, transform .35s cubic-bezier(.2,.7,.3,1);
}
.gcard__go svg{ width:18px; height:18px; }
.gcard:hover .gcard__go{ opacity:1; transform:none; }
.gcard__meta{ display:flex; flex-wrap:wrap; gap:6px 16px; padding-block:16px 8px; font-size:13px; color:var(--ink-60); }
.gcard__meta li{ position:relative; padding-left:12px; }
.gcard__meta li::before{ content:""; position:absolute; left:0; top:50%; transform:translateY(-50%); width:4px; height:4px; border-radius:50%; background:var(--gold); }
.gcard__title{ font-size:var(--fs-xl); letter-spacing:var(--ls-xl); transition:color .25s ease; }
.gcard:hover .gcard__title{ color:var(--moss); }
.gcard__loc{ display:flex; align-items:center; gap:6px; margin-top:4px; color:var(--ink-60); font-size:13px; }
.gcard__loc .ico{ width:15px; height:15px; color:var(--gold); }
.gcard__desc{ margin-top:12px; font-size:var(--fs-xs); line-height:1.6; color:var(--ink-70); }
.rail{ align-items:flex-start; }
.rail .gcard{ flex:none; width:340px; scroll-snap-align:start; }

/* =========================================================
   FICHE HEBERGEMENT
   ========================================================= */
.ghero{ display:grid; grid-template-columns:1.35fr 1fr; gap:16px; padding-bottom:16px; }
.ghero img, .gallery img{ border-radius:var(--radius); }
.ghero__main img{ width:100%; height:540px; object-fit:cover; }
.ghero__side{ display:grid; grid-template-rows:1fr 1fr; gap:16px; }
.ghero__side img{ width:100%; height:262px; object-fit:cover; }
.gallery{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; padding-bottom:10px; }
.gallery img{ width:100%; height:200px; object-fit:cover; }
.gallery--2{ grid-template-columns:repeat(2,1fr); }
.gallery--2 img{ height:300px; }
.gallery--3{ grid-template-columns:repeat(3,1fr); }
.gallery--3 img{ height:240px; }

.gbody{ display:grid; grid-template-columns:1fr 390px; gap:64px; align-items:start; padding-block:64px 90px; }
.gbody__title{ font-size:var(--fs-5xl); line-height:var(--lh-5xl); letter-spacing:var(--ls-5xl); }
.gbody__loc{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:12px; color:var(--ink-60); }
.gbody__loc .ico{ width:18px; height:18px; color:var(--gold); }
.gbody__loc a{ margin-left:8px; font-size:13px; font-weight:600; color:var(--moss); border-bottom:1px solid currentColor; }
.gbody__loc a:hover{ color:var(--dark); }
.gbody h2{ font-size:var(--fs-2xl); letter-spacing:var(--ls-2xl); margin-bottom:16px; }
.gbody__text{ color:var(--ink-70); font-size:17px; line-height:1.7; max-width:68ch; }

.facts{ display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin:32px 0 48px; }
.fact{ display:flex; align-items:center; gap:14px; padding:16px; border-radius:var(--radius-s); background:var(--cream); }
.fact__ico{ width:46px; height:46px; border-radius:50%; flex:none; display:grid; place-items:center; background:var(--white); color:var(--dark); }
.fact__ico .ico{ width:22px; height:22px; }
.fact strong{ display:block; font-family:var(--serif); font-weight:500; font-size:24px; line-height:1.1; color:var(--ink); }
.fact p span{ display:block; font-size:13px; color:var(--ink-60); line-height:1.3; }
.fact--txt strong{ font-size:16px; line-height:1.25; }

.equip{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:48px; }
.equip__grp{ padding:26px 24px; border-radius:var(--radius); background:var(--white); border:1px solid var(--ink-10); }
.equip h3{ display:flex; align-items:center; gap:12px; font-size:var(--fs-m); letter-spacing:var(--ls-m); margin-bottom:12px; }
.equip__ico{ width:38px; height:38px; border-radius:50%; display:grid; place-items:center; background:var(--sage); color:var(--dark); flex:none; }
.equip__ico .ico{ width:19px; height:19px; }
.equip li{ padding:9px 0 9px 22px; position:relative; font-size:15px; color:var(--ink-70); border-top:1px solid var(--ink-10); }
.equip li::before{
  content:""; position:absolute; left:0; top:17px;
  width:9px; height:5px; border-left:1.5px solid var(--gold); border-bottom:1.5px solid var(--gold);
  transform:rotate(-45deg);
}

.book{
  position:sticky; top:124px; overflow:hidden; isolation:isolate;
  padding:32px; border-radius:var(--radius);
  background:var(--dark); color:var(--white-70); box-shadow:var(--shadow);
}
.book::before{
  content:""; position:absolute; z-index:-1; inset:-40px -200px auto auto; width:520px; height:360px;
  background:url("../img/motif-courbes.svg") center / contain no-repeat; opacity:.35;
}
.book__kicker{ font-size:11px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--gold); margin-bottom:10px; }
.book h3{ color:var(--white); font-size:var(--fs-2xl); letter-spacing:var(--ls-2xl); margin-bottom:10px; }
.book > p{ font-size:var(--fs-xs); color:var(--white-70); margin-bottom:22px; }
.book .btn{ width:100%; justify-content:space-between; margin-bottom:10px; }
.book .btn--ghost{ border-color:rgba(255,255,255,.22); }
.book__contact{ display:flex; flex-direction:column; gap:10px; margin-top:16px; font-size:var(--fs-xs); }
.book__contact a{ display:flex; align-items:center; gap:10px; color:var(--white); font-weight:600; }
.book__contact .ico{ width:18px; height:18px; color:var(--gold); }
.book__contact a:hover{ color:var(--gold); }
.book__note{ margin-top:18px; font-size:12px; line-height:1.55; color:rgba(255,255,255,.55); }
.book__vfy{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  margin-top:24px; padding-top:18px; border-top:1px solid var(--white-10);
  font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:rgba(255,255,255,.55);
  transition:color .25s ease;
}
.book__vfy:hover{ color:var(--white); }
.book__vfy-logo{ height:22px; width:auto; }

/* ---------- Carte interactive ---------- */
.carte{ position:relative; border-radius:var(--radius); overflow:hidden; background:var(--cream); box-shadow:var(--shadow); }
.carte__map{ height:560px; width:100%; }
.carte__fallback{ display:grid; place-items:center; height:100%; color:var(--ink-60); font-size:var(--fs-xs); padding:24px; text-align:center; }
.carte__panel{
  position:absolute; top:20px; left:20px; z-index:2; width:320px;
  padding:24px; border-radius:var(--radius);
  background:rgba(255,255,255,.96); box-shadow:0 20px 40px -20px rgba(10,38,32,.35);
}
.carte__kicker{ display:flex; align-items:center; gap:6px; font-size:12px; color:var(--ink-60); }
.carte__kicker .ico{ width:15px; height:15px; color:var(--gold); }
.carte__name{ margin-top:6px; font-family:var(--serif); font-weight:500; font-size:var(--fs-xl); line-height:1.2; color:var(--ink); }
.carte__note{ margin-top:10px; font-size:13px; line-height:1.5; color:var(--ink-60); }
.carte__btns{ display:flex; flex-wrap:wrap; gap:8px; margin-top:18px; }
.chip{
  display:inline-flex; align-items:center; gap:6px;
  padding:8px 14px; border-radius:100px; font-size:13px; font-weight:600;
  background:var(--cream); color:var(--dark); border:1px solid transparent;
  transition:background .2s ease, color .2s ease, border-color .2s ease;
}
.chip .ico{ width:15px; height:15px; }
.chip:hover{ border-color:var(--gold); }
.chip.is-on{ background:var(--dark); color:var(--white); }
.chip.is-on .ico{ color:var(--gold); }
.carte__legend{ display:flex; flex-direction:column; gap:8px; margin-top:18px; padding-top:16px; border-top:1px solid var(--ink-10); font-size:13px; color:var(--ink-70); }
.carte__legend li{ display:flex; align-items:center; gap:10px; }
.dot{ width:14px; height:14px; border-radius:50%; background:var(--dark); border:2px solid var(--white); box-shadow:0 0 0 1px rgba(15,53,44,.25); flex:none; }
.dot--current{ background:var(--gold); box-shadow:0 0 0 4px rgba(173,168,98,.35); }
.dot--office{ background:var(--white); border-color:var(--dark); border-radius:4px; }

/* Marqueurs */
.pin{ position:relative; cursor:pointer; }
.pin__dot{
  width:30px; height:30px; border-radius:50%; display:grid; place-items:center;
  background:var(--dark); color:var(--gold); border:2px solid var(--white);
  box-shadow:0 6px 14px -4px rgba(10,38,32,.55);
  transition:transform .25s cubic-bezier(.2,.7,.3,1), background .2s ease;
}
.pin__dot svg{ width:15px; height:15px; }
.pin:hover .pin__dot, .pin.is-active .pin__dot{ transform:scale(1.15); background:var(--moss); }
.pin__name{
  position:absolute; left:50%; bottom:calc(100% + 8px); transform:translateX(-50%) translateY(4px);
  padding:5px 10px; border-radius:100px; white-space:nowrap;
  background:var(--white); color:var(--ink); font-size:12px; font-weight:600;
  box-shadow:0 8px 18px -8px rgba(10,38,32,.45);
  opacity:0; pointer-events:none; transition:opacity .2s ease, transform .2s ease;
}
.pin:hover .pin__name{ opacity:1; transform:translateX(-50%); }
.pin--current .pin__dot{ width:46px; height:46px; background:var(--gold); color:var(--dark); border-width:3px; }
.pin--current .pin__dot svg{ width:22px; height:22px; }
.pin--current:hover .pin__dot{ background:var(--gold); }
.pin--current::before{
  content:""; position:absolute; inset:-10px; border-radius:50%;
  background:rgba(173,168,98,.35); animation:pinPulse 2.4s ease-out infinite;
}
.pin--current .pin__name{ opacity:1; transform:translateX(-50%); background:var(--dark); color:var(--white); }
.pin--office .pin__dot{ border-radius:10px; background:var(--white); color:var(--dark); border-color:var(--dark); }
@keyframes pinPulse{ 0%{ transform:scale(.6); opacity:1 } 100%{ transform:scale(1.8); opacity:0 } }

.maplibregl-popup-content{ padding:0; border-radius:14px; overflow:hidden; box-shadow:0 24px 50px -20px rgba(10,38,32,.5); font-family:var(--sans); }
.maplibregl-popup-close-button{ width:28px; height:28px; top:8px; right:8px; border-radius:50%; background:rgba(255,255,255,.92); font-size:18px; line-height:1; color:var(--dark); }
.popcard{ display:block; width:250px; color:var(--ink); }
.popcard img{ width:100%; height:130px; object-fit:cover; }
.popcard__body, .popcard__type, .popcard__name, .popcard__meta{ display:block; }
.popcard__body{ padding:14px 16px 16px; }
.popcard__type{ font-size:10px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--moss); }
.popcard__name{ margin-top:2px; font-family:var(--serif); font-size:19px; line-height:1.2; }
.popcard__meta{ margin-top:4px; font-size:12px; color:var(--ink-60); }
.popcard__go{ display:inline-flex; align-items:center; gap:6px; margin-top:10px; font-size:13px; font-weight:600; color:var(--dark); border-bottom:1px solid var(--gold); }
.popcard__go svg{ width:14px; height:14px; }
.maplibregl-ctrl-group{ border-radius:12px !important; overflow:hidden; box-shadow:0 10px 24px -12px rgba(10,38,32,.45) !important; }

/* =========================================================
   TUILES, PARCOURS, CHOIX
   ========================================================= */
.cards3{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.cards4{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.tile{
  position:relative; padding:34px 30px; border-radius:var(--radius);
  background:var(--white); border:1px solid var(--ink-10);
  transition:transform .35s cubic-bezier(.2,.7,.3,1), box-shadow .35s ease, border-color .35s ease;
}
.tile:hover{ transform:translateY(-4px); box-shadow:var(--shadow); border-color:transparent; }
.tile__no{ display:block; margin-bottom:18px; font-size:var(--fs-xs); font-weight:600; letter-spacing:.08em; color:var(--gold); }
.tile h3{ font-size:var(--fs-l); letter-spacing:var(--ls-l); margin-bottom:10px; }
.tile p{ font-size:15px; color:var(--ink-70); }
.tile--ico .tile__no{ position:absolute; top:30px; right:28px; margin:0; }
.tile__ico{ width:54px; height:54px; margin-bottom:24px; border-radius:50%; display:grid; place-items:center; background:var(--sage); color:var(--dark); transition:background .3s ease, color .3s ease; }
.tile__ico .ico{ width:25px; height:25px; }
.tile:hover .tile__ico{ background:var(--dark); color:var(--gold); }
.section--sage .tile, .section--soft .tile{ border-color:transparent; }
.section--sage .tile__ico{ background:var(--cream); }
.section--dark .tile{ background:rgba(255,255,255,.04); border-color:var(--white-10); }
.section--dark .tile p{ color:var(--white-70); }
.section--dark .tile__ico{ background:rgba(173,168,98,.16); color:var(--gold); }

.checks{ display:grid; grid-template-columns:repeat(2,1fr); gap:0 40px; }
.checks li{ padding:16px 0 16px 36px; position:relative; border-bottom:1px solid var(--ink-10); color:var(--ink-70); }
.checks li::before{
  content:""; position:absolute; left:0; top:15px; width:22px; height:22px; border-radius:50%;
  background:var(--gold-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ADA862' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 12 4 4 8-8'/%3E%3C/svg%3E") center / 13px no-repeat;
}
.section--dark .checks li{ border-color:var(--white-10); color:rgba(255,255,255,.82); }

.note{ margin-top:28px; padding:24px 26px; border-radius:var(--radius-s); background:var(--cream); border-left:3px solid var(--gold); }
.note p{ color:var(--ink-70); font-size:15px; margin:0 !important; }
.note strong{ color:var(--ink); }
.section--soft .note{ background:var(--white); }

/* Parcours de creation en six etapes */
.path{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; counter-reset:path; }
.path__item{
  position:relative; padding:30px 28px 32px; border-radius:var(--radius); background:var(--white);
  transition:transform .35s cubic-bezier(.2,.7,.3,1), box-shadow .35s ease;
}
.path__item:hover{ transform:translateY(-4px); box-shadow:var(--shadow); }
.path__item:not(:nth-child(3n)):not(:last-child)::after{
  content:""; position:absolute; top:58px; right:-20px; width:20px; height:2px;
  background:repeating-linear-gradient(90deg, var(--gold) 0 4px, transparent 4px 7px);
}
.path__top{ display:flex; align-items:center; justify-content:space-between; margin-bottom:24px; }
.path__no{ font-family:var(--serif); font-size:52px; line-height:1; color:var(--gold); letter-spacing:-1px; }
.path__ico{ width:54px; height:54px; border-radius:50%; display:grid; place-items:center; background:var(--sage); color:var(--dark); }
.path__ico .ico{ width:25px; height:25px; }
.path__item h3{ font-size:var(--fs-l); letter-spacing:var(--ls-l); margin-bottom:10px; }
.path__item p{ font-size:15px; color:var(--ink-70); }

/* Deux entrees : gestion / creation */
.choices{ display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.choice{
  position:relative; overflow:hidden; isolation:isolate;
  display:flex; flex-direction:column; align-items:flex-start; gap:12px;
  padding:40px 40px 36px; border-radius:var(--radius); background:var(--sage);
  transition:transform .35s cubic-bezier(.2,.7,.3,1), box-shadow .35s ease;
}
.choice::after{
  content:""; position:absolute; z-index:-1; right:-160px; bottom:-200px; width:520px; height:360px;
  background:url("../img/motif-courbes.svg") center / contain no-repeat; opacity:.5;
}
.choice--sand{ background:var(--sand); }
.choice:hover{ transform:translateY(-4px); box-shadow:var(--shadow); }
.choice__ico{ width:58px; height:58px; margin-bottom:8px; border-radius:50%; display:grid; place-items:center; background:var(--dark); color:var(--gold); }
.choice__ico .ico{ width:26px; height:26px; }
.choice__kicker{ font-size:12px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--moss); }
.choice h3{ font-size:var(--fs-2xl); letter-spacing:var(--ls-2xl); }
.choice p{ color:var(--ink-70); max-width:46ch; }
.choice .link-btn{ margin-top:14px; color:var(--dark); }
.choice .link-btn svg{ transition:transform .25s ease; }
.choice:hover .link-btn svg{ transform:translateY(3px) rotate(90deg); }

/* Liste + carte partenaire */
.duo{ display:grid; grid-template-columns:1fr 400px; gap:64px; align-items:start; }
.partner-card{
  padding:34px; border-radius:var(--radius);
  background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.12);
}
.partner-card__logo{ height:40px; width:auto; margin-bottom:22px; }
.partner-card__kicker{ font-size:12px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--vfy); margin-bottom:12px; }
.partner-card > p{ color:var(--white-70); font-size:15px; }
.partner-card__list{ display:flex; flex-direction:column; gap:10px; margin:22px 0 28px; }
.partner-card__list li{ display:flex; align-items:center; gap:12px; color:var(--white); font-size:15px; }
.partner-card__list .ico{ width:34px; height:34px; padding:7px; border-radius:50%; background:var(--vfy-soft); color:var(--vfy); }

/* Offres conciergerie */
.offers{ display:grid; grid-template-columns:1.1fr 1fr; gap:20px; }
.offer{ padding:36px; border-radius:var(--radius); background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.12); }
.offer--main{ background:var(--gold); border-color:transparent; }
.offer__ico{ width:54px; height:54px; border-radius:50%; display:grid; place-items:center; background:rgba(173,168,98,.18); color:var(--gold); margin-bottom:22px; }
.offer__ico .ico{ width:25px; height:25px; }
.offer--main .offer__ico{ background:var(--dark); }
.offer__kicker{ font-size:12px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--gold); }
.offer h3{ margin-top:6px; font-size:var(--fs-2xl); letter-spacing:var(--ls-2xl); }
.section--dark .offer--main h3, .offer--main .offer__kicker{ color:var(--forest-deep); }
.offer__list{ margin-top:20px; display:flex; flex-direction:column; gap:10px; }
.offer__list li{ position:relative; padding-left:26px; color:rgba(255,255,255,.82); }
.offer__list li::before{ content:""; position:absolute; left:0; top:9px; width:12px; height:6px; border-left:2px solid var(--gold); border-bottom:2px solid var(--gold); transform:rotate(-45deg); }
.offer--main .offer__list li{ color:var(--forest-deep); }
.offer--main .offer__list li::before{ border-color:var(--forest-deep); }

/* Modele : ce que nous ne sommes pas */
.model{ display:grid; grid-template-columns:1fr 420px; gap:64px; align-items:center; }
.model__vs{ display:flex; flex-direction:column; gap:12px; }
.model__vs li{ position:relative; padding:20px 22px 20px 64px; border-radius:var(--radius-s); background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.1); }
.model__vs li::before{ content:""; position:absolute; left:20px; top:50%; width:28px; height:28px; margin-top:-14px; border-radius:50%; background:center / 14px no-repeat; }
.model__vs .is-no::before{ background-color:rgba(255,255,255,.1); background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M6 6l12 12M18 6 6 18'/%3E%3C/svg%3E"); }
.model__vs .is-yes{ background:var(--gold); border-color:transparent; }
.model__vs .is-yes::before{ background-color:var(--dark); background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ADA862' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 12 4 4 8-8'/%3E%3C/svg%3E"); }
.model__vs span{ display:block; font-family:var(--serif); font-size:var(--fs-l); color:var(--white); }
.model__vs small{ display:block; margin-top:2px; font-size:13px; color:var(--white-70); }
.model__vs .is-no span{ text-decoration:line-through; text-decoration-color:rgba(255,255,255,.4); }
.model__vs .is-yes span{ color:var(--forest-deep); }
.model__vs .is-yes small{ color:rgba(10,38,32,.75); }

/* =========================================================
   VISUELS
   ========================================================= */
.band-sec{ padding-bottom:100px; }
.band{ position:relative; overflow:hidden; border-radius:var(--radius); }
.band img{ width:100%; height:clamp(240px, 34vw, 480px); object-fit:cover; display:block; }
.band--tall img{ height:clamp(300px, 42vw, 620px); }
.band__cap{
  position:absolute; left:20px; bottom:20px;
  display:flex; align-items:center; gap:10px;
  padding:9px 16px; border-radius:100px;
  background:rgba(10,38,32,.72); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
  font-size:13px; color:var(--white);
}
.band__cap::before{ content:""; width:18px; height:1px; background:var(--gold); flex:none; }
.section--dark + .band-sec, .section--soft + .band-sec, .section--sage + .band-sec{ padding-top:100px; }

.split__fig{ position:relative; overflow:hidden; border-radius:var(--radius); }
.split__fig img{ width:100%; height:480px; object-fit:cover; transition:transform .9s cubic-bezier(.2,.7,.3,1); }
.split__fig:hover img{ transform:scale(1.03); }
.split__badge{
  position:absolute; left:20px; bottom:20px;
  display:flex; align-items:center; gap:10px;
  padding:10px 16px 10px 10px; border-radius:100px;
  background:var(--white); color:var(--dark); font-size:14px; font-weight:600;
  box-shadow:0 14px 30px -14px rgba(10,38,32,.5);
}
.split__badge .ico{ width:34px; height:34px; padding:7px; border-radius:50%; background:var(--dark); color:var(--gold); }

/* =========================================================
   VILLA FOR YOU
   ========================================================= */
.vfy-sec{
  position:relative; isolation:isolate; overflow:hidden;
  background:linear-gradient(180deg, var(--white) 0%, var(--cream) 100%);
}
.vfy-sec::before{
  content:""; position:absolute; z-index:-1; left:-260px; bottom:-200px; width:900px; height:600px;
  background:url("../img/motif-courbes.svg") center / contain no-repeat; opacity:.45;
}
.vfy{ display:grid; grid-template-columns:1fr 1fr; gap:72px; align-items:center; }
.vfy__lockup{
  display:inline-flex; align-items:center; gap:18px; margin-bottom:34px;
  padding:14px 26px; border-radius:100px; background:var(--white);
  box-shadow:0 18px 40px -24px rgba(10,38,32,.4);
}
.vfy__lockup img:first-child{ height:34px; width:auto; }
.vfy__lockup span{ font-size:22px; color:var(--gold); line-height:1; }
.vfy__lockup .vfy-logo{ height:26px; width:auto; }
.vfy__lead{ margin-top:22px; max-width:54ch; font-size:var(--fs-m); line-height:var(--lh-m); color:var(--ink-70); }
.vfy__cols{ display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:34px; }
.vfy__col{ padding:24px; border-radius:var(--radius); background:var(--white); border:1px solid rgba(59,195,175,.25); }
.vfy__ico{ width:46px; height:46px; margin-bottom:16px; border-radius:50%; display:grid; place-items:center; background:var(--vfy-soft); color:var(--vfy-ink); }
.vfy__ico .ico{ width:22px; height:22px; }
.vfy__col h3{ font-size:var(--fs-m); letter-spacing:var(--ls-m); margin-bottom:8px; }
.vfy__col p{ font-size:14px; line-height:1.6; color:var(--ink-70); }
.vfy__actions{ display:flex; flex-wrap:wrap; align-items:center; gap:28px; margin-top:34px; }
.vfy__actions .link-btn{ color:var(--vfy-ink); }
.vfy__fig{ position:relative; }
.vfy__fig > img{ width:100%; height:640px; object-fit:cover; border-radius:var(--radius); }
.vfy__fig::before{
  content:""; position:absolute; z-index:-1; inset:36px -24px -24px 36px; border-radius:var(--radius);
  background:var(--vfy); opacity:.2;
}
.vfy__badge{
  position:absolute; left:-32px; bottom:44px;
  display:flex; align-items:center; gap:14px;
  padding:16px 22px 16px 16px; border-radius:var(--radius);
  background:var(--white); box-shadow:0 24px 50px -22px rgba(10,38,32,.5);
}
.vfy__badge-ico{ width:48px; height:48px; border-radius:50%; display:grid; place-items:center; background:var(--vfy); color:var(--white); flex:none; }
.vfy__badge-ico .ico{ width:22px; height:22px; }
.vfy__badge small{ display:block; font-size:12px; color:var(--ink-60); margin-bottom:6px; }
.vfy__badge-logo{ height:22px; width:auto; }

.vfy-strip{ display:grid; grid-template-columns:420px 1fr; gap:64px; align-items:center; }
.vfy-strip__logo{
  display:grid; place-items:center; aspect-ratio:4/3; border-radius:var(--radius);
  background:var(--cream); position:relative; overflow:hidden;
}
.vfy-strip__logo::after{ content:""; position:absolute; right:-60px; bottom:-60px; width:220px; height:220px; border-radius:50%; background:var(--vfy); opacity:.18; }
.vfy-strip__logo img{ width:68%; height:auto; position:relative; z-index:1; }
.vfy-strip .btn{ margin-top:10px; }

.footer__vfy{
  display:inline-flex; flex-direction:column; gap:10px; margin-top:28px;
  padding:14px 18px; border-radius:var(--radius-s); border:1px solid var(--white-10);
  transition:border-color .25s ease;
}
.footer__vfy:hover{ border-color:rgba(59,195,175,.5); }
.footer__vfy span{ font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--white-70); }
.footer__vfy img{ height:22px; width:auto; }

/* =========================================================
   A PROPOS : CARINE
   ========================================================= */
.carine-sec{ position:relative; isolation:isolate; overflow:hidden; }
.carine-sec::before{
  content:""; position:absolute; z-index:-1; top:-120px; right:-240px; width:1000px; height:680px;
  background:url("../img/motif-courbes.svg") center / contain no-repeat; opacity:.6;
}
.carine-sec > .frame > .sec-pad{ padding-top:40px; }
.carine{ display:grid; grid-template-columns:480px 1fr; gap:72px; align-items:center; }
.carine--noimg{ grid-template-columns:1fr; }
.carine__fig{ position:relative; aspect-ratio:1/1.08; display:flex; align-items:flex-end; justify-content:center; }
.carine__fig::before, .carine__fig::after{
  content:""; position:absolute; left:10%; right:10%; bottom:0; top:14%;
  border-radius:240px 240px var(--radius) var(--radius);
}
.carine__fig::before{ background:linear-gradient(165deg, #C4BD7C 0%, var(--gold) 55%, #8F8A4C 100%); }
.carine__fig::after{ background:url("../img/motif-courbes.svg") 20% 30% / 640px auto no-repeat; opacity:.55; }
.carine__fig img{
  position:relative; z-index:1; height:104%; width:auto; max-width:none;
  filter:drop-shadow(0 24px 30px rgba(10,38,32,.25));
}
.carine__fig--photo img{ height:auto; width:100%; object-fit:cover; border-radius:var(--radius); filter:none; }
.carine__name{ margin-top:8px; font-family:var(--serif); font-style:italic; font-size:var(--fs-3xl); color:var(--moss); }
.carine .prose{ margin-top:22px; max-width:56ch; }
.carine .prose p{ font-size:17px; line-height:1.7; }
.carine__missions{ display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:28px; }
.carine__missions li{ display:flex; align-items:center; gap:12px; padding:12px 14px; border-radius:var(--radius-s); background:rgba(255,255,255,.7); color:var(--ink); font-size:15px; }
.carine__missions .ico{ width:34px; height:34px; padding:7px; border-radius:50%; background:var(--dark); color:var(--gold); }
.carine__actions{ display:flex; flex-wrap:wrap; align-items:center; gap:28px; margin-top:32px; }
.carine__actions .link-btn{ color:var(--dark); }

.zone--big span{ padding:12px 22px; font-size:15px; background:var(--cream); border-color:transparent; color:var(--ink); }

/* =========================================================
   CONTACT ET CTA
   ========================================================= */
.ccards{ position:relative; z-index:2; display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:-30px; padding-bottom:70px; }
.ccard{
  position:relative; display:flex; flex-direction:column; gap:6px;
  padding:28px 28px 30px; border-radius:var(--radius);
  background:var(--white); border:1px solid var(--ink-10); box-shadow:0 20px 40px -30px rgba(10,38,32,.35);
  transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.ccard:hover{ transform:translateY(-4px); box-shadow:var(--shadow); border-color:var(--gold); }
.ccard__badge{ width:50px; height:50px; margin-bottom:12px; border-radius:50%; display:grid; place-items:center; background:var(--sage); color:var(--dark); transition:background .25s ease, color .25s ease; }
.ccard__badge .ico{ width:23px; height:23px; }
.ccard:hover .ccard__badge{ background:var(--dark); color:var(--gold); }
.ccard__label{ font-size:12px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--moss); }
.ccard__ico{ top:30px; right:28px; }

.contact__box{ border-radius:var(--radius); }
.contact__box--dark{ background:var(--dark); border-color:transparent; color:var(--white-70); }
.contact__box--dark h3{ color:var(--white); }
.contact__box--dark .steps-mini li{ color:rgba(255,255,255,.8); }
.contact__box--dark .steps-mini span{ background:var(--gold); color:var(--dark); }
.contact__box--sage{ background:var(--sage); border-color:transparent; }
.field input, .field select, .field textarea{ border-radius:var(--radius-s); background-color:var(--cream); border-color:transparent; }
.field input:focus, .field select:focus, .field textarea:focus{ background-color:var(--white); }
.seg__row{ background:var(--cream); border-color:transparent; }

.locband{ border:0; border-radius:var(--radius); overflow:hidden; background:var(--dark); color:var(--white-70); }
.locband .sec-title{ color:var(--white); }
.locband__addr{ color:rgba(255,255,255,.82); }
.locband .btn--ghost{ border-color:rgba(255,255,255,.25); }

.cta{ position:relative; isolation:isolate; overflow:hidden; }
.cta::before{
  content:""; position:absolute; z-index:-1; top:-100px; right:-180px; width:1000px; height:680px;
  background:url("../img/motif-courbes.svg") center / contain no-repeat; opacity:.4;
}
.cta__person{ display:flex; align-items:center; gap:14px; margin-top:34px; }
.cta__person img{ width:62px; height:62px; border-radius:50%; object-fit:cover; object-position:center 0; background:linear-gradient(165deg, #C4BD7C, var(--gold)); border:2px solid var(--gold); }
.cta__person b{ display:block; color:var(--white); font-weight:600; }
.cta__person span{ display:block; font-size:13px; color:var(--white-70); }

.quote__fig--photo img{ border-radius:var(--radius); }
.service__fig img, .about__fig img{ border-radius:var(--radius-s); }
.media img{ border-radius:var(--radius); }

/* =========================================================
   RESPONSIVE V3
   ========================================================= */
@media (max-width:1100px){
  .phero--img .phero__in{ min-height:560px; }
  .lhead__row{ flex-direction:column; align-items:flex-start; gap:20px; }
  .ghero{ grid-template-columns:1fr; }
  .ghero__main img{ height:420px; }
  .ghero__side{ grid-template-rows:none; grid-template-columns:1fr 1fr; }
  .ghero__side img{ height:220px; }
  .gallery{ grid-template-columns:repeat(2,1fr); }
  .gbody{ grid-template-columns:1fr; gap:44px; }
  /* relative, pas static : sinon le motif .book::before (520px) n'est plus
     rogné par la carte et élargit la page sur mobile (dézoom possible). */
  .book{ position:relative; top:auto; }
  .gcard__media img{ height:260px; }
  .gcard__desc{ display:none; }
  .ggrid{ grid-template-columns:repeat(2,1fr); }
  .cards3{ grid-template-columns:1fr 1fr; }
  .cards4{ grid-template-columns:1fr 1fr; }
  .path{ grid-template-columns:1fr 1fr; }
  .path__item::after{ display:none; }
  .duo, .model, .vfy, .vfy-strip, .carine{ grid-template-columns:minmax(0,1fr); gap:44px; }
  .partner-card{ max-width:560px; }
  .vfy__fig > img{ height:460px; }
  .vfy__badge{ left:16px; }
  .vfy-strip__logo{ max-width:420px; }
  .carine__fig{ width:100%; max-width:400px; }
  .facts{ grid-template-columns:repeat(2,1fr); }
  .split__fig img{ height:380px; }
  .ccards{ grid-template-columns:1fr; }
}
@media (max-width:820px){
  .phero__in{ padding-block:22px 100px; }
  .phero--img .phero__in{ min-height:0; }
  .phero__body{ padding-top:44px; }
  .phero--img .phero__body{ padding-top:44px; }
  .phero--img::after{ background:linear-gradient(180deg, rgba(10,38,32,.78) 0%, rgba(10,38,32,.9) 100%); }
  .phero__fact{ min-width:0; flex:1 1 calc(50% - 6px); padding:12px 14px; }
  .phero__fact strong{ font-size:22px; }
  .hills{ height:40px; }

  .lhead .crumbs{ display:none; }
  .lhead__in{ padding-block:26px 78px; }
  .lhead__row{ margin-top:0; }
  .lhead__title{ font-size:30px; }
  .lhead__text{ font-size:14px; line-height:1.55; }
  .lhead__facts{ display:none; }
  .filters{ display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-top:-56px; padding:14px; }
  .filters__field label{ font-size:10px; padding-left:2px; }
  .filters select{ min-width:0; width:100%; font-size:13px; padding:10px 26px 10px 12px; background-position:right 8px center; background-size:13px; }
  .filters__count{ grid-column:1 / 3; margin-left:0; font-size:14px; }
  .filters__count b{ min-width:28px; height:28px; }
  .filters__reset{ justify-self:end; }
  .ggrid{ grid-template-columns:1fr; gap:36px; padding-top:30px; }
  .gcard__desc{ display:block; }
  .gcard__media img{ height:240px; }
  .gcard__go{ opacity:1; transform:none; }

  .gbody__title{ font-size:var(--fs-4xl); }
  .facts{ gap:8px; }
  .fact{ padding:12px; gap:10px; }
  .fact__ico{ width:38px; height:38px; }
  .fact strong{ font-size:20px; }
  .fact--txt{ grid-column:1 / -1; }
  .fact--txt strong{ font-size:17px; }
  .equip{ grid-template-columns:1fr; }
  .carte__map{ height:420px; }
  .carte__panel{ position:static; width:auto; border-radius:0; box-shadow:none; }

  .cards3, .cards4, .path, .choices, .offers, .vfy__cols, .carine__missions{ grid-template-columns:1fr; }
  .checks{ grid-template-columns:1fr; }
  .choice{ padding:30px 26px; }
  .vfy__lockup{ gap:12px; padding:12px 18px; }
  .vfy__lockup img:first-child{ height:26px; }
  .vfy__lockup .vfy-logo{ height:20px; }
  .vfy__fig > img{ height:360px; }
  .vfy__fig::before{ inset:24px -10px -14px 24px; }
  .vfy__badge{ left:12px; bottom:18px; padding:12px 16px 12px 12px; }
  .split__fig img{ height:300px; }
  .band-sec{ padding-bottom:64px; }
  .section--dark + .band-sec, .section--soft + .band-sec, .section--sage + .band-sec{ padding-top:64px; }
  .ccards{ margin-top:-20px; padding-bottom:50px; }
  .nav__drop{ min-width:0; padding:0 0 0 14px; border-radius:0; box-shadow:none; border:0; border-left:2px solid var(--gold); }
  .nav__drop a{ padding:10px 0; }
  .nav__drop a:hover{ background:none; }
  .nav__drop small{ display:none; }
  .nav__drop-ico{ width:34px; height:34px; }
}

/* =========================================================
   CONSENTEMENT COOKIES
   Refuser et accepter ont exactement le même poids visuel.
   ========================================================= */
.consent{
  position:fixed; z-index:90; left:24px; bottom:24px; width:min(520px, calc(100% - 32px));
  padding:24px 24px 22px; border-radius:var(--radius);
  background:var(--white); color:var(--ink-70);
  box-shadow:0 30px 70px -20px rgba(10,38,32,.45), 0 0 0 1px rgba(15,53,44,.06);
  animation:consentIn .45s cubic-bezier(.2,.7,.3,1) both;
}
.consent[hidden]{ display:none; }
@keyframes consentIn{ from{ opacity:0; transform:translateY(16px) } to{ opacity:1; transform:none } }
.consent__title{ font-family:var(--serif); font-size:var(--fs-l); color:var(--ink); margin-bottom:8px; }
.consent__text{ font-size:14px; line-height:1.6; }
.consent__text a, .cprefs a{ color:var(--moss); font-weight:600; border-bottom:1px solid currentColor; }
.consent__btns{ display:flex; flex-wrap:wrap; gap:8px; margin-top:18px; }
.cbtn{
  flex:1 1 auto; min-height:44px; padding:10px 18px; border-radius:100px;
  font-size:14px; font-weight:600; text-align:center;
  background:var(--dark); color:var(--white); border:1px solid var(--dark);
  transition:background .2s ease, color .2s ease, border-color .2s ease;
}
.cbtn:hover{ background:var(--forest-deep); }
.cbtn--line{ background:transparent; color:var(--dark); border-color:rgba(15,53,44,.25); }
.cbtn--line:hover{ background:var(--cream); border-color:var(--dark); }

.cprefs{
  width:min(600px, calc(100% - 32px)); max-height:calc(100vh - 48px); overflow:auto;
  padding:32px; border:0; border-radius:var(--radius);
  background:var(--white); color:var(--ink-70); box-shadow:0 40px 90px -20px rgba(10,38,32,.55);
}
.cprefs::backdrop{ background:rgba(10,38,32,.55); -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px); }
.cprefs__title{ font-size:var(--fs-2xl); letter-spacing:var(--ls-2xl); margin-bottom:8px; }
.cprefs__intro{ font-size:14px; line-height:1.6; margin-bottom:18px; }
.cprefs__row{
  display:flex; align-items:center; justify-content:space-between; gap:20px;
  padding:18px 20px; margin-bottom:10px; border-radius:var(--radius-s); background:var(--cream);
}
.cprefs__row p{ font-size:13px; line-height:1.55; }
.cprefs__h{ font-weight:600; font-size:15px !important; color:var(--ink); margin-bottom:4px; }
.cprefs__h label{ cursor:pointer; }
.cprefs__always{ flex:none; font-size:12px; font-weight:600; color:var(--moss); white-space:nowrap; }
.cprefs__more{ margin-top:16px; font-size:13px; text-align:center; }

.switch{
  appearance:none; -webkit-appearance:none; flex:none; position:relative; cursor:pointer;
  width:50px; height:28px; border-radius:100px; background:#C9C4B4; transition:background .2s ease;
}
.switch::after{
  content:""; position:absolute; top:3px; left:3px; width:22px; height:22px; border-radius:50%;
  background:var(--white); box-shadow:0 2px 6px rgba(0,0,0,.2); transition:transform .22s cubic-bezier(.2,.7,.3,1);
}
.switch:checked{ background:var(--dark); }
.switch:checked::after{ transform:translateX(22px); background:var(--gold); }
.switch:focus-visible{ outline:2px solid var(--gold); outline-offset:3px; }

.footer__legal{ flex-wrap:wrap; gap:10px 24px; }
.footer__cookies{ font-size:inherit; color:var(--white-70); border-bottom:1px solid var(--white-10); padding:0 0 1px; }
.footer__cookies:hover{ color:var(--white); border-color:var(--gold); }
.check label a{ color:var(--moss); font-weight:600; border-bottom:1px solid currentColor; }

/* Carte en attente d'accord */
.carte__gate{
  display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center;
  height:100%; padding:32px 32px 32px 372px;
  background:
    radial-gradient(circle at 70% 40%, rgba(173,168,98,.18), transparent 55%),
    url("../img/motif-courbes.svg") center / 1100px auto no-repeat,
    var(--cream);
}
.carte__gate-ico{ width:62px; height:62px; border-radius:50%; display:grid; place-items:center; background:var(--dark); color:var(--gold); margin-bottom:18px; }
.carte__gate-ico svg{ width:28px; height:28px; }
.carte__gate-title{ font-family:var(--serif); font-size:var(--fs-xl); color:var(--ink); }
.carte__gate-text{ max-width:44ch; margin:8px 0 22px; font-size:14px; line-height:1.6; }
.carte__gate-link{ margin-top:14px; font-size:13px; color:var(--moss); border-bottom:1px solid currentColor; }

/* =========================================================
   PAGES LÉGALES
   ========================================================= */
.legal-wrap{ display:grid; grid-template-columns:300px minmax(0,1fr); gap:72px; align-items:start; }
.legal__side{ position:sticky; top:124px; display:flex; flex-direction:column; gap:16px; max-height:calc(100vh - 150px); overflow:auto; }
.legal__toc, .legal__docs{ padding:22px 22px 18px; border-radius:var(--radius); background:var(--cream); }
.legal__docs{ background:var(--sage); display:flex; flex-direction:column; gap:8px; }
.legal__toc-h{ font-size:11px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--moss); margin-bottom:12px; }
.legal__toc ol{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:2px; }
.legal__toc a{ display:flex; gap:8px; padding:6px 10px; margin-inline:-10px; border-radius:8px; font-size:14px; line-height:1.4; color:var(--ink-70); transition:background .2s ease, color .2s ease; }
.legal__toc a:hover, .legal__toc a.is-on{ background:var(--white); color:var(--dark); }
.legal__toc span{ flex:none; min-width:44px; font-weight:600; color:var(--gold); }
.legal__toc--cgl a{ font-size:12px; letter-spacing:.02em; }
.legal__docs a{ font-size:14px; color:var(--dark); font-weight:600; }
.legal__docs a:hover{ color:var(--moss); }

.legal{ max-width:760px; }
.legal__maj{ display:inline-flex; align-items:center; gap:8px; padding:8px 14px; margin-bottom:12px; border-radius:100px; background:var(--cream); font-size:13px; color:var(--ink-60); }
.legal__maj .ico{ width:16px; height:16px; color:var(--gold); }
.legal__sec{ padding-top:36px; scroll-margin-top:120px; }
.legal__sec + .legal__sec{ border-top:1px solid var(--ink-10); margin-top:36px; }
.legal h2{ font-size:var(--fs-2xl); letter-spacing:var(--ls-2xl); margin-bottom:16px; }
.legal p, .legal li{ font-size:16px; line-height:1.75; color:var(--ink-70); }
.legal p + p, .legal p + ul, .legal ul + p, .legal p + .legal__table{ margin-top:14px; }
.legal ul{ margin-top:10px; display:flex; flex-direction:column; gap:8px; }
.legal li{ position:relative; padding-left:24px; }
.legal li::before{ content:""; position:absolute; left:4px; top:12px; width:7px; height:7px; border-radius:50%; background:var(--gold); }
.legal strong{ color:var(--ink); font-weight:600; }
.legal a:not(.btn){ color:var(--moss); font-weight:600; border-bottom:1px solid currentColor; overflow-wrap:anywhere; }
.legal a:not(.btn):hover{ color:var(--dark); }
.legal--cgl h2{ font-family:var(--sans); font-size:17px; font-weight:600; letter-spacing:.04em; line-height:1.4; color:var(--ink); }
.legal__no{ display:block; margin-bottom:6px; font-family:var(--serif); font-size:15px; font-weight:500; letter-spacing:0; color:var(--gold); }
.legal .btn{ margin-top:6px; }

.legal__table{ overflow-x:auto; border-radius:var(--radius-s); border:1px solid var(--ink-10); }
.legal table{ width:100%; min-width:640px; border-collapse:collapse; font-size:14px; }
.legal th{ text-align:left; padding:12px 14px; background:var(--dark); color:var(--white); font-weight:600; font-size:13px; }
.legal td{ padding:14px; vertical-align:top; border-top:1px solid var(--ink-10); line-height:1.55; color:var(--ink-70); }
.legal td small{ font-size:12px; color:var(--ink-60); }
.legal code{ font-size:13px; padding:2px 6px; border-radius:4px; background:var(--cream); color:var(--ink); }
.tag{ display:inline-block; padding:4px 10px; border-radius:100px; font-size:12px; font-weight:600; background:var(--sage); color:var(--dark); }
.tag--ext{ background:var(--sand); }

@media (max-width:1100px){
  .legal-wrap{ grid-template-columns:minmax(0,1fr); gap:32px; }
  .legal__side{ position:static; max-height:none; }
  .legal__toc ol{ display:grid; grid-template-columns:1fr 1fr; gap:2px 16px; }
  .carte__gate{ padding:32px; }
}
@media (max-width:820px){
  .consent{ left:12px; right:12px; bottom:12px; width:auto; padding:20px 18px 18px; }
  .has-consent-banner body{ padding-bottom:300px; }
  .consent__btns .cbtn{ flex:1 1 40%; }
  .consent__btns .cbtn--line{ order:3; flex-basis:100%; }
  .cprefs{ padding:24px 20px; }
  .cprefs__row{ padding:14px; }
  .legal__toc ol{ grid-template-columns:1fr; }
  .legal h2{ font-size:var(--fs-xl); }
  .carte__gate{ padding:28px 22px; }
}

/* ---------- Selecteur de langue (FR / NL / EN) ---------- */
.lang{
  display:flex; align-items:center; gap:2px; flex:none;
  padding:3px; border:1px solid var(--ink-10); border-radius:999px;
}
.lang a{
  min-width:34px; padding:6px 8px; border-radius:999px; text-align:center;
  font-size:12px; font-weight:600; letter-spacing:.06em; line-height:1;
  color:var(--ink-60); transition:background .2s ease, color .2s ease;
}
.lang a:hover{ color:var(--ink); background:var(--cream); }
.lang a.is-on{ background:var(--dark); color:var(--white); }
@media (max-width:820px){
  .lang{ margin-left:auto; }
  .nav__burger{ margin-left:0; }
}
/* Le selecteur prend de la place : la barre se resserre avant de passer au menu mobile */
.nav__link{ white-space:nowrap; }
@media (max-width:1180px) and (min-width:821px){
  .nav__inner{ gap:16px; }
  .nav__menu{ gap:20px; }
  .nav__cta .btn__ico{ display:none; }
}
@media (max-width:1000px) and (min-width:821px){
  .nav__menu{ gap:16px; }
  .nav__cta{ display:none; }
}
