*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
  --foret:    #1B3A2D;
  --foret-mid:#2A5040;
  --creme:    #F7F3EE;
  --accent:   #C8923A;
  --accent-lt:#E0B870;
  --blanc:    #FAFAF7;
  --texte:    #1C2B20;
  --gris:     #6B7A6E;
  --f-display: 'Cormorant Garant', serif;
  --f-body:    'Inter', sans-serif;
}
html { scroll-behavior: smooth; }
body { font-family: var(--f-body); background: var(--blanc); color: var(--texte); overflow-x: hidden; }


/* ── NAV ── */
nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 200;
  display: grid; grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center; gap: 2rem;
  padding: .85rem 2.2rem;
  background: rgba(247,243,238,0.95);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(27,58,45,0.08);
}
.nav-logo { cursor: pointer; text-decoration: none; display: flex; align-items: center; gap: .8rem; min-width: 255px; }
.nav-logo img { height: 42px; width: auto; }
.nav-logo-text { font-family: var(--f-display); font-size: 1.1rem; font-weight: 700; color: var(--foret); line-height: 1.1; }
.nav-logo-text span { display: block; font-size: .65rem; font-family: var(--f-body); font-weight: 400; letter-spacing: .12em; text-transform: uppercase; color: var(--gris); }
.nav-links { display: flex; gap: .25rem; list-style: none; align-items: center; justify-content: center; min-width: 0; }
.nav-links > li { display: flex; align-items: center; }
.nav-links a, .nav-group-trigger {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 44px; text-align: center; line-height: 1.25;
  font-family: var(--f-body); font-size: .74rem; font-weight: 600; letter-spacing: .07em; text-transform: uppercase;
  color: var(--foret); text-decoration: none; padding: .45rem .75rem; border-radius: 6px;
  transition: color .2s, background .2s; cursor: pointer;
}
.nav-group { position: relative; }
.nav-group-trigger {
  gap: .45rem; max-width: 210px;
  border: none; background: transparent;
}
.nav-group-trigger::after { content: '▾'; font-size: .62rem; color: var(--accent); transform: translateY(-1px); }
.nav-dropdown {
  position: absolute; top: calc(100% + .7rem); left: 0; min-width: 230px;
  background: var(--blanc); border: 1px solid rgba(27,58,45,0.1);
  border-radius: 10px; padding: .45rem; box-shadow: 0 18px 45px rgba(27,58,45,0.12);
  opacity: 0; visibility: hidden; transform: translateY(-6px);
  transition: opacity .18s, transform .18s, visibility .18s;
}
.nav-group:hover .nav-dropdown,
.nav-group:focus-within .nav-dropdown {
  opacity: 1; visibility: visible; transform: translateY(0);
}
.nav-dropdown a { display: block; padding: .7rem .8rem; text-transform: none; letter-spacing: 0; font-size: .86rem; }
.nav-links a:hover, .nav-links a.active { color: var(--accent); background: rgba(200,134,58,0.08); }
.nav-group:hover .nav-group-trigger { color: var(--accent); background: rgba(200,134,58,0.08); }
.nav-actions { display:flex; align-items:center; justify-content:flex-end; gap:.8rem; min-width: 180px; }
.nav-cta {
  background: var(--foret); color: var(--blanc);
  font-family: var(--f-body); font-size: .78rem; font-weight: 500; letter-spacing: .07em; text-transform: uppercase;
  border: none; border-radius: 50px; padding: .65rem 1.4rem; cursor: pointer; text-decoration: none;
  transition: background .2s;
}
.nav-cta:hover { background: var(--accent); }
/* hamburger mobile */
.nav-burger { display: none; flex-direction: column; gap: 5px; cursor: pointer; padding: .3rem; border: none; background: transparent; }
.nav-burger span { display: block; width: 22px; height: 1.5px; background: var(--foret); transition: all .3s; }
.mobile-menu {
  display: none; position: fixed; top: 70px; left: 0; right: 0; z-index: 190;
  background: var(--creme); border-bottom: 1px solid rgba(27,58,45,0.1);
  padding: 1.5rem 2rem; flex-direction: column; gap: .3rem;
  max-height: calc(100vh - 70px); overflow-y: auto;
}
.mobile-menu.open { display: flex; }
.mobile-menu a {
  font-size: .85rem; font-weight: 500; letter-spacing: .07em; text-transform: uppercase;
  color: var(--foret); text-decoration: none; padding: .7rem 0;
  border-bottom: 1px solid rgba(27,58,45,0.06); cursor: pointer;
}
.mobile-menu-heading {
  font-size: .68rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase;
  color: var(--accent); padding: .9rem 0 .25rem;
}
.mobile-menu .mobile-sub-link {
  padding-left: 1rem; font-size: .8rem; color: var(--gris);
}
.mobile-menu a:last-child { border-bottom: none; }

