/* ══════════════════════════════════════════════════
   PAGES SECONDAIRES — B Harmony
   ══════════════════════════════════════════════════ */

/* ── PAGES HEAD SPA & HEAD SPA ENFANT ────────────── */

/* Intro (2 colonnes : texte + arche photo) */
.soin-intro {
  position: relative;
  background: var(--cream);
  padding: 5rem 2rem 9rem;
}
.soin-intro-inner {
  max-width: 1100px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 5rem;
  align-items: center;
}
.soin-intro-text h2 {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(2.4rem, 4vw, 3.5rem);
  font-weight: 300;
  color: var(--brown);
  margin-bottom: 1.5rem;
  line-height: 1.1;
}
.soin-intro-text h2 em { font-style: italic; font-size: 0.9em; }
.soin-intro-text p {
  font-size: 0.9rem;
  line-height: 2;
  color: var(--brown-light);
  margin-bottom: 1rem;
}
.soin-intro-img { display: flex; justify-content: center; }
.soin-intro-img .arch-img-outer { width: 280px; height: 390px; }

/* ── SECTION DÉROULÉ (pattern identique à .bienfaits) ── */
.steps-section {
  position: relative;
  background: var(--beige);
  padding: 5rem 4rem 9rem;
  text-align: center;
}
.steps-title {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(2.2rem, 4vw, 3.5rem);
  font-weight: 300;
  color: var(--brown);
  margin-bottom: 3rem;
}
.steps-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
  max-width: 1180px;
  margin: 0 auto;
}
.step-card {
  background: var(--cream);
  border-radius: 6px;
  overflow: hidden;
  text-align: left;
  box-shadow: 0 4px 20px rgba(58,45,36,0.06);
  transition: transform 0.35s cubic-bezier(0.22,1,0.36,1);
}
.step-card:hover { transform: translateY(-5px); }
.step-num {
  font-family: 'Cormorant Garamond', serif;
  font-size: 0.78rem;
  letter-spacing: 0.2em;
  color: var(--sand);
  padding: 1.2rem 1.5rem 0;
  display: block;
}
.step-img {
  width: 100%;
  aspect-ratio: 4/3;
  overflow: hidden;
}
.step-img img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.5s;
}
.step-card:hover .step-img img { transform: scale(1.04); }
.step-card h3 {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.6rem;
  font-weight: 300;
  color: var(--brown);
  padding: 1rem 1.5rem 0.5rem;
}
.step-card p {
  font-size: 0.85rem;
  line-height: 1.8;
  color: var(--brown-light);
  padding: 0 1.5rem 1.5rem;
}
/* Responsive */
@media (max-width: 900px) { .steps-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) {
  .steps-section { padding: 3rem 1.5rem 9rem; }
  .steps-grid { grid-template-columns: 1fr; max-width: 440px; margin: 0 auto; }
}

/* Section Brandy (2 colonnes) */
.soin-brandy {
  position: relative;
  padding: 5rem 2rem 9rem;
  background-color: var(--cream);
  /* Dégradé gauche→droite : crème opaque à gauche, transparent à droite = château visible uniquement à droite */
  background-image:
    linear-gradient(to left,
      #F5EDE3 0%,
      #F5EDE3 40%,
      rgba(245,237,227,0.7) 65%,
      rgba(245,237,227,0.15) 100%
    ),
    url('../images/chateau.png');
  background-repeat: no-repeat, no-repeat;
  background-position: 0 0, left 0 center;
  background-size: 100% 100%, 46%;
}
.soin-brandy-inner {
  max-width: 1100px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 5rem;
  align-items: center;
}
.soin-brandy-img img {
  width: 100%;
  max-width: 420px;
  aspect-ratio: 3 / 4;   /* portrait */
  object-fit: cover;
  object-position: center 15%;
  border-radius: 6px;
  display: block;
  box-shadow: 0 12px 40px rgba(58,45,36,0.12);
}
.soin-brandy-text h2 {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(2.2rem, 4vw, 3.2rem);
  font-weight: 300;
  color: var(--brown);
  margin-bottom: 1.5rem;
  line-height: 1.1;
}
.soin-brandy-text h2 em { font-style: italic; }
.soin-brandy-text p {
  font-size: 0.9rem;
  line-height: 2;
  color: var(--brown-light);
  margin-bottom: 1rem;
}

