/* ==========================================================================
   i2-bloques.css — los cuatro bloques traídos de /index2/

   Qué son: «Antes, durante y después» (#ecosistema), «Todo conectado»
   (#todo-conectado), «CEM · una nueva categoría» (#cem) y «Marca blanca»
   (#marca-blanca). Van entre el hero y «Próximos eventos».

   POR QUÉ TODO CUELGA DE `.i2`
   index2 nombra sus clases con el mismo prefijo `v2-` que ya usa la home para
   los trasplantes de index12 (`.v2-section`, `.v2-title`, `.v2-btn`, `.v2-inner`…),
   pero con otros valores. En index2 esas reglas van sin scope; traerlas así
   repintaría las islas que ya existen —el hero, el Plan Lite+, las reseñas y el
   CTA final—, porque hero-n7.css no redefine todas las propiedades.

   Por eso los cuatro bloques viven dentro de `<div class="i2">` y cada regla de
   acá arranca con `.i2 `. Es el mismo recurso que usa hero-n7.css con
   `.n7-isla` para encerrar los tokens de index12: cada dialecto de `v2-` queda
   en su corral y no se pisan.

   Lo que NO está acá, a propósito:
     - `.cem-panel`, `.cem-lockup`, `.cem-acr`… ya viven en home.css (quedaron
       del panel CEM viejo, que se había quitado del HTML pero no del CSS).
     - `.section-title-small`, `.sh-word`, `.shimmer-trigger` son de la home.

   Generado a partir de index2/index2.css: se tomaron sólo las reglas cuyos
   selectores usan clases presentes en estos cuatro bloques.
   ========================================================================== */