/* ── SECTIONS COMMUNES ── */
.pt-nav { padding-top: 70px; }
section { padding: 5rem 4rem; }
.section-eyebrow {
  font-family: var(--f-body); font-size: .72rem; font-weight: 500; letter-spacing: .2em; text-transform: uppercase;
  color: var(--accent); margin-bottom: 1rem; display: flex; align-items: center; gap: .6rem;
}
.section-eyebrow::before { content: '—'; opacity: .5; }
h2, .section-title {
  font-family: var(--f-display); font-size: clamp(2rem, 4vw, 3.4rem); font-weight: 700; line-height: 1.1;
  color: var(--foret); margin-bottom: 1.2rem;
}
h2 em, .section-title em { font-style: italic; color: var(--accent); }
.section-intro {
  font-family: var(--f-body); font-size: 1rem; line-height: 1.85; color: var(--gris);
  max-width: 600px; margin-bottom: 2.5rem;
}
.btn-primary {
  display: inline-flex; align-items: center; gap: .7rem;
  background: var(--accent); color: var(--foret);
  font-family: var(--f-body); font-size: .82rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase;
  border-radius: 50px; padding: .9rem 2rem; text-decoration: none; border: none; cursor: pointer;
  transition: background .2s;
}
.btn-primary:hover { background: var(--accent-lt); }
.btn-outline {
  display: inline-flex; align-items: center; gap: .7rem;
  background: transparent; color: var(--foret);
  font-family: var(--f-body); font-size: .82rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase;
  border-radius: 50px; padding: .9rem 2rem; text-decoration: none; border: 1.5px solid var(--foret); cursor: pointer;
  transition: background .2s, color .2s;
}
.btn-outline:hover { background: var(--foret); color: var(--blanc); }

/* ── HERO (accueil) ── */
.hero {
  min-height: 100vh;
  display: grid; grid-template-columns: 1fr 1fr;
  background: var(--foret); overflow: hidden;
}
.hero-left {
  display: flex; flex-direction: column; justify-content: center;
  padding: 9rem 5rem 6rem 5rem; position: relative; z-index: 2;
}
.hero-eyebrow {
  font-family: var(--f-body); font-size: .72rem; font-weight: 500; letter-spacing: .18em; text-transform: uppercase;
  color: var(--accent-lt); margin-bottom: 1.6rem;
}
.hero-title {
  font-family: var(--f-display); font-size: clamp(3rem, 5vw, 5rem); font-weight: 700; line-height: 1.05;
  color: var(--blanc); margin-bottom: 1.6rem;
}
.hero-title em { font-style: italic; color: var(--accent-lt); }
.hero-sub {
  font-size: 1rem; font-weight: 300; line-height: 1.8;
  color: rgba(250,250,247,0.72); max-width: 380px; margin-bottom: 3rem;
}
.hero-btns { display: flex; gap: 1rem; flex-wrap: wrap; }
.hero-btn-sec {
  display: inline-flex; align-items: center; gap: .7rem;
  background: transparent; color: rgba(250,250,247,0.75);
  font-size: .82rem; font-weight: 500; letter-spacing: .06em; text-transform: uppercase;
  border-radius: 50px; padding: .9rem 2rem; border: 1px solid rgba(250,250,247,0.2); cursor: pointer; text-decoration: none;
  transition: border-color .2s, color .2s;
}
.hero-btn-sec:hover { border-color: var(--accent-lt); color: var(--accent-lt); }
.hero-stats {
  display: flex; gap: 2.5rem; margin-top: 4rem;
  border-top: 1px solid rgba(250,250,247,0.12); padding-top: 2rem;
}
.stat-num { font-family: var(--f-display); font-size: 2rem; font-weight: 700; color: var(--blanc); }
.stat-label { font-size: .72rem; color: rgba(250,250,247,0.5); letter-spacing: .05em; margin-top: .15rem; }
.hero-right { position: relative; overflow: hidden; }
.hero-right::before {
  content: ''; position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(to right, var(--foret) 0%, transparent 30%);
}
.hero-photo {
  width: 100%; height: 100%; min-height: 100vh;
  object-fit: cover; object-position: center top; display: block;
}
.hero-badge {
  position: absolute; bottom: 3rem; right: 3rem; z-index: 2;
  background: rgba(200,134,58,0.12); border: 1px solid rgba(200,134,58,0.25);
  backdrop-filter: blur(10px); border-radius: 12px; padding: 1.2rem 1.5rem; color: var(--blanc);
}
.hero-badge img { width: 56px; height: auto; margin-bottom: .4rem; display: block; border-radius: 50%; }
.hero-badge-name { font-family: var(--f-display); font-size: 1rem; font-weight: 600; color: var(--blanc); }
.hero-badge-title { font-size: .72rem; color: var(--accent-lt); letter-spacing: .06em; margin-top: .1rem; }

