/* ===========================
   RESET & BASE
=========================== */
* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    font-family: "Inter", sans-serif;
}

body {
    background: #f7f6f3;
    color: #2b2b2b;
    line-height: 1.6;
}

/* ===========================
   SIGNATURE VERSION MAQUETTE PROPRE
=========================== */

.brand-signature {
    background: #f8f6f2;
    padding: 60px 20px 50px;
    text-align: center;
}

/* CONTENEUR GLOBAL LARGE */
.brand-wrapper {
    max-width: 900px;       /* large pour laisser respirer */
    margin: 0 auto;
}

/* TITRE (largeur naturelle uniquement) */
.brand-title {
    font-family: 'Playfair Display', serif;
    font-size: 48px;
    font-weight: 400;
    color: #2f2f2f;

    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;

    width: fit-content;
    margin: 0 auto;
}

/* LES DEUX TRAITS PARFAITEMENT ALIGNÉS */
.brand-lines {
    display: flex;
    gap: 6px;
    height: 34px;
    align-items: center;
}

.brand-lines::before,
.brand-lines::after {
    content: "";
    width: 1px;
    height: 30px;
    background: #7f938c;
    display: block;
}

/* SOUS-TITRE (PLUS LARGE QUE LE NOM) */
.brand-sub {
    font-family: 'Inter', sans-serif;
    font-size: 18px;
    margin-top: 18px;
    color: #5e5e5e;

    max-width: 720px;       /* largeur indépendante du nom */
    margin-left: auto;
    margin-right: auto;
}

/* TRAIT CENTRAL FIN */
.brand-divider {
    width: 130px;
    height: 1px;
    background: #ddd8cf;
    margin: 22px auto;
}

/* BASELINE */
.brand-baseline {
    font-family: 'Inter', sans-serif;
    font-size: 15px;
    letter-spacing: 1.4px;
    color: #7a7a7a;

    max-width: 720px;
    margin-left: auto;
    margin-right: auto;
}

/* =========================
   SIGNATURE PHOTO
========================= */

.brand-identity{
    display:flex;
    align-items:center;
    gap:25px;
    justify-content:center;
}

.brand-photo img{
    width:120px;
    height:120px;
    object-fit:cover;
    border-radius:50%;
    box-shadow:0 6px 18px rgba(0,0,0,0.15);
}

.brand-text{
    text-align:left;
}
/* ===========================
   HEADER MENU AMÉLIORÉ
=========================== */

.header {
    box-shadow: none;
    border-top: 1px solid #eee;
    border-bottom: 1px solid #eee;
}

.header nav a {
    font-family: 'Inter', sans-serif;
    font-weight: 500;
    letter-spacing: 0.5px;
    font-size: 15px;
}

.header nav a.active {
    font-weight: 600;
}

.header .cta {
    font-family: 'Inter', sans-serif;
    font-weight: 500;
    letter-spacing: 0.5px;
}

/* =========================
   Logo + téléphone header
========================= */

.logo {
  display: flex;
  align-items: center;
  gap: 18px;
}

.logo img {
  height: 50px;        /* taille actuelle conservée */
  width: auto;
  display: block;
}

/* Téléphone */

.header-phone {

  display: flex;
  align-items: center;

  font-size: 14px;
  font-weight: 500;

  color: #4b4b4b;
  text-decoration: none;

  padding-left: 16px;
  border-left: 1px solid rgba(0,0,0,0.15);

  transition: color 0.2s ease;
}

.header-phone:hover {
  color: #000;
}

/* ===========================
   HEADER & NAV
=========================== */
.header {
    position: sticky;
    top: 0;
    background: white;
    padding: 16px 40px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    z-index: 10;
    box-shadow: 0 2px 6px rgba(0,0,0,0.04);
}

.header nav a {
    margin-left: 20px;
    text-decoration: none;
    color: #333;
    position: relative;
    padding-bottom: 4px;
    transition: color 0.2s ease;
}

.header nav a:hover {
    color: #c89b6d;
}

/* 🔴 ONGLET ACTIF */
.header nav a.active {
    font-weight: 600;
    color: #c89b6d;
}

/* Soulignement doux actif */
.header nav a.active::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 2px;
    background: #c89b6d;
    border-radius: 2px;
}

/* CTA */
.header .cta {
    background: #c89b6d;
    color: white !important;
    padding: 8px 14px;
    border-radius: 6px;
}

.header .cta:hover {
    opacity: 0.9;
}

/* =========================
   MOBILE MENU
========================= */

.menu-toggle {
    display: none;
    background: none;
    border: none;
    font-size: 1.8rem;
    cursor: pointer;
}

.nav-links {
    display: flex;
    align-items: center;
    gap: 24px;
}


/* =========================
   MOBILE HEADER
========================= */

@media (max-width: 900px) {

/* =========================
   SIGNATURE PREMIUM
========================= */

.brand-signature{
    padding:40px 20px;
    background:#f7f5f2;
}

.brand-wrapper{
    max-width:900px;
    margin:auto;
}

.brand-identity{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:20px;
}

/* photo */

.brand-photo img{
    width:70px;
    height:70px;
    border-radius:50%;
    object-fit:cover;
}

/* texte */

.brand-text{
    text-align:left;
}

.brand-title{
    font-size:34px;
    font-family:Georgia,serif;
}

.brand-sub{
    margin-top:4px;
    font-size:16px;
    color:#666;
}

.brand-divider{
    width:60px;
    height:1px;
    background:#ddd;
    margin:12px 0;
}

.brand-baseline{
    font-size:14px;
    color:#777;
}


/* =========================
   MOBILE VERSION
========================= */

@media (max-width:900px){

.brand-signature{
    padding:24px 16px;
}

.brand-identity{

    flex-direction:column;

    text-align:center;

}

.brand-text{
    text-align:center;
}

.brand-photo img{

    width:60px;
    height:60px;

}

.brand-title{
    font-size:26px;
}

.brand-sub{
    font-size:14px;
}

.brand-baseline{
    font-size:13px;
}

.brand-divider{
    margin:10px auto;
}

}


/* -------------------------
   NAVBAR
------------------------- */

.navbar{

    display:flex;
    align-items:center;
    justify-content:space-between;

    position:relative;

    padding:12px 16px;
}


/* -------------------------
   LOGO + TEL
------------------------- */

.logo{
    display:flex;
    align-items:center;
    gap:14px;
}

.logo img{
    height:42px;
    width:auto;
}

/* téléphone */

.header-phone{

    font-size:14px;

    padding-left:12px;

    border-left:1px solid rgba(0,0,0,0.15);

    text-decoration:none;

    color:#333;
}


/* -------------------------
   BURGER
------------------------- */

.menu-toggle{

    display:block;

    background:none;
    border:none;

    font-size:26px;

    margin-left:auto;

    cursor:pointer;
}


/* -------------------------
   MENU MOBILE
------------------------- */

.nav-links{

    display:none;

    position:absolute;

    top:100%;
    left:0;

    width:100%;

    background:white;

    flex-direction:column;

    align-items:flex-start;

    padding:24px;

    gap:18px;

    box-shadow:0 20px 40px rgba(0,0,0,0.08);
}

.nav-links.active{
    display:flex;
}


/* -------------------------
   LIENS MENU
------------------------- */

.nav-links a{

    width:100%;

    font-size:16px;

    padding:8px 0;

    text-decoration:none;
}


/* -------------------------
   BOUTON RDV
------------------------- */

.btn-primary{

    width:100%;

    text-align:center;

    margin-top:10px;
}

}

/* ===========================
   HERO
=========================== */
.hero {
    min-height: 90vh;  /* remplace height: 100vh */
    display: flex;
    justify-content: center;
    align-items: center;
    background: 
        radial-gradient(circle at 20% 30%, rgba(255,255,255,0.6), transparent 50%),
        linear-gradient(120deg, #f4efe9 0%, #ffffff 60%, #f2ede7 100%);
    position: relative;
    overflow: hidden;
}


.hero h1 {
    font-size: 2.8rem;        /* un peu moins agressif */
    line-height: 1.15;        /* plus premium */
    max-width: 680px;         /* largeur maîtrisée */
    margin-bottom: 28px;
}

.hero-text {
    max-width: 720px;
}

.hero p {
    font-size: 1.05rem;
    line-height: 1.6;
    margin-bottom: 24px;
    max-width: 620px;
}

.hero-visual img:first-child {
    border-radius: 28px;
    box-shadow: 0 30px 60px rgba(0,0,0,0.08);
}


/* =========================================
   IMAGE FLOUTÉE SUPERPOSÉE HERO
========================================= */

.hero-visual {
    position: relative;
}

.hero-overlay-blur {
    position: absolute;
    bottom: -40px;
    right: 5%;
    width: 28%;
    z-index: 2;
    pointer-events: none;
}


.hero-overlay-blur img {
    width: 100%;
    filter: blur(1.8px);
    opacity: 0.85;
    transform: scale(1.03);
    border-radius: 24px;
    box-shadow: 0 20px 40px rgba(0,0,0,0.06);
}

.hero-overlay-blur::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 24px;
    background: linear-gradient(
        to bottom,
        rgba(255,255,255,0) 40%,
        rgba(255,255,255,0.4) 80%,
        rgba(255,255,255,0.8) 100%
    );
}