.i2 .v2-section { padding: 4.5rem 2rem; background: var(--bg-primary); }
.i2 .v2-section.alt { background: var(--bg-secondary); border-top: 1px solid var(--border-light); border-bottom: 1px solid var(--border-light); }
.i2 .v2-inner { max-width: 1200px; margin: 0 auto; }
.i2 .v2-head { max-width: 780px; margin: 0 auto 2.5rem; text-align: center; }
.i2 .v2-head .section-title-small { margin-bottom: 0.5rem; }
.i2 .v2-title { font-family: var(--font-display); font-size: clamp(1.7rem, 3.1vw, 2.5rem); font-weight: 500; line-height: 1.15; letter-spacing: -0.01em; color: var(--text-primary); margin: 0 0 0.9rem; }
.i2 .v2-title--big { font-size: clamp(2rem, 4vw, 3.1rem); font-weight: 600; line-height: 1.12; }
.i2 .v2-lead { font-size: 1.08rem; line-height: 1.65; color: var(--text-secondary); margin: 0 auto; max-width: 720px; }
.i2 .v2-btn { display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; padding: 0.85rem 1.7rem; border-radius: 999px; font-family: var(--font-display); font-size: 1rem; font-weight: 600; line-height: 1.1; text-decoration: none; border: 1.5px solid transparent; cursor: pointer; transition: background 0.3s ease, color 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease; }
.i2 .v2-btn--primary { background: var(--accent); color: #fff; border-color: var(--accent); }
.i2 .v2-btn--primary:hover { background: var(--accent-dark); border-color: var(--accent-dark); transform: translateY(-2px); box-shadow: 0 8px 20px rgba(139, 114, 87, 0.32); color: #fff; }
.i2 .v2-btn--ghost { background: transparent; color: var(--accent-dark); border-color: rgba(139, 114, 87, 0.45); }
.i2 .v2-btn--ghost:hover { background: rgba(139, 114, 87, 0.08); border-color: var(--accent); transform: translateY(-2px); color: var(--accent-dark); }
.i2 .v2-list { list-style: none; margin: 1.25rem 0 0; padding: 0; display: grid; gap: 0.6rem; }
.i2 .v2-list li { position: relative; padding-left: 1.6rem; color: var(--text-secondary); line-height: 1.55; font-size: 0.97rem; }
.i2 .v2-list li::before { content: ''; position: absolute; left: 0; top: 0.55em; width: 0.7rem; height: 0.7rem; border-radius: 50%; background: var(--accent); opacity: 0.85; }
.i2 .v2-list li strong { color: var(--text-primary); }
.i2 .v2-chips { list-style: none; margin: 1rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.45rem; }
.i2 .v2-chips a { display: inline-block; padding: 0.38rem 0.8rem; border-radius: 999px; background: var(--bg-secondary); border: 1px solid var(--border); color: var(--text-primary); font-size: 0.82rem; font-weight: 500; text-decoration: none; transition: border-color 0.25s ease, background 0.25s ease, color 0.25s ease, transform 0.25s ease; }
.i2 .v2-chips a:hover { border-color: var(--accent); background: var(--accent-soft); color: var(--accent-dark); transform: translateY(-1px); }
.i2 .v2-adp-grid { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr; gap: 1rem; align-items: stretch; }
.i2 .v2-adp-block { background: var(--bg-secondary); border: 1px solid var(--border-light); border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-card); display: flex; flex-direction: column; transition: transform 0.35s ease, box-shadow 0.35s ease; }
.i2 .v2-adp-block:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }
.i2 .v2-adp-media { position: relative; aspect-ratio: 16 / 10; overflow: hidden; }
.i2 .v2-adp-media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.6s ease; }
.i2 .v2-adp-block:hover .v2-adp-media img { transform: scale(1.04); }
.i2 .v2-adp-num { position: absolute; left: 1rem; top: 1rem; width: 2.4rem; height: 2.4rem; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: rgba(255,255,255,0.94); color: var(--accent-dark); font-family: var(--font-display); font-weight: 700; font-size: 0.95rem; box-shadow: var(--shadow-sm); }
.i2 .v2-adp-body { padding: 1.4rem 1.5rem 1.6rem; display: flex; flex-direction: column; flex: 1; }
.i2 .v2-adp-phase { font-size: 0.75rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--accent); margin-bottom: 0.4rem; }
.i2 .v2-adp-body h3 { font-family: var(--font-display); font-size: 1.35rem; font-weight: 600; line-height: 1.2; margin: 0 0 0.6rem; }
.i2 .v2-adp-body p { color: var(--text-secondary); font-size: 0.95rem; line-height: 1.6; margin: 0; }
.i2 .v2-adp-body .v2-chips { margin-top: auto; padding-top: 1rem; }
.i2 .v2-adp-arrow { display: flex; align-items: center; justify-content: center; color: var(--accent); width: 2.2rem; }
.i2 .v2-adp-arrow svg { width: 2rem; height: 2rem; animation: v2-nudge 2.4s ease-in-out infinite; }
.i2 .v2-adp-closing { margin: 2.5rem auto 0; text-align: center; font-family: var(--font-display); font-size: clamp(1.25rem, 2.2vw, 1.7rem); font-weight: 600; line-height: 1.3; max-width: 760px; }
.i2 .v2-flow-track { list-style: none; margin: 0; padding: 0; counter-reset: paso; display: grid; grid-template-columns: repeat(7, 1fr); gap: 0.75rem; position: relative; }
.i2 .v2-flow-track::before { content: ''; position: absolute; left: 4%; right: 4%; top: 3.1rem; height: 2px; background: linear-gradient(90deg, var(--accent-light), var(--accent), var(--accent-light)); background-size: 200% 100%; animation: v2-flujo 3.5s linear infinite; z-index: 0; }
.i2 .v2-flow-node { position: relative; z-index: 1; }
.i2 .v2-flow-card { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 0.35rem; text-decoration: none; color: var(--text-primary); padding: 0.25rem 0.25rem 0.5rem; border-radius: var(--radius-md); transition: transform 0.3s ease; }
.i2 .v2-flow-card:hover { transform: translateY(-4px); }
.i2 .v2-flow-thumb { width: 6.2rem; height: 6.2rem; border-radius: 50%; overflow: hidden; display: block; border: 4px solid var(--bg-secondary); box-shadow: 0 6px 18px rgba(0,0,0,0.12); background: var(--bg-primary); }
.i2 .v2-flow-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.i2 .v2-flow-step { font-size: 0.68rem; font-weight: 700; letter-spacing: 0.14em; color: var(--accent); margin-top: 0.35rem; }
.i2 .v2-flow-card strong { font-family: var(--font-display); font-size: 1.05rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; }
.i2 .v2-flow-desc { font-size: 0.8rem; line-height: 1.45; color: var(--text-secondary); max-width: 150px; }
.i2 .v2-flow-foot { margin-top: 2.5rem; text-align: center; }
.i2 .v2-flow-foot p { max-width: 720px; margin: 0 auto 1.25rem; color: var(--text-secondary); font-size: 1rem; line-height: 1.6; }
.i2 .v2-triad { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; max-width: 960px; margin: 0 auto 2.5rem; }
.i2 .v2-triad-item { text-align: center; padding: 1.4rem 1rem 1.3rem; border-radius: var(--radius-md); background: var(--bg-secondary); border: 1px solid var(--border-light); }
.i2 .v2-triad-acr { display: block; font-family: var(--font-display); font-size: 2.2rem; font-weight: 700; line-height: 1; color: var(--text-muted); letter-spacing: -0.01em; margin-bottom: 0.45rem; }
.i2 .v2-triad-item p { margin: 0; color: var(--text-secondary); font-size: 0.95rem; }
.i2 .v2-triad-item.is-cem { border-color: var(--accent); background: var(--accent-soft); box-shadow: 0 10px 28px rgba(139, 114, 87, 0.16); transform: scale(1.03); }
.i2 .v2-triad-item.is-cem .v2-triad-acr { color: var(--accent); }
.i2 .v2-triad-item.is-cem p { color: var(--text-primary); font-weight: 600; }
.i2 .cem-panel.v2-cem-panel { margin: 0 auto; max-width: 1200px; gap: 2.5rem; padding: 2.25rem 2.5rem; background: var(--bg-secondary); }
.i2 .v2-cem-panel .cem-text { flex: 0 1 470px; }
.i2 .v2-cem-note { font-size: 0.95rem; color: var(--text-secondary); line-height: 1.6; margin: 1rem 0 0; }
.i2 .v2-cem-ctas { display: flex; flex-wrap: wrap; gap: 0.7rem; margin-top: 1.4rem; }
.i2 .v2-orbit { position: relative; flex: 1; min-width: 0; width: 100%; aspect-ratio: 1 / 1; max-width: 520px; margin: 0 auto; container-type: inline-size; --r: 13rem; }
.i2 .v2-orbit::before { content: ''; position: absolute; inset: 9%; border-radius: 50%; border: 1.5px dashed rgba(139, 114, 87, 0.4); animation: v2-girar 60s linear infinite; }
.i2 .v2-orbit-core { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 34%; aspect-ratio: 1 / 1; border-radius: 50%; display: flex; flex-direction: column; align-items: center; justify-content: center; background: var(--accent); color: #fff; box-shadow: 0 16px 36px rgba(139, 114, 87, 0.4); }
.i2 .v2-orbit-core span { font-family: var(--font-display); font-size: clamp(1.6rem, 3.6vw, 2.6rem); font-weight: 700; line-height: 1; }
.i2 .v2-orbit-core small { font-size: 0.7rem; letter-spacing: 0.16em; text-transform: uppercase; opacity: 0.9; margin-top: 0.3rem; }
.i2 .v2-orbit-chip { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%) rotate(calc(var(--i) * 45deg)) translateY(calc(-1 * var(--r))) rotate(calc(var(--i) * -45deg)); display: flex; flex-direction: column; align-items: center; gap: 0.3rem; width: 6rem; text-decoration: none; color: var(--text-primary); text-align: center; }
.i2 .v2-orbit-chip img { width: 4.1rem; height: 4.1rem; border-radius: 50%; object-fit: cover; display: block; border: 3px solid var(--bg-secondary); box-shadow: 0 6px 16px rgba(0,0,0,0.14); transition: transform 0.3s ease; }
.i2 .v2-orbit-chip:hover img { transform: scale(1.1); }
.i2 .v2-orbit-chip span { font-size: 0.72rem; font-weight: 600; line-height: 1.2; background: rgba(255,255,255,0.9); padding: 0.15rem 0.4rem; border-radius: 6px; }
.i2 .v2-marca-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 3rem; align-items: center; }
.i2 .v2-marca-text .section-title-small { margin-bottom: 0.6rem; }
.i2 .v2-marca-text .v2-lead { margin: 0; }
.i2 .v2-bridge { position: relative; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 1rem; padding: 2rem 1.5rem 3.4rem; border-radius: var(--radius-lg); background: var(--bg-primary); border: 1px solid var(--border-light); }
.i2 .v2-bridge-end { display: flex; flex-direction: column; align-items: center; gap: 0.5rem; text-align: center; }
.i2 .v2-bridge-end svg { width: 3.4rem; height: 3.4rem; padding: 0.8rem; border-radius: 50%; background: var(--bg-secondary); color: var(--accent-dark); box-shadow: var(--shadow-sm); border: 1px solid var(--border-light); }
.i2 .v2-bridge-end span { font-family: var(--font-display); font-weight: 700; font-size: 1.05rem; letter-spacing: 0.06em; text-transform: uppercase; }
.i2 .v2-bridge-end.is-empresa svg { background: var(--accent); color: #fff; border-color: var(--accent); }
.i2 .v2-bridge-link { display: flex; align-items: center; gap: 0.35rem; color: var(--accent); }
.i2 .v2-bridge-link i { display: block; width: 2.4rem; height: 2px; background: var(--accent); opacity: 0.6; }
.i2 .v2-bridge-link b { font-size: 2.1rem; line-height: 1; font-weight: 400; font-family: var(--font-body); }
.i2 .v2-bridge-under { position: absolute; left: 50%; bottom: 0.7rem; transform: translateX(-50%); text-align: center; white-space: nowrap; color: var(--text-muted); }
.i2 .v2-bridge-under span { display: block; font-family: var(--font-display); font-weight: 600; font-size: 0.95rem; opacity: 0.55; letter-spacing: 0.02em; }
.i2 .v2-bridge-under small { font-size: 0.7rem; letter-spacing: 0.08em; text-transform: uppercase; opacity: 0.8; }
.i2 .v2-marca-examples { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.75rem; margin-top: 1rem; }
.i2 .v2-marca-examples figure { margin: 0; }
.i2 .v2-marca-examples img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--radius-sm); display: block; box-shadow: var(--shadow-sm); }
.i2 .v2-marca-examples figcaption { font-size: 0.75rem; color: var(--text-muted); text-align: center; margin-top: 0.35rem; }
.i2 .v2-marca-closing { margin: 2.5rem auto 0; text-align: center; font-family: var(--font-display); font-size: clamp(1.25rem, 2.2vw, 1.7rem); font-weight: 600; }
.i2 .v2-costos-text .v2-lead { margin: 0 0 1.5rem; }
.i2 .v2-escala-detail .v2-list { margin-top: 0; }
.i2 .v2-lite-head .v2-title { margin-bottom: 0.5rem; }
.i2 .v2-cem4-body .v2-chips { margin-top: auto; padding-top: 0.9rem; }
.i2 .v2-plan .v2-btn { padding: 0.65rem 0.75rem; font-size: 0.88rem; margin-top: auto; }
.i2 .v2-final .v2-lead { margin-bottom: 1.75rem; }

