/*
Theme Name: Webdevo Theme – HEP
Theme URI: https://webdevo.fr
Author: Webdevo
Author URI: https://webdevo.fr
Description: Theme sur-mesure pour HEP - Healing Energy Process par Derya Gezgin Kara.
Version: 1.1.0
License: Proprietary
Text Domain: webdevo-hep
*/

/* ======================== VARIABLES ======================== */
:root {
  /* Primary — Deep luxury dark */
  --primary: #1A1A1A;
  --primary-light: #2A2A2A;
  --primary-medium: #333333;
  --primary-soft: #3D3D3D;
  --primary-pale: #4A4A4A;

  /* Accent — Warm gold */
  --accent: #C9A96E;
  --accent-light: #D4B87E;
  --accent-dark: #B8964F;
  --accent-pale: rgba(201,169,110,0.12);

  /* Neutrals */
  --cream: #FAF8F5;
  --cream-warm: #F5F0EA;
  --stone: #E8E2D9;
  --stone-dark: #D4CCC0;

  /* Text */
  --text-dark: #1A1A1A;
  --text-body: #4A4A4A;
  --text-muted: #7A7A7A;
  --white: #FFFFFF;

  /* Shadows */
  --shadow-sm: 0 1px 3px rgba(0,0,0,0.06);
  --shadow-md: 0 4px 16px rgba(0,0,0,0.08);
  --shadow-lg: 0 8px 32px rgba(0,0,0,0.12);
  --shadow-gold: 0 4px 20px rgba(201,169,110,0.15);

  /* Radius */
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 16px;
  --radius-xl: 24px;

  /* Fonts */
  --font-display: 'Cormorant Garamond', Georgia, serif;
  --font-body: 'DM Sans', -apple-system, sans-serif;

  --transition: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  --transition-slow: 0.6s cubic-bezier(0.4, 0, 0.2, 1);
  --max-width: 1200px;
}

/* ======================== RESET ======================== */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; font-size:16px; }
body { font-family:var(--font-body); color:var(--text-body); background-color:var(--cream); background-image:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23d4ccc0' fill-opacity='0.12'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E"); line-height:1.7; overflow-x:hidden; -webkit-font-smoothing:antialiased; }
img { max-width:100%; height:auto; display:block; }
a { text-decoration:none; color:inherit; transition:var(--transition); }
ul { list-style:none; }
.container { max-width:var(--max-width); margin:0 auto; padding:0 2rem; }

/* ======================== TYPOGRAPHY ======================== */
h1, h2, h3, h4, h5, h6 { font-family:var(--font-display); color:var(--text-dark); line-height:1.2; font-weight:500; }
h1 { font-size:clamp(2.4rem, 5vw, 3.8rem); letter-spacing:-0.02em; }
h2 { font-size:clamp(1.8rem, 3.5vw, 2.8rem); letter-spacing:-0.01em; }
h3 { font-size:clamp(1.3rem, 2vw, 1.6rem); }
h4 { font-size:1.1rem; }
p { margin-bottom:1rem; }
em { font-style:italic; color:var(--accent); }

/* ======================== ANIMATIONS ======================== */
@keyframes fadeUp { from{opacity:0;transform:translateY(30px)} to{opacity:1;transform:translateY(0)} }
@keyframes fadeIn { from{opacity:0} to{opacity:1} }
@keyframes slideRight { from{opacity:0;transform:translateX(-40px)} to{opacity:1;transform:translateX(0)} }
@keyframes goldShimmer { 0%{background-position:200% center} 100%{background-position:-200% center} }
.anim { opacity:0; transform:translateY(30px); transition:opacity .7s ease,transform .7s ease; }
.anim.visible { opacity:1; transform:translateY(0); }
.anim-d1{transition-delay:.1s} .anim-d2{transition-delay:.2s} .anim-d3{transition-delay:.3s} .anim-d4{transition-delay:.4s}

/* ======================== BUTTONS ======================== */
.btn { display:inline-flex; align-items:center; gap:.5rem; padding:.875rem 2rem; font-family:var(--font-body); font-size:.875rem; font-weight:600; letter-spacing:.05em; text-transform:uppercase; border-radius:var(--radius-sm); cursor:pointer; border:none; transition:var(--transition); white-space:nowrap; }
.btn svg { width:16px; height:16px; fill:currentColor; flex-shrink:0; }
.btn--primary { background:var(--primary); color:var(--white); }
.btn--primary:hover { background:var(--primary-light); transform:translateY(-2px); box-shadow:var(--shadow-md); }
.btn--accent { background:var(--accent); color:var(--white); }
.btn--accent:hover { background:var(--accent-dark); transform:translateY(-2px); box-shadow:var(--shadow-gold); }
.btn--white { background:var(--white); color:var(--primary); }
.btn--white:hover { background:var(--cream); transform:translateY(-2px); }
.btn--outline { background:transparent; color:var(--accent); border:1px solid var(--accent); }
.btn--outline:hover { background:var(--accent); color:var(--white); }
.btn--glass { background:rgba(255,255,255,.08); color:var(--white); border:1px solid rgba(255,255,255,.2); backdrop-filter:blur(8px); }
.btn--glass:hover { background:rgba(255,255,255,.15); border-color:rgba(255,255,255,.35); }
.btn--gold-outline { background:transparent; color:var(--accent); border:1px solid var(--accent); }
.btn--gold-outline:hover { background:var(--accent); color:var(--white); }

/* ======================== SECTION SPACING ======================== */
.section { padding:6rem 0; }
.section--dark { background:var(--primary); color:var(--white); }
.section--dark h2, .section--dark h3, .section--dark h4 { color:var(--white); }
.section--cream { background:var(--cream-warm); }
.section--stone { background:var(--stone); }
.section__badge { display:inline-block; font-family:var(--font-body); font-size:.75rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--accent); background:var(--accent-pale); padding:.4rem 1.2rem; border-radius:2px; margin-bottom:1.5rem; }
.section__title { margin-bottom:1rem; }
.section__subtitle { font-size:1.05rem; color:var(--text-muted); max-width:600px; margin-bottom:3rem; line-height:1.8; }