/* ── PROGRAMMES CARDS ── */
.programmes { background: var(--creme); }
.programmes-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1.5rem; margin-top: 3rem; }
.prog-card {
  background: var(--blanc); border-radius: 16px; padding: 2.5rem 2rem;
  border: 1px solid rgba(27,58,45,0.08);
  transition: transform .25s, box-shadow .25s;
  text-decoration: none; color: inherit; display: block; position: relative; overflow: hidden; cursor: pointer;
}
.prog-card::after {
  content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 3px;
  background: var(--accent); transform: scaleX(0); transform-origin: left; transition: transform .3s;
}
.prog-card:hover { transform: translateY(-4px); box-shadow: 0 16px 40px rgba(27,58,45,0.1); }
.prog-card:hover::after { transform: scaleX(1); }
.prog-card h3 { font-family: var(--f-display); font-size: 1.5rem; font-weight: 600; color: var(--foret); margin-bottom: .6rem; }
.prog-card p { font-size: .88rem; line-height: 1.75; color: var(--gris); }
.prog-link { display: inline-flex; align-items: center; gap: .4rem; font-size: .78rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--accent); margin-top: 1.4rem; }

/* ── MÉTHODE ── */
.methode {
  background: var(--foret);
  display: grid; grid-template-columns: 1fr 1fr; gap: 5rem; align-items: center;
}
.methode h2 { color: var(--blanc); }
.methode h2 em { color: var(--accent-lt); }
.methode .section-eyebrow { color: var(--accent-lt); }
.methode .section-intro { color: rgba(250,250,247,0.62); }
.methode-steps { display: flex; flex-direction: column; gap: 1.2rem; }
.methode-step {
  display: flex; gap: 1.2rem; align-items: flex-start; padding: 1.4rem; border-radius: 12px;
  background: rgba(250,250,247,0.05); border: 1px solid rgba(250,250,247,0.08);
}
.step-num { font-family: var(--f-display); font-size: 2rem; font-weight: 700; color: var(--accent); line-height: 1; flex-shrink: 0; min-width: 2.2rem; }
.step-text h4 { font-family: var(--f-display); font-size: 1.1rem; font-weight: 600; color: var(--blanc); margin-bottom: .3rem; }
.step-text p { font-size: .84rem; color: rgba(250,250,247,0.52); line-height: 1.65; }
.methode-visual { display: flex; flex-direction: column; gap: 1rem; }
.methode-card {
  background: rgba(250,250,247,0.05); border: 1px solid rgba(200,134,58,0.2);
  border-radius: 14px; padding: 1.8rem;
}
.methode-card-label { font-size: .7rem; font-weight: 500; letter-spacing: .15em; text-transform: uppercase; color: var(--accent-lt); margin-bottom: .5rem; }
.methode-card-val { font-family: var(--f-display); font-size: 2.2rem; font-weight: 700; color: var(--blanc); }
.methode-card-sub { font-size: .78rem; color: rgba(250,250,247,0.45); margin-top: .2rem; }