/* ===========================
   BOUTONS
=========================== */
.btn-primary {
    background: #c89b6d;
    border: none;
    padding: 14px 28px;
    color: white;
    font-size: 1rem;
    border-radius: 8px;
    cursor: pointer;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.btn-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 18px rgba(200,155,109,0.35);
}

/* ===========================
   SECTIONS GÉNÉRALES
=========================== */
section {
    padding: 80px 10%;
}

/* ===========================
   ORIENTATION
=========================== */
.orientation .cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 30px;
}

.card {
    background: white;
    padding: 30px;
    border-radius: 14px;
    cursor: pointer;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    text-decoration: none;
    color: inherit;
}

.card:hover {
    transform: translateY(-6px);
    box-shadow: 0 10px 30px rgba(0,0,0,0.08);
}

/* ===========================
   NORMALISATION
=========================== */
.normalisation {
    background: #ece7df;
    text-align: center;
    font-size: 1.4rem;
}

/* ===========================
   ACCOMPAGNEMENTS
=========================== */
.accompagnements .path {
    margin-bottom: 40px;
}

/* ===========================
   AGENDA
=========================== */
.agenda {
    text-align: center;
    background: #f1ede7;
}

/* ===========================
   CONTACT
=========================== */
.contact-page{
    max-width:900px;
    margin:auto;
    padding:60px 20px;
}

.contact-intro{
    text-align:center;
    margin-bottom:40px;
}

.contact-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:40px;
    margin-bottom:40px;
}

.contact-form input,
.contact-form textarea{
    width:100%;
    padding:12px;
    margin-bottom:15px;
}

.contact-map{
    margin-top:30px;
}

.contact-cta{
    text-align:center;
    margin-top:50px;
    padding:40px 20px;
}

.contact-cta h2{
    margin-bottom:15px;
}

.contact-cta p{
    max-width:650px;
    margin:0 auto 25px auto;
    line-height:1.6;
}

/* bouton existant */
.contact-cta .btn-primary{
    display:inline-block;
    margin-top:10px;
}

@media(max-width:768px){

.contact-grid{
grid-template-columns:1fr;
}

.contact-cta{
    text-align:center;
    margin-top:50px;
}

.contact-cta h2{
    margin-bottom:15px;
}

.contact-rdv-btn{
    display:inline-block;
    margin-top:15px;
}

}

/* ===========================
   HERO TYPE BRIGHTSIDE
=========================== */

.hero-brightside {
    background: linear-gradient(120deg, #bfe8e7, #d8f2f1);
    padding-top: 120px;
    padding-bottom: 120px;
}

.hero-inner {
    max-width: 1400px;
    margin: auto;
    padding: 0 80px;
    display: grid;
    grid-template-columns: 50% 50%;
    align-items: center;
    gap: 60px;
}

.hero-text h1 {
    font-size: 3rem;
    line-height: 1.2;
    margin-bottom: 24px;
    color: #234;
}

.hero-text p {
    font-size: 1.25rem;
    margin-bottom: 36px;
    max-width: 520px;
    color: #345;
}

.hero-actions {
    display: flex;
    align-items: center;
    gap: 24px;
}

.hero-link {
    text-decoration: none;
    font-weight: 500;
    color: #234;
}

.hero-visual {
    position: relative;
}

.hero-visual img {
    width: 100%;
    max-height: 520px;
    object-fit: cover;
    border-radius: 24px;
}

/* =========================================
   SECTION SITUATIONS – VERSION VISUELLE
========================================= */

.situations-visual {
    padding: 120px 6%;
    background: #ffffff;
    text-align: center;
}

.situations-inner {
    max-width: 1200px;
    margin: 0 auto;
}

.situations-visual h2 {
    font-size: 2.4rem;
    margin-bottom: 100px;
    font-weight: 400;
}

/* GRID DES PHRASES */
.situations-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 60px 40px;
    align-items: center;
}

/* Style général */
.situations-grid p {
    font-size: 1.25rem;
    line-height: 1.6;
    margin: 0;
}

/* Positionnement desktop */
.s1 { grid-column: 1; }
.s2 { grid-column: 3; }
.s3 { grid-column: 2; }
.s4 { grid-column: 1; }
.s5 { grid-column: 3; }

/* Variations visuelles */
.highlight {
    font-size: 1.8rem;
    font-style: italic;
}

.strong {
    font-size: 1.8rem;
    font-weight: 600;
}

/* =========================================
   MOBILE
========================================= */

@media (max-width: 900px) {

    .situations-visual {
        padding: 80px 6%;
    }

    .situations-grid {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .situations-grid p {
        font-size: 1.1rem;
    }

    .highlight,
    .strong {
        font-size: 1.3rem;
    }

}

/* =========================================
   PREMIUM BLOCKS SECTION
========================================= */

.premium-blocks {
    padding: 110px 8%;
    background: #f7f6f3;
}

.premium-grid {
    max-width: 1400px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 70px;
}

.premium-card {
    background: #ffffff;
    padding: 80px 75px;
    border-radius: 30px;
    box-shadow: 0 50px 100px rgba(0,0,0,0.05);
    transition: transform 0.3s ease;
}

.premium-card:hover {
    transform: translateY(-6px);
}

.premium-card h2 {
    font-size: 2.2rem;
    font-weight: 400;
    margin-bottom: 32px;
    line-height: 1.2;
}

.premium-card p {
    font-size: 1.08rem;
    line-height: 1.9;
    margin-bottom: 20px;
    color: #444;
}

/* ================= MOBILE ================= */

@media (max-width: 900px) {

    .premium-grid {
        grid-template-columns: 1fr;
        gap: 50px;
    }

    .premium-card {
        padding: 50px 30px;
    }

    .premium-card h2 {
        font-size: 1.8rem;
    }

}

/* ===========================
   GUIDAGE PRINCIPAL LANDING
=========================== */

.help-section {
    padding: 100px 10%;
    background: #ffffff;
    text-align: center;
}

.help-section h2 {
    font-size: 2.2rem;
    margin-bottom: 60px;
    color: #2b2b2b;
}

.help-cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 32px;
    max-width: 1100px;
    margin: auto;
}

.help-card {
    background: #f7f6f3;
    padding: 40px 30px;
    border-radius: 20px;
    text-decoration: none;
    color: inherit;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
    box-shadow: 0 8px 30px rgba(0,0,0,0.04);
}

.help-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 20px 50px rgba(0,0,0,0.08);
}

.help-icon {
    font-size: 2.4rem;
    margin-bottom: 20px;
}

.help-card h3 {
    font-size: 1.3rem;
    margin-bottom: 12px;
}

.help-card p {
    font-size: 1rem;
    line-height: 1.5;
    color: #555;
}