/* ======================== TOP BAR ======================== */
.top-bar { background:var(--primary); color:rgba(255,255,255,.7); font-size:.8rem; padding:.5rem 0; border-bottom:1px solid rgba(255,255,255,.08); }
.top-bar .container { display:flex; justify-content:space-between; align-items:center; }
.top-bar__contact { display:flex; gap:1.5rem; }
.top-bar__contact a { color:rgba(255,255,255,.7); display:flex; align-items:center; gap:.4rem; }
.top-bar__contact a:hover { color:var(--accent); }
.top-bar__contact svg { width:14px; height:14px; fill:currentColor; }
.top-bar__social { display:flex; gap:1rem; }
.top-bar__social a { color:rgba(255,255,255,.7); display:flex; }
.top-bar__social a:hover { color:var(--accent); }
.top-bar__social svg { width:16px; height:16px; fill:currentColor; }

/* ======================== HEADER / NAV ======================== */
.header { background:var(--primary); position:sticky; top:0; z-index:1000; transition:var(--transition); border-bottom:1px solid rgba(255,255,255,.06); }
.header.scrolled { box-shadow:0 2px 20px rgba(0,0,0,.3); }
.header .container { display:flex; justify-content:space-between; align-items:center; height:70px; }
.header__logo img { height:65px; width:auto; }
.header__logo { display:flex; align-items:center; }
.nav { display:flex; align-items:center; gap:2rem; }
.nav a { color:rgba(255,255,255,.75); font-size:.85rem; font-weight:500; letter-spacing:.04em; text-transform:uppercase; position:relative; }
.nav a:hover, .nav a.active { color:var(--accent); }
.nav a::after { content:''; position:absolute; bottom:-4px; left:0; width:0; height:1px; background:var(--accent); transition:var(--transition); }
.nav a:hover::after { width:100%; }
.nav__cta { background:var(--accent); color:var(--white) !important; padding:.55rem 1.4rem; border-radius:var(--radius-sm); font-size:.8rem; letter-spacing:.06em; }
.nav__cta:hover { background:var(--accent-dark); transform:translateY(-1px); }
.nav__cta::after { display:none; }
.nav__praticien { display:inline-flex; align-items:center; }
.nav__praticien svg { flex-shrink:0; }
.nav__cta svg { width:14px; height:14px; }

/* Mega Menu Dropdown */
.nav__dropdown { position:relative; }
.nav__dropdown-trigger { color:rgba(255,255,255,.75); font-size:.85rem; font-weight:500; letter-spacing:.04em; text-transform:uppercase; cursor:pointer; display:inline-flex; align-items:center; position:relative; }
.nav__dropdown-trigger:hover, .nav__dropdown-trigger.active { color:var(--accent); }
.nav__dropdown-trigger::after { content:''; position:absolute; bottom:-4px; left:0; width:0; height:1px; background:var(--accent); transition:var(--transition); }
.nav__dropdown-trigger:hover::after { width:100%; }
.nav__dropdown-menu { position:absolute; top:calc(100% + 16px); left:50%; transform:translateX(-50%) translateY(8px); background:var(--primary-light); border:1px solid rgba(255,255,255,.1); border-radius:var(--radius-md); padding:.75rem; min-width:280px; opacity:0; visibility:hidden; transition:opacity .25s ease, transform .25s ease, visibility .25s; z-index:100; box-shadow:0 12px 40px rgba(0,0,0,.4); }
.nav__dropdown:hover .nav__dropdown-menu { opacity:1; visibility:visible; transform:translateX(-50%) translateY(0); }
.nav__dropdown-menu::before { content:''; position:absolute; top:-8px; left:50%; transform:translateX(-50%); border-left:8px solid transparent; border-right:8px solid transparent; border-bottom:8px solid var(--primary-light); }
.nav__dropdown-menu a { display:block; padding:.75rem 1rem; border-radius:var(--radius-sm); transition:var(--transition); }
.nav__dropdown-menu a:hover { background:rgba(255,255,255,.06); }
.nav__dropdown-menu a::after { display:none; }
.nav__dropdown-label { display:block; font-size:.85rem; font-weight:600; color:var(--white); letter-spacing:.02em; }
.nav__dropdown-desc { display:block; font-size:.75rem; color:rgba(255,255,255,.45); margin-top:2px; letter-spacing:0; text-transform:none; }