/* ── PAGE HERO (pages internes) ── */
.page-hero {
  background: var(--foret); padding: 9rem 4rem 5rem;
  display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: center;
}
.page-hero-content {}
.page-hero h1 {
  font-family: var(--f-display); font-size: clamp(2.5rem, 5vw, 4.5rem); font-weight: 700; line-height: 1.05;
  color: var(--blanc); margin-bottom: 1.4rem;
}
.page-hero h1 em { font-style: italic; color: var(--accent-lt); }
.page-hero-eyebrow {
  font-size: .72rem; font-weight: 500; letter-spacing: .2em; text-transform: uppercase;
  color: var(--accent-lt); margin-bottom: 1.2rem; display: flex; align-items: center; gap: .6rem;
}
.page-hero p { font-size: 1rem; line-height: 1.85; color: rgba(250,250,247,0.7); max-width: 480px; margin-bottom: 2.5rem; }
.page-hero-visual {
  background: rgba(250,250,247,0.05); border: 1px solid rgba(200,134,58,0.2);
  border-radius: 20px; padding: 2.5rem;
}
.page-hero-visual h3 { font-family: var(--f-display); font-size: 1.3rem; color: var(--blanc); margin-bottom: 1.2rem; }
.symptom-list { list-style: none; display: flex; flex-direction: column; gap: .7rem; }
.symptom-list li { font-size: .88rem; color: rgba(250,250,247,0.65); display: flex; align-items: flex-start; gap: .7rem; line-height: 1.55; }
.symptom-list li::before { content: ''; display: block; width: 6px; height: 6px; border-radius: 50%; background: var(--accent); flex-shrink: 0; margin-top: .45rem; }

/* ── CONTENT SECTIONS ── */
.content-2col { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: start; }
.content-card {
  background: var(--blanc); border-radius: 16px; padding: 2.5rem;
  border: 1px solid rgba(27,58,45,0.08);
}
.content-card h3 { font-family: var(--f-display); font-size: 1.4rem; font-weight: 600; color: var(--foret); margin-bottom: 1rem; }
.content-card p, .content-card li { font-size: .9rem; line-height: 1.8; color: var(--gris); }
.content-card ul { list-style: none; display: flex; flex-direction: column; gap: .6rem; padding: 0; }
.content-card ul li { display: flex; gap: .7rem; align-items: flex-start; }
.content-card ul li::before { content: '—'; color: var(--accent); flex-shrink: 0; font-weight: 600; }
.bg-creme { background: var(--creme); }
.bg-foret { background: var(--foret); }
.bg-blanc { background: var(--blanc); }

/* ── CTA BAND ── */
.cta-band {
  background: var(--foret); padding: 5rem 4rem;
  display: flex; align-items: center; justify-content: space-between; gap: 2rem; flex-wrap: wrap;
}
.cta-band h2 { color: var(--blanc); margin-bottom: .5rem; font-size: clamp(1.8rem, 3vw, 2.8rem); }
.cta-band h2 em { color: var(--accent-lt); }
.cta-band p { color: rgba(250,250,247,0.6); font-size: .95rem; max-width: 500px; }