/* Carte CTA */
.help-card.primary {
    background: linear-gradient(135deg, #c89b6d, #deb98a);
    color: white;
}

.help-card.primary p {
    color: white;
}
/* =========================
   CTA FINAL PREMIUM
========================= */

.section-cta {
    padding: 130px 10%;
    background: linear-gradient(135deg, #c89b6d, #d8b487);
    text-align: center;
    color: white;
}

.section-cta .container-narrow {
    max-width: 820px;
    margin: 0 auto;
}

.section-cta h2 {
    font-size: 2.8rem;
    margin-bottom: 28px;
    line-height: 1.2;
}

.section-cta p {
    font-size: 1.25rem;
    max-width: 620px;
    margin: 0 auto 70px auto;
    color: rgba(255,255,255,0.95);
}

.section-cta .btn-primary {
    padding: 20px 52px;
    font-size: 1.1rem;
    border-radius: 10px;
    background: #b88352; /* plus foncé que le fond */
    box-shadow: 0 18px 40px rgba(0,0,0,0.25);   
    border: 2px solid rgba(255,255,255,0.6);
}






/* =========================
   APPROCHE – VERSION CORRIGÉE
========================= */

.approche-block {
    padding: 50px 6%;
    background: #f7f6f3;
}
.seo-title {
  max-width: 1100px;
  margin: 0 auto 60px;
  padding: 2% 4%;
  text-align: center;
}

.approche-block.alt {
    background: #ece7df;
}

/* =========================
   CARTE
========================= */

.approche-card {
    max-width: 1400px;
    margin: 0 auto;
    background: #ffffff;
    border-radius: 28px;
    box-shadow: 0 12px 30px rgba(0,0,0,0.05);
    overflow: hidden; /* IMPORTANT */
}

/* =========================
   GRID
========================= */

.approche-grid {
    display: grid;
    grid-template-columns: 1.1fr 1fr; /* image légèrement plus large */
    align-items: stretch;
}

/* Inversion */
.approche-grid.reverse {
    direction: rtl;
}

.approche-grid.reverse > * {
    direction: ltr;
}

/* =========================
   IMAGE – VRAIMENT INTÉGRÉE
========================= */

.approche-image {
    height: 100%;
}

.approche-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Coins arrondis côté image */
.approche-grid:not(.reverse) .approche-image img {
    border-radius: 28px 0 0 28px;
}

.approche-grid.reverse .approche-image img {
    border-radius: 0 28px 28px 0;
}

/* =========================
   TEXTE
========================= */

.approche-text {
    padding: 60px;
}

.approche-text h1 {
    font-size: 2.4rem;
    margin-bottom: 20px;
}

.approche-text h2 {
    font-size: 1.9rem;
    margin-bottom: 18px;
    position: relative;
    padding-left: 16px;
}

.approche-text h2::before {
    content: "";
    position: absolute;
    left: 0;
    top: 6px;
    width: 3px;
    height: 22px;
    background: #c89b6d;
}

.approche-text p {
    font-size: 1.05rem;
    line-height: 1.75;
    margin-bottom: 14px;
    color: #444;
}

/* =========================
   FULLWIDTH
========================= */

.approche-fullwidth {
    padding: 90px 6%;
    text-align: center;
    background: linear-gradient(
        180deg,
        #dbe7e5 0%,
        #f7f6f3 100%
    );
}

.approche-fullwidth-inner {
    max-width: 800px;
    margin: auto;
}

.approche-fullwidth h2 {
    font-size: 2.1rem;
    margin-bottom: 28px;
}

.approche-fullwidth p {
    font-size: 1.08rem;
    line-height: 1.8;
}

/* =========================
   CTA
========================= */

/* CTA container plus élégant */
.approche-cta {
    padding: 90px 6%;
    text-align: center;
    background: #f7f6f3;
}

/* Limiter la largeur du contenu */
.approche-cta h2,
.approche-cta p {
    max-width: 700px;
    margin-left: auto;
    margin-right: auto;
}

/* Corriger le bouton */
.approche-cta .btn-primary {
    display: inline-block;
    padding: 16px 30px;
    margin-top: 25px;
    max-width: 480px;       /* ← clé du problème */
    white-space: normal;    /* permet retour à la ligne propre */
    line-height: 1.4;
}

/* =========================
   RESPONSIVE
========================= */

@media (max-width: 900px) {

    .approche-grid {
        grid-template-columns: 1fr;
    }

    .approche-text {
        padding: 40px;
    }

    .approche-image img {
        border-radius: 28px 28px 0 0 !important;
    }
}
/* =========================
   HERO DOMAINES — VERSION COMPACTE
========================= */

.domaines-hero {
  position: relative;
  padding: 120px 10% 80px; /* ↓ moins d’espace */
  text-align: center;

  background:
    linear-gradient(
      180deg,
      #cfe4e1 0%,
      #e4f0ee 35%,
      #e8f2f0 65%,
      #d8e9e6 85%,
      #f7f6f3 100%
    );

  border-bottom: 1px solid rgba(0,0,0,0.05);
}

.domaines-hero::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 50% 20%, rgba(255,255,255,0.6), rgba(255,255,255,0) 55%);
  pointer-events:none;
}

.domaines-hero-inner{
  position: relative;
  z-index: 1;
  max-width: 720px; /* ↓ un peu plus resserré */
  margin: 0 auto;
}

.domaines-hero h1{
  font-size: 2.8rem; /* légèrement réduit */
  margin-bottom: 18px; /* ↓ moins d’espace */
  color:#223;
  font-weight: 600;
}

.domaines-hero p{
  font-size: 1.05rem;
  line-height: 1.75; /* ↓ un peu plus compact */
  color:#344;
  margin-bottom: 12px; /* ↓ resserré */
}

/* MOBILE */
@media (max-width: 900px){
  .domaines-hero{
    padding: 100px 7% 70px;
  }
  .domaines-hero h1{
    font-size: 2.1rem;
  }
}
/* =========================
   DOMAINES – STRUCTURE
========================= */

.domaines-section {
    padding: 40px 6%;   /* ↓ on réduit un peu */
    background: #f7f6f3;
}

/* supprime le double espace entre sections */
.domaines-section + .domaines-section {
    padding-top: 0;
}

.domaines-container {
    max-width: 1100px;
    margin: 0 auto;
}

/* =========================
   CARD
========================= */

.domaine-card {
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 10px 25px rgba(0,0,0,0.05);
    padding: 35px 40px;
    margin-bottom: 25px;
    transition: all 0.3s ease;
}

.domaine-card:hover {
    box-shadow: 0 15px 35px rgba(0,0,0,0.08);
}

/* =========================
   HEADER
========================= */

.domaine-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
}

.domaine-header h3 {
    font-size: 1.6rem;
    margin-bottom: 6px;
}

.domaine-subtitle {
    font-size: 0.95rem;
    color: #777;
}

.domaine-toggle {
    background: none;
    border: none;
    font-weight: 500;
    color: #c89b6d;
    cursor: pointer;
    font-size: 0.95rem;
}

/* =========================
   CONTENU DÉPLOYÉ
========================= */

.domaine-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s ease, margin-top 0.3s ease;
}

.domaine-card.active .domaine-content {
    max-height: 500px;
    margin-top: 20px;
}

.domaine-content p {
    font-size: 1.05rem;
    line-height: 1.75;
    margin-bottom: 12px;
    color: #444;
}

/* =========================
   DOMAINES COMMON — SKY VERSION
========================= */

.domaines-common {
  position: relative;
  padding: 110px 6%;
  background: 
    linear-gradient(rgba(255,255,255,0.25), rgba(255,255,255,0.35)),
    url("../images/sky-soft.jpg") center / cover no-repeat;

  text-align: center;
}

.domaines-common-inner {
  max-width: 1100px;
  margin: 0 auto;
}

.domaines-common h2 {
  font-size: 2.2rem;
  margin-bottom: 60px;
  color: #223;
  font-weight: 600;
}

/* grille */
.cloud-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 50px 80px;
}

/* bulles */
.cloud-item {
  background: rgba(255,255,255,0.9);
  padding: 30px 40px;
  border-radius: 60px;
  font-size: 1.05rem;
  line-height: 1.6;
  color: #344;
  box-shadow: 0 15px 35px rgba(0,0,0,0.05);
  backdrop-filter: blur(4px);
  transition: transform 0.3s ease;
}

.cloud-item:hover {
  transform: translateY(-4px);
}

/* dernier centré */
.cloud-item:last-child {
  grid-column: 1 / -1;
  max-width: 500px;
  margin: 0 auto;
}

/* mobile */
@media (max-width: 900px) {
  .cloud-grid {
    grid-template-columns: 1fr;
    gap: 30px;
  }
}
/* =========================
   DOMAINES CTA
========================= */

.domaines-cta {
    padding: 90px 6%;
    background: linear-gradient(
        180deg,
        #f7f6f3 0%,
        #eef4f3 100%
    );
    text-align: center;
}

.domaines-cta-inner {
    max-width: 720px;
    margin: 0 auto;
}

.domaines-cta h2 {
    font-size: 2.2rem;
    margin-bottom: 20px;
    color: #223;
    font-weight: 600;
}

.domaines-cta p {
    font-size: 1.1rem;
    line-height: 1.8;
    color: #344;
    margin-bottom: 35px;
}

.domaines-cta .btn-primary {
    display: inline-block;
    padding: 14px 34px;
    font-size: 1rem;
    border-radius: 30px;
    background: #7aa8a2;
    color: white;
    text-decoration: none;
    transition: all 0.3s ease;
}

.domaines-cta .btn-primary:hover {
    background: #5f8f88;
    transform: translateY(-2px);
}
/* ===========================
   PAGE À PROPOS — PREMIUM
=========================== */

/* HERO */

.section-light {
    background: #f4f2ef;
}

.section-soft {
    background: #ece7df;
}