/* Tarifs */
.soin-tarifs {
  position: relative;
  background: var(--beige);
  padding: 5rem 2rem 10rem;
  text-align: center;
}
.soin-tarifs h2 { margin-bottom: 3rem; }
.soin-tarifs-grid {
  display: flex;
  justify-content: center;
  gap: 2rem;
  flex-wrap: wrap;
  max-width: 800px;
  margin: 0 auto;
}
.soin-tarif-card {
  position: relative;
  background: var(--cream);
  border: 1px solid rgba(196,180,154,0.45);
  border-radius: 6px;
  padding: 2rem 2.5rem;
  min-width: 240px;
  max-width: 300px;
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.8rem;
  box-shadow: 0 4px 20px rgba(58,45,36,0.06);
}
.soin-tarif-featured {
  border-color: var(--sand);
  box-shadow: 0 8px 32px rgba(58,45,36,0.12);
  transform: scale(1.03);
}
.st-badge {
  position: absolute;
  top: -12px;
  background: var(--brown);
  color: var(--cream);
  font-size: 0.75rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  padding: 0.3rem 0.9rem;
  border-radius: 20px;
}
.st-label {
  font-size: 0.75rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--sand);
  margin-top: 0.5rem;
}
.st-duration {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.1rem;
  color: var(--brown-light);
  letter-spacing: 0.05em;
}
.st-price {
  font-family: 'Cormorant Garamond', serif;
  font-size: 3.5rem;
  font-weight: 300;
  color: var(--brown);
  line-height: 1;
}
.st-price span { font-size: 1.8rem; }
.st-includes {
  list-style: none;
  text-align: left;
  width: 100%;
  border-top: 1px solid rgba(196,180,154,0.35);
  padding-top: 1rem;
  margin-top: 0.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.st-includes li {
  font-size: 0.82rem;
  color: var(--brown-light);
  padding-left: 1rem;
  position: relative;
}
.st-includes li::before {
  content: '–';
  position: absolute;
  left: 0;
  color: var(--sand);
}
.soin-tarif-card .btn-arch {
  margin-top: auto;
  width: 100%;
  text-align: center;
}
.soin-tarif-option {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  font-size: 0.82rem;
  font-style: italic;
  color: var(--brown-light);
  margin-top: 2rem;
}
.soin-tarif-option strong { color: var(--brown); font-style: normal; }

/* ── FAQ ─────────────────────────────────────────── */
.faq-section {
  position: relative;
  background: var(--cream);
  padding: 5rem 2rem 9rem;
}
.faq-beige { background: var(--beige); }
.faq-inner {
  max-width: 800px;
  margin: 0 auto;
}
.faq-inner h2 {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 300;
  color: var(--brown);
  margin-bottom: 2.5rem;
}
.faq-list { display: flex; flex-direction: column; gap: 0; }
.faq-item {
  border-bottom: 1px solid rgba(196,180,154,0.35);
  overflow: hidden;
}
.faq-item:first-child { border-top: 1px solid rgba(196,180,154,0.35); }
.faq-item summary {
  list-style: none;
  cursor: pointer;
  padding: 1.4rem 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary h3 {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.2rem;
  font-weight: 300;
  color: var(--brown);
  margin: 0;
  line-height: 1.4;
}
.faq-item summary::after {
  content: '+';
  font-size: 1.4rem;
  font-weight: 300;
  color: var(--sand);
  flex-shrink: 0;
  transition: transform 0.3s;
}
.faq-item[open] summary::after { transform: rotate(45deg); }
.faq-item p {
  font-size: 0.88rem;
  line-height: 1.9;
  color: var(--brown-light);
  padding: 0 0 1.4rem;
}
.faq-item p a { color: var(--brown); text-decoration: underline; }

/* ── POURQUOI B HARMONY LOCALITÉ ─────────────────── */
.loc-why {
  position: relative;
  background: var(--cream);
  padding: 5rem 2rem 9rem;
  text-align: center;
}
.loc-why-inner { max-width: 1100px; margin: 0 auto; }
.loc-why-inner h2 {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(2rem, 4vw, 3.2rem);
  font-weight: 300;
  color: var(--brown);
  margin-bottom: 3rem;
  line-height: 1.2;
}
.loc-why-inner h2 em { font-style: italic; }
.loc-why-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
  text-align: left;
}
.loc-why-card {
  background: var(--beige);
  border-radius: 6px;
  padding: 2rem;
}
.loc-why-card h3 {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.3rem;
  font-weight: 300;
  color: var(--brown);
  margin-bottom: 0.8rem;
}
.loc-why-card p {
  font-size: 0.86rem;
  line-height: 1.85;
  color: var(--brown-light);
}
@media (max-width: 900px) {
  .loc-why-grid { grid-template-columns: 1fr; max-width: 600px; margin: 0 auto; }
}
@media (max-width: 600px) {
  .faq-section { padding: 3rem 1.5rem 8rem; }
  .loc-why { padding: 3rem 1.5rem 8rem; }
}

/* ── MAILLAGE INTERNE (autres secteurs) ───────────── */
.loc-maillage {
  position: relative;
  background: var(--cream);
  padding: 5rem 2rem 9rem;
  text-align: center;
}
.loc-maillage.loc-maillage-brown { background: var(--brown); }
.loc-maillage-inner { max-width: 800px; margin: 0 auto; }
.loc-maillage-inner h2 {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 300;
  letter-spacing: 0.08em;
  color: var(--brown);
  margin-bottom: 1rem;
}
.loc-maillage-desc {
  font-size: 0.9rem;
  line-height: 1.8;
  color: var(--brown-light);
  margin-bottom: 2rem;
}
.loc-maillage-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.9rem;
}
.loc-maillage-grid a {
  display: inline-block;
  padding: 0.7rem 1.6rem;
  background: rgba(232,217,200,0.5);
  border: 1px solid rgba(196,180,154,0.4);
  border-radius: 100px;
  font-size: 0.85rem;
  letter-spacing: 0.05em;
  color: var(--brown);
  text-decoration: none;
  transition: background 0.25s, border-color 0.25s, transform 0.25s;
}
.loc-maillage-grid a:hover {
  background: var(--beige);
  border-color: var(--sand);
  transform: translateY(-2px);
}
/* Variante fond brun */
.loc-maillage-brown .loc-maillage-inner h2,
.loc-maillage-brown .loc-maillage-desc { color: var(--cream); }
.loc-maillage-brown .loc-maillage-grid a {
  background: rgba(245,237,227,0.08);
  border-color: rgba(245,237,227,0.3);
  color: var(--cream);
}
.loc-maillage-brown .loc-maillage-grid a:hover {
  background: rgba(245,237,227,0.16);
  border-color: rgba(245,237,227,0.5);
}
@media (max-width: 600px) {
  .loc-maillage { padding: 3rem 1.5rem 8rem; }
}

