/* ===========================================================
   AssuraSwiss — Design System
   Swiss banking precision × modern fintech 2026
   =========================================================== */

:root{
  --red:#C8102E;
  --red-light:#FEF2F2;
  --red-mid:#FECACA;
  --red-hover:#B00E28;
  --navy:#0C1425;
  --text:#1A1F2E;
  --sub:#5A6178;
  --muted:#8B92A5;
  --line:#E8EBF0;
  --line-soft:#F0F2F6;
  --bg:#FAFBFD;
  --card:#FFFFFF;
  --warm:#F7F5F2;
  --green:#16A34A;
  --green-light:#F0FDF4;
  --blue:#1D4ED8;
  --blue-light:#EFF6FF;
  --shadow-xs:0 1px 3px rgba(0,0,0,.03);
  --shadow-sm:0 2px 12px rgba(0,0,0,.04);
  --shadow-md:0 8px 40px rgba(200,16,46,.06);
  --shadow-lg:0 20px 60px rgba(0,0,0,.06);
  --shadow-red:0 2px 16px rgba(200,16,46,.18);
  --ease:cubic-bezier(.16,1,.3,1);
  --font-sans:'Plus Jakarta Sans',-apple-system,BlinkMacSystemFont,system-ui,sans-serif;
  --font-display:'Outfit','Plus Jakarta Sans',sans-serif;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:var(--font-sans);
  background:var(--bg);
  color:var(--text);
  font-size:16px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;border:none;background:none}

