/* idea-v2.css — Sistema editorial v14. Activo bajo body.theme-v2. Convive con idea-custom.css. */

/* === RESET DE SCOPE === */
body.theme-v2 { font-family: var(--font-sans); background: var(--ink-50); color: var(--ink-900); font-feature-settings: 'cv11','ss01','ss03'; -webkit-font-smoothing: antialiased; }
body.theme-v2 * { box-sizing: border-box; }
body.theme-v2 img { max-width: 100%; }

/* === TIPOGRAFÍA === */
body.theme-v2 .h1 { font-family: var(--font-serif); font-weight: 400; line-height: var(--lh-snug); letter-spacing: -0.02em; color: var(--ink-900); font-variation-settings: 'opsz' 96, 'SOFT' 50; margin: 0 0 var(--s-4) 0; font-size: var(--text-3xl); }
body.theme-v2 .h1.h1-hero { font-size: var(--text-4xl); }
body.theme-v2 .h1 em, body.theme-v2 .h1 i { font-style: italic; font-variation-settings: 'opsz' 96, 'SOFT' 100; color: var(--brand-600); }
body.theme-v2 .h2 { font-family: var(--font-serif); font-weight: 500; color: var(--ink-900); font-size: var(--text-xl); letter-spacing: -0.015em; margin: 0 0 var(--s-3) 0; line-height: var(--lh-snug); }
body.theme-v2 .h3 { font-family: var(--font-serif); font-weight: 500; color: var(--ink-900); font-size: var(--text-lg); margin: 0 0 var(--s-3) 0; line-height: var(--lh-snug); }
body.theme-v2 .eyebrow { font-family: var(--font-sans); font-size: var(--text-xs); font-weight: 600; text-transform: uppercase; letter-spacing: 0.08em; color: var(--gold-600); margin: 0 0 var(--s-2) 0; display: inline-block; }
body.theme-v2 .lead { font-family: var(--font-sans); font-size: var(--text-md); font-weight: 400; color: var(--ink-500); line-height: var(--lh-relaxed); max-width: 60ch; margin: 0 0 var(--s-5) 0; }
body.theme-v2 .body-sm { font-size: var(--text-sm); color: var(--ink-700); line-height: var(--lh-normal); }
body.theme-v2 .mono { font-family: var(--font-mono); font-variant-numeric: tabular-nums; }
body.theme-v2 blockquote.editorial { border-left: 3px solid var(--gold-500); padding: var(--s-3) 0 var(--s-3) var(--s-5); margin: var(--s-5) 0; font-family: var(--font-serif); font-style: italic; font-size: var(--text-md); color: var(--ink-700); line-height: var(--lh-relaxed); }

/* === LAYOUT BASE === */
body.theme-v2 .container-base { max-width: var(--container-base); margin: 0 auto; padding: 0 var(--s-6); }
body.theme-v2 .container-wide { max-width: var(--container-wide); margin: 0 auto; padding: 0 var(--s-6); }
body.theme-v2 .container-fluid { max-width: var(--container-fluid); margin: 0 auto; padding: 0 var(--s-6); }
body.theme-v2 .container-narrow { max-width: var(--container-narrow); margin: 0 auto; padding: 0 var(--s-6); }
body.theme-v2 main { min-height: calc(100vh - var(--header-h) - var(--footer-h)); padding: var(--s-7) 0; background: var(--ink-50); }

/* === HEADER === */
body.theme-v2 .idea-header { background: var(--paper); border-bottom: 1px solid var(--ink-200); height: var(--header-h); display: flex; align-items: center; padding: 0 var(--s-6); position: sticky; top: 0; z-index: 40; }
body.theme-v2 .idea-header .header-inner { max-width: var(--container-fluid); margin: 0 auto; width: 100%; display: flex; align-items: center; justify-content: space-between; gap: var(--s-5); }
body.theme-v2 .idea-header .logo { display: flex; align-items: center; gap: var(--s-3); text-decoration: none; }
body.theme-v2 .idea-header .logo img { height: 36px; width: auto; }
body.theme-v2 .idea-header .logo-text { font-family: var(--font-serif); font-size: var(--text-md); font-weight: 500; color: var(--ink-900); letter-spacing: -0.01em; }
body.theme-v2 .idea-nav { display: flex; align-items: center; gap: var(--s-1); }
body.theme-v2 .idea-nav a { font-family: var(--font-sans); font-size: var(--text-sm); font-weight: 500; color: var(--ink-700); padding: 8px 14px; border-radius: var(--r-sm); text-decoration: none; position: relative; transition: color var(--dur-1); }
body.theme-v2 .idea-nav a:hover { color: var(--ink-900); }
body.theme-v2 .idea-nav a.active { color: var(--brand-600); }
body.theme-v2 .idea-nav a.active::after { content: ''; position: absolute; bottom: -4px; left: 14px; right: 14px; height: 2px; background: var(--brand-600); border-radius: 1px; }
body.theme-v2 .header-actions { display: flex; align-items: center; gap: var(--s-3); }

/* === FOOTER === */
body.theme-v2 .idea-footer { background: var(--paper); border-top: 1px solid var(--ink-200); padding: var(--s-6) var(--s-6); text-align: center; font-family: var(--font-sans); font-size: var(--text-xs); color: var(--ink-500); }
body.theme-v2 .idea-footer a { color: var(--ink-700); text-decoration: none; border-bottom: 1px solid var(--ink-300); }
body.theme-v2 .idea-footer a:hover { color: var(--brand-600); border-color: var(--brand-600); }

