/*
Theme Name: oVolant Auto-École
Theme URI: https://ovolant-autoecole.fr/
Author: oVolant
Description: Thème sur mesure reproduisant la maquette oVolant validée.
Version: 1.0.133
Text Domain: ovolant
*/

:root { --pink:#f5076c; --ink:#11131a; --muted:#68707c; --line:#e9e9ed; --paper:#fff; --mint:#dff7ee; --mint-strong:#1f7a59; --lime:#ddf982; --sky:#eaf2ff; --cream:#fff5de; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:#fff; color:var(--ink); font-family:var(--font-geist),Arial,sans-serif; }
.site-header,.site-header *,main,main *,.footer,.footer * { font-family:Arial,Helvetica,sans-serif!important; }
a { color:inherit; text-decoration:none; }
.site-header { height:92px; max-width:1440px; margin:auto; padding:0 5vw; display:flex; align-items:center; gap:48px; background:#fff; }
.brand img { display:block; width:205px; height:70px; object-fit:contain; }
.site-header nav { margin-left:auto; display:flex; gap:34px; align-items:center; }
.site-header nav a { font-size:14px; font-weight:650; color:#343740; padding:34px 0 30px; border-bottom:3px solid transparent; }
.site-header nav a:hover,.site-header nav a.active { color:var(--pink); border-color:var(--pink); }
.nav-dropdown { position:relative; }
.nav-dropdown-toggle { min-height:92px; padding:3px 0 0; border:0; border-bottom:3px solid transparent; display:flex; align-items:center; gap:7px; color:#343740; background:transparent; font:inherit; font-size:14px; font-weight:650; cursor:pointer; }
.nav-dropdown-toggle svg { width:11px; height:7px; fill:none; stroke:currentColor; stroke-width:1.8; transition:transform .2s ease; }
.nav-dropdown:hover .nav-dropdown-toggle,.nav-dropdown:focus-within .nav-dropdown-toggle,.nav-dropdown.is-open .nav-dropdown-toggle { color:var(--pink); border-color:var(--pink); }
.nav-dropdown:hover .nav-dropdown-toggle svg,.nav-dropdown:focus-within .nav-dropdown-toggle svg,.nav-dropdown.is-open .nav-dropdown-toggle svg { transform:rotate(180deg); }
.nav-dropdown-menu { position:absolute; z-index:80; top:calc(100% - 8px); left:50%; width:310px; padding:10px; border:1px solid #eee5e9; border-radius:18px; display:grid; gap:3px; visibility:hidden; opacity:0; transform:translate(-50%,10px); pointer-events:none; background:#fff; box-shadow:0 22px 55px rgba(20,14,18,.16); transition:opacity .18s ease,transform .18s ease,visibility .18s ease; }
.nav-dropdown:hover .nav-dropdown-menu,.nav-dropdown:focus-within .nav-dropdown-menu,.nav-dropdown.is-open .nav-dropdown-menu { visibility:visible; opacity:1; transform:translate(-50%,0); pointer-events:auto; }
.site-header nav .nav-dropdown-menu a { padding:11px 13px; border:0; border-radius:11px; display:grid; gap:3px; }
.site-header nav .nav-dropdown-menu a:hover,.site-header nav .nav-dropdown-menu a:focus { border:0; color:var(--pink); background:#fff3f8; outline:none; }
.nav-dropdown-menu strong { font-size:13px; line-height:1.25; }
.nav-dropdown-menu small { color:#858993; font-size:11px; font-weight:500; line-height:1.3; }
.button { min-height:54px; padding:0 26px; border-radius:999px; display:inline-flex; align-items:center; justify-content:center; gap:18px; background:var(--pink); color:#fff; font-weight:750; box-shadow:0 12px 28px rgba(245,7,108,.24); transition:.2s ease; }
.button:hover { transform:translateY(-2px); box-shadow:0 16px 34px rgba(245,7,108,.3); }
.button-small { min-height:48px; padding:0 22px; font-size:14px; }
.header-actions { display:flex; align-items:center; gap:10px; }
.button-login { min-height:46px; padding:0 18px; border:1px solid #d9dbe0; border-radius:999px; display:inline-flex; align-items:center; justify-content:center; color:#343740; background:#fff; font-size:13px; font-weight:800; transition:.2s ease; }
.button-login:hover { color:var(--pink); border-color:var(--pink); }
.button-ghost { color:#fff; background:transparent; border:1px solid rgba(255,255,255,.75); box-shadow:none; }
.menu-button { display:none; border:0; background:transparent; padding:10px; }
.menu-button span { display:block; width:27px; height:3px; margin:5px; background:var(--pink); border-radius:4px; }
.hero { min-height:625px; display:grid; grid-template-columns:53% 47%; overflow:hidden; position:relative; background:radial-gradient(circle at 26% 15%,#30333c 0,#171a22 32%,#0f1117 75%); color:#fff; }
.hero-copy { align-self:center; padding:78px 5vw 82px max(5vw,calc((100vw - 1440px)/2 + 72px)); position:relative; z-index:2; }
.eyebrow { color:var(--pink); font-size:12px; font-weight:850; letter-spacing:.18em; text-transform:uppercase; }
.hero h1 { margin:18px 0 22px; font-size:clamp(52px,5vw,78px); line-height:.98; letter-spacing:-.055em; }
.hero h1 em { color:var(--pink); font-style:normal; }
.hero-intro { max-width:560px; font-size:clamp(19px,2vw,25px); line-height:1.45; color:#e7e8ec; }
.actions { display:flex; flex-wrap:wrap; gap:14px; margin-top:34px; }
.hero-visual { position:relative; min-height:625px; background:linear-gradient(135deg,rgba(245,7,108,.04),rgba(245,7,108,.32)); overflow:hidden; }
.hero-visual::before { content:''; position:absolute; width:620px; height:620px; border:110px solid rgba(255,255,255,.07); border-radius:50%; top:-20px; left:-70px; }
.hero-visual::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,#151821 0,transparent 28%); }
.road-lines { position:absolute; inset:0; background:repeating-linear-gradient(115deg,transparent 0 80px,rgba(255,255,255,.045) 80px 83px); }
.car-card { position:absolute; z-index:1; width:min(520px,85%); aspect-ratio:1.45; right:5vw; top:50%; transform:translateY(-50%) rotate(-3deg); border-radius:44px 12px 44px 12px; display:flex; flex-direction:column; align-items:center; justify-content:center; color:#12141b; background:linear-gradient(145deg,#fff,#d9dce2); box-shadow:-35px 45px 75px rgba(0,0,0,.4); border-bottom:22px solid #242832; }
.car-card::after { content:''; position:absolute; width:70%; height:18px; bottom:-38px; background:#08090c; border-radius:50%; filter:blur(10px); opacity:.55; }
.car-card strong { font-size:clamp(48px,5vw,78px); letter-spacing:-.08em; }
.car-card strong span { color:var(--pink); }
.car-label { color:var(--pink); font-weight:900; font-size:13px; border:2px solid var(--pink); padding:7px 14px; border-radius:8px; transform:translateY(-28px); }
.car-card small { color:#5f626a; font-weight:800; letter-spacing:.12em; font-size:10px; }
.hero-photo-card { position:absolute; z-index:2; width:min(610px,90%); right:5%; top:50%; margin:0; transform:translateY(-50%) rotate(-2deg); overflow:hidden; border:6px solid rgba(255,255,255,.92); border-radius:27px; background:#fff; box-shadow:-30px 38px 65px rgba(0,0,0,.42); }
.hero-photo-card img { width:100%; height:auto; display:block; }
.hero-photo-card::after { content:''; position:absolute; inset:auto 12% -12px; height:18px; border-radius:50%; background:#050609; filter:blur(12px); opacity:.45; }
.exam-fast-wrap { position:relative; z-index:3; padding:22px 5vw; background:#fff; border-bottom:1px solid #ececf0; }
.exam-fast { position:relative; isolation:isolate; width:min(1280px,100%); margin:0 auto; padding:24px 28px; display:grid; grid-template-columns:62px minmax(0,720px) auto; justify-content:center; gap:22px; align-items:center; overflow:hidden; color:#fff; text-align:center; background:linear-gradient(118deg,#11131a 0%,#1b1d25 58%,#3a1025 100%); border-radius:22px; box-shadow:0 14px 32px rgba(17,19,26,.13); }
.exam-fast::after { content:""; position:absolute; z-index:-1; right:-35px; top:-70px; width:230px; height:230px; border:38px solid rgba(245,7,108,.13); border-radius:50%; }
.exam-fast-icon { width:62px; height:62px; border-radius:18px; display:grid; place-items:center; flex:0 0 auto; color:#fff; background:var(--pink); box-shadow:0 14px 32px rgba(245,7,108,.28); }
.exam-fast-icon svg { width:30px; height:30px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.exam-fast-copy>span { display:block; margin-bottom:4px; color:#ff83b6; font-size:10px; font-weight:900; letter-spacing:.15em; text-transform:uppercase; }
.exam-fast h2 { margin:0 0 5px; scroll-margin-top:165px; font-size:clamp(23px,2.4vw,34px); letter-spacing:-.035em; line-height:1.05; }
.exam-fast p { max-width:680px; margin:0 auto; color:#c7cad2; font-size:14px; line-height:1.55; }
.exam-fast-proof { padding:12px 15px; border:1px solid rgba(255,255,255,.14); border-radius:15px; display:flex; gap:10px; align-items:center; background:rgba(255,255,255,.06); white-space:nowrap; }
.exam-fast-proof>b { width:29px; height:29px; border-radius:50%; display:grid; place-items:center; color:#fff; background:var(--pink); }
.exam-fast-proof strong { font-size:12px; line-height:1.35; }
.exam-fast-proof span { color:#afb3bd; font-weight:550; }
@media (max-width:760px) {
  .exam-fast-wrap { padding:14px 16px; }
  .exam-fast { width:100%; margin:0; padding:22px 18px; grid-template-columns:1fr; justify-items:center; gap:13px; border-radius:18px; }
  .exam-fast-icon { width:50px; height:50px; border-radius:15px; }
  .exam-fast-icon svg { width:25px; height:25px; }
  .exam-fast h2 { font-size:25px; }
  .exam-fast p { font-size:13px; }
  .exam-fast-proof { width:auto; justify-content:center; white-space:normal; }
}

/* Pop-up promotion v2 — proposition photo premium validée */
.promo-popup,.promo-popup *{font-family:Arial,Helvetica,sans-serif!important}
.promo-popup-dialog.promo-popup-v2{
  width:min(760px,100%);
  min-height:445px;
  grid-template-columns:42% 58%;
  border:0;
  border-radius:24px;
  background:#fff;
  box-shadow:0 34px 90px rgba(17,19,26,.3);
}
.promo-popup-v2 .promo-popup-close{
  top:15px;
  right:15px;
  width:38px;
  height:38px;
  border:1px solid rgba(17,19,26,.12);
  border-radius:50%;
  color:#11131a;
  background:rgba(255,255,255,.92);
}
.promo-popup-photo{
  position:relative;
  min-height:445px;
  overflow:hidden;
  background:url('assets/images/home-driving-1280.jpg') 55% center/cover no-repeat;
}
.promo-popup-photo::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(17,19,26,.08),rgba(17,19,26,.76));
}
.promo-popup-photo-copy{
  position:absolute;
  z-index:2;
  left:24px;
  right:24px;
  bottom:26px;
  color:#fff;
}
.promo-popup-photo-copy small,.promo-popup-photo-copy strong{display:block}
.promo-popup-photo-copy small{
  margin-bottom:6px;
  color:var(--lime);
  font-size:9px;
  font-weight:900;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.promo-popup-photo-copy strong{font-size:24px;line-height:1.05;letter-spacing:-.035em}
.promo-popup-v2 .promo-popup-content{
  min-width:0;
  padding:48px 38px 30px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}
.promo-popup-kicker{
  width:max-content;
  padding:8px 11px;
  border-radius:999px;
  color:#466100;
  background:var(--lime);
  font-size:9px;
  font-weight:900;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.promo-popup-v2 .promo-popup-content h2{
  max-width:360px;
  margin:20px 0 13px;
  padding:0;
  color:var(--ink);
  font-size:37px;
  line-height:1;
  letter-spacing:-.05em;
}
.promo-popup-v2 .promo-popup-content h2 em{color:var(--pink);font-style:normal}
.promo-popup-v2 .promo-popup-content>p{
  margin:0;
  color:var(--muted);
  font-size:14px;
  line-height:1.55;
}
.promo-popup-price{
  width:100%;
  margin:24px 0 18px;
  padding:16px 0;
  border-top:1px solid #ebebee;
  border-bottom:1px solid #ebebee;
  display:grid;
  grid-template-columns:minmax(90px,1fr) auto auto;
  align-items:end;
  gap:18px;
}
.promo-popup-price small{
  max-width:105px;
  color:#777b84;
  font-size:10px;
  font-weight:800;
  line-height:1.35;
  text-transform:uppercase;
}
.promo-popup-price strong{color:var(--pink);font-size:45px;font-style:normal;line-height:.9;letter-spacing:-.06em;white-space:nowrap}
.promo-popup-price del{color:#9a9da4;font-size:13px;font-weight:750}
.promo-popup-v2 .promo-popup-actions{width:100%;margin:auto 0 13px;gap:15px}
.promo-popup-v2 .promo-popup-actions .button{min-height:52px;padding:0 23px;background:var(--pink)}
.promo-popup-v2 .promo-popup-content>small{color:#8d9097;font-size:9px;line-height:1.4}

@media(max-width:680px){
  .promo-popup-dialog.promo-popup-v2{
    width:100%;
    max-width:355px;
    max-height:calc(100dvh - 28px);
    min-height:0;
    grid-template-columns:1fr;
    grid-template-rows:145px minmax(0,1fr);
    border-radius:22px;
  }
  .promo-popup-v2 .promo-popup-close{
    top:11px;
    right:11px;
    width:34px;
    height:34px;
    border-color:rgba(17,19,26,.12);
    color:#11131a;
    background:rgba(255,255,255,.92);
  }
  .promo-popup-photo{min-height:145px;background-position:55% 43%}
  .promo-popup-photo-copy{left:18px;right:58px;bottom:17px}
  .promo-popup-photo-copy strong{font-size:20px}
  .promo-popup-v2 .promo-popup-content{overflow-y:auto;padding:22px 21px 18px}
  .promo-popup-kicker{padding:7px 9px;font-size:7px}
  .promo-popup-v2 .promo-popup-content h2{margin:14px 0 8px;font-size:27px;line-height:1.02}
  .promo-popup-v2 .promo-popup-content>p{font-size:12px;line-height:1.5}
  .promo-popup-price{margin:14px 0 12px;padding:11px 0;grid-template-columns:minmax(80px,1fr) auto auto;gap:10px}
  .promo-popup-price small{font-size:8px}
  .promo-popup-price strong{font-size:37px}
  .promo-popup-price del{font-size:11px}
  .promo-popup-v2 .promo-popup-actions{margin:0 0 7px;align-items:stretch;flex-direction:column;gap:4px}
  .promo-popup-v2 .promo-popup-actions .button{width:100%;min-height:45px;font-size:12px}
  .promo-popup-v2 .promo-popup-actions>button{padding:6px;font-size:10px}
  .promo-popup-v2 .promo-popup-content>small{font-size:8px}
}

/* Formations v1.0.25 : palette douce du nouveau theme */
.formations-page-v2 { overflow:hidden; background:#fffdf9; }
.formations-page-v2>.page-hero {
  position:relative;
  min-height:470px;
  color:var(--ink);
  background:
    radial-gradient(circle at 86% 18%,rgba(221,249,130,.72) 0 11%,transparent 31%),
    radial-gradient(circle at 11% 90%,rgba(223,247,238,.92) 0 13%,transparent 34%),
    linear-gradient(135deg,#fff8fb 0%,#fffdf5 54%,#eef5ff 100%);
}
.formations-page-v2>.page-hero::after {
  content:'';
  position:absolute;
  right:-90px;
  bottom:-105px;
  width:330px;
  height:210px;
  border:2px solid rgba(245,7,108,.14);
  border-radius:50%;
  transform:rotate(-14deg);
  pointer-events:none;
}
.formations-page-v2>.page-hero h1 { position:relative; z-index:1; max-width:880px; }
.formations-page-v2>.page-hero h1 em { color:var(--pink); }
.formations-page-v2>.page-hero>p:last-child { position:relative; z-index:1; color:#525865; }
.formations-page-v2>.formation-subnav { padding-block:24px; }
.formations-page-v2>.formation-subnav a {
  border-color:#f0dfe7;
  color:#282a31;
  background:#fff9fb;
  box-shadow:0 5px 15px rgba(33,28,31,.035);
}
.formations-page-v2>.formation-subnav a:nth-child(2) { background:#f1fbd3; border-color:#dbeea4; }
.formations-page-v2>.formation-subnav a:nth-child(3) { background:#eaf8f3; border-color:#cbe9de; }
.formations-page-v2>.formation-subnav a:nth-child(4) { background:#eef5ff; border-color:#d8e5f7; }
.formations-page-v2>.formation-subnav a:nth-child(5) { background:#fff5de; border-color:#f3e3ba; }
.formations-page-v2>.formation-showcase { padding-top:76px; }
.formations-page-v2>.formation-showcase figure {
  border:7px solid #fff;
  box-shadow:0 26px 70px rgba(42,37,39,.13),0 0 0 1px rgba(245,7,108,.08);
}
.formations-page-v2>.formation-showcase h2 { color:#17181d; }
.formations-page-v2 .formation-showcase-points span { color:#343740; background:#fff0f6; }
.formations-page-v2 .formation-showcase-points span:nth-child(2) { background:#e2f7ef; }
.formations-page-v2 .formation-showcase-points span:nth-child(3) { background:#eef7ce; }
.formations-page-v2>.formation-list { max-width:1110px; padding-top:52px; }
.formations-page-v2 .formation-row {
  margin-bottom:18px;
  padding:50px 44px;
  border:1px solid rgba(28,27,32,.07);
  border-radius:30px;
  background:#fff1f6;
  box-shadow:0 14px 38px rgba(34,29,32,.045);
}
.formations-page-v2 .formation-row:first-child { border-top:1px solid rgba(28,27,32,.07); }
.formations-page-v2 .formation-row:nth-child(2) { background:#f0fbd0; }
.formations-page-v2 .formation-row:nth-child(3) { background:#e5f7f0; }
.formations-page-v2 .formation-row:nth-child(4) { background:#ebf3ff; }
.formations-page-v2 .formation-row:nth-child(5) { background:#fff4dc; }
.formations-page-v2 .formation-number { color:#fff; background:var(--pink); box-shadow:0 9px 22px rgba(245,7,108,.22); }
.formations-page-v2 .formation-row:nth-child(2) .formation-number { color:#2f4716; background:var(--lime); box-shadow:none; }
.formations-page-v2 .formation-row:nth-child(3) .formation-number { color:#156047; background:#bfeeda; box-shadow:none; }
.formations-page-v2 .formation-row:nth-child(4) .formation-number { color:#315b8c; background:#cfe3ff; box-shadow:none; }
.formations-page-v2 .formation-row:nth-child(5) .formation-number { color:#7a5411; background:#ffe3a2; box-shadow:none; }
.formations-page-v2 .formation-row li { color:#474b55; }
.formations-page-v2 .formation-price { padding-top:22px; border-top:1px solid rgba(35,32,35,.09); }
.formations-page-v2 .formation-price strong { color:#15161a; }
.formations-page-v2 .code-format { border-color:#cee8de; background:#effaf6; }
.formations-page-v2 .code-format.local-format { border-color:#f1cadb; background:#fff9fb; }
.formations-page-v2 .formation-more { border-color:rgba(37,34,36,.09); background:rgba(255,255,255,.68); }
.formations-page-v2 .formation-more-content>div,
.formations-page-v2 .formation-more-content>section { border-color:rgba(37,34,36,.08); background:rgba(255,255,255,.72); }
.formations-page-v2 .formation-more-content .formation-more-intro { border-color:#f1cbdc; background:#fff8fb; }
.formations-page-v2>.formation-student-space { background:linear-gradient(135deg,#1c1b21 0%,#25242c 100%); }
.formations-page-v2>.formations-faq { background:linear-gradient(135deg,#eaf8f3 0%,#f4f8ff 100%); }
.formations-page-v2>.formations-faq .formations-faq-list details { border-color:rgba(28,42,38,.12); }
.formations-page-v2>.cta-band { background:linear-gradient(115deg,#f5076c 0%,#e4005e 58%,#c60050 100%); }

@media(max-width:780px){
  .formations-page-v2>.page-hero { min-height:auto; padding:68px 20px 72px; }
  .formations-page-v2>.page-hero::after { right:-130px; bottom:-110px; }
  .formations-page-v2>.formation-showcase { padding-top:50px; }
  .formations-page-v2>.formation-list { padding:20px 16px 60px; }
  .formations-page-v2 .formation-row { margin-bottom:14px; padding:30px 20px 34px; border-radius:23px; }
  .formations-page-v2 .formation-price { padding-top:18px; }
}
.home-intro { max-width:1280px; margin:auto; padding:92px 5vw; display:grid; grid-template-columns:1.1fr .9fr; gap:70px; align-items:end; }
.home-intro h2 { margin:10px 0 0; font-size:clamp(38px,4vw,62px); line-height:1.05; letter-spacing:-.045em; }
.home-intro>p { font-size:18px; line-height:1.7; color:var(--muted); }
.mobile-cta { display:none; }
.mobile-login { display:none; }
.section { padding:105px max(5vw,calc((100vw - 1280px)/2)); }
.section-soft { background:#f7f7f9; }
.section-dark { background:#12141b; color:#fff; }
.section-heading { max-width:680px; margin-bottom:50px; }
.section-heading.centered { text-align:center; margin:0 auto 55px; }
.section-heading h2,.contact-layout h2,.story h2 { margin:10px 0 16px; font-size:clamp(38px,4vw,58px); line-height:1.06; letter-spacing:-.045em; }
.section-heading>p:last-child { color:var(--muted); font-size:18px; line-height:1.65; }
.cards-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.home-formation-grid { max-width:920px; margin:0 auto; grid-template-columns:repeat(2,1fr); }
.feature-card,.price-card { position:relative; padding:38px; background:#fff; border:1px solid var(--line); border-radius:22px; box-shadow:0 18px 50px rgba(16,18,25,.06); }
.feature-card.featured,.price-card.featured { border-color:var(--pink); transform:translateY(-10px); }
.card-icon { display:grid; place-items:center; width:58px; height:58px; border-radius:18px; background:#fff0f6; color:var(--pink); font-size:15px; font-weight:900; }
.card-icon svg { width:29px; height:29px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.card-kicker { margin:28px 0 8px; color:var(--pink)!important; font-size:11px!important; text-transform:uppercase; letter-spacing:.14em; font-weight:850; }
.feature-card h3 { margin:0 0 14px; font-size:27px; }
.feature-card p { color:var(--muted); line-height:1.65; }
.feature-card a,.text-link { display:inline-block; margin-top:18px; color:var(--pink); font-weight:800; }
.formation-card-footer { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-top:18px; }
.formation-card-footer a { margin-top:0; }
.formation-card-links { display:flex; align-items:center; gap:9px; flex-wrap:wrap; }
.feature-card .formation-price-link { padding:7px 11px; border:1px solid rgba(245,7,108,.24); border-radius:999px; background:#fff5f9; font-size:12px; line-height:1; white-space:nowrap; }
.feature-card .formation-price-link:hover,.feature-card .formation-price-link:focus-visible { color:#fff; background:var(--pink); border-color:var(--pink); }
.formation-start-price { flex:0 0 auto; color:var(--ink); font-size:13px; font-weight:650; white-space:nowrap; }
.formation-start-price strong { color:var(--pink); font-size:17px; }
.popular { position:absolute; right:22px; top:22px; color:#fff; background:var(--pink); padding:7px 12px; border-radius:999px; font-size:10px; font-weight:850; text-transform:uppercase; letter-spacing:.08em; }
.reviews-section { padding:88px max(5vw,calc((100vw - 1280px)/2)); overflow:hidden; background:linear-gradient(145deg,#fff 0,#fff7fa 55%,#fce9f1 100%); }
.reviews-heading { margin-bottom:38px; display:flex; align-items:flex-end; justify-content:space-between; gap:48px; }
.reviews-heading>div:first-child { max-width:700px; }
.reviews-heading h2 { margin:10px 0 13px; font-size:clamp(36px,4vw,55px); line-height:1.04; letter-spacing:-.045em; }
.reviews-heading>div:first-child>p:last-child { margin:0; color:var(--muted); font-size:17px; line-height:1.6; }
.reviews-preview-note { min-width:210px; padding:18px 22px; border:1px solid rgba(245,7,108,.18); border-radius:18px; display:grid; gap:4px; background:rgba(255,255,255,.78); box-shadow:0 15px 40px rgba(41,20,30,.07); }
.reviews-preview-note span,.review-stars { color:var(--pink); letter-spacing:.09em; }
.reviews-preview-note strong { font-size:16px; }
.reviews-preview-note small { color:var(--muted); font-size:11px; }
.reviews-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.reviews-grid.is-single { grid-template-columns:1fr; }
.reviews-grid.has-two { grid-template-columns:repeat(2,minmax(0,1fr)); }
.reviews-grid.has-four { grid-template-columns:repeat(2,minmax(0,1fr)); }
.reviews-grid.has-five { grid-template-columns:repeat(6,minmax(0,1fr)); }
.reviews-grid.has-five .review-card { grid-column:span 2; }
.reviews-grid.has-five .review-card:nth-child(4),.reviews-grid.has-five .review-card:nth-child(5) { grid-column:span 3; }
.review-card { min-height:260px; padding:28px; border:1px solid #ece5e8; border-radius:22px; display:flex; flex-direction:column; background:#fff; box-shadow:0 18px 50px rgba(35,20,27,.07); }
.review-card.featured { border-color:rgba(245,7,108,.45); box-shadow:0 22px 56px rgba(245,7,108,.12); transform:translateY(-7px); }
.review-card.real-review { min-height:0; padding:34px 38px; }
.review-card.real-review.featured { transform:none; }
.review-card.real-review blockquote { max-width:1080px; margin:18px 0 28px; font-size:20px; }
.review-card-top { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.review-card-top small { padding:6px 9px; border-radius:999px; color:#7e6570; background:#f8f1f4; font-size:9px; font-weight:850; letter-spacing:.08em; text-transform:uppercase; }
.review-quote-mark { height:35px; color:var(--pink); font-family:Georgia,serif; font-size:62px; line-height:.78; }
.review-card blockquote { margin:28px 0 30px; flex:1; color:#262832; font-size:18px; font-weight:700; line-height:1.55; }
.review-author { display:flex; align-items:center; gap:12px; }
.review-author>span { width:42px; height:42px; border-radius:50%; display:grid; place-items:center; color:#fff; background:linear-gradient(145deg,var(--pink),#c90055); font-weight:900; }
.review-author strong,.review-author small { display:block; }
.review-author strong { margin-bottom:3px; font-size:14px; }
.review-author small { color:var(--muted); font-size:11px; }
.reviews-disclaimer { margin:20px 0 0; color:#8d7580; font-size:11px; text-align:right; }
.steps-section { padding-top:68px; padding-bottom:70px; background:#fff; }
.steps-section .section-heading { margin-bottom:30px; }
.steps-section .section-heading h2 { font-size:clamp(30px,3vw,42px); }
.steps { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line); }
.steps article { padding:24px 22px 14px 0; border-right:1px solid var(--line); }
.steps article:not(:first-child) { padding-left:22px; }
.steps article:last-child { border-right:0; }
.steps b,.values b { color:var(--pink); font-size:13px; }
.step-icon { width:38px; height:38px; border-radius:12px; display:grid; place-items:center; color:var(--pink); background:#fff0f6; font-size:17px; font-weight:900; }
.steps h3,.values h3 { font-size:20px; margin:16px 0 6px; }
.steps p,.values p { color:var(--muted); line-height:1.45; }
.student-space-section { padding:80px max(5vw,calc((100vw - 1280px)/2)); display:grid; grid-template-columns:1.15fr .85fr; grid-template-areas:"copy dashboard" "benefits dashboard"; column-gap:6%; row-gap:24px; align-items:start; overflow:hidden; color:#fff; background:radial-gradient(circle at 80% 20%,rgba(245,7,108,.24),transparent 32%),#12141b; }
.student-space-copy { grid-area:copy; }
.student-space-copy h2 { max-width:620px; margin:10px 0 16px; font-size:clamp(36px,3.6vw,50px); line-height:1.04; letter-spacing:-.045em; }
.student-space-copy>p:not(.eyebrow) { max-width:590px; color:#b8bcc6; font-size:16px; line-height:1.6; }
.student-space-benefits { grid-area:benefits; }
.student-space-benefits ul { margin:0 0 24px; padding:0; display:grid; gap:12px; list-style:none; }
.student-space-benefits li { display:flex; align-items:flex-start; gap:12px; }
.student-space-benefits li>span { width:25px; height:25px; border-radius:50%; display:grid; place-items:center; flex:0 0 auto; color:#fff; background:var(--pink); font-size:11px; font-weight:900; }
.student-space-benefits li strong,.student-space-benefits li small { display:block; }
.student-space-benefits li strong { margin:1px 0 3px; }
.student-space-benefits li small { color:#9297a3; line-height:1.4; }
.student-dashboard { grid-area:dashboard; justify-self:end; width:100%; max-width:450px; position:relative; padding:22px; border:1px solid #343740; border-radius:24px; background:#f7f7fa; color:var(--ink); box-shadow:0 28px 65px rgba(0,0,0,.34); transform:rotate(.6deg); }
.student-dashboard::before { content:''; position:absolute; inset:-18px; z-index:-1; border:1px solid rgba(245,7,108,.25); border-radius:35px; }
.dashboard-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:23px; }
.dashboard-head>div span,.dashboard-head>div strong { display:block; }
.dashboard-head>div span { color:#8a8f9a; font-size:12px; }
.dashboard-head>div strong { margin-top:5px; font-size:22px; }
.dashboard-head>b { width:45px; height:45px; border-radius:14px; display:grid; place-items:center; background:#fff; box-shadow:0 8px 22px rgba(15,16,23,.08); font-size:17px; }
.dashboard-head>b span { color:var(--pink); }
.progress-panel { padding:24px; border-radius:20px; display:grid; grid-template-columns:auto 1fr; gap:22px; align-items:center; color:#fff; background:#1a1c24; }
.progress-ring { width:92px; height:92px; border-radius:50%; display:grid; place-items:center; background:conic-gradient(var(--pink) 0 68%,#383b44 68% 100%); position:relative; }
.progress-ring::after { content:''; position:absolute; inset:9px; border-radius:50%; background:#1a1c24; }
.progress-ring span { position:relative; z-index:1; font-size:25px; font-weight:850; }
.progress-ring small { font-size:12px; }
.progress-panel>div:last-child>small { color:var(--pink); font-size:9px; font-weight:850; letter-spacing:.1em; }
.progress-panel h3 { margin:5px 0; font-size:19px; }
.progress-panel p { margin:0 0 11px; color:#a8acb6; font-size:12px; }
.progress-bar { height:6px; overflow:hidden; border-radius:9px; background:#3c3f48; }
.progress-bar i { display:block; width:68%; height:100%; border-radius:9px; background:var(--pink); }
.dashboard-grid { margin:16px 0; display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.dashboard-grid article { padding:18px; border:1px solid #e7e8ec; border-radius:16px; background:#fff; }
.dashboard-grid span,.dashboard-grid strong,.dashboard-grid small { display:block; }
.dashboard-grid span { color:#8a8f9a; font-size:10px; }
.dashboard-grid strong { margin:7px 0; font-size:18px; }
.dashboard-grid small { color:var(--pink); font-size:10px; }
.skills { padding:18px; border-radius:16px; background:#fff; }
.skills>div { display:flex; justify-content:space-between; font-size:11px; }
.skills>div b { color:#8a8f9a; font-size:9px; }
.skills>i { display:block; height:5px; margin:8px 0 13px; border-radius:6px; background:#e8e9ed; }
.skills>i.done { background:var(--pink); }
.skills>i.current { background:linear-gradient(90deg,var(--pink) 0 58%,#e8e9ed 58%); }
.student-phone { grid-area:dashboard; justify-self:end; position:relative; width:230px; height:455px; padding:9px; border:6px solid #090a0d; border-radius:40px; background:#090a0d; box-shadow:0 30px 70px rgba(0,0,0,.48); transform:rotate(1.5deg); }
.phone-camera { position:absolute; z-index:2; top:13px; left:50%; width:58px; height:15px; border-radius:12px; background:#090a0d; transform:translateX(-50%); }
.phone-screen { position:relative; height:100%; overflow:hidden; padding:36px 14px 58px; border-radius:28px; color:var(--ink); background:linear-gradient(155deg,#fff 0,#f5f5fa 58%,#ffe8f2 100%); }
.phone-app-head { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.phone-app-head>b { width:34px; height:34px; border-radius:11px; display:grid; place-items:center; background:#fff; box-shadow:0 7px 18px rgba(15,16,23,.1); font-size:13px; }
.phone-app-head>b span { color:var(--pink); }
.phone-app-head>small { color:#777c87; font-size:9px; font-weight:750; }
.phone-app-progress { margin-top:22px; padding:14px; border-radius:19px; display:grid; grid-template-columns:52px 1fr; gap:10px; align-items:center; color:#fff; background:#171923; }
.phone-app-progress>span { width:52px; height:52px; border-radius:50%; display:grid; place-items:center; background:conic-gradient(var(--pink) 0 68%,#393c46 68%); font-size:16px; font-weight:850; }
.phone-app-progress>span small { font-size:8px; }
.phone-app-progress>div strong,.phone-app-progress>div small { display:block; }
.phone-app-progress>div strong { font-size:11px; }
.phone-app-progress>div small { margin-top:4px; color:#9fa3ad; font-size:7px; line-height:1.3; }
.phone-app-progress i { display:block; height:4px; margin-top:8px; overflow:hidden; border-radius:5px; background:#3b3e48; }
.phone-app-progress i em { display:block; width:68%; height:100%; border-radius:5px; background:var(--pink); }
.phone-app-card { margin-top:13px; padding:14px; border-radius:17px; background:#fff; box-shadow:0 9px 24px rgba(15,16,23,.08); }
.phone-app-card small,.phone-app-card strong,.phone-app-card span { display:block; }
.phone-app-card small,.phone-app-result small { color:#8a8f99; font-size:8px; }
.phone-app-card strong { margin:7px 0 4px; font-size:14px; }
.phone-app-card span { color:var(--pink); font-size:9px; }
.phone-app-result { margin-top:11px; padding:13px 14px; border-radius:17px; display:flex; align-items:center; justify-content:space-between; background:#fff; box-shadow:0 9px 24px rgba(15,16,23,.07); }
.phone-app-result small,.phone-app-result strong { display:block; }
.phone-app-result strong { margin-top:4px; font-size:15px; }
.phone-app-result>b { width:28px; height:28px; border-radius:10px; display:grid; place-items:center; color:#fff; background:var(--pink); }
.phone-app-nav { position:absolute; left:10px; right:10px; bottom:13px; padding:9px 7px; border-radius:14px; display:grid; grid-template-columns:repeat(3,1fr); background:rgba(255,255,255,.92); box-shadow:0 7px 20px rgba(15,16,23,.09); }
.phone-app-nav span { display:grid; place-items:center; gap:3px; color:#8a8f99; font-size:12px; }
.phone-app-nav span.active { color:var(--pink); }
.phone-app-nav small { font-size:6px; font-weight:750; }
.phone-homebar { position:absolute; bottom:14px; left:50%; width:70px; height:4px; border-radius:4px; background:#11131a; transform:translateX(-50%); }
.quote-section { padding:100px 7vw; text-align:center; color:#fff; background:var(--ink); }
.quote-section blockquote { max-width:1000px; margin:auto; font-size:clamp(28px,3vw,47px); line-height:1.28; font-weight:650; letter-spacing:-.03em; }
.quote-section p { margin-top:26px; color:var(--pink); font-weight:750; }
.cta-band { display:flex; align-items:center; justify-content:space-between; gap:40px; padding:70px max(5vw,calc((100vw - 1280px)/2)); background:var(--pink); color:#fff; }
.cta-band .eyebrow { color:#fff; opacity:.75; }
.cta-band h2 { margin:8px 0 0; font-size:clamp(32px,4vw,52px); letter-spacing:-.04em; }
.cta-band>div:last-child { display:flex; gap:12px; }
.button-light { color:var(--pink); background:#fff; box-shadow:none; }
.footer { padding:70px max(5vw,calc((100vw - 1280px)/2)) 28px; color:#dfe0e5; background:#0c0d12; }
.footer-main { display:grid; grid-template-columns:1.1fr repeat(4,1fr); gap:42px; }
.footer p,.footer a { display:block; color:#999da9; margin:8px 0; font-size:14px; line-height:1.55; }
.footer .footer-approval { margin-top:16px; padding-top:13px; border-top:1px solid #2a2c33; color:#b9bdc7; font-size:12px; }
.footer .footer-approval strong { display:block; margin-top:2px; color:#fff; font-size:13px; letter-spacing:.035em; }
.footer a:hover { color:var(--pink); }
.footer-areas { margin-top:42px; padding:20px 0; border-top:1px solid #25272e; border-bottom:1px solid #25272e; display:flex; align-items:center; flex-wrap:wrap; gap:10px 18px; }
.footer-areas span { color:#dfe0e5; font-size:13px; font-weight:750; }
.footer-areas a { margin:0; color:#aeb1ba; font-size:13px; }

.city-hero { min-height:570px; padding:86px max(5vw,calc((100vw - 1280px)/2)); display:grid; grid-template-columns:minmax(0,1.2fr) minmax(330px,.8fr); gap:8%; align-items:center; overflow:hidden; color:#fff; background:radial-gradient(circle at 80% 15%,rgba(245,7,108,.26),transparent 35%),#12141b; }
.city-switcher { position:relative; z-index:3; min-height:58px; padding:9px max(5vw,calc((100vw - 1280px)/2)); display:flex; align-items:center; justify-content:center; gap:9px; overflow-x:auto; background:#101218; box-shadow:0 8px 28px rgba(0,0,0,.22); scrollbar-width:none; }
.city-switcher::-webkit-scrollbar { display:none; }
.city-switcher a { padding:9px 14px; border:1px solid #454853; border-radius:999px; flex:0 0 auto; color:#fff; font-size:13px; font-weight:750; transition:.2s ease; }
.city-switcher a:hover,.city-switcher a.active { border-color:var(--pink); background:var(--pink); }
.city-hero-copy { max-width:700px; }
.city-hero h1 { margin:14px 0 24px; font-size:clamp(55px,6vw,84px); line-height:.96; letter-spacing:-.055em; }
.city-hero h1 em { color:var(--pink); font-style:normal; }
.city-hero-copy>p:last-of-type { max-width:650px; color:#d4d6dc; font-size:19px; line-height:1.65; }
.city-secondary { min-height:54px; padding:0 25px; border:1px solid #5b5e68; border-radius:999px; display:inline-flex; align-items:center; justify-content:center; color:#fff; font-weight:750; }
.city-secondary:hover { border-color:var(--pink); color:var(--pink); }
.city-place-card { position:relative; padding:42px; overflow:hidden; border:1px solid rgba(255,255,255,.12); border-radius:28px; background:rgba(255,255,255,.07); box-shadow:0 28px 70px rgba(0,0,0,.28); backdrop-filter:blur(12px); }
.city-place-card::after { content:''; position:absolute; width:190px; height:190px; right:-82px; bottom:-92px; border:35px solid rgba(245,7,108,.14); border-radius:50%; }
.city-pin { width:52px; height:52px; margin-bottom:25px; border-radius:17px; display:grid; place-items:center; color:#fff; background:var(--pink); font-size:25px; }
.city-place-card small { color:#ff80b7; font-size:11px; font-weight:850; letter-spacing:.12em; text-transform:uppercase; }
.city-place-card h2 { margin:10px 0 14px; font-size:30px; line-height:1.15; }
.city-place-card p { color:#bdc0c9; line-height:1.6; }
.city-place-card a { position:relative; z-index:1; display:inline-block; margin-top:15px; color:#fff; font-weight:800; }
.city-content { display:grid; grid-template-columns:.9fr 1.1fr; gap:9%; align-items:start; }
.city-content h2 { margin:10px 0 0; font-size:clamp(36px,4vw,58px); line-height:1.05; letter-spacing:-.045em; }
.city-benefits { margin:0; padding:0; display:grid; gap:15px; list-style:none; }
.city-benefits li { padding:20px 22px; border:1px solid var(--line); border-radius:18px; display:flex; gap:15px; align-items:flex-start; background:#fff; box-shadow:0 13px 35px rgba(17,19,26,.05); }
.city-benefits li span { width:28px; height:28px; border-radius:50%; display:grid; place-items:center; flex:0 0 auto; color:#fff; background:var(--pink); font-size:12px; font-weight:900; }
.city-benefits p { margin:3px 0 0; color:#4e535e; line-height:1.55; }
.city-local-proof { display:grid; grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr); gap:7%; align-items:center; background:#fff; }
.city-local-photo { position:relative; min-height:510px; margin:0; overflow:hidden; border-radius:28px; background:#e9eaed; box-shadow:0 24px 65px rgba(17,19,26,.13); }
.city-local-photo img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.city-local-photo::after { content:''; position:absolute; inset:auto 0 0; height:38%; background:linear-gradient(transparent,rgba(9,10,14,.74)); pointer-events:none; }
.city-local-photo figcaption { position:absolute; z-index:2; left:25px; right:25px; bottom:22px; display:flex; align-items:center; gap:9px; color:#fff; font-size:13px; font-weight:800; }
.city-local-photo figcaption span { color:var(--pink); font-size:18px; }
.city-local-copy h2 { margin:10px 0 22px; max-width:650px; font-size:clamp(37px,4vw,57px); line-height:1.05; letter-spacing:-.045em; }
.city-local-story p { margin:0 0 15px; color:#555a65; font-size:16px; line-height:1.72; }
.city-local-facts { margin:27px 0 22px; display:grid; gap:9px; }
.city-local-facts>div { padding:15px 17px; border:1px solid #e5e5e9; border-radius:15px; display:grid; grid-template-columns:145px 1fr; gap:15px; background:#f8f8fa; }
.city-local-facts dt { color:var(--pink); font-size:10px; font-weight:900; letter-spacing:.09em; text-transform:uppercase; }
.city-local-facts dd { margin:0; color:#292c34; font-size:14px; font-weight:750; }
.city-local-actions { display:flex; align-items:center; gap:24px; flex-wrap:wrap; }
.city-local-actions a { font-weight:800; }
.city-local-actions>a:last-child { color:#444955; }
.city-training-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.city-training-grid a { min-height:145px; padding:30px; border:1px solid #e7e7eb; border-radius:22px; display:flex; flex-direction:column; justify-content:space-between; background:#fff; box-shadow:0 17px 45px rgba(17,19,26,.06); transition:.2s ease; }
.city-training-grid a:hover { border-color:rgba(245,7,108,.45); transform:translateY(-4px); }
.city-training-grid strong { font-size:23px; }
.city-training-grid span { color:var(--pink); font-size:13px; font-weight:800; }
.city-faq .section-heading { margin-bottom:28px; }
.city-page-auto-ecole-lhay-les-roses .city-hero h1 { max-width:780px; font-size:clamp(46px,5.1vw,72px); line-height:1.01; }
.city-section-heading { max-width:820px; margin-bottom:30px; }
.city-section-heading h2 { margin:10px 0 14px; font-size:clamp(36px,4vw,54px); line-height:1.05; letter-spacing:-.045em; }
.city-section-heading>p:last-child { margin:0; color:var(--muted); font-size:16px; line-height:1.65; }
.city-price-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.city-price-grid article { min-height:250px; padding:30px; border:1px solid #e6e7eb; border-radius:24px; display:flex; flex-direction:column; background:#fff; box-shadow:0 18px 46px rgba(17,19,26,.06); }
.city-price-grid article.highlighted { border-color:rgba(245,7,108,.35); background:linear-gradient(145deg,#fff 35%,#fff1f7); }
.city-price-grid small { color:var(--pink); font-size:11px; font-weight:900; letter-spacing:.09em; text-transform:uppercase; }
.city-price-grid strong { margin:14px 0 18px; font-size:38px; letter-spacing:-.04em; }
.city-price-grid p { margin:0; color:#575d68; line-height:1.62; }
.city-price-footer { margin-top:22px; display:flex; align-items:center; justify-content:space-between; gap:30px; }
.city-price-footer p { max-width:700px; margin:0; color:#777c86; font-size:13px; line-height:1.55; }
.city-price-footer .button { flex:0 0 auto; }
.city-testimonials { background:#f8f8fa; }
.city-review-grid .review-card { min-height:100%; }
.city-review-grid .review-card blockquote { font-size:17px; }
.city-all-reviews { display:inline-block; margin-top:24px; }
.city-access { display:grid; grid-template-columns:minmax(0,.85fr) minmax(420px,1.15fr); gap:7%; align-items:center; }
.city-access-copy h2 { margin:10px 0 18px; font-size:clamp(36px,4vw,54px); line-height:1.05; letter-spacing:-.045em; }
.city-access-copy>p:not(.eyebrow) { color:#555a65; line-height:1.7; }
.city-access-copy .city-local-facts { margin-bottom:26px; }
.city-map-card { min-height:470px; overflow:hidden; border:1px solid #e5e5e9; border-radius:28px; background:#eceef1; box-shadow:0 22px 60px rgba(17,19,26,.12); }
.city-map-card iframe { width:100%; height:470px; border:0; display:block; }

@media (max-width: 820px) {
  .city-switcher { justify-content:flex-start; padding:9px 18px; }
  .city-switcher a { padding:8px 12px; font-size:12px; }
  .city-hero { min-height:auto; padding-top:70px; padding-bottom:70px; grid-template-columns:1fr; gap:42px; }
  .city-hero h1 { font-size:clamp(46px,13vw,64px); }
  .city-hero-copy>p:last-of-type { font-size:17px; }
  .city-place-card { padding:30px; }
  .city-content { grid-template-columns:1fr; gap:34px; }
  .city-local-proof { grid-template-columns:1fr; gap:38px; }
  .city-local-photo { min-height:420px; }
  .city-training-grid { grid-template-columns:1fr; }
  .city-page-auto-ecole-lhay-les-roses .city-hero h1 { max-width:100%; font-size:clamp(40px,10.8vw,56px); }
  .city-price-grid { grid-template-columns:1fr; }
  .city-price-grid article { min-height:0; }
  .city-price-footer { align-items:flex-start; flex-direction:column; }
  .city-access { grid-template-columns:1fr; gap:34px; }
  .city-map-card,.city-map-card iframe { min-height:390px; height:390px; }
  .footer-areas { align-items:flex-start; flex-direction:column; gap:2px; }
}
@media(max-width:620px) {
  .city-local-photo { min-height:320px; border-radius:21px; }
  .city-local-photo figcaption { left:17px; right:17px; bottom:16px; font-size:11px; }
  .city-local-copy h2 { font-size:34px; }
  .city-local-story p { font-size:15px; }
  .city-local-facts>div { grid-template-columns:1fr; gap:5px; padding:13px 14px; }
  .city-local-actions { align-items:flex-start; flex-direction:column; gap:13px; }
  .city-section-heading h2,.city-access-copy h2 { font-size:34px; }
  .city-price-grid article { padding:24px; border-radius:20px; }
  .city-price-grid strong { font-size:34px; }
  .city-review-grid { grid-template-columns:1fr; }
  .city-review-grid .review-card.real-review { padding:25px 23px; }
  .city-review-grid .review-card blockquote { font-size:15px; }
  .city-map-card,.city-map-card iframe { min-height:320px; height:320px; border-radius:21px; }
}
.footer h2 { color:#fff; font-size:14px; margin:16px 0; }
.social-links { margin-top:14px; display:flex; gap:10px; }
.social-link { width:44px; height:44px; border:1px solid #383b45; border-radius:14px; display:grid; place-items:center; color:#fff; background:#181a21; transition:.2s ease; cursor:default; }
.social-link:hover { color:#fff; border-color:var(--pink); background:var(--pink); transform:translateY(-2px); box-shadow:0 10px 25px rgba(245,7,108,.2); }
.social-link svg { width:21px; height:21px; fill:none; stroke:currentColor; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; }
.social-link .social-dot { fill:currentColor; stroke:none; }

/* Ordinateur : composition large distincte de la version mobile */
/* Local SEO page: denser editorial layout */
.city-page-auto-ecole-lhay-les-roses .section { padding-top:78px; padding-bottom:78px; }
.city-page-auto-ecole-lhay-les-roses .city-hero { min-height:510px; padding-top:68px; padding-bottom:68px; grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr); gap:6%; }
.city-page-auto-ecole-lhay-les-roses .city-hero h1 { max-width:760px; margin:12px 0 20px; font-size:clamp(42px,4.35vw,62px); line-height:1.04; }
.city-page-auto-ecole-lhay-les-roses .city-hero-copy>p:last-of-type { max-width:720px; font-size:17px; line-height:1.62; }
.city-page-auto-ecole-lhay-les-roses .city-place-card { padding:32px; border-radius:22px; }
.city-page-auto-ecole-lhay-les-roses .city-pin { width:44px; height:44px; margin-bottom:18px; border-radius:14px; font-size:21px; }
.city-page-auto-ecole-lhay-les-roses .city-place-card h2 { font-size:25px; }
.city-page-auto-ecole-lhay-les-roses .city-content { grid-template-columns:minmax(260px,.72fr) minmax(0,1.28fr); gap:7%; }
.city-page-auto-ecole-lhay-les-roses .city-content h2 { font-size:clamp(34px,3.2vw,46px); }
.city-page-auto-ecole-lhay-les-roses .city-benefits { gap:10px; }
.city-page-auto-ecole-lhay-les-roses .city-benefits li { padding:16px 18px; border-radius:15px; }
.city-page-auto-ecole-lhay-les-roses .city-local-proof { grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr); gap:6%; }
.city-page-auto-ecole-lhay-les-roses .city-local-photo { min-height:430px; border-radius:23px; }
.city-page-auto-ecole-lhay-les-roses .city-local-copy h2 { margin-bottom:18px; font-size:clamp(34px,3.3vw,47px); }
.city-page-auto-ecole-lhay-les-roses .city-local-story p { margin-bottom:12px; font-size:15px; line-height:1.65; }
.city-page-auto-ecole-lhay-les-roses .city-local-facts { margin:20px 0 18px; }
.city-page-auto-ecole-lhay-les-roses .city-local-facts>div { padding:12px 14px; }
.city-editorial { display:grid; grid-template-columns:minmax(280px,.78fr) minmax(0,1.22fr); gap:8%; align-items:start; background:#12141b; color:#fff; }
.city-editorial-heading { position:sticky; top:96px; }
.city-editorial-heading h2 { margin:10px 0 0; max-width:500px; font-size:clamp(35px,3.5vw,50px); line-height:1.08; letter-spacing:-.04em; }
.city-editorial-copy { columns:2; column-gap:38px; }
.city-editorial-copy p { margin:0 0 20px; break-inside:avoid; color:#c8cbd3; font-size:15px; line-height:1.76; }
.city-page-auto-ecole-lhay-les-roses .city-formations .section-heading { max-width:760px; margin-bottom:28px; }
.city-page-auto-ecole-lhay-les-roses .city-formations .section-heading h2 { font-size:clamp(34px,3.4vw,48px); }
.city-page-auto-ecole-lhay-les-roses .city-training-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.city-page-auto-ecole-lhay-les-roses .city-training-grid a { min-height:112px; padding:20px; border-radius:17px; }
.city-page-auto-ecole-lhay-les-roses .city-training-grid strong { font-size:18px; line-height:1.2; }
.city-page-auto-ecole-lhay-les-roses .city-training-grid span { margin-top:16px; font-size:11px; }
.city-page-auto-ecole-lhay-les-roses .city-section-heading { margin-bottom:24px; }
.city-page-auto-ecole-lhay-les-roses .city-section-heading h2 { font-size:clamp(34px,3.5vw,48px); }
.city-page-auto-ecole-lhay-les-roses .city-price-grid { gap:12px; }
.city-page-auto-ecole-lhay-les-roses .city-price-grid article { min-height:0; padding:24px; border-radius:18px; }
.city-page-auto-ecole-lhay-les-roses .city-price-grid strong { margin:10px 0 13px; font-size:34px; }
.city-page-auto-ecole-lhay-les-roses .city-price-grid p { font-size:14px; line-height:1.58; }
.city-page-auto-ecole-lhay-les-roses .city-review-grid .review-card.real-review { padding:28px; }
.city-page-auto-ecole-lhay-les-roses .city-review-grid .review-card blockquote { font-size:15px; line-height:1.62; }
.city-page-auto-ecole-lhay-les-roses .city-access { grid-template-columns:minmax(0,1fr) minmax(430px,1fr); gap:6%; }
.city-page-auto-ecole-lhay-les-roses .city-access-copy h2 { font-size:clamp(34px,3.3vw,47px); }
.city-page-auto-ecole-lhay-les-roses .city-map-card,.city-page-auto-ecole-lhay-les-roses .city-map-card iframe { min-height:380px; height:380px; }

@media(max-width:980px) {
  .city-page-auto-ecole-lhay-les-roses .city-training-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .city-editorial { grid-template-columns:1fr; gap:30px; }
  .city-editorial-heading { position:static; }
  .city-page-auto-ecole-lhay-les-roses .city-access { grid-template-columns:1fr; }
}
@media(max-width:680px) {
  .city-page-auto-ecole-lhay-les-roses .section { padding-top:58px; padding-bottom:58px; }
  .city-page-auto-ecole-lhay-les-roses .city-hero { width:100%; padding-top:52px; padding-bottom:52px; grid-template-columns:minmax(0,1fr); gap:28px; }
  .city-page-auto-ecole-lhay-les-roses .city-hero-copy { max-width:100%; text-align:center; }
  .city-page-auto-ecole-lhay-les-roses .city-hero-copy .eyebrow { justify-content:center; }
  .city-page-auto-ecole-lhay-les-roses .city-hero h1 { font-size:39px; line-height:1.06; letter-spacing:-.045em; }
  .city-page-auto-ecole-lhay-les-roses .city-hero-copy>p:last-of-type { max-width:520px; margin-right:auto; margin-left:auto; font-size:16px; line-height:1.58; }
  .city-page-auto-ecole-lhay-les-roses .city-hero-copy .actions { max-width:390px; margin-right:auto; margin-left:auto; }
  .city-page-auto-ecole-lhay-les-roses .city-place-card { padding:24px; text-align:left; }
  .city-page-auto-ecole-lhay-les-roses .city-content,.city-page-auto-ecole-lhay-les-roses .city-local-proof { grid-template-columns:1fr; gap:26px; }
  .city-page-auto-ecole-lhay-les-roses .city-content>div:first-child { max-width:520px; margin:0 auto; text-align:center; }
  .city-page-auto-ecole-lhay-les-roses .city-content .eyebrow { justify-content:center; }
  .city-page-auto-ecole-lhay-les-roses .city-content h2 { font-size:34px; }
  .city-page-auto-ecole-lhay-les-roses .city-local-photo { min-height:300px; }
  .city-page-auto-ecole-lhay-les-roses .city-local-copy>h2,.city-page-auto-ecole-lhay-les-roses .city-local-copy>.eyebrow { text-align:center; }
  .city-page-auto-ecole-lhay-les-roses .city-local-copy>.eyebrow { justify-content:center; }
  .city-page-auto-ecole-lhay-les-roses .city-local-copy h2 { max-width:520px; margin-right:auto; margin-left:auto; }
  .city-page-auto-ecole-lhay-les-roses .city-local-actions { justify-content:center; align-items:center; text-align:center; }
  .city-editorial-heading { max-width:540px; margin:0 auto; text-align:center; }
  .city-editorial-heading .eyebrow { justify-content:center; }
  .city-editorial-copy { columns:1; }
  .city-editorial-copy p { max-width:560px; margin-right:auto; margin-left:auto; font-size:15px; line-height:1.68; text-align:left; }
  .city-page-auto-ecole-lhay-les-roses .city-formations .section-heading,.city-page-auto-ecole-lhay-les-roses .city-section-heading { max-width:540px; margin-right:auto; margin-left:auto; text-align:center; }
  .city-page-auto-ecole-lhay-les-roses .city-section-heading .eyebrow { justify-content:center; }
  .city-page-auto-ecole-lhay-les-roses .city-training-grid { grid-template-columns:1fr 1fr; gap:10px; }
  .city-page-auto-ecole-lhay-les-roses .city-training-grid a { min-height:104px; padding:17px; align-items:center; text-align:center; }
  .city-page-auto-ecole-lhay-les-roses .city-training-grid strong { font-size:16px; }
  .city-page-auto-ecole-lhay-les-roses .city-price-grid { gap:10px; }
  .city-page-auto-ecole-lhay-les-roses .city-price-grid article { padding:21px; text-align:center; }
  .city-page-auto-ecole-lhay-les-roses .city-price-grid article p { max-width:470px; margin:0 auto; text-align:left; }
  .city-page-auto-ecole-lhay-les-roses .city-price-footer { align-items:center; text-align:center; }
  .city-page-auto-ecole-lhay-les-roses .city-testimonials .city-section-heading { text-align:center; }
  .city-page-auto-ecole-lhay-les-roses .city-all-reviews { width:100%; text-align:center; }
  .city-page-auto-ecole-lhay-les-roses .city-access-copy { text-align:center; }
  .city-page-auto-ecole-lhay-les-roses .city-access-copy .eyebrow { justify-content:center; }
  .city-page-auto-ecole-lhay-les-roses .city-access-copy>p:not(.eyebrow) { max-width:520px; margin-right:auto; margin-left:auto; }
  .city-page-auto-ecole-lhay-les-roses .city-access-copy .city-local-facts { text-align:left; }
  .city-page-auto-ecole-lhay-les-roses .city-faq .section-heading { max-width:520px; margin-right:auto; margin-left:auto; text-align:center; }
  .city-page-auto-ecole-lhay-les-roses .city-map-card,.city-page-auto-ecole-lhay-les-roses .city-map-card iframe { min-height:300px; height:300px; }
}
.footer-bottom { margin-top:55px; padding-top:24px; border-top:1px solid #2a2c33; display:flex; justify-content:space-between; color:#777b86; font-size:12px; }
.footer-legal { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:6px; }
.footer-legal a,.footer-legal span { display:inline; margin:0; color:inherit; font-size:inherit; line-height:1.4; }
.footer-legal a { color:#b9bbc4; text-decoration:none; }
.footer-legal a:hover { color:var(--pink); }

.legal-page { padding:80px max(5vw,calc((100vw - 1120px)/2)) 100px; background:#f7f7f9; }
.legal-intro { display:flex; align-items:center; justify-content:space-between; gap:30px; margin-bottom:28px; }
.legal-intro p { max-width:720px; margin:0; color:#5d606b; line-height:1.7; }
.legal-actions { display:flex; flex-shrink:0; gap:10px; }
.legal-actions .button { white-space:nowrap; }
.legal-actions .button.secondary { color:var(--pink); border:1px solid var(--pink); background:#fff; }
.legal-document { overflow:hidden; min-height:760px; border:1px solid #e1e2e7; border-radius:24px; background:#fff; box-shadow:0 18px 55px rgba(17,18,24,.08); }
.legal-document object { display:block; width:100%; height:900px; border:0; }
.legal-document-fallback { display:grid; min-height:460px; place-items:center; padding:40px; text-align:center; }
.legal-document-fallback p { max-width:520px; color:#5d606b; }
body.promo-open { overflow:hidden; }
.promo-popup { position:fixed; z-index:1000; inset:0; display:flex; align-items:center; justify-content:center; padding:24px; }
.promo-popup[hidden] { display:none; }
.promo-popup-backdrop { position:absolute; inset:0; width:100%; height:100%; border:0; background:rgba(10,11,16,.72); backdrop-filter:blur(6px); cursor:pointer; }
.promo-popup-dialog { position:relative; z-index:1; width:min(760px,100%); min-height:390px; overflow:hidden; display:grid; grid-template-columns:245px 1fr; border:1px solid rgba(255,255,255,.3); border-radius:29px; background:#fff; box-shadow:0 35px 95px rgba(0,0,0,.36); animation:promoPopupIn .35s ease both; }
.promo-popup-close { position:absolute; z-index:3; top:16px; right:16px; width:39px; height:39px; border:1px solid #e2e3e7; border-radius:50%; color:#565b65; background:#fff; font-size:25px; line-height:1; cursor:pointer; }
.promo-popup-badge { position:relative; isolation:isolate; overflow:hidden; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:24px; color:#fff; background:radial-gradient(circle at 20% 10%,#3b3f49,#171920 48%,#090a0e); }
.promo-popup-badge::before { content:''; position:absolute; z-index:-1; width:310px; height:310px; right:-220px; top:-80px; border:45px solid rgba(245,7,108,.24); border-radius:50%; }
.promo-road-lines { position:absolute; z-index:-1; left:50%; top:-20%; width:92px; height:145%; border-left:2px solid rgba(255,255,255,.16); border-right:2px solid rgba(255,255,255,.16); background:repeating-linear-gradient(to bottom,transparent 0 22px,rgba(255,255,255,.28) 22px 45px) center/3px 100% no-repeat; transform:translateX(-50%) rotate(15deg); }
.promo-road-lines i { display:none; }
.promo-steering { position:relative; width:88px; height:88px; border:6px solid #fff; border-radius:50%; box-shadow:0 10px 26px rgba(0,0,0,.35); }
.promo-steering::before,.promo-steering::after { content:''; position:absolute; left:50%; top:50%; width:62px; height:6px; border-radius:5px; background:#fff; transform:translate(-50%,-50%) rotate(24deg); }
.promo-steering::after { transform:translate(-50%,-50%) rotate(156deg); }
.promo-steering span { position:absolute; z-index:1; left:50%; top:50%; width:25px; height:25px; border:5px solid #fff; border-radius:50%; background:#171920; transform:translate(-50%,-50%); }
.promo-discount-sign { width:190px; padding:15px 12px 13px; border:3px solid var(--pink); border-radius:17px; color:var(--ink); background:#fff; box-shadow:0 15px 32px rgba(0,0,0,.32); text-align:center; transform:rotate(-2deg); }
.promo-discount-sign small,.promo-discount-sign strong,.promo-discount-sign em { display:block; font-style:normal; }
.promo-discount-sign small,.promo-discount-sign em { font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
.promo-discount-sign small { color:var(--pink); font-size:9px; }
.promo-discount-sign strong { margin:2px 0; color:var(--pink); font-size:49px; line-height:1; letter-spacing:-.07em; }
.promo-discount-sign em { color:#6d727b; font-size:7px; }
.promo-popup-content { padding:48px 44px 35px; }
.promo-popup-content .eyebrow { margin:0 0 10px; }
.promo-popup-content h2 { margin:0 0 15px; max-width:390px; font-size:39px; line-height:1.02; letter-spacing:-.045em; }
.promo-popup-content .promo-popup-date { width:max-content; max-width:100%; margin:0 0 14px; padding:8px 11px; border-radius:10px; color:#a80045; background:#fff0f6; font-size:11px; font-weight:900; letter-spacing:.03em; }
.promo-popup-content>p:not(.eyebrow) { margin:0; color:var(--muted); font-size:15px; line-height:1.6; }
.promo-popup-points { margin:20px 0; display:flex; flex-wrap:wrap; gap:8px; }
.promo-popup-points span { padding:8px 10px; border-radius:999px; color:#555b65; background:#f4f4f6; font-size:11px; font-weight:800; }
.promo-popup-actions { margin:22px 0 16px; display:flex; align-items:center; gap:17px; }
.promo-popup-actions .button { min-height:50px; padding:0 22px; }
.promo-popup-actions>button { border:0; color:#777c85; background:transparent; font:inherit; font-size:13px; font-weight:800; cursor:pointer; }
.promo-popup-content>small { display:block; color:#979ba3; font-size:10px; line-height:1.4; }
@keyframes promoPopupIn { from { opacity:0; transform:translateY(18px) scale(.97); } to { opacity:1; transform:none; } }
.page-hero { min-height:490px; padding:105px max(5vw,calc((100vw - 1280px)/2)); color:#fff; background:radial-gradient(circle at 80% 20%,rgba(245,7,108,.35),transparent 28%),#13151c; }
.page-hero.compact { min-height:430px; }
.page-hero h1 { margin:18px 0; font-size:clamp(54px,6vw,84px); line-height:.98; letter-spacing:-.055em; }
.page-hero h1 em { color:var(--pink); font-style:normal; }
.page-hero>p:last-child { max-width:680px; color:#ccd0d8; font-size:19px; line-height:1.6; }
.tariffs-hero { position:relative; isolation:isolate; overflow:hidden; padding:86px max(5vw,calc((100vw - 1180px)/2)) 92px; color:var(--ink); background:linear-gradient(128deg,#fffaf6 0 62%,#f3f9e8 62% 100%); }
.tariffs-hero::before { content:""; position:absolute; z-index:-1; left:-120px; bottom:-180px; width:390px; height:390px; border:58px solid rgba(245,7,108,.055); border-radius:50%; }
.tariffs-hero::after { content:""; position:absolute; z-index:-1; right:4.5%; top:-100px; width:280px; height:430px; border:1px solid rgba(17,19,26,.08); border-radius:150px; transform:rotate(11deg); }
.tariffs-hero-shell { width:min(1180px,100%); margin:auto; display:grid; grid-template-columns:minmax(0,1.25fr) minmax(330px,.75fr); gap:8%; align-items:center; }
.tariffs-kicker { width:max-content; max-width:100%; display:inline-flex; align-items:center; gap:10px; padding:9px 13px; border-radius:999px; color:#9e174c; background:#ffe6f0; font-size:11px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.tariffs-kicker i { width:8px; height:8px; border-radius:50%; background:var(--pink); box-shadow:0 0 0 5px rgba(245,7,108,.1); }
.tariffs-hero h1 { max-width:760px; margin:22px 0 21px; font-size:clamp(54px,6vw,82px); line-height:.94; letter-spacing:-.065em; }
.tariffs-hero h1 em { position:relative; color:var(--pink); font-style:normal; }
.tariffs-hero h1 em::after { content:""; position:absolute; left:0; bottom:-8px; width:62%; height:7px; border-radius:999px; background:#bddf67; transform:rotate(-1.3deg); }
.tariffs-hero-copy>p { max-width:690px; margin:0; color:#5d616b; font-size:17px; line-height:1.72; }
.tariffs-hero-actions { margin-top:31px; display:flex; align-items:center; gap:24px; }
.tariffs-hero-actions .button { min-height:52px; margin:0; padding:0 25px; }
.tariffs-hero-actions>a:not(.button) { color:#24262d; font-size:14px; font-weight:850; }
.tariffs-hero-actions>a:not(.button) span { margin-left:5px; color:var(--pink); }
.tariffs-hero-price { position:relative; padding:35px 34px 31px; overflow:hidden; border:1px solid rgba(245,7,108,.13); border-radius:27px; background:#ffdce9; box-shadow:0 24px 65px rgba(55,35,45,.12); }
.tariffs-hero-price::after { content:""; position:absolute; right:-52px; top:-64px; width:170px; height:170px; border:26px solid rgba(255,255,255,.35); border-radius:50%; }
.tariffs-hero-price>span { position:relative; z-index:1; display:inline-flex; padding:7px 10px; border-radius:999px; color:#fff; background:#17191f; font-size:10px; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.tariffs-hero-price>p { margin:27px 0 2px; color:#7d5363; font-size:13px; font-weight:800; }
.tariffs-hero-price>strong { display:block; font-size:68px; line-height:.95; letter-spacing:-.065em; }
.tariffs-hero-price>small { display:block; margin:8px 0 25px; color:#6e4e5a; font-size:12px; font-weight:750; }
.tariffs-hero-proof { position:relative; z-index:1; padding:14px 0; display:grid; grid-template-columns:32px 1fr; gap:12px; align-items:center; border-top:1px solid rgba(92,50,66,.14); }
.tariffs-hero-proof>b { width:32px; height:32px; display:grid; place-items:center; border-radius:10px; color:#354611; background:#ddf982; font-size:13px; }
.tariffs-hero-proof span { color:#25262c; font-size:13px; font-weight:850; }
.tariffs-hero-proof small { display:block; margin-bottom:2px; color:#866271; font-size:9px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
@media (max-width:780px) {
  .tariffs-hero { padding:54px 20px 60px; background:linear-gradient(172deg,#fffaf6 0 71%,#f3f9e8 71% 100%); }
  .tariffs-hero::before { left:-165px; bottom:-140px; width:330px; height:330px; border-width:45px; }
  .tariffs-hero::after { right:-150px; top:10px; width:260px; height:360px; }
  .tariffs-hero-shell { grid-template-columns:1fr; gap:34px; }
  .tariffs-kicker { padding:8px 11px; font-size:9px; letter-spacing:.065em; }
  .tariffs-hero h1 { margin:19px 0 18px; font-size:clamp(43px,13.2vw,58px); line-height:.96; }
  .tariffs-hero h1 em::after { bottom:-6px; height:5px; }
  .tariffs-hero-copy>p { font-size:15px; line-height:1.65; }
  .tariffs-hero-actions { margin-top:25px; display:grid; gap:15px; }
  .tariffs-hero-actions .button { width:100%; }
  .tariffs-hero-actions>a:not(.button) { text-align:center; }
  .tariffs-hero-price { padding:27px 25px 23px; border-radius:22px; }
  .tariffs-hero-price>p { margin-top:23px; }
  .tariffs-hero-price>strong { font-size:59px; }
  .tariffs-hero-price>small { margin-bottom:19px; }
}
.formation-list { max-width:1050px; margin:0 auto; padding:65px 5vw 110px; }
.formation-showcase { max-width:1180px; margin:0 auto; padding:90px 5vw 34px; display:grid; grid-template-columns:1.1fr .9fr; gap:7%; align-items:center; }
.formation-showcase figure,.story-photo { position:relative; margin:0; aspect-ratio:4/3; overflow:hidden; border-radius:28px; background:#e9eaed; box-shadow:0 24px 60px rgba(15,16,23,.14); }
.formation-showcase figure::before,.story-photo::before { content:''; position:absolute; z-index:2; inset:16px; border:1px solid rgba(255,255,255,.48); border-radius:18px; pointer-events:none; }
.formation-showcase figure::after,.story-photo::after { content:''; position:absolute; inset:44% 0 0; background:linear-gradient(transparent,rgba(10,11,15,.78)); }
.formation-showcase img,.story-photo img { width:100%; height:100%; display:block; object-fit:cover; }
.formation-showcase figcaption,.story-photo figcaption { position:absolute; z-index:3; left:28px; right:28px; bottom:25px; color:#fff; }
.formation-showcase figcaption small,.formation-showcase figcaption strong,.story-photo figcaption small,.story-photo figcaption strong { display:block; }
.formation-showcase figcaption small,.story-photo figcaption small { margin-bottom:6px; color:#ff5c9f; font-size:10px; font-weight:900; letter-spacing:.14em; text-transform:uppercase; }
.formation-showcase figcaption strong,.story-photo figcaption strong { font-size:22px; line-height:1.25; }
.formation-showcase h2 { margin:11px 0 18px; font-size:clamp(37px,4vw,55px); line-height:1.06; letter-spacing:-.045em; }
.formation-showcase>div>p:not(.eyebrow) { color:var(--muted); font-size:17px; line-height:1.7; }
.formation-showcase-points { margin-top:25px; display:flex; flex-wrap:wrap; gap:8px; }
.formation-showcase-points span { padding:9px 12px; border-radius:999px; color:#545a64; background:#f5f5f7; font-size:11px; font-weight:800; }
.formation-row { display:grid; grid-template-columns:76px 1fr; gap:42px; align-items:start; padding:62px 0; border-bottom:1px solid var(--line); scroll-margin-top:30px; }
.formation-row:first-child { border-top:1px solid var(--line); }
.formation-number { position:sticky; top:25px; width:66px; height:66px; border-radius:20px; display:grid; place-items:center; color:var(--pink); background:#fff0f6; font-size:17px; font-weight:900; }
.formation-number svg { width:31px; height:31px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.formation-row:not(.formation-code) { grid-template-columns:58px minmax(0,1fr); gap:28px; }
.formation-row:not(.formation-code) .formation-number { width:56px; height:56px; border-radius:17px; }
.formation-row:not(.formation-code) .formation-number svg { width:27px; height:27px; }
.formation-row.formation-code { grid-template-columns:58px minmax(0,1fr); gap:28px; }
.formation-row.formation-code .formation-number { width:56px; height:56px; border-radius:17px; }
.formation-row.formation-code .formation-number svg { width:27px; height:27px; }
.formation-row h2 { margin:8px 0 12px; font-size:45px; letter-spacing:-.04em; }
.formation-lead { color:var(--muted); font-size:18px; line-height:1.6; }
.formation-row ul,.price-card ul { list-style:none; padding:0; margin:25px 0; display:grid; gap:12px; }
.formation-row li,.price-card li { color:#484d58; }
.formation-row li::first-letter,.price-card li::first-letter { color:var(--pink); }
.formation-price { display:flex; align-items:center; gap:30px; margin-top:26px; }
.formation-price strong { font-size:22px; }
.formation-price .text-link { margin:0; }
.meeting-hero { background:radial-gradient(circle at 78% 28%,rgba(245,7,108,.38),transparent 28%),linear-gradient(135deg,#11131a,#1b1e27); }
.meeting-hero-modern { position:relative; isolation:isolate; overflow:hidden; padding:84px max(5vw,calc((100vw - 1180px)/2)); display:grid; grid-template-columns:minmax(0,1.08fr) minmax(390px,.92fr); gap:7%; align-items:center; background:linear-gradient(128deg,#fffaf6 0 62%,#f2f8e7 62%); }
.meeting-hero-modern::before { content:''; position:absolute; z-index:-1; left:-120px; bottom:-190px; width:390px; height:390px; border:58px solid rgba(245,7,108,.055); border-radius:50%; }
.meeting-hero-kicker { width:max-content; display:inline-flex; align-items:center; gap:9px; padding:9px 13px; border-radius:999px; color:#727a28; background:var(--lime); font-size:10px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.meeting-hero-kicker::before { content:''; width:8px; height:8px; border-radius:50%; background:var(--pink); }
.meeting-hero-modern h1 { margin:22px 0 20px; font-size:clamp(52px,6vw,78px); line-height:.94; letter-spacing:-.065em; }
.meeting-hero-modern h1 em { position:relative; color:var(--pink); font-style:normal; }
.meeting-hero-modern h1 em::after { content:''; position:absolute; left:0; bottom:-8px; width:58%; height:7px; border-radius:9px; background:#bddf67; }
.meeting-hero-modern-copy>p { max-width:650px; margin:0; color:var(--muted); font-size:17px; line-height:1.7; }
.meeting-hero-actions { margin-top:28px; display:flex; align-items:center; gap:23px; }
.meeting-hero-actions .button { width:auto; margin:0; }
.meeting-hero-link { color:#1b1d23; font-weight:900; text-decoration:none; }
.meeting-hero-link span { color:var(--pink); }
.meeting-hero-panel { position:relative; padding:25px; border:1px solid rgba(245,7,108,.12); border-radius:28px; background:#fff; box-shadow:0 24px 60px rgba(55,35,45,.12); }
.meeting-hero-route { position:absolute; left:48px; top:66px; bottom:66px; width:2px; background:repeating-linear-gradient(to bottom,#e6b7cb 0 8px,transparent 8px 14px); }
.meeting-hero-location { position:relative; z-index:1; padding:15px 12px; display:grid; grid-template-columns:50px minmax(0,1fr) auto; gap:14px; align-items:center; border-bottom:1px solid #eeedf0; color:inherit; text-decoration:none; transition:.2s ease; }
.meeting-hero-location:last-child { border-bottom:0; }
.meeting-hero-location:hover { padding-left:17px; color:inherit; }
.meeting-hero-location>b { width:46px; height:46px; display:grid; place-items:center; border:7px solid #fff; border-radius:50%; color:#17181e; background:var(--lime); box-shadow:0 0 0 1px #dfe4ce; font-size:13px; }
.meeting-hero-location:first-of-type>b { color:#fff; background:var(--pink); box-shadow:0 0 0 1px #f3aac8; }
.meeting-hero-location small,.meeting-hero-location strong,.meeting-hero-location em { display:block; }
.meeting-hero-location small { margin-bottom:3px; color:var(--pink); font-size:9px; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.meeting-hero-location strong { font-size:16px; }
.meeting-hero-location em { margin-top:2px; color:#8a8d94; font-size:12px; font-style:normal; }
.meeting-hero-location>i { width:32px; height:32px; display:grid; place-items:center; border-radius:50%; color:#fff; background:var(--pink); font-style:normal; transition:.2s ease; }
.meeting-hero-location:hover>i { transform:translateX(3px); }
.meeting-section { max-width:1240px; margin:0 auto; padding:95px 5vw 105px; }
.meeting-heading { margin-bottom:45px; display:grid; grid-template-columns:1.1fr .9fr; gap:8%; align-items:end; }
.meeting-heading h2 { margin:9px 0 0; max-width:680px; font-size:clamp(38px,4vw,57px); line-height:1.06; letter-spacing:-.045em; }
.meeting-heading>p { margin:0; color:var(--muted); font-size:17px; line-height:1.7; }
.meeting-layout { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(340px,.75fr); gap:25px; align-items:start; }
.meeting-map { position:sticky; top:22px; min-height:650px; overflow:hidden; border:1px solid var(--line); border-radius:26px; background:#e9ebee; box-shadow:0 22px 60px rgba(15,16,23,.12); }
.meeting-map::after { content:''; position:absolute; inset:0; pointer-events:none; box-shadow:inset 0 0 0 1px rgba(255,255,255,.45); }
.meeting-map iframe { position:absolute; inset:0; width:100%; height:100%; border:0; filter:saturate(.72) contrast(.96); }
.meeting-map-canvas { position:absolute; inset:0; z-index:1; width:100%; height:100%; background:#e9ebee; }
.meeting-map .leaflet-tile-pane { filter:saturate(.76) contrast(.96); }
.meeting-map .leaflet-control-zoom { overflow:hidden; border:0; border-radius:12px; box-shadow:0 8px 24px rgba(15,16,23,.16); }
.meeting-map .leaflet-control-zoom a { color:#171920; border-bottom-color:#e6e7ea; }
.meeting-map .leaflet-control-attribution { padding:3px 6px; color:#747780; background:rgba(255,255,255,.82); font-size:9px; }
.meeting-map-marker { border:0; background:transparent; }
.meeting-map-marker .meeting-marker-shape { width:42px; height:42px; display:grid; place-items:center; border:4px solid #fff; border-radius:50% 50% 50% 9px; color:#fff; background:#171920; box-shadow:0 9px 24px rgba(0,0,0,.28); transform:rotate(-45deg); transition:.2s ease; }
.meeting-map-marker .meeting-marker-shape span { font-size:13px; font-weight:900; transform:rotate(45deg); }
.meeting-map-marker.is-active .meeting-marker-shape,.meeting-map-marker:hover .meeting-marker-shape { background:var(--pink); transform:rotate(-45deg) scale(1.12); }
.meeting-map .meeting-leaflet-popup .leaflet-popup-content-wrapper { overflow:hidden; padding:0; border-radius:18px; background:#fff; box-shadow:0 18px 48px rgba(17,19,26,.22); }
.meeting-map .meeting-leaflet-popup .leaflet-popup-content { width:240px !important; margin:0; }
.meeting-map .meeting-leaflet-popup .leaflet-popup-tip { background:#fff; box-shadow:none; }
.meeting-map .meeting-leaflet-popup .leaflet-popup-close-button { top:7px; right:8px; z-index:2; width:28px; height:28px; display:grid; place-items:center; border-radius:50%; color:#767983; background:#f4f4f6; font-size:20px; }
.meeting-marker-popup { padding:19px; }
.meeting-marker-popup small,.meeting-marker-popup strong,.meeting-marker-popup span { display:block; }
.meeting-marker-popup small { margin:0 30px 7px 0; color:var(--pink); font-size:9px; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.meeting-marker-popup strong { color:#171920; font-size:18px; line-height:1.18; }
.meeting-marker-popup span { margin-top:4px; color:#737780; font-size:12px; }
.meeting-marker-popup a { margin-top:15px; padding:12px 14px; display:flex; align-items:center; justify-content:space-between; border-radius:11px; color:#fff !important; background:var(--pink); font-size:13px; font-weight:900; text-decoration:none; box-shadow:0 9px 22px rgba(245,7,108,.2); }
.meeting-marker-popup a:hover { color:#fff; background:#d9005d; transform:translateY(-1px); }
.meeting-marker-popup a b { font-size:17px; }
.meeting-pin { --x:50%; --y:50%; position:absolute; z-index:3; left:var(--x); top:var(--y); width:42px; height:42px; padding:0; border:4px solid #fff; border-radius:50% 50% 50% 9px; color:#fff; background:#171920; box-shadow:0 9px 24px rgba(0,0,0,.25); transform:translate(-50%,-100%) rotate(-45deg); cursor:pointer; transition:.2s ease; }
.meeting-pin span { display:grid; place-items:center; width:100%; height:100%; font-size:13px; font-weight:900; transform:rotate(45deg); }
.meeting-pin:hover,.meeting-pin.active { background:var(--pink); transform:translate(-50%,-100%) rotate(-45deg) scale(1.12); }
.meeting-map-label { position:absolute; z-index:3; left:22px; bottom:22px; min-width:210px; padding:16px 18px; border-radius:15px; background:rgba(19,21,28,.92); color:#fff; box-shadow:0 12px 30px rgba(0,0,0,.2); backdrop-filter:blur(10px); }
.meeting-map-label small,.meeting-map-label strong { display:block; }
.meeting-map-label small { margin-bottom:4px; color:#ff78ad; font-size:9px; font-weight:900; letter-spacing:.14em; text-transform:uppercase; }
.meeting-map-label strong { font-size:18px; }
.meeting-points { display:grid; gap:14px; }
.meeting-card { padding:25px; border:1px solid var(--line); border-radius:21px; background:#fff; box-shadow:0 14px 36px rgba(16,18,25,.06); transition:.2s ease; }
.meeting-card.active { border-color:#ffb6d2; box-shadow:0 18px 48px rgba(245,7,108,.11); }
.meeting-card-top { display:grid; grid-template-columns:42px 1fr auto; gap:12px; align-items:center; }
.meeting-card-top>span { width:42px; height:42px; display:grid; place-items:center; border-radius:13px; color:#fff; background:var(--pink); font-weight:900; }
.meeting-card-top small { color:var(--pink); font-size:9px; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
.meeting-card-top h3 { margin:3px 0 0; font-size:22px; }
.meeting-card-top>b { padding:7px 9px; border-radius:999px; color:#217a4a; background:#e9f8ef; font-size:9px; text-transform:uppercase; letter-spacing:.08em; }
.meeting-card-top>b.pending { color:#7b6270; background:#f3eff1; }
.meeting-card>p { margin:20px 0 15px; color:var(--muted); line-height:1.6; }
.meeting-card ul { margin:0; padding:0; display:grid; gap:8px; list-style:none; color:#4e535d; font-size:14px; }
.meeting-card li::first-letter { color:var(--pink); }
.meeting-actions { margin-top:22px; display:flex; align-items:center; gap:17px; }
.meeting-actions .button { width:auto; margin:0; }
.meeting-actions>a:last-child { color:var(--pink); font-weight:850; white-space:nowrap; }
.meeting-example-note { margin:20px 0 0; color:#8b8f98; font-size:12px; }
.meeting-help { max-width:1180px; margin:0 auto 100px; padding:48px 52px; display:flex; align-items:center; justify-content:space-between; gap:45px; border-radius:28px; color:#fff; background:#14161d; }
.meeting-help h2 { margin:8px 0 10px; font-size:clamp(31px,3vw,44px); letter-spacing:-.04em; }
.meeting-help p:last-child { max-width:650px; margin-bottom:0; color:#b9bdc6; line-height:1.6; }
.meeting-help .button { flex:0 0 auto; }
.meeting-article { max-width:1180px; margin:0 auto 95px; padding:64px; display:grid; grid-template-columns:1.05fr .95fr; gap:9%; align-items:center; border-radius:30px; background:#f6f6f8; }
.meeting-article-copy h2 { margin:0 0 22px; max-width:620px; font-size:clamp(36px,4vw,54px); line-height:1.04; letter-spacing:-.045em; }
.meeting-article-copy p { margin:0 0 15px; color:var(--muted); font-size:16px; line-height:1.72; }
.meeting-article-points { display:grid; gap:10px; }
.meeting-article-points>div { padding:18px 20px; border:1px solid #e3e3e8; border-radius:17px; background:#fff; }
.meeting-article-points p { margin:1px 0 0; color:var(--muted); font-size:14px; line-height:1.5; }
.meeting-article-points strong { display:block; margin-bottom:2px; color:var(--ink); font-size:15px; }
.meeting-faq { padding:72px max(5vw,calc((100vw - 1050px)/2)); display:grid; grid-template-columns:.7fr 1.3fr; gap:8%; background:#fff; }
.meeting-faq-intro { max-width:340px; }
.meeting-faq-intro h2 { margin:0 0 12px; font-size:clamp(34px,3.6vw,48px); line-height:1.05; letter-spacing:-.045em; }
.meeting-faq-intro p { margin:0; color:var(--muted); line-height:1.55; }
.meeting-faq-list { width:100%; }
.meeting-faq-list details { padding:17px 0; }
.meeting-faq-list details:last-child { border-bottom:1px solid var(--line); }
.meeting-faq-list summary { font-size:16px; }
.meeting-faq-list details p { margin:12px 0 2px; font-size:14px; }
@media (max-width:780px) {
  .meeting-article { margin:0 20px 64px; padding:38px 24px; grid-template-columns:1fr; gap:28px; border-radius:23px; }
  .meeting-article-copy h2 { font-size:34px; }
  .meeting-article-copy p { font-size:15px; }
  .meeting-article-points>div { padding:15px 17px; }
  .meeting-faq { padding:54px 20px; grid-template-columns:1fr; gap:28px; }
  .meeting-faq-intro { max-width:none; }
  .meeting-faq-intro h2 { font-size:32px; }
  .meeting-faq-list details { padding:15px 0; }
}
@media (hover:none), (pointer:coarse) {
  .meeting-map { touch-action:pan-y; }
  .meeting-map iframe { pointer-events:none; }
  .meeting-pin { touch-action:manipulation; }
  .meeting-pin,.meeting-pin:hover,.meeting-pin.active,.meeting-pin.active:hover { transform:translate(-50%,-100%) rotate(-45deg); }
  .meeting-pin:hover { background:#171920; }
  .meeting-pin.active,.meeting-pin.active:hover { background:var(--pink); }
}
.code-formats { margin:30px 0 8px; display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.code-format { padding:25px; border:1px solid var(--line); border-radius:19px; background:#f8f8fa; }
.code-format.local-format { border-color:#ffd0e3; background:#fff7fa; }
.code-format>span { color:var(--pink); font-size:10px; font-weight:850; letter-spacing:.13em; text-transform:uppercase; }
.code-format h3 { margin:8px 0 10px; font-size:20px; }
.code-format p { margin:0; color:var(--muted); font-size:14px; line-height:1.6; }
.price-grid { max-width:920px; margin:0 auto; display:grid; grid-template-columns:repeat(2,1fr); gap:22px; }
.price-card>p { color:var(--pink); font-size:12px; text-transform:uppercase; letter-spacing:.1em; font-weight:800; }
.price-card h2 { min-height:58px; margin:12px 0; font-size:24px; }
.price-card .price { display:block; margin-top:20px; font-size:42px; letter-spacing:-.04em; }
.price-card>small { color:var(--muted); }
.price-card .button { width:100%; margin-top:12px; }
.tariff-notice { margin-bottom:52px; padding:20px 24px; border:1px solid #ffd0e3; border-radius:16px; display:flex; align-items:center; gap:16px; background:#fff6fa; color:#555b65; }
.tariff-notice span { width:30px; height:30px; border-radius:50%; display:grid; place-items:center; flex:0 0 auto; color:#fff; background:var(--pink); font-weight:850; }
.tariff-notice p { margin:0; line-height:1.5; }
.promo-notice { max-width:1100px; margin-left:auto; margin-right:auto; }
.promo-notice strong { color:var(--ink); }
.promo-strip { max-width:1100px; margin:-28px auto 48px; padding:15px 22px; border-radius:14px; display:grid; grid-template-columns:1fr 1fr; gap:16px; color:#dfe1e7; background:#15171e; font-size:13px; text-align:center; }
.promo-strip b { color:#fff; }
.price-badge { display:inline-block; margin-bottom:18px; padding:7px 11px; border-radius:8px; color:#555b65; background:#f0f1f3; font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.08em; }
.pending-price { font-size:31px!important; }
.price-footnote { margin:28px 0 0; text-align:center; color:var(--muted); font-size:12px; }
.offer-switcher { max-width:1100px; margin:0 auto; }
.mode-switch { width:max-content; max-width:100%; margin:0 auto 38px; padding:5px; display:flex; border-radius:999px; background:#eceef1; }
.mode-switch button { min-width:190px; padding:14px 23px; border:0; border-radius:999px; color:#686d77; background:transparent; font:inherit; font-weight:800; cursor:pointer; transition:.2s ease; }
.mode-switch button.active { color:#fff; background:var(--pink); box-shadow:0 9px 22px rgba(245,7,108,.25); }
.mode-intro { max-width:680px; margin:0 auto 42px; text-align:center; }
.mode-intro>span { color:var(--pink); font-size:11px; font-weight:850; letter-spacing:.14em; text-transform:uppercase; }
.mode-intro h2 { margin:9px 0 10px; font-size:42px; letter-spacing:-.04em; }
.mode-intro p { color:var(--muted); line-height:1.6; }
.transmission-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:24px; }
.transmission-card { padding:35px; border:1px solid var(--line); border-radius:24px; background:#fff; box-shadow:0 18px 50px rgba(16,18,25,.07); }
.transmission-card.automatic-card { border-color:#ffd0e3; }
.transmission-top { display:grid; grid-template-columns:auto 1fr auto; gap:15px; align-items:center; padding-bottom:25px; border-bottom:1px solid var(--line); }
.gear-icon { width:52px; height:52px; border-radius:16px; display:grid; place-items:center; color:var(--pink); background:#fff0f6; font-size:21px; font-weight:900; }
.gear-icon svg { width:31px; height:31px; overflow:visible; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.gear-icon .gear-fill { fill:currentColor; stroke:none; }
.gear-icon text { fill:currentColor; stroke:none; font-size:5px; font-weight:900; font-family:Arial,sans-serif; }
.transmission-top p,.transmission-top h3 { margin:2px 0; }
.transmission-top p { color:var(--pink); font-size:10px; font-weight:850; letter-spacing:.1em; text-transform:uppercase; }
.transmission-top h3 { font-size:23px; }
.transmission-top>strong { padding:8px 11px; border-radius:9px; color:#525762; background:#f1f2f4; font-size:11px; white-space:nowrap; }
.hours-choice { margin:22px 0 0; }
.hours-choice>p { margin:0 0 10px; color:#676c76; font-size:12px; font-weight:750; }
.hours-choice>div { display:flex; gap:7px; padding:5px; border-radius:12px; background:#f1f2f4; }
.hours-choice button { flex:1; padding:10px 12px; border:0; border-radius:9px; color:#646974; background:transparent; font:inherit; font-size:13px; font-weight:850; cursor:pointer; transition:.18s ease; }
.hours-choice button.active { color:#fff; background:var(--pink); box-shadow:0 6px 15px rgba(245,7,108,.22); }
.hours-choice button:disabled { opacity:.32; cursor:not-allowed; text-decoration:line-through; }
.pack-lines { display:grid; grid-template-columns:1fr 1fr; gap:1px; margin:25px 0; overflow:hidden; border:1px solid var(--line); border-radius:14px; background:var(--line); }
.pack-lines>div { padding:19px; background:#fafafd; }
.pack-lines span { color:var(--pink); font-size:10px; font-weight:850; text-transform:uppercase; letter-spacing:.08em; }
.pack-lines h4 { margin:6px 0 12px; font-size:16px; }
.pack-lines b { color:#4f5460; font-size:14px; }
.price-display { min-height:82px; display:grid; grid-template-columns:1fr auto; align-items:end; gap:4px 8px; }
.price-display .old-price { color:#8c919a; font-size:13px; text-decoration:line-through; }
.pack-lines .promo-price { grid-column:1 / -1; color:var(--pink); font-size:29px; line-height:1; letter-spacing:-.04em; }
.discount-badge { grid-column:2; grid-row:1; padding:4px 7px; border-radius:999px; color:#fff; background:var(--pink); font-size:10px; font-weight:850; font-style:normal; white-space:nowrap; }
.transmission-card ul { padding:0; margin:0 0 28px; list-style:none; display:grid; gap:10px; color:#5d626d; font-size:14px; }
.transmission-card li::first-letter { color:var(--pink); }
.transmission-card .button { width:100%; }
.aac-tariff-section { margin-top:44px; padding:34px; border:1px solid #ffd0e3; border-radius:24px; background:linear-gradient(135deg,#fff 0,#fff7fa 100%); box-shadow:0 18px 50px rgba(16,18,25,.06); }
.aac-tariff-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:35px; margin-bottom:24px; }
.aac-tariff-heading>div span { color:var(--pink); font-size:11px; font-weight:850; letter-spacing:.12em; text-transform:uppercase; }
.aac-tariff-heading h2 { margin:6px 0 0; font-size:34px; letter-spacing:-.035em; }
.aac-tariff-heading>p { max-width:570px; margin:0; color:var(--muted); line-height:1.6; }
.aac-tariff-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.aac-tariff-card { display:grid; grid-template-columns:auto 1fr; align-items:center; gap:16px; padding:22px; border:1px solid var(--line); border-radius:18px; background:#fff; }
.aac-tariff-card.automatic { border-color:#ffc5dc; }
.aac-tariff-card small { color:var(--pink); font-size:10px; font-weight:850; letter-spacing:.09em; text-transform:uppercase; }
.aac-tariff-card h3 { margin:5px 0 9px; font-size:19px; }
.aac-tariff-card strong { color:var(--pink); font-size:30px; line-height:1; letter-spacing:-.04em; }
.aac-tariff-footer { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-top:22px; }
.aac-tariff-footer p { max-width:600px; margin:0; color:var(--muted); font-size:13px; line-height:1.5; }
.aac-tariff-footer .button { flex:0 0 auto; }
.comparison-section { padding-top:30px; }
.comparison-wrap { overflow-x:auto; border:1px solid var(--line); border-radius:22px; }
.comparison-table { width:100%; min-width:720px; border-collapse:collapse; background:#fff; }
.comparison-table th,.comparison-table td { padding:20px 24px; border-bottom:1px solid var(--line); text-align:center; }
.comparison-table th:first-child,.comparison-table td:first-child { text-align:left; font-weight:700; }
.comparison-table th { color:#fff; background:#171920; }
.comparison-table .highlight { background:#fff4f8; }
.comparison-table th.highlight { color:#fff; background:var(--pink); }
.comparison-table .check { margin-right:7px; color:var(--pink); font-weight:900; }
.extras-section .section-heading>p:last-child { color:#a8acb5; }
.extras-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1px; overflow:hidden; border:1px solid #333640; border-radius:22px; background:#333640; }
.extras-grid article { padding:28px 30px; display:flex; align-items:center; justify-content:space-between; gap:25px; background:#171920; }
.extras-grid h3 { margin:0 0 7px; font-size:17px; }
.extras-grid p { margin:0; color:#9297a3; font-size:13px; }
.extras-grid strong { color:var(--pink); white-space:nowrap; font-size:20px; }
.extras-note { margin:22px 0 0; color:#858a95!important; font-size:11px!important; }
.calculator { max-width:980px; margin:auto; display:grid; grid-template-columns:1.2fr .8fr; overflow:hidden; border-radius:26px; background:#fff; box-shadow:0 24px 70px rgba(15,16,23,.1); }
.calculator-controls { padding:48px; display:flex; flex-direction:column; }
.calculator label { margin:0 0 10px; font-weight:750; }
.calculator select,.contact-form input,.contact-form select,.contact-form textarea { width:100%; padding:16px; border:1px solid #dcdde2; border-radius:12px; background:#fff; font:inherit; outline:none; }
.calculator select:focus,.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus { border-color:var(--pink); box-shadow:0 0 0 3px rgba(245,7,108,.09); }
.calculator input[type=range] { margin-top:15px; accent-color:var(--pink); }
.calculator-controls label:not(:first-child) { margin-top:24px; }
.range-labels { display:flex; justify-content:space-between; color:var(--muted); font-size:12px; }
.calculator-notes { display:grid; gap:11px; margin-top:38px; color:#555b65; font-size:14px; }
.calculator-notes span::first-letter { color:var(--pink); }
.estimate { padding:48px; background:#15171e; color:#fff; display:flex; flex-direction:column; justify-content:center; }
.estimate>p:first-child { color:#a8acb5; }
.estimate h2 { margin:8px 0; color:var(--pink); font-size:54px; }
.estimate small { color:#a8acb5; }
.estimate hr { width:100%; margin:28px 0; border:0; border-top:1px solid #383b44; }
.estimate-detail { line-height:1.7; }
.estimate .button { margin:20px 0 12px; }
.estimate em { color:#858a95; font-size:11px; font-style:normal; text-align:center; }
.estimate .estimate-pending { font-size:42px; line-height:1.05; }
.estimate-prices { margin:5px 0 10px; }
.estimate-prices small { display:block; color:#9da1aa; font-size:17px; text-decoration:line-through; }
.estimate-prices h2 { margin:2px 0 7px; }
.estimate-prices b { display:inline-block; padding:6px 9px; border-radius:8px; color:#fff; background:var(--pink); font-size:11px; }
.payment-section { display:grid; grid-template-columns:1fr 1fr; gap:9%; align-items:center; }
.payment-section h2 { margin:10px 0 20px; font-size:clamp(38px,4vw,58px); line-height:1.06; letter-spacing:-.045em; }
.payment-section>div:first-child>p:last-child { color:var(--muted); line-height:1.7; }
.payment-points { display:grid; gap:16px; }
.payment-points article { display:flex; align-items:center; gap:18px; padding:20px; border:1px solid var(--line); border-radius:16px; }
.payment-points article>span { width:46px; height:46px; border-radius:50%; display:grid; place-items:center; flex:0 0 auto; color:var(--pink); background:#fff0f6; font-weight:900; }
.payment-points h3,.payment-points p { margin:3px 0; }
.payment-points h3 { font-size:16px; }
.payment-points p { color:var(--muted); font-size:13px; }
.faq { max-width:1000px; margin:auto; }
.faq details { padding:25px 0; border-top:1px solid var(--line); }
.faq summary { cursor:pointer; font-weight:750; font-size:18px; }
.faq details p { color:var(--muted); line-height:1.6; }

/* FAQ de la page Formations */
.formations-faq { padding:72px max(5vw,calc((100vw - 1050px)/2)); background:#f7f7f8; display:grid; grid-template-columns:.7fr 1.3fr; gap:8%; }
.formations-faq-intro { max-width:340px; }
.formations-faq-intro h2 { margin:0 0 12px; font-size:clamp(32px,3.4vw,47px); line-height:1.05; letter-spacing:-.045em; }
.formations-faq-intro p { margin:0; color:var(--muted); line-height:1.55; }
.formations-faq-list { width:100%; }
.formations-faq-list details { padding:17px 0; }
.formations-faq-list details:last-child { border-bottom:1px solid var(--line); }
.formations-faq-list summary { font-size:16px; }
.formations-faq-list details p { margin:12px 0 2px; font-size:14px; }
.student-space-section.formation-student-space { margin-top:0; padding:58px max(5vw,calc((100vw - 1120px)/2)); grid-template-columns:minmax(0,1fr) 205px; grid-template-areas:"copy dashboard" "benefits dashboard"; column-gap:6%; row-gap:18px; align-items:center; }
.formation-student-space .student-space-copy h2 { max-width:660px; margin-top:0; font-size:clamp(34px,3.4vw,46px); }
.formation-student-space .student-space-copy>p:not(.eyebrow) { max-width:680px; margin-bottom:0; font-size:15px; }
.formation-student-space .student-space-benefits ul { margin-bottom:18px; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
.formation-student-space .student-space-benefits li { min-height:74px; padding:12px; border:1px solid rgba(255,255,255,.1); border-radius:13px; background:rgba(255,255,255,.035); }
.formation-student-space .student-space-benefits li>span { width:23px; height:23px; }
.formation-student-space .student-space-benefits li strong { font-size:14px; }
.formation-student-space .student-space-benefits li small { font-size:11px; }
.formation-student-space .student-space-benefits .button { min-height:48px; padding:0 22px; font-size:14px; }
.formation-student-space .student-phone { width:195px; height:390px; padding:7px; border-width:5px; border-radius:34px; }
.formation-student-space .phone-app-nav small { text-align:center; line-height:1.05; }

@media (max-width:780px) {
  .formations-faq { padding:54px 20px; grid-template-columns:1fr; gap:28px; }
  .formations-faq-intro { max-width:none; }
  .formations-faq-intro h2 { font-size:32px; }
  .formations-faq-list details { padding:15px 0; }
  .student-space-section.formation-student-space { padding:48px 20px; grid-template-columns:minmax(0,1fr) 122px; grid-template-areas:"copy dashboard" "benefits benefits"; column-gap:13px; row-gap:22px; align-items:start; }
  .formation-student-space .student-space-copy h2 { font-size:27px; }
  .formation-student-space .student-space-copy>p:not(.eyebrow) { font-size:13px; line-height:1.48; }
  .formation-student-space .student-phone { width:122px; height:268px; padding:5px; border-width:4px; border-radius:24px; }
  .formation-student-space .student-space-benefits ul { grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }
  .formation-student-space .student-space-benefits li { min-height:82px; padding:9px 6px; }
  .formation-student-space .student-space-benefits li strong { font-size:11px; }
}
.story { display:grid; grid-template-columns:.9fr 1.1fr; gap:8%; align-items:center; }
.story-photo { aspect-ratio:4/3; }
.story>div:last-child>p:not(.eyebrow) { color:var(--muted); font-size:17px; line-height:1.75; }
.values .cards-grid article { padding:35px 30px 10px 0; border-top:1px solid #3a3c44; }
.values p { color:#a6aab4; }
.stats { display:grid; grid-template-columns:repeat(3,1fr); padding:70px max(5vw,calc((100vw - 1100px)/2)); text-align:center; }
.stats div { border-right:1px solid var(--line); }
.stats div:last-child { border:0; }
.stats strong { display:block; color:var(--pink); font-size:48px; letter-spacing:-.04em; }
.stats span { color:var(--muted); }
.disclaimer { text-align:center; color:var(--muted); font-size:11px; margin:-40px 0 50px; }
.contact-layout { display:grid; grid-template-columns:.85fr 1.15fr; gap:8%; align-items:start; }
.contact-layout>div>p:not(.eyebrow) { color:var(--muted); line-height:1.7; }
.contact-details { margin:35px 0; display:grid; gap:22px; }
.contact-details article { display:flex; gap:16px; align-items:center; }
.contact-details article>span { width:44px; height:44px; border-radius:50%; display:grid; place-items:center; flex:0 0 auto; color:var(--pink); background:#fff0f6; font-weight:900; }
.contact-details b,.contact-details a,.contact-details p { display:block; margin:3px 0; }
.contact-details a,.contact-details p { color:var(--muted); }
.hours { padding:25px; border-radius:18px; background:#f7f7f9; }
.hours p { display:flex; justify-content:space-between; margin:12px 0!important; font-size:14px; }
.contact-form { padding:42px; border-radius:24px; display:grid; gap:20px; background:#fff; box-shadow:0 20px 65px rgba(15,16,23,.1); }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.contact-form label { display:grid; gap:9px; color:#343842; font-size:13px; font-weight:750; }
.contact-form .checkbox { display:flex; grid-template-columns:auto 1fr; align-items:flex-start; font-weight:450; line-height:1.4; color:var(--muted); }
.contact-form .checkbox input { width:auto; margin-top:3px; accent-color:var(--pink); }
.contact-form .button { border:0; cursor:pointer; }
.contact-form>small { color:var(--muted); text-align:center; line-height:1.4; }
.form-success { min-height:450px; padding:50px; border-radius:24px; text-align:center; display:flex; flex-direction:column; align-items:center; justify-content:center; background:#f7f7f9; }
.form-success>span { width:70px; height:70px; border-radius:50%; display:grid; place-items:center; color:#fff; background:var(--pink); font-size:30px; }
.form-success h2 { font-size:30px; }
.form-success p { max-width:450px; color:var(--muted); line-height:1.6; }
.form-success button { border:0; background:transparent; cursor:pointer; }
.map-placeholder { height:360px; display:grid; place-items:center; text-align:center; background-color:#ededf0; background-image:linear-gradient(30deg,#e1e1e5 12%,transparent 12.5%,transparent 87%,#e1e1e5 87.5%),linear-gradient(150deg,#e1e1e5 12%,transparent 12.5%,transparent 87%,#e1e1e5 87.5%); background-size:80px 140px; }
.map-placeholder>div { padding:24px 38px; border-radius:18px; background:#fff; box-shadow:0 14px 40px rgba(0,0,0,.13); }
.map-placeholder span { display:grid; place-items:center; width:48px; height:48px; margin:0 auto 12px; border-radius:50% 50% 50% 0; transform:rotate(-45deg); color:#fff; background:var(--pink); font-weight:850; }
.map-placeholder span::first-line { transform:rotate(45deg); }
.map-placeholder strong,.map-placeholder p { display:block; margin:6px; }
.map-placeholder p { color:var(--muted); font-size:13px; }
.student-login-page { min-height:720px; padding:90px max(5vw,calc((100vw - 1200px)/2)); display:grid; grid-template-columns:1.1fr .9fr; gap:9%; align-items:center; color:#fff; background:radial-gradient(circle at 18% 25%,#30333d 0,#161820 35%,#0e0f14 80%); }
.login-presentation h1 { margin:16px 0 24px; font-size:clamp(52px,5vw,76px); line-height:1; letter-spacing:-.055em; }
.login-presentation h1 em { color:var(--pink); font-style:normal; }
.login-presentation>p:last-of-type { max-width:580px; color:#b6bac4; font-size:18px; line-height:1.7; }
.login-benefits { margin-top:35px; display:flex; flex-wrap:wrap; gap:10px; }
.login-benefits span { padding:10px 14px; border:1px solid #383b44; border-radius:999px; color:#d5d7dd; font-size:12px; }
.login-card { padding:42px; border-radius:26px; color:var(--ink); background:#fff; box-shadow:0 30px 80px rgba(0,0,0,.35); }
.login-mark { float:right; width:48px; height:48px; border-radius:15px; display:grid; place-items:center; background:#f6f6f8; font-size:17px; font-weight:900; }
.login-mark span { color:var(--pink); }
.login-card h2 { margin:8px 0; font-size:34px; letter-spacing:-.04em; }
.login-card>p:not(.eyebrow) { color:var(--muted); }
.login-card form { margin-top:28px; display:grid; gap:18px; }
.login-card form>label { display:grid; gap:8px; color:#3d424c; font-size:13px; font-weight:750; }
.login-card input[type=email],.login-card input[type=password] { width:100%; padding:15px 16px; border:1px solid #dadce1; border-radius:12px; font:inherit; outline:none; }
.login-card input:focus { border-color:var(--pink); box-shadow:0 0 0 3px rgba(245,7,108,.08); }
.login-options { display:flex; justify-content:space-between; gap:15px; color:#737984; font-size:12px; }
.login-options label { display:flex; gap:7px; align-items:center; }
.login-options input { accent-color:var(--pink); }
.login-options a { color:var(--pink); font-weight:750; }
.login-card .button { width:100%; border:0; cursor:pointer; }
.login-register { margin-top:18px; padding:15px 16px; border:1px solid #f2c3d7; border-radius:14px; display:flex; align-items:center; justify-content:space-between; gap:12px; background:#fff7fa; color:#666b75; font-size:13px; }
.login-register a { color:var(--pink); font-weight:850; white-space:nowrap; }
.login-card>small { display:block; margin-top:18px; color:#9397a0; text-align:center; line-height:1.45; }
.signup-section { padding:82px max(5vw,calc((100vw - 1280px)/2)) 100px; display:grid; grid-template-columns:.75fr 1.25fr; gap:8%; align-items:center; background:#f5f5f7; scroll-margin-top:30px; }
.signup-intro h2 { margin:12px 0 20px; font-size:clamp(42px,4vw,62px); line-height:1.04; letter-spacing:-.045em; }
.signup-intro>p:not(.eyebrow) { color:var(--muted); font-size:17px; line-height:1.7; }
.signup-reassurance { margin-top:28px; display:flex; flex-wrap:wrap; gap:9px; }
.signup-reassurance span { padding:9px 12px; border-radius:999px; color:#545a64; background:#fff; font-size:11px; font-weight:750; }
.quick-signup { min-height:500px; padding:42px; border-radius:26px; background:#fff; box-shadow:0 22px 65px rgba(15,16,23,.1); }
.quiz-progress { display:flex; align-items:center; margin-bottom:38px; }
.quiz-progress span { width:34px; height:34px; border-radius:50%; display:grid; place-items:center; flex:0 0 auto; color:#a1a5ad; background:#eceef1; font-size:12px; font-weight:850; }
.quiz-progress span.active { color:#fff; background:var(--pink); }
.quiz-progress i { height:3px; flex:1; background:#eceef1; }
.quiz-progress i.active { background:var(--pink); }
.quiz-label { margin:0 0 8px; color:var(--pink)!important; font-size:10px!important; font-weight:850; letter-spacing:.12em; text-transform:uppercase; }
.quiz-step h3,.quick-success h3 { margin:0 0 28px; font-size:30px; letter-spacing:-.035em; }
.quiz-options { display:grid; gap:12px; }
.quiz-options.two { grid-template-columns:1fr 1fr; }
.quiz-options.three { grid-template-columns:repeat(3,minmax(0,1fr)); }
.quiz-options button { min-height:140px; padding:24px; border:1px solid #dedfe4; border-radius:18px; display:flex; flex-direction:column; align-items:flex-start; text-align:left; background:#fff; cursor:pointer; }
.quiz-options button.selected { border-color:var(--pink); box-shadow:0 0 0 3px rgba(245,7,108,.08); background:#fff8fb; }
.quiz-options b { margin-bottom:9px; font-size:18px; }
.quiz-options span { color:var(--muted); line-height:1.45; }
.quiz-next { margin-top:24px; float:right; border:0; cursor:pointer; }
.quiz-choice-row { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.quiz-choice-row label,.quiz-hours>label { display:block; margin-bottom:9px; color:#555b65; font-size:12px; font-weight:750; }
.mini-switch { padding:5px; display:flex; gap:5px; border-radius:12px; background:#f0f1f3; }
.mini-switch button { flex:1; padding:11px 8px; border:0; border-radius:9px; color:#646a75; background:transparent; font:inherit; font-size:12px; font-weight:800; cursor:pointer; }
.mini-switch button.selected { color:#fff; background:var(--pink); box-shadow:0 5px 14px rgba(245,7,108,.2); }
.quiz-hours { margin-top:22px; }
.quiz-nav { margin-top:30px; display:flex; align-items:center; justify-content:space-between; gap:14px; }
.quiz-nav>button:not(.button) { padding:12px 0; border:0; color:#707580; background:transparent; font:inherit; font-weight:750; cursor:pointer; }
.quiz-nav .button { width:auto; border:0; cursor:pointer; }
.quiz-summary { margin-bottom:22px; display:flex; flex-wrap:wrap; gap:7px; }
.quiz-summary span { padding:7px 10px; border-radius:999px; color:var(--pink); background:#fff0f6; font-size:10px; font-weight:800; }
.quiz-fields { display:grid; grid-template-columns:1fr 1fr; gap:15px; }
.quiz-fields label { display:grid; gap:7px; color:#555b65; font-size:12px; font-weight:750; }
.quiz-fields label.full { grid-column:1 / -1; }
.quiz-fields input { width:100%; padding:14px; border:1px solid #dcdde2; border-radius:11px; font:inherit; outline:none; }
.quiz-fields input:focus { border-color:var(--pink); box-shadow:0 0 0 3px rgba(245,7,108,.08); }
.quiz-consent { margin-top:17px; display:flex; gap:8px; align-items:flex-start; color:#777c86; font-size:11px; line-height:1.4; }
.quiz-consent input { accent-color:var(--pink); }
.quiz-step>small { display:block; margin-top:16px; color:#9a9ea6; font-size:10px; line-height:1.4; text-align:center; }
.quick-success { min-height:410px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; }
.quick-success>span { width:65px; height:65px; margin-bottom:20px; border-radius:50%; display:grid; place-items:center; color:#fff; background:var(--pink); font-size:28px; }
.quick-success h3 { max-width:520px; margin-bottom:12px; }
.quick-success>p:not(.quiz-label) { max-width:510px; color:var(--muted); line-height:1.6; }
.quick-success button { margin-top:12px; border:0; color:var(--pink); background:transparent; font:inherit; font-weight:800; cursor:pointer; }
@media (max-width:980px) { .site-header nav { display:none; } .site-header nav.open { position:absolute; z-index:20; display:flex; flex-direction:column; align-items:stretch; gap:0; top:78px; left:0; right:0; max-height:calc(100vh - 78px); overflow-y:auto; padding:16px 24px 25px; background:#fff; box-shadow:0 15px 30px rgba(0,0,0,.12); } .site-header nav.open>a { padding:14px 0; border-bottom:1px solid var(--line); } .nav-dropdown { width:100%; border-bottom:1px solid var(--line); } .nav-dropdown-toggle { width:100%; min-height:0; padding:14px 0; border:0; justify-content:space-between; font-size:14px; } .nav-dropdown:hover .nav-dropdown-toggle,.nav-dropdown:focus-within .nav-dropdown-toggle,.nav-dropdown.is-open .nav-dropdown-toggle { border:0; } .nav-dropdown-menu { position:static; width:100%; max-height:0; padding:0 10px; border:0; border-radius:12px; gap:1px; visibility:hidden; opacity:0; overflow:hidden; transform:none; pointer-events:none; box-shadow:none; background:#fff7fa; transition:max-height .25s ease,opacity .2s ease,padding .25s ease,visibility .2s ease; } .nav-dropdown:hover .nav-dropdown-menu,.nav-dropdown:focus-within .nav-dropdown-menu { max-height:0; padding:0 10px; visibility:hidden; opacity:0; pointer-events:none; transform:none; } .nav-dropdown.is-open .nav-dropdown-menu { max-height:390px; padding:8px 10px 10px; visibility:visible; opacity:1; transform:none; pointer-events:auto; } .site-header nav .nav-dropdown-menu a { padding:10px 8px; border:0; } .site-header nav.open .mobile-login { display:block; margin-top:14px; padding:14px; border:1px solid var(--pink); border-radius:99px; text-align:center; color:var(--pink); } .site-header nav.open .mobile-cta { display:block; margin-top:10px; padding:15px; border:0; border-radius:99px; text-align:center; color:#fff; background:var(--pink); } .header-actions { display:none; } .menu-button { margin-left:auto; display:block; } .hero { grid-template-columns:1fr; } .hero-copy { padding:68px 7vw 410px; } .hero-visual { position:absolute; inset:auto 0 0; min-height:390px; opacity:.55; } .car-card { width:420px; right:-70px; } .benefits { padding:0; } .cards-grid,.price-grid { grid-template-columns:1fr; } .feature-card.featured,.price-card.featured { transform:none; } .steps { grid-template-columns:repeat(2,1fr); } .student-space-section { grid-template-columns:1.1fr .9fr; column-gap:4%; } .student-dashboard { max-width:390px; width:100%; } .footer-main { grid-template-columns:1.5fr 1fr; } .calculator,.story,.contact-layout,.payment-section,.student-login-page,.signup-section { grid-template-columns:1fr; } .contact-layout { gap:50px; } .student-login-page { padding-top:70px; gap:55px; } .signup-section { gap:45px; } }
@media (max-width:980px) { .hero-visual-photo { opacity:1; } .hero-photo-card { width:min(520px,82%); right:-25px; top:54%; } }
@media (max-width:680px) { .site-header { position:relative; height:78px; padding:0 18px; } .brand img { width:155px; height:61px; } .hero { min-height:740px; } .hero-copy { align-self:start; padding:54px 24px 360px; } .hero h1 { font-size:46px; } .hero-intro { font-size:18px; max-width:320px; } .actions { display:grid; } .button { width:100%; } .hero-visual { min-height:350px; } .car-card { width:340px; right:-55px; } .benefits { grid-template-columns:1fr; padding:12px 24px; } .benefits article { padding:20px 0; border-right:0; border-bottom:1px solid var(--line); } .home-intro { padding:70px 24px; grid-template-columns:1fr; gap:18px; } .section { padding:75px 24px; } .cards-grid { gap:15px; } .steps { grid-template-columns:1fr; } .steps article,.steps article:not(:first-child) { padding:24px 0; border-right:0; border-bottom:1px solid var(--line); } .student-space-section { padding:75px 24px; } .student-dashboard { padding:20px 14px; transform:none; } .progress-panel { grid-template-columns:1fr; } .progress-ring { width:82px; height:82px; } .dashboard-grid { grid-template-columns:1fr; } .signup-section { padding:75px 24px; } .quick-signup { min-height:560px; padding:28px 18px; } .quiz-options.two,.quiz-options.three,.quiz-choice-row,.quiz-fields { grid-template-columns:1fr; } .quiz-fields label.full { grid-column:auto; } .quiz-options button { min-height:115px; } .quiz-nav { align-items:stretch; flex-direction:column-reverse; } .quiz-nav .button { width:100%; } .quiz-nav>button:not(.button) { text-align:left; } .cta-band { flex-direction:column; align-items:flex-start; padding:58px 24px; } .cta-band>div:last-child { width:100%; flex-direction:column; } .footer { padding:55px 24px 25px; } .footer-main { grid-template-columns:1fr; gap:28px; } .footer-bottom { flex-direction:column; gap:10px; } .page-hero,.page-hero.compact { min-height:auto; padding:72px 24px; } .page-hero h1 { font-size:48px; } .formation-list { padding:20px 24px 70px; } .formation-row { padding:48px 0; gap:35px; } .formation-art { min-height:290px; } .formation-row h2 { font-size:38px; } .formation-price { align-items:flex-start; flex-direction:column; gap:5px; } .calculator-controls,.estimate { padding:32px 24px; } .estimate h2 { font-size:46px; } .story-art { margin-bottom:10px; } .values .cards-grid { gap:25px; } .stats { grid-template-columns:1fr; padding:50px 24px; gap:28px; } .stats div { border-right:0; border-bottom:1px solid var(--line); padding-bottom:28px; } .disclaimer { margin:-20px 24px 35px; } .contact-form { padding:28px 20px; } .form-row { grid-template-columns:1fr; } .tariff-notice { align-items:flex-start; } .extras-grid { grid-template-columns:1fr; } .extras-grid article { align-items:flex-start; flex-direction:column; gap:12px; } .mode-switch { width:100%; } .mode-switch button { min-width:0; width:50%; padding:12px 10px; font-size:13px; } .transmission-grid { grid-template-columns:1fr; } .transmission-card { padding:25px 20px; } .transmission-top { grid-template-columns:auto 1fr; } .transmission-top>strong { grid-column:1 / -1; width:max-content; } .pack-lines { grid-template-columns:1fr; } }

@media (max-width:680px) {
  .aac-tariff-section { margin-top:30px; padding:24px 18px; border-radius:20px; }
  .aac-tariff-heading { display:block; margin-bottom:20px; }
  .aac-tariff-heading h2 { font-size:30px; }
  .aac-tariff-heading>p { margin-top:12px; font-size:14px; }
  .aac-tariff-grid { grid-template-columns:1fr; }
  .aac-tariff-card { padding:18px 15px; gap:13px; }
  .aac-tariff-card h3 { font-size:17px; }
  .aac-tariff-card strong { font-size:27px; }
  .aac-tariff-footer { align-items:stretch; flex-direction:column; gap:16px; }
}
@media (max-width:680px) { .formation-row { grid-template-columns:1fr; gap:24px; } .formation-number { position:static; width:54px; height:54px; border-radius:16px; } }

/* Finition mobile oVolant — optimisée dès 320 px */
@media (max-width:680px) {
  html,body { max-width:100%; overflow-x:hidden; }
  .site-header { height:72px; padding:0 16px; gap:10px; }
  .brand img { width:152px; height:58px; }
  .menu-button { padding:7px 2px; }
  .menu-button span { width:25px; height:3px; margin:4px; }
  .site-header nav.open { top:72px; padding:11px 18px 20px; }
  .site-header nav.open a { padding:12px 0; font-size:14px; }
  .site-header nav.open .mobile-login,
  .site-header nav.open .mobile-cta { padding:13px; }

  .eyebrow { font-size:10px; letter-spacing:.15em; }
  .hero { min-height:680px; }
  .hero-copy { padding:46px 20px 326px; }
  .hero h1 { margin:14px 0 18px; font-size:42px; line-height:1.01; letter-spacing:-.045em; }
  .hero-intro { max-width:295px; font-size:17px; line-height:1.5; }
  .actions { margin-top:26px; gap:10px; }
  .button { min-height:50px; padding:0 18px; font-size:14px; }
  .hero-visual { min-height:310px; }
  .car-card { width:300px; right:-46px; border-bottom-width:17px; }
  .hero-photo-card { width:88%; right:6%; top:52%; transform:translateY(-50%) rotate(-1deg); border-width:4px; border-radius:19px; box-shadow:-18px 24px 45px rgba(0,0,0,.38); }
  .car-card strong { font-size:47px; }
  .car-label { padding:6px 11px; font-size:10px; transform:translateY(-18px); }

  .benefits { padding:8px 20px; }
  .benefits article { padding:17px 0; gap:15px; }
  .benefit-icon { width:44px; height:44px; border-radius:14px; }
  .home-intro { padding:62px 20px; }
  .home-intro h2,
  .section-heading h2,
  .contact-layout h2,
  .story h2 { font-size:36px; line-height:1.08; }
  .home-intro>p,
  .section-heading>p:last-child { font-size:16px; line-height:1.65; }
  .section { padding:66px 20px; }
  .section-heading { margin-bottom:34px; }
  .section-heading.centered { margin-bottom:38px; }
  .feature-card,.price-card { padding:27px 23px; border-radius:19px; }
  .home-formation-grid .card-kicker-row { display:flex; align-items:center; gap:12px; margin-bottom:10px; }
  .home-formation-grid .feature-card.featured .card-kicker-row { margin-top:34px; }
  .home-formation-grid .card-kicker-row .card-icon { flex:0 0 38px; width:38px; height:38px; border-radius:12px; font-size:12px; }
  .home-formation-grid .card-kicker-row .card-icon svg { width:20px; height:20px; }
  .home-formation-grid .card-kicker-row .card-kicker { margin:0; line-height:1.45; }
  .feature-card h3 { font-size:24px; }
  .formation-card-footer { align-items:flex-start; gap:12px; }
  .formation-card-links { gap:8px; }
  .formation-card-footer a { font-size:14px; }
  .feature-card .formation-price-link { padding:7px 10px; font-size:12px; }
  .formation-start-price { font-size:12px; }
  .formation-start-price strong { font-size:15px; }
  .steps-section { padding-top:50px; padding-bottom:52px; }
  .steps-section .section-heading { margin-bottom:24px; }
  .steps-section .section-heading h2 { font-size:30px; }
  .steps { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .steps article,.steps article:not(:first-child) { padding:16px 12px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
  .steps article:nth-child(even) { border-right:0; }
  .steps article:nth-last-child(-n+2) { border-bottom:0; }
  .step-icon { width:34px; height:34px; border-radius:11px; font-size:15px; }
  .steps h3 { margin:12px 0 4px; font-size:17px; }
  .steps p { margin:0; font-size:13px; line-height:1.4; }
  .student-space-section { padding:54px 20px; grid-template-columns:minmax(0,1fr) 128px; grid-template-areas:"copy dashboard" "benefits benefits"; column-gap:14px; row-gap:24px; align-items:start; }
  .student-space-copy h2 { margin:8px 0 12px; font-size:28px; line-height:1.08; }
  .signup-intro h2 { font-size:38px; line-height:1.07; }
  .student-space-copy>p:not(.eyebrow) { font-size:14px; line-height:1.5; }
  .signup-intro>p:not(.eyebrow) { font-size:16px; }
  .student-dashboard { width:128px; padding:10px; border-radius:16px; transform:none; }
  .student-dashboard::before { inset:-6px; border-radius:20px; }
  .dashboard-head { margin-bottom:10px; }
  .dashboard-head>div span { display:none; }
  .dashboard-head>div strong { margin:0; font-size:13px; }
  .dashboard-head>b { width:28px; height:28px; border-radius:9px; font-size:12px; }
  .progress-panel { display:block; padding:10px; border-radius:13px; }
  .progress-ring { width:58px; height:58px; margin:auto; }
  .progress-ring span { font-size:18px; }
  .progress-panel>div:last-child,.dashboard-grid,.skills { display:none; }
  .student-space-benefits ul { margin:0 0 18px; grid-template-columns:repeat(3,1fr); gap:8px; }
  .student-space-benefits li { display:block; padding:10px 6px; border:1px solid rgba(255,255,255,.1); border-radius:12px; text-align:center; background:rgba(255,255,255,.035); }
  .student-space-benefits li>span { width:23px; height:23px; margin:0 auto 7px; }
  .student-space-benefits li strong { margin:0; font-size:12px; line-height:1.25; }
  .student-space-benefits li small { display:none; }
  .student-space-benefits .button { width:100%; }
  .student-phone { width:128px; height:280px; padding:5px; border-width:4px; border-radius:25px; transform:rotate(1deg); }
  .phone-camera { top:7px; width:34px; height:9px; }
  .phone-screen { padding:23px 7px 36px; border-radius:17px; }
  .phone-app-head>b { width:24px; height:24px; border-radius:8px; font-size:9px; }
  .phone-app-head>small { font-size:6px; }
  .phone-app-progress { margin-top:10px; padding:7px; border-radius:11px; grid-template-columns:35px 1fr; gap:6px; }
  .phone-app-progress>span { width:35px; height:35px; font-size:11px; }
  .phone-app-progress>span small { font-size:6px; }
  .phone-app-progress>div strong { font-size:7px; }
  .phone-app-progress>div small { margin-top:2px; font-size:5px; }
  .phone-app-progress i { height:3px; margin-top:4px; }
  .phone-app-card { margin-top:7px; padding:7px; border-radius:10px; }
  .phone-app-card small,.phone-app-result small { font-size:6px; }
  .phone-app-card strong { margin:3px 0 2px; font-size:9px; }
  .phone-app-card span { font-size:6px; }
  .phone-app-result { margin-top:6px; padding:7px; border-radius:10px; }
  .phone-app-result strong { margin-top:2px; font-size:10px; }
  .phone-app-result>b { width:18px; height:18px; border-radius:6px; font-size:9px; }
  .phone-app-nav { left:4px; right:4px; bottom:5px; padding:5px 2px; border-radius:8px; }
  .phone-app-nav span { gap:1px; font-size:8px; }
  .phone-app-nav small { font-size:4px; }
  .phone-homebar { bottom:7px; width:40px; height:3px; }
  .quote-section { padding:70px 20px; }
  .quote-section blockquote { font-size:27px; }

  .signup-section { padding:52px 20px 68px; gap:36px; }
  .quick-signup { min-height:0; padding:24px 16px; border-radius:21px; }
  .quiz-progress { margin-bottom:29px; }
  .quiz-step h3,.quick-success h3 { font-size:26px; }
  .quiz-options button { min-height:104px; padding:19px; }

  .page-hero,.page-hero.compact { padding:62px 20px; }
  .page-hero h1 { margin:14px 0 16px; font-size:43px; line-height:1.02; }
  .page-hero>p:last-child { font-size:16px; }
  .formation-list { padding:16px 20px 62px; }
  .formation-showcase { padding:58px 20px 20px; grid-template-columns:1fr; gap:35px; }
  .formation-showcase figure,.story-photo { border-radius:20px; box-shadow:0 16px 38px rgba(15,16,23,.13); }
  .formation-showcase figure::before,.story-photo::before { inset:11px; border-radius:13px; }
  .formation-showcase figcaption,.story-photo figcaption { left:20px; right:20px; bottom:18px; }
  .formation-showcase figcaption strong,.story-photo figcaption strong { font-size:17px; }
  .formation-showcase h2 { margin:8px 0 14px; font-size:35px; }
  .formation-showcase>div>p:not(.eyebrow) { font-size:16px; }
  .formation-showcase-points { margin-top:20px; }
  .formation-row { padding:42px 0; }
  .formation-row:not(.formation-code) { grid-template-columns:48px minmax(0,1fr); gap:15px; }
  .formation-row:not(.formation-code) .formation-number { position:static; width:48px; height:48px; border-radius:14px; }
  .formation-row:not(.formation-code) .formation-number svg { width:24px; height:24px; }
  .formation-row:not(.formation-code)>div:last-child>.eyebrow { padding-top:2px; line-height:1.35; }
  .formation-row.formation-code { grid-template-columns:48px minmax(0,1fr); gap:15px; }
  .formation-row.formation-code .formation-number { position:static; width:48px; height:48px; border-radius:14px; }
  .formation-row.formation-code .formation-number svg { width:24px; height:24px; }
  .formation-row.formation-code>div:last-child>.eyebrow { padding-top:2px; line-height:1.35; }
  .formation-row { row-gap:0; }
  .formation-row>.formation-number { grid-column:1; grid-row:1; }
  .formation-row>div:last-child { display:contents; }
  .formation-row>div:last-child>.eyebrow { grid-column:2; grid-row:1; align-self:center; margin:0; padding-top:0; }
  .formation-row>div:last-child>:not(.eyebrow) { grid-column:1 / -1; }
  .formation-row>div:last-child>h2 { margin-top:22px; }
  .formation-row h2 { font-size:35px; }
  .formation-lead { font-size:16px; }
  .formation-number svg { width:27px; height:27px; }
  .meeting-hero-modern { padding:58px 20px 42px; grid-template-columns:1fr; gap:30px; background:linear-gradient(154deg,#fffaf6 0 68%,#f2f8e7 68%); }
  .meeting-hero-modern::before { left:-155px; bottom:-205px; }
  .meeting-hero-kicker { font-size:8px; }
  .meeting-hero-modern h1 { margin:20px 0 18px; font-size:44px; }
  .meeting-hero-modern-copy>p { font-size:14px; line-height:1.62; }
  .meeting-hero-actions { display:grid; gap:14px; }
  .meeting-hero-actions .button { width:100%; }
  .meeting-hero-link { text-align:center; }
  .meeting-hero-panel { padding:16px; border-radius:22px; }
  .meeting-hero-route { left:40px; top:55px; bottom:55px; }
  .meeting-hero-location { padding:13px 5px; grid-template-columns:43px minmax(0,1fr) auto; gap:10px; }
  .meeting-hero-location:hover { padding-left:5px; }
  .meeting-hero-location>b { width:39px; height:39px; border-width:6px; }
  .meeting-hero-location strong { font-size:14px; }
  .meeting-hero-location em { font-size:10px; }
  .meeting-hero-location>i { width:29px; height:29px; }
  .meeting-section { padding:58px 20px 68px; }
  .meeting-heading { margin-bottom:30px; grid-template-columns:1fr; gap:17px; }
  .meeting-heading h2 { font-size:35px; }
  .meeting-heading>p { font-size:15px; }
  .meeting-layout { grid-template-columns:1fr; gap:18px; }
  .meeting-map { position:relative; top:auto; min-height:390px; border-radius:20px; }
  .meeting-map { touch-action:pan-y; }
  .meeting-map iframe { pointer-events:none; }
  .meeting-pin { width:37px; height:37px; border-width:3px; }
  .meeting-pin,.meeting-pin:hover,.meeting-pin.active,.meeting-pin.active:hover { transform:translate(-50%,-100%) rotate(-45deg); }
  .meeting-pin:hover { background:#171920; }
  .meeting-pin.active,.meeting-pin.active:hover { background:var(--pink); }
  .meeting-map-label { left:14px; right:14px; bottom:14px; min-width:0; padding:13px 15px; }
  .meeting-map-label strong { font-size:16px; }
  .meeting-map .leaflet-control-zoom { display:none; }
  .meeting-map .meeting-leaflet-popup .leaflet-popup-content { width:218px !important; }
  .meeting-marker-popup { padding:16px; }
  .meeting-marker-popup strong { font-size:16px; }
  .meeting-marker-popup a { margin-top:12px; padding:11px 12px; font-size:12px; }
  .meeting-card { padding:20px 17px; border-radius:18px; }
  .meeting-card-top { grid-template-columns:38px minmax(0,1fr); gap:11px; }
  .meeting-card-top>span { width:38px; height:38px; border-radius:12px; }
  .meeting-card-top>b { grid-column:2; width:max-content; }
  .meeting-card-top h3 { font-size:20px; }
  .meeting-actions { align-items:stretch; flex-direction:column; }
  .meeting-actions .button { width:100%; }
  .meeting-actions>a:last-child { text-align:center; }
  .meeting-help { margin:0 20px 70px; padding:35px 22px; align-items:flex-start; flex-direction:column; border-radius:22px; }
  .meeting-help h2 { font-size:31px; }
  .meeting-help .button { width:100%; }
  .code-formats { margin-top:24px; grid-template-columns:1fr; gap:11px; }
  .code-format { padding:20px; border-radius:17px; }
  .code-format h3 { font-size:18px; }

  .tariff-notice { display:block; margin-bottom:34px; padding:17px 18px; border-radius:14px; font-size:14px; }
  .tariff-notice span { width:28px; height:28px; margin:0 0 11px; }
  .promo-strip { margin:-16px 0 32px; padding:16px 17px; grid-template-columns:1fr; gap:9px; text-align:left; font-size:12px; line-height:1.5; }
  .mode-switch { margin-bottom:30px; padding:4px; }
  .mode-switch button { min-height:45px; padding:9px 7px; font-size:12px; line-height:1.25; }
  .mode-intro { margin-bottom:31px; }
  .mode-intro h2 { margin:7px 0 9px; font-size:34px; }
  .mode-intro p { margin:0; font-size:14px; }
  .transmission-grid { gap:18px; }
  .transmission-card { padding:22px 17px; border-radius:20px; }
  .transmission-top { gap:12px; padding-bottom:19px; }
  .gear-icon { width:46px; height:46px; border-radius:14px; }
  .gear-icon svg { width:27px; height:27px; }
  .transmission-top h3 { font-size:21px; }
  .hours-choice { margin-top:18px; }
  .hours-choice>div { gap:4px; }
  .hours-choice button { padding:10px 6px; }
  .pack-lines { margin:20px 0; }
  .pack-lines>div { padding:16px; }
  .price-display { min-height:76px; }
  .pack-lines .promo-price { font-size:28px; }
  .transmission-card ul { margin-bottom:22px; font-size:13px; }
  .comparison-section { padding-top:18px; }
  .extras-grid article { padding:23px 20px; }
  .calculator { border-radius:21px; }
  .calculator-controls,.estimate { padding:28px 20px; }
  .estimate h2,.estimate .estimate-pending { font-size:38px; }
  .payment-section { gap:38px; }
  .payment-section h2 { font-size:36px; }
  .faq summary { font-size:16px; }

  .story { gap:34px; }
  .story-art { border-radius:22px; }
  .story-art>span { font-size:53px; }
  .stats strong { font-size:42px; }
  .student-login-page { padding:58px 20px; gap:40px; }
  .login-presentation h1 { font-size:43px; }
  .login-card { padding:27px 20px; border-radius:21px; }
  .login-card h2 { font-size:30px; }
  .login-register { align-items:flex-start; flex-direction:column; }

  .cta-band { padding:52px 20px; gap:28px; }
  .cta-band h2 { font-size:35px; }
  .footer { padding:48px 20px 23px; }
  .footer-main { gap:24px; }
  .social-links { margin-top:18px; }
  .social-link { width:42px; height:42px; border-radius:13px; }
  .footer-bottom { margin-top:36px; }
  .promo-popup { align-items:center; padding:16px 14px; }
  .promo-popup-dialog { width:100%; max-width:362px; max-height:calc(100dvh - 32px); min-height:0; grid-template-columns:82px minmax(0,1fr); border-radius:22px; }
  .promo-popup-close { top:12px; right:12px; width:35px; height:35px; font-size:22px; }
  .promo-popup-badge { min-height:100%; gap:16px; }
  .promo-popup-badge::before { width:160px; height:160px; right:-118px; top:-30px; border-width:24px; }
  .promo-road-lines { width:55px; height:150%; }
  .promo-steering { width:46px; height:46px; border-width:4px; }
  .promo-steering::before,.promo-steering::after { width:32px; height:4px; }
  .promo-steering span { width:15px; height:15px; border-width:3px; }
  .promo-discount-sign { width:70px; padding:9px 3px 8px; border-width:2px; border-radius:11px; }
  .promo-discount-sign small { font-size:5px; }
  .promo-discount-sign strong { margin:3px 0; font-size:21px; letter-spacing:-.08em; }
  .promo-discount-sign em { font-size:4.5px; letter-spacing:.08em; }
  .promo-popup-content { min-width:0; overflow-y:auto; padding:27px 16px 18px; }
  .promo-popup-content .eyebrow { padding-right:42px; font-size:8px; }
  .promo-popup-content h2 { padding-right:40px; font-size:24px; line-height:1.06; }
  .promo-popup-content .promo-popup-date { width:auto; margin-bottom:11px; padding:7px 8px; font-size:8px; line-height:1.35; }
  .promo-popup-content>p:not(.eyebrow) { font-size:12px; line-height:1.52; }
  .promo-popup-points { margin:13px 0; display:grid; gap:5px; }
  .promo-popup-points span { padding:7px 9px; font-size:9px; }
  .promo-popup-actions { margin:15px 0 11px; align-items:stretch; flex-direction:column; gap:6px; }
  .promo-popup-actions .button { width:100%; min-height:44px; padding:0 12px; font-size:13px; }
  .promo-popup-actions>button { padding:6px; font-size:11px; }
  .promo-popup-content>small { font-size:8px; line-height:1.35; }
}

@media (max-width:360px) {
  .hero h1 { font-size:39px; }
  .page-hero h1 { font-size:39px; }
  .student-space-copy h2,.signup-intro h2 { font-size:35px; }
  .mode-switch button { font-size:11px; }
  .transmission-card { padding-left:14px; padding-right:14px; }
}

/* Avis élèves : variante compacte et épurée */
.reviews-section { padding-top:66px; padding-bottom:58px; background:#fff; border-top:1px solid var(--line); }
.reviews-heading { margin-bottom:24px; align-items:center; }
.reviews-heading>div:first-child { max-width:760px; }
.reviews-heading h2 { font-size:clamp(32px,3.3vw,46px); }
.reviews-heading>div:first-child>p:last-child { font-size:15px; }
.reviews-preview-note { min-width:175px; padding:12px 16px; grid-template-columns:auto 1fr; align-items:center; column-gap:11px; border-radius:14px; box-shadow:none; }
.reviews-preview-note span { grid-row:1 / 3; width:36px; height:36px; border-radius:50%; display:grid; place-items:center; color:#fff; background:var(--pink); font-size:16px; font-weight:900; letter-spacing:0; }
.reviews-preview-note strong { font-size:13px; }
.reviews-preview-note small { font-size:10px; }
.reviews-grid.has-five { grid-template-columns:none; grid-auto-flow:column; grid-auto-columns:minmax(420px,calc(50% - 9px)); gap:16px; overflow-x:auto; padding:3px 3px 15px; scroll-snap-type:x mandatory; scrollbar-width:thin; scrollbar-color:var(--pink) #f3e8ed; }
.reviews-grid.has-five .review-card,.reviews-grid.has-five .review-card:nth-child(4),.reviews-grid.has-five .review-card:nth-child(5) { grid-column:auto; scroll-snap-align:start; }
.review-card.real-review { min-height:0; padding:24px 26px; border-radius:18px; box-shadow:none; }
.review-card.real-review.featured { border-color:#ece5e8; }
.review-card.real-review blockquote { margin:10px 0 22px; font-size:16px; line-height:1.48; }
.review-quote-mark { height:27px; font-size:48px; }
.review-author>span { width:36px; height:36px; }
.reviews-swipe { margin:10px 2px 0; color:#8b737e; font-size:11px; font-weight:700; letter-spacing:.02em; text-align:right; }
.reviews-swipe span { margin-left:5px; color:var(--pink); font-size:16px; }

@media (max-width:980px) {
  .reviews-grid.has-five { grid-template-columns:none; grid-auto-columns:minmax(320px,72vw); }
}

@media (max-width:680px) {
  .reviews-section { padding:48px 20px 42px; }
  .reviews-heading { margin-bottom:18px; gap:14px; }
  .reviews-heading h2 { font-size:30px; }
  .reviews-preview-note { width:auto; min-width:0; padding:10px 13px; }
  .reviews-preview-note span { width:32px; height:32px; font-size:14px; }
  .reviews-grid.has-five { grid-template-columns:none; grid-auto-columns:86vw; margin-right:-20px; padding-bottom:13px; }
  .review-card.real-review { padding:20px; }
  .review-card.real-review blockquote { margin:8px 0 20px; font-size:15px; line-height:1.48; }
  .reviews-swipe { text-align:left; }
}

/* Accueil : palette harmonisée et respiration des sections de fin de page */
.signup-section,
.reviews-section,
.quote-section,
.home-faq {
  position:relative;
  isolation:isolate;
}

.signup-section {
  margin:32px 0;
  padding-top:96px;
  padding-bottom:96px;
  overflow:hidden;
  background:
    radial-gradient(circle at 7% 12%,rgba(220,246,126,.42) 0 9%,transparent 28%),
    linear-gradient(128deg,#fffdf9 0%,#fff3f8 100%);
}
.signup-section:before {
  content:"";
  position:absolute;
  z-index:-1;
  top:0;
  left:7%;
  width:86%;
  height:3px;
  border-radius:999px;
  background:linear-gradient(90deg,transparent,var(--pink),#dff78a,transparent);
  opacity:.72;
}
.signup-intro h2 { color:#17171d; }
.signup-reassurance span {
  border:1px solid rgba(245,7,108,.09);
  background:#fff7fa;
  box-shadow:0 8px 22px rgba(59,31,43,.05);
}
.signup-reassurance span:nth-child(even) {
  border-color:rgba(136,163,38,.16);
  background:#f3fbd8;
}
.quick-signup {
  border:1px solid rgba(245,7,108,.12);
  box-shadow:0 22px 55px rgba(80,32,54,.11);
}

.reviews-section {
  margin:32px 0;
  padding-top:82px;
  padding-bottom:76px;
  border-top:0;
  background:
    radial-gradient(circle at 95% 7%,rgba(220,246,126,.45),transparent 27%),
    linear-gradient(135deg,#fff 0%,#fff4f8 100%);
}
.reviews-preview-note {
  border-color:rgba(135,158,44,.18);
  background:#f1fad1;
}
.review-card.real-review {
  border-color:rgba(245,7,108,.12);
  background:rgba(255,255,255,.92);
  box-shadow:0 16px 36px rgba(71,29,48,.07);
}
.review-card.real-review:nth-child(even) {
  border-color:rgba(135,158,44,.18);
  background:#f7fbdc;
}

.quote-section {
  margin:34px max(4vw,calc((100vw - 1280px)/2));
  padding:88px 7vw;
  overflow:hidden;
  border:1px solid rgba(139,162,51,.16);
  border-radius:34px;
  color:#17171d;
  background:
    radial-gradient(circle at 92% 13%,rgba(245,7,108,.12),transparent 30%),
    linear-gradient(125deg,#eaf8b8 0%,#f5fbd9 55%,#ffe9f2 100%);
  box-shadow:0 22px 54px rgba(45,48,24,.08);
}
.quote-section:before {
  content:"“";
  position:absolute;
  z-index:-1;
  top:-28px;
  left:4%;
  color:rgba(245,7,108,.14);
  font:800 190px/1 Georgia,serif;
}
.quote-section blockquote { position:relative; z-index:1; }
.quote-section p { color:#c80058; }

.home-faq {
  margin:34px 0 48px;
  padding-top:84px;
  padding-bottom:84px;
  background:linear-gradient(110deg,#fff 0 51%,#f3f9dc 51% 100%);
}
.home-faq-list details {
  margin-bottom:11px;
  padding:20px 22px;
  border:1px solid rgba(23,24,30,.1);
  border-radius:16px;
  background:rgba(255,255,255,.88);
  transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease;
}
.home-faq-list details:last-child { border-bottom:1px solid rgba(23,24,30,.1); }
.home-faq-list details[open] {
  border-color:rgba(245,7,108,.24);
  box-shadow:0 14px 30px rgba(65,30,45,.07);
  transform:translateY(-1px);
}
.home-faq-list summary { color:#17171d; }

@media (max-width:980px) {
  .signup-section,
  .reviews-section,
  .home-faq { margin:20px 0; }
  .quote-section { margin:22px 20px; padding:76px 7vw; }
  .home-faq { background:linear-gradient(180deg,#fff 0 34%,#f3f9dc 34% 100%); }
}

@media (max-width:680px) {
  .signup-section { margin:18px 0; padding-top:64px; padding-bottom:70px; }
  .reviews-section { margin:18px 0; padding-top:58px; padding-bottom:52px; }
  .quote-section { margin:20px 14px; padding:66px 22px; border-radius:25px; }
  .quote-section:before { top:-17px; left:2%; font-size:132px; }
  .home-faq { margin:20px 0 30px; padding-top:62px; padding-bottom:62px; }
  .home-faq-list details { margin-bottom:9px; padding:18px 17px; border-radius:14px; }
}

/* Accueil : espace élève éditorial */
.student-space-home-editorial {
  position:relative;
  isolation:isolate;
  padding:68px max(5vw,calc((100vw - 1180px)/2)) 54px;
  grid-template-columns:minmax(0,1fr) 355px;
  grid-template-areas:"copy phone" "benefits phone";
  column-gap:7%;
  row-gap:36px;
  align-items:center;
  overflow:hidden;
  color:var(--ink);
  background:linear-gradient(108deg,#fff 0 67%,#f2f7e7 67% 100%);
}
.student-space-home-editorial::before {
  content:'';
  position:absolute;
  left:0;
  bottom:36px;
  width:62%;
  height:1px;
  background:linear-gradient(90deg,var(--pink),rgba(245,7,108,0));
}
.student-space-home-editorial::after {
  content:'';
  position:absolute;
  right:max(5vw,calc((100vw - 1180px)/2));
  top:52px;
  width:310px;
  height:500px;
  border:1px solid rgba(23,24,30,.1);
  border-radius:155px;
  transform:rotate(7deg);
}
.student-space-home-editorial>* { position:relative; z-index:2; }
.student-space-home-editorial .student-space-copy { grid-area:copy; }
.student-space-home-editorial .student-space-copy h2 {
  max-width:720px;
  margin:0 0 22px;
  color:var(--ink);
  font-size:clamp(44px,4.8vw,68px);
  line-height:.98;
}
.student-space-home-editorial .student-space-copy h2 em { color:var(--pink); font-style:normal; }
.student-space-home-editorial .student-space-copy>p {
  max-width:620px;
  color:#676a73;
  font-size:16px;
  line-height:1.62;
}
.student-space-home-editorial .student-space-actions { margin-top:28px; }
.student-space-home-editorial .student-space-secondary { color:#17181e; border-color:#c9c9cf; }
.student-space-home-editorial .student-space-secondary:hover { color:var(--pink); border-color:var(--pink); }
.student-phone-wrap { grid-area:phone; justify-self:center; position:relative; }
.student-phone-wrap::before {
  content:'ESPACE ÉLÈVE';
  position:absolute;
  z-index:-1;
  top:50%;
  right:-82px;
  color:rgba(20,21,27,.09);
  font-size:64px;
  font-weight:950;
  letter-spacing:.05em;
  white-space:nowrap;
  transform:translateY(-50%) rotate(90deg);
}
.student-phone-wrap::after {
  content:'Planning · progression · examen';
  position:absolute;
  right:-18px;
  bottom:30px;
  padding:9px 13px;
  border-radius:10px;
  color:#fff;
  background:#16171d;
  box-shadow:0 12px 26px rgba(0,0,0,.15);
  font-size:8px;
  font-weight:900;
  letter-spacing:.04em;
  white-space:nowrap;
}
.student-space-home-editorial .student-phone {
  grid-area:auto;
  width:250px;
  height:495px;
  transform:rotate(2deg);
}
.student-space-home-editorial .student-space-benefits { grid-area:benefits; }
.student-space-home-editorial .student-space-benefits ul {
  margin:0;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:0;
  border-top:1px solid #dedfe3;
}
.student-space-home-editorial .student-space-benefits ul::before {
  content:'';
  position:absolute;
  top:-2px;
  left:0;
  width:68px;
  height:3px;
  border-radius:3px;
  background:var(--pink);
}
.student-space-home-editorial .student-space-benefits li {
  min-height:0;
  padding:22px 18px 0 0;
  border:0;
  border-radius:0;
  display:flex;
  gap:11px;
  text-align:left;
  background:transparent;
}
.student-space-home-editorial .student-space-benefits li:not(:first-child) {
  padding-left:18px;
  border-left:1px solid #e8e6e4;
}
.student-space-home-editorial .student-space-benefits li>span {
  width:34px;
  height:34px;
  margin:0;
  flex:0 0 auto;
  color:#17181e;
  background:var(--lime);
  font-size:0;
}
.student-space-home-editorial .student-space-benefits li>span svg {
  width:17px;
  height:17px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.student-space-home-editorial .student-space-benefits li strong { margin:1px 0 5px; color:var(--ink); font-size:13px; }
.student-space-home-editorial .student-space-benefits li small { display:block; color:#898a91; font-size:10px; line-height:1.4; }

@media (max-width:980px) {
  .student-space-home-editorial { grid-template-columns:minmax(0,1fr) 260px; column-gap:5%; }
  .student-space-home-editorial .student-phone { width:225px; height:455px; }
  .student-space-home-editorial .student-space-benefits ul { grid-template-columns:repeat(3,minmax(0,1fr)); }
}

@media (max-width:680px) {
  .student-space-home-editorial {
    padding:38px 20px 28px;
    grid-template-columns:minmax(0,1fr) 124px;
    grid-template-areas:"copy phone" "benefits benefits";
    column-gap:8px;
    row-gap:28px;
    align-items:start;
    background:linear-gradient(112deg,#fff 0 68%,#f2f7e7 68% 100%);
  }
  .student-space-home-editorial::before { bottom:20px; width:86%; }
  .student-space-home-editorial::after { right:-20px; top:22px; width:145px; height:288px; border-radius:80px; }
  .student-space-home-editorial .student-space-copy h2 { margin-bottom:18px; font-size:31px; line-height:1; }
  .student-space-home-editorial .student-space-copy>p { font-size:12px; line-height:1.5; }
  .student-space-home-editorial .student-space-actions { margin-top:18px; align-items:stretch; flex-direction:column; gap:13px; }
  .student-space-home-editorial .student-space-actions .button { width:100%; min-height:43px; padding:0 13px; font-size:10px; }
  .student-space-home-editorial .student-space-secondary { display:none; }
  .student-phone-wrap::before { display:none; }
  .student-phone-wrap::after { right:-2px; bottom:6px; padding:6px 7px; font-size:5px; }
  .student-space-home-editorial .student-phone { width:124px; height:270px; padding:5px; border-width:4px; border-radius:25px; }
  .student-space-home-editorial .student-space-benefits ul { grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; border:0; }
  .student-space-home-editorial .student-space-benefits ul::before { left:0; width:44px; }
  .student-space-home-editorial .student-space-benefits li,
  .student-space-home-editorial .student-space-benefits li:not(:first-child) {
    min-height:92px;
    padding:10px 6px;
    border:1px solid #ece9e5;
    border-radius:12px;
    display:block;
    text-align:center;
    background:rgba(255,255,255,.62);
  }
  .student-space-home-editorial .student-space-benefits li>span { width:31px; height:31px; margin:0 auto 7px; }
  .student-space-home-editorial .student-space-benefits li>span svg { width:15px; height:15px; }
  .student-space-home-editorial .student-space-benefits li strong { font-size:9px; line-height:1.2; }
  .student-space-home-editorial .student-space-benefits li small { display:none; }
}

/* Accueil : mise en valeur compacte de l'espace élève */
.student-space-home-feature {
  position:relative;
  isolation:isolate;
  padding:72px max(5vw,calc((100vw - 1180px)/2));
  grid-template-columns:minmax(0,1fr) 300px;
  grid-template-areas:"copy dashboard" "benefits dashboard";
  column-gap:7%;
  row-gap:28px;
  align-items:center;
  background:
    radial-gradient(circle at 88% 18%,rgba(223,250,130,.22),transparent 24%),
    radial-gradient(circle at 8% 82%,rgba(245,7,108,.22),transparent 28%),
    linear-gradient(135deg,#12141b,#1a1d28 58%,#162b25);
}
.student-space-home-feature::before {
  content:'';
  position:absolute;
  inset:0;
  z-index:-1;
  opacity:.16;
  background:repeating-linear-gradient(118deg,transparent 0 70px,rgba(255,255,255,.12) 70px 72px);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 48%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 48%,transparent);
}
.student-space-home-feature>* { position:relative; z-index:1; }
.student-space-kicker {
  display:inline-flex;
  width:max-content;
  margin-bottom:18px;
  padding:8px 12px;
  border-radius:999px;
  color:#17171d;
  background:var(--lime);
  font-size:10px;
  font-weight:900;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.student-space-home-feature .student-space-copy h2 {
  max-width:700px;
  margin:0 0 16px;
  font-size:clamp(40px,4.4vw,60px);
}
.student-space-home-feature .student-space-copy>p {
  max-width:700px;
  color:#d0d4dc;
}
.student-space-home-feature .student-space-benefits ul {
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin-bottom:22px;
}
.student-space-home-feature .student-space-benefits li {
  min-height:118px;
  padding:16px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:17px;
  background:rgba(255,255,255,.055);
  backdrop-filter:blur(8px);
}
.student-space-home-feature .student-space-benefits li>span {
  width:31px;
  height:31px;
  color:#17171d;
  background:var(--lime);
  font-size:9px;
}
.student-space-home-feature .student-space-benefits li strong { font-size:14px; }
.student-space-home-feature .student-space-benefits li small { color:#aeb4bf; font-size:11px; }
.student-space-actions { display:flex; align-items:center; gap:22px; }
.student-space-actions .button { min-height:48px; padding:0 21px; font-size:13px; }
.student-space-secondary {
  padding-bottom:3px;
  border-bottom:1px solid rgba(255,255,255,.65);
  color:#fff;
  font-size:12px;
  font-weight:800;
}
.student-space-secondary:hover { color:var(--lime); border-color:var(--lime); }
.student-space-home-feature .student-phone {
  width:242px;
  height:470px;
  justify-self:center;
  transform:rotate(1deg);
}

@media (max-width:980px) {
  .student-space-home-feature { grid-template-columns:minmax(0,1fr) 210px; column-gap:5%; }
  .student-space-home-feature .student-phone { width:205px; height:410px; }
  .student-space-home-feature .student-space-benefits ul { grid-template-columns:1fr; }
  .student-space-home-feature .student-space-benefits li { min-height:0; }
}

@media (max-width:680px) {
  .student-space-home-feature {
    padding:48px 20px 50px;
    grid-template-columns:minmax(0,1fr) 118px;
    grid-template-areas:"copy dashboard" "benefits benefits";
    column-gap:12px;
    row-gap:22px;
  }
  .student-space-home-feature .student-space-copy h2 { font-size:28px; }
  .student-space-home-feature .student-space-copy>p { font-size:13px; line-height:1.48; }
  .student-space-kicker { margin-bottom:12px; padding:6px 9px; font-size:7px; }
  .student-space-home-feature .student-phone { width:118px; height:258px; }
  .student-space-home-feature .student-space-benefits ul {
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:7px;
  }
  .student-space-home-feature .student-space-benefits li {
    min-height:88px;
    padding:10px 6px;
    display:block;
    text-align:center;
  }
  .student-space-home-feature .student-space-benefits li>span { margin:0 auto 7px; }
  .student-space-home-feature .student-space-benefits li small { display:none; }
  .student-space-home-feature .student-space-benefits li strong { font-size:11px; line-height:1.2; }
  .student-space-actions { align-items:stretch; flex-direction:column; gap:13px; }
  .student-space-actions .button { width:100%; }
  .student-space-secondary { width:max-content; margin:auto; }
}

/* Palette enrichie : davantage de couleur tout en gardant l'identité oVolant */
.tariff-offers {
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 4% 9%,rgba(221,249,130,.42),transparent 20%),
    radial-gradient(circle at 96% 16%,rgba(245,7,108,.09),transparent 24%),
    linear-gradient(180deg,#fff 0%,#fffdf8 100%);
}
.tariff-offers::before,.tariff-offers::after {
  content:'';
  position:absolute;
  z-index:0;
  border-radius:50%;
  pointer-events:none;
}
.tariff-offers::before { width:150px; height:150px; left:-75px; top:38%; background:rgba(234,242,255,.9); }
.tariff-offers::after { width:190px; height:190px; right:-110px; bottom:10%; background:rgba(223,247,238,.95); }
.tariff-offers>* { position:relative; z-index:1; }
.promo-notice {
  border-color:rgba(245,7,108,.2);
  background:linear-gradient(100deg,#fff0f6 0%,#fff8e8 100%);
  box-shadow:0 12px 32px rgba(83,47,61,.06);
}
.promo-strip {
  background:linear-gradient(110deg,#15171e 0%,#242835 64%,#183b31 100%);
}
.mode-switch { border:1px solid rgba(17,19,26,.06); background:#fff; box-shadow:0 12px 30px rgba(17,19,26,.08); }
.transmission-card {
  border-color:#cfeadf;
  background:linear-gradient(155deg,#fff 0%,#f2fbf7 100%);
  box-shadow:0 20px 55px rgba(31,122,89,.09);
}
.transmission-card.automatic-card {
  border-color:#ffc6dd;
  background:linear-gradient(155deg,#fff 0%,#fff1f7 100%);
  box-shadow:0 20px 55px rgba(245,7,108,.09);
}
.transmission-card:not(.automatic-card) .gear-icon { color:var(--mint-strong); background:var(--mint); }
.transmission-card:not(.automatic-card) .pack-lines { border-color:#cfeadf; background:#cfeadf; }
.transmission-card:not(.automatic-card) .pack-lines>div { background:rgba(255,255,255,.78); }
.automatic-card .pack-lines { border-color:#f4d2df; background:#f4d2df; }
.automatic-card .pack-lines>div { background:rgba(255,255,255,.8); }
.aac-tariff-section {
  border-color:#e1e9b8;
  background:linear-gradient(135deg,#fff 0%,#fbffe9 55%,#f2fad0 100%);
  box-shadow:0 20px 55px rgba(109,126,45,.09);
}
.aac-tariff-card:first-child { border-color:#cfeadf; background:linear-gradient(145deg,#fff,#f0fbf6); }
.aac-tariff-card.automatic { border-color:#ffd0e3; background:linear-gradient(145deg,#fff,#fff2f7); }
.comparison-section {
  background:linear-gradient(180deg,#fff 0%,#f6f9ff 100%);
}
.comparison-wrap { border-color:#d9e5f7; box-shadow:0 20px 55px rgba(59,92,139,.07); }
.comparison-table .highlight { background:#fff0f6; }
.extras-section {
  background:
    radial-gradient(circle at 88% 10%,rgba(221,249,130,.14),transparent 24%),
    radial-gradient(circle at 5% 85%,rgba(245,7,108,.16),transparent 25%),
    #12141b;
}
.extras-grid article:nth-child(1),.extras-grid article:nth-child(4) { background:#17231f; }
.extras-grid article:nth-child(1) strong,.extras-grid article:nth-child(4) strong { color:#bde870; }
#simulateur.section-soft {
  background:
    radial-gradient(circle at 12% 18%,rgba(223,247,238,.85),transparent 24%),
    radial-gradient(circle at 92% 82%,rgba(255,221,234,.78),transparent 26%),
    linear-gradient(145deg,#f5f9ff,#fffaf3);
}
.calculator { border:1px solid rgba(44,73,114,.1); box-shadow:0 26px 75px rgba(44,73,114,.12); }
.calculator-controls { background:rgba(255,255,255,.82); }
.estimate { background:linear-gradient(145deg,#15171e 0%,#232739 58%,#173b31 100%); }
.payment-section {
  background:linear-gradient(120deg,#fff 0%,#fff8e8 48%,#f1fbf7 100%);
}
.payment-points article:nth-child(1) { border-color:#f6c8da; background:#fff5f9; }
.payment-points article:nth-child(2) { border-color:#d2e4fb; background:#f4f8ff; }
.payment-points article:nth-child(3) { border-color:#cfeadf; background:#f2fbf7; }

@media (max-width:680px) {
  .tariff-offers::before { width:110px; height:110px; left:-70px; }
  .tariff-offers::after { width:130px; height:130px; right:-85px; }
  .transmission-card,.transmission-card.automatic-card { box-shadow:0 14px 35px rgba(17,19,26,.07); }
}

/* Variante éditoriale de la couverture — aperçu uniquement */
.home-hero-editorial{position:relative;overflow:hidden;padding:76px 5vw 64px;background:#fffaf6;color:#17171d}
.home-hero-editorial-intro{width:min(1260px,100%);margin:0 auto}
.home-hero-editorial-label{width:max-content;margin:0 auto 28px;padding-left:43px;display:block;position:relative;color:#5f5a62;font-size:11px;font-weight:900;letter-spacing:.13em;text-transform:uppercase}
.home-hero-editorial-label:before{content:"";position:absolute;left:0;top:50%;width:31px;height:3px;border-radius:10px;background:var(--pink);transform:translateY(-50%)}
.home-hero-editorial h1{max-width:1160px;margin:0 auto;text-align:center;font-size:clamp(68px,8.2vw,126px);line-height:.86;letter-spacing:-.075em;color:#17171d}
.home-hero-editorial h1 em{display:inline-block;color:var(--pink);font-style:normal}
.home-hero-editorial-bottom{width:min(1020px,100%);margin:42px auto 51px;display:flex;align-items:center;justify-content:space-between;gap:60px}
.home-hero-editorial-bottom>p{max-width:500px;margin:0;color:#5f5a62;font-size:18px;line-height:1.55}
.home-hero-editorial-actions{display:flex;align-items:center;gap:25px;flex:0 0 auto}
.home-hero-editorial-actions .button{padding:16px 23px}
.home-hero-editorial-link{padding:10px 0;color:#17171d;border-bottom:2px solid #17171d;font-size:14px;font-weight:850;text-decoration:none}
.home-hero-editorial-visual{position:relative;width:min(1320px,100%);height:540px;margin:0 auto}
.home-hero-editorial-visual figure{width:100%;height:100%;margin:0;overflow:hidden;border-radius:32px;background:#ece7e4;box-shadow:0 26px 62px rgba(23,23,29,.13)}
.home-hero-editorial-visual img{width:100%;height:100%;display:block;object-fit:cover;object-position:center 47%}
.home-hero-editorial-exam{position:absolute;left:28px;bottom:28px;min-width:245px;padding:17px 20px;border-radius:16px;display:grid;gap:4px;color:#fff;background:#17171d;box-shadow:0 16px 35px rgba(23,23,29,.25)}
.home-hero-editorial-exam small{color:#ff83b6;font-size:10px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
.home-hero-editorial-exam strong{font-size:21px;letter-spacing:-.03em}
.home-hero-editorial-fast{position:absolute;right:28px;top:28px;padding:13px 17px;border-radius:999px;display:flex;align-items:center;gap:10px;color:#17171d;background:#dffa82;box-shadow:0 14px 28px rgba(23,23,29,.16)}
.home-hero-editorial-fast b{font-size:17px}.home-hero-editorial-fast span{font-size:11px;font-weight:850;text-transform:uppercase;letter-spacing:.08em}

@media(max-width:900px){
  .home-hero-editorial{padding:58px 28px 54px}
  .home-hero-editorial h1{font-size:clamp(58px,10.5vw,86px)}
  .home-hero-editorial-bottom{margin:35px auto 42px;flex-direction:column;text-align:center;gap:25px}
  .home-hero-editorial-bottom>p{max-width:640px}
  .home-hero-editorial-visual{height:450px}
}

@media(max-width:600px){
  .home-hero-editorial{padding:43px 17px 40px}
  .home-hero-editorial-label{margin-bottom:22px;padding-left:31px;font-size:9px;letter-spacing:.1em}
  .home-hero-editorial-label:before{width:22px}
  .home-hero-editorial h1{font-size:52px;line-height:.92}
  .home-hero-editorial-bottom{margin:26px auto 31px;gap:21px}
  .home-hero-editorial-bottom>p{max-width:350px;font-size:15px;line-height:1.5}
  .home-hero-editorial-actions{width:100%;display:grid;gap:14px}
  .home-hero-editorial-actions .button{width:100%;justify-content:center}
  .home-hero-editorial-link{justify-self:center}
  .home-hero-editorial-visual{height:385px}
  .home-hero-editorial-visual figure{border-radius:23px}
  .home-hero-editorial-visual img{object-position:57% center}
  .home-hero-editorial-exam{left:13px;right:13px;bottom:13px;min-width:0;padding:14px 16px;border-radius:14px}
  .home-hero-editorial-exam strong{font-size:18px}
  .home-hero-editorial-fast{right:13px;top:13px;padding:10px 13px;gap:7px}
  .home-hero-editorial-fast b{font-size:14px}.home-hero-editorial-fast span{font-size:9px}
}

/* Variante sobre et moderne de la couverture — aperçu uniquement */
.home-hero-minimal{padding:54px 5vw 66px;background:#fffaf6;color:#17171d}
.home-hero-minimal-shell{width:min(1280px,100%);min-height:585px;margin:0 auto;display:grid;grid-template-columns:minmax(0,.92fr) minmax(470px,1.08fr);overflow:hidden;border:1px solid #e8e2de;border-radius:30px;background:#fff;box-shadow:0 18px 48px rgba(23,23,29,.08)}
.home-hero-minimal-copy{padding:68px clamp(42px,5vw,76px);display:flex;flex-direction:column;justify-content:center}
.home-hero-minimal-label{margin-bottom:25px;color:#777078;font-size:11px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
.home-hero-minimal h1{margin:0;font-size:clamp(58px,5.5vw,86px);line-height:.94;letter-spacing:-.065em;color:#17171d}
.home-hero-minimal h1 em{color:var(--pink);font-style:normal}
.home-hero-minimal-copy>p{max-width:510px;margin:28px 0 30px;color:#615b63;font-size:18px;line-height:1.55}
.home-hero-minimal-actions{display:flex;align-items:center;gap:25px}
.home-hero-minimal-actions .button{padding:16px 23px}
.home-hero-minimal-actions>a:last-child{padding:10px 0;color:#17171d;border-bottom:1.5px solid #17171d;font-size:14px;font-weight:850;text-decoration:none}
.home-hero-minimal-exam{margin-top:48px;padding-top:23px;border-top:1px solid #ebe6e2;display:flex;align-items:center;gap:14px}
.home-hero-minimal-exam>span{width:9px;height:9px;flex:0 0 auto;border-radius:50%;background:#dffa82;box-shadow:0 0 0 5px rgba(223,250,130,.3)}
.home-hero-minimal-exam p{margin:0;display:grid;gap:3px}
.home-hero-minimal-exam strong{font-size:14px}.home-hero-minimal-exam small{color:#827b83;font-size:12px}
.home-hero-minimal-photo{min-height:585px;margin:0;overflow:hidden;background:#ece8e5}
.home-hero-minimal-photo img{width:100%;height:100%;display:block;object-fit:cover;object-position:56% center}

@media(max-width:980px){
  .home-hero-minimal{padding:42px 28px 54px}
  .home-hero-minimal-shell{grid-template-columns:1fr;min-height:0}
  .home-hero-minimal-copy{padding:58px 48px 48px;text-align:center;align-items:center}
  .home-hero-minimal-copy>p{margin-inline:auto}
  .home-hero-minimal-exam{width:min(520px,100%);justify-content:center;text-align:left}
  .home-hero-minimal-photo{min-height:0;height:450px}
}

@media(max-width:600px){
  .home-hero-minimal{padding:22px 14px 40px}
  .home-hero-minimal-shell{border-radius:22px}
  .home-hero-minimal-copy{padding:42px 22px 34px}
  .home-hero-minimal-label{margin-bottom:20px;font-size:9px}
  .home-hero-minimal h1{font-size:48px;line-height:.96}
  .home-hero-minimal-copy>p{margin:23px auto 25px;font-size:15px;line-height:1.5}
  .home-hero-minimal-actions{width:100%;display:grid;gap:13px}
  .home-hero-minimal-actions .button{width:100%;justify-content:center}
  .home-hero-minimal-actions>a:last-child{justify-self:center}
  .home-hero-minimal-exam{margin-top:31px;padding-top:19px;justify-content:flex-start}
  .home-hero-minimal-exam strong{font-size:13px}.home-hero-minimal-exam small{font-size:11px}
  .home-hero-minimal-photo{height:330px}
  .home-hero-minimal-photo img{object-position:61% center}
}

/* Hero clair rose et vert — accueil */
.home-hero-cinematic{position:relative;isolation:isolate;min-height:690px;overflow:hidden;background:radial-gradient(circle at 7% 86%,rgba(245,7,108,.07) 0 12%,transparent 31%),radial-gradient(circle at 99% 6%,rgba(223,250,130,.62) 0 13%,transparent 34%),linear-gradient(145deg,#fffdfa 0%,#fff6f9 100%);color:#17171d}
.home-hero-cinematic:before{content:"";position:absolute;z-index:0;left:0;bottom:44px;width:46%;height:1px;background:linear-gradient(90deg,var(--pink),rgba(245,7,108,0));pointer-events:none}
.home-hero-cinematic-photo{position:absolute;z-index:1;top:52px;right:max(5vw,calc((100vw - 1280px)/2));bottom:52px;width:min(45vw,620px);margin:0;border:1px solid rgba(23,23,29,.08);border-radius:34px;overflow:hidden;box-shadow:0 28px 70px rgba(37,24,31,.15)}
.home-hero-cinematic-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(23,23,29,0) 58%,rgba(23,23,29,.28) 100%);pointer-events:none}
.home-hero-cinematic-photo img{width:100%;height:100%;display:block;object-fit:cover;object-position:61% center}
.home-hero-cinematic-shade{display:none}
.home-hero-cinematic-content{position:relative;z-index:2;width:min(1280px,90%);min-height:690px;margin:0 auto;padding:74px 52% 64px 0;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}
.home-hero-cinematic-label{margin-bottom:27px;padding:9px 13px;border:1px solid rgba(104,122,28,.13);border-radius:999px;position:relative;color:#4b531f;background:rgba(223,250,130,.72);font-size:9px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
.home-hero-cinematic-label:before{display:none}
.home-hero-cinematic h1{max-width:650px;margin:0;color:#17171d;font-size:clamp(64px,6.4vw,90px);line-height:.91;letter-spacing:-.07em;text-shadow:none}
.home-hero-cinematic h1 em{color:var(--pink);font-style:normal}
.home-hero-cinematic-content>p{max-width:570px;margin:28px 0 31px;color:#656169;font-size:17px;line-height:1.6}
.home-hero-cinematic-actions{display:flex;align-items:center;gap:25px}
.home-hero-cinematic-actions .button{padding:16px 23px;box-shadow:0 13px 30px rgba(245,7,108,.18)}
.home-hero-cinematic-actions>a:last-child{padding:10px 0;color:#17171d;border-bottom:1.5px solid rgba(23,23,29,.65);font-size:14px;font-weight:850;text-decoration:none}
.home-hero-cinematic-meta{width:min(430px,100%);margin-top:43px;display:grid;grid-template-columns:1fr 1fr;gap:12px}
.home-hero-cinematic-meta span{min-height:72px;padding:14px 16px;border:1px solid rgba(245,7,108,.11);border-radius:16px;display:grid;align-content:center;gap:4px;color:#7b5264;background:#ffedf4;font-size:11px;letter-spacing:.02em}
.home-hero-cinematic-meta span:last-child{border-color:rgba(153,177,52,.18);color:#65702f;background:#effbc9}
.home-hero-cinematic-meta strong{color:#17171d;font-size:17px;letter-spacing:-.02em}

@media(max-width:850px){
  .home-hero-cinematic,.home-hero-cinematic-content{min-height:620px}
  .home-hero-cinematic-photo{top:42px;right:4%;bottom:42px;width:42%}
  .home-hero-cinematic-content{width:92%;padding-right:45%}
  .home-hero-cinematic h1{font-size:clamp(52px,8vw,72px)}
  .home-hero-cinematic-content>p{font-size:16px}
}

@media(max-width:600px){
  .home-hero-cinematic{min-height:590px;padding:0;display:block;background:#fff8fb;color:#17171d}
  .home-hero-cinematic:after{content:"";position:absolute;z-index:1;right:-82px;top:34px;width:178px;height:178px;border:34px solid rgba(223,250,130,.14);border-radius:50%;pointer-events:none}
  .home-hero-cinematic-photo{position:absolute;z-index:0;inset:0;width:100%;height:100%;margin:0;border:0;border-radius:0;overflow:hidden;box-shadow:none}
  .home-hero-cinematic-photo:after{background:linear-gradient(180deg,rgba(255,253,251,.06) 58%,rgba(255,246,250,.24) 100%)}
  .home-hero-cinematic-photo img{object-position:60% center}
  .home-hero-cinematic-shade{position:absolute;z-index:1;inset:0;display:block;background:linear-gradient(90deg,rgba(255,253,251,.94) 0%,rgba(255,250,252,.86) 56%,rgba(255,250,252,.44) 100%)}
  .home-hero-cinematic-content{position:relative;z-index:2;width:100%;min-height:590px;padding:32px 20px 24px;justify-content:flex-start;color:#17171d}
  .home-hero-cinematic-label{margin-bottom:20px;padding:7px 11px;border-radius:999px;color:#17171d;background:rgba(223,250,130,.7);font-size:8px;letter-spacing:.11em}
  .home-hero-cinematic-label:before{display:none}
  .home-hero-cinematic h1{color:#17171d;font-size:45px;line-height:.98;text-shadow:none}
  .home-hero-cinematic h1 em{color:var(--pink)}
  .home-hero-cinematic-content>p{max-width:335px;margin:23px 0 25px;color:#5f5961;font-size:14px;line-height:1.62}
  .home-hero-cinematic-actions{width:100%;display:grid;gap:15px}
  .home-hero-cinematic-actions .button{width:100%;justify-content:center}
  .home-hero-cinematic-actions>a:last-child{justify-self:center;color:#17171d;border-bottom-color:#17171d}
  .home-hero-cinematic-meta{width:100%;margin-top:28px;padding-top:0;border:0;display:grid;grid-template-columns:1fr 1fr;gap:12px;text-align:left}
  .home-hero-cinematic-meta span{min-height:70px;padding:13px 14px;border:1px solid rgba(245,7,108,.1);border-radius:15px;color:#7b5264;background:#ffedf4}
  .home-hero-cinematic-meta span:last-child{border-color:rgba(153,177,52,.18);color:#65702f;background:#effbc9}
  .home-hero-cinematic-meta strong{color:#17171d;font-size:15px}
  .home-pricing-showcase{padding-top:38px;border-top:8px solid #f6f6f8}
}

/* Homepage pricing showcase */
.home-pricing-showcase{position:relative;isolation:isolate;padding:78px 5vw 48px;overflow:hidden;background:linear-gradient(108deg,#fff 0 67%,#f2f7e7 67% 100%)}
.home-pricing-showcase:before{content:"";position:absolute;z-index:-1;right:-90px;top:120px;width:290px;height:460px;border:1px solid rgba(23,24,30,.08);border-radius:150px;transform:rotate(7deg)}
.home-pricing-head{width:min(1120px,100%);margin:0 auto 34px;display:flex;align-items:flex-end;justify-content:space-between;gap:28px}
.home-pricing-eyebrow{display:inline-flex;align-items:center;gap:8px;margin-bottom:13px;padding:8px 13px;border-radius:999px;color:#bc1556;background:#ffe7f1;font-size:11px;font-weight:900;letter-spacing:.09em;text-transform:uppercase}
.home-pricing-eyebrow:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--pink)}
.home-pricing-head h2{max-width:700px;margin:0;font-size:clamp(38px,4.35vw,60px);line-height:.98;letter-spacing:-.06em;color:#17171d}
.home-pricing-head h2 em{color:var(--pink);font-style:normal}
.home-pricing-toggle{display:flex;flex:0 0 auto;padding:4px;border:1px solid #e4e4e7;border-radius:14px;background:#fff;box-shadow:0 10px 26px rgba(23,23,29,.06)}
.home-pricing-toggle button{min-width:118px;padding:12px 19px;border:0;border-radius:10px;color:#77717b;background:transparent;font:inherit;font-size:13px;font-weight:850;cursor:pointer;transition:.2s ease}
.home-pricing-toggle button.active{color:#fff;background:#17171d;box-shadow:none}
.home-pricing-grid{width:min(1120px,100%);margin:0 auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.home-price-card{position:relative;min-height:410px;padding:27px 29px 25px;overflow:hidden;border:1px solid #e3e4e7;border-radius:21px;display:flex;flex-direction:column;align-items:stretch;color:#17171d;background:#fff;box-shadow:0 12px 32px rgba(23,23,29,.045);transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}
.home-price-card:before{content:"";position:absolute;inset:0 0 auto;height:5px;background:var(--pink)}
.home-price-card:hover{transform:translateY(-3px);border-color:#d9dadd;box-shadow:0 20px 44px rgba(23,23,29,.08)}
.home-price-card-manual:before{background:var(--lime)}
.home-price-card-head{display:flex;align-items:center;justify-content:space-between;gap:18px}
.home-price-card-icon{width:42px;height:42px;flex:0 0 auto;border-radius:50%;display:grid;place-items:center;color:var(--pink);background:#fff0f6}
.home-price-card-manual .home-price-card-icon{color:#17181e;background:var(--lime)}
.home-price-card-icon svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.home-price-transmission{padding:0;color:#817b83;background:transparent;font-size:10px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}
.home-price-card-title{margin:25px 0 20px}
.home-price-card-title small{color:var(--pink);font-size:10px;font-weight:900;letter-spacing:.11em;text-transform:uppercase}
.home-price-card-manual .home-price-card-title small{color:#6f7c35}
.home-price-card h3{margin:7px 0 0;font-size:27px;line-height:1;letter-spacing:-.04em}
.home-price-amount{position:relative;padding:18px 0 20px;border-top:1px solid #ececef;border-bottom:1px solid #ececef;display:grid;grid-template-columns:1fr auto;grid-template-areas:"label promo" "price promo";align-items:center;column-gap:18px}
.home-price-amount>span{grid-area:label;color:#77717a;font-size:11px;font-weight:750}
.home-price-promotion{grid-area:promo;margin:0;display:grid;justify-items:end;gap:6px}
.home-price-old{color:#77717a;font-size:15px;font-weight:850;text-decoration-color:var(--pink);text-decoration-thickness:2px}
.home-price-saving{padding:6px 9px;border-radius:999px;color:#fff;background:var(--pink);font-size:10px;font-weight:900;line-height:1;letter-spacing:.03em}
.home-price-card-manual .home-price-saving{color:#17181e;background:var(--lime)}
.home-price-value{grid-area:price;display:block;margin:4px 0 0;font-size:48px;line-height:.95;letter-spacing:-.06em}
.home-price-card ul{margin:20px 0 23px;padding:0;display:grid;gap:11px;list-style:none;color:#5f5b63;font-size:13px}
.home-price-card li{position:relative;padding-left:25px}
.home-price-card li:before{content:"✓";position:absolute;left:0;top:-1px;width:16px;height:16px;border-radius:50%;display:grid;place-items:center;color:#17181e;background:var(--lime);font-size:9px;font-weight:900}
.home-price-card>a{margin-top:auto;padding:14px 17px;border-radius:12px;display:flex;align-items:center;justify-content:space-between;color:#fff;background:#17171d;font-size:13px;font-weight:850;text-decoration:none}
.home-price-card>a i{font-style:normal;font-size:17px;transition:transform .2s ease}
.home-price-card>a:hover i{transform:translateX(3px)}
.home-pricing-showcase.is-fast .home-price-card{box-shadow:inset 0 0 0 2px rgba(245,7,108,.17)}
.home-price-help{width:min(1120px,100%);margin:22px auto 0;padding:22px 24px;display:flex;align-items:center;justify-content:space-between;gap:32px;color:#fff;background:#17171d;border-radius:20px}
.home-price-help-v2{position:relative;margin-top:42px;display:grid;grid-template-columns:68px minmax(0,1fr) auto;grid-template-areas:"icon copy actions" "reassurance reassurance reassurance";gap:24px 26px;padding:30px 32px 18px;overflow:hidden;color:#17171d;background:linear-gradient(112deg,#fff 0%,#fff 58%,#f4fbe0 100%);border:1px solid rgba(23,23,29,.09);border-radius:24px;box-shadow:0 18px 45px rgba(23,23,29,.08)}
.home-price-help-v2:before{content:"";position:absolute;top:-70px;right:22%;width:180px;height:180px;border:38px solid rgba(245,7,108,.055);border-radius:50%;pointer-events:none}
.home-price-help-v2:after{content:"";position:absolute;right:-30px;bottom:-65px;width:150px;height:150px;background:rgba(211,245,112,.42);border-radius:50%;filter:blur(2px);pointer-events:none}
.home-price-help-icon{grid-area:icon;align-self:start;width:62px;aspect-ratio:1;display:grid;place-items:center;background:#17171d;border-radius:50%;box-shadow:inset 0 0 0 8px rgba(255,255,255,.08)}
.home-price-help-icon span{display:grid;place-items:center;width:32px;height:32px;color:#17171d;background:var(--lime);border-radius:50%;font-size:20px;font-weight:950}
.home-price-help-copy{grid-area:copy;position:relative;z-index:1;display:grid;gap:5px}
.home-price-help-copy small{color:var(--pink);font-size:10px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
.home-price-help-copy strong{font-size:25px;line-height:1.08;letter-spacing:-.035em}
.home-price-help-copy span{max-width:620px;color:#66616b;font-size:13px;line-height:1.5}
.home-price-help-actions{grid-area:actions;position:relative;z-index:1;display:flex;align-items:center;gap:19px;flex:0 0 auto}
.home-price-help-actions .button{padding:14px 20px;font-size:13px;white-space:nowrap;box-shadow:0 10px 26px rgba(245,7,108,.2)}
.home-price-help-actions>a:last-child{padding:9px 0;color:#17171d;border-bottom:1px solid rgba(23,23,29,.4);font-size:12px;font-weight:850;text-decoration:none;white-space:nowrap}
.home-price-help-reassurance{grid-area:reassurance;position:relative;z-index:1;display:flex;align-items:center;gap:0;padding-top:16px;border-top:1px solid rgba(23,23,29,.09)}
.home-price-help-reassurance span{display:flex;align-items:center;gap:8px;color:#77717c;font-size:10px;font-weight:800;letter-spacing:.02em}
.home-price-help-reassurance span:before{content:"✓";display:grid;place-items:center;width:18px;height:18px;color:#17171d;background:var(--lime);border-radius:50%;font-size:10px;font-weight:950}
.home-price-help-reassurance span+span{margin-left:18px;padding-left:18px;border-left:1px solid rgba(23,23,29,.11)}

/* Compact formation menu */
.home-paths{padding:76px 5vw 82px;background:#f6f7f9;color:#17171d}
.home-paths-head{width:min(1180px,100%);margin:0 auto 27px;display:flex;align-items:flex-end;justify-content:space-between;gap:34px}
.home-paths-head>div>span{display:block;margin-bottom:10px;color:var(--pink);font-size:10px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
.home-paths-head h2{margin:0;font-size:clamp(38px,4.2vw,58px);line-height:1;letter-spacing:-.055em}
.home-paths-head>p{max-width:410px;margin:0;color:#6d6971;font-size:15px;line-height:1.55;text-align:right}
.home-paths-track{width:min(1180px,100%);margin:0 auto;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.home-path-card{min-height:205px;padding:21px 19px;border:1px solid #e2e3e7;border-radius:18px;display:flex;flex-direction:column;color:#17171d;background:#fff;text-decoration:none;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}
.home-path-card:hover{transform:translateY(-3px);border-color:#f5a2c3;box-shadow:0 14px 30px rgba(20,21,27,.08)}
.home-path-card-fast{color:#fff;background:#17171d;border-color:#17171d}
.home-path-number{width:34px;height:34px;margin-bottom:22px;border-radius:50%;display:grid;place-items:center;color:var(--pink);background:#fff0f6;font-size:10px;font-weight:900}
.home-path-card-fast .home-path-number{color:#17171d;background:#dffa82}
.home-path-icon{width:40px;height:40px;margin-bottom:22px;border-radius:50%;display:grid;place-items:center;color:var(--pink);background:#fff0f6}
.home-path-card-fast .home-path-icon{color:#17171d;background:#dffa82}
.home-path-icon svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.home-path-card small{color:#8a858d;font-size:9px;font-weight:900;letter-spacing:.09em;text-transform:uppercase}
.home-path-card-fast small{color:#c9c5cd}
.home-path-card strong{margin:7px 0 8px;font-size:20px;line-height:1.1;letter-spacing:-.035em}
.home-path-card em{color:#77727a;font-size:12px;font-style:normal}
.home-path-card-fast em{color:#c9c5cd}
.home-path-card b{margin-top:auto;padding-top:20px;color:var(--pink);font-size:12px;font-weight:850}
.home-path-card-fast b{color:#fff}
.home-path-card b i{margin-left:5px;font-style:normal}
.home-paths-swipe{display:none}

/* Alternative: orientation by situation */
.home-guidance{padding:74px 5vw 82px;background:#f6f7f9;color:#17171d}
.home-guidance-shell{width:min(1180px,100%);margin:0 auto;display:grid;grid-template-columns:minmax(320px,.72fr) minmax(520px,1.28fr);overflow:hidden;border-top:1px solid #dddee3;border-bottom:1px solid #dddee3;background:#fff}
.home-guidance-intro{padding:54px 48px;display:flex;flex-direction:column;justify-content:center;color:#fff;background:#17171d}
.home-guidance-intro>span{margin-bottom:17px;color:#ff79ae;font-size:10px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
.home-guidance-intro h2{margin:0;font-size:clamp(46px,4.5vw,66px);line-height:.94;letter-spacing:-.06em}
.home-guidance-intro>p{max-width:390px;margin:24px 0 26px;color:#d0cdd3;font-size:16px;line-height:1.55}
.home-guidance-intro>small{padding-top:20px;border-top:1px solid rgba(255,255,255,.18);color:#97939c;font-size:11px}
.home-guidance-panel{padding:24px 30px 26px}
.home-guidance-choices{display:grid}
.home-guidance-choices>a{min-height:86px;padding:15px 8px;border-bottom:1px solid #e7e5e8;display:grid;grid-template-columns:1fr auto;gap:15px;align-items:center;color:#17171d;text-decoration:none;transition:padding .2s ease,background .2s ease}
.home-guidance-choices>a:hover{padding-right:15px;padding-left:15px;background:#fff8fb}
.home-guidance-choices>a>div{display:grid;gap:4px}
.home-guidance-choices strong{font-size:17px;line-height:1.2}
.home-guidance-choices small{color:#7c7780;font-size:11px}
.home-guidance-choices i{color:var(--pink);font-size:18px;font-style:normal}
.home-guidance-choices>a.is-fast{padding-right:15px;padding-left:18px;border-left:3px solid var(--pink);background:#fff4f8}
.home-guidance-more{padding:20px 8px 0;display:flex;align-items:center;gap:18px}
.home-guidance-more>span{margin-right:auto;color:#96919a;font-size:9px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}
.home-guidance-more>a{color:#17171d;border-bottom:1px solid #b9b6bc;font-size:11px;font-weight:800;text-decoration:none}

@media(max-width:900px){
  .home-guidance-shell{grid-template-columns:1fr}
  .home-guidance-intro{padding:45px 42px}
  .home-guidance-intro>p{max-width:650px}
}

@media(max-width:760px){
  .home-pricing-showcase{padding:52px 18px 32px}
  .home-pricing-head{margin-bottom:22px;display:block}
  .home-pricing-head h2{font-size:38px}
  .home-pricing-toggle{width:100%;margin-top:23px}
  .home-pricing-toggle button{flex:1;min-width:0}
  .home-pricing-grid{grid-template-columns:1fr;gap:15px}
  .home-price-card{min-height:390px;padding:23px 22px 21px;border-radius:19px}
  .home-price-card-icon{width:39px;height:39px}
  .home-price-card-icon svg{width:19px;height:19px}
  .home-price-card-title{margin:22px 0 17px}
  .home-price-card h3{margin:7px 0 0;font-size:24px}
  .home-price-amount{padding:16px 0 18px}
  .home-price-value{font-size:43px}
  .home-price-card ul{margin:18px 0 21px}
  .home-price-help{margin-top:16px;padding:22px 20px;align-items:stretch;flex-direction:column;gap:18px;border-radius:18px}
  .home-price-help-v2{margin-top:28px;display:grid;grid-template-columns:48px minmax(0,1fr);grid-template-areas:"icon copy" "actions actions" "reassurance reassurance";gap:18px 16px;padding:22px 20px 17px;border-radius:21px}
  .home-price-help-v2:before{top:-88px;right:-54px}
  .home-price-help-v2:after{right:-62px;bottom:-75px}
  .home-price-help-icon{width:46px}
  .home-price-help-icon span{width:25px;height:25px;font-size:15px}
  .home-price-help-copy{gap:4px}
  .home-price-help-copy strong{font-size:21px;line-height:1.12}
  .home-price-help-copy span{font-size:12px}
  .home-price-help-actions{display:grid;grid-template-columns:1fr;text-align:center;gap:12px}
  .home-price-help-actions .button{width:100%;justify-content:center}
  .home-price-help-actions>a:last-child{justify-self:center}
  .home-price-help-reassurance{justify-content:center;flex-wrap:wrap;gap:9px 14px;padding-top:14px}
  .home-price-help-reassurance span{font-size:9px}
  .home-price-help-reassurance span+span{margin-left:0;padding-left:0;border-left:0}
  .home-paths{padding:56px 18px 60px;overflow:hidden}
  .home-paths-head{margin-bottom:21px;align-items:flex-start;flex-direction:column;gap:12px}
  .home-paths-head h2{font-size:39px}
  .home-paths-head>p{max-width:330px;font-size:14px;text-align:left}
  .home-paths-track{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:78vw;gap:12px;margin-right:-18px;padding:2px 18px 14px 0;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
  .home-paths-track::-webkit-scrollbar{display:none}
  .home-path-card{min-height:190px;padding:20px;scroll-snap-align:start}
  .home-path-number,.home-path-icon{margin-bottom:18px}
  .home-paths-swipe{margin:3px 0 0;color:#77727a;font-size:11px;font-weight:750}
  .home-paths-swipe span{margin-left:4px;color:var(--pink);font-size:15px}
  .home-guidance{padding:54px 18px 60px}
  .home-guidance-shell{border-radius:0}
  .home-guidance-intro{padding:35px 25px 32px}
  .home-guidance-intro h2{font-size:45px}
  .home-guidance-intro>p{margin:19px 0 21px;font-size:14px}
  .home-guidance-panel{padding:13px 18px 22px}
  .home-guidance-choices>a{min-height:78px;padding:13px 4px;grid-template-columns:1fr auto;gap:12px}
  .home-guidance-choices strong{font-size:15px}
  .home-guidance-more{padding:18px 4px 0;align-items:flex-start;flex-wrap:wrap;gap:12px 16px}
  .home-guidance-more>span{width:100%;margin:0}
}

/* Clean homepage hero */
.home-hero-clean{position:relative;overflow:hidden;min-height:660px;padding:72px 5vw 78px;display:grid;grid-template-columns:minmax(0,.93fr) minmax(420px,1.07fr);gap:64px;align-items:center;background:#fffaf6;color:#17171d}
.home-hero-clean:before{content:"";position:absolute;right:-90px;top:-170px;width:430px;height:430px;border:80px solid rgba(245,7,108,.055);border-radius:50%}
.home-hero-clean-copy{position:relative;z-index:2;max-width:690px;margin-left:max(0px,calc((100vw - 1420px)/2))}
.home-hero-clean-label{display:inline-flex;align-items:center;gap:9px;margin-bottom:24px;color:#5d5860;font-size:12px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}
.home-hero-clean-label:before{content:"";width:30px;height:3px;border-radius:99px;background:var(--pink)}
.home-hero-clean h1{margin:0;max-width:760px;font-size:clamp(55px,6vw,94px);line-height:.92;letter-spacing:-.07em;color:#17171d}
.home-hero-clean h1 em{color:var(--pink);font-style:normal}
.home-hero-clean-copy>p{max-width:590px;margin:28px 0 31px;color:#5f5a62;font-size:19px;line-height:1.55}
.home-hero-clean-actions{display:flex;align-items:center;gap:23px}
.home-hero-clean-actions .button{padding:16px 23px}
.home-hero-clean-link{padding:10px 0;color:#17171d;border-bottom:2px solid #17171d;font-size:14px;font-weight:850;text-decoration:none}
.home-hero-clean-promises{margin-top:46px;padding-top:25px;border-top:1px solid #ded9d5;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));max-width:650px}
.home-hero-clean-promises span{padding:0 22px;border-left:1px solid #ded9d5;display:grid;gap:4px}
.home-hero-clean-promises span:first-child{padding-left:0;border-left:0}
.home-hero-clean-promises strong{font-size:17px;letter-spacing:-.02em}
.home-hero-clean-promises small{color:#777179;font-size:11px}
.home-hero-clean-visual{position:relative;z-index:1;align-self:stretch;min-height:500px;display:flex;align-items:center}
.home-hero-clean-visual figure{width:100%;height:min(530px,72vh);margin:0;border-radius:34px 0 0 34px;overflow:hidden;background:#ece7e4;box-shadow:0 24px 60px rgba(23,23,29,.13)}
.home-hero-clean-visual img{width:100%;height:100%;display:block;object-fit:cover;object-position:center}
.home-hero-clean-note{position:absolute;left:-38px;bottom:42px;width:min(330px,72%);padding:20px 23px;border-radius:18px;color:#fff;background:#17171d;box-shadow:0 18px 36px rgba(23,23,29,.22)}
.home-hero-clean-note span{display:block;margin-bottom:7px;color:#ff78ae;font-size:10px;font-weight:900;letter-spacing:.11em;text-transform:uppercase}
.home-hero-clean-note strong{font-size:20px;line-height:1.15}

@media(max-width:980px){
  .home-hero-clean{min-height:0;padding:60px 28px 68px;grid-template-columns:1fr;gap:42px}
  .home-hero-clean-copy{max-width:760px;margin:0 auto;text-align:center}
  .home-hero-clean h1{margin-inline:auto}
  .home-hero-clean-copy>p{margin-inline:auto}
  .home-hero-clean-actions{justify-content:center}
  .home-hero-clean-promises{margin-inline:auto;text-align:left}
  .home-hero-clean-visual{width:min(760px,100%);min-height:0;margin:0 auto}
  .home-hero-clean-visual figure{height:440px;border-radius:28px}
  .home-hero-clean-note{left:24px;bottom:24px}
}

@media(max-width:680px){
  .home-hero-clean{padding:42px 18px 48px;gap:30px}
  .home-hero-clean-label{margin-bottom:19px;font-size:10px}
  .home-hero-clean h1{font-size:53px;line-height:.96}
  .home-hero-clean-copy>p{margin:23px auto 25px;font-size:16px;line-height:1.5}
  .home-hero-clean-actions{display:grid;grid-template-columns:1fr;gap:13px}
  .home-hero-clean-actions .button{width:100%;justify-content:center}
  .home-hero-clean-link{justify-self:center}
  .home-hero-clean-promises{margin-top:31px;padding-top:19px;gap:0}
  .home-hero-clean-promises span{padding:0 9px}
  .home-hero-clean-promises strong{font-size:14px}
  .home-hero-clean-promises small{font-size:9px;line-height:1.3}
  .home-hero-clean-visual figure{height:360px;border-radius:22px}
  .home-hero-clean-note{left:14px;right:14px;bottom:14px;width:auto;padding:16px 18px;border-radius:15px}
  .home-hero-clean-note strong{font-size:17px}
}

/* Page locale Bagneux — contenu SEO dense, présentation compacte et mobile */
.city-page-auto-ecole-bagneux .section { padding-top:74px; padding-bottom:74px; }
.city-page-auto-ecole-bagneux .city-hero { min-height:520px; padding-top:66px; padding-bottom:66px; grid-template-columns:minmax(0,1.42fr) minmax(310px,.58fr); gap:6%; }
.city-page-auto-ecole-bagneux .city-hero h1 { max-width:850px; margin:12px 0 20px; font-size:clamp(40px,4.25vw,61px); line-height:1.04; }
.city-page-auto-ecole-bagneux .city-hero-copy>p:last-of-type { max-width:760px; font-size:17px; line-height:1.62; }
.city-page-auto-ecole-bagneux .city-place-card { padding:31px; border-radius:22px; }
.city-page-auto-ecole-bagneux .city-content { grid-template-columns:minmax(260px,.72fr) minmax(0,1.28fr); gap:7%; }
.city-page-auto-ecole-bagneux .city-content h2,.city-page-auto-ecole-bagneux .city-local-copy h2 { font-size:clamp(34px,3.25vw,47px); }
.city-page-auto-ecole-bagneux .city-benefits { gap:10px; }
.city-page-auto-ecole-bagneux .city-benefits li { padding:16px 18px; border-radius:15px; }
.city-page-auto-ecole-bagneux .city-local-proof { grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr); gap:6%; }
.city-page-auto-ecole-bagneux .city-local-photo { min-height:430px; border-radius:23px; }
.city-page-auto-ecole-bagneux .city-local-photo img { object-position:center 28%; }
.city-local-media { min-width:0; }
.city-photo-credit { margin:10px 4px 0; color:#777c86; font-size:10px; line-height:1.45; }
.city-photo-credit a { color:#555a65; text-decoration:underline; text-underline-offset:2px; }
.city-photo-credit a:hover { color:var(--pink); }
.city-page-auto-ecole-bagneux .city-local-story p { margin-bottom:12px; font-size:15px; line-height:1.65; }
.city-page-auto-ecole-bagneux .city-local-facts { margin:20px 0 18px; }
.city-page-auto-ecole-bagneux .city-local-facts>div { padding:12px 14px; }
.city-page-auto-ecole-bagneux .city-training-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.city-page-auto-ecole-bagneux .city-training-grid a { min-height:112px; padding:20px; border-radius:17px; }
.city-page-auto-ecole-bagneux .city-training-grid strong { font-size:18px; }
.city-page-auto-ecole-bagneux .city-section-heading { max-width:780px; margin-bottom:26px; }
.city-price-grid-two { grid-template-columns:repeat(2,minmax(0,1fr)); }
.city-page-auto-ecole-bagneux .city-price-grid article { min-height:0; padding:27px; border-radius:20px; }
.city-price-options { margin:0 0 20px; border-top:1px solid #ececf0; border-bottom:1px solid #ececf0; }
.city-price-options p { margin:0!important; padding:11px 0; display:flex; align-items:center; justify-content:space-between; gap:20px; color:#242730!important; }
.city-price-options p+p { border-top:1px solid #ececf0; }
.city-price-options b { font-size:14px; }
.city-price-options span { color:var(--pink); font-size:18px; font-weight:900; white-space:nowrap; }
.city-rdv-detail { display:grid; grid-template-columns:minmax(0,.83fr) minmax(0,1.17fr); gap:7%; align-items:center; }
.city-rdv-copy h2 { margin:10px 0 18px; font-size:clamp(34px,3.5vw,49px); line-height:1.07; letter-spacing:-.04em; }
.city-rdv-copy>p:last-child { color:var(--muted); line-height:1.68; }
.city-rdv-cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:13px; }
.city-rdv-cards article { min-height:205px; padding:25px; border:1px solid #e2e3e8; border-radius:20px; display:flex; flex-direction:column; background:#fff; box-shadow:0 14px 38px rgba(17,19,26,.06); }
.city-rdv-cards small { color:var(--pink); font-size:10px; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.city-rdv-cards strong { margin:13px 0 12px; font-size:21px; line-height:1.22; }
.city-rdv-cards p { margin:auto 0 0; color:var(--muted); font-size:14px; line-height:1.55; }

@media (max-width:980px) {
  .city-page-auto-ecole-bagneux .city-hero { grid-template-columns:1fr; }
  .city-page-auto-ecole-bagneux .city-training-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .city-rdv-detail { grid-template-columns:1fr; }
}

@media (max-width:680px) {
  .city-page-auto-ecole-bagneux .section { padding-top:54px; padding-bottom:54px; }
  .city-page-auto-ecole-bagneux .city-hero { width:100%; min-height:0; padding:50px 20px; grid-template-columns:minmax(0,1fr); gap:26px; }
  .city-page-auto-ecole-bagneux .city-hero-copy { min-width:0; max-width:100%; text-align:center; }
  .city-page-auto-ecole-bagneux .city-hero-copy .eyebrow { justify-content:center; }
  .city-page-auto-ecole-bagneux .city-hero h1 { max-width:100%; margin:10px auto 18px; font-size:36px; line-height:1.08; letter-spacing:-.045em; overflow-wrap:anywhere; }
  .city-page-auto-ecole-bagneux .city-hero-copy>p:last-of-type { max-width:520px; margin-right:auto; margin-left:auto; font-size:15px; line-height:1.58; }
  .city-page-auto-ecole-bagneux .city-hero-copy .actions { max-width:390px; margin-right:auto; margin-left:auto; }
  .city-page-auto-ecole-bagneux .city-place-card { padding:23px; text-align:left; }
  .city-page-auto-ecole-bagneux .city-content,.city-page-auto-ecole-bagneux .city-local-proof { grid-template-columns:1fr; gap:25px; }
  .city-page-auto-ecole-bagneux .city-content>div:first-child,.city-page-auto-ecole-bagneux .city-section-heading,.city-page-auto-ecole-bagneux .city-formations .section-heading { max-width:540px; margin-right:auto; margin-left:auto; text-align:center; }
  .city-page-auto-ecole-bagneux .city-content .eyebrow,.city-page-auto-ecole-bagneux .city-section-heading .eyebrow { justify-content:center; }
  .city-page-auto-ecole-bagneux .city-content h2 { font-size:32px; }
  .city-page-auto-ecole-bagneux .city-local-photo { min-height:290px; }
  .city-page-auto-ecole-bagneux .city-local-photo img { object-position:center 24%; }
  .city-photo-credit { margin-top:8px; text-align:center; }
  .city-page-auto-ecole-bagneux .city-local-copy>h2,.city-page-auto-ecole-bagneux .city-local-copy>.eyebrow { text-align:center; }
  .city-page-auto-ecole-bagneux .city-local-copy>.eyebrow { justify-content:center; }
  .city-page-auto-ecole-bagneux .city-local-copy h2 { max-width:520px; margin-right:auto; margin-left:auto; font-size:32px; }
  .city-page-auto-ecole-bagneux .city-local-actions { justify-content:center; align-items:center; text-align:center; }
  .city-page-auto-ecole-bagneux .city-editorial-heading { max-width:540px; margin-right:auto; margin-left:auto; text-align:center; }
  .city-page-auto-ecole-bagneux .city-editorial-heading .eyebrow { justify-content:center; }
  .city-page-auto-ecole-bagneux .city-editorial-copy { columns:1; }
  .city-page-auto-ecole-bagneux .city-editorial-copy p { max-width:560px; margin-right:auto; margin-left:auto; text-align:left; }
  .city-page-auto-ecole-bagneux .city-training-grid { grid-template-columns:1fr 1fr; gap:9px; }
  .city-page-auto-ecole-bagneux .city-training-grid a { min-height:103px; padding:16px 12px; align-items:center; text-align:center; }
  .city-page-auto-ecole-bagneux .city-training-grid strong { font-size:15px; }
  .city-page-auto-ecole-bagneux .city-training-grid span { margin-top:12px; font-size:10px; }
  .city-price-grid-two { grid-template-columns:1fr; gap:10px; }
  .city-page-auto-ecole-bagneux .city-price-grid article { padding:21px; text-align:center; }
  .city-page-auto-ecole-bagneux .city-price-grid article>p { max-width:470px; margin-right:auto; margin-left:auto; text-align:left; }
  .city-price-options { text-align:left; }
  .city-page-auto-ecole-bagneux .city-price-footer { align-items:center; text-align:center; }
  .city-rdv-copy { text-align:center; }
  .city-rdv-copy .eyebrow { justify-content:center; }
  .city-rdv-copy h2 { font-size:32px; }
  .city-rdv-copy>p:last-child { max-width:550px; margin-right:auto; margin-left:auto; text-align:left; }
  .city-rdv-cards { grid-template-columns:1fr; gap:10px; }
  .city-rdv-cards article { min-height:0; padding:21px; text-align:center; }
  .city-rdv-cards p { max-width:420px; margin:0 auto; }
  .city-page-auto-ecole-bagneux .city-faq .section-heading { text-align:center; }
}

/* Espace élève — présentation vidéo */
.student-video-page{
  --student-pink:#f5076c;
  --student-pink-soft:#fff0f6;
  --student-ink:#11131a;
  --student-muted:#686d78;
  --student-lime:#ddf982;
  --student-cream:#fffaf7;
  --student-line:#eee7ea;
  overflow:hidden;
  color:var(--student-ink);
  background:var(--student-cream);
}
.student-video-shell{width:min(1210px,calc(100% - 48px));margin-inline:auto}
.student-video-hero{position:relative;overflow:hidden;padding:76px 0 90px;background:linear-gradient(125deg,#fffaf7 0 58%,#ffe8f1 58%)}
.student-video-hero::before{content:"";position:absolute;width:420px;height:420px;border-radius:50%;left:-190px;bottom:-260px;background:rgba(221,249,130,.42)}
.student-video-grid{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(390px,.72fr);gap:78px;align-items:center}
.student-video-kicker{display:inline-flex;align-items:center;gap:9px;padding:9px 14px;border:1px solid #f2dfe7;border-radius:999px;color:var(--student-pink);background:#fff;font-size:11px;font-weight:950;letter-spacing:.1em;text-transform:uppercase}
.student-video-kicker::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--student-pink);box-shadow:0 0 0 5px #ffe2ee}
.student-video-copy h1{max-width:720px;margin:25px 0 24px;color:var(--student-ink);font-size:clamp(58px,6.1vw,88px);line-height:.93;letter-spacing:-.065em}
.student-video-copy h1 em{display:block;color:var(--student-pink);font-style:normal}
.student-video-lead{max-width:650px;margin:0;color:#565159;font-size:18px;line-height:1.7}
.student-video-actions{margin-top:34px;display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.student-video-actions .button{min-height:52px;padding:0 25px;box-shadow:0 14px 30px rgba(245,7,108,.2)}
.student-video-demo-link{min-height:52px;padding:0 22px;border:1px solid #ddd6da;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;color:var(--student-ink);background:#fff;font-weight:850}
.student-video-proofs{margin-top:34px;padding-top:24px;border-top:1px solid #e9dfe3;display:flex;gap:26px;flex-wrap:wrap}
.student-video-proofs span{display:flex;align-items:center;gap:9px;color:#52545c;font-size:13px;font-weight:750}
.student-video-proofs span::before{content:"✓";width:26px;height:26px;border-radius:50%;display:grid;place-items:center;color:#17191d;background:var(--student-lime);font-weight:950}
.student-video-phone-column{text-align:center;scroll-margin-top:110px}
.student-video-phone-label{margin:0 0 14px;color:#69636b;font-size:12px;font-weight:850;letter-spacing:.06em;text-transform:uppercase}
.student-video-phone-stage{position:relative;width:min(470px,100%);margin:auto;filter:drop-shadow(0 30px 42px rgba(56,30,43,.18))}
.student-video-poster{position:absolute;z-index:12;inset:0;padding:0;overflow:hidden;border:0;border-radius:6px;background:#fff;cursor:pointer;transition:opacity .25s ease,transform .25s ease}
.student-video-poster:hover{transform:translateY(-3px)}
.student-video-poster.is-loading{cursor:progress;filter:saturate(.85)}
.student-video-poster.is-hidden{opacity:0;transform:scale(.98);pointer-events:none}
.student-video-poster img{width:100%;height:100%;display:block;object-fit:cover}
.student-video-phone-frame{position:relative;z-index:3;width:100%;height:auto;display:block;pointer-events:none}
.student-video-screen{position:absolute;z-index:4;left:13.5%;top:9.2%;width:63.7%;height:78.8%;overflow:hidden;border-radius:31px;background:#fff;box-shadow:inset 0 0 0 2px rgba(0,0,0,.08)}
.student-video-screen video{width:100%;height:100%;display:block;object-fit:contain;background:#fff}
.student-video-screen::after{content:"";position:absolute;z-index:4;top:10px;left:50%;width:92px;height:25px;border-radius:999px;transform:translateX(-50%);background:#060606;pointer-events:none}
.student-video-play{position:absolute;z-index:6;left:50%;top:50%;width:72px;height:72px;padding:0;border:0;border-radius:50%;transform:translate(-50%,-50%);display:grid;place-items:center;color:#fff;background:var(--student-pink);box-shadow:0 15px 34px rgba(245,7,108,.35);cursor:pointer;transition:opacity .2s ease,transform .2s ease}
.student-video-play:hover{transform:translate(-50%,-50%) scale(1.06)}
.student-video-play svg{width:25px;margin-left:4px;fill:currentColor}
.student-video-play.is-hidden{opacity:0;pointer-events:none}
.student-video-caption{position:absolute;z-index:8;left:50%;bottom:7.6%;width:66%;padding:12px 14px;border-radius:16px;transform:translateX(-50%);color:#fff;background:rgba(17,19,26,.86);backdrop-filter:blur(8px);font-size:11px;font-weight:850;line-height:1.35;pointer-events:none}
.student-video-caption b{color:var(--student-lime)}
.student-video-features{padding:94px 0;background:#fff}
.student-video-section-head{max-width:760px;margin-bottom:46px}
.student-video-section-head small{color:var(--student-pink);font-weight:950;letter-spacing:.12em;text-transform:uppercase}
.student-video-section-head h2{margin:13px 0 0;color:var(--student-ink);font-size:clamp(44px,5vw,67px);line-height:.98;letter-spacing:-.055em}
.student-video-feature-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--student-line);border-bottom:1px solid var(--student-line)}
.student-video-feature-grid article{padding:32px 26px}
.student-video-feature-grid article+article{border-left:1px solid var(--student-line)}
.student-video-feature-icon{width:48px;height:48px;border-radius:15px;display:grid;place-items:center;color:var(--student-pink);background:var(--student-pink-soft);font-size:22px;font-weight:900}
.student-video-feature-grid h3{margin:23px 0 9px;font-size:21px}
.student-video-feature-grid p{margin:0;color:var(--student-muted);font-size:14px;line-height:1.65}

@media(min-width:981px) and (max-width:1360px){
  .site-header{padding-inline:3vw;gap:22px}
  .site-header nav{gap:19px}
  .site-header nav>a,.nav-dropdown-toggle{font-size:13px}
  .site-header .brand img{width:160px}
  .student-video-grid{gap:48px}
}
@media(max-width:1000px){
  .student-video-hero{padding-top:52px;background:linear-gradient(180deg,#fffaf7 0 62%,#ffe8f1 62%)}
  .student-video-grid{grid-template-columns:1fr;gap:54px}
  .student-video-copy{text-align:center}
  .student-video-lead{margin-inline:auto}
  .student-video-actions,.student-video-proofs{justify-content:center}
  .student-video-phone-stage{width:min(430px,90vw)}
  .student-video-feature-grid{grid-template-columns:repeat(2,1fr)}
  .student-video-feature-grid article:nth-child(3){border-left:0;border-top:1px solid var(--student-line)}
  .student-video-feature-grid article:nth-child(4){border-top:1px solid var(--student-line)}
}
@media(max-width:600px){
  .student-video-shell{width:calc(100% - 32px)}
  .student-video-hero{padding:36px 0 62px}
  .student-video-grid{gap:42px}
  .student-video-copy h1{margin-top:21px;font-size:49px}
  .student-video-lead{font-size:16px;line-height:1.62}
  .student-video-actions{display:grid}
  .student-video-actions .button,.student-video-demo-link{width:100%}
  .student-video-proofs{gap:12px;justify-content:flex-start;text-align:left}
  .student-video-proofs span{width:100%}
  .student-video-phone-stage{width:min(370px,100%)}
  .student-video-screen{border-radius:25px}
  .student-video-play{width:62px;height:62px}
  .student-video-caption{bottom:7.8%;width:68%;font-size:10px}
  .student-video-features{padding:70px 0}
  .student-video-section-head h2{font-size:43px}
  .student-video-feature-grid{grid-template-columns:1fr}
  .student-video-feature-grid article+article,.student-video-feature-grid article:nth-child(3),.student-video-feature-grid article:nth-child(4){border-left:0;border-top:1px solid var(--student-line)}
}
@media(prefers-reduced-motion:reduce){
  .student-video-poster,.student-video-play{transition:none}
}

/* Accessibilité, formulaires et pages légales */
:where(a,button,input,select,textarea,summary):focus-visible { outline:3px solid rgba(245,7,108,.42); outline-offset:3px; }
.ovolant-honeypot { position:absolute!important; width:1px!important; height:1px!important; margin:-1px!important; padding:0!important; overflow:hidden!important; clip:rect(0 0 0 0)!important; white-space:nowrap!important; border:0!important; }
.form-notice { margin-bottom:16px; padding:15px 18px; border:1px solid #f3afc9; border-radius:15px; display:grid; gap:4px; color:#5e233a; background:#fff3f8; font-size:13px; line-height:1.5; }
.form-notice a,.quiz-consent a { color:var(--pink); font-weight:800; text-decoration:underline; text-underline-offset:2px; }
.quiz-consent span { flex:1; }
.login-card-actions { display:grid; gap:14px; align-content:center; }
.login-card-actions .login-mark { margin-inline:auto; }
.login-card-actions h2,.login-card-actions>p { text-align:center; }
.login-card-actions .button { min-height:50px; display:flex; justify-content:center; }
.login-card-actions .button.secondary { border:1px solid var(--pink); color:var(--pink); background:#fff; }
.legal-text-page { max-width:940px; margin:0 auto; display:grid; gap:18px; }
.legal-text-page>section { padding:28px 30px; border:1px solid var(--line); border-radius:20px; background:#fff; }
.legal-text-page h2 { margin:0 0 10px; font-size:23px; letter-spacing:-.025em; }
.legal-text-page p { margin:0; color:var(--muted); line-height:1.7; }
.legal-text-page p+p { margin-top:12px; }
.legal-text-page a { color:var(--pink); font-weight:750; }
.legal-updated { color:var(--muted); font-size:12px; text-align:right; }
.legal-completion { border-color:#f3afc9!important; background:#fff7fa!important; }

@media (max-width:680px) {
  .legal-text-page { padding:46px 20px; }
  .legal-text-page>section { padding:22px 20px; border-radius:17px; }
  .legal-text-page h2 { font-size:21px; }
  .footer-legal a { min-height:44px; display:inline-flex; align-items:center; }
}

@media (max-width:760px) {
  .legal-page { padding:48px 20px 70px; }
  .legal-intro { align-items:stretch; flex-direction:column; gap:20px; }
  .legal-actions { display:grid; grid-template-columns:1fr 1fr; width:100%; }
  .legal-actions .button { width:100%; padding-inline:14px; text-align:center; }
  .legal-document { display:none; }
  .footer-legal { justify-content:flex-start; }
}

@media (max-width:430px) {
  .legal-actions { grid-template-columns:1fr; }
}

/* Formations : icône et titre sur une même ligne */
.formation-row h2 { margin-top:0; line-height:1.2; }
.formation-more { margin-top:24px; overflow:hidden; border:1px solid #f2d6e2; border-radius:20px; background:#fffafb; }
.formation-more summary { position:relative; display:flex; align-items:center; justify-content:space-between; gap:18px; padding:18px 22px; color:#171922; font-weight:800; cursor:pointer; list-style:none; }
.formation-more summary::-webkit-details-marker { display:none; }
.formation-more summary::after { content:'+'; flex:0 0 auto; display:grid; place-items:center; width:30px; height:30px; border-radius:50%; color:#fff; background:var(--pink); font-size:21px; line-height:1; }
.formation-more[open] summary::after { content:'−'; }
.formation-more-content { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; padding:0 18px 18px; }
.formation-more-content>div,.formation-more-content>section { padding:19px; border:1px solid #f0e7eb; border-radius:15px; background:#fff; }
.formation-more-content .formation-more-intro { grid-column:1 / -1; border-color:#ffd0e4; background:#fff2f7; }
.formation-more-content h3 { margin:0 0 8px; font-size:18px; letter-spacing:-.02em; }
.formation-more-content p { margin:0; color:#5f6470; font-size:15px; line-height:1.58; }
.formation-subnav { width:min(1160px,calc(100% - 48px)); margin:0 auto; padding:22px 0; display:flex; gap:9px; overflow-x:auto; scrollbar-width:none; }
.formation-subnav::-webkit-scrollbar { display:none; }
.formation-subnav a { flex:0 0 auto; padding:11px 15px; border:1px solid #eadfe4; border-radius:999px; color:#343741; background:#fff; font-size:13px; font-weight:750; text-decoration:none; transition:.2s ease; }
.formation-subnav a:hover { border-color:var(--pink); color:var(--pink); background:#fff6fa; }
.formation-detail-hero { min-height:430px; }
.formation-detail-intro { width:min(1160px,calc(100% - 48px)); margin:70px auto 55px; display:grid; grid-template-columns:minmax(0,1.5fr) minmax(280px,.65fr); gap:70px; align-items:start; }
.formation-detail-intro h2 { margin:0 0 18px; max-width:740px; font-size:clamp(36px,4vw,58px); letter-spacing:-.045em; line-height:1.02; }
.formation-detail-intro p { margin:0; max-width:760px; color:#626773; font-size:18px; line-height:1.72; }
.formation-detail-intro aside { display:grid; gap:9px; padding:20px; border-radius:22px; background:#fff2f7; }
.formation-detail-intro aside span { padding:14px 15px; border-radius:14px; color:#24262e; background:#fff; font-size:14px; font-weight:800; }
.formation-detail-intro aside span::before { content:'✓'; margin-right:9px; color:var(--pink); }
.formation-detail-steps { width:min(1160px,calc(100% - 48px)); margin:0 auto 70px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.formation-detail-steps article { min-height:175px; padding:28px; display:grid; grid-template-columns:48px 1fr; gap:18px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); background:#fff; }
.formation-detail-step-icon { width:42px; height:42px; display:grid; place-items:center; border-radius:13px; color:var(--pink); background:#fff0f6; }
.formation-detail-step-icon svg { width:23px; height:23px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.formation-detail-steps h3 { margin:0 0 8px; font-size:23px; letter-spacing:-.025em; }
.formation-detail-steps p { margin:0; color:#686d78; line-height:1.55; }
.code-purpose { width:min(1160px,calc(100% - 48px)); margin:0 auto 70px; padding:48px; border-radius:28px; display:grid; grid-template-columns:minmax(0,1.05fr) minmax(340px,.95fr); gap:65px; color:#fff; background:linear-gradient(145deg,#171921,#252833); }
.code-purpose-copy>small,.code-program header>small { color:#ff77ae; font-size:10px; font-weight:900; letter-spacing:.16em; text-transform:uppercase; }
.code-purpose h2,.code-program h2 { margin:10px 0 18px; font-size:clamp(36px,4vw,54px); line-height:1.02; letter-spacing:-.045em; }
.code-purpose-copy>p { margin:0 0 15px; color:#d8d9df; font-size:16px; line-height:1.68; }
.code-purpose-notes { align-self:center; border-left:1px solid rgba(255,255,255,.16); }
.code-purpose-notes section { padding:0 0 22px 28px; }
.code-purpose-notes section+section { padding-top:22px; border-top:1px solid rgba(255,255,255,.11); }
.code-purpose-notes section:last-child { padding-bottom:0; }
.code-purpose-notes h3 { margin:0 0 7px; color:#ff80b4; font-size:21px; }
.code-purpose-notes p { margin:0; color:#d4d5dc; font-size:15px; line-height:1.62; }
.code-program { padding:75px max(5vw,calc((100vw - 1160px)/2)); background:#fff4f8; }
.code-program header { max-width:820px; margin-bottom:42px; }
.code-program header>p { margin:0; max-width:680px; color:#696e79; font-size:17px; line-height:1.65; }
.code-program-article { max-width:980px; }
.code-program-article article { padding:30px 0; display:grid; grid-template-columns:minmax(220px,.7fr) minmax(0,1fr); column-gap:60px; border-top:1px solid #e8cfd9; }
.code-program-article article:last-child { border-bottom:1px solid #e8cfd9; }
.code-program-article h3 { grid-row:1 / span 2; margin:0; color:#242630; font-size:25px; letter-spacing:-.03em; line-height:1.18; }
.code-program-article p { margin:0 0 13px; color:#606570; font-size:16px; line-height:1.72; }
.code-program-article p:last-child { margin-bottom:0; }
.code-method { width:min(1040px,calc(100% - 48px)); margin:82px auto; }
.code-method>header { max-width:780px; margin-bottom:48px; }
.code-method>header small,.code-access>header small { color:var(--pink); font-size:10px; font-weight:900; letter-spacing:.16em; text-transform:uppercase; }
.code-method>header h2,.code-access>header h2 { margin:10px 0 17px; font-size:clamp(38px,4.5vw,58px); line-height:1.02; letter-spacing:-.045em; }
.code-method>header p { margin:0; max-width:700px; color:#656a75; font-size:17px; line-height:1.7; }
.code-method-flow { position:relative; margin-left:12px; padding-left:48px; border-left:2px solid #f2d9e3; }
.code-method-flow article { position:relative; max-width:790px; padding:0 0 40px; }
.code-method-flow article:last-child { padding-bottom:0; }
.code-method-flow article::before { content:''; position:absolute; top:5px; left:-57px; width:16px; height:16px; border:5px solid #fff; border-radius:50%; background:var(--pink); box-shadow:0 0 0 1px #f0c8d8; }
.code-method-flow small { display:block; margin-bottom:7px; color:var(--pink); font-size:11px; font-weight:850; letter-spacing:.1em; text-transform:uppercase; }
.code-method-flow h3 { margin:0 0 9px; font-size:25px; letter-spacing:-.025em; }
.code-method-flow p { margin:0; color:#656a75; font-size:16px; line-height:1.68; }
.code-access { padding:78px max(5vw,calc((100vw - 1160px)/2)); background:#f7f5f6; }
.code-access>header { max-width:760px; margin-bottom:46px; }
.code-access-copy { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:64px; }
.code-access-copy article+article { padding-left:64px; border-left:1px solid #ddd4d8; }
.code-access-copy h3 { margin:0 0 15px; font-size:27px; letter-spacing:-.03em; line-height:1.2; }
.code-access-copy p { margin:0 0 14px; color:#626771; font-size:16px; line-height:1.7; }
.code-exam-note { margin:42px 0 0; padding:24px 0 0; border-top:1px solid #ddd4d8; color:#3d414b; font-size:16px; line-height:1.7; }
.code-exam-note strong { color:var(--pink); }
.aac-journey { width:min(1160px,calc(100% - 48px)); margin:0 auto 78px; }
.aac-journey>header { margin-bottom:32px; display:flex; align-items:flex-end; justify-content:space-between; gap:28px; }
.aac-journey>header small { color:var(--pink); font-size:12px; font-weight:850; letter-spacing:.14em; text-transform:uppercase; }
.aac-journey>header h2 { max-width:760px; margin:8px 0 0; font-size:clamp(34px,4vw,52px); letter-spacing:-.045em; line-height:1.04; }
.aac-journey>header nav { display:flex; gap:8px; flex:0 0 auto; }
.aac-journey>header button { width:46px; height:46px; border:1px solid #eadfe4; border-radius:50%; color:#252831; background:#fff; font-size:20px; cursor:pointer; transition:.2s ease; }
.aac-journey>header button:hover { border-color:var(--pink); color:var(--pink); }
.aac-journey>header button:disabled { opacity:.3; cursor:default; }
.aac-carousel { display:flex; gap:16px; padding:3px 2px 18px; overflow-x:auto; overscroll-behavior-inline:contain; scroll-behavior:smooth; scroll-snap-type:x mandatory; scrollbar-width:none; }
.aac-carousel::-webkit-scrollbar { display:none; }
.aac-slide { position:relative; flex:0 0 clamp(280px,32vw,350px); min-height:285px; padding:28px; border:1px solid var(--line); border-radius:22px; background:#fff; scroll-snap-align:start; }
.aac-slide>span { width:44px; height:44px; margin-bottom:28px; display:grid; place-items:center; border-radius:13px; color:var(--pink); background:#fff0f6; font-size:14px; font-weight:900; }
.aac-slide>span svg { width:23px; height:23px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.aac-slide>small { display:block; margin-bottom:8px; color:var(--pink); font-size:11px; font-weight:850; letter-spacing:.09em; text-transform:uppercase; }
.aac-slide h3 { margin:0 0 11px; font-size:24px; letter-spacing:-.03em; }
.aac-slide p { margin:0; color:#696e78; line-height:1.55; }
.aac-slide-decision { color:#fff; background:#15171e; }
.aac-slide-decision>span { color:#fff; background:var(--pink); }
.aac-slide-decision h3 { color:#fff; }
.aac-slide-decision>div { display:grid; grid-template-columns:auto 1fr; gap:5px 10px; }
.aac-slide-decision strong { color:#ffbdd6; }
.aac-slide-decision p { color:#c4c6cd; font-size:14px; }
.aac-slide-final { border-color:#f6a1c3; background:#fff7fa; }
.aac-carousel-progress { height:4px; margin-top:4px; overflow:hidden; border-radius:99px; background:#f0e9ec; }
.aac-carousel-progress span { display:block; width:0; height:100%; border-radius:inherit; background:var(--pink); transition:width .12s linear; }
.aac-journey-more { margin-top:24px; display:flex; align-items:center; gap:16px; }
.aac-journey-more .button { min-height:48px; padding:0 22px; }
.aac-journey-more small { color:#737883; font-size:13px; }
.formation-detail-cards { padding:75px max(5vw,calc((100vw - 1160px)/2)); display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; background:#f7f5f6; }
.formation-detail-cards article { padding:34px; border:1px solid #ece5e8; border-radius:24px; background:#fff; }
.formation-detail-cards article:last-child:nth-child(odd) { grid-column:1 / -1; }
.formation-detail-cards h2 { margin:0 0 12px; font-size:31px; letter-spacing:-.035em; }
.formation-detail-cards p { margin:0; color:#676c77; line-height:1.6; }
.formation-detail-cards ul { margin:25px 0 0; padding:0; display:grid; gap:10px; list-style:none; }
.formation-detail-cards li { color:#41454f; }
.formation-detail-cards li::first-letter { color:var(--pink); }
.formation-detail-card-button { min-height:46px; margin-top:26px; padding:0 20px; box-shadow:none; font-size:13px; }
.formation-detail-card-button:hover { box-shadow:0 11px 26px rgba(245,7,108,.22); }
.formation-detail-faq { width:min(1160px,calc(100% - 48px)); margin:80px auto; display:grid; grid-template-columns:minmax(240px,.65fr) minmax(0,1.35fr); gap:70px; align-items:start; }
.formation-detail-faq>div:first-child { position:sticky; top:30px; }
.formation-detail-faq h2 { margin:0 0 12px; font-size:42px; letter-spacing:-.04em; }
.formation-detail-faq>div:first-child p { color:#767b85; line-height:1.6; }
.formation-detail-cta { padding:65px max(5vw,calc((100vw - 1160px)/2)); display:flex; align-items:center; justify-content:space-between; gap:30px; color:#fff; background:#15171e; }
.formation-detail-cta small { color:#ffb7d3; font-weight:800; }
.formation-detail-cta h2 { margin:8px 0 0; font-size:40px; letter-spacing:-.04em; }
.formation-detail-cta>div:last-child { display:flex; gap:12px; }
@media (max-width:680px) {
  .formation-more { margin-top:20px; border-radius:17px; }
  .formation-more summary { padding:16px; font-size:14px; line-height:1.35; }
  .formation-more-content { grid-template-columns:1fr; padding:0 12px 12px; }
  .formation-more-content .formation-more-intro { grid-column:auto; }
  .formation-more-content>div,.formation-more-content>section { padding:16px; }
  .formation-subnav { width:calc(100% - 40px); padding:16px 0; }
  .formation-subnav a { padding:10px 13px; font-size:12px; }
  .formation-detail-hero { min-height:auto; }
  .formation-detail-intro { width:calc(100% - 40px); margin:48px auto 38px; grid-template-columns:1fr; gap:28px; }
  .formation-detail-intro h2 { font-size:36px; }
  .formation-detail-intro p { font-size:16px; }
  .formation-detail-intro aside { padding:14px; border-radius:18px; }
  .formation-detail-steps { width:calc(100% - 40px); margin-bottom:48px; grid-template-columns:1fr; }
  .formation-detail-steps article { min-height:0; padding:22px 18px; grid-template-columns:38px 1fr; }
  .formation-detail-step-icon { width:36px; height:36px; border-radius:11px; }
  .formation-detail-step-icon svg { width:20px; height:20px; }
  .code-purpose { width:calc(100% - 40px); margin-bottom:48px; padding:28px 22px; grid-template-columns:1fr; gap:28px; border-radius:22px; }
  .code-purpose h2,.code-program h2 { font-size:34px; }
  .code-purpose-notes { border-left:0; border-top:1px solid rgba(255,255,255,.16); }
  .code-purpose-notes section { padding:20px 0; }
  .code-purpose-notes section+section { padding-top:20px; }
  .code-purpose-notes section:last-child { padding-bottom:0; }
  .code-program { padding:52px 20px; }
  .code-program header { margin-bottom:25px; }
  .code-program-article article { padding:25px 0; grid-template-columns:1fr; row-gap:12px; }
  .code-program-article h3 { grid-row:auto; font-size:23px; }
  .code-program-article p { font-size:15px; }
  .code-method { width:calc(100% - 40px); margin:55px auto; }
  .code-method>header { margin-bottom:35px; }
  .code-method>header h2,.code-access>header h2 { font-size:34px; }
  .code-method>header p { font-size:16px; }
  .code-method-flow { margin-left:7px; padding-left:30px; }
  .code-method-flow article { padding-bottom:32px; }
  .code-method-flow article::before { left:-39px; }
  .code-method-flow h3 { font-size:22px; }
  .code-method-flow p { font-size:15px; }
  .code-access { padding:52px 20px; }
  .code-access>header { margin-bottom:32px; }
  .code-access-copy { grid-template-columns:1fr; gap:30px; }
  .code-access-copy article+article { padding:30px 0 0; border-top:1px solid #ddd4d8; border-left:0; }
  .code-access-copy h3 { font-size:24px; }
  .code-access-copy p,.code-exam-note { font-size:15px; }
  .aac-journey { width:calc(100% - 40px); margin-bottom:52px; }
  .aac-journey>header { margin-bottom:24px; align-items:flex-end; }
  .aac-journey>header h2 { font-size:34px; }
  .aac-journey>header button { width:42px; height:42px; }
  .aac-carousel { margin-right:-20px; padding-right:20px; }
  .aac-slide { flex-basis:84%; min-height:270px; padding:24px 22px; }
  .aac-journey-more { align-items:flex-start; flex-direction:column; gap:9px; }
  .formation-detail-steps h3 { font-size:20px; }
  .formation-detail-cards { padding:52px 20px; grid-template-columns:1fr; }
  .formation-detail-cards article,.formation-detail-cards article:last-child:nth-child(odd) { grid-column:auto; padding:25px 20px; border-radius:19px; }
  .formation-detail-cards h2 { font-size:27px; }
  .formation-detail-faq { width:calc(100% - 40px); margin:55px auto; grid-template-columns:1fr; gap:25px; }
  .formation-detail-faq>div:first-child { position:static; }
  .formation-detail-faq h2 { font-size:34px; }
  .formation-detail-cta { padding:50px 20px; align-items:stretch; flex-direction:column; }
  .formation-detail-cta h2 { font-size:34px; }
  .formation-detail-cta>div:last-child { flex-direction:column; }
}

@media (max-width:680px) {
  .formation-row:not(.formation-code),
  .formation-row.formation-code {
    grid-template-columns:48px minmax(0,1fr);
    column-gap:15px;
    row-gap:0;
  }
  .formation-row>.formation-number {
    grid-column:1;
    grid-row:1;
    align-self:center;
  }
  .formation-row>div:last-child { display:contents; }
  .formation-list .formation-row>div:last-child>h2 {
    grid-column:2;
    grid-row:1;
    align-self:center;
    margin:0;
    font-size:34px;
    line-height:1.08;
  }
  .formation-row>div:last-child>:not(h2) { grid-column:1 / -1; }
  .formation-row>div:last-child>.formation-lead { margin-top:20px; }
}

/* Pop-up promotion : composition plus carrée, remise mise au premier plan */
.promo-popup-dialog {
  width:min(720px,100%);
  min-height:410px;
  grid-template-columns:285px minmax(0,1fr);
  border-radius:14px;
}
.promo-popup-close { border-radius:9px; }
.promo-popup-badge { gap:20px; padding:34px 24px; }
.promo-popup-badge {
  background:
    linear-gradient(180deg,rgba(10,11,16,.2),rgba(10,11,16,.72)),
    url('assets/images/home-driving-1280.jpg') 58% center/cover no-repeat;
}
.promo-popup-badge::before {
  width:auto;
  height:auto;
  inset:0;
  border:0;
  border-radius:0;
  opacity:1;
  background:linear-gradient(135deg,rgba(245,7,108,.18),transparent 48%);
}
.promo-road-lines { display:none; }
.promo-steering { width:70px; height:70px; border-width:5px; }
.promo-steering::before,.promo-steering::after { width:49px; height:5px; }
.promo-steering span { width:21px; height:21px; border-width:4px; }
.promo-discount-sign {
  width:236px;
  padding:18px 12px 16px;
  border:0;
  border-radius:9px;
  color:#fff;
  background:var(--pink);
  box-shadow:0 18px 40px rgba(0,0,0,.4),inset 0 0 0 1px rgba(255,255,255,.22);
  transform:none;
}
.promo-discount-sign small { color:#fff; font-size:10px; opacity:.88; }
.promo-discount-sign strong { margin:5px 0 3px; color:#fff; font-size:72px; line-height:.88; letter-spacing:-.075em; }
.promo-discount-sign em { color:#fff; font-size:8px; opacity:.9; }
.promo-popup-content { padding:43px 38px 32px; }
.promo-popup-content h2 { max-width:350px; font-size:35px; }

@media (max-width:680px) {
  .promo-popup { padding:14px; }
  .promo-popup-dialog {
    width:100%;
    max-width:350px;
    max-height:calc(100dvh - 28px);
    grid-template-columns:1fr;
    grid-template-rows:145px minmax(0,1fr);
    border-radius:13px;
  }
  .promo-popup-close { top:10px; right:10px; border-color:rgba(255,255,255,.45); color:#fff; background:rgba(15,16,22,.72); }
  .promo-popup-badge { min-height:145px; padding:17px 18px; flex-direction:row; gap:14px; }
  .promo-popup-badge { background-position:56% 43%; }
  .promo-popup-badge::before { inset:0; }
  .promo-road-lines { left:25%; width:52px; height:175%; }
  .promo-steering { flex:0 0 auto; width:50px; height:50px; border-width:4px; }
  .promo-steering::before,.promo-steering::after { width:34px; height:4px; }
  .promo-steering span { width:15px; height:15px; border-width:3px; }
  .promo-discount-sign { width:220px; padding:12px 8px 11px; border-radius:8px; }
  .promo-discount-sign small { font-size:7px; }
  .promo-discount-sign strong { margin:3px 0 2px; font-size:51px; }
  .promo-discount-sign em { font-size:6px; }
  .promo-popup-content { min-width:0; overflow-y:auto; padding:24px 21px 18px; }
  .promo-popup-content h2 { padding-right:0; font-size:25px; line-height:1.04; }
}

/* Accueil : points de rendez-vous, FAQ et contact direct */
.home-locations { position:relative;isolation:isolate;padding:78px max(5vw,calc((100vw - 1180px)/2));display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:7%;align-items:center;overflow:hidden;background:linear-gradient(108deg,#fff 0 68%,#f2f7e7 68% 100%); }
.home-locations:before{content:"";position:absolute;z-index:-1;right:-90px;top:50%;width:280px;height:430px;border:1px solid rgba(23,24,30,.08);border-radius:145px;transform:translateY(-50%) rotate(7deg)}
.home-locations-map { position:relative; min-height:420px; overflow:hidden; border-radius:28px; color:#fff; background:radial-gradient(circle at 23% 20%,rgba(245,7,108,.52),transparent 27%),radial-gradient(circle at 78% 76%,rgba(223,250,130,.19),transparent 24%),linear-gradient(145deg,#1b1c22,#0f1015); box-shadow:0 24px 55px rgba(15,16,23,.18); }
.home-locations-map::before { content:''; position:absolute; inset:-20%; opacity:.32; background:repeating-linear-gradient(28deg,transparent 0 42px,rgba(255,255,255,.13) 42px 45px),repeating-linear-gradient(118deg,transparent 0 68px,rgba(255,255,255,.08) 68px 71px); }
.home-locations-map::after { content:''; position:absolute; left:43%; top:-15%; width:15px; height:135%; border-left:2px solid rgba(255,255,255,.28); border-right:2px solid rgba(255,255,255,.14); background:repeating-linear-gradient(to bottom,transparent 0 18px,var(--lime) 18px 35px) center/3px 100% no-repeat; transform:rotate(22deg); }
.home-map-pin { position:absolute; z-index:2; width:39px; height:39px; border:4px solid #fff; border-radius:50% 50% 50% 8px; display:grid; place-items:center; color:#17181e; background:var(--lime); box-shadow:0 9px 22px rgba(0,0,0,.3); font-size:12px; font-style:normal; font-weight:900; transform:rotate(-45deg); }
.home-map-pin span { transform:rotate(45deg); }
.home-map-pin.pin-one { left:27%; top:55%; }
.home-map-pin.pin-two { left:59%; top:24%; }
.home-map-pin.pin-three { left:71%; top:66%; }
.home-locations-map>div { position:absolute; z-index:3; left:22px; right:22px; bottom:22px; padding:17px 18px; border:1px solid rgba(255,255,255,.12); border-radius:15px; background:rgba(15,16,22,.88); backdrop-filter:blur(9px); }
.home-locations-map small,.home-locations-map strong { display:block; }
.home-locations-map small { margin-bottom:5px; color:var(--lime); font-size:9px; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
.home-locations-map strong { font-size:19px; letter-spacing:-.02em; }
.home-locations-kicker{width:max-content;margin-bottom:15px;padding:8px 12px;border-radius:999px;display:inline-flex;color:#17181e;background:var(--lime);font-size:9px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}
.home-locations-copy h2,.home-faq-intro h2 { margin:9px 0 12px; font-size:clamp(34px,3.6vw,49px); line-height:1.05; letter-spacing:-.045em; }
.home-locations-copy h2 em{color:var(--pink);font-style:normal}
.home-locations-copy>p:not(.eyebrow),.home-faq-intro>p:not(.eyebrow) { color:var(--muted); line-height:1.6; }
.home-location-list { margin-top:26px; display:grid; border-top:1px solid #dedfe3; }
.home-location-list article,.home-location-list>a { padding:16px 3px; border:0;border-bottom:1px solid #e5e5e8;border-radius:0;display:grid;grid-template-columns:42px 1fr;gap:15px;align-items:center;color:inherit;background:transparent;transition:.2s ease; }
.home-location-list>a:hover { padding-left:9px;color:inherit;background:rgba(255,255,255,.5);transform:none;box-shadow:none; }
.home-location-list article>b,.home-location-list>a>b { width:40px; height:40px; border-radius:50%; display:grid; place-items:center; color:#17181e; background:var(--lime); font-size:0; }
.home-location-icon svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.home-location-list small,.home-location-list strong,.home-location-list span { display:block; }
.home-location-list small { color:var(--pink); font-size:9px; font-weight:850; letter-spacing:.1em; text-transform:uppercase; }
.home-location-list strong { margin:2px 0; font-size:15px; }
.home-location-list span { color:var(--muted); font-size:11px; }
.home-locations-copy>.text-link { width:max-content;margin-top:21px;padding:13px 16px;border-radius:11px;display:inline-flex;align-items:center;gap:16px;color:#fff;background:#17171d;text-decoration:none;font-size:12px;font-weight:850; }
.home-locations-copy>.text-link span{color:var(--lime);font-size:16px}
.home-locations-cards{display:block;padding-top:82px;padding-bottom:86px;background:#fffaf6}
.home-locations-cards:before{right:-95px;top:48%;width:260px;height:410px;background:rgba(223,250,130,.14)}
.home-locations-head{width:min(1180px,100%);margin:0 auto 37px;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:8%;align-items:end}
.home-locations-head h2{margin:0;color:#17181e;font-size:clamp(43px,4.7vw,67px);line-height:.96;letter-spacing:-.06em}
.home-locations-head h2 em{color:var(--pink);font-style:normal}
.home-locations-head>div:last-child{padding-bottom:5px}
.home-locations-head p{max-width:430px;margin:0 0 19px;color:#696a72;font-size:15px;line-height:1.6}
.home-locations-head>div:last-child>a{width:max-content;padding-bottom:6px;border-bottom:1.5px solid #17181e;display:inline-flex;align-items:center;gap:12px;color:#17181e;font-size:12px;font-weight:850;text-decoration:none}
.home-locations-head>div:last-child>a span{color:var(--pink);font-size:16px}
.home-location-route{position:relative;width:min(1180px,100%);height:46px;margin:0 auto 18px}
.home-location-route:before{content:"";position:absolute;left:22px;right:22px;top:22px;height:2px;background:repeating-linear-gradient(90deg,#d7d7dc 0 12px,transparent 12px 22px)}
.home-location-route .route-point{position:absolute;top:15px;width:16px;height:16px;border:4px solid #fff;border-radius:50%;background:var(--lime);box-shadow:0 0 0 1px rgba(23,24,30,.12),0 5px 14px rgba(23,24,30,.1)}
.home-location-route .route-point-one{left:14%}
.home-location-route .route-point-two{left:50%;transform:translateX(-50%)}
.home-location-route .route-point-three{right:14%}
.home-location-route>i{position:absolute;z-index:2;left:7%;top:5px;width:35px;height:35px;border-radius:50%;display:grid;place-items:center;color:#fff;background:var(--pink);box-shadow:0 9px 20px rgba(245,7,108,.22);animation:ovolant-route-drive 7s ease-in-out infinite alternate}
.home-location-route>i svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
@keyframes ovolant-route-drive{0%{left:7%;transform:translateY(0)}48%{transform:translateY(-3px)}100%{left:88%;transform:translateY(0)}}
.home-location-cards{width:min(1180px,100%);margin:0 auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:start;perspective:1200px}
.home-location-card{position:relative;min-height:306px;padding:31px 29px 25px;border:1px solid #f0cddd;border-radius:28px;overflow:hidden;display:flex;flex-direction:column;align-items:flex-start;color:#17181e;background:radial-gradient(circle at 92% 4%,rgba(255,255,255,.95) 0 13%,transparent 35%),#fff1f7;text-decoration:none;box-shadow:0 16px 45px rgba(37,30,35,.06);transition:transform .38s cubic-bezier(.2,.75,.25,1),box-shadow .38s ease;animation:ovolant-location-card-in .7s both}
.home-location-card:before{content:"";position:absolute;left:29px;right:29px;top:0;height:5px;border-radius:0 0 8px 8px;background:var(--pink)}
.home-location-card:after{content:"";position:absolute;right:-45px;top:-55px;width:150px;height:150px;border:1px solid rgba(245,7,108,.1);border-radius:50%;pointer-events:none}
.home-location-card:nth-child(2){margin-top:20px;border-color:#dce9ad;background:radial-gradient(circle at 92% 4%,rgba(255,255,255,.75) 0 13%,transparent 35%),#f5fbe5;animation-delay:.12s}
.home-location-card:nth-child(2):before{background:var(--lime)}
.home-location-card:nth-child(2):after{border-color:rgba(143,166,48,.16)}
.home-location-card:nth-child(3){border-color:#17181e;color:#fff;background:radial-gradient(circle at 92% 4%,rgba(255,255,255,.08) 0 13%,transparent 36%),#17181e;animation-delay:.24s}
.home-location-card:nth-child(3):before{background:linear-gradient(90deg,var(--pink),var(--lime))}
.home-location-card:nth-child(3):after{border-color:rgba(223,250,130,.13)}
.home-location-card:hover{transform:translateY(-10px) rotateX(1.5deg);box-shadow:0 28px 60px rgba(23,24,30,.14)}
@keyframes ovolant-location-card-in{from{opacity:0;transform:translateY(22px) scale(.975)}to{opacity:1;transform:translateY(0) scale(1)}}
.home-location-card .home-location-icon{position:relative;z-index:1;width:52px;height:52px;margin-bottom:35px;border:1px solid rgba(23,24,30,.08);border-radius:17px;display:grid;place-items:center;color:#17181e;background:var(--lime);box-shadow:0 9px 20px rgba(23,24,30,.08);transform:rotate(-5deg)}
.home-location-card:first-child .home-location-icon{color:#fff;background:var(--pink)}
.home-location-card .home-location-icon svg{width:22px;height:22px;transform:rotate(5deg)}
.home-location-card .home-location-icon{animation:ovolant-location-breathe 3.2s ease-in-out infinite}
.home-location-card:nth-child(2) .home-location-icon{animation-delay:.4s}
.home-location-card:nth-child(3) .home-location-icon{animation-delay:.8s}
@keyframes ovolant-location-breathe{0%,100%{transform:translateY(0) rotate(-5deg);box-shadow:0 0 0 0 rgba(223,250,130,0)}50%{transform:translateY(-4px) rotate(-5deg);box-shadow:0 0 0 8px rgba(223,250,130,.12)}}
.home-location-card small{position:relative;z-index:1;padding:6px 9px;border-radius:999px;color:var(--pink);background:rgba(255,255,255,.68);font-size:9px;font-weight:900;letter-spacing:.11em;text-transform:uppercase}
.home-location-mobile-name{display:none}
.home-location-card:nth-child(2) small{color:#6f7c35}
.home-location-card:nth-child(3) small{color:var(--lime);background:rgba(255,255,255,.08)}
.home-location-card strong{position:relative;z-index:1;max-width:300px;margin:11px 0 9px;font-size:27px;line-height:1.02;letter-spacing:-.045em}
.home-location-card em{position:relative;z-index:1;color:#74727a;font-size:12px;font-style:normal;line-height:1.45}
.home-location-card:nth-child(3) em{color:#b9bac1}
.home-location-card b{position:relative;z-index:1;width:100%;margin-top:auto;padding-top:22px;border-top:1px solid rgba(23,24,30,.11);display:flex;align-items:center;justify-content:space-between;font-size:11px}
.home-location-card:nth-child(3) b{border-color:rgba(255,255,255,.15)}
.home-location-card b i{width:35px;height:35px;border-radius:50%;display:grid;place-items:center;color:#fff;background:var(--pink);font-size:17px;font-style:normal;transition:transform .25s ease}
.home-location-card:nth-child(2) b i{color:#17181e;background:var(--lime)}
.home-location-card:nth-child(3) b i{color:#17181e;background:var(--lime)}
.home-location-card:hover b i{transform:translateX(4px) rotate(-8deg)}
.home-location-card.is-route-active{transform:translateY(-9px) scale(1.018);border-color:rgba(245,7,108,.42);box-shadow:0 30px 66px rgba(23,24,30,.16)}
.home-location-card:nth-child(2).is-route-active{border-color:rgba(160,184,57,.62);box-shadow:0 30px 66px rgba(113,131,38,.16)}
.home-location-card:nth-child(3).is-route-active{border-color:var(--lime);box-shadow:0 30px 66px rgba(23,24,30,.25),0 0 0 3px rgba(223,250,130,.12)}
.home-location-card.is-route-active .home-location-icon{box-shadow:0 0 0 10px rgba(245,7,108,.09),0 14px 24px rgba(23,24,30,.13)}
.home-location-card:nth-child(2).is-route-active .home-location-icon,.home-location-card:nth-child(3).is-route-active .home-location-icon{box-shadow:0 0 0 10px rgba(223,250,130,.16),0 14px 24px rgba(23,24,30,.13)}
.home-location-route .route-point.is-route-active{background:var(--pink);box-shadow:0 0 0 7px rgba(245,7,108,.1),0 5px 14px rgba(23,24,30,.12)}
.home-faq { padding:68px max(5vw,calc((100vw - 1180px)/2)); display:grid; grid-template-columns:.78fr 1.22fr; gap:8%; background:#fff; }
.home-faq-intro { max-width:430px; }
.home-faq-list { width:100%; }
.home-faq-list details { padding:18px 0; }
.home-faq-list summary { font-size:16px; }
.home-faq-list details:last-child { border-bottom:1px solid var(--line); }
.home-faq-list details p { margin-bottom:2px; font-size:14px; }
.home-call-cta { padding:28px max(5vw,calc((100vw - 1180px)/2)); display:flex; align-items:center; justify-content:space-between; gap:35px; color:#fff; background:#15171e; }
.home-call-copy,.home-call-actions { display:flex; align-items:center; gap:16px; }
.home-call-copy>span { width:48px; height:48px; border-radius:15px; display:grid; place-items:center; color:#fff; background:var(--pink); font-size:21px; }
.home-call-copy .eyebrow { margin:0 0 3px; }
.home-call-copy h2 { margin:0; font-size:27px; letter-spacing:-.03em; }
.home-phone-link { color:#fff; font-size:19px; font-weight:850; white-space:nowrap; }
.home-call-actions .button { min-height:46px; }

@media (max-width:820px) {
  .home-locations,.home-faq { grid-template-columns:1fr; gap:32px; }
  .home-locations-head{grid-template-columns:1fr;gap:18px;align-items:start}
  .home-locations-head>div:last-child{padding:0}
  .home-location-cards{grid-template-columns:repeat(3,minmax(245px,1fr));overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
  .home-location-cards::-webkit-scrollbar{display:none}
  .home-location-card{scroll-snap-align:start}
  .home-locations-copy{order:1}
  .home-locations-map { min-height:285px;order:2 }
  .home-faq-intro { max-width:none; }
  .home-call-cta { align-items:flex-start; flex-direction:column; gap:20px; }
  .home-call-actions { width:100%; justify-content:space-between; }
}

@media (max-width:680px) {
  .home-locations,.home-faq { padding:52px 20px; }
  .home-locations-cards{padding-top:58px;padding-bottom:62px;overflow:hidden}
  .home-locations-head{margin-bottom:28px}
  .home-locations-head h2{font-size:40px}
  .home-locations-head p{font-size:14px}
  .home-location-cards{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-flow:row;grid-auto-columns:auto;gap:7px;margin:0;padding:0;overflow:visible}
  .home-location-card{min-width:0;min-height:150px;padding:18px 7px 13px;border-radius:20px;display:flex;flex-direction:column;align-items:center;text-align:center}
  .home-location-card:nth-child(2){margin-top:0}
  .home-location-card.is-route-active{transform:translateY(-4px) scale(1.02)}
  .home-location-card:before{left:13px;right:13px;height:4px}
  .home-location-card .home-location-icon{width:43px;height:43px;margin:0 0 14px;border-radius:14px}
  .home-location-card small,.home-location-card strong,.home-location-card em{display:none}
  .home-location-mobile-name{position:relative;z-index:1;display:block;min-height:31px;font-size:12.5px;font-weight:850;line-height:1.12;letter-spacing:-.02em}
  .home-location-card b{width:auto;margin:auto 0 0;padding:0;border:0;font-size:0;align-self:center}
  .home-location-card:nth-child(3) b{border:0}
  .home-location-card b i{width:31px;height:31px;font-size:15px}
  .home-location-route{height:38px;margin-bottom:10px}
  .home-location-route:before{top:18px}
  .home-location-route .route-point{top:11px}
  .home-location-route>i{top:2px;width:32px;height:32px}
  .home-locations-map { min-height:245px; border-radius:20px; }
  .home-map-pin.pin-one{left:18%;top:18%}
  .home-map-pin.pin-two{left:51%;top:10%}
  .home-map-pin.pin-three{left:76%;top:25%}
  .home-locations-map>div{left:14px;right:14px;bottom:14px;padding:13px 14px}
  .home-locations-map strong{font-size:16px}
  .home-locations-copy h2,.home-faq-intro h2 { font-size:32px; }
  .home-locations-kicker{margin-bottom:11px}
  .home-location-list article,.home-location-list>a { padding:13px 2px;grid-template-columns:38px 1fr;gap:12px }
  .home-location-list article>b,.home-location-list>a>b{width:36px;height:36px}
  .home-location-icon svg{width:17px;height:17px}
  .home-faq-list details { padding:16px 0; }
  .home-call-cta { padding:25px 20px; }
  .home-call-copy>span { width:43px; height:43px; }
  .home-call-copy h2 { font-size:23px; }
  .home-call-actions { align-items:stretch; flex-direction:column; }
  .home-call-actions .button { width:100%; }
}

@media (prefers-reduced-motion:reduce){
  .home-location-route>i{animation:ovolant-route-drive 10s linear infinite alternate}
  .home-location-card .home-location-icon{animation:none}
  .home-location-card{transition:none;animation:none}
}

@media (max-width:980px) {
  .reviews-heading { align-items:flex-start; flex-direction:column; gap:22px; }
  .reviews-preview-note { width:100%; min-width:0; grid-template-columns:auto 1fr; align-items:center; column-gap:12px; }
  .reviews-preview-note span { grid-row:1 / 3; font-size:14px; }
  .reviews-grid { grid-template-columns:repeat(3,minmax(285px,1fr)); overflow-x:auto; padding:8px 2px 22px; scroll-snap-type:x mandatory; scrollbar-width:thin; scrollbar-color:var(--pink) #f3dce6; }
  .reviews-grid.has-five { grid-template-columns:repeat(5,minmax(285px,1fr)); }
  .reviews-grid.has-five .review-card,.reviews-grid.has-five .review-card:nth-child(4),.reviews-grid.has-five .review-card:nth-child(5) { grid-column:auto; }
  .review-card { scroll-snap-align:start; }
  .review-card.featured { transform:none; }
}

@media (max-width:680px) {
  .reviews-section { padding:58px 20px; }
  .reviews-heading { margin-bottom:22px; gap:18px; }
  .reviews-heading h2 { margin-top:8px; font-size:34px; }
  .reviews-heading>div:first-child>p:last-child { font-size:14px; }
  .reviews-preview-note { padding:14px 16px; border-radius:15px; }
  .reviews-grid { grid-template-columns:repeat(3,minmax(272px,82vw)); gap:12px; margin-right:-20px; }
  .review-card { min-height:235px; padding:23px; border-radius:19px; }
  .review-card blockquote { margin:23px 0 25px; font-size:16px; }
  .reviews-grid.is-single { grid-template-columns:1fr; margin-right:0; overflow:visible; padding-bottom:0; }
  .reviews-grid.has-two { grid-template-columns:1fr; margin-right:0; overflow:visible; padding-bottom:0; }
  .reviews-grid.has-four { grid-template-columns:repeat(4,minmax(272px,82vw)); margin-right:-20px; overflow-x:auto; padding-bottom:22px; }
  .reviews-grid.has-five { grid-template-columns:repeat(5,minmax(272px,82vw)); margin-right:-20px; overflow-x:auto; padding-bottom:22px; }
  .review-card.real-review { padding:23px; }
  .review-card.real-review blockquote { margin:17px 0 24px; font-size:16px; line-height:1.55; }
  .reviews-disclaimer { margin-top:11px; font-size:9px; line-height:1.45; text-align:left; }
}

@media (max-width:980px) {
  .reviews-grid.has-five { grid-template-columns:none; grid-auto-flow:column; grid-auto-columns:minmax(320px,72vw); padding:3px 3px 15px; }
  .reviews-heading { margin-bottom:20px; gap:15px; }
  .reviews-preview-note { width:auto; }
}

@media (max-width:680px) {
  .reviews-section { padding:48px 20px 42px; }
  .reviews-heading h2 { font-size:30px; }
  .reviews-preview-note { padding:10px 13px; }
  .reviews-grid.has-five { grid-template-columns:none; grid-auto-columns:86vw; margin-right:-20px; padding-bottom:13px; }
  .review-card.real-review { min-height:0; padding:20px; }
  .review-card.real-review blockquote { margin:8px 0 20px; font-size:15px; line-height:1.48; }
  .reviews-swipe { text-align:left; }
}

/* Accueil : barre de contact assortie à la nouvelle palette */
.home-call-cta {
  position:relative;
  padding:16px max(5vw,calc((100vw - 1180px)/2));
  border:0;
  color:#fff;
  background:linear-gradient(104deg,#17171d 0%,#2f1722 64%,#24352f 100%);
  box-shadow:inset 0 1px rgba(255,255,255,.05);
}
.home-call-cta:before {
  content:"";
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:3px;
  background:linear-gradient(90deg,var(--pink) 0 58%,#dff78a 58% 100%);
}
.home-call-copy,
.home-call-actions { gap:13px; }
.home-call-copy>span {
  width:38px;
  height:38px;
  border-radius:12px;
  color:#17171d;
  background:#dff78a;
  box-shadow:0 8px 20px rgba(223,247,138,.16);
  font-size:16px;
}
.home-call-copy h2 { color:#fff; font-size:21px; }
.home-phone-link { color:#dff78a; font-size:16px; }
.home-call-actions .button { min-height:40px; padding:9px 20px; box-shadow:0 9px 22px rgba(245,7,108,.2); }

@media (max-width:820px) {
  .home-call-cta { gap:15px; }
}

@media (max-width:680px) {
  .home-call-cta { padding:15px 20px 17px; }
  .home-call-copy>span { width:36px; height:36px; border-radius:11px; font-size:15px; }
  .home-call-copy h2 { font-size:19px; }
  .home-phone-link { font-size:15px; }
  .home-call-actions .button { min-height:38px; padding:8px 17px; }
}

/* Accueil : croquis de voiture auto-école en arrière-plan */
main {
  position:relative;
  isolation:isolate;
}
main:after {
  content:"";
  position:absolute;
  z-index:40;
  inset:0;
  pointer-events:none;
  background-image:url("assets/images/auto-ecole-sketch-pattern.svg");
  background-repeat:repeat-y;
  background-position:center 260px;
  background-size:1400px 1517px;
  opacity:.48;
  mix-blend-mode:multiply;
}

@media (max-width:680px) {
  main:after {
    background-position:center 180px;
    background-size:760px 823px;
    opacity:.34;
  }
}

@media (prefers-reduced-motion:reduce) {
  main:after { mix-blend-mode:normal; }
}

/* Accueil : animation de l’écran de l’espace élève */
@property --phone-progress {
  syntax:"<percentage>";
  inherits:false;
  initial-value:0%;
}
.student-space-home-editorial .phone-screen:after {
  content:"";
  position:absolute;
  z-index:4;
  top:-35%;
  left:-80%;
  width:48%;
  height:175%;
  pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.52),transparent);
  transform:rotate(18deg);
  animation:phone-screen-sheen 7.5s ease-in-out infinite;
}
.student-space-home-editorial .phone-app-progress>span {
  --phone-progress:0%;
  background:conic-gradient(var(--pink) 0 var(--phone-progress),#393c46 var(--phone-progress));
  animation:phone-ring-fill 7.5s ease-in-out infinite;
}
.student-space-home-editorial .phone-app-progress i em {
  width:68%;
  transform:scaleX(0);
  transform-origin:left;
  animation:phone-bar-fill 7.5s ease-in-out infinite;
}
.student-space-home-editorial .phone-app-card {
  animation:phone-card-enter 7.5s ease-in-out infinite;
}
.student-space-home-editorial .phone-app-result {
  animation:phone-result-enter 7.5s ease-in-out infinite;
}
.student-space-home-editorial .phone-app-result>b {
  animation:phone-check-pulse 2.5s ease-in-out infinite;
}
.student-space-home-editorial .phone-app-nav span.active {
  animation:phone-nav-pulse 2.8s ease-in-out infinite;
}

@keyframes phone-ring-fill {
  0%,8% { --phone-progress:0%; transform:scale(.93); }
  34%,88% { --phone-progress:68%; transform:scale(1); }
  100% { --phone-progress:0%; transform:scale(.93); }
}
@keyframes phone-bar-fill {
  0%,10% { transform:scaleX(0); }
  36%,88% { transform:scaleX(1); }
  100% { transform:scaleX(0); }
}
@keyframes phone-card-enter {
  0%,18% { opacity:.25; transform:translateY(10px); }
  42%,90% { opacity:1; transform:translateY(0); }
  100% { opacity:.25; transform:translateY(10px); }
}
@keyframes phone-result-enter {
  0%,28% { opacity:.2; transform:translateY(9px); }
  52%,90% { opacity:1; transform:translateY(0); }
  100% { opacity:.2; transform:translateY(9px); }
}
@keyframes phone-check-pulse {
  0%,100% { transform:scale(1); box-shadow:0 0 0 0 rgba(245,7,108,0); }
  45% { transform:scale(1.08); box-shadow:0 0 0 7px rgba(245,7,108,.11); }
}
@keyframes phone-nav-pulse {
  0%,100% { transform:translateY(0); }
  50% { transform:translateY(-2px); }
}
@keyframes phone-screen-sheen {
  0%,58% { left:-80%; opacity:0; }
  64% { opacity:1; }
  82% { left:140%; opacity:0; }
  100% { left:140%; opacity:0; }
}

@media (prefers-reduced-motion:reduce) {
  .student-space-home-editorial .phone-screen:after,
  .student-space-home-editorial .phone-app-progress>span,
  .student-space-home-editorial .phone-app-progress i em,
  .student-space-home-editorial .phone-app-card,
  .student-space-home-editorial .phone-app-result,
  .student-space-home-editorial .phone-app-result>b,
  .student-space-home-editorial .phone-app-nav span.active { animation:none; }
  .student-space-home-editorial .phone-app-progress>span { --phone-progress:68%; }
  .student-space-home-editorial .phone-app-progress i em { transform:scaleX(1); }
}

/* Démonstration animée de l’espace élève */
.student-space-home-editorial .phone-screen:before {
  content:"Nouveau cours ajouté";
  position:absolute;
  z-index:8;
  top:28px;
  left:10px;
  right:10px;
  padding:8px 9px;
  border-radius:10px;
  color:#fff;
  background:linear-gradient(100deg,#f5076c,#db1765);
  box-shadow:0 9px 22px rgba(245,7,108,.32);
  font-size:8px;
  font-weight:850;
  line-height:1.2;
  letter-spacing:.02em;
  text-align:center;
  opacity:0;
  transform:translateY(-18px) scale(.94);
  animation:phone-toast-demo 6s ease-in-out infinite !important;
}
.student-space-home-editorial .phone-screen:after {
  animation:phone-screen-sheen 6s ease-in-out infinite !important;
}
.student-space-home-editorial .phone-app-progress>span {
  --phone-progress:68%;
  animation:phone-ring-demo 2.2s ease-in-out infinite !important;
}
.student-space-home-editorial .phone-app-progress i em {
  transform:scaleX(1);
  animation:phone-bar-demo 3s ease-in-out infinite !important;
}
.student-space-home-editorial .phone-app-card {
  animation:phone-card-demo 6s ease-in-out infinite !important;
}
.student-space-home-editorial .phone-app-result {
  animation:phone-result-demo 6s .55s ease-in-out infinite !important;
}
.student-space-home-editorial .phone-app-result>b {
  animation:phone-check-pulse 1.8s ease-in-out infinite !important;
}
.student-space-home-editorial .phone-app-nav span.active {
  animation:phone-nav-demo 1.8s ease-in-out infinite !important;
}

@keyframes phone-toast-demo {
  0%,8%,100% { opacity:0; transform:translateY(-18px) scale(.94); }
  16%,38% { opacity:1; transform:translateY(0) scale(1); }
  47%,92% { opacity:0; transform:translateY(-7px) scale(.97); }
}
@keyframes phone-ring-demo {
  0%,100% { transform:scale(.93); filter:saturate(.9); }
  50% { transform:scale(1.08); filter:saturate(1.25); }
}
@keyframes phone-bar-demo {
  0%,100% { transform:scaleX(.18); opacity:.65; }
  55% { transform:scaleX(1); opacity:1; }
}
@keyframes phone-card-demo {
  0%,12%,100% { opacity:.35; transform:translateX(18px); }
  25%,58% { opacity:1; transform:translateX(0); box-shadow:0 8px 20px rgba(245,7,108,.14); }
  72% { opacity:.65; transform:translateX(-4px); }
}
@keyframes phone-result-demo {
  0%,20%,100% { opacity:.25; transform:translateY(13px); }
  38%,72% { opacity:1; transform:translateY(0); }
  84% { opacity:.55; transform:translateY(-3px); }
}
@keyframes phone-nav-demo {
  0%,100% { transform:translateY(0) scale(1); }
  50% { transform:translateY(-3px) scale(1.08); color:#f5076c; }
}

/* Section orientation — palette 2026 */
.home-guidance{position:relative;overflow:hidden;padding:86px 5vw;background:linear-gradient(135deg,#fff8f3 0%,#fff2f7 46%,#effaf5 100%);color:#17171d}
.home-guidance:before,.home-guidance:after{content:"";position:absolute;border-radius:50%;pointer-events:none}
.home-guidance:before{width:330px;height:330px;right:-170px;top:-180px;background:rgba(223,249,131,.46)}
.home-guidance:after{width:260px;height:260px;left:-155px;bottom:-165px;border:48px solid rgba(245,7,108,.07)}
.home-guidance-shell{position:relative;z-index:1;width:min(1180px,100%);margin:0 auto;display:grid;grid-template-columns:minmax(320px,.78fr) minmax(540px,1.22fr);overflow:hidden;border:1px solid rgba(30,29,35,.08);border-radius:32px;background:#fff;box-shadow:0 28px 70px rgba(39,28,34,.10)}
.home-guidance-intro{position:relative;overflow:hidden;padding:58px 50px;display:flex;flex-direction:column;justify-content:center;color:#17171d;background:linear-gradient(145deg,#e7f99f 0%,#f4fbd4 100%)}
.home-guidance-intro:after{content:"";position:absolute;width:190px;height:190px;right:-100px;bottom:-100px;border:34px solid rgba(245,7,108,.11);border-radius:50%}
.home-guidance-intro>span{align-self:flex-start;margin:0 0 20px;padding:8px 12px;border-radius:999px;color:#f5076c;background:#fff;font-size:10px;font-weight:900;letter-spacing:.12em;text-transform:uppercase;box-shadow:0 7px 18px rgba(30,29,35,.07)}
.home-guidance-intro h2{margin:0;font-size:clamp(47px,4.8vw,68px);line-height:.92;letter-spacing:-.065em}
.home-guidance-intro>p{max-width:390px;margin:25px 0 28px;color:#4f4c52;font-size:16px;line-height:1.58}
.home-guidance-intro>small{position:relative;z-index:1;padding-top:21px;border-top:1px solid rgba(23,23,29,.15);color:#6e6a70;font-size:11px}
.home-guidance-panel{padding:30px;background:rgba(255,255,255,.96)}
.home-guidance-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.home-guidance-choices>a{position:relative;min-height:132px;padding:20px 18px;display:grid;grid-template-columns:46px minmax(0,1fr) 32px;gap:13px;align-items:center;overflow:hidden;border:1px solid rgba(23,23,29,.06);border-radius:20px;color:#17171d;text-decoration:none;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.home-guidance-choices>a:nth-child(1){background:#fff0f5}
.home-guidance-choices>a:nth-child(2){background:#eef9f4}
.home-guidance-choices>a:nth-child(3){color:#fff;background:linear-gradient(135deg,#f5076c,#da0060)}
.home-guidance-choices>a:nth-child(4){background:#f1f4ff}
.home-guidance-choices>a:hover{padding:20px 18px;transform:translateY(-4px);border-color:rgba(245,7,108,.20);background:inherit;box-shadow:0 16px 28px rgba(38,29,34,.11)}
.home-guidance-choices>a:before{width:46px;height:46px;border-radius:15px;display:grid;place-items:center;color:#17171d;background:rgba(255,255,255,.84);font-size:17px;font-weight:950;box-shadow:0 8px 18px rgba(35,29,33,.08)}
.home-guidance-choices>a:nth-child(1):before{content:"↗"}
.home-guidance-choices>a:nth-child(2):before{content:"✓"}
.home-guidance-choices>a:nth-child(3):before{content:"⚡";color:#f5076c}
.home-guidance-choices>a:nth-child(4):before{content:"15+";color:#6743d8;font-size:12px}
.home-guidance-choices>a>div{display:grid;gap:6px}
.home-guidance-choices strong{font-size:16px;line-height:1.16;letter-spacing:-.02em}
.home-guidance-choices small{color:#706c74;font-size:11px;line-height:1.35}
.home-guidance-choices>a:nth-child(3) small{color:rgba(255,255,255,.77)}
.home-guidance-choices i{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;color:#17171d;background:rgba(255,255,255,.84);font-size:14px;font-style:normal;transition:transform .2s ease}
.home-guidance-choices>a:hover i{transform:translateX(3px)}
.home-guidance-choices>a.is-fast{padding:20px 18px;border-left:0}
.home-guidance-more{margin-top:14px;padding:16px 18px;border-radius:16px;display:flex;align-items:center;gap:18px;background:#f7f6f7}
.home-guidance-more>span{margin-right:auto;color:#8c878f;font-size:9px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}
.home-guidance-more>a{padding:6px 0;color:#17171d;border-bottom:1px solid #b9b6bc;font-size:11px;font-weight:800;text-decoration:none}
@media(max-width:900px){.home-guidance-shell{grid-template-columns:1fr}.home-guidance-intro{padding:43px 38px}.home-guidance-panel{padding:22px}.home-guidance-choices>a{min-height:116px}}
@media(max-width:620px){.home-guidance{padding:62px 18px}.home-guidance-shell{border-radius:24px}.home-guidance-intro{padding:36px 26px 32px}.home-guidance-intro h2{font-size:48px}.home-guidance-intro>p{margin:20px 0 22px;font-size:14px}.home-guidance-panel{padding:16px}.home-guidance-choices{grid-template-columns:1fr;gap:10px}.home-guidance-choices>a,.home-guidance-choices>a.is-fast{min-height:92px;padding:14px}.home-guidance-choices>a:hover{padding:14px}.home-guidance-more{padding:15px;align-items:flex-start;flex-wrap:wrap;gap:10px 15px}.home-guidance-more>span{width:100%;margin:0}}
/* Plateforme de préparation — panneau immersif */
.home-guidance-panel.home-learning-panel{padding:28px;background:#17171d;color:#fff}
.home-learning-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}
.home-learning-head>div{display:grid;gap:7px}
.home-learning-head span{color:#f78eb7;font-size:10px;font-style:normal;font-weight:900;letter-spacing:.13em;text-transform:uppercase}
.home-learning-head strong{max-width:390px;color:#fff;font-size:clamp(20px,2vw,28px);line-height:1.05;letter-spacing:-.045em}
.home-learning-head em{flex:0 0 auto;padding:9px 12px;border-radius:999px;background:#ddf982;color:#17171d;font-size:9px;font-style:normal;font-weight:900;letter-spacing:.07em;text-transform:uppercase}
.home-learning-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:22px}
.home-learning-card{position:relative;min-height:126px;padding:17px;border:1px solid rgba(255,255,255,.08);border-radius:20px;display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:13px;overflow:hidden;color:#17171d;text-decoration:none;transition:transform .25s ease,box-shadow .25s ease}
a.home-learning-card:hover{transform:translateY(-3px);box-shadow:0 15px 30px rgba(0,0,0,.16)}
.home-learning-card.is-themes{background:#fff1f6}
.home-learning-card.is-series{background:#eaf8f2}
.home-learning-card.is-exam{background:#f1effc}
.home-learning-icon{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:rgba(255,255,255,.68);color:#ef0970}
.is-series .home-learning-icon{color:#1f7f63}
.is-exam .home-learning-icon{color:#6558a6}
.home-learning-icon svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.home-learning-card>div{min-width:0;display:grid;gap:6px}
.home-learning-card strong{color:inherit;font-size:15px;line-height:1.12;letter-spacing:-.02em}
.home-learning-card small{color:#68636c;font-size:10px;line-height:1.45}
.home-learning-card>i{align-self:start;color:#ef0970;font-size:18px;font-style:normal;font-weight:900}
.home-learning-progress{grid-template-columns:76px minmax(0,1fr);background:linear-gradient(145deg,#ddf982 0%,#efffb8 100%);color:#17171d;box-shadow:inset 0 0 0 1px rgba(23,23,29,.06)}
.home-learning-progress small{color:#59555d}
.home-learning-score{width:auto;height:auto;display:flex;align-items:baseline;justify-content:flex-start;background:none;color:#17171d;line-height:1}
.home-learning-score b{font-size:40px;letter-spacing:-.07em}
.home-learning-score small{margin-left:2px;color:#17171d;font-size:14px;font-weight:900}
.home-learning-bar{width:100%;height:6px;margin-top:5px;border-radius:99px;display:block;overflow:hidden;background:rgba(23,23,29,.14)}
.home-learning-bar i{width:68%;height:100%;border-radius:inherit;display:block;background:#f5076c}
.home-learning-result{padding:7px 8px;border-radius:10px;background:#fff;color:#6558a6;font-size:11px;white-space:nowrap}
.home-learning-actions{margin-top:12px;padding:14px 16px;border:1px solid rgba(255,255,255,.09);border-radius:16px;display:flex;align-items:center;gap:15px;background:rgba(255,255,255,.055)}
.home-learning-actions span{margin-right:auto;color:rgba(255,255,255,.66);font-size:10px;font-weight:700}
.home-learning-actions a{color:#fff;border-bottom:1px solid rgba(255,255,255,.38);font-size:10px;font-weight:800;text-decoration:none;white-space:nowrap}
.home-learning-actions a:last-child{color:#ddf982;border-color:rgba(221,249,130,.5)}
@media(max-width:900px){.home-guidance-panel.home-learning-panel{padding:26px}}
@media(max-width:620px){.home-guidance-panel.home-learning-panel{padding:22px 18px}.home-learning-head{display:grid;gap:14px}.home-learning-head strong{font-size:24px}.home-learning-head em{justify-self:start}.home-learning-grid{grid-template-columns:1fr;gap:10px;margin-top:18px}.home-learning-card{min-height:96px;padding:14px 15px;border-radius:17px}.home-learning-actions{align-items:flex-start;flex-wrap:wrap;gap:10px 15px}.home-learning-actions span{width:100%;margin:0}}


/* Capture réelle de l’espace élève */
.student-phone-photo-wrap{width:330px}
.student-phone-photo-wrap::before,.student-phone-photo-wrap::after{display:none}
.student-phone-photo{
  width:100%;
  margin:0;
  overflow:hidden;
  border:1px solid rgba(23,24,30,.08);
  border-radius:34px;
  background:#fff;
  box-shadow:0 26px 60px rgba(28,22,27,.18);
  transform:rotate(1.2deg);
}
.student-phone-photo img{
  display:block;
  width:100%;
  height:auto;
}
@media(max-width:980px){
  .student-phone-photo-wrap{width:280px}
}
@media(max-width:680px){
  .student-phone-photo-wrap{width:126px;align-self:start}
  .student-phone-photo{border-radius:18px;box-shadow:0 15px 32px rgba(28,22,27,.16);transform:rotate(1deg)}
}


/* Salle de Code sur tablette */
.home-code-room{
  position:relative;
  width:min(1180px,calc(100% - 10vw));
  margin:-26px auto 88px;
  display:grid;
  grid-template-columns:.92fr 1.08fr;
  overflow:hidden;
  border-radius:32px;
  color:#fff;
  background:#17171d;
  box-shadow:0 28px 70px rgba(36,26,31,.14);
}
.home-code-room-copy{
  padding:58px 54px;
  align-self:center;
}
.home-code-room-copy>span{
  display:inline-flex;
  margin-bottom:22px;
  padding:8px 12px;
  border-radius:999px;
  color:#17171d;
  background:#ddf982;
  font-size:10px;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.home-code-room-copy h2{
  margin:0;
  color:#fff;
  font-size:clamp(44px,4.5vw,64px);
  line-height:.94;
  letter-spacing:-.06em;
}
.home-code-room-copy p{
  max-width:450px;
  margin:24px 0 26px;
  color:rgba(255,255,255,.72);
  font-size:15px;
  line-height:1.62;
}
.home-code-room-copy ul{
  margin:0 0 30px;
  padding:0;
  display:grid;
  gap:12px;
  list-style:none;
}
.home-code-room-copy li{
  position:relative;
  padding-left:26px;
  color:#fff;
  font-size:12px;
  font-weight:700;
}
.home-code-room-copy li:before{
  content:"✓";
  position:absolute;
  left:0;
  top:-2px;
  width:18px;
  height:18px;
  border-radius:50%;
  display:grid;
  place-items:center;
  color:#fff;
  background:#f5076c;
  font-size:10px;
  font-weight:950;
}
.home-code-room-copy .button{
  min-height:50px;
  padding:0 22px;
  background:#fff;
  color:#17171d;
  box-shadow:none;
}
.home-code-room-copy .button:hover{background:#f5076c;color:#fff}
.home-code-room-photo{
  position:relative;
  min-height:560px;
  margin:0;
  overflow:hidden;
}
.home-code-room-photo img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center 56%;
}
.home-code-room-photo:after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(23,23,29,.18),transparent 30%);
  pointer-events:none;
}
.home-code-room-photo figcaption{
  position:absolute;
  z-index:1;
  right:24px;
  bottom:24px;
  padding:10px 14px;
  border-radius:999px;
  color:#17171d;
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(8px);
  font-size:9px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}
@media(max-width:900px){
  .home-code-room{grid-template-columns:1fr 1fr}
  .home-code-room-copy{padding:42px 36px}
  .home-code-room-photo{min-height:500px}
}
@media(max-width:620px){
  .home-code-room{width:calc(100% - 36px);margin:-18px auto 64px;grid-template-columns:1fr;border-radius:24px}
  .home-code-room-copy{padding:36px 26px 34px}
  .home-code-room-copy h2{font-size:46px}
  .home-code-room-copy p{font-size:13px}
  .home-code-room-photo{min-height:430px}
  .home-code-room-photo:after{background:linear-gradient(180deg,rgba(23,23,29,.08),transparent 25%)}
  .home-code-room-photo figcaption{right:16px;bottom:16px}
}

/* Salle de Code — version ouverte et sans cadre */
.home-code-room{
  width:100%;
  margin:0 0 72px;
  padding:72px max(5vw,calc((100vw - 1180px)/2));
  grid-template-columns:minmax(320px,.78fr) minmax(480px,1.22fr);
  gap:72px;
  align-items:center;
  overflow:hidden;
  border-radius:0;
  color:#17171d;
  background:linear-gradient(110deg,#fffaf6 0%,#fff 58%,#f4f8ea 100%);
  box-shadow:none;
}
.home-code-room-copy{padding:0}
.home-code-room-copy>span{
  margin-bottom:20px;
  padding:0 0 0 13px;
  border-left:3px solid #f5076c;
  border-radius:0;
  color:#f5076c;
  background:transparent;
}
.home-code-room-copy h2{color:#17171d}
.home-code-room-copy p{color:#67636c}
.home-code-room-copy li{color:#302d33}
.home-code-room-copy li:before{
  top:0;
  width:auto;
  height:auto;
  color:#f5076c;
  background:transparent;
  font-size:14px;
}
.home-code-room-copy .button{background:#f5076c;color:#fff;box-shadow:0 12px 26px rgba(245,7,108,.16)}
.home-code-room-copy .button:hover{background:#17171d;color:#fff}
.home-code-room-photo{
  min-height:520px;
  border-radius:0 0 0 88px;
  box-shadow:none;
}
.home-code-room-photo:after{display:none}
.home-code-room-photo figcaption{display:none}
@media(max-width:900px){
  .home-code-room{padding:58px 5vw;grid-template-columns:minmax(280px,.8fr) minmax(390px,1.2fr);gap:42px}
  .home-code-room-photo{min-height:480px}
}
@media(max-width:620px){
  .home-code-room{
    width:100%;
    margin:0 0 56px;
    padding:54px 18px 0;
    grid-template-columns:1fr;
    gap:38px;
    border-radius:0;
  }
  .home-code-room-copy{padding:0 8px}
  .home-code-room-photo{
    width:calc(100% + 36px);
    min-height:430px;
    margin-left:-18px;
    border-radius:0;
  }
}


/* Accueil — agence physique et proximité */
.home-hero-cinematic-meta{width:min(650px,100%);grid-template-columns:repeat(3,minmax(0,1fr))}
.home-hero-cinematic-meta span:nth-child(3){border-color:rgba(153,177,52,.18);color:#65702f;background:#effbc9}
.home-proximity-story{
  position:relative;
  padding:74px 5vw 68px;
  overflow:hidden;
  color:#17171d;
  background:linear-gradient(115deg,#f4f9df 0%,#fffaf7 52%,#fff1f6 100%);
}
.home-proximity-story:after{
  content:"";
  position:absolute;
  right:-120px;
  top:-150px;
  width:330px;
  height:330px;
  border:52px solid rgba(245,7,108,.06);
  border-radius:50%;
}
.home-proximity-inner{position:relative;z-index:1;width:min(1180px,100%);margin:0 auto}
.home-proximity-heading-row{display:grid}
.home-proximity-heading{display:grid;gap:16px}
.home-proximity-heading>span{
  width:max-content;
  padding-left:13px;
  border-left:3px solid #f5076c;
  color:#f5076c;
  font-size:10px;
  font-weight:900;
  letter-spacing:.13em;
  text-transform:uppercase;
}
.home-proximity-inner{
  display:grid;
  grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
  column-gap:86px;
  align-items:end;
}
.home-proximity-heading h2{
  margin:0;
  font-size:clamp(45px,5vw,70px);
  line-height:.94;
  letter-spacing:-.065em;
}
.home-proximity-heading h2 em{color:#f5076c;font-style:normal}
.home-proximity-intro{padding-bottom:5px}
.home-proximity-intro p{margin:0;color:#646068;font-size:14px;line-height:1.65}
.home-proximity-intro p:first-child{margin-bottom:12px;color:#17171d;font-size:18px;font-weight:800;line-height:1.4}
.home-proximity-benefits{
  grid-column:1/-1;
  margin-top:48px;
  border-top:1px solid rgba(23,23,29,.14);
  border-bottom:1px solid rgba(23,23,29,.14);
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
}
.home-proximity-benefits>div{min-height:165px;padding:25px 25px 23px 0;display:grid;align-content:start;gap:8px}
.home-proximity-benefits>div:not(:first-child){padding-left:25px;border-left:1px solid rgba(23,23,29,.12)}
.home-proximity-benefits span{color:#f5076c;font-size:10px;font-weight:950;letter-spacing:.1em}
.home-proximity-benefits strong{font-size:15px;line-height:1.2}
.home-proximity-benefits small{color:#77727b;font-size:10px;line-height:1.5}
.home-proximity-footer{
  grid-column:1/-1;
  padding-top:26px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:25px;
}
.home-proximity-footer strong{max-width:620px;font-size:17px;line-height:1.35}
.home-proximity-footer a{color:#17171d;border-bottom:1px solid #969197;font-size:11px;font-weight:900;text-decoration:none}
.home-proximity-footer a span{color:#f5076c}
@media(max-width:900px){
  .home-proximity-inner{column-gap:45px}
  .home-proximity-benefits{grid-template-columns:repeat(2,minmax(0,1fr))}
  .home-proximity-benefits>div:nth-child(3){border-left:0;border-top:1px solid rgba(23,23,29,.12);padding-left:0}
  .home-proximity-benefits>div:nth-child(4){border-top:1px solid rgba(23,23,29,.12)}
}
@media(max-width:620px){
  .home-hero-cinematic-meta{grid-template-columns:1fr 1fr}
  .home-hero-cinematic-meta span:nth-child(3){grid-column:1/-1}
  .home-proximity-story{padding:58px 20px 52px}
  .home-proximity-inner{grid-template-columns:1fr;gap:26px}
  .home-proximity-heading h2{font-size:47px}
  .home-proximity-intro p:first-child{font-size:16px}
  .home-proximity-benefits{margin-top:8px;grid-template-columns:1fr}
  .home-proximity-benefits>div,
  .home-proximity-benefits>div:not(:first-child),
  .home-proximity-benefits>div:nth-child(3){
    min-height:0;
    padding:19px 0;
    border-left:0;
    border-top:1px solid rgba(23,23,29,.12);
  }
  .home-proximity-benefits>div:first-child{border-top:0}
  .home-proximity-footer{padding-top:20px;align-items:flex-start;flex-direction:column}
}


/* Salle de Code — photo plus discrète */
.home-code-room{
  grid-template-columns:minmax(360px,1fr) minmax(330px,.72fr);
  gap:82px;
}
.home-code-room-photo{
  width:100%;
  max-width:430px;
  min-height:465px;
  justify-self:end;
}
@media(max-width:900px){
  .home-code-room{grid-template-columns:minmax(280px,1fr) minmax(300px,.78fr);gap:44px}
  .home-code-room-photo{max-width:370px;min-height:440px}
}
@media(max-width:620px){
  .home-code-room{grid-template-columns:1fr;gap:34px}
  .home-code-room-photo{
    width:84%;
    max-width:340px;
    min-height:390px;
    margin:0 auto;
    justify-self:center;
  }
}


/* Salle de Code — image à gauche, contenu à droite */
.home-code-room{
  grid-template-columns:minmax(330px,.72fr) minmax(360px,1fr);
  grid-template-areas:"room-photo room-copy";
}
.home-code-room-copy{grid-area:room-copy}
.home-code-room-photo{
  grid-area:room-photo;
  justify-self:start;
  border-radius:0 0 88px 0;
}
@media(max-width:900px){
  .home-code-room{grid-template-columns:minmax(300px,.78fr) minmax(280px,1fr)}
}
@media(max-width:620px){
  .home-code-room{
    grid-template-columns:1fr;
    grid-template-areas:"room-photo" "room-copy";
    padding-top:42px;
    padding-bottom:52px;
  }
  .home-code-room-photo{
    border-radius:0;
  }
}


/* Agence et proximité — version texte simple */
.home-proximity-story.home-proximity-text{padding:58px 5vw 62px;background:#fffaf7}
.home-proximity-story.home-proximity-text:after{display:none}
.home-proximity-text-inner{width:min(920px,100%);margin:0 auto}
.home-proximity-text-inner h2{max-width:780px;margin:0 0 20px;color:#17171d;font-size:clamp(30px,3.2vw,44px);line-height:1.1;letter-spacing:-.035em}
.home-proximity-text-inner p{max-width:860px;margin:0 0 14px;color:#625e66;font-size:15px;line-height:1.68}
.home-proximity-text-inner .home-proximity-lead{color:#17171d;font-size:17px;font-weight:800}
.home-proximity-text-inner ul{margin:25px 0 24px;padding:0;display:grid;gap:11px;list-style:none}
.home-proximity-text-inner li{position:relative;padding-left:27px;color:#353138;font-size:14px;line-height:1.5}
.home-proximity-text-inner li:before{content:"✓";position:absolute;left:0;top:0;color:#f5076c;font-weight:950}
.home-proximity-text-inner .home-proximity-signature{margin:0 0 18px;padding-top:20px;border-top:1px solid rgba(23,23,29,.12);color:#17171d;font-weight:900}
.home-proximity-link{color:#17171d;border-bottom:1px solid #8d878e;font-size:12px;font-weight:900;text-decoration:none}
.home-proximity-link span{color:#f5076c}
@media(max-width:620px){
  .home-proximity-story.home-proximity-text{padding:46px 22px 50px}
  .home-proximity-text-inner h2{font-size:31px}
  .home-proximity-text-inner p{font-size:14px}
  .home-proximity-text-inner .home-proximity-lead{font-size:16px}
  .home-proximity-text-inner li{font-size:13px}
}

/* Cours par compétence dans l’application */
.home-app-courses{
  padding:56px 5vw 64px;
  background:#f8f7fb;
  border-top:1px solid rgba(23,23,29,.06);
  border-bottom:1px solid rgba(23,23,29,.06);
}
.home-app-courses-inner{
  width:min(1040px,100%);
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(0,1fr) 245px;
  gap:74px;
  align-items:center;
}
.home-app-courses-copy>span{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin:0 0 18px;
  color:#f5076c;
  font-size:11px;
  font-weight:950;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.home-app-courses-copy>span:before{content:"";width:28px;height:2px;background:#f5076c}
.home-app-courses-copy h2{
  max-width:680px;
  margin:0 0 24px;
  color:#17171d;
  font-size:clamp(32px,3.5vw,50px);
  line-height:1.04;
  letter-spacing:-.045em;
}
.home-app-courses-copy p{
  max-width:700px;
  margin:0 0 15px;
  color:#5f5b64;
  font-size:15px;
  line-height:1.7;
}
.home-app-courses-copy p strong{color:#17171d}
.home-app-courses-copy small{
  display:block;
  margin-top:23px;
  color:#17171d;
  font-size:12px;
  font-weight:850;
}
.home-app-courses-visual{width:100%;max-width:245px;margin:0;justify-self:end}
.home-app-courses-visual img{
  width:100%;
  height:auto;
  display:block;
  border-radius:25px;
  box-shadow:0 22px 48px rgba(39,31,48,.14);
}
.home-app-courses-visual figcaption{
  margin-top:11px;
  color:#8a858e;
  font-size:10px;
  font-weight:750;
  text-align:center;
}
@media(max-width:760px){
  .home-app-courses{padding:48px 22px 52px}
  .home-app-courses-inner{grid-template-columns:minmax(0,1fr) 150px;gap:25px;align-items:start}
  .home-app-courses-copy h2{font-size:34px}
  .home-app-courses-copy p{font-size:13px;line-height:1.62}
  .home-app-courses-copy small{margin-top:18px;font-size:11px}
  .home-app-courses-visual{max-width:150px}
  .home-app-courses-visual img{border-radius:18px}
}
@media(max-width:520px){
  .home-app-courses-inner{grid-template-columns:1fr}
  .home-app-courses-copy h2 br{display:none}
  .home-app-courses-visual{width:44%;min-width:145px;max-width:180px;justify-self:center;margin-top:6px}
}

/* Accroche accélérée du hero */
.home-hero-cinematic-content>.home-hero-speed-promise{
  max-width:600px;
  margin:27px 0 31px;
  padding:2px 0 2px 19px;
  border-left:4px solid #f5076c;
  display:grid;
  gap:5px;
  line-height:1.25;
}
.home-hero-speed-promise>span{
  color:#17171d;
  font-size:11px;
  font-weight:950;
  letter-spacing:.11em;
  text-transform:uppercase;
}
.home-hero-speed-promise>strong{
  color:#17171d;
  font-size:clamp(18px,1.55vw,22px);
  font-weight:950;
  letter-spacing:-.035em;
}
.home-hero-speed-promise>strong em{
  position:relative;
  z-index:0;
  color:#17171d;
  font-style:normal;
  font-size:1em;
  font-weight:950;
  letter-spacing:-.045em;
  white-space:nowrap;
}
.home-hero-speed-promise>strong em:after{
  content:"";
  position:absolute;
  z-index:-1;
  left:-3px;
  right:-4px;
  bottom:1px;
  height:10px;
  border-radius:6px;
  background:#cfe86f;
  transform:rotate(-1.5deg);
}
.home-hero-price-promise,.home-hero-card-cta{display:none}
@media(max-width:620px){
  .home-hero-cinematic-content>.home-hero-speed-promise{max-width:340px;margin:19px 0 23px;padding-left:14px;gap:4px}
  .home-hero-speed-promise>span{font-size:9px}
  .home-hero-speed-promise>strong{font-size:19px;line-height:1.25}
  .home-hero-speed-promise>strong em{font-size:1.18em}
  .home-hero-speed-promise>strong em:after{height:8px}
}
@media(min-width:621px){
  .home-hero-cinematic-content>h1{width:100%;text-align:center}
}
.home-hero-cinematic h1>span,
.home-hero-cinematic h1>strong,
.home-hero-cinematic h1>em{display:block}
.home-hero-cinematic h1>span{font-size:.7em;font-weight:350;line-height:1.04;letter-spacing:-.03em}
.home-hero-cinematic h1>strong{
  color:#f5076c;
  font-size:1em;
  font-weight:950;
  line-height:.86;
  letter-spacing:-.08em;
}
.home-hero-cinematic h1>em{color:#17171d;font-size:.7em;font-weight:350;line-height:1.02;letter-spacing:-.03em}
@media(max-width:620px){
  .home-hero-cinematic h1>span{font-size:.74em}
  .home-hero-cinematic h1>strong{font-size:1em;line-height:.9}
  .home-hero-cinematic h1>em{font-size:.74em}
}

/* Mobile : hero mieux aligné et photo mieux cadrée */
@media(max-width:620px){
  .home-hero-cinematic{min-height:640px;background:#fff8fb}
  .home-hero-cinematic:after{right:-100px;top:24px;opacity:.7}
  .home-hero-cinematic-photo img{object-position:82% 43%;transform:scale(1.025)}
  .home-hero-cinematic-photo:after{background:linear-gradient(180deg,rgba(255,255,255,.02) 48%,rgba(255,248,251,.3) 100%)}
  .home-hero-cinematic-shade{
    background:
      linear-gradient(180deg,rgba(255,253,251,.96) 0%,rgba(255,250,252,.86) 48%,rgba(255,250,252,.52) 72%,rgba(255,250,252,.25) 100%),
      linear-gradient(90deg,rgba(255,253,251,.86) 0%,rgba(255,250,252,.52) 68%,rgba(255,250,252,.18) 100%);
  }
  .home-hero-cinematic-content{
    min-height:640px;
    padding:28px 20px 30px;
    align-items:center;
    text-align:center;
  }
  .home-hero-cinematic-label{max-width:100%;margin:0 auto 18px;white-space:normal;text-align:center;line-height:1.25}
  .home-hero-cinematic-content>h1{width:100%;max-width:340px;margin:0 auto;text-align:center;font-size:44px;line-height:.95}
  .home-hero-cinematic h1>span,.home-hero-cinematic h1>em{font-size:.7em;letter-spacing:-.025em}
  .home-hero-cinematic h1>strong{margin:2px 0 3px;font-size:.98em;letter-spacing:-.065em}
  .home-hero-cinematic-content>.home-hero-speed-promise{
    width:min(340px,100%);
    max-width:none;
    margin:22px auto 24px;
    padding:14px 0 0;
    border-left:0;
    border-top:3px solid #f5076c;
    justify-items:center;
    text-align:center;
    gap:6px;
  }
  .home-hero-speed-promise>span{font-size:9px;line-height:1.35}
  .home-hero-speed-promise>strong{max-width:315px;font-size:19px;line-height:1.28}
  .home-hero-speed-promise>strong em{font-size:1.2em}
  .home-hero-cinematic-actions{width:min(350px,100%);margin:0 auto;gap:13px;justify-items:center}
  .home-hero-cinematic-actions .button{min-height:50px;padding:14px 20px}
  .home-hero-cinematic-actions>a:last-child{padding:8px 3px 7px;line-height:1.3}
  .home-proximity-story.home-proximity-text{padding:34px 22px 54px}
  .home-proximity-text-inner h2{margin-bottom:18px;font-size:30px;line-height:1.08}
}

/* Mobile : composition proche du site ordinateur (texte puis photo) */
@media(max-width:620px){
  .home-hero-cinematic{
    min-height:0;
    padding:0 20px 24px;
    display:flex;
    flex-direction:column;
    background:radial-gradient(circle at 105% 4%,rgba(223,250,130,.58) 0 10%,transparent 31%),linear-gradient(150deg,#fffdfa 0%,#fff6f9 100%);
  }
  .home-hero-cinematic:before{display:none}
  .home-hero-cinematic:after{right:-82px;top:22px;width:160px;height:160px;border-width:30px;opacity:.48}
  .home-hero-cinematic-shade{display:none}
  .home-hero-cinematic-content{
    order:1;
    width:100%;
    min-height:0;
    padding:30px 0 26px;
    align-items:flex-start;
    text-align:left;
  }
  .home-hero-cinematic-label{margin:0 0 20px;text-align:left}
  .home-hero-cinematic-content>h1{max-width:335px;margin:0;text-align:left;font-size:43px;line-height:.94}
  .home-hero-cinematic h1>span,.home-hero-cinematic h1>em{font-size:.7em}
  .home-hero-cinematic h1>strong{margin:3px 0 4px;font-size:1em}
  .home-hero-cinematic-content>.home-hero-speed-promise{
    width:100%;
    max-width:340px;
    margin:22px 0 24px;
    padding:2px 0 2px 15px;
    border-top:0;
    border-left:4px solid #f5076c;
    justify-items:start;
    text-align:left;
  }
  .home-hero-speed-promise>strong{max-width:320px}
  .home-hero-cinematic-actions{width:100%;max-width:350px;margin:0;justify-items:stretch}
  .home-hero-cinematic-actions>a:last-child{justify-self:start;margin-left:3px}
  .home-hero-cinematic-photo{
    order:2;
    position:relative;
    inset:auto;
    width:100%;
    height:268px;
    margin:0;
    border:1px solid rgba(23,23,29,.08);
    border-radius:24px;
    box-shadow:0 18px 45px rgba(37,24,31,.14);
  }
  .home-hero-cinematic-photo:after{background:linear-gradient(180deg,rgba(23,23,29,0) 58%,rgba(23,23,29,.18) 100%)}
  .home-hero-cinematic-photo img{object-position:61% center;transform:none}
}

/* Mobile : photo en arriere-plan et titre recentre */
@media(max-width:620px){
  .home-hero-cinematic{
    min-height:640px;
    padding:0;
    display:block;
    background:#fff8fb;
  }
  .home-hero-cinematic:before{display:none}
  .home-hero-cinematic:after{right:-92px;top:22px;opacity:.42}
  .home-hero-cinematic-photo{
    position:absolute;
    z-index:0;
    inset:0;
    width:100%;
    height:100%;
    margin:0;
    border:0;
    border-radius:0;
    box-shadow:none;
  }
  .home-hero-cinematic-photo img{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:67% center;
  }
  .home-hero-cinematic-photo:after{
    background:linear-gradient(180deg,rgba(255,253,251,.03) 50%,rgba(255,247,251,.23) 100%);
  }
  .home-hero-cinematic-shade{
    position:absolute;
    z-index:1;
    inset:0;
    display:block;
    background:
      linear-gradient(180deg,rgba(255,253,251,.22) 0%,rgba(255,250,252,.1) 65%,rgba(255,248,251,.28) 100%),
      linear-gradient(90deg,rgba(255,253,251,.95) 0%,rgba(255,250,252,.86) 55%,rgba(255,250,252,.42) 100%);
  }
  .home-hero-cinematic-content{
    position:relative;
    z-index:2;
    width:100%;
    min-height:640px;
    padding:30px 20px 28px;
    align-items:flex-start;
    text-align:left;
  }
  .home-hero-cinematic-label{margin:0 0 20px;text-align:left}
  .home-hero-cinematic-content>h1{
    width:335px;
    max-width:calc(100vw - 40px);
    margin:0;
    text-align:center;
  }
  .home-hero-cinematic-content>.home-hero-speed-promise{
    width:100%;
    max-width:340px;
    margin:22px 0 24px;
    padding:2px 0 2px 15px;
    border-top:0;
    border-left:4px solid #f5076c;
    justify-items:start;
    text-align:left;
  }
  .home-hero-cinematic-actions{width:100%;max-width:350px;margin:0;justify-items:stretch}
  .home-hero-cinematic-actions>a:last-child{justify-self:start;margin-left:3px}
}

/* Mobile v1.0.21 : libelle plus discret et contenu sous le titre plus bas */
@media(max-width:620px){
  .home-hero-cinematic-label{
    margin-top:-8px;
    margin-bottom:22px;
    font-size:9px;
    letter-spacing:.075em;
    line-height:1.2;
  }
  .home-hero-cinematic-content>.home-hero-speed-promise{
    margin-top:78px;
  }
  .home-hero-cinematic h1>span,
  .home-hero-cinematic h1>em{
    font-size:.56em;
    font-weight:500;
    letter-spacing:-.015em;
  }
}

/* Slogan hero façon affiche : noir, rose et traits dessinés */
.home-hero-cinematic .home-hero-statement{
  position:relative;
  width:min(620px,100%);
  max-width:620px;
  overflow:visible;
  font-family:Impact,"Arial Black",Arial,sans-serif!important;
  font-size:clamp(60px,5.9vw,84px);
  line-height:.83;
  letter-spacing:-.045em;
  text-align:center;
  text-transform:uppercase;
  transform:rotate(-1deg);
}
.home-hero-cinematic .home-hero-statement>span,
.home-hero-cinematic .home-hero-statement>strong,
.home-hero-cinematic .home-hero-statement>em{
  position:relative;
  width:max-content;
  max-width:100%;
  margin-inline:auto;
  font-family:inherit!important;
  font-size:1em;
  font-weight:900;
  line-height:.92;
  letter-spacing:-.045em;
}
.home-hero-cinematic .home-hero-statement>span,
.home-hero-cinematic .home-hero-statement>em{color:#11131a}
.home-hero-cinematic .home-hero-statement>strong{
  margin-top:.02em;
  margin-bottom:.04em;
  color:#f5076c;
  font-size:1.08em;
  letter-spacing:-.055em;
}
.home-hero-cinematic .home-hero-statement>em{font-style:normal}
.home-hero-cinematic .home-hero-statement>strong:after,
.home-hero-cinematic .home-hero-statement>em:after{
  content:"";
  position:absolute;
  left:8%;
  right:4%;
  bottom:-.08em;
  height:5px;
  border-radius:999px;
  background:#f5076c;
  transform:rotate(-2deg);
}
.home-hero-cinematic .home-hero-statement>em:after{
  left:48%;
  right:2%;
  bottom:-.12em;
  height:4px;
  transform:rotate(-5deg);
}
.home-hero-cinematic .home-hero-statement:before,
.home-hero-cinematic .home-hero-statement:after{
  content:"";
  position:absolute;
  top:23%;
  width:43px;
  height:35px;
  opacity:.98;
  background:
    linear-gradient(66deg,transparent 43%,#f5076c 45% 52%,transparent 54%) 0 0/18px 31px no-repeat,
    linear-gradient(91deg,transparent 43%,#f5076c 45% 53%,transparent 55%) 17px 0/25px 18px no-repeat;
}
.home-hero-cinematic .home-hero-statement:before{left:-34px;transform:rotate(-13deg)}
.home-hero-cinematic .home-hero-statement:after{right:-35px;transform:scaleX(-1) rotate(-13deg)}

@media(max-width:850px){
  .home-hero-cinematic .home-hero-statement{font-size:clamp(48px,7.3vw,67px)}
}
@media(max-width:620px){
  .home-hero-cinematic-content>.home-hero-statement{
    width:min(335px,calc(100vw - 40px));
    max-width:335px;
    margin-inline:auto;
    font-size:42px;
    line-height:.85;
    text-align:center;
  }
  .home-hero-cinematic .home-hero-statement>span,
  .home-hero-cinematic .home-hero-statement>strong,
  .home-hero-cinematic .home-hero-statement>em{
    font-size:1em;
    font-weight:900;
    line-height:.94;
    letter-spacing:-.045em;
  }
  .home-hero-cinematic .home-hero-statement>strong{font-size:1.08em}
  .home-hero-cinematic .home-hero-statement:before,
  .home-hero-cinematic .home-hero-statement:after{top:22%;width:30px;height:28px;background-size:14px 25px,18px 15px;background-position:0 0,12px 0}
  .home-hero-cinematic .home-hero-statement:before{left:-10px}
  .home-hero-cinematic .home-hero-statement:after{right:-10px}
  .home-hero-cinematic .home-hero-statement>strong:after{height:4px}
}

/* Slogan pinceau fidèle à la création de référence */
.home-hero-cinematic-content>.home-hero-statement-image{
  width:min(590px,100%);
  max-width:590px;
  margin:0;
  line-height:0;
  text-align:center;
}
.home-hero-statement-image>span{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  margin:-1px!important;
  padding:0!important;
  overflow:hidden!important;
  clip:rect(0 0 0 0)!important;
  white-space:nowrap!important;
  border:0!important;
}
.home-hero-statement-image>img{
  width:100%;
  height:auto;
  display:block;
  object-fit:contain;
}
.home-hero-candy-filter{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none}
@media(max-width:850px){
  .home-hero-cinematic-content>.home-hero-statement-image{width:min(500px,100%)}
}
@media(max-width:620px){
  .home-hero-cinematic-content>.home-hero-statement-image{
    width:min(345px,calc(100vw - 32px));
    max-width:345px;
    margin-inline:auto;
  }
}

/* Bandeau agence + digital fidèle à la référence */
.home-hero-cinematic-content>.home-hero-agency-label{
  width:max-content;
  max-width:100%;
  margin-top:0;
  margin-bottom:22px;
  padding:9px 16px 9px 13px;
  border:0;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  gap:11px;
  color:#11131a;
  background:#effbc9;
  box-shadow:none;
  font-size:11px;
  font-weight:900;
  letter-spacing:.1em;
  line-height:1;
  white-space:nowrap;
}
.home-hero-agency-label>svg{
  width:27px;
  height:21px;
  flex:0 0 auto;
  overflow:visible;
  fill:none;
  stroke:#f5076c;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.home-hero-agency-label>span{display:block}
.home-hero-agency-label b{color:#f5076c;font-size:1.18em;font-weight:950}
@media(max-width:620px){
  .home-hero-cinematic-content>.home-hero-agency-label{
    margin:0 auto 18px;
    padding:6px 10px 6px 8px;
    gap:6px;
    font-size:7.5px;
    letter-spacing:.065em;
  }
  .home-hero-agency-label>svg{width:18px;height:14px}
}

/* Mobile : photo du hero plus visible derrière le contenu */
@media(max-width:620px){
  .home-hero-cinematic-photo:after{
    background:linear-gradient(180deg,rgba(255,253,251,.01) 48%,rgba(255,247,251,.13) 100%);
  }
  .home-hero-cinematic-shade{
    background:
      linear-gradient(180deg,rgba(255,253,251,.1) 0%,rgba(255,250,252,.04) 64%,rgba(255,248,251,.13) 100%),
      linear-gradient(90deg,rgba(255,253,251,.78) 0%,rgba(255,250,252,.58) 57%,rgba(255,250,252,.19) 100%);
  }
}

/* Cadrage de la photo souriante du hero */
.home-hero-cinematic-photo img{object-position:50% 42%}
@media(max-width:620px){
  .home-hero-cinematic-photo img{object-position:50% 42%}
}

/* Mobile : photo brute et contenu à partir de l'épaule */
@media(max-width:620px){
  .home-hero-cinematic,
  .home-hero-cinematic-content{min-height:860px}
  .home-hero-cinematic-photo{
    background:linear-gradient(180deg,#eee3de 0%,#f7eeec 68%,#fff8fa 100%);
  }
  .home-hero-cinematic-photo img{
    width:100%;
    height:auto;
    object-fit:contain;
    object-position:center top;
    transform:none;
  }
  .home-hero-cinematic-photo:after{background:none}
  .home-hero-cinematic-shade{display:none}
  .home-hero-cinematic-content{
    padding:315px 20px 26px;
    align-items:flex-start;
    text-align:left;
  }
  .home-hero-cinematic-content>.home-hero-agency-label{
    position:absolute;
    top:28px;
    left:50%;
    margin:0;
    transform:translateX(-50%);
  }
  .home-hero-cinematic-content>h1{
    width:270px;
    max-width:calc(100vw - 64px);
    margin:0;
  }
  .home-hero-cinematic-content>.home-hero-statement-image{
    position:relative;
    isolation:isolate;
    width:245px;
    max-width:calc(100vw - 96px);
    margin-left:auto;
    margin-right:auto;
    align-self:center;
    transform:translateY(-62px);
  }
  .home-hero-cinematic-content>.home-hero-statement-image:before{
    content:"";
    position:absolute;
    z-index:0;
    inset:2% -12% 0;
    display:block;
    border-radius:45% 52% 44% 55% / 48% 43% 57% 52%;
    background:
      radial-gradient(circle at 18% 57%,rgba(10,10,14,.44) 0 24%,rgba(10,10,14,0) 49%),
      radial-gradient(circle at 42% 34%,rgba(10,10,14,.48) 0 29%,rgba(10,10,14,0) 55%),
      radial-gradient(circle at 68% 39%,rgba(10,10,14,.46) 0 28%,rgba(10,10,14,0) 54%),
      radial-gradient(circle at 84% 61%,rgba(10,10,14,.42) 0 23%,rgba(10,10,14,0) 49%),
      radial-gradient(ellipse at 50% 62%,rgba(10,10,14,.45) 0 43%,rgba(10,10,14,.2) 62%,rgba(10,10,14,0) 80%);
    filter:blur(6px);
    pointer-events:none;
  }
  .home-hero-cinematic-content>.home-hero-statement-image:after{
    display:none;
  }
  .home-hero-cinematic-content>.home-hero-statement-image>img{
    position:relative;
    z-index:1;
    filter:url(#ovolant-hero-candy) drop-shadow(0 2px 3px rgba(18,18,24,.28));
  }
  .home-hero-cinematic-content>.home-hero-speed-promise{
    position:relative;
    z-index:2;
    width:min(330px,calc(100vw - 56px));
    max-width:330px;
    margin:28px auto 24px;
    min-height:170px;
    padding:14px 16px 13px;
    border:2px solid #ff78ae;
    border-radius:13px;
    background:#ff78ae;
    box-shadow:0 14px 30px rgba(245,7,108,.24);
    justify-items:center;
    grid-template-rows:auto auto auto 1fr;
    align-content:stretch;
    gap:2px;
    text-align:center;
    text-shadow:none;
  }
  .home-hero-speed-promise>span{
    color:#17171d;
    font-weight:950;
  }
  .home-hero-speed-promise>strong{
    color:#17171d;
    max-width:none;
    font-size:16px;
    white-space:normal;
  }
  .home-hero-price-promise{
    display:block;
    width:100%;
    align-self:start;
    margin-top:6px;
    padding-top:7px;
    border-top:1px solid rgba(23,23,29,.2);
    color:#17171d;
    font-size:14px;
    font-weight:950;
    line-height:1.2;
    letter-spacing:-.01em;
  }
  .home-hero-price-promise b{
    position:relative;
    z-index:0;
    display:inline-block;
    margin-left:4px;
    font-size:21px;
    line-height:.8;
    letter-spacing:-.04em;
    vertical-align:-1px;
  }
  .home-hero-price-promise b:after{
    content:"";
    position:absolute;
    z-index:-1;
    left:-3px;
    right:-4px;
    bottom:-1px;
    height:8px;
    border-radius:6px;
    background:#cfe86f;
    transform:rotate(-1.5deg);
  }
  .home-hero-monthly{
    display:block;
    margin-top:7px;
    color:#27232a;
    font-size:11px;
    font-weight:750;
    letter-spacing:0;
  }
  .home-hero-monthly strong{font-size:12px;font-weight:950}
  .home-hero-card-cta{
    width:168px;
    min-height:34px;
    align-self:end;
    margin-top:8px;
    border-radius:9px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    color:#fff;
    background:#17171d;
    font-size:12px;
    font-weight:900;
    line-height:1;
    text-decoration:none;
    text-shadow:none;
  }
  .home-hero-speed-promise>strong em{
    display:inline-block;
    width:auto;
    margin-left:0;
    font-size:1em;
  }
  .home-hero-cinematic-actions>.button{display:none}
  .home-hero-cinematic-actions{justify-items:center}
  .home-hero-cinematic-actions>a:last-child{
    justify-self:center;
    margin-left:0;
    text-shadow:0 1px 6px rgba(255,255,255,.9);
  }
}

/* Desktop hero composition — deliberately last so legacy rules cannot override it. */
@media(min-width:901px){
  .home-hero-cinematic{min-height:780px}
  .home-hero-cinematic-photo{top:46px;right:max(4vw,calc((100vw - 1360px)/2));bottom:46px;width:min(42vw,620px)}
  .home-hero-cinematic-content{width:min(1360px,93%);min-height:780px;padding:64px 46% 56px 0;transform:translateX(clamp(40px,4vw,52px))}
  .home-hero-cinematic-content>.home-hero-agency-label{margin-bottom:28px;padding:11px 18px 11px 14px;gap:12px;font-size:12px}
  .home-hero-agency-label>svg{width:30px;height:23px}
  .home-hero-cinematic-content>.home-hero-statement-image{width:min(660px,100%);max-width:660px}
  .home-hero-cinematic-content>.home-hero-speed-promise{
    width:min(570px,100%);
    max-width:570px;
    min-height:178px;
    margin:42px 0 18px;
    padding:18px 22px 17px;
    border:2px solid #ff78ae;
    border-radius:18px;
    background:#ff78ae;
    box-shadow:0 16px 34px rgba(245,7,108,.22);
    justify-items:start;
    grid-template-rows:auto auto auto 1fr;
    align-content:stretch;
    gap:4px;
    text-align:left;
    text-shadow:none;
  }
  .home-hero-speed-promise>span{color:#17171d;font-size:12px}
  .home-hero-speed-promise>strong{color:#17171d;font-size:clamp(21px,1.55vw,25px)}
  .home-hero-price-promise{
    display:block;
    width:100%;
    margin-top:7px;
    padding-top:8px;
    border-top:1px solid rgba(23,23,29,.2);
    color:#17171d;
    font-size:15px;
    font-weight:950;
    line-height:1.2;
  }
  .home-hero-price-promise b{position:relative;z-index:0;display:inline-block;margin-left:5px;font-size:25px;line-height:.8;letter-spacing:-.04em}
  .home-hero-price-promise b:after{content:"";position:absolute;z-index:-1;left:-3px;right:-4px;bottom:-2px;height:9px;border-radius:6px;background:#cfe86f;transform:rotate(-1.5deg)}
  .home-hero-monthly{display:block;margin-top:8px;color:#27232a;font-size:12px;font-weight:750;letter-spacing:0}
  .home-hero-monthly strong{font-size:13px;font-weight:950}
  .home-hero-card-cta{width:190px;min-height:38px;align-self:end;margin-top:7px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;color:#fff;background:#17171d;font-size:13px;font-weight:900;text-decoration:none;text-shadow:none}
  .home-hero-cinematic-actions>.button{display:none}
  .home-hero-cinematic-actions{gap:28px}
  .home-hero-cinematic-actions .button{min-height:58px;padding:18px 30px;font-size:15px}
  .home-hero-cinematic-actions>a:last-child{font-size:15px}
}

/* Hero endorsement below the primary permit CTA — deliberately last. */
.home-hero-cinematic-content>.home-hero-ranking{
  width:min(570px,100%);
  max-width:570px;
  margin:0 0 12px;
  display:grid;
  justify-items:center;
  gap:2px;
  color:#17171d;
  text-align:center;
  line-height:.98;
  letter-spacing:-.035em;
}
.home-hero-ranking span{color:var(--pink);font-size:20px;font-weight:950}
.home-hero-ranking strong{color:#17171d;font-size:28px;font-weight:950}
.home-hero-ranking-band{
  width:100%;
  margin:0;
  padding:24px 20px 28px;
  display:grid;
  justify-items:center;
  gap:3px;
  background:#fff;
  color:#17171d;
  text-align:center;
  line-height:.98;
  letter-spacing:-.035em;
}
.home-hero-ranking-band span{font-size:36px}
.home-hero-ranking-band strong{font-size:40px}
@media(max-width:900px){
  .home-hero-cinematic-content>.home-hero-ranking{width:min(330px,calc(100vw - 56px));margin:0 auto 8px}
  .home-hero-ranking span{font-size:17px}
  .home-hero-ranking strong{font-size:23px}
  .home-hero-ranking-band{width:100%;margin:-115px 0 0;padding:20px 20px 24px;position:relative;z-index:4}
  .home-hero-ranking-band span{font-size:27px}
  .home-hero-ranking-band strong{font-size:31px}
}

/* Promotion du hero — dégradé poudré, dernière règle pour mobile et desktop. */
.home-hero-cinematic-content>.home-hero-speed-promise{
  position:relative;
  overflow:hidden;
  border-color:rgba(245,7,108,.3);
  background:
    radial-gradient(circle at 100% 0,rgba(207,232,111,.62) 0 21%,rgba(207,232,111,0) 44%),
    linear-gradient(140deg,#fff7fa 0%,#ffe1ed 56%,#f6fbdc 100%);
  box-shadow:0 18px 40px rgba(117,60,83,.18);
}
.home-hero-speed-promise>span,
.home-hero-speed-promise>strong,
.home-hero-speed-promise>strong em,
.home-hero-price-promise,
.home-hero-monthly,
.home-hero-monthly strong{
  color:#17171d;
}
.home-hero-speed-promise>span{color:#d9005a}
.home-hero-price-promise{border-top-color:rgba(23,23,29,.14)}
.home-hero-card-cta{
  border:1px solid #f5076c;
  color:#fff;
  background:#f5076c;
  box-shadow:0 9px 18px rgba(245,7,108,.2);
}
@media(min-width:901px){
  .home-hero-cinematic-content>.home-hero-speed-promise{
    justify-items:center;
    text-align:center;
  }
  .home-hero-card-cta{align-self:center}
}

/* About page — new editorial design */
.about-new{overflow:hidden;background:#fff;color:#15161c}
.about-shell{width:min(1180px,90vw);margin:0 auto}
.about-hero{position:relative;padding:84px 0 92px;background:linear-gradient(135deg,#fffaf7 0%,#fff 52%,#f1f9df 100%)}
.about-hero::before{content:'';position:absolute;left:-110px;bottom:-160px;width:390px;height:390px;border:70px solid rgba(245,7,108,.06);border-radius:50%}
.about-hero::after{content:'';position:absolute;top:-120px;right:-150px;width:420px;height:420px;border-radius:50%;background:rgba(213,249,112,.18);filter:blur(2px)}
.about-hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,.94fr) minmax(440px,1.06fr);gap:7%;align-items:center}
.about-kicker,.about-section-kicker{display:inline-flex;align-items:center;gap:9px;color:#6f755d;font-size:10px;font-weight:900;letter-spacing:.14em;text-transform:uppercase}
.about-kicker{padding:9px 14px;border-radius:999px;background:#e7faab}
.about-kicker::before,.about-section-kicker::before{content:'';width:7px;height:7px;border-radius:50%;background:var(--pink)}
.about-hero h1{margin:24px 0 21px;max-width:660px;font-size:clamp(52px,5.7vw,82px);line-height:.96;letter-spacing:-.065em}
.about-hero h1 em{display:block;color:var(--pink);font-style:normal}
.about-hero-copy>p{max-width:620px;margin:0;color:#666a73;font-size:18px;line-height:1.72}
.about-actions{margin-top:34px;display:flex;align-items:center;gap:24px}
.about-actions .button{width:auto;margin:0}
.about-text-link,.about-inline-link{color:#1b1c22;font-weight:850;text-decoration:none}
.about-text-link{padding-bottom:4px;border-bottom:2px solid #d9ef90}
.about-hero-photo{position:relative;margin:0;min-height:560px;overflow:hidden;border-radius:34px 34px 120px 34px;background:#ececf0;box-shadow:0 30px 80px rgba(18,20,27,.17)}
.about-hero-photo::after{content:'';position:absolute;inset:50% 0 0;background:linear-gradient(transparent,rgba(13,14,19,.75))}
.about-hero-photo img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover}
.about-hero-photo figcaption{position:absolute;z-index:2;left:28px;right:28px;bottom:27px;padding:18px 20px;border:1px solid rgba(255,255,255,.28);border-radius:18px;color:#fff;background:rgba(23,24,30,.62);backdrop-filter:blur(12px)}
.about-hero-photo figcaption span,.about-hero-photo figcaption strong{display:block}
.about-hero-photo figcaption span{margin-bottom:5px;color:#dffb82;font-size:10px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
.about-hero-photo figcaption strong{font-size:18px;line-height:1.35}
.about-trust{border-top:1px solid #f0e8ec;border-bottom:1px solid #f0e8ec;background:#fff}
.about-trust .about-shell{min-height:94px;display:grid;grid-template-columns:repeat(3,1fr);align-items:center}
.about-trust span{min-height:46px;padding:0 25px;display:flex;align-items:center;justify-content:center;gap:12px;border-right:1px solid var(--line);font-weight:820;text-align:center}
.about-trust span:last-child{border:0}
.about-trust i{width:26px;height:26px;display:grid;place-items:center;flex:0 0 26px;border-radius:50%;color:#fff;background:var(--pink);font-size:12px;font-style:normal}
.about-story{padding:120px 0}
.about-story-grid{display:grid;grid-template-columns:minmax(0,1.03fr) minmax(400px,.97fr);gap:9%;align-items:center}
.about-story-copy h2,.about-section-heading h2{margin:18px 0 25px;font-size:clamp(42px,4.4vw,64px);line-height:1.03;letter-spacing:-.055em}
.about-story-copy p{color:#666a73;font-size:17px;line-height:1.78}
.about-inline-link{margin-top:16px;display:inline-flex;gap:8px;color:var(--pink)}
.about-story-photo{position:relative;margin:0;aspect-ratio:4/4.55;overflow:hidden;border-radius:90px 30px 30px 30px;background:#eee;box-shadow:0 26px 70px rgba(18,20,27,.14)}
.about-story-photo img{width:100%;height:100%;display:block;object-fit:cover}
.about-photo-badge{position:absolute;left:24px;right:24px;bottom:23px;padding:19px 22px;display:flex;align-items:center;gap:17px;border-radius:18px;color:#171920;background:#e4fa9a;box-shadow:0 14px 35px rgba(20,22,27,.18)}
.about-photo-badge b{font-size:30px;letter-spacing:-.04em}
.about-photo-badge small{font-size:12px;line-height:1.4}
.about-values{position:relative;padding:112px 0;background:#171820;color:#fff}
.about-values::after{content:'';position:absolute;right:-110px;top:70px;width:280px;height:280px;border:45px solid rgba(245,7,108,.12);border-radius:50%}
.about-section-heading{position:relative;z-index:1;margin-bottom:55px;display:grid;grid-template-columns:1.05fr .7fr;gap:12%;align-items:end}
.about-section-heading h2{margin-bottom:0}
.about-section-heading>p{margin:0;color:#b8bac2;font-size:16px;line-height:1.72}
.about-values .about-section-kicker{color:#dffb82}
.about-values-grid{position:relative;z-index:1;display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.about-values-grid article{min-height:350px;padding:31px;display:flex;flex-direction:column;border:1px solid rgba(255,255,255,.11);border-radius:25px;background:rgba(255,255,255,.055);transition:.25s ease}
.about-values-grid article:hover{border-color:rgba(223,251,130,.5);background:rgba(255,255,255,.08);transform:translateY(-5px)}
.about-value-icon{width:55px;height:55px;display:grid;place-items:center;border-radius:17px;color:#171920;background:#dffb82}
.about-value-icon svg{width:27px;height:27px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.about-values-grid h3{margin:68px 0 13px;font-size:25px;letter-spacing:-.035em}
.about-values-grid p{margin:0;color:#b9bbc3;line-height:1.7}
.about-numbers{padding:74px 0;background:#fff7fa}
.about-numbers-grid{display:grid;grid-template-columns:repeat(3,1fr)}
.about-numbers-grid div{padding:18px 45px;border-right:1px solid #e7dfe3;text-align:center}
.about-numbers-grid div:last-child{border:0}
.about-numbers strong,.about-numbers span{display:block}
.about-numbers strong{color:var(--pink);font-size:clamp(35px,4vw,50px);letter-spacing:-.045em}
.about-numbers span{margin-top:6px;color:#6c7078}
.about-final{width:min(1180px,90vw);margin:105px auto;padding:65px 70px;display:flex;align-items:center;justify-content:space-between;gap:55px;border-radius:32px;color:#fff;background:linear-gradient(120deg,#f5076c,#d9005d);box-shadow:0 24px 65px rgba(245,7,108,.21)}
.about-final-copy{max-width:720px}
.about-final-copy>span{color:#e7faab;font-size:10px;font-weight:900;letter-spacing:.14em;text-transform:uppercase}
.about-final h2{margin:9px 0 10px;font-size:clamp(38px,4.5vw,60px);line-height:1;letter-spacing:-.05em}
.about-final p{margin:0;max-width:650px;color:rgba(255,255,255,.82);line-height:1.65}
.about-final .button{width:auto;margin:0;flex:0 0 auto}

@media(max-width:980px){
  .about-hero-grid,.about-story-grid{grid-template-columns:1fr}
  .about-hero-grid{gap:52px}
  .about-hero-photo{min-height:520px}
  .about-story-grid{gap:55px}
  .about-story-photo{width:min(620px,100%);aspect-ratio:4/3.6}
  .about-section-heading{grid-template-columns:1fr;gap:20px}
  .about-values-grid{grid-template-columns:1fr}
  .about-values-grid article{min-height:0}
  .about-values-grid h3{margin-top:38px}
  .about-final{align-items:flex-start;flex-direction:column}
}

@media(max-width:680px){
  .about-shell{width:calc(100% - 40px)}
  .about-hero{padding:55px 0 68px}
  .about-hero h1{margin-top:20px;font-size:46px}
  .about-hero-copy>p{font-size:16px}
  .about-actions{align-items:stretch;flex-direction:column;gap:17px}
  .about-actions .button{width:100%}
  .about-text-link{align-self:flex-start}
  .about-hero-photo{min-height:390px;border-radius:24px 24px 70px 24px}
  .about-hero-photo figcaption{left:15px;right:15px;bottom:15px;padding:14px 15px}
  .about-hero-photo figcaption strong{font-size:15px}
  .about-trust .about-shell{padding:17px 0;grid-template-columns:1fr}
  .about-trust span{min-height:50px;justify-content:flex-start;border-right:0;border-bottom:1px solid var(--line);text-align:left}
  .about-trust span:last-child{border-bottom:0}
  .about-story{padding:78px 0}
  .about-story-copy h2,.about-section-heading h2{font-size:38px}
  .about-story-copy p{font-size:16px}
  .about-story-photo{aspect-ratio:4/4.3;border-radius:58px 22px 22px 22px}
  .about-photo-badge{left:14px;right:14px;bottom:14px;padding:15px 17px}
  .about-photo-badge b{font-size:25px}
  .about-values{padding:78px 0}
  .about-section-heading{margin-bottom:34px}
  .about-values-grid article{padding:25px;border-radius:20px}
  .about-values-grid h3{margin-top:32px;font-size:23px}
  .about-numbers{padding:42px 0}
  .about-numbers-grid{grid-template-columns:1fr}
  .about-numbers-grid div{padding:25px 15px;border-right:0;border-bottom:1px solid #e7dfe3}
  .about-numbers-grid div:last-child{border-bottom:0}
  .about-final{width:calc(100% - 40px);margin:70px auto;padding:40px 24px;border-radius:24px;gap:28px}
  .about-final h2{font-size:40px}
  .about-final .button{width:100%}
}