/* ── BLOG ── */
.blog-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1.5rem; margin-top: 3rem; }
.blog-card {
  border-radius: 14px; overflow: hidden; border: 1px solid rgba(27,58,45,0.08);
  text-decoration: none; color: inherit; cursor: pointer;
  transition: transform .25s, box-shadow .25s; display: block;
}
.blog-card:hover { transform: translateY(-3px); box-shadow: 0 12px 30px rgba(27,58,45,0.08); }
.blog-img {
  height: 160px; background: linear-gradient(135deg, var(--foret-mid), var(--foret));
  display: flex; align-items: center; justify-content: center;
}
.blog-body { padding: 1.5rem; background: var(--blanc); }
.blog-tag { font-size: .67rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--accent); margin-bottom: .6rem; }
.blog-card h3 { font-family: var(--f-display); font-size: 1.15rem; font-weight: 600; color: var(--foret); line-height: 1.3; margin-bottom: .5rem; }
.blog-card p { font-size: .82rem; color: var(--gris); line-height: 1.65; }
.blog-date { font-size: .7rem; color: var(--gris); margin-top: .8rem; opacity: .6; }
.blog-card details { margin-top: 1rem; font-size: .82rem; color: var(--gris); line-height: 1.7; }
.blog-card summary { cursor: pointer; color: var(--foret); font-weight: 600; }
.blog-card details div { margin-top: .7rem; white-space: pre-line; }
.blog-admin-link {
  display: inline-flex; align-items: center; gap: .55rem;
  margin-top: 1.4rem; color: var(--accent-lt); text-decoration: none;
  font-size: .78rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase;
}
.blog-admin-link:hover { color: var(--blanc); }

/* ── BLOG FILTERS ── */
.blog-filters {
  display: flex; gap: .6rem; flex-wrap: wrap;
  padding: 2rem 4rem 1.5rem; background: var(--blanc);
}
.blog-filter-tag {
  font-family: var(--f-body); font-size: .72rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase;
  padding: .5rem 1.3rem; border-radius: 50px; cursor: pointer;
  border: 1.5px solid rgba(27,58,45,0.15); background: transparent; color: var(--gris);
  transition: all .2s;
}
.blog-filter-tag.active { background: var(--foret); color: var(--blanc); border-color: var(--foret); }
.blog-filter-tag:hover:not(.active) { border-color: var(--accent); color: var(--accent); }