/* Mobile nav toggle */
.nav-toggle { display:none; flex-direction:column; gap:5px; cursor:pointer; padding:8px; z-index:1001; }
.nav-toggle span { width:24px; height:2px; background:var(--white); transition:var(--transition); }
.nav-toggle.active span:nth-child(1) { transform:rotate(45deg) translate(5px,5px); }
.nav-toggle.active span:nth-child(2) { opacity:0; }
.nav-toggle.active span:nth-child(3) { transform:rotate(-45deg) translate(5px,-5px); }

/* Mobile nav */
.mobile-nav { display:none; position:fixed; top:0; left:0; right:0; bottom:0; background:rgba(26,26,26,.98); z-index:999; flex-direction:column; justify-content:center; align-items:center; gap:2rem; }
.mobile-nav.active { display:flex; }
.mobile-nav a { color:var(--white); font-family:var(--font-display); font-size:1.6rem; letter-spacing:.02em; }
.mobile-nav a:hover { color:var(--accent); }

/* ======================== HERO (Homepage) ======================== */
.hero { background:var(--primary); color:var(--white); padding:5rem 0 4rem; position:relative; overflow:hidden; min-height:85vh; display:flex; align-items:center; }
.hero::before { content:''; position:absolute; top:0; right:0; width:50%; height:100%; background:linear-gradient(135deg, rgba(201,169,110,.04) 0%, transparent 60%); pointer-events:none; }
.hero .container { display:grid; grid-template-columns:1fr 1fr; gap:4rem; align-items:center; }
.hero__content { z-index:2; }
.hero__badge { display:inline-block; font-size:.7rem; font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:var(--accent); border:1px solid rgba(201,169,110,.3); padding:.5rem 1.5rem; margin-bottom:2rem; }
.hero__title { font-size:clamp(2.6rem, 5.5vw, 4rem); color:var(--white); margin-bottom:1.5rem; line-height:1.1; }
.hero__title em { font-style:italic; color:var(--accent); }
.hero__subtitle { font-size:1.05rem; color:rgba(255,255,255,.6); line-height:1.8; margin-bottom:2.5rem; max-width:480px; }
.hero__actions { display:flex; gap:1rem; flex-wrap:wrap; }
.hero__visual { position:relative; z-index:2; }
.hero__image-wrapper { position:relative; overflow:hidden; border-radius:var(--radius-lg); aspect-ratio:4/5; background:var(--primary-light); }
.hero__image-wrapper img { position:absolute; top:0; left:0; width:100%; height:100%; object-fit:cover; }
.hero__image-wrapper::after { content:''; position:absolute; inset:0; border:1px solid rgba(201,169,110,.15); border-radius:var(--radius-lg); pointer-events:none; }
.hero__floating-card { position:absolute; bottom:2rem; left:-2rem; background:rgba(26,26,26,.85); backdrop-filter:blur(16px); border:1px solid rgba(201,169,110,.2); border-radius:var(--radius-md); padding:1rem 1.5rem; display:flex; align-items:center; gap:1rem; z-index:3; }
.hero__floating-photo { width:48px; height:48px; border-radius:50%; object-fit:cover; border:2px solid var(--accent); }
.hero__floating-name { font-family:var(--font-display); font-size:1rem; color:var(--white); }
.hero__floating-role { font-size:.75rem; color:var(--accent); letter-spacing:.05em; }

/* ======================== METHOD SECTION ======================== */
.method { padding:6rem 0; }
.method .container { display:grid; grid-template-columns:1fr 1fr; gap:4rem; align-items:center; }
.method__image { position:relative; overflow:hidden; border-radius:var(--radius-lg); aspect-ratio:4/3; background:var(--stone); }
.method__image img { position:absolute; top:0; left:0; width:100%; height:100%; object-fit:cover; }
.method__content { }
.method__list { margin:1.5rem 0 2rem; }
.method__list li { padding:.6rem 0; padding-left:1.8rem; position:relative; color:var(--text-body); }
.method__list li::before { content:''; position:absolute; left:0; top:1rem; width:8px; height:1px; background:var(--accent); }

