/* ============================================================
   Nacel English School London — v2026_01
   Direction B (Thames) — design system + components
   Static template (jQuery + Bootstrap). Font: Schibsted Grotesk.
   ============================================================ */
/* le scroll des onglets est anime en JS (linear) : on neutralise le smooth CSS
   qui ajoutait une acceleration au demarrage */
html{ scroll-behavior:auto !important; }

:root{
  --blue:#1890D8; --blue-d:#1276b3; --blue-l:#EAF4FB;
  --ink:#0f1b2d; --ink-d:#0b1320; --nav:#1f2937;
  --body:#475569; --muted:#64748b; --muted2:#94a3b8; --muted3:#9fb3c8; --muted4:#7d8b9c;
  --line:#eaf0f6; --line2:#eef2f6; --line3:#e2ecf5; --line4:#f1f5f9; --line5:#d6e0ea;
  --hero:linear-gradient(180deg,#F3F9FE 0%,#ffffff 100%);
  --soft:#F6F9FC;
  --pattern:repeating-linear-gradient(135deg,#e2eef8,#e2eef8 11px,#d4e6f5 11px,#d4e6f5 22px);
  --pattern2:repeating-linear-gradient(135deg,#dfeaf6,#dfeaf6 11px,#cfe1f2 11px,#cfe1f2 22px);
  --sh-card:0 16px 34px rgba(15,27,45,.1);
  --sh-soft:0 6px 16px rgba(15,27,45,.06);
  --maxw:1280px; --pad:56px;
}

/* ---- base (overrides Bootstrap reboot) ---- */
*{box-sizing:border-box;}
body{margin:0; font-family:'Schibsted Grotesk',system-ui,sans-serif; color:var(--body); background:#fff; -webkit-font-smoothing:antialiased;}
img{max-width:100%;}
a{ -webkit-tap-highlight-color:transparent; }
/* en-tetes : styles portes par les composants (.nhero h1, .sec-head h2, etc.) pour ne pas
   impacter les pages pas encore migrees qui chargent encore l'ancien style.css */

.container-x{ max-width:var(--maxw); margin:0 auto; padding:0 var(--pad); }
/* le nouvel en-tete est dans le flux : on annule le decalage herite de l'ancien theme */
.main-content{ padding-top:0 !important; }
.eyebrow{ font-size:13px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--blue); }
.pattern{ background:var(--pattern); }

/* ---- buttons ---- */
.btn-x{ display:inline-flex; align-items:center; gap:7px; text-decoration:none; font-weight:700; border-radius:9px; border:1px solid transparent; cursor:pointer; transition:.18s; line-height:1; }
.btn-primary-x{ background:var(--blue); color:#fff; padding:15px 26px; font-size:15px; box-shadow:0 8px 18px rgba(24,144,216,.3); }
.btn-primary-x:hover{ background:var(--blue-d); color:#fff; }
.btn-light-x{ background:var(--blue-l); color:var(--blue-d); padding:15px 24px; font-size:15px; }
.btn-light-x:hover{ background:#dceefb; }
.btn-outline-x{ background:#fff; border-color:var(--line5); color:var(--ink); padding:14px 24px; font-size:15px; }
.btn-outline-x:hover{ border-color:var(--blue); }
.btn-dark-x{ background:var(--ink); color:#fff; padding:14px 26px; font-size:15px; }
.btn-dark-x:hover{ background:var(--blue); color:#fff; }
.btn-white-x{ background:#fff; color:var(--blue-d); padding:15px 28px; font-size:15px; }
.btn-white-x:hover{ background:var(--ink); color:#fff; }
.btn-sm-x{ padding:11px 18px; font-size:14px; }
/* boutons de telechargement dans le contenu (page Course Fees, etc.) */
.pl-btn{ margin:14px 10px 0 0; }
.tag-uk{ font-size:10px; background:rgba(255,255,255,.25); padding:2px 5px; border-radius:4px; }
/* ---- Affichage "UK uniquement" (cache-safe, pilote cote client) ----
   Les elements portant la classe .only_uk (bouton Free trial, blocs de contenu
   website_page_block, etc.) sont masques PAR DEFAUT. Le script en tete de page
   (layout.php) ajoute la classe .geo-uk sur <html> quand le cookie country_detected
   vaut GB : la regle ci-dessous cesse alors de s'appliquer et l'element reprend son
   display naturel. Rendu HTML identique pour tous -> compatible avec le cache de page. */
html:not(.geo-uk) .only_uk{ display:none !important; }
.link-arrow{ color:var(--blue); font-weight:700; font-size:14px; text-decoration:none; white-space:nowrap; }
.link-arrow:hover{ color:var(--blue-d); }

/* ============== HEADER ============== */
.site-header{ position:relative; z-index:60; background:#fff; }
.util{ background:#fff; font-size:13px; border-bottom:1px solid var(--line2); color:var(--muted); }
.util .container-x{ height:40px; display:flex; align-items:center; justify-content:space-between; }
.util .phone{ color:var(--nav); text-decoration:none; font-weight:700; display:flex; align-items:center; gap:7px; }
.util-links{ display:flex; align-items:center; gap:24px; font-weight:600; }
.util-links a{ color:var(--muted); text-decoration:none; }
.util-links a:hover{ color:var(--blue); }
.util-cta{ display:none; background:var(--blue); color:#fff; font-weight:700; padding:6px 16px; border-radius:8px; text-decoration:none; font-size:13px; white-space:nowrap; }
.util-cta:hover{ background:var(--blue-d); }

.mainbar{ background:#fff; box-shadow:0 1px 0 var(--line2); }
.mainbar .container-x{ height:80px; display:flex; align-items:center; justify-content:space-between; }
.brand img{ height:42px; width:auto; display:block; }
.nav{ display:flex; align-items:center; gap:28px; font-size:15px; font-weight:600; color:var(--nav); }
.nav a, .nav .nav-item{ color:var(--nav); text-decoration:none; cursor:pointer; user-select:none; display:flex; align-items:center; gap:5px; padding:8px 0; }
.nav a:hover, .nav .nav-item:hover{ color:var(--blue); }
.nav .nav-item.is-open{ color:var(--blue); }
.caret{ font-size:9px; display:inline-block; transition:transform .2s; }
.nav-item.is-open .caret{ transform:rotate(180deg); }
.cluster{ display:flex; align-items:center; gap:11px; }
.cluster .sep{ width:1px; height:22px; background:#e2e8f0; }
.cluster .ghost{ color:var(--nav); font-weight:600; font-size:14px; text-decoration:none; display:flex; align-items:center; gap:5px; }
.cluster .ghost:hover{ color:var(--blue); }
.cluster .ghost .caret{ color:var(--muted2); }
.btn-trial{ background:var(--blue); color:#fff; padding:11px 18px; font-size:14px; border-radius:8px; box-shadow:0 6px 14px rgba(24,144,216,.28); }
.btn-trial:hover{ background:var(--blue-d); color:#fff; }
.btn-contact{ background:var(--blue-l); color:var(--blue-d); padding:11px 18px; font-size:14px; border-radius:8px; font-weight:700; text-decoration:none; }
.btn-contact:hover{ background:#dceefb; }

/* mega menu */
.mega{ position:absolute; left:0; right:0; top:100%; z-index:55; display:none; }
.mega.is-open{ display:block; }
.mega__panel{ background:#fff; border-top:1px solid var(--line2); box-shadow:0 24px 40px rgba(15,27,45,.14); }
.mega__grid{ max-width:var(--maxw); margin:0 auto; padding:34px var(--pad) 38px; display:grid; grid-template-columns:repeat(4,1fr) 1.1fr; gap:32px; }
.mega__famhead{ display:flex; align-items:center; gap:9px; margin-bottom:16px; }
.fam-tag{ width:30px; height:30px; border-radius:8px; background:var(--blue-l); color:var(--blue); display:flex; align-items:center; justify-content:center; font-weight:800; font-size:14px; }
.mega__famname{ font-weight:700; color:var(--ink); font-size:15px; }
a.mega__famname{ text-decoration:none; }
a.mega__famname:hover{ color:var(--blue); }
.mega__links{ display:flex; flex-direction:column; gap:10px; }
.mega__links a{ text-decoration:none; color:var(--muted); font-size:14px; font-weight:500; }
.mega__links a:hover{ color:var(--blue); }
.mega__promo{ background:var(--ink); border-radius:12px; padding:24px; display:flex; flex-direction:column; justify-content:space-between; }
.mega__promo h4{ font-weight:800; color:#fff; font-size:17px; margin:0 0 8px; }
.mega__promo p{ font-size:13.5px; line-height:1.55; color:var(--muted3); margin:0; }
.mega__promo .acts{ display:flex; flex-direction:column; gap:9px; margin-top:18px; }
.mega__promo .acts a{ text-decoration:none; font-weight:700; font-size:13.5px; padding:10px; border-radius:8px; text-align:center; }
.mega__promo .acts a.fill{ background:var(--blue); color:#fff; }
.mega__promo .acts a.fill:hover{ background:var(--blue-d); }
.mega__promo .acts a.line{ border:1px solid rgba(255,255,255,.22); color:#fff; }
.mega__promo .acts a.line:hover{ border-color:#fff; }
.mega__backdrop{ position:fixed; inset:0; z-index:54; display:none; }
.mega__backdrop.is-open{ display:block; }

/* hamburger (mobile) */
.burger{ display:none; width:42px; height:42px; border-radius:9px; background:var(--blue-l); flex-direction:column; align-items:center; justify-content:center; gap:4px; cursor:pointer; border:0; }
.burger span{ width:18px; height:2px; background:var(--blue-d); border-radius:2px; }

/* ============== HERO (home) ============== */
.nhero{ background:var(--hero); position:relative; }
.nhero__grid{ max-width:var(--maxw); margin:0 auto; padding:72px var(--pad) 0; display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; }
.pill{ display:inline-flex; align-items:center; gap:8px; background:var(--blue-l); color:var(--blue-d); font-size:13px; font-weight:700; padding:7px 14px; border-radius:100px; margin-bottom:22px; }
.nhero h1{ font-size:58px; font-weight:800; line-height:1.03; letter-spacing:-.025em; color:var(--ink); margin:0 0 20px; }
.nhero__lead{ font-size:18px; line-height:1.6; color:var(--body); max-width:480px; margin:0 0 30px; }
.nhero__cta{ display:flex; align-items:center; gap:12px; margin-bottom:28px; flex-wrap:wrap; }
.rating{ display:flex; align-items:center; gap:11px; font-size:14px; color:var(--body); }
.stars{ color:var(--blue); }
.nhero__media{ position:relative; padding-bottom:30px; }
.imgph{ background:var(--pattern); border-radius:14px; display:flex; align-items:flex-end; padding:18px; box-shadow:0 24px 50px rgba(15,27,45,.14); }
.imgph__tag{ font-family:ui-monospace,monospace; font-size:11.5px; background:rgba(15,27,45,.8); color:#fff; padding:5px 9px; border-radius:5px; }
.nhero__badge{ position:absolute; right:-14px; top:30px; background:#fff; border-radius:12px; box-shadow:0 14px 30px rgba(15,27,45,.16); padding:14px 16px; display:flex; align-items:center; gap:10px; }
.nhero__badge .ic{ width:40px; height:40px; border-radius:10px; background:var(--blue-l); display:flex; align-items:center; justify-content:center; color:var(--blue); font-weight:800; }
.nhero__badge b{ color:var(--ink); font-size:15px; }
.nhero__badge small{ font-size:12px; color:var(--muted); }

.statbar-wrap{ max-width:var(--maxw); margin:0 auto; padding:0 var(--pad); }
.statbar{ background:var(--ink); border-radius:14px; padding:26px 40px; display:grid; grid-template-columns:repeat(4,1fr); gap:24px; transform:translateY(34px); box-shadow:0 20px 44px rgba(15,27,45,.22); }
.statbar > div{ }
.statbar > div + div{ border-left:1px solid rgba(255,255,255,.12); padding-left:24px; }
.statbar .num{ font-size:34px; font-weight:800; color:#fff; }
.statbar .lbl{ font-size:13px; color:var(--muted3); }

/* ============== SECTIONS ============== */
.sec{ max-width:var(--maxw); margin:0 auto; padding:60px var(--pad); }
.sec--soft-wrap{ background:var(--soft); }
.sec-head{ text-align:center; max-width:620px; margin:0 auto 44px; }
.sec-head .eyebrow{ margin-bottom:12px; display:block; }
.sec-head h2{ font-size:40px; font-weight:800; line-height:1.1; color:var(--ink); margin:0; }
.sec-head--lg h2{ font-size:38px; }
.row-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:38px; }
.row-head h2{ font-size:36px; font-weight:800; color:var(--ink); margin:0; max-width:560px; }
.row-head .eyebrow{ display:block; margin-bottom:12px; }

.intro{ max-width:1080px; margin:0 auto; padding:96px var(--pad) 24px; text-align:center; }
.intro h2{ font-size:38px; font-weight:800; line-height:1.12; color:var(--ink); margin:14px 0 18px; }
.intro p{ font-size:17px; line-height:1.7; color:var(--body); margin:0 auto; max-width:760px; }

/* Section "Study English in..." (#14326) : texte a gauche, illustration + cartes a droite */
.study{ padding:70px 0 50px; overflow:hidden; }
.study__inner{ display:grid; grid-template-columns:minmax(300px,40%) 1fr; grid-template-rows:auto auto; column-gap:40px; align-content:center; align-items:center; }
.study__text{ grid-column:1; grid-row:1; }
.study__cta{ grid-column:1; grid-row:2; margin-top:22px; }
.study__text .eyebrow{ margin-bottom:10px; }
.study__text h2{ font-size:36px; font-weight:800; line-height:1.14; color:var(--ink); margin:0 0 16px; }
.study__text p{ font-size:16px; line-height:1.7; color:var(--body); margin:0 0 24px; max-width:440px; }
.study__visual{ grid-column:2; grid-row:1 / span 2; position:relative; min-height:500px; }
.study__blob{ position:absolute; z-index:0; top:6%; left:10%; width:74%; max-width:560px; height:auto; pointer-events:none; }
.study__tower{ position:absolute; z-index:2; left:8%; bottom:2%; width:135px; height:auto; pointer-events:none; }
.study__plane{ position:absolute; z-index:4; right:21px; top:38%; width:210px; height:auto; pointer-events:none; }
.pcard{ position:absolute; z-index:3; width:250px; background:#fff; border:1px solid var(--line); border-radius:14px; box-shadow:0 12px 34px rgba(16,42,67,.12); padding:16px 18px; }
.pcard h3{ font-size:15.5px; font-weight:700; color:var(--ink); margin:0 0 6px; }
.pcard p{ font-size:12.5px; line-height:1.5; color:var(--muted); margin:0; }
.pcard--1{ top:2%; right:1%; }
.pcard--2{ top:36%; left:-2%; }
.pcard--3{ bottom:2%; right:1%; }
/* mobile (#14326) : empilement texte -> cartes (titres seuls, sur illustration) -> bouton */
@media (max-width:991px){
  .study{ padding:48px 0 40px; }
  .study__inner{ display:flex; flex-direction:column; }
  .study__text, .study__cta, .study__visual{ grid-column:auto; grid-row:auto; }
  .study__text{ order:1; }
  .study__visual{ order:2; position:relative; min-height:0; margin-top:26px; padding:38px 0 44px; display:flex; flex-direction:column; align-items:stretch; gap:14px; }
  .study__cta{ order:3; margin-top:24px; }
  /* illustration mobile : blob derriere les cartes, avion haut-droite, tour bas-gauche */
  .study__blob{ display:block; position:absolute; z-index:0; left:50%; top:4%; transform:translateX(-50%); width:74%; max-width:300px; height:auto; }
  .study__plane{ display:block; position:absolute; z-index:2; right:2%; top:0; width:96px; }
  .study__tower{ display:block; position:absolute; z-index:1; left:2%; bottom:0; width:84px; }
  .pcard{ position:relative; z-index:3; width:100%; max-width:none; margin:0; border:1.5px solid var(--muted3); box-shadow:none; padding:17px 18px; text-align:center; }
  .pcard p{ display:none; }
  .pcard h3{ margin:0; font-size:16px; }
  .study__cta .btn-x{ width:100%; justify-content:center; }
}

/* 3 pillars */
.grid-3{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.grid-4{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.pillar{ background:var(--soft); border-radius:14px; padding:30px; }
.pillar .ic{ width:44px; height:44px; border-radius:11px; background:var(--blue-l); color:var(--blue); display:flex; align-items:center; justify-content:center; font-size:20px; margin-bottom:16px; }
.pillar h3{ font-size:19px; font-weight:700; color:var(--ink); margin:0 0 8px; }
.pillar p{ font-size:14.5px; line-height:1.6; color:var(--muted); margin:0; }

/* family cards */
.fcard{ background:#fff; border:1px solid var(--line); border-radius:14px; padding:28px 24px; display:flex; flex-direction:column; min-height:260px; transition:.2s; text-decoration:none; }
.fcard:hover{ border-color:var(--blue); box-shadow:var(--sh-card); }
.fcard .badge{ width:46px; height:46px; border-radius:11px; background:var(--blue-l); color:var(--blue); display:flex; align-items:center; justify-content:center; font-size:22px; font-weight:800; margin-bottom:18px; }
.fcard h3{ font-size:20px; font-weight:700; color:var(--ink); margin:0 0 9px; }
.fcard p{ font-size:14.5px; line-height:1.55; color:var(--muted); margin:0 0 18px; flex:1; }

/* gradient band */
.band{ background:linear-gradient(110deg,#1890D8,#1276b3); border-radius:16px; padding:40px 48px; display:flex; align-items:center; justify-content:space-between; gap:36px; overflow:hidden; }
.band h3{ font-size:28px; font-weight:800; color:#fff; margin:0 0 7px; }
.band p{ font-size:16px; color:#dbeefb; margin:0; max-width:560px; }

/* bandeau avec photo "en dur" qui se fond dans le bleu (#14328) */
.band--photo{ position:relative; padding:0; }
.band--photo .band__photo{ position:absolute; top:0; left:0; bottom:0; width:40%; z-index:0; }
.band--photo .band__photo img{ width:100%; height:100%; object-fit:cover; display:block;
  -webkit-mask-image:linear-gradient(90deg,#000 60%,transparent 100%);
  mask-image:linear-gradient(90deg,#000 60%,transparent 100%); }
.band--photo .band__text{ position:relative; z-index:1; flex:1 1 auto; padding:26px 0 26px 44%; }
.band--photo .btn-x{ position:relative; z-index:1; flex:0 0 auto; margin-right:44px; }

/* why grid (4x2) */
.why{ background:#fff; border:1px solid var(--line); border-radius:13px; padding:26px 24px; }
.why .why-ic{ width:52px; height:52px; border-radius:13px; background:var(--blue-l); color:var(--blue); display:flex; align-items:center; justify-content:center; margin-bottom:16px; }
.why .why-ic svg{ width:26px; height:26px; display:block; }
.why .why-line{ display:block; width:26px; height:3px; border-radius:2px; background:var(--blue); margin:0 0 12px; }
.why b{ display:block; font-weight:700; color:var(--ink); font-size:15.5px; margin:0 0 8px; }
.why p{ margin:0; font-size:13.5px; line-height:1.55; color:var(--muted); }

/* media cards (accommodation / blog) */
.mcard{ border:1px solid var(--line); border-radius:14px; overflow:hidden; text-decoration:none; display:block; background:#fff; transition:.2s; }
.mcard:hover{ border-color:var(--blue); box-shadow:0 16px 34px rgba(15,27,45,.08); }
.mcard .ph{ background:var(--pattern); display:flex; align-items:flex-end; padding:11px; }
.mcard .body{ padding:18px; }
.mcard .body b{ font-weight:700; color:var(--ink); font-size:17px; display:block; margin-bottom:4px; }
.mcard .body p{ margin:0; font-size:13.5px; line-height:1.5; color:var(--muted); }
.ar43{ aspect-ratio:4/3; }
.ar169{ aspect-ratio:16/9; }
.ar1610{ aspect-ratio:16/10; }
.bcard .cat{ font-size:12px; font-weight:700; color:var(--blue); text-transform:uppercase; letter-spacing:.06em; margin-bottom:8px; }
.bcard h3{ font-size:17px; font-weight:700; color:var(--ink); margin:0 0 8px; line-height:1.3; }
.bcard:hover{ box-shadow:var(--sh-card); border-color:var(--line); }

/* activities tiles */
.tile{ position:relative; border-radius:14px; overflow:hidden; aspect-ratio:16/10; background:var(--pattern2); }
.tile::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 40%,rgba(15,27,45,.72)); }
.tile .cap{ position:absolute; left:18px; bottom:16px; color:#fff; z-index:2; }
.tile .cap b{ font-weight:800; font-size:18px; display:block; }
.tile .cap span{ font-size:13px; opacity:.85; }

/* testimonials */
.googlepill{ display:inline-flex; align-items:center; gap:12px; background:#fff; border:1px solid var(--line); border-radius:100px; padding:8px 18px; margin-bottom:18px; box-shadow:var(--sh-soft); }
.googlepill .g{ font-family:ui-monospace,monospace; font-size:13px; color:var(--muted); }
.googlepill b{ font-weight:800; color:var(--ink); }
.tcard{ background:#fff; border:1px solid var(--line); border-radius:14px; padding:26px; }
.tcard .stars{ margin-bottom:12px; }
.tcard p{ font-size:16px; line-height:1.6; color:var(--nav); margin:0 0 18px; }
.tcard .who{ display:flex; align-items:center; gap:11px; }
.tcard .av{ width:38px; height:38px; border-radius:50%; background:var(--blue-l); display:flex; align-items:center; justify-content:center; color:var(--blue-d,#0b63a6); font-weight:700; font-size:15px; flex:0 0 38px; }
.tcard .who b{ font-weight:700; color:var(--ink); font-size:14px; display:block; }
.tcard .who small{ font-size:12.5px; color:var(--muted2); }

/* faq */
.faq-list{ display:flex; flex-direction:column; gap:12px; margin-bottom:60px; }
.faq-item{ background:#fff; border:1px solid var(--line); border-radius:12px; padding:22px 24px; cursor:pointer; }
.faq-item.is-open{ border-color:#bfe0f6; }
.faq-q{ display:flex; justify-content:space-between; align-items:center; gap:16px; }
.faq-q span{ font-weight:700; font-size:16.5px; color:var(--ink); }
.faq-sign{ color:var(--muted2); font-size:22px; line-height:1; }
.faq-item.is-open .faq-sign{ color:var(--blue); }
.faq-a{ font-size:15px; line-height:1.6; color:var(--muted); margin:13px 0 0; display:none; }
.faq-item.is-open .faq-a{ display:block; }

/* brochure band */
.brochure{ border:1px solid #e2ecf5; border-radius:16px; padding:30px 36px; display:flex; align-items:center; justify-content:space-between; gap:30px; background:var(--soft); }
.brochure .ic{ width:54px; height:54px; border-radius:12px; background:var(--blue-l); color:var(--blue-d); display:flex; align-items:center; justify-content:center; font-size:24px; }
.brochure b{ font-size:20px; font-weight:800; color:var(--ink); }
.brochure p{ margin:4px 0 0; font-size:14.5px; color:var(--muted); }

/* cta dark */
.ncta{ background:var(--ink); border-radius:18px; padding:64px; text-align:center; position:relative; overflow:hidden; }
.ncta::before{ content:""; position:absolute; right:-60px; top:-60px; width:300px; height:300px; background:radial-gradient(circle,rgba(24,144,216,.35),transparent 70%); }
.ncta h2{ font-size:42px; font-weight:800; color:#fff; margin:0 0 14px; position:relative; }
.ncta p{ font-size:17px; color:var(--muted3); margin:0 auto 28px; max-width:520px; position:relative; }
.ncta__acts{ display:flex; align-items:center; justify-content:center; gap:12px; position:relative; flex-wrap:wrap; }
.ncta__acts .line{ border:1px solid rgba(255,255,255,.25); color:#fff; padding:14px 26px; border-radius:9px; font-weight:700; font-size:15px; text-decoration:none; }
.ncta__acts .line:hover{ border-color:#fff; }

/* footer */
.nfooter{ background:var(--ink-d); color:var(--muted3); font-size:14px; }
.nfooter__grid{ max-width:var(--maxw); margin:0 auto; padding:58px var(--pad) 28px; display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr 1fr; gap:34px; }
.nfooter__logo{ height:38px; margin-bottom:16px; }
.nfooter p{ margin:0 0 16px; line-height:1.6; max-width:240px; }
.nfooter h5{ color:#fff; font-weight:700; font-size:13px; letter-spacing:.06em; text-transform:uppercase; margin:0 0 15px; }
.nfooter__col a{ color:var(--muted3); text-decoration:none; }
.nfooter__col a:hover{ color:#fff; }
.nfooter__col .links{ display:flex; flex-direction:column; gap:10px; }
.soc{ display:flex; gap:9px; }
.soc span{ width:34px; height:34px; border-radius:9px; background:rgba(255,255,255,.08); display:flex; align-items:center; justify-content:center; font-size:13px; }
.accred{ display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.accred div{ height:30px; border:1px solid rgba(255,255,255,.14); border-radius:7px; display:flex; align-items:center; justify-content:center; font-family:ui-monospace,monospace; font-size:9.5px; color:var(--muted4); }
.nfooter__bottom{ border-top:1px solid rgba(255,255,255,.08); }
.nfooter__bottom .container-x{ padding:18px var(--pad); display:flex; justify-content:space-between; font-size:13px; color:var(--muted4); }
.nfooter__bottom a{ color:var(--muted4); text-decoration:none; }
.nfooter__bottom .lks{ display:flex; gap:22px; }

/* floating */
.floating{ display:none !important; }
.floating--legacy{ position:fixed; right:24px; bottom:24px; flex-direction:column; gap:12px; z-index:50; }
.floating .fb{ width:50px; height:50px; border-radius:14px; display:flex; align-items:center; justify-content:center; color:#fff; font-size:22px; cursor:pointer; text-decoration:none; }
.floating .wa{ background:#25D366; opacity:.45; box-shadow:0 8px 20px rgba(0,0,0,.18); }
.floating .ct{ background:var(--blue); box-shadow:0 8px 20px rgba(24,144,216,.4); }

/* ============== MOBILE DRAWER + bottom bar ============== */
.drawer{ position:fixed; inset:0; z-index:120; background:#fff; display:none; flex-direction:column; }
.drawer.is-open{ display:flex; }
.drawer__top{ height:64px; display:flex; align-items:center; justify-content:space-between; padding:0 18px; border-bottom:1px solid var(--line2); }
.drawer__top img{ height:30px; }
.drawer__close{ width:40px; height:40px; border-radius:9px; background:var(--line4); display:flex; align-items:center; justify-content:center; font-size:24px; color:var(--ink); border:0; }
.drawer__body{ flex:1; overflow:auto; padding:8px 0; }
.drawer__item{ display:flex; align-items:center; justify-content:space-between; padding:14px 22px; font-size:16px; font-weight:700; color:var(--ink); border-bottom:1px solid var(--line4); text-decoration:none; cursor:pointer; }
.drawer__item--sub{ font-size:16px; font-weight:600; color:var(--muted); }
.drawer__item .caret{ font-size:11px; color:var(--blue); }
.drawer__item.is-open .caret{ transform:rotate(180deg); }
.drawer__sub{ background:var(--soft); border-bottom:1px solid var(--line4); padding:6px 0; display:none; }
.drawer__sub.is-open{ display:block; }
.drawer__fam{ padding:12px 22px; }
.drawer__famhead{ display:flex; align-items:center; gap:9px; margin-bottom:8px; }
.drawer__famhead .fam-tag{ width:24px; height:24px; border-radius:7px; font-size:12px; }
.drawer__fam .lks{ display:flex; flex-direction:column; gap:8px; padding-left:33px; }
.drawer__fam .lks a{ text-decoration:none; color:var(--muted); font-size:14px; }
.drawer__sub > .lks{ display:flex; flex-direction:column; padding:6px 22px 12px; }
.drawer__sub > .lks a{ padding:9px 0; color:var(--muted); text-decoration:none; font-size:15px; }
.drawer__sub > .lks a:hover{ color:var(--blue); }
.drawer__util{ display:flex; flex-wrap:wrap; gap:14px 18px; padding:18px 22px; font-size:14px; font-weight:600; color:var(--muted); }
.drawer__util a{ color:inherit; text-decoration:none; }
.drawer__util a:hover{ color:var(--blue); }

.mbar{ display:none; position:fixed; bottom:0; left:0; right:0; z-index:40; background:#fff; border-top:1px solid var(--line2); padding:12px 16px env(safe-area-inset-bottom,12px); gap:10px; }
.mbar a.cta-q{ flex:1; text-decoration:none; background:var(--blue); color:#fff; font-weight:700; font-size:14.5px; padding:13px; border-radius:9px; text-align:center; }
.mbar .wa{ width:48px; height:48px; border-radius:11px; background:#25D366; opacity:.5; display:flex; align-items:center; justify-content:center; color:#fff; font-size:20px; }

/* ============== COURSE PAGE ============== */
.crumb{ background:var(--soft); border-bottom:1px solid var(--line2); }
.crumb .container-x{ padding:12px var(--pad); font-size:13px; color:var(--muted2); display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.crumb a{ color:var(--muted); text-decoration:none; }
.crumb .cur{ color:var(--nav); font-weight:600; }

/* ===== Bandeau d'en-tete des pages de contenu (FAQ, contact, blog, editorial) ===== */
.page-head{ background:linear-gradient(180deg,#eef6fd 0%,#fff 100%); border-bottom:1px solid rgba(15,27,45,.06); padding:42px 0 34px; }
.page-head .crumb-line{ display:flex; justify-content:center; gap:8px; align-items:center; flex-wrap:wrap; font-size:13px; color:var(--muted2); margin-bottom:12px; }
.page-head .crumb-line a{ color:var(--muted); text-decoration:none; }
.page-head .crumb-line a:hover{ color:var(--blue); }
.page-head h1{ text-align:center; font-size:2.3rem; line-height:1.18; color:var(--ink); font-weight:800; letter-spacing:-.02em; margin:0; }
.page-head h1::after{ content:""; display:block; width:62px; height:3px; border-radius:3px; background:var(--blue); margin:18px auto 0; }
.page-head p{ text-align:center; max-width:620px; margin:14px auto 0; color:var(--body); font-size:16px; line-height:1.6; }
/* pastille avis Google a droite du fil d'Ariane */
.page-head .container-x, .crumb .container-x{ position:relative; }
.crumb-google{ display:inline-flex; align-items:center; gap:8px; text-decoration:none; background:#fff; border:1px solid var(--line); border-radius:100px; padding:6px 14px; box-shadow:var(--sh-soft); font-size:13px; white-space:nowrap; }
.crumb-google .g-logo{ height:18px; width:auto; display:block; }
.crumb-google .stars{ color:#f5a623; letter-spacing:1px; }
.crumb-google b{ color:var(--ink); font-weight:800; }
.crumb-google .cnt{ color:var(--muted2); }
.crumb-google:hover{ border-color:var(--blue); }
.page-head .crumb-google, .crumb .crumb-google{ position:absolute; top:50%; right:var(--pad); transform:translateY(-50%); }
.page-head .crumb-google{ top:0; transform:none; }
@media (max-width:960px){
  .page-head .crumb-google, .crumb .crumb-google{ position:static; transform:none; margin:0 auto 14px; }
  .crumb .crumb-google{ margin:8px 0 0; }
}
.narrow{ max-width:880px; margin:0 auto; }
.faq-cat{ font-size:13px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--blue); margin:34px 0 14px; }
@media (max-width:767.98px){ .page-head{ padding:26px 0 22px; } .page-head h1{ font-size:1.7rem; } }

.chero{ background:linear-gradient(180deg,#F3F9FE,#fff); }
.chero__grid{ max-width:var(--maxw); margin:0 auto; padding:48px var(--pad) 56px; display:grid; grid-template-columns:1.15fr .85fr; gap:54px; align-items:center; }
.chero h1{ font-size:48px; font-weight:800; line-height:1.05; color:var(--ink); margin:0 0 16px; }
.chero__lead{ font-size:18px; line-height:1.6; color:var(--body); max-width:540px; margin:0 0 26px; }
.chips{ display:flex; gap:10px; flex-wrap:wrap; margin-bottom:28px; }
.chip{ display:flex; align-items:center; gap:8px; background:#fff; border:1px solid var(--line3); border-radius:9px; padding:9px 13px; }
.chip span.ic{ color:var(--blue); font-size:15px; }
.chip span.tx{ font-size:13.5px; font-weight:600; color:var(--ink); }

.subnav{ position:sticky; top:0; z-index:40; background:#fff; border-top:1px solid var(--line2); border-bottom:1px solid var(--line2); box-shadow:0 4px 14px rgba(15,27,45,.04); }
.subnav .container-x{ height:56px; display:flex; align-items:center; gap:30px; font-size:14px; font-weight:600; overflow-x:auto; }
.subnav a{ color:var(--muted); text-decoration:none; white-space:nowrap; height:56px; display:flex; align-items:center; }
.subnav a:hover{ color:var(--ink); }
.subnav a.active{ color:var(--blue); border-bottom:2px solid var(--blue); }
/* Fiche cours : la sous-nav devient une vraie barre d'onglets (ticket #14430).
   !important : l'emporte sur le soulignement du lien actif des couches peps. */
.subnav--tabs{ background:#F1F5FA; border-bottom:0; }
.subnav--tabs .container-x{ height:auto; align-items:flex-end; gap:6px; padding-top:12px; box-shadow:inset 0 -1px 0 var(--line2); scrollbar-width:thin; }
.subnav--tabs a{ height:auto; padding:12px 20px; border:1px solid var(--line2) !important; border-bottom:0 !important; border-radius:10px 10px 0 0; background:#E4EBF3 !important; color:var(--ink); cursor:pointer; transition:background-color .15s ease, color .15s ease; }
.subnav--tabs a:hover{ background:#fff !important; color:var(--blue); }
.subnav--tabs a.active{ position:relative; background:#fff !important; background-image:none !important; color:var(--blue) !important; box-shadow:inset 0 3px 0 var(--blue); }
.subnav--tabs a:focus-visible{ outline:2px solid var(--blue); outline-offset:-2px; }
.cblock[hidden]{ display:none !important; }
/* changement d'onglet : pas de recalage automatique du defilement par le navigateur */
.subnav--tabs ~ .clayout{ overflow-anchor:none; }
/* ancre suivie par le navigateur (sans JS) : la cible ne passe pas sous la barre collante */
.clayout [id]{ scroll-margin-top:80px; }
/* a l'impression, toutes les sections */
@media print{ .cblock[hidden]{ display:block !important; } .subnav--tabs{ display:none; } }

.clayout{ max-width:var(--maxw); margin:0 auto; padding:56px var(--pad) 30px; display:grid; grid-template-columns:1fr 372px; gap:56px; align-items:start; }
.cblock{ margin-bottom:48px; }
.cblock h2{ font-size:30px; font-weight:800; color:var(--ink); margin:0 0 16px; }
.cblock h4{ margin-top:30px; }
.cblock p{ font-size:16.5px; line-height:1.7; color:var(--body); margin:0 0 14px; }
.details{ border:1px solid var(--line); border-radius:14px; overflow:hidden; display:grid; grid-template-columns:1fr 1fr; }
.details > div{ padding:18px 22px; border-bottom:1px solid var(--line4); display:flex; justify-content:space-between; }
.details > div:nth-child(odd){ border-right:1px solid var(--line4); }
.details > div:nth-last-child(-n+2){ border-bottom:0; }
.details .k{ color:var(--muted); font-size:14.5px; }
.details .v{ font-weight:700; color:var(--ink); font-size:14.5px; }
.intensity{ display:flex; flex-direction:column; gap:10px; }
.irow{ display:flex; align-items:center; gap:18px; border:1px solid var(--line); border-radius:12px; padding:16px 20px; }
.irow:hover{ border-color:var(--blue); }
.irow .hrs{ font-weight:800; color:var(--ink); font-size:16px; width:80px; }
.irow .nm{ font-weight:600; color:var(--blue-d); font-size:14px; width:160px; }
.irow .ds{ color:var(--muted); font-size:14px; }
.whofor{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.whofor .it{ display:flex; gap:13px; }
.whofor .it .ic{ width:26px; height:26px; border-radius:7px; background:var(--blue-l); color:var(--blue); display:flex; align-items:center; justify-content:center; flex-shrink:0; font-size:14px; }
.whofor .it p{ margin:0; font-size:15px; line-height:1.55; color:var(--body); }
.creviews{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.creviews .tcard p{ font-size:15px; }
.creviews .tcard .by{ font-weight:700; color:var(--ink); font-size:13.5px; }

.quote{ position:sticky; top:80px; }
.quote__card{ background:#fff; border:1px solid var(--line3); border-radius:16px; box-shadow:0 18px 40px rgba(15,27,45,.1); overflow:hidden; }
.quote__head{ background:var(--ink); padding:22px 24px; }
.quote__head b{ font-size:18px; font-weight:800; color:#fff; display:block; margin-bottom:3px; }
.quote__head span{ font-size:13.5px; color:var(--muted3); }
.quote__body{ padding:22px 24px; display:flex; flex-direction:column; gap:14px; }
.field label{ font-size:12.5px; font-weight:600; color:var(--muted); display:block; margin-bottom:6px; }
.field .sel{ position:relative; }
.field select{ width:100%; height:44px; border:1px solid var(--line3); border-radius:9px; padding:0 36px 0 12px; font-family:inherit; font-size:14px; color:var(--ink); background:#fff; appearance:none; }
.field .sel::after{ content:"▾"; position:absolute; right:14px; top:50%; transform:translateY(-50%); color:var(--muted2); font-size:11px; pointer-events:none; }
.quote__note{ text-align:center; font-size:12.5px; color:var(--muted2); }
.quote__call{ display:flex; align-items:center; gap:10px; justify-content:center; margin-top:16px; font-size:13px; color:var(--muted); }
.quote__call a{ color:var(--blue); font-weight:700; text-decoration:none; }

.cband{ background:linear-gradient(110deg,#1890D8,#1276b3); border-radius:16px; padding:44px 48px; display:flex; align-items:center; justify-content:space-between; gap:36px; }
.cband h3{ font-size:30px; font-weight:800; color:#fff; margin:0 0 7px; }
.cband p{ font-size:16px; color:#dbeefb; margin:0; }
.cband .line{ border:1px solid rgba(255,255,255,.6); color:#fff; padding:14px 24px; border-radius:9px; font-weight:700; font-size:15px; text-decoration:none; white-space:nowrap; }
.cband .line:hover{ background:rgba(255,255,255,.12); }

/* ============== RESPONSIVE ============== */
@media (max-width:1100px){
  .mega__grid{ grid-template-columns:repeat(2,1fr); }
  .mega__promo{ grid-column:1 / -1; }
}
@media (max-width:991px){
  :root{ --pad:24px; }
  .nav, .cluster .btn-contact, .cluster .ghost, .cluster .sep, .cluster .lang, .util-links{ display:none; }
  .burger{ display:flex; }
  .cluster{ gap:10px; }
  .mega{ display:none !important; }
  .nhero__grid{ grid-template-columns:1fr; gap:28px; padding-top:40px; }
  .nhero h1{ font-size:40px; }
  .nhero__badge{ right:8px; }
  .statbar{ grid-template-columns:1fr 1fr; gap:18px; padding:22px; }
  .statbar > div + div{ border-left:0; padding-left:0; }
  .statbar > div:nth-child(n+3){ border-top:1px solid rgba(255,255,255,.12); padding-top:14px; }
  .intro{ padding:56px 24px 8px; }
  .intro h2, .sec-head h2, .sec-head--lg h2{ font-size:28px; }
  .grid-3, .grid-4{ grid-template-columns:1fr 1fr; }
  .row-head h2{ font-size:26px; }
  .band, .cband, .brochure, .ncta__acts{ flex-direction:column; align-items:flex-start; }
  .band, .cband{ padding:28px 24px; }
  /* mobile : photo en haut, fondu vertical vers le bas, texte remonte sous le fondu */
  .band--photo{ position:relative; display:block; padding:0; }
  .band--photo .band__photo{ position:relative; top:auto; left:auto; bottom:auto; width:100%; height:210px; margin-bottom:-42px; }
  .band--photo .band__photo img{ width:100%; height:100%; object-fit:cover;
    -webkit-mask-image:linear-gradient(180deg,#000 52%,transparent 100%);
    mask-image:linear-gradient(180deg,#000 52%,transparent 100%); }
  .band--photo .band__text{ position:relative; z-index:1; padding:0 24px; }
  .band--photo .btn-x{ position:relative; z-index:1; margin:8px 24px 24px; }
  .ncta{ padding:40px 24px; }
  .ncta h2{ font-size:30px; }
  .nfooter__grid{ grid-template-columns:1fr 1fr; gap:28px; }
  .clayout{ grid-template-columns:1fr; gap:32px; }
  .quote{ position:static; }
  .chero__grid{ grid-template-columns:1fr; gap:26px; padding:36px 24px; }
  .chero h1{ font-size:34px; }
  .details, .whofor, .creviews{ grid-template-columns:1fr; }
  .details > div:nth-child(odd){ border-right:0; }
  .util-links{ display:none; }
  .util-cta{ display:inline-flex; align-items:center; }
  .mbar{ display:none; }
}
@media (max-width:560px){
  .grid-3, .grid-4, .nfooter__grid{ grid-template-columns:1fr; }
  /* home-why mobile : identique au desktop, seule l'icone passe en float left (#14329) */
  .why{ overflow:hidden; }
  .why .why-ic{ float:left; margin:0 14px 8px 0; }
  .why .why-line{ display:none; }
  .statbar{ grid-template-columns:1fr 1fr; }
  .nhero h1{ font-size:32px; }
  .sec{ padding:40px 24px; }
  .nfooter__bottom .container-x{ flex-direction:column; gap:12px; }
  .irow{ flex-direction:column; align-items:flex-start; gap:6px; }
  .irow .hrs, .irow .nm{ width:auto; }
}
/* ---- Tres petits ecrans (iPhone SE ~375px) : la top bar doit rester
   propre sur une seule ligne. Le numero ne doit pas passer sur 2 lignes,
   et on compacte les boutons "Free trial" / "Get a quote" pour qu'ils
   tiennent avec le logo et le menu burger. ---- */
@media (max-width:400px){
  .util .container-x{ gap:10px; }
  .util .phone{ white-space:nowrap; font-size:12px; gap:5px; }
  .util-social{ gap:6px; margin-left:8px; }
  .util-social a{ width:22px; height:22px; }
  .util-social a svg{ width:20px; height:20px; }
  .util-cta{ padding:5px 12px; font-size:12px; }
  .mainbar .container-x{ gap:8px; }
  .brand img{ height:36px; }
  .cluster{ gap:8px; }
  .btn-trial{ padding:8px 12px; font-size:12.5px; box-shadow:0 4px 10px rgba(24,144,216,.22); }
  .btn-trial .tag-uk{ font-size:9px; padding:2px 4px; }
  .burger{ width:38px; height:38px; }
}

/* ================= PAGE EDITORIALE (page.php) ================= */
.edito-grid{ display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:56px; align-items:start; padding-top:38px; padding-bottom:8px; }
.edito-main{ min-width:0; }
.edito-side{ position:sticky; top:24px; display:flex; flex-direction:column; gap:18px; }
.page-blocks{ padding:0; }
.pb-inner{ max-width:100%; }
.page-blocks__inner{ max-width:840px; margin:0 auto; }
.editorial-page > .page-blocks:first-of-type{ padding-top:34px; }
.website_page_editor{ margin-top:0 !important; }
.website_page_editor .page-blocks .panel{ background:transparent; border:0; border-radius:0; box-shadow:none; margin-bottom:0; overflow:visible; }
.website_page_editor .page-blocks .panel-body{ padding:0; }
.website_page_editor .page-blocks .row-eq-height{ row-gap:0; }
.edito-main .page-blocks + .page-blocks{ margin-top:30px; padding-top:30px; }
.aMedia{ margin-bottom:20px; }
.website_page_editor div[class^="col"]{ margin-bottom:40px; }
/* Page Directions : mise en page structuree (regions / quartiers / trajets) */
.dir-map{ margin:16px 0 26px; }
.dir-map iframe{ display:block; width:100%; border:0; border-radius:14px; }
.website_page_editor .page-blocks .dir-intro{ font-size:1.04rem; color:#41546a; margin:0 0 6px; }
.website_page_editor .page-blocks h2.dir-region{ font-size:1.5rem; font-weight:800; color:var(--ink); letter-spacing:-.01em; margin:40px 0 12px; padding:0 0 8px; border-bottom:2px solid var(--blue); display:block; }
.website_page_editor .page-blocks h2.dir-region::before{ content:none; }
.website_page_editor .page-blocks h3.dir-from{ font-size:1.1rem; font-weight:700; color:var(--blue-d); margin:22px 0 6px; padding-left:0; }
.website_page_editor .page-blocks h3.dir-from::before{ content:"\1F4CD"; margin-right:8px; }
.website_page_editor .page-blocks h2.dir-region + h3.dir-from{ margin-top:14px; }
.website_page_editor .page-blocks .dir-from + p{ margin-top:0; }
.website_page_editor .page-blocks h2, .website_page_editor .page-blocks h2.title{ position:relative; color:var(--ink); font-size:1.55rem; line-height:1.3; margin:0 0 14px; font-weight:800; letter-spacing:-.01em; padding-left:16px; }
.website_page_editor .page-blocks h2::before, .website_page_editor .page-blocks h2.title::before{ content:""; position:absolute; left:0; top:.18em; bottom:.18em; width:4px; border-radius:3px; background:var(--blue); }
.website_page_editor .page-blocks h3{ color:var(--ink); font-size:1.2rem; margin:26px 0 10px; font-weight:700; }
.website_page_editor .page-blocks p, .website_page_editor .page-blocks li{ font-size:1.04rem; line-height:1.8; color:#41546a; }
.website_page_editor .page-blocks p{ margin:0 0 1em; }
.website_page_editor .page-blocks p:last-child{ margin-bottom:0; }
/* separation nette entre blocs (chaque bloc = une section de contenu) : espacement en BAS pour ne pas decaler les colonnes d'une meme ligne */
.website_page_editor .page-blocks [id^="webpage_block_"]:has(+ [id^="webpage_block_"]){ margin-bottom:34px; padding-bottom:34px; }
.website_page_editor .page-blocks ul{ list-style:none; padding-left:0; margin:0 0 1em; }
.website_page_editor .page-blocks ul li{ position:relative; padding-left:26px; margin-bottom:9px; }
.website_page_editor .page-blocks ul li::before{ content:"\25B8"; position:absolute; left:3px; top:0; color:var(--blue); font-size:14px; line-height:1.9; }
.website_page_editor .page-blocks ol{ padding-left:1.2rem; margin:0 0 1em; }
.website_page_editor .page-blocks ol li{ margin-bottom:9px; padding-left:4px; }
.website_page_editor .page-blocks ol li::marker{ color:var(--blue); font-weight:700; }
.website_page_editor .page-blocks a{ color:var(--blue); font-weight:600; }
.website_page_editor .page-blocks a:hover{ text-decoration:underline; }
.website_page_editor .page-blocks img{ border-radius:16px; max-width:100%; height:auto; box-shadow:0 22px 48px -28px rgba(15,27,45,.45); }
.website_page_editor .page-blocks hr{ border:0; border-top:1px solid var(--line); margin:32px 0; }
.website_page_editor .page-blocks .website_page_editor_summary{ background:var(--soft); border:1px solid var(--line); border-radius:14px; padding:10px 18px; }
.edito-faq-h{ font-size:1.55rem; font-weight:800; color:var(--ink); letter-spacing:-.02em; margin:6px 0 18px; }
/* sommaire lateral */
.toc-card{ background:#fff; border:1px solid var(--line); border-radius:14px; padding:16px 18px; box-shadow:var(--sh-soft); }
.toc-card__h{ font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); margin-bottom:10px; }
.toc{ display:flex; flex-direction:column; gap:2px; }
.toc a{ display:block; font-size:13.5px; line-height:1.4; color:var(--muted); text-decoration:none; padding:6px 10px; border-left:2px solid var(--line); border-radius:0 7px 7px 0; }
.toc a:hover{ color:var(--blue); background:var(--blue-l); }
.toc a.lvl3{ padding-left:22px; font-size:13px; }
.toc a.active{ color:var(--blue-d); border-left-color:var(--blue); background:var(--blue-l); font-weight:600; }
/* carte contact laterale */
.side-cta{ background:var(--ink); color:#fff; border-radius:14px; padding:20px; display:flex; flex-direction:column; gap:10px; }
.side-cta__h{ font-weight:800; font-size:17px; }
.side-cta p{ font-size:13.5px; color:var(--muted3); margin:0 0 4px; line-height:1.5; }
/* bandeau de fin */
.edito-cta{ padding:22px 0 66px; }
.edito-cta__box{ background:linear-gradient(120deg,var(--blue) 0%,var(--blue-d) 100%); border-radius:20px; padding:38px 44px; display:flex; align-items:center; justify-content:space-between; gap:28px; flex-wrap:wrap; box-shadow:0 22px 44px rgba(24,144,216,.28); }
.edito-cta__box h2{ color:#fff; font-size:26px; font-weight:800; letter-spacing:-.02em; margin:0 0 6px; }
.edito-cta__box p{ color:rgba(255,255,255,.85); margin:0; font-size:15px; max-width:560px; }
.edito-cta__acts{ display:flex; gap:12px; flex-wrap:wrap; }
.btn-outline-white{ background:transparent; border:1.5px solid rgba(255,255,255,.6); color:#fff; padding:14px 24px; font-size:15px; }
.btn-outline-white:hover{ background:#fff; color:var(--blue-d); }
@media (max-width:991px){
  .edito-grid{ grid-template-columns:1fr; gap:0; }
  .edito-side{ position:static; margin-top:34px; }
  .toc-card{ display:none; }
}
@media (max-width:767.98px){
  .edito-cta__box{ padding:26px 24px; } .edito-cta__box h2{ font-size:22px; }
}

/* ================= FORMULAIRE DE DEVIS (quote_form) ================= */
.quote-form .qf-grid{ display:grid; grid-template-columns:1fr 1fr; gap:13px 14px; }
.quote-form .qf-full{ grid-column:1 / -1; }
.quote-form .field{ display:flex; flex-direction:column; }
.quote-form .field label{ font-size:12px; font-weight:600; color:var(--muted); margin-bottom:5px; }
.quote-form .field input, .quote-form .field .sel select{ width:100%; border:1px solid var(--line3); border-radius:9px; padding:11px 12px; font-family:inherit; font-size:14px; color:var(--ink); background:#fff; }
.quote-form .field .sel{ position:relative; }
.quote-form .field .sel select{ -webkit-appearance:none; appearance:none; padding-right:30px; cursor:pointer; }
.quote-form .field .sel::after{ content:"\25BE"; position:absolute; right:12px; top:50%; transform:translateY(-50%); color:var(--muted2); font-size:11px; pointer-events:none; }
.quote-form .field input:focus, .quote-form .field select:focus{ outline:2px solid var(--blue); border-color:var(--blue); }
.quote-form .qf-submit{ width:100%; margin-top:15px; }
.quote-form .qf-note{ font-size:11.5px; color:var(--muted2); text-align:center; margin-top:9px; }
.quote-msg{ margin-top:10px; font-size:13px; }
.quote-msg.is-error{ color:#a23a26; background:#fdecea; border:1px solid #f5c6cb; border-radius:8px; padding:8px 11px; }
.quote-thanks{ text-align:center; padding:24px 10px; font-size:15px; color:var(--ink); line-height:1.6; }
.quote-side .qf-grid{ grid-template-columns:1fr; gap:10px; }
.quote-side .qf-full{ grid-column:auto; }
.quote-page-sec{ padding-top:8px; padding-bottom:72px; }
.quote-page-card{ max-width:760px; margin:0 auto; background:#fff; border:1px solid var(--line); border-radius:18px; box-shadow:var(--sh-card); padding:34px 36px; }
.quote-page-head{ text-align:center; margin-bottom:24px; }
.quote-page-head h2{ font-size:26px; font-weight:800; color:var(--ink); letter-spacing:-.02em; margin:0 0 6px; }
.quote-page-head p{ color:var(--muted); margin:0; font-size:15px; }
@media (max-width:560px){ .quote-form .qf-grid{ grid-template-columns:1fr; } .quote-page-card{ padding:24px 20px; } }

/* ===== Home dynamique (blocs admin, ?home=static pour comparer) ===== */
.home-dyn .btn{ display:inline-flex; align-items:center; gap:7px; text-decoration:none; font-weight:700; border-radius:9px; border:1px solid transparent; cursor:pointer; transition:.18s; line-height:1; margin:6px 0; }
.home-dyn .btn + .btn{ margin-left:14px; }
.home-dyn .btn-primary{ background:var(--blue); color:#fff; padding:15px 26px; font-size:15px; box-shadow:0 8px 18px rgba(24,144,216,.3); }
.home-dyn .btn-primary:hover{ background:var(--blue-d); color:#fff; }
.home-dyn .btn-outline-secondary{ background:#fff; border:1px solid var(--line5); color:var(--ink); padding:14px 24px; font-size:15px; }
.home-dyn .btn-outline-secondary:hover{ border-color:var(--blue); }
.home-dyn .home-seo-sec .home-seo-block{ max-width:820px; margin:0 auto 34px; }
.home-dyn .home-seo-sec .home-seo-block h2{ font-size:26px; color:var(--ink); margin:0 0 12px; letter-spacing:-.01em; }
.home-dyn .home-seo-sec .home-seo-block p{ color:var(--body); line-height:1.7; margin:0 0 12px; }
.home-dyn .home-seo-sec .home-seo-block ul{ color:var(--body); line-height:1.7; padding-left:20px; }

/* Filet separateur entre blocs editoriaux sur les pages categories (comme les pages standard) : espacement en BAS */
.cat-rich .website_page_editor [id^="webpage_block_"]:has(+ [id^="webpage_block_"]){ margin-bottom:34px; padding-bottom:34px; border-bottom:1px solid var(--line5); }
.cat-rich .website_page_editor hr{ border:0; border-top:1px solid var(--line); margin:32px 0; }

/* ===== Icones sociales (footer + header) ===== */
.soc{ display:flex; gap:10px; flex-wrap:wrap; margin-top:14px; }
.soc a{ width:36px; height:36px; display:inline-flex; align-items:center; justify-content:center; border-radius:9px; background:rgba(255,255,255,.08); color:#fff; transition:.18s; }
.soc a:hover{ background:var(--blue); }
.soc a svg{ width:18px; height:18px; fill:currentColor; display:block; }
.util-social{ display:inline-flex; align-items:center; gap:10px; margin-left:14px; }
.util-social a{ width:28px; height:28px; display:inline-flex; align-items:center; justify-content:center; border-radius:6px; transition:transform .18s, opacity .18s; }
.util-social a:hover{ transform:translateY(-1px) scale(1.08); opacity:.9; }
.util-social a svg{ width:24px; height:24px; display:block; }

/* ===== Accreditations footer (logos images) ===== */
.nfooter__accred .accred-logos{ display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:6px; }
.nfooter__accred .accred-logos a{ display:block; background:#fff; border-radius:8px; padding:6px; }
.nfooter__accred .accred-logos img{ display:block; width:100%; height:auto; object-fit:contain; }

/* ===== Carrousel blog home (swipe + points) ===== */
.blog-swipe-wrap{ position:relative; }
.blog-swipe{ display:grid; grid-auto-flow:column; grid-auto-columns:calc((100% - 48px)/3); gap:24px; overflow-x:auto; scroll-snap-type:x proximity; scroll-behavior:smooth; -ms-overflow-style:none; scrollbar-width:none; padding-bottom:4px; }
.blog-swipe::-webkit-scrollbar{ display:none; }
.blog-swipe > .mcard, .blog-swipe > .tcard{ scroll-snap-align:start; }
.blog-swipe > .tcard{ height:auto; }
.blog-dots{ display:flex; justify-content:center; gap:8px; margin-top:26px; }
.blog-dot{ width:8px; height:8px; border-radius:100px; background:var(--line5,#d7e0ea); border:0; padding:0; cursor:pointer; transition:.2s; }
.blog-dot.is-active{ width:24px; background:var(--blue); }
@media (max-width:900px){ .blog-swipe{ grid-auto-columns:calc((100% - 24px)/2); } }
@media (max-width:600px){ .blog-swipe{ grid-auto-columns:88%; } }
/* Fleches gauche/droite du carrousel (temoignages + blog) */
.blog-arrow{ position:absolute; z-index:4; width:44px; height:44px; border-radius:50%; border:1px solid var(--line5,#d7e0ea); background:#fff; color:var(--ink,#0f172a); box-shadow:0 4px 14px rgba(0,0,0,.12); cursor:pointer; display:flex; align-items:center; justify-content:center; transform:translateY(-50%); transition:opacity .15s ease, background .15s ease; }
.blog-arrow:hover{ background:#f1f5f9; }
.blog-arrow svg{ width:18px; height:18px; display:block; }
.blog-arrow--prev{ left:-10px; }
.blog-arrow--next{ right:-10px; }
.blog-arrow[disabled]{ opacity:0; pointer-events:none; }
@media (max-width:600px){ .blog-arrow{ display:none; } }

/* ===== Tuiles activites (image de fond + lien) ===== */
a.tile{ display:block; position:relative; min-height:220px; border-radius:16px; overflow:hidden; background:#123 center/cover no-repeat; text-decoration:none; }
a.tile .cap{ position:absolute; left:0; right:0; bottom:0; padding:18px; color:#fff; }
a.tile .cap b{ display:block; font-size:18px; margin-bottom:4px; }
a.tile .cap span{ font-size:13.5px; opacity:.9; }

/* Formulaire de contact : espace au-dessus (ticket design) */
#contact_form_layout{ margin-top:30px; }

/* ===== Hero video home (reprise ancien site) — proportions + google review facon accessenglish ===== */
.vhero{ position:relative; margin:18px 16px 0; height:calc(100vh - 220px); max-height:595px; min-height:340px; border-radius:16px; overflow:hidden; background:#0b1320; }
@media (min-width:1400px){ .vhero{ margin:22px 60px 0; } }
.vhero__bg{ position:absolute; inset:0; z-index:0; }
.vhero__bg video{ width:100%; height:100%; object-fit:cover; display:block; }
.vhero .google-review{ position:absolute; top:14px; right:14px; z-index:2; }
.google-review{ display:flex; align-items:center; padding:14px 16px; background:#fff; border:1px solid #4285f4; border-radius:12px; box-shadow:0 2px 8px rgba(0,0,0,.12); line-height:1.2; }
.google-review img{ height:44px; margin-right:14px; }
.google-review__stars{ color:#fbbc04; font-size:1.15em; vertical-align:middle; letter-spacing:1px; }
.google-review__rate{ font-weight:800; color:var(--ink); vertical-align:middle; margin-left:2px; }
.google-review__count{ font-size:.9em; color:#5d5d5d; margin-top:2px; }
@media (max-width:900px){ .vhero{ margin:0; border-radius:0; height:58vw; min-height:220px; max-height:520px; } }
@media (max-width:600px){ .vhero .google-review{ transform:scale(.82); transform-origin:top right; } }
