/* simularo — identité « bleu nuit et corail » */
:root {
    --sm-navy: #0f2744;
    --sm-navy-2: #183a63;
    --sm-coral: #ff6b5b;
    --sm-coral-dark: #c23a2b;      /* texte blanc sur fond : contraste ≥ 4,5:1 */
    --sm-coral-soft: #fff1ef;
    --sm-bg: #f5f7fb;
    --sm-text: #13203a;
    --sm-muted: #56627a;
    --sm-border: #e3e8f0;
    --sm-radius: 14px;
    --sm-shadow: 0 1px 2px rgba(15, 39, 68, .06), 0 6px 18px rgba(15, 39, 68, .06);
}

body {
    background: var(--sm-bg);
    color: var(--sm-text);
    font-family: Inter, 'Segoe UI', system-ui, -apple-system, Roboto, Arial, sans-serif;
}

a { color: var(--sm-coral-dark); }
a:hover { color: var(--sm-navy); }

/* ── En-tête ── */
.sm-header { background: var(--sm-navy); }
.sm-header .navbar { padding-top: .7rem; padding-bottom: .7rem; }
.sm-header .nav-link { color: rgba(255, 255, 255, .9); font-weight: 500; }
.sm-header .nav-link:hover, .sm-header .nav-link:focus { color: #fff; }
.sm-logo { font-weight: 800; font-size: 1.45rem; letter-spacing: -.5px; color: #fff; text-decoration: none; }
.sm-logo:hover { color: #fff; }
.sm-dot { color: var(--sm-coral); }
.sm-mega { min-width: min(720px, 92vw); border: 0; border-radius: var(--sm-radius); box-shadow: var(--sm-shadow); }
.sm-mega .dropdown-item { border-radius: 8px; padding: .45rem .6rem; white-space: normal; }
.sm-mega .dropdown-item:hover { background: var(--sm-coral-soft); }
.sm-mega-title { font-size: .75rem; text-transform: uppercase; letter-spacing: .06em; color: var(--sm-muted); font-weight: 700; margin: 0 .6rem .3rem; }

.sm-pill { background: var(--sm-coral-dark); color: #fff; border-radius: 999px; padding: .35rem .9rem; font-size: .9rem; border: 0; }
.sm-pill:hover, .sm-pill:focus, .sm-pill.show { background: var(--sm-coral); color: var(--sm-navy); }
.sm-langs { display: inline-flex; background: rgba(255, 255, 255, .1); border-radius: 999px; padding: 3px; }
.sm-lang { color: #fff; text-decoration: none; font-size: .82rem; font-weight: 600; padding: .3rem .65rem; border-radius: 999px; }
.sm-lang:hover { color: #fff; background: rgba(255, 255, 255, .15); }
.sm-lang.active { background: #fff; color: var(--sm-navy); }
.sm-header .dropdown-item.active, .sm-header .dropdown-item:active { background: var(--sm-navy); color: #fff; }

/* ── Titres et texte ── */
.sm-h1 { font-weight: 800; letter-spacing: -.02em; color: var(--sm-navy); font-size: clamp(1.6rem, 3vw, 2.2rem); }
.sm-h2 { font-weight: 800; color: var(--sm-navy); font-size: 1.4rem; }
.sm-lead { font-size: 1.1rem; color: var(--sm-muted); }
.sm-kicker { color: var(--sm-coral); font-weight: 700; text-transform: uppercase; letter-spacing: .08em; font-size: .8rem; }

/* ── Accueil ── */
.sm-hero { background: linear-gradient(135deg, var(--sm-navy) 0%, var(--sm-navy-2) 100%); color: #fff; padding: 3rem 0; margin-top: -1.5rem; }
.sm-hero-title { font-weight: 800; font-size: clamp(1.8rem, 4vw, 2.8rem); letter-spacing: -.02em; }
.sm-hero-lead { font-size: 1.15rem; color: rgba(255, 255, 255, .85); max-width: 40rem; }
.sm-trust li { display: flex; gap: .75rem; align-items: center; background: rgba(255, 255, 255, .08); border-radius: var(--sm-radius); padding: .9rem 1rem; margin-bottom: .6rem; }
.sm-trust i { color: var(--sm-coral); font-size: 1.3rem; }

.sm-card { border: 1px solid var(--sm-border); border-radius: var(--sm-radius); box-shadow: var(--sm-shadow); background: #fff; }
.sm-card-title { font-weight: 700; color: var(--sm-navy); }
.sm-tile { transition: transform .15s ease, box-shadow .15s ease; color: var(--sm-text); }
.sm-tile:hover { transform: translateY(-2px); box-shadow: 0 8px 26px rgba(15, 39, 68, .12); }
.sm-tile-icon { flex: 0 0 46px; height: 46px; border-radius: 12px; display: inline-flex; align-items: center; justify-content: center; background: var(--sm-coral-soft); color: var(--sm-coral-dark); font-size: 1.35rem; }
.sm-tile-title { font-weight: 700; color: var(--sm-navy); }

/* ── Boutons ── */
.sm-btn { background: var(--sm-coral-dark); color: #fff; border: 0; border-radius: 10px; font-weight: 600; padding: .65rem 1.2rem; }
.sm-btn:hover, .sm-btn:focus { background: var(--sm-navy); color: #fff; }
.sm-btn-outline { border: 1.5px solid var(--sm-navy); color: var(--sm-navy); border-radius: 10px; font-weight: 600; }
.sm-btn-outline:hover { background: var(--sm-navy); color: #fff; }
.sm-btn-outline.sm-suggested { background: var(--sm-coral-dark); border-color: var(--sm-coral-dark); color: #fff; }

/* ── Simulateur ── */
.form-control:focus, .form-select:focus, .form-check-input:focus { border-color: var(--sm-coral); box-shadow: 0 0 0 .2rem rgba(255, 107, 91, .2); }
.form-check-input:checked { background-color: var(--sm-coral-dark); border-color: var(--sm-coral-dark); }
.form-label { font-weight: 600; font-size: .92rem; }
.sm-results { border-top: 4px solid var(--sm-coral); }
.sm-highlight { background: var(--sm-navy); color: #fff; border-radius: 12px; padding: 1rem 1.1rem; height: 100%; }
.sm-highlight-label { font-size: .85rem; color: rgba(255, 255, 255, .8); }
.sm-highlight-value { font-size: 1.7rem; font-weight: 800; letter-spacing: -.01em; color: #fff; }
.sm-breakdown th { font-weight: 500; color: var(--sm-text); }
.sm-breakdown td { white-space: nowrap; font-variant-numeric: tabular-nums; }
.sm-breakdown .sm-strong th, .sm-breakdown .sm-strong td { font-weight: 800; color: var(--sm-navy); border-top: 2px solid var(--sm-navy); }
.sm-neg { color: #9b2c1f; }
.sm-note { color: var(--sm-muted); margin-bottom: .4rem; }
.sm-table-scroll { max-height: 420px; overflow-y: auto; }
.sm-disclaimer { background: var(--sm-coral-soft); border-radius: 10px; padding: .75rem .9rem; color: #5a2a24; }

/* ── Contenu éditorial ── */
.sm-prose h2 { font-weight: 800; color: var(--sm-navy); font-size: 1.35rem; margin-top: 2rem; margin-bottom: .8rem; }
.sm-prose h3 { font-weight: 700; color: var(--sm-navy); font-size: 1.1rem; margin-top: 1.4rem; }
.sm-prose p, .sm-prose li { line-height: 1.7; }
.sm-prose table { width: 100%; margin: 1rem 0; border-collapse: collapse; background: #fff; }
.sm-prose th, .sm-prose td { border: 1px solid var(--sm-border); padding: .5rem .7rem; font-size: .95rem; }
.sm-prose th { background: var(--sm-navy); color: #fff; font-weight: 600; }
.sm-faq .accordion-button:not(.collapsed) { background: var(--sm-coral-soft); color: var(--sm-navy); }
.sm-faq .accordion-button { font-weight: 600; }

/* ── Pied de page ── */
.sm-footer { background: var(--sm-navy); color: rgba(255, 255, 255, .85); }
.sm-footer a { color: #fff; text-decoration: none; }
.sm-footer a:hover { color: var(--sm-coral); }
.sm-footer-title { font-size: .8rem; text-transform: uppercase; letter-spacing: .08em; color: var(--sm-coral); font-weight: 700; margin-bottom: .9rem; }
.sm-footer-muted { color: rgba(255, 255, 255, .7); }
.sm-footer-bottom { border-top: 1px solid rgba(255, 255, 255, .15); }

/* ── Page racine (choix du pays) ── */
.sm-root { min-height: 100vh; margin-top: -1.5rem; margin-bottom: -1.5rem; padding-bottom: 2.5rem; }
.sm-root-hero {
    position: relative; overflow: hidden; color: #fff; padding: 3.5rem 0 7rem;
    background:
        radial-gradient(600px 300px at 85% 10%, rgba(255, 107, 91, .28), transparent 70%),
        radial-gradient(500px 280px at 10% 90%, rgba(255, 107, 91, .14), transparent 70%),
        linear-gradient(160deg, var(--sm-navy) 0%, var(--sm-navy-2) 100%);
}
.sm-root-hero::before {
    content: ""; position: absolute; inset: 0; opacity: .5;
    background-image: radial-gradient(rgba(255, 255, 255, .12) 1px, transparent 1px); background-size: 22px 22px;
    mask-image: linear-gradient(180deg, #000, transparent 85%); -webkit-mask-image: linear-gradient(180deg, #000, transparent 85%);
}
.sm-logo-xl { font-size: clamp(2.6rem, 7vw, 3.6rem); }
.sm-root-title { color: #fff; font-size: clamp(1.4rem, 3.5vw, 2.1rem); font-weight: 800; letter-spacing: -.02em; }
.sm-root-lead { color: rgba(255, 255, 255, .78); max-width: 46rem; margin: .5rem auto 0; }
.sm-root-lead span { white-space: nowrap; }

/* Mot qui défile dans les 5 langues (empilé et statique si le mouvement est réduit) */
.sm-rotator { display: inline-grid; color: var(--sm-coral); }
.sm-rotator > span { grid-area: 1 / 1; opacity: 0; animation: sm-rotate 12.5s infinite; }
.sm-rotator > span:nth-child(2) { animation-delay: 2.5s; }
.sm-rotator > span:nth-child(3) { animation-delay: 5s; }
.sm-rotator > span:nth-child(4) { animation-delay: 7.5s; }
.sm-rotator > span:nth-child(5) { animation-delay: 10s; }
@keyframes sm-rotate {
    0% { opacity: 0; transform: translateY(.4em); }
    4%, 18% { opacity: 1; transform: none; }
    22%, 100% { opacity: 0; transform: translateY(-.4em); }
}
@media (prefers-reduced-motion: reduce) {
    .sm-rotator > span { animation: none; }
    .sm-rotator > span:first-child { opacity: 1; }
}

.sm-root-icons li {
    width: 48px; height: 48px; border-radius: 14px; display: inline-flex; align-items: center; justify-content: center;
    background: rgba(255, 255, 255, .08); border: 1px solid rgba(255, 255, 255, .14); color: var(--sm-coral); font-size: 1.3rem;
}
#sm-resume .sm-flag-svg { margin-right: .5rem; }

.sm-root-grid { margin-top: -4.5rem; position: relative; }
.sm-country { overflow: hidden; transition: transform .18s ease, box-shadow .18s ease; }
.sm-country:hover { transform: translateY(-3px); box-shadow: 0 12px 30px rgba(15, 39, 68, .16); }
.sm-country-stripe { height: 6px; box-shadow: inset 0 -1px 0 rgba(15, 39, 68, .08); }
.sm-stripe-de { background: linear-gradient(90deg, #000 33.3%, #dd0000 33.3% 66.6%, #ffce00 66.6%); }
.sm-stripe-es { background: linear-gradient(90deg, #aa151b 25%, #f1bf00 25% 75%, #aa151b 75%); }
.sm-stripe-it { background: linear-gradient(90deg, #009246 33.3%, #e9edf3 33.3% 66.6%, #ce2b37 66.6%); }
.sm-stripe-be { background: linear-gradient(90deg, #000 33.3%, #fdda24 33.3% 66.6%, #ef3340 66.6%); }
.sm-stripe-fr { background: linear-gradient(90deg, #002654 33.3%, #e9edf3 33.3% 66.6%, #ce1126 66.6%); }
.sm-stripe-ch { background: linear-gradient(90deg, #da291c 40%, #e9edf3 40% 60%, #da291c 60%); }
.sm-country-flag { flex: 0 0 60px; height: 60px; border-radius: 16px; display: inline-flex; align-items: center; justify-content: center; background: var(--sm-bg); }
.sm-country-name { font-weight: 800; color: var(--sm-navy); font-size: 1.15rem; line-height: 1.25; }
.sm-country-meta { font-size: .8rem; font-weight: 600; color: var(--sm-muted); letter-spacing: .03em; }
.sm-country-popular li { margin-bottom: .35rem; font-size: .92rem; }
.sm-country-popular a { color: var(--sm-text); text-decoration: none; }
.sm-country-popular a:hover { color: var(--sm-coral-dark); }
.sm-country-popular i { color: var(--sm-coral-dark); margin-right: .45rem; }
.sm-lang-btn { border: 1.5px solid var(--sm-border); color: var(--sm-navy); border-radius: 999px; font-weight: 600; padding: .4rem .95rem; background: #fff; }
.sm-lang-btn i { font-size: .85em; margin-left: .2rem; display: inline-block; transition: transform .15s ease; }
.sm-lang-btn:hover, .sm-lang-btn:focus-visible { background: var(--sm-navy); border-color: var(--sm-navy); color: #fff; }
.sm-lang-btn:hover i { transform: translateX(3px); }
.sm-lang-btn.sm-suggested { background: var(--sm-coral-dark); border-color: var(--sm-coral-dark); color: #fff; }
.sm-country-suggested { box-shadow: 0 0 0 2px var(--sm-coral), var(--sm-shadow); }
.sm-flag-svg { vertical-align: -3px; border-radius: 2px; box-shadow: 0 0 0 1px rgba(0, 0, 0, .12); }

@media (max-width: 991.98px) {
    .sm-switchers { padding: .75rem 0; }
    .sm-mega { min-width: 0; box-shadow: none; }
}

@media print {
    .sm-header, .sm-footer, form, .sm-faq { display: none !important; }
}