/* ============ LAYOUT ============ */
.container{max-width:1240px;margin:0 auto;padding:0 32px}
.section{padding:88px 32px}
.section-inner{max-width:1200px;margin:0 auto}
.section-warm{background:var(--warm)}
.section-white{background:#fff}
.section-grad{background:linear-gradient(175deg,#fff 0%,var(--warm) 100%)}

/* ============ NAV ============ */
.nav{
  position:fixed;top:38px;left:0;right:0;z-index:100;
  transition:all .5s var(--ease);
  background:transparent;border-bottom:1px solid transparent;
}
@media(max-width:520px){.nav{top:34px}}
.nav.scrolled{
  background:rgba(255,255,255,.88);
  backdrop-filter:blur(24px) saturate(1.4);
  -webkit-backdrop-filter:blur(24px) saturate(1.4);
  border-bottom:1px solid var(--line);
}
.nav-inner{
  max-width:1240px;margin:0 auto;
  display:flex;align-items:center;justify-content:space-between;
  height:72px;padding:0 32px;
}
.logo{display:flex;align-items:center;gap:10px;cursor:pointer}
.logo-mark{width:28px;height:28px;border-radius:6px;background:var(--red);display:grid;place-items:center}
.logo-mark svg{width:14px;height:14px}
.logo-text{
  font-family:var(--font-display);font-weight:700;font-size:18px;
  color:var(--navy);letter-spacing:-.03em;
}
.logo-text span{color:var(--red)}

.nav-links{display:flex;align-items:center;gap:4px}
.nav-link{
  padding:7px 14px;border-radius:8px;
  font-size:13.5px;font-weight:500;color:var(--sub);
  transition:all .25s;
}
.nav-link:hover{color:var(--navy);background:var(--line-soft)}
.nav-link.active{background:var(--red-light);color:var(--red);font-weight:600}

.nav-cta{
  background:var(--red);color:#fff;
  padding:9px 22px;border-radius:10px;
  font-size:13.5px;font-weight:600;margin-left:12px;
  box-shadow:var(--shadow-red);
  transition:all .25s;
}
.nav-cta:hover{background:var(--red-hover);transform:translateY(-1px);box-shadow:0 4px 20px rgba(200,16,46,.25)}

.nav-burger{display:none;width:40px;height:40px;border-radius:10px;align-items:center;justify-content:center}
.nav-burger span{width:20px;height:2px;background:var(--navy);position:relative}
.nav-burger span::before,.nav-burger span::after{content:'';position:absolute;left:0;width:20px;height:2px;background:var(--navy)}
.nav-burger span::before{top:-6px}
.nav-burger span::after{top:6px}

@media (max-width:860px){
  .nav-links{display:none;position:fixed;top:72px;left:0;right:0;background:#fff;flex-direction:column;align-items:stretch;padding:16px;gap:4px;border-bottom:1px solid var(--line);box-shadow:var(--shadow-lg)}
  .nav-links.open{display:flex}
  .nav-link{padding:14px 16px;border-radius:10px}
  .nav-cta{margin:8px 0 0;text-align:center}
  .nav-burger{display:flex}
}

/* ============ TYPOGRAPHY ============ */
h1,h2,h3,h4{font-family:var(--font-display);color:var(--navy);letter-spacing:-.025em;line-height:1.12;font-weight:800}
.h-hero{font-size:clamp(38px,4.5vw,56px);font-weight:800;letter-spacing:-.04em;line-height:1.08}
.h-page{font-size:clamp(32px,4vw,48px);font-weight:800;letter-spacing:-.04em;line-height:1.08}
.h-section{font-size:clamp(28px,3vw,36px);font-weight:800;letter-spacing:-.03em}
.h-card{font-size:21px;font-weight:700}
.h-sm{font-size:17px;font-weight:700}

.lead{font-size:17px;color:var(--sub);line-height:1.8;max-width:600px}
.red{color:var(--red)}
.navy{color:var(--navy)}

/* ============ TAG ============ */
.tag{
  display:inline-flex;align-items:center;gap:7px;
  padding:5px 14px;border-radius:100px;
  background:var(--red-light);
  font-size:12px;font-weight:700;color:var(--red);
  text-transform:uppercase;letter-spacing:.1em;
  font-family:var(--font-display);
  margin-bottom:14px;
}
.tag::before{content:'';width:5px;height:5px;border-radius:50%;background:var(--red)}
.tag.blue{background:var(--blue-light);color:var(--blue)}
.tag.blue::before{background:var(--blue)}

/* ============ BUTTONS ============ */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:13px 28px;border-radius:12px;
  font-size:14.5px;font-weight:650;
  transition:all .3s var(--ease);
  cursor:pointer;
  font-family:var(--font-sans);
}
.btn-primary{background:var(--red);color:#fff;box-shadow:var(--shadow-red)}
.btn-primary:hover{background:var(--red-hover);transform:translateY(-2px);box-shadow:0 8px 24px rgba(200,16,46,.3)}
.btn-secondary{background:#fff;color:var(--text);border:1.5px solid var(--line);box-shadow:var(--shadow-xs)}
.btn-secondary:hover{border-color:var(--red-mid);color:var(--red)}
.btn-ghost{color:var(--red)}
.btn-ghost:hover{color:var(--red-hover)}
.btn-full{width:100%}
.btn-sm{padding:9px 18px;font-size:13px}

.btn .arrow{display:inline-block;transition:transform .25s}
.btn:hover .arrow{transform:translateX(3px)}

/* ============ CARDS ============ */
.card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:20px;
  box-shadow:var(--shadow-xs);
  transition:all .35s var(--ease);
}
.card.hover:hover{border-color:var(--red-mid);border-top-color:var(--red);box-shadow:0 12px 48px rgba(200,16,46,.1);transform:translateY(-3px)}
.card.pad{padding:32px 28px}
.card.pad-lg{padding:44px 40px}

/* ============ FORMS ============ */
.form-group{margin-bottom:16px}
.form-label{
  display:block;font-size:12px;font-weight:650;
  color:var(--sub);margin-bottom:6px;
  text-transform:uppercase;letter-spacing:.06em;
  font-family:var(--font-display);
}
.form-control,select.form-control{
  width:100%;padding:11px 14px;
  background:#F8F9FC;
  border:1.5px solid var(--line);border-radius:10px;
  color:var(--text);font-size:14px;
  font-family:var(--font-sans);
  outline:none;transition:border-color .2s;
  -webkit-appearance:none;appearance:none;
}
.form-control:focus,select.form-control:focus{border-color:var(--red);background:#fff}
select.form-control{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%235A6178' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center;
  padding-right:38px;
}
textarea.form-control{resize:vertical;min-height:100px;font-family:var(--font-sans)}

.form-note{font-size:11.5px;color:var(--muted);text-align:center;margin-top:12px}

/* Lead form card */
.lead-form{padding:36px 32px}
.lead-form h3{font-size:21px;margin-bottom:4px}
.lead-form .lead-sub{font-size:13.5px;color:var(--sub);margin-bottom:24px;line-height:1.6}
.lead-form .status-live{
  display:flex;align-items:center;gap:8px;margin-bottom:20px;
  font-size:13px;font-weight:600;color:var(--green);
}
.lead-form .status-live::before{
  content:'';width:8px;height:8px;border-radius:50%;background:var(--green);
  box-shadow:0 0 0 0 rgba(34,197,94,.4);
  animation:pulse 2s infinite;
}
@keyframes pulse{
  0%{box-shadow:0 0 0 0 rgba(34,197,94,.5)}
  70%{box-shadow:0 0 0 8px rgba(34,197,94,0)}
  100%{box-shadow:0 0 0 0 rgba(34,197,94,0)}
}

/* ============ STATS GRID ============ */
.stats-grid{
  display:grid;grid-template-columns:repeat(4,1fr);
  gap:1px;background:var(--line);
  border-radius:20px;overflow:hidden;
  border:1px solid var(--line);
}
.stat{background:#fff;padding:36px 24px;text-align:center}
.stat-value{
  font-family:var(--font-display);font-size:37px;font-weight:800;
  color:var(--navy);letter-spacing:-.03em;line-height:1;
}
.stat-value .suf{color:var(--red);font-size:20px}
.stat-label{font-size:12.5px;color:var(--muted);margin-top:8px;line-height:1.45}

@media (max-width:820px){.stats-grid{grid-template-columns:repeat(2,1fr)}}

/* ============ TRUST BAR ============ */
.trust-section{border-bottom:1px solid var(--line);padding:24px 0;background:#fff}
.trust-head{
  font-size:11.5px;font-weight:600;color:var(--muted);
  text-transform:uppercase;letter-spacing:.1em;
  text-align:center;margin-bottom:14px;
}
.trust-bar{
  display:flex;align-items:center;justify-content:center;
  gap:32px;flex-wrap:wrap;opacity:.55;
  padding:8px 0;
}
.trust-bar span{
  font-size:12.5px;font-weight:700;color:var(--navy);
  letter-spacing:.04em;font-family:var(--font-display);
}

/* ============ SERVICE CARDS ============ */
.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
@media (max-width:920px){.service-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.service-grid{grid-template-columns:1fr}}

.service-card{position:relative;cursor:pointer}
.service-card .s-badge{
  position:absolute;top:16px;right:16px;
  background:var(--red);color:#fff;
  padding:3px 10px;border-radius:6px;
  font-size:10.5px;font-weight:700;
  font-family:var(--font-display);
}
.service-icon{
  width:44px;height:44px;border-radius:12px;
  background:var(--red-light);
  display:grid;place-items:center;
  font-size:22px;margin-bottom:16px;
}
.service-card h3{font-size:17px;font-weight:700;margin-bottom:6px}
.service-card p{font-size:13.5px;color:var(--sub);line-height:1.65;margin-bottom:16px}
.service-card .link{font-size:13px;font-weight:600;color:var(--red);display:inline-flex;align-items:center;gap:4px}
.service-card:hover .link .arrow{transform:translateX(3px)}

/* ============ PROCESS ============ */
.process{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;position:relative}
.process::before{
  content:'';position:absolute;top:36px;left:17%;right:17%;height:2px;
  background:linear-gradient(90deg,var(--line),var(--red-mid),var(--line));
  z-index:0;
}
.step{text-align:center;position:relative;z-index:1}
.step-num{
  width:56px;height:56px;border-radius:16px;
  margin:0 auto 20px;background:#fff;
  border:2px solid var(--red-mid);
  display:grid;place-items:center;
  font-family:var(--font-display);
  font-size:20px;font-weight:800;color:var(--red);
  box-shadow:0 4px 16px rgba(200,16,46,.08);
}
.step h3{font-size:17px;font-weight:700;margin-bottom:8px}
.step p{font-size:13.5px;color:var(--sub);line-height:1.65;max-width:280px;margin:0 auto}

@media (max-width:720px){
  .process{grid-template-columns:1fr;gap:20px}
  .process::before{display:none}
}

/* ============ FEATURE LIST ============ */
.feat-list{list-style:none}
.feat-item{display:flex;gap:14px;padding:18px 0;border-bottom:1px solid var(--line)}
.feat-item:last-child{border-bottom:0}
.feat-check{
  flex-shrink:0;width:28px;height:28px;border-radius:8px;
  background:var(--red-light);display:grid;place-items:center;
  color:var(--red);font-size:14px;font-weight:700;
}
.feat-body{flex:1}
.feat-title{font-size:14.5px;font-weight:650;color:var(--navy);margin-bottom:2px}
.feat-desc{font-size:13.5px;color:var(--sub);line-height:1.55}

/* ============ TABLE ============ */
.data-table{width:100%;border-collapse:collapse}
.data-table th{
  text-align:left;padding:12px 16px;
  border-bottom:2px solid var(--line);
  font-size:11.5px;font-weight:700;
  color:var(--muted);
  text-transform:uppercase;letter-spacing:.08em;
  font-family:var(--font-display);
}
.data-table td{padding:14px 16px;font-size:14px;border-bottom:1px solid var(--line)}
.data-table tr:nth-child(even) td{background:#FAFBFD}
.data-table td:first-child{font-weight:600;color:var(--navy)}
.data-table .up{color:#DC2626;font-weight:600}
.data-table .save{color:var(--green);font-weight:600}

/* ============ PRICING ============ */
.plans{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
@media (max-width:860px){.plans{grid-template-columns:1fr}}
.plan{padding:32px 28px;position:relative;border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:var(--shadow-xs);transition:all .3s var(--ease)}
.plan:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
.plan.pop{border:2px solid var(--red);box-shadow:var(--shadow-md)}
.plan .pop-badge{
  position:absolute;top:-13px;left:50%;transform:translateX(-50%);
  background:var(--red);color:#fff;
  padding:4px 18px;border-radius:8px;
  font-size:11px;font-weight:700;
  font-family:var(--font-display);letter-spacing:.04em;
}
.plan h3{font-size:18px;font-weight:700;margin-bottom:2px}
.plan .plan-desc{font-size:13px;color:var(--muted);margin-bottom:20px}
.plan .plan-price{margin-bottom:24px}
.plan .plan-price .amount{font-family:var(--font-display);font-size:42px;font-weight:800;color:var(--navy)}
.plan .plan-price .unit{font-size:16px;color:var(--muted)}
.plan-features{list-style:none;margin-bottom:24px}
.plan-features li{display:flex;gap:8px;margin-bottom:8px;align-items:center;font-size:13.5px;color:var(--sub)}
.plan-features li::before{content:'✓';color:var(--red);font-weight:700;font-size:13px}

/* ============ RESULT TILES (calculateur) ============ */
.result-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
@media (max-width:620px){.result-tiles{grid-template-columns:1fr}}
.rt{border-radius:14px;padding:20px 16px;text-align:center}
.rt.red{background:var(--red-light)}
.rt.green{background:var(--green-light)}
.rt.blue{background:var(--blue-light)}
.rt-label{font-size:11px;font-weight:700;color:var(--sub);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px;font-family:var(--font-display)}
.rt-value{font-family:var(--font-display);font-size:26px;font-weight:800;color:var(--navy);line-height:1}
.rt.green .rt-value{color:var(--green)}
.rt.blue .rt-value{color:var(--blue)}
.rt-unit{font-size:12px;color:var(--sub);margin-top:2px}

/* range input styling */
input[type=range]{
  -webkit-appearance:none;appearance:none;
  width:100%;height:6px;background:var(--line);
  border-radius:3px;outline:none;
}
input[type=range]::-webkit-slider-thumb{
  -webkit-appearance:none;appearance:none;
  width:20px;height:20px;border-radius:50%;
  background:var(--red);cursor:pointer;
  box-shadow:0 2px 8px rgba(200,16,46,.3);
  border:2px solid #fff;
}
input[type=range]::-moz-range-thumb{
  width:20px;height:20px;border-radius:50%;
  background:var(--red);cursor:pointer;border:2px solid #fff;
  box-shadow:0 2px 8px rgba(200,16,46,.3);
}

.range-row{display:flex;justify-content:space-between;margin-bottom:8px}
.range-label{font-size:12.5px;font-weight:650;color:var(--sub);text-transform:uppercase;letter-spacing:.06em;font-family:var(--font-display)}
.range-value{font-size:16px;font-weight:700;color:var(--navy);font-family:var(--font-display)}
.range-minmax{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);margin-top:4px}

/* segmented choice */
.seg{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.seg-option{
  padding:14px 16px;border-radius:12px;cursor:pointer;
  background:#F8F9FC;border:1.5px solid var(--line);
  transition:all .25s;
}
.seg-option .seg-t{font-size:14px;font-weight:600;color:var(--text);margin-bottom:2px}
.seg-option .seg-d{font-size:12px;color:var(--muted)}
.seg-option.active{background:var(--red-light);border-color:var(--red)}
.seg-option.active .seg-t{color:var(--red)}

/* ============ TRUST BADGES INLINE ============ */
.badge-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:40px}
.badge-pill{
  display:inline-flex;align-items:center;gap:7px;
  padding:8px 16px;border-radius:8px;
  background:#fff;border:1px solid var(--line);
  box-shadow:var(--shadow-xs);
  font-size:12px;font-weight:600;color:var(--sub);
}
.badge-pill .ic{font-size:14px}

/* ============ HERO ============ */
.hero{padding:148px 32px 72px;position:relative;overflow:hidden;background:linear-gradient(175deg,#fff 0%,var(--warm) 100%)}
.hero-grid{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1fr 420px;gap:60px;align-items:center}
@media (max-width:960px){.hero-grid{grid-template-columns:1fr;gap:40px}}
.hero-bg{
  position:absolute;top:-100px;right:-200px;width:700px;height:700px;
  opacity:.03;transform:rotate(12deg);pointer-events:none;
  background:repeating-conic-gradient(var(--red) 0% 25%, transparent 0% 50%);
  background-size:60px 60px;
}
.hero-cta-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:36px}
.hero h1{margin-bottom:20px}
.hero .lead{margin-bottom:0}

/* ============ PAGE HEAD ============ */
.page-head{
  padding:140px 32px 0;
  background:linear-gradient(175deg,#fff 0%,var(--warm) 100%);
}
.page-head-inner{max-width:1200px;margin:0 auto}
.page-head .lead{margin-bottom:64px}

/* ============ TWO-COL (content + sticky form) ============ */
.two-col{display:grid;grid-template-columns:1fr 400px;gap:56px;align-items:start}
@media (max-width:960px){.two-col{grid-template-columns:1fr;gap:40px}}
.sticky-side{position:sticky;top:90px}
@media (max-width:960px){.sticky-side{position:static}}

/* ============ CONTACT ROW ============ */
.contact-row{display:grid;grid-template-columns:1fr 1fr;gap:56px}
@media (max-width:860px){.contact-row{grid-template-columns:1fr;gap:40px}}
.contact-item{display:flex;gap:16px;padding:20px 0;border-bottom:1px solid var(--line)}
.contact-ic{
  flex-shrink:0;width:44px;height:44px;border-radius:12px;
  background:var(--red-light);display:grid;place-items:center;font-size:20px;
}
.contact-label{font-size:11.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:2px;font-family:var(--font-display)}
.contact-value{font-size:15.5px;font-weight:650;color:var(--navy)}
.contact-desc{font-size:13px;color:var(--sub);margin-top:1px}
.engagement-box{
  margin-top:40px;padding:24px;border-radius:16px;
  background:var(--red-light);border:1px solid var(--red-mid);
}
.engagement-box h4{font-size:15px;font-weight:700;margin-bottom:12px}
.engagement-box .eng-item{display:flex;gap:8px;margin-bottom:8px;align-items:flex-start;font-size:13px;color:var(--sub);line-height:1.5}
.engagement-box .eng-item::before{content:'✓';color:var(--red);font-size:13px;margin-top:1px}

/* ============ FOOTER ============ */
.footer{border-top:1px solid var(--line);padding:64px 32px 44px;background:#fff}
.footer-inner{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr 1.2fr;gap:32px}
@media (max-width:820px){.footer-inner{grid-template-columns:1fr 1fr;gap:32px}}
@media (max-width:520px){.footer-inner{grid-template-columns:1fr}}
.footer-col h5{font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.1em;margin-bottom:16px;font-family:var(--font-display)}
.footer-col a{display:block;font-size:13.5px;color:var(--sub);margin-bottom:10px;transition:color .2s}
.footer-col a:hover{color:var(--red)}
.footer-about{font-size:13px;color:var(--muted);line-height:1.65;max-width:300px;margin-top:14px}
.footer-badges{display:flex;gap:8px;margin-top:20px;flex-wrap:wrap}
.footer-badges span{font-size:11px;font-weight:600;color:var(--sub);padding:4px 10px;border-radius:6px;border:1px solid var(--line)}
.footer-bottom{
  max-width:1200px;margin:36px auto 0;padding-top:20px;
  border-top:1px solid var(--line);
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;
  font-size:12px;color:var(--muted);
}

/* ============ CTA BAND ============ */
.cta-band{text-align:center;max-width:560px;margin:0 auto}
.cta-band h2{margin-bottom:12px;font-size:clamp(26px,3vw,32px)}
.cta-band p{font-size:16px;color:var(--sub);line-height:1.7;margin-bottom:32px}
.cta-band .btn-row{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}

/* ============ SECTION HEAD CENTER ============ */
.section-head{text-align:center;margin-bottom:64px}
.section-head .tag{margin-bottom:16px}

/* ============ REVEAL ============ */
.reveal{opacity:0;transform:translateY(16px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.reveal.in{opacity:1;transform:none}

/* ============ UTILS ============ */
.mb-0{margin-bottom:0!important}
.mb-8{margin-bottom:8px}.mb-12{margin-bottom:12px}.mb-16{margin-bottom:16px}
.mb-20{margin-bottom:20px}.mb-24{margin-bottom:24px}.mb-28{margin-bottom:28px}
.mb-32{margin-bottom:32px}.mb-40{margin-bottom:40px}.mb-48{margin-bottom:48px}
.mb-56{margin-bottom:56px}
.mt-16{margin-top:16px}.mt-24{margin-top:24px}.mt-32{margin-top:32px}.mt-40{margin-top:40px}
.text-center{text-align:center}

/* small-screen padding */
@media (max-width:640px){
  .section{padding:64px 20px}
  .hero{padding:116px 20px 48px}
  .page-head{padding:108px 20px 0}
  .nav-inner{padding:0 20px;height:60px}
  .card.pad{padding:26px 22px}
  .card.pad-lg{padding:32px 24px}
  .container{padding:0 20px}
}

/* ============ REVIEWS SECTION ============ */
.reviews-summary{
  display:grid;grid-template-columns:auto 1fr auto;gap:48px;align-items:center;
  background:#fff;border:1px solid var(--line);border-radius:20px;padding:32px 40px;
  max-width:920px;margin:32px auto 0;box-shadow:var(--shadow-sm);
}
@media(max-width:820px){.reviews-summary{grid-template-columns:1fr;gap:24px;padding:24px}}
.rs-score{text-align:center}
.rs-num{font-family:var(--font-display);font-size:64px;font-weight:800;color:var(--navy);line-height:1;letter-spacing:-.03em}
.rs-stars{color:#F59E0B;font-size:20px;letter-spacing:2px;margin-top:6px}
.rs-count{font-size:12px;color:var(--muted);margin-top:6px;font-weight:600}
.rs-bars{display:flex;flex-direction:column;gap:6px;min-width:240px}
.rs-bar{display:grid;grid-template-columns:24px 1fr 32px;gap:10px;align-items:center;font-size:12px;color:var(--sub);font-weight:600}
.rs-bar b{text-align:right;color:var(--navy);font-weight:600}
.rs-track{height:6px;background:var(--line-soft);border-radius:3px;overflow:hidden}
.rs-track div{height:100%;background:#F59E0B;border-radius:3px}
.rs-platforms{display:flex;flex-direction:column;gap:10px;border-left:1px solid var(--line);padding-left:32px}
@media(max-width:820px){.rs-platforms{border-left:none;border-top:1px solid var(--line);padding-left:0;padding-top:20px;flex-direction:row;justify-content:center;gap:24px;flex-wrap:wrap}}
.rs-platform{display:flex;flex-direction:column;gap:2px}
.rs-pl-name{font-weight:700;color:var(--navy);font-size:13px}
.rs-pl-score{color:#F59E0B;font-size:12px;font-weight:600}
.rs-pl-count{color:var(--muted);font-size:11px}

.reviews-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:48px;
}
@media(max-width:980px){.reviews-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.reviews-grid{grid-template-columns:1fr}}
.review{
  background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px;
  transition:all .25s;display:flex;flex-direction:column;gap:14px;
}
.review:hover{border-color:var(--red-mid);box-shadow:var(--shadow-md);transform:translateY(-2px)}
.rv-head{display:grid;grid-template-columns:40px 1fr auto;gap:12px;align-items:center}
.rv-avatar{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-weight:700;color:#fff;font-size:13px}
.rv-name{font-weight:700;color:var(--navy);font-size:14px;line-height:1.2}
.rv-meta{font-size:11.5px;color:var(--muted);margin-top:2px}
.rv-stars{color:#F59E0B;font-size:13px;letter-spacing:1px}
.rv-text{font-size:14px;color:var(--text);line-height:1.6;margin:0}
.rv-source{font-size:11px;color:var(--green);font-weight:600;margin-top:auto}

/* ============ LEAD FORM UNIVERSEL ============ */
.lf-pulse{
  display:inline-flex;align-items:center;gap:8px;
  background:#FEF2F2;color:var(--red);
  padding:6px 12px;border-radius:100px;
  font-size:12px;font-weight:600;margin-bottom:14px;
  border:1px solid var(--red-mid);
}
.lf-dot{width:7px;height:7px;border-radius:50%;background:var(--red);animation:lf-pulse 1.5s infinite}
@keyframes lf-pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(1.6)}}
.lf-form .form-group{margin-bottom:12px}
.lf-form .form-label{display:block;font-size:12.5px;font-weight:600;color:var(--navy);margin-bottom:6px}
.lf-form .form-control{
  width:100%;padding:13px 16px;border:1.5px solid var(--line);border-radius:12px;
  font-size:15px;font-family:inherit;background:#fff;color:var(--navy);transition:all .2s;
}
.lf-form .form-control:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 4px rgba(200,16,46,.08)}
.lf-form .btn-full{width:100%;margin-top:6px;padding:15px 20px;font-size:14.5px;justify-content:center;display:flex;align-items:center;gap:8px}
.lf-form .lf-submit:disabled{opacity:.6;cursor:wait}
.lf-trust{font-size:11.5px;color:var(--muted);text-align:center;margin-top:10px;line-height:1.5}
.lf-error .form-control{border-color:var(--red);animation:lf-shake .4s}
@keyframes lf-shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}

/* Sticky form pour pages calc */
.calc-form-cta{
  background:linear-gradient(160deg,#FFF5F5 0%,#fff 60%);
  border:2px solid var(--red-mid);border-radius:18px;
  padding:24px;margin-top:18px;
}
.calc-form-cta h3{font-family:var(--font-display);font-size:18px;font-weight:700;color:var(--navy);margin-bottom:6px}
.calc-form-cta .ctx-amount{color:var(--red);font-weight:800}
.calc-form-cta .lf-form{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;margin-top:14px;align-items:end}
.calc-form-cta .lf-form .form-group{margin-bottom:0}
.calc-form-cta .lf-form .btn-full{margin-top:0}
@media(max-width:680px){.calc-form-cta .lf-form{grid-template-columns:1fr}}

/* Mini bandeau 5min global */
.promise-bar{
  position:fixed;top:0;left:0;right:0;z-index:101;
  background:linear-gradient(90deg,var(--navy) 0%,#1a2444 100%);color:#fff;
  text-align:center;padding:9px 16px;font-size:13px;font-weight:500;
  display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;
  height:38px;line-height:1.4;
}
.promise-bar strong{color:#FCA5A5;font-weight:700}
.promise-bar a{color:#fff;text-decoration:underline;font-weight:600}
@media(max-width:520px){.promise-bar{font-size:12px;padding:7px 12px;height:auto;min-height:34px}}
body{padding-top:38px}
@media(max-width:520px){body{padding-top:34px}}

/* ============ NAV TEL + WA FLOAT + COOKIE BAR ============ */
.nav-tel{
  display:inline-flex;align-items:center;gap:6px;
  padding:7px 12px;border-radius:8px;
  font-size:13px;font-weight:600;color:var(--navy);
  border:1px solid var(--line);transition:all .25s;margin-left:6px;
}
.nav-tel:hover{border-color:var(--red);color:var(--red);background:var(--red-light)}
.nav-tel .tel-ic{font-size:14px}
@media(max-width:980px){.nav-tel .tel-num{display:none}}

.wa-float{
  position:fixed;bottom:24px;right:24px;z-index:90;
  width:56px;height:56px;border-radius:50%;
  background:#25D366;display:grid;place-items:center;
  box-shadow:0 8px 24px rgba(37,211,102,.4);
  transition:all .25s;animation:wa-pop .4s var(--ease);
}
.wa-float:hover{transform:scale(1.08);box-shadow:0 12px 32px rgba(37,211,102,.55)}
@keyframes wa-pop{0%{transform:scale(0)}60%{transform:scale(1.1)}100%{transform:scale(1)}}
@media(max-width:520px){.wa-float{bottom:16px;right:16px;width:50px;height:50px}.wa-float svg{width:24px;height:24px}}

.cookie-bar{
  position:fixed;bottom:0;left:0;right:0;z-index:200;
  background:var(--navy);color:#fff;padding:18px 24px;
  box-shadow:0 -10px 40px rgba(0,0,0,.2);
  animation:cb-up .35s var(--ease);
}
@keyframes cb-up{from{transform:translateY(100%)}to{transform:translateY(0)}}
.cb-inner{max-width:1200px;margin:0 auto;display:flex;align-items:center;gap:24px;flex-wrap:wrap}
.cb-inner p{flex:1;min-width:280px;font-size:13px;line-height:1.5;color:rgba(255,255,255,.85);margin:0}
.cb-inner a{color:#FCA5A5;text-decoration:underline}
.cb-actions{display:flex;gap:10px;flex-wrap:wrap}
.cb-btn{padding:10px 18px;border-radius:10px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s;border:none}
.cb-btn-secondary{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.25)}
.cb-btn-secondary:hover{background:rgba(255,255,255,.08)}
.cb-btn-primary{background:var(--red);color:#fff}
.cb-btn-primary:hover{background:var(--red-hover)}
@media(max-width:560px){.cb-actions{width:100%}.cb-actions .cb-btn{flex:1}}

/* ============ LEGAL CONTENT ============ */
.legal-content{font-size:15px;line-height:1.75;color:var(--text)}
.legal-content h2{font-family:var(--font-display);font-size:22px;font-weight:700;color:var(--navy);margin:32px 0 14px;letter-spacing:-.02em}
.legal-content h3{font-family:var(--font-display);font-size:17px;font-weight:700;color:var(--navy);margin:22px 0 10px}
.legal-content p{margin-bottom:14px;color:var(--text)}
.legal-content ul{margin:14px 0 14px 22px;padding-left:0}
.legal-content li{margin-bottom:8px;color:var(--text)}
.legal-content a{color:var(--red);text-decoration:underline;font-weight:600}
.legal-content a:hover{color:var(--red-hover)}
.legal-content strong{color:var(--navy);font-weight:700}
.page-head{padding:128px 32px 48px}
.page-head-inner{max-width:1100px;margin:0 auto}

/* ============ NAV LANG SWITCHER ============ */
.nav-lang{display:inline-flex;gap:6px;align-items:center;margin:0 6px;font-size:12px;font-weight:700;color:var(--muted);letter-spacing:.05em}
.nav-lang a{padding:4px 6px;border-radius:6px;color:var(--sub);transition:all .2s}
.nav-lang a:hover{background:var(--red-light);color:var(--red)}
.nav-lang span{color:var(--line)}
@media(max-width:1100px){.nav-lang{display:none}}

/* ============ PRESS LOGOS ============ */
.press-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:14px;
  max-width:920px;margin:32px auto 0;
}
@media(max-width:780px){.press-grid{grid-template-columns:repeat(2,1fr)}}
.press-logo{
  background:#fff;border:1px solid var(--line);border-radius:14px;
  padding:24px;text-align:center;
  font-family:var(--font-display);font-weight:800;font-size:18px;
  color:var(--sub);letter-spacing:-.02em;
  transition:all .25s;cursor:default;opacity:.65;
}
.press-logo:hover{opacity:1;color:var(--navy);border-color:var(--red-mid);transform:translateY(-2px)}

/* ============ SKIP-LINK A11Y ============ */
.skip-link{
  position:absolute;top:-100px;left:0;z-index:10000;
  background:var(--red);color:#fff;padding:14px 24px;font-weight:700;
  text-decoration:none;border-radius:0 0 12px 0;
  transition:top .2s;
}
.skip-link:focus{top:0;outline:3px solid var(--navy);outline-offset:2px}

/* Focus visible (a11y WCAG 2.4.7) */
:focus-visible{outline:2px solid var(--red);outline-offset:3px;border-radius:4px}
button:focus-visible,a:focus-visible{outline:2px solid var(--red);outline-offset:3px}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--red);outline-offset:0}

/* ============ EXIT POPUP ============ */
.exit-popup{
  position:fixed;inset:0;z-index:1000;
  background:rgba(12,20,37,.7);backdrop-filter:blur(8px);
  display:grid;place-items:center;padding:24px;
  animation:fade-in .25s var(--ease);
}
@keyframes fade-in{from{opacity:0}to{opacity:1}}
.exit-card{
  background:#fff;border-radius:20px;padding:40px;max-width:480px;width:100%;
  position:relative;box-shadow:0 30px 80px rgba(0,0,0,.3);
  animation:pop-in .35s var(--ease);text-align:center;
}
@keyframes pop-in{0%{transform:scale(.9);opacity:0}100%{transform:scale(1);opacity:1}}
.exit-close{
  position:absolute;top:14px;right:14px;width:36px;height:36px;border-radius:50%;
  background:var(--off);font-size:22px;font-weight:700;color:var(--sub);
  display:grid;place-items:center;
}
.exit-close:hover{background:var(--red-light);color:var(--red)}
.exit-emoji{font-size:48px;margin-bottom:14px}
.exit-card h3{font-family:var(--font-display);font-size:24px;font-weight:800;color:var(--navy);margin-bottom:10px;letter-spacing:-.02em}
.exit-card p{color:var(--sub);font-size:15px;line-height:1.6}

/* ============ NEWSLETTER FOOTER ============ */
.nl-form{display:flex;gap:8px;margin-top:14px}
.nl-form input{flex:1;padding:11px 14px;background:#F8F9FC;border:1.5px solid var(--line);border-radius:10px;color:var(--text);font-size:13.5px;outline:none;font-family:inherit}
.nl-form input:focus{border-color:var(--red);background:#fff}
.nl-form button{padding:11px 18px;border-radius:10px;background:var(--red);color:#fff;font-weight:700;font-size:13px;border:none;cursor:pointer}
.nl-form button:hover{background:var(--red-hover)}

/* ============ PREFERS REDUCED MOTION (a11y) ============ */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .reveal{opacity:1!important;transform:none!important}
}

/* ============ READ PROGRESS BAR ============ */
.read-progress{position:fixed;top:38px;left:0;right:0;height:3px;background:var(--line);z-index:99}
.read-progress-bar{height:100%;background:var(--red);width:0%;transition:width .1s}
@media(max-width:520px){.read-progress{top:34px}}


/* Nav compacte : une ligne sur grand écran, menu burger sous 1536px (27.09.2026) */
.nav-link,.nav-cta{white-space:nowrap}
.nav-tel .tel-num{display:none}
.nav-links a[href="/contact"].nav-link{display:none}
.nav-link{padding-left:8px;padding-right:8px}
@media (max-width:1535px){
  .nav-links{display:none;position:fixed;top:72px;left:0;right:0;background:#fff;flex-direction:column;align-items:stretch;padding:16px;gap:4px;border-bottom:1px solid var(--line);box-shadow:var(--shadow-lg);max-height:calc(100vh - 110px);overflow-y:auto}
  .nav-links.open{display:flex}
  .nav-link{padding:14px 16px;border-radius:10px}
  .nav-links a[href="/contact"].nav-link{display:block}
  .nav-tel .tel-num{display:inline}
  .nav-cta{margin:8px 0 0;text-align:center}
  .nav-burger{display:flex}
}

/* Bandeau abonnements (avant le pied de page) */
.sub-band{max-width:1100px;margin:48px auto 0;padding:22px 28px;border:1px solid var(--line);border-radius:16px;background:#fff;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;box-shadow:var(--shadow-lg)}
.sub-band-text{display:flex;flex-direction:column;gap:4px;flex:1 1 320px}
.sub-band-text strong{font-size:17px}
.sub-band-text span{font-size:14px;color:var(--sub)}
@media (max-width:640px){.sub-band{margin:32px 16px 0;padding:18px}.sub-band .btn{width:100%;text-align:center}}