/* ══════════════════════════════════════════════════
   PAGE GALERIE
   ══════════════════════════════════════════════════ */
.gallery-section {
  position: relative;
  background: var(--cream);
  padding: 5rem 2rem 9rem;
}
.gallery-head { text-align: center; margin-bottom: 3rem; }
.gallery-head h2 {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(2.2rem, 4vw, 3.2rem);
  font-weight: 300;
  color: var(--brown);
  margin-bottom: 2rem;
}
.gallery-filters {
  display: flex;
  justify-content: center;
  gap: 0.6rem;
  flex-wrap: wrap;
  margin-top: 1.5rem;
}
.gal-filter {
  background: transparent;
  border: 1px solid rgba(196,180,154,0.5);
  color: var(--brown);
  font-family: 'Jost', sans-serif;
  font-size: 0.75rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  padding: 0.55rem 1.2rem;
  border-radius: 30px;
  cursor: pointer;
  transition: all 0.25s;
}
.gal-filter:hover { background: rgba(196,180,154,0.15); }
.gal-filter.active {
  background: var(--brown);
  color: var(--cream);
  border-color: var(--brown);
}

.gallery-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-auto-rows: 220px;
  gap: 0.6rem;
  max-width: 1280px;
  margin: 0 auto;
}
.gal-item {
  position: relative;
  overflow: hidden;
  border-radius: 4px;
  background: var(--beige);
  cursor: zoom-in;
  transition: transform 0.4s cubic-bezier(0.22,1,0.36,1), opacity 0.4s;
}
.gal-item.gal-large { grid-column: span 2; grid-row: span 2; }
.gal-item.gal-tall  { grid-row: span 2; }
.gal-item.hide { display: none; }
.gal-item img,
.gal-item video {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.6s cubic-bezier(0.22,1,0.36,1);
}
.gal-item:hover img,
.gal-item:hover video { transform: scale(1.05); }

.gal-tag {
  position: absolute;
  top: 12px; left: 12px;
  background: rgba(58,45,36,0.78);
  color: var(--cream);
  font-size: 0.75rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 0.3rem 0.7rem;
  border-radius: 30px;
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
  z-index: 2;
}
.gal-caption {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  padding: 1.5rem 1rem 0.8rem;
  background: linear-gradient(to top, rgba(58,45,36,0.85), transparent);
  color: var(--cream);
  font-size: 0.78rem;
  letter-spacing: 0.05em;
  opacity: 0;
  transform: translateY(10px);
  transition: opacity 0.3s, transform 0.3s;
}
.gal-item:hover .gal-caption { opacity: 1; transform: translateY(0); }

/* Responsive galerie */
@media (max-width: 1024px) {
  .gallery-grid { grid-template-columns: repeat(3, 1fr); grid-auto-rows: 200px; }
}
@media (max-width: 700px) {
  .gallery-grid { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 170px; gap: 0.5rem; }
  .gal-item.gal-large { grid-column: span 2; }
  .gallery-section { padding: 3rem 1rem 8rem; }
  .gallery-filters { gap: 0.4rem; }
  .gal-filter { padding: 0.45rem 0.9rem; font-size: 0.75rem; }
  .gal-caption { opacity: 1; transform: none; font-size: 0.75rem; padding: 1rem 0.7rem 0.6rem; }
}

/* ── RESPONSIVE PAGES SOIN ───────────────────────── */
@media (max-width: 900px) {
  .soin-intro-inner { grid-template-columns: 1fr; gap: 2.5rem; text-align: center; }
  .soin-intro-img { justify-content: center; }
  .soin-steps-grid { grid-template-columns: 1fr 1fr; }
  .soin-brandy-inner { grid-template-columns: 1fr; gap: 2.5rem; text-align: center; }
  .soin-brandy-img img { height: 360px; }
  .st-includes { text-align: left; }
}
@media (max-width: 768px) {
  .soin-intro { padding: 3rem 1.5rem 7rem; }
  .soin-tarifs { padding: 3rem 1.5rem 7rem; }
  .soin-brandy {
    padding: 3rem 1.5rem 9rem;
    background-image: none;
    background-color: var(--cream);
  }
}
@media (max-width: 600px) {
  .soin-steps-grid { grid-template-columns: 1fr; max-width: 440px; margin: 0 auto; }
  .soin-tarifs-grid { flex-direction: column; align-items: center; }
  .soin-tarif-featured { transform: none; }
  .soin-intro-img .arch-img-outer { width: 220px; height: 310px; }
}

