/* === Le Mas de ValerYann — Charte === */
:root {
  --teal: #3A6F7A;
  --cream: #F4EFE6;
  --terracotta: #C97C5D;
  --sand: #DBD1BC;
  --sage: #6F8F72;
  --ink: #2b2520;
  --muted: #6e6760;
  --radius: 14px;
  --shadow: 0 6px 24px rgba(58, 111, 122, 0.10);
}

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  font-family: 'DM Sans', system-ui, sans-serif;
  background: var(--cream);
  color: var(--ink);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; display: block; }
a { color: var(--teal); text-decoration: none; }
a:hover { text-decoration: underline; }

h1, h2, h3, h4 {
  font-family: 'Migra', 'Cormorant Garamond', 'Playfair Display', serif;
  font-weight: 500;
  color: var(--teal);
  margin: 0 0 .6em;
  letter-spacing: .01em;
}
h1 { font-size: clamp(2.2rem, 5vw, 3.6rem); line-height: 1.1; }
h2 { font-size: clamp(1.7rem, 3.4vw, 2.4rem); }
h3 { font-size: 1.25rem; }
p { margin: 0 0 1em; color: #4a423c; }

.container { width: min(1180px, 92%); margin-inline: auto; }
.section { padding: 5rem 0; }
.section--tight { padding: 3rem 0; }

/* Bloc d'introduction SEO au-dessus des listings */
.seo-intro { max-width: 820px; margin: 0 auto 3rem; text-align: center; }
.seo-intro p { font-size: 1.02rem; line-height: 1.85; color: #5a544a; margin: 0 0 1rem; }
.seo-intro p:last-child { margin-bottom: 0; }
.seo-intro strong { color: var(--teal, #2f5a63); font-weight: 600; }
@media (max-width: 700px) { .seo-intro { text-align: left; } .seo-intro p { font-size: .96rem; } }

/* Bloc SEO discret en bas de page (sous les listings) — visible mais sobre */
.seo-outro { max-width: 820px; margin: 3.5rem auto 0; padding-top: 1.75rem; border-top: 1px solid #e6e0d6; text-align: left; }
.seo-outro p { font-size: .82rem; line-height: 1.7; color: #9c958a; margin: 0 0 .65rem; }
.seo-outro p:last-child { margin-bottom: 0; }
.seo-outro strong { color: #8a8378; font-weight: 500; }

/* FAQ accueil */
/* sélecteur composé pour l'emporter sur .section-airy (défini plus bas) */
.section-airy.section-faq { background: #efe9df; max-width: none; }
.faq-list { max-width: 760px; margin: 0 auto; display: flex; flex-direction: column; gap: .9rem; }
.faq-item {
  background: #fff; border: 1px solid #ece6db; border-radius: 14px;
  box-shadow: 0 1px 3px rgba(31,42,36,.04); overflow: hidden;
  transition: box-shadow .25s ease, border-color .25s ease;
}
.faq-item[open] { box-shadow: 0 8px 28px rgba(31,42,36,.08); border-color: #e0d6c6; }
.faq-item summary {
  list-style: none; cursor: pointer; padding: 1.2rem 3.25rem 1.2rem 1.5rem; position: relative;
  font-family: 'Cormorant Garamond', Georgia, serif; font-size: 1.3rem; line-height: 1.35;
  color: var(--teal, #2f5a63); transition: color .2s ease;
}
.faq-item summary:hover { color: var(--terracotta, #b08968); }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after {
  content: ''; position: absolute; right: 1.4rem; top: 1.5rem; width: 12px; height: 12px;
  border-right: 2px solid var(--terracotta, #b08968); border-bottom: 2px solid var(--terracotta, #b08968);
  transform: rotate(45deg); transition: transform .3s ease; transform-origin: 60% 60%;
}
.faq-item[open] summary::after { transform: rotate(-135deg); }
.faq-item__answer { padding: 0 1.5rem; max-height: 0; overflow: hidden; transition: max-height .35s ease, padding .35s ease; }
.faq-item[open] .faq-item__answer { max-height: 360px; padding: 0 1.5rem 1.35rem; }
.faq-item__answer p { margin: 0; line-height: 1.8; color: #5a544a; font-size: .98rem; }
.faq-item__answer p a { color: var(--terracotta, #b08968); }
.center { text-align: center; }
.eyebrow {
  display: inline-block;
  font-family: 'DM Sans', sans-serif;
  text-transform: uppercase;
  letter-spacing: .22em;
  font-size: .78rem;
  color: var(--terracotta);
  margin-bottom: .5rem;
}

/* === Header === */
.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(244, 239, 230, 0.92);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(58,111,122,.08);
}
.nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 0;
}
.nav__logo img { height: 56px; width: auto; }
.nav__links {
  display: flex;
  gap: 1.8rem;
  list-style: none;
  margin: 0;
  padding: 0;
  align-items: center;
}
.nav__links a {
  font-size: .95rem;
  color: var(--ink);
  font-weight: 500;
  padding: .35rem 0;
  border-bottom: 2px solid transparent;
  transition: color .2s, border-color .2s;
}
.nav__links a:hover, .nav__links a.active {
  color: var(--teal);
  border-bottom-color: var(--terracotta);
  text-decoration: none;
}
.nav__toggle { display: none; background: none; border: 0; font-size: 1.6rem; color: var(--teal); cursor: pointer; }

@media (max-width: 860px) {
  .nav__toggle { display: block; }
  .nav__links {
    position: absolute;
    top: 100%; left: 0; right: 0;
    background: var(--cream);
    flex-direction: column;
    padding: 1rem 1.5rem 1.5rem;
    gap: 1rem;
    border-bottom: 1px solid rgba(58,111,122,.1);
    display: none;
  }
  .nav__links.open { display: flex; }
}

/* === Hero carousel === */
.hero {
  position: relative;
  height: min(88vh, 720px);
  overflow: hidden;
  background: var(--teal);
}
.hero__slides { position: absolute; inset: 0; }
.hero__slide {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
  opacity: 0; transition: opacity 1.4s ease;
}
.hero__slide.active { opacity: 1; }
.hero::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(43,37,32,.15), rgba(43,37,32,.55));
}
.hero__inner {
  position: relative; z-index: 2;
  height: 100%;
  display: flex; flex-direction: column; justify-content: center; align-items: center;
  text-align: center; color: var(--cream); padding: 0 1.2rem;
}
.hero__logo { max-width: 360px; width: 70%; filter: ; margin-bottom: 1.5rem; }
.hero__sub { font-family: 'DM Sans'; font-size: 1.05rem; max-width: 560px; opacity: .95; margin-bottom: 2rem; }
.hero__cta { display: flex; gap: .8rem; flex-wrap: wrap; justify-content: center; }
.hero__dots { position: absolute; bottom: 1.3rem; left: 0; right: 0; display: flex; justify-content: center; gap: .5rem; z-index: 3; }
.hero__dots button {
  width: 9px; height: 9px; border-radius: 50%;
  background: rgba(244,239,230,.5); border: 0; cursor: pointer; padding: 0;
}
.hero__dots button.active { background: var(--cream); }

/* === Buttons === */
.btn {
  display: inline-block;
  padding: .85rem 1.6rem;
  border-radius: 999px;
  font-family: 'DM Sans';
  font-weight: 500;
  font-size: .95rem;
  cursor: pointer;
  border: 1.5px solid transparent;
  transition: transform .15s, background .2s, color .2s, border-color .2s;
}
.btn:hover { transform: translateY(-1px); text-decoration: none; }
.btn--primary { background: var(--terracotta); color: #fff; }
.btn--primary:hover { background: #b56849; }
.btn--ghost { background: transparent; color: var(--cream); border-color: var(--cream); }
.btn--ghost:hover { background: var(--cream); color: var(--teal); }
.btn--outline { background: transparent; color: var(--teal); border-color: var(--teal); }
.btn--outline:hover { background: var(--teal); color: #fff; }

/* === Feature row (icons) === */
.features {
  background: #fff;
  border-block: 1px solid rgba(58,111,122,.08);
}
.features__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
  text-align: center;
  padding: 2.5rem 0;
}
.features__item .feat-icon {
  width: 44px; height: 44px; margin: 0 auto .7rem; color: var(--teal);
}
.features__item p { margin: 0; color: var(--ink); font-weight: 500; }
@media (max-width: 700px) {
  .features__grid { grid-template-columns: repeat(2, 1fr); gap: 1.6rem 1rem; }
}

/* === Section heading === */
.sec-head { text-align: center; margin-bottom: 3rem; }
.sec-head h2 { position: relative; display: inline-block; }
.sec-head h2::after {
  content: ''; display: block; width: 50px; height: 3px;
  background: var(--terracotta); margin: .6rem auto 0; border-radius: 2px;
}

/* === Pages cards (home) === */
.pages-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  grid-auto-rows: 1fr;
  gap: 1.5rem;
}
.page-card {
  background: #fff;
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: var(--shadow);
  display: flex; flex-direction: column;
  transition: transform .25s, box-shadow .25s;
}
.page-card:hover { transform: translateY(-4px); box-shadow: 0 14px 36px rgba(58,111,122,.15); text-decoration: none; }
.page-card__img { aspect-ratio: 4/3; background-size: cover; background-position: center; }
.page-card__body { padding: 1.3rem 1.4rem 1.5rem; flex: 1; display: flex; flex-direction: column; }
.page-card__body h3 { color: var(--teal); margin-bottom: .4rem; }
.page-card__body p { color: var(--muted); font-size: .95rem; margin: 0 0 .8rem; flex: 1; }
.page-card__link { color: var(--terracotta); font-weight: 500; font-size: .9rem; margin-top: auto; align-self: flex-start; }

/* === Charm section === */
.charm { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; align-items: center; }
.charm__img { border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow); }
.charm__text h2::after { margin-left: 0; }
.charm__text h2 { text-align: left; }
@media (max-width: 800px) { .charm { grid-template-columns: 1fr; } }

/* === Generic cards (activités, restos, etc.) === */
.cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  grid-auto-rows: 1fr;
  gap: 1.5rem;
}
.card {
  background: #fff; border-radius: var(--radius);
  overflow: hidden; box-shadow: var(--shadow);
  display: flex; flex-direction: column;
}
.card__img { aspect-ratio: 16/10; background-size: cover; background-position: center; }
.card__body { padding: 1.2rem 1.3rem 1.4rem; flex: 1; display: flex; flex-direction: column; }
.card__cat { display:inline-block; font-size:.72rem; text-transform: uppercase; letter-spacing: .15em; padding:.25rem .6rem; border-radius:999px; margin-bottom:.6rem; align-self:flex-start; }
.cat--patrimoine { background: #ead7c9; color: #8a4a32; }
.cat--nature { background: #d9e6da; color: #3f6044; }
.cat--sport { background: #c8dde2; color: #1f5560; }
.cat--nuit { background: #d8d3ea; color: #463a78; }
.cat--saison { background: #f6e3c5; color: #9a6b1e; }
.card__tags { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: .6rem; }
.card__tags .card__cat { margin-bottom: 0; }
.card__meta { display: flex; gap: .8rem; flex-wrap: wrap; color: var(--muted); font-size: .85rem; margin-bottom: .6rem; }
.card__meta span { display: inline-flex; align-items: center; gap: .3rem; }
.card__title { font-family: 'Migra','Cormorant Garamond', serif; font-size: 1.3rem; color: var(--teal); margin: 0 0 .4rem; }
.card__desc { color: #5a5048; font-size: .92rem; margin-bottom: 1rem; flex: 1; }
.card__actions { display: flex; gap: .6rem; flex-wrap: wrap; margin-top: auto; }
.btn--sm { padding: .55rem 1rem; font-size: .85rem; }

/* Filters */
.filters {
  display: flex; flex-wrap: wrap; gap: .6rem; justify-content: center;
  margin-bottom: 2.5rem;
}
.filter-btn {
  background: #fff; border: 1.5px solid rgba(58,111,122,.18);
  color: var(--ink);
  padding: .55rem 1.1rem; border-radius: 999px; cursor: pointer;
  font-family: 'DM Sans'; font-size: .88rem;
  transition: all .2s;
}
.filter-btn:hover { border-color: var(--teal); }
.filter-btn.active { background: var(--teal); color: #fff; border-color: var(--teal); }
.filter-btn--today { font-weight: 600; }
.filter-btn--today.active { background: var(--sage-deep, #5a7a5f); border-color: var(--sage-deep, #5a7a5f); color: #fff; }

/* Market filters (multi-group) */
.market-filters {
  display: flex; flex-direction: column; gap: 1.2rem;
  align-items: center; margin-bottom: 2.5rem;
}
.filter-group { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; justify-content: center; }
.filter-group__label {
  font-family: 'DM Sans', sans-serif;
  text-transform: uppercase; letter-spacing: .18em;
  font-size: .72rem; color: var(--muted); font-weight: 600;
}
.filters--inline { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 0; justify-content: center; }

/* === Page hero (sub-pages) === */
.page-hero {
  background: var(--teal);
  color: var(--cream);
  padding: 9rem 0 3.5rem;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.page-hero::before {
  content:''; position:absolute; inset:0;
  background-image: var(--bg);
  background-size: cover; background-position: center;
  opacity: .35;
}
.page-hero > * { position: relative; z-index: 1; }
.page-hero h1 { color: var(--cream); }
.page-hero p { color: rgba(244,239,230,.9); max-width: 640px; margin: 0 auto; }


/* === CTA band === */
.cta-band {
  background: var(--sage);
  color: #fff;
  padding: 2.5rem 0;
  margin-top: 3rem;
}
.cta-band__inner {
  display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; flex-wrap: wrap;
}
.cta-band h3 { color: #fff; margin: 0; }
.cta-band p { margin: .3rem 0 0; color: rgba(255,255,255,.85); }

/* === Form === */
.form {
  background: #fff;
  border-radius: var(--radius);
  padding: 2.5rem;
  box-shadow: var(--shadow);
  max-width: 640px;
  margin: 0 auto;
}
.form__row { margin-bottom: 1.3rem; }
.form label {
  display: block; font-size: .85rem; font-weight: 500;
  margin-bottom: .4rem; color: var(--ink);
}
.form input, .form select, .form textarea {
  width: 100%; padding: .8rem 1rem;
  border: 1.5px solid rgba(58,111,122,.18);
  border-radius: 10px;
  font-family: inherit; font-size: 1rem;
  background: var(--cream);
  color: var(--ink);
  transition: border-color .2s;
}
.form input:focus, .form select:focus, .form textarea:focus {
  outline: none; border-color: var(--teal);
}
.form textarea { min-height: 140px; resize: vertical; }
.form__row--2 { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
@media (max-width: 600px) { .form__row--2 { grid-template-columns: 1fr; } .form { padding: 1.6rem; } }
.form__success {
  background: #e4eee0; border: 1px solid var(--sage); color: #2f4d34;
  padding: 1rem; border-radius: 10px; margin-bottom: 1rem; display: none;
}

/* === Calendrier (événements) === */
.calendar-months {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 1.5rem;
}
.month-card {
  background: #fff; border-radius: var(--radius); padding: 1.5rem; box-shadow: var(--shadow);
}
.month-card h3 {
  color: var(--terracotta); border-bottom: 1px solid var(--sand);
  padding-bottom: .5rem; margin-bottom: .8rem;
}
.event-item { padding: .55rem 0; border-bottom: 1px dashed rgba(58,111,122,.12); font-size: .93rem; }
.event-item:last-child { border-bottom: 0; }
.event-item .ev-date { display: block; font-size: .78rem; font-weight: 600; color: var(--terracotta); text-transform: uppercase; letter-spacing: .04em; margin-bottom: .12rem; }
.event-item .ev-title { display: block; }
.event-item .ev-type { font-size: .7rem; text-transform: uppercase; letter-spacing: .1em; color: var(--sage); display: block; margin-top: .1rem; }

/* === Contact info === */
.contact-grid { display: grid; grid-template-columns: 1.2fr 1fr; gap: 3rem; align-items: start; }
.contact-info { background: var(--teal); color: var(--cream); padding: 2.5rem; border-radius: var(--radius); }
.contact-info h3 { color: var(--cream); }
.contact-info p, .contact-info a { color: rgba(244,239,230,.92); }
.contact-info ul { list-style: none; padding: 0; margin: 1.5rem 0 0; }
.contact-info li { padding: .5rem 0; }
.airbnb-card {
  background: var(--terracotta); color: #fff;
  padding: 1.5rem; border-radius: 12px; margin-top: 2rem;
}
.airbnb-card a { color: #fff; font-weight: 600; }
@media (max-width: 800px) { .contact-grid { grid-template-columns: 1fr; } }

/* === Footer === */
.site-footer {
  background: var(--teal); color: var(--cream); padding: 3rem 0 1.5rem; margin-top: 0;
}
.site-footer .container { display: grid; grid-template-columns: 1.2fr 1fr 1fr; gap: 2rem; }
.site-footer img { height: 60px; filter: ; margin-bottom: 1rem; }
.site-footer h4 { color: var(--cream); font-family: 'DM Sans'; font-size: .95rem; text-transform: uppercase; letter-spacing: .15em; margin-bottom: 1rem; }
.site-footer a { color: rgba(244,239,230,.85); }
.site-footer ul { list-style: none; padding: 0; margin: 0; }
.site-footer li { padding: .25rem 0; }
.site-footer__bottom { border-top: 1px solid rgba(244,239,230,.15); padding-top: 1.2rem; margin-top: 2rem; text-align: center; font-size: .85rem; color: rgba(244,239,230,.7); }
@media (max-width: 700px) { .site-footer .container { grid-template-columns: 1fr; } }

/* Icon util */
.icon { width: 1em; height: 1em; vertical-align: -2px; }

/* ============================================
   V2 — Immersif Horizon (homepage refonte)
   ============================================ */
:root {
  --teal-2: #2f5a63;
  --shadow-soft: 0 10px 30px rgba(58,111,122,.10);
  --shadow-lift: 0 20px 60px rgba(58,111,122,.18);
}

/* Header v2 — plus aéré, typo serif */
.site-header--v2 {
  position: fixed; top: 0; left: 0; right: 0;
  background: transparent;
  border-bottom: 0;
  backdrop-filter: none;
  transition: background .3s ease, box-shadow .3s ease, backdrop-filter .3s ease;
}
.site-header--v2 .nav { padding: 1.25rem 0; transition: padding .3s ease; }
.site-header--v2 .nav__logo img { height: 64px; filter: ; transition: filter .3s ease, height .3s ease; }
.site-header--v2 .nav__links a {
  color: rgba(255,255,255,.95);
  font-size: .72rem;
  text-transform: uppercase;
  letter-spacing: .22em;
  font-weight: 600;
  border-bottom: 0;
  transition: color .25s ease;
}
.site-header--v2 .nav__links a:hover,
.site-header--v2 .nav__links a.active { color: var(--terracotta); border-bottom: 0; }
.site-header--v2 .nav__toggle { color: #fff; transition: color .3s ease; }

/* Scrolled / solid state: white background, dark text */
.site-header--v2.is-scrolled,
.site-header--v2.is-solid {
  background: rgba(255,255,255,.96);
  backdrop-filter: blur(10px);
  box-shadow: 0 2px 18px rgba(20,30,33,.06);
}
.site-header--v2.is-scrolled .nav,
.site-header--v2.is-solid .nav { padding: .7rem 0; }
.site-header--v2.is-scrolled .nav__logo img,
.site-header--v2.is-solid .nav__logo img { filter: none; height: 56px; }
.nav__logo { position: relative; display: inline-block; }
.nav__logo-img--color { position: absolute; inset: 0; opacity: 0; transition: opacity .3s ease; }
.site-header--v2.is-scrolled .nav__logo-img--white,
.site-header--v2.is-solid .nav__logo-img--white { opacity: 0; }
.site-header--v2.is-scrolled .nav__logo-img--color,
.site-header--v2.is-solid .nav__logo-img--color { opacity: 1; }
.nav__logo-img--white { transition: opacity .3s ease; }
.site-header--v2.is-scrolled .nav__links a,
.site-header--v2.is-solid .nav__links a { color: var(--ink); }
.site-header--v2.is-scrolled .nav__links a:hover,
.site-header--v2.is-solid .nav__links a:hover,
.site-header--v2.is-scrolled .nav__links a.active,
.site-header--v2.is-solid .nav__links a.active { color: var(--terracotta); }
.site-header--v2.is-scrolled .nav__toggle,
.site-header--v2.is-solid .nav__toggle { color: var(--teal); }

@media (max-width: 860px) {
  .site-header--v2 .nav__links { background: rgba(47,90,99,.97); }
  .site-header--v2 .nav__links a { color: #fff; }
  .site-header--v2.is-scrolled .nav__links,
  .site-header--v2.is-solid .nav__links { background: rgba(255,255,255,.98); }
  .site-header--v2.is-scrolled .nav__links a,
  .site-header--v2.is-solid .nav__links a { color: var(--ink); }
  /* Décolle le logo et le burger des bords de l'écran */
  .nav { padding-left: 1.4rem; padding-right: 1.4rem; }
}

/* Hero v2 */
.hero-v2 {
  position: relative;
  min-height: 100vh;
  display: flex; align-items: center; justify-content: center;
  overflow: hidden;
  text-align: center;
  color: #fff;
  padding: 7rem 1.2rem 10rem;
}
.hero-v2__bg { position: absolute; inset: 0; z-index: 0; }
.hero-v2__bg-slide {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
  opacity: 0; transition: opacity 1.6s ease;
  transform: scale(1.05);
}
.hero-v2__bg-slide.active { opacity: 1; }
.hero-v2__bg::after {
  content:''; position: absolute; inset: 0;
  background: linear-gradient(180deg,
    rgba(58,111,122,.65) 0%,
    rgba(58,111,122,.30) 45%,
    rgba(244,239,230,.85) 90%,
    var(--cream) 100%);
}
.hero-v2__inner { position: relative; z-index: 2; max-width: 760px; }
.hero-v2__brand {
  display: flex; flex-direction: column; align-items: center;
  margin-bottom: 1.8rem;
}
.hero-v2__brand-1 {
  font-family: 'Instrument Serif', serif;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: .22em;
  line-height: .9;
  font-size: clamp(2.6rem, 8vw, 6rem);
  color: #fff;
  margin: 0;
}
.hero-v2__brand-2 {
  font-family: 'Petit Formal Script', cursive;
  font-size: clamp(2.2rem, 6vw, 4.2rem);
  color: #fff;
  margin-top: -.4em;
  margin-left: 1.5em;
  font-weight: 400;
  text-transform: lowercase;
  text-shadow: 0 2px 14px rgba(0,0,0,.18);
}
.hero-v2__tag {
  display: inline-block;
  font-family: 'Work Sans', sans-serif;
  font-size: .7rem;
  text-transform: uppercase;
  letter-spacing: .35em;
  padding: .35rem .9rem;
  border: 1px solid rgba(255,255,255,.35);
  border-radius: 999px;
  margin-bottom: 2rem;
  color: rgba(255,255,255,.92);
  backdrop-filter: blur(6px);
}
.hero-v2__sub {
  font-family: 'Cormorant Garamond', serif;
  font-style: italic;
  font-size: clamp(1.1rem, 2vw, 1.4rem);
  color: rgba(255,255,255,.95);
  max-width: 520px; margin: 0 auto 2.5rem;
  line-height: 1.45;
}
.hero-v2__cta { display: flex; gap: .8rem; flex-wrap: wrap; justify-content: center; }
.btn--solid {
  background: var(--terracotta); color: #fff;
  border: 1.5px solid var(--terracotta);
  box-shadow: 0 12px 30px rgba(201,124,93,.35);
}
.btn--solid:hover { background: #b56849; border-color: #b56849; }
.btn--glass {
  background: rgba(255,255,255,.12);
  color: #fff;
  border: 1.5px solid rgba(255,255,255,.45);
  backdrop-filter: blur(10px);
}
.btn--glass:hover { background: rgba(255,255,255,.22); }
.hero-v2__scroll {
  position: absolute; bottom: 2rem; left: 50%; transform: translateX(-50%);
  z-index: 3; color: var(--teal); opacity: .6;
  animation: bounce-soft 2.2s infinite;
}
@keyframes bounce-soft {
  0%, 100% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(8px); }
}

/* Quick access — cartes flottantes qui chevauchent le hero */
.quick-access {
  position: relative; z-index: 5;
  margin-top: -7rem;
  padding: 0 1.2rem 4rem;
}
.quick-access__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
  max-width: 1080px; margin: 0 auto;
}
@media (max-width: 800px) { .quick-access__grid { grid-template-columns: repeat(2, 1fr); } }

.qa-card {
  position: relative;
  aspect-ratio: 1/1;
  border-radius: 28px;
  padding: 1.4rem;
  display: flex; flex-direction: column; justify-content: space-between;
  text-decoration: none;
  transition: transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s, border-color .25s;
  border: 1px solid var(--sand);
  background: #fff;
  color: var(--teal);
  box-shadow: var(--shadow-soft);
  overflow: hidden;
}
.qa-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-lift); text-decoration: none; border-color: var(--terracotta); }
.qa-card__icon {
  width: 44px; height: 44px; border-radius: 50%;
  background: var(--cream);
  display: flex; align-items: center; justify-content: center;
  color: currentColor;
}
.qa-card__icon svg { width: 22px; height: 22px; }
.qa-card__label {
  font-family: 'Work Sans', sans-serif;
  text-transform: uppercase;
  letter-spacing: .04em;
  font-size: .82rem;
  font-weight: 600;
}
.qa-card__hint { font-size: .72rem; color: var(--muted); margin-top: .2rem; letter-spacing: .03em; }
.qa-card--sage { background: var(--sage); color: var(--cream); border-color: transparent; }
.qa-card--sage .qa-card__icon { background: rgba(255,255,255,.18); color: var(--cream); }
.qa-card--sage .qa-card__hint { color: rgba(244,239,230,.7); }
.qa-card--teal { background: var(--teal); color: var(--cream); border-color: transparent; }
.qa-card--teal .qa-card__icon { background: rgba(255,255,255,.18); color: var(--cream); }
.qa-card--teal .qa-card__hint { color: rgba(244,239,230,.7); }
.qa-card--terra { background: var(--terracotta); color: #fff; border-color: transparent; }
.qa-card--terra .qa-card__icon { background: rgba(255,255,255,.22); color: #fff; }
.qa-card--terra .qa-card__hint { color: rgba(255,255,255,.75); }

/* Airbnb glass block */
.airbnb-block {
  max-width: 1080px; margin: 0 auto;
  background: rgba(255,255,255,.55);
  backdrop-filter: blur(12px);
  border: 1px solid var(--sand);
  border-radius: 32px;
  padding: 1.8rem 2rem;
  display: flex; align-items: center; justify-content: space-between;
  gap: 1.4rem; flex-wrap: wrap;
  box-shadow: var(--shadow-soft);
}
.airbnb-block__left { display: flex; align-items: center; gap: 1.2rem; }
.airbnb-block__logo {
  background: #fff; padding: 14px; border-radius: 18px;
  box-shadow: var(--shadow-soft);
}
.airbnb-block__logo svg { width: 30px; height: 30px; color: #FF5A5F; }
.airbnb-block__title { font-family: 'Work Sans', sans-serif; font-weight: 600; font-size: 1.05rem; color: var(--teal); margin: 0; }
.airbnb-block__sub { font-size: .85rem; color: rgba(58,111,122,.65); margin: .15rem 0 0; }
.airbnb-block__cta {
  background: #fff; color: var(--teal);
  border: 1px solid var(--sand);
  padding: .9rem 1.6rem;
  border-radius: 18px;
  font-family: 'Work Sans', sans-serif;
  font-weight: 600; font-size: .92rem;
  text-decoration: none;
  transition: transform .15s, background .2s;
}
.airbnb-block__cta:hover { background: var(--cream); transform: translateY(-2px); text-decoration: none; }

/* Sub nav links (footer-quick) */
.sub-nav {
  max-width: 1080px; margin: 3rem auto 0;
  display: flex; justify-content: center; flex-wrap: wrap;
  gap: 2rem;
}
.sub-nav a {
  font-family: 'Work Sans', sans-serif;
  font-size: .72rem;
  text-transform: uppercase;
  letter-spacing: .22em;
  font-weight: 600;
  color: rgba(58,111,122,.5);
  transition: color .2s;
}
.sub-nav a:hover { color: var(--terracotta); text-decoration: none; }

/* Section "À propos" v2 */
.story {
  padding: 6rem 1.2rem 5rem;
  max-width: 1080px; margin: 0 auto;
}
.story__grid {
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: 4rem; align-items: center;
}
@media (max-width: 800px) { .story__grid { grid-template-columns: 1fr; gap: 2.5rem; } }
.story__media {
  position: relative; border-radius: 28px; overflow: hidden;
  aspect-ratio: 4/5;
  box-shadow: var(--shadow-lift);
}
.story__media img { width: 100%; height: 100%; object-fit: cover; }
.story__media::after {
  content: ''; position: absolute; inset: auto -20px -20px auto;
  width: 120px; height: 120px; background: var(--terracotta);
  border-radius: 50%; opacity: .85; z-index: -1;
}
.story__eyebrow {
  font-family: 'Work Sans', sans-serif;
  text-transform: uppercase; letter-spacing: .3em;
  font-size: .72rem; color: var(--terracotta); font-weight: 600;
  margin-bottom: 1rem; display: inline-block;
}
.story__title {
  font-family: 'Instrument Serif', serif;
  font-weight: 400;
  font-size: clamp(2rem, 4vw, 3.4rem);
  line-height: 1.05;
  color: var(--teal);
  margin: 0 0 1.5rem;
}
.story__title em { font-style: italic; color: var(--terracotta); }
.story__text { color: #4a423c; font-size: 1.02rem; line-height: 1.75; margin-bottom: 1rem; }

/* Footer v2 — plus minimal */
.footer-v2 {
  background: var(--teal);
  color: var(--cream);
  padding: 4rem 1.2rem 2rem;
  margin-top: 5rem;
}
.footer-v2__inner {
  max-width: 1080px; margin: 0 auto;
  display: grid; grid-template-columns: 1.4fr 1fr 1fr;
  gap: 3rem; align-items: start;
}
@media (max-width: 800px) { .footer-v2__inner { grid-template-columns: 1fr; gap: 2rem; } }
.footer-v2__brand-1 {
  font-family: 'Instrument Serif', serif;
  text-transform: uppercase; letter-spacing: .22em;
  font-size: 2.4rem; line-height: 1;
}
.footer-v2__brand-2 {
  font-family: 'Petit Formal Script', cursive;
  font-size: 2.6rem; margin-top: -.25em; margin-left: 1.2em; display: inline-block;
}
.footer-v2 h4 {
  color: var(--cream); font-family: 'Work Sans', sans-serif;
  font-size: .72rem; text-transform: uppercase; letter-spacing: .25em;
  margin-bottom: 1rem;
}
.footer-v2 ul { list-style: none; padding: 0; margin: 0; }
.footer-v2 li { padding: .3rem 0; font-size: .92rem; }
.footer-v2 a { color: rgba(244,239,230,.85); }
.footer-v2 a:hover { color: #fff; }
.footer-v2__bottom {
  max-width: 1080px; margin: 3rem auto 0;
  border-top: 1px solid rgba(244,239,230,.15);
  padding-top: 1.4rem; text-align: center;
  font-size: .8rem; color: rgba(244,239,230,.6);
  letter-spacing: .1em; text-transform: uppercase;
}

/* ============================================
   V3 — Livret aéré (esprit La Bâtisse)
   ============================================ */

/* Hero plus calme, photo plein écran, overlay léger */
.hero-v3 {
  position: relative;
  min-height: 100vh;
  display: flex; align-items: center; justify-content: center;
  overflow: hidden;
  text-align: center;
  color: #fff;
  padding: 7rem 1.2rem 6rem;
}
.hero-v3__bg { position: absolute; inset: 0; z-index: 0; }
.hero-v3__bg-slide {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
  opacity: 0; transition: opacity 1.6s ease;
}
.hero-v3__bg-slide.active { opacity: 1; }
.hero-v3__bg::after {
  content:''; position: absolute; inset: 0;
  background: linear-gradient(180deg,
    rgba(20,30,33,.35) 0%,
    rgba(20,30,33,.20) 40%,
    rgba(20,30,33,.45) 100%);
}
.hero-v3__inner { position: relative; z-index: 2; max-width: 760px; }
.hero-v3__brand {
  display: flex; flex-direction: column; align-items: center;
  margin-bottom: 1.6rem;
}
.hero-v3__brand-1 {
  font-family: 'Instrument Serif', serif;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: .14em;
  line-height: .95;
  font-size: clamp(2.8rem, 9vw, 6.5rem);
  color: var(--cream);
  margin: 0;
  text-shadow: 0 2px 22px rgba(0,0,0,.25);
}
.hero-v3__brand-2 {
  font-family: 'Petit Formal Script', cursive;
  font-size: clamp(2.2rem, 7vw, 4.6rem);
  color: var(--cream);
  margin-top: -.35em;
  margin-left: 1.6em;
  font-weight: 400;
  text-transform: lowercase;
  text-shadow: 0 2px 18px rgba(0,0,0,.3);
}
.hero-v3__sub {
  font-family: 'Cormorant Garamond', serif;
  font-style: italic;
  font-size: clamp(1.05rem, 1.8vw, 1.3rem);
  color: rgba(255,255,255,.95);
  max-width: 540px; margin: 0 auto 2.2rem;
  line-height: 1.5;
}
.hero-v3__cta { display: flex; gap: .8rem; flex-wrap: wrap; justify-content: center; }
.hero-v3__scroll {
  position: absolute; bottom: 2rem; left: 50%; transform: translateX(-50%);
  z-index: 3; color: var(--cream); opacity: .7;
  animation: bounce-soft 2.2s infinite;
}

/* Section générique aérée */
.section-airy {
  padding: 7rem 1.2rem;
  max-width: 1180px; margin: 0 auto;
}
.section-airy--narrow { max-width: 880px; }
.section-airy__head { text-align: center; margin-bottom: 4rem; }
.section-airy__eyebrow {
  font-family: 'Petit Formal Script', cursive;
  color: var(--terracotta);
  font-size: 1.5rem;
  display: block;
  margin-bottom: .3rem;
}
.section-airy__kicker {
  font-family: 'Work Sans', sans-serif;
  text-transform: uppercase;
  letter-spacing: .3em;
  font-size: .72rem;
  color: var(--muted);
  display: block;
  margin-bottom: 1rem;
}
.section-airy__title {
  font-family: 'Instrument Serif', serif;
  font-weight: 400;
  font-size: clamp(2.2rem, 4.5vw, 3.6rem);
  line-height: 1.05;
  color: var(--teal);
  margin: 0 0 1.2rem;
}
.section-airy__lead {
  color: var(--muted);
  font-size: 1.05rem;
  max-width: 560px; margin: 0 auto;
  line-height: 1.7;
}

/* Cartes éditoriales (style La Bâtisse) */
.editorial-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2.5rem 2rem;
}
@media (max-width: 900px) { .editorial-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .editorial-grid { grid-template-columns: 1fr; } }

.ed-card {
  display: flex; flex-direction: column;
  text-decoration: none;
  color: inherit;
  transition: transform .35s cubic-bezier(.2,.8,.2,1);
}
.ed-card:hover { transform: translateY(-4px); text-decoration: none; }
.ed-card__media {
  position: relative;
  aspect-ratio: 4/5;
  border-radius: 6px;
  overflow: hidden;
  margin-bottom: 1.4rem;
  background: var(--sand);
}
.ed-card__media img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform .8s ease;
}
.ed-card:hover .ed-card__media img { transform: scale(1.04); }
.ed-card__body {
  flex: 1;
  display: flex;
  flex-direction: column;
}
.ed-card__kicker {
  font-family: 'Petit Formal Script', cursive;
  color: var(--terracotta);
  font-size: 1.15rem;
  margin-bottom: .2rem;
}
.ed-card__title {
  font-family: 'Instrument Serif', serif;
  font-weight: 400;
  font-size: 1.75rem;
  color: var(--teal);
  margin: 0 0 .6rem;
  line-height: 1.1;
}
.ed-card__desc {
  color: var(--muted);
  font-size: .95rem;
  line-height: 1.55;
  margin: 0 0 1rem;
  min-height: calc(1.55em * 3);
}
.ed-card__link {
  font-family: 'Work Sans', sans-serif;
  text-transform: uppercase;
  letter-spacing: .2em;
  font-size: .72rem;
  font-weight: 600;
  color: var(--teal);
  border-bottom: 1px solid var(--terracotta);
  padding-bottom: 4px;
  align-self: flex-start;
  margin-top: auto;
  white-space: nowrap;
}
.ed-card:hover .ed-card__link { color: var(--terracotta); }

/* Petit + du Mas — bandeau sobre */
.plus-band {
  background: var(--cream);
  border-top: 1px solid var(--sand);
  border-bottom: 1px solid var(--sand);
  padding: 5rem 1.2rem;
}
.plus-band__inner { max-width: 1080px; margin: 0 auto; }
.plus-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2rem;
  margin-top: 3rem;
}
@media (max-width: 800px) { .plus-grid { grid-template-columns: repeat(2, 1fr); } }
.plus-item { text-align: center; padding: 0 .5rem; }
.plus-item__icon {
  width: 48px; height: 48px; margin: 0 auto 1rem;
  display: flex; align-items: center; justify-content: center;
  color: var(--terracotta);
}
.plus-item__icon svg { width: 32px; height: 32px; }
.plus-item__title {
  font-family: 'Instrument Serif', serif;
  font-size: 1.2rem; color: var(--teal);
  margin: 0 0 .35rem;
}
.plus-item__text { color: var(--muted); font-size: .88rem; line-height: 1.5; margin: 0; }

/* CTA Airbnb final — discret */
.airbnb-pill {
  text-align: center;
  padding: 5rem 1.2rem 3rem;
}
.airbnb-pill__text {
  font-family: 'Cormorant Garamond', serif;
  font-style: italic;
  font-size: 1.15rem;
  color: var(--muted);
  max-width: 480px; margin: 0 auto 1.5rem;
}
.airbnb-pill .btn--outline { border-color: var(--terracotta); color: var(--terracotta); }
.airbnb-pill .btn--outline:hover { background: var(--terracotta); color: #fff; }


/* ============================================
   Intro maison (entre hero et curieux)
   ============================================ */
.intro-house {
  padding: 6rem 1.2rem 4rem;
  max-width: 1180px; margin: 0 auto;
}
.intro-house__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: center;
}
@media (max-width: 800px) { .intro-house__inner { grid-template-columns: 1fr; gap: 2.5rem; } }
.intro-house__media {
  position: relative;
  border-radius: 8px;
  overflow: hidden;
  aspect-ratio: 4/3;
  box-shadow: var(--shadow-lift);
}
.intro-house__media img { width: 100%; height: 100%; object-fit: cover; }
.intro-house__text .section-airy__title { margin-bottom: 1.2rem; }
.intro-house__lead {
  color: var(--muted);
  font-size: 1.02rem;
  line-height: 1.75;
  margin: 0 0 2rem;
}

/* ============================================
   Cards éditoriales — version plus cliquable
   ============================================ */
.ed-card {
  background: #fff;
  border: 1px solid rgba(58,111,122,.10);
  border-radius: 14px;
  padding: 1rem 1rem 1.4rem;
  box-shadow: 0 2px 10px rgba(58,111,122,.05);
  transition: transform .3s cubic-bezier(.2,.8,.2,1), box-shadow .3s, border-color .25s;
  position: relative;
}
.ed-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 18px 40px rgba(58,111,122,.14);
  border-color: var(--terracotta);
}
.ed-card__media {
  aspect-ratio: 4/3;
  border-radius: 10px;
  margin-bottom: 1.2rem;
}
.ed-card__kicker { padding: 0 .4rem; }
.ed-card__title { padding: 0 .4rem; font-size: 1.5rem; }
.ed-card__desc { padding: 0 .4rem; }
.ed-card__link {
  margin: 0 .4rem;
  display: inline-flex; align-items: center; gap: .5rem;
  background: var(--cream);
  border: 1px solid var(--sand);
  border-bottom: 1px solid var(--sand);
  padding: .55rem 1rem;
  border-radius: 999px;
  color: var(--teal);
  transition: background .2s, color .2s, border-color .2s, gap .2s;
}
.ed-card:hover .ed-card__link {
  background: var(--terracotta);
  color: #fff;
  border-color: var(--terracotta);
  gap: .8rem;
}

/* Arrow badge top-right au survol */
.ed-card::after {
  content: '→';
  position: absolute;
  top: 1.6rem; right: 1.6rem;
  width: 38px; height: 38px;
  border-radius: 50%;
  background: rgba(255,255,255,.95);
  color: var(--teal);
  display: flex; align-items: center; justify-content: center;
  font-size: 1.1rem;
  opacity: 0;
  transform: translateY(-4px);
  transition: opacity .25s, transform .25s, background .25s, color .25s;
  z-index: 2;
  box-shadow: 0 4px 14px rgba(0,0,0,.12);
}
.ed-card:hover::after {
  opacity: 1;
  transform: translateY(0);
  background: var(--terracotta);
  color: #fff;
}

/* ============================================
   Lisibilité — densification des textes fins
   ============================================ */
.hero-v3__sub {
  font-family: 'Work Sans', sans-serif;
  font-style: normal;
  font-weight: 400;
  font-size: clamp(1.15rem, 1.9vw, 1.35rem);
  color: #fff;
  text-shadow: 0 2px 14px rgba(0,0,0,.4);
  max-width: 580px;
  line-height: 1.55;
}
.section-airy__lead,
.intro-house__lead {
  color: #4a423c;
  font-size: 1.1rem;
  line-height: 1.7;
  font-weight: 400;
}
.ed-card__desc {
  color: #4a423c;
  font-size: 1rem;
  line-height: 1.6;
}
.plus-item__text {
  color: #4a423c;
  font-size: .95rem;
  line-height: 1.55;
}
.section-airy__eyebrow { font-size: 1.7rem; }
.section-airy__title { font-weight: 500; }

/* Font Awesome — alignement dans les meta */
.card__meta i,
.contact-info i,
.footer-v2 i {
  margin-right: .45rem;
  color: var(--terracotta);
  width: 1em;
  text-align: center;
}
.footer-v2 i { color: rgba(244,239,230,.7); }
.nav__toggle i { font-size: 1.3rem; }

/* ============================================
   Provence touch — accents verts & alternance
   ============================================ */
:root {
  --sage-soft: #eaf0e3;
  --sage-deep: #5a7a5f;
}

/* Icônes des "petits +" : vert sage au lieu de terracotta */
.plus-item__icon { color: var(--sage-deep); }

/* Bordure sage subtile sur les ed-card au repos */
.ed-card { border-color: rgba(111,143,114,.18); }
.ed-card:hover { border-color: var(--sage-deep); box-shadow: 0 18px 40px rgba(111,143,114,.18); }
.ed-card:hover::after { background: var(--sage-deep); }
.ed-card:hover .ed-card__link { background: var(--sage-deep); border-color: var(--sage-deep); }

/* Page hero : liseré sage en bas pour transition douce */
.page-hero { border-bottom: 4px solid var(--sage); }

/* ============================================
   GRAIN & TOUCHES FAITES MAIN — Ardèche vibes
   ============================================ */

/* Grain subtil global sur le body */
body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 9999;
  opacity: .35;
  mix-blend-mode: multiply;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.16  0 0 0 0 0.14  0 0 0 0 0.12  0 0 0 0.22 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
}

/* Texture papier sur les fonds crème */
.intro-house, .plus-band, .section-airy,
.page-hero + .section, .section {
  position: relative;
}
.intro-house::before, .plus-band::before {
  content: "";
  position: absolute; inset: 0;
  pointer-events: none;
  opacity: .5;
  background-image:
    radial-gradient(circle at 15% 20%, rgba(201,124,93,.05) 0, transparent 40%),
    radial-gradient(circle at 85% 80%, rgba(111,143,114,.06) 0, transparent 45%);
}

/* === Illustrations botaniques décoratives === */
/* Branche d'olivier — coin haut droit de la section curieux */
.section-airy#curieux::before {
  content: "";
  position: absolute;
  top: 1.5rem; right: -30px;
  width: 220px; height: 220px;
  pointer-events: none;
  opacity: .35;
  transform: rotate(18deg);
  background-repeat: no-repeat;
  background-size: contain;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200' fill='none' stroke='%236F8F72' stroke-width='1.4' stroke-linecap='round'><path d='M30 170 Q 90 110, 170 30'/><ellipse cx='55' cy='150' rx='12' ry='5' transform='rotate(-30 55 150)' fill='%236F8F72' fill-opacity='.35'/><ellipse cx='78' cy='128' rx='13' ry='5' transform='rotate(-32 78 128)' fill='%236F8F72' fill-opacity='.35'/><ellipse cx='100' cy='105' rx='14' ry='5' transform='rotate(-34 100 105)' fill='%236F8F72' fill-opacity='.35'/><ellipse cx='125' cy='80' rx='14' ry='5' transform='rotate(-36 125 80)' fill='%236F8F72' fill-opacity='.35'/><ellipse cx='148' cy='58' rx='13' ry='5' transform='rotate(-38 148 58)' fill='%236F8F72' fill-opacity='.35'/><ellipse cx='65' cy='135' rx='10' ry='4' transform='rotate(60 65 135)' fill='%236F8F72' fill-opacity='.25'/><ellipse cx='90' cy='112' rx='11' ry='4' transform='rotate(58 90 112)' fill='%236F8F72' fill-opacity='.25'/><ellipse cx='115' cy='88' rx='11' ry='4' transform='rotate(56 115 88)' fill='%236F8F72' fill-opacity='.25'/><ellipse cx='138' cy='65' rx='10' ry='4' transform='rotate(54 138 65)' fill='%236F8F72' fill-opacity='.25'/></svg>");
}

/* Brin de lavande — coin bas gauche plus-band */
.plus-band::after {
  content: "";
  position: absolute;
  bottom: 1rem; left: -10px;
  width: 140px; height: 200px;
  pointer-events: none;
  opacity: .4;
  transform: rotate(-12deg);
  background-repeat: no-repeat;
  background-size: contain;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 160' fill='none' stroke='%236F8F72' stroke-width='1.2' stroke-linecap='round'><path d='M50 160 L50 60'/><ellipse cx='50' cy='55' rx='4' ry='6' fill='%23a78bbf' fill-opacity='.55' stroke='none'/><ellipse cx='46' cy='48' rx='4' ry='6' fill='%23a78bbf' fill-opacity='.55' stroke='none'/><ellipse cx='54' cy='48' rx='4' ry='6' fill='%23a78bbf' fill-opacity='.55' stroke='none'/><ellipse cx='50' cy='40' rx='4' ry='6' fill='%23a78bbf' fill-opacity='.6' stroke='none'/><ellipse cx='47' cy='32' rx='3.5' ry='5' fill='%23a78bbf' fill-opacity='.6' stroke='none'/><ellipse cx='53' cy='32' rx='3.5' ry='5' fill='%23a78bbf' fill-opacity='.6' stroke='none'/><ellipse cx='50' cy='24' rx='3.5' ry='5' fill='%23a78bbf' fill-opacity='.65' stroke='none'/><ellipse cx='50' cy='16' rx='3' ry='4' fill='%23a78bbf' fill-opacity='.7' stroke='none'/><path d='M50 90 L 38 78 M50 100 L 60 88 M50 110 L 38 100 M50 120 L 60 112'/></svg>");
}

/* Feuille de vigne — intro-house coin haut gauche */
.intro-house::after {
  content: "";
  position: absolute;
  top: -20px; left: -30px;
  width: 180px; height: 180px;
  pointer-events: none;
  opacity: .28;
  transform: rotate(-22deg);
  background-repeat: no-repeat;
  background-size: contain;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200' fill='none' stroke='%23C97C5D' stroke-width='1.4' stroke-linejoin='round' stroke-linecap='round'><path d='M100 30 Q 60 40, 50 80 Q 30 90, 35 120 Q 50 140, 80 135 Q 90 165, 120 160 Q 150 145, 145 115 Q 170 100, 160 70 Q 140 50, 110 55 Q 105 35, 100 30 Z' fill='%23C97C5D' fill-opacity='.12'/><path d='M100 55 L 100 150 M70 90 L 130 120 M70 120 L 130 90'/></svg>");
}

/* Petit soleil/galet — section curieux bas droit */
.section-airy#curieux::after {
  content: "";
  position: absolute;
  bottom: 2rem; left: -20px;
  width: 130px; height: 130px;
  pointer-events: none;
  opacity: .3;
  transform: rotate(-8deg);
  background-repeat: no-repeat;
  background-size: contain;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' fill='none' stroke='%23C97C5D' stroke-width='1.2' stroke-linecap='round'><circle cx='50' cy='50' r='14'/><path d='M50 20 L50 28 M50 72 L50 80 M20 50 L28 50 M72 50 L80 50 M28 28 L34 34 M66 66 L72 72 M28 72 L34 66 M66 34 L72 28'/></svg>");
}

/* Tiny hand-drawn underline sous les titres de section */
.section-airy__title {
  position: relative;
  display: inline-block;
}
.section-airy__head .section-airy__title::after {
  content: "";
  display: block;
  width: 80px; height: 8px;
  margin: .4rem auto 0;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 80 8' fill='none' stroke='%23C97C5D' stroke-width='1.6' stroke-linecap='round'><path d='M2 4 Q 15 1, 28 4 T 55 4 T 78 4'/></svg>");
  background-repeat: no-repeat;
  background-position: center;
  opacity: .7;
}

/* Imperfections — légère rotation des eyebrow et kicker */
.ed-card__kicker { transform: rotate(-1.5deg); transform-origin: left center; }
.section-airy__eyebrow { display: inline-block; transform: rotate(-1deg); }

/* Petite asymétrie sur les cartes au hover */
.ed-card:hover { transform: translateY(-4px) rotate(-.3deg); }

/* Plus-items : tiny dotted divider entre eux (feel carnet) */
.plus-item { position: relative; }
.plus-item__icon {
  position: relative;
}
.plus-item__icon::after {
  content: "";
  position: absolute;
  inset: -8px;
  border: 1.5px dashed rgba(111,143,114,.35);
  border-radius: 50%;
  transform: rotate(8deg);
}

/* Hero : petit ornement scribble sous le sous-titre */
.hero-v3__sub::after {
  content: "✦  ✦  ✦";
  display: block;
  margin-top: 1rem;
  letter-spacing: .8rem;
  font-size: .7rem;
  color: rgba(244,239,230,.6);
}

/* Responsive : on cache les déco trop grosses sur mobile */
@media (max-width: 720px) {
  .section-airy#curieux::before,
  .section-airy#curieux::after,
  .intro-house::after,
  .plus-band::after { display: none; }
  body::before { opacity: .25; }
}

/* === Décorations sur les sous-pages === */
.page-hero { position: relative; overflow: hidden; }

/* Branche d'olivier en haut à droite du page-hero */
.page-hero::after {
  content: "";
  position: absolute;
  top: -20px; right: -40px;
  width: 240px; height: 240px;
  pointer-events: none;
  opacity: .28;
  transform: rotate(25deg);
  background-repeat: no-repeat;
  background-size: contain;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200' fill='none' stroke='%23F4EFE6' stroke-width='1.6' stroke-linecap='round'><path d='M30 170 Q 90 110, 170 30'/><ellipse cx='55' cy='150' rx='12' ry='5' transform='rotate(-30 55 150)' fill='%23F4EFE6' fill-opacity='.4'/><ellipse cx='78' cy='128' rx='13' ry='5' transform='rotate(-32 78 128)' fill='%23F4EFE6' fill-opacity='.4'/><ellipse cx='100' cy='105' rx='14' ry='5' transform='rotate(-34 100 105)' fill='%23F4EFE6' fill-opacity='.4'/><ellipse cx='125' cy='80' rx='14' ry='5' transform='rotate(-36 125 80)' fill='%23F4EFE6' fill-opacity='.4'/><ellipse cx='148' cy='58' rx='13' ry='5' transform='rotate(-38 148 58)' fill='%23F4EFE6' fill-opacity='.4'/><ellipse cx='65' cy='135' rx='10' ry='4' transform='rotate(60 65 135)' fill='%23F4EFE6' fill-opacity='.3'/><ellipse cx='90' cy='112' rx='11' ry='4' transform='rotate(58 90 112)' fill='%23F4EFE6' fill-opacity='.3'/><ellipse cx='115' cy='88' rx='11' ry='4' transform='rotate(56 115 88)' fill='%23F4EFE6' fill-opacity='.3'/></svg>");
}

/* Section des sous-pages : feuille de vigne discrète + brin de lavande alternés */
.page-hero ~ .section { overflow: hidden; }

.page-hero ~ .section:nth-of-type(odd)::before {
  content: "";
  position: absolute;
  top: 2rem; right: -30px;
  width: 160px; height: 160px;
  pointer-events: none;
  opacity: .22;
  transform: rotate(15deg);
  background-repeat: no-repeat;
  background-size: contain;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200' fill='none' stroke='%23C97C5D' stroke-width='1.4' stroke-linejoin='round' stroke-linecap='round'><path d='M100 30 Q 60 40, 50 80 Q 30 90, 35 120 Q 50 140, 80 135 Q 90 165, 120 160 Q 150 145, 145 115 Q 170 100, 160 70 Q 140 50, 110 55 Q 105 35, 100 30 Z' fill='%23C97C5D' fill-opacity='.15'/><path d='M100 55 L 100 150 M70 90 L 130 120 M70 120 L 130 90'/></svg>");
}

.page-hero ~ .section:nth-of-type(even)::before {
  content: "";
  position: absolute;
  bottom: 1.5rem; left: -15px;
  width: 130px; height: 190px;
  pointer-events: none;
  opacity: .35;
  transform: rotate(-14deg);
  background-repeat: no-repeat;
  background-size: contain;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 160' fill='none' stroke='%236F8F72' stroke-width='1.2' stroke-linecap='round'><path d='M50 160 L50 60'/><ellipse cx='50' cy='55' rx='4' ry='6' fill='%23a78bbf' fill-opacity='.55' stroke='none'/><ellipse cx='46' cy='48' rx='4' ry='6' fill='%23a78bbf' fill-opacity='.55' stroke='none'/><ellipse cx='54' cy='48' rx='4' ry='6' fill='%23a78bbf' fill-opacity='.55' stroke='none'/><ellipse cx='50' cy='40' rx='4' ry='6' fill='%23a78bbf' fill-opacity='.6' stroke='none'/><ellipse cx='47' cy='32' rx='3.5' ry='5' fill='%23a78bbf' fill-opacity='.6' stroke='none'/><ellipse cx='53' cy='32' rx='3.5' ry='5' fill='%23a78bbf' fill-opacity='.6' stroke='none'/><ellipse cx='50' cy='24' rx='3.5' ry='5' fill='%23a78bbf' fill-opacity='.65' stroke='none'/><ellipse cx='50' cy='16' rx='3' ry='4' fill='%23a78bbf' fill-opacity='.7' stroke='none'/></svg>");
}

/* Petit soleil dessiné dans le titre du page-hero */
.page-hero h1 { position: relative; display: inline-block; }
.page-hero h1::after {
  content: "";
  display: block;
  width: 90px; height: 8px;
  margin: .6rem auto 0;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 80 8' fill='none' stroke='%23F4EFE6' stroke-width='1.8' stroke-linecap='round'><path d='M2 4 Q 15 1, 28 4 T 55 4 T 78 4'/></svg>");
  background-repeat: no-repeat;
  background-position: center;
  opacity: .75;
}

@media (max-width: 720px) {
  .page-hero::after,
  .page-hero ~ .section::before { display: none; }
}

.hero-v3__brand--logo { display:flex; justify-content:center; align-items:center; margin:0 0 1rem; }
.hero-v3__logo { width:clamp(220px, 38vw, 460px); height:auto; filter: drop-shadow(0 8px 30px rgba(0,0,0,.35)); }

/* ============================================
   Smooth scroll + Overflow + Mobile fixes
   ============================================ */
html, body { overflow-x: clip; max-width: 100%; }
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; }
.lenis.lenis-stopped { overflow: clip; }

/* Container padding to guarantee side breathing room on mobile */
@media (max-width: 700px) {
  .container { width: 100%; padding-inline: 1.25rem; }
}

/* ============================================
   Burger icon (animated to cross)
   ============================================ */
.nav__toggle {
  position: relative;
  z-index: 1002;
  width: 44px;
  height: 44px;
  display: none;
  align-items: center;
  justify-content: center;
  background: none;
  border: 0;
  cursor: pointer;
  padding: 0;
}
@media (max-width: 860px) {
  .nav__toggle { display: inline-flex; }
}
.nav__burger {
  position: relative;
  display: inline-block;
  width: 26px;
  height: 18px;
}
.nav__burger span {
  position: absolute;
  left: 0;
  width: 100%;
  height: 2px;
  background: currentColor;
  border-radius: 2px;
  transition: transform .35s cubic-bezier(.6,.05,.3,1), top .35s cubic-bezier(.6,.05,.3,1), opacity .25s ease, background .3s ease;
}
.nav__burger span:nth-child(1) { top: 0; }
.nav__burger span:nth-child(2) { top: 8px; }
.nav__burger span:nth-child(3) { top: 16px; }
.nav__toggle.is-open .nav__burger span { background: #fff; }
.nav__toggle.is-open .nav__burger span:nth-child(1) { top: 8px; transform: rotate(45deg); }
.nav__toggle.is-open .nav__burger span:nth-child(2) { opacity: 0; }
.nav__toggle.is-open .nav__burger span:nth-child(3) { top: 8px; transform: rotate(-45deg); }

/* ============================================
   Full-screen mobile menu overlay
   ============================================ */
.mobile-menu {
  position: fixed;
  inset: 0;
  z-index: 1000;
  background: linear-gradient(160deg, var(--teal) 0%, #2f5a63 60%, #244850 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  clip-path: circle(0% at calc(100% - 44px) 44px);
  transition: clip-path .6s cubic-bezier(.77,0,.18,1);
  pointer-events: none;
  visibility: hidden;
}
.mobile-menu.is-open {
  clip-path: circle(150% at calc(100% - 44px) 44px);
  pointer-events: auto;
  visibility: visible;
}
.mobile-menu__header {
  position: absolute;
  top: 0; left: 0; right: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.2rem 1.5rem;
  z-index: 2;
}
.mobile-menu__logo { height: 44px; width: auto; display: block; }
.mobile-menu__close {
  background: none;
  border: 0;
  color: #fff;
  cursor: pointer;
  padding: .4rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  transition: background .25s ease, transform .25s ease;
}
.mobile-menu__close:hover { background: rgba(255,255,255,.12); transform: rotate(90deg); }
.mobile-menu__nav { width: 100%; padding: 0 2rem; }
.mobile-menu__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  text-align: center;
}
.mobile-menu__list li {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity .5s ease, transform .5s ease;
  transition-delay: calc(0.05s * var(--i, 1));
}
.mobile-menu.is-open .mobile-menu__list li {
  opacity: 1;
  transform: translateY(0);
  transition-delay: calc(0.25s + 0.06s * var(--i, 1));
}
.mobile-menu__list a {
  display: inline-block;
  font-family: 'Instrument Serif', 'Cormorant Garamond', serif;
  font-size: clamp(2rem, 8vw, 3.2rem);
  color: #fff;
  line-height: 1.1;
  padding: .5rem 1rem;
  text-decoration: none;
  letter-spacing: .01em;
  transition: color .25s ease, transform .25s ease;
}
.mobile-menu__list a:hover,
.mobile-menu__list a:focus-visible {
  color: var(--terracotta);
  transform: translateY(-2px);
  text-decoration: none;
}

/* When menu open, lock body scroll & hide desktop links */
body.menu-open { overflow: hidden; }

@media (min-width: 861px) {
  .mobile-menu { display: none; }
}

/* Keep desktop nav links hidden behind mobile breakpoint properly */
@media (max-width: 860px) {
  .site-header--v2 .nav__links {
    display: none !important;
  }
}
