/*
Theme Name: Audrey Mon éduc'spé
Theme URI: https://audreymoneducspe.fr
Description: Thème enfant fidèle au design original du site d'Audrey Veyriras.
Author: Audrey Veyriras
Template: twentytwentyone
Version: 1.1.0
Text Domain: audrey-educ-spe
*/

/* ─── RESET DU THÈME PARENT ─────────────────────────── */
.wp-site-blocks,
body > .wp-block-template-part,
.wp-block-template-part { all: unset; display: block; }

/* ─── BASE ───────────────────────────────────────────── */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}

:root{
  --teal:#338c90;
  --teal-dark:#267073;
  --teal-darker:#1a5456;
  --teal-light:#4aa3a7;
  --teal-pale:#e8f4f4;
  --teal-ghost:#f2f9f9;
  --beige:#e3e0cd;
  --beige-light:#eceadc;
  --beige-lighter:#f5f4ec;
  --beige-dark:#c9c6b2;
  --cream:#faf9f5;
  --white:#ffffff;
  --text-main:#2c2f2f;
  --text-body:#4a4e4e;
  --text-muted:#6e7272;
  --text-light:#8a8e8e;
  --border:#d9d6c6;
  --border-light:#e8e6d8;
  --ff-body:'Atkinson Hyperlegible Next','Verdana',sans-serif;
  --ff-display:'Gagalin','Atkinson Hyperlegible Next','Verdana',sans-serif;
  --spacing-xs:0.5rem;
  --spacing-sm:1rem;
  --spacing-md:1.5rem;
  --spacing-lg:2.5rem;
  --spacing-xl:4rem;
  --spacing-2xl:6rem;
  --radius:0.75rem;
  --radius-lg:1.25rem;
  --max-w:1080px;
  --line-height:1.85;
  --letter-spacing:0.015em;
}

html{scroll-behavior:smooth;font-size:17px}
body{
  font-family:var(--ff-body) !important;
  color:var(--text-body) !important;
  background:var(--cream) !important;
  line-height:var(--line-height) !important;
  letter-spacing:var(--letter-spacing);
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
strong{font-weight:700;color:var(--text-main)}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:0.01ms!important;transition-duration:0.01ms!important}
}