/* ── HERO PAGE ────────────────────────────────────── */
.page-hero {
  position: relative;
  height: 90vh;
  min-height: 700px;
  overflow: hidden;
  background: var(--brown);
}
.page-hero-sm { height: 68vh; min-height: 520px; }

.page-hero-bg {
  position: absolute;
  top: 0; right: 0; bottom: 0; left: 0;
}
.page-hero-bg img,
.page-hero-bg video {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
}
.page-hero-overlay {
  position: absolute;
  top: 0; right: 0; bottom: 0; left: 0;
  background: linear-gradient(
    to bottom,
    rgba(58,45,36,0.35) 0%,
    rgba(58,45,36,0.55) 60%,
    rgba(245,237,227,0.4) 100%
  );
}
.page-hero-content {
  position: absolute;
  top: 0; right: 0; bottom: 0; left: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: #fff;
  padding: 180px 2rem 140px; /* top: clear navbar+logo | bottom: clear wave */
}
.page-hero-content h1 {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(3rem, 7vw, 5.5rem);
  font-weight: 300;
  line-height: 1.1;
  margin-bottom: 1rem;
}
.page-hero-content h1 em {
  font-style: italic;
  font-size: 0.75em;
  display: block;
  letter-spacing: 0.08em;
}
.page-hero-desc {
  font-size: 0.9rem;
  letter-spacing: 0.1em;
  opacity: 0.8;
  margin-top: 0.5rem;
}

/* ── LIEN ACTIF NAVBAR ────────────────────────────── */
.nav-active {
  opacity: 1 !important;
  border-bottom: 1px solid currentColor;
  padding-bottom: 2px;
}
.nav-active-btn {
  background: var(--brown) !important;
  color: var(--cream) !important;
}

/* ── INTRO LOCALITÉ ───────────────────────────────── */
.loc-intro {
  position: relative;
  background: var(--cream);
  overflow: hidden;
}
.loc-intro-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: 5rem;
  padding: 6rem 6rem 10rem;
  max-width: 1200px;
  margin: 0 auto;
}
.loc-intro-text h2 {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(2.4rem, 4vw, 3.8rem);
  font-weight: 300;
  color: var(--brown);
  letter-spacing: 0.05em;
  margin-bottom: 1.5rem;
  line-height: 1.15;
}
.loc-intro-text p {
  font-size: 0.88rem;
  line-height: 2;
  color: var(--brown-light);
  margin-bottom: 1rem;
}

/* Badges localité */
.loc-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 0.7rem;
  margin: 1.8rem 0;
}
.loc-badge {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 0.45rem 1rem;
  border: 1px solid rgba(196,180,154,0.5);
  border-radius: 100px;
  font-size: 0.75rem;
  letter-spacing: 0.08em;
  color: var(--brown-light);
  background: rgba(245,237,227,0.6);
}
.loc-badge svg { width: 14px; height: 14px; }

/* Photo arche loc */
.loc-intro-img { display: flex; justify-content: center; align-items: flex-end; }
.loc-intro-img .arch-img-outer { width: 300px; height: 420px; }
.loc-intro-img .arch-img-outer::before { width: 300px; height: 420px; }
.loc-intro-img .arch-wrap { width: 300px; height: 420px; }

/* ── ZONE DESSERVIE ───────────────────────────────── */
.zone-section {
  position: relative;
  background: var(--cream);
  padding: 5rem 4rem 9rem;
  text-align: center;
  overflow: hidden;
}
.zone-castle {
  position: absolute;
  right: -40px;
  bottom: 60px;
  width: 50%;
  max-width: 620px;
  pointer-events: none;
  z-index: 0;
  opacity: 0.2;
  mix-blend-mode: multiply;
  -webkit-mask-image: linear-gradient(to right, transparent 0%, rgba(0,0,0,0.5) 30%, black 60%);
  mask-image: linear-gradient(to right, transparent 0%, rgba(0,0,0,0.5) 30%, black 60%);
}
.zone-inner {
  position: relative;
  z-index: 1;
  max-width: 800px;
  margin: 0 auto;
}
.zone-inner h2 {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 300;
  letter-spacing: 0.08em;
  color: var(--brown);
  margin-bottom: 1rem;
}
.zone-desc {
  font-size: 0.9rem;
  color: var(--brown-light);
  margin-bottom: 2rem;
  line-height: 1.8;
}
.zone-desc strong { color: var(--brown); }
.zone-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  margin-bottom: 1.5rem;
}
.zone-item {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 0.75rem 1rem;
  background: rgba(232,217,200,0.5);
  border: 1px solid rgba(196,180,154,0.3);
  border-radius: 4px;
  font-size: 0.85rem;
  color: var(--brown);
  letter-spacing: 0.04em;
  text-decoration: none;
  transition: background 0.25s, border-color 0.25s, transform 0.25s;
}
a.zone-item:hover {
  background: var(--beige);
  border-color: var(--sand);
  transform: translateY(-2px);
}
a.zone-item:hover svg { color: var(--brown); }
.zone-item-current {
  background: var(--brown);
  color: var(--cream);
  border-color: var(--brown);
}
.zone-item-current svg { color: var(--cream) !important; }
.zone-item svg { width: 14px; height: 18px; flex-shrink: 0; color: var(--sand); }
.zone-note {
  font-size: 0.8rem;
  color: var(--brown-light);
  opacity: 0.7;
  margin-bottom: 2rem;
  font-style: italic;
}

