/**
Theme Name: Astra Child
Author: Brainstorm Force
Author URI: http://wpastra.com/about/
Description: Astra is the fastest, fully customizable & beautiful theme suitable for blogs, personal portfolios and business websites. It is very lightweight (less than 50KB on frontend) and offers unparalleled speed. Built with SEO in mind, Astra comes with schema.org code integrated so search engines will love your site. Astra offers plenty of sidebar options and widget areas giving you a full control for customizations. Furthermore, we have included special features and templates so feel free to choose any of your favorite page builder plugin to create pages flexibly. Some of the other features: # WooCommerce Ready # Responsive # Compatible with major plugins # Translation Ready # Extendible with premium addons # Regularly updated # Designed, Developed, Maintained & Supported by Brainstorm Force. Looking for a perfect base theme? Look no further. Astra is fast, fully customizable and beautiful theme!
Version: 1.0.5
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: astra-child
Template: astra
*/
/* =================================================== */
/* Sanichauffe — LP PAC (Bar-Th 171 + 174) styles      */
/* =================================================== */

body.sani-landing-body { background: white; margin: 0; }
body.sani-landing-body #sani-landing-main { display: block; }

.sani-lp {
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Inter', sans-serif;
  color: #0f172a; line-height: 1.55; font-weight: 400;
}
.sani-lp *, .sani-lp *::before, .sani-lp *::after { box-sizing: border-box; }
.sani-lp h1, .sani-lp h2, .sani-lp h3, .sani-lp h4 { letter-spacing: -0.015em; margin: 0; }
.sani-lp img { max-width: 100%; height: auto; display: block; }

