@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap');
:root{--primary:#0B5FFF;--primary-dark:#003aa8;--secondary:#37E6A5;--secondary-dark:#08734f;--ink:#07152f;--muted:#44546f;--soft:#f4f8ff;--soft-2:#eaf3ff;--line:#d8e3f2;--white:#fff;--shadow:0 24px 70px rgba(7,21,47,.13);--shadow-soft:0 12px 38px rgba(7,21,47,.07);--radius:28px;--max:1180px}
*{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;color:var(--ink);background:linear-gradient(180deg,#fff 0%,#f8fbff 100%);line-height:1.6;overflow-x:hidden;text-rendering:optimizeLegibility}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(11,95,255,.35);outline-offset:3px}img{max-width:100%;display:block;height:auto}main{overflow:hidden}.site-header{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px clamp(18px,4vw,54px);background:rgba(255,255,255,.92);backdrop-filter:blur(18px);border-bottom:1px solid rgba(216,227,242,.9)}.brand{display:flex;align-items:center;gap:10px;font-weight:900;letter-spacing:-.04em;min-width:max-content}.brand-mark{display:inline-grid;place-items:center;width:42px;height:42px;border-radius:15px;background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;font-weight:900;box-shadow:0 10px 24px rgba(11,95,255,.25)}.main-nav{display:flex;align-items:center;gap:22px;font-weight:800;color:#1d2b44}.main-nav a{transition:color .25s ease,background .25s ease,transform .25s ease}.main-nav a:hover{color:var(--primary)}.nav-cta{padding:12px 18px;border-radius:999px;background:var(--ink);color:#fff!important}.nav-cta:hover{background:var(--primary);transform:translateY(-1px)}.nav-toggle{display:none;border:1px solid var(--line);background:var(--soft);color:var(--ink);border-radius:14px;padding:10px 12px;font-size:20px;line-height:1}.hero,.section,.page-hero,.service-hero,.local-hero,.quote-hero,.article{max-width:var(--max);margin:0 auto;padding:clamp(54px,8vw,112px) clamp(18px,4vw,28px)}.hero{position:relative;display:grid;grid-template-columns:minmax(0,1.03fr) minmax(320px,.97fr);gap:54px;align-items:center;min-height:650px}.hero:before{content:"";position:absolute;inset:80px auto auto -180px;width:420px;height:420px;background:radial-gradient(circle,rgba(55,230,165,.6),transparent 65%);opacity:.32;filter:blur(12px);z-index:-1}.eyebrow{margin:0 0 12px;text-transform:uppercase;font-weight:900;color:var(--primary);letter-spacing:.12em;font-size:.78rem}.hero h1,.page-hero h1,.service-hero h1,.local-hero h1,.quote-hero h1,.article h1{font-size:clamp(2.7rem,7.4vw,6.5rem);line-height:.9;letter-spacing:-.08em;margin:0 0 24px;color:var(--ink)}.hero-lead,.page-hero p,.service-hero p,.local-hero p,.quote-hero p,.article-header p{font-size:clamp(1.05rem,2vw,1.32rem);color:var(--muted);max-width:760px}.hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin:30px 0}.btn{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:15px 22px;font-weight:900;transition:transform .25s ease,box-shadow .25s ease,background .25s ease,border-color .25s ease;border:1px solid transparent;cursor:pointer;text-align:center;min-height:52px}.btn:hover{transform:translateY(-2px)}.btn-primary{background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;box-shadow:0 14px 32px rgba(11,95,255,.28)}.btn-primary:hover{box-shadow:0 18px 44px rgba(11,95,255,.34)}.btn-secondary{background:#fff;color:var(--ink);border-color:var(--line);box-shadow:0 8px 22px rgba(7,21,47,.05)}.btn-secondary:hover{border-color:rgba(11,95,255,.45)}.btn-light{background:#fff;color:#07152f;border-color:#fff}.btn-light:hover{background:#f7fbff}.trust-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.trust-row span,.tag{display:inline-flex;width:max-content;max-width:100%;padding:8px 12px;border-radius:999px;background:#defbed;color:#07543c;font-weight:900;font-size:.82rem;border:1px solid rgba(8,115,79,.15)}.hero-visual{position:relative;min-width:0}.hero-visual img,.service-hero img{border-radius:36px;box-shadow:var(--shadow);transform:rotate(2deg);aspect-ratio:1/1;object-fit:cover;background:var(--soft-2)}.floating-card{position:absolute;left:-22px;bottom:30px;max-width:250px;background:#fff;padding:20px;border-radius:24px;box-shadow:var(--shadow);border:1px solid var(--line)}.floating-card strong{display:block;font-size:1.35rem;line-height:1.05}.floating-card span{color:var(--muted)}.split{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:54px;align-items:start}.section h2,.split h2,.section-head h2{font-size:clamp(1.9rem,4vw,4rem);line-height:1;letter-spacing:-.06em;margin:0 0 18px;color:var(--ink)}.rich-text{font-size:1.08rem;color:#30405c}.rich-text p:first-child{margin-top:0}.section-head{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:28px}.section-head>div{min-width:0}.section-head a,.card a,.zone-card a,.blog-card a,.price-card a,.card-link,.sidebar-links a{font-weight:900;color:var(--primary)}.section-head a:hover,.card a:hover,.zone-card a:hover,.blog-card a:hover,.price-card a:hover,.card-link:hover,.sidebar-links a:hover{text-decoration:underline;text-underline-offset:4px}.card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.card,.feature-card,.zone-card,.blog-card,.price-card,.success-box,.quote-sidebar{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:28px;box-shadow:var(--shadow-soft);transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;min-width:0}.card:hover,.zone-card:hover,.blog-card:hover,.price-card:hover{transform:translateY(-5px);box-shadow:var(--shadow);border-color:rgba(11,95,255,.18)}.card h3,.card h2,.feature-card h3,.zone-card h2,.blog-card h2,.price-card h2{line-height:1.07;letter-spacing:-.04em;margin:14px 0;color:var(--ink)}.card h2,.zone-card h2,.blog-card h2,.price-card h2{font-size:1.45rem}.card p,.feature-card p,.zone-card p,.blog-card p,.price-card p{color:var(--muted)}.large-card{min-height:360px;display:flex;flex-direction:column}.large-card .card-link{margin-top:auto}.check-list{list-style:none;padding:0;margin:18px 0}.check-list li{position:relative;padding-left:28px;margin:9px 0;color:#30405c}.check-list li:before{content:"✓";position:absolute;left:0;top:0;color:var(--primary);font-weight:900}.zone-band{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:34px;background:linear-gradient(135deg,#07152f 0%,#0d2348 70%,#0b3c7d 100%);color:#fff;border-radius:42px;padding:clamp(34px,6vw,72px);box-shadow:var(--shadow)}.zone-band h2,.zone-band .zone-copy h2{color:#fff}.zone-band .eyebrow{color:#9ff5d5}.zone-band p{color:#d6e2f3}.zone-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.zone-list a{display:flex;justify-content:space-between;align-items:center;gap:14px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);padding:18px;border-radius:20px;color:#fff;transition:.25s}.zone-list a:hover{background:rgba(255,255,255,.16);transform:translateY(-2px)}.zone-list small{color:#9ff5d5;font-weight:800;text-align:right}.calculator{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;background:#fff;border:1px solid var(--line);padding:22px;border-radius:32px;box-shadow:var(--shadow)}label{display:grid;gap:8px;font-weight:900;color:#17243a}input,select,textarea{width:100%;border:1px solid #cbd8ea;border-radius:16px;padding:14px 16px;font:inherit;background:#fff;color:var(--ink);min-height:50px}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:#7b879a}input:focus,select:focus,textarea:focus{outline:3px solid rgba(11,95,255,.18);border-color:var(--primary)}.calc-result{background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;border-radius:24px;padding:18px;min-height:100%;display:flex;flex-direction:column;justify-content:center}.calc-result span,.calc-result small{display:block;color:#e5efff}.calc-result strong{display:block;font-size:2rem;line-height:1.1;color:#fff}.cta-panel{border-radius:42px;background:linear-gradient(135deg,#0b5fff 0%,#003bbd 70%,#08734f 100%);color:#fff;text-align:center;box-shadow:var(--shadow)}.cta-panel h2{color:#fff}.cta-panel .eyebrow{color:#dffef3}.cta-panel p{max-width:720px;margin:0 auto 24px;color:#edf5ff}.page-hero{text-align:center}.page-hero p{margin-left:auto;margin-right:auto}.service-hero,.local-hero,.quote-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.75fr);gap:42px;align-items:center}.service-hero h1,.local-hero h1,.quote-hero h1,.page-hero h1{font-size:clamp(2.6rem,6.8vw,5.6rem)}.feature-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,1fr);gap:22px}.primary-feature{background:linear-gradient(135deg,#07152f,#12356d);color:#fff}.primary-feature h2,.primary-feature h3{color:#fff}.primary-feature p{color:#d6e2f7}.primary-feature .tag{background:rgba(255,255,255,.14);color:#fff;border-color:rgba(255,255,255,.25)}.primary-feature .check-list li{color:#eef5ff}.pill-grid{display:flex;flex-wrap:wrap;gap:12px}.pill-grid a{padding:13px 16px;border-radius:999px;background:#fff;border:1px solid var(--line);font-weight:800;color:#24334d;box-shadow:0 6px 18px rgba(7,21,47,.04);transition:.25s}.pill-grid a:hover{border-color:var(--primary);color:var(--primary);transform:translateY(-2px)}.zone-cards,.blog-grid,.pricing-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}.local-panel,.quote-proof{background:#fff;border:1px solid var(--line);border-radius:34px;padding:28px;box-shadow:var(--shadow);display:grid;gap:8px}.local-panel span{color:var(--muted);font-weight:800}.local-panel strong{font-size:1.25rem;color:var(--ink)}.faq details{background:#fff;border:1px solid var(--line);border-radius:20px;padding:18px 22px;margin:12px 0;box-shadow:0 8px 24px rgba(7,21,47,.04)}.faq summary{font-weight:900;cursor:pointer;color:var(--ink)}.faq p{color:var(--muted)}.article{max-width:920px}.article-header{text-align:left;border-bottom:1px solid var(--line);padding-bottom:28px}.article-body{font-size:1.12rem;color:#30405c}.article-body section{margin-top:36px}.article-body h2{font-size:clamp(1.65rem,3.2vw,2.15rem);line-height:1.08;color:var(--ink);letter-spacing:-.05em;margin:0 0 14px}.article-cta{margin-top:40px;border-radius:32px;background:var(--soft);padding:28px;border:1px solid var(--line)}.quote-section{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:28px;align-items:start}.quote-form{background:#fff;border:1px solid var(--line);border-radius:34px;padding:28px;box-shadow:var(--shadow)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:18px}.quote-form button{margin-top:18px}.quote-proof strong{font-size:4rem;letter-spacing:-.08em;line-height:.9;color:var(--primary)}.quote-proof span{color:var(--muted);font-weight:800}.sidebar-links{display:grid;gap:10px;margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}.business-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}.business-card{position:relative;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow-soft);transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;min-width:0}.business-card:before{content:"";position:absolute;inset:0 0 auto 0;height:5px;background:linear-gradient(90deg,var(--primary),var(--secondary))}.business-card:hover{transform:translateY(-5px);box-shadow:var(--shadow);border-color:rgba(11,95,255,.2)}.business-card h3{margin:16px 0 10px;color:var(--ink);font-size:1.14rem;line-height:1.15;letter-spacing:-.035em}.business-card p{margin:0;color:var(--muted);font-size:.95rem}.business-tag{display:inline-flex;align-items:center;width:max-content;max-width:100%;padding:7px 10px;border-radius:999px;background:#eaf3ff;color:#003a91;border:1px solid #cfe0ff;font-weight:900;font-size:.74rem}.source-note,.info-panel{margin-top:22px;background:linear-gradient(135deg,#f4f8ff,#fff);border:1px solid var(--line);border-radius:26px;padding:22px;color:#30405c}.info-panel{margin-top:0;box-shadow:var(--shadow-soft)}.info-panel h2{max-width:820px}.info-panel p{max-width:760px}.site-footer{margin-top:60px;background:#07152f;color:#fff;padding:clamp(28px,5vw,54px)}.footer-cta{max-width:var(--max);margin:-110px auto 54px;background:linear-gradient(135deg,#0b5fff 0%,#003bbd 72%,#08734f 100%);border-radius:40px;padding:42px;display:flex;align-items:center;justify-content:space-between;gap:24px;box-shadow:var(--shadow)}.footer-cta h2{font-size:clamp(1.8rem,4vw,3.3rem);line-height:1;letter-spacing:-.06em;margin:0;color:#fff}.footer-cta .eyebrow{color:#dffef3}.footer-grid{max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr));gap:32px}.footer-grid p{color:#c7d4e6}.footer-grid h3{margin-top:0;color:#fff}.footer-grid a{display:block;color:#e8f0fb;margin:8px 0;transition:.25s}.footer-grid a:hover{color:#9ff5d5}.footer-bottom{max-width:var(--max);margin:34px auto 0;padding-top:24px;border-top:1px solid rgba(255,255,255,.14);color:#c7d4e6}.footer-brand{margin-bottom:12px;color:#fff}.reveal-on-scroll{opacity:0;transform:translateY(22px);transition:opacity .65s ease,transform .65s ease}.reveal-on-scroll.revealed{opacity:1;transform:translateY(0)}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal-on-scroll{opacity:1;transform:none;transition:none}.btn:hover,.card:hover,.zone-card:hover,.blog-card:hover,.price-card:hover,.business-card:hover,.pill-grid a:hover,.zone-list a:hover{transform:none}}
@media (max-width:1100px){.zone-cards,.blog-grid,.pricing-grid,.business-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero{grid-template-columns:1fr;min-height:auto}.hero-visual{max-width:680px}.footer-cta{margin-top:0}}
@media (max-width:1000px){.service-hero,.local-hero,.quote-hero,.split,.zone-band,.quote-section{grid-template-columns:1fr}.feature-layout,.calculator{grid-template-columns:1fr 1fr}.footer-grid{grid-template-columns:1fr 1fr}.quote-sidebar{order:-1}.service-hero img{max-width:620px}}
@media (max-width:760px){.site-header{align-items:center;padding:14px 18px}.brand{font-size:.98rem}.brand-mark{width:38px;height:38px;border-radius:13px}.nav-toggle{display:block}.main-nav{display:none;position:absolute;left:14px;right:14px;top:70px;background:#fff;border:1px solid var(--line);border-radius:24px;padding:16px;box-shadow:var(--shadow);flex-direction:column;align-items:stretch;gap:8px}.main-nav.is-open{display:flex}.main-nav a{padding:12px 14px;border-radius:14px}.main-nav a:hover{background:var(--soft)}.nav-cta{text-align:center;background:var(--primary)}.hero,.section,.page-hero,.service-hero,.local-hero,.quote-hero,.article{padding-left:18px;padding-right:18px}.hero h1,.page-hero h1,.service-hero h1,.local-hero h1,.quote-hero h1,.article h1{font-size:clamp(2.45rem,13vw,3.35rem);letter-spacing:-.065em;line-height:.94}.section h2,.split h2,.section-head h2{font-size:clamp(1.75rem,8vw,2.55rem);letter-spacing:-.05em}.hero-actions,.section-head,.footer-cta{align-items:stretch;flex-direction:column}.btn{width:100%}.card-grid,.zone-cards,.blog-grid,.pricing-grid,.business-grid,.feature-layout,.calculator,.zone-list,.form-grid,.footer-grid{grid-template-columns:1fr}.zone-band,.cta-panel{border-radius:28px}.zone-list a{align-items:flex-start;flex-direction:column}.zone-list small{text-align:left}.floating-card{position:relative;left:auto;bottom:auto;margin-top:-18px;max-width:100%}.hero-visual img,.service-hero img{transform:none;border-radius:28px}.calculator{padding:16px;border-radius:24px}.quote-form,.quote-sidebar,.local-panel,.quote-proof{padding:22px;border-radius:26px}.business-card,.source-note,.info-panel{padding:20px;border-radius:22px}.footer-cta{padding:28px;border-radius:28px}.site-footer{margin-top:30px}.article-body{font-size:1.04rem}}
@media (max-width:420px){.hero,.section,.page-hero,.service-hero,.local-hero,.quote-hero,.article{padding-left:14px;padding-right:14px}.hero h1,.page-hero h1,.service-hero h1,.local-hero h1,.quote-hero h1,.article h1{font-size:2.35rem}.card,.feature-card,.zone-card,.blog-card,.price-card,.success-box,.quote-sidebar{padding:22px;border-radius:22px}.trust-row span,.tag,.business-tag{font-size:.76rem}.quote-proof strong{font-size:3.1rem}}
/* =================================================================
   AJOUTS — accessibilité, correctifs responsive, formulaire de lead
   Ajoutés après les règles d'origine : ils gagnent à spécificité égale.
   ================================================================= */

/* --- Accessibilité : lien d'évitement --- */
.skip-link{position:absolute;left:-9999px;top:0;z-index:200;background:var(--ink);color:#fff;padding:12px 18px;border-radius:0 0 14px 0;font-weight:900}
.skip-link:focus{left:0}

/* --- Zones sûres (encoches iPhone) --- */
.site-header{padding-left:max(clamp(18px,4vw,54px),env(safe-area-inset-left));padding-right:max(clamp(18px,4vw,54px),env(safe-area-inset-right))}
.site-footer{padding-bottom:max(clamp(28px,5vw,54px),calc(env(safe-area-inset-bottom) + 28px))}

/* -----------------------------------------------------------------
   CORRECTIF 1 — hero des pages /services/* coupé sur mobile
   Cause : `.service-hero img{max-width:620px}` (média 1000px) écrasait
   `img{max-width:100%}` et imposait 620px à la colonne de grille,
   poussant titre, texte et boutons hors de l'écran jusqu'à 600px.
   ----------------------------------------------------------------- */
.service-hero,.local-hero,.quote-hero,.hero,.split,.zone-band,.quote-section,
.card-grid,.zone-cards,.blog-grid,.pricing-grid,.business-grid,.feature-layout,
.calculator,.zone-list,.form-grid,.footer-grid{min-width:0}
.service-hero>*,.local-hero>*,.quote-hero>*,.hero>*{min-width:0;max-width:100%}
.hero-visual img,.service-hero img,.local-hero img{max-width:100%;height:auto}

@media (max-width:1000px){
    .service-hero img{max-width:min(620px,100%);margin-inline:auto}
    .hero-visual{max-width:min(680px,100%);margin-inline:auto}
}

/* -----------------------------------------------------------------
   CORRECTIF 2 — cibles tactiles trop petites (< 44px) sur mobile
   Tous les liens texte des cartes, listes et bandeaux passaient sous
   la taille minimale recommandée (Lighthouse / WCAG 2.5.8).
   ----------------------------------------------------------------- */
@media (max-width:860px){
    .section-head a,
    .card a,.zone-card a,.blog-card a,.price-card a,.card-link,
    .sidebar-links a,.business-card a,.footer-grid a,.article-cta a:not(.btn){
        display:inline-flex;align-items:center;min-height:44px;padding:8px 0
    }
    .pill-grid a{min-height:44px;padding:12px 18px}
    .zone-list a{min-height:56px}
    .brand{min-height:44px}
    .faq summary{min-height:44px;display:flex;align-items:center;gap:10px;padding:6px 0}
    .main-nav a{min-height:48px;display:flex;align-items:center}
    .footer-grid a{padding:10px 0;margin:0}
}

/* -----------------------------------------------------------------
   CORRECTIF 3 — bouton menu et panneau de navigation mobile
   Le panneau était calé sur un `top:70px` fixe : il se décalait dès
   que la hauteur de l'en-tête changeait.
   ----------------------------------------------------------------- */
.nav-toggle{align-items:center;gap:8px;min-height:44px;min-width:44px;font-size:1rem;font-weight:900}
.nav-toggle-bar{position:relative;display:block;width:18px;height:2px;border-radius:2px;background:currentColor;transition:transform .25s ease,background .25s ease}
.nav-toggle-bar:before,.nav-toggle-bar:after{content:"";position:absolute;left:0;width:18px;height:2px;border-radius:2px;background:currentColor;transition:transform .25s ease,top .25s ease}
.nav-toggle-bar:before{top:-6px}
.nav-toggle-bar:after{top:6px}
.nav-toggle.is-open .nav-toggle-bar{background:transparent}
.nav-toggle.is-open .nav-toggle-bar:before{top:0;transform:rotate(45deg)}
.nav-toggle.is-open .nav-toggle-bar:after{top:0;transform:rotate(-45deg)}

@media (max-width:860px){
    .nav-toggle{display:inline-flex}
    .main-nav{display:none;position:absolute;left:14px;right:14px;top:calc(100% + 8px);
        background:#fff;border:1px solid var(--line);border-radius:24px;padding:12px;
        box-shadow:var(--shadow);flex-direction:column;align-items:stretch;gap:4px;
        max-height:calc(100dvh - 120px);overflow-y:auto;overscroll-behavior:contain}
    .main-nav.is-open{display:flex}
    .main-nav a{padding:12px 14px;border-radius:14px}
    .main-nav a:hover{background:var(--soft)}
    .nav-cta{text-align:center;justify-content:center;background:var(--primary)}
}

/* -----------------------------------------------------------------
   CORRECTIF 4 — remontée des bascules mobiles de 760px à 860px
   Entre 760 et 860px, la nav horizontale et les grilles 2 colonnes
   se tassaient : titres tronqués et cartes trop étroites.
   ----------------------------------------------------------------- */
@media (max-width:860px){
    .hero,.section,.page-hero,.service-hero,.local-hero,.quote-hero,.article{
        padding-left:max(18px,env(safe-area-inset-left));
        padding-right:max(18px,env(safe-area-inset-right))
    }
    .hero h1,.page-hero h1,.service-hero h1,.local-hero h1,.quote-hero h1,.article h1{
        font-size:clamp(2.25rem,9vw,3.35rem);letter-spacing:-.055em;line-height:.96
    }
    .section h2,.split h2,.section-head h2{font-size:clamp(1.65rem,6.2vw,2.55rem);letter-spacing:-.045em}
    .hero-actions,.section-head,.footer-cta{align-items:stretch;flex-direction:column}
    .section-head a{align-self:flex-start}
    .btn{width:100%}
    .card-grid,.zone-cards,.blog-grid,.pricing-grid,.business-grid,
    .feature-layout,.calculator,.zone-list,.form-grid,.footer-grid{grid-template-columns:1fr}
    .zone-band,.cta-panel{border-radius:28px}
    .zone-list a{align-items:flex-start;flex-direction:column}
    .zone-list small{text-align:left}
    .floating-card{position:relative;left:auto;bottom:auto;margin:-18px auto 0;max-width:100%}
    .hero-visual img,.service-hero img{transform:none;border-radius:28px}
    .calculator{padding:16px;border-radius:24px}
    .quote-form,.quote-sidebar,.local-panel,.quote-proof{padding:22px;border-radius:26px}
    .business-card,.source-note,.info-panel{padding:20px;border-radius:22px}
    .footer-cta{padding:28px;border-radius:28px;text-align:left}
    .site-footer{margin-top:30px}
    .article-body{font-size:1.04rem}
    .large-card{min-height:0}
    .quote-sidebar{order:2}
}

/* Texte long : plus de débordement horizontal possible */
h1,h2,h3,p,li,a,summary,legend,label{overflow-wrap:anywhere;word-break:normal;hyphens:auto}
.footer-grid a,.sidebar-links a{overflow-wrap:break-word}

/* -----------------------------------------------------------------
   Bas de footer et mentions légales
   ----------------------------------------------------------------- */
.footer-bottom p{margin:0 0 8px}
.footer-bottom p:last-child{margin-bottom:0}
.footer-legal-line{font-size:.92rem;color:#a9b9d0}
.footer-legal-line a{display:inline;color:#e8f0fb;text-decoration:underline;text-underline-offset:3px;margin:0}
.footer-legal-line a:hover{color:#9ff5d5}
@media (max-width:860px){
    .footer-legal-line a{display:inline-block;padding:6px 0;min-height:36px}
}

/* --- Pages légales --- */
.legal-page{max-width:880px}
.legal-page .article-body section{margin-top:40px}
.legal-page .article-body section:first-child{margin-top:0}
.legal-list{list-style:none;padding:0;margin:14px 0}
.legal-list li{position:relative;padding-left:22px;margin:10px 0;color:#30405c}
.legal-list li:before{content:"";position:absolute;left:0;top:11px;width:8px;height:8px;border-radius:50%;background:var(--primary)}
.legal-page a{color:var(--primary);font-weight:700;text-decoration:underline;text-underline-offset:3px}
.legal-page .btn{text-decoration:none;color:#fff}
.legal-updated{margin-top:40px;padding-top:20px;border-top:1px solid var(--line);color:var(--muted);font-size:.95rem}

/* =================================================================
   FORMULAIRE DE DEVIS GUIDÉ
   ================================================================= */
.quote-main{min-width:0}
.hp-field{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

.alert-box{background:#fff4f4;border:1px solid #f3c4c4;border-left:5px solid #d93838;border-radius:20px;padding:18px 22px;margin-bottom:22px;color:#8c1f1f}
.alert-box strong{display:block;margin-bottom:4px}
.alert-box p{margin:0;color:#8c1f1f}

/* Fil des étapes */
.form-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;list-style:none;margin:0 0 28px;padding:0;counter-reset:step}
.form-steps li{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;
    font-size:.82rem;font-weight:900;color:#93a1b8;padding-top:12px;border-top:4px solid var(--line);transition:.25s}
.form-steps li span{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;
    background:var(--soft-2);color:#93a1b8;font-size:.9rem}
.form-steps li.is-current{color:var(--primary);border-top-color:var(--primary)}
.form-steps li.is-current span{background:var(--primary);color:#fff}
.form-steps li.is-done{color:var(--secondary-dark);border-top-color:var(--secondary)}
.form-steps li.is-done span{background:var(--secondary);color:#05372a}

/* Étapes */
.lead-form .form-step{border:0;padding:0;margin:0;min-width:0}
.lead-form:not(.is-stepped) .form-step{margin-bottom:38px;padding-bottom:30px;border-bottom:1px solid var(--line)}
.lead-form:not(.is-stepped) .form-step:last-of-type{border-bottom:0}
.lead-form:not(.is-stepped) .form-steps{display:none}
.lead-form:not(.is-stepped) [data-next],.lead-form:not(.is-stepped) [data-prev]{display:none}
.lead-form legend{font-size:clamp(1.3rem,3.4vw,1.75rem);font-weight:900;letter-spacing:-.04em;
    line-height:1.12;color:var(--ink);margin-bottom:20px;padding:0;outline:none}
.step-index{display:block;font-size:.76rem;letter-spacing:.12em;text-transform:uppercase;color:var(--primary);margin-bottom:6px}

.field-block{margin-bottom:26px}
.field-label{margin:0 0 12px;font-weight:900;color:#17243a}
.field-label small{font-weight:600;color:var(--muted)}
.field-hint{font-weight:500;color:var(--muted);font-size:.86rem}
.req{color:#d93838}

.lead-form label{margin-bottom:18px}
.lead-form .form-grid label{margin-bottom:0}

/* Cartes de choix (radio / checkbox) */
.choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.choice-grid-compact{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
.choice-card{position:relative;display:flex;align-items:flex-start;gap:12px;margin:0;
    border:1.5px solid var(--line);border-radius:18px;padding:14px 16px;background:#fff;
    cursor:pointer;font-weight:600;min-height:56px;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}
.choice-card:hover{border-color:rgba(11,95,255,.45)}
.choice-card input{position:absolute;opacity:0;width:1px;height:1px;margin:0}
.choice-card .choice-body{display:grid;gap:3px;min-width:0}
.choice-card strong{font-size:.98rem;line-height:1.25;color:var(--ink);letter-spacing:-.01em}
.choice-card small{color:var(--muted);font-weight:600;font-size:.83rem;line-height:1.35}
.choice-card:before{content:"";flex:0 0 auto;width:22px;height:22px;margin-top:2px;border:2px solid #c3d2e6;
    border-radius:50%;background:#fff;transition:.2s}
.choice-card:has(input[type=checkbox]):before{border-radius:7px}
.choice-card:has(input:checked){border-color:var(--primary);background:var(--soft);box-shadow:0 8px 22px rgba(11,95,255,.12)}
.choice-card:has(input:checked):before{border-color:var(--primary);background:var(--primary);
    box-shadow:inset 0 0 0 4px #fff}
.choice-card:has(input[type=checkbox]:checked):before{box-shadow:none;
    background:var(--primary) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23fff' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 8.5l3.2 3.2L13 5'/%3E%3C/svg%3E") center/13px no-repeat}
.choice-card:has(input:focus-visible){outline:3px solid rgba(11,95,255,.35);outline-offset:3px}
.choice-card-sm{min-height:52px;padding:12px 14px}
.choice-card-sm strong{font-size:.93rem}

/* Repli pour les navigateurs sans :has() */
@supports not selector(:has(*)){
    .choice-card:before{display:none}
    .choice-card input{position:static;opacity:1;width:22px;height:22px;flex:0 0 auto;margin-top:2px}
}

/* Consentement */
.consent-field{display:flex;align-items:flex-start;gap:12px;margin:8px 0 0;
    font-weight:600;color:#30405c;line-height:1.5;font-size:.95rem}
.consent-field input{width:22px;height:22px;min-height:0;flex:0 0 auto;margin-top:2px;accent-color:var(--primary)}
.consent-field a{color:var(--primary);font-weight:800;text-decoration:underline;text-underline-offset:3px}

/* Erreurs */
.field-error{display:block;margin-top:6px;color:#c62828;font-weight:700;font-size:.87rem}
.has-error input,.has-error select,.has-error textarea{border-color:#e08a8a;background:#fffafa}

/* Navigation d'étape */
.step-nav{display:flex;gap:12px;margin-top:26px;flex-wrap:wrap}
.step-nav .btn{width:auto;flex:1 1 180px}
.step-nav [data-prev]{flex:0 1 140px}
.form-legal{margin:18px 0 0;font-size:.85rem;color:var(--muted);line-height:1.5}
.form-legal a{color:var(--primary);font-weight:700}

/* Champs : confort tactile */
.lead-form input,.lead-form select,.lead-form textarea{min-height:52px;font-size:1rem}
.lead-form input[type=date]{appearance:none}
.lead-form button[disabled]{opacity:.6;cursor:progress}

@media (max-width:860px){
    .quote-section{grid-template-columns:1fr}
    .choice-grid,.choice-grid-compact{grid-template-columns:1fr}
    .form-steps{gap:6px}
    .form-steps li{font-size:.72rem;gap:6px;padding-top:10px}
    .form-steps li span{width:28px;height:28px;font-size:.82rem}
    .step-nav{flex-direction:column-reverse}
    .step-nav .btn,.step-nav [data-prev]{width:100%;flex:none}
    .lead-form legend{font-size:1.3rem}
}
@media (max-width:420px){
    .form-steps li{font-size:0;gap:0;border-top-width:5px}
    .form-steps li span{font-size:.85rem}
    .choice-card{padding:12px 14px}
}

/* =================================================================
   BLOC SEO DE LA PAGE D'ACCUEIL
   Premier dans le DOM (juste après la <nav>) pour l'indexation,
   déplacé en dernière position à l'écran via l'ordre flex.
   ================================================================= */
body[data-page="home"] main{display:flex;flex-direction:column}
body[data-page="home"] main>.container-xl:first-child{order:99;
    margin-top:24px;padding-top:44px;border-top:1px solid var(--line);color:#30405c}
body[data-page="home"] main>.container-xl:first-child h2{font-size:clamp(1.5rem,3.4vw,2.1rem);letter-spacing:-.04em;line-height:1.12;color:var(--ink)}
body[data-page="home"] main>.container-xl:first-child h3{font-size:1.05rem;letter-spacing:-.02em;color:var(--ink)}
body[data-page="home"] main>.container-xl:first-child .lead{font-size:1.05rem;line-height:1.65;color:#30405c}
body[data-page="home"] main>.container-xl:first-child p{color:#3d4c67}
body[data-page="home"] main>.container-xl:first-child a{color:var(--primary);font-weight:700;text-decoration:underline;text-underline-offset:3px}
body[data-page="home"] main>.container-xl:first-child li{margin:2px 0}
@media (max-width:860px){
    body[data-page="home"] main>.container-xl:first-child a{display:inline-block;padding:4px 0}
}

/* Bootstrap : neutralise le reboot sur les éléments déjà stylés du site */
.site-header .brand,.site-footer .brand{text-decoration:none}
.btn{--bs-btn-padding-y:initial;--bs-btn-padding-x:initial}
/* Le bandeau CTA du footer remonte de 110px sur grand écran : on réserve la place. */
@media (min-width:1101px){
    body[data-page="home"] main>.container-xl:first-child{padding-bottom:150px}
}

/* -----------------------------------------------------------------
   CORRECTIF 5 — largeur des cibles tactiles
   Les liens courts (« Lyon », « Confidentialité ») atteignaient bien
   44px de haut mais restaient sous 44px de large en inline-flex.
   Les liens inline dans une phrase sont volontairement exclus :
   WCAG 2.5.8 les dispense de la taille minimale de cible.
   ----------------------------------------------------------------- */
@media (max-width:860px){
    .footer-grid a{display:flex;width:100%;min-height:46px;padding:10px 0}
    .footer-legal-line a{min-height:44px;padding:10px 4px;line-height:24px}
    .sidebar-links a{display:flex;width:100%}
    .section-head a{min-width:44px}
    body[data-page="home"] main>.container-xl:first-child ul a{
        display:inline-flex;align-items:center;min-height:44px;min-width:44px;padding:6px 0
    }
}
@media (max-width:860px){
    /* Liens seuls dans une puce de liste légale : vraie cible tactile. */
    .legal-list li a{display:inline-flex;align-items:center;min-height:44px;min-width:44px}
}

/* =================================================================
   PAGE DEVIS — le formulaire d'abord
   Bureau  : colonne de gauche, visible immédiatement, sans scroll.
   Mobile  : titre + accroche courts (la ligne de flottaison),
             puis le formulaire tout de suite en dessous.
   ================================================================= */
.quote-layout{max-width:var(--max);margin:0 auto;
    padding:28px clamp(18px,4vw,28px) clamp(54px,8vw,96px);
    display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:32px;align-items:start}
.quote-layout .eyebrow{margin-bottom:8px}
.quote-layout h1{font-size:clamp(1.9rem,3.4vw,2.8rem);line-height:1.02;letter-spacing:-.05em;margin:0 0 10px}
.quote-lead{font-size:1.02rem;color:var(--muted);max-width:640px;margin:0 0 22px}
.quote-side{position:sticky;top:96px;display:grid;gap:18px;min-width:0}
.quote-side .quote-proof{padding:22px;border-radius:26px}
.quote-side .quote-proof strong{font-size:2.6rem}
.quote-side .quote-sidebar{padding:24px;border-radius:26px}
.quote-side .quote-sidebar h2{font-size:1.15rem;margin:0 0 6px;letter-spacing:-.02em}
.quote-side .check-list li{font-size:.94rem;margin:7px 0}

@media (max-width:1000px){
    .quote-layout{grid-template-columns:1fr;gap:24px}
    /* Le formulaire passe AVANT les encarts : premier bloc sous l'accroche. */
    .quote-layout .quote-main{order:1}
    .quote-layout .quote-side{order:2;position:static;display:grid;
        grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
    .quote-side .check-list li{padding-left:24px}
}
@media (max-width:860px){
    .quote-layout{padding:20px 18px 54px}
    .quote-layout h1{font-size:clamp(1.75rem,7.4vw,2.3rem)}
    .quote-lead{font-size:.98rem;margin-bottom:18px}
    .quote-side{grid-template-columns:1fr}
    .quote-side .quote-proof{display:flex;align-items:baseline;gap:12px;padding:18px 22px}
    .quote-side .quote-proof strong{font-size:2.1rem}
}

/* =================================================================
   BANDEAU HAUT DE PAGE — formulaire à gauche, contenu à droite
   Bureau : le formulaire occupe la colonne de gauche et est visible
            sans scroll ; le hero éditorial passe à droite.
   Mobile : le titre de page reste au-dessus de la ligne de flottaison,
            le formulaire arrive juste en dessous (ordre inversé en CSS,
            l'ordre du DOM garde le formulaire en premier).
   ================================================================= */
.hero-split{max-width:var(--max);margin:0 auto;
    padding:26px clamp(18px,4vw,28px) clamp(40px,6vw,72px);
    display:grid;grid-template-columns:minmax(0,430px) minmax(0,1fr);
    gap:clamp(28px,4vw,56px);align-items:start}
.hero-split-form{min-width:0}
.hero-split-content{min-width:0}

/* Le hero devient un simple contenu imbriqué : il perd sa largeur et ses marges propres. */
.hero-split-content>.hero,
.hero-split-content>.page-hero,
.hero-split-content>.service-hero,
.hero-split-content>.local-hero,
.hero-split-content>.article{max-width:none;margin:0;padding:0;min-height:0;display:block;text-align:left}
.hero-split-content>.page-hero p{margin-left:0;margin-right:0}
.hero-split-content .hero-visual{margin-top:26px;max-width:100%}
.hero-split-content .hero-visual img,
.hero-split-content>.service-hero img{max-width:100%;transform:none;border-radius:26px;margin-top:22px}
.hero-split-content .floating-card{position:static;max-width:100%;margin-top:-16px}
.hero-split-content .local-panel{margin-top:24px}
.hero-split-content h1{font-size:clamp(2.1rem,4.4vw,3.6rem)}
.hero-split-content .article-header{border-bottom:0;padding-bottom:0}
.hero-split-content>.hero:before{display:none}

/* Formulaire compact dans le bandeau */
.hero-split-form .quote-lead{font-size:.97rem;margin-bottom:18px}
.hero-split-form h2{font-size:clamp(1.45rem,2.6vw,1.9rem);line-height:1.08;letter-spacing:-.04em;margin:0 0 8px}
.hero-split-form .quote-form{padding:24px;border-radius:28px}
.hero-split-form .choice-grid,
.hero-split-form .choice-grid-compact{grid-template-columns:1fr}
.hero-split-form .form-grid{grid-template-columns:1fr 1fr}

@media (max-width:1000px){
    .hero-split{grid-template-columns:1fr;gap:26px;padding-top:20px}
    /* Le contenu éditorial passe au-dessus : c'est la ligne de flottaison. */
    .hero-split-content{order:1}
    .hero-split-form{order:2}
    /* Sur mobile on masque le visuel du hero : le formulaire doit rester
       immédiatement sous le titre, pas après une grande image. */
    .hero-split-content .hero-visual,
    .hero-split-content>.service-hero img{display:none}
    .hero-split-form .quote-form{padding:20px;border-radius:24px}
    .hero-split-form .form-grid{grid-template-columns:1fr}
}
@media (max-width:860px){
    .hero-split{padding:18px 18px 40px}
    .hero-split-content h1{font-size:clamp(1.85rem,7.6vw,2.4rem);line-height:1}
    .hero-split-content .hero-lead,
    .hero-split-content>.page-hero p,
    .hero-split-content>.service-hero p,
    .hero-split-content>.local-hero p{font-size:1rem}
    .hero-split-content .hero-actions,
    .hero-split-content .trust-row{margin-top:16px}
}
/* Variante compacte du formulaire dans le bandeau : l'étape 1 doit rester
   courte, le bouton « Continuer » atteignable sans scroll interminable. */
.hero-split-form .choice-grid-compact{grid-template-columns:1fr 1fr;gap:8px}
.hero-split-form .choice-card{padding:11px 13px;min-height:48px;gap:10px;border-radius:15px}
.hero-split-form .choice-card:before{width:19px;height:19px;margin-top:1px}
.hero-split-form .choice-card strong{font-size:.9rem}
.hero-split-form .choice-card small{font-size:.78rem;line-height:1.3}
.hero-split-form .choice-card-sm{min-height:46px;padding:10px 12px}
.hero-split-form .choice-card-sm strong{font-size:.85rem}
.hero-split-form .field-block{margin-bottom:20px}
.hero-split-form .field-label{margin-bottom:9px;font-size:.95rem}
.hero-split-form legend{font-size:1.15rem;margin-bottom:16px}
.hero-split-form .form-steps{margin-bottom:20px}
.hero-split-form label{margin-bottom:14px}
.hero-split-form input,.hero-split-form select,.hero-split-form textarea{min-height:46px;padding:11px 14px;border-radius:13px}
.hero-split-form .step-nav{margin-top:18px}
@media (max-width:1000px){
    .hero-split-form .choice-grid-compact{grid-template-columns:1fr 1fr}
}
@media (max-width:520px){
    .hero-split-form .choice-grid-compact{grid-template-columns:1fr}
}
.service-price{margin:10px 0 0;font-size:.95rem}
.service-price strong{font-weight:700}

/* =================================================================
   FORMULAIRE — 5 étapes courtes
   L'étape 1 faisait 2800 px : type de projet, types de WC et quantités
   étaient empilés. Chaque étape tient désormais dans un écran.
   ================================================================= */
.form-steps{grid-template-columns:repeat(5,minmax(0,1fr))}

/* Cartes de choix plus compactes et plus lisibles */
.choice-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}
.choice-card{align-items:center;padding:14px 16px;min-height:62px;transition:.15s}
.choice-card strong{font-size:.97rem;line-height:1.3}
.choice-card small{margin-top:2px;line-height:1.35;opacity:.85}
.choice-card:hover{transform:translateY(-1px)}

/* Le choix sélectionné doit se voir au premier coup d'œil */
.choice-card:has(input:checked) strong{font-weight:800}

/* Étape en cours : on la cadre visuellement */
.lead-form.is-stepped .form-step{animation:etapeEntre .25s ease}
@keyframes etapeEntre{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){
    .lead-form.is-stepped .form-step{animation:none}
    .choice-card:hover{transform:none}
}

/* Le fil d'étapes reste lisible à 5 colonnes */
@media (max-width:860px){
    .form-steps{gap:4px}
    .form-steps li{font-size:.68rem}
    .form-steps li span{width:26px;height:26px;font-size:.78rem}
}
@media (max-width:480px){
    .form-steps li{font-size:0}
    .form-steps li span{font-size:.8rem}
    .choice-grid{grid-template-columns:1fr}
}

/* Bandeau de réassurance : trois promesses courtes sous l'accroche. */
:root{--reassurance-fond:#0B5FFF;--reassurance-coche:#fff}
.form-reassurance{display:flex;flex-wrap:wrap;gap:6px 20px;list-style:none;margin:0 0 22px;padding:0}
.form-reassurance li{display:flex;align-items:center;gap:8px;font-size:.89rem;font-weight:600}
.form-reassurance li:before{content:"\2713";display:grid;place-items:center;width:18px;height:18px;
    flex:0 0 auto;border-radius:50%;font-size:.66rem;font-weight:900;line-height:1;
    background:var(--reassurance-fond);color:var(--reassurance-coche)}
@media (max-width:480px){.form-reassurance{gap:5px 14px}.form-reassurance li{font-size:.83rem}}
:root{--reco-fond:#eaf3ff;--reco-trait:#0B5FFF}

/* Recommandation de parc : le résultat de notre calcul, mis en avant. */
.reco{display:block;margin-top:14px;padding:14px 16px;border-radius:var(--r, 12px);
    background:var(--reco-fond);border-left:4px solid var(--reco-trait)}
.reco[hidden]{display:none}
.reco strong{display:block;font-size:1.02rem;margin-bottom:4px}
.reco span{display:block;font-size:.88rem;opacity:.85;line-height:1.45}

/* Champ isolé (nombre de personnes, nombre de cabines) */
.quote-form .champ-seul {
    display: block;
    margin-top: 0.85rem;
}
.quote-form .champ-seul input {
    max-width: 10rem;
}
.quote-form .field-hint {
    display: block;
    margin-top: 0.35rem;
    font-size: 0.82rem;
    opacity: 0.75;
}

/* Lien « voir tout le matériel » quand le filtrage en a masqué */
.quote-form .lien-tout-voir {
    display: block;
    width: 100%;
    margin-top: 0.7rem;
    padding: 0.7rem 0.9rem;
    min-height: 44px;
    border: 1px dashed var(--reco-trait, #94a3b8);
    border-radius: 12px;
    background: transparent;
    color: inherit;
    font: inherit;
    font-size: 0.9rem;
    cursor: pointer;
    text-align: center;
}
.quote-form .lien-tout-voir:hover,
.quote-form .lien-tout-voir:focus-visible {
    background: var(--reco-fond, #f1f5f9);
}

/* Encart emprise au sol */
.quote-form .reco-place {
    border-left-style: solid;
}
.quote-form .reco-place strong {
    display: block;
}

/* Une carte masquée par le filtrage doit vraiment disparaître :
   .choice-card{display:flex} l’emporte sinon sur le [hidden] du navigateur. */
.choice-card[hidden]{display:none}
.lien-tout-voir[hidden]{display:none}

/* Code postal et ville : libellé à gauche, champ juste à côté, sur une ligne.
   Le code postal fait cinq chiffres — inutile de lui donner la moitié du rang. */
.quote-form .form-grid-cp{grid-template-columns:auto minmax(0,1fr);align-items:start;column-gap:22px}
.quote-form .champ-inline{grid-template-columns:auto minmax(0,1fr);align-items:center;column-gap:12px}
.quote-form .champ-inline .champ-titre{white-space:nowrap}
.quote-form .champ-inline .field-error,
.quote-form .champ-inline .field-hint{grid-column:1 / -1}
.quote-form input[name=postal_code]{max-width:7rem;letter-spacing:.06em}

/* Sous 760px les deux libellés côte à côte ne tiennent plus :
   on empile les deux blocs, chacun gardant son libellé en ligne. */
@media (max-width:760px){
    .quote-form .form-grid-cp{grid-template-columns:minmax(0,1fr);gap:14px}
}