/* ── CONTACT PAGE ─────────────────────────────────── */
.contact-page-section {
  background: var(--cream);
  padding: 5rem 4rem 6rem;
}
.contact-page-inner {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 5rem;
  max-width: 1100px;
  margin: 0 auto;
}
.contact-page-info h2 {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(2.4rem, 4vw, 3.5rem);
  font-weight: 300;
  color: var(--brown);
  letter-spacing: 0.05em;
  margin-bottom: 1.2rem;
  line-height: 1.1;
}
.contact-page-lead {
  font-size: 0.88rem;
  line-height: 1.9;
  color: var(--brown-light);
  margin-bottom: 2.5rem;
}
.contact-details {
  display: flex;
  flex-direction: column;
  gap: 1.4rem;
  margin-bottom: 2.5rem;
}
.contact-detail-item {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
}
.contact-detail-icon {
  width: 22px; height: 22px;
  flex-shrink: 0;
  margin-top: 1px;
  color: var(--sand);
}
.contact-detail-icon svg { width: 100%; height: 100%; }
.contact-detail-item strong {
  display: block;
  font-size: 0.75rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--sand);
  margin-bottom: 2px;
}
.contact-detail-item p { font-size: 0.95rem; color: var(--brown); }
.contact-detail-item p a {
  color: var(--brown);
  text-decoration: none;
  border-bottom: 1px solid rgba(196,180,154,0.6);
  padding-bottom: 1px;
  transition: border-color 0.2s, color 0.2s;
}
.contact-detail-item p a:hover { color: var(--brown-light); border-bottom-color: var(--brown); }

/* Zones tags */
.contact-zones { margin-top: 0.5rem; }
.contact-zones-title {
  font-size: 0.75rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--sand);
  margin-bottom: 0.8rem;
}
.contact-zone-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.contact-zone-tags span,
.contact-zone-tags a {
  padding: 0.3rem 0.85rem;
  background: rgba(232,217,200,0.6);
  border: 1px solid rgba(196,180,154,0.4);
  border-radius: 100px;
  font-size: 0.75rem;
  color: var(--brown-light);
  letter-spacing: 0.05em;
  text-decoration: none;
  transition: background 0.2s, color 0.2s, transform 0.2s;
}
.contact-zone-tags a:hover {
  background: var(--brown);
  color: var(--cream);
  border-color: var(--brown);
  transform: translateY(-2px);
}

/* Formulaire large */
.contact-form-large {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}
.contact-form-large input,
.contact-form-large select,
.contact-form-large textarea {
  width: 100%;
  padding: 0.95rem 1.35rem;
  background: #FCF9F4;
  border: 1px solid rgba(58,45,36,0.10);
  border-radius: 12px;
  font-family: 'Jost', sans-serif;
  font-size: 0.9rem;
  color: var(--brown);
  outline: none;
  box-shadow: 0 4px 16px rgba(58,45,36,0.07);
  transition: border-color 0.25s, background 0.25s, box-shadow 0.25s;
}
.contact-form-large input:focus,
.contact-form-large select:focus,
.contact-form-large textarea:focus {
  border-color: rgba(58,45,36,0.4);
  background: #ffffff;
  box-shadow: 0 8px 24px rgba(58,45,36,0.13);
}
.contact-form-large input::placeholder,
.contact-form-large textarea::placeholder { color: rgba(58,45,36,0.48); }
.contact-form-large select { color: var(--brown); cursor: pointer; }
.contact-form-large textarea { resize: vertical; }

/* ── ADRESSES ─────────────────────────────────────── */
.adresses-section {
  background: var(--beige);
  padding: 5rem 4rem 6rem;
  text-align: center;
}
.adresses-section h2 {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 300;
  letter-spacing: 0.08em;
  color: var(--brown);
  margin-bottom: 3rem;
}
.adresses-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2.5rem;
  max-width: 900px;
  margin: 0 auto;
}
.adresses-grid.adresses-single {
  grid-template-columns: 1fr;
  max-width: 560px;
}
.adresses-maillage-intro {
  margin: 3rem 0 1.3rem;
  font-size: 0.9rem;
  letter-spacing: 0.05em;
  color: var(--brown-light);
}
.adresses-section .loc-maillage-grid { margin: 0 auto; max-width: 680px; }
.adresse-card {
  background: var(--cream);
  border-radius: 4px;
  overflow: hidden;
  box-shadow: 0 8px 30px rgba(58,45,36,0.08);
  text-align: left;
  transition: transform 0.3s, box-shadow 0.3s;
}
.adresse-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 40px rgba(58,45,36,0.13);
}
.adresse-img { height: 250px; overflow: hidden; }
.adresse-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.adresse-body { padding: 1.8rem; }
.adresse-body h3 {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.6rem;
  font-weight: 300;
  color: var(--brown);
  margin-bottom: 0.6rem;
  letter-spacing: 0.05em;
}
.adresse-body p { font-size: 0.85rem; line-height: 1.8; color: var(--brown-light); margin-bottom: 1rem; }
.adresse-info {
  display: flex;
  flex-direction: column;
  gap: 3px;
  font-size: 0.75rem;
  letter-spacing: 0.06em;
  color: var(--sand);
  text-transform: uppercase;
  border-top: 1px solid rgba(196,180,154,0.3);
  padding-top: 0.8rem;
  margin-bottom: 0.5rem;
}