/* ======================== BENEFITS GRID ======================== */
.benefits { padding:6rem 0; background:var(--primary); color:var(--white); }
.benefits__grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:2rem; margin-top:3rem; }
.benefit-card { background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.08); border-radius:var(--radius-md); padding:2rem; transition:var(--transition); }
.benefit-card:hover { background:rgba(255,255,255,.07); border-color:rgba(201,169,110,.2); transform:translateY(-4px); }
.benefit-card__icon { width:48px; height:48px; border-radius:50%; background:var(--accent-pale); display:flex; align-items:center; justify-content:center; margin-bottom:1.2rem; }
.benefit-card__icon svg { width:22px; height:22px; fill:var(--accent); }
.benefit-card__title { font-family:var(--font-display); font-size:1.2rem; color:var(--white); margin-bottom:.6rem; }
.benefit-card__text { font-size:.9rem; color:rgba(255,255,255,.6); line-height:1.7; }

/* ======================== ABOUT SECTION ======================== */
.about { padding:6rem 0; }
.about .container { display:grid; grid-template-columns:1fr 1.2fr; gap:4rem; align-items:center; }
.about__photo-wrapper { position:relative; overflow:hidden; border-radius:var(--radius-lg); aspect-ratio:3/4; background:var(--stone); }
.about__photo-wrapper img { position:absolute; top:0; left:0; width:100%; height:100%; object-fit:cover; }
.about__photo-wrapper::after { content:''; position:absolute; inset:0; border:1px solid rgba(201,169,110,.1); border-radius:var(--radius-lg); pointer-events:none; }
.about__quote { font-family:var(--font-display); font-size:1.3rem; font-style:italic; color:var(--accent); line-height:1.6; margin-bottom:2rem; padding-left:1.5rem; border-left:2px solid var(--accent); }
.about__name { font-family:var(--font-display); font-size:1.4rem; margin-bottom:.3rem; }
.about__role { font-size:.85rem; color:var(--accent); letter-spacing:.06em; text-transform:uppercase; margin-bottom:1.5rem; }
.about__bio { color:var(--text-body); line-height:1.8; }

/* ======================== FORMATIONS PREVIEW ======================== */
.formations-preview { padding:6rem 0; background:var(--cream-warm); }
.formations-preview__grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:2.5rem; margin-top:3rem; }
.formation-card { background:var(--white); border-radius:var(--radius-md); overflow:hidden; box-shadow:var(--shadow-sm); transition:var(--transition); border:1px solid rgba(0,0,0,.04); }
.formation-card:hover { transform:translateY(-6px); box-shadow:var(--shadow-lg); }
.formation-card__image { position:relative; overflow:hidden; aspect-ratio:16/10; background:var(--stone); }
.formation-card__image img { position:absolute; top:0; left:0; width:100%; height:100%; object-fit:cover; }
.formation-card__body { padding:2rem; }
.formation-card__badge { display:inline-block; font-size:.7rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--accent); background:var(--accent-pale); padding:.3rem .8rem; border-radius:2px; margin-bottom:1rem; }
.formation-card__title { font-family:var(--font-display); font-size:1.4rem; margin-bottom:.8rem; }
.formation-card__text { font-size:.9rem; color:var(--text-muted); margin-bottom:1.5rem; line-height:1.7; }

/* ======================== MAP SECTION ======================== */
.map-section { padding:6rem 0; }
.map-section__wrapper { display:grid; grid-template-columns:1fr 1fr; gap:0; margin-top:2rem; border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-lg); border:1px solid rgba(0,0,0,.06); min-height:500px; }
.map-section__map { min-height:500px; }
.map-section__list { background:var(--white); padding:2rem; overflow-y:auto; max-height:500px; }
.map-section__search { position:relative; margin-bottom:1.5rem; }
.map-section__search input { width:100%; padding:.8rem 1rem .8rem 2.6rem; border:1px solid var(--stone-dark); border-radius:var(--radius-sm); font-family:var(--font-body); font-size:.9rem; }
.map-section__search svg { position:absolute; left:.8rem; top:50%; transform:translateY(-50%); width:16px; height:16px; fill:var(--text-muted); }
.practitioner-item { padding:1rem; border-bottom:1px solid var(--stone); cursor:pointer; transition:var(--transition); }
.practitioner-item:hover { background:var(--cream); }
.practitioner-item__name { font-family:var(--font-display); font-size:1.1rem; color:var(--text-dark); }
.practitioner-item__location { font-size:.85rem; color:var(--text-muted); }

/* ======================== TESTIMONIALS ======================== */
.testimonials { padding:6rem 0; background:var(--primary); color:var(--white); }
.testimonials__grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:2rem; margin-top:3rem; }
.testimonial-card { background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.08); border-radius:var(--radius-md); padding:2rem; }
.testimonial-card__stars { color:var(--accent); margin-bottom:1rem; font-size:1rem; letter-spacing:2px; }
.testimonial-card__text { font-size:.9rem; color:rgba(255,255,255,.7); line-height:1.8; font-style:italic; margin-bottom:1.2rem; }
.testimonial-card__author { font-size:.85rem; color:var(--accent); font-weight:600; }