/* === SIDEBAR === */
body.theme-v2 .idea-sidebar { width: var(--sidebar-w); background: var(--paper); border-right: 1px solid var(--ink-200); padding: var(--s-5) 0; height: calc(100vh - var(--header-h)); position: sticky; top: var(--header-h); overflow-y: auto; }
body.theme-v2 .idea-sidebar .sidebar-section { padding: 0 var(--s-3); margin-bottom: var(--s-5); }
body.theme-v2 .idea-sidebar .sidebar-label { font-family: var(--font-sans); font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.08em; color: var(--ink-500); padding: 0 var(--s-3); margin-bottom: var(--s-2); display: block; }
body.theme-v2 .idea-sidebar a, body.theme-v2 .idea-sidebar button.sidebar-item { display: flex; align-items: center; gap: var(--s-3); padding: 10px 14px; border-radius: var(--r-sm); font-family: var(--font-sans); font-size: var(--text-sm); font-weight: 500; color: var(--ink-700); text-decoration: none; background: transparent; border: none; width: 100%; cursor: pointer; text-align: left; position: relative; transition: background var(--dur-1), color var(--dur-1); }
body.theme-v2 .idea-sidebar a:hover, body.theme-v2 .idea-sidebar button.sidebar-item:hover { background: var(--ink-50); color: var(--ink-900); }
body.theme-v2 .idea-sidebar a.active, body.theme-v2 .idea-sidebar button.sidebar-item.active { color: var(--ink-900); font-weight: 600; background: var(--brand-50); }
body.theme-v2 .idea-sidebar a.active::before, body.theme-v2 .idea-sidebar button.sidebar-item.active::before { content: ''; position: absolute; left: 0; top: 6px; bottom: 6px; width: 3px; background: var(--brand-600); border-radius: 0 2px 2px 0; }
body.theme-v2 .idea-sidebar svg { width: 18px; height: 18px; stroke-width: 1.5; flex-shrink: 0; }

/* === LAYOUT CON SIDEBAR === */
body.theme-v2 .layout-with-sidebar { display: grid; grid-template-columns: var(--sidebar-w) 1fr; min-height: calc(100vh - var(--header-h)); background: var(--ink-50); }
body.theme-v2 .layout-with-sidebar .main-content { padding: var(--s-7) var(--s-7); overflow-x: auto; }
@media (max-width: 1024px) { body.theme-v2 .layout-with-sidebar { grid-template-columns: 1fr; } body.theme-v2 .idea-sidebar { display: none; } }

