/* Site vitrine Kleod — thème indigo / Inter, responsive, clair & sombre. */
:root {
  --indigo: #4f46e5;
  --indigo-600: #4338ca;
  --ink: #1f2430;
  --muted: #5b6472;
  --bg: #ffffff;
  --surface: #f6f7fb;
  --border: #e3e7ef;
  --radius: 14px;
  --maxw: 1080px;
  color-scheme: light dark;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --ink: #e8ebf2; --muted: #9aa3b2; --bg: #0f1420; --surface: #171d2b; --border: #273043;
  }
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: Inter, system-ui, "Segoe UI", sans-serif;
  color: var(--ink);
  background: var(--bg);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
.container { max-width: var(--maxw); margin: 0 auto; padding: 0 20px; }
a { color: inherit; text-decoration: none; }
h1, h2, h3 { line-height: 1.15; letter-spacing: -0.02em; margin: 0 0 .5em; }
h1 { font-size: clamp(2rem, 5vw, 3.25rem); font-weight: 800; }
h2 { font-size: clamp(1.5rem, 3vw, 2.1rem); font-weight: 700; }
p { margin: 0 0 1rem; }
.muted { color: var(--muted); }

/* En-tête / navigation */
.site-header { position: sticky; top: 0; z-index: 20; background: color-mix(in srgb, var(--bg) 88%, transparent); backdrop-filter: blur(8px); border-bottom: 1px solid var(--border); }
.site-header__inner { display: flex; align-items: center; justify-content: space-between; height: 64px; }
.brand { display: inline-flex; align-items: center; gap: 10px; font-weight: 800; font-size: 1.15rem; }
.brand__mark { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 9px; background: var(--indigo); color: #fff; font-weight: 800; }
.brand--footer { font-size: 1.05rem; }
.nav { display: flex; align-items: center; gap: 22px; }
.nav a { font-weight: 500; color: var(--muted); }
.nav a:hover, .nav a.is-active { color: var(--ink); }
.nav-burger { display: none; font-size: 1.5rem; cursor: pointer; }
.nav-toggle { display: none; }

/* Boutons */
.btn { display: inline-flex; align-items: center; gap: 8px; background: var(--indigo); color: #fff !important; font-weight: 600; padding: 11px 20px; border-radius: 10px; border: 0; cursor: pointer; transition: background .15s, transform .15s; }
.btn:hover { background: var(--indigo-600); transform: translateY(-1px); }
.btn--sm { padding: 8px 14px; font-size: .95rem; }
.btn--ghost { background: transparent; color: var(--ink) !important; border: 1px solid var(--border); }
.btn--ghost:hover { background: var(--surface); }

/* Sections */
section { padding: 72px 0; }
.hero { padding: 96px 0 64px; }
.hero p.lead { font-size: 1.2rem; color: var(--muted); max-width: 46ch; }
.eyebrow { display: inline-block; font-weight: 600; color: var(--indigo); letter-spacing: .04em; text-transform: uppercase; font-size: .8rem; margin-bottom: 14px; }
.actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 26px; }
.section-head { max-width: 60ch; margin-bottom: 36px; }

/* Grille de cartes produits */
.grid { display: grid; gap: 22px; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); }
.card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 28px; }
.card h3 { font-size: 1.35rem; }
.card .tag { display: inline-block; font-size: .78rem; font-weight: 600; padding: 3px 10px; border-radius: 999px; background: color-mix(in srgb, var(--indigo) 14%, transparent); color: var(--indigo); margin-bottom: 14px; }
.card ul { margin: 14px 0 20px; padding-left: 1.1em; }
.card ul li { margin: .3em 0; }
.card--alt { background: transparent; }

/* Listes de fonctionnalités */
.features { display: grid; gap: 18px; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); margin-top: 28px; }
.feature { padding: 20px; border: 1px solid var(--border); border-radius: var(--radius); }
.feature h3 { font-size: 1.05rem; margin-bottom: 6px; }
.feature p { margin: 0; color: var(--muted); font-size: .96rem; }