/* Animaciones que usan las reglas de arriba. Los nombres de @keyframes
   son globales, no llevan el prefijo .i2; van con el suyo de index2. */
@keyframes v2-flujo {
    from { background-position: 100% 0; }
    to { background-position: -100% 0; }
}

@keyframes v2-girar {
    to { transform: rotate(360deg); }
}

@keyframes v2-nudge {
    0%, 100% { transform: translateX(0); opacity: 0.75; }
    50% { transform: translateX(5px); opacity: 1; }
}

@media (max-width: 480px) {
    .i2 .v2-hero-ctas .v2-btn { width: 100%; }
}

@media (max-width: 1024px) {
    .i2 .v2-adp-grid { grid-template-columns: 1fr; }
    .i2 .v2-adp-arrow { width: auto; height: 2.5rem; }
    .i2 .v2-adp-arrow svg { transform: rotate(90deg); animation: none; }
}

@media (max-width: 1100px) {
    .i2 .v2-flow-track { grid-template-columns: repeat(4, 1fr); row-gap: 1.5rem; }
    .i2 .v2-flow-track::before { display: none; }
}

@media (max-width: 640px) {
    .i2 .v2-flow-track { grid-template-columns: repeat(2, 1fr); }
    .i2 .v2-flow-thumb { width: 5.2rem; height: 5.2rem; }
}