/* ── CONTACT FORM ── */
.contact-grid { display: grid; grid-template-columns: 1fr 1.2fr; gap: 5rem; align-items: start; }
.contact-form { display: flex; flex-direction: column; gap: 1rem; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.form-group { display: flex; flex-direction: column; gap: .4rem; }
.form-group label { font-size: .75rem; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; color: var(--foret); }
.form-group input, .form-group select, .form-group textarea {
  font-family: var(--f-body); font-size: .9rem;
  background: var(--blanc); border: 1px solid rgba(27,58,45,0.15);
  border-radius: 8px; padding: .8rem 1rem; color: var(--texte);
  transition: border-color .2s; outline: none;
}
.form-group input:focus, .form-group select:focus, .form-group textarea:focus { border-color: var(--accent); }
.form-group textarea { min-height: 130px; resize: vertical; }
.form-submit {
  background: var(--foret); color: var(--blanc);
  font-family: var(--f-body); font-size: .82rem; font-weight: 600; letter-spacing: .07em; text-transform: uppercase;
  border: none; border-radius: 50px; padding: 1rem 2.4rem; cursor: pointer;
  transition: background .2s; align-self: flex-start; margin-top: .5rem;
}
.form-submit:hover { background: var(--accent); color: var(--foret); }
.contact-detail { display: flex; align-items: center; gap: 1rem; margin-bottom: 1.2rem; }
.contact-detail-icon {
  width: 40px; height: 40px; background: rgba(27,58,45,0.07);
  border-radius: 10px; display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.contact-detail-text { font-size: .9rem; color: var(--gris); }
.contact-detail-text strong { display: block; font-weight: 500; color: var(--foret); font-size: .75rem; letter-spacing: .06em; text-transform: uppercase; margin-bottom: .1rem; }
.contact-info-card {
  background: var(--foret); border-radius: 20px; padding: 3rem;
}
.contact-info-card h3 { font-family: var(--f-display); font-size: 1.8rem; color: var(--blanc); margin-bottom: .8rem; }
.contact-info-card > p { font-size: .9rem; color: rgba(250,250,247,0.6); line-height: 1.75; margin-bottom: 2rem; }
.contact-info-card .contact-detail-icon { background: rgba(250,250,247,0.08); }
.contact-info-card .contact-detail-text { color: rgba(250,250,247,0.65); }
.contact-info-card .contact-detail-text strong { color: var(--accent-lt); }
.whatsapp-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .7rem;
  width: 100%; margin-top: .5rem; padding: .9rem 1.2rem;
  border-radius: 50px; background: #25D366; color: #0B2A1A;
  font-size: .82rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase;
  text-decoration: none; transition: transform .2s, background .2s;
}
.whatsapp-btn:hover { background: #38E27A; transform: translateY(-1px); }
.whatsapp-btn svg { width: 19px; height: 19px; flex-shrink: 0; }
.rdv-highlight {
  background: rgba(200,134,58,0.15); border: 1px solid rgba(200,134,58,0.25);
  border-radius: 12px; padding: 1.4rem; margin-top: 2rem;
}
.rdv-highlight p { font-size: .88rem; color: rgba(250,250,247,0.7); line-height: 1.7; }
.rdv-highlight strong { color: var(--accent-lt); }

/* ── ABOUT ── */
.about-story {
  background: var(--creme);
}
.about-wrap {
  display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(280px, .65fr);
  gap: 4rem; align-items: start;
}
.about-text {
  background: var(--blanc); border: 1px solid rgba(27,58,45,0.08);
  border-radius: 16px; padding: 3rem;
}
.about-text p {
  font-size: 1rem; line-height: 1.95; color: var(--texte);
  margin-bottom: 1.45rem;
}
.about-text p:last-child { margin-bottom: 0; }
.about-text p:first-of-type::first-letter {
  float: left; font-family: var(--f-display); font-size: 4.2rem;
  line-height: .82; padding: .1rem .6rem 0 0; color: var(--accent);
}
.about-side {
  position: sticky; top: 100px; display: flex; flex-direction: column; gap: 1rem;
}
.about-note {
  background: var(--foret); border-radius: 16px; padding: 2rem;
  border: 1px solid rgba(200,134,58,0.22);
}
.about-note h3 {
  font-family: var(--f-display); font-size: 1.5rem; font-weight: 600;
  color: var(--blanc); margin-bottom: .8rem;
}
.about-note p { font-size: .9rem; line-height: 1.75; color: rgba(250,250,247,0.65); }
.about-pill-list {
  display: flex; flex-wrap: wrap; gap: .6rem;
}
.about-pill {
  border: 1px solid rgba(27,58,45,0.12); border-radius: 50px;
  padding: .55rem 1rem; font-size: .74rem; font-weight: 600;
  letter-spacing: .08em; text-transform: uppercase; color: var(--foret);
  background: var(--blanc);
}

/* ── FOOTER ── */
footer {
  background: var(--foret); color: rgba(250,250,247,0.45);
  padding: 2.5rem 4rem;
  display: flex; justify-content: space-between; align-items: center;
  flex-wrap: wrap; gap: 1rem;
}
.footer-left { display: flex; align-items: center; gap: 1rem; }
.footer-left img { height: 34px; width: auto; opacity: .75; border-radius: 50%; }
.footer-name { font-family: var(--f-display); font-size: .95rem; color: rgba(250,250,247,0.6); }
.footer-address { font-style: normal; font-size: .72rem; margin-top: .2rem; }
.footer-links { display: flex; gap: 1.6rem; list-style: none; }
.footer-links a { font-size: .75rem; text-decoration: none; color: rgba(250,250,247,0.45); letter-spacing: .05em; transition: color .2s; cursor: pointer; }
.footer-links a:hover { color: var(--accent-lt); }
.footer-copy { font-size: .74rem; }
.footer-powered { flex-basis: 100%; text-align: center; font-size: .74rem; }
.footer-legal { display: flex; flex-wrap: wrap; gap: .4rem 1.4rem; list-style: none; }
.footer-legal a { font-size: .74rem; color: rgba(250,250,247,0.45); text-decoration: none; transition: color .2s; }
.footer-legal a:hover { color: var(--accent-lt); }

/* ── TEXTES LÉGAUX ── */
.legal-page { background: var(--creme); padding-top: 8rem; }
.legal-page .legal-content {
  max-width: 820px; margin: 0 auto; background: var(--blanc);
  border: 1px solid rgba(27,58,45,0.08); border-radius: 16px; padding: 3.5rem;
}
.legal-content h1 {
  font-family: var(--f-display); font-size: clamp(2rem, 4vw, 2.8rem); font-weight: 700; line-height: 1.1;
  color: var(--foret); margin-bottom: .6rem; padding-right: 2.5rem;
}
.legal-content h2 {
  font-size: 1.45rem; line-height: 1.25; margin: 2.4rem 0 .8rem;
  padding-top: 1.6rem; border-top: 1px solid rgba(27,58,45,0.08);
}
.legal-content p, .legal-content li, .legal-content td, .legal-content th { font-size: .95rem; line-height: 1.8; color: var(--texte); }
.legal-content p { margin-bottom: .9rem; }
.legal-content ul { margin: 0 0 1rem 1.3rem; }
.legal-content li { margin-bottom: .25rem; }
.legal-content li::marker { color: var(--accent); }
.legal-content a { color: var(--foret); text-decoration: underline; text-decoration-color: var(--accent); text-underline-offset: 2px; }
.legal-content strong { color: var(--foret); font-weight: 600; }
.legal-content .legal-updated { font-style: italic; color: var(--gris); font-size: .85rem; margin-bottom: 1.5rem; }
.legal-todo { background: #FCE9B8; color: #7A4A00; padding: 0 .2rem; border-radius: 3px; }
.legal-table-wrap { overflow-x: auto; margin: .5rem 0 1.2rem; }
.legal-content table { border-collapse: collapse; width: 100%; min-width: 420px; }
.legal-content th { text-align: left; font-weight: 600; color: var(--foret); border-bottom: 2px solid rgba(27,58,45,0.15); padding: .55rem .9rem .55rem 0; }
.legal-content td { border-bottom: 1px solid rgba(27,58,45,0.08); padding: .55rem .9rem .55rem 0; }
.legal-content td:last-child, .legal-content th:last-child { text-align: right; padding-right: 0; white-space: nowrap; }

.legal-dialog {
  width: min(820px, calc(100vw - 32px)); max-width: none; max-height: min(88vh, 900px);
  margin: auto; padding: 0; border: none; border-radius: 18px;
  background: var(--blanc); box-shadow: 0 30px 80px rgba(0,0,0,0.3); overflow: hidden;
}
.legal-dialog::backdrop { background: rgba(20,40,31,0.6); backdrop-filter: blur(4px); }
.legal-dialog-inner { max-height: min(88vh, 900px); overflow-y: auto; padding: 3.2rem 3.5rem; overscroll-behavior: contain; }
.legal-dialog-close {
  position: sticky; top: 0; float: right; margin: -1.6rem -1.8rem 0 0; z-index: 1;
  width: 42px; height: 42px; border-radius: 50%; border: 1px solid rgba(27,58,45,0.12);
  background: var(--blanc); color: var(--foret); font-size: 1.5rem; line-height: 1; cursor: pointer;
  transition: background .2s, color .2s;
}
.legal-dialog-close:hover { background: var(--foret); color: var(--blanc); }
html:has(.legal-dialog[open]) { overflow: hidden; }

/* ── ARTICLE PAGE ── */
.article-back {
  display: inline-flex; align-items: center; gap: .5rem;
  font-family: var(--f-body); font-size: .75rem; font-weight: 500; letter-spacing: .08em; text-transform: uppercase;
  color: rgba(250,250,247,0.65); background: transparent;
  border: 1px solid rgba(250,250,247,0.2); border-radius: 50px; padding: .6rem 1.4rem; cursor: pointer; text-decoration: none;
  transition: all .2s; margin-bottom: 2rem;
}
.article-back:hover { border-color: var(--accent-lt); color: var(--accent-lt); }
.article-body-content p { margin-bottom: 1.3rem; font-size: 1rem; line-height: 1.9; color: var(--texte); }
.article-body-content p:last-child { margin-bottom: 0; }
.article-image { width: 100%; height: auto; border-radius: 16px; margin-bottom: 2.5rem; display: block; }
.article-body-content h2 { font-size: clamp(1.6rem, 3vw, 2.2rem); margin: 2.5rem 0 1rem; }
.article-body-content h3 { font-family: var(--f-display); font-size: 1.4rem; font-weight: 600; color: var(--foret); margin: 2rem 0 .8rem; }
.article-body-content ul, .article-body-content ol { margin: 0 0 1.3rem 1.4rem; }
.article-body-content li { font-size: 1rem; line-height: 1.9; color: var(--texte); margin-bottom: .3rem; }
.article-body-content a { color: var(--foret); text-decoration: underline; text-decoration-color: var(--accent); }
.article-body-content blockquote { border-left: 3px solid var(--accent); padding: .2rem 0 .2rem 1.4rem; margin: 0 0 1.3rem; font-style: italic; }
.article-body-content img { max-width: 100%; height: auto; border-radius: 12px; }
.blog-empty { grid-column: 1 / -1; color: var(--gris); }

/* ── RESPONSIVE ── */
@media (max-width: 1180px) {
  nav { padding: .85rem 1.5rem; gap: 1rem; }
  .nav-logo { min-width: 220px; }
  .nav-logo-text { font-size: .95rem; }
  .nav-logo-text span { font-size: .58rem; }
  .nav-links { gap: .1rem; }
  .nav-links a, .nav-group-trigger { font-size: .67rem; padding: .42rem .48rem; letter-spacing: .055em; }
  .nav-group-trigger { max-width: 185px; }
  .nav-actions { min-width: 150px; }
  .nav-cta { font-size: .7rem; padding: .6rem 1rem; }
}

@media (max-width: 960px) {
  nav { display: flex; justify-content: space-between; padding: 1rem 1.5rem; }
  .nav-logo { min-width: 0; }
  .nav-links { display: none; }
  .nav-burger { display: flex; }
  .nav-cta { font-size: .68rem; padding: .5rem .9rem; }
  section { padding: 3rem 1.5rem; }

  /* Hero */
  .hero { grid-template-columns: 1fr; min-height: auto; }
  .hero-left { padding: 7rem 1.5rem 3rem; }
  .hero-right { display: none; }
  .hero-btns { flex-direction: column; align-items: flex-start; gap: .7rem; }
  .hero-stats { flex-wrap: wrap; gap: 1.2rem; margin-top: 2rem; padding-top: 1.5rem; }
  .stat-num { font-size: 1.6rem; }

  /* Grids */
  .programmes-grid, .blog-grid { grid-template-columns: 1fr; gap: 1rem; }
  .methode, .content-2col, .contact-grid { grid-template-columns: 1fr; gap: 2rem; }
  .about-wrap { grid-template-columns: 1fr; gap: 2rem; }
  .about-text { padding: 2rem 1.5rem; }
  .about-side { position: static; }
  .contact-layout { grid-template-columns: 1fr !important; gap: 2rem !important; }

  /* Page hero */
  .page-hero { grid-template-columns: 1fr; padding: 7rem 1.5rem 3rem; }
  .page-hero p { max-width: 100%; }

  /* CTA */
  .cta-band { flex-direction: column; align-items: flex-start; padding: 3rem 1.5rem; }

  /* Footer */
  footer { flex-direction: column; align-items: flex-start; padding: 2rem 1.5rem; gap: 1.5rem; }
  .footer-links { flex-wrap: wrap; gap: .6rem 1.2rem; }
  .footer-powered { align-self: stretch; }

  /* Forms & contact */
  .form-row { grid-template-columns: 1fr; }
  .contact-info-card { padding: 2rem 1.5rem; }
  #my-cal-inline-20min { height: 520px !important; }

  /* Blog */
  .blog-filters { padding: 1.5rem 1.5rem 1rem; }

  /* Article */
  .article-hero { padding: 7rem 1.5rem 3rem !important; }
  .article-content { padding: 2.5rem 1.5rem !important; }

  /* Textes légaux */
  .legal-page { padding-top: 6rem; }
  .legal-page .legal-content { padding: 2rem 1.3rem; }
  .legal-dialog-inner { padding: 2.2rem 1.4rem; }
  .legal-dialog-close { margin: -1rem -.6rem 0 0; }
}