.skip-link{position:absolute;top:-100%;left:1rem;background:var(--teal);color:#fff;padding:0.75rem 1.5rem;border-radius:0 0 var(--radius) var(--radius);font-weight:700;z-index:200;}
.skip-link:focus{top:0}

/* NAV */
.nav{position:fixed;top:0;left:0;right:0;z-index:100;padding:var(--spacing-sm) var(--spacing-lg);display:flex;align-items:center;justify-content:space-between;transition:background .4s,box-shadow .4s;}
.nav.scrolled{background:rgba(250,249,245,.95);backdrop-filter:blur(10px);box-shadow:0 1px 0 var(--border-light);}
.nav-logo{font-family:var(--ff-display);font-size:1.2rem;color:var(--teal);font-weight:400;letter-spacing:0.03em}
.nav-logo span{color:var(--teal-dark)}
.nav-links{display:flex;gap:var(--spacing-lg);align-items:center}
.nav-links a{font-size:0.88rem;font-weight:500;color:var(--text-muted);transition:color .3s;padding:0.25rem 0;border-bottom:2px solid transparent;}
.nav-links a:hover,.nav-links a:focus{color:var(--teal);border-bottom-color:var(--teal)}
.nav-cta{background:var(--teal)!important;color:var(--white)!important;padding:0.55rem 1.4rem!important;border-radius:2rem!important;border-bottom:none!important;transition:background .3s,transform .2s!important;}
.nav-cta:hover{background:var(--teal-dark)!important;transform:translateY(-1px)}
.hamburger{display:none;flex-direction:column;gap:6px;cursor:pointer;z-index:101;padding:0.5rem;background:none;border:none}
.hamburger span{width:24px;height:2px;background:var(--text-main);transition:all .3s;border-radius:1px;display:block}
.hamburger.open span:nth-child(1){transform:rotate(45deg) translate(5px,5px)}
.hamburger.open span:nth-child(2){opacity:0}
.hamburger.open span:nth-child(3){transform:rotate(-45deg) translate(6px,-6px)}

/* LAYOUT */
section{padding:var(--spacing-2xl) var(--spacing-lg)}
.container{max-width:var(--max-w);margin:0 auto}
.section-marker{display:inline-flex;align-items:center;gap:0.5rem;font-size:0.78rem;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:var(--teal);margin-bottom:var(--spacing-sm);}
.section-marker::before{content:'';width:24px;height:2px;background:var(--teal-light);border-radius:1px}
.section-title{font-family:var(--ff-display);font-size:clamp(1.7rem,3.5vw,2.3rem);color:var(--text-main);margin-bottom:var(--spacing-sm);line-height:1.25;font-weight:400;letter-spacing:0.01em;}
.section-intro{color:var(--text-muted);font-size:1rem;max-width:580px;margin-bottom:var(--spacing-xl)}

/* HERO */
.hero{min-height:100vh;display:flex;align-items:center;position:relative;overflow:hidden;padding:var(--spacing-2xl) var(--spacing-lg);background:var(--beige-lighter);}
.hero-bg{position:absolute;inset:0;overflow:hidden}
.hero-shape{position:absolute;border-radius:50%;opacity:0.08}
.hero-shape-1{width:500px;height:500px;background:var(--teal);top:-150px;right:-80px}
.hero-shape-2{width:350px;height:350px;background:var(--teal-light);bottom:-80px;left:-40px}
.hero-content{max-width:var(--max-w);margin:0 auto;position:relative;z-index:1;display:grid;grid-template-columns:1.1fr 0.9fr;gap:var(--spacing-xl);align-items:center;}
.hero-text{animation:fadeUp .7s ease-out}
.hero-badge{display:inline-flex;align-items:center;gap:0.5rem;background:var(--teal-pale);color:var(--teal-dark);padding:0.4rem 1rem;border-radius:2rem;font-size:0.78rem;font-weight:700;letter-spacing:0.04em;margin-bottom:var(--spacing-md);}
.hero-badge::before{content:'';width:8px;height:8px;background:var(--teal);border-radius:50%}
.hero h1{font-family:var(--ff-display);font-size:clamp(2.2rem,4.5vw,3.2rem);line-height:1.2;color:var(--text-main);margin-bottom:var(--spacing-md);font-weight:400;}
.hero h1 em{font-style:normal;color:var(--teal)}
.hero-sub{font-size:1.05rem;color:var(--text-muted);max-width:500px;margin-bottom:var(--spacing-lg)}
.hero-actions{display:flex;gap:var(--spacing-sm);flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;gap:0.5rem;padding:0.85rem 1.8rem;border-radius:2.5rem;font-family:var(--ff-body);font-size:0.92rem;font-weight:700;letter-spacing:0.02em;transition:all .3s;cursor:pointer;border:none;}
.btn:focus-visible{outline:3px solid var(--teal-light);outline-offset:3px}
.btn-primary{background:var(--teal);color:var(--white)}
.btn-primary:hover{background:var(--teal-dark);transform:translateY(-2px);box-shadow:0 6px 20px rgba(51,140,144,0.3)}
.btn-outline{background:transparent;color:var(--text-main);border:2px solid var(--beige-dark)}
.btn-outline:hover{border-color:var(--teal);color:var(--teal);transform:translateY(-2px)}
.hero-visual{animation:fadeUp .7s ease-out .15s both}
.hero-card{background:var(--white);border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:0 12px 40px rgba(0,0,0,0.04);border:1px solid var(--border-light);position:relative;}
.hero-card-icon{width:56px;height:56px;background:var(--teal-pale);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;margin-bottom:var(--spacing-sm);font-size:1.6rem;}
.hero-card h3{font-family:var(--ff-display);font-size:1.3rem;margin-bottom:0.6rem;color:var(--text-main);font-weight:400}
.hero-card p{color:var(--text-muted);font-size:0.92rem}
.hero-float{position:absolute;background:var(--white);border-radius:var(--radius);padding:0.85rem 1.1rem;box-shadow:0 8px 28px rgba(0,0,0,0.06);border:1px solid var(--border-light);animation:float 7s ease-in-out infinite;}
.hero-float-1{top:-10px;right:-20px;animation-delay:-2s}
.hero-float strong{font-size:0.85rem;color:var(--text-main);display:block}
.hero-float small{font-size:0.75rem;color:var(--text-light);margin-top:2px;display:block}

/* ABOUT */
.about{background:var(--cream)}
.about-grid{display:grid;grid-template-columns:0.85fr 1.15fr;gap:var(--spacing-xl);align-items:center}
.about-img-box{background:linear-gradient(145deg,var(--teal-pale),var(--beige-light));border-radius:var(--radius-lg);overflow:hidden;position:relative;border:1px solid var(--border-light);}
.about-photo{width:100%;height:auto;display:block;object-fit:cover;aspect-ratio:3/4;}
.about-exp{position:absolute;bottom:-16px;right:-16px;background:var(--white);border-radius:var(--radius);padding:1rem 1.5rem;box-shadow:0 8px 28px rgba(0,0,0,0.06);border:1px solid var(--border-light);text-align:center;}
.about-exp strong{display:block;font-size:1.8rem;color:var(--teal);font-weight:700}
.about-exp span{font-size:0.78rem;color:var(--text-light)}
.about-text h3{font-family:var(--ff-display);font-size:1.5rem;margin-bottom:var(--spacing-sm);color:var(--text-main);font-weight:400}
.about-text p{color:var(--text-body);margin-bottom:var(--spacing-sm)}
.about-tags{display:flex;flex-wrap:wrap;gap:0.5rem;margin-top:var(--spacing-md)}
.about-tag{padding:0.4rem 1rem;border-radius:2rem;font-size:0.8rem;font-weight:700;background:var(--teal-pale);color:var(--teal-dark);letter-spacing:0.02em;}

/* FORMATIONS */
.formations{background:var(--beige-lighter)}
.formations-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-xl)}
.formations-col h3{font-family:var(--ff-display);font-size:1.2rem;color:var(--text-main);font-weight:400;margin-bottom:var(--spacing-md);padding-bottom:0.6rem;border-bottom:2px solid var(--teal-pale);display:flex;align-items:center;gap:0.6rem;}
.formations-col h3 span{font-size:1.2rem}
.timeline{position:relative;padding-left:1.5rem}
.timeline::before{content:'';position:absolute;left:0;top:0.4rem;bottom:0.4rem;width:2px;background:var(--teal-pale);border-radius:1px;}
.timeline-item{position:relative;margin-bottom:var(--spacing-md)}
.timeline-item::before{content:'';position:absolute;left:-1.5rem;top:0.55rem;width:10px;height:10px;border-radius:50%;background:var(--teal);border:2px solid var(--teal-pale);transform:translateX(-4px);}
.timeline-item.major::before{width:14px;height:14px;background:var(--teal);border:3px solid var(--teal-light);transform:translateX(-6px);}
.timeline-year{font-size:0.78rem;font-weight:700;color:var(--teal);letter-spacing:0.04em;margin-bottom:0.15rem;}
.timeline-title{font-size:0.92rem;color:var(--text-main);font-weight:500;line-height:1.5}
.timeline-org{font-size:0.8rem;color:var(--text-light);font-style:italic;margin-top:0.1rem}
.timeline-badge{display:inline-flex;align-items:center;gap:0.35rem;background:var(--teal-pale);color:var(--teal-dark);padding:0.2rem 0.7rem;border-radius:2rem;font-size:0.72rem;font-weight:700;letter-spacing:0.03em;margin-top:0.3rem;}

