/* ==========================================================================
   FUMILEX — Design System
   Bleu marine / Gris anthracite / Terracotta
   Mobile-first, cohérent avec l'identité de l'application DiagExpert.
   ========================================================================== */

:root{
  --navy:        #21345a;
  --navy-dark:   #14213a;
  --navy-light:  #4670a0;
  --anthracite:  #2d333d;
  --anthracite-light: #4a5568;
  --terra:       #822a2d;  /* rouge officiel Fumilex (logo fourni) */
  --terra-light: #b63536;  /* rouge clair (dégradé icône) */
  --terra-dark:  #551b1d;
  --ivory:       #fbf9f3;
  --paper:       #f5f3ee;
  --cloud:       #eef1f6;
  --line:        #e2e6ee;
  --tx:          #1a2233;
  --tx-soft:     #4d5a70;
  --tx-mute:     #7c879c;
  --white:       #ffffff;
  --radius-sm:   6px;
  --radius:      10px;
  --radius-lg:   18px;
  --shadow:      0 10px 30px -12px rgba(20,33,58,.18);
  --shadow-lg:   0 24px 60px -20px rgba(20,33,58,.28);
  --container:   1180px;
  --font: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
[id]{ scroll-margin-top:96px; }
body{
  margin:0;
  font-family:var(--font);
  color:var(--tx);
  background:var(--white);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ margin:0; padding:0; list-style:none; }
button{ font-family:inherit; cursor:pointer; }
h1,h2,h3,h4{ font-family:var(--font); font-weight:800; line-height:1.15; letter-spacing:-0.02em; color:var(--navy); margin:0 0 16px; }
p{ margin:0 0 16px; color:var(--tx-soft); }
.container{ max-width:var(--container); margin:0 auto; padding:0 24px; }
.section{ padding:88px 0; }
.section--tight{ padding:56px 0; }
.section--navy{ background:var(--navy); color:var(--white); }
.section--navy p{ color:#c8d2e4; }
.section--navy h2, .section--navy h3{ color:var(--white); }
.section--paper{ background:var(--paper); }
.eyebrow{
  display:inline-flex; align-items:center; gap:8px;
  background:var(--terra); color:#fff; font-weight:700; font-size:12.5px;
  letter-spacing:.06em; text-transform:uppercase; padding:8px 16px;
  border-radius:999px; margin-bottom:20px;
}
.section-head{ max-width:720px; margin:0 auto 48px; text-align:center; }
.section-head h2{ font-size:clamp(28px,4vw,40px); }
.rule{ width:64px; height:4px; background:var(--terra); border-radius:2px; margin:14px auto 0; }
.section-head--left{ text-align:left; margin:0 0 40px; }
.section-head--left .rule{ margin:14px 0 0; }

/* ---------- Boutons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:15px 28px; border-radius:8px; font-weight:700; font-size:15px;
  border:2px solid transparent; transition:transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease;
  min-height:44px; white-space:nowrap;
}
.btn:hover{ transform:translateY(-2px); }
.btn:disabled{ opacity:.6; cursor:not-allowed; transform:none; }
.btn:focus-visible{ outline:3px solid var(--navy-light); outline-offset:2px; }
a:focus-visible, button:focus-visible, .nav-toggle:focus-visible{
  outline:3px solid var(--navy-light); outline-offset:2px; border-radius:4px;
}
.field input:focus-visible, .field select:focus-visible, .field textarea:focus-visible{ outline:none; }
.btn-terra{ background:var(--terra); color:#fff; box-shadow:0 10px 24px -8px rgba(130,42,45,.55); }
.btn-terra:hover{ background:var(--terra-light); }
.btn-outline{ background:transparent; border-color:rgba(255,255,255,.55); color:#fff; }
.btn-outline:hover{ background:rgba(255,255,255,.1); border-color:#fff; }
.btn-navy{ background:var(--navy); color:#fff; }
.btn-navy:hover{ background:var(--navy-light); }
.btn-ghost{ background:transparent; border-color:var(--line); color:var(--navy); }
.btn-ghost:hover{ border-color:var(--terra); color:var(--terra); }
.hero .btn-ghost, .page-hero .btn-ghost{ border-color:rgba(255,255,255,.55); color:#fff; }
.hero .btn-ghost:hover, .page-hero .btn-ghost:hover{ border-color:#fff; background:rgba(255,255,255,.08); color:#fff; }
.btn-block{ width:100%; }
.btn-lg{ padding:17px 32px; font-size:16px; }

/* ---------- Header ---------- */
.site-header{
  position:sticky; top:0; z-index:500;
  background:var(--navy); border-bottom:1px solid rgba(255,255,255,.08);
}
.site-header .container{ display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:20px; height:82px; }
.brand{ display:flex; align-items:center; gap:12px; color:#fff; grid-column:1; }
.brand svg{ flex-shrink:0; }
.brand-mark{ height:42px; width:auto; flex-shrink:0; }
.brand-mark--sm{ height:32px; }
@media(max-width:420px){ .brand-mark{ height:32px; } }
.brand-text{ display:flex; flex-direction:column; line-height:1.15; }
.brand-text strong{ font-size:21px; font-weight:800; letter-spacing:.01em; }
.brand-text span{ font-size:10.5px; letter-spacing:.16em; color:var(--terra-light); font-weight:700; text-transform:uppercase; }
.main-nav{ display:none; grid-column:2; justify-self:center; }
.main-nav ul{ display:flex; align-items:center; justify-content:center; gap:10px; flex-wrap:nowrap; }
.main-nav a{
  color:#dbe3f2; font-weight:600; font-size:12px; letter-spacing:.01em; white-space:nowrap;
  padding:8px 0; border-bottom:2px solid transparent; transition:color .15s, border-color .15s;
}
.main-nav a:hover, .main-nav a.is-active{ color:#fff; border-color:var(--terra); }
.header-cta{
  display:inline-flex; align-items:center; justify-content:center; text-align:center;
  white-space:normal; line-height:1.1; width:104px; height:56px;
  padding:6px 5px; font-size:9px;
}
.nav-toggle{
  display:flex; align-items:center; justify-content:center;
  width:44px; height:44px; border-radius:8px; border:1px solid rgba(255,255,255,.2);
  background:transparent; color:#fff; grid-column:3; justify-self:end;
}
.mobile-nav{
  display:none; flex-direction:column; background:var(--navy-dark);
  border-top:1px solid rgba(255,255,255,.08);
  max-height:calc(100vh - 83px);
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
}
.mobile-nav.is-open{ display:flex; }
body.nav-open{ overflow:hidden; }
.mobile-nav a{ color:#e7ecf6; font-weight:600; padding:16px 24px; border-bottom:1px solid rgba(255,255,255,.06); font-size:15px; }
.mobile-nav .btn{ margin:16px 24px; }

@media(min-width:900px){
  .main-nav{ display:block; }
  .nav-toggle{ display:none; }
}

/* ---------- Hero ---------- */
.hero{
  position:relative; overflow:hidden;
  background:linear-gradient(rgba(20,33,58,.82), rgba(33,52,90,.88)), url('../images/photos/photo-toiture-solaire-pac-cheminee.jpg') center/cover no-repeat;
  padding:56px 0 64px;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.hero .container{ position:relative; z-index:2; max-width:1120px; }
.hero-title-row{ max-width:none; margin-bottom:24px; }
.hero-grid{ display:grid; gap:32px; grid-template-columns:1fr; align-items:start; }
.hero h1{ color:#fff; font-size:clamp(28px,3.6vw,44px); line-height:1.15; margin-bottom:14px; }
.hero .lead{ color:#dbe3f2; font-size:16px; max-width:620px; margin-bottom:26px; }
.hero-actions{ display:flex; flex-wrap:wrap; gap:14px; }
.hero-actions .btn{ border-radius:999px; width:270px; white-space:normal; text-align:center; line-height:1.25; }
.hero-bg-shape{ display:none; }
.hero-video-card{
  position:relative; border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-lg);
  border:1px solid rgba(255,255,255,.15); aspect-ratio:16/9; max-width:420px; width:100%; margin:0;
}
.hero-video-card video{ width:100%; height:100%; object-fit:cover; display:block; }
.hero-video-badge{
  position:absolute; top:14px; left:14px; background:rgba(20,33,58,.75); color:#fff; font-size:11.5px;
  font-weight:700; letter-spacing:.04em; text-transform:uppercase; padding:6px 12px; border-radius:999px;
  display:flex; align-items:center; gap:6px; backdrop-filter:blur(4px);
}
.hero-video-badge::before{ content:""; width:7px; height:7px; border-radius:50%; background:#e14b4e; display:inline-block; }
@media(min-width:960px){
  .hero-grid{ grid-template-columns:1.15fr .85fr; }
}

/* ---------- Trust bar ---------- */
.trust-bar{ background:var(--ivory); border-bottom:1px solid var(--line); }
.trust-bar .container{
  display:flex; flex-wrap:wrap; gap:18px 36px; justify-content:center;
  padding:22px 24px; font-size:13.5px; font-weight:700; color:var(--anthracite); letter-spacing:.02em;
}
.trust-bar .container span{ display:flex; align-items:center; gap:8px; }
.trust-bar svg{ color:var(--terra); flex-shrink:0; }

/* ---------- Présentation / EEAT ---------- */
.split{
  display:grid; gap:48px; align-items:center;
}
.split-media img{ border-radius:var(--radius-lg); box-shadow:var(--shadow-lg); width:100%; aspect-ratio:4/3.4; object-fit:cover; }
.split ul{ display:flex; flex-direction:column; gap:22px; margin-top:26px; }
.split li{ display:flex; gap:16px; align-items:flex-start; }
.icon-badge{
  flex-shrink:0; width:42px; height:42px; border-radius:10px;
  background:rgba(130,42,45,.1); color:var(--terra);
  display:flex; align-items:center; justify-content:center;
}
.tool-thumb{ flex-shrink:0; width:42px; height:42px; border-radius:10px; overflow:hidden; background:#fff; border:1px solid var(--line); }
.tool-thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.split li strong{ color:var(--navy); display:block; margin-bottom:2px; }
.split li p{ margin:0; font-size:15px; }

.eeat-card{
  background:var(--navy); color:#fff; border-radius:var(--radius-lg);
  padding:36px; margin-top:32px; box-shadow:var(--shadow-lg);
  border-left:4px solid var(--terra);
}
.eeat-card p{ color:#dbe3f2; font-size:15.5px; margin-bottom:0; }
.eeat-card strong{ color:#fff; }
.eeat-stats{ display:flex; gap:32px; flex-wrap:wrap; margin-top:24px; }
.eeat-stats div{ display:flex; flex-direction:column; align-items:center; text-align:center; flex:1; min-width:140px; }
.eeat-stats b{ font-size:30px; color:var(--terra-light); font-weight:800; }
.eeat-stats span{ font-size:12.5px; color:#a9b6cf; text-transform:uppercase; letter-spacing:.06em; font-weight:700; }

/* ---------- Cards domaines / process ---------- */
.grid-3{ display:grid; gap:28px; grid-template-columns:1fr; }
.card{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg);
  overflow:hidden; box-shadow:var(--shadow); transition:transform .25s ease, box-shadow .25s ease;
}
.card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-lg); }
.card img{ width:100%; aspect-ratio:16/11; object-fit:cover; }
.card-body{ padding:26px 24px 30px; }
.card-body h3{ font-size:20px; margin-bottom:10px; color:var(--terra-dark); }
.card-body p{ font-size:14.5px; margin-bottom:0; }

/* ---------- Expertises pédagogiques ---------- */
.expertise-grid{ display:grid; gap:22px; grid-template-columns:1fr; }
.expertise-item{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius);
  padding:26px; display:flex; gap:18px;
}
.expertise-item .icon-badge{ width:48px; height:48px; border-radius:12px; }
.expertise-item h4{ font-size:17px; margin-bottom:8px; }
.expertise-item p{ font-size:14.5px; margin:0; }

/* ---------- Conformité 48h ---------- */
.steps{ display:flex; flex-direction:column; gap:22px; margin:28px 0 34px; }
.step{ display:flex; gap:18px; align-items:flex-start; }
.step-num{
  flex-shrink:0; width:40px; height:40px; border-radius:10px; background:var(--terra);
  color:#fff; font-weight:800; display:flex; align-items:center; justify-content:center; font-size:16px;
}
.step h4{ font-size:16px; margin-bottom:4px; color:var(--navy); }
.step p{ font-size:14.5px; margin:0; }

/* ---------- App diagexpert teaser ---------- */
.app-teaser{ display:grid; gap:20px; grid-template-columns:1fr; margin-top:36px; }
.app-mode-card{
  background:var(--white); border:1.5px solid var(--line);
  border-radius:var(--radius-lg); padding:30px; box-shadow:var(--shadow);
}
.app-mode-card h3{ color:var(--navy); font-size:19px; margin-bottom:10px; display:flex; align-items:center; gap:10px; }
.app-mode-card p{ color:var(--tx-soft); font-size:14.5px; }
.badge-pill{
  display:inline-block; font-size:11px; font-weight:800; letter-spacing:.05em;
  text-transform:uppercase; padding:4px 10px; border-radius:999px; margin-left:auto;
}
.badge-pill--free{ background:rgba(34,197,94,.18); color:#34d471; }
.badge-pill--pro{ background:rgba(182,53,54,.22); color:#f0906c; }
.app-price{ font-size:26px; font-weight:800; color:var(--navy); margin:14px 0 2px; line-height:1.2; }
.app-price small{ font-size:14px; font-weight:600; color:var(--tx-mute); }
.app-features{ margin:14px 0 20px; display:flex; flex-direction:column; gap:9px; list-style:none; padding:0; }
.app-features li{ font-size:13.5px; color:var(--tx-soft); line-height:1.4; }
.app-why{ margin-top:56px; padding-top:44px; border-top:1px solid var(--line); display:grid; gap:36px; grid-template-columns:1fr; }
.app-why h3{ color:var(--navy); font-size:19px; margin-bottom:12px; }
.app-why p{ color:var(--tx-soft); font-size:14.5px; }
@media(min-width:860px){ .app-why{ grid-template-columns:1fr 1fr; } }

/* ---------- Formulaires ---------- */
.form-card{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg);
  padding:32px; box-shadow:var(--shadow-lg);
}
.form-row{ display:grid; gap:16px; grid-template-columns:1fr; margin-bottom:16px; }
.field label{ display:block; font-size:13px; font-weight:700; color:var(--navy); margin-bottom:7px; }
.field input, .field select, .field textarea{
  width:100%; padding:13px 14px; border:1.5px solid var(--line); border-radius:8px;
  font-size:14.5px; font-family:inherit; color:var(--tx); background:#fbfbfc; min-height:46px;
  transition:border-color .15s, box-shadow .15s;
}
.field textarea{ min-height:120px; resize:vertical; }
.field input:focus, .field select:focus, .field textarea:focus{
  outline:none; border-color:var(--terra); box-shadow:0 0 0 3px rgba(130,42,45,.12); background:#fff;
}
.field-required::after{ content:' *'; color:var(--terra); }
.upload-drop{
  border:2px dashed var(--line); border-radius:var(--radius); padding:28px 18px;
  text-align:center; color:var(--tx-mute); font-size:13.5px; cursor:pointer;
  transition:border-color .15s, background .15s;
}
.upload-drop:hover, .upload-drop.is-dragover{ border-color:var(--terra); background:rgba(130,42,45,.04); }
.upload-drop svg{ margin:0 auto 10px; color:var(--terra); }
.upload-filelist{ margin-top:10px; font-size:12.5px; color:var(--tx-soft); text-align:left; }
.form-msg{ margin-top:14px; font-size:14px; padding:12px 14px; border-radius:8px; display:none; }
.photo-mini-grid{ display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:6px; }
.upload-drop-compact{ display:block; border:1.5px dashed var(--line); border-radius:8px; padding:9px 6px; text-align:center; color:var(--tx-mute); font-size:11.5px; cursor:pointer; line-height:1.3; }
.upload-drop-compact:hover{ border-color:var(--terra); background:rgba(130,42,45,.04); }
.upload-drop-compact img{ margin:0 auto 3px; display:block; }
.form-msg.is-success{ display:block; background:rgba(34,197,94,.1); color:#1a7a3d; }
.form-msg.is-error{ display:block; background:rgba(239,68,68,.1); color:#b91c1c; }
.form-msg.is-info{ display:block; background:rgba(33,52,90,.08); color:var(--navy); }
.zones-box{
  background:var(--cloud); border-radius:var(--radius); padding:26px; border-left:4px solid var(--navy);
}
.zones-box h3{ font-size:16px; margin-bottom:16px; }
.zone-item{ display:flex; gap:12px; margin-bottom:16px; }
.zone-item strong{ display:block; color:var(--navy); font-size:14.5px; }
.zone-item span{ display:block; font-size:13.5px; color:var(--tx-soft); }
.zone-item a{ color:var(--terra); font-weight:600; font-size:13.5px; }

/* ---------- Footer ---------- */
.site-footer{ background:var(--navy-dark); color:#a9b6cf; padding:64px 0 0; }
.footer-grid{ display:grid; gap:40px; grid-template-columns:1fr; padding-bottom:44px; border-bottom:1px solid rgba(255,255,255,.08); }
.footer-grid h4{ color:#fff; font-size:14.5px; letter-spacing:.03em; text-transform:uppercase; margin-bottom:18px; }
.footer-grid ul li{ margin-bottom:12px; }
.footer-grid a{ font-size:14px; color:#a9b6cf; transition:color .15s; }
.footer-grid a:hover{ color:var(--terra-light); }
.footer-link-highlight{ color:#fff !important; font-weight:800; font-size:14.5px; text-transform:uppercase; letter-spacing:.03em; }
.footer-link-highlight:hover{ color:var(--terra-light) !important; }
.footer-brand p{ color:#8695b3; font-size:14px; max-width:340px; }
.footer-social{ display:flex; gap:10px; margin-top:16px; }
.footer-social a{ width:36px; height:36px; border-radius:50%; background:rgba(255,255,255,.08); display:flex; align-items:center; justify-content:center; transition:background .15s; }
.footer-social a:hover{ background:var(--terra); }
.footer-social img{ width:18px; height:18px; }
.footer-bottom{ display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:16px; padding:26px 0; font-size:13px; color:#6d7c9c; position:relative; }
.footer-credit{ display:inline-flex; align-items:center; gap:8px; background:#fff; border-radius:8px; padding:5px 12px 5px 6px; text-decoration:none; box-shadow:0 2px 8px rgba(0,0,0,.2); }
.footer-credit img{ height:20px; width:auto; display:block; }
.footer-credit span{ font-size:11.5px; font-weight:700; color:var(--navy); white-space:nowrap; }
@media(min-width:720px){
  .footer-bottom{ justify-content:space-between; }
  .footer-bottom .footer-copyright{ margin:0 auto; }
}

@media(min-width:640px){
  .grid-3{ grid-template-columns:repeat(2,1fr); }
  .form-row{ grid-template-columns:1fr 1fr; }
  .footer-grid{ grid-template-columns:1.2fr 1fr 1fr 1.1fr; }
}
@media(min-width:640px) and (max-width:1023px){
  .footer-grid{ grid-template-columns:1fr 1fr; }
}
@media(min-width:860px){
  .split{ grid-template-columns:1fr 1fr; }
  .split.reverse .split-media{ order:2; }
  .app-teaser{ grid-template-columns:1fr 1fr; }
}
@media(min-width:960px){
  .grid-3{ grid-template-columns:repeat(4,1fr); }
}
@media(min-width:1024px){
  .contact-layout{ display:grid; grid-template-columns:.85fr 1.15fr; gap:48px; align-items:start; }
}


/* ---------- Catalogue Formations en Ligne ---------- */
.course-group{ margin-bottom:40px; }
.course-group:last-child{ margin-bottom:0; }
.course-group h3{ font-size:19px; color:var(--navy); margin-bottom:18px; padding-bottom:10px; border-bottom:2px solid var(--line); }
.course-row{
  display:grid; grid-template-columns:180px 1fr auto; gap:20px; align-items:center;
  background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:16px 20px; position:relative;
  margin-bottom:12px; box-shadow:var(--shadow);
}
.course-access-btn{
  display:block; text-align:center; background:var(--cloud); color:var(--tx-mute);
  border:1.5px dashed var(--line); border-radius:var(--radius-sm); padding:10px 10px; font-size:12px; font-weight:700; cursor:not-allowed;
}
.course-access-btn small{ display:block; font-weight:700; font-size:10px; margin-top:4px; text-transform:uppercase; letter-spacing:.03em; color:var(--terra); }
.course-info h4{ margin:0 0 6px; font-size:15.5px; color:var(--navy); }
.course-meta{ display:flex; gap:14px; font-size:13px; flex-wrap:wrap; }
.course-level{ color:var(--tx-soft); }
.course-price{ font-weight:800; color:var(--terra); }
.course-status-tag{ color:var(--terra); font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.03em; }
.course-cta-link{ display:inline-block; margin-top:8px; font-size:12.5px; font-weight:700; color:var(--terra); }
.course-cta-link:hover{ text-decoration:underline; }
.course-elearning-badge{ width:96px; height:auto; display:block; margin-right:8px; }
@media(max-width:640px){
  .course-row{ grid-template-columns:1fr; }
  .course-elearning-badge{ position:absolute; right:14px; bottom:12px; width:58px; margin:0; }
  .course-row .course-info{ padding-right:66px; }
}

@media (prefers-reduced-motion: no-preference){
  .reveal{ opacity:0; transform:translateY(18px); transition:opacity .6s cubic-bezier(.16,1,.3,1), transform .6s cubic-bezier(.16,1,.3,1); }
  .reveal.reveal--left{ transform:translateX(-18px); }
  .reveal.reveal--right{ transform:translateX(18px); }
  .reveal.in-view{ opacity:1; transform:none; }
}
.stagger > *{ transition-delay:calc(var(--i,0) * 90ms); }

/* ---------- Utilitaires ---------- */
.text-center{ text-align:center; }
.mt-0{ margin-top:0; }
.skip-link{
  position:absolute; left:-999px; top:0; background:#fff; color:#000; padding:12px 18px; z-index:9999;
}
.skip-link:focus{ left:12px; top:12px; }
.page-hero{ background:var(--navy); color:#fff; padding:64px 0 56px; }
.page-hero h1{ color:#fff; margin-bottom:8px; }
.page-hero p{ color:#c8d2e4; margin:0; }
.legal-content{ padding:56px 0 88px; max-width:820px; margin:0 auto; }
.legal-content h2{ font-size:22px; margin-top:36px; }
.legal-content p, .legal-content li{ font-size:15px; color:var(--tx-soft); }
.legal-content ul{ list-style:disc; padding-left:22px; margin-bottom:16px; }

/* ---------- Page Tarifs ---------- */
.tarif-intro{ max-width:760px; margin:0 auto 48px; text-align:center; }
.tarif-group{ margin-bottom:52px; }
.tarif-group-head{ display:flex; align-items:center; gap:14px; margin-bottom:6px; }
.tarif-group-head .icon-badge{ flex-shrink:0; }
.tarif-group h3{ font-size:20px; margin:0; color:var(--navy); }
.tarif-group-note{ font-size:13.5px; color:var(--tx-mute); margin:0 0 18px; }
.tarif-list{ border-top:1px solid var(--line); }
.tarif-row{ display:flex; justify-content:space-between; align-items:baseline; gap:20px; padding:15px 2px; border-bottom:1px solid var(--line); }
.tarif-row .label{ font-size:14.5px; color:var(--tx); }
.tarif-row .price{ font-weight:700; color:var(--terra-dark); white-space:nowrap; font-size:14.5px; }
.tarif-footnote{ font-size:12.5px; color:var(--tx-mute); margin-top:14px; font-style:italic; }
.tarif-cta{ background:var(--navy); color:#fff; border-radius:var(--radius-lg); padding:36px; text-align:center; margin-top:20px; }
.tarif-cta p{ color:#c8d2e4; }
.tarif-scale{ width:100%; border-collapse:collapse; margin:16px 0; font-size:13.5px; }
.tarif-scale th{ text-align:left; color:var(--tx-mute); font-weight:700; font-size:11.5px; text-transform:uppercase; letter-spacing:.04em; padding:8px 10px; border-bottom:2px solid var(--line); }
.tarif-scale td{ padding:9px 10px; border-bottom:1px solid var(--line); color:var(--tx); }
.tarif-scale td.rate{ font-weight:700; color:var(--terra-dark); text-align:right; }
.tarif-info-box{ background:var(--cloud); border-left:4px solid var(--navy); border-radius:var(--radius); padding:26px; margin-top:20px; }
.tarif-info-box h4{ font-size:15px; color:var(--navy); margin-bottom:12px; }
.tarif-info-box ul{ list-style:disc; padding-left:20px; margin:0; }
.tarif-info-box li{ font-size:13.5px; color:var(--tx-soft); margin-bottom:8px; }

.app-embed-wrap{ background:#0a1322; }
.app-embed-frame{
  width:100%; height:calc(100vh - 82px); border:0; display:block; background:#0a1322;
}
.app-locked{
  min-height:60vh; display:flex; align-items:center; justify-content:center; color:#fff; text-align:center; padding:60px 24px;
}

/* ---------- Page Statistiques ---------- */
.stat-section{ margin-bottom:52px; }
.stat-section-head{ display:flex; align-items:center; gap:14px; margin-bottom:18px; }
.stat-section-head h3{ font-size:20px; margin:0; color:var(--navy); }
.stat-grid{ display:grid; gap:20px; grid-template-columns:1fr; margin-bottom:14px; }
.stat-card{ background:var(--white); border:1px solid var(--line); border-radius:var(--radius-lg); padding:28px; box-shadow:var(--shadow); }
.stat-number{ font-size:36px; font-weight:800; color:var(--terra-dark); line-height:1.1; margin-bottom:10px; }
.stat-desc{ font-size:14px; color:var(--tx-soft); margin:0; }
.stat-source{ font-size:11.5px; color:var(--tx-mute); margin-top:12px; font-style:italic; }
@media(min-width:640px){ .stat-grid{ grid-template-columns:1fr 1fr; } }

/* ---------- Certifications ---------- */
.cert-grid{ display:grid; gap:22px; grid-template-columns:1fr; }
.cert-card{ background:var(--white); border:1px solid var(--line); border-radius:var(--radius-lg); padding:26px; text-align:center; box-shadow:var(--shadow); }
.cert-card.is-placeholder{ border:1.5px dashed var(--line); box-shadow:none; background:var(--cloud); }
.cert-card .icon-badge{ margin:0 auto 14px; width:52px; height:52px; border-radius:14px; }
.cert-card h4{ font-size:15px; color:var(--navy); margin-bottom:6px; }
.cert-card p{ font-size:13px; color:var(--tx-mute); margin:0; }
.cert-card.is-placeholder p{ font-style:italic; }
@media(min-width:640px){ .cert-grid{ grid-template-columns:repeat(2,1fr); } }
@media(min-width:960px){ .cert-grid{ grid-template-columns:repeat(4,1fr); } }

/* ---------- Page Expertise Drone ---------- */
.drone-hero-img{ width:100%; border-radius:var(--radius-lg); box-shadow:var(--shadow-lg); margin-bottom:8px; }
.drone-service-grid{ display:grid; gap:24px; grid-template-columns:1fr; }
.drone-service{ background:var(--white); border:1px solid var(--line); border-radius:var(--radius-lg); padding:28px; box-shadow:var(--shadow); }
.drone-service .icon-badge{ margin-bottom:16px; }
.drone-service h4{ font-size:17px; color:var(--navy); margin-bottom:8px; }
.drone-service p{ font-size:14px; color:var(--tx-soft); margin:0; }
@media(min-width:640px){ .drone-service-grid{ grid-template-columns:repeat(2,1fr); } }
@media(min-width:960px){ .drone-service-grid{ grid-template-columns:repeat(3,1fr); } }

/* ---------- Menu déroulant Spécialités ---------- */
.has-dropdown{ position:relative; }
.has-dropdown summary{
  color:#dbe3f2; font-weight:600; font-size:12px; letter-spacing:.01em;
  padding:8px 0; border-bottom:2px solid transparent; transition:color .15s, border-color .15s;
  cursor:pointer; display:flex; align-items:center; gap:5px; list-style:none;
}
.has-dropdown summary::-webkit-details-marker{ display:none; }
.has-dropdown summary::marker{ content:""; }
.has-dropdown summary:hover, .has-dropdown[open] summary{ color:#fff; border-color:var(--terra); }
.has-dropdown summary svg{ width:12px; height:12px; transition:transform .15s; }
.has-dropdown[open] summary svg{ transform:rotate(180deg); }
.dropdown-menu{
  position:absolute; top:100%; left:50%; transform:translateX(-50%);
  background:#fff; border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow-lg);
  padding:8px; min-width:240px; z-index:600; display:flex; flex-direction:column; gap:2px; margin-top:6px;
}
.dropdown-menu a{ color:var(--navy) !important; padding:11px 14px !important; border-radius:6px; font-size:12px !important; white-space:nowrap; border:none !important; font-weight:600 !important; display:block; }
.dropdown-menu a:hover{ background:var(--cloud); color:var(--terra) !important; }
.header-actions{ display:none; grid-column:3; justify-self:end; gap:10px; align-items:center; }
.mobile-nav .sub-link{ padding-left:40px !important; font-size:13.5px !important; color:#c8d2e4 !important; font-weight:500 !important; }
@media(min-width:900px){
  .header-actions{ display:flex; }
}

/* ---------- Pages Sinistres ---------- */
.risk-list{ display:flex; flex-direction:column; gap:16px; margin:24px 0; }
.risk-item{ display:flex; gap:14px; align-items:flex-start; background:var(--white); border:1px solid var(--line); border-radius:var(--radius); padding:18px 20px; }
a.risk-item{ transition:box-shadow .15s, border-color .15s; }
a.risk-item:hover{ box-shadow:var(--shadow); border-color:var(--terra); }
.risk-item .icon-badge{ flex-shrink:0; }
.risk-item strong{ display:block; color:var(--navy); font-size:14.5px; margin-bottom:3px; }
.risk-item p{ font-size:13.5px; margin:0; color:var(--tx-soft); }
.risk-item .link-more{ display:inline-block; margin-top:8px; font-size:13px; font-weight:700; color:var(--terra); }
a.risk-item:hover .link-more{ text-decoration:underline; }
.urgent-box{ background:var(--navy); color:#fff; border-radius:var(--radius-lg); padding:32px; display:flex; flex-wrap:wrap; gap:20px; align-items:center; justify-content:space-between; margin:40px 0; }
.urgent-box h4{ color:#fff; font-size:18px; margin-bottom:6px; }
.urgent-box p{ color:#c8d2e4; margin:0; font-size:14px; max-width:440px; }

/* ---------- Bandeau "Bientôt disponible" ---------- */
.soon-banner{ background:linear-gradient(100deg, var(--terra-dark), var(--terra)); color:#fff; border-radius:var(--radius-lg); padding:30px 32px; display:flex; flex-wrap:wrap; gap:20px; align-items:center; justify-content:space-between; margin-bottom:8px; }
.soon-banner h4{ color:#fff; font-size:19px; margin-bottom:6px; display:flex; align-items:center; gap:10px; }
.soon-banner p{ color:#ffe4d9; margin:0; font-size:14px; max-width:460px; }
.soon-badge{ display:inline-block; background:rgba(255,255,255,.22); color:#fff; font-size:11px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; padding:4px 11px; border-radius:999px; }

/* ---------- Page Contact ---------- */
.contact-info-card{ background:var(--white); border:1px solid var(--line); border-radius:var(--radius-lg); padding:32px; box-shadow:var(--shadow); }
.contact-info-card h3{ font-size:18px; margin-bottom:18px; }
.contact-method{ display:flex; gap:14px; align-items:flex-start; margin-bottom:18px; }
.contact-method .icon-badge{ flex-shrink:0; }
.contact-method strong{ display:block; color:var(--navy); font-size:14.5px; margin-bottom:2px; }
.contact-method a, .contact-method span{ font-size:14px; color:var(--tx-soft); }
.contact-method a{ color:var(--terra); font-weight:600; }
.office-grid{ display:grid; gap:20px; grid-template-columns:1fr; margin-top:20px; }
@media(min-width:640px){ .office-grid{ grid-template-columns:1fr 1fr; } }

/* ---------- Étapes de processus (Formation / Audit) ---------- */
.process-steps{ display:grid; gap:24px; grid-template-columns:1fr; counter-reset:step; }
.process-step{ display:flex; gap:18px; align-items:flex-start; }
.process-step .step-num{
  flex-shrink:0; width:38px; height:38px; border-radius:50%; background:var(--navy); color:#fff;
  display:flex; align-items:center; justify-content:center; font-weight:800; font-size:15px;
}
.process-step h4{ font-size:15.5px; color:var(--navy); margin-bottom:4px; }
.process-step p{ font-size:13.5px; color:var(--tx-soft); margin:0; }
@media(min-width:760px){ .process-steps{ grid-template-columns:1fr 1fr; } }

.checklist-box{ background:var(--white); border:1px solid var(--line); border-radius:var(--radius-lg); padding:28px; box-shadow:var(--shadow); }
.checklist-box ul{ list-style:none; padding:0; margin:14px 0 0; display:flex; flex-direction:column; gap:10px; }
.checklist-box li{ font-size:14px; color:var(--tx-soft); padding-left:26px; position:relative; }
.checklist-box li::before{ content:"✓"; position:absolute; left:0; color:var(--terra); font-weight:800; }

/* ---------- Page Demande de Conformité (prix + paiement) ---------- */
.price-banner{ background:var(--navy); color:#fff; border-radius:var(--radius-lg); padding:24px 28px; display:flex; flex-wrap:wrap; gap:16px; align-items:center; justify-content:space-between; margin-bottom:32px; }
.price-banner .price-amount{ font-size:32px; font-weight:800; }
.price-banner .price-amount small{ font-size:14px; font-weight:600; color:#a9b6cf; margin-left:6px; }
.price-banner p{ color:#c8d2e4; font-size:13.5px; margin:0; max-width:380px; }
.payment-step{ background:var(--cloud); border:1.5px dashed var(--line); border-radius:var(--radius-lg); padding:28px; margin-top:24px; display:none; text-align:center; }
.payment-step.is-visible{ display:block; }
.payment-step h4{ color:var(--navy); margin-bottom:8px; }
.payment-step p{ font-size:13.5px; color:var(--tx-soft); margin-bottom:18px; }

/* ---------- Onglets Authentification (Créer un compte / Se connecter) ---------- */
.auth-tabs{ display:flex; gap:4px; background:var(--cloud); border-radius:var(--radius); padding:4px; margin-bottom:22px; }
.auth-tab{ flex:1; padding:10px 16px; border:none; background:transparent; border-radius:6px; font-weight:700; font-size:13.5px; color:var(--tx-mute); cursor:pointer; transition:background .15s,color .15s; }
.auth-tab.is-active{ background:#fff; color:var(--navy); box-shadow:var(--shadow); }
.auth-panel{ display:none; }
.auth-panel.is-active{ display:block; }
.wrong-type-box{ background:var(--cloud); border:1.5px dashed var(--line); border-radius:var(--radius-lg); padding:28px; text-align:center; }

/* ---------- Icônes rapides (hero, pills compactes) ---------- */
.quick-links{ display:flex; flex-wrap:wrap; gap:12px; margin-top:22px; }
.quick-link{ display:inline-flex; align-items:center; gap:9px; background:rgba(255,255,255,.1); border:1.5px solid rgba(255,255,255,.3); border-radius:999px; padding:9px 18px 9px 10px; font-size:13.5px; font-weight:700; color:#fff; transition:background .15s, border-color .15s, transform .15s; width:270px; box-sizing:border-box; }
.quick-link:hover{ background:rgba(255,255,255,.2); border-color:#fff; color:#fff; transform:translateY(-2px); }
.quick-link .icon-badge{ width:28px; height:28px; flex-shrink:0; background:rgba(255,255,255,.18); }
.quick-link .icon-badge img{ filter:brightness(0) invert(1); }

/* ---------- Upload dynamique (ajouter plusieurs documents) ---------- */
.upload-row{ position:relative; margin-bottom:12px; }
.upload-row:last-child{ margin-bottom:0; }
.upload-row-remove{ position:absolute; top:8px; right:8px; width:24px; height:24px; border-radius:50%; border:none; background:var(--cloud); color:var(--tx-mute); font-size:16px; line-height:1; cursor:pointer; z-index:2; }
.upload-row-remove:hover{ background:var(--terra); color:#fff; }
.btn-add-doc{
  margin-top:12px; background:none; border:1.5px dashed var(--line); color:var(--navy);
  font-weight:700; font-size:13.5px; padding:10px 16px; border-radius:var(--radius);
  cursor:pointer; width:100%; transition:border-color .15s, color .15s;
}
.btn-add-doc:hover{ border-color:var(--terra); color:var(--terra); }

/* ---------- Page Application de Dépannage : onglets d'ancrage + pré-réservation ---------- */
.page-tabs{ display:flex; flex-wrap:wrap; gap:10px; justify-content:center; margin-top:28px; }
.page-tab{ background:rgba(255,255,255,.12); border:1.5px solid rgba(255,255,255,.35); color:#fff; font-weight:700; font-size:13.5px; padding:11px 20px; border-radius:999px; transition:background .15s, border-color .15s; }
.page-tab:hover{ background:rgba(255,255,255,.22); border-color:#fff; }
.preorder-badge{ display:inline-block; background:var(--terra); color:#fff; font-size:11px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; padding:5px 14px; border-radius:999px; margin-bottom:16px; }
.advantage-tag{ display:inline-block; color:var(--terra); font-size:13.5px; font-weight:800; margin-bottom:10px; }
.beta-note{ background:var(--cloud); border:1.5px dashed var(--line); border-radius:var(--radius); padding:16px 20px; font-size:13px; color:var(--tx-soft); margin-top:18px; }

/* ---------- Placeholder visuel pour cartes sans photo dédiée ---------- */
.card-img-placeholder{
  width:100%; aspect-ratio:16/11; display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg, var(--navy) 0%, var(--navy-dark) 100%); position:relative;
}
.card-img-placeholder img{ width:56px; height:56px; opacity:.9; filter:brightness(0) invert(1); }
.card-img-placeholder::after{
  content:"Photo à venir"; position:absolute; bottom:10px; right:12px; font-size:10.5px;
  color:rgba(255,255,255,.55); font-weight:600; letter-spacing:.03em; text-transform:uppercase;
}

/* ---------- Encart "attention" type chantier (jaune/noir) ---------- */
.warning-box{
  position:relative; background:#fff8e1; border:2px solid #f5c518; border-radius:var(--radius);
  padding:18px 20px 18px 56px; margin-top:24px; max-width:720px; margin-left:auto; margin-right:auto;
  font-size:13.5px; color:#6b5300;
}
.warning-box::before{
  content:"⚠"; position:absolute; left:16px; top:50%; transform:translateY(-50%);
  font-size:24px; color:#c99a00;
}
.warning-box strong{ color:#4a3900; }

/* ---------- Cases à cocher multichoix (type d'équipement, devis) ---------- */
.checkbox-group{ display:grid; grid-template-columns:repeat(2,1fr); gap:8px 16px; margin-top:8px; }
.checkbox-item{ display:flex; align-items:center; gap:8px; font-size:13.5px; color:var(--tx-soft); font-weight:500; cursor:pointer; }
.checkbox-item input[type="checkbox"], .checkbox-item input[type="radio"]{ width:16px; height:16px; accent-color:var(--terra); flex-shrink:0; cursor:pointer; }
@media(max-width:480px){ .checkbox-group{ grid-template-columns:1fr; } }

/* ---------- Double formulaire embarque (urgence + standard) sur pages specialite ---------- */
.dual-form-grid{ display:grid; gap:24px; grid-template-columns:1fr; }
@media(min-width:860px){ .dual-form-grid{ grid-template-columns:1fr 1fr; } }
.mini-form-card{ background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg); box-shadow:var(--shadow); padding:28px 26px; position:relative; }
.mini-form-card.is-urgent{ background:#fdf1f0; border-color:#e4b8b3; padding-top:44px; }
.urgent-badge{
  position:absolute; top:-1px; left:20px; background:var(--terra); color:#fff; font-size:11px;
  font-weight:800; letter-spacing:.05em; text-transform:uppercase; padding:6px 14px;
  border-radius:0 0 8px 8px; display:flex; align-items:center; gap:5px;
}
.urgent-badge::before{ content:"\25CF"; font-size:8px; color:#fff; }
.urgent-help-box{
  background:#fdf1f0; border:1.5px dashed #e4b8b3; border-radius:var(--radius); padding:14px 18px;
  font-size:13px; color:#7a2e2a; margin-bottom:18px;
}
.mini-form-card h3{ font-size:18px; margin-bottom:6px; }
.mini-form-card.is-urgent h3{ color:var(--terra-dark); }
.mini-form-card p.sub{ font-size:13px; color:var(--tx-mute); margin-bottom:18px; }
.mini-form-card .field{ margin-bottom:14px; }
.mini-form-card label{ display:block; font-size:12.5px; font-weight:700; color:var(--navy); margin-bottom:5px; }
.mini-form-card input, .mini-form-card textarea{
  width:100%; border:1.5px solid var(--line); border-radius:8px; padding:9px 12px; font-size:13.5px;
  font-family:inherit; background:#fff;
}
.mini-form-card textarea{ min-height:72px; resize:vertical; }
.mini-form-card input:focus, .mini-form-card textarea:focus{ outline:none; border-color:var(--terra); }

/* ---------- Nav desktop élargie (>=1180px) : placé en fin de fichier ---------- */
/* volontairement en dernier dans le fichier pour gagner la cascade sur toutes
   les règles précédentes, y compris celles utilisant déjà !important */
@media(min-width:1180px){
  .main-nav ul{ gap:20px !important; }
  .main-nav a{ font-size:14.5px !important; }
  .has-dropdown summary{ font-size:14.5px !important; }
  .dropdown-menu a{ font-size:14.5px !important; }
  .header-cta{ width:128px !important; font-size:10.5px !important; padding:6px 8px !important; }
}

/* ---------- Modale générique (ex : accès webmaster non autorisé) ---------- */
.fx-modal-overlay{ position:fixed; inset:0; background:rgba(20,33,58,.72); z-index:5000; display:flex; align-items:center; justify-content:center; padding:20px; }
.fx-modal{ background:#fff; border-radius:var(--radius-lg); box-shadow:var(--shadow-lg); max-width:420px; width:100%; padding:30px; text-align:center; }
.fx-modal h3{ color:var(--navy); font-size:19px; margin-bottom:12px; }
.fx-modal p{ color:var(--tx-soft); font-size:14.5px; line-height:1.6; margin-bottom:22px; }
.fx-modal .btn{ width:100%; margin-bottom:10px; }
.fx-modal-close{ background:transparent; border:none; color:var(--tx-mute); font-size:13px; cursor:pointer; padding:6px; }

/* ---------- Filtre Particulier / Professionnel (accueil) ---------- */
.audience-filter{ background:var(--cloud); padding:22px 24px; border-bottom:1px solid var(--line); }
.audience-filter-label{ font-size:13.5px; font-weight:700; color:var(--tx-soft); }
.audience-filter-btn{ padding:10px 20px; border-radius:999px; border:1.5px solid var(--line); background:#fff; color:var(--tx-soft); font-weight:700; font-size:13.5px; cursor:pointer; transition:all .15s; }
.audience-filter-btn:hover{ border-color:var(--navy-light); color:var(--navy); }
.audience-filter-btn.is-active{ background:var(--navy); border-color:var(--navy); color:#fff; }
.audience-filter-btn--pro.is-active{ background:var(--terra); border-color:var(--terra); }
.audience-filter-btn--collectivite.is-active{ background:var(--navy-light); border-color:var(--navy-light); }
.audience-filter-btn--proprio-occupant.is-active{ background:var(--terra-light); border-color:var(--terra-light); }
.audience-filter-btn--proprio-bailleur.is-active{ background:var(--anthracite); border-color:var(--anthracite); }
.audience-filter-btn--locataire.is-active{ background:var(--anthracite-light); border-color:var(--anthracite-light); }
@media(max-width:600px){
  .audience-filter .container{ flex-direction:column; gap:10px; }
}

/* ---------- FAQ (accordéon) ---------- */
.faq-section{ margin-bottom:48px; }
.faq-section:last-child{ margin-bottom:0; }
.faq-section-title{ display:flex; align-items:center; gap:12px; margin-bottom:20px; padding-bottom:12px; border-bottom:2px solid var(--line); }
.faq-section-title h2{ font-size:21px; margin:0; }
.faq-item{ border:1px solid var(--line); border-radius:var(--radius); margin-bottom:10px; background:#fff; overflow:hidden; }
.faq-item summary{ padding:16px 20px; font-weight:700; font-size:15px; color:var(--navy); cursor:pointer; list-style:none; display:flex; align-items:center; justify-content:space-between; gap:14px; }
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary::after{ content:'+'; font-size:22px; font-weight:400; color:var(--terra); flex-shrink:0; transition:transform .2s; line-height:1; }
.faq-item[open] summary::after{ transform:rotate(45deg); }
.faq-item[open] summary{ border-bottom:1px solid var(--line); }
.faq-answer{ padding:4px 20px 20px; font-size:14.5px; color:var(--tx-soft); line-height:1.7; }
.faq-answer p{ margin:0 0 12px; }
.faq-answer p:last-child{ margin-bottom:0; }
.faq-answer .faq-law{ background:var(--cloud); border-left:3px solid var(--terra); padding:12px 16px; border-radius:0 8px 8px 0; font-size:13.5px; margin:12px 0; }
.faq-answer .faq-cta{ display:inline-block; margin-top:10px; margin-right:8px; padding:9px 18px; border-radius:8px; background:transparent; border:1.5px solid var(--terra); color:var(--terra) !important; font-weight:700; font-size:13.5px; text-decoration:none; }
.faq-answer .faq-cta:hover{ background:var(--terra); color:#fff !important; }
.faq-answer .faq-cta--expert{ background:var(--terra); color:#fff !important; border-color:var(--terra); }
.faq-answer .faq-cta--expert:hover{ background:var(--terra-light); border-color:var(--terra-light); }
.faq-nav{ display:flex; flex-wrap:wrap; gap:8px; justify-content:center; margin-bottom:44px; }
.faq-nav a{ padding:9px 16px; border-radius:999px; background:var(--cloud); border:1px solid var(--line); color:var(--navy); font-weight:600; font-size:13px; }
.faq-nav a:hover{ background:var(--navy); color:#fff; border-color:var(--navy); }

/* ---------- Bande d'avis clients défilante ---------- */
.testimonials-band{ background:var(--navy-dark); padding:36px 0; overflow:hidden; white-space:nowrap; position:relative; }
.testimonials-band::before, .testimonials-band::after{ content:''; position:absolute; top:0; bottom:0; width:80px; z-index:2; pointer-events:none; }
.testimonials-band::before{ left:0; background:linear-gradient(90deg, var(--navy-dark), transparent); }
.testimonials-band::after{ right:0; background:linear-gradient(-90deg, var(--navy-dark), transparent); }
.testimonials-track{ display:inline-flex; gap:20px; animation:testimonials-scroll 55s linear infinite; padding:0 10px; }
@keyframes testimonials-scroll{ from{ transform:translateX(0); } to{ transform:translateX(calc(-100% - 20px)); } }
.testimonials-band:hover .testimonials-track{ animation-play-state:paused; }
.testimonial-card{ display:inline-flex; flex-direction:column; width:340px; white-space:normal; background:#fff; border-radius:var(--radius-lg); padding:22px 24px; box-shadow:var(--shadow); vertical-align:top; }
.testimonial-stars{ color:#f5a623; font-size:15px; letter-spacing:2px; margin-bottom:10px; }
.testimonial-card p{ font-size:13.5px; color:var(--tx-soft); line-height:1.6; margin:0 0 14px; flex:1; }
.testimonial-author{ font-size:13px; font-weight:700; color:var(--navy); }
.testimonial-author span{ font-weight:500; color:var(--tx-mute); }
.testimonials-note{ text-align:center; font-size:12px; color:var(--tx-mute); padding:14px 24px; margin:0; background:var(--navy-dark); }
@media(max-width:640px){
  .testimonial-card{ width:280px; }
}

/* ---------- Page CGV (contenu juridique) ---------- */
.cgv-content{ max-width:820px; margin:0 auto; }
.cgv-content h2{ font-size:21px; color:var(--navy); margin-top:44px; margin-bottom:14px; padding-bottom:10px; border-bottom:2px solid var(--line); }
.cgv-content h2:first-child{ margin-top:0; }
.cgv-content h3{ font-size:16px; color:var(--terra); margin-top:26px; margin-bottom:10px; font-style:italic; }
.cgv-content p{ font-size:14.5px; color:var(--tx-soft); line-height:1.75; margin:0 0 14px; }
.cgv-content ul{ margin:0 0 14px; padding-left:22px; }
.cgv-content li{ font-size:14.5px; color:var(--tx-soft); line-height:1.7; margin-bottom:8px; }
.cgv-content strong{ color:var(--tx); }
.cgv-callout{ background:var(--cloud); border-left:3px solid var(--terra); border-radius:0 10px 10px 0; padding:16px 20px; margin:18px 0; }
.cgv-callout p{ margin-bottom:8px; font-size:14px; }
.cgv-callout p:last-child{ margin-bottom:0; }
.cgv-callout strong:first-child{ color:var(--terra); }
.cgv-legalref{ font-size:12.5px; color:var(--tx-mute); font-style:italic; border-top:1px dashed var(--line); padding-top:10px; margin:14px 0 22px; }
.cgv-toc{ columns:2; column-gap:24px; margin-bottom:36px; }
.cgv-toc a{ display:block; font-size:13px; color:var(--tx-soft); padding:6px 0; break-inside:avoid; }
.cgv-toc a:hover{ color:var(--terra); }
@media(max-width:640px){ .cgv-toc{ columns:1; } }

/* ---------- Grille d'outils (page Notre Materiel) — photos en avant, sans texte ---------- */
.tool-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(140px, 1fr)); gap:16px; margin:24px 0; }
.tool-card{ background:var(--white); border:1px solid var(--line); border-radius:var(--radius); padding:14px; text-align:center; transition:box-shadow .2s, transform .2s; }
.tool-card:hover{ box-shadow:var(--shadow); transform:translateY(-2px); }
.tool-card .tool-photo{ width:100%; aspect-ratio:1/1; border-radius:8px; overflow:hidden; background:var(--cloud); margin-bottom:10px; display:flex; align-items:center; justify-content:center; }
.tool-card .tool-photo img{ width:100%; height:100%; object-fit:cover; display:block; }
.tool-card .tool-photo img.tool-icon{ width:34%; height:34%; object-fit:contain; }
.tool-card strong{ display:block; color:var(--navy); font-size:13.5px; line-height:1.3; }

/* ---------- Page Drone : 2 colonnes contrastées (Drone actif / Thermographie à venir) ---------- */
.drone-columns{ display:grid; grid-template-columns:1fr 1fr; border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-lg); margin:0 0 8px; }
.drone-col-img{ width:100%; aspect-ratio:4/3.2; object-fit:cover; display:block; }
.drone-col-body{ padding:32px 30px; }
.drone-col-drone .drone-col-body{ background:#fff; }
.drone-col-thermo .drone-col-body{ background:#eef1f6; }
.drone-col-badge{ display:inline-block; font-size:11px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; padding:5px 14px; border-radius:999px; margin-bottom:12px; }
.drone-col-drone .drone-col-badge{ background:var(--terra); color:#fff; }
.drone-col-thermo .drone-col-badge{ background:var(--anthracite); color:#fff; }
.drone-col-points{ list-style:none; padding:0; margin:16px 0 22px; display:flex; flex-direction:column; gap:10px; }
.drone-col-points li{ display:flex; align-items:flex-start; gap:9px; font-size:13.5px; color:var(--tx-soft); line-height:1.5; }
.drone-col-points li::before{ content:'✓'; color:var(--terra); font-weight:800; flex-shrink:0; }
.drone-col-thermo .drone-col-points li::before{ color:var(--anthracite-light); }
.drone-col-thermo .btn-terra{ background:var(--anthracite); box-shadow:none; }
.drone-col-thermo .btn-terra:hover{ background:var(--anthracite-light); }
@media(max-width:820px){
  .drone-columns{ grid-template-columns:1fr; }
}

/* ---------- Boutons héro de la page Formation (taille identique) ---------- */
.formation-hero-btn{ width:250px; white-space:normal; text-align:center; line-height:1.3; font-size:13.5px; padding:14px 16px; }

/* ---------- Module Formation H0B0 (présentiel, intra/inter) ---------- */
.h0b0-card{ background:var(--cloud); border:1.5px solid var(--line); border-radius:var(--radius-lg); padding:26px 28px; }
.h0b0-intro h4{ font-size:19px; color:var(--navy); margin:6px 0 10px; }
.h0b0-intro p{ font-size:14px; color:var(--tx-soft); line-height:1.6; margin:0 0 20px; }
.h0b0-options{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.h0b0-option{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:18px 20px; }
.h0b0-option h5{ font-size:14.5px; color:var(--navy); margin:0 0 6px; }
.h0b0-price{ font-weight:800; color:var(--terra); font-size:15px; margin:0 0 8px; }
.h0b0-note{ font-size:12.5px; color:var(--tx-mute); margin:0 0 12px; }
.h0b0-option select{ width:100%; padding:10px 12px; border-radius:8px; border:1px solid var(--line); font-size:13.5px; background:#fff; }
@media(max-width:640px){ .h0b0-options{ grid-template-columns:1fr; } }

/* Formulaire d'inscription H0B0 (apparaît après sélection d'une session) */
#h0b0-inscription-form{ display:none; margin-top:22px; padding-top:22px; border-top:1px dashed var(--line); }

/* ---------- Onglet « Application » (bouton vert + menu déroulant) ---------- */
/* placé en toute fin de fichier : doit passer après le bloc « Nav desktop élargie » */
.nav-app summary{
  background:#2f8a4c; color:#fff !important; border:2px solid transparent !important; border-radius:8px;
  width:104px; height:56px; padding:6px 5px !important; justify-content:center; text-align:center;
  font-size:9px !important; font-weight:700; line-height:1.1;
  box-shadow:0 10px 24px -8px rgba(47,138,76,.55);
  transition:background .18s ease, transform .18s ease;
}
.nav-app summary:hover{ transform:translateY(-2px); }
.nav-app summary:hover, .nav-app details[open] summary{ background:#256f3d; color:#fff !important; }
.nav-app .dropdown-menu{ min-width:230px; }
/* pont invisible : la souris peut descendre du bouton au menu sans le refermer */
.nav-app .dropdown-menu::before{ content:""; position:absolute; left:0; right:0; top:-12px; height:12px; }
@media(min-width:1180px){ .nav-app summary{ width:128px; font-size:10.5px !important; padding:6px 8px !important; } }
.dropdown-app-link strong{ display:block; font-weight:800; color:var(--navy); }
.dropdown-app-link small{ display:block; font-size:11px; font-weight:500; color:var(--tx-mute); margin-top:2px; }
.dropdown-app-link:hover strong{ color:#2f8a4c; }
.mobile-nav .mobile-app-link{ color:#7ed39a !important; }
.mobile-app-sub{ display:block; font-size:11.5px; color:#9aa8c0; font-weight:400; margin-top:2px; }

/* Barre sur une seule ligne quand l'onglet Application est présent.
   Toutes ces règles sont conditionnées par :has(.nav-app) : si l'onglet est retiré
   du HTML, la barre retrouve automatiquement ses dimensions d'origine. */
@media(min-width:900px) and (max-width:1179px){
  .main-nav:has(.nav-app) ul{ gap:8px; }
  .main-nav:has(.nav-app) a, .main-nav:has(.nav-app) .has-dropdown summary{ font-size:11px; }
  .main-nav:has(.nav-app) .has-dropdown summary{ gap:3px; }
  .main-nav:has(.nav-app) .has-dropdown summary svg{ width:10px; height:10px; }
}
@media(min-width:1180px){
  .main-nav:has(.nav-app) ul{ gap:14px !important; }
  .main-nav:has(.nav-app) a, .main-nav:has(.nav-app) .has-dropdown summary{ font-size:13.5px !important; }
  .main-nav:has(.nav-app) .dropdown-menu a{ font-size:13.5px !important; }
}
.nav-app.is-current summary{ box-shadow:0 0 0 2px rgba(255,255,255,.55); }
/* bouton Application : même gabarit que les boutons rouges, quelle que soit la largeur */
@media(min-width:1180px){ .main-nav .nav-app summary{ font-size:10.5px !important; } }
@media(min-width:900px) and (max-width:1023px){
  .main-nav:has(.nav-app) ul{ gap:7px; }
  .main-nav:has(.nav-app) a, .main-nav:has(.nav-app) .has-dropdown:not(.nav-app) summary{ font-size:10.5px; }
  .site-header .container:has(.nav-app){ gap:14px; }
}

/* ---------- Page Thermilex Pro ---------- */
.tp-launch{ display:flex; gap:40px; align-items:center; background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg); box-shadow:var(--shadow); padding:36px 40px; }
.tp-launch-icon{ flex-shrink:0; display:block; border-radius:34px; transition:transform .2s; }
.tp-launch-icon:hover{ transform:translateY(-3px) scale(1.02); }
.tp-launch-icon img{ display:block; width:148px; height:148px; filter:drop-shadow(0 14px 22px rgba(23,15,61,.3)); }
.tp-app-tag{ display:inline-block; font-size:11.5px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:#2f8a4c; margin-bottom:10px; }
.tp-launch-body h2{ font-size:clamp(22px,3vw,30px); margin-bottom:12px; }
.tp-btn-app{ background:#2f8a4c; color:#fff; display:inline-flex; align-items:center; gap:10px; box-shadow:0 10px 24px -8px rgba(47,138,76,.6); }
.tp-btn-app:hover{ background:#256f3d; color:#fff; }
.tp-pillars{ display:grid; grid-template-columns:1fr; gap:24px; }
.tp-pillar{ background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg); padding:30px 30px 24px; border-top:4px solid #2f8a4c; }
.tp-pillar h3{ font-size:20px; }
.tp-list{ margin:0; padding:0; list-style:none; }
.tp-list li{ position:relative; padding-left:26px; margin-bottom:10px; font-size:14.5px; color:var(--tx-soft); line-height:1.55; }
.tp-list li::before{ content:""; position:absolute; left:0; top:5px; width:14px; height:14px; border-radius:50%; background:#2f8a4c url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 12l4 4 8-8' stroke='%23fff' stroke-width='3.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/10px no-repeat; }
.tp-demo-slot{ max-width:860px; margin:0 auto; min-height:320px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; gap:6px; padding:40px 24px; border:2px dashed #b7c3d6; border-radius:var(--radius-lg); background:repeating-linear-gradient(135deg, var(--cloud) 0 14px, #f4f6fa 14px 28px); }
.tp-demo-slot img{ margin-bottom:10px; opacity:.9; }
.tp-demo-badge{ background:#2f8a4c; margin-bottom:8px; }
.tp-demo-slot h3{ font-size:22px; margin-bottom:6px; }
.tp-demo-slot p{ margin:0; font-size:14.5px; }
.tp-steps{ display:grid; grid-template-columns:1fr; gap:16px; }
.tp-step{ display:flex; gap:16px; align-items:flex-start; background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:20px; }
.tp-step-num{ flex-shrink:0; width:34px; height:34px; border-radius:50%; background:var(--navy); color:#fff; font-weight:800; display:flex; align-items:center; justify-content:center; font-size:15px; }
.tp-step h4{ font-size:16px; margin-bottom:6px; }
.tp-step p{ font-size:13.5px; margin:0; line-height:1.55; }
.tp-chips{ display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin-bottom:48px; }
.tp-chip{ background:var(--cloud); color:var(--navy); font-weight:700; font-size:13.5px; padding:9px 16px; border-radius:999px; border:1px solid var(--line); }
.tp-tools{ display:grid; grid-template-columns:1fr; gap:20px; }
.tp-tool{ border:1px solid var(--line); border-radius:var(--radius); padding:24px; background:#fff; box-shadow:var(--shadow); }
.tp-tool h3{ font-size:17px; color:var(--terra-dark); margin-bottom:8px; }
.tp-tool p{ font-size:14px; margin:0; }
.tp-tech{ display:grid; grid-template-columns:1fr; gap:20px; }
.tp-tech-item{ background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12); border-radius:var(--radius); padding:22px; }
.tp-tech-item strong{ display:block; color:#fff; font-size:16px; margin-bottom:6px; }
.tp-tech-item span{ color:#c8d2e4; font-size:14px; line-height:1.55; }
.tp-limits{ background:var(--paper); border-left:4px solid var(--terra); border-radius:var(--radius); padding:26px 28px 16px; }
.tp-limits h3{ font-size:19px; }
.tp-limits .tp-list li::before{ background:var(--terra) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8 8l8 8M16 8l-8 8' stroke='%23fff' stroke-width='3.5' stroke-linecap='round'/%3E%3C/svg%3E") center/10px no-repeat; }
@media(min-width:760px){
  .tp-pillars, .tp-steps, .tp-tools{ grid-template-columns:1fr 1fr; }
  .tp-tech{ grid-template-columns:repeat(2,1fr); }
}
@media(min-width:1024px){
  .tp-tools, .tp-tech{ grid-template-columns:repeat(4,1fr); }
}
@media(max-width:700px){
  .tp-launch{ flex-direction:column; text-align:center; padding:30px 22px; gap:22px; }
  .tp-launch-icon img{ width:120px; height:120px; }
}

/* ---------- Espacement régulier : Application | Contrôle | Devis ---------- */
/* La nav occupe toute la colonne centrale : les onglets texte restent centrés
   entre le logo et le bouton vert, et le bouton vert se cale à droite,
   à la même distance des boutons rouges que ceux-ci entre eux (10px).
   Conditionné par :has(.nav-app) comme ci-dessus. */
@media(min-width:900px){
  .main-nav:has(.nav-app){ justify-self:stretch; margin-right:-10px; }   /* gap de grille 20px - 10px */
  .main-nav:has(.nav-app) > ul{ justify-content:flex-start; }
  .main-nav:has(.nav-app) > ul > li:first-child{ margin-left:auto; }
  .main-nav > ul > li.nav-app{ margin-left:auto; }
}
@media(min-width:900px) and (max-width:1023px){
  .main-nav:has(.nav-app){ margin-right:-4px; }                            /* gap de grille 14px - 10px */
}

/* ======================================================================
   Contrôle de Conformité en Ligne — parcours de commande (tunnel)
   ====================================================================== */
/* L'attribut hidden doit toujours l'emporter dans le parcours (les .btn ont un display explicite) */
.funnel-card [hidden]{ display:none !important; }
.page-hero--funnel{ padding-bottom:34px; }
.funnel-trust{ display:flex; flex-wrap:wrap; gap:8px 10px; margin-top:18px; }
.funnel-trust span{ background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.18); color:#e6ecf5; font-size:13px; font-weight:600; padding:6px 12px; border-radius:999px; }
.funnel-trust strong{ color:#fff; }
.funnel-section{ padding-top:28px; }
.funnel-wrap{ display:grid; grid-template-columns:1fr; gap:24px; align-items:start; max-width:1080px; }
@media(min-width:1024px){ .funnel-wrap{ grid-template-columns:minmax(0,1fr) 290px; } .funnel-aside{ position:sticky; top:100px; } }

.funnel-card{ background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg); box-shadow:var(--shadow-lg); padding:26px 22px 22px; min-width:0; }
@media(min-width:640px){ .funnel-card{ padding:32px 34px 28px; } }

/* Progression */
.funnel-progress{ list-style:none; margin:0 0 26px; padding:0; display:none; counter-reset:none; }
.funnel-progress li{ flex:1; position:relative; text-align:center; font-size:11.5px; color:var(--tx-mute); }
.funnel-progress li span{ position:relative; z-index:1; display:flex; align-items:center; justify-content:center; width:30px; height:30px; margin:0 auto 6px; border-radius:50%; background:#fff; border:2px solid var(--line); font-weight:800; font-size:13px; color:var(--tx-mute); transition:all .2s; }
.funnel-progress li::before{ content:""; position:absolute; top:14px; left:-50%; width:100%; height:2px; background:var(--line); }
.funnel-progress li:first-child::before{ display:none; }
.funnel-progress li em{ font-style:normal; font-weight:600; }
.funnel-progress li.is-done span{ background:#2f8a4c; border-color:#2f8a4c; color:#fff; }
.funnel-progress li.is-done::before, .funnel-progress li.is-current::before{ background:#2f8a4c; }
.funnel-progress li.is-current span{ background:var(--navy); border-color:var(--navy); color:#fff; box-shadow:0 0 0 4px rgba(33,52,90,.12); }
.funnel-progress li.is-current em{ color:var(--navy); font-weight:800; }
.funnel-progress-mobile{ margin:0 0 18px; font-size:12.5px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; color:var(--terra); }
@media(min-width:640px){ .funnel-progress{ display:flex; } .funnel-progress-mobile{ display:none; } }

/* Étapes */
.funnel-step{ display:none; border:0; margin:0; padding:0; min-width:0; }
.funnel-step.is-active{ display:block; animation:funnelIn .28s ease; }
@keyframes funnelIn{ from{ opacity:0; transform:translateY(8px); } to{ opacity:1; transform:none; } }
@media (prefers-reduced-motion: reduce){ .funnel-step.is-active{ animation:none; } }
.funnel-step legend{ font-size:clamp(20px,2.6vw,24px); font-weight:800; color:var(--navy); padding:0; margin-bottom:6px; outline:none; }
.funnel-help{ font-size:14px; color:var(--tx-soft); margin:0 0 20px; }
.funnel-step .field{ margin-bottom:16px; }
.field-opt{ font-weight:500; color:var(--tx-mute); }
.field-hint{ display:block; font-size:12px; color:var(--tx-mute); margin-top:6px; }
.field.is-disabled{ opacity:.45; }
.funnel-step .is-invalid{ border-color:var(--terra) !important; box-shadow:0 0 0 3px rgba(130,42,45,.12) !important; }
.funnel-error{ display:none; margin-top:14px; padding:11px 14px; border-radius:8px; background:#fbeeee; border:1px solid #efcaca; color:#7a2427; font-size:13.5px; font-weight:600; }
.funnel-error.is-visible{ display:block; }

/* Étape 1 : avertissement « un seul équipement par demande » */
.funnel-notice{ display:flex; gap:12px; align-items:flex-start; margin:-6px 0 20px; padding:13px 16px; background:#fdf6ec; border:1px solid #efd9b5; border-left:4px solid #d08a2e; border-radius:10px; color:#6b4a16; }
.funnel-notice svg{ flex-shrink:0; margin-top:1px; color:#d08a2e; }
.funnel-notice p{ margin:0; font-size:13.5px; line-height:1.55; }
.funnel-notice strong{ color:#5a3c0f; }

/* Étape 1 : cartes équipements */
.eq-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
@media(min-width:560px){ .eq-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(min-width:820px){ .eq-grid{ grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; } }
.eq-card{ position:relative; display:flex; flex-direction:column; align-items:center; text-align:center; gap:2px; padding:12px 8px 14px; border:1.5px solid var(--line); border-radius:12px; background:#fff; cursor:pointer; transition:border-color .15s, box-shadow .15s, transform .15s; }
.eq-card:hover{ border-color:#9fb0cc; transform:translateY(-2px); box-shadow:0 10px 22px -14px rgba(20,33,58,.45); }
.eq-card input{ position:absolute; opacity:0; pointer-events:none; }
.eq-card img{ width:100%; max-width:108px; height:auto; margin-bottom:4px; }
.eq-name{ font-size:13.5px; font-weight:800; color:var(--navy); line-height:1.25; }
.eq-sub{ font-size:11.5px; color:var(--tx-mute); }
.eq-card:has(input:checked){ border-color:#2f8a4c; box-shadow:0 0 0 3px rgba(47,138,76,.18); background:#f5fbf7; }
.eq-card:has(input:checked)::after{ content:""; position:absolute; top:8px; right:8px; width:20px; height:20px; border-radius:50%; background:#2f8a4c url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 12l4 4 8-8' stroke='%23fff' stroke-width='3.4' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/12px no-repeat; }
.eq-card:has(input:focus-visible){ outline:3px solid var(--navy-light); outline-offset:2px; }
.eq-autre{ margin-top:16px; }

/* Cases à cocher « tuile » (installé moi-même / pas de souci) */
.check-tile{ display:flex; align-items:center; gap:12px; padding:13px 16px; border:1.5px solid var(--line); border-radius:10px; cursor:pointer; font-size:14.5px; font-weight:700; color:var(--navy); background:var(--cloud); transition:border-color .15s, background .15s; }
.check-tile input{ width:20px; height:20px; accent-color:#2f8a4c; flex-shrink:0; margin:0; }
.check-tile:has(input:checked){ border-color:#2f8a4c; background:#f0f8f2; }

/* Suggestions (étape 4) */
.chips{ display:flex; flex-wrap:wrap; gap:8px; margin:0 0 14px; }
.chip{ font:inherit; font-size:12.5px; font-weight:600; color:var(--navy); background:var(--cloud); border:1px solid var(--line); border-radius:999px; padding:7px 12px; cursor:pointer; transition:all .15s; }
.chip:hover{ border-color:#9fb0cc; }
.chip.is-on{ background:var(--navy); color:#fff; border-color:var(--navy); }
.chip:disabled{ opacity:.4; cursor:not-allowed; }

/* Étape 5 : documents */
.doc-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
@media(min-width:640px){ .doc-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(min-width:900px){ .doc-grid{ grid-template-columns:repeat(5,minmax(0,1fr)); } }
.doc-tile{ position:relative; min-height:128px; border-radius:12px; min-width:0; }
.doc-pick{ width:100%; height:100%; min-height:128px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; padding:24px 8px 12px; font:inherit; text-align:center; background:#fafbfd; border:1.5px dashed #b7c3d6; border-radius:12px; cursor:pointer; color:var(--navy); transition:all .15s; }
.doc-pick:hover{ background:#f0f4fa; border-color:var(--navy); }
.doc-tile--facture .doc-pick{ background:#fbf6ef; border-color:#d9b98f; }
.doc-plus{ display:flex; align-items:center; justify-content:center; width:36px; height:36px; border-radius:50%; background:#fff; border:1px solid var(--line); color:var(--navy); }
.doc-label{ font-size:12.5px; font-weight:700; line-height:1.25; color:var(--navy); }
.doc-hint{ font-size:11px; color:var(--tx-mute); }
.doc-tag{ position:absolute; top:7px; left:7px; font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.04em; padding:3px 7px; border-radius:6px; background:#8a5a33; color:#fff; }
.doc-tag--rec{ background:var(--navy); }
.doc-tile.has-file{ border:1.5px solid #2f8a4c; background:#fff; overflow:hidden; display:flex; flex-direction:column; }
.doc-preview{ height:86px; background:var(--cloud); display:flex; align-items:center; justify-content:center; }
.doc-preview img{ width:100%; height:100%; object-fit:cover; display:block; }
.doc-pdf{ font-weight:800; font-size:14px; color:#fff; background:var(--terra); padding:8px 10px; border-radius:6px; }
.doc-spinner{ width:24px; height:24px; border-radius:50%; border:3px solid var(--line); border-top-color:var(--navy); animation:docSpin .8s linear infinite; }
@keyframes docSpin{ to{ transform:rotate(360deg); } }
.doc-meta{ padding:7px 9px 9px; display:flex; flex-direction:column; gap:2px; min-width:0; }
.doc-meta .doc-label{ font-size:11.5px; }
.doc-file{ font-size:11px; color:var(--tx-mute); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.doc-remove{ position:absolute; top:6px; right:6px; width:28px; height:28px; border-radius:50%; border:0; background:rgba(20,33,58,.8); color:#fff; font-size:18px; line-height:1; cursor:pointer; }
.doc-remove:hover{ background:var(--terra); }
.doc-counter{ margin:14px 0 6px; font-size:13.5px; color:var(--tx-soft); }
.doc-tips{ margin-top:6px; font-size:13.5px; color:var(--tx-soft); }
.doc-tips summary{ cursor:pointer; font-weight:700; color:var(--navy); }
.doc-tips ul{ margin:10px 0 0; padding-left:20px; line-height:1.6; }

/* Étape 6 : récapitulatif et paiement */
.recap{ border:1px solid var(--line); border-radius:12px; overflow:hidden; margin:14px 0 20px; }
.recap-row{ display:grid; grid-template-columns:1fr auto; gap:4px 12px; padding:12px 16px; border-bottom:1px solid var(--line); align-items:start; }
.recap-row:last-child{ border-bottom:0; }
@media(min-width:640px){ .recap-row{ grid-template-columns:130px 1fr auto; } }
.recap-k{ font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.04em; color:var(--tx-mute); padding-top:2px; }
.recap-v{ font-size:14.5px; color:var(--navy); font-weight:600; line-height:1.5; word-break:break-word; grid-column:1 / -1; }
.recap-v span{ font-weight:400; color:var(--tx-soft); font-size:13.5px; }
@media(min-width:640px){ .recap-v{ grid-column:auto; } }
.recap-edit{ grid-row:1; grid-column:2; font:inherit; font-size:12.5px; font-weight:700; color:var(--terra); background:none; border:0; cursor:pointer; padding:2px 0; text-decoration:underline; }
@media(min-width:640px){ .recap-edit{ grid-column:3; } }
.pay-box{ display:flex; flex-wrap:wrap; gap:14px 26px; align-items:center; background:var(--navy); color:#fff; border-radius:12px; padding:18px 22px; margin-bottom:20px; }
.pay-price{ display:flex; flex-direction:column; }
.pay-amount{ font-size:32px; font-weight:800; line-height:1; }
.pay-amount small{ font-size:14px; font-weight:600; opacity:.8; }
.pay-label{ font-size:12.5px; opacity:.8; margin-top:4px; }
.pay-old{ font-size:18px; font-weight:600; opacity:.6; margin-right:4px; }
.promo{ margin:-6px 0 18px; }
.promo-label{ display:block; font-size:14px; font-weight:700; color:var(--navy); margin-bottom:6px; }
.promo-label span{ font-weight:500; color:var(--tx-mute); }
.promo-row{ display:flex; gap:8px; max-width:420px; }
.promo-row input{ flex:1; min-width:0; text-transform:uppercase; letter-spacing:.04em; }
.promo-row .btn{ flex-shrink:0; padding:10px 16px; }
.promo.is-applied .promo-row input{ border-color:#2f8a4c; background:#f5fbf7; }
.promo-msg{ margin:6px 0 0; font-size:13.5px; color:var(--tx-soft); min-height:0; }
.promo-msg:empty{ display:none; }
.promo-msg.is-ok{ color:#2f8a4c; font-weight:700; }
.promo-msg.is-err{ color:var(--terra); font-weight:700; }
.checkout-notice{ margin:0 0 12px; padding:10px 14px; border-radius:10px; background:#fdf1f1; color:var(--terra); font-weight:700; font-size:14px; }
.pay-points{ list-style:none; margin:0; padding:0; font-size:13.5px; line-height:1.7; color:#dbe3f0; }
.pay-points li::before{ content:"✓ "; color:#7ed39a; font-weight:800; }
.check-line{ display:flex; align-items:flex-start; gap:10px; font-size:13px; line-height:1.5; color:var(--tx-soft); cursor:pointer; margin-bottom:8px; }
.check-line input{ width:18px; height:18px; margin-top:1px; flex-shrink:0; accent-color:#2f8a4c; }
.check-line a{ color:var(--terra); font-weight:700; }
.check-line--required{ font-size:14px; font-weight:700; color:var(--navy); padding:12px 14px; border:1.5px solid var(--line); border-radius:10px; margin-top:12px; }
.check-line--required.is-invalid, .check-line--required:has(.is-invalid){ border-color:var(--terra); }
.check-line--required:has(input:checked){ border-color:#2f8a4c; background:#f5fbf7; }
.email-confirm{ margin-top:14px; }
.email-confirm-head{ display:flex; flex-wrap:wrap; align-items:center; gap:6px 10px; margin:0 0 -4px; font-size:14px; color:var(--tx-soft); }
.email-confirm-head strong{ color:var(--navy); font-size:15px; word-break:break-all; }
.check-note{ font-size:12px; color:var(--tx-mute); margin:0 0 4px 28px; }

/* Choix du délai / rétractation (obligatoire) */
.retract{ margin:0 0 6px; border-radius:12px; }
.retract.is-invalid{ box-shadow:0 0 0 3px rgba(130,42,45,.18); }
.retract-title{ font-size:14px; font-weight:800; color:var(--navy); margin:0 0 10px; }
.retract-option{ display:flex; gap:12px; align-items:flex-start; padding:14px 16px; margin-bottom:10px; border:1.5px solid var(--line); border-radius:12px; cursor:pointer; background:#fff; transition:border-color .15s, background .15s; }
.retract-option input{ width:20px; height:20px; margin:2px 0 0; flex-shrink:0; accent-color:#2f8a4c; }
.retract-option:has(input:checked){ border-color:#2f8a4c; background:#f5fbf7; box-shadow:0 0 0 3px rgba(47,138,76,.14); }
.retract-body{ display:flex; flex-direction:column; gap:4px; }
.retract-body strong{ font-size:15px; color:var(--navy); }
.retract-date{ font-size:13px; font-weight:700; color:#2f8a4c; }
.retract-date:first-letter{ text-transform:uppercase; }
.retract-body small{ font-size:12.5px; line-height:1.5; color:var(--tx-soft); }

/* Navigation */
.funnel-nav{ display:flex; justify-content:space-between; align-items:center; gap:12px; margin-top:26px; padding-top:20px; border-top:1px solid var(--line); }
.funnel-nav .btn-lg{ padding:14px 26px; }
.funnel-pay{ background:#2f8a4c; color:#fff; box-shadow:0 12px 26px -10px rgba(47,138,76,.7); }
.funnel-pay:hover{ background:#256f3d; color:#fff; }
@media(max-width:480px){ .funnel-nav .btn-lg{ flex:1; padding:14px 16px; } .funnel-prev{ padding:14px 12px; } }
@media(max-width:560px){
  .funnel-nav:has(.funnel-pay:not([hidden])){ flex-wrap:wrap; }
  .funnel-pay{ order:-1; flex:1 1 100% !important; white-space:normal; }
  .funnel-nav:has(.funnel-pay:not([hidden])) .funnel-prev{ flex:1 1 100%; }
}
.funnel-secure{ text-align:center; font-size:12px; color:var(--tx-mute); margin:12px 0 0; }

/* Envoi en cours */
.funnel-sending{ padding:40px 10px; text-align:center; }
.sending-bar{ height:10px; background:var(--cloud); border-radius:999px; overflow:hidden; max-width:420px; margin:0 auto 16px; }
.sending-bar span{ display:block; height:100%; width:0; background:linear-gradient(90deg,#2f8a4c,#4fb26e); border-radius:999px; transition:width .3s ease; }
#sending-text{ font-weight:700; color:var(--navy); }

/* Résultat (retour de Stripe) */
.funnel-result{ text-align:center; padding:26px 6px 10px; }
.result-icon{ width:68px; height:68px; margin:0 auto 16px; border-radius:50%; display:flex; align-items:center; justify-content:center; color:#fff; background:var(--navy); }
.funnel-result.is-success .result-icon{ background:#2f8a4c; }
.funnel-result.is-error .result-icon{ background:var(--terra); }
.result-title{ font-size:clamp(22px,3vw,28px); margin-bottom:10px; }
.result-text{ max-width:560px; margin:0 auto 10px; color:var(--tx-soft); }
.result-ref{ font-weight:800; color:var(--navy); font-size:14px; }
.result-actions{ display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin-top:20px; }

/* Encart latéral */
.aside-box{ background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg); padding:22px; margin-bottom:16px; }
.aside-box h3{ font-size:17px; margin-bottom:12px; }
.aside-box--soft{ background:var(--cloud); font-size:13.5px; }
.aside-box--soft p{ margin:0; }
.aside-box--soft a{ color:var(--terra); font-weight:700; }
.aside-steps{ margin:0 0 16px; padding-left:20px; font-size:13.5px; line-height:1.55; color:var(--tx-soft); }
.aside-steps li{ margin-bottom:8px; }
.aside-steps strong{ color:var(--navy); }

/* CGV — version du 01/10/2026 */
.cgv-identity{ background:var(--cloud); border:1px solid var(--line); border-radius:var(--radius); padding:16px 20px; margin-bottom:30px; font-size:14px; }
.cgv-identity p{ margin:0 0 6px; }
.cgv-identity p:last-child{ margin:0; }
.cgv-callout--alert{ background:#fbeeee !important; border-left-color:var(--terra) !important; }
.cgv-callout--alert p:first-child strong{ color:var(--terra); }
.cgv-table-wrap{ overflow-x:auto; margin:6px 0 20px; }
.cgv-table{ width:100%; border-collapse:collapse; font-size:14px; min-width:560px; }
.cgv-table th{ background:var(--navy); color:#fff; text-align:left; padding:10px 12px; font-weight:700; }
.cgv-table td{ padding:10px 12px; border-bottom:1px solid var(--line); vertical-align:top; }
.cgv-table tbody tr:nth-child(even) td{ background:var(--cloud); }
.cgv-content .cgv-callout:not(.cgv-callout--alert){ border-left-color:var(--navy); background:#eef1f7; }
.cgv-content .cgv-callout:not(.cgv-callout--alert) p:first-child strong{ color:var(--navy); }
.cgv-table td:first-child{ white-space:nowrap; font-weight:600; }

/* Paiement intégré (formulaire Stripe dans la page) */
.funnel-checkout{ animation:funnelIn .28s ease; }
.checkout-head{ display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:16px; padding-bottom:14px; border-bottom:1px solid var(--line); }
.checkout-title{ margin:0; font-size:clamp(20px,2.6vw,24px); font-weight:800; color:var(--navy); }
.checkout-sub{ margin:2px 0 0; font-size:13px; color:var(--tx-mute); }
.checkout-lock{ display:inline-flex; align-items:center; gap:6px; font-size:12px; font-weight:800; color:#2f8a4c; background:#eef8f1; border:1px solid #cfe9d7; padding:6px 10px; border-radius:999px; white-space:nowrap; }
.checkout-frame{ min-height:420px; border-radius:12px; }
.checkout-loading{ display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; min-height:320px; color:var(--tx-soft); font-weight:600; font-size:14px; }
.checkout-note{ font-size:12.5px; color:var(--tx-mute); text-align:center; margin:16px 0 12px; }
.checkout-back{ display:flex; margin:0 auto; }

/* Page Expertise Protection Juridique */
.pj-law{ margin-top:32px; background:#eef1f7; border-left:4px solid var(--navy); border-radius:0 var(--radius) var(--radius) 0; padding:22px 26px; }
.pj-law h3{ font-size:18px; margin-bottom:10px; }
.pj-law p{ font-size:14.5px; margin-bottom:10px; }
.pj-law-ref{ font-size:12.5px !important; color:var(--tx-mute); font-style:italic; margin:0 !important; }
.pj-audiences{ display:grid; grid-template-columns:1fr; gap:20px; }
@media(min-width:900px){ .pj-audiences{ grid-template-columns:repeat(3,1fr); } }
.pj-card{ background:#fff; border:1px solid var(--line); border-top:4px solid var(--terra); border-radius:var(--radius-lg); padding:24px 24px 18px; box-shadow:var(--shadow); }
.pj-tag{ display:inline-block; font-size:11.5px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:#fff; background:var(--navy); padding:4px 10px; border-radius:999px; margin-bottom:12px; }
.pj-card h3{ font-size:18px; margin-bottom:12px; }
.pj-card ul{ margin:0; padding-left:18px; }
.pj-card li{ font-size:14px; color:var(--tx-soft); line-height:1.55; margin-bottom:8px; }
.pj-insurer-box{ background:var(--navy); color:#fff; border-radius:var(--radius-lg); padding:28px 30px; box-shadow:var(--shadow-lg); align-self:center; }
.pj-insurer-title{ font-size:13px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:#7ed39a; margin:0 0 14px; }
.pj-insurer-box ol{ margin:0; padding-left:20px; }
.pj-insurer-box li{ color:#dbe3f0; font-size:15px; line-height:1.6; margin-bottom:10px; }
.pj-insurer-box strong{ color:#fff; }

/* Protection juridique : section assureurs (mise en page propre) + partenariat */
.pj-split{ display:grid; grid-template-columns:1fr; gap:32px; align-items:center; }
@media(min-width:900px){ .pj-split{ grid-template-columns:1.15fr .85fr; gap:48px; } }
.pj-insurer-box ol{ list-style:decimal; }
.pj-insurer-box li{ display:list-item !important; text-align:left; }
.pj-insurer-box li strong{ color:#fff !important; display:inline !important; }
.pj-hero-insurer{ text-align:center; margin-top:18px; font-size:14.5px; color:#dbe3f0; }
.pj-open-partner{ font:inherit; font-weight:800; color:#fff; background:none; border:none; border-bottom:2px solid #7ed39a; padding:0 0 1px; cursor:pointer; }
.pj-hero-insurer .pj-open-partner:hover{ color:#7ed39a; }
.pj-partner-cta{ margin-top:22px; background:#fdf6ec; border:1px solid #efd9b5; border-left:4px solid var(--terra); border-radius:10px; padding:16px 18px; display:flex; flex-wrap:wrap; gap:12px 18px; align-items:center; }
.pj-partner-cta p{ margin:0; flex:1 1 260px; font-size:14.5px; }
.pj-partner-cta .pj-open-partner{ background:var(--terra) !important; color:#fff !important; border:none !important; padding:11px 22px !important; border-radius:8px; font-weight:800; }
.pj-partner-cta .pj-open-partner:hover{ background:#6f2326 !important; }
.pj-modal-overlay[hidden]{ display:none !important; }
.pj-modal{ max-width:640px !important; text-align:left !important; position:relative; max-height:92vh; overflow-y:auto; padding:28px 28px 22px !important; }
.pj-modal h3{ font-size:21px !important; margin-bottom:6px !important; padding-right:30px; }
.pj-modal-intro{ font-size:13.5px !important; margin-bottom:18px !important; }
.pj-modal .field{ margin-bottom:12px; }
.pj-modal .form-row{ margin-bottom:0; }
@media(min-width:560px){ .pj-modal .form-row{ grid-template-columns:1fr 1fr; } }
.pj-modal select{ width:100%; }
.pj-modal-x{ position:absolute; top:12px; right:14px; width:34px; height:34px; border-radius:50%; border:none; background:var(--cloud); color:var(--navy); font-size:22px; line-height:1; cursor:pointer; }
.pj-modal-x:hover{ background:var(--line); }
.pj-checks{ display:grid; grid-template-columns:1fr; gap:6px 14px; }
@media(min-width:560px){ .pj-checks{ grid-template-columns:1fr 1fr; } }
.pj-checks label{ display:flex !important; align-items:center; gap:8px; font-weight:500 !important; font-size:13.5px !important; color:var(--tx-soft) !important; margin:0 !important; cursor:pointer; }
.pj-checks input{ width:16px; height:16px; accent-color:var(--navy); }
.pj-modal .btn-block{ width:100%; margin:6px 0 0; }
body.pj-modal-open{ overflow:hidden; }

/* Accueil : macaron « Rapport exploitable » sur la vidéo */
.hero-seal{ position:absolute; left:14px; bottom:14px; z-index:3; width:108px; height:108px; border-radius:50%; background:var(--terra); color:#fff; text-decoration:none;
  display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; gap:2px; padding:12px;
  box-shadow:0 0 0 3px rgba(255,255,255,.9), 0 0 0 5px var(--terra), 0 10px 22px -8px rgba(0,0,0,.55); transform:rotate(-8deg); transition:transform .2s; }
.hero-seal:hover{ transform:rotate(-4deg) scale(1.04); color:#fff; }
.hero-seal svg{ margin-bottom:2px; }
.hero-seal-main{ font-size:12px; font-weight:800; line-height:1.1; text-transform:uppercase; letter-spacing:.02em; }
.hero-seal-sub{ font-size:8.5px; font-weight:600; line-height:1.25; opacity:.92; }
@media(max-width:640px){ .hero-seal{ width:92px; height:92px; left:10px; bottom:10px; padding:8px; } .hero-seal-main{ font-size:10.5px; } .hero-seal-sub{ font-size:7.5px; } .hero-seal svg{ width:16px; height:16px; } }

/* Accueil : valeur probante des rapports */
.proof-grid{ display:grid; grid-template-columns:1fr; gap:20px; }
@media(min-width:760px){ .proof-grid{ grid-template-columns:1fr 1fr; } }
.proof-card{ position:relative; background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg); padding:26px 26px 18px 26px; box-shadow:var(--shadow); }
.proof-num{ display:inline-flex; align-items:center; justify-content:center; width:34px; height:34px; border-radius:50%; background:var(--navy); color:#fff; font-weight:800; margin-bottom:10px; }
.proof-card h3{ font-size:18px; margin-bottom:10px; }
.proof-card p{ font-size:14.5px; line-height:1.65; }
.proof-ref{ font-size:12.5px !important; color:var(--tx-mute); font-style:italic; border-top:1px dashed var(--line); padding-top:10px; margin:12px 0 0 !important; }
.proof-note{ max-width:860px; margin:28px auto 0; font-size:13px; color:var(--tx-mute); text-align:center; line-height:1.6; }
.proof-note a{ color:var(--terra); font-weight:700; }

/* Contrôle de Conformité en Ligne : arrivée directe sur « Comment ça marche » */
#commencer{ scroll-margin-top:84px; }
.section--commencer{ padding-top:40px; }

/* ===== Pages locales, zones, conseils (référencement local) ===== */
.loc-kicker{ font-size:13px; font-weight:700; color:#b9c6dc; margin:0 0 10px; }
.loc-kicker a{ color:#fff; text-decoration:underline; text-underline-offset:3px; }
.loc-services{ display:grid; grid-template-columns:1fr; gap:16px; }
@media(min-width:640px){ .loc-services{ grid-template-columns:1fr 1fr; } }
@media(min-width:1000px){ .loc-services{ grid-template-columns:repeat(3,1fr); } }
.loc-service, .loc-zone{ display:flex; flex-direction:column; gap:6px; background:#fff; border:1px solid var(--line); border-top:4px solid var(--terra); border-radius:var(--radius-lg); padding:20px 22px; box-shadow:var(--shadow); text-decoration:none; transition:transform .15s, box-shadow .15s; }
.loc-service:hover, .loc-zone:hover{ transform:translateY(-3px); box-shadow:var(--shadow-lg); }
.loc-service strong, .loc-zone strong{ color:var(--navy); font-size:16.5px; }
.loc-service span, .loc-zone span{ color:var(--tx-soft); font-size:14px; line-height:1.55; }
.loc-service em, .loc-zone em{ font-style:normal; font-weight:700; font-size:13.5px; color:var(--terra); margin-top:auto; padding-top:6px; }
.loc-zones{ display:grid; grid-template-columns:1fr; gap:16px; }
@media(min-width:700px){ .loc-zones{ grid-template-columns:1fr 1fr; } }
@media(min-width:1000px){ .loc-zones{ grid-template-columns:repeat(3,1fr); } }
.loc-text p, .loc-text li{ font-size:15.5px; line-height:1.75; color:var(--tx-soft); }
.loc-text h2{ font-size:22px; margin:28px 0 10px; }
.loc-text ul{ padding-left:20px; }
.loc-communes{ margin-top:26px; background:var(--cloud); border-left:4px solid var(--navy); border-radius:0 var(--radius) var(--radius) 0; padding:18px 22px; }
.loc-communes h3{ font-size:16px; margin-bottom:6px; }
.loc-communes p{ margin:0; font-size:14.5px; line-height:1.7; color:var(--tx-soft); }
.loc-faq{ display:flex; flex-direction:column; gap:10px; }
.loc-faq-item{ background:#fff; border:1px solid var(--line); border-radius:10px; padding:0 18px; }
.loc-faq-item summary{ cursor:pointer; list-style:none; font-weight:700; color:var(--navy); padding:15px 28px 15px 0; position:relative; font-size:15px; }
.loc-faq-item summary::-webkit-details-marker{ display:none; }
.loc-faq-item summary::after{ content:"+"; position:absolute; right:0; top:12px; font-size:22px; color:var(--terra); }
.loc-faq-item[open] summary::after{ content:"–"; }
.loc-faq-item p{ margin:0 0 16px; font-size:14.5px; line-height:1.7; color:var(--tx-soft); }
.loc-faq-item a, .loc-text a, .art-body a{ color:var(--terra); font-weight:700; }
/* Articles */
.art-meta{ font-size:13.5px; color:#b9c6dc; margin-top:12px !important; }
.art-meta a{ color:#fff; text-decoration:underline; }
.art-wrap{ display:grid; grid-template-columns:1fr; gap:28px; max-width:1060px; }
@media(min-width:960px){ .art-wrap{ grid-template-columns:240px 1fr; align-items:start; } .art-toc{ position:sticky; top:100px; } }
.art-toc{ background:var(--cloud); border-radius:var(--radius); padding:18px 20px; }
.art-toc p{ font-weight:800; color:var(--navy); margin:0 0 8px; font-size:13px; text-transform:uppercase; letter-spacing:.05em; }
.art-toc ol{ margin:0; padding-left:18px; }
.art-toc li{ font-size:13.5px; margin-bottom:6px; line-height:1.4; }
.art-toc a{ color:var(--tx-soft); }
.art-body{ min-width:0; }
.art-body h2{ font-size:22px; margin:30px 0 12px; scroll-margin-top:100px; }
.art-body h2:first-child{ margin-top:0; }
.art-body p, .art-body li{ font-size:16px; line-height:1.75; color:var(--tx-soft); }
.art-body ul{ padding-left:22px; margin-bottom:16px; }
.art-body li{ margin-bottom:8px; }
.art-body .loc-faq{ margin-top:30px; }
.art-disclaimer{ margin-top:26px; font-size:13px !important; color:var(--tx-mute) !important; font-style:italic; border-top:1px dashed var(--line); padding-top:14px; }
.art-cta{ margin-top:22px; background:var(--navy); color:#fff; border-radius:var(--radius-lg); padding:22px 24px; display:flex; flex-wrap:wrap; gap:14px 20px; align-items:center; justify-content:space-between; }
.art-cta p{ margin:0; color:#dbe3f0 !important; flex:1 1 260px; }
.art-cta p strong{ color:#fff; }
.art-cta .btn-ghost{ color:#fff; border-color:rgba(255,255,255,.5); }
/* Accueil : villes */
.home-cities{ display:flex; flex-wrap:wrap; justify-content:center; gap:12px; }
.home-cities a{ background:#fff; border:1.5px solid var(--line); color:var(--navy); font-weight:700; padding:12px 20px; border-radius:999px; text-decoration:none; transition:all .15s; }
.home-cities a:hover{ border-color:var(--terra); color:var(--terra); }
.home-cities .home-cities-all{ background:var(--terra); color:#fff; border-color:var(--terra); }
.home-cities .home-cities-all:hover{ color:#fff; background:#6f2326; }
/* Petits écrans : les boutons à texte long passent à la ligne au lieu de déborder */
@media(max-width:480px){ .btn{ white-space:normal; text-align:center; max-width:100%; } }
/* Grilles de cartes à 3 colonnes : une colonne sur mobile, deux sur tablette, trois sur ordinateur */
@media(min-width:960px){ .cert-grid--3{ grid-template-columns:repeat(3,1fr); } }
.art-body ul, .loc-text ul{ list-style:disc; }
.art-body ul li::marker, .loc-text ul li::marker{ color:var(--terra); }
.art-toc ol{ list-style:none; padding-left:0; }
/* Accueil : encart rouge « Rapport exploitable » */
.hero-actions .hero-proof{ display:inline-flex; align-items:center; justify-content:center; gap:10px; }
.hero-proof span{ display:flex; flex-direction:column; text-align:left; line-height:1.15; }
.hero-proof small{ font-size:12px; font-weight:600; opacity:.85; margin-top:2px; }
/* Conseils : vignettes d'articles */
.art-grid{ display:grid; grid-template-columns:1fr; gap:22px; }
@media(min-width:700px){ .art-grid{ grid-template-columns:1fr 1fr; } }
@media(min-width:1060px){ .art-grid{ grid-template-columns:repeat(3,1fr); } }
.art-card{ display:flex; flex-direction:column; gap:8px; background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow); text-decoration:none; transition:transform .15s, box-shadow .15s; padding-bottom:18px; }
.art-card:hover{ transform:translateY(-3px); box-shadow:var(--shadow-lg); }
.art-card img{ width:100%; height:auto; display:block; aspect-ratio:1200/630; object-fit:cover; border-bottom:1px solid var(--line); }
.art-card-date{ font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:var(--terra); padding:6px 20px 0; }
.art-card strong{ color:var(--navy); font-size:17px; line-height:1.35; padding:0 20px; }
.art-card-desc{ color:var(--tx-soft); font-size:14px; line-height:1.55; padding:0 20px; }
.art-card em{ font-style:normal; font-weight:700; font-size:13.5px; color:var(--terra); padding:4px 20px 0; margin-top:auto; }
.art-figure{ margin:0 0 26px; border-radius:var(--radius-lg); overflow:hidden; border:1px solid var(--line); }
.art-figure img{ width:100%; height:auto; display:block; }
/* Accueil : filtre par département */
.dept-filter{ display:flex; flex-direction:column; align-items:center; gap:18px; }
.dept-tabs{ display:flex; flex-wrap:wrap; justify-content:center; gap:8px; }
.dept-tab{ font:inherit; font-weight:800; font-size:14px; color:var(--navy); background:#fff; border:2px solid var(--line); padding:10px 18px; border-radius:999px; cursor:pointer; transition:all .15s; }
.dept-tab:hover{ border-color:var(--navy); }
.dept-tab.is-active{ background:var(--navy); color:#fff; border-color:var(--navy); }
.dept-panel{ animation:funnelIn .25s ease; }
.dept-panel[hidden]{ display:none !important; }
.dept-all{ margin-top:4px; }
/* Accueil : coordonnées des bureaux */
.zone-item a[href^="tel:"]{ display:block; margin-top:2px; }
/* Articles : bouton lisible dans le bandeau final */
.art-body .art-cta .btn-terra, .art-body .art-cta .btn-terra:hover{ color:#fff !important; }
.art-body .art-cta .btn-ghost, .art-body .art-cta .btn-ghost:hover{ color:#fff !important; border-color:rgba(255,255,255,.6); }
/* Parcours : dimensionnement, documents, entretien, avertissement */
.ctx-disclaimer{ font-size:12.5px; line-height:1.55; color:#6b4a16; background:#fdf6ec; border:1px solid #efd9b5; border-radius:8px; padding:10px 12px; margin:0 0 14px; }
.note-block, .maint-block{ margin-top:18px; padding:16px 18px; background:var(--cloud); border:1px solid var(--line); border-radius:12px; }
.note-title{ font-weight:800; color:var(--navy); margin:0 0 4px; font-size:15px; }
.note-tile{ max-width:220px; }
.note-tile .doc-tile{ min-height:128px; }
.docs-checklist{ display:grid; grid-template-columns:1fr; gap:8px; }
@media(min-width:640px){ .docs-checklist{ grid-template-columns:1fr 1fr; } }
.doc-check{ display:flex; align-items:flex-start; gap:10px; padding:11px 14px; border:1.5px solid var(--line); border-radius:10px; background:#fff; cursor:pointer; font-size:14px; color:var(--navy); font-weight:600; line-height:1.35; transition:border-color .15s, background .15s; }
.doc-check input{ width:18px; height:18px; margin-top:1px; flex-shrink:0; accent-color:#2f8a4c; }
.doc-check:has(input:checked){ border-color:#2f8a4c; background:#f0f8f2; }
.maint-row{ padding:10px 0; border-top:1px dashed var(--line); }
.maint-row:first-child{ border-top:none; padding-top:0; }
.maint-label{ display:block; font-weight:700; color:var(--navy); font-size:14px; margin-bottom:6px; }
.maint-inputs{ display:flex; flex-wrap:wrap; gap:10px 16px; align-items:center; }
.maint-inputs input[type="date"]{ padding:9px 12px; border:1.5px solid var(--line); border-radius:8px; font:inherit; }
.maint-unknown{ display:flex; align-items:center; gap:8px; font-size:13.5px; color:var(--tx-soft); cursor:pointer; }
.maint-unknown input{ width:16px; height:16px; accent-color:var(--navy); }
.funnel-progress li[hidden]{ display:none !important; }
@media(min-width:640px){ .funnel-progress li em{ font-size:10.5px; } }
.maint-extra{ margin-top:14px; display:grid; gap:8px; }
.maint-extra[hidden]{ display:none !important; }

/* Fenêtre « Exemple de rapport » */
.rpt-overlay{ padding:16px; }
.rpt-modal{ background:#fff; border-radius:var(--radius-lg); box-shadow:var(--shadow-lg); width:100%; max-width:900px; max-height:94vh; display:flex; flex-direction:column; overflow:hidden; }
.rpt-head{ display:flex; justify-content:space-between; align-items:center; gap:12px; padding:16px 20px; border-bottom:1px solid var(--line); background:#fff; }
.rpt-title{ margin:0; font-size:19px; font-weight:800; color:var(--navy); }
.rpt-sub{ margin:2px 0 0; font-size:13px; color:var(--tx-mute); }
.rpt-actions{ display:flex; align-items:center; gap:10px; flex-shrink:0; }
.rpt-x{ width:38px; height:38px; border-radius:50%; border:none; background:var(--cloud); color:var(--navy); font-size:24px; line-height:1; cursor:pointer; }
.rpt-x:hover{ background:var(--line); }
.rpt-body{ overflow-y:auto; padding:18px; background:#e9edf3; display:flex; flex-direction:column; align-items:center; gap:16px; -webkit-overflow-scrolling:touch; }
.rpt-page{ margin:0; width:100%; max-width:820px; position:relative; }
.rpt-page::after{ content:""; position:absolute; inset:0 0 22px 0; }
.rpt-body, .rpt-page img{ -webkit-user-select:none; user-select:none; -webkit-touch-callout:none; }
.rpt-page img{ pointer-events:none; }
@media print{ .rpt-overlay{ display:none !important; } }
.rpt-page img{ width:100%; height:auto; display:block; background:#fff; box-shadow:0 6px 18px -8px rgba(20,33,58,.35); border-radius:3px; }
.rpt-page figcaption{ text-align:center; font-size:12px; color:var(--tx-mute); margin-top:6px; }
.rpt-foot{ padding:12px 20px; border-top:1px solid var(--line); text-align:center; background:#fff; }
@media(max-width:560px){
  .rpt-overlay{ padding:0; }
  .rpt-modal{ max-height:100vh; height:100%; border-radius:0; }
  .rpt-head{ padding:12px 14px; flex-wrap:wrap; }
  .rpt-title{ font-size:16.5px; }
  .rpt-body{ padding:10px; gap:10px; }
}

.expertise-note{ margin:12px 0 0; font-size:12.5px; line-height:1.55; color:var(--tx-mute); font-style:italic; }

/* ---------- Expertise en ligne : offre, réassurance, extraits, expert ---------- */
@media(max-width:859px){ .split--text-first .split-media{ order:2; } }
.photo-expert{ position:relative; }
.expert-badge{ position:absolute; right:12px; bottom:12px; background:var(--terra); color:#fff; font-weight:700; font-size:13.5px; padding:9px 14px; border-radius:999px; box-shadow:0 8px 20px -6px rgba(0,0,0,.45); text-decoration:none; transition:transform .15s; }
.expert-badge:hover{ transform:translateY(-2px); color:#fff; }
.offre-box{ background:#fdf3f2; border:1.5px solid var(--terra); border-radius:12px; padding:12px 16px; margin:4px 0 16px; max-width:420px; }
.offre-prix{ margin:0; font-size:15px; color:var(--navy); }
.offre-prix s{ color:var(--tx-mute); font-size:18px; margin-right:6px; }
.offre-prix strong{ font-size:30px; color:var(--terra); font-weight:800; }
.offre-txt{ margin:2px 0 0; font-size:13.5px; color:var(--navy); }
.prix-normal{ font-size:14px; font-weight:700; color:var(--navy); margin-bottom:18px; }
.reassurance{ margin:-2px 0 2px; font-size:13px; font-weight:600; color:var(--tx-soft); text-align:center; }
.offre-legal{ margin:0; font-size:11.5px; line-height:1.5; color:var(--tx-mute); }
.rpt-extraits{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; max-width:900px; margin:26px auto 0; }
.rpt-extrait{ background:none; border:none; padding:0; cursor:pointer; text-align:center; font:inherit; }
.rpt-extrait img{ width:100%; height:auto; display:block; border-radius:6px; box-shadow:0 10px 26px -12px rgba(20,33,58,.45); background:#fff; transition:transform .2s; -webkit-user-select:none; user-select:none; -webkit-touch-callout:none; pointer-events:none; }
.rpt-extrait:hover img{ transform:translateY(-4px); }
.rpt-extrait span{ display:block; margin-top:10px; font-size:13.5px; font-weight:700; color:var(--navy); }
@media(max-width:639px){ .rpt-extraits{ grid-template-columns:repeat(3, 1fr); gap:8px; } .rpt-extrait span{ font-size:11px; } }
.expert-card{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:16px 24px; max-width:900px; margin:34px auto 0; background:#fff; border:1px solid var(--line); border-left:4px solid var(--terra); border-radius:12px; padding:18px 22px; }
.expert-card > div{ flex:1 1 320px; }
.expert-card-k{ margin:0; font-size:12px; text-transform:uppercase; letter-spacing:.08em; color:var(--terra); font-weight:800; }
.expert-card-name{ margin:2px 0 4px; font-size:19px; font-weight:800; color:var(--navy); }
.expert-card-txt{ margin:0; font-size:14.5px; }

/* ---------- Page publicité (offre-expertise-en-ligne.html) : sans menu ---------- */
.lp-header{ background:#fff; border-bottom:1px solid var(--line); }
.lp-header-in{ display:flex; align-items:center; justify-content:space-between; gap:12px; padding-top:10px; padding-bottom:10px; }
.lp-logo img{ height:44px; width:auto; display:block; }
.lp-tel{ font-weight:800; color:var(--navy); text-decoration:none; font-size:15px; white-space:nowrap; }
.lp-hero{ background:var(--navy); color:#fff; padding:30px 0 34px; }
.lp-hero-grid{ display:grid; gap:20px; align-items:center; }
.lp-hero h1{ color:#fff; font-size:clamp(24px,5.4vw,40px); line-height:1.15; margin:0 0 12px; }
.lp-lead{ color:#dbe3f0; font-size:16.5px; margin:0 0 10px; }
.lp-lead strong{ color:#fff; }
.lp-equip{ color:#aebbd1; font-size:13.5px; margin:0; }
.lp-card{ background:#fff; color:var(--tx); border-radius:14px; padding:18px 18px 14px; box-shadow:0 18px 40px -16px rgba(0,0,0,.5); }
.lp-card-k{ margin:0 0 4px; font-size:12px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--terra); }
.lp-card .offre-prix{ margin:0 0 2px; }
.lp-card .offre-txt{ margin:0 0 12px; }
.lp-card .btn{ margin-top:10px; }
.lp-card .reassurance{ margin:8px 0 4px; }
.lp-link{ display:block; width:100%; background:none; border:none; color:var(--navy); font-weight:700; font-size:14px; cursor:pointer; padding:6px; text-decoration:underline; }
.lp-steps{ display:grid; gap:16px; max-width:1000px; margin:0 auto; }
.lp-step{ background:#fff; border:1px solid var(--line); border-radius:12px; padding:18px; }
.lp-step span{ display:inline-flex; width:32px; height:32px; border-radius:50%; background:var(--terra); color:#fff; font-weight:800; align-items:center; justify-content:center; }
.lp-step h3{ margin:10px 0 6px; font-size:17px; }
.lp-step p{ margin:0; font-size:14.5px; }
.lp-two{ display:grid; gap:30px; }
.lp-list{ list-style:none; padding:0; margin:14px 0 0; }
.lp-list li{ padding:8px 0 8px 28px; position:relative; border-bottom:1px solid var(--line); }
.lp-list li::before{ content:"!"; position:absolute; left:0; top:8px; width:20px; height:20px; border-radius:50%; background:var(--terra); color:#fff; font-weight:800; font-size:13px; text-align:center; line-height:20px; }
.lp-faq{ border-bottom:1px solid var(--line); padding:10px 0; }
.lp-faq summary{ cursor:pointer; font-weight:700; color:var(--navy); }
.lp-faq p{ margin:8px 0 0; font-size:14.5px; }
.lp-footer{ background:var(--navy); color:#c9d3e3; padding:20px 0; font-size:13px; text-align:center; }
.lp-footer p{ margin:4px 0; }
.lp-footer a{ color:#fff; }
@media(min-width:860px){
  .lp-hero{ padding:56px 0 60px; }
  .lp-hero-grid{ grid-template-columns:1.3fr 1fr; gap:48px; }
  .lp-steps{ grid-template-columns:repeat(3,1fr); }
  .lp-two{ grid-template-columns:1fr 1fr; gap:48px; }
}
.offre-bandeau{ display:inline-block; margin-top:14px !important; background:#fff; color:var(--navy) !important; border-left:4px solid var(--terra); border-radius:8px; padding:8px 14px; font-size:14px !important; }
.offre-bandeau s{ color:var(--tx-mute); }
.offre-bandeau strong{ color:var(--terra); }

/* ---------- Parcours en 5 étapes : effort, prix, photos guidées, dossier ---------- */
.funnel-effort{ margin:0 0 10px; text-align:center; font-size:13.5px; font-weight:700; color:var(--terra); letter-spacing:.02em; }
.funnel-price{ margin:10px 0 0; text-align:center; font-size:14px; color:var(--navy); background:#f4f6fa; border-radius:999px; padding:7px 14px; }
.funnel-price s{ color:var(--tx-mute); margin-right:4px; }
.funnel-price strong{ color:var(--terra); }
.funnel-privacy{ margin:10px 0 0; font-size:12.5px; line-height:1.5; color:var(--tx-mute); }
.funnel-privacy a{ color:var(--navy); }
.check-tile small{ color:var(--tx-mute); font-weight:500; }
.funnel-sub{ margin:22px 0 4px; font-size:17px; color:var(--navy); padding-top:16px; border-top:1px solid var(--line); }
.field-hint--reassure{ color:#2f8a4c !important; font-weight:600; }
.photo-guide{ display:grid; gap:12px; margin:14px 0 6px; }
@media(min-width:700px){ .photo-guide{ grid-template-columns:1fr 1fr; } }
.guide-tile{ display:flex; gap:14px; align-items:flex-start; border:1.5px dashed #c5cfdd; border-radius:12px; padding:14px; background:#fbfcfe; }
.guide-tile.has-file{ border-style:solid; border-color:#2f8a4c; background:#f5fbf7; }
.guide-tile--facture:not(.has-file){ border-color:#d9dee8; }
.guide-picto{ flex:0 0 64px; height:64px; border-radius:10px; background:#eef2f8; color:var(--navy); display:flex; align-items:center; justify-content:center; }
.guide-preview{ flex:0 0 64px; height:64px; border-radius:10px; overflow:hidden; background:#eef2f8; display:flex; align-items:center; justify-content:center; }
.guide-preview img{ width:100%; height:100%; object-fit:cover; }
.guide-body{ flex:1; min-width:0; }
.guide-title{ margin:0; font-weight:800; color:var(--navy); font-size:15px; }
.guide-title small{ font-weight:500; color:var(--tx-mute); }
.guide-hint{ margin:2px 0 8px; font-size:13px; color:var(--tx-soft); line-height:1.4; overflow-wrap:anywhere; }
.guide-btns{ display:flex; flex-wrap:wrap; gap:8px 14px; align-items:center; }
.guide-cam{ padding:9px 14px !important; font-size:14px !important; cursor:pointer; }
.guide-gal{ background:none; border:none; padding:4px 0; font:inherit; font-size:13.5px; font-weight:700; color:var(--navy); text-decoration:underline; cursor:pointer; }
.up-state{ display:inline-block; font-size:12px; font-weight:700; border-radius:999px; padding:2px 9px; margin:0 0 8px; }
.up-state--ok{ background:#e3f4e8; color:#2f8a4c; }
.up-state--wait{ background:#eef2f8; color:var(--navy); }
.up-state--err{ background:#fdecec; color:var(--terra); }
.doc-meta .up-state{ margin:4px 0 0; }
.later-box{ margin:12px 0; padding:12px 14px; border-radius:10px; background:#f4f6fa; }
.later-box p{ margin:0 0 8px; font-size:14px; color:var(--navy); }
.later-msg{ margin:8px 0 0 !important; font-size:13.5px !important; }
.later-msg:empty{ display:none; }
.later-msg.is-ok{ color:#2f8a4c !important; font-weight:700; }
.later-msg.is-err{ color:var(--terra) !important; font-weight:700; }
.funnel-more{ margin:12px 0; border:1px solid var(--line); border-radius:10px; padding:0 14px; }
.funnel-more > summary{ cursor:pointer; padding:12px 0; font-weight:700; color:var(--navy); }
.funnel-more > summary small{ font-weight:500; color:var(--tx-mute); }
.funnel-more[open]{ padding-bottom:14px; }
.complements-in .note-title{ margin-top:6px; }
.inapp-banner{ background:#fff6e6; border:1px solid #f0d49b; border-left:4px solid #c47f17; border-radius:10px; padding:12px 14px; margin:0 0 14px; }
.inapp-banner p{ margin:0 0 6px; font-size:14px; color:var(--navy); }
.inapp-banner p:last-child{ margin:0; color:var(--tx-soft); font-size:13px; }
.fx-consent{ position:fixed; left:12px; right:12px; bottom:12px; z-index:9999; max-width:720px; margin:0 auto; background:#fff; border:1px solid var(--line); border-radius:14px; box-shadow:0 18px 40px -12px rgba(20,33,58,.4); padding:14px 16px; display:flex; flex-wrap:wrap; gap:10px 16px; align-items:center; }
.fx-consent p{ margin:0; flex:1 1 320px; font-size:13.5px; line-height:1.5; color:var(--navy); }
.fx-consent a{ color:var(--terra); }
.fx-consent-btns{ display:flex; gap:10px; }
.fx-consent-btns .btn{ padding:9px 18px !important; font-size:14px !important; min-width:110px; }
.expert-card-quote{ margin:8px 0 0; font-size:14.5px; font-style:italic; color:var(--navy); }
.expert-card-quote a{ color:var(--terra); font-weight:700; font-style:normal; white-space:nowrap; }
/* Bandeau du haut réduit (page expertise en ligne : les étapes, le prix et le bouton restent visibles dès l'arrivée) */
.page-hero--compact{ padding:22px 0 20px; }
.page-hero--compact h1{ font-size:clamp(24px,3.2vw,34px); margin-bottom:4px; }
.page-hero--compact p{ font-size:15.5px; line-height:1.5; }
.section--commencer{ padding-top:28px; }
#commencer{ scroll-margin-top:90px; }

/* ---------- Prix homogène sur tout le site : 120 € barré, puis en rouge le prix réduit et le code ---------- */
.prix-bloc{ margin:0 0 16px; }
.prix-bloc p{ margin:0; }
.prix-ligne{ font-size:14px; font-weight:700; color:var(--navy); }
.prix-bloc.is-offre .prix-ref{ text-decoration:line-through; text-decoration-thickness:2px; color:var(--tx-mute); font-weight:600; }
.prix-promo{ margin-top:3px !important; font-size:15px; font-weight:600; color:#b3261e; }
.prix-promo strong{ color:#b3261e; font-weight:800; }
.prix-bloc--grand .prix-ligne{ font-size:22px; }
.prix-bloc--grand .prix-promo{ font-size:15px; line-height:1.45; }
.prix-bloc--grand .prix-promo strong:first-child{ font-size:30px; }
.prix-bloc--centre{ text-align:center; }
.prix-inline{ display:inline; margin:0; }
.prix-inline .prix-promo{ margin:0 !important; font-size:inherit; }
.funnel-price.prix-bloc{ margin:10px 0 0; background:#f4f6fa; border-radius:12px; padding:7px 14px; }
.funnel-price .prix-ligne{ font-weight:600; }
/* Un élément masqué (attribut hidden) reste masqué, quel que soit son style d'affichage */
[hidden]{ display:none !important; }
/* Parcours : bandeau du haut réduit au minimum, pour laisser la place aux étapes */
.page-hero--funnel.page-hero--compact{ padding:16px 0 14px; }
.page-hero--funnel.page-hero--compact h1{ font-size:clamp(20px,2.6vw,28px); margin-bottom:2px; }
.funnel-hero-line{ font-size:13.5px !important; color:#c8d2e4; }
@media(max-width:639px){ .page-hero--funnel.page-hero--compact{ padding:12px 0 10px; } .funnel-hero-line{ font-size:12.5px !important; } }

/* ---------- « Continuer plus tard » : bouton + fenêtre ---------- */
.funnel-later-nav{ background:none; border:none; color:var(--navy); font:inherit; font-size:14px; font-weight:700; text-decoration:underline; text-underline-offset:3px; cursor:pointer; padding:8px 6px; margin-left:auto; margin-right:4px; }
.funnel-later-nav:disabled{ opacity:.5; cursor:wait; }
@media(max-width:600px){
  .funnel-nav{ flex-wrap:wrap; }
  .funnel-later-nav{ order:3; flex:1 1 100%; margin:2px 0 0; text-align:center; }
}
.later-modal{ position:relative; background:#fff; border-radius:var(--radius-lg); box-shadow:var(--shadow-lg); max-width:460px; width:100%; padding:30px 26px 24px; text-align:center; max-height:92vh; overflow:auto; }
.later-modal h3{ color:var(--navy); font-size:20px; margin:0 0 12px; }
.later-modal p{ color:var(--tx-soft); font-size:14.5px; line-height:1.6; margin:0 0 12px; }
.later-modal strong{ color:var(--navy); }
.later-ico{ width:52px; height:52px; line-height:52px; margin:0 auto 12px; border-radius:50%; background:#2f8a4c; color:#fff; font-size:26px; font-weight:800; }
.later-delai{ background:#f4f6fa; border-radius:10px; padding:10px 12px; }
.later-rappel{ border:1px solid var(--line); border-radius:12px; padding:14px; margin:4px 0 12px; }
.later-rappel p{ margin:0 0 10px; font-weight:700; color:var(--navy); }
.later-rappel .btn{ width:100%; padding:12px 14px !important; font-size:14.5px !important; }
.later-rappel .btn small{ font-weight:500; opacity:.85; }
.later-ok{ margin:0 !important; color:#2f8a4c !important; font-weight:700; }
.later-note{ font-size:12.5px !important; color:var(--tx-mute) !important; }
.later-modal .later-fermer{ width:100%; margin-top:4px; }
.later-x{ position:absolute; top:10px; right:12px; width:34px; height:34px; border:none; border-radius:50%; background:var(--cloud); color:var(--navy); font-size:22px; line-height:1; cursor:pointer; }
.later-rappel .btn{ display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; line-height:1.3; }
.later-rappel .btn small{ display:block; font-size:12.5px; }
/* Encart « Comment ça se passe ? » : ligne « Vous réglez » avec la remise */
.aside-prix.prix-bloc{ margin:0 0 8px; }
.aside-prix .prix-promo{ display:block; margin-top:2px !important; font-size:14.5px; }
.aside-prix .prix-promo[hidden]{ display:none !important; }

/* Nos partenaires : onglets + bandeau Batirapport */
.part-tabs{ background:var(--white); border-bottom:1px solid var(--line); position:sticky; top:82px; z-index:20; }
.part-tabs .container{ display:flex; gap:8px; overflow-x:auto; padding-top:12px; padding-bottom:12px; scrollbar-width:none; }
.part-tabs .container::-webkit-scrollbar{ display:none; }
.part-tabs a{ flex:0 0 auto; padding:8px 16px; border-radius:999px; border:1px solid var(--line); color:var(--navy); font-size:14px; font-weight:600; text-decoration:none; white-space:nowrap; }
.part-tabs a:hover,.part-tabs a:focus-visible{ border-color:var(--terra); color:var(--terra); }
#experts,#application,#digital,#formation{ scroll-margin-top:140px; }
.bati-banner{ display:grid; grid-template-columns:1fr; gap:28px; align-items:center; background:var(--navy); color:#fff; border-radius:var(--radius-lg); padding:28px; box-shadow:var(--shadow); max-width:1000px; margin:0 auto; }
.bati-cover{ display:block; max-width:170px; margin:0 auto; }
.bati-cover img{ width:100%; height:auto; display:block; border-radius:6px; box-shadow:0 18px 40px -16px rgba(0,0,0,.6); transform:rotate(-2deg); transition:transform .25s; }
.bati-cover:hover img{ transform:rotate(0) scale(1.02); }
.bati-logo{ font-family:Georgia,'Times New Roman',serif; font-size:34px; font-weight:700; margin:0 0 4px; color:#fff; }
.bati-logo span{ color:#e2787b; }
.bati-tagline{ font-family:Georgia,'Times New Roman',serif; font-size:19px; margin:0 0 14px; color:#fff; }
.bati-body p{ color:rgba(255,255,255,.85); }
.bati-list{ list-style:none; padding:0; margin:14px 0 22px; display:grid; gap:7px; }
.bati-list li{ position:relative; padding-left:22px; font-size:14.5px; color:rgba(255,255,255,.9); }
.bati-list li::before{ content:"✓"; position:absolute; left:0; color:#e2787b; font-weight:700; }
.bati-actions{ display:flex; flex-wrap:wrap; gap:12px; }
.bati-dl{ background:transparent; border-color:rgba(255,255,255,.55); color:#fff; }
.bati-dl:hover{ background:rgba(255,255,255,.1); border-color:#fff; color:#fff; }
.bati-dl small{ opacity:.75; font-weight:500; }
@media(max-width:520px){ .bati-actions .btn{ width:100%; justify-content:center; } .bati-banner{ padding:22px 18px; } }
@media(min-width:800px){ .bati-banner{ grid-template-columns:240px 1fr; padding:36px 40px; gap:40px; } .bati-cover{ max-width:240px; } }
/* Photo alignée en haut du texte (expertise en ligne) */
@media(min-width:860px){ .split--top{ align-items:start; } .split--top .split-media{ padding-top:6px; } }

/* Bouton « Une question ? Faites le point avec un expert » (menu du haut) */
.header-cta--question{ flex-direction:column; gap:2px; background:transparent; color:#fff; border:1.5px solid rgba(255,255,255,.55); box-shadow:none; font-weight:800; }
.header-cta--question small{ display:block; font-weight:600; font-size:.86em; opacity:.85; line-height:1.15; }
.header-cta--question:hover{ background:rgba(255,255,255,.1); border-color:#fff; color:#fff; }
@media(min-width:900px) and (max-width:1179px){ .header-cta--question small{ display:none; } }

/* ===================== Consultation avec un expert ===================== */
.cs-intro{ display:grid; gap:32px; align-items:start; }
@media(min-width:900px){ .cs-intro{ grid-template-columns:minmax(0,1fr) 340px; gap:48px; } }
.cs-intro-txt h2{ font-size:clamp(24px,3vw,32px); margin:10px 0 16px; }
.cs-intro-txt p{ color:var(--tx-soft); line-height:1.7; margin-bottom:14px; }
.cs-apports{ list-style:none; padding:0; margin:18px 0 0; display:grid; gap:10px; }
.cs-apports li{ position:relative; padding-left:28px; color:var(--tx-soft); line-height:1.55; }
.cs-apports li::before{ content:"✓"; position:absolute; left:0; top:0; color:var(--terra); font-weight:800; }
.cs-apports strong{ color:var(--navy); }
.cs-carte{ background:var(--navy); color:#fff; border-radius:var(--radius-lg); padding:28px; box-shadow:var(--shadow-lg); }
.cs-prix{ font-size:44px; font-weight:800; line-height:1; margin:0; color:#fff; }
.cs-prix small{ font-size:16px; font-weight:700; opacity:.8; }
.cs-duree{ margin:8px 0 18px; color:#c9d3e6; font-weight:600; }
.cs-etapes{ list-style:none; padding:0; margin:0 0 22px; display:grid; gap:12px; }
.cs-etapes li{ display:flex; gap:12px; align-items:flex-start; font-size:14.5px; line-height:1.45; color:#e8edf6; }
.cs-etapes span{ flex:0 0 26px; height:26px; border-radius:50%; background:var(--terra); color:#fff; font-weight:800; font-size:13px; display:flex; align-items:center; justify-content:center; }
.cs-mini{ font-size:12.5px; color:var(--tx-mute); text-align:center; margin:10px 0 0; }
.cs-carte .cs-mini{ color:#b8c3d8; }

.cs-resa{ display:grid; gap:24px; align-items:start; max-width:1080px; margin:0 auto; }
@media(min-width:960px){ .cs-resa{ grid-template-columns:minmax(0,1fr) 300px; } .cs-recap{ position:sticky; top:104px; } }
.cs-main{ display:grid; gap:18px; min-width:0; }
.cs-bloc{ background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg); padding:22px; margin:0; box-shadow:var(--shadow); min-width:0; }
.cs-bloc legend{ float:left; width:100%; display:flex; align-items:center; gap:10px; font-weight:800; color:var(--navy); font-size:17px; margin-bottom:16px; padding:0; }
.cs-bloc legend + *{ clear:both; }
.cs-num{ flex:0 0 28px; height:28px; border-radius:50%; background:var(--terra); color:#fff; font-size:14px; display:flex; align-items:center; justify-content:center; }
.cs-types{ display:grid; gap:12px; }
@media(min-width:560px){ .cs-types{ grid-template-columns:1fr 1fr; } }
.cs-type{ display:flex; gap:12px; align-items:center; padding:14px 16px; border:1.5px solid var(--line); border-radius:12px; cursor:pointer; background:var(--cloud); transition:border-color .15s, background .15s; }
.cs-type input{ position:absolute; opacity:0; pointer-events:none; }
.cs-type-ico{ font-size:26px; line-height:1; }
.cs-type strong{ display:block; color:var(--navy); font-size:15px; }
.cs-type small{ display:block; color:var(--tx-mute); font-size:12.5px; line-height:1.35; margin-top:2px; }
.cs-type:has(input:checked){ border-color:var(--terra); background:#fbf3f3; box-shadow:0 0 0 1px var(--terra) inset; }
.cs-type:has(input:focus-visible){ outline:3px solid var(--navy-light); outline-offset:2px; }

.cs-sem{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:12px; }
.cs-sem-titre{ margin:0; font-weight:700; color:var(--navy); font-size:15px; text-align:center; flex:1; }
.cs-nav{ width:40px; height:40px; border-radius:10px; border:1.5px solid var(--line); background:#fff; color:var(--navy); font-size:22px; line-height:1; cursor:pointer; }
.cs-nav:hover:not(:disabled){ border-color:var(--terra); color:var(--terra); }
.cs-nav:disabled{ opacity:.35; cursor:default; }
.cs-jours{ display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px; }
.cs-jour{ display:flex; flex-direction:column; align-items:center; gap:2px; padding:10px 4px; border:1.5px solid var(--line); border-radius:12px; background:#fff; cursor:pointer; color:var(--navy); transition:border-color .15s, background .15s; }
.cs-jour:hover:not(:disabled){ border-color:var(--terra); }
.cs-jour.is-on{ background:var(--navy); border-color:var(--navy); color:#fff; }
.cs-jour:disabled{ background:var(--cloud); color:var(--tx-mute); cursor:default; opacity:.7; }
.cs-jour-nom{ font-size:12px; font-weight:700; text-transform:capitalize; }
.cs-jour-num{ font-size:20px; font-weight:800; line-height:1.1; }
.cs-jour-dispo{ font-size:10.5px; font-weight:600; opacity:.85; white-space:nowrap; }
@media(max-width:420px){ .cs-jour-dispo{ font-size:9.5px; } .cs-jour{ padding:8px 2px; } }
.cs-heures-titre{ margin:18px 0 10px; font-weight:700; color:var(--navy); }
.cs-heures{ display:grid; grid-template-columns:repeat(auto-fill,minmax(92px,1fr)); gap:8px; }
.cs-heure{ padding:11px 6px; border:1.5px solid var(--line); border-radius:10px; background:#fff; color:var(--navy); font-weight:700; font-size:15px; cursor:pointer; }
.cs-heure:hover{ border-color:var(--terra); color:var(--terra); }
.cs-heure.is-on{ background:var(--terra); border-color:var(--terra); color:#fff; }
.cs-chargement, .cs-vide{ color:var(--tx-mute); margin:6px 0 0; }
.cs-check{ display:flex; gap:12px; align-items:flex-start; padding:12px 0; font-size:14px; color:var(--tx-soft); line-height:1.5; cursor:pointer; }
.cs-check input{ width:20px; height:20px; margin-top:1px; accent-color:var(--terra); flex-shrink:0; }
.cs-check + .cs-check{ border-top:1px solid var(--line); }
.cs-erreur{ background:#fbeeee; border:1px solid #e9c3c4; color:#8b2a2d; border-radius:10px; padding:12px 14px; font-size:14px; margin:10px 0 0; }
.cs-err-champ{ color:#8b2a2d; font-size:13.5px; font-weight:600; margin:6px 0 0; display:flex; gap:6px; align-items:flex-start; }
.cs-err-champ::before{ content:"⚠"; }
.cs-bloc .cs-cal + .cs-err-champ, .cs-bloc .cs-err-champ{ animation:csErr .35s ease-out; }
.cs-champ-erreur input, .cs-champ-erreur select, .cs-champ-erreur textarea{ border-color:#c0392b !important; box-shadow:0 0 0 3px rgba(192,57,43,.15); }
.cs-check.cs-champ-erreur{ background:#fbeeee; border-radius:10px; outline:1px solid #e9c3c4; padding:8px; }
.cs-cal.cs-champ-erreur{ outline:2px solid #c0392b; outline-offset:4px; border-radius:12px; }
@keyframes csErr{ from{ opacity:0; transform:translateY(-4px); } to{ opacity:1; transform:none; } }
.cs-recap{ background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg); padding:22px; box-shadow:var(--shadow); }
.cs-recap-titre{ font-weight:800; color:var(--navy); font-size:17px; margin:0 0 12px; }
.cs-recap-ligne{ margin:0 0 8px; color:var(--tx-soft); font-size:14.5px; }
.cs-recap-ligne.is-ok{ color:var(--navy); }
.cs-recap-total{ display:flex; justify-content:space-between; align-items:baseline; border-top:1px solid var(--line); padding-top:12px; margin:14px 0 16px; color:var(--navy); }
.cs-recap-total strong{ font-size:22px; }
.cs-alerte{ max-width:1080px; margin:0 auto 20px; background:#fff7e6; border:1px solid #f0d49b; color:#6b4a0f; border-radius:12px; padding:14px 16px; font-size:14.5px; }
.cs-alerte--ok{ background:#eef8f1; border-color:#b9dcc3; color:#1f6a3a; }

/* Page « mon rendez-vous » */
.cs-rdv{ max-width:720px; margin:0 auto; }
.cs-rdv-carte{ background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg); padding:26px; box-shadow:var(--shadow); }
.cs-rdv-etat{ display:inline-block; font-size:12px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; padding:5px 12px; border-radius:999px; background:#eef8f1; color:#1f6a3a; margin-bottom:12px; }
.cs-rdv-etat--annule{ background:#fbeeee; color:#8b2a2d; }
.cs-rdv-etat--attente{ background:#fff7e6; color:#6b4a0f; }
.cs-rdv-quand{ font-size:clamp(20px,3vw,26px); font-weight:800; color:var(--navy); margin:0 0 6px; }
.cs-rdv-lignes{ list-style:none; padding:0; margin:16px 0 0; display:grid; gap:10px; }
.cs-rdv-lignes li{ color:var(--tx-soft); font-size:15px; line-height:1.5; }
.cs-rdv-lignes strong{ color:var(--navy); }
.cs-rdv-actions{ display:flex; flex-wrap:wrap; gap:10px; margin-top:22px; }
.cs-rdv-actions .btn{ flex:1 1 220px; }
.cs-rdv-note{ font-size:13px; color:var(--tx-mute); margin-top:14px; }
#cs-deplacer{ margin-top:22px; }
#cs-deplacer .cs-bloc{ box-shadow:none; }
/* Consultation : encart « déjà dans une procédure » */
.cs-side{ display:grid; gap:16px; align-content:start; }
.cs-devis{ background:#fff; border:1.5px solid var(--line); border-left:4px solid var(--terra); border-radius:var(--radius-lg); padding:22px 24px; box-shadow:var(--shadow); }
.cs-devis-titre{ font-weight:800; color:var(--navy); font-size:17px; margin:0 0 8px; }
.cs-devis p{ color:var(--tx-soft); font-size:14px; line-height:1.55; margin:0 0 14px; }
.cs-devis .cs-mini{ margin:10px 0 0; font-size:12.5px; }
.cs-devis .cs-devis-titre{ font-weight:800; color:var(--navy); font-size:17px; line-height:1.3; margin:0 0 8px; }
/* Consultation : texte en haut, les deux encarts côte à côte en dessous */
@media(min-width:900px){ .cs-intro{ grid-template-columns:1fr; gap:36px; } }
.cs-intro-txt{ max-width:860px; }
@media(min-width:760px){
  .cs-side{ grid-template-columns:1fr 1fr; gap:24px; align-items:stretch; max-width:1000px; }
  .cs-side > aside{ display:flex; flex-direction:column; }
  .cs-devis{ justify-content:center; padding:28px; }
  .cs-devis .btn{ margin-top:auto; }
}
.cs-devis-liste{ list-style:none; padding:0; margin:0 0 18px; display:grid; gap:9px; }
.cs-devis-liste li{ position:relative; padding-left:24px; font-size:14px; line-height:1.45; color:var(--tx-soft); }
.cs-devis-liste li::before{ content:"✓"; position:absolute; left:0; color:var(--terra); font-weight:800; }
.cs-devis-liste a{ color:var(--navy); font-weight:700; text-decoration:none; }
.cs-devis-liste a:hover{ color:var(--terra); text-decoration:underline; }
/* Consultation : encarts visibles dès l'ouverture de la page */
.cs-presentation{ padding-top:34px; }
.cs-intro{ gap:24px !important; }
.cs-intro-txt h2{ margin:8px 0 10px; }
.cs-intro-txt p{ margin-bottom:0; }
.cs-intro-suite{ max-width:860px; }
.cs-intro-suite p{ color:var(--tx-soft); line-height:1.7; margin:4px 0 0; }

/* Réservation : durée (heures consécutives) + onglets de la page Expertise en visio */
.cs-hrs{ display:grid; grid-template-columns:1fr 1fr; gap:10px; margin:0 0 16px; }
@media(min-width:720px){ .cs-hrs{ grid-template-columns:repeat(4,1fr); } }
.cs-hr{ position:relative; display:block; padding:11px 12px; border:1.5px solid var(--line); border-radius:10px; cursor:pointer; background:var(--cloud); text-align:center; transition:border-color .15s, background .15s; }
.cs-hr input{ position:absolute; opacity:0; pointer-events:none; }
.cs-hr strong{ display:block; color:var(--navy); font-size:15px; }
.cs-hr small{ display:block; color:var(--tx-mute); font-size:12px; margin-top:2px; }
.cs-hr:has(input:checked){ border-color:var(--terra); background:#fbf3f3; box-shadow:0 0 0 1px var(--terra) inset; }
.cs-hr:has(input:focus-visible){ outline:3px solid var(--navy-light); outline-offset:2px; }
.cs-hrs-aide{ font-size:12.5px; color:var(--tx-mute); margin:-6px 0 14px; }
.uv-onglets{ display:flex; gap:6px; justify-content:center; flex-wrap:wrap; margin:0 auto 26px; }
.uv-onglets button{ border:1.5px solid var(--line); background:#fff; color:var(--navy); font:inherit; font-weight:700; font-size:15px; padding:11px 20px; border-radius:999px; cursor:pointer; }
.uv-onglets button[aria-selected="true"]{ background:var(--navy); border-color:var(--navy); color:#fff; }
.uv-panneau[hidden]{ display:none; }
.uv-avert{ max-width:880px; margin:0 auto 22px; background:#fff; border:1.5px solid var(--line); border-left:5px solid var(--terra); border-radius:10px; padding:14px 18px; color:var(--navy); line-height:1.6; font-size:14.5px; }
.uv-avert strong{ color:var(--terra); }

/* « Mon rendez-vous » : accès direct à la visio */
.cs-rdv-rejoindre{ background:#f4f6fb; border:1px solid var(--line); border-radius:14px; padding:16px; margin:14px 0 6px; }
.cs-rdv-rejoindre p{ margin:10px 0 0; font-size:14px; color:var(--tx-soft); line-height:1.55; }
.cs-rdv-rejoindre--tel p{ margin:0; }

/* En-tête : 3 boutons avec prix (devis gratuit, visio 60 €, expertise en ligne 120 €) */
.header-cta--sub{ flex-direction:column; gap:3px; font-weight:800; }
.header-cta--sub small{ display:block !important; font-weight:600; font-size:.9em; opacity:.92; line-height:1.1; letter-spacing:.01em; }
.header-cta--question.header-cta--sub small{ color:#ffd9a0; opacity:1; }
.cs-devis .cs-prix--gratuit{ color:var(--terra); margin:0 0 14px; }
.cs-devis .cs-prix--gratuit small{ color:var(--navy); opacity:.75; }

/* ---------- « Demandez à être rappelé » ---------- */
.fx-cote{ position:fixed; right:0; top:50%; transform:translateY(-50%); z-index:900; display:flex; flex-direction:column; align-items:flex-end; gap:8px; }
.rap-flottant{ position:relative; display:flex; flex-direction:column; align-items:center; gap:8px; background:var(--terra); color:#fff; border:0; border-radius:12px 0 0 12px; padding:14px 9px; cursor:pointer; box-shadow:0 8px 24px rgba(20,33,58,.28); font:inherit; font-weight:800; font-size:13px; letter-spacing:.02em; transition:padding .2s, background .2s; }
.rap-flottant span{ writing-mode:vertical-rl; transform:rotate(180deg); white-space:nowrap; }
.rap-flottant:hover, .rap-flottant:focus-visible{ background:var(--terra-dark, #6e2124); padding-right:14px; }
@media (max-width:760px){
  .fx-cote{ top:auto; bottom:16px; right:16px; transform:none; flex-direction:column-reverse; gap:10px; }
  .rap-flottant{ border-radius:999px; width:56px; height:56px; padding:0; justify-content:center; }
  .rap-flottant--rapport{ width:46px; height:46px; margin-right:5px; }
  .rap-flottant span{ display:none; }
  .rap-flottant svg{ width:24px; height:24px; }
}
.rap-voile{ position:fixed; inset:0; background:rgba(20,33,58,.55); z-index:4000; opacity:0; transition:opacity .25s; }
.rap-voile.on{ opacity:1; }
.rap-panneau{ position:fixed; z-index:4001; background:#fff; color:var(--navy); box-shadow:0 20px 60px rgba(20,33,58,.35); overflow:auto; padding:28px 26px 22px; transition:transform .28s ease, opacity .25s; }
.rap-panneau--tiroir{ top:0; right:0; bottom:0; width:min(420px,100vw); transform:translateX(100%); }
.rap-panneau--tiroir.on{ transform:none; }
.rap-panneau--fenetre{ top:50%; left:50%; width:min(460px,calc(100vw - 32px)); max-height:calc(100vh - 32px); border-radius:var(--radius-lg, 16px); transform:translate(-50%,-46%); opacity:0; }
.rap-panneau--fenetre.on{ transform:translate(-50%,-50%); opacity:1; }
.rap-fermer{ position:absolute; top:10px; right:12px; background:none; border:0; font-size:28px; line-height:1; color:var(--navy); cursor:pointer; width:40px; height:40px; border-radius:8px; }
.rap-fermer:hover{ background:#f1f3f8; }
.rap-ico{ width:46px; height:46px; border-radius:50%; background:#f8eced; color:var(--terra); display:flex; align-items:center; justify-content:center; margin:0 0 10px; }
.rap-panneau h2{ font-size:22px; margin:0 0 6px; }
.rap-intro{ color:var(--tx-soft, #5b6a86); font-size:14.5px; line-height:1.5; margin:0 0 16px; }
.rap-form label{ display:block; font-weight:700; font-size:13.5px; margin:0 0 12px; }
.rap-form input, .rap-form textarea{ display:block; width:100%; margin-top:5px; border:1px solid var(--line, #dfe3ec); border-radius:10px; padding:11px 12px; font:inherit; font-weight:500; color:var(--navy); background:#fff; }
.rap-form textarea{ resize:vertical; min-height:84px; }
.rap-form input:focus, .rap-form textarea:focus{ outline:none; border-color:var(--terra); box-shadow:0 0 0 3px rgba(130,42,45,.12); }
.rap-ligne{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.rap-pot{ position:absolute !important; left:-9999px !important; width:1px !important; height:1px !important; }
.rap-msg{ margin:10px 0 0; font-size:14px; font-weight:600; }
.rap-msg.is-success{ color:#1e7a45; }
.rap-msg.is-error{ color:#a3262d; }
.rap-mini{ font-size:13px; color:var(--tx-soft, #5b6a86); margin:10px 0 0; text-align:center; }
.rap-pied{ display:inline-flex; align-items:center; gap:8px; margin-top:14px; font-size:13.5px; padding:11px 16px; }
.rap-pied svg{ width:16px; height:16px; }
html.rap-ouvert{ overflow:hidden; }
@media print{ .fx-cote, .rap-flottant, .rap-voile, .rap-panneau{ display:none !important; } }
.art-cta--rappel{ margin-top:14px; }
.cs-devis .cs-prix.cs-prix--gratuit{ font-size:44px; font-weight:800; line-height:1; color:var(--terra); }
.cs-devis .cs-prix.cs-prix--gratuit small{ font-size:16px; font-weight:700; }

/* Réservation : grille jours × heures (libre / réservé) */
.cs-grille-zone{ overflow-x:auto; -webkit-overflow-scrolling:touch; margin:6px -4px 0; padding:0 4px 6px; }
.cs-grille{ border-collapse:separate; border-spacing:5px; width:100%; min-width:640px; }
.cs-grille thead th{ font-size:12px; font-weight:800; color:var(--tx-mute, #7a869e); text-transform:uppercase; padding:4px 0; text-align:center; }
.cs-grille tbody th{ text-align:left; font-size:13.5px; font-weight:800; color:var(--navy); white-space:nowrap; padding-right:8px; position:sticky; left:0; background:#fff; z-index:1; }
.cs-grille td{ padding:0; }
.cs-g-libre, .cs-g-pris{ display:flex; align-items:center; justify-content:center; width:100%; min-width:50px; height:38px; border-radius:9px; font-size:12.5px; font-weight:700; }
.cs-g-libre{ background:#e3f2e7; color:#1e6b3c; border:1.5px solid transparent; cursor:pointer; font-family:inherit; transition:background .15s, border-color .15s, transform .1s; }
.cs-g-libre:hover{ background:#cfe9d7; border-color:#2f8a4c; }
.cs-g-libre:focus-visible{ outline:2px solid var(--terra); outline-offset:2px; }
.cs-g-libre.is-on{ background:var(--terra); color:#fff; border-color:var(--terra); transform:scale(1.04); }
.cs-g-pris{ background:#eceef3; color:#9aa3b5; font-weight:600; }
.cs-g-choix{ margin:12px 0 0; padding:12px 14px; border-radius:12px; background:#f8eced; border:1px solid #e9c3c4; color:var(--terra-dark, #551b1d); font-weight:700; font-size:14.5px; }
.cs-g-aide{ margin:10px 0 0; font-size:13.5px; color:var(--tx-soft); }
.sr{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
@media(max-width:640px){ .cs-g-libre, .cs-g-pris{ min-width:46px; height:34px; font-size:11.5px; } .cs-grille tbody th{ font-size:12px; } }
/* « Une question ? » : les deux cartes visibles en entier dès l'arrivée */
.section.cs-presentation{ padding-top:28px; }
.cs-side .cs-carte, .cs-side .cs-devis{ padding:20px 24px; }
.cs-side .cs-prix{ font-size:38px; }
.cs-side .cs-devis .cs-prix.cs-prix--gratuit{ font-size:38px; margin-bottom:10px; }
.cs-side .cs-duree{ margin:8px 0 10px; }
.cs-side .cs-etapes{ margin:0 0 14px; }
.cs-side .cs-etapes li{ margin-bottom:6px; }
.cs-side .cs-devis-liste{ margin-bottom:12px; }
.cs-side .cs-mini{ margin-top:8px; }
.cs-grille{ table-layout:fixed; min-width:560px; border-spacing:4px; }
.cs-grille thead th:first-child, .cs-grille tbody th{ width:150px; }
.cs-g-libre, .cs-g-pris{ min-width:0; font-size:11.5px; height:36px; padding:0 2px; overflow:hidden; }
.cs-grille .g-court{ display:none; }
@media(max-width:640px){
  .cs-grille thead th:first-child, .cs-grille tbody th{ width:64px; }
  .cs-grille .g-long{ display:none; } .cs-grille .g-court{ display:inline; text-transform:capitalize; }
  .cs-grille{ min-width:520px; }
  .cs-g-libre, .cs-g-pris{ font-size:10.5px; height:34px; }
}

/* ---------- v87 : menus déroulants en colonnes (Spécialités 3 colonnes, Expertises 2 colonnes) ---------- */
.dropdown-menu--cols{ display:grid !important; gap:4px 18px !important; padding:16px 16px 12px !important; flex-direction:initial; }
.dropdown-menu--3{ grid-template-columns:repeat(3, 210px); left:0 !important; transform:translateX(-30%) !important; }
.dropdown-menu--2{ grid-template-columns:repeat(2, 230px); }
.main-nav .dropdown-menu--cols ul{ display:flex !important; flex-direction:column !important; align-items:stretch !important; gap:2px !important; margin:0; padding:0; list-style:none; }
.dd-col{ min-width:0; }
.dd-col + .dd-col{ border-left:1px solid var(--line); padding-left:14px; }
.dd-titre{ margin:0 0 6px; padding:0 14px 8px; font-size:11px !important; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--terra); border-bottom:2px solid var(--cloud); white-space:normal; line-height:1.35; min-height:38px !important; box-sizing:border-box; display:flex !important; align-items:flex-end; }
.dropdown-menu--cols a{ padding:9px 14px !important; white-space:normal !important; line-height:1.3; }
.dropdown-menu--cols a[aria-current="page"]{ background:var(--cloud); color:var(--terra) !important; }
@media(min-width:1180px){ .dropdown-menu--cols a{ font-size:14px !important; } }
.mobile-nav .mobile-nav-groupe{ display:block; padding:12px 24px 4px 32px; font-size:11.5px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; color:#e0a19d; }
.mobile-nav .mobile-nav-groupe--titre{ padding-left:24px; font-size:13px; color:#fff; margin-top:6px; border-top:1px solid rgba(255,255,255,.08); padding-top:16px; }
@media(min-width:960px){ .solutions-humidite{ grid-template-columns:repeat(3,1fr) !important; } }
.solutions-humidite .cert-card{ display:flex; flex-direction:column; }
.solutions-humidite .cert-card .btn{ margin-top:auto; }

.rap-flottant--rapport{ background:var(--navy); }
.rap-flottant--rapport:hover, .rap-flottant--rapport:focus-visible{ background:#162544; }
/* v87 : boutons dans le corps des articles et des pages locales — texte toujours lisible */
.art-body a.btn-terra, .art-body a.btn-terra:hover, .loc-text a.btn-terra, .loc-faq-item a.btn-terra, .loc-text a.btn-terra:hover{ color:#fff !important; text-decoration:none; }
.art-body a.btn-ghost:not(.art-cta a), .loc-text a.btn-ghost{ color:var(--navy); text-decoration:none; }
/* v90 : tableau dans les articles (modèle d'état des pertes) */
.art-table{ overflow-x:auto; margin:16px 0; border:1px solid var(--line); border-radius:var(--radius); }
.art-table table{ width:100%; border-collapse:collapse; font-size:14px; min-width:560px; }
.art-table th{ background:var(--navy); color:#fff; text-align:left; padding:10px 12px; font-weight:700; }
.art-table td{ padding:9px 12px; border-top:1px solid var(--line); }
.art-table tbody tr:nth-child(even) td{ background:var(--cloud); }
.art-table tr.total td{ font-weight:800; color:var(--navy); background:#f3e9e9 !important; }

/* v91 : partage des articles (Facebook, LinkedIn, WhatsApp, e-mail, lien) */
.partage{ display:flex; flex-wrap:wrap; align-items:center; gap:10px 14px; margin:18px 0 6px; }
.partage-titre{ font-size:13px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }
.partage-btns{ display:flex; flex-wrap:wrap; gap:8px; }
.partage-btn{ display:inline-flex; align-items:center; gap:7px; min-height:40px; padding:8px 14px; border-radius:999px; font:inherit; font-size:13.5px; font-weight:700; text-decoration:none !important; cursor:pointer; border:1.5px solid transparent; transition:transform .15s, filter .15s, background .15s; line-height:1; }
.partage-btn svg{ width:18px; height:18px; flex:none; }
.partage-btn:hover, .partage-btn:focus-visible{ transform:translateY(-1px); filter:brightness(1.08); }
.partage-btn--facebook{ background:#1877f2; color:#fff !important; }
.partage-btn--linkedin{ background:#0a66c2; color:#fff !important; }
.partage-btn--whatsapp{ background:#1fa855; color:#fff !important; }
.partage-btn--email, .partage-btn--lien, .partage-btn--natif{ background:#fff; color:var(--navy) !important; border-color:var(--line); }
.partage-btn.ok{ background:#e3f5ea; color:#1e7a45 !important; border-color:#9fd8b4; }
.partage--hero .partage-titre{ color:#dbe3f2; }
.partage--hero .partage-btn--email, .partage--hero .partage-btn--lien, .partage--hero .partage-btn--natif{ background:rgba(255,255,255,.1); color:#fff !important; border-color:rgba(255,255,255,.35); }
.partage--fin{ border-top:1px dashed var(--line); border-bottom:1px dashed var(--line); padding:16px 0; margin:26px 0 18px; }
.partage--fin .partage-titre{ color:var(--navy); }
.page-hero .partage{ justify-content:flex-start; }
@media (max-width:560px){ .partage-btn span{ display:none; } .partage-btn{ width:44px; height:44px; padding:0; justify-content:center; } .partage-btn--lien.ok span{ display:none; } }
@media print{ .partage{ display:none !important; } }