/* === CARDS === */
body.theme-v2 .card-premium { position: relative; background: var(--paper); border: 1px solid var(--ink-200); border-radius: var(--r-md); padding: var(--s-5) var(--s-6); box-shadow: var(--shadow-xs); transition: box-shadow var(--dur-2), transform var(--dur-2), border-color var(--dur-2); }
body.theme-v2 .card-premium:hover { box-shadow: var(--shadow-md); transform: translateY(-1px); border-color: var(--ink-300); }
body.theme-v2 .card-premium.acento-brand { border-left: 3px solid var(--brand-600); }
body.theme-v2 .card-premium.acento-gold { border-left: 3px solid var(--gold-600); }
body.theme-v2 .card-premium.acento-ok { border-left: 3px solid var(--ok-600); }
body.theme-v2 .card-premium.acento-warn { border-left: 3px solid var(--warn-600); }
body.theme-v2 .card-premium.acento-err { border-left: 3px solid var(--err-600); }
body.theme-v2 .card-premium.acento-info { border-left: 3px solid var(--info-600); }
body.theme-v2 .card-premium.flat { box-shadow: none; }
body.theme-v2 .card-premium.flat:hover { transform: none; }
body.theme-v2 .card-grid { display: grid; gap: var(--s-5); }
body.theme-v2 .card-grid.cols-2 { grid-template-columns: repeat(2, 1fr); }
body.theme-v2 .card-grid.cols-3 { grid-template-columns: repeat(3, 1fr); }
body.theme-v2 .card-grid.cols-4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 1024px) { body.theme-v2 .card-grid.cols-3, body.theme-v2 .card-grid.cols-4 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { body.theme-v2 .card-grid.cols-2, body.theme-v2 .card-grid.cols-3, body.theme-v2 .card-grid.cols-4 { grid-template-columns: 1fr; } }

/* === BOTONES === */
body.theme-v2 .btn-primary { display: inline-flex; align-items: center; justify-content: center; gap: var(--s-2); background: var(--brand-600); color: var(--paper); font-family: var(--font-sans); font-size: var(--text-sm); font-weight: 500; padding: 10px 18px; border-radius: var(--r-sm); border: 1px solid transparent; cursor: pointer; text-decoration: none; transition: all var(--dur-1); white-space: nowrap; }
body.theme-v2 .btn-primary:hover { background: var(--brand-700); }
body.theme-v2 .btn-primary:focus-visible { outline: none; box-shadow: var(--ring-brand); }
body.theme-v2 .btn-primary:disabled { background: var(--ink-300); color: var(--paper); cursor: not-allowed; }
body.theme-v2 .btn-primary.btn-lg { padding: 14px 24px; font-size: var(--text-md); }
body.theme-v2 .btn-primary.btn-sm { padding: 6px 12px; font-size: var(--text-xs); }
body.theme-v2 .btn-secondary { display: inline-flex; align-items: center; justify-content: center; gap: var(--s-2); background: var(--paper); border: 1.5px solid var(--ink-300); color: var(--ink-900); font-family: var(--font-sans); font-size: var(--text-sm); font-weight: 500; padding: 10px 18px; border-radius: var(--r-sm); cursor: pointer; transition: all var(--dur-1); text-decoration: none; white-space: nowrap; }
body.theme-v2 .btn-secondary:hover { background: var(--ink-50); border-color: var(--ink-400); }
body.theme-v2 .btn-secondary:focus-visible { outline: none; box-shadow: var(--ring-brand); }
body.theme-v2 .btn-tertiary { display: inline-flex; align-items: center; gap: var(--s-2); background: transparent; color: var(--ink-700); font-family: var(--font-sans); font-size: var(--text-sm); font-weight: 500; padding: 10px 12px; border-radius: var(--r-sm); border: 1px solid transparent; cursor: pointer; transition: all var(--dur-1); text-decoration: none; }
body.theme-v2 .btn-tertiary:hover { color: var(--ink-900); background: var(--ink-50); }
body.theme-v2 .btn-gold { display: inline-flex; align-items: center; justify-content: center; gap: var(--s-2); background: var(--gold-500); color: var(--ink-900); font-family: var(--font-sans); font-size: var(--text-sm); font-weight: 600; padding: 10px 18px; border-radius: var(--r-sm); border: 1px solid transparent; cursor: pointer; transition: all var(--dur-1); text-decoration: none; white-space: nowrap; }
body.theme-v2 .btn-gold:hover { background: var(--gold-600); color: var(--paper); }
body.theme-v2 .btn-danger { display: inline-flex; align-items: center; gap: var(--s-2); background: var(--err-600); color: var(--paper); font-family: var(--font-sans); font-size: var(--text-sm); font-weight: 500; padding: 10px 18px; border-radius: var(--r-sm); border: 1px solid transparent; cursor: pointer; transition: all var(--dur-1); }
body.theme-v2 .btn-danger:hover { background: var(--err-700); }
body.theme-v2 .btn-icon { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: var(--r-sm); border: 1px solid var(--ink-200); background: var(--paper); color: var(--ink-700); cursor: pointer; transition: all var(--dur-1); }
body.theme-v2 .btn-icon:hover { background: var(--ink-50); color: var(--ink-900); border-color: var(--ink-300); }

/* === INPUTS === */
body.theme-v2 .form-group { margin-bottom: var(--s-5); }
body.theme-v2 .form-label { display: block; font-family: var(--font-sans); font-size: 13px; font-weight: 500; color: var(--ink-700); margin-bottom: 6px; letter-spacing: 0; }
body.theme-v2 .form-input, body.theme-v2 .form-select, body.theme-v2 .form-textarea { width: 100%; font-family: var(--font-sans); font-size: var(--text-sm); color: var(--ink-900); background: var(--paper); border: 1px solid var(--ink-300); border-radius: var(--r-sm); padding: 10px 14px; transition: border-color var(--dur-1), box-shadow var(--dur-1); line-height: var(--lh-normal); }
body.theme-v2 .form-input::placeholder, body.theme-v2 .form-textarea::placeholder { color: var(--ink-400); }
body.theme-v2 .form-input:focus, body.theme-v2 .form-select:focus, body.theme-v2 .form-textarea:focus { outline: none; border-color: var(--brand-600); box-shadow: var(--ring-brand); }
body.theme-v2 .form-input:disabled, body.theme-v2 .form-select:disabled { background: var(--ink-50); color: var(--ink-500); cursor: not-allowed; }
body.theme-v2 .form-hint { font-family: var(--font-sans); font-size: var(--text-xs); color: var(--ink-500); margin-top: 4px; }
body.theme-v2 .form-error { font-family: var(--font-sans); font-size: var(--text-xs); color: var(--err-600); margin-top: 4px; }
body.theme-v2 .form-input.error, body.theme-v2 .form-select.error { border-color: var(--err-600); }
body.theme-v2 .form-input.error:focus, body.theme-v2 .form-select.error:focus { box-shadow: 0 0 0 3px rgba(185,28,60,0.18); }

/* === CHIPS === */
body.theme-v2 .chip { display: inline-flex; align-items: center; gap: 6px; padding: 4px 12px; border-radius: var(--r-full); font-family: var(--font-sans); font-size: 11.5px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.06em; line-height: 1; }
body.theme-v2 .chip-bajo, body.theme-v2 .chip-nivel.bajo { background: var(--err-100); color: var(--err-700); }
body.theme-v2 .chip-basico, body.theme-v2 .chip-nivel.basico { background: var(--warn-100); color: var(--warn-700); }
body.theme-v2 .chip-alto, body.theme-v2 .chip-nivel.alto { background: var(--ok-100); color: var(--ok-700); }
body.theme-v2 .chip-superior, body.theme-v2 .chip-nivel.superior { background: var(--gold-100); color: var(--gold-700); }
body.theme-v2 .chip-neutral { background: var(--ink-100); color: var(--ink-700); }
body.theme-v2 .chip-info { background: var(--info-100); color: var(--info-700); }
body.theme-v2 .chip-brand { background: var(--brand-100); color: var(--brand-700); }
body.theme-v2 .chip-gold { background: var(--gold-100); color: var(--gold-700); }

/* === TABLAS === */
body.theme-v2 .table-premium { width: 100%; border-collapse: collapse; font-family: var(--font-sans); font-size: var(--text-sm); background: var(--paper); border: 1px solid var(--ink-200); border-radius: var(--r-md); overflow: hidden; }
body.theme-v2 .table-premium thead th { background: var(--ink-50); padding: 12px 16px; text-align: left; font-family: var(--font-sans); font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.08em; color: var(--ink-500); border-bottom: 1px solid var(--ink-300); }
body.theme-v2 .table-premium tbody td { padding: 14px 16px; border-bottom: 1px solid var(--ink-200); color: var(--ink-900); font-size: var(--text-sm); vertical-align: middle; }
body.theme-v2 .table-premium tbody tr:nth-child(even) td { background: var(--zebra); }
body.theme-v2 .table-premium tbody tr:hover td { background: var(--brand-50); }
body.theme-v2 .table-premium tbody tr:last-child td { border-bottom: none; }
body.theme-v2 .table-premium td.numeric, body.theme-v2 .table-premium th.numeric { text-align: right; font-variant-numeric: tabular-nums lining-nums; }
body.theme-v2 .table-premium td.mono, body.theme-v2 .table-premium th.mono { font-family: var(--font-mono); font-size: 13px; }
body.theme-v2 .table-wrap { overflow-x: auto; border-radius: var(--r-md); border: 1px solid var(--ink-200); }
body.theme-v2 .table-wrap .table-premium { border: none; border-radius: 0; }

/* === MODALS === */
body.theme-v2 .modal-backdrop { position: fixed; inset: 0; background: rgba(26,22,19,0.42); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); display: flex; align-items: center; justify-content: center; z-index: 100; padding: var(--s-5); }
body.theme-v2 .modal-panel { background: var(--paper); border-radius: var(--r-md); box-shadow: var(--shadow-2xl); max-width: 560px; width: 100%; max-height: 90vh; overflow-y: auto; padding: var(--s-6); animation: idea-modal-in var(--dur-3) var(--ease-emphasized); }
body.theme-v2 .modal-panel.modal-wide { max-width: 880px; }
body.theme-v2 .modal-panel.modal-narrow { max-width: 420px; }
body.theme-v2 .modal-header { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--s-4); margin-bottom: var(--s-4); }
body.theme-v2 .modal-title { font-family: var(--font-serif); font-size: var(--text-lg); font-weight: 500; color: var(--ink-900); margin: 0; }
body.theme-v2 .modal-close { background: transparent; border: none; cursor: pointer; color: var(--ink-500); width: 32px; height: 32px; border-radius: var(--r-sm); display: flex; align-items: center; justify-content: center; transition: all var(--dur-1); }
body.theme-v2 .modal-close:hover { background: var(--ink-100); color: var(--ink-900); }
body.theme-v2 .modal-body { color: var(--ink-700); line-height: var(--lh-relaxed); font-size: var(--text-sm); }
body.theme-v2 .modal-footer { display: flex; gap: var(--s-3); justify-content: flex-end; margin-top: var(--s-5); padding-top: var(--s-4); border-top: 1px solid var(--ink-200); }
@keyframes idea-modal-in { from { opacity: 0; transform: translateY(12px) scale(0.98); } to { opacity: 1; transform: translateY(0) scale(1); } }