/* ── FOOTER NAV ───────────────────────────────────── */
.footer-nav {
  display: flex;
  gap: 2rem;
  justify-content: center;
  margin: 1rem 0;
}
.footer-nav a {
  font-size: 0.75rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(245,237,227,0.5);
  text-decoration: none;
  transition: opacity 0.2s;
}
.footer-nav a:hover { opacity: 1; color: var(--cream); }

/* ── FORMATION ────────────────────────────────────── */
.formation-section {
  position: relative;
  background: var(--cream);
  padding: 5rem 4rem 9rem;
  overflow: hidden;
}
.formation-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 5rem;
  max-width: 1100px;
  margin: 0 auto;
  align-items: center;
}
.formation-text h2 {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(2.2rem, 4vw, 3.2rem);
  font-weight: 300;
  color: var(--brown);
  letter-spacing: 0.05em;
  line-height: 1.15;
  margin-bottom: 2.5rem;
}
.formation-list {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
.formation-item {
  display: flex;
  gap: 1.5rem;
  align-items: flex-start;
  padding-bottom: 2rem;
  border-bottom: 1px solid rgba(196,180,154,0.3);
}
.formation-item:last-child { border-bottom: none; padding-bottom: 0; }
.formation-year {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.3rem;
  font-weight: 300;
  color: var(--sand);
  letter-spacing: 0.05em;
  white-space: nowrap;
  padding-top: 2px;
  min-width: 48px;
}
.formation-item strong {
  display: block;
  font-size: 0.88rem;
  font-weight: 500;
  color: var(--brown);
  letter-spacing: 0.04em;
  margin-bottom: 0.4rem;
}
.formation-item p {
  font-size: 0.83rem;
  line-height: 1.8;
  color: var(--brown-light);
}
.formation-img {
  border-radius: 4px;
  overflow: hidden;
  box-shadow: 0 16px 50px rgba(58,45,36,0.14);
}
.formation-img img { width: 100%; height: 420px; object-fit: cover; display: block; }
@media (max-width: 900px) { .formation-img img { height: 320px; } }

/* ── RESPONSIVE PAGES ─────────────────────────────── */
@media (max-width: 1024px) {
  .about-inner { padding: 5rem 3rem 9rem; }
  .loc-intro-inner, .formation-inner { gap: 3rem; }
}

@media (max-width: 900px) {
  .formation-inner { grid-template-columns: 1fr; gap: 3rem; padding: 0; }
  .formation-section { padding: 4rem 2rem; }
  .loc-intro-inner {
    grid-template-columns: 1fr;
    padding: 4rem 2rem 8rem;
    gap: 3rem;
    text-align: center;
  }
  .loc-intro-img { justify-content: center; }
  .loc-intro-img .arch-img-outer,
  .loc-intro-img .arch-img-outer::before,
  .loc-intro-img .arch-wrap { width: 240px; height: 340px; }
  .loc-badges { justify-content: center; }

  .contact-page-section { padding: 4rem 2rem; }
  .contact-page-inner { grid-template-columns: 1fr; gap: 3rem; }

  .adresses-section { padding: 4rem 2rem; }
  .adresses-grid { grid-template-columns: 1fr; max-width: 480px; }

  .zone-section { padding: 3rem 2rem 8rem; }
  .zone-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 768px) {
  /* Hero pages secondaires */
  .page-hero { height: 70vh; min-height: 480px; }
  .page-hero-sm { height: 55vh; min-height: 360px; }
  .page-hero-content { padding: 120px 1.5rem 100px; }
  .page-hero-content h1 { font-size: clamp(2.4rem, 8vw, 4rem); }
  .page-hero-desc { font-size: 0.82rem; }

  /* About page */
  .about-inner {
    grid-template-columns: 1fr;
    padding: 3rem 1.5rem 7rem;
    gap: 2rem;
    text-align: center;
  }
  .about-photo { justify-content: center; }
  .arch-img-outer { width: 220px; height: 310px; margin: 0 auto; }

  /* Valeurs / bienfaits */
  .bienfaits-grid { grid-template-columns: 1fr 1fr; }
  .bienfaits { padding: 3rem 1.5rem 8rem; }

  /* Formation */
  .formation-inner { grid-template-columns: 1fr; }
  .formation-section { padding: 3rem 1.5rem; }
  .formation-img { display: none; }

  /* Contact page */
  .contact-page-inner { grid-template-columns: 1fr; gap: 2rem; }
  .contact-page-section { padding: 3rem 1.5rem; }
  .contact-zones { margin-top: 1.5rem; }

  /* Adresses */
  .adresses-section { padding: 3rem 1.5rem; }
  .adresses-grid { grid-template-columns: 1fr; max-width: 420px; }

  /* Issoire loc-intro */
  .loc-intro-inner { grid-template-columns: 1fr; text-align: center; }
  .loc-intro { padding: 3rem 1.5rem 8rem; }
  .loc-badges { justify-content: center; }

  /* Zone section */
  .zone-section { padding: 3rem 1.5rem 8rem; }
  .zone-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 600px) {
  .page-hero { height: 60vh; min-height: 400px; }
  .page-hero-content h1 { font-size: clamp(2rem, 9vw, 3rem); }
  .form-row { grid-template-columns: 1fr; }
  .zone-grid { grid-template-columns: 1fr; }
  .footer-nav { gap: 1.2rem; flex-wrap: wrap; }
  .bienfaits-grid { grid-template-columns: 1fr; }
  .contact-zone-tags { gap: 0.5rem; }
  .adresses-grid { grid-template-columns: 1fr; }
}

@media (max-width: 480px) {
  .page-hero-content { padding: 100px 1.2rem 80px; }
  .loc-arch-outer { width: 200px !important; height: 280px !important; }
}

/* ══════════════════════════════════════════════════
   PAGE PRESTATIONS
   ══════════════════════════════════════════════════ */

/* ── INTRO ──────────────────────────────────────── */
.presta-intro {
  position: relative;
  background: var(--cream);
  padding: 6rem 2rem 10rem;
  text-align: center;
}
.presta-intro-inner { max-width: 720px; margin: 0 auto; }
.presta-intro h2 { margin-bottom: 1.5rem; }
.presta-intro-text {
  font-size: 1.05rem;
  line-height: 1.9;
  color: var(--brown-light);
  max-width: 640px;
  margin: 0 auto;
}

/* ── SECTIONS PRESTATIONS ───────────────────────── */
.presta-section {
  position: relative;
  padding: 5rem 2rem 9rem;
}
.presta-odd  { background: var(--beige); }
.presta-even { background: var(--cream); }

.presta-inner {
  max-width: 1100px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 5rem;
  align-items: center;
}
.presta-reverse { direction: rtl; }
.presta-reverse > * { direction: ltr; }

/* Arche vidéo */
.presta-video .arch-img-outer {
  width: 345px;
  height: 470px;
  margin: 0 auto;
}
.presta-video .arch-img-outer::before {
  content: '';
  position: absolute;
  top: 12px; left: 12px;
  width: 100%; height: 100%;
  border-radius: 50% 50% 0 0;
  background: var(--sand);
  opacity: 0.45;
  z-index: -1;
}
.arch-wrap {
  position: relative;
  z-index: 1;
  width: 100%; height: 100%;
  border-radius: 50% 50% 0 0;
  overflow: hidden;
}
.arch-wrap video,
.arch-wrap img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
}