/* ======================== FAQ ACCORDION ======================== */
.faq { padding:6rem 0; }
.faq__grid { max-width:800px; margin:3rem auto 0; }
.faq-item { border-bottom:1px solid var(--stone); }
.faq-question { display:flex; justify-content:space-between; align-items:center; padding:1.5rem 0; cursor:pointer; gap:1rem; }
.faq-question h3 { font-size:1.1rem; font-weight:500; color:var(--text-dark); transition:var(--transition); }
.faq-question:hover h3 { color:var(--accent); }
.faq-icon { width:28px; height:28px; flex-shrink:0; display:flex; align-items:center; justify-content:center; transition:var(--transition); }
.faq-icon svg { width:16px; height:16px; fill:var(--text-muted); transition:var(--transition); }
.faq-item.active .faq-icon { transform:rotate(45deg); }
.faq-item.active .faq-icon svg { fill:var(--accent); }
.faq-answer { max-height:0; overflow:hidden; transition:max-height .4s cubic-bezier(0.4,0,0.2,1); }
.faq-answer__inner { padding:0 0 1.5rem; color:var(--text-muted); line-height:1.8; font-size:.95rem; }

/* ======================== CTA BAND ======================== */
.cta-band { background:var(--accent); padding:4rem 0; }
.cta-band .container { display:flex; align-items:center; justify-content:space-between; gap:2rem; }
.cta-band__text { font-family:var(--font-display); font-size:1.8rem; color:var(--white); max-width:600px; line-height:1.3; }
.cta-band__text em { color:var(--white); font-style:italic; }
.cta-band__actions { display:flex; gap:1rem; flex-shrink:0; }

/* ======================== PAGE HERO (inner pages) ======================== */
.page-hero { background:var(--primary); color:var(--white); padding:5rem 0 4rem; position:relative; text-align:center; }
.page-hero::before { content:''; position:absolute; inset:0; background:linear-gradient(135deg, rgba(201,169,110,.03) 0%, transparent 50%); pointer-events:none; }
.page-hero__badge { display:inline-block; font-size:.7rem; font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:var(--accent); border:1px solid rgba(201,169,110,.3); padding:.4rem 1.2rem; margin-bottom:1.5rem; }
.page-hero__title { font-size:clamp(2rem, 4vw, 3.2rem); color:var(--white); margin-bottom:1rem; }
.page-hero__text { font-size:1.05rem; color:rgba(255,255,255,.6); max-width:600px; margin:0 auto 1.5rem; line-height:1.8; }
.page-hero__breadcrumb { font-size:.8rem; color:rgba(255,255,255,.4); }
.page-hero__breadcrumb a { color:var(--accent); }
.page-hero__breadcrumb a:hover { text-decoration:underline; }

/* ======================== FORMATIONS PAGE ======================== */
.formation-detail { padding:6rem 0; }
.formation-detail .container { display:grid; grid-template-columns:1.2fr 1fr; gap:4rem; align-items:start; }
.formation-detail__content h3 { margin-bottom:1rem; color:var(--text-dark); }
.formation-detail__content p { margin-bottom:1rem; line-height:1.8; }

.dates-list { margin-top:3rem; }
.date-item { display:flex; align-items:center; justify-content:space-between; padding:1.5rem 2rem; background:var(--white); border:1px solid rgba(0,0,0,.06); border-radius:var(--radius-md); margin-bottom:1rem; transition:var(--transition); gap:2rem; }
.date-item:hover { border-color:var(--accent); box-shadow:var(--shadow-gold); }
.date-item__info { display:flex; align-items:center; gap:2rem; }
.date-item__date { font-family:var(--font-display); font-size:1.3rem; color:var(--text-dark); white-space:nowrap; }
.date-item__location { font-size:.9rem; color:var(--text-muted); }
.date-item__places { font-size:.8rem; color:var(--accent); font-weight:600; letter-spacing:.04em; }
.date-item__action { flex-shrink:0; }

/* ======================== METHOD PAGE ======================== */
.method-detail { padding:5rem 0; }
.method-detail__block { display:grid; grid-template-columns:1fr 1fr; gap:4rem; align-items:center; padding:3rem 0; }
.method-detail__block:nth-child(even) { direction:rtl; }
.method-detail__block:nth-child(even) > * { direction:ltr; }
.method-detail__image { position:relative; overflow:hidden; border-radius:var(--radius-lg); aspect-ratio:4/3; background:var(--stone); }
.method-detail__image img { position:absolute; top:0; left:0; width:100%; height:100%; object-fit:cover; }
.method-detail__text h3 { margin-bottom:1rem; }
.method-detail__text p { line-height:1.8; margin-bottom:1rem; }
.method-detail__list { margin:1rem 0; }
.method-detail__list li { padding:.5rem 0 .5rem 1.5rem; position:relative; color:var(--text-body); }
.method-detail__list li::before { content:''; position:absolute; left:0; top:.95rem; width:8px; height:1px; background:var(--accent); }

