/* ==========================================================================
   Résultat gratuit — public/css/components/result.css
   Fidèle à design/maquettes/site/resultat.html : résumé de saisie, héros
   archétype, portrait, signature en chiffres, aperçus de chapitres (texte
   flouté neutre), frise des décennies. La mise en page à deux colonnes et le
   socle technique sont dans css/pages/calculateur.css. Jetons uniquement.
   ========================================================================== */

.summary { border-bottom: 1px solid var(--line-soft); }
.summary .wrap { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 48px; font-size: 14px; color: var(--ink-2); }
.summary b { color: var(--ink); font-weight: 600; }
.summary a { display: inline-flex; gap: 6px; align-items: center; color: var(--ink); font-weight: 500; min-height: 44px; white-space: nowrap; }
.summary a .i { width: 16px; height: 16px; }

/* Héros archétype */
.arch { padding: 28px 0 8px; }
.arch .wrap { display: grid; gap: 26px; }
.arch .kicker { margin-bottom: 12px; }
.arch h1:focus { outline: none; }
.arch h1 em { color: var(--wood-ink); display: block; }
.arch h1 .ko { color: var(--wood); font-size: .84em; font-style: normal; }
.arch__tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.arch__tags .tag { height: 30px; font-size: 13px; }
.arch__tags .ko-r { font-size: 15px; }
.arch__sig { margin-top: 18px; font: italic 500 clamp(21px, 5.4vw, 26px)/1.28 var(--font-display); color: var(--ink); text-wrap: balance; }
.arch__jab { margin-top: 14px; font-size: 16px; line-height: 1.5; color: var(--ink-2); padding-left: 14px; border-left: 2px solid var(--accent); }
.arch__jab b { color: var(--ink); font-weight: 600; }
.arch__vs { margin-top: 12px; font-size: 15px; color: var(--ink-2); }
.arch__vs b { color: var(--ink); font-weight: 600; }
.arch__note { margin-top: 16px; }
.arch .pillars-wrap { padding-bottom: 6px; }
.pillar--veiled { border-style: dashed; background: transparent; }
.pillar--veiled .pillar__veil { flex: 1; min-height: 96px; }

.nw { white-space: nowrap; }
.portrait .read .ko, .teaser__open .ko, .arch__jab .ko, .arch__sig .ko { font-weight: 500; }

/* Blocs */
.block { padding: 36px 0 8px; }
.block__head { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 16px; }
.portrait .read { font-size: 21px; line-height: 1.6; }
.portrait .read + .read { margin-top: 14px; }
.portrait .read b { font-weight: 600; background: linear-gradient(transparent 62%, color-mix(in srgb, var(--metal) 26%, transparent) 62%); }
.portrait-end { display: block; height: 1px; }
.portrait__sig { margin-top: 16px; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 16px; align-items: center; font-size: 13px; color: var(--ink-3); }
.portrait__sig .ko-r { font-size: 14px; color: var(--ink-2); }
.portrait__sig .link { background: none; border: 0; padding: 0; cursor: pointer; }

/* Signature en chiffres */
.elements { display: grid; grid-template-columns: repeat(5, 1fr); gap: 6px; }
.el { padding: 12px 4px; border-radius: var(--r-sm); background: var(--el-soft); text-align: center; border: 1px solid transparent; }
.el__hj { display: block; font: 400 22px/1 var(--font-ko); color: var(--el); }
.el__n { display: block; margin-top: 6px; font: 600 13px/1.2 var(--font-ui); color: var(--el-ink); }
.el__c { display: block; font: 600 30px/1 var(--font-display); color: var(--ink); margin-top: 6px; }
.el__dots { display: flex; justify-content: center; gap: 3px; margin-top: 8px; height: 6px; flex-wrap: wrap; }
.el__dots i { width: 6px; height: 6px; border-radius: 50%; background: var(--el); }
.el--zero { background: transparent; border: 1.5px dashed var(--el); }
.el--zero .el__c { color: var(--el-ink); }
.el--dom { box-shadow: inset 0 0 0 1.5px var(--el); }
.el__flag { display: block; margin-top: 6px; font: 600 11px/1 var(--font-ui); letter-spacing: .06em; text-transform: uppercase; color: var(--el-ink); }
.sig-line { margin-top: 16px; font: italic 500 22px/1.3 var(--font-display); color: var(--ink); }
.sig-more { margin-top: 10px; font-size: 15px; color: var(--ink-2); }
.sig-more b { font-weight: 600; }
.el-ink-wood { color: var(--wood-ink); }
.el-ink-fire { color: var(--fire-ink); }
.el-ink-earth { color: var(--earth-ink); }
.el-ink-metal { color: var(--metal-ink); }
.el-ink-water { color: var(--water-ink); }

/* Aperçus de chapitres : accroche gratuite + remplissage flou neutre */
.teasers { display: grid; gap: 12px; }
.teaser { padding: 20px 18px 18px; position: relative; overflow: hidden; }
.teaser__h { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.teaser__h .kicker { white-space: nowrap; }
.teaser h3 { margin-top: 6px; }
.teaser__open { margin-top: 10px; font: 400 19px/1.55 var(--font-display); color: var(--ink); }
.teaser__blur {
  position: relative; margin-top: 4px; font: 400 19px/1.55 var(--font-display); color: var(--ink-2);
  filter: blur(5px); user-select: none; -webkit-mask: linear-gradient(black 30%, transparent); mask: linear-gradient(black 30%, transparent);
  max-height: 58px; overflow: hidden;
}
.teaser__lock { display: inline-flex; align-items: center; gap: 6px; margin-top: 8px; font: 600 13px/1 var(--font-ui); color: var(--accent-ink); }
.teaser__lock .i { width: 15px; height: 15px; }
.dw { margin: 14px 0 6px; }
.dw__bar { display: grid; grid-template-columns: repeat(8, 1fr); gap: 3px; }
.dw__bar i { height: 22px; border-radius: 3px; background: var(--el-soft); border-bottom: 3px solid var(--el); position: relative; }
.dw__bar i.now { background: var(--el); }
.dw__bar i.now::after { content: ""; position: absolute; left: 50%; top: -8px; width: 2px; height: 38px; background: var(--ink); transform: translateX(-50%); border-radius: 1px; }
.dw__lbl { display: grid; grid-template-columns: repeat(8, 1fr); gap: 3px; margin-top: 6px; font: 500 12px/1.2 var(--font-ui); color: var(--ink-3); text-align: center; }
.dw__lbl span.now { color: var(--ink); font-weight: 600; }

@media (min-width: 900px) {
  .arch { padding: 56px 0 24px; }
  .arch .wrap { grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; }
  .arch .pillar__g { font-size: 54px; }
  .arch .pillar { padding: 18px 6px; }
  .arch .pillars { gap: 10px; }
  .teaser { padding: 24px 24px 20px; }
  .portrait .read { font-size: 23px; }
}

/* Clavier ouvert (hauteur utile < 320 px) : pas de barre d'achat collante. */
@media (max-height: 319px) { .buybar { display: none; } }