/* Texte prestation */
.presta-num {
  display: block;
  font-family: 'Cormorant Garamond', serif;
  font-size: 4rem;
  font-weight: 300;
  color: var(--sand);
  opacity: 0.4;
  line-height: 1;
  margin-bottom: 0.5rem;
}
.presta-text h2 {
  font-size: clamp(2.2rem, 4vw, 3.2rem);
  margin-bottom: 2rem;
}

/* Étapes */
.presta-steps {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-bottom: 2rem;
}
.presta-step {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
}
.step-dot {
  flex-shrink: 0;
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--sand);
  margin-top: 0.55rem;
}
.presta-step p {
  font-size: 0.9rem;
  line-height: 1.75;
  color: var(--brown-light);
}

/* Tarifs */
.presta-tarifs {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  align-items: center;
  margin-bottom: 2rem;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(196,180,154,0.4);
}
.presta-tarif-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  background: var(--cream);
  border: 1px solid rgba(196,180,154,0.45);
  border-radius: 4px;
  padding: 1rem 1.6rem;
  min-width: 110px;
}
.presta-odd .presta-tarif-card { background: var(--beige); }
.tarif-duration {
  font-size: 0.75rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--brown-light);
  margin-bottom: 0.3rem;
}
.tarif-price {
  font-family: 'Cormorant Garamond', serif;
  font-size: 2rem;
  font-weight: 300;
  color: var(--brown);
}
.presta-btns {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
  align-items: center;
  margin-top: 2rem;
}
.presta-btns .btn-about,
.presta-btns .btn-arch {
  margin-top: 0;  /* annule le margin-top individuel */
}

.presta-tarif-option {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.78rem;
  font-style: italic;
  color: var(--brown-light);
  width: 100%;
}
.presta-tarif-option svg {
  width: 16px; height: 16px;
  flex-shrink: 0;
  color: var(--sand);
}
.presta-tarif-option strong { color: var(--brown); }