/* ======================== CONTACT PAGE ======================== */
.contact-layout { display:grid; grid-template-columns:1fr 1fr; gap:3rem; align-items:start; }
.contact-info-card { background:var(--primary); color:var(--white); border-radius:var(--radius-lg); padding:3rem; }
.contact-info-card h3 { color:var(--white); margin-bottom:2rem; font-size:1.4rem; }
.contact-info-item { display:flex; align-items:flex-start; gap:1rem; margin-bottom:1.5rem; }
.contact-info-item svg { width:20px; height:20px; fill:var(--accent); flex-shrink:0; margin-top:.2rem; }
.contact-info-item a { color:rgba(255,255,255,.8); }
.contact-info-item a:hover { color:var(--accent); }
.contact-info-item__label { font-size:.75rem; text-transform:uppercase; letter-spacing:.08em; color:var(--accent); margin-bottom:.2rem; }
.contact-info-item__value { color:rgba(255,255,255,.8); font-size:.95rem; }

/* ======================== LEGAL PAGES ======================== */
.legal-content { padding:3rem 0 6rem; max-width:800px; margin:0 auto; }
.legal-content h2 { font-size:1.4rem; margin:2.5rem 0 1rem; padding-top:2rem; border-top:1px solid var(--stone); }
.legal-content h2:first-child { border-top:none; padding-top:0; }
.legal-content h3 { font-size:1.1rem; margin:1.5rem 0 .8rem; }
.legal-content p { margin-bottom:1rem; line-height:1.8; }
.legal-content ul { margin:1rem 0 1rem 1.5rem; }
.legal-content ul li { list-style:disc; margin-bottom:.5rem; line-height:1.7; }

/* ======================== FOOTER ======================== */
.footer { background:var(--primary); color:rgba(255,255,255,.6); padding:4rem 0 0; }
.footer__grid { display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr; gap:3rem; padding-bottom:3rem; border-bottom:1px solid rgba(255,255,255,.08); }
.footer__brand { }
.footer__logo img { height:80px; width:auto; margin-bottom:1.5rem; }
.footer__desc { font-size:.9rem; line-height:1.7; max-width:280px; }
.footer__title { font-family:var(--font-display); font-size:1.1rem; color:var(--white); margin-bottom:1.2rem; }
.footer__links a { display:block; font-size:.85rem; color:rgba(255,255,255,.6); padding:.3rem 0; }
.footer__links a:hover { color:var(--accent); }
.footer__contact-item { display:flex; align-items:center; gap:.6rem; margin-bottom:.8rem; font-size:.85rem; }
.footer__contact-item svg { width:14px; height:14px; fill:var(--accent); flex-shrink:0; }
.footer__social { display:flex; gap:1rem; margin-top:1.5rem; }
.footer__social a { width:36px; height:36px; border-radius:50%; border:1px solid rgba(255,255,255,.15); display:flex; align-items:center; justify-content:center; transition:var(--transition); }
.footer__social a:hover { border-color:var(--accent); background:rgba(201,169,110,.1); }
.footer__social svg { width:16px; height:16px; fill:rgba(255,255,255,.6); }
.footer__social a:hover svg { fill:var(--accent); }
.footer__bottom { text-align:center; padding:1.5rem 0; font-size:.8rem; color:rgba(255,255,255,.4); }
.footer__bottom a { color:var(--accent); }
.footer__bottom a:hover { text-decoration:underline; }

/* ======================== RESPONSIVE ======================== */
@media (max-width:1024px) {
  .hero .container { grid-template-columns:1fr; text-align:center; }
  .hero__subtitle { margin:0 auto 2.5rem; }
  .hero__actions { justify-content:center; }
  .hero__visual { max-width:400px; margin:0 auto; }
  .hero__floating-card { left:50%; transform:translateX(-50%); bottom:1rem; }
  .method .container,
  .about .container,
  .formation-detail .container,
  .method-detail__block { grid-template-columns:1fr; }
  .method-detail__block:nth-child(even) { direction:ltr; }
  .formations-preview__grid { grid-template-columns:1fr !important; }
  .benefits__grid,
  .testimonials__grid { grid-template-columns:1fr 1fr; }
  .footer__grid { grid-template-columns:1fr 1fr; gap:2rem; }
  .map-section__wrapper { grid-template-columns:1fr; }
  .map-section__map { min-height:350px; }
  .map-section__list { max-height:300px; }
}

