/* =====================================================================
   subsides-geneve.ch : couche de design "premium"
   Chargée après les styles de chaque page : elle redéfinit les tokens,
   la typographie et les composants sans toucher à la logique (calculateur,
   formulaires, tracking, consentement).
   ===================================================================== */

@font-face{font-family:"Source Serif 4";src:url("/assets/fonts/source-serif-4.woff2") format("woff2");font-weight:500 700;font-style:normal;font-display:swap;}
@font-face{font-family:"Schibsted Grotesk";src:url("/assets/fonts/schibsted-grotesk.woff2") format("woff2");font-weight:400 900;font-style:normal;font-display:swap;}

:root{
  --navy:#211D42; --navy-deep:#17142F; --ink:#211D42;
  --red:#E30713; --red-dark:#C20610;
  --gold:#ECE8DD;
  --ice:#EFF1F5; --panel:#F5F6F8; --line:#E3E5EB; --line-strong:#C9CDD8;
  --slate:#575D71; --muted:#7A8093;
  --green:#2E7D5B; --green-soft:#EAF3EE;
  --link:#211D42;
  --shadow-sm:0 1px 2px rgba(23,20,47,.06);
  --shadow-md:0 1px 2px rgba(23,20,47,.05),0 12px 32px -18px rgba(23,20,47,.28);
  --shadow-lg:0 1px 2px rgba(23,20,47,.06),0 28px 60px -30px rgba(23,20,47,.45);
  --serif:"Source Serif 4",Georgia,"Times New Roman",serif;
  --sans:"Schibsted Grotesk",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --radius:10px;
}