/* === KPI CARDS === */
body.theme-v2 .kpi-card { background: var(--paper); border: 1px solid var(--ink-200); border-left: 3px solid var(--ink-300); border-radius: var(--r-md); padding: var(--s-5); box-shadow: var(--shadow-xs); transition: box-shadow var(--dur-2); }
body.theme-v2 .kpi-card:hover { box-shadow: var(--shadow-sm); }
body.theme-v2 .kpi-card.acento-brand { border-left-color: var(--brand-600); }
body.theme-v2 .kpi-card.acento-gold { border-left-color: var(--gold-600); }
body.theme-v2 .kpi-card.acento-ok { border-left-color: var(--ok-600); }
body.theme-v2 .kpi-card.acento-warn { border-left-color: var(--warn-600); }
body.theme-v2 .kpi-card.acento-err { border-left-color: var(--err-600); }
body.theme-v2 .kpi-card.acento-info { border-left-color: var(--info-600); }
body.theme-v2 .kpi-label { font-family: var(--font-sans); font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.08em; color: var(--ink-500); margin-bottom: var(--s-2); }
body.theme-v2 .kpi-valor { font-family: var(--font-serif); font-size: var(--text-3xl); font-weight: 400; line-height: 1; color: var(--ink-900); letter-spacing: -0.02em; font-variation-settings: 'opsz' 96; font-variant-numeric: tabular-nums lining-nums; display: block; }
body.theme-v2 .kpi-valor.smaller { font-size: var(--text-2xl); }
body.theme-v2 .kpi-delta { display: inline-flex; align-items: center; gap: 4px; font-family: var(--font-sans); font-size: var(--text-xs); font-weight: 500; margin-top: var(--s-2); color: var(--ink-500); }
body.theme-v2 .kpi-delta.positive { color: var(--ok-600); }
body.theme-v2 .kpi-delta.negative { color: var(--err-600); }
body.theme-v2 .kpi-helper { font-family: var(--font-sans); font-size: var(--text-xs); color: var(--ink-500); margin-top: var(--s-2); }

/* === STEPPER WIZARD === */
body.theme-v2 .stepper { display: flex; align-items: center; gap: 0; margin: 0 0 var(--s-6) 0; }
body.theme-v2 .stepper-item { display: flex; align-items: center; flex: 1; }
body.theme-v2 .stepper-item:last-child { flex: 0; }
body.theme-v2 .stepper-circle { width: 32px; height: 32px; border-radius: 50%; border: 1.5px solid var(--ink-300); background: var(--paper); display: flex; align-items: center; justify-content: center; font-family: var(--font-sans); font-size: var(--text-sm); font-weight: 600; color: var(--ink-500); flex-shrink: 0; transition: all var(--dur-2); }
body.theme-v2 .stepper-circle.active { background: var(--brand-600); border-color: var(--brand-600); color: var(--paper); }
body.theme-v2 .stepper-circle.completed { background: var(--ok-600); border-color: var(--ok-600); color: var(--paper); }
body.theme-v2 .stepper-line { flex: 1; height: 1px; background: var(--ink-300); margin: 0 var(--s-2); }
body.theme-v2 .stepper-line.completed { background: var(--ok-600); }
body.theme-v2 .stepper-label { font-family: var(--font-sans); font-size: var(--text-xs); color: var(--ink-500); text-align: center; margin-top: 6px; }