@media (max-width:768px) {
  .nav { display:none; }
  .nav-toggle { display:flex; }
  .nav__dropdown-menu { display:none !important; }
  .top-bar__contact { display:none; }
  .section { padding:4rem 0; }
  .container { padding:0 1.2rem; }
  .benefits__grid,
  .testimonials__grid { grid-template-columns:1fr; }
  .footer__grid { grid-template-columns:1fr; }
  .cta-band .container { flex-direction:column; text-align:center; }
  .cta-band__actions { justify-content:center; }
  .hero__floating-card { display:none; }
  .contact-layout { grid-template-columns:1fr !important; }
  .date-item { flex-direction:column; text-align:center; gap:1rem; }
  .date-item__info { flex-direction:column; gap:.5rem; }
  /* Formations page responsive */
  .formation-layout,
  .formation-layout--reverse { grid-template-columns:1fr !important; }
  .formation-layout--reverse > *:first-child { order:2; }
  .formation-tab-sep { margin:0 .8rem; }
  .info-cards { flex-direction:column; }
  .formation-image { aspect-ratio:16/10; }
  h1 { font-size:2.2rem; }
  h2 { font-size:1.6rem; }
}

@media (max-width:480px) {
  .btn { width:100%; justify-content:center; }
  .hero__actions { flex-direction:column; }
}

/* ======================== LEAFLET OVERRIDES ======================== */
.leaflet-container { font-family:var(--font-body) !important; }
.leaflet-popup-content-wrapper { border-radius:var(--radius-md) !important; box-shadow:var(--shadow-lg) !important; }
.leaflet-popup-content { font-size:.9rem; line-height:1.6; }

/* ======================== UTILITIES ======================== */
.text-center { text-align:center; }
.text-accent { color:var(--accent); }
.mt-1 { margin-top:1rem; }
.mt-2 { margin-top:2rem; }
.mt-3 { margin-top:3rem; }
.mb-0 { margin-bottom:0; }
.gold-line { width:40px; height:2px; background:var(--accent); margin-bottom:1.5rem; }
.gold-line--center { margin-left:auto; margin-right:auto; }

/* Formation Tab Links (sticky nav on formations page) */
.formation-tab-link { font-size:.85rem; font-weight:600; color:var(--text-muted); text-transform:uppercase; letter-spacing:.04em; padding:.5rem 0; border-bottom:2px solid transparent; transition:var(--transition); }
.formation-tab-link:hover { color:var(--accent); border-bottom-color:var(--accent); }
.formation-tab-sep { width:1px; height:20px; background:var(--stone-dark); margin:0 1.5rem; flex-shrink:0; }

/* Formation layout (2 cols: content + image) */
.formation-layout { display:grid; grid-template-columns:1.2fr 1fr; gap:4rem; align-items:start; }
.formation-layout--reverse { grid-template-columns:1fr 1.2fr; }
.formation-intro { line-height:1.8; margin-bottom:1.5rem; }
.formation-intro p { margin-bottom:.8rem; }

/* Formation image */
.formation-image { position:relative; overflow:hidden; border-radius:var(--radius-lg); aspect-ratio:3/4; background:var(--stone); }
.formation-image img { position:absolute; top:0; left:0; width:100%; height:100%; object-fit:cover; }

/* Info cards (compact badges) */
.info-cards { display:flex; flex-wrap:wrap; gap:.8rem; margin-bottom:1.5rem; }
.info-card { display:flex; align-items:center; gap:.7rem; background:var(--white); border:1px solid var(--stone); border-radius:var(--radius-md); padding:.8rem 1.2rem; flex:1; min-width:200px; }
.section--cream .info-card { background:var(--cream); }
.info-card__icon { flex-shrink:0; }
.info-card__icon svg { width:18px; height:18px; fill:var(--accent); }
.info-card__label { font-size:.7rem; color:var(--accent); text-transform:uppercase; letter-spacing:.08em; font-weight:600; }
.info-card__value { font-size:.85rem; font-weight:600; color:var(--text-dark); }

/* Formation includes (compact list) */
.formation-includes { margin-bottom:1.5rem; }
.formation-includes h4 { font-size:.95rem; margin-bottom:.6rem; color:var(--text-dark); }
.formation-includes__item { display:inline-flex; align-items:center; gap:.3rem; font-size:.85rem; color:var(--text-body); margin-right:1rem; margin-bottom:.3rem; }
.formation-includes__item svg { width:14px; height:14px; fill:var(--accent); flex-shrink:0; }
.formation-includes__note { font-size:.8rem; color:var(--text-muted); margin-top:.5rem; }