/* ---------- Base ---------- */
html{font-size:100%;}
body{font-family:var(--sans)!important;color:var(--ink);font-size:1rem;line-height:1.62;font-feature-settings:"kern","lnum";text-rendering:optimizeLegibility;}
button,input,select,textarea,.btn,.faq-q,.ec-opt,.ec-back,.mega-btn,.contact-toggle,.ck-refuse{font-family:var(--sans)!important;}
h1,h2,h3{font-family:var(--serif)!important;font-weight:600!important;letter-spacing:-.014em!important;line-height:1.14;color:var(--navy);text-wrap:balance;}
h4{font-family:var(--sans);font-weight:600;letter-spacing:0;line-height:1.3;}
p{text-wrap:pretty;}
b,strong{font-weight:600;}
::selection{background:#DCDDEA;color:var(--navy);}
:focus-visible{outline:2px solid var(--navy);outline-offset:3px;border-radius:4px;}
.wrap{max-width:1160px;padding:0 28px;}

/* Animations d'apparition supprimées : le contenu est visible immédiatement */
.reveal,.reveal.in{opacity:1!important;transform:none!important;transition:none!important;}

/* Liens dans le texte */
.ilink,.doc a,.jx-body a:not(.btn),a[style*="var(--link)"]{color:var(--navy)!important;font-weight:600!important;text-decoration:underline;text-decoration-color:rgba(33,29,66,.3);text-decoration-thickness:1px;text-underline-offset:3px;transition:text-decoration-color .15s;}
.ilink:hover,.doc a:hover,.jx-body a:not(.btn):hover,a[style*="var(--link)"]:hover{text-decoration-color:var(--navy);}

/* Icônes SVG */
.sg-i{width:20px;height:20px;flex:none;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;display:inline-block;vertical-align:middle;}

/* ---------- Boutons ---------- */
.btn{border-radius:8px;font-weight:600;font-size:.98rem;letter-spacing:0;padding:14px 24px;box-shadow:none!important;transition:background-color .15s,border-color .15s,color .15s;}
.btn:hover{transform:none!important;}
.btn-lg{padding:16px 28px;font-size:1rem;}
.btn-primary{background:var(--red);color:#fff;}
.btn-primary:hover{background:var(--red-dark);}
.btn-help,.btn-ghost{background:#fff!important;color:var(--navy)!important;border:1px solid var(--line-strong)!important;}
.btn-help:hover,.btn-ghost:hover{border-color:var(--navy)!important;background:#fff!important;}
.btn-navy{background:var(--navy);}
.arrow{display:none!important;}

/* ---------- En-tête ---------- */
header{background:rgba(255,255,255,.94);border-bottom:1px solid var(--line);}
.nav{height:72px;}
header .wm-img{height:48px!important;}
header.hd-shrink .wm-img{height:40px!important;}
.nav-links{gap:26px;}
.nav-links a:not(.nav-cta),.mega-btn{color:var(--slate);font-size:.95rem;font-weight:500;}
.nav-links a:not(.nav-cta):hover,.mega-btn:hover,.mega-btn[aria-expanded="true"]{color:var(--navy);}
.nav-callback{border:none!important;padding:0!important;background:none!important;font-weight:500!important;font-size:.95rem!important;color:var(--slate)!important;}
.nav-callback:hover{color:var(--navy)!important;}
.lang-switch{gap:2px;}
.lang-switch a,.lang-switch .cur{border:none!important;background:none!important;padding:4px 5px;font-size:.85rem;font-weight:500;}
.lang-switch .cur{color:var(--navy)!important;font-weight:600;}
.lang-switch .cur::after{content:"";}
.lang-switch a{color:var(--muted)!important;}
.lang-switch a:hover{color:var(--navy)!important;}
.nav-cta{border-radius:8px;padding:11px 18px;font-size:.93rem;font-weight:600;}
.nav-cta:hover{transform:none;}
.mobile-burger span{height:1.5px;}

/* Méga-menu */
.mega-panel{border-radius:12px;border:1px solid var(--line);box-shadow:var(--shadow-lg);padding:26px;}
.mega-col h4{font-family:var(--sans);text-transform:none;letter-spacing:0;color:var(--muted);font-size:.82rem;font-weight:500;margin-bottom:8px;}
.mega-col a{border-radius:6px;}
.mega-col a b{font-weight:600;}
.mega-cta{background:var(--navy);border-radius:10px;padding:20px;}
.mega-cta-amt{font-family:var(--serif);font-weight:600;color:#fff;font-size:1.3rem;}
.mega-cta p{color:#C6C8D8;}

/* ---------- Hero ---------- */
.hero{background:#fff!important;border-bottom:1px solid var(--line);}
#simulateur.hero{padding:72px 0 80px;}
.hero-grid{gap:64px;align-items:center;}
.hero h1{font-size:clamp(2.15rem,1.35rem + 2.3vw,3.15rem);line-height:1.08;color:var(--navy);margin-bottom:20px;}
.hero h1 .hl-red-nb{color:inherit;}
.hero-sub{font-size:1.08rem;line-height:1.65;color:var(--slate);max-width:50ch;margin-bottom:26px;}
.hero-checks{gap:10px;margin-bottom:30px;}
.hero-check,.cta-check{font-weight:400;font-size:.98rem;color:var(--ink);gap:12px;}
.hero-check .ck,.cta-check .ck{width:20px;height:20px;background:none!important;color:var(--green);border-radius:0;}
.hero-check .ck .sg-i,.cta-check .ck .sg-i{width:18px;height:18px;stroke-width:2;}
.hero-cta-row{gap:12px;}
.hero-note{font-size:.85rem;color:var(--muted);margin-top:16px;}

/* Bandeau de garanties vérifiables (page d'accueil) */
.creds{border-bottom:1px solid var(--line);background:#fff;}
.creds-grid{display:grid;grid-template-columns:repeat(4,1fr);}
.cred{padding:26px 24px 28px 0;margin-right:24px;border-right:1px solid var(--line);display:flex;gap:14px;align-items:flex-start;}
.cred:last-child{border-right:none;margin-right:0;}
.cred .sg-i{width:22px;height:22px;color:var(--navy);margin-top:2px;stroke-width:1.5;}
.cred b{display:block;font-weight:600;color:var(--navy);font-size:.95rem;line-height:1.35;}
.cred span{display:block;color:var(--slate);font-size:.88rem;line-height:1.45;margin-top:2px;}
@media(max-width:900px){.creds-grid{grid-template-columns:1fr 1fr;}.cred{border-right:none;margin-right:0;border-bottom:1px solid var(--line);padding:20px 12px 20px 0;}.cred:nth-last-child(-n+2){border-bottom:none;}}
@media(max-width:520px){.creds-grid{grid-template-columns:1fr;}.cred:nth-last-child(2){border-bottom:1px solid var(--line);}}

/* Bandeau de chiffres (pages où il subsiste) */
.trust-strip{padding:28px 0;}
.trust-stat b{font-family:var(--serif);font-weight:600;font-size:1.6rem;}

/* ---------- Simulateur ---------- */
.engage-card{background:var(--navy);border-radius:14px;padding:34px 32px 26px;box-shadow:var(--shadow-lg);}
.engage-card .ec-tag{position:static;display:block;background:none;padding:0;border-radius:0;text-transform:none;letter-spacing:0;font-size:.85rem;font-weight:500;color:#A9ACC4;margin-bottom:8px;}
.engage-card h3{font-size:1.65rem;margin:0 0 6px;color:#fff;}
.engage-card .ec-sub{color:#BFC2D4;font-size:.95rem;margin-bottom:22px;}
.ec-progress{height:2px;background:rgba(255,255,255,.14);margin-bottom:24px;}
.ec-progress-bar{background:#fff;}
.ec-q{font-weight:500;font-size:1.04rem;line-height:1.45;margin-bottom:14px;}
.ec-options{gap:10px;}
.ec-opt{border:1px solid rgba(255,255,255,.22);background:transparent;border-radius:8px;font-weight:500;padding:14px 12px;transition:background-color .15s,border-color .15s;}
.ec-opt:hover{transform:none;background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.55);}
.ec-opt:focus-visible{outline-color:#fff;}
.ec-input-row input,.ec-input-row select,.ec-form input,.ec-form select{border:1px solid rgba(255,255,255,.24);background:rgba(255,255,255,.04);border-radius:8px;}
.ec-input-row input:focus,.ec-form input:focus,.ec-form select:focus{outline:none;border-color:#fff;background:rgba(255,255,255,.08);}
.ec-hint{color:#A9ACC4;font-size:.82rem;line-height:1.5;margin-top:4px;}
.ec-back{color:#A9ACC4;font-size:.85rem;}
.ec-maxnote{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:11px 13px;color:#D6D8E4;}
.ec-reassure{color:#A9ACC4;font-size:.8rem;margin-top:20px;padding-top:16px;border-top:1px solid rgba(255,255,255,.1);}
.ec-reassure .lock{color:#A9ACC4;display:inline-flex;}
.ec-reassure .sg-i{width:14px;height:14px;}
.ec-result-box{background:transparent;border:1px solid rgba(255,255,255,.16);border-radius:10px;padding:26px 20px;}
.ec-result-label{text-transform:none;letter-spacing:0;font-weight:500;font-size:.88rem;color:#BFC2D4;}
.ec-result-amount{font-family:var(--serif);font-weight:600;color:#fff;font-size:3.4rem;letter-spacing:-.02em;font-variant-numeric:lining-nums tabular-nums;}
.ec-result-amount small{font-family:var(--sans);font-size:.95rem;font-weight:500;color:#BFC2D4;letter-spacing:0;}
.ec-result-detail{color:#BFC2D4;}
.ec-disclaimer{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.12);border-radius:8px;color:#BFC2D4;font-size:.78rem;}
.ec-consent{color:#A9ACC4;font-size:.76rem;}
.ec-consent input{accent-color:#fff;}
.ec-success .ok{background:none;border:1.5px solid #9FD3B9;color:#9FD3B9;width:48px;height:48px;font-size:1.2rem;}

/* ---------- Sections ---------- */
section{padding:96px 0;}
.sec-kicker{display:none!important;}
.sec-head{text-align:left;max-width:720px;margin:0 0 48px;}
.sec-head h2,.cta-left h2,.alert-sec h2{font-size:clamp(1.85rem,1.3rem + 1.6vw,2.5rem);line-height:1.12;}
.sec-head h2 .hl-red,.cta-left h2 .hl{color:inherit;}
.sec-head p{font-size:1.06rem;color:var(--slate);max-width:60ch;}

/* "Qu'est-ce que le subside" : section claire */
.alert-sec{background:var(--panel)!important;color:var(--ink);}
.alert-sec::before{display:none;}
.alert-grid{gap:72px;align-items:start;}
.alert-sec h2{color:var(--navy);margin-bottom:18px;}
.alert-sec .alert-lead{color:var(--slate);font-size:1.06rem;line-height:1.7;}
.alert-sec .alert-lead b{color:var(--navy)!important;}
.alert-stat-big{font-family:var(--serif);font-weight:600;color:var(--navy);}
.alert-points{gap:0;border-top:1px solid var(--line-strong);}
.alert-point{gap:16px;padding:20px 0;border-bottom:1px solid var(--line-strong);}
.alert-point .ap-ic{width:auto;height:auto;background:none;border-radius:0;color:var(--navy);padding-top:2px;}
.alert-point h4{color:var(--navy);font-size:1rem;margin-bottom:3px;}
.alert-point p{color:var(--slate);font-size:.94rem;}
.alert-solution{background:#fff;border:1px solid var(--line);border-radius:var(--radius);color:var(--ink);padding:18px 20px;}
.alert-solution b{color:var(--navy);}
.as-ic{display:none;}

/* Situations */
.pers-grid{gap:0;border-top:1px solid var(--line);border-left:1px solid var(--line);}
.pers{border:none;border-right:1px solid var(--line);border-bottom:1px solid var(--line);border-radius:0;padding:28px 24px;background:#fff;transition:background-color .15s;}
.pers:hover{transform:none;box-shadow:none;background:var(--panel);}
.pers .pe-ic{width:auto;height:auto;background:none;border-radius:0;color:var(--navy);margin-bottom:18px;}
.pers .pe-ic .sg-i{width:24px;height:24px;stroke-width:1.4;}
.pers h4{font-size:1.02rem;color:var(--navy);margin-bottom:8px;}
.pers p{color:var(--slate);font-size:.9rem;line-height:1.55;}
.pers a{color:var(--navy);font-weight:600;font-size:.9rem;text-decoration:underline;text-decoration-color:rgba(33,29,66,.3);text-underline-offset:3px;}
.pers a:hover{text-decoration-color:var(--navy);}

/* Démarche (séquence réelle : la numérotation est conservée) */
.steps-wrap{gap:32px;}
.step-card{background:none;border:none;border-top:1px solid var(--navy);border-radius:0;padding:22px 0 0;text-align:left;}
.step-card:hover{transform:none;box-shadow:none;}
.step-num{width:auto;height:auto;background:none;border-radius:0;color:var(--navy);display:block;margin:0 0 14px;font-family:var(--serif);font-weight:600;font-size:1.9rem;line-height:1;}
.step-card h4{font-size:1.04rem;margin-bottom:8px;}
.step-card p{font-size:.93rem;line-height:1.55;}

/* FAQ */
.faq-list{max-width:820px;margin:0;border-top:1px solid var(--line);}
.faq-q{font-weight:500;font-size:1.06rem;color:var(--navy);padding:22px 48px 22px 0;}
.faq-q::after{content:"";width:12px;height:12px;right:6px;background:linear-gradient(var(--navy),var(--navy)) center/12px 1.5px no-repeat,linear-gradient(var(--navy),var(--navy)) center/1.5px 12px no-repeat;font-size:0;}
.faq-item.open .faq-q::after{transform:translateY(-50%) rotate(45deg);}
.faq-a-inner{color:var(--slate);font-size:.98rem;line-height:1.7;max-width:68ch;}
.faq-a-inner b{color:var(--navy);}

/* Contact / rappel */
#contact{background:var(--panel)!important;color:var(--ink);border-top:1px solid var(--line);}
.cta-grid{gap:72px;align-items:start;}
.cta-left h2{color:var(--navy)!important;}
.cta-left p{color:var(--slate)!important;}
.cta-check{color:var(--ink)!important;}
.cta-form{background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-md);padding:32px;}
.cta-form h3{font-size:1.4rem;}
.cf-field label{font-weight:500;font-size:.86rem;color:var(--ink);}
.cf-field input,.cf-field select{border:1px solid var(--line-strong);border-radius:8px;padding:12px 13px;font-size:.98rem;}
.cf-field input:focus,.cf-field select:focus{outline:2px solid var(--navy);outline-offset:0;border-color:var(--navy);}
.cf-consent{color:var(--slate);}
.cf-note{color:var(--muted);}
.cf-ok{border-radius:8px;}

/* ---------- Pied de page ---------- */
footer{background:var(--navy-deep);color:#A9ACC4;}
footer h4{font-family:var(--sans);font-weight:600;color:#fff;}
footer a{color:#C6C8D8;}
footer a:hover{color:#fff;}
.foot-legal{border-top-color:rgba(255,255,255,.1);color:#9496AE;}
.foot-legal b{color:#fff;font-weight:600;}
.spi-chip{border-radius:8px;box-shadow:none;}
.foot-links a:hover{color:#fff;}

/* ---------- Bouton de contact flottant ---------- */
.contact-toggle{background:var(--navy);box-shadow:0 10px 30px -10px rgba(23,20,47,.55);font-weight:500;padding:12px 18px;gap:8px;}
.contact-toggle:hover{background:var(--navy-deep);transform:none;}
.contact-toggle .ct-ico{display:inline-flex;}
.contact-toggle .sg-i{width:18px;height:18px;}
.contact-panel{border-radius:12px;box-shadow:var(--shadow-lg);}
.contact-panel a{font-weight:500;gap:12px;border-radius:8px;}
.contact-panel a:hover{color:var(--navy);background:var(--panel);}
.contact-panel .sg-i{width:18px;height:18px;color:var(--slate);}

/* ---------- Bandeaux légaux / cookies ---------- */
.legal-banner{border-top:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-lg);}
.legal-banner h4{font-family:var(--sans);font-weight:600;}
.cookie-banner{border-radius:10px;box-shadow:var(--shadow-md);background:rgba(255,255,255,.97);}

/* ---------- Pages de contenu ---------- */
.callout{background:var(--panel);border:1px solid var(--line);border-left:1px solid var(--line);border-radius:var(--radius);color:var(--slate);}
.callout b{color:var(--navy);}
.barem thead th{background:var(--navy);font-weight:600;}
.barem td.g{font-weight:600;}
.barem td.hl{color:var(--navy);font-weight:600;}
.barem,.doc table{font-variant-numeric:tabular-nums;}
.tbl-wrap{border:1px solid var(--line);border-radius:var(--radius);overflow-x:auto;}
.doc h2{border-left:none;padding-left:0;font-size:1.45rem;}
.doc p,.doc ul,.doc th,.doc td{color:#3F4558;}
.doc-hero{background:#fff;}
.doc-hero h1{font-weight:600;}
.hubcard{border-radius:var(--radius);transition:border-color .15s;}
.hubcard:hover{transform:none;box-shadow:none;border-color:var(--line-strong);}
.hubcard .hc-ic{color:var(--navy);margin-bottom:14px;line-height:0;}
.hubcard .hc-ic .sg-i{width:24px;height:24px;stroke-width:1.4;}
.hubcard h3{font-size:1.15rem;}
.hubcard .hc-go{color:var(--navy);font-weight:600;text-decoration:underline;text-decoration-color:rgba(33,29,66,.3);text-underline-offset:3px;}
.jx-card{border-radius:var(--radius);transition:border-color .15s;}
.jx-card:hover{transform:none;box-shadow:none;border-color:var(--line-strong);}
.jx-card .jx-tag{text-transform:none;letter-spacing:0;color:var(--muted);font-weight:500;font-size:.85rem;}
.jx-card h3{font-size:1.22rem;}
.jx-body{font-size:1.04rem;}
.jx-body p,.jx-body ul{color:#3F4558;line-height:1.75;}
.jx-body h2{font-size:1.6rem;margin-top:40px;}
.jx-av{font-family:var(--serif);font-weight:600;}
.jx-author{border-radius:var(--radius);}
.jx-tag-inline{color:var(--muted);font-size:.88rem;font-weight:500;}
.wz-card{border-radius:12px;box-shadow:var(--shadow-md);}
.wz-card input,.wz-card select{border:1px solid var(--line-strong);border-radius:8px;}
.wz-card h2{font-weight:600;}
.wz-rate{color:#B38A2E;letter-spacing:2px;font-weight:600;}
.wz-demande .l{text-transform:none;letter-spacing:0;font-weight:500;font-size:.82rem;}
.lp-hero0{background:#fff;}
.lp-amt{border-radius:10px;}
.lp-amt .v{font-family:var(--serif);font-weight:600;color:#fff;}
.stepper{border-radius:10px;box-shadow:none;}
.stepper .val span{font-family:var(--serif);font-weight:600;}
.wz-wrap{background:var(--panel);}
.sg-stars{color:#B38A2E!important;font-weight:600!important;letter-spacing:2px!important;font-size:.95rem;}

/* Encadrés CTA bleu nuit dans les articles */
div[style*="background:var(--navy)"]{border-radius:12px!important;}

@media(max-width:940px){
  #simulateur.hero{padding:44px 0 56px;}
  .hero-grid{gap:40px;}
  .alert-grid,.cta-grid{gap:40px;}
}
@media(max-width:560px){
  section{padding:64px 0;}
  .wrap{padding:0 20px;}
  .engage-card{padding:26px 20px 20px;}
  .ec-result-amount{font-size:2.8rem;}
  .pers-grid{border-left:none;}
  .pers{border-right:none;padding:22px 0;}
  .cta-form{padding:24px 20px;}
  .contact-toggle{padding:0;width:52px;height:52px;}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important;}}

/* Correctifs d'alignement des icônes */
.pers .pe-ic,.alert-point .ap-ic,.hubcard .hc-ic{display:block!important;place-items:initial;line-height:0;}
/* Identité de l'éditeur (pied de page) */
.foot-id{color:#C6C8D8;font-size:.86rem;line-height:1.6;margin:0 0 14px;padding-bottom:14px;border-bottom:1px solid rgba(255,255,255,.1);}
.foot-id b{color:#fff;font-weight:600;}
footer .foot-id a{display:inline;padding:0;}

table.barem td.hl,.barem td.hl{color:var(--navy)!important;font-weight:600!important;}
@media(max-width:560px){.hero-cta-row .btn{width:100%;}}
.lp-foot a,footer.lp-foot a{display:inline!important;padding:0!important;}
.contact-toggle{border:1px solid rgba(255,255,255,.18)!important;}