/* SERVICES */
.services{background:var(--cream)}
.services-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--spacing-md)}
.service-card{background:var(--white);border-radius:var(--radius-lg);padding:var(--spacing-lg);border:1px solid var(--border-light);transition:transform .3s,box-shadow .3s,border-color .3s;}
.service-card:hover{transform:translateY(-3px);box-shadow:0 12px 36px rgba(0,0,0,0.05);border-color:var(--teal-light)}
.service-icon{width:48px;height:48px;border-radius:var(--radius);display:flex;align-items:center;justify-content:center;font-size:1.3rem;margin-bottom:var(--spacing-sm);}
.si-teal{background:var(--teal-pale)}.si-beige{background:var(--beige-light)}
.service-card h3{font-family:var(--ff-display);font-size:1.1rem;margin-bottom:0.4rem;color:var(--text-main);font-weight:400}
.service-card>p{color:var(--text-muted);font-size:0.88rem;margin-bottom:var(--spacing-sm)}
.service-list{list-style:none}
.service-list li{padding:0.35rem 0;font-size:0.88rem;color:var(--text-body);display:flex;align-items:flex-start;gap:0.6rem;line-height:1.6;}
.service-list li::before{content:'';width:6px;height:6px;background:var(--teal);border-radius:50%;flex-shrink:0;margin-top:0.55rem}

/* APPROACH */
.approach{background:var(--cream)}
.approach-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-md)}
.approach-card{background:var(--white);border-radius:var(--radius-lg);padding:var(--spacing-lg);border:1px solid var(--border-light);text-align:center;}
.approach-num{font-family:var(--ff-display);font-size:2.2rem;color:var(--beige-dark);margin-bottom:0.6rem;font-weight:400}
.approach-card h3{font-family:var(--ff-display);font-size:1.1rem;margin-bottom:0.6rem;color:var(--text-main);font-weight:400}
.approach-card p{color:var(--text-muted);font-size:0.9rem;line-height:1.75}

/* ZONE */
.zone{background:var(--beige-lighter)}
.zone-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-xl);align-items:center}
.zone-map{background:var(--teal-ghost);border-radius:var(--radius-lg);padding:var(--spacing-xl) var(--spacing-lg);text-align:center;border:1px solid var(--teal-pale);}
.zone-pin{font-size:2.2rem;margin-bottom:var(--spacing-sm)}
.zone-radius{font-family:var(--ff-display);font-size:1.15rem;color:var(--teal-dark);margin-bottom:var(--spacing-md);font-weight:400}
.zone-cities{display:flex;flex-wrap:wrap;gap:0.6rem;justify-content:center}
.zone-city{background:var(--white);padding:0.5rem 1.2rem;border-radius:2rem;font-size:0.88rem;font-weight:700;color:var(--teal-dark);box-shadow:0 2px 8px rgba(0,0,0,0.04);border:1px solid var(--teal-pale);}
.zone-info h3{font-family:var(--ff-display);font-size:1.3rem;margin-bottom:var(--spacing-sm);color:var(--text-main);font-weight:400}
.zone-info>p{color:var(--text-body);margin-bottom:var(--spacing-md)}
.zone-detail{display:flex;align-items:flex-start;gap:0.75rem;padding:var(--spacing-sm);background:var(--white);border-radius:var(--radius);margin-bottom:0.6rem;border:1px solid var(--border-light);}
.zone-detail-icon{font-size:1.15rem;flex-shrink:0;margin-top:2px}
.zone-detail p{font-size:0.9rem;color:var(--text-body);line-height:1.6}