/* === ALERTS / BANNERS === */
body.theme-v2 .banner { display: flex; gap: var(--s-3); padding: var(--s-4) var(--s-5); border-radius: var(--r-sm); border: 1px solid; font-family: var(--font-sans); font-size: var(--text-sm); margin-bottom: var(--s-4); }
body.theme-v2 .banner-info { background: var(--info-100); border-color: var(--info-600); color: var(--info-700); }
body.theme-v2 .banner-ok { background: var(--ok-100); border-color: var(--ok-600); color: var(--ok-700); }
body.theme-v2 .banner-warn { background: var(--warn-100); border-color: var(--warn-600); color: var(--warn-700); }
body.theme-v2 .banner-err { background: var(--err-100); border-color: var(--err-600); color: var(--err-700); }

/* === ICONOS SVG === */
body.theme-v2 .icon { width: 18px; height: 18px; stroke: currentColor; fill: none; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; vertical-align: middle; flex-shrink: 0; }
body.theme-v2 .icon-sm { width: 14px; height: 14px; }
body.theme-v2 .icon-lg { width: 24px; height: 24px; }
body.theme-v2 .icon-xl { width: 32px; height: 32px; }

/* === HERO EDITORIAL === */
body.theme-v2 .hero-editorial { background: var(--ink-50); padding: var(--s-9) 0 var(--s-8); }
body.theme-v2 .hero-editorial .hero-inner { display: grid; grid-template-columns: 1.4fr 1fr; gap: var(--s-7); align-items: center; max-width: var(--container-wide); margin: 0 auto; padding: 0 var(--s-6); }
body.theme-v2 .hero-editorial .h1-hero { font-size: clamp(36px, 5vw, 64px); }
body.theme-v2 .hero-editorial .sabio-wrap { display: flex; justify-content: center; align-items: center; }
@media (max-width: 900px) { body.theme-v2 .hero-editorial .hero-inner { grid-template-columns: 1fr; } body.theme-v2 .hero-editorial .sabio-wrap { display: none; } }

/* === SECCIONES === */
body.theme-v2 .section { padding: var(--s-8) 0; }
body.theme-v2 .section.tight { padding: var(--s-6) 0; }
body.theme-v2 .section-header { margin-bottom: var(--s-6); max-width: 720px; }
body.theme-v2 .section-header.centered { margin-left: auto; margin-right: auto; text-align: center; }

/* === ANIMACIONES === */
body.theme-v2 .fade-in { animation: idea-fade-in var(--dur-3) var(--ease-emphasized) both; }
body.theme-v2 .cascada > * { animation: idea-cascada var(--dur-3) var(--ease-emphasized) both; opacity: 0; }
body.theme-v2 .cascada > *:nth-child(1) { animation-delay: 60ms; }
body.theme-v2 .cascada > *:nth-child(2) { animation-delay: 140ms; }
body.theme-v2 .cascada > *:nth-child(3) { animation-delay: 220ms; }
body.theme-v2 .cascada > *:nth-child(4) { animation-delay: 300ms; }
body.theme-v2 .cascada > *:nth-child(5) { animation-delay: 380ms; }
body.theme-v2 .cascada > *:nth-child(6) { animation-delay: 460ms; }
@keyframes idea-fade-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
@keyframes idea-cascada { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }

/* === UTILIDADES === */
body.theme-v2 .text-ink-900 { color: var(--ink-900); }
body.theme-v2 .text-ink-700 { color: var(--ink-700); }
body.theme-v2 .text-ink-500 { color: var(--ink-500); }
body.theme-v2 .text-brand { color: var(--brand-600); }
body.theme-v2 .text-gold { color: var(--gold-600); }
body.theme-v2 .bg-paper { background: var(--paper); }
body.theme-v2 .bg-ink-50 { background: var(--ink-50); }
body.theme-v2 .hairline { border-color: var(--ink-200); }
body.theme-v2 .divider { height: 1px; background: var(--ink-200); margin: var(--s-5) 0; border: none; }