/* ── SECTION CHÂTEAU DE LA GRANGE FORT ──────────── */
.chateau-section {
  position: relative;
  background: var(--cream);
  padding: 3rem 2rem 5rem;
}
.chateau-inner {
  max-width: 1100px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 4rem;
  align-items: center;
}
.chateau-text h2 {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(2.2rem, 4vw, 3.4rem);
  font-weight: 300;
  color: var(--brown);
  margin-bottom: 1.5rem;
  line-height: 1.15;
}
.chateau-text h2 em { font-style: italic; }
.chateau-text p {
  font-size: 0.92rem;
  line-height: 2;
  color: var(--brown-light);
  margin-bottom: 1rem;
}
.chateau-img {
  position: relative;
  border-radius: 6px;
  overflow: hidden;
  box-shadow: 0 18px 50px rgba(58,45,36,0.15);
}
.chateau-img img {
  width: 100%;
  height: 520px;
  object-fit: cover;
  object-position: center 15%;
  display: block;
  transition: transform 0.6s cubic-bezier(0.22,1,0.36,1);
}
.chateau-img:hover img { transform: scale(1.03); }
/* Filet décoratif autour du cadre */
.chateau-img::after {
  content: '';
  position: absolute;
  top: 12px; right: 12px; bottom: 12px; left: 12px;
  border: 1px solid rgba(245,237,227,0.4);
  pointer-events: none;
  border-radius: 4px;
}
@media (max-width: 900px) {
  .chateau-inner { grid-template-columns: 1fr; gap: 2.5rem; text-align: center; }
  .chateau-img img { height: 380px; }
}
@media (max-width: 600px) {
  .chateau-section { padding: 2rem 1.5rem 4rem; }
  .chateau-img img { height: 320px; }
}

/* ── GRILLE AMBIANCE VIDÉOS ─────────────────────── */
.presta-ambiance {
  position: relative;
  background: var(--cream);
  padding: 5rem 2rem 10rem;
  text-align: center;
}
.presta-ambiance h2 { margin-bottom: 1.5rem; }

/* Teaser galerie (4 vignettes + bouton) */
.gallery-teaser-desc {
  max-width: 600px;
  margin: 0 auto 3rem;
  font-size: 0.95rem;
  line-height: 1.8;
  color: var(--brown-light);
}
.gallery-teaser {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
  max-width: 1100px;
  margin: 0 auto 2.5rem;
}
.gallery-teaser-item {
  position: relative;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  border-radius: 6px;
  text-decoration: none;
  display: block;
}
.gallery-teaser-item img,
.gallery-teaser-item video {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.5s cubic-bezier(0.22,1,0.36,1);
}
.gallery-teaser-item:hover img,
.gallery-teaser-item:hover video { transform: scale(1.08); }
.gallery-teaser-item::after {
  content: '';
  position: absolute;
  top: 0; right: 0; bottom: 0; left: 0;
  background: linear-gradient(to top, rgba(58,45,36,0.6) 0%, transparent 60%);
}
.gt-label {
  position: absolute;
  bottom: 12px; left: 14px; right: 14px;
  color: var(--cream);
  font-family: 'Jost', sans-serif;
  font-size: 0.78rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  z-index: 1;
}
.gallery-teaser-cta { display: inline-block; }
@media (max-width: 700px) {
  .gallery-teaser { grid-template-columns: 1fr 1fr; }
}
.ambiance-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  max-width: 1100px;
  margin: 0 auto;
}
.ambiance-video {
  border-radius: 8px;
  overflow: hidden;
  aspect-ratio: 16 / 9;
  background: var(--brown);
}
.ambiance-video video {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
}

/* ── RESPONSIVE PRESTATIONS ──────────────────────── */
@media (max-width: 1024px) {
  .presta-inner { gap: 3rem; padding: 0 1.5rem; }
  .ambiance-grid { gap: 1rem; }
}
@media (max-width: 900px) {
  .presta-inner { grid-template-columns: 1fr; gap: 2.5rem; text-align: center; }
  .presta-reverse { direction: ltr; }
  .presta-video .arch-img-outer { width: 240px; height: 340px; margin: 0 auto; }
  .presta-steps { text-align: left; }
  .presta-tarifs { justify-content: center; }
  .ambiance-grid { grid-template-columns: 1fr 1fr; }
  .presta-section { padding: 4rem 1.5rem 8rem; }
  .presta-intro { padding: 4rem 1.5rem 8rem; }
}
@media (max-width: 600px) {
  .ambiance-grid { grid-template-columns: 1fr; }
  .presta-tarifs { flex-direction: row; flex-wrap: wrap; justify-content: flex-start; }
  .presta-video .arch-img-outer { width: 200px; height: 280px; }
  .presta-ambiance { padding: 3rem 1.5rem 8rem; }
}
@media (max-width: 480px) {
  .presta-tarif-card { min-width: 90px; padding: 0.8rem 1rem; }
  .tarif-price { font-size: 1.6rem; }
}

/* ── PRESTATION PEAU A PEAU ─────────────────────── */
.peau-section {
  position: relative;
  background: var(--beige);
  padding: 3.5rem 2rem 8rem;
  text-align: center;
}
.peau-inner { max-width: 760px; margin: 0 auto; }
.peau-lead {
  font-size: 1.06rem;
  color: var(--brown-light);
  line-height: 1.9;
  margin: 1.4rem auto 0;
  max-width: 650px;
}
.peau-lead-accent { margin-top: 1.1rem; }
.peau-lead-accent strong { color: var(--brown); }
.peau-media {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.2rem;
  max-width: 900px;
  margin: 3rem auto 2.6rem;
}
.peau-media-item {
  position: relative;
  aspect-ratio: 3 / 4;
  overflow: hidden;
  border-radius: 12px;
  box-shadow: 0 14px 34px rgba(58,45,36,0.14);
}
.peau-media-item img,
.peau-media-item video {
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}
@media (max-width: 700px) {
  .peau-section { padding: 2.5rem 1.5rem 6rem; }
  .peau-media { grid-template-columns: 1fr; max-width: 330px; gap: 1rem; }
}