/* TESTIMONIALS */
.testimonials{background:var(--cream)}
.testimonials-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-md)}
.testimonial-card{background:var(--white);border-radius:var(--radius-lg);padding:var(--spacing-lg);border:1px solid var(--border-light);position:relative;}
.testimonial-stars{color:var(--teal);font-size:0.9rem;letter-spacing:2px;margin-bottom:var(--spacing-sm)}
.testimonial-text{color:var(--text-body);font-size:0.92rem;line-height:1.8;margin-bottom:var(--spacing-md);font-style:italic;}
.testimonial-author{display:flex;align-items:center;gap:0.75rem}
.testimonial-avatar{width:40px;height:40px;border-radius:50%;background:var(--teal-pale);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:0.85rem;color:var(--teal-dark);flex-shrink:0;}
.testimonial-name{font-size:0.88rem;font-weight:700;color:var(--text-main)}
.testimonial-role{font-size:0.78rem;color:var(--text-light)}

/* FAQ */
.faq{background:var(--beige-lighter)}
.faq-list{max-width:740px}
.faq-item{background:var(--white);border-radius:var(--radius);margin-bottom:0.6rem;border:1px solid var(--border-light);overflow:hidden;transition:border-color .3s;}
.faq-item.open{border-color:var(--teal-light)}
.faq-q{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm);padding:1.1rem 1.25rem;cursor:pointer;font-size:0.95rem;font-weight:700;color:var(--text-main);background:none;border:none;width:100%;text-align:left;font-family:var(--ff-body);letter-spacing:var(--letter-spacing);line-height:1.5;}
.faq-q:hover{color:var(--teal)}
.faq-arrow{font-size:0.85rem;transition:transform .3s;flex-shrink:0;color:var(--teal);font-weight:400;}
.faq-item.open .faq-arrow{transform:rotate(180deg)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .4s ease,padding .3s;padding:0 1.25rem;}
.faq-item.open .faq-a{max-height:400px;padding:0 1.25rem 1.25rem}
.faq-a p{color:var(--text-body);font-size:0.9rem;line-height:1.8}

/* TARIFS */
.tarifs{background:var(--cream)}
.tarifs-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-md)}
.tarif-card{background:var(--white);border-radius:var(--radius-lg);padding:var(--spacing-lg);border:1px solid var(--border-light);text-align:center;transition:transform .3s,box-shadow .3s;}
.tarif-card:hover{transform:translateY(-3px);box-shadow:0 12px 36px rgba(0,0,0,0.05)}
.tarif-card.featured{border:2px solid var(--teal);position:relative}
.tarif-badge{display:inline-block;background:var(--teal-pale);color:var(--teal-dark);padding:0.25rem 0.85rem;border-radius:2rem;font-size:0.72rem;font-weight:700;letter-spacing:0.04em;margin-bottom:var(--spacing-sm);}
.tarif-card h3{font-family:var(--ff-display);font-size:1.15rem;color:var(--text-main);margin-bottom:0.4rem;font-weight:400}
.tarif-price{font-size:2rem;font-weight:700;color:var(--teal);margin:var(--spacing-sm) 0}
.tarif-price small{font-size:0.85rem;color:var(--text-muted);font-weight:400}
.tarif-duration{font-size:0.85rem;color:var(--text-muted);margin-bottom:var(--spacing-md)}
.tarif-features{list-style:none;text-align:left;margin-top:var(--spacing-sm)}
.tarif-features li{padding:0.35rem 0;font-size:0.85rem;color:var(--text-body);display:flex;align-items:flex-start;gap:0.5rem;line-height:1.6;}
.tarif-features li::before{content:'✓';color:var(--teal);font-weight:700;flex-shrink:0}
.tarif-note{font-size:0.85rem;color:var(--text-muted);margin-top:var(--spacing-lg);max-width:700px;line-height:1.7}

/* CONTACT */
.contact{background:var(--cream)}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-xl)}
.contact-steps{background:var(--teal);border-radius:var(--radius-lg);padding:var(--spacing-xl) var(--spacing-lg);color:var(--white);}
.contact-steps h3{font-family:var(--ff-display);font-size:1.35rem;margin-bottom:0.4rem;font-weight:400}
.contact-steps>p{opacity:0.8;font-size:0.9rem;margin-bottom:var(--spacing-lg)}
.step{display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-md);align-items:flex-start}
.step-num{width:32px;height:32px;border-radius:50%;background:rgba(255,255,255,0.15);display:flex;align-items:center;justify-content:center;font-size:0.85rem;font-weight:700;flex-shrink:0;}
.step-content h4{font-size:0.95rem;font-weight:700;margin-bottom:0.2rem}
.step-content p{font-size:0.85rem;opacity:0.8;line-height:1.65}
.contact-links{margin-top:var(--spacing-lg);padding-top:var(--spacing-md);border-top:1px solid rgba(255,255,255,0.2)}
.contact-link{display:flex;align-items:center;gap:0.75rem;margin-bottom:var(--spacing-sm)}
.contact-link-icon{width:40px;height:40px;border-radius:var(--radius);background:rgba(255,255,255,0.12);display:flex;align-items:center;justify-content:center;font-size:1.1rem;flex-shrink:0;}
.contact-link span{font-size:0.85rem;opacity:0.7}
.contact-link strong{display:block;font-size:0.95rem;font-weight:500}
.contact-link a{color:var(--white);text-decoration:underline;text-underline-offset:3px}

