/* ============ RESET & BASE ============ */
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0}
img,svg,video,canvas,iframe{display:block;max-width:100%;height:auto}
button,input,select,textarea{font:inherit;color:inherit}
a{color:inherit;text-decoration:none}
:root{
  --violet:#6C5CE7; --violet-500:#a05de0; --violet-300:#c47cff;
  --orange:#FF7A00; --text:#222; --muted:#F5F5F7; --bg:#fff;
  --shadow-sm:0 4px 12px rgba(0,0,0,.08);
  --shadow-md:0 10px 25px rgba(0,0,0,.10);
  --shadow-lg:0 16px 40px rgba(0,0,0,.12);
  --r:16px; --s1:8px; --s2:16px; --s3:24px; --s4:40px; --s5:64px;
  --ease:cubic-bezier(.22,.61,.36,1); --dur:.7s;
}
body{font-family:"Poppins",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:var(--text);background:#fff;line-height:1.6}
.container{max-width:1120px;margin:0 auto;padding:0 var(--s3)}
.section{padding:var(--s5) 0}
h1{font-size:clamp(28px,6vw,48px);line-height:1.2;margin:0 0 var(--s3)}
h2{font-size:clamp(22px,4.5vw,32px);margin:0 0 var(--s3)}
h3{font-size:clamp(18px,3.6vw,22px);margin:0 0 var(--s2)}
p{margin:0 0 var(--s2)}

/* ============ HEADER / NAV ============ */
.site-header{position:sticky;top:0;z-index:50;background:#fff;box-shadow:var(--shadow-sm)}
.nav{display:flex;align-items:center;gap:var(--s3);height:88px}
.brand{font-weight:700;font-size:20px}
.brand span{color:var(--violet)}
.nav-links{display:flex;align-items:center}
.nav-links>*+*{margin-left:var(--s3)}
.nav-links a{font-weight:500;position:relative;transition:color .25s}
.nav-links a::after{content:"";position:absolute;left:0;bottom:-6px;height:2px;width:0;background:var(--violet-300);transition:width .25s}
.nav-links a:hover{color:var(--violet)}
.nav-links a:hover::after{width:100%}
.nav-toggle{display:none;background:0 0;border:0;font-size:28px}
@media(max-width:720px){
  .nav-toggle{display:inline-block;margin-left:auto}
  .nav-links{display:none;flex-direction:column;position:absolute;right:24px;top:88px;background:#fff;padding:var(--s3);border-radius:var(--r);box-shadow:var(--shadow-md)}
  .nav-links.open{display:flex}
}

/* ============ BOUTONS ============ */
.btn{padding:12px 18px;border-radius:999px;display:inline-block;font-weight:600;transition:transform .15s, box-shadow .15s}
.btn:active{transform:translateY(1px)}
.btn-primary{background:var(--orange);color:#fff;border:2px solid var(--orange);box-shadow:var(--shadow-sm)}
.btn-primary:hover{background:#e66d00}
.btn-outline{border:2px solid var(--violet);color:var(--violet);background:transparent}
.btn-outline:hover{background:var(--violet);color:#fff}

/* ============ REVEAL (scroll) ============ */
[data-reveal]{opacity:0;transform:translate3d(0,14px,0) scale(.98);filter:blur(2px);
  transition:opacity var(--dur) var(--ease),transform var(--dur) var(--ease),filter var(--dur) var(--ease)}
[data-reveal].is-visible{opacity:1;transform:none;filter:none}
[data-reveal="left"]{transform:translateX(24px)}
[data-reveal="right"]{transform:translateX(-24px)}
@media(prefers-reduced-motion:reduce){[data-reveal]{opacity:1!important;transform:none!important;filter:none!important}}

/* ============ HERO Accueil ============ */
.home-hero{position:relative;padding:5.5rem 0 2rem;background:linear-gradient(180deg,#faf9ff 0%,#ffffff 80%)}
.home-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:var(--s4);align-items:center;margin-bottom:0}
.home-text p{color:#444;margin-bottom:var(--s3)}
.home-text .actions{display:flex;gap:12px;flex-wrap:wrap}
.home-photo{position:relative;display:flex;justify-content:center}
.portrait{width:340px;height:340px;border-radius:28px;overflow:hidden;box-shadow:var(--shadow-md);border:6px solid #fff;position:relative;z-index:2}
.portrait img{width:100%;height:100%;object-fit:cover}
.home-photo .blob{position:absolute;inset:auto -40px -40px -40px;background:radial-gradient(80% 80% at 70% 30%, rgba(196,127,255,.35) 0%, rgba(255,212,173,.25) 45%, rgba(255,255,255,0) 70%);filter:blur(40px);z-index:1;border-radius:40px}
@media(max-width:980px){.home-grid{grid-template-columns:1fr;text-align:center}.home-text .actions{justify-content:center}.portrait{width:300px;height:300px;margin:0 auto}}
@media(max-width:520px){.home-hero{padding:5rem 0 1.5rem}.portrait{width:260px;height:260px}}

/* ============ CARTES Accueil ============ */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--s3)}
.card{background:#fff;border-radius:20px;box-shadow:var(--shadow-md);padding:var(--s3);text-align:center;transition:transform .25s, box-shadow .25s}
.card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg)}
.icon{width:140px;height:140px;object-fit:cover;border-radius:20px;margin:0 auto 16px;box-shadow:var(--shadow-sm);background:#fff}

/* ============ SECTION CABINET (Accueil) ============ */
.section-cabinet{background:linear-gradient(to bottom,#fdfcfb,#f8f5ff);border-radius:24px;padding:var(--s5) 0;margin-top:var(--s5)}
.cabinet-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:var(--s4);align-items:center}
.cabinet-text h2{color:#2a2a2a}
.cabinet-text p{font-size:1.05rem;color:#444}
.cabinet-image img{width:100%;border-radius:20px;box-shadow:var(--shadow-md);object-fit:cover;transition:transform .45s, box-shadow .45s}
.cabinet-image img:hover{transform:scale(1.03);box-shadow:var(--shadow-lg)}
/* lien adresse animé, sans double soulignement */
.cabinet-link,.cabinet-link:link,.cabinet-link:visited,.cabinet-link:hover,.cabinet-link:focus{ text-decoration:none !important;background-image:none;border-bottom:0}
.cabinet-link{position:relative;color:var(--violet-500);font-weight:500;transition:color .3s}
.cabinet-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--violet-500);transition:width .3s}
.cabinet-link:hover{color:#7a46cc}.cabinet-link:hover::after{width:100%}
@media(max-width:900px){.cabinet-grid{grid-template-columns:1fr;text-align:center}.cabinet-image img{max-width:90%;margin:0 auto}}

/* ============ PAGE À PROPOS ============ */
.about-hero{padding:7rem 2rem 4rem;background:linear-gradient(180deg,#faf9ff 0%,#ffffff 80%)}
.about-wrap{max-width:1000px;margin:0 auto;text-align:center}
.about-photo{width:180px;height:180px;margin:0 auto var(--s3);border-radius:50%;overflow:hidden;box-shadow:var(--shadow-md);border:6px solid #fff}
.about-photo img{width:100%;height:100%;object-fit:cover}
.badges{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:var(--s2)}
.badge{background:#f4edff;color:#5b46c9;border:1px solid #e8ddff;padding:6px 12px;border-radius:999px;font-size:.9rem;font-weight:600}
.about-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:var(--s4);align-items:start}
.about-card{background:#fff;border-radius:18px;box-shadow:var(--shadow-md);padding:var(--s3)}
.timeline{list-style:none;margin:0;padding:0}
.timeline li{position:relative;padding-left:22px;margin-bottom:10px}
.timeline li::before{content:"";position:absolute;left:2px;top:.6em;width:8px;height:8px;border-radius:50%;background:var(--violet-300)}
.timeline li::after{content:"";position:absolute;left:5.5px;top:1.1em;bottom:-8px;width:1px;background:#e7defa}
.timeline li:last-child::after{display:none}
@media(max-width:960px){.about-grid{grid-template-columns:1fr;gap:var(--s3)}}

/* ============ PAGE MA PRATIQUE ============ */
.hero{position:relative;overflow:hidden;text-align:center;padding:10rem 2rem 6rem;background:linear-gradient(to bottom,#f9f9f9,#fcfcfc)}
.hero .container{max-width:1000px;margin:0 auto;position:relative;z-index:2}
.hero-bg{position:absolute;top:50%;left:50%;width:80%;max-width:900px;height:400px;transform:translate(-50%,-50%);background:radial-gradient(circle at 50% 50%, rgba(204,173,255,.25), rgba(255,212,173,.18));border-radius:50%/40%;filter:blur(60px);z-index:1}
.typing-text{font-size:clamp(1.05rem,3vw,1.3rem);color:#444;border-right:2px solid var(--violet-300);white-space:nowrap;overflow:hidden;margin:0 auto;width:0;animation:typing 5s steps(60,end) forwards, blink .7s infinite}
@keyframes typing{from{width:0}to{width:100%}}
@keyframes blink{0%,100%{border-color:transparent}50%{border-color:var(--violet-300)}}
.practice-block{display:flex;align-items:center;justify-content:space-between;gap:64px;padding:64px;max-width:1200px;margin:80px auto;border-radius:24px;background:#fdfcfb;box-shadow:var(--shadow-md);transition:transform .35s, box-shadow .35s}
.practice-block.alt{background:#f8f5ff}
.practice-block.reverse{flex-direction:row-reverse}
.practice-block:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg)}
.practice-text{flex:1;min-width:300px}
.practice-text p{line-height:1.7;color:#444}
.practice-image{flex:1;display:flex;justify-content:center}
.practice-image img{width:100%;max-width:520px;border-radius:20px;box-shadow:var(--shadow-md);object-fit:cover;transition:transform .5s, box-shadow .5s}
.practice-image img:hover{transform:scale(1.03);box-shadow:var(--shadow-lg)}
@media(max-width:900px){.practice-block,.practice-block.reverse{flex-direction:column;text-align:center;gap:32px;padding:48px 24px;margin:48px auto}.practice-image img{max-width:90%}}

/* ============ PAGE CONTACT ============ */
.contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:var(--s3);align-items:stretch}
.contact-card{background:#fff;border-radius:20px;padding:var(--s3);box-shadow:var(--shadow-md)}
.contact-card .buttons{display:flex;gap:12px;flex-wrap:wrap}
.map iframe{width:100%;height:100%;min-height:340px;border:0;border-radius:20px;box-shadow:var(--shadow-md)}

/* ============ FOOTER ============ */
.site-footer{background:var(--violet);color:#fff;padding:var(--s3) 0;margin-top:var(--s5);text-align:center}
.site-footer a{position:relative;color:#efe8f5;transition:color .25s}
.site-footer a::after{content:"";position:absolute;left:0;bottom:-3px;height:2px;width:0;background:#c89af2;transition:width .25s}
.site-footer a:hover{color:#d8c2ff}
.site-footer a:hover::after{width:100%}
.site-footer .siret{font-size:.9rem;color:#eee;margin-top:.3rem}

/* ============ MOBILE tweaks ============ */
@media(max-width:480px){.container{padding:0 var(--s2)}.btn{width:100%;text-align:center}.card{padding:18px}.icon{width:110px;height:110px;border-radius:18px}}
/* ====================== */
/*  PAGE CODE DEONTO      */
/* ====================== */
.code-hero{
  position:relative; overflow:hidden; padding:6.5rem 0 3.5rem;
  background:linear-gradient(180deg,#f7f4ff 0%, #ffffff 70%);
}
.code-hero .container{position:relative; z-index:2; text-align:center; max-width:960px}
.code-eyebrow{letter-spacing:.08em; text-transform:uppercase; font-weight:700; color:#7b68ee; margin:0 0 .25rem}
.code-sub{color:#444; max-width:760px; margin:.5rem auto 1.2rem}
.code-hero-actions{display:flex; gap:12px; justify-content:center; flex-wrap:wrap}
.code-updated{opacity:.7; margin-top:.6rem}
.code-hero-bg{
  position:absolute; inset:auto -120px -120px -120px;
  background:radial-gradient(70% 50% at 60% 40%, rgba(164,129,255,.25), rgba(255,199,147,.2), transparent 70%);
  filter:blur(50px); z-index:1; border-radius:40px
}

.code-intro{padding-top:2rem}
.code-layout{display:grid; grid-template-columns:1fr 300px; gap:32px; align-items:start}
.code-lead p{margin:0}
.code-note{background:#fff; border:1px solid #eee; border-left:6px solid var(--violet); padding:18px 18px 18px 16px; border-radius:14px; box-shadow:var(--shadow-sm)}
.code-note strong{display:block; margin-bottom:6px}

.code-toc .toc-card{
  position:sticky; top:96px; background:#fff; border-radius:16px;
  border:1px solid #eee; box-shadow:var(--shadow-sm); padding:16px 16px 8px
}
.code-toc h3{margin:0 0 8px}
.code-toc ol{margin:0; padding-left:18px}
.code-toc a{color:var(--violet); text-decoration:none; position:relative}
.code-toc a::after{content:""; position:absolute; left:0; bottom:-3px; height:2px; width:0; background:var(--violet-300); transition:width .25s}
.code-toc a:hover::after{width:100%}

/* Articles */
.code-articles{display:grid; gap:18px; margin-top:8px}
.code-article{
  position:relative; background:#fff; border-radius:18px; padding:22px 22px 20px 22px;
  border:1px solid #eee; box-shadow:var(--shadow-md)
}
.code-article .num{
  position:absolute; left:-10px; top:-14px; width:42px; height:42px; border-radius:50%;
  background:linear-gradient(135deg, var(--violet), #9b6cf2); color:#fff; display:grid; place-items:center; font-weight:700; box-shadow:var(--shadow-sm)
}
.code-article h2{margin:6px 0 10px; scroll-margin-top:110px}
.code-article p{margin:0}

.code-cta{display:flex; gap:12px; justify-content:center; margin-top:26px}

/* Responsive */
@media (max-width:980px){
  .code-layout{grid-template-columns:1fr}
  .code-toc .toc-card{position:relative; top:auto}
}

/* ======= NAV FIX – anti-retour à la ligne & gaps réduits ======= */
.nav-links a,
.nav .btn.btn-primary{
  white-space: nowrap;           /* empêche "À propos" / "Ma pratique" de se casser */
}

.nav{
  flex-wrap: nowrap;             /* force une seule ligne tant qu'on n'est pas en mobile */
}

@media (max-width: 1200px){
  .nav{ gap: 16px; }
  .nav-links>*+*{ margin-left: 18px; }  /* réduit l’espacement entre liens */
  .nav .btn.btn-primary{
    padding: 10px 16px;
    font-size: .95rem;
  }
}

/* ======= BREAKPOINT MOBILE PLUS TÔT (980px) ======= */
@media (max-width: 980px){
  .nav-toggle{ display:inline-block; margin-left:auto; }
  .nav-links{
    display:none;
    flex-direction:column;
    position:absolute; right:24px; top:88px;
    background:#fff; padding:16px; border-radius:16px;
    box-shadow:0 10px 24px rgba(0,0,0,.12);
    gap:10px;
  }
  .nav-links.open{ display:flex; }
  .nav-links>*+*{ margin-left:0; }          /* plus de marge horizontale */
  .nav-links a{ padding:6px 2px; }
  .nav .btn.btn-primary{ width:100%; text-align:center; }  /* bouton plein sur mobile */
}



/* ===============================
   LOGO NAVIGATION
================================*/
.brand {
  display: flex;
  align-items: center;
}

.brand-link {
  display: flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
}

.brand-logo {
  height: 78px;
  width: auto;
  object-fit: contain;
  border-radius: 6px;
}

.brand-text {
  display: flex;
  flex-direction: column;
  line-height: 1;
}

.brand-text strong {
  font-size: 1.1rem;
  color: #222;
}

.brand-text span {
  color: var(--violet);
  font-weight: 600;
}

/* Mobile : réduire taille logo */
@media (max-width: 980px) {
  .brand-logo { height: 48px; }
}

/* ===============================
   SECTION TARIFS (Accueil)
================================*/
.section-tarifs {
  background: linear-gradient(180deg, #faf7ff 0%, #ffffff 70%);
  border-top: 1px solid #eee;
  border-bottom: 1px solid #eee;
}

.tarifs-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
  align-items: center;
}

.tarifs-image img {
  width: 100%;
  height: auto;
  border-radius: 18px;
  box-shadow: var(--shadow-md);
  object-fit: cover;
}

.tarifs-text h2 {
  margin-bottom: 8px;
}

.tarifs-intro {
  color: #444;
  margin-bottom: 18px;
}

.tarifs-list {
  list-style: none;
  padding: 0;
  margin: 0 0 14px;
  display: grid;
  gap: 10px;
}

.tarifs-list li {
  background: #fff;
  border: 1px solid #eee;
  padding: 12px 14px;
  border-radius: 12px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  box-shadow: var(--shadow-sm);
  font-size: 1rem;
}

.tarifs-list li strong {
  color: var(--violet);
  font-size: 1.05rem;
}

.tarifs-reduc {
  border-left: 4px solid var(--orange);
}

.tarifs-note {
  font-size: 0.95rem;
  opacity: 0.8;
  margin-bottom: 14px;
}

/* Responsive */
@media (max-width: 900px) {
  .tarifs-grid {
    grid-template-columns: 1fr;
  }
  .tarifs-image {
    order: 1;
  }
  .tarifs-text {
    order: 2;
  }
}

/* Texte mutuelle dans la section Tarifs */
.tarifs-mutuelle {
  font-size: 0.95rem;
  line-height: 1.5;
  color: #555;
  background: #fafafa;
  border-left: 4px solid var(--violet);
  padding: 12px 14px;
  border-radius: 10px;
  margin-bottom: 18px;
  box-shadow: var(--shadow-sm);
}

/* ===============================
   BLOC BIO / QUI JE SUIS
================================*/
.section-bio {
  padding-top: 0; /* pour coller visuellement au bloc du dessus, ajuste si besoin */
}

.bio-card {
  max-width: 900px;
  margin: 0 auto 3rem;
  background: #ffffff;
  border-radius: 22px;
  padding: 32px 40px;
  box-shadow: var(--shadow-lg, 0 18px 45px rgba(15, 23, 42, 0.08));
}

.bio-card h2 {
  margin-bottom: 16px;
}

.bio-card p + p {
  margin-top: 10px;
}