/* =========================
   A PROPOS – HERO (comme maquette)
========================= */
.accompagnement-hero{
  position: relative;
  padding: 140px 10% 110px;
  text-align: center;

  background:
    linear-gradient(
      180deg,
      #cfe4e1 0%,
      #e4f0ee 35%,
      #e8f2f0 65%,
      #d8e9e6 85%,
      #f7f6f3 100%
    );

  border-bottom: 1px solid rgba(0,0,0,0.05);
}


/* léger “voile” pour le côté premium, sans gadget */
.accompagnement-hero::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 50% 20%, rgba(255,255,255,0.65), rgba(255,255,255,0) 55%);
  pointer-events:none;
}

.accompagnement-hero-inner{
  position: relative;
  z-index: 1;
  max-width: 1300px;
  margin: 0 auto;
}

.accompagnement-hero h1{
  font-size: 3rem;
  margin-bottom: 22px;
  color:#223;
}

.accompagnement-hero p{
  font-size: 1.05rem;
  line-height: 1.85;
  color:#344;
  margin-bottom: 14px;
}

/* MOBILE */
@media (max-width: 900px){
  .accompagnement-hero{
    padding: 110px 7% 80px;
  }
  .accompagnement-hero h1{
    font-size: 2.2rem;
  }
}


/* BLOCS */

.accompagnement-block{
  padding: 60px 5% 90px; 
}
.domaine-content ul {
    list-style: disc;
    padding-left: 22px;
    margin: 15px 0 20px;
}

.domaine-content li {
    margin-bottom: 6px;
}

/* Carte intérieure */

.accompagnement-inner {
    max-width: 1200px;
    width: 90%;
    margin: auto;
    background: white;
    padding: 80px 100px;
    border-radius: 28px;
    box-shadow: 0 25px 60px rgba(0,0,0,0.05);
}


/* Titres */

.accompagnement-inner h2 {
    font-size: 2.2rem;
    margin-bottom: 24px;
    position: relative;
    padding-left: 20px;
}

.accompagnement-inner h2::before {
    content: "";
    position: absolute;
    left: 0;
    top: 10px;
    width: 3px;
    height: 30px;
    background: #c89b6d;
    border-radius: 3px;
}


/* Texte */

.accompagnement-inner p {
    font-size: 1.1rem;
    line-height: 1.85;
    margin-bottom: 18px;
    color: #3a3a3a;
}


/* CTA FINAL */

.accompagnements-cta {
    padding: 140px 10%;
    text-align: center;
    background: #f7f6f3;
}

.accompagnements-cta h2 {
    font-size: 2rem;
    margin-bottom: 20px;
}

.accompagnements-cta p {
    max-width: 600px;
    margin: 0 auto 30px;
}

.accompagnements-cta .btn-primary {
    padding: 18px 42px;
    font-size: 1.05rem;
}



/* =========================
   HERO
========================= */