/* Formation warning (contre-indication) */
.formation-warning { background:rgba(200,50,50,.05); border:1px solid rgba(200,50,50,.1); border-radius:var(--radius-sm); padding:.8rem 1rem; font-size:.82rem; color:#8B0000; margin-top:1.5rem; }

/* Programme Popup */
.programme-popup { display:none; position:fixed; inset:0; z-index:9999; align-items:center; justify-content:center; padding:1rem; }
.programme-popup.active { display:flex; }
.programme-popup__overlay { position:absolute; inset:0; background:rgba(0,0,0,.6); backdrop-filter:blur(4px); }
.programme-popup__box { position:relative; background:var(--white); border-radius:var(--radius-lg); padding:2.5rem; max-width:600px; width:100%; max-height:85vh; overflow-y:auto; box-shadow:0 20px 60px rgba(0,0,0,.3); }
.programme-popup__close { position:absolute; top:1rem; right:1rem; background:none; border:none; font-size:1.5rem; cursor:pointer; color:var(--text-muted); line-height:1; }
.programme-popup__close:hover { color:var(--text-dark); }
.programme-popup__item { display:flex; align-items:flex-start; gap:.6rem; padding:.5rem 0; border-bottom:1px solid var(--stone); font-size:.9rem; }
.programme-popup__item:last-child { border-bottom:none; }
.programme-popup__item svg { width:16px; height:16px; fill:var(--accent); flex-shrink:0; margin-top:2px; }

/* Formation detail SVG icon constraints */
[id="formation-groupe"] svg,
[id="formation-privee"] svg,
[id="coaching-prive"] svg { width:18px; height:18px; flex-shrink:0; fill:var(--accent); }

/* ======================== TARIF BLOCK ======================== */
.tarif-block { background:var(--white); border:1px solid var(--stone); border-radius:var(--radius-md); padding:1.2rem 1.5rem; margin-bottom:1.5rem; }
.section--cream .tarif-block { background:var(--cream); }
.tarif-block__item { display:flex; align-items:center; gap:1rem; padding:.4rem 0; }
.tarif-block__item--next { border-top:1px solid var(--stone); padding-top:.6rem; margin-top:.3rem; }
.tarif-block__year { font-size:.7rem; font-weight:700; text-transform:uppercase; letter-spacing:.1em; color:var(--accent); background:var(--accent-pale); padding:.2rem .6rem; border-radius:2px; flex-shrink:0; min-width:75px; text-align:center; }
.tarif-block__price { font-size:.95rem; font-weight:700; color:var(--text-dark); }
.tarif-block__deposit { display:flex; align-items:center; gap:.4rem; margin-top:.8rem; padding-top:.8rem; border-top:1px solid var(--stone); font-size:.82rem; color:var(--accent-dark); font-weight:600; }
.tarif-block__deposit svg { width:14px; height:14px; fill:var(--accent); flex-shrink:0; }

/* ======================== PLACES DISPLAY ======================== */
.date-item__places { font-size:.8rem; font-weight:600; letter-spacing:.04em; }
.date-item__places--available { color:var(--accent); }
.date-item__places--low { color:#e67e22; font-weight:700; }
.date-item__places--full { color:#999; font-weight:700; font-style:italic; }
.date-item__places-icon { display:inline-flex; margin-right:.3rem; vertical-align:middle; }
.date-item__places-icon svg { width:14px; height:14px; }

/* ======================== PRESS SECTION ======================== */
.press__grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(280px, 1fr)); gap:2rem; margin-top:3rem; }
.press-card { display:block; background:var(--white); border:1px solid rgba(0,0,0,.06); border-radius:var(--radius-md); overflow:hidden; transition:var(--transition); box-shadow:var(--shadow-sm); }
.press-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-lg); border-color:var(--accent); }
.press-card__image { position:relative; overflow:hidden; aspect-ratio:16/9; background:var(--stone); }
.press-card__image img { position:absolute; top:0; left:0; width:100%; height:100%; object-fit:cover; }
.press-card__body { padding:1.5rem; }
.press-card__source { font-size:.7rem; font-weight:700; text-transform:uppercase; letter-spacing:.1em; color:var(--accent); margin-bottom:.5rem; }
.press-card__logo { margin-bottom:.8rem; }
.press-card__logo img { max-height:30px; width:auto; object-fit:contain; }
.press-card__title { font-family:var(--font-display); font-size:1.1rem; color:var(--text-dark); margin-bottom:.8rem; line-height:1.3; }
.press-card__link { display:inline-flex; align-items:center; gap:.3rem; font-size:.8rem; font-weight:600; color:var(--accent); text-transform:uppercase; letter-spacing:.04em; }
.press-card__link svg { width:14px; height:14px; fill:var(--accent); }

/* ======================== VIDEO SECTION ======================== */
.video__grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(300px, 1fr)); gap:2rem; margin-top:3rem; }
.video-card { background:var(--white); border-radius:var(--radius-md); overflow:hidden; box-shadow:var(--shadow-sm); border:1px solid rgba(0,0,0,.04); }
.video-card__player { position:relative; }
.video-card__player video { display:block; width:100%; border-radius:var(--radius-md) var(--radius-md) 0 0; }
.video-card__title { padding:1rem 1.2rem; font-size:.9rem; color:var(--text-body); font-weight:500; }