@media (max-width: 768px) {
    .i2 .v2-triad { grid-template-columns: 1fr; max-width: 420px; }
    .i2 .v2-triad-item.is-cem { transform: none; }
    .i2 .cem-panel.v2-cem-panel { padding: 1.5rem; }
    .i2 .v2-orbit { max-width: 360px; --r: 8.5rem; }
    .i2 .v2-orbit-chip { width: 4.6rem; }
    .i2 .v2-orbit-chip img { width: 2.9rem; height: 2.9rem; }
    .i2 .v2-orbit-chip span { font-size: 0.62rem; }
}

@media (max-width: 960px) {
    .i2 .v2-marca-grid { grid-template-columns: 1fr; gap: 2rem; }
}

@media (max-width: 480px) {
    .i2 .v2-bridge { grid-template-columns: 1fr; padding-bottom: 3.6rem; }
    .i2 .v2-bridge-link { justify-content: center; transform: rotate(90deg); }
}

@media (max-width: 640px) {
    .i2 .v2-lite-ctas .v2-btn { width: 100%; }
}

@media (max-width: 480px) {
    .i2 .v2-final-ctas .v2-btn { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
    .i2 .v2-adp-arrow svg, .i2 .v2-flow-track::before, .i2 .v2-orbit::before { animation: none !important; }
}


/* --------------------------------------------------------------------------
   Ajustes propios de la home (no vienen de index2.css)
   -------------------------------------------------------------------------- */

/* El bloque de marca blanca perdió la clase `alt`, que en index2 le ponía una
   banda blanca con filos arriba y abajo. Sobre el gris de la home eso se leía
   como un fondo lavado, distinto del resto; ahora comparte el fondo base y el
   tramo de los cuatro bloques queda parejo.

   Como el bloque pasó a gris, el panel del puente —que usaba ese mismo gris—
   se habría desvanecido: va en blanco para seguir leyéndose como una pieza
   sobre el fondo. */
.i2 #marca-blanca .v2-bridge { background: var(--bg-secondary); }

/* --------------------------------------------------------------------------
   CTA final (version de /index3/)
   Estas reglas no habian entrado en la extraccion inicial porque sus clases no
   aparecian en los cuatro bloques de entonces. Son identicas en index2.css e
   index3.css. El degradado del final va del gris base al crema: es el cierre
   de la pagina, y hace que la transicion desde Exposiciones salga suave sin
   necesidad de los fundidos que traia el cierre anterior.
   -------------------------------------------------------------------------- */
.i2 .v2-center { text-align: center; }
.i2 .v2-btn--lg { padding: 1rem 2.2rem; font-size: 1.08rem; }
.i2 .v2-final { background: linear-gradient(180deg, var(--bg-primary) 0%, var(--accent-soft) 100%); padding-top: 5rem; padding-bottom: 5rem; }
.i2 .v2-final-ctas { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.85rem; }

@media (min-width: 1025px) {
    .i2 .v2-final { padding-top: 7rem; padding-bottom: 7rem; }
    .i2 .v2-final .v2-lead { margin-bottom: 2.25rem; }
}
@media (max-width: 480px) {
    .i2 .v2-final-ctas .v2-btn { width: 100%; }
}