/* Étapes numérotées (licences) */
.steps { counter-reset: step; display: grid; gap: 18px; margin-top: 28px; }
.step { position: relative; padding: 18px 18px 18px 64px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); }
.step::before { counter-increment: step; content: counter(step); position: absolute; left: 18px; top: 18px; width: 32px; height: 32px; display: grid; place-items: center; border-radius: 50%; background: var(--indigo); color: #fff; font-weight: 700; }

/* Bloc CTA */
.cta { background: linear-gradient(135deg, var(--indigo), #7c3aed); color: #fff; border-radius: 20px; padding: 48px; text-align: center; }
.cta h2 { color: #fff; }
.cta .btn--ghost { color: #fff !important; border-color: rgba(255,255,255,.5); }
.cta .btn { background: #fff; color: var(--indigo) !important; }

/* Pages produit : captures d'écran (fenêtre de navigateur, téléphone) et blocs alternés */
.section--tight { padding: 40px 0; }
.shot { margin: 0; border-radius: var(--radius); background: var(--surface); border: 1px solid var(--border); box-shadow: 0 24px 60px -24px rgba(31, 36, 48, .28); overflow: hidden; }
.shot__bar { display: flex; align-items: center; gap: 6px; height: 30px; padding: 0 12px; }
.shot__bar i { width: 10px; height: 10px; border-radius: 50%; background: var(--border); }
.shot__bar span { margin-left: 10px; font-size: .72rem; color: var(--muted); background: var(--bg); border-radius: 6px; padding: 1px 10px; }
.shot img, .phone img { display: block; width: 100%; height: auto; }
.phone { margin: 0; width: 100%; max-width: 220px; border-radius: 30px; padding: 8px; background: #1b2030; box-shadow: 0 24px 60px -24px rgba(31, 36, 48, .4); }
.phone img { border-radius: 23px; }
.phones { display: flex; justify-content: center; align-items: flex-end; gap: 22px; min-width: 0; }
.phones .phone { max-width: 200px; }
.phones .phone:nth-child(2) { max-width: 220px; transform: translateY(-18px); }
.hero--product { padding: 72px 0 40px; }
.hero--product p.lead { max-width: 52ch; }
.hero__visual { position: relative; margin-top: 48px; }
.hero__visual .shot { margin-right: 120px; }
.hero__visual .phone { position: absolute; right: -8px; bottom: -36px; max-width: 200px; }
.proof { padding: 64px 0 24px; }
.proof ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 18px; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.proof li { display: grid; gap: 4px; padding: 18px 20px; border: 1px solid var(--border); border-radius: var(--radius); }
.proof li span { color: var(--muted); font-size: .95rem; }
.story .container { display: grid; gap: 96px; }
.story__row { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 56px; align-items: center; }
.story__row--flip { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
.story__row--flip .story__text { order: 2; }
.story__text { min-width: 0; }
.story__text p { color: var(--muted); max-width: 46ch; }
.story__text ul { margin: 4px 0 0; padding: 0; list-style: none; display: grid; gap: 8px; }
.story__text li { position: relative; padding-left: 26px; }
.story__text li::before { content: ""; position: absolute; left: 0; top: .55em; width: 14px; height: 8px; border-left: 2.5px solid var(--indigo); border-bottom: 2.5px solid var(--indigo); transform: rotate(-45deg); }

/* Accueil : deux « portes », une par produit, chacune avec l'identité de son application (couleurs fixes, quel que soit le thème) */
.doors-section { padding: 8px 0 48px; }
.doors { display: grid; gap: 24px; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); }
.door { display: grid; grid-template-rows: auto 1fr; border: 1px solid var(--border); border-radius: 18px; overflow: hidden; background: var(--bg); box-shadow: 0 24px 60px -24px rgba(31, 36, 48, .28); transition: transform .2s, border-color .2s; }
.door:hover { transform: translateY(-3px); border-color: var(--indigo); }
.door__brand { aspect-ratio: 16 / 7; display: grid; place-items: center; color: #fff; }
.door__brand--duncan { background: linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px) 0 0 / 28px 28px, linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px) 0 0 / 28px 28px, linear-gradient(135deg, #1e1b4b 0%, #3730a3 100%); }
.door__brand--hfm { background: radial-gradient(120% 90% at 50% 120%, rgba(195,160,106,.28), transparent 60%), linear-gradient(150deg, #141b2e 0%, #2a3656 100%); }
.duncan-logo { display: flex; align-items: center; gap: 16px; }
.duncan-logo svg { width: clamp(64px, 9vw, 88px); height: auto; }
.duncan-logo span { font-weight: 800; font-size: clamp(1.8rem, 4vw, 2.5rem); letter-spacing: .04em; }
.hfm-logo { display: grid; justify-items: center; gap: 10px; }
.hfm-logo b { font-family: Fraunces, Georgia, "Times New Roman", serif; font-weight: 600; font-size: clamp(2.6rem, 6vw, 3.6rem); letter-spacing: .06em; line-height: 1; }
.hfm-logo b i { font-style: normal; color: #c3a06a; }
.hfm-logo span { font-size: .74rem; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: rgba(255,255,255,.82); }
.door__body { display: flex; flex-direction: column; gap: 12px; padding: 26px 28px 28px; }
.door__who { font-size: .9rem; font-weight: 600; color: var(--muted); }
.door__name { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.door__name h2 { margin: 0; font-size: 1.9rem; }
.door__tag { font-size: .78rem; font-weight: 600; padding: 3px 10px; border-radius: 999px; background: color-mix(in srgb, var(--indigo) 12%, transparent); color: var(--indigo); }
.door__promise { font-size: 1.12rem; font-weight: 600; margin: 0; }
.door ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 6px; color: var(--muted); }
.door li { position: relative; padding-left: 24px; }
.door li::before { content: ""; position: absolute; left: 0; top: .55em; width: 13px; height: 7px; border-left: 2.5px solid var(--indigo); border-bottom: 2.5px solid var(--indigo); transform: rotate(-45deg); }
.door .btn { margin-top: auto; align-self: flex-start; }
@media (prefers-reduced-motion: reduce) { .door { transition: none; } .door:hover { transform: none; } }

/* Compatibilité (systèmes, bases) et encadré d'achat */
.compat { margin-top: 22px; display: grid; gap: 18px; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); padding: 22px 24px; border: 1px solid var(--border); border-radius: var(--radius); }
.compat h3 { font-size: 1.05rem; margin-bottom: 10px; }
.compat ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.compat li { font-size: .92rem; font-weight: 500; padding: 4px 12px; border-radius: 999px; background: color-mix(in srgb, var(--indigo) 9%, transparent); }
.compat p { color: var(--muted); font-size: .92rem; margin: 10px 0 0; }
.buy { margin-top: 22px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 24px; padding: 22px 24px; border: 2px solid var(--indigo); border-radius: var(--radius); background: color-mix(in srgb, var(--indigo) 5%, var(--bg)); }
.buy p { color: var(--muted); max-width: 56ch; margin: 0; }
.buy b { color: var(--ink); }
.buy .actions { margin-top: 0; }

/* Formules d'abonnement */
.plans { display: grid; gap: 22px; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); max-width: 760px; }
.plan { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; padding: 28px; border: 2px solid var(--border); border-radius: var(--radius); background: var(--bg); }
.plan--best { border-color: var(--indigo); background: color-mix(in srgb, var(--indigo) 5%, var(--bg)); }
.plan__head { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; min-height: 30px; }
.plan__head h3 { font-size: 1.2rem; margin: 0; }
.plan__badge { font-size: .78rem; font-weight: 600; padding: 3px 10px; border-radius: 999px; background: var(--indigo); color: #fff; }
.plan__price { display: flex; align-items: baseline; gap: 8px; margin: 0; font-variant-numeric: tabular-nums; }
.plan__price b { font-size: 2.3rem; font-weight: 800; letter-spacing: -0.02em; }
.plan__price span, .plan__note { color: var(--muted); }
.plan__note { font-size: .95rem; margin: 0 0 14px; }
.plan .btn { margin-top: auto; }
.plans__fine { margin-top: 16px; font-size: .88rem; }

/* Formulaire */
.field { display: block; margin-bottom: 16px; }
.field label { display: block; font-weight: 600; margin-bottom: 6px; }
.field input, .field select, .field textarea { width: 100%; padding: 11px 13px; border: 1px solid var(--border); border-radius: 10px; background: var(--bg); color: var(--ink); font: inherit; }
.field-row { display: grid; grid-template-columns: minmax(7.5rem, 2fr) minmax(0, 3fr); gap: 12px; align-items: end; }
.field-row label { white-space: nowrap; }
@media (max-width: 480px) { .field-row { grid-template-columns: 1fr; } }
.notice { background: color-mix(in srgb, var(--indigo) 8%, transparent); border: 1px solid var(--border); border-radius: var(--radius); padding: 18px; }

/* Pied de page */
.site-footer { border-top: 1px solid var(--border); background: var(--surface); margin-top: 40px; }
.site-footer__inner { display: flex; flex-wrap: wrap; gap: 20px; justify-content: space-between; align-items: center; padding: 32px 20px; }
.footer-links { display: flex; flex-wrap: wrap; gap: 18px; }
.footer-links a { color: var(--muted); font-size: .95rem; }
.footer-links a:hover { color: var(--ink); }


/* Espace client */
.hero--compact { padding: 64px 0 32px; }
.account-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; }
.account-bar p { margin: 0; }
.flash { border-radius: var(--radius); padding: 14px 18px; margin-bottom: 24px; border: 1px solid var(--border); background: color-mix(in srgb, var(--indigo) 8%, transparent); }
.flash--error { border-color: color-mix(in srgb, #dc2626 45%, transparent); background: color-mix(in srgb, #dc2626 8%, transparent); }
.card .tag--danger { background: color-mix(in srgb, #dc2626 14%, transparent); color: #dc2626; }
.card .tag--warning { background: color-mix(in srgb, #d97706 16%, transparent); color: #b45309; }
.license + .license { margin-top: 22px; }
.license__head { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; }
.license__head h3 { margin: 0 8px 14px 0; }
.facts { display: grid; grid-template-columns: max-content 1fr; gap: 8px 22px; margin: 0; }
.facts dt { font-weight: 600; }
.facts dd { margin: 0; }
.license .actions { align-items: center; }
.check { display: flex; gap: 10px; align-items: flex-start; margin-bottom: 18px; }
.check input { margin-top: 5px; }
.table-wrap { overflow-x: auto; border: 1px solid var(--border); border-radius: var(--radius); }
.table { width: 100%; border-collapse: collapse; }
.table th, .table td { text-align: left; padding: 12px 16px; border-bottom: 1px solid var(--border); vertical-align: top; }
.table tr:last-child td { border-bottom: 0; }
.table th { background: var(--surface); font-weight: 600; }
.table .amount { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
/* Choix d'une option (socle, module) : titre et prix sur une ligne, description en dessous. */
.option { padding: 12px 0; margin: 0; border-bottom: 1px solid var(--border); }
.option:last-of-type { border-bottom: 0; }
.option__body { display: flex; flex-direction: column; gap: 3px; flex: 1; min-width: 0; }
.option__head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.option__head strong { min-width: 0; }
.option__price { white-space: nowrap; color: var(--muted); font-size: .92rem; font-variant-numeric: tabular-nums; }
.option__desc { color: var(--muted); font-size: .92rem; line-height: 1.45; }
/* Modules d'une licence (espace client) : un par ligne. */
.modules-list { list-style: none; margin: 0; padding: 0; }
.modules-list li { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 10px; padding: 3px 0; }
.modules-list .tag { margin-bottom: 0; }
.table__actions { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
code { font-size: .92em; overflow-wrap: anywhere; }

@media (max-width: 760px) {
  .nav { position: absolute; top: 64px; left: 0; right: 0; flex-direction: column; align-items: stretch; gap: 0; background: var(--bg); border-bottom: 1px solid var(--border); padding: 8px 20px 16px; display: none; }
  .nav a { padding: 10px 0; }
  .nav-toggle:checked ~ .nav { display: flex; }
  .nav-burger { display: block; }
  .cta { padding: 32px 22px; }
  .facts { grid-template-columns: 1fr; gap: 2px; }
  .facts dd { margin-bottom: 10px; }
  .table__actions { justify-content: flex-start; }
}
@media (max-width: 860px) {
  .story__row, .story__row--flip { grid-template-columns: 1fr; gap: 28px; }
  .story__row--flip .story__text { order: 0; }
  .story .container { gap: 72px; }
  .hero__visual .shot { margin-right: 0; }
  .hero__visual .phone { position: static; margin: -64px 12px 0 auto; max-width: 150px; }
}
@media (max-width: 560px) {
  .phones { gap: 10px; }
  .phones .phone { padding: 5px; border-radius: 20px; }
  .phones .phone img { border-radius: 16px; }
  .phones .phone:nth-child(2) { transform: translateY(-10px); }
  .shot__bar span { display: none; }
}

/* Commande : options à gauche ; coordonnées et récapitulatif empilés à droite. */
.checkout { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 22px; align-items: start; }
.checkout__side { display: grid; gap: 22px; }
@media (max-width: 860px) { .checkout { grid-template-columns: 1fr; } }
.hero .muted a, .lead a { text-decoration: underline; text-underline-offset: 3px; }
.table tfoot tr:first-child td, .table tfoot tr:first-child th { border-top: 1px solid var(--border); }
button.btn { font-family: inherit; }
/* Espace client : liste des modules alignée sur les autres informations de la licence. */
.card .modules-list { margin: 0; padding: 0; }
.card .modules-list li { margin: 0; }
/* Gestion d'une licence : essai de module, arrêts et retraits, discrets sous les actions. */
.manage { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--border); display: grid; gap: 8px; font-size: .92rem; }
.manage__trial { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; }
.manage__trial label { color: var(--muted); }
.manage__links { margin: 0; display: flex; flex-wrap: wrap; gap: 4px 14px; }
.manage__links a { color: var(--muted); text-decoration: underline; text-underline-offset: 3px; }
.manage__links a:hover { color: var(--ink); }
.select-inline { padding: 6px 10px; border: 1px solid var(--border); border-radius: 8px; background: var(--bg); color: var(--ink); font: inherit; }
/* Lignes de calcul : libellé, puis période en dessous. */
.line-period { display: block; color: var(--muted); font-size: .86rem; margin-top: 2px; }
.card .table-wrap + form, .card .table-wrap + .actions { margin-top: 16px; }
.confirm-summary { margin: 0 0 16px; }
/* Panneau recalculé en direct : atténué pendant le calcul. */
#montant.is-loading { opacity: .55; transition: opacity .15s; }
#montant.is-loading h3::after { content: ' — calcul en cours…'; font-size: .8em; font-weight: 400; color: var(--muted); }
/* Tableau des modules d'une licence : trois colonnes de cartes, choix animés. */
.board { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin: 18px 0 6px; }
@media (max-width: 860px) { .board { grid-template-columns: 1fr; } }
.board__col { background: var(--bg); border: 1px solid var(--border); border-radius: var(--radius); padding: 12px; min-height: 120px; }
.board__title { margin: 0 0 10px; font-size: .78rem; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); }
.board__hint { text-transform: none; letter-spacing: 0; font-weight: 400; }
.card .board__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.card .board__list li { margin: 0; }
.board__empty { color: var(--muted); font-size: .88rem; padding: 6px 2px; }
.mcard { background: var(--surface); border: 1px solid var(--border); border-radius: 10px; padding: 10px 12px; display: grid; gap: 4px; transition: border-color .2s, box-shadow .2s, background .2s; }
.mcard:hover { border-color: color-mix(in srgb, var(--indigo) 45%, var(--border)); }
.mcard--fixed { opacity: .8; }
.mcard--trial { border-style: dashed; }
.mcard__name { font-weight: 600; }
.mcard__meta { color: var(--muted); font-size: .85rem; }
.mcard__warn { color: #ef4444; }
.mcard__actions { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 4px; }
.mcard__badge { justify-self: start; font-size: .72rem; font-weight: 600; padding: 2px 8px; border-radius: 999px; background: color-mix(in srgb, var(--indigo) 18%, transparent); color: var(--indigo); }
.mcard--pending { border-color: var(--indigo); box-shadow: 0 0 0 3px color-mix(in srgb, var(--indigo) 20%, transparent); }
.mcard--remove { border-color: #ef4444; box-shadow: 0 0 0 3px color-mix(in srgb, #ef4444 18%, transparent); }
.mcard--remove .mcard__badge { background: color-mix(in srgb, #ef4444 16%, transparent); color: #ef4444; }
.mbtn { font: inherit; font-size: .82rem; font-weight: 600; padding: 4px 10px; border-radius: 8px; border: 1px solid var(--indigo); background: var(--indigo); color: #fff; cursor: pointer; transition: transform .12s, background .15s; }
.mbtn:hover { transform: translateY(-1px); }
.mbtn:active { transform: translateY(0) scale(.97); }
.mbtn--quiet { background: transparent; color: var(--ink); border-color: var(--border); }
.board__selection { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; padding: 12px 14px; border: 1px solid var(--indigo); border-radius: var(--radius); background: color-mix(in srgb, var(--indigo) 8%, transparent); }
.board__summary { margin: 0; }
.board__buttons { display: flex; gap: 8px; }
.board__note { flex-basis: 100%; margin: 0; font-size: .88rem; }
.board__selection .btn[disabled] { opacity: .45; cursor: not-allowed; }
@media (prefers-reduced-motion: reduce) { .mcard, .mbtn { transition: none; } }
.manage__links--licence { margin-top: 12px; font-size: .9rem; }
.mcard__actions[hidden], .board__selection[hidden], .board__empty[hidden], .board__note[hidden] { display: none; }
/* Récapitulatif des changements de modules (opération composée). */
.card .changes { list-style: none; margin: 0 0 18px; padding: 0; display: grid; gap: 8px; }
.card .changes li.changes__item { margin: 0; display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; padding: 8px 12px; border: 1px solid var(--border); border-left-width: 3px; border-radius: 8px; }
.changes__tag { font-size: .72rem; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; color: var(--indigo); min-width: 4.5em; }
.changes__item--remove { border-left-color: #ef4444; }
.changes__item--remove .changes__tag { color: #ef4444; }
.changes__item--keep, .changes__item--add { border-left-color: var(--indigo); }
.changes__item--try { border-left-style: dashed; border-left-color: var(--indigo); }
.mcard__trial { justify-self: start; font-size: .78rem; font-weight: 600; color: var(--indigo); }
/* Espace client : menu à gauche, contenu au centre, panier à droite (colonnes latérales fixes). */
.container.area { max-width: 1480px; display: grid; grid-template-columns: 190px minmax(0, 1fr) 300px; gap: 28px; align-items: start; }
.area__main { min-width: 0; }
.area__main .area__section { padding: 0 0 48px; scroll-margin-top: 84px; }
.area__nav, .area__basket { position: sticky; top: 84px; }
.area__nav { display: grid; gap: 2px; padding-top: 4px; }
.area__nav a { position: relative; padding: 8px 12px; border-radius: 8px; color: var(--muted); text-decoration: none; font-weight: 500; transition: color .2s, background .2s; }
.area__nav a::before { content: ""; position: absolute; left: 0; top: 8px; bottom: 8px; width: 3px; border-radius: 3px; background: var(--indigo); transform: scaleY(0); transition: transform .25s ease; }
.area__nav a:hover { color: var(--ink); background: var(--surface); }
.area__nav a.is-active { color: var(--ink); }
.area__nav a.is-active::before { transform: scaleY(1); }
html { scroll-behavior: smooth; }
.basket { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 14px 16px 16px; max-height: calc(100vh - 110px); overflow: auto; transition: border-color .25s, box-shadow .25s; }
.basket.has-items { border-color: var(--indigo); box-shadow: 0 8px 28px color-mix(in srgb, var(--indigo) 18%, transparent); }
.basket__head { all: unset; display: flex; align-items: center; gap: 8px; width: 100%; cursor: default; }
.basket__title { font-weight: 700; text-transform: uppercase; letter-spacing: .06em; font-size: .78rem; color: var(--muted); flex: 1; }
.basket__count { min-width: 22px; height: 22px; padding: 0 6px; border-radius: 999px; background: var(--indigo); color: #fff; font-size: .78rem; font-weight: 700; display: inline-grid; place-items: center; }
.basket__count[hidden] { display: none; }
.basket__sum { display: none; font-weight: 700; }
.basket__body { margin-top: 10px; }
.basket__empty { color: var(--muted); font-size: .9rem; margin: 0; }
.basket__empty[hidden], .basket__reset[hidden] { display: none; }
.basket__content { transition: opacity .2s; }
.basket__content.is-loading { opacity: .45; }
.basket__licence { font-size: .82rem; color: var(--muted); margin-bottom: 8px; }
.basket__lines { list-style: none; margin: 0 0 10px; padding: 0; display: grid; gap: 6px; }
.basket__line { display: flex; justify-content: space-between; gap: 10px; padding: 7px 10px; border-radius: 8px; background: var(--bg); border-left: 3px solid var(--indigo); font-size: .9rem; }
.basket__line small { display: block; color: var(--muted); font-size: .76rem; }
.basket__line--remove { border-left-color: #ef4444; }
.basket__line--try { border-left-style: dashed; }
.basket__row { display: flex; justify-content: space-between; gap: 10px; font-size: .88rem; color: var(--muted); padding: 2px 2px; }
.basket__total { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; padding: 10px 2px 4px; margin-top: 4px; border-top: 1px solid var(--border); }
.basket__total strong { font-size: 1.25rem; display: inline-block; }
.basket__note { font-size: .8rem; color: var(--muted); margin: 6px 0 10px; }
.basket__go { width: 100%; justify-content: center; margin-top: 8px; }
.basket__detail { display: block; text-align: center; font-size: .82rem; margin-top: 8px; }
.basket__reset { all: unset; cursor: pointer; display: block; margin: 10px auto 0; font-size: .82rem; color: var(--muted); text-decoration: underline; }
.basket__error { color: #ef4444; font-size: .9rem; margin: 0; }
.basket__flash { font-size: .82rem; padding: 6px 10px; border-radius: 8px; background: color-mix(in srgb, var(--indigo) 12%, transparent); margin: 0 0 8px; }
/* Écran moyen : panier en barre fixe en bas ; petit écran : menu en barre en haut. */
@media (max-width: 1180px) {
  .container.area { grid-template-columns: 170px minmax(0, 1fr); padding-bottom: 80px; }
  .area__basket { position: fixed; left: 0; right: 0; bottom: 0; top: auto; z-index: 30; padding: 0 12px 12px; pointer-events: none; }
  .basket { pointer-events: auto; max-width: 720px; margin: 0 auto; max-height: 70vh; box-shadow: 0 -6px 24px rgba(0, 0, 0, .25); }
  .basket__head { cursor: pointer; }
  .basket__sum { display: inline; }
  .basket__body { display: none; }
  .basket.is-open .basket__body { display: block; }
}
@media (max-width: 760px) {
  .container.area { grid-template-columns: 1fr; gap: 12px; }
  .area__nav { position: sticky; top: 64px; z-index: 15; display: flex; overflow-x: auto; scrollbar-width: none; gap: 4px; padding: 8px 0; background: var(--bg); }
  .area__nav::-webkit-scrollbar { display: none; }
  .area__nav a { white-space: nowrap; }
  .area__nav a::before { left: 12px; right: 12px; top: auto; bottom: 2px; width: auto; height: 3px; transform: scaleX(0); }
  .area__nav a.is-active::before { transform: scaleX(1); }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } .area__nav a::before, .basket { transition: none; } }
.area__basket[hidden] { display: none; }
/* Souscription : sections du formulaire empilées au centre, panier à droite. */
#souscription .area__main > .area__section { margin-bottom: 28px; scroll-margin-top: 84px; }
#souscription.area { margin-bottom: 64px; }
.basket__terms { margin: 4px 0 6px; font-size: .88rem; }
#souscription .area__main > .card.area__section { padding: 28px; }
