/* === 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; }
.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; }
.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-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); }
}

/* 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;
}
.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__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;
  }
}