/* Top bar */
.sani-topbar { background: #0a1b3d !important; color: white; padding: 12px 24px; display: flex; justify-content: space-between; align-items: center; font-size: 14px; font-weight: 500; position: sticky; top: 0; z-index: 100; }
.sani-topbar a { color: white !important; text-decoration: none; font-weight: 700; }
.sani-topbar a:hover { color: #ff5a36 !important; }
.sani-topbar .sani-topbar-brand { display: flex; align-items: center; gap: 10px; color: white; }
.sani-topbar .sani-pulse { width: 8px; height: 8px; background: #4ade80; border-radius: 50%; animation: sani-pulse 2s infinite; box-shadow: 0 0 0 0 rgba(74,222,128,0.6); }
@keyframes sani-pulse { 0% { box-shadow: 0 0 0 0 rgba(74,222,128,0.6); } 70% { box-shadow: 0 0 0 10px rgba(74,222,128,0); } 100% { box-shadow: 0 0 0 0 rgba(74,222,128,0); } }

/* Hero */
.sani-hero { background: linear-gradient(135deg, #0a1b3d 0%, #142d6f 55%, #1b6ca6 100%) !important; color: white !important; padding: 70px 24px 90px !important; position: relative; overflow: hidden; }
.sani-hero::before { content: ""; position: absolute; top: -150px; right: -150px; width: 600px; height: 600px; background: radial-gradient(closest-side, rgba(91,169,224,0.18), transparent); pointer-events: none; }
.sani-hero::after { content: ""; position: absolute; bottom: -100px; left: -100px; width: 400px; height: 400px; background: radial-gradient(closest-side, rgba(255,90,54,0.12), transparent); pointer-events: none; }
.sani-hero-inner { max-width: 1280px; margin: 0 auto; position: relative; z-index: 1; display: grid; grid-template-columns: 1.15fr 0.85fr; gap: 60px; align-items: start; } .sani-hero-text { padding-top: 16px; }
@media (max-width: 980px) { .sani-hero-inner { grid-template-columns: 1fr; gap: 40px; } }
.sani-hero-text h1, .sani-hero-text > p, .sani-hero-text .sani-trust-line, .sani-hero-text .sani-trust-line span { color: white; }

.sani-eyebrow { display: inline-block !important; background: rgba(255,255,255,0.12); padding: 8px 18px; border-radius: 100px; font-size: 12px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; margin-bottom: 24px; border: 1px solid rgba(255,255,255,0.18); color: white !important; }
.sani-h1 { font-size: clamp(34px, 5.2vw, 62px) !important; line-height: 1.05 !important; font-weight: 800 !important; margin: 0 0 22px !important; color: white !important; }
.sani-h1 .hl { background: linear-gradient(90deg, #ff8e58, #ffc857); -webkit-background-clip: text; background-clip: text; color: transparent !important; -webkit-text-fill-color: transparent; }
.sani-sub { font-size: clamp(17px, 1.5vw, 20px) !important; line-height: 1.55 !important; opacity: 0.92; margin: 0 0 30px !important; max-width: 580px; color: white !important; }
.sani-sub strong { color: white !important; font-weight: 700; }

.sani-trust-line { display: flex; flex-wrap: wrap; gap: 22px; align-items: center; font-size: 14px; padding-top: 8px; color: white; }
.sani-trust-line .sep { opacity: 0.5; }
.sani-stars { color: #ffd166 !important; font-size: 17px; letter-spacing: 2px; }
.sani-trust-line strong { font-weight: 700; color: white; }

/* Form card */
.sani-form-card { background: white !important; color: #0f172a !important; border-radius: 18px; padding: 32px 28px; box-shadow: 0 25px 55px rgba(0,0,0,0.3), 0 0 0 1px rgba(255,255,255,0.05); position: relative; }
.sani-form-card::before { content: "GRATUIT"; position: absolute; top: -12px; right: 24px; background: #ff5a36; color: white; padding: 6px 14px; border-radius: 100px; font-size: 11px; font-weight: 800; letter-spacing: 1px; box-shadow: 0 4px 12px rgba(255,90,54,0.4); }
.sani-form-card h2 { font-size: 23px !important; font-weight: 800 !important; margin: 0 0 6px !important; line-height: 1.2 !important; color: #0f172a !important; }
.sani-form-card .subtitle { font-size: 14px !important; color: #64748b !important; margin: 0 0 18px !important; }
.sani-form-card .reassurance { margin-top: 16px; padding-top: 16px; border-top: 1px solid #e2e8f0; font-size: 13px; color: #64748b; text-align: center; }
.sani-form-card .reassurance strong { color: #0f172a; }

/* WPForms tweaks */
.sani-lp .wpforms-container, .sani-lp .wpforms-form { margin: 0 !important; padding: 0 !important; background: transparent !important; border: none !important; }
.sani-lp .wpforms-field { padding: 6px 0 !important; margin: 0 !important; border: none !important; }
.sani-lp .wpforms-field-label { font-weight: 600 !important; font-size: 13px !important; color: #0f172a !important; margin-bottom: 4px !important; display: block; }
.sani-lp .wpforms-field-sublabel { font-size: 12px !important; color: #64748b !important; }
.sani-lp .wpforms-field input[type="text"], .sani-lp .wpforms-field input[type="email"], .sani-lp .wpforms-field input[type="tel"], .sani-lp .wpforms-field textarea { border: 1.5px solid #cbd5e1 !important; border-radius: 10px !important; padding: 11px 14px !important; width: 100% !important; font-size: 15px !important; font-family: inherit !important; line-height: 1.4 !important; background: white !important; color: #0f172a !important; }
.sani-lp .wpforms-field input:focus, .sani-lp .wpforms-field textarea:focus { outline: none !important; border-color: #1b6ca6 !important; box-shadow: 0 0 0 3px rgba(27,108,166,0.12) !important; }
.sani-lp .wpforms-field-radio ul { list-style: none !important; padding: 0 !important; margin: 0 !important; display: flex !important; flex-wrap: wrap !important; gap: 6px !important; }
.sani-lp .wpforms-field-radio ul li { margin: 0 !important; padding: 0 !important; flex: 1 1 auto; }
.sani-lp .wpforms-field-radio label { display: block !important; cursor: pointer; padding: 8px 12px !important; border: 1.5px solid #cbd5e1 !important; border-radius: 8px !important; font-size: 13px !important; text-align: center; transition: all 0.15s; background: white !important; color: #0f172a !important; }
.sani-lp .wpforms-field-radio input[type="radio"] { display: none !important; }
.sani-lp .wpforms-field-radio input[type="radio"]:checked + label { background: #1b6ca6 !important; color: white !important; border-color: #1b6ca6 !important; }
.sani-lp .wpforms-submit-container { margin-top: 18px !important; padding: 0 !important; }
.sani-lp .wpforms-submit { background: linear-gradient(135deg, #ff5a36, #e63d18) !important; color: white !important; border: none !important; padding: 16px 24px !important; font-size: 17px !important; font-weight: 800 !important; border-radius: 12px !important; cursor: pointer; width: 100%; box-shadow: 0 10px 22px rgba(255,90,54,0.32); letter-spacing: 0.3px; }
.sani-lp .wpforms-submit:hover { transform: translateY(-2px); box-shadow: 0 14px 26px rgba(255,90,54,0.4); }

/* Trust strip */
.sani-strip { background: white !important; padding: 28px 24px; border-bottom: 1px solid #e2e8f0; }
.sani-strip-inner { max-width: 1280px; margin: 0 auto; display: flex; flex-wrap: wrap; gap: 40px; justify-content: center; align-items: center; }
.sani-strip-item { display: flex; gap: 14px; align-items: center; }
.sani-strip-item img { height: 56px; width: auto; opacity: 0.95; }
.sani-strip-item .num { display: block; font-size: 24px; font-weight: 800; color: #1b6ca6; line-height: 1; }
.sani-strip-item .lbl { display: block; font-size: 12px; color: #64748b; margin-top: 4px; font-weight: 500; }

/* Sections */
.sani-section { padding: 80px 24px !important; }
.sani-section-inner { max-width: 1180px; margin: 0 auto; }
.sani-section-dark { background: #0a1b3d !important; color: white !important; }
.sani-section-dark *, .sani-section-dark h2, .sani-section-dark h3, .sani-section-dark h4 { color: white; }
.sani-section-light { background: #f8fafc !important; }

.sani-section-eyebrow { display: inline-block; color: #1b6ca6 !important; font-size: 12px; font-weight: 800; letter-spacing: 1.5px; text-transform: uppercase; margin-bottom: 16px; }
.sani-section-dark .sani-section-eyebrow { color: #5ba9e0 !important; }
.sani-section h2 { font-size: clamp(28px, 3.6vw, 46px) !important; line-height: 1.15 !important; font-weight: 800 !important; margin: 0 0 20px !important; color: #0f172a; }
.sani-section-dark h2 { color: white !important; }
.sani-section p.lead { font-size: 17px; line-height: 1.65; color: #64748b; max-width: 720px; margin: 0 0 24px; }
.sani-section-dark p.lead { color: rgba(255,255,255,0.75) !important; }

/* 3-col cards */
.sani-grid-3 { display: grid; grid-template-columns: repeat(auto-fit, minmax(290px, 1fr)); gap: 24px; margin-top: 44px; }
.sani-card { background: white !important; border-radius: 16px; padding: 36px 30px; border: 1px solid #e2e8f0; box-shadow: 0 1px 3px rgba(0,0,0,0.04); transition: transform 0.25s, box-shadow 0.25s; }
.sani-card:hover { transform: translateY(-6px); box-shadow: 0 15px 40px rgba(0,0,0,0.08); }
.sani-card-icon { width: 60px; height: 60px; border-radius: 14px; background: linear-gradient(135deg, #1b6ca6, #142d6f); display: flex; align-items: center; justify-content: center; color: white; margin-bottom: 22px; }
.sani-card-icon svg { width: 28px; height: 28px; stroke: white; }
.sani-card h3 { font-size: 22px !important; font-weight: 800 !important; margin: 0 0 12px !important; color: #0f172a; }
.sani-card p { color: #64748b !important; margin: 0; line-height: 1.6; }

/* Splits */
.sani-split { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: center; margin-bottom: 70px; }
.sani-split:last-child { margin-bottom: 0; }
.sani-split:nth-child(even) .sani-split-img { order: -1; }
@media (max-width: 900px) { .sani-split { grid-template-columns: 1fr; gap: 30px; margin-bottom: 50px; } .sani-split:nth-child(even) .sani-split-img { order: 0; } }
.sani-split img { width: 100%; height: auto; border-radius: 14px; box-shadow: 0 25px 50px rgba(0,0,0,0.15); }
.sani-split h3 { font-size: clamp(24px, 2.2vw, 32px) !important; font-weight: 800 !important; margin: 0 0 16px !important; color: #0f172a; }
.sani-split p { color: #64748b !important; font-size: 16px; line-height: 1.65; margin: 0 0 12px !important; }
.sani-split-stat { display: inline-block; font-size: 12px; font-weight: 800; color: #1b6ca6 !important; margin-bottom: 14px; letter-spacing: 1.5px; text-transform: uppercase; background: rgba(27,108,166,0.08); padding: 6px 12px; border-radius: 100px; }

/* Process */
.sani-process { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 28px; margin-top: 50px; }
.sani-step { text-align: center; }
.sani-step-num { width: 56px; height: 56px; border-radius: 50%; background: linear-gradient(135deg, #ff5a36, #e63d18); color: white !important; font-size: 22px; font-weight: 800; display: flex; align-items: center; justify-content: center; margin: 0 auto 16px; box-shadow: 0 10px 24px rgba(255,90,54,0.3); }
.sani-step h4 { font-size: 17px !important; font-weight: 700 !important; margin: 0 0 8px !important; color: white !important; }
.sani-step p { color: rgba(255,255,255,0.7) !important; font-size: 14px; line-height: 1.55; margin: 0; }

/* Aides + Compare tables */
.sani-aides, .sani-compare { background: white !important; border-radius: 18px; overflow: hidden; box-shadow: 0 12px 32px rgba(0,0,0,0.08); margin-top: 36px; }
.sani-aides table, .sani-compare table { width: 100%; border-collapse: collapse; }
.sani-aides th, .sani-compare th { background: #0a1b3d !important; color: white !important; font-weight: 700; text-align: left; padding: 18px 20px; font-size: 13px; letter-spacing: 0.5px; text-transform: uppercase; }
.sani-compare th:not(:first-child) { text-align: center; }
.sani-aides td, .sani-compare td { padding: 18px 20px; border-bottom: 1px solid #f1f5f9; font-size: 15px; color: #0f172a; }
.sani-compare td:not(:first-child) { text-align: center; }
.sani-compare td:first-child { font-weight: 600; }
.sani-aides td:last-child { font-weight: 800; color: #1b6ca6 !important; font-size: 18px; }
.sani-aides tbody tr:hover { background: #f8fafc; }
.sani-aides tbody tr:last-child td, .sani-compare tbody tr:last-child td { border-bottom: none; }
.sani-aides-note { text-align: center; margin-top: 24px; font-size: 14px; color: #64748b; }
.sani-compare .recommended { background: #fff7ed; border-left: 3px solid #ff5a36; }
.sani-compare tbody tr:last-child td { font-weight: 800; color: #1b6ca6 !important; font-size: 17px; }

/* FAQ */
.sani-faq { margin-top: 36px; max-width: 880px; }
.sani-faq details { background: white !important; border: 1.5px solid #e2e8f0; border-radius: 14px; padding: 22px 26px; margin-bottom: 14px; transition: border-color 0.15s; }
.sani-faq details[open] { border-color: #1b6ca6; }
.sani-faq summary { list-style: none; cursor: pointer; font-weight: 700; font-size: 17px; color: #0f172a; position: relative; padding-right: 36px; }
.sani-faq summary::-webkit-details-marker { display: none; }
.sani-faq summary::after { content: ""; position: absolute; right: 0; top: 6px; width: 14px; height: 14px; border-right: 2.5px solid #1b6ca6; border-bottom: 2.5px solid #1b6ca6; transform: rotate(45deg); transition: transform 0.2s; }
.sani-faq details[open] summary::after { transform: rotate(-135deg); top: 10px; }
.sani-faq details p { margin: 16px 0 0 !important; color: #64748b !important; line-height: 1.7; font-size: 15px; }

/* Final CTA */
.sani-final { background: linear-gradient(135deg, #0a1b3d 0%, #1b6ca6 100%) !important; color: white !important; padding: 80px 24px !important; text-align: center; position: relative; overflow: hidden; }
.sani-final::before { content: ""; position: absolute; top: -200px; left: 50%; transform: translateX(-50%); width: 800px; height: 400px; background: radial-gradient(ellipse, rgba(255,90,54,0.2), transparent 70%); pointer-events: none; }
.sani-final h2 { font-size: clamp(30px, 4vw, 46px) !important; margin: 0 0 18px !important; color: white !important; position: relative; }
.sani-final p { font-size: 18px; max-width: 620px; margin: 0 auto 32px; opacity: 0.92; position: relative; color: white !important; }
.sani-final .sani-cta-row { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; position: relative; }
.sani-final .sani-cta-row a { display: inline-flex; align-items: center; gap: 10px; padding: 18px 36px; border-radius: 12px; font-weight: 800; font-size: 17px; text-decoration: none; letter-spacing: 0.3px; }
.sani-final .sani-btn-fill { background: #ff5a36 !important; color: white !important; box-shadow: 0 14px 28px rgba(255,90,54,0.4); }
.sani-final .sani-btn-fill:hover { background: #e63d18 !important; transform: translateY(-2px); }
.sani-final .sani-btn-ghost { background: rgba(255,255,255,0.1) !important; color: white !important; border: 1.5px solid rgba(255,255,255,0.3); }
.sani-final .sani-btn-ghost:hover { background: rgba(255,255,255,0.18) !important; }

/* Legal */
.sani-legal { background: #050d22 !important; color: rgba(255,255,255,0.55) !important; padding: 28px 24px; text-align: center; font-size: 13px; }
.sani-legal a { color: rgba(255,255,255,0.75) !important; text-decoration: none; margin: 0 10px; font-weight: 500; }
.sani-legal a:hover { color: #ff5a36 !important; }
.sani-legal .row2 { margin-top: 10px; opacity: 0.7; }

/* Sticky phone */
.sani-sticky-phone { position: fixed; bottom: 24px; right: 24px; background: #ff5a36 !important; color: white !important; width: 64px; height: 64px; border-radius: 50%; display: none; align-items: center; justify-content: center; text-decoration: none; box-shadow: 0 12px 28px rgba(255,90,54,0.45); z-index: 99; }
.sani-sticky-phone svg { width: 30px; height: 30px; fill: white; }
.sani-sticky-phone::before { content: ""; position: absolute; inset: -8px; border-radius: 50%; background: rgba(255,90,54,0.35); animation: sani-ripple 2s infinite; }
@keyframes sani-ripple { 0% { transform: scale(0.8); opacity: 0.9; } 100% { transform: scale(1.4); opacity: 0; } }
@media (max-width: 768px) {
  .sani-sticky-phone { display: flex; }
  .sani-topbar { font-size: 12px; padding: 10px 14px; }
  .sani-topbar .sani-topbar-brand span:not(.sani-pulse) { display: none; }
  .sani-hero { padding: 50px 20px 70px !important; }
  .sani-section { padding: 60px 20px !important; }
  .sani-final { padding: 60px 20px !important; }
}


/* =================================================== */
/* Multi-step form + inline CTAs                       */
/* =================================================== */

/* Progress */
.sani-form-progress { margin-bottom: 18px; }
.sani-progress-track { height: 6px; background: #e2e8f0; border-radius: 100px; overflow: hidden; }
.sani-progress-fill { height: 100%; background: linear-gradient(90deg, #ff5a36, #e63d18); border-radius: 100px; transition: width 0.4s cubic-bezier(0.4, 0, 0.2, 1); }
.sani-progress-meta { font-size: 12px; color: #64748b; margin-top: 8px; letter-spacing: 0.3px; }
.sani-progress-meta strong { color: #ff5a36; font-weight: 800; }

/* Steps */
.sani-multi-form { background: white; color: #0f172a; }
.sani-mf-step { display: none !important; animation: sani-fadein 0.35s; }
.sani-mf-step.sani-mf-active { display: block !important; }
@keyframes sani-fadein { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
.sani-step-title { font-size: 19px !important; font-weight: 800 !important; margin: 0 0 18px !important; color: #0f172a !important; letter-spacing: -0.01em !important; }
.sani-field-label { display: block; font-size: 13px; font-weight: 600; color: #0f172a; margin: 14px 0 8px; }
.sani-field-label:first-child { margin-top: 0; }
.sani-optional { font-weight: 400; color: #94a3b8; font-size: 12px; margin-left: 4px; }

/* Inputs */
.sani-multi-form input[type="text"], .sani-multi-form input[type="email"], .sani-multi-form input[type="tel"] {
  border: 1.5px solid #cbd5e1; border-radius: 10px;
  padding: 12px 14px; width: 100%; font-size: 15px;
  font-family: inherit; line-height: 1.4;
  background: white; color: #0f172a;
  transition: border-color 0.15s, box-shadow 0.15s;
}
.sani-multi-form input:focus { outline: none; border-color: #1b6ca6; box-shadow: 0 0 0 3px rgba(27,108,166,0.12); }
.sani-multi-form input.sani-error { border-color: #ef4444; box-shadow: 0 0 0 3px rgba(239,68,68,0.12); }

/* Radio cards */
.sani-radio-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 8px; margin-bottom: 4px; }
.sani-radio-grid label { display: block; cursor: pointer; padding: 10px 12px; border: 1.5px solid #cbd5e1; border-radius: 10px; font-size: 13px; font-weight: 500; text-align: center; transition: all 0.15s; background: white; color: #0f172a; }
.sani-radio-grid label:hover { border-color: #1b6ca6; }
.sani-radio-grid input[type="radio"] { display: none; }
.sani-radio-grid input[type="radio"]:checked + span { color: white; }
.sani-radio-grid label:has(input[type="radio"]:checked) { background: linear-gradient(135deg, #1b6ca6, #142d6f); color: white; border-color: #1b6ca6; box-shadow: 0 4px 12px rgba(27,108,166,0.25); }

/* Buttons */
.sani-btn-next, .sani-btn-submit {
  background: linear-gradient(135deg, #ff5a36, #e63d18) !important;
  color: white !important; border: none !important;
  padding: 15px 22px !important; font-size: 16px !important; font-weight: 800 !important;
  border-radius: 12px !important; cursor: pointer; width: 100%;
  box-shadow: 0 10px 22px rgba(255,90,54,0.32);
  margin-top: 18px; transition: transform 0.15s, box-shadow 0.15s;
  letter-spacing: 0.3px; font-family: inherit;
}
.sani-btn-next:hover, .sani-btn-submit:hover { transform: translateY(-2px); box-shadow: 0 14px 26px rgba(255,90,54,0.4); }
.sani-btn-submit:disabled { opacity: 0.6; cursor: wait; }
.sani-btn-prev {
  background: transparent !important; color: #64748b !important; border: 1.5px solid #cbd5e1 !important;
  padding: 14px 18px !important; font-size: 14px !important; font-weight: 600 !important;
  border-radius: 10px !important; cursor: pointer; font-family: inherit;
}
.sani-btn-prev:hover { color: #0f172a !important; border-color: #94a3b8 !important; }
.sani-actions { display: grid; grid-template-columns: auto 1fr; gap: 10px; margin-top: 18px; }
.sani-actions .sani-btn-next, .sani-actions .sani-btn-submit { margin-top: 0; }
.sani-reassurance { font-size: 12px; color: #64748b; text-align: center; margin: 14px 0 0; line-height: 1.5; }

/* Feedback */
.sani-form-feedback:empty { display: none; }
.sani-form-feedback .sani-success { background: #d1fae5; color: #065f46; padding: 14px 16px; border-radius: 10px; font-weight: 600; margin-top: 14px; }
.sani-form-feedback .sani-error-msg { background: #fee2e2; color: #991b1b; padding: 14px 16px; border-radius: 10px; font-weight: 500; margin-top: 14px; font-size: 14px; }
.sani-form-feedback .sani-error-msg a { color: #991b1b; text-decoration: underline; font-weight: 700; }

/* ===== Inline CTAs throughout the page ===== */
.sani-cta-band {
  background: linear-gradient(135deg, #0a1b3d, #1b6ca6) !important;
  color: white !important; padding: 36px 28px !important;
  border-radius: 16px; margin: 0 auto;
  display: flex; flex-wrap: wrap; gap: 24px; align-items: center; justify-content: space-between;
  max-width: 1180px; position: relative; overflow: hidden;
}
.sani-cta-band::before { content: ""; position: absolute; top: -50px; right: -50px; width: 250px; height: 250px; background: radial-gradient(closest-side, rgba(255,90,54,0.2), transparent); pointer-events: none; }
.sani-cta-band-text { flex: 1 1 320px; position: relative; z-index: 1; }
.sani-cta-band-text strong { display: block; font-size: 22px !important; font-weight: 800 !important; color: white !important; margin-bottom: 6px !important; letter-spacing: -0.01em; }
.sani-cta-band-text span { display: block; font-size: 15px; color: rgba(255,255,255,0.85); }
.sani-cta-band-actions { display: flex; gap: 12px; flex-wrap: wrap; position: relative; z-index: 1; }
.sani-cta-band-actions a { display: inline-flex; align-items: center; gap: 8px; padding: 14px 24px; border-radius: 10px; font-weight: 800; font-size: 15px; text-decoration: none; letter-spacing: 0.3px; transition: transform 0.15s; }
.sani-cta-band-actions .fill { background: #ff5a36 !important; color: white !important; box-shadow: 0 8px 20px rgba(255,90,54,0.4); }
.sani-cta-band-actions .fill:hover { background: #e63d18 !important; transform: translateY(-2px); }
.sani-cta-band-actions .ghost { background: rgba(255,255,255,0.12) !important; color: white !important; border: 1.5px solid rgba(255,255,255,0.3); }
.sani-cta-band-actions .ghost:hover { background: rgba(255,255,255,0.2) !important; }

@media (max-width: 700px) {
  .sani-cta-band { padding: 22px 20px !important; flex-direction: column; align-items: stretch !important; justify-content: flex-start !important; gap: 18px !important; } .sani-cta-band .sani-cta-band-text { flex: 0 0 auto !important; }
  .sani-cta-band-actions { width: 100%; flex-direction: column; }
  .sani-cta-band-actions a { width: 100%; justify-content: center; }
  .sani-radio-grid { grid-template-columns: 1fr 1fr; }
  .sani-actions { grid-template-columns: 1fr; }
}


/* =================================================== */
/* Responsive tables (mobile cards)                    */
/* =================================================== */
@media (max-width: 700px) {
  /* Aides table → vertical cards */
  .sani-aides { box-shadow: none !important; background: transparent !important; }
  .sani-aides table, .sani-aides thead, .sani-aides tbody, .sani-aides tr, .sani-aides td {
    display: block !important; width: 100% !important;
  }
  .sani-aides thead { display: none !important; }
  .sani-aides tbody tr {
    background: white !important; border-radius: 14px !important; padding: 18px !important;
    margin-bottom: 14px !important; border: 1px solid #e2e8f0 !important;
    box-shadow: 0 4px 16px rgba(0,0,0,0.05) !important;
  }
  .sani-aides td {
    display: flex !important; justify-content: space-between !important; align-items: center !important;
    padding: 8px 0 !important; border: none !important; gap: 14px !important;
    font-size: 15px !important; text-align: right;
  }
  .sani-aides td:first-child {
    text-align: left;
    padding-bottom: 12px !important; margin-bottom: 6px !important;
    border-bottom: 1px solid #f1f5f9 !important;
    font-weight: 800 !important; font-size: 17px !important; color: #0a1b3d !important;
    display: block !important;
  }
  .sani-aides td:not(:first-child)::before {
    content: ""; font-weight: 600; color: #64748b; font-size: 13px; text-align: left;
    flex: 1; letter-spacing: 0.2px;
  }
  .sani-aides td:nth-child(2)::before { content: "MaPrimeRénov'"; }
  .sani-aides td:nth-child(3)::before { content: "Coup de pouce CEE"; }
  .sani-aides td:nth-child(4)::before { content: "Total max"; color: #1b6ca6 !important; font-weight: 700; }
  .sani-aides td:last-child { color: #1b6ca6 !important; font-weight: 800 !important; font-size: 17px !important; }
  .sani-aides tbody tr:hover { background: white !important; }

  /* Compare table (Bar-Th 174) → vertical cards */
  .sani-compare { box-shadow: none !important; background: transparent !important; }
  .sani-compare table, .sani-compare thead, .sani-compare tbody, .sani-compare tr, .sani-compare td {
    display: block !important; width: 100% !important;
  }
  .sani-compare thead { display: none !important; }
  .sani-compare tbody tr {
    background: white !important; border-radius: 14px !important; padding: 18px !important;
    margin-bottom: 14px !important; border: 1px solid #e2e8f0 !important;
    box-shadow: 0 4px 16px rgba(0,0,0,0.05) !important;
  }
  .sani-compare td {
    display: flex !important; justify-content: space-between !important; align-items: center !important;
    padding: 8px 0 !important; border: none !important; text-align: right !important; gap: 14px !important;
    font-size: 14px !important;
  }
  .sani-compare td:first-child {
    text-align: left !important;
    padding-bottom: 12px !important; margin-bottom: 6px !important;
    border-bottom: 1px solid #f1f5f9 !important;
    font-weight: 800 !important; font-size: 16px !important; color: #0a1b3d !important;
    display: block !important;
  }
  .sani-compare td:not(:first-child)::before {
    content: ""; font-weight: 600; color: #64748b; font-size: 13px; text-align: left; flex: 1;
  }
  .sani-compare td:nth-child(2)::before { content: "PAC hybride"; color: #ff5a36 !important; font-weight: 700; }
  .sani-compare td:nth-child(3)::before { content: "PAC seule"; }
  .sani-compare .recommended { background: white !important; border-left: none !important; }
}

/* =================================================== */
/* Page Merci specifics                                */
/* =================================================== */
.sani-check-icon {
  width: 84px; height: 84px;
  border-radius: 50%;
  background: linear-gradient(135deg, #22c55e, #16a34a);
  display: flex; align-items: center; justify-content: center;
  margin: 0 auto 28px;
  box-shadow: 0 18px 36px rgba(34, 197, 94, 0.4), 0 0 0 6px rgba(34, 197, 94, 0.15);
  animation: sani-check-pop 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.sani-check-icon svg {
  width: 42px; height: 42px;
  color: white;
  animation: sani-check-draw 0.6s 0.2s both;
}
@keyframes sani-check-pop {
  from { transform: scale(0); opacity: 0; }
  to { transform: scale(1); opacity: 1; }
}
@keyframes sani-check-draw {
  from { opacity: 0; transform: scale(0.5); }
  to { opacity: 1; transform: scale(1); }
}

/* Merci CTAs (replicate final ones outside .sani-final) */
.sani-merci-btn-fill {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 16px 30px; border-radius: 12px;
  font-weight: 800 !important; font-size: 16px;
  text-decoration: none; letter-spacing: 0.3px;
  background: #ff5a36 !important; color: white !important;
  box-shadow: 0 14px 28px rgba(255,90,54,0.4);
  transition: transform 0.15s;
}
.sani-merci-btn-fill:hover { background: #e63d18 !important; transform: translateY(-2px); }
.sani-merci-btn-ghost {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 16px 30px; border-radius: 12px;
  font-weight: 700 !important; font-size: 16px;
  text-decoration: none; letter-spacing: 0.3px;
  background: rgba(255,255,255,0.1) !important; color: white !important;
  border: 1.5px solid rgba(255,255,255,0.3);
}
.sani-merci-btn-ghost:hover { background: rgba(255,255,255,0.18) !important; }

/* =================================================== */
/* Simulateur aides — LP rénovation globale            */
/* =================================================== */

/* Simulation panel (en haut du form card) */
.sani-sim-panel {
  background: linear-gradient(135deg, #fff5f0, #fff8e6);
  border: 1.5px dashed #ff5a36;
  border-radius: 14px;
  padding: 18px 20px;
  margin: 0 0 18px;
  text-align: center;
  position: relative;
  transition: all 0.3s;
}
.sani-sim-panel.sani-sim-active {
  background: linear-gradient(135deg, #fff1ec, #ffe8d9);
  border-style: solid;
  border-color: #ff5a36;
  box-shadow: 0 6px 22px rgba(255,90,54,0.15);
}
.sani-sim-panel.sani-sim-partial { border-color: #fbbf24; background: #fffbeb; }
.sani-sim-label {
  font-size: 12px; font-weight: 700; text-transform: uppercase;
  letter-spacing: 1.2px; color: #92400e; margin-bottom: 4px;
}
.sani-sim-amount {
  font-size: 38px; font-weight: 900; line-height: 1;
  background: linear-gradient(90deg, #ff5a36, #e63d18);
  -webkit-background-clip: text; background-clip: text; color: transparent;
  -webkit-text-fill-color: transparent;
  transition: transform 0.25s;
}
.sani-sim-panel.sani-sim-active .sani-sim-amount { transform: scale(1.05); }
.sani-sim-currency { font-size: 26px; }
.sani-sim-detail {
  font-size: 12px; color: #64748b; margin-top: 6px; line-height: 1.4;
}

/* Multi-select checkbox cards */
.sani-multi-grid {
  display: grid; grid-template-columns: 1fr; gap: 8px; margin-bottom: 6px;
}
.sani-multi-grid label {
  display: flex; align-items: center; cursor: pointer;
  padding: 12px 14px; border: 1.5px solid #cbd5e1;
  border-radius: 10px; background: white;
  transition: all 0.15s; gap: 12px; position: relative;
}
.sani-multi-grid label:hover { border-color: #1b6ca6; background: #f8fafc; }
.sani-multi-grid input[type="checkbox"] {
  appearance: none; -webkit-appearance: none;
  width: 22px; height: 22px; min-width: 22px;
  border: 2px solid #cbd5e1; border-radius: 6px;
  cursor: pointer; position: relative;
  transition: all 0.15s; margin: 0;
}
.sani-multi-grid input[type="checkbox"]:checked {
  background: #1b6ca6; border-color: #1b6ca6;
}
.sani-multi-grid input[type="checkbox"]:checked::after {
  content: ""; position: absolute;
  top: 50%; left: 50%; width: 5px; height: 10px;
  border-right: 2.5px solid white; border-bottom: 2.5px solid white;
  transform: translate(-50%, -60%) rotate(45deg);
}
.sani-multi-grid label:has(input:checked) {
  border-color: #1b6ca6; background: #f0f7ff;
  box-shadow: 0 4px 12px rgba(27,108,166,0.12);
}
.sani-multi-grid label span {
  display: flex; flex-direction: column; flex: 1;
  font-size: 14px; font-weight: 600; color: #0f172a;
}
.sani-multi-grid label small {
  font-size: 12px; font-weight: 500; color: #64748b; margin-top: 2px;
}

/* Revenu radio cards (2 lines per card) */
.sani-revenu-grid label small { display: block; font-weight: 500; color: rgba(255,255,255,0.85); margin-top: 4px; font-size: 11px; }
.sani-revenu-grid label:not(:has(input:checked)) small { color: #64748b; }
.sani-revenu-grid label { padding: 12px 10px !important; }

/* Final simulator panel on step 3 */
.sani-sim-final {
  background: linear-gradient(135deg, #0a1b3d, #1b6ca6);
  color: white;
  border-radius: 14px;
  padding: 22px 20px;
  margin-bottom: 18px;
  text-align: center;
}
.sani-sim-final-label {
  font-size: 12px; font-weight: 700; text-transform: uppercase;
  letter-spacing: 1.2px; color: rgba(255,255,255,0.75); margin-bottom: 6px;
}
.sani-sim-final-amount {
  font-size: 44px; font-weight: 900; line-height: 1;
  background: linear-gradient(90deg, #ff8e58, #ffc857);
  -webkit-background-clip: text; background-clip: text; color: transparent;
  -webkit-text-fill-color: transparent;
  margin-bottom: 14px;
}
.sani-sim-final-breakdown {
  text-align: left; font-size: 13px;
  background: rgba(255,255,255,0.06);
  border-radius: 10px;
  padding: 12px 14px;
  border: 1px solid rgba(255,255,255,0.12);
}
.sani-sim-final-breakdown div {
  display: flex; justify-content: space-between; padding: 5px 0;
  border-bottom: 1px dashed rgba(255,255,255,0.12);
}
.sani-sim-final-breakdown div:last-child { border-bottom: none; }
.sani-sim-final-breakdown span { color: rgba(255,255,255,0.75); }
.sani-sim-final-breakdown strong { color: white; font-weight: 700; }
.sani-sim-final-breakdown .sani-sim-disclaimer {
  display: block !important; margin-top: 8px; padding-top: 8px;
  border-top: 1px solid rgba(255,255,255,0.18) !important;
  font-size: 11px; color: rgba(255,255,255,0.6); line-height: 1.5;
  font-style: italic; border-bottom: none !important;
}
.sani-sim-final-breakdown .sani-sim-disclaimer span,
.sani-sim-final-breakdown .sani-sim-disclaimer strong { display: block; }

/* Step helper text */
.sani-step-help {
  font-size: 13px; color: #64748b; margin: -6px 0 16px;
  line-height: 1.5;
}

/* Hide top sim panel on step 3 (navy panel takes over) */
.sani-reno-form[data-step="3"] .sani-sim-panel { display: none !important; }