.resources-hero {
    padding: 140px 20px 80px;
    text-align: center;
    background: linear-gradient(180deg, #f7f3ee, #ffffff);
}

.resources-hero h1 {
    font-size: 3rem;
    font-weight: 500;
    line-height: 1.2;
    margin-bottom: 20px;
}

.hero-subtitle {
    font-size: 1.3rem;
    color: #8a6a4d;
    margin-bottom: 20px;
}

.hero-description {
    max-width: 700px;
    margin: auto;
    color: #555;
    font-size: 1rem;
}

/* =========================
   ARBRE
========================= */
.tree-bubble.disabled{
cursor:pointer;
opacity:0.7;
}

.tree-immersive-image {
    width: 1500px;
    max-width: none;
    position: relative;
    z-index: 2;

    filter: drop-shadow(0 80px 140px rgba(0,0,0,0.18));

    /* NOUVEAU MASQUE PLUS FORT */
    mask-image: radial-gradient(
        circle at center,
        rgba(0,0,0,1) 55%,
        rgba(0,0,0,0.9) 65%,
        rgba(0,0,0,0.4) 75%,
        rgba(0,0,0,0) 90%
    );

    -webkit-mask-image: radial-gradient(
        circle at center,
        rgba(0,0,0,1) 55%,
        rgba(0,0,0,0.9) 65%,
        rgba(0,0,0,0.4) 75%,
        rgba(0,0,0,0) 90%
    );
}
.tree-wrapper {
    position: relative;
    width: 1500px;
    margin: 0 auto;
}

.tree-bubble {
    position: absolute;
    z-index: 20;

    padding: 18px 42px;          /* 🔥 plus large */
    border-radius: 80px;         /* 🔥 plus rond */

    font-size: 1.15rem;          /* 🔥 plus grand */
    font-weight: 600;            /* 🔥 plus épais */
    letter-spacing: 0.5px;

    min-width: 285px;            /* 🔥 force une vraie largeur */
    text-align: center;

    background: rgba(255,255,255,0.97);
    backdrop-filter: blur(10px);

    color: #2f2f2f;
    text-decoration: none;
    white-space: nowrap;

    box-shadow:
        0 30px 70px rgba(0,0,0,0.20),
        0 0 0 2px rgba(255,255,255,0.9) inset;

    transition: all 0.35s ease;
}

.tree-bubble:hover {
    transform: translateY(-8px) scale(1.07);
    box-shadow:
        0 45px 100px rgba(0,0,0,0.30),
        0 0 0 2px rgba(255,255,255,1) inset;
}

.bubble-fatigue-wide {
    min-width: 309px;   /* ajuste ici */
}

/* Positionnement stable (à ajuster finement) */

.bubble-couple     { top: 21%; left: 20%; }
.bubble-anxiete    { top: 20%; right: 9%; }
.bubble-stress     { top: 35%; left: 15%; }
.bubble-fatigue    { top: 49%; left: 27%; }
.bubble-sens       { top: 33%; right: 4%; }
.bubble-transition { bottom: 46%; right: 6%; }

/* =========================
   RESSOURCES - LIBRARY LAYOUT
========================= */

.resources-library {
  padding: 60px 0 110px;
  background: #fbfaf8;
}

.resources-grid {
  width: min(1220px, calc(100% - 40px));
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 340px;
  gap: 38px;
  align-items: start;
}

/* LEFT */
.resources-main h2 {
  font-size: 1.35rem;
  margin: 0 0 14px;
}

.featured-sub {
  margin: -6px 0 18px;
  color: #6a5f53;
  font-size: 0.95rem;
}

.featured-card {
  background: #fff;
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 16px 50px rgba(0,0,0,0.06);
  border: 1px solid rgba(0,0,0,0.05);
  display: grid;
  grid-template-columns: 1fr;
}

.featured-media img{
  width: 100%;
  height: 260px;
  object-fit: cover;
  display: block;
}

.featured-content{
  padding: 22px 24px 24px;
}

.featured-meta{
  display: flex;
  gap: 10px;
  color: #7b6f61;
  font-size: 0.9rem;
  margin-bottom: 10px;
}

.featured-title{
  font-size: 1.6rem;
  line-height: 1.2;
  margin: 0 0 10px;
}

.featured-title a{
  color: #1f1f1f;
  text-decoration: none;
}

.featured-title a:hover{
  text-decoration: underline;
}

.featured-excerpt{
  margin: 0 0 18px;
  color: #3e3a35;
  line-height: 1.65;
}

.btn-read{
  display: inline-block;
  padding: 12px 18px;
  border-radius: 999px;
  background: #b88b62;
  color: #fff;
  text-decoration: none;
  font-weight: 600;
  box-shadow: 0 14px 30px rgba(184,139,98,0.28);
}

.btn-read:hover{
  filter: brightness(0.98);
  transform: translateY(-1px);
}

/* Theme blocks */
.theme-block{
  margin-top: 34px;
  padding-top: 18px;
  border-top: 1px solid rgba(0,0,0,0.06);
}

.theme-header{
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
  margin-bottom: 10px;
}

.theme-count{
  color: #7b6f61;
  font-size: 0.92rem;
}

.theme-latest{
  background: #fff;
  border-radius: 16px;
  padding: 18px 18px 16px;
  border: 1px solid rgba(0,0,0,0.05);
  box-shadow: 0 14px 40px rgba(0,0,0,0.05);
}

.theme-latest-meta{
  display: flex;
  gap: 10px;
  color: #7b6f61;
  font-size: 0.9rem;
  margin-bottom: 8px;
}

.theme-latest-title{
  margin: 0 0 8px;
  font-size: 1.15rem;
}

.theme-latest-title a{
  color: #1f1f1f;
  text-decoration: none;
}

.theme-latest-title a:hover{
  text-decoration: underline;
}

.theme-latest-excerpt{
  margin: 0 0 10px;
  color: #3e3a35;
  line-height: 1.6;
}

.link-read{
  color: #9a6c44;
  text-decoration: none;
  font-weight: 600;
}

.link-read:hover{
  text-decoration: underline;
}

/* Accordion (details/summary) */
.theme-accordion{
  margin-top: 12px;
  background: rgba(255,255,255,0.65);
  border-radius: 14px;
  border: 1px solid rgba(0,0,0,0.05);
  overflow: hidden;
}

.theme-accordion summary{
  list-style: none;
  cursor: pointer;
  padding: 14px 16px;
  font-weight: 700;
  color: #2b2723;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.theme-accordion summary::-webkit-details-marker{ display:none; }

.summary-count{
  color: #7b6f61;
  font-weight: 600;
}

.theme-list{
  margin: 0;
  padding: 8px 10px 12px;
  list-style: none;
}

.theme-item{
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 10px;
  border-radius: 12px;
}

.theme-item:hover{
  background: rgba(255,255,255,0.85);
}

.theme-item-title a{
  color: #1f1f1f;
  text-decoration: none;
  font-weight: 700;
}

.theme-item-title a:hover{ text-decoration: underline; }

.theme-item-meta{
  color: #7b6f61;
  font-size: 0.88rem;
  margin-top: 4px;
}

.theme-item-cta{
  color: #9a6c44;
  text-decoration: none;
  font-weight: 700;
  white-space: nowrap;
}

.theme-item-cta:hover{ text-decoration: underline; }

/* RIGHT - sticky sidebar */
.resources-sidebar .sidebar-sticky{
  position: sticky;
  top: 110px; /* ajuste selon la hauteur de ton header */
  background: rgba(255,255,255,0.75);
  border: 1px solid rgba(0,0,0,0.05);
  border-radius: 18px;
  padding: 16px;
  box-shadow: 0 16px 50px rgba(0,0,0,0.06);
  backdrop-filter: blur(10px);
}

.sidebar-search input{
  width: 100%;
  padding: 12px 14px;
  border-radius: 12px;
  border: 1px solid rgba(0,0,0,0.10);
  outline: none;
}

.sidebar-title{
  margin: 14px 0 10px;
  font-weight: 800;
  color: #2b2723;
}

.sidebar-themes ul{
  margin: 0;
  padding: 0;
  list-style: none;
}

.sidebar-themes a{
  display: flex;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 10px;
  border-radius: 12px;
  text-decoration: none;
  color: #2b2723;
  font-weight: 650;
}

.sidebar-themes a:hover{
  background: rgba(255,255,255,0.85);
}

.badge-count{
  color: #7b6f61;
  font-weight: 700;
}

.sidebar-cta{
  margin-top: 14px;
}

.btn-cta{
  display: block;
  text-align: center;
  padding: 12px 14px;
  border-radius: 999px;
  background: #6f4b2f;
  color: #fff;
  text-decoration: none;
  font-weight: 700;
}

/* =========================
   SIDEBAR THEMES ACCORDION
========================= */

.sidebar-theme .sidebar-articles{
  display: none;
  margin-top: 6px;
  padding-left: 12px;
}

.sidebar-theme.open .sidebar-articles{
  display: block;
}

.sidebar-articles li{
  margin: 6px 0;
}

.sidebar-articles a{
  font-size: 0.92rem;
  color: #5c5145;
  text-decoration: none;
}

.sidebar-articles a:hover{
  text-decoration: underline;
}



.btn-cta:hover{ filter: brightness(0.98); }

/* Accessibility */
.sr-only{
  position:absolute;
  width:1px;height:1px;
  padding:0;margin:-1px;
  overflow:hidden;clip:rect(0,0,0,0);
  white-space:nowrap;border:0;
}

/* Responsive */
@media (max-width: 980px){
  .resources-grid{
    grid-template-columns: 1fr;
  }
  .resources-sidebar .sidebar-sticky{
    position: relative;
    top: auto;
  }
}

/* =====================================================
   READER MODAL
===================================================== */

/* =====================================================
   READER MODAL
===================================================== */

.reader-modal{
position:fixed;
inset:0;
display:none;
z-index:9999;
}

.reader-modal.is-open{
display:block;
}

.reader-backdrop{
position:absolute;
inset:0;
background:rgba(20,18,16,.55);
backdrop-filter:blur(6px);
}


/* =====================================================
   PANEL
===================================================== */

.reader-panel{

position:absolute;
top:40px;
left:50%;
transform:translateX(-50%);

width:min(960px, calc(100% - 40px));
max-height:calc(100vh - 80px);

background:
/* linear-gradient(rgba(255,255,255,0.94), rgba(255,255,255,0.94)), */
url("../images/zen-texture.jpg") center / cover no-repeat;

border-radius:18px;

box-shadow:0 30px 90px rgba(0,0,0,.35);

overflow:hidden;

}


/* =====================================================
   TOPBAR
===================================================== */

.reader-topbar{

display:flex;
justify-content:space-between;
align-items:center;

padding:12px 16px;

background:#fafafa;
border-bottom:1px solid #e5e5e5;

}

.reader-btn{

appearance:none;
border:1px solid #ddd;

background:white;

padding:8px 12px;

border-radius:999px;

font-size:14px;
font-weight:600;

cursor:pointer;

}

.reader-btn:hover{
background:#f5f5f5;
}


/* =====================================================
   CONTENT AREA
===================================================== */

.reader-content{

padding:48px 64px;
overflow:auto;

max-height:calc(100vh - 80px - 52px);

}


/* =====================================================
   ARTICLE TYPOGRAPHY
===================================================== */

.reader-article{

max-width:1080px;
margin:auto;

font-family:Georgia, serif;

font-size:19px;
line-height:1.65;

color:#1f1f1f;

}


/* TITLE */

.reader-article h1{

font-size:2.4rem;
font-weight:600;

line-height:1.25;

margin-bottom:30px;

letter-spacing:-0.02em;

}


/* SUBTITLES */

.reader-article h2{

font-size:1.5rem;
font-weight:600;

margin-top:40px;
margin-bottom:14px;

}

.reader-article h3{

font-size:1.25rem;

margin-top:30px;
margin-bottom:12px;

}


/* PARAGRAPHS */

.reader-article p{

margin-bottom:16px;

}


/* FIRST PARAGRAPH */

.reader-article p:first-of-type{

font-size:1.08em;
color:#333;

}


/* LISTS */

.reader-article ul{

margin:14px 0 18px 20px;
padding-left:16px;

}

.reader-article li{

margin-bottom:6px;

}


/* META */

.reader-article-meta{

font-size:14px;
color:#777;

margin-bottom:24px;

}


/* SIGNATURE */

.article-signature{

margin-top:50px;
padding-top:20px;

border-top:1px solid #e5e5e5;

font-style:italic;
color:#555;

}


/* COPYRIGHT */

.article-copyright{

margin-top:8px;

font-size:13px;
color:#888;

}


/* =====================================================
   PRINT
===================================================== */

@media print{

body *{
visibility:hidden!important;
}

#readerModal,
#readerModal *{
visibility:visible!important;
}

#readerModal{
position:static!important;
}

.reader-backdrop,
.reader-topbar{
display:none!important;
}

.reader-panel{

position:static!important;
transform:none!important;

width:100%!important;
max-height:none!important;

box-shadow:none!important;
border:0!important;
border-radius:0!important;

}

.reader-content{
overflow:visible!important;
max-height:none!important;
}

}

/* =====================================================
   PRINT
===================================================== */

@media print{

  body *{
    visibility:hidden!important;
  }

  #readerModal,
  #readerModal *{
    visibility:visible!important;
  }

  #readerModal{
    position:static!important;
  }

  .reader-backdrop,
  .reader-topbar{
    display:none!important;
  }

  .reader-panel{
    position:static!important;
    transform:none!important;

    width:100%!important;

    max-height:none!important;

    box-shadow:none!important;
    border:0!important;
    border-radius:0!important;
  }

  .reader-content{
    overflow:visible!important;
    max-height:none!important;
  }

}

/* ===========================
   AGENDA – VERSION PRO STRUCTURÉE
=========================== */

.agenda-wrapper {
    max-width: 950px;
    margin: 60px auto;
}

.agenda-row {
    display: flex;
    align-items: flex-start;
    padding: 30px 0;
    border-bottom: 1px solid #eee;
}

.agenda-date {
    width: 160px;
    text-align: left;
}

.agenda-date .day {
    font-size: 2rem;
    font-weight: 600;
    color: #223;
}

.agenda-date .month {
    font-size: 0.9rem;
    color: #777;
}