/* === HERO RICH (composición visual densa) === */
body.theme-v2 .hero-rich { position: relative; background: linear-gradient(180deg, var(--ink-50) 0%, var(--paper) 100%); padding: var(--s-9) 0 var(--s-8); overflow: hidden; }
body.theme-v2 .hero-rich::before { content: ''; position: absolute; top: -200px; right: -200px; width: 700px; height: 700px; background: radial-gradient(circle, rgba(199,22,60,0.06) 0%, transparent 70%); border-radius: 50%; pointer-events: none; }
body.theme-v2 .hero-rich::after { content: ''; position: absolute; bottom: -150px; left: -150px; width: 500px; height: 500px; background: radial-gradient(circle, rgba(184,134,26,0.05) 0%, transparent 70%); border-radius: 50%; pointer-events: none; }
body.theme-v2 .hero-rich .hero-inner { position: relative; z-index: 2; display: grid; grid-template-columns: 1.3fr 1fr; gap: var(--s-7); align-items: center; max-width: var(--container-wide); margin: 0 auto; padding: 0 var(--s-6); }
body.theme-v2 .hero-rich .h1-hero { font-size: clamp(40px, 5.5vw, 72px); margin-bottom: var(--s-5); }
body.theme-v2 .hero-rich .hero-badge { display: inline-flex; align-items: center; gap: var(--s-2); background: var(--paper); border: 1px solid var(--ink-200); padding: 6px 14px; border-radius: var(--r-full); font-family: var(--font-sans); font-size: var(--text-xs); font-weight: 500; color: var(--ink-700); margin-bottom: var(--s-4); box-shadow: var(--shadow-xs); }
body.theme-v2 .hero-rich .hero-badge .dot { width: 6px; height: 6px; border-radius: 50%; background: var(--ok-600); animation: pulse-dot 2s ease-in-out infinite; }
@keyframes pulse-dot { 0%, 100% { opacity: 1; transform: scale(1); } 50% { opacity: 0.5; transform: scale(1.4); } }
body.theme-v2 .hero-rich .hero-visual { position: relative; display: flex; align-items: center; justify-content: center; min-height: 420px; }
body.theme-v2 .hero-rich .hero-visual-bg { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; }
body.theme-v2 .hero-rich .visual-card { position: absolute; background: var(--paper); border: 1px solid var(--ink-200); border-radius: var(--r-md); padding: var(--s-4); box-shadow: var(--shadow-md); font-family: var(--font-sans); }
body.theme-v2 .hero-rich .visual-card.vc-1 { top: 20px; left: 0; width: 220px; transform: rotate(-3deg); animation: float-card 6s ease-in-out infinite; }
body.theme-v2 .hero-rich .visual-card.vc-2 { bottom: 30px; right: 0; width: 240px; transform: rotate(2deg); animation: float-card 7s ease-in-out infinite 1s; }
body.theme-v2 .hero-rich .visual-card.vc-3 { top: 50%; left: 30%; width: 180px; transform: translateY(-50%) rotate(1deg); animation: float-card 8s ease-in-out infinite 0.5s; z-index: 2; }
@keyframes float-card { 0%, 100% { transform: translateY(0) rotate(var(--rot, 0deg)); } 50% { transform: translateY(-8px) rotate(var(--rot, 0deg)); } }
body.theme-v2 .hero-rich .vc-label { font-size: 10px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--ink-500); font-weight: 600; margin-bottom: 4px; }
body.theme-v2 .hero-rich .vc-valor { font-family: var(--font-serif); font-size: var(--text-xl); font-weight: 500; color: var(--ink-900); line-height: 1; margin-bottom: 4px; }
body.theme-v2 .hero-rich .vc-mini { display: flex; gap: 3px; margin-top: 8px; }
body.theme-v2 .hero-rich .vc-mini span { height: 6px; flex: 1; border-radius: 2px; background: var(--ink-100); }
body.theme-v2 .hero-rich .sabio-center { position: relative; z-index: 3; }
@media (max-width: 900px) { body.theme-v2 .hero-rich .hero-inner { grid-template-columns: 1fr; } body.theme-v2 .hero-rich .hero-visual { display: none; } }

/* === STATS BAND === */
body.theme-v2 .stats-band { background: var(--paper); border-top: 1px solid var(--ink-200); border-bottom: 1px solid var(--ink-200); padding: var(--s-7) 0; }
body.theme-v2 .stats-band .stats-inner { max-width: var(--container-wide); margin: 0 auto; padding: 0 var(--s-6); display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--s-5); }
body.theme-v2 .stats-band .stat-item { text-align: center; padding: 0 var(--s-4); border-right: 1px solid var(--ink-200); }
body.theme-v2 .stats-band .stat-item:last-child { border-right: none; }
body.theme-v2 .stats-band .stat-valor { font-family: var(--font-serif); font-size: var(--text-3xl); font-weight: 400; color: var(--ink-900); line-height: 1; letter-spacing: -0.02em; font-variation-settings: 'opsz' 96; font-variant-numeric: tabular-nums lining-nums; margin-bottom: var(--s-2); }
body.theme-v2 .stats-band .stat-valor em { font-style: italic; color: var(--brand-600); }
body.theme-v2 .stats-band .stat-label { font-family: var(--font-sans); font-size: var(--text-xs); font-weight: 600; text-transform: uppercase; letter-spacing: 0.08em; color: var(--ink-500); }
body.theme-v2 .stats-band .stat-helper { font-family: var(--font-sans); font-size: var(--text-xs); color: var(--ink-400); margin-top: 4px; }
@media (max-width: 768px) { body.theme-v2 .stats-band .stats-inner { grid-template-columns: repeat(2, 1fr); gap: var(--s-5); } body.theme-v2 .stats-band .stat-item { border-right: none; border-bottom: 1px solid var(--ink-200); padding-bottom: var(--s-4); } }

/* === SECCIÓN DARK DE CONTRASTE === */
body.theme-v2 .section-dark { background: var(--ink-900); color: var(--ink-100); padding: var(--s-9) 0; position: relative; overflow: hidden; }
body.theme-v2 .section-dark::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 1px; background: linear-gradient(90deg, transparent, var(--gold-600), transparent); }
body.theme-v2 .section-dark .h2 { color: var(--ink-50); }
body.theme-v2 .section-dark .lead { color: var(--ink-300); }
body.theme-v2 .section-dark .eyebrow { color: var(--gold-500); }
body.theme-v2 .section-dark .quote-editorial { font-family: var(--font-serif); font-style: italic; font-size: clamp(28px, 3.5vw, 44px); font-weight: 400; line-height: 1.3; letter-spacing: -0.015em; color: var(--ink-50); max-width: 980px; margin: 0 auto; text-align: center; }
body.theme-v2 .section-dark .quote-editorial em { color: var(--gold-500); font-style: italic; }
body.theme-v2 .section-dark .quote-attribution { font-family: var(--font-sans); font-size: var(--text-sm); color: var(--ink-300); text-align: center; margin-top: var(--s-5); letter-spacing: 0.02em; }
body.theme-v2 .section-dark .quote-attribution .name { color: var(--gold-500); font-weight: 600; }