/* FORM */
.contact-form-wrap{background:var(--white);border-radius:var(--radius-lg);padding:var(--spacing-xl) var(--spacing-lg);border:1px solid var(--border-light);}
.contact-form-wrap h3{font-family:var(--ff-display);font-size:1.35rem;margin-bottom:0.4rem;color:var(--text-main);font-weight:400}
.contact-form-wrap>p{color:var(--text-muted);font-size:0.9rem;margin-bottom:var(--spacing-lg)}
.form-group{margin-bottom:var(--spacing-md)}
.form-label,.wpcf7 label{display:block;font-size:0.85rem;font-weight:700;color:var(--text-main);margin-bottom:0.4rem;letter-spacing:0.03em}
.form-label .req{color:var(--teal)}
.form-input,.form-select,.form-textarea,
.wpcf7 input[type="text"],.wpcf7 input[type="email"],.wpcf7 input[type="tel"],.wpcf7 select,.wpcf7 textarea{
  width:100%;padding:0.8rem 1rem;border:2px solid var(--border);border-radius:var(--radius);
  font-family:var(--ff-body);font-size:0.95rem;color:var(--text-main);background:var(--cream);
  transition:border-color .3s,box-shadow .3s;letter-spacing:var(--letter-spacing);line-height:var(--line-height);
}
.form-input:focus,.form-select:focus,.form-textarea:focus,
.wpcf7 input:focus,.wpcf7 select:focus,.wpcf7 textarea:focus{
  outline:none;border-color:var(--teal);box-shadow:0 0 0 3px rgba(51,140,144,0.12);background:var(--white);
}
.form-input::placeholder,.form-textarea::placeholder{color:var(--text-light);font-style:italic}
.form-textarea,.wpcf7 textarea{resize:vertical;min-height:120px}
.form-select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236e7272' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;padding-right:2.5rem;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-sm)}
/* CF7 ne génère pas de balises block dans form-row — on force les spans en block */
.form-row .wpcf7-form-control-wrap{display:block}
.form-row .form-group{margin-bottom:0}
/* CF7 supprime les <br> automatiques qu'il injecte normalement */
.wpcf7 br{display:none}
.wpcf7 .form-group,.wpcf7 .form-row,.wpcf7 .form-check{display:revert}
.form-hint{font-size:0.78rem;color:var(--text-light);margin-top:0.3rem;line-height:1.5}
.form-check{display:flex;align-items:flex-start;gap:0.6rem;margin-bottom:var(--spacing-md)}
.form-check input[type="checkbox"],.wpcf7 .wpcf7-acceptance input{width:20px;height:20px;margin-top:2px;flex-shrink:0;accent-color:var(--teal);cursor:pointer}
.form-check label,.wpcf7 .wpcf7-acceptance label{font-size:0.85rem;color:var(--text-body);line-height:1.6;cursor:pointer}
.btn-submit,.wpcf7 input[type="submit"]{width:100%;background:var(--teal);color:var(--white);padding:0.9rem;border:none;border-radius:2.5rem;font-family:var(--ff-body);font-size:1rem;font-weight:700;letter-spacing:0.03em;cursor:pointer;transition:background .3s,transform .2s;}
.btn-submit:hover,.wpcf7 input[type="submit"]:hover{background:var(--teal-dark);transform:translateY(-1px)}
.form-note{text-align:center;font-size:0.78rem;color:var(--text-light);margin-top:var(--spacing-sm);line-height:1.6}
.wpcf7-not-valid-tip{color:#c0392b;font-size:0.82rem;display:block;margin-top:0.3rem}

/* FOOTER */
footer{background:var(--text-main);color:rgba(255,255,255,0.55);padding:var(--spacing-xl) var(--spacing-lg);text-align:center}
footer .f-logo{font-family:var(--ff-display);font-size:1.15rem;color:var(--white);margin-bottom:0.4rem;font-weight:400;letter-spacing:0.03em}
footer .f-logo span{color:var(--teal-light)}
footer p{font-size:0.85rem;line-height:1.8}
footer .f-links{display:flex;gap:var(--spacing-lg);justify-content:center;margin:var(--spacing-md) 0;flex-wrap:wrap}
footer .f-links a{font-size:0.85rem;transition:color .3s}
footer .f-links a:hover{color:var(--teal-light)}
footer .f-copy{margin-top:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid rgba(255,255,255,0.1);font-size:0.8rem}

/* A11Y */
.a11y-bar{position:fixed;bottom:1rem;right:1rem;z-index:99;display:flex;gap:0.4rem}
.a11y-btn{width:42px;height:42px;border-radius:50%;background:var(--white);border:2px solid var(--border);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1rem;transition:border-color .3s,transform .2s;box-shadow:0 2px 10px rgba(0,0,0,0.08);}
.a11y-btn:hover{border-color:var(--teal);transform:scale(1.08)}
/* MODE SOMBRE */
/* ═══════════════════════════════
   MODE SOMBRE — dark-mode
   ═══════════════════════════════ */
html.dark-mode,
html.dark-mode body { background: #0f1c1c !important; }

body.dark-mode {
  /* Redéfinition des variables */
  --cream:        #0f1c1c;
  --white:        #162828;
  --beige-lighter:#111e1e;
  --beige-light:  #162424;
  --beige:        #1a2e2e;
  --beige-dark:   #223a3a;
  --text-main:    rgba(255,255,255,0.92);
  --text-body:    rgba(255,255,255,0.75);
  --text-muted:   rgba(255,255,255,0.52);
  --text-light:   rgba(255,255,255,0.38);
  --border:       rgba(255,255,255,0.10);
  --border-light: rgba(255,255,255,0.07);
  --teal-pale:    rgba(51,140,144,0.15);
  --teal-ghost:   rgba(51,140,144,0.08);

  /* Application directe sur body */
  background-color: #0f1c1c !important;
  color: rgba(255,255,255,0.75) !important;
}

/* Sections — fonds */
body.dark-mode section,
body.dark-mode .about,
body.dark-mode .services,
body.dark-mode .approach,
body.dark-mode .testimonials,
body.dark-mode .contact,
body.dark-mode .tarifs             { background-color: #0f1c1c !important; }

body.dark-mode .formations,
body.dark-mode .zone,
body.dark-mode .faq                { background-color: #111e1e !important; }

body.dark-mode .hero               { background: linear-gradient(135deg, #0a1414 0%, #162828 100%) !important; }

/* Nav */
body.dark-mode .nav.scrolled       { background: rgba(15,28,28,0.97) !important; box-shadow: 0 1px 0 rgba(255,255,255,0.07) !important; }
body.dark-mode .nav-links a        { color: rgba(255,255,255,0.65) !important; }
body.dark-mode .nav-links a:hover  { color: #4aa3a7 !important; }
body.dark-mode .nav-logo-text      { color: #4aa3a7 !important; }

/* Cartes */
body.dark-mode .service-card,
body.dark-mode .approach-card,
body.dark-mode .testimonial-card,
body.dark-mode .tarif-card,
body.dark-mode .hero-card          { background-color: #162828 !important; border-color: rgba(255,255,255,0.08) !important; }

body.dark-mode .faq-item           { background-color: #162828 !important; border-color: rgba(255,255,255,0.08) !important; }
body.dark-mode .faq-item.open      { border-color: #338c90 !important; }
body.dark-mode .zone-detail,
body.dark-mode .zone-city          { background-color: #162828 !important; border-color: rgba(255,255,255,0.08) !important; }

/* Formulaire */
body.dark-mode .contact-form-wrap  { background-color: #162828 !important; border-color: rgba(255,255,255,0.08) !important; }
body.dark-mode .form-input,
body.dark-mode .form-select,
body.dark-mode .form-textarea,
body.dark-mode .wpcf7 input[type="text"],
body.dark-mode .wpcf7 input[type="email"],
body.dark-mode .wpcf7 input[type="tel"],
body.dark-mode .wpcf7 select,
body.dark-mode .wpcf7 textarea     { background-color: #0f1c1c !important; color: rgba(255,255,255,0.85) !important; border-color: rgba(255,255,255,0.15) !important; }

/* Footer */
body.dark-mode footer              { background-color: #080f0f !important; }

/* Modal & cookie */
body.dark-mode .modal-overlay      { background: rgba(0,0,0,0.75) !important; }
body.dark-mode .modal-box          { background-color: #162828 !important; }
body.dark-mode .modal-close        { background-color: #1e3333 !important; border-color: rgba(255,255,255,0.12) !important; color: rgba(255,255,255,0.7) !important; }
body.dark-mode .cookie-banner      { background-color: #162828 !important; border-top-color: rgba(255,255,255,0.1) !important; }

/* Textes */
body.dark-mode h1, body.dark-mode h2, body.dark-mode h3,
body.dark-mode h4, body.dark-mode .section-title { color: rgba(255,255,255,0.92) !important; }
body.dark-mode p, body.dark-mode li, body.dark-mode span { color: rgba(255,255,255,0.75); }
body.dark-mode strong              { color: rgba(255,255,255,0.95) !important; }
body.dark-mode .section-intro,
body.dark-mode .tarif-duration,
body.dark-mode .tarif-note,
body.dark-mode .timeline-org       { color: rgba(255,255,255,0.52) !important; }

/* Boutons accessibilité */
body.dark-mode .a11y-btn           { background-color: #162828 !important; border-color: rgba(255,255,255,0.15) !important; color: rgba(255,255,255,0.75) !important; }

/* Blocs Gutenberg WordPress */
body.dark-mode .wp-block-html,
body.dark-mode .entry-content,
body.dark-mode .wp-block            { background: transparent !important; color: inherit !important; }

/* conserver l'ancien high-contrast comme alias */
body.high-contrast { --text-body:#1a1a1a; --text-muted:#333; --text-light:#555; --border:var(--text-main) }
html.large-text { font-size: 20px !important; }
html.large-text body { font-size: 20px !important; }

/* MODAL */
.modal-overlay{display:none;position:fixed;inset:0;z-index:200;background:rgba(0,0,0,0.5);backdrop-filter:blur(4px);align-items:center;justify-content:center;padding:var(--spacing-lg);}
.modal-overlay.open{display:flex}
.modal-box{background:var(--cream);border-radius:var(--radius-lg);padding:var(--spacing-xl);max-width:700px;width:100%;max-height:80vh;overflow-y:auto;position:relative;}
.modal-close{position:absolute;top:1rem;right:1rem;width:36px;height:36px;border-radius:50%;border:2px solid var(--border);background:var(--white);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.1rem;color:var(--text-muted);transition:border-color .3s;}
.modal-close:hover{border-color:var(--teal)}
.modal-box h2{font-family:var(--ff-display);font-size:1.5rem;color:var(--text-main);margin-bottom:var(--spacing-md);font-weight:400}
.modal-box h3{font-size:1rem;font-weight:700;color:var(--text-main);margin:var(--spacing-md) 0 0.4rem}
.modal-box p{font-size:0.88rem;color:var(--text-body);line-height:1.75;margin-bottom:0.5rem}

/* COOKIE */
.cookie-banner{display:none;position:fixed;bottom:0;left:0;right:0;z-index:150;background:var(--white);border-top:1px solid var(--border-light);padding:1rem var(--spacing-lg);box-shadow:0 -4px 20px rgba(0,0,0,0.06);}
.cookie-banner.show{display:block}
.cookie-inner{max-width:var(--max-w);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);flex-wrap:wrap;}
.cookie-inner p{font-size:0.85rem;color:var(--text-body);flex:1;min-width:250px;line-height:1.6}
.cookie-btns{display:flex;gap:0.5rem;flex-shrink:0}
.cookie-btn{padding:0.5rem 1.2rem;border-radius:2rem;font-family:var(--ff-body);font-size:0.82rem;font-weight:700;cursor:pointer;transition:all .3s;border:none;}
.cookie-accept{background:var(--teal);color:var(--white)}.cookie-accept:hover{background:var(--teal-dark)}
.cookie-refuse{background:transparent;color:var(--text-muted);border:1.5px solid var(--border)}.cookie-refuse:hover{border-color:var(--teal);color:var(--teal)}

/* BACK TO TOP */
.back-top{position:fixed;bottom:4.5rem;right:1rem;z-index:98;width:42px;height:42px;border-radius:50%;background:var(--teal);color:var(--white);border:none;display:flex;align-items:center;justify-content:center;font-size:1.1rem;cursor:pointer;opacity:0;pointer-events:none;transition:opacity .3s,transform .2s;box-shadow:0 2px 10px rgba(51,140,144,0.3);}
.back-top.show{opacity:1;pointer-events:auto}
.back-top:hover{transform:scale(1.08)}

/* ANIMATIONS */
@keyframes fadeUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .6s ease-out,transform .6s ease-out}
.reveal.visible{opacity:1;transform:translateY(0)}

/* RESPONSIVE */
/* ═══════════════════════════════
   RESPONSIVE
   ═══════════════════════════════ */

/* Tablette & petit desktop */
@media(max-width:900px){
  html { font-size: 16px; }

  section { padding: 4rem 1.25rem; }

  /* Nav */
  .nav { padding: 0.875rem 1.25rem; }
  .nav-links {
    display: none;
    position: fixed; inset: 0;
    background: rgba(250,249,245,.98);
    flex-direction: column; align-items: center; justify-content: center;
    gap: 2rem; z-index: 100;
  }
  .nav-links.open { display: flex; }
  .nav-links a { font-size: 1.1rem !important; color: var(--text-muted) !important; }
  .hamburger { display: flex; }

  /* Hero */
  .hero { padding: 5rem 1.25rem 3rem; min-height: auto; }
  .hero-content { grid-template-columns: 1fr; text-align: center; gap: 2rem; }
  .hero-sub { margin: 0 auto 1.5rem; }
  .hero-actions { justify-content: center; }
  .hero-visual { max-width: 400px; margin: 0 auto; }
  .hero-float { display: none; }

  /* Grilles → 1 colonne */
  .about-grid,
  .formations-grid,
  .zone-grid,
  .contact-grid    { grid-template-columns: 1fr; gap: 2rem; }
  .about-img-box   { max-width: 280px; margin: 0 auto; }
  .about-exp       { bottom: -12px; right: -12px; }

  .approach-cards,
  .testimonials-grid,
  .tarifs-grid,
  .cabinets-grid   { grid-template-columns: 1fr !important; }
  .services-grid   { grid-template-columns: 1fr; }
  .form-row        { grid-template-columns: 1fr; }

  /* Section title */
  .section-title   { font-size: clamp(1.4rem, 4vw, 1.8rem); }
  .section-intro   { margin-bottom: 2rem; }
}

/* Mobile */
@media(max-width:640px){
  html { font-size: 15px; }

  section { padding: 3rem 1rem; }

  /* Nav */
  .nav { padding: 0.75rem 1rem; }
  .nav-logo-text span { font-size: 1rem; }
  .nav-logo-text small { display: none; }

  /* Hero */
  .hero { padding: 4.5rem 1rem 2.5rem; }
  .hero h1 { font-size: clamp(1.7rem, 8vw, 2.4rem); }
  .hero-badge { font-size: 0.7rem; padding: 0.35rem 0.85rem; }
  .btn { padding: 0.75rem 1.4rem; font-size: 0.88rem; }
  .hero-actions { flex-direction: column; align-items: center; }
  .hero-card { padding: 1.25rem; }

  /* About */
  .about-img-box { max-width: 220px; }
  .about-exp { bottom: -10px; right: -10px; padding: 0.75rem 1rem; }
  .about-exp strong { font-size: 1.4rem; }
  .about-tags { gap: 0.4rem; }

  /* Formations */
  .timeline { padding-left: 1.25rem; }
  .timeline-item::before { left: -1.25rem; }

  /* Cards */
  .service-card,
  .approach-card,
  .tarif-card,
  .testimonial-card { padding: 1.25rem; }

  /* FAQ */
  .faq-q { font-size: 0.88rem; padding: 0.875rem 1rem; }
  .faq-a { padding: 0 1rem; }
  .faq-item.open .faq-a { padding: 0 1rem 1rem; }

  /* Contact */
  .contact-steps { padding: 1.5rem 1.25rem; }
  .contact-form-wrap { padding: 1.5rem 1.25rem; }

  /* Zone */
  .zone-map { padding: 1.5rem 1rem; }

  /* Footer */
  footer { padding: 2.5rem 1rem; }
  footer .f-links { gap: 1rem; flex-direction: column; align-items: center; }

  /* A11y bar */
  .a11y-bar { bottom: 0.6rem; right: 0.6rem; gap: 0.3rem; }
  .a11y-btn { width: 36px; height: 36px; font-size: 0.88rem; }

  /* Back to top */
  .back-top { bottom: 3.5rem; right: 0.6rem; width: 36px; height: 36px; }

  /* Cookie banner */
  .cookie-inner { flex-direction: column; gap: 0.75rem; }
  .cookie-btns { width: 100%; justify-content: flex-end; }
}

/* Très petits écrans */
@media(max-width:360px){
  html { font-size: 14px; }
  section { padding: 2.5rem 0.875rem; }
  .hero { padding: 4rem 0.875rem 2rem; }
}

/* Cabinets — hover */
.cabinet-card:hover { transform: translateY(-3px); box-shadow: 0 12px 36px rgba(0,0,0,0.05); border-color: var(--teal-light) !important; }

/* Dark mode pour cabinet-card */
body.dark-mode .cabinet-card { background-color: #162828 !important; border-color: rgba(255,255,255,0.08) !important; }
body.dark-mode .cabinet-card address { color: rgba(255,255,255,0.75) !important; }

/* ─── NAV générée par wp_nav_menu() ───────────────── */
.nav-links .nav-menu-list,
.nav-links ul.menu {
  display: flex;
  gap: var(--spacing-lg);
  align-items: center;
  list-style: none;
  margin: 0;
  padding: 0;
}
.nav-links .nav-menu-list li,
.nav-links ul.menu li { list-style: none; margin: 0; padding: 0; }
.nav-links .nav-menu-list li a,
.nav-links ul.menu li a {
  font-size: 0.88rem;
  font-weight: 500;
  color: var(--text-muted);
  transition: color .3s;
  padding: 0.25rem 0;
  border-bottom: 2px solid transparent;
  text-decoration: none;
}
.nav-links .nav-menu-list li a:hover,
.nav-links .nav-menu-list li a:focus,
.nav-links ul.menu li a:hover { color: var(--teal); border-bottom-color: var(--teal); }
/* Item "Me contacter" : style CTA si la classe nav-cta est ajoutée dans le menu */
.nav-links .nav-cta a,
.nav-links ul.menu li.nav-cta a,
.nav-links li.menu-item-cta a {
  background: var(--teal) !important;
  color: var(--white) !important;
  padding: 0.55rem 1.4rem !important;
  border-radius: 2rem !important;
  border-bottom: none !important;
}
.nav-links .nav-cta a:hover,
.nav-links li.menu-item-cta a:hover { background: var(--teal-dark) !important; }

/* Responsive : adapter aussi la liste générée par wp_nav_menu */
@media(max-width:900px){
  .nav-links .nav-menu-list,
  .nav-links ul.menu { flex-direction: column; gap: 1.5rem; }
  .nav-links .nav-menu-list li a,
  .nav-links ul.menu li a { font-size: 1.1rem !important; }
}