.agenda-times {
    flex: 1;
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.time {
    min-width: 80px;
    padding: 10px 0;
    text-align: center;
    border-radius: 6px;
    font-size: 0.9rem;
    border: 1px solid #ddd;
    transition: 0.2s;
}

.time.available {
    background: white;
    color: #223;
    cursor: pointer;
}

.time.available:hover {
    background: #7aa8a2;
    color: white;
    border-color: #7aa8a2;
}

.time.booked,
.time.blocked {
    background: #f3f3f3;
    color: #bbb;
    cursor: not-allowed;
}

.agenda-month-title {
    font-size: 1.8rem;
    margin: 60px 0 30px;
    font-weight: 600;
    color: #223;
    border-bottom: 2px solid #eee;
    padding-bottom: 10px;
}

.agenda-date .weekday {
    font-size: 0.8rem;
    color: #777;
}

.agenda-summary {
    display: flex;
    justify-content: center;
    gap: 40px;
    margin: 40px 0 60px;
    flex-wrap: wrap;
}

.agenda-summary-item {
    text-align: center;
}

.agenda-summary-item .label {
    display: block;
    font-size: 0.8rem;
    color: #777;
    margin-bottom: 6px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.agenda-summary-item .value {
    font-size: 1rem;
    font-weight: 500;
    color: #223;
}

/* ===========================
   BOOKING PANEL
=========================== */

.booking-panel {
    position: fixed;
    top: 0;
    right: -100%;
    width: 420px;
    height: 100%;
    background: white;
    box-shadow: -10px 0 40px rgba(0,0,0,0.1);
    transition: right 0.4s ease;
    z-index: 9999;
    padding: 40px;
    overflow-y: auto;
}

.booking-panel.active {
    right: 0;
}

.booking-content h3 {
    margin-bottom: 20px;
}

.booking-summary p {
    margin-bottom: 10px;
    font-size: 0.95rem;
}

.booking-form {
    margin-top: 30px;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.booking-form input {
    padding: 12px;
    border: 1px solid #ddd;
    border-radius: 6px;
    font-size: 0.9rem;
}

.booking-btn {
    background: #7aa8a2;
    color: white;
    border: none;
    padding: 14px;
    border-radius: 6px;
    cursor: pointer;
    font-size: 0.95rem;
}

.booking-btn:hover {
    background: #5f8f88;
}

.booking-close {
    position: absolute;
    top: 15px;
    right: 20px;
    background: none;
    border: none;
    font-size: 1.5rem;
    cursor: pointer;
}

.booking-type select {
    width: 100%;
    padding: 14px 16px;
    font-size: 0.95rem;
    border: 1px solid #ddd;
    border-radius: 8px;
    background: white;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    cursor: pointer;
    transition: border 0.2s ease;
}

.booking-type select:focus {
    outline: none;
    border-color: #7aa8a2;
}
/* ===========================
   MENU ADMIN
=========================== */

/* =====================================================
   ADMIN – AGENDA RENDEZ-VOUS
===================================================== */

.admin-agenda {
    padding: 60px 80px;
    background: #f7f8fa;
    min-height: 100vh;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}

.admin-agenda h1 {
    font-size: 28px;
    font-weight: 600;
    margin-bottom: 40px;
    color: #1e1e1e;
}

/* =========================
   BARRE HAUT
========================= */

.agenda-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 30px;
}

.agenda-top h2 {
    font-size: 18px;
    font-weight: 500;
    color: #444;
}

/* Boutons */

.btn-light,
.btn-outline {
    padding: 10px 18px;
    border-radius: 8px;
    font-size: 14px;
    cursor: pointer;
    text-decoration: none;
    transition: 0.2s ease;
}

.btn-light {
    background: #ffffff;
    border: 1px solid #dcdcdc;
    color: #333;
}

.btn-light:hover {
    background: #f2f2f2;
}

.btn-outline {
    background: #ffffff;
    border: 1px solid #dcdcdc;
}

.btn-outline:hover {
    background: #f2f2f2;
}

/* Switch */

.view-switch {
    display: inline-flex;
    background: #e9edf1;
    border-radius: 8px;
    overflow: hidden;
    margin-left: 20px;
}

/* On unifie span ET a */
.view-switch span,
.view-switch a {
    padding: 8px 16px;
    font-size: 13px;
    cursor: pointer;
    text-decoration: none;
    color: inherit;
    display: inline-block;
}

/* Etat actif */
.view-switch span.active,
.view-switch a.active {
    background: #5f8f88;
    color: white;
}


/* =========================
   GRILLE CALENDRIER
========================= */

.calendar-grid {
    display: grid;
    grid-template-columns: 100px repeat(6, 1fr);
    background: #ffffff;
    border-radius: 14px;
    overflow: hidden;
    border: 1px solid #e6e6e6;
}

/* Mode jour = 2 colonnes (heure + 1 jour) */
.calendar-grid.day-mode {
    grid-template-columns: 80px 1fr;
}

/* Lignes fixes */

.calendar-grid .cell {
    min-height: 85px;
    border-right: 1px solid #f0f0f0;
    border-bottom: 1px solid #f0f0f0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 8px;
}

/* Header jours */

.cell.header {
    background: #fafafa;
    font-size: 14px;
    font-weight: 500;
    text-align: center;
    flex-direction: column;
}

.cell.header strong {
    font-weight: 600;
    margin-bottom: 4px;
}

.cell.header.empty {
    background: #fafafa;
}

/* Colonne heure */

.cell.time {
    background: #fafafa;
    font-size: 14px;
    color: #666;
}

/* =========================
   CARDS RDV
========================= */

.rdv-card {
    width: 100%;
    padding: 10px 12px;
    border-radius: 10px;
    font-size: 13px;
    line-height: 1.3;
    text-align: left;
    transition: 0.2s ease;
}

/* Disponible */

.rdv-card.available {
    background: #e8f3ef;
    color: #2d5d54;
}

/* Réservé */

.rdv-card.booked {
    background: #d9e4ef;
    color: #294b6d;
}

/* Bloqué */

.rdv-card.blocked {
    background: #f0f0f0;
    color: #777;
}

/* Hover léger */

.cell.slot:hover .rdv-card {
    transform: translateY(-2px);
}

/* =========================
   MODALE ADMIN
========================= */

.agenda-modal {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.35);
    display: none;
    align-items: center;
    justify-content: center;
    z-index: 9999;
}

.agenda-modal.active {
    display: flex;
}

.agenda-modal-content {
    width: 420px;
    background: white;
    padding: 30px;
    border-radius: 14px;
    position: relative;
}

.close-modal {
    position: absolute;
    top: 12px;
    right: 18px;
    font-size: 22px;
    cursor: pointer;
}

/* === FORMULAIRE DANS MODALE === */

.agenda-modal-content h3 {
    margin-bottom: 18px;
    font-size: 18px;
}

.agenda-modal-content textarea {
    width: 100%;
    padding: 10px;
    border-radius: 8px;
    border: 1px solid #ddd;
    font-family: inherit;
    font-size: 14px;
    resize: none;
    margin-bottom: 15px;
}

.agenda-modal-content button {
    padding: 8px 16px;
    border-radius: 6px;
    border: 1px solid #ccc;
    background: #f5f5f5;
    cursor: pointer;
}

.agenda-modal-content button:hover {
    background: #e6e6e6;
}

/* === SELECT DANS MODALE === */

.agenda-modal-content select {
    width: 100%;
    padding: 10px;
    border-radius: 8px;
    border: 1px solid #ddd;
    font-family: inherit;
    font-size: 14px;
    background: white;
    margin-bottom: 15px;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    cursor: pointer;
}

/* petite flèche custom propre */
.agenda-modal-content select {
    background-image: url("data:image/svg+xml;utf8,<svg fill='%23666' height='20' viewBox='0 0 24 24' width='20' xmlns='http://www.w3.org/2000/svg'><path d='M7 10l5 5 5-5z'/></svg>");
    background-repeat: no-repeat;
    background-position: right 10px center;
    background-size: 18px;
}

.booking-conditions {
    font-size: 0.85rem;
    margin: 15px 0;
    color: #555;
}

.checkbox-label {
    display: flex;
    gap: 8px;
    align-items: flex-start;
}

.booking-conditions a {
    color: #6b4c3b;
    text-decoration: underline;
}
/* ===========================
   ADMIN – CONTEXTE GLOBAL
=========================== */

.admin-wrapper {
    max-width: none;
    margin: 0;
    padding: 100px 120px;
    background: #f7f6f3;
    text-align: left;
}

/* ===========================
   LOGIN ADMIN
=========================== */

.admin-login {
    max-width: 420px;
    margin: 160px auto;
    padding: 48px;
    background: #ffffff;
    border-radius: 16px;
    box-shadow: 0 20px 40px rgba(0,0,0,0.08);
    text-align: center;
}

.admin-login h1 {
    margin-bottom: 32px;
    font-size: 1.6rem;
}

.admin-login input {
    width: 100%;
    padding: 14px 16px;
    margin-bottom: 20px;
    border-radius: 8px;
    border: 1px solid #ddd;
    font-size: 1rem;
}

.admin-login button {
    width: 100%;
    padding: 14px;
    background: #c89b6d;
    border: none;
    border-radius: 8px;
    color: white;
    font-size: 1rem;
    cursor: pointer;
}

.admin-login button:hover {
    opacity: 0.9;
}

.admin-login .error {
    color: #b00020;
    margin-bottom: 20px;
    font-size: 0.95rem;
}

/* ===============================
   ADMIN MASTER LAYOUT
=============================== */

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

body {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background: #f5f6f8;
  color: #1e1e1e;
}

.admin-layout {
  display: flex;
  height: 100vh;
}

/* ===============================
   SIDEBAR
=============================== */

.admin-sidebar {
  width: 260px;
  background: linear-gradient(180deg, #1f2a38, #19202b);
  color: #fff;
  display: flex;
  flex-direction: column;
  padding: 30px 20px;
}

.admin-logo {
  font-size: 1.2rem;
  font-weight: 700;
  margin-bottom: 40px;
  letter-spacing: 1px;
}

.admin-nav {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.admin-link {
  padding: 12px 14px;
  border-radius: 10px;
  text-decoration: none;
  color: #cfd6df;
  font-weight: 500;
  transition: 0.2s;
}

.admin-link:hover {
  background: rgba(255,255,255,0.06);
  color: #fff;
}

.admin-link.active {
  background: #2f6fed;
  color: #fff;
}

.admin-separator {
  margin: 30px 0;
  height: 1px;
  background: rgba(255,255,255,0.08);
}

.admin-sidebar-bottom {
  margin-top: auto;
}

.admin-logout {
  color: #cfd6df;
  text-decoration: none;
  font-size: 0.9rem;
}

.admin-logout:hover {
  color: #fff;
}

/* ===============================
   MAIN AREA
=============================== */

.admin-main {
  flex: 1;
  display: flex;
  flex-direction: column;
  background: #f5f6f8;
}

/* ===============================
   TOPBAR
=============================== */

.admin-topbar {
  height: 70px;
  background: #ffffff;
  border-bottom: 1px solid #e3e6ea;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 40px;
}

.topbar-back {
  font-size: 1.2rem;
  color: #555;
  cursor: pointer;
}

.topbar-right {
  display: flex;
  gap: 12px;
}

.btn-secondary {
  padding: 8px 14px;
  border-radius: 8px;
  border: 1px solid #d4d8de;
  background: #fff;
  cursor: pointer;
  font-weight: 500;
}

.btn-primary {
  padding: 8px 16px;
  border-radius: 8px;
  border: none;
  background: #2f6fed;
  color: #fff;
  cursor: pointer;
  font-weight: 600;
}

/* ===============================
   CONTENT
=============================== */

.admin-content {
  flex: 1;
  padding: 40px;
  overflow-y: auto;
}
/* ===============================
   TOPBAR REWORK
=============================== */

.admin-topbar {
  height: 70px;
  background: linear-gradient(90deg, #2d3b4d, #3a4656);
  border-bottom: 1px solid rgba(255,255,255,0.08);
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 40px;
  color: #fff;
}

.topbar-back {
  font-size: 1.2rem;
  cursor: pointer;
  opacity: 0.9;
}

.topbar-right {
  display: flex;
  align-items: center;
  gap: 20px;
}

.topbar-icon {
  font-size: 1.2rem;
  cursor: pointer;
  opacity: 0.9;
}

.topbar-avatar img {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  object-fit: cover;
}

.topbar-menu a {
  color: #fff;
  text-decoration: none;
  font-size: 0.9rem;
  opacity: 0.9;
}

.topbar-menu a:hover {
  opacity: 1;
}



/* ===========================
   FOOTER
=========================== */

.footer {
    text-align: center;
    padding: 30px;
    background: #e6d2b7;
    font-size: 0.9rem;
}

.footer-social{
    margin-top:15px;
    display:flex;
    justify-content:center;   /* 🔴 centre les icones */
    gap:16px;
}

.footer-social img{
    width:22px;
    height:22px;
    opacity:0.75;
    transition:all .2s ease;
}

.footer-social img:hover{
    opacity:1;
    transform:scale(1.15);
}

/* =========================
   BREADCRUMB
========================= */

.breadcrumb {
    max-width: 1100px;
    margin: 20px auto 10px auto;
    padding: 0 6%;
    font-size: 0.9rem;
    color: #6b6b6b;
}

.breadcrumb a {
    color: #8c6f5c;
    text-decoration: none;
    font-weight: 500;
}

.breadcrumb a:hover {
    text-decoration: underline;
}

.breadcrumb span {
    margin: 0 6px;
}

/* mobile */

@media (max-width: 768px) {
    .breadcrumb {
        font-size: 0.85rem;
        margin-top: 15px;
    }
}

/* =========================
   ARTICLES
   ========================= */

.articles-module {
    display: flex;
    height: 100%;
}

.articles-sidebar {
    width: 300px;
    border-right: 1px solid #eee;
    padding: 20px;
    overflow-y: auto;
    background: #fafafa;
}

.theme-title {
    font-weight: 600;
    margin-bottom: 8px;
    margin-top: 20px;
}

.theme-articles {
    list-style: none;
    padding-left: 10px;
}

.theme-articles li {
    margin-bottom: 6px;
}

.theme-articles a {
    text-decoration: none;
    color: #333;
}

.theme-articles a.active-article {
    font-weight: bold;
    color: #000;
}

.badge-draft {
    font-size: 11px;
    color: #fff;
    background: #999;
    padding: 2px 6px;
    border-radius: 4px;
    margin-left: 5px;
}

.articles-editor {
    flex: 1;
    padding: 40px;
}

.input-title {
    font-size: 22px;
    font-weight: bold;
}

.word-import-block {
    position: relative;
    z-index: 10;
    margin: 15px 0;
}

.word-import-block input {
    display: block;
    margin-top: 5px;
}

/* =========================
   CONTENU ARTICLE
========================= */

.article-content{
    white-space: normal;
    line-height: 1.7;
    font-size: 18px;
}

.article-content p{
    margin-bottom:16px;
}

.article-content ul {
    margin: 1em 0 1em 20px;
}

.article-content li {
    margin-bottom: 6px;
}

/* =========================
   FAQ SECTION
========================= */

.faq-section {
    padding: 120px 10%;
    background: #f7f6f3;
}

.faq-inner {
    max-width: 900px;
    margin: auto;
}

.faq-inner h2 {
    font-size: 2.2rem;
    margin-bottom: 60px;
    text-align: center;
}

.faq-item {
    margin-bottom: 40px;
}

.faq-item h3 {
    font-size: 1.2rem;
    margin-bottom: 12px;
    color: #2b2b2b;
}

.faq-item p {
    font-size: 1.05rem;
    line-height: 1.8;
    color: #444;
}

.faq-cta {
    margin-top: 60px;
    text-align: center;
}


@media (max-width: 768px) {

    .hero-inner {
        grid-template-columns: 1fr;
        padding: 0 24px;
        gap: 40px;
    }

    .hero-text h1 {
        font-size: 2.2rem;
        line-height: 1.25;
        word-break: normal;
    }

    .hero-text p {
        font-size: 1.05rem;
    }

}

/* ===========================
   TEST RELATIONNEL – VERSION PREMIUM
=========================== */

.test-section {
    padding: 100px 20px;
    background: linear-gradient(180deg, #f8f6f2 0%, #ffffff 100%);
}

.test-section h1 {
    font-family: 'Playfair Display', serif;
    font-size: 46px;
    font-weight: 400;
    text-align: center;
    margin-bottom: 25px;
    color: #2f2f2f;
}

.test-intro {
    text-align: center;
    max-width: 760px;
    margin: 0 auto 80px;
    color: #6a6a6a;
    line-height: 1.8;
    font-size: 17px;
}

/* TITRES DE SECTIONS (Communication, etc.) */

#questions h3 {
    font-family: 'Playfair Display', serif;
    font-size: 24px;
    font-weight: 400;
    margin-top: 70px;
    margin-bottom: 25px;
    color: #2f2f2f;
    border-left: 3px solid #c89b6d;
    padding-left: 15px;
}

/* BLOC QUESTION */

.question {
    background: white;
    padding: 30px;
    border-radius: 18px;
    margin-bottom: 30px;
    box-shadow: 0 15px 35px rgba(0,0,0,0.04);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.question:hover {
    transform: translateY(-3px);
    box-shadow: 0 20px 45px rgba(0,0,0,0.06);
}

.question p {
    font-weight: 500;
    margin-bottom: 18px;
    line-height: 1.6;
    color: #2f2f2f;
}

/* OPTIONS */

.options {
    display: flex;
    gap: 25px;
    flex-wrap: wrap;
}

.options label {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    cursor: pointer;
    color: #5e5e5e;
    padding: 6px 10px;
    border-radius: 8px;
    transition: background 0.2s ease;
}

.options label:hover {
    background: #f2ede7;
}

/* RESULTAT */

.test-result {
    display: none;
    margin-top: 80px;
    padding: 50px;
    background: white;
    border-radius: 20px;
    box-shadow: 0 25px 60px rgba(0,0,0,0.06);
    text-align: center;
}

.test-result h2 {
    font-family: 'Playfair Display', serif;
    font-size: 30px;
    font-weight: 400;
    margin-bottom: 20px;
    color: #2f2f2f;
}

.test-result p {
    color: #6a6a6a;
    line-height: 1.7;
    max-width: 680px;
    margin: 0 auto 15px;
}

.legal-page {
    padding: 80px 20px;
    background: #fafafa;
}

.legal-page .container {
    max-width: 900px;
    margin: auto;
}

.legal-page h1 {
    font-size: 36px;
    margin-bottom: 30px;
}

.legal-page h2 {
    margin-top: 40px;
    font-size: 22px;
}

.legal-page p {
    line-height: 1.7;
    margin: 15px 0;
}

.legal-page ul {
    margin: 15px 0 15px 20px;
}


/* =========================
   TEMOIGNAGES
========================= */

.testimonials {
    padding: 80px 6%;
    background: #f7f6f3;
    text-align: center;
}

.testimonials h2 {
    font-size: 32px;
    margin-bottom: 50px;
}

.testimonials-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 30px;
}

.testimonial-card {
    background: white;
    padding: 30px;
    border-radius: 10px;
    box-shadow: 0 10px 25px rgba(0,0,0,0.05);
    text-align: left;
}

.testimonial-card p {
    font-style: italic;
    line-height: 1.7;
    margin-bottom: 20px;
}

.testimonial-author {
    font-weight: 600;
    color: #444;
}


/* =========================
   SIGNATURE ARTICLE
========================= */

.article-signature{
margin-top:40px;
padding-top:20px;
border-top:1px solid #eee;
font-style:italic;
color:#444;
}

/* =========================
   COPYRIGHT
========================= */

.article-copyright{
margin-top:15px;
font-size:13px;
color:#777;
}

/* =========================
   LIEN TEST
========================= */

.hero-link{

display:inline-flex;
align-items:center;

font-size:18px;
font-weight:600;

color:#1c2e3a;

text-decoration:none;

padding:10px 14px;

border-radius:8px;

transition:all .25s ease;

}

.hero-link:hover{

background:rgba(255,255,255,0.35);

transform:translateX(4px);

}

.hero-link::after{

content:"→";

margin-left:6px;

transition:transform .2s;

}

.hero-link:hover::after{

transform:translateX(4px);

}

/* =========================
   RESPONSIVE
========================= */



/* =========================
   AGENDA MOBILE FIX
========================= */

.agenda-more{
display:none;
}

@media (max-width:768px){

/* chaque ligne jour */

.agenda-row{
flex-direction:column;
align-items:flex-start;
padding:20px 0;
}


/* date */

.agenda-date{
width:100%;
margin-bottom:12px;
}


/* grille des horaires */

.agenda-times{

display:grid;

grid-template-columns:repeat(3,1fr);

gap:10px;

width:100%;

}


/* boutons horaires */

.time{

min-width:auto;

padding:12px 0;

font-size:14px;

}

/* =========================
   BOUTON AUTRES DATES
========================= */

.agenda-more{

display:block;

text-align:center;

margin-top:30px;

}

#showMoreDates{

background:#7aa8a2;
color:white;

border:none;

padding:14px 28px;

border-radius:8px;

font-size:14px;

cursor:pointer;

}

#showMoreDates:hover{

background:#5f8f88;

}

}

/* =========================
   A PROPOS – MOBILE FIX
========================= */

@media (max-width:768px){

/* section globale */

.accompagnement-block{
padding:40px 16px;
}


/* container */

.accompagnement-inner{

width:100%;
max-width:100%;

padding:30px 22px;

border-radius:20px;

}


/* titres */

.accompagnement-inner h2{

font-size:1.6rem;

line-height:1.3;

margin-bottom:16px;

}


/* texte */

.accompagnement-inner p{

font-size:1rem;

line-height:1.7;

}


/* supprime l'effet colonne étroite */

.accompagnement-inner{
word-break:normal;
overflow-wrap:normal;
}


/* CTA */

 .accompagnements-cta{
    padding-left:20px;
    padding-right:20px;
  }

  .accompagnements-cta .btn-primary{
    display:block;
    width:100%;
    max-width:320px;
    margin:20px auto 0;
    text-align:center;
    white-space:normal;
  }

}

/* =========================
   ARBRE MOBILE FIX
========================= */

/* =========================
   ARBRE MOBILE MAJESTUEUX
========================= */

@media (max-width:768px){

.tree-wrapper{

width:100%;

margin:50px auto 20px;

display:flex;

justify-content:center;

}

/* image arbre */

.tree-immersive-image{

width:120%;

max-width:none;

margin-left:-10%;

filter:drop-shadow(0 30px 60px rgba(0,0,0,0.25));

}




/* bulles */

.tree-bubble{
display:none;
}

}

/* =========================
   RESSOURCES MOBILE NAV
========================= */

.resources-mobile-nav{
display:none;
}

@media (max-width:768px){



/* menu mobile */

.resources-mobile-nav{

display:flex;
flex-direction:column;

gap:12px;

padding:30px 20px;

max-width:420px;

margin:0 auto;

}

/* boutons */

.resources-mobile-nav a{

background:white;

padding:16px 18px;

border-radius:14px;

text-decoration:none;

font-weight:500;

color:#2f2f2f;

box-shadow:0 10px 30px rgba(0,0,0,0.05);

transition:all .25s ease;

}

.resources-mobile-nav a:hover{

transform:translateY(-2px);

box-shadow:0 15px 35px rgba(0,0,0,0.08);

}

}


/* =========================
   ACCUEIL MOBILE OPTIMISÉ
========================= */

@media (max-width:768px){

/* HERO */

.hero-brightside{

padding:70px 22px 40px;

}

.hero-inner{

grid-template-columns:1fr;

padding:0;

gap:28px;

}

.hero-text h1{

font-size:1.9rem;

line-height:1.3;

margin-bottom:18px;

}

.hero-text p{

font-size:1rem;

line-height:1.65;

max-width:520px;

margin:auto;

}

.hero-actions{

flex-direction:column;

align-items:flex-start;

gap:14px;

}


/* IMAGE HERO */

.hero-visual img{

width:100%;

max-height:340px;

object-fit:cover;

border-radius:18px;

}


/* SECTION SITUATIONS */

.situations-visual{

padding:70px 22px;

}

.situations-visual h2{

font-size:1.8rem;

margin-bottom:40px;

}

.situations-grid{

grid-template-columns:1fr;

gap:26px;

}

.situations-grid p{

font-size:1rem;

line-height:1.6;

}


/* BLOCS PREMIUM */

.premium-blocks{

padding:60px 22px;

}

.premium-grid{

grid-template-columns:1fr;

gap:28px;

}

.premium-card{

padding:35px 26px;

border-radius:22px;

}

.premium-card h2{

font-size:1.5rem;

margin-bottom:16px;

}

.premium-card p{

font-size:0.95rem;

line-height:1.65;

}


/* CTA FINAL */

.section-cta{

padding:70px 22px;

}

.section-cta h2{

font-size:1.8rem;

line-height:1.3;

margin-bottom:18px;

}

.section-cta p{

font-size:1rem;

margin-bottom:30px;

}
/* bouton */

.section-cta .btn-primary{

display:block;

width:100%;

max-width:320px;

margin:0 auto;

padding:16px 20px;

font-size:1rem;

box-shadow:0 12px 30px rgba(0,0,0,0.25);

}

}

.hero-question{
    line-height:1.25;
}

/* mobile */

@media (max-width:768px){

.hero-question{
    font-size:28px;
    text-wrap:balance;
}

.resources-hero-inner{
        padding-left:20px;
        padding-right:20px;
        box-sizing:border-box;
        max-width:100%;
    }

    .hero-subtitle,
    .hero-description{
        word-break:break-word;
        overflow-wrap:break-word;
    }
}