/* === FASE RICH CARD === */
body.theme-v2 .fase-rich { position: relative; background: var(--paper); border: 1px solid var(--ink-200); border-radius: var(--r-lg); padding: 0; overflow: hidden; transition: all var(--dur-2); box-shadow: var(--shadow-xs); display: flex; flex-direction: column; min-height: 480px; }
body.theme-v2 .fase-rich:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); border-color: var(--ink-300); }
body.theme-v2 .fase-rich .fase-header { padding: var(--s-5) var(--s-5) var(--s-4); border-bottom: 1px solid var(--ink-200); position: relative; }
body.theme-v2 .fase-rich.f-1 .fase-header { background: linear-gradient(180deg, var(--brand-50), var(--paper)); }
body.theme-v2 .fase-rich.f-2 .fase-header { background: linear-gradient(180deg, var(--gold-50), var(--paper)); }
body.theme-v2 .fase-rich.f-3 .fase-header { background: linear-gradient(180deg, #E8F5EE, var(--paper)); }
body.theme-v2 .fase-rich .fase-numero { font-family: var(--font-serif); font-size: 84px; font-weight: 300; line-height: 1; letter-spacing: -0.04em; font-variation-settings: 'opsz' 144, 'SOFT' 30; position: absolute; top: var(--s-3); right: var(--s-5); opacity: 0.18; font-style: italic; }
body.theme-v2 .fase-rich.f-1 .fase-numero { color: var(--brand-600); }
body.theme-v2 .fase-rich.f-2 .fase-numero { color: var(--gold-600); }
body.theme-v2 .fase-rich.f-3 .fase-numero { color: var(--ok-600); }
body.theme-v2 .fase-rich .fase-momento { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; background: var(--paper); border: 1px solid var(--ink-200); border-radius: var(--r-full); font-family: var(--font-sans); font-size: 10.5px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.08em; color: var(--ink-700); margin-bottom: var(--s-3); }
body.theme-v2 .fase-rich .fase-momento .dot-m { width: 6px; height: 6px; border-radius: 50%; }
body.theme-v2 .fase-rich.f-1 .fase-momento .dot-m { background: var(--brand-600); }
body.theme-v2 .fase-rich.f-2 .fase-momento .dot-m { background: var(--gold-600); }
body.theme-v2 .fase-rich.f-3 .fase-momento .dot-m { background: var(--ok-600); }
body.theme-v2 .fase-rich .fase-titulo { font-family: var(--font-serif); font-size: var(--text-xl); font-weight: 500; color: var(--ink-900); margin: 0 0 4px 0; line-height: var(--lh-snug); letter-spacing: -0.01em; }
body.theme-v2 .fase-rich .fase-eslogan { font-family: var(--font-serif); font-style: italic; font-size: var(--text-sm); color: var(--ink-500); }
body.theme-v2 .fase-rich .fase-body { padding: var(--s-5); flex: 1; display: flex; flex-direction: column; gap: var(--s-4); }
body.theme-v2 .fase-rich .fase-desc { font-family: var(--font-sans); font-size: var(--text-sm); color: var(--ink-700); line-height: var(--lh-relaxed); margin: 0; }
body.theme-v2 .fase-rich .fase-entregables { display: flex; flex-direction: column; gap: var(--s-2); margin-top: auto; padding-top: var(--s-4); border-top: 1px dashed var(--ink-200); }
body.theme-v2 .fase-rich .fase-entregables-label { font-family: var(--font-sans); font-size: 10px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.08em; color: var(--ink-500); margin-bottom: 2px; }
body.theme-v2 .fase-rich .fase-entregables ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 6px; }
body.theme-v2 .fase-rich .fase-entregables li { display: flex; align-items: flex-start; gap: 8px; font-family: var(--font-sans); font-size: var(--text-sm); color: var(--ink-700); }
body.theme-v2 .fase-rich .fase-entregables li svg { width: 14px; height: 14px; flex-shrink: 0; margin-top: 3px; }
body.theme-v2 .fase-rich.f-1 .fase-entregables li svg { stroke: var(--brand-600); }
body.theme-v2 .fase-rich.f-2 .fase-entregables li svg { stroke: var(--gold-600); }
body.theme-v2 .fase-rich.f-3 .fase-entregables li svg { stroke: var(--ok-600); }

/* === ROLES SECTION === */
body.theme-v2 .roles-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--s-4); }
@media (max-width: 1024px) { body.theme-v2 .roles-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { body.theme-v2 .roles-grid { grid-template-columns: 1fr; } }
body.theme-v2 .rol-card { background: var(--paper); border: 1px solid var(--ink-200); border-radius: var(--r-md); padding: var(--s-5); display: flex; flex-direction: column; gap: var(--s-3); transition: all var(--dur-2); position: relative; }
body.theme-v2 .rol-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); border-color: var(--ink-300); }
body.theme-v2 .rol-card .rol-icon-wrap { width: 48px; height: 48px; border-radius: var(--r-md); display: flex; align-items: center; justify-content: center; }
body.theme-v2 .rol-card.r-est .rol-icon-wrap { background: var(--brand-100); color: var(--brand-600); }
body.theme-v2 .rol-card.r-doc .rol-icon-wrap { background: var(--gold-100); color: var(--gold-700); }
body.theme-v2 .rol-card.r-dir .rol-icon-wrap { background: var(--info-100); color: var(--info-600); }
body.theme-v2 .rol-card.r-fun .rol-icon-wrap { background: #E8F5EE; color: var(--ok-600); }
body.theme-v2 .rol-card .rol-titulo { font-family: var(--font-serif); font-size: var(--text-md); font-weight: 500; color: var(--ink-900); margin: 0; }
body.theme-v2 .rol-card .rol-desc { font-family: var(--font-sans); font-size: var(--text-xs); color: var(--ink-500); line-height: var(--lh-relaxed); margin: 0; }
body.theme-v2 .rol-card .rol-cta { font-family: var(--font-sans); font-size: var(--text-xs); font-weight: 600; color: var(--brand-600); text-decoration: none; margin-top: auto; display: inline-flex; align-items: center; gap: 4px; }
body.theme-v2 .rol-card .rol-cta:hover { gap: 8px; }

/* === LOGOS / INSTITUCIONES BAND === */
body.theme-v2 .logos-band { background: var(--ink-50); padding: var(--s-7) 0; }
body.theme-v2 .logos-band .logos-label { text-align: center; font-family: var(--font-sans); font-size: var(--text-xs); font-weight: 600; text-transform: uppercase; letter-spacing: 0.12em; color: var(--ink-500); margin-bottom: var(--s-5); }
body.theme-v2 .logos-band .logos-list { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: var(--s-6); max-width: var(--container-wide); margin: 0 auto; padding: 0 var(--s-6); }
body.theme-v2 .logos-band .inst-pill { display: inline-flex; align-items: center; gap: var(--s-2); padding: var(--s-3) var(--s-4); background: var(--paper); border: 1px solid var(--ink-200); border-radius: var(--r-md); font-family: var(--font-serif); font-size: var(--text-sm); font-weight: 500; color: var(--ink-900); box-shadow: var(--shadow-xs); }
body.theme-v2 .logos-band .inst-pill .inst-mark { width: 28px; height: 28px; border-radius: var(--r-sm); background: var(--brand-50); color: var(--brand-600); display: flex; align-items: center; justify-content: center; font-family: var(--font-sans); font-weight: 700; font-size: 11px; letter-spacing: 0.04em; }
body.theme-v2 .logos-band .inst-pill .inst-meta { font-family: var(--font-sans); font-size: 11px; color: var(--ink-500); font-weight: 400; display: block; }

/* === FOOTER RICH MULTICOLUMNA === */
body.theme-v2 .footer-rich { background: var(--paper); border-top: 1px solid var(--ink-200); padding: var(--s-8) 0 var(--s-5); }
body.theme-v2 .footer-rich .footer-inner { max-width: var(--container-wide); margin: 0 auto; padding: 0 var(--s-6); display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: var(--s-6); }
@media (max-width: 900px) { body.theme-v2 .footer-rich .footer-inner { grid-template-columns: 1fr 1fr; } }
@media (max-width: 540px) { body.theme-v2 .footer-rich .footer-inner { grid-template-columns: 1fr; } }
body.theme-v2 .footer-rich .footer-brand img { height: 40px; margin-bottom: var(--s-3); }
body.theme-v2 .footer-rich .footer-brand .footer-tag { font-family: var(--font-serif); font-size: var(--text-sm); font-style: italic; color: var(--ink-500); line-height: var(--lh-relaxed); max-width: 280px; }
body.theme-v2 .footer-rich .footer-col h4 { font-family: var(--font-sans); font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.08em; color: var(--ink-500); margin: 0 0 var(--s-3) 0; }
body.theme-v2 .footer-rich .footer-col ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: var(--s-2); }
body.theme-v2 .footer-rich .footer-col a { font-family: var(--font-sans); font-size: var(--text-sm); color: var(--ink-700); text-decoration: none; transition: color var(--dur-1); }
body.theme-v2 .footer-rich .footer-col a:hover { color: var(--brand-600); }
body.theme-v2 .footer-rich .footer-bottom { max-width: var(--container-wide); margin: var(--s-6) auto 0; padding: var(--s-5) var(--s-6) 0; border-top: 1px solid var(--ink-200); display: flex; justify-content: space-between; align-items: center; gap: var(--s-4); flex-wrap: wrap; font-family: var(--font-sans); font-size: var(--text-xs); color: var(--ink-500); }
body.theme-v2 .footer-rich .footer-bottom a { color: var(--ink-700); text-decoration: none; }
body.theme-v2 .footer-rich .footer-bottom a:hover { color: var(--brand-600); }

/* === DIVIDER ORNAMENTAL === */
body.theme-v2 .divider-ornament { display: flex; align-items: center; justify-content: center; gap: var(--s-3); margin: var(--s-6) 0; }
body.theme-v2 .divider-ornament::before, body.theme-v2 .divider-ornament::after { content: ''; height: 1px; flex: 1; max-width: 80px; background: var(--ink-300); }
body.theme-v2 .divider-ornament .ornament-mark { width: 8px; height: 8px; border-radius: 50%; background: var(--gold-500); }

/* === PRINT === */
@media print {
  body.theme-v2 { background: white; }
  body.theme-v2 .idea-header, body.theme-v2 .idea-footer, body.theme-v2 .idea-sidebar, body.theme-v2 .no-print { display: none !important; }
  body.theme-v2 .card-premium { box-shadow: none; border: 1px solid var(--ink-300); page-break-inside: avoid; }
}
