/*
Theme Name: Flatsome Child
Description: This is a child theme for Flatsome Theme
Author: UX Themes
Template: flatsome
Version: 3.0
*/

/*************** ADD CUSTOM CSS HERE.   ***************/

/* Hero de Inicio: composición editorial.
   Los tamaños se controlan desde UX Builder: "scale" del text_box
   y el % de cada span del H1; aquí solo va el estilo. */
.cg-hero-h1 { line-height: .95; letter-spacing: -.02em; margin: 0 0 .4em; }
.cg-hero-h1 > span { display: block; }
.cg-hero-h1 .cg-kicker {
	display: flex; align-items: center; gap: .9em;
	margin-bottom: 1.1em; line-height: 1.4; letter-spacing: .24em;
	font-weight: 700; text-transform: uppercase; color: var(--fs-color-primary);
}
.cg-hero-h1 .cg-kicker::before { content: ""; flex: none; width: 3.2em; height: 2px; background: currentColor; }
.cg-hero-h1 .cg-h1-main { font-weight: 700; }
.cg-hero-h1 .cg-h1-accent { min-height: 1.1em; margin-top: .1em; font-weight: 700; color: var(--fs-color-primary); }
.cg-hero-lead { max-width: 34em; margin-bottom: 1.7em; line-height: 1.55; opacity: .85; }
/* p.cg-credencial (y no solo la clase) para ganarle a ".banner p { padding: 0 }" de Flatsome. */
p.cg-credencial {
	display: flex; flex-wrap: wrap; gap: .5em 1.6em; width: fit-content;
	margin-top: 1.4em; padding-top: 5px; border-top: 1px solid rgba(255, 255, 255, .22);
	font-weight: 600; letter-spacing: .16em; text-transform: uppercase; opacity: .9;
}
.cg-credencial span { display: inline-flex; align-items: center; gap: .6em; }
.cg-credencial span::before { content: ""; width: .5em; height: .5em; border-radius: 50%; background: var(--fs-color-primary); }
.cg-hero-vertical .text-inner {
	writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;
	font-size: 11px; font-weight: 600; letter-spacing: .32em; text-transform: uppercase; opacity: .55;
}
/* Encabezado editorial reutilizable: etiqueta con línea + titular grande */
.cg-eyebrow {
	display: flex; align-items: center; gap: .8em; margin-bottom: 1em;
	font-size: .78rem; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: #1e7f61;
}
.cg-eyebrow::before { content: ""; flex: none; width: 3em; height: 2px; background: currentColor; }
.cg-display { margin: 0; line-height: 1; letter-spacing: -.025em; font-weight: 700; color: #262626; }
.cg-display em { font-style: normal; color: var(--fs-color-secondary); }
.cg-display + p { margin-top: .9em; }

/* Banda de datos del INM */
.cg-stat { padding-top: 1rem; border-top: 2px solid #262626; }
.cg-stat--empresa { border-color: var(--fs-color-secondary); }
.cg-stat--persona { border-color: var(--fs-color-primary); }
.cg-stat-top {
	display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.4rem;
	font-size: .72rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase;
}
.cg-stat-idx { color: #262626; opacity: .45; }
.cg-stat-tag { display: inline-flex; align-items: center; gap: .6em; }
.cg-stat-tag img { width: 26px; height: 26px; object-fit: contain; }
.cg-stat--empresa .cg-stat-tag, .cg-stat--empresa .cg-stat-num { color: var(--fs-color-secondary); }
.cg-stat--persona .cg-stat-tag, .cg-stat--persona .cg-stat-num { color: #1e7f61; }
.cg-stat-num { margin: 0 0 .3em; line-height: 1; font-weight: 700; letter-spacing: -.03em; }
.cg-stat-label { margin-bottom: .35em; font-size: 1rem; line-height: 1.3; color: #262626; }
.cg-stat-note { margin: 0; font-size: .85rem; color: #555; }
.cg-pullquote { margin: 0; padding-left: 1.1em; border-left: 4px solid var(--fs-color-secondary); line-height: 1.3; color: #262626; }
.cg-pullquote strong { color: var(--fs-color-secondary); }
.cg-fuente { margin: 0; padding-top: .9em; border-top: 1px solid rgba(38, 38, 38, .2); font-size: .8rem; color: #555; }
.cg-fuente b { display: block; margin-bottom: .3em; font-size: .7rem; letter-spacing: .18em; text-transform: uppercase; color: #262626; }

.cg-display em.cg-em-verde { color: #1e7f61; }

/* A quién ayudamos: puerta dividida Empresas & Personas */
.cg-door > .col { transition: flex-basis .6s cubic-bezier(.2, .7, .2, 1), max-width .6s cubic-bezier(.2, .7, .2, 1); }
.cg-door > .col:first-child { z-index: 2; }
.cg-door .col-inner { display: flex; flex-direction: column; justify-content: flex-start; align-items: flex-start; height: 100%; min-height: 560px; }
.cg-door .col-inner > * { max-width: 100%; }
.cg-door-list { width: 100%; }
.cg-door-eyebrow {
	display: flex; align-items: center; gap: .8em; margin-bottom: 1.2em;
	font-size: .75rem; font-weight: 700; letter-spacing: .22em; text-transform: uppercase;
}
.cg-door-eyebrow::before { content: ""; flex: none; width: 3em; height: 2px; background: currentColor; }
.cg-door--empresa .cg-door-eyebrow::before { background: var(--fs-color-primary); }
.cg-door-title { max-width: 15em; margin-bottom: 1em; line-height: 1.05; letter-spacing: -.02em; font-weight: 700; }
.cg-door--persona .cg-door-title, .cg-door--persona .cg-door-eyebrow { color: #262626; }
.cg-door-list { max-width: 34em; margin-bottom: 1.8em; }
.cg-door-item {
	display: grid; grid-template-columns: 2.6em 1fr auto; gap: 1em; align-items: start;
	padding: 1.1em 0; border-top: 1px solid rgba(255, 255, 255, .25); color: inherit;
	transition: padding .3s ease;
}
.cg-door-item:last-child { border-bottom: 1px solid rgba(255, 255, 255, .25); }
.cg-door--persona .cg-door-item { border-color: rgba(38, 38, 38, .25); color: #262626; }
.cg-door-item:hover, .cg-door-item:focus-visible { padding-left: .5em; color: inherit; }
.cg-door-idx { padding-top: .2em; font-size: .75rem; font-weight: 700; letter-spacing: .14em; opacity: .65; }
.cg-door-txt { font-size: .92rem; line-height: 1.5; opacity: .9; }
.cg-door-txt strong { display: block; margin-bottom: .15em; font-size: 1.15rem; opacity: 1; }
.cg-door-arrow { font-size: 1.4rem; line-height: 1; transition: transform .3s ease; }
.cg-door-item:hover .cg-door-arrow { transform: translateX(6px); }
.cg-door-amp {
	position: absolute; top: 50%; right: 0; transform: translate(50%, -50%);
	display: grid; place-items: center; width: 96px; height: 96px; border-radius: 50%;
	background: #fcfcf2; color: #262626; font-size: 46px; font-weight: 700; line-height: 1;
	box-shadow: 0 12px 32px rgba(0, 0, 0, .18);
}
@media screen and (min-width: 850px) {
	.cg-door:hover > .col { flex-basis: 45%; max-width: 45%; }
	.cg-door > .col:hover { flex-basis: 55%; max-width: 55%; }
}
@media (prefers-reduced-motion: reduce) {
	.cg-door > .col, .cg-door-item, .cg-door-arrow { transition: none; }
}

/* Soluciones para empresas: tarjetas problema → solución */
.cg-display .cg-rotador { display: block; color: var(--fs-color-secondary); }
.cg-sol-grid > .col > .col-inner { height: 100%; }
.cg-sol {
	position: relative; display: flex; flex-direction: column; height: 100%;
	padding: 1.6em 1.6em 1.4em; background: #fff; border-top: 2px solid var(--fs-color-secondary);
	box-shadow: 0 1px 0 rgba(38, 38, 38, .08);
	transition: background .35s ease, color .35s ease, transform .35s ease, box-shadow .35s ease;
}
.cg-sol-top { display: flex; justify-content: space-between; margin-bottom: 1.4em; font-size: .72rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.cg-sol-idx { opacity: .45; }
.cg-sol-tag { color: var(--fs-color-secondary); }
.cg-sol-quote { position: relative; margin: 0 0 1.2em; padding-top: .55em; font-size: 1.35rem; line-height: 1.3; font-weight: 700; letter-spacing: -.01em; color: #262626; }
.cg-sol-quote::before { content: "“"; position: absolute; top: -.3em; left: -.05em; font-size: 3em; line-height: 1; color: var(--fs-color-primary); }
.cg-sol-body { flex: 1; margin: 0 0 1.4em; padding-top: 1em; border-top: 1px solid rgba(38, 38, 38, .14); font-size: .9rem; line-height: 1.5; color: #555; }
.cg-sol-body strong { display: block; margin-bottom: .25em; font-size: 1rem; color: #262626; }
.cg-sol-link { display: inline-flex; align-items: center; gap: .5em; font-size: .85rem; font-weight: 700; color: var(--fs-color-secondary); }
.cg-sol-link::after { content: ""; position: absolute; inset: 0; }
.cg-sol-link span { transition: transform .3s ease; }
.cg-sol:hover, .cg-sol:focus-within { background: var(--fs-color-secondary); transform: translateY(-4px); box-shadow: 0 18px 40px rgba(75, 46, 131, .25); }
.cg-sol:hover .cg-sol-quote, .cg-sol:hover .cg-sol-body strong, .cg-sol:hover .cg-sol-link,
.cg-sol:focus-within .cg-sol-quote, .cg-sol:focus-within .cg-sol-body strong, .cg-sol:focus-within .cg-sol-link { color: #fcfcf2; }
.cg-sol:hover .cg-sol-body, .cg-sol:focus-within .cg-sol-body { color: rgba(252, 252, 242, .82); border-color: rgba(252, 252, 242, .25); }
.cg-sol:hover .cg-sol-tag, .cg-sol:focus-within .cg-sol-tag { color: var(--fs-color-primary); }
.cg-sol:hover .cg-sol-link span { transform: translateX(5px); }
.cg-sol:hover .cg-sol-idx, .cg-sol:focus-within .cg-sol-idx { color: #fcfcf2; opacity: .6; }
.cg-sol-cierre { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1em 2em; padding-top: 1.6em; border-top: 1px solid rgba(38, 38, 38, .2); }
.cg-sol-cierre p { max-width: 36em; margin: 0; font-size: 1.15rem; line-height: 1.4; color: #262626; }
@media (prefers-reduced-motion: reduce) { .cg-sol, .cg-sol-link span { transition: none; } .cg-sol:hover { transform: none; } }

/* Jubilados 55+: tablero "Llegadas", dato de urgencia e índice de servicios */
.cg-jubilados .col-inner > p:not([class]), .cg-jubilados .cg-confianza, .cg-jubilados .cg-urgente-txt, .cg-jubilados .cg-idx-txt { font-size: 1.125rem; }
.cg-board { padding: 1.4em 1.4em 1em; border-radius: 6px; background: #262626; color: #fcfcf2; box-shadow: 0 20px 50px rgba(38, 38, 38, .22); }
.cg-board-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: .4em 1em; margin-bottom: 1em; padding-bottom: .8em; border-bottom: 1px solid rgba(252, 252, 242, .15); }
.cg-board-title { font-size: 1.6rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--fs-color-primary); }
.cg-board-sub { font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; opacity: .6; }
.cg-board-table { width: 100%; margin: 0; border: 0; font-size: .95rem; }
.cg-board-table th, .cg-board-table td { padding: .55em .4em; border: 0; border-bottom: 1px solid rgba(252, 252, 242, .08); color: #fcfcf2; text-align: left; vertical-align: middle; }
.cg-board-table th { font-size: .68rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; opacity: .55; }
.cg-board-table tr:last-child td { border-bottom: 0; }
.cg-board-table th, .cg-board-ok { white-space: nowrap; }
.cg-board-table td:first-child { font-size: .9em; }
.cg-board-table td:nth-child(2) { font-size: .82em; font-weight: 700; letter-spacing: .14em; opacity: .75; }
.cg-board-table abbr { border: 0; text-decoration: none; cursor: help; }
.cg-board-table .cg-num { text-align: right; }
.cg-board-ok { font-size: .78rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--fs-color-primary); }
.cg-board-ok::before { content: ""; display: inline-block; width: .55em; height: .55em; margin-right: .5em; border-radius: 50%; background: currentColor; animation: cg-blink 1.6s ease-in-out infinite; }
@keyframes cg-blink { 50% { opacity: .25; } }
.cg-chips { display: flex; flex-wrap: wrap; gap: .6em; margin: 1.2em 0 .8em; }
.cg-chip { padding: .45em 1em; border: 1px solid rgba(38, 38, 38, .2); border-radius: 99px; background: #fff; font-size: .85rem; color: #262626; }
.cg-chip b { color: #1e7f61; }
.cg-urgente { display: flex; flex-direction: column; align-items: flex-start; height: 100%; padding: 1.8em; background: #fff; border-top: 2px solid var(--fs-color-primary); }
.cg-urgente .cg-door-eyebrow { color: #1e7f61; }
.cg-urgente-num { margin: 0 0 .2em; font-size: 3.4rem; font-weight: 700; line-height: 1; letter-spacing: -.03em; color: #1e7f61; }
.cg-urgente-txt { margin-bottom: 1.2em; color: #262626; }
.cg-idx-item { display: grid; grid-template-columns: 3em 1fr; gap: 1em; padding: 1.2em 0; border-top: 1px solid rgba(38, 38, 38, .15); }
.cg-idx-item:last-child { border-bottom: 1px solid rgba(38, 38, 38, .15); }
.cg-idx-num { padding-top: .25em; font-size: .78rem; font-weight: 700; letter-spacing: .14em; color: #1e7f61; }
.cg-idx-txt { line-height: 1.5; color: #444; }
.cg-idx-txt strong { display: block; margin-bottom: .2em; font-size: 1.2rem; color: #262626; }
.cg-validar { display: inline-block; margin-left: .6em; padding: .1em .6em; border: 1px dashed #b5651d; border-radius: 99px; font-size: .65rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; vertical-align: middle; color: #b5651d; }
.cg-jubilados h3.cg-display { margin-bottom: 1.1em; padding-top: .75em; border-top: 2px solid #262626; }
.cg-confianza { margin: 0 0 2em; padding: .15em 0 .15em 1.1em; border-left: 4px solid var(--fs-color-primary); line-height: 1.6; color: #262626; }
@media (prefers-reduced-motion: reduce) { .cg-board-ok::before { animation: none; } }

/* Cómo funciona: línea de tiempo en tres pasos */
.cg-pasos > .col > .col-inner { height: 100%; }
.cg-paso { position: relative; display: flex; flex-direction: column; height: 100%; padding-top: 2.2em; }
.cg-paso::before, .cg-paso::after { content: ""; position: absolute; top: 0; left: 0; height: 2px; }
.cg-paso::before { right: 0; background: rgba(38, 38, 38, .14); }
.cg-paso::after { width: 100%; background: var(--fs-color-secondary); transform-origin: left center; }
@supports (animation-timeline: view()) {
	.cg-paso::after { transform: scaleX(0); animation: cg-draw linear both; animation-timeline: view(); animation-range: entry 30% cover 40%; }
}
@keyframes cg-draw { to { transform: scaleX(1); } }
.cg-paso-node { position: absolute; top: -7px; left: 0; width: 16px; height: 16px; border: 3px solid #fcfcf2; border-radius: 50%; background: var(--fs-color-secondary); box-shadow: 0 0 0 1px var(--fs-color-secondary); }
.cg-paso-num { margin: 0 0 .25em; font-size: 5.5rem; font-weight: 700; line-height: .9; letter-spacing: -.04em; color: transparent; -webkit-text-stroke: 1.5px var(--fs-color-secondary); }
.cg-paso-title { margin-bottom: .5em; font-size: 1.35rem; line-height: 1.25; color: #262626; }
.cg-paso-txt { margin-bottom: 1.4em; line-height: 1.6; color: #555; }
.cg-tiempo { margin-top: auto; padding: 1em 1.2em; border-left: 3px solid var(--fs-color-primary); background: #fff; }
.cg-tiempo b { display: block; margin-bottom: .35em; font-size: .68rem; letter-spacing: .18em; text-transform: uppercase; color: #1e7f61; }
.cg-tiempo-val { display: block; font-size: 1.9rem; font-weight: 700; line-height: 1.05; letter-spacing: -.02em; color: var(--fs-color-secondary); }
.cg-tiempo-sub { display: block; margin-top: .35em; font-size: .85rem; line-height: 1.45; color: #555; }
.cg-pasos-banda { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1em 2em; padding: 1.6em 2em; background: #262626; color: #fcfcf2; }
.cg-pasos-banda p { display: flex; align-items: center; gap: .8em; max-width: 40em; margin: 0; font-size: 1.1rem; line-height: 1.4; color: #fcfcf2; }
.cg-banda-num { flex: none; font-size: 2.6rem; font-weight: 700; line-height: 1; letter-spacing: -.03em; color: var(--fs-color-primary); }
@media (prefers-reduced-motion: reduce) { .cg-paso::after { animation: none; transform: none; } }

/* Garantía CG: fondo oscuro, sello giratorio y promesas */
.cg-dark .cg-eyebrow, .cg-dark .cg-display em.cg-em-verde { color: var(--fs-color-primary); }
.cg-dark .cg-display { color: #fcfcf2; }
.cg-dark p { color: rgba(252, 252, 242, .82); }
.cg-garantia h2.cg-display { margin-bottom: .45em; }
.cg-sello { position: relative; width: min(360px, 80vw); aspect-ratio: 1; margin: 0 auto; }
.cg-sello svg { display: block; width: 100%; height: 100%; overflow: visible; }
.cg-sello-giro { transform-origin: 150px 150px; animation: cg-giro 36s linear infinite; }
@keyframes cg-giro { to { transform: rotate(360deg); } }
.cg-sello-txt { font-size: 14px; font-weight: 700; letter-spacing: 3px; fill: #fcfcf2; }
.cg-sello-logo { position: absolute; top: 50%; left: 50%; width: 22%; height: auto; transform: translate(-50%, -50%); }
.cg-sello-badge {
	position: absolute; right: 2%; bottom: 8%; padding: .5em 1em; border-radius: 99px;
	background: var(--fs-color-primary); color: #262626; font-size: .8rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
	box-shadow: 0 10px 24px rgba(0, 0, 0, .3); transform: rotate(-8deg);
}
.cg-promesas > .col > .col-inner { height: 100%; }
.cg-promesa { height: 100%; padding-top: 1.2em; border-top: 2px solid var(--fs-color-primary); }
.cg-promesa-top { display: flex; justify-content: space-between; margin-bottom: 1em; font-size: .72rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--fs-color-primary); }
.cg-promesa-top span:first-child { color: rgba(252, 252, 242, .5); }
.cg-promesa-num { margin: 0 0 .15em; font-size: 4rem; font-weight: 700; line-height: 1; letter-spacing: -.04em; color: #fcfcf2 !important; }
.cg-promesa-num small { margin-left: .2em; font-size: .32em; font-weight: 700; letter-spacing: 0; color: var(--fs-color-primary); }
.cg-promesa-txt { margin: 0; font-size: .95rem; line-height: 1.55; }
.cg-cubre { margin: 0; padding: 0; list-style: none; }
.cg-cubre-title { margin-bottom: .8em; font-size: .72rem !important; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: #fcfcf2 !important; }
.cg-cubre li { position: relative; margin: 0 0 .6em; padding-left: 1.8em; font-size: .92rem; line-height: 1.5; color: rgba(252, 252, 242, .82); }
.cg-cubre li::before { position: absolute; left: 0; top: 0; font-weight: 700; }
.cg-cubre--si li::before { content: "✓"; color: var(--fs-color-primary); }
.cg-cubre--no li::before { content: "✕"; color: #2eb98f; }
.cg-garantia-nota { padding: 1.2em 1.4em; border-radius: 6px; background: #2eb98f; font-size: .95rem; color: #262626 !important; }
.cg-garantia-nota strong { color: #262626; }
@media (prefers-reduced-motion: reduce) { .cg-sello-giro { animation: none; } }

/* Confianza: credencial del fundador, principios y marquesina editorial */
.cg-credencial-card {
	position: relative; max-width: 440px; margin: 0 auto; overflow: hidden; border-radius: 18px;
	background: #fcfcf2; box-shadow: 0 24px 60px rgba(38, 38, 38, .18), 0 0 0 1px rgba(38, 38, 38, .08);
	transform: rotate(-2.5deg); transition: transform .5s cubic-bezier(.2, .7, .2, 1);
}
.cg-credencial-card:hover { transform: rotate(0deg) translateY(-4px); }
.cg-cred-band { display: flex; justify-content: space-between; align-items: center; padding: .9em 1.4em; background: var(--fs-color-secondary); color: #fcfcf2; font-size: .7rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; }
.cg-cred-band span:last-child { color: var(--fs-color-primary); }
.cg-cred-body { display: grid; grid-template-columns: 96px 1fr; gap: 1.2em; padding: 1.4em 1.4em .6em; }
.cg-cred-foto img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 18%; border-radius: inherit; }
.cg-cred-foto { overflow: hidden; display: grid; place-items: center; width: 96px; height: 120px; border-radius: 10px; background: linear-gradient(160deg, var(--fs-color-secondary), #2d1b52); color: #fcfcf2; font-size: 2rem; font-weight: 700; letter-spacing: .04em; }
.cg-cred-nombre { margin: 0 0 .15em; font-size: 1.25rem; font-weight: 700; line-height: 1.2; color: #262626; }
.cg-cred-cargo { margin: 0 0 .9em; font-size: .85rem; color: #1e7f61; font-weight: 700; }
.cg-cred-campos { display: grid; grid-template-columns: 1fr 1fr; gap: .8em 1em; padding: 0 1.4em 1.2em; }
.cg-cred-campos div { font-size: .82rem; line-height: 1.4; color: #262626; }
.cg-cred-campos b { display: block; margin-bottom: .15em; font-size: .62rem; letter-spacing: .16em; text-transform: uppercase; color: #777; }
.cg-cred-mrz { padding: .8em 1.4em; border-top: 1px dashed rgba(38, 38, 38, .25); font-family: ui-monospace, "Courier New", monospace; font-size: .72rem; letter-spacing: .14em; line-height: 1.5; color: rgba(38, 38, 38, .55); word-break: break-all; }
.cg-bio { margin-bottom: 1.6em; font-size: 1.05rem; line-height: 1.65; color: #444; }
.cg-principios { display: grid; grid-template-columns: 1fr 1fr; gap: 0 2em; margin-bottom: 1.8em; }
.cg-principio { padding: 1em 0; border-top: 1px solid rgba(38, 38, 38, .15); }
.cg-principio b { display: block; margin-bottom: .2em; font-size: 1.05rem; color: #262626; }
.cg-principio span { font-size: .9rem; line-height: 1.5; color: #555; }
.cg-principio i { margin-right: .6em; font-style: normal; font-size: .72rem; font-weight: 700; letter-spacing: .14em; color: var(--fs-color-secondary); }
@media (max-width: 549px) { .cg-principios { grid-template-columns: 1fr; } .cg-credencial-card { transform: none; } }
@media (prefers-reduced-motion: reduce) { .cg-credencial-card { transition: none; } }

/* Recursos: portada destacada + fichas tipo carpeta */
.cg-recursos { display: grid; grid-template-columns: 1.25fr 1fr 1fr; gap: 2.6em 1.4em; padding-top: 14px; }
.cg-rec { position: relative; display: flex; flex-direction: column; padding: 1.6em 1.5em 1.4em; border-radius: 0 12px 12px 12px; background: #fff; box-shadow: 0 1px 0 rgba(38, 38, 38, .08), 0 12px 30px rgba(38, 38, 38, .06); transition: transform .35s ease, box-shadow .35s ease; }
.cg-rec::before { content: attr(data-tab); position: absolute; top: -26px; left: 0; padding: .45em 1.1em .5em; border-radius: 10px 10px 0 0; font-size: .66rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.cg-rec--empresa::before { background: var(--fs-color-secondary); color: #fcfcf2; }
.cg-rec--persona::before { background: var(--fs-color-primary); color: #262626; }
.cg-rec:has(a):hover { transform: translateY(-4px); box-shadow: 0 1px 0 rgba(38, 38, 38, .08), 0 22px 44px rgba(38, 38, 38, .12); }
.cg-rec-title { margin: 0 0 .4em; font-size: 1.2rem; font-weight: 700; line-height: 1.25; color: #262626; }
.cg-rec-txt { flex: 1; margin: 0 0 1.2em; font-size: .9rem; line-height: 1.55; color: #555; }
.cg-rec-link { font-size: .85rem; font-weight: 700; color: var(--fs-color-secondary); }
.cg-rec-link::after { content: ""; position: absolute; inset: 0; }
.cg-rec-pronto { align-self: flex-start; padding: .3em .8em; border: 1px dashed rgba(38, 38, 38, .35); border-radius: 99px; font-size: .68rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #777; }
.cg-rec-visual { display: flex; align-items: center; gap: .5em; min-height: 54px; margin-bottom: 1em; }
.cg-rec-fecha { display: inline-flex; flex-direction: column; align-items: center; padding: .4em .8em; border: 2px solid currentColor; border-radius: 8px; line-height: 1; color: var(--fs-color-secondary); }
.cg-rec-fecha b { font-size: 1.7rem; }
.cg-rec-fecha small { margin-top: .2em; font-size: .62rem; font-weight: 700; letter-spacing: .2em; }
.cg-rec--persona .cg-rec-fecha { color: #1e7f61; }
.cg-luz { width: 22px; height: 22px; border-radius: 50%; opacity: .2; animation: cg-luz 3.6s infinite; }
.cg-luz:nth-child(1) { background: #2eb98f; }
.cg-luz:nth-child(2) { background: #f2b33d; animation-delay: 1.2s; }
.cg-luz:nth-child(3) { background: #e2554f; animation-delay: 2.4s; }
@keyframes cg-luz { 0%, 30% { opacity: 1; box-shadow: 0 0 14px currentColor; } 34%, 100% { opacity: .2; box-shadow: none; } }
.cg-rec-big { font-size: 2.2rem; font-weight: 700; line-height: 1; letter-spacing: -.03em; color: #1e7f61; }
/* Portada del reporte */
.cg-rec--portada { grid-row: span 2; padding: 2em 1.8em 1.6em; background: var(--fs-color-secondary); color: #fcfcf2; }
.cg-rec--portada .cg-rec-pronto { border-color: rgba(252, 252, 242, .45); color: rgba(252, 252, 242, .8); }
.cg-portada-kicker { margin: 0 0 1em; font-size: .7rem; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--fs-color-primary); }
.cg-portada-title { margin: 0 0 .3em; font-size: 2.6rem; font-weight: 700; line-height: .98; letter-spacing: -.03em; color: #fcfcf2; }
.cg-portada-sub { margin: 0 0 1.6em; font-size: .95rem; line-height: 1.5; color: rgba(252, 252, 242, .8); }
.cg-barras { display: flex; align-items: flex-end; gap: 6px; height: 120px; margin-top: auto; padding-top: 1em; border-bottom: 1px solid rgba(252, 252, 242, .3); }
.cg-barras span { flex: 1; height: var(--h); border-radius: 3px 3px 0 0; background: var(--fs-color-primary); opacity: .9; }
.cg-barras span:nth-child(n+5) { opacity: .55; }
.cg-barras-cap { margin: .6em 0 1.2em; font-size: .72rem; line-height: 1.4; color: rgba(252, 252, 242, .65); }
@media (max-width: 849px) { .cg-recursos { grid-template-columns: 1fr 1fr; } .cg-rec--portada { grid-column: span 2; grid-row: auto; } }
@media (max-width: 549px) { .cg-recursos { grid-template-columns: 1fr; gap: 2.2em; } .cg-rec--portada { grid-column: auto; } .cg-portada-title { font-size: 2rem; } }
@media (prefers-reduced-motion: reduce) { .cg-luz { animation: none; opacity: 1; } .cg-rec { transition: none; } }

/* Cierre y canales: fondo oscuro con el patrón de marca */
.cg-cierre { position: relative; overflow: hidden; }
.cg-cierre::before {
	content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none; opacity: .1;
	/* Patrón oficial de Common Ground (g + arcos verde y morado), en versión clara para fondo oscuro. */
	background-image: url("assets/marca/patron-cg-claro.png");
	background-size: 242px auto;
	-webkit-mask-image: linear-gradient(100deg, transparent 15%, #000 75%); mask-image: linear-gradient(100deg, transparent 15%, #000 75%);
}
.cg-cierre .section-content { position: relative; z-index: 1; }
.cg-canales { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1em; }
.cg-canal { position: relative; display: flex; flex-direction: column; min-height: 230px; padding: 1.4em 1.3em; border: 1px solid rgba(252, 252, 242, .18); border-radius: 14px; background: rgba(38, 38, 38, .6); transition: background .35s ease, border-color .35s ease, transform .35s ease; }
.cg-canal-top { display: flex; justify-content: space-between; margin-bottom: 0; font-size: .7rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: rgba(252, 252, 242, .5); }
.cg-canal-top span:last-child { color: var(--fs-color-primary); }
.cg-canal-name { margin: 1.4em 0 .3em; font-size: 1.6rem; font-weight: 700; line-height: 1.1; letter-spacing: -.02em; color: #fcfcf2 !important; }
.cg-canal-txt { margin: 0 0 1em; font-size: .88rem; line-height: 1.5; }
/* Títulos a la misma altura en las 4 tarjetas; el enlace es lo que se va al fondo. */
.cg-canal-link { margin-top: auto; font-size: .9rem; font-weight: 700; color: #fcfcf2; word-break: break-word; }
.cg-canal-link::after { content: ""; position: absolute; inset: 0; }
.cg-canal:hover, .cg-canal:focus-within { border-color: var(--fs-color-primary); background: var(--fs-color-primary); transform: translateY(-4px); }
.cg-canal:hover *, .cg-canal:focus-within * { color: #262626 !important; }
.cg-cierre-pie { display: grid; grid-template-columns: 1.4fr 1fr; gap: 1.5em 3em; align-items: center; padding-top: 1.8em; border-top: 1px solid rgba(252, 252, 242, .18); }
.cg-cierre-pie p { margin: 0 0 .9em; font-size: 1.05rem; }
.cg-cierre-pie strong { color: #fcfcf2; }
.cg-horario { display: grid; gap: .6em; margin: 0 !important; padding: 0; list-style: none; }
.cg-cubre { margin-left: 0 !important; }
.cg-horario li { display: flex; justify-content: space-between; gap: 1em; margin: 0; padding-bottom: .6em; border-bottom: 1px solid rgba(252, 252, 242, .12); font-size: .9rem; color: rgba(252, 252, 242, .82); }
.cg-horario b { font-size: .68rem; letter-spacing: .16em; text-transform: uppercase; color: rgba(252, 252, 242, .5); }
.cg-cierre .cgf-modal-button { margin: 0; border-radius: 99px; text-transform: none; }
@media (max-width: 849px) { .cg-canales { grid-template-columns: 1fr 1fr; } .cg-cierre-pie { grid-template-columns: 1fr; } }
@media (max-width: 549px) { .cg-canales { grid-template-columns: 1fr; } .cg-canal { min-height: 0; } }
@media (prefers-reduced-motion: reduce) { .cg-canal { transition: none; } }

/* Botones [cg_modal_button] (abren el quiz) con el mismo look que [button radius="99"] */
.cgf-modal-button.cg-pill { border-radius: 99px; }
/* La ficha "Prediagnóstico" de Recursos usa un <button> que abre el quiz: sin el estilo de botón de Flatsome */
button.cg-rec-link { min-height: 0; margin: 0; padding: 0; border: 0; background: none; box-shadow: none; font: inherit; font-size: .85rem; font-weight: 700; line-height: inherit; letter-spacing: normal; text-transform: none; text-align: left; color: var(--fs-color-secondary); cursor: pointer; }

/* Empresas · hero: fondo morado, texto crema y tablero ilustrativo de la plantilla */
.cg-emp-hero .cg-eyebrow { color: var(--fs-color-primary); }
.cg-emp-hero .cg-display { color: #fcfcf2; }
.cg-emp-hero .cg-display em { color: var(--fs-color-primary); }
.cg-emp-hero p { color: rgba(252, 252, 242, .85); }
.cg-emp-hero .cg-emp-lead { max-width: 34em; font-size: 1.12rem; line-height: 1.6; }
.cg-emp-datos { display: grid; grid-template-columns: repeat(3, minmax(0, max-content)); gap: .8em 2.2em; margin-top: 1.8em; padding-top: 1.1em; border-top: 1px solid rgba(252, 252, 242, .22); }
.cg-emp-datos span { font-size: .78rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: rgba(252, 252, 242, .75); }
.cg-emp-datos b { display: block; font-size: 1.5rem; font-weight: 700; letter-spacing: -.02em; text-transform: none; color: #fcfcf2; }
.cg-tablero { position: relative; max-width: 460px; margin: 0 0 0 auto; overflow: hidden; border-radius: 16px; background: #fcfcf2; color: #262626; box-shadow: 0 30px 70px rgba(20, 10, 40, .45); transform: rotate(1.5deg); transition: transform .5s cubic-bezier(.2, .7, .2, 1); }
.cg-tablero:hover { transform: rotate(0deg) translateY(-4px); }
.cg-tablero-head { display: flex; justify-content: space-between; align-items: center; padding: 1em 1.3em; border-bottom: 1px solid rgba(38, 38, 38, .1); }
.cg-tablero-head strong { font-size: .95rem; }
.cg-tablero-live { display: inline-flex; align-items: center; gap: .45em; font-size: .68rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #1e7f61; }
.cg-tablero-live::before { content: ""; width: .5em; height: .5em; border-radius: 50%; background: var(--fs-color-primary); animation: cg-blink 1.6s ease-in-out infinite; }
.cg-tablero-row { display: grid; grid-template-columns: 40px 1fr auto; gap: .9em; align-items: center; padding: .95em 1.3em; border-bottom: 1px solid rgba(38, 38, 38, .07); }
.cg-tablero-av { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: #f1eef5; color: var(--fs-color-secondary); font-size: .78rem; font-weight: 700; }
.cg-tablero-who b { display: block; font-size: .9rem; line-height: 1.3; }
.cg-tablero-who span { font-size: .78rem; color: #666; }
.cg-tablero-bar { display: block; height: 4px; margin-top: .45em; border-radius: 99px; background: rgba(38, 38, 38, .1); overflow: hidden; }
.cg-tablero-bar i { display: block; height: 100%; border-radius: inherit; background: var(--fs-color-secondary); }
.cg-pill-estado { padding: .35em .8em; border-radius: 99px; font-size: .7rem; font-weight: 700; white-space: nowrap; }
.cg-pill-estado--ok { background: #e3f5ee; color: #1e7f61; }
.cg-pill-estado--warn { background: #fdf1d8; color: #8a5a00; }
.cg-pill-estado--run { background: #f1eef5; color: var(--fs-color-secondary); }
.cg-tablero-foot { display: flex; justify-content: space-between; gap: 1em; padding: .9em 1.3em; background: #fff; font-size: .74rem; color: #666; }
.cg-tablero-foot b { color: #262626; }
.cg-tablero-nota { margin: .9em 0 0 auto; max-width: 460px; font-size: .72rem; text-align: right; color: rgba(252, 252, 242, .55) !important; }
@media (max-width: 849px) { .cg-tablero, .cg-tablero-nota { margin-left: 0; } .cg-tablero { transform: none; } }
@media (max-width: 549px) { .cg-emp-hero .button { display: flex; align-items: center; justify-content: center; gap: .4em; width: 100%; margin-right: 0; font-size: .92em; } .cg-emp-datos { grid-template-columns: 1fr 1fr; } .cg-emp-datos b { font-size: 1.25rem; } .cg-tablero-nota { text-align: left; } }
@media (prefers-reduced-motion: reduce) { .cg-tablero { transition: none; } .cg-tablero-live::before { animation: none; } }

/* Empresas · Tres dolores: fichas con mini visualización de datos */
.cg-dolores > .col > .col-inner { height: 100%; }
.cg-dolor { display: flex; flex-direction: column; height: 100%; padding: 1.7em 1.6em 1.5em; background: #fff; border-top: 2px solid var(--fs-color-secondary); box-shadow: 0 1px 0 rgba(38, 38, 38, .08), 0 14px 34px rgba(38, 38, 38, .05); }
.cg-dolor-top { display: flex; justify-content: space-between; margin-bottom: 1.2em; font-size: .72rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.cg-dolor-top span:first-child { opacity: .45; }
.cg-dolor-top span:last-child { color: #b3261e; }
.cg-dolor-title { margin: 0 0 .3em; font-size: 1.5rem; font-weight: 700; line-height: 1.15; letter-spacing: -.02em; color: #262626; }
.cg-dolor-dato { margin: 0 0 1.3em; font-size: .95rem; color: #555; }
.cg-dolor-dato b { color: var(--fs-color-secondary); }
.cg-dolor-viz { margin-bottom: 1.3em; padding: 1.1em 0; border-top: 1px solid rgba(38, 38, 38, .1); border-bottom: 1px solid rgba(38, 38, 38, .1); }
.cg-dolor-txt { margin: 0; font-size: .92rem; line-height: 1.6; color: #555; }
/* 1. Barras horizontales: días por oficina */
.cg-hbar { display: grid; grid-template-columns: 6.5em 1fr 2.6em; gap: .7em; align-items: center; margin: 0 0 .55em; font-size: .8rem; color: #262626; }
.cg-hbar:last-child { margin-bottom: 0; }
.cg-hbar-track { height: 10px; border-radius: 99px; background: rgba(38, 38, 38, .08); overflow: hidden; }
.cg-hbar-track i { display: block; width: var(--w); height: 100%; border-radius: inherit; background: var(--fs-color-secondary); transform-origin: left center; }
.cg-hbar--alto .cg-hbar-track i { background: #b3261e; }
.cg-hbar b { text-align: right; font-weight: 700; }
@supports (animation-timeline: view()) { .cg-hbar-track i { transform: scaleX(0); animation: cg-draw linear both; animation-timeline: view(); animation-range: entry 20% cover 35%; } }
/* 2. Retícula 10×10: 8 de cada 100 */
.cg-dots { display: grid; grid-template-columns: repeat(20, 1fr); gap: 5px; max-width: 280px; }
.cg-dots span { aspect-ratio: 1; border-radius: 50%; background: rgba(38, 38, 38, .12); }
.cg-dots span.on { background: #b3261e; box-shadow: 0 0 0 2px rgba(179, 38, 30, .15); }
.cg-dots-cap { display: flex; gap: 1.2em; margin-top: .8em; font-size: .74rem; color: #555; }
.cg-dots-cap i { display: inline-block; width: .7em; height: .7em; margin-right: .4em; border-radius: 50%; background: rgba(38, 38, 38, .12); vertical-align: -.05em; }
.cg-dots-cap i.on { background: #b3261e; }
/* 3. Agenda de plazos */
.cg-plazo { display: grid; grid-template-columns: 3.4em 1fr; gap: .9em; align-items: center; margin-bottom: .7em; }
.cg-plazo:last-child { margin-bottom: 0; }
.cg-plazo-fecha { display: flex; flex-direction: column; align-items: center; padding: .35em 0; border: 1.5px solid var(--fs-color-secondary); border-radius: 6px; line-height: 1; color: var(--fs-color-secondary); }
.cg-plazo-fecha b { font-size: 1.15rem; }
.cg-plazo-fecha small { margin-top: .2em; font-size: .56rem; font-weight: 700; letter-spacing: .14em; }
.cg-plazo span { font-size: .84rem; line-height: 1.4; color: #262626; }
/* 31 MAR: plazo en alerta, con cuenta regresiva (functions.php) */
/* Encabezado rojo de lado a lado con "¡Fecha límite!" y la cuenta regresiva; la fecha queda en contorno. */
.cg-plazo--alerta { position: relative; grid-template-columns: 3.4em 1fr; align-items: start; row-gap: .75em; padding: 0 .9em .9em; margin: -.2em -.8em .8em; overflow: hidden; border: 1.5px solid #b3261e; border-radius: 12px; background: #fdecea; box-shadow: 0 10px 24px -14px rgba(179, 38, 30, .55); }
.cg-plazo-head { grid-column: 1 / -1; display: flex; align-items: center; gap: .6em; margin: 0 -.9em; padding: .6em .9em; background: #b3261e; color: #fff; }
.cg-plazo-head .cg-plazo-ico { position: relative; display: inline-grid; place-items: center; flex: none; width: 1.45em; height: 1.45em; border-radius: 50%; background: #fff; font-size: .9rem; font-weight: 900; line-height: 1; color: #b3261e; }
.cg-plazo-head .cg-plazo-ico::after { content: ""; position: absolute; inset: 0; border-radius: 50%; animation: cg-alerta 1.8s ease-out infinite; }
@keyframes cg-alerta { 0% { box-shadow: 0 0 0 0 rgba(255, 255, 255, .75); } 100% { box-shadow: 0 0 0 10px rgba(255, 255, 255, 0); } }
.cg-plazo-head .cg-plazo-tag { font-size: .8rem; font-weight: 800; letter-spacing: .14em; line-height: 1.2; text-transform: uppercase; white-space: nowrap; color: #fff; }
.cg-plazo--alerta .cg-plazo-cuenta { display: block; margin-top: .4em; font-size: .95rem; font-weight: 800; line-height: 1.2; color: #b3261e; font-variant-numeric: tabular-nums; }
.cg-plazo--alerta .cg-plazo-cuenta.is-urgente::before { content: "⏳ "; }
.cg-plazo--alerta .cg-plazo-fecha { border-color: #b3261e; background: #fff; color: #b3261e; }
.cg-plazo--alerta .cg-plazo-txt { align-self: center; font-size: .88rem; font-weight: 600; color: #262626; }
.cg-plazo--alerta .cg-plazo-btn { display: block; margin-top: .55em; }
/* Entrada tipo notificación: llega desde la derecha con rebote cada vez que la tarjeta entra en pantalla
   (functions.php agrega .is-armed / .is-in). Sin JS o con movimiento reducido, se ve fija. */
.cg-dolor { overflow-x: clip; }
.cg-plazo--alerta.is-armed { opacity: 0; transform: translateX(110%); }
.cg-plazo--alerta.is-in { animation: cg-noti-in .95s cubic-bezier(.22, 1, .36, 1) both; }
.cg-plazo--alerta.is-in .cg-plazo-ico { animation: cg-noti-shake .6s ease-in-out .85s 2; }
@keyframes cg-noti-in {
	0% { opacity: 0; transform: translateX(110%); }
	55% { opacity: 1; transform: translateX(-7%); }
	72% { transform: translateX(3%); }
	86% { transform: translateX(-1.2%); }
	100% { opacity: 1; transform: translateX(0); }
}
@keyframes cg-noti-shake {
	0%, 100% { transform: rotate(0); }
	20% { transform: rotate(-16deg); }
	40% { transform: rotate(14deg); }
	60% { transform: rotate(-9deg); }
	80% { transform: rotate(5deg); }
}
@media (prefers-reduced-motion: reduce) {
	.cg-plazo--alerta.is-armed { opacity: 1; transform: none; }
	.cg-plazo--alerta.is-in, .cg-plazo--alerta.is-in .cg-plazo-ico { animation: none; }
}
.cg-dolor-viz .cgb { font-size: .95rem; color: #262626; }
.cg-dolor-viz .cgd { color: #262626; max-width: 300px; }
@media (prefers-reduced-motion: reduce) { .cg-plazo-head .cg-plazo-ico::after { animation: none; } }

.cg-dolores-cierre { display: grid; grid-template-columns: 1.5fr 1fr; gap: 1.2em 3em; align-items: end; padding-top: 1.6em; border-top: 1px solid rgba(38, 38, 38, .18); }
.cg-dolores-cierre .cg-pullquote { font-size: 1.45rem; }
@media (max-width: 849px) { .cg-dolores-cierre { grid-template-columns: 1fr; } .cg-dolores-cierre .cg-pullquote { font-size: 1.2rem; } }
@media (prefers-reduced-motion: reduce) { .cg-hbar-track i { animation: none; transform: none; } }

/* Empresas · Soluciones: índice de revista con tiempo y precio "desde" */
.cg-indice { border-top: 2px solid #262626; }
/* rem, no em: el encabezado (letra chica) y las filas comparten la misma retícula */
.cg-indice-head, .cg-indice-row { display: grid; grid-template-columns: 4.6rem minmax(0, 2.2fr) minmax(0, 1fr) minmax(0, 1fr) 2.6rem; gap: 1.4rem; align-items: center; }
.cg-indice-head { padding: .9em 1.2em; border-bottom: 1px solid rgba(38, 38, 38, .15); font-size: .68rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: #777; }
.cg-indice-row { position: relative; padding: 1.5em 1.2em; border-bottom: 1px solid rgba(38, 38, 38, .15); color: #262626; transition: background .3s ease, color .3s ease, padding .3s ease; }
.cg-indice-num { font-size: 2.2rem; font-weight: 700; line-height: 1; letter-spacing: -.04em; color: transparent; -webkit-text-stroke: 1.2px var(--fs-color-secondary); }
.cg-indice-sol b { display: block; margin-bottom: .2em; font-size: 1.35rem; line-height: 1.2; letter-spacing: -.015em; }
.cg-indice-sol span { font-size: .9rem; line-height: 1.5; color: #555; }
.cg-indice-dato { font-size: .95rem; font-weight: 700; line-height: 1.35; }
.cg-indice-dato small { display: block; font-size: .78rem; font-weight: 400; color: #666; }
.cg-indice-arrow { justify-self: end; display: grid; place-items: center; width: 2.4em; height: 2.4em; border: 1.5px solid rgba(38, 38, 38, .25); border-radius: 50%; font-size: 1rem; transition: transform .3s ease, border-color .3s ease, background .3s ease; }
.cg-indice-row:hover, .cg-indice-row:focus-visible { background: var(--fs-color-secondary); color: #fcfcf2; padding-left: 1.8em; }
.cg-indice-row:hover :is(.cg-indice-sol span, .cg-indice-dato small), .cg-indice-row:focus-visible :is(.cg-indice-sol span, .cg-indice-dato small) { color: rgba(252, 252, 242, .8); }
.cg-indice-row:hover .cg-indice-num { -webkit-text-stroke-color: var(--fs-color-primary); }
.cg-indice-row:hover .cg-indice-arrow { border-color: var(--fs-color-primary); background: var(--fs-color-primary); color: #262626; transform: translateX(4px); }
.cg-indice-nota { margin: 1em 0 0; font-size: .8rem; color: #666; }
@media (max-width: 849px) {
	.cg-indice-head { display: none; }
	.cg-indice-row { grid-template-columns: 3rem 1fr 2.4rem; grid-template-areas: "num sol arrow" ". t t" ". p p"; row-gap: .6em; }
	.cg-indice-row { align-items: start; }
	.cg-indice-sol b { font-size: 1.15rem; }
	.cg-indice-num { grid-area: num; font-size: 1.7rem; }
	.cg-indice-sol { grid-area: sol; }
	.cg-indice-arrow { grid-area: arrow; }
	.cg-indice-dato--t { grid-area: t; }
	.cg-indice-dato--p { grid-area: p; }
	.cg-indice-dato::before { content: attr(data-label); display: block; font-size: .62rem; letter-spacing: .16em; text-transform: uppercase; color: #777; }
	.cg-indice-row:hover .cg-indice-dato::before { color: rgba(252, 252, 242, .7); }
}
@media (prefers-reduced-motion: reduce) { .cg-indice-row, .cg-indice-arrow { transition: none; } }

/* Empresas · Paquetes: boletos con línea perforada */
.cg-boletos > .col > .col-inner { height: 100%; }
.cg-boleto { --notch: #f1eef5; position: relative; display: flex; flex-direction: column; height: 100%; border-radius: 16px; background: #fff; color: #262626; box-shadow: 0 1px 0 rgba(38, 38, 38, .06), 0 16px 38px rgba(75, 46, 131, .08); transition: transform .35s ease, box-shadow .35s ease; }
.cg-boleto:hover { transform: translateY(-5px); box-shadow: 0 1px 0 rgba(38, 38, 38, .06), 0 24px 50px rgba(75, 46, 131, .16); }
.cg-boleto-top { padding: 1.7em 1.6em 1.4em; }
.cg-boleto-tag { display: flex; justify-content: space-between; margin: 0 0 1.1em; font-size: .7rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--fs-color-secondary); }
.cg-boleto-tag span:last-child { color: #777; }
.cg-boleto-name { margin: 0 0 .7em; font-size: 1.55rem; font-weight: 700; line-height: 1.1; letter-spacing: -.02em; color: inherit; }
.cg-boleto--pro .cg-boleto-list li { color: #fcfcf2; }
.cg-boleto-price { margin: 0; font-size: .8rem; color: #666; }
.cg-boleto-price b { display: block; margin: .1em 0 .05em; font-size: 2.6rem; font-weight: 700; line-height: 1; letter-spacing: -.04em; color: #262626; }
.cg-boleto-price small { font-size: .82rem; }
.cg-boleto-perf { position: relative; height: 0; margin: 0 1.2em; border-top: 2px dashed rgba(38, 38, 38, .18); }
.cg-boleto-perf::before, .cg-boleto-perf::after { content: ""; position: absolute; top: -13px; width: 24px; height: 24px; border-radius: 50%; background: var(--notch); }
.cg-boleto-perf::before { left: calc(-1.2em - 12px); }
.cg-boleto-perf::after { right: calc(-1.2em - 12px); }
.cg-boleto-body { display: flex; flex: 1; flex-direction: column; padding: 1.4em 1.6em 1.6em; }
.cg-boleto-list { margin: 0 0 1.4em !important; padding: 0; list-style: none; }
.cg-boleto-list li { position: relative; margin: 0 0 .6em !important; padding-left: 1.6em; font-size: .9rem; line-height: 1.45; }
.cg-boleto-list li::before { content: "✓"; position: absolute; left: 0; font-weight: 700; color: #1e7f61; }
.cg-boleto-link { margin-top: auto; font-size: .88rem; font-weight: 700; color: var(--fs-color-secondary); }
.cg-boleto-link::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.cg-boleto-link span { display: inline-block; transition: transform .3s ease; }
.cg-boleto:hover .cg-boleto-link span { transform: translateX(4px); }
/* Membresía destacada */
.cg-boleto--pro { background: var(--fs-color-secondary); color: #fcfcf2; }
.cg-boleto--pro .cg-boleto-tag, .cg-boleto--pro .cg-boleto-link { color: var(--fs-color-primary); }
.cg-boleto--pro .cg-boleto-tag span:last-child { color: rgba(252, 252, 242, .65); }
.cg-boleto--pro .cg-boleto-price, .cg-boleto--pro .cg-boleto-price b { color: #fcfcf2; }
.cg-boleto--pro .cg-boleto-price { color: rgba(252, 252, 242, .75); }
.cg-boleto--pro .cg-boleto-perf { border-top-color: rgba(252, 252, 242, .3); }
.cg-boleto--pro .cg-boleto-list li::before { color: var(--fs-color-primary); }
.cg-niveles { margin: 0 0 1.3em; border-top: 1px solid rgba(252, 252, 242, .2); }
.cg-nivel { display: grid; grid-template-columns: 1fr auto; gap: .2em 1em; padding: .65em 0; border-bottom: 1px solid rgba(252, 252, 242, .2); font-size: .85rem; }
.cg-nivel b { font-size: .95rem; }
.cg-nivel span { color: rgba(252, 252, 242, .7); }
.cg-nivel em { grid-row: span 2; align-self: center; font-style: normal; font-weight: 700; color: #fcfcf2; }
.cg-boleto-sello { position: absolute; top: -12px; right: 1.4em; padding: .35em .9em; border-radius: 99px; background: var(--fs-color-primary); color: #262626; font-size: .66rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; box-shadow: 0 8px 18px rgba(0, 0, 0, .15); }
@media (prefers-reduced-motion: reduce) { .cg-boleto, .cg-boleto-link span { transition: none; } .cg-boleto:hover { transform: none; } }

/* Empresas · Cómo trabajamos: diagrama de red con el responsable de cuenta al centro */
.cg-red { width: 100%; max-width: 480px; margin: 0 auto; }
.cg-red svg { display: block; width: 100%; height: auto; overflow: visible; }
.cg-red-line { fill: none; stroke: rgba(46, 185, 143, .55); stroke-width: 2; stroke-dasharray: 4 8; animation: cg-flujo 1.6s linear infinite; }
@keyframes cg-flujo { to { stroke-dashoffset: -24; } }
.cg-red-node { fill: #2f2f2f; stroke: rgba(252, 252, 242, .25); stroke-width: 1.5; }
.cg-red-hub { fill: var(--fs-color-secondary); }
.cg-red-halo { fill: none; stroke: var(--fs-color-secondary); stroke-width: 1.5; opacity: .5; transform-origin: 250px 250px; animation: cg-halo 3s ease-out infinite; }
@keyframes cg-halo { from { transform: scale(1); opacity: .55; } to { transform: scale(1.35); opacity: 0; } }
.cg-red-txt { fill: #fcfcf2; font-size: 14px; font-weight: 700; text-anchor: middle; }
.cg-red-txt--hub { font-size: 16px; }
.cg-red-sub { fill: rgba(252, 252, 242, .6); font-size: 11px; text-anchor: middle; letter-spacing: .08em; text-transform: uppercase; }
.cg-dark .cg-idx-item { border-color: rgba(252, 252, 242, .16); }
.cg-dark .cg-idx-num { color: var(--fs-color-primary); }
.cg-dark .cg-idx-txt { color: rgba(252, 252, 242, .78); }
.cg-dark .cg-idx-txt strong { color: #fcfcf2; }
@media (prefers-reduced-motion: reduce) { .cg-red-line, .cg-red-halo { animation: none; } }

/* Empresas · Industrias: mosaico (bento) con ficha destacada */
.cg-bento { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: minmax(190px, auto); gap: 1.2rem; }
.cg-ind { position: relative; display: flex; flex-direction: column; padding: 1.5em 1.5em 1.4em; border-radius: 14px; background: #fff; color: #262626; box-shadow: 0 1px 0 rgba(38, 38, 38, .07); transition: background .35s ease, color .35s ease, transform .35s ease; }
.cg-ind:hover { transform: translateY(-3px); }
.cg-ind--big { grid-column: span 2; grid-row: span 2; padding: 2em; background: var(--fs-color-secondary); color: #fcfcf2; }
.cg-ind--wide { grid-column: span 2; }
.cg-ind-top { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: auto; }
.cg-ind-ico { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 12px; background: #f1eef5; color: var(--fs-color-secondary); }
.cg-ind-ico svg { width: 26px; height: 26px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.cg-ind--big .cg-ind-ico { background: rgba(252, 252, 242, .12); color: var(--fs-color-primary); }
.cg-ind-num { font-size: .7rem; font-weight: 700; letter-spacing: .18em; opacity: .5; }
.cg-ind-name { margin: 1.2em 0 .35em; font-size: 1.2rem; font-weight: 700; line-height: 1.2; letter-spacing: -.01em; color: inherit; }
.cg-ind--big .cg-ind-name { font-size: 2rem; letter-spacing: -.025em; }
.cg-ind-txt { margin: 0; font-size: .88rem; line-height: 1.5; color: #555; }
.cg-ind--big .cg-ind-txt { font-size: 1.05rem; color: rgba(252, 252, 242, .85); }
.cg-ind-meta { display: grid; gap: .9em; margin-top: 1.4em; padding-top: 1.2em; border-top: 1px solid rgba(252, 252, 242, .2); }
.cg-ind-meta b { display: block; margin-bottom: .4em; font-size: .64rem; letter-spacing: .18em; text-transform: uppercase; color: var(--fs-color-primary); }
.cg-ind-chips { display: flex; flex-wrap: wrap; gap: .4em; }
.cg-ind-chips span { padding: .3em .75em; border: 1px solid rgba(252, 252, 242, .3); border-radius: 99px; font-size: .78rem; color: #fcfcf2; }
.cg-ind-dato { margin-top: .9em; font-size: .8rem; color: #555; }
.cg-ind-dato b { font-size: 1.3rem; color: var(--fs-color-secondary); }
@media (max-width: 849px) { .cg-bento { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 549px) { .cg-bento { grid-template-columns: 1fr; } .cg-ind--big, .cg-ind--wide { grid-column: auto; grid-row: auto; } .cg-ind--big .cg-ind-name { font-size: 1.6rem; } }
@media (prefers-reduced-motion: reduce) { .cg-ind { transition: none; } .cg-ind:hover { transform: none; } }

/* Empresas · Cobertura nacional: mapa estilizado + listado de ciudades */
@media (min-width: 850px) { .cg-mapa { position: sticky; top: 110px; } }
.cg-mapa svg { display: block; width: 100%; height: auto; overflow: visible; }
.cg-mapa-pais { fill: #f1eef5; stroke: rgba(75, 46, 131, .35); stroke-width: 1.5; stroke-linejoin: round; }
.cg-mapa-grid { fill: rgba(75, 46, 131, .14); }
.cg-pin { fill: var(--fs-color-secondary); stroke: #fff; stroke-width: 2.5; }
.cg-pin-halo { fill: var(--fs-color-secondary); opacity: .25; transform-box: fill-box; transform-origin: center; animation: cg-pin 2.4s ease-out infinite; }
.cg-pin--sede { fill: var(--fs-color-primary); }
.cg-pin-halo--sede { fill: var(--fs-color-primary); }
@keyframes cg-pin { from { transform: scale(1); opacity: .35; } to { transform: scale(3); opacity: 0; } }
.cg-pin-label { fill: #262626; font-size: 13px; font-weight: 700; }
.cg-pin-label--sede { font-size: 14px; }
.cg-mapa-nota { margin: .6em 0 0; font-size: .74rem; color: #777; }
.cg-ciudades { margin: 0 !important; padding: 0; list-style: none; border-top: 2px solid #262626; }
.cg-ciudades li { display: grid; grid-template-columns: 2.2em 1fr auto; gap: .8em; align-items: baseline; margin: 0 !important; padding: .75em 0; border-bottom: 1px solid rgba(38, 38, 38, .12); }
.cg-ciudades i { font-style: normal; font-size: .72rem; font-weight: 700; letter-spacing: .12em; color: var(--fs-color-secondary); }
.cg-ciudades b { font-size: 1rem; color: #262626; }
.cg-ciudades b small { display: block; font-size: .78rem; font-weight: 400; color: #666; }
.cg-ciudades em { font-style: normal; font-size: .8rem; font-weight: 700; white-space: nowrap; color: #1e7f61; }
.cg-ciudades em.cg-sede { padding: .2em .7em; border-radius: 99px; background: #e3f5ee; }
.cg-modalidad { display: grid; grid-template-columns: 1fr 1fr; gap: 1em; margin-top: 1.4em; }
.cg-modalidad div { padding: 1em 1.1em; border-left: 3px solid var(--fs-color-secondary); background: #f1eef5; }
.cg-modalidad div + div { border-left-color: var(--fs-color-primary); background: #eef9f6; }
.cg-modalidad b { display: block; margin-bottom: .2em; font-size: .95rem; color: #262626; }
.cg-modalidad span { font-size: .84rem; line-height: 1.45; color: #555; }
@media (prefers-reduced-motion: reduce) { .cg-pin-halo { animation: none; } }

/* Empresas · Garantía y credenciales: certificado sobre fondo morado */
.cg-cert { position: relative; display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 2.5rem 4rem; padding: 3.4rem 3.2rem 3rem; border-radius: 8px; background: #fcfcf2; color: #262626; outline: 1px solid rgba(75, 46, 131, .28); outline-offset: -16px; box-shadow: 0 30px 70px rgba(20, 10, 40, .35); }
.cg-cert-kicker { display: flex; align-items: center; gap: .8em; margin: 0 0 1.2em; font-size: .72rem; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--fs-color-secondary); }
.cg-cert-kicker::before { content: ""; width: 3em; height: 2px; background: currentColor; }
.cg-cert-frase { margin: 0 0 1.4em; font-size: clamp(1.8rem, 3vw, 2.6rem); font-weight: 700; line-height: 1.08; letter-spacing: -.025em; color: #262626; }
.cg-cert-frase em { font-style: normal; color: var(--fs-color-secondary); }
.cg-cert-txt { margin: 0 0 2em; max-width: 30em; font-size: 1rem; line-height: 1.6; color: #555; }
.cg-cert-firma { display: inline-block; min-width: 260px; padding-top: .6em; border-top: 1.5px solid #262626; font-size: .82rem; line-height: 1.45; color: #555; }
.cg-cert-firma b { display: block; font-size: 1rem; color: #262626; }
.cg-cert-item { display: grid; grid-template-columns: 2.6em 1fr; gap: 1em; padding: 1.2em 0; border-top: 1px solid rgba(38, 38, 38, .14); }
.cg-cert-item:first-child { border-top: 0; padding-top: 0; }
.cg-cert-item i { font-style: normal; font-size: 1.5rem; font-weight: 700; line-height: 1; color: transparent; -webkit-text-stroke: 1.2px var(--fs-color-secondary); }
.cg-cert-item b { display: block; margin-bottom: .25em; font-size: 1.1rem; color: #262626; }
.cg-cert-item span { font-size: .9rem; line-height: 1.55; color: #555; }
.cg-cert-check { display: flex; flex-wrap: wrap; gap: .4em; margin-top: .7em; }
.cg-cert-check span { padding: .25em .7em; border-radius: 99px; background: #e3f5ee; font-size: .76rem; font-weight: 700; color: #1e7f61; }
.cg-cert-sello { position: absolute; top: -46px; right: 2.2rem; width: 112px; height: 112px; }
.cg-cert-sello svg { width: 100%; height: 100%; overflow: visible; }
.cg-cert-sello .cg-sello-txt { font-size: 15px; letter-spacing: 2.5px; fill: #fcfcf2; }
.cg-cert-sello img { position: absolute; top: 50%; left: 50%; width: 26%; transform: translate(-50%, -50%); }
/* La sección es dark="true" (texto claro sobre morado): dentro del certificado crema se restituye el texto oscuro */
.dark .cg-cert, .dark .cg-cert p, .dark .cg-cert span { color: #555; }
.dark .cg-cert .cg-cert-frase, .dark .cg-cert b { color: #262626; }
.dark .cg-cert .cg-cert-frase em, .dark .cg-cert .cg-cert-kicker { color: var(--fs-color-secondary); }
.dark .cg-cert .cg-cert-check span { color: #1e7f61; }
@media (max-width: 849px) { .cg-cert { grid-template-columns: 1fr; padding: 3.4rem 1.6rem 2rem; outline-offset: -10px; } .cg-cert-sello { right: 1rem; width: 92px; height: 92px; } }

/* Preguntas frecuentes: acordeón de Flatsome con estilo editorial (schema FAQPage nativo de Flatsome) */
.cg-faq .accordion { border-top: 2px solid #262626; }
.cg-faq .accordion-item { border-bottom: 1px solid rgba(38, 38, 38, .15); }
.cg-faq .accordion-title { position: relative; display: block; padding: 1.35em 3.4rem 1.35em 0; border: 0; font-size: 1.15rem; font-weight: 700; line-height: 1.35; color: #262626; transition: color .25s ease; }
.cg-faq .accordion-title .toggle { display: none; }
.cg-faq .accordion-title::after { content: "+"; position: absolute; top: 50%; right: .2rem; display: grid; place-items: center; width: 2.2rem; height: 2.2rem; margin-top: -1.1rem; border: 1.5px solid rgba(38, 38, 38, .25); border-radius: 50%; font-size: 1.3rem; font-weight: 400; line-height: 1; transition: transform .3s ease, background .3s ease, border-color .3s ease, color .3s ease; }
.cg-faq .accordion-title:hover, .cg-faq .accordion-title.active { background: transparent; color: var(--fs-color-secondary); }
.cg-faq-head .cg-indice-nota { margin-bottom: 1.4em; }
.cg-faq .accordion-title.active::after { transform: rotate(45deg); border-color: var(--fs-color-secondary); background: var(--fs-color-secondary); color: #fcfcf2; }
.cg-faq .accordion-inner { padding: 0 3.4rem 1.6em 0; }
.cg-faq .accordion-inner p { margin: 0; font-size: 1rem; line-height: 1.65; color: #555; }
.cg-faq .accordion-inner a { font-weight: 700; color: var(--fs-color-secondary); text-decoration: underline; text-underline-offset: 3px; }
/* Columna de la izquierda de las preguntas: título, texto y botón se quedan fijos JUNTOS al hacer scroll
   (antes solo el título era fijo y se encimaba sobre el botón). La columna se estira para tener dónde fijarse. */
@media (min-width: 850px) {
	.cg-faq .row > .col:first-child { align-self: stretch; }
	.cg-faq .row > .col:first-child > .col-inner { position: sticky; top: calc(var(--wp-admin--admin-bar--height, 0px) + 96px); }
}
@media (max-width: 549px) { .cg-faq .accordion-title { font-size: 1.02rem; padding-right: 3rem; } .cg-faq .accordion-inner { padding-right: 0; } }
@media (prefers-reduced-motion: reduce) { .cg-faq .accordion-title::after { transition: none; } }

/* Empresas · Diagnóstico empresarial: argumento fijo + formulario de cita embebido */
@media (min-width: 850px) { .cg-diag-head { position: sticky; top: 110px; } }
.cg-diag-lista { margin: 1.6em 0 !important; padding: 0; list-style: none; border-top: 1px solid rgba(38, 38, 38, .15); }
.cg-diag-lista li { display: grid; grid-template-columns: 1.8em 1fr; gap: .6em; margin: 0 !important; padding: .8em 0; border-bottom: 1px solid rgba(38, 38, 38, .15); font-size: .95rem; line-height: 1.45; color: #262626; }
.cg-diag-lista li::before { content: "✓"; font-weight: 700; color: #1e7f61; }
.cg-diag-lleva { padding: 1.2em 1.3em; border-left: 3px solid var(--fs-color-secondary); background: #f1eef5; }
.cg-diag-lleva b { display: block; margin-bottom: .3em; font-size: .7rem; letter-spacing: .18em; text-transform: uppercase; color: var(--fs-color-secondary); }
.cg-diag-lleva span { font-size: .95rem; line-height: 1.5; color: #262626; }
.cg-diag-sellos { display: flex; flex-wrap: wrap; gap: .5em 1.4em; margin-top: 1.3em; font-size: .78rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #555; }
.cg-diag-sellos span::before { content: ""; display: inline-block; width: .5em; height: .5em; margin-right: .5em; border-radius: 50%; background: var(--fs-color-primary); vertical-align: .05em; }

/* Claves de servicio (SKU): discretas para el visitante, legibles para Operaciones */
.cg-sku { display: inline-block; margin-left: .35em; font-family: ui-monospace, "SFMono-Regular", Consolas, monospace; font-size: .68em; font-weight: 500; letter-spacing: .02em; color: #6b6b6b; white-space: nowrap; vertical-align: .1em; }
.cg-sku abbr { text-decoration: none; cursor: help; border: 0; }
/* [cg_sku]: la clave liga al servicio en WooCommerce y muestra un tooltip con el nombre claro y el oficial */
.cg-sku-tip { position: relative; color: inherit; text-decoration: underline dotted rgba(75, 46, 131, .45); text-underline-offset: .2em; cursor: pointer; }
span.cg-sku-tip { cursor: help; }
a.cg-sku-tip:hover, a.cg-sku-tip:focus-visible { color: inherit; text-decoration-style: solid; text-decoration-color: currentColor; }
.cg-sku-tip::after { content: attr(data-tip); position: absolute; z-index: 30; bottom: calc(100% + 10px); left: -.4em; width: max-content; max-width: 17rem; padding: .55em .75em; border-radius: 8px; background: #262626; box-shadow: 0 10px 24px -10px rgba(0, 0, 0, .45); font-family: Lato, sans-serif; font-size: .78rem; font-weight: 500; line-height: 1.45; letter-spacing: normal; text-align: left; text-transform: none; white-space: normal; color: #fcfcf2; opacity: 0; visibility: hidden; transform: translateY(4px); transition: opacity .18s ease, transform .18s ease, visibility .18s; pointer-events: none; }
.cg-sku-tip::before { content: ""; position: absolute; z-index: 31; bottom: calc(100% + 4px); left: .6em; border: 6px solid transparent; border-top-color: #262626; border-bottom: 0; opacity: 0; visibility: hidden; transition: opacity .18s ease, visibility .18s; pointer-events: none; }
.cg-sku-tip:hover::after, .cg-sku-tip:focus-visible::after { opacity: 1; visibility: visible; transform: none; }
.cg-sku-tip.is-flip::after { left: auto; right: -.4em; }
.cg-sku-tip.is-flip::before { left: auto; right: .6em; }
.cg-sku-tip:hover::before, .cg-sku-tip:focus-visible::before { opacity: 1; visibility: visible; }
.cg-sku-tip:focus-visible { outline: 2px solid var(--fs-color-secondary); outline-offset: 2px; border-radius: 3px; }
.cg-sku-texto { white-space: normal; }
.cg-sku-texto > .cg-sku-tip { font-weight: 700; }

/* WooCommerce en modo cotización (inc/cg-woo.php) */
.cg-woo-cotizacion form.cart .single_add_to_cart_button, .cg-woo-cotizacion form.cart .quantity, .cg-woo-cotizacion .woocommerce-variation-availability { display: none !important; }
.cg-woo-precio--cotiza { font-size: .9em; font-weight: 700; color: var(--fs-color-secondary); }
.cg-woo-precio small { font-size: .7em; color: #6b6b6b; }
.cg-woo-cotiza { margin: 1.2em 0 1.4em; padding: 1.3em 1.4em; border-radius: 14px; background: #fcfcf2; border-top: 4px solid var(--fs-color-secondary); }
.cg-woo-cotiza-txt { margin: 0 0 .9em; }
.cg-woo-cotiza .button { margin: 0 .5em .5em 0; }
.cg-woo-cotiza-clave { margin: .4em 0 0; font-size: .82rem; color: #6b6b6b; }
.cg-woo-cotiza-clave b { font-family: ui-monospace, Consolas, monospace; color: #262626; }
.woocommerce-variation-description { margin: .4em 0 .8em; padding-left: .8em; border-left: 3px solid var(--fs-color-primary); font-size: .88rem; color: #555; }
.cg-woo-opciones { margin-left: 1.1em; }
.cg-woo-opciones li { margin-bottom: .6em; }
.cg-woo-oficial { font-size: .88rem; color: #6b6b6b; }
.cg-sol-body strong .cg-sku, .cg-indice-sol b .cg-sku, .cg-idx-txt strong .cg-sku { display: block; margin: .15em 0 0; }
.cg-indice-row:hover .cg-sku, .dark .cg-sku { color: rgba(252, 252, 242, .7); }

/* Catálogo de servicios [cg_catalogo] */
.cg-cat-tools { position: sticky; top: calc(var(--wp-admin--admin-bar--height, 0px) + var(--cg-header-h, 70px)); z-index: 5; display: flex; flex-wrap: wrap; align-items: center; gap: .8rem 1.2rem; margin-bottom: 2.4rem; padding: 1rem 0; background: #fcfcf2; border-bottom: 1px solid rgba(38, 38, 38, .12); }
.cg-cat-search { flex: 1 1 22rem; margin: 0; }
.cg-cat-search input { width: 100%; height: 3.1rem; margin: 0; padding: 0 1.2rem; border: 1.5px solid #262626; border-radius: 99px; background: #fff; font-size: 1rem; box-shadow: none; }
.cg-cat-search input:focus { border-color: var(--fs-color-secondary); box-shadow: 0 0 0 3px rgba(75, 46, 131, .18); }
.cg-cat-filtros { display: flex; gap: .4rem; }
.cg-cat-filtros button { margin: 0; padding: .5em 1.1em; min-height: 0; border: 1.5px solid rgba(38, 38, 38, .25); border-radius: 99px; background: transparent; font-size: .82rem; font-weight: 700; line-height: 1.4; letter-spacing: normal; text-transform: none; color: #262626; }
.cg-cat-filtros button.is-on { border-color: var(--fs-color-secondary); background: var(--fs-color-secondary); color: #fff; }
.cg-cat-count { margin: 0; font-size: .8rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #6b6b6b; }
.cg-cat-uni { margin-bottom: 3.6rem; }
.cg-cat-uni-head { display: grid; grid-template-columns: auto 1fr; gap: 1.4rem; align-items: end; margin-bottom: 1.2rem; padding-bottom: 1.2rem; border-bottom: 2px solid #262626; }
.cg-cat-letra { font-size: 6rem; font-weight: 800; line-height: .8; color: transparent; -webkit-text-stroke: 2px var(--fs-color-secondary); }
.cg-cat-uni-head .cg-eyebrow { margin-bottom: .3em; }
.cg-cat-uni-title { margin: 0; font-size: 2.2rem; line-height: 1.1; }
.cg-cat-lema { margin: .4em 0 0; color: #555; }
.cg-cat-fam { border-bottom: 1px solid rgba(38, 38, 38, .15); }
.cg-cat-fam summary { display: grid; grid-template-columns: 6.4rem minmax(0, 1fr) auto; gap: 1.2rem; align-items: center; padding: 1.2em .4em; cursor: pointer; list-style: none; transition: background .2s ease; }
.cg-cat-fam summary::-webkit-details-marker { display: none; }
.cg-cat-fam summary:hover, .cg-cat-fam[open] summary { background: rgba(75, 46, 131, .05); }
.cg-cat-fam summary:focus-visible { outline: 2px solid var(--fs-color-secondary); outline-offset: 2px; }
.cg-cat-fam-sku { font-family: ui-monospace, Consolas, monospace; font-size: .85rem; font-weight: 700; color: var(--fs-color-secondary); }
.cg-cat-fam-txt b { display: block; font-size: 1.12rem; line-height: 1.3; color: #262626; }
.cg-cat-fam-txt span { display: block; margin-top: .2em; font-size: .9rem; line-height: 1.5; color: #555; }
.cg-cat-fam-meta { display: flex; align-items: center; gap: .4rem; }
.cg-cat-pill { padding: .15em .7em; border-radius: 99px; font-size: .68rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.cg-cat-pill--empresas { background: rgba(75, 46, 131, .1); color: var(--fs-color-secondary); }
.cg-cat-pill--personas { background: rgba(46, 185, 143, .14); color: #1d7a5e; }
.cg-cat-n { display: inline-grid; place-items: center; min-width: 2.2rem; height: 2.2rem; margin-left: .4rem; border: 1.5px solid #262626; border-radius: 50%; font-size: .8rem; font-weight: 700; transition: transform .25s ease, background .25s ease, color .25s ease; }
.cg-cat-fam[open] .cg-cat-n { background: #262626; color: #fcfcf2; transform: rotate(-8deg); }
.cg-cat-fam-body { padding: .4em .4em 1.6em 8rem; }
.cg-cat-tecnico { margin: 0 0 .6em; font-size: .82rem; color: #6b6b6b; }
.cg-cat-tecnico span, .cg-cat-cita { display: inline-block; margin-right: .6em; font-size: .66rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #262626; }
.cg-cat-cita { margin: 0 0 1em; padding: .25em .8em; border-radius: 99px; background: #262626; color: #fcfcf2; }
.cg-cat-cita--virtual { background: var(--fs-color-primary); color: #262626; }
.cg-cat-cita--consulado { background: var(--fs-color-secondary); color: #fff; }
.cg-cat-items { margin: 0 0 1.2em; padding: 0; list-style: none; border-top: 1px dashed rgba(38, 38, 38, .2); }
.cg-cat-item { display: grid; grid-template-columns: 7.2rem minmax(0, 1fr); gap: 1rem; margin: 0; padding: .75em 0; border-bottom: 1px dashed rgba(38, 38, 38, .2); }
.cg-cat-item-sku { font-family: ui-monospace, Consolas, monospace; font-size: .78rem; color: #6b6b6b; padding-top: .2em; }
.cg-cat-item-txt b { display: block; font-weight: 700; color: #262626; }
.cg-cat-item-txt small { display: block; margin-top: .15em; font-size: .78rem; line-height: 1.45; color: #777; }
.cg-cat-item-txt em { display: block; margin-top: .3em; font-size: .78rem; font-style: normal; font-weight: 700; color: #b3261e; }
.cg-cat-item.is-off b { color: #888; text-decoration: line-through; }
.cg-cat-cta { display: flex; flex-wrap: wrap; align-items: center; gap: .6em 1.2em; margin: 0; font-size: .88rem; color: #555; }
.cg-cat-cta a { font-weight: 700; color: var(--fs-color-secondary); }
.cg-cat-vacio { padding: 2rem; border: 1.5px dashed rgba(38, 38, 38, .3); border-radius: 14px; text-align: center; }
.cg-cat-paq { display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); gap: 1rem; }
.cg-cat-paq div { padding: 1.3rem; border-radius: 14px; background: #fff; border-top: 4px solid var(--fs-color-secondary); }
.cg-cat-paq b { display: block; font-size: 1.1rem; }
.cg-cat-paq .cg-sku { margin: 0; }
.cg-cat-paq p { margin: .5em 0 0; font-size: .88rem; color: #555; }
@media (max-width: 849px) {
	.cg-cat-tools { position: static; }
	.cg-cat-letra { font-size: 4rem; }
	.cg-cat-uni-title { font-size: 1.6rem; }
	.cg-cat-fam summary { grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "sku meta" "txt txt"; gap: .5rem; }
	.cg-cat-fam-sku { grid-area: sku; }
	.cg-cat-fam-txt { grid-area: txt; }
	.cg-cat-fam-meta { grid-area: meta; }
	.cg-cat-fam-body { padding-left: .4em; }
	.cg-cat-item { grid-template-columns: 1fr; gap: .2rem; }
}
@media (prefers-reduced-motion: reduce) { .cg-cat-n, .cg-cat-fam summary { transition: none; } }
.cg-cat-item-buy { grid-column: 2; justify-self: start; font-size: .85rem; font-weight: 700; color: var(--fs-color-secondary); }

/* Índice del universo de servicios [cg_catalogo_indice] */
.cg-cat-idx { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 1.4rem; align-items: start; }
.cg-cat-idx-uni:first-child { grid-row: span 2; }
.cg-cat-idx-uni:first-child ul { column-count: 2; column-gap: 1.6rem; }
.cg-cat-idx-uni:first-child li { break-inside: avoid; }
.cg-cat-idx-uni { padding: 1.4rem 1.4rem .8rem; border-radius: 16px; background: #fff; border-top: 4px solid var(--fs-color-secondary); }
.cg-cat-idx-uni:nth-child(2) { border-top-color: var(--fs-color-primary); }
.cg-cat-idx-uni:nth-child(3) { border-top-color: #262626; }
.cg-cat-idx-head { display: flex; align-items: center; gap: .9rem; margin: 0 0 .8rem; }
.cg-cat-idx-letra { font-size: 3rem; font-weight: 800; line-height: 1; color: transparent; -webkit-text-stroke: 1.5px var(--fs-color-secondary); }
.cg-cat-idx-head b { display: block; font-size: 1.15rem; line-height: 1.2; }
.cg-cat-idx-head small { font-size: .7rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #6b6b6b; }
.cg-cat-idx ul { margin: 0; padding: 0; list-style: none; }
.cg-cat-idx li { margin: 0; border-top: 1px solid rgba(38, 38, 38, .1); }
.cg-cat-idx li a { display: flex; justify-content: space-between; gap: .8rem; padding: .55em 0; font-size: .9rem; line-height: 1.35; color: #262626; transition: color .2s ease, padding .2s ease; }
.cg-cat-idx li a small { font-family: ui-monospace, Consolas, monospace; font-size: .72rem; color: #8a8a8a; white-space: nowrap; }
.cg-cat-idx li a:hover { padding-left: .4em; color: var(--fs-color-secondary); }
@media (max-width: 849px) { .cg-cat-idx { grid-template-columns: 1fr; } .cg-cat-idx-uni:first-child { grid-row: auto; } }
@media (max-width: 549px) { .cg-cat-idx-uni:first-child ul { column-count: 1; } }

/* Notificaciones programadas: pasos del hero, catálogo de obligaciones y botón "Avísame" */
.cg-np-pasos { display: grid; gap: .8rem; }
.cg-np-paso { display: grid; grid-template-columns: 3rem 1fr; gap: 1rem; align-items: center; margin: 0; padding: 1.1rem 1.2rem; border-radius: 14px; background: rgba(252, 252, 242, .08); border: 1px solid rgba(252, 252, 242, .16); }
.cg-np-paso i { font-style: normal; font-size: 1.6rem; font-weight: 700; color: var(--fs-color-primary); }
.cg-np-paso b { display: block; font-size: 1.05rem; color: #fcfcf2; }
.cg-np-paso span { font-size: .9rem; color: rgba(252, 252, 242, .75); }
.cg-obligacion .cg-obligacion-plazo { display: inline-grid; place-items: center; min-width: 4.4rem; padding: .45em .5em; border: 1.5px solid var(--fs-color-secondary); border-radius: 8px; font-size: .78rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--fs-color-secondary); }
.cg-obligacion--alerta .cg-obligacion-plazo { border-color: #b3261e; background: #b3261e; color: #fff; }
.cg-obligacion:hover .cg-obligacion-plazo { border-color: var(--fs-color-primary); color: var(--fs-color-primary); }
.cg-obligacion--alerta:hover .cg-obligacion-plazo { background: #fff; color: #b3261e; }
@media (max-width: 849px) {
	.cg-indice-row.cg-obligacion { grid-template-columns: 1fr 1fr; grid-template-areas: "plazo plazo" "sol sol" "t p"; }
	.cg-obligacion .cg-obligacion-plazo { grid-area: plazo; justify-self: start; }
	.cg-obligacion > span:last-child:empty { display: none; }
}
.cg-plazo-btn { margin: .45em 0 0; padding: .25em .8em; border: 1.5px solid #b3261e; border-radius: 99px; background: #fff; font-size: .74rem; font-weight: 700; line-height: 1.4; letter-spacing: normal; text-transform: none; color: #b3261e; cursor: pointer; min-height: 0; transition: background .2s ease, color .2s ease; }
.cg-plazo-btn:hover { background: #b3261e; color: #fff; }

.cg-hero-vertical .text-inner::after { content: ""; display: inline-block; width: 1px; height: 4em; margin-top: 1.2em; background: currentColor; }
/* [cg_idiomas]: selector «CDMX · ES · EN · FR» del hero. La opacidad pasa del bloque a cada sigla para que el idioma actual se lea pleno. */
.cg-hero-vertical .text-inner:has(.cg-idiomas) { opacity: 1; }
.cg-hero-vertical .text-inner:has(.cg-idiomas)::after { opacity: .55; }
.cg-idiomas { display: inline-flex; align-items: center; gap: .55em; }
.cg-idiomas-ciudad, .cg-idiomas-sep { opacity: .55; }
.cg-idiomas-l { display: inline-block; padding: .45em .2em; color: inherit; opacity: .55; text-decoration: none; transition: opacity .2s ease; }
a.cg-idiomas-l:hover, a.cg-idiomas-l:focus-visible { opacity: 1; color: inherit; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .45em; }
a.cg-idiomas-l:focus-visible { outline: 1px solid currentColor; outline-offset: 2px; }
.cg-idiomas-l.is-actual { opacity: 1; font-weight: 800; text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: .45em; text-decoration-color: var(--fs-color-primary); }
.cg-idiomas-l.is-pronto { opacity: .28; cursor: help; }


@media only screen and (max-width: 48em) {
/*************** ADD MOBILE ONLY CSS HERE  ***************/
.cg-hero-h1 .cg-h1-accent { min-height: 2.2em; }
.cg-hero-h1 .cg-kicker { gap: .7em; letter-spacing: .14em; }
.cg-hero-h1 .cg-kicker::before { width: 1.8em; }
/* En móvil los % de escritorio se reducen para que las cifras quepan */
.cg-display { font-size: 175% !important; }
.cg-stat-num { font-size: 210% !important; }
.cg-stat-top { margin-bottom: 1rem; }
.cg-eyebrow { gap: .6em; font-size: .7rem; letter-spacing: .12em; }
.cg-eyebrow::before { width: 1.8em; }
.cg-door .col-inner { min-height: 0; }
.cg-door-title { font-size: 180% !important; }
.cg-board { padding: 1em .8em .6em; }
.cg-board-title { font-size: 1.2rem; }
.cg-board-table { font-size: .72rem; }
.cg-board-table .cg-col-opt { display: none; }
.cg-urgente-num { font-size: 2.6rem; }
.cg-paso-num { font-size: 4rem; }
.cg-promesa-num { font-size: 3.2rem; }
.cg-pasos-banda { padding: 1.4em 1.2em; }
.cg-banda-num { font-size: 2rem; }
.cg-door-amp { top: auto; bottom: 0; right: 50%; transform: translate(50%, 50%); width: 72px; height: 72px; font-size: 34px; }
.cg-pullquote { font-size: 125% !important; }


}
/* Ficha de servicio (bloque "Ficha de servicio", Custom Product Layout de Flatsome) */
.cg-ficha .woocommerce-breadcrumb, .cg-ficha .breadcrumbs { font-size: .72rem; letter-spacing: .12em; }
.cg-ficha-main .product-title { font-size: 2.4rem; line-height: 1.1; margin-bottom: .4em; }
.cg-ficha-main .product-short-description { font-size: 1.08rem; color: #444; }
.cg-ficha-main .price-wrapper { margin: .4em 0 1em; }
.cg-ficha-main .woocommerce-product-details__short-description + .price-wrapper { margin-top: 0; }
.cg-ficha-main form.variations_form .variations { margin-bottom: .4em; }
.cg-ficha-main form.variations_form select { min-width: 18rem; border-radius: 99px; }
.cg-ficha-main .product-page-description, .cg-ficha-main .woocommerce-Tabs-panel--description { margin-top: 2em; padding-top: 1.6em; border-top: 1px solid rgba(38, 38, 38, .12); }
.cg-ficha-main h2 { font-size: 1.3rem; margin-top: 1.2em; }
.cg-woo-clave { display: flex; flex-wrap: wrap; align-items: center; gap: .3em 1em; margin: 0 0 .7em; font-size: .72rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #6b6b6b; }
.cg-woo-clave-sku b { font-family: ui-monospace, Consolas, monospace; letter-spacing: .02em; color: var(--fs-color-secondary); }
.cg-woo-clave-cats a { color: #6b6b6b; }
.cg-woo-clave-cats a:hover { color: var(--fs-color-secondary); }
.cg-ficha-aside > .col-inner { position: sticky; top: calc(var(--wp-admin--admin-bar--height, 0px) + 90px); }
.cg-ficha-aside .product-gallery, .cg-ficha-aside .woocommerce-product-gallery { max-width: 9rem; margin-bottom: 1.2rem; border-radius: 12px; overflow: hidden; }
.cg-ficha-aside .product-gallery .product-thumbnails, .cg-ficha-aside .zoom-button, .cg-ficha-aside .image-tools { display: none !important; }
.cg-ficha-pasos { padding: 1.3rem 1.3rem 1.1rem; border-radius: 14px; background: #fcfcf2; border-top: 4px solid var(--fs-color-primary); }
.cg-ficha-pasos ol { margin: .6em 0 .8em; padding: 0; list-style: none; counter-reset: fp; }
.cg-ficha-pasos li { counter-increment: fp; position: relative; margin: 0 0 .8em; padding-left: 2.2em; font-size: .88rem; line-height: 1.45; color: #555; }
.cg-ficha-pasos li::before { content: counter(fp, decimal-leading-zero); position: absolute; left: 0; top: .05em; font-weight: 800; color: var(--fs-color-secondary); }
.cg-ficha-pasos li b { display: block; color: #262626; }
.cg-ficha-garantia { font-size: .88rem; font-weight: 700; color: var(--fs-color-secondary); }
.cg-ficha-rel .related > h3, .cg-ficha-rel .product-section-title { font-size: 1.4rem; letter-spacing: normal; text-transform: none; }

/* [cg_pagos]: iconos de pago discretos (grises, color al pasar el cursor) */
.cg-pagos { display: flex; flex-wrap: wrap; align-items: center; gap: .3em .7em; margin: .9em 0 .2em; }
.cg-pagos-txt { font-size: .66rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #8a8a8a; }
.cg-pagos .payment-icons { margin: 0; }
.cg-pagos .payment-icons .payment-icon { height: 20px; padding: 2px 4px; margin: 0 2px 0 0; background: transparent; opacity: .55; filter: grayscale(1); transition: opacity .2s ease, filter .2s ease; }
.cg-pagos .payment-icons .payment-icon svg { height: 16px; width: auto; }
.cg-pagos:hover .payment-icon { opacity: .9; filter: none; }
.dark .cg-pagos-txt { color: rgba(252, 252, 242, .6); }
@media (max-width: 849px) { .cg-ficha-aside > .col-inner { position: static; } .cg-ficha-main .product-title { font-size: 1.8rem; } }
.cg-boleto--pro .cg-pagos .payment-icon, .dark .cg-pagos .payment-icon { filter: grayscale(1) brightness(0) invert(1); opacity: .55; }
.cg-boleto--pro .cg-pagos:hover .payment-icon, .dark .cg-pagos:hover .payment-icon { opacity: .85; }
.cg-boleto--pro .cg-pagos-txt { color: rgba(252, 252, 242, .6); }

/* Listado de servicios (tienda y categorías de WooCommerce): renglones sin imagen */
.cg-shop-head { padding-top: 2.4rem; padding-bottom: .6rem; }
.cg-shop-head .cg-display { font-size: 2.6rem; margin-bottom: .3em; }
.cg-shop-head p:last-child { max-width: 46rem; color: #555; }
.cg-shop-link { padding: 0; border: 0; background: none; font: inherit; font-weight: 700; letter-spacing: normal; text-transform: none; text-decoration: underline; color: var(--fs-color-secondary); cursor: pointer; min-height: 0; margin: 0; line-height: inherit; }
.products .cg-lista-item { flex-basis: 100%; max-width: 100%; padding-bottom: 0; }
.products .cg-lista-item .col-inner { border-bottom: 1px solid rgba(38, 38, 38, .12); }
.products .cg-lista-item .box-image, .products .cg-lista-item .badge-container { display: none; }
.products .cg-lista-item .product-small.box { display: block; }
.products .cg-lista-item .box-text { display: grid; grid-template-columns: minmax(0, 1fr) 19rem; gap: .4rem 1.6rem; align-items: center; padding: 1.2rem .6rem; text-align: left; transition: background .2s ease; }
.products .cg-lista-item:hover .box-text { background: rgba(75, 46, 131, .04); }
.products .cg-lista-item .title-wrapper { min-width: 0; }
.cg-lista-sku { margin: 0 0 .2em; font-family: ui-monospace, Consolas, monospace; font-size: .76rem; font-weight: 700; color: var(--fs-color-secondary); }
.products .cg-lista-item .product-title { margin: 0; font-size: 1.1rem; font-weight: 700; line-height: 1.3; }
.products .cg-lista-item .product-title a { color: #262626; }
.cg-lista-resumen { margin: .3em 0 0; font-size: .9rem; line-height: 1.5; color: #555; }
.cg-lista-tags { display: flex; flex-wrap: wrap; gap: .35em; margin: .5em 0 0; }
.cg-lista-tags span { padding: .1em .6em; border-radius: 99px; background: rgba(38, 38, 38, .06); font-size: .68rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #555; }
.products .cg-lista-item .price-wrapper { display: flex; align-items: center; justify-content: space-between; gap: 1rem; text-align: left; }
.products .cg-lista-item .price { font-size: .92rem; }
.cg-lista-link { margin-left: auto; font-size: .88rem; font-weight: 700; white-space: nowrap; color: var(--fs-color-secondary); }
.cg-lista-link span { display: inline-block; transition: transform .2s ease; }
.cg-lista-item:hover .cg-lista-link span { transform: translateX(4px); }
.shop-container .widget_product_categories .product-categories { font-size: .9rem; }
.shop-container .widget_product_categories .count { font-size: .75rem; color: #8a8a8a; }
@media (max-width: 849px) {
	.cg-shop-head .cg-display { font-size: 1.9rem; }
	.products .cg-lista-item .box-text { grid-template-columns: 1fr; gap: .5rem; }
	.products .cg-lista-item .price-wrapper { justify-content: flex-start; }
	.cg-lista-link { margin-left: 0; }
}

/* Personas · Hero: selector "¿quién eres tú en esta mudanza?" y pase de abordar */
.cg-per-hero .cg-eyebrow { color: #1e7f61; }
.cg-per-hero .cg-eyebrow::before { background: var(--fs-color-primary); }
.cg-per-lead { max-width: 34em; font-size: 1.12rem; line-height: 1.6; color: #444; }
.cg-per-pregunta { margin: 1.6em 0 .7em; font-size: .78rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: #262626; }
.cg-per-puertas { display: grid; grid-template-columns: 1fr 1fr; gap: .9rem; margin-bottom: 1.3rem; }
.cg-per-puerta { position: relative; display: flex; flex-direction: column; gap: .35em; padding: 1.15rem 3rem 1.15rem 1.2rem; border: 1.5px solid #262626; border-radius: 16px; background: #fff; color: #262626; transition: transform .25s ease, box-shadow .25s ease, background .25s ease, border-color .25s ease; }
.cg-per-puerta b { font-size: 1.08rem; line-height: 1.25; }
.cg-per-puerta > span:not(.cg-per-puerta-tag) { font-size: .86rem; line-height: 1.45; color: #555; }
.cg-per-puerta-tag { align-self: flex-start; padding: .15em .7em; border-radius: 99px; background: var(--fs-color-primary); font-size: .66rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: #262626; }
.cg-per-puerta--fam .cg-per-puerta-tag { background: #262626; color: #fcfcf2; }
.cg-per-puerta i { position: absolute; right: 1rem; top: 50%; display: grid; place-items: center; width: 2rem; height: 2rem; margin-top: -1rem; border: 1.5px solid #262626; border-radius: 50%; font-style: normal; transition: transform .25s ease, background .25s ease, color .25s ease; }
.cg-per-puerta:hover, .cg-per-puerta:focus-visible { transform: translateY(-3px); border-color: #1e7f61; box-shadow: 0 16px 30px -18px rgba(30, 127, 97, .6); color: #262626; }
.cg-per-puerta:hover i, .cg-per-puerta:focus-visible i { border-color: var(--fs-color-primary); background: var(--fs-color-primary); transform: translateX(3px); }
.cg-per-puerta:focus-visible { outline: 2px solid #1e7f61; outline-offset: 3px; }
.cg-per-acciones { display: flex; flex-wrap: wrap; align-items: center; gap: .6em 1.2em; }
.cg-per-acciones .button { margin: 0; }
.cg-per-idiomas { font-size: .88rem; color: #555; }
.cg-per-idiomas b { color: #262626; }
.cg-per-datos-row { margin-top: 2.6rem; }
.cg-per-datos { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem 2rem; padding-top: 1.2rem; border-top: 1.5px solid #262626; }
/* Solo los renglones de la franja (> span): los span internos del contador heredan el tamaño de <b>. */
.cg-per-datos > span { font-size: .76rem; font-weight: 600; letter-spacing: .08em; line-height: 1.4; text-transform: uppercase; color: #555; }
.cg-per-datos b { display: block; margin-bottom: .1em; font-size: 2rem; font-weight: 800; letter-spacing: -.02em; line-height: 1.05; text-transform: none; color: #262626; }
.cg-per-datos span:first-child b { color: #1e7f61; }

/* Pase de abordar (ilustrativo) */
.cg-pase { position: relative; overflow: hidden; border-radius: 18px; background: #fff; color: #262626; box-shadow: 0 30px 60px -28px rgba(38, 38, 38, .45); transform: rotate(-2.5deg); transition: transform .4s ease; }
.cg-pase:hover { transform: rotate(0); }
.cg-pase small { display: block; font-size: .62rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: #8a8a8a; }
.cg-pase-head { display: flex; justify-content: space-between; align-items: center; padding: .9rem 1.3rem; background: #262626; color: #fcfcf2; }
.cg-pase-marca { font-size: .95rem; font-weight: 800; letter-spacing: .02em; }
.cg-pase-tipo { font-size: .62rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--fs-color-primary); }
.cg-pase-ruta { display: grid; grid-template-columns: auto 1fr auto; gap: .8rem; align-items: center; padding: 1.3rem 1.3rem .9rem; }
.cg-pase-ruta b { display: block; font-size: 1.35rem; line-height: 1.1; }
/* Solo el texto bajo el nombre ("Tu ciudad", "México"); antes alcanzaba también las fichas del contador y las dejaba grises. */
.cg-pase-ruta > div > span { font-size: .8rem; color: #6b6b6b; }
.cg-pase-avion { position: relative; justify-self: stretch; display: flex; justify-content: center; color: #1e7f61; }
.cg-pase-avion::before { content: ""; position: absolute; top: 50%; left: 0; right: 0; border-top: 1.5px dashed rgba(38, 38, 38, .25); }
.cg-pase-avion svg { position: relative; padding: 0 .3rem; background: #fff; transform: rotate(90deg); }
.cg-pase-hacia { text-align: right; }
/* Letrero de destino a todo el ancho del pase, como pantalla de salidas: nombres completos en ámbar. */
.cg-pase-destino { margin: 0 1.3rem 1.1rem; padding: .7rem .8rem .8rem; border-radius: 10px; background: #1c1c1f; }
.cg-pase-fila { display: grid; grid-template-columns: 3.9rem minmax(0, 1fr); gap: .6rem; align-items: center; padding: .3rem 0; }
.cg-pase-fila + .cg-pase-fila { border-top: 1px solid rgba(255, 201, 60, .12); }
.cg-pase-destino small { margin: 0; font-size: .56rem; line-height: 1.2; color: rgba(255, 201, 60, .7); }
/* El tamaño va en el contenedor: el contador lo hereda en em y, si no cabe, el plugin lo reduce solo. */
.cg-pase-destino b { display: block; min-width: 0; overflow: hidden; font-size: .8rem; }
.cg-pase-destino .cgc { --cgc-color: #ffc93c; --cgc-tile: #2a2a2e; font-weight: 800; letter-spacing: .02em; }
.cg-pase-destino .cgc .cgc-cell { text-shadow: 0 0 6px rgba(255, 201, 60, .35); }
.cg-pase-campos { display: grid; grid-template-columns: 1fr 1fr; gap: .9rem 1.2rem; padding: .4rem 1.3rem 1.2rem; }
.cg-pase-campos b { font-size: .92rem; line-height: 1.3; }
.cg-pase-perf { position: relative; height: 0; margin: 0 1.3rem; border-top: 2px dashed rgba(38, 38, 38, .2); }
.cg-pase-perf::before, .cg-pase-perf::after { content: ""; position: absolute; top: -13px; width: 24px; height: 24px; border-radius: 50%; background: #fcfcf2; }
.cg-pase-perf::before { left: -2.1rem; }
.cg-pase-perf::after { right: -2.1rem; }
.cg-pase-pie { display: flex; justify-content: space-between; align-items: flex-end; gap: 1rem; padding: 1.1rem 1.3rem 1.3rem; }
.cg-pase-pie b { font-size: 1.05rem; color: #1e7f61; }
.cg-pase-codigo { flex: none; width: 7.5rem; height: 2.4rem; background: repeating-linear-gradient(90deg, #262626 0 2px, transparent 2px 4px, #262626 4px 7px, transparent 7px 9px, #262626 9px 10px, transparent 10px 13px); opacity: .85; }
.cg-pase-nota { margin: 1.4rem 0 0; font-size: .75rem; text-align: center; color: #8a8a8a; }
@media (max-width: 549px) { .cg-pase-fila { grid-template-columns: 3.6rem minmax(0, 1fr); } }
@media (max-width: 849px) {
	.cg-per-puertas { grid-template-columns: 1fr; }
	.cg-per-datos { grid-template-columns: 1fr 1fr; }
	.cg-pase { margin-top: 2rem; transform: none; }
}
@media (prefers-reduced-motion: reduce) { .cg-pase, .cg-per-puerta, .cg-per-puerta i { transition: none; } .cg-pase { transform: none; } }

/* Las claves con tooltip quedan por encima de la capa que hace clicable toda la tarjeta (.cg-sol-link::after). */
.cg-sol .cg-sku-tip { z-index: 2; }

/* Personas · Perfiles: variante verde de las tarjetas de solución */
.cg-sol--verde { border-top-color: var(--fs-color-primary); }
.cg-sol--verde .cg-sol-tag { color: #1e7f61; }
.cg-sol--verde .cg-sol-link { color: #1e7f61; }
.cg-sol--verde:hover, .cg-sol--verde:focus-within { background: #1e7f61; box-shadow: 0 18px 40px rgba(30, 127, 97, .28); }
.cg-sol--verde:hover .cg-sol-tag, .cg-sol--verde:focus-within .cg-sol-tag { color: #fcfcf2; }
.cg-sol--verde:hover .cg-sol-quote::before, .cg-sol--verde:focus-within .cg-sol-quote::before { color: #fcfcf2; }
.cg-per-claves { display: block; margin-top: .8em; font-size: .68rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #8a8a8a; }
.cg-per-claves .cg-sku { margin-left: .3em; font-size: 1.1em; letter-spacing: 0; text-transform: none; }
.cg-sol--verde:hover .cg-per-claves, .cg-sol--verde:focus-within .cg-per-claves, .cg-sol--verde:hover .cg-sku { color: rgba(252, 252, 242, .75); }
.cg-per-otros { display: grid; grid-template-columns: 1fr auto; grid-template-areas: "head link" "chips chips"; gap: .9rem 1.6rem; align-items: center; margin-top: .6rem; padding: 1.3rem 1.5rem; border-radius: 16px; background: #eef9f6; }
.cg-per-otros-head { grid-area: head; margin: 0; font-size: .95rem; color: #262626; }
.cg-per-otros ul { grid-area: chips; display: flex; flex-wrap: wrap; gap: .5rem; margin: 0; padding: 0; list-style: none; }
.cg-per-otros ul li { margin: 0 !important; }
.cg-per-otros .cg-sku-texto { display: inline-flex; align-items: baseline; gap: .35em; padding: .35em .85em; border: 1px solid rgba(30, 127, 97, .35); border-radius: 99px; background: #fff; font-size: .85rem; }
.cg-per-otros .cg-sku-texto > .cg-sku-tip { text-decoration: none; color: #262626; }
.cg-per-otros .cg-sku-texto:hover { border-color: #1e7f61; }
.cg-per-otros .cg-sku-texto .cg-sku { margin: 0; font-size: .72rem; }
.cg-per-otros-link { grid-area: link; font-size: .88rem; font-weight: 700; white-space: nowrap; color: #1e7f61; }
@media (max-width: 849px) { .cg-per-otros { grid-template-columns: 1fr; grid-template-areas: "head" "chips" "link"; } }

/* Personas · Por qué México: origen (contadores) y destinos (barras) sobre fondo oscuro */
.cg-per-porque p { color: rgba(252, 252, 242, .8); }
.cg-per-mini { margin: 0 0 .9rem; font-size: .7rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: rgba(252, 252, 242, .55) !important; }
.cg-per-origen { display: grid; gap: .8rem; }
.cg-per-pais { display: grid; grid-template-columns: 3rem minmax(0, 1fr) auto; gap: 1rem; align-items: center; padding: 1rem 1.1rem; border: 1px solid rgba(252, 252, 242, .14); border-radius: 14px; background: rgba(252, 252, 242, .04); }
.cg-per-pais-code { display: grid; place-items: center; width: 3rem; height: 3rem; border: 1.5px solid var(--fs-color-primary); border-radius: 50%; font-size: .85rem; font-weight: 800; letter-spacing: .08em; color: var(--fs-color-primary); }
.cg-per-pais-txt b { display: block; font-size: 1.05rem; color: #fcfcf2; }
.cg-per-pais-txt small { font-size: .74rem; color: rgba(252, 252, 242, .55); }
.cg-per-pais-num { text-align: right; font-size: 1.9rem; font-weight: 800; line-height: 1; letter-spacing: -.02em; color: #fcfcf2; font-variant-numeric: tabular-nums; }
.cg-per-pais-num em { display: block; margin-top: .3em; font-size: .78rem; font-style: normal; font-weight: 700; letter-spacing: .04em; color: var(--fs-color-primary); }
.cg-per-nota { margin: .8rem 0 0; font-size: .78rem; color: rgba(252, 252, 242, .55) !important; }
.cg-per-destinos { padding: 1.4rem 1.5rem; border-radius: 14px; background: rgba(252, 252, 242, .04); border: 1px solid rgba(252, 252, 242, .14); }
.cg-per-destinos .cgb { font-size: 1rem; color: #fcfcf2; }
.cg-per-porque .cg-fuente { margin-top: 1.6rem; color: rgba(252, 252, 242, .55); }
@media (max-width: 849px) { .cg-per-destinos { margin-top: 1.6rem; } .cg-per-pais-num { font-size: 1.5rem; } }
.cg-per-destinos .cgb { --cgb-track: rgba(252, 252, 242, .1); }
.cg-per-porque .cg-fuente b { color: #fcfcf2; }
.cg-per-porque .cg-fuente { margin-top: .4rem; }

/* Personas · Tu ruta: itinerario en 5 escalas; la línea y el avión avanzan con el scroll */
.cg-ruta { position: relative; }
.cg-ruta-linea { position: absolute; top: 1.35rem; left: 10%; right: 10%; height: 2px; background: repeating-linear-gradient(90deg, rgba(38, 38, 38, .25) 0 8px, transparent 8px 14px); }
.cg-ruta-linea::after { content: ""; position: absolute; inset: 0; background: #1e7f61; transform-origin: left center; }
.cg-ruta-avion { position: absolute; top: 50%; left: 100%; display: grid; place-items: center; width: 2.4rem; height: 2.4rem; margin: -1.2rem 0 0 -1.2rem; border-radius: 50%; background: #1e7f61; color: #fff; box-shadow: 0 6px 16px -6px rgba(30, 127, 97, .7); z-index: 2; }
.cg-ruta-avion svg { transform: rotate(90deg); }
@supports not (animation-timeline: view()) { .cg-ruta-avion { display: none; } }
@supports (animation-timeline: view()) {
	.cg-ruta-linea::after { animation: cg-ruta-fill linear both; animation-timeline: view(); animation-range: entry 30% cover 55%; }
	.cg-ruta-avion { animation: cg-ruta-avion linear both; animation-timeline: view(); animation-range: entry 30% cover 55%; }
}
@keyframes cg-ruta-fill { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@keyframes cg-ruta-avion { 0% { left: 0; opacity: 1; } 88% { left: 100%; opacity: 1; } 100% { left: 100%; opacity: 0; } }
/* Destino final: la escala 05 queda resaltada (el avión aterriza y se desvanece encima de ella). */
.cg-ruta-escala:last-child .cg-ruta-punto { border-color: #1e7f61; background: #1e7f61; color: #fff; }
.cg-ruta-escalas { position: relative; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1.2rem; margin: 0; padding: 0; list-style: none; counter-reset: none; }
.cg-ruta-escala { display: grid; grid-template-rows: auto auto auto 1fr auto; margin: 0; }
@supports (grid-template-rows: subgrid) {
	.cg-ruta-escalas { grid-template-rows: repeat(5, auto); }
	.cg-ruta-escala { grid-row: span 5; grid-template-rows: subgrid; row-gap: 0; }
}
.cg-ruta-punto { position: relative; z-index: 1; display: grid; place-items: center; justify-self: center; width: 2.7rem; height: 2.7rem; margin-bottom: 1.2rem; border: 2px solid #262626; border-radius: 50%; background: #fcfcf2; font-size: .85rem; font-weight: 800; color: #262626; }
.cg-ruta-escala--plazo .cg-ruta-punto { border-color: #b3261e; color: #b3261e; }
.cg-ruta-escala > *:not(.cg-ruta-punto) { padding: 0 .2rem; }
.cg-ruta-num { margin: 0 0 .3em; font-size: .68rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: #1e7f61; }
.cg-ruta-flag { margin-left: .4em; padding: .1em .55em; border-radius: 99px; background: #b3261e; letter-spacing: .1em; color: #fff; }
.cg-ruta-titulo { margin: 0 0 .4em; font-size: 1.15rem; line-height: 1.25; }
.cg-ruta-txt { margin: 0 0 1em; font-size: .88rem; line-height: 1.5; color: #555; }
.cg-ruta-meta { align-self: start; margin: 0; padding: .8rem .9rem !important; border-radius: 12px; background: #fff; border-top: 3px solid var(--fs-color-primary); }
.cg-ruta-escala--plazo .cg-ruta-meta { border-top-color: #b3261e; }
.cg-ruta-meta div { display: block; margin: 0 0 .55em; }
.cg-ruta-meta div:last-child { margin-bottom: 0; }
.cg-ruta-meta dt { margin: 0; font-size: .6rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: #8a8a8a; }
.cg-ruta-meta dt, .cg-ruta-meta dd { display: block; float: none; width: auto; }
.cg-ruta-meta dd { margin: .1em 0 0; font-size: .86rem; font-weight: 700; line-height: 1.35; letter-spacing: normal; text-transform: none; color: #262626; }
.cg-ruta-meta .cg-sku { margin: 0; font-size: .74rem; font-weight: 500; white-space: normal; }
.cg-per-ruta .cg-sol-cierre { margin-top: 2.6rem; }
@media (max-width: 849px) {
	.cg-ruta-linea { top: 0; bottom: 0; left: 1.35rem; right: auto; width: 2px; height: auto; background: repeating-linear-gradient(180deg, rgba(38, 38, 38, .25) 0 8px, transparent 8px 14px); }
	.cg-ruta-linea::after { transform-origin: center top; }
	.cg-ruta-avion { display: none; }
	@keyframes cg-ruta-fill { from { transform: scaleY(0); } to { transform: scaleY(1); } }
	.cg-ruta-escalas { grid-template-columns: 1fr; gap: 1.8rem; }
	.cg-ruta-escala { display: grid; grid-row: auto; grid-template-columns: 2.7rem 1fr; grid-template-rows: none; column-gap: 1rem; }
	.cg-ruta-punto { grid-row: 1 / span 4; align-self: start; margin: 0; }
	.cg-ruta-escala > *:not(.cg-ruta-punto) { grid-column: 2; }
}
@media (prefers-reduced-motion: reduce) { .cg-ruta-linea::after, .cg-ruta-avion { animation: none !important; } .cg-ruta-avion { display: none; } }

/* Personas · Soy familiar: encabezado fijo a la izquierda y 4 situaciones en retícula */
.cg-fam-aside > .col-inner { position: sticky; top: calc(var(--wp-admin--admin-bar--height, 0px) + 100px); }
.cg-fam-nota { padding-left: .9em; border-left: 3px solid var(--fs-color-primary); font-size: .85rem; color: #555; }
.cg-fam-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.2rem; }
.cg-fam-card { position: relative; display: flex; flex-direction: column; padding: 1.5rem 1.5rem 1.3rem; border-radius: 18px; background: #fff; box-shadow: 0 1px 0 rgba(38, 38, 38, .06); transition: transform .3s ease, box-shadow .3s ease; }
.cg-fam-card:hover, .cg-fam-card:focus-within { transform: translateY(-4px); box-shadow: 0 20px 40px -22px rgba(30, 127, 97, .55); }
.cg-fam-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.1rem; }
.cg-fam-ico { display: grid; place-items: center; width: 3rem; height: 3rem; border-radius: 50%; background: #eef9f6; color: #1e7f61; transition: background .3s ease, color .3s ease; }
.cg-fam-card:hover .cg-fam-ico { background: #1e7f61; color: #fff; }
.cg-fam-idx { font-size: .72rem; font-weight: 700; letter-spacing: .16em; color: #8a8a8a; }
.cg-fam-quote { position: relative; margin: 0 0 .6em; font-size: 1.18rem; line-height: 1.3; letter-spacing: -.01em; }
.cg-fam-quote::before { content: "“"; margin-right: .05em; color: var(--fs-color-primary); }
.cg-fam-quote::after { content: "”"; margin-left: .05em; color: var(--fs-color-primary); }
.cg-fam-txt { flex: 1; margin: 0 0 1em; font-size: .9rem; line-height: 1.55; color: #555; }
.cg-fam-claves { margin: 0 0 1em; font-size: .64rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #8a8a8a; }
.cg-fam-claves .cg-sku { margin-left: .3em; font-size: 1.15em; letter-spacing: 0; text-transform: none; white-space: normal; }
.cg-fam-link { font-size: .88rem; font-weight: 700; color: #1e7f61; }
.cg-fam-link::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.cg-fam-card .cg-sku-tip { z-index: 2; }
.cg-fam-link span { display: inline-block; transition: transform .25s ease; }
.cg-fam-card:hover .cg-fam-link span { transform: translateX(4px); }
@media (max-width: 849px) { .cg-fam-aside > .col-inner { position: static; } .cg-fam-grid { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { .cg-fam-card, .cg-fam-ico, .cg-fam-link span { transition: none; } .cg-fam-card:hover { transform: none; } }

/* Personas · Solvencia: tres formas de demostrarla (A/B/C) y el recuadro "por qué no hay cifra" */
.cg-solv { border-top: 2px solid #262626; }
.cg-solv-row { display: grid; grid-template-columns: 4.2rem minmax(0, 1fr) 15rem; gap: 1.4rem; align-items: start; padding: 1.6rem 0; border-bottom: 1px solid rgba(38, 38, 38, .14); }
.cg-solv-letra { font-size: 3.6rem; font-weight: 800; line-height: .85; color: transparent; -webkit-text-stroke: 1.5px #1e7f61; transition: color .3s ease; }
.cg-solv-row:hover .cg-solv-letra { color: var(--fs-color-primary); -webkit-text-stroke-color: var(--fs-color-primary); }
.cg-solv-main h3 { margin: 0 0 .35em; font-size: 1.25rem; line-height: 1.25; }
.cg-solv-main p { margin: 0; font-size: .92rem; line-height: 1.55; color: #555; }
.cg-solv-meta { margin: 0; padding: .2rem 0 0 1.2rem; border-left: 3px solid var(--fs-color-primary); }
.cg-solv-meta div { display: block; margin: 0 0 .55em; }
.cg-solv-meta div:last-child { margin-bottom: 0; }
.cg-solv-meta dt, .cg-solv-meta dd { display: block; float: none; width: auto; }
.cg-solv-meta dt { margin: 0; font-size: .6rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: #8a8a8a; }
.cg-solv-meta dd { margin: .1em 0 0; font-size: .88rem; font-weight: 700; line-height: 1.35; letter-spacing: normal; text-transform: none; color: #262626; }
.cg-solv-meta .cg-sku { margin: 0; font-size: .76rem; font-weight: 500; white-space: normal; }
.cg-solv-porque { position: sticky; top: calc(var(--wp-admin--admin-bar--height, 0px) + 100px); padding: 1.6rem 1.5rem; border-radius: 18px; background: #262626; color: #fcfcf2; }
.cg-solv-porque-tag { display: inline-block; margin: 0 0 .7rem; padding: .15em .7em; border-radius: 99px; background: var(--fs-color-primary); font-size: .66rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: #262626; }
.cg-solv-porque-titulo { margin: 0 0 .8rem; font-size: 1.3rem; font-weight: 700; line-height: 1.25; color: #fcfcf2; }
.cg-solv-porque ul { margin: 0 0 1rem; padding: 0; list-style: none; }
.cg-solv-porque li { margin: 0 0 .8em; padding-left: 1.1em; font-size: .88rem; line-height: 1.5; color: rgba(252, 252, 242, .78); position: relative; }
.cg-solv-porque li::before { content: ""; position: absolute; left: 0; top: .55em; width: .45em; height: .45em; border-radius: 50%; background: var(--fs-color-primary); }
.cg-solv-porque li b { color: #fcfcf2; }
.cg-solv-porque-cta { margin: 0 0 1rem; font-size: .95rem; font-weight: 700; color: #fcfcf2; }
.cg-solv-porque .button { margin: 0; }
@media (max-width: 849px) {
	.cg-solv-row { grid-template-columns: 3rem minmax(0, 1fr); }
	.cg-solv-letra { font-size: 2.6rem; }
	.cg-solv-meta { grid-column: 2; }
	.cg-solv-porque { position: static; margin-top: 1.6rem; }
}
@media (prefers-reduced-motion: reduce) { .cg-solv-letra { transition: none; } }

/* Personas · Vida práctica: "lista de aterrizaje" en mosaicos; la palomita se marca al pasar el cursor */
.cg-vida { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.cg-vida-item { display: flex; flex-direction: column; gap: .35rem; padding: 1.3rem 1.2rem 1.1rem; border: 1px solid rgba(38, 38, 38, .1); border-radius: 16px; background: #fff; color: #262626; transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease; }
.cg-vida-item:hover, .cg-vida-item:focus-visible { transform: translateY(-4px); border-color: rgba(30, 127, 97, .35); box-shadow: 0 18px 34px -22px rgba(30, 127, 97, .6); color: #262626; }
.cg-vida-item:focus-visible { outline: 2px solid #1e7f61; outline-offset: 3px; }
.cg-vida-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: .6rem; }
.cg-vida-ico { display: grid; place-items: center; width: 2.8rem; height: 2.8rem; border-radius: 12px; background: #eef9f6; color: #1e7f61; }
.cg-vida-check { position: relative; width: 1.4rem; height: 1.4rem; border: 1.5px solid rgba(38, 38, 38, .3); border-radius: 6px; transition: background .25s ease, border-color .25s ease; }
.cg-vida-check::after { content: ""; position: absolute; left: .42rem; top: .18rem; width: .38rem; height: .7rem; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg) scale(0); transition: transform .25s ease .05s; }
.cg-vida-item:hover .cg-vida-check, .cg-vida-item:focus-visible .cg-vida-check { border-color: #1e7f61; background: #1e7f61; }
.cg-vida-item:hover .cg-vida-check::after, .cg-vida-item:focus-visible .cg-vida-check::after { transform: rotate(45deg) scale(1); }
.cg-vida-item b { font-size: 1.02rem; line-height: 1.3; }
.cg-vida-txt { flex: 1; font-size: .86rem; line-height: 1.5; color: #555; }
.cg-vida-sku { margin-top: .5rem; }
.cg-vida-sku .cg-sku { margin: 0; font-size: .72rem; }
.cg-vida-pie { margin: 1.6rem 0 0; font-size: .92rem; color: #555; }
.cg-vida-pie a { font-weight: 700; color: #1e7f61; }
@media (max-width: 849px) { .cg-vida { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 549px) { .cg-vida { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { .cg-vida-item, .cg-vida-check, .cg-vida-check::after { transition: none; } .cg-vida-item:hover { transform: none; } }

/* Personas · Renovación: dato grande, 3 consejos y la tarjeta de alerta (misma que el 31 de marzo en Empresas) */
.cg-renov-dato { display: grid; grid-template-columns: auto 1fr; gap: 1.2rem; align-items: center; margin: 1.2rem 0 1.4rem; padding: 1.1rem 0; border-top: 1.5px solid #262626; border-bottom: 1px solid rgba(38, 38, 38, .14); }
.cg-renov-num { font-size: 3.4rem; font-weight: 800; line-height: 1; letter-spacing: -.03em; color: #b3261e; font-variant-numeric: tabular-nums; }
.cg-renov-dato p { margin: 0; font-size: .95rem; line-height: 1.5; color: #444; }
.cg-renov-tips { margin: 0 0 1rem; padding: 0; list-style: none; counter-reset: rt; }
.cg-renov-tips li { counter-increment: rt; position: relative; margin: 0 0 .9em; padding-left: 2.4em; font-size: .92rem; line-height: 1.5; color: #555; }
.cg-renov-tips li::before { content: counter(rt, decimal-leading-zero); position: absolute; left: 0; top: .05em; font-weight: 800; color: #1e7f61; }
.cg-renov-tips li b { color: #262626; }
.cg-renov-tips .cg-sku { font-size: .74rem; }
.cg-renov-alerta-wrap { overflow-x: clip; padding: 1rem .9rem 1.2rem; }
.cg-renov-alerta.cg-plazo--alerta { margin: 0; font-size: 1.12rem; }
.cg-renov-alerta .cg-plazo-fecha { padding: .5em 0; }
.cg-renov-alerta .cg-plazo-fecha b { font-size: 1.6rem; }
.cg-renov-alerta .cg-plazo-txt { font-size: .95rem; line-height: 1.5; }
.cg-renov-alerta .cg-plazo-btn { font-size: .82rem; padding: .45em 1.1em; }
.cg-renov-alerta-nota { margin: .9rem 0 0; font-size: .8rem; text-align: center; color: #8a8a8a; }
@media (max-width: 849px) { .cg-renov-alerta-wrap { margin-top: 1.6rem; } .cg-renov-num { font-size: 2.6rem; } }

/* Personas · Confianza: credencial (de Inicio), tres razones y banda oscura con el sello de la Garantía CG */
.cg-conf-razones { display: grid; gap: 1.2rem; margin-bottom: 1.4rem; }
.cg-conf-razon { display: grid; grid-template-columns: 3rem minmax(0, 1fr); gap: 1rem; align-items: start; padding-bottom: 1.2rem; border-bottom: 1px solid rgba(38, 38, 38, .12); }
.cg-conf-razon:last-child { border-bottom: 0; padding-bottom: 0; }
.cg-conf-ico { display: grid; place-items: center; width: 3rem; height: 3rem; border-radius: 50%; background: #fff; color: #1e7f61; box-shadow: inset 0 0 0 1.5px rgba(30, 127, 97, .35); }
.cg-conf-razon h3 { margin: .2em 0 .3em; font-size: 1.12rem; line-height: 1.3; }
.cg-conf-razon p { margin: 0; font-size: .92rem; line-height: 1.55; color: #555; }
.cg-conf-garantia { display: grid; grid-template-columns: 15rem minmax(0, 1fr); gap: 2rem; align-items: center; padding: 2rem 2.2rem; border-radius: 22px; background: #262626; color: #fcfcf2; }
.cg-conf-sello .cg-sello { width: 100%; max-width: 15rem; }
.cg-conf-garantia .cg-eyebrow { color: var(--fs-color-primary); }
.cg-conf-garantia-titulo { margin: 0 0 1.2rem; font-size: 1.3rem; font-weight: 700; line-height: 1.4; color: #fcfcf2; }
.cg-conf-promesas { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem 1.6rem; margin-bottom: 1.2rem; padding-top: 1rem; border-top: 1px solid rgba(252, 252, 242, .18); }
.cg-conf-promesas span { font-size: .8rem; line-height: 1.45; color: rgba(252, 252, 242, .7); }
.cg-conf-promesas b { display: block; margin-bottom: .2em; font-size: 1.25rem; color: var(--fs-color-primary); }
.cg-conf-garantia-link { font-size: .9rem; font-weight: 700; color: #fcfcf2; text-decoration: underline; text-underline-offset: .2em; }
.cg-conf-garantia-link:hover { color: var(--fs-color-primary); }
@media (max-width: 849px) {
	.cg-conf-garantia { grid-template-columns: 1fr; padding: 1.6rem 1.3rem; }
	.cg-conf-sello .cg-sello { max-width: 12rem; }
	.cg-conf-promesas { grid-template-columns: 1fr; }
	.cg-per-confianza .cg-credencial-card { margin-bottom: 1.6rem; }
}

/* Personas · Cierre: el prediagnóstico es un botón (abre el quiz) con el aspecto de las ligas de canal */
.cg-canal-link-wrap { margin-top: auto; }
.cg-canal .cg-canal-btn { display: inline-flex; align-items: center; gap: .5em; min-height: 0; margin: 0; padding: 0; border: 0; background: none; font: inherit; font-size: .9rem; font-weight: 700; line-height: 1.4; letter-spacing: normal; text-transform: none; color: var(--fs-color-primary); cursor: pointer; }
.cg-canal .cg-canal-btn:hover { text-decoration: underline; text-underline-offset: .2em; }
.cg-canal--evento { border-color: rgba(46, 185, 143, .45); }
.cg-canal--evento .cg-canal-top span:last-child { color: var(--fs-color-primary); }

/* Tooltip flotante de las claves (inc/cg-catalogo.php): reemplaza al globo CSS cuando hay JavaScript */
.cg-tip-js .cg-sku-tip::after, .cg-tip-js .cg-sku-tip::before { display: none !important; }
.cg-sku-tooltip { position: fixed; z-index: 99999; max-width: min(19rem, calc(100vw - 16px)); padding: .55em .8em; border-radius: 8px; background: #262626; box-shadow: 0 12px 28px -10px rgba(0, 0, 0, .45); font-family: Lato, sans-serif; font-size: .8rem; font-weight: 500; line-height: 1.45; letter-spacing: normal; text-align: left; text-transform: none; color: #fcfcf2; pointer-events: none; animation: cg-tip-in .15s ease-out; }
.cg-sku-tooltip[hidden] { display: none; }
.cg-sku-tooltip::after { content: ""; position: absolute; top: 100%; left: var(--cg-tip-arrow, 50%); margin-left: -6px; border: 6px solid transparent; border-top-color: #262626; }
.cg-sku-tooltip.is-below::after { top: auto; bottom: 100%; border-top-color: transparent; border-bottom-color: #262626; }
@keyframes cg-tip-in { from { opacity: 0; transform: translateY(3px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .cg-sku-tooltip { animation: none; } }
/* Escala 03 (Personas): botón para programar el aviso del canje */
.cg-ruta-meta .cg-ruta-aviso { margin: .7em 0 0; padding-top: .7em; border-top: 1px dashed rgba(179, 38, 30, .3); }
/* Escala 04: mismo botón en verde (renovación, sin la urgencia del canje) */
.cg-ruta-meta .cg-ruta-aviso--verde { border-top-color: rgba(30, 127, 97, .3); }

/* Botón "Avísame" como notificación de celular: campana, etiqueta y sonido al hacer clic (functions.php) */
.cg-aviso-tag { display: block; margin: 0 0 .45em; font-size: .58rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: #b3261e; }
.cg-ruta-aviso--verde .cg-aviso-tag { color: #1e7f61; }
.cg-aviso-btn { --cg-aviso: #b3261e; display: flex; align-items: center; gap: .6em; width: 100%; min-height: 0; margin: 0; padding: .5em .8em .5em .45em; border: 0; border-radius: 12px; background: var(--cg-aviso); box-shadow: 0 10px 20px -12px var(--cg-aviso); font-size: .8rem; font-weight: 700; line-height: 1.25; letter-spacing: normal; text-align: left; text-transform: none; color: #fff; cursor: pointer; transition: transform .2s ease, box-shadow .2s ease, filter .2s ease; }
.cg-ruta-aviso--verde .cg-aviso-btn { --cg-aviso: #1e7f61; }
.cg-aviso-btn::before { content: ""; flex: none; width: 2em; height: 2em; border-radius: 50%; background: rgba(255, 255, 255, .2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 8a6 6 0 0 0-12 0c0 7-3 9-3 9h18s-3-2-3-9'/%3E%3Cpath d='M13.7 21a2 2 0 0 1-3.4 0'/%3E%3C/svg%3E") center / 1.1em no-repeat; transform-origin: 50% 15%; }
.cg-aviso-btn:hover, .cg-aviso-btn:focus-visible { transform: translateY(-2px); filter: brightness(1.06); box-shadow: 0 14px 24px -12px var(--cg-aviso); color: #fff; }
.cg-aviso-btn:hover::before { animation: cg-campana .7s ease-in-out; }
.cg-aviso-btn:focus-visible { outline: 2px solid var(--cg-aviso); outline-offset: 3px; }
.cg-aviso-btn.is-ringing::before, .cg-plazo-btn.is-ringing { animation: cg-campana .9s ease-in-out 2; }
@keyframes cg-campana { 0%, 100% { transform: rotate(0); } 15% { transform: rotate(18deg); } 30% { transform: rotate(-16deg); } 45% { transform: rotate(12deg); } 60% { transform: rotate(-8deg); } 75% { transform: rotate(4deg); } }
@media (prefers-reduced-motion: reduce) { .cg-aviso-btn, .cg-aviso-btn::before, .cg-plazo-btn { transition: none; animation: none !important; } .cg-aviso-btn:hover { transform: none; } }

/* ========== Documentos legales (/legal/): diseño formal tipo documento ========== */
.cg-legal-migas { display: flex; gap: .6em; margin-bottom: 2rem; font-size: .72rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: #8a8a8a; }
.cg-legal-migas a { color: #4b2e83; }
.cg-legal-doc { margin: 0 0 .8rem; font-size: .7rem; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: #8a8a8a; }
.cg-legal-titulo { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2rem; align-items: end; padding-bottom: 1.6rem; border-bottom: 3px double #262626; }
.cg-legal-titulo h1, .cg-legal-h1 { max-width: 30em; margin: 0; font-size: 2.3rem; font-weight: 700; line-height: 1.2; letter-spacing: -.01em; color: #262626; }
.cg-legal-sello { display: grid; place-items: center; width: 7.2rem; height: 7.2rem; border: 1.5px solid #4b2e83; border-radius: 50%; box-shadow: inset 0 0 0 5px #fcfcf2, inset 0 0 0 6px rgba(75, 46, 131, .45); text-align: center; color: #4b2e83; transform: rotate(-8deg); }
.cg-legal-sello span { font-size: 1.6rem; line-height: 1; }
.cg-legal-sello b { margin-top: -.6rem; font-size: .62rem; letter-spacing: .18em; text-transform: uppercase; }
.cg-legal-idiomas { margin-top: 1.4rem; padding: 1rem 1.2rem; border: 1px solid rgba(38, 38, 38, .18); border-radius: 4px; background: #fff; }
.cg-legal-idiomas p { margin: 0 0 .45em; font-size: .82rem; line-height: 1.55; color: #555; }
.cg-legal-idiomas p:first-child { font-size: .88rem; color: #262626; }
.cg-legal-idiomas p:last-child { margin-bottom: 0; }
.cg-legal-idiomas b { letter-spacing: .08em; color: #262626; }

/* Índice lateral */
/* La columna se estira a lo alto del documento para que el índice tenga recorrido al quedarse fijo. */
.cg-legal-aside { align-self: stretch; }
.cg-legal-aside > .col-inner { position: sticky; top: calc(var(--wp-admin--admin-bar--height, 0px) + 100px); }
.cg-legal-indice-t { margin: 0 0 .8rem; padding-bottom: .6rem; border-bottom: 1px solid #262626; font-size: .68rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: #262626; }
.cg-legal-indice ol { margin: 0 0 1.4rem; padding: 0; list-style: none; }
.cg-legal-indice li { margin: 0; }
.cg-legal-indice a { display: grid; grid-template-columns: 2.4rem 1fr; gap: .2rem; padding: .45em 0; border-bottom: 1px solid rgba(38, 38, 38, .08); font-size: .84rem; line-height: 1.35; color: #444; }
.cg-legal-indice a span { font-weight: 700; color: #4b2e83; }
.cg-legal-indice a:hover, .cg-legal-indice a.is-activa { color: #4b2e83; }
.cg-legal-indice a.is-activa { font-weight: 700; }
.cg-legal-imprimir { width: 100%; min-height: 0; margin: 0; padding: .6em .9em; border: 1px solid #262626; border-radius: 4px; background: transparent; font-size: .75rem; font-weight: 700; letter-spacing: .06em; line-height: 1.3; text-transform: none; color: #262626; cursor: pointer; }
.cg-legal-imprimir:hover { background: #262626; color: #fcfcf2; }

/* Cuerpo del documento */
.cg-legal { max-width: 46rem; font-size: 1rem; line-height: 1.75; color: #262626; counter-reset: none; }
.cg-legal p { margin: 0 0 1em; text-align: justify; hyphens: auto; }
.cg-legal-resumen { margin-bottom: 2.6rem; padding: 1.6rem 1.8rem; border-left: 4px solid #4b2e83; background: #f6f3fa; }
.cg-legal-resumen-tag { margin: 0 0 .3rem !important; font-size: .78rem; font-weight: 800; letter-spacing: .2em; text-align: left !important; color: #4b2e83; }
.cg-legal-resumen-meta { margin: 0 0 .9rem !important; font-size: .74rem; letter-spacing: .06em; text-align: left !important; color: #6b6b6b; }
.cg-legal-resumen-txt { margin: 0 !important; font-size: 1.12rem; font-weight: 600; line-height: 1.6; text-align: left !important; }
.cg-legal-clausula { padding: 1.8rem 0 .6rem; border-top: 1px solid rgba(38, 38, 38, .14); scroll-margin-top: 110px; }
.cg-legal-clausula h2 { display: flex; gap: .5em; align-items: baseline; margin: 0 0 1rem; font-size: 1.18rem; font-weight: 700; line-height: 1.35; letter-spacing: .01em; text-transform: uppercase; color: #262626; }
.cg-legal-num { flex: none; min-width: 1.6em; color: #4b2e83; }
.cg-legal-incisos { margin: 0 0 1.2em; padding: 0; list-style: none; counter-reset: inciso; }
.cg-legal-incisos li { counter-increment: inciso; position: relative; margin: 0 0 .75em; padding-left: 2.2em; text-align: justify; hyphens: auto; }
.cg-legal-incisos li::before { content: counter(inciso, lower-alpha) ")"; position: absolute; left: .2em; top: 0; font-weight: 700; color: #4b2e83; }
.cg-legal-contacto { margin-top: 2.4rem; padding: 1.5rem 1.8rem; border: 1px solid #262626; border-radius: 4px; }
.cg-legal-contacto p { margin: 0 0 .4em; text-align: left; }
.cg-legal-contacto-t { font-size: .72rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: #6b6b6b; }
.cg-legal-contacto a { font-size: 1.1rem; font-weight: 700; color: #4b2e83; }
.cg-legal-contacto address { margin: .6em 0 0; font-size: .88rem; font-style: normal; line-height: 1.6; color: #555; }
.cg-legal-lista { margin: 1.6rem 0 0; padding: 0; list-style: none; border-top: 3px double #262626; }
.cg-legal-lista a { display: block; padding: 1.1rem 0; border-bottom: 1px solid rgba(38, 38, 38, .14); color: #262626; }
.cg-legal-lista b { display: block; font-size: 1.15rem; }
.cg-legal-lista span { font-size: .92rem; color: #555; }
.cg-legal-lista a:hover b { color: #4b2e83; }
@media (max-width: 849px) {
	.cg-legal-titulo { grid-template-columns: 1fr; }
	.cg-legal-sello { width: 5.6rem; height: 5.6rem; }
	.cg-legal-titulo h1, .cg-legal-h1 { font-size: 1.7rem; }
	.cg-legal-aside > .col-inner { position: static; }
	.cg-legal p, .cg-legal-incisos li { text-align: left; }
}

/* Impresión: solo el documento */
@media print {
	#header, #footer, .header-wrapper, .footer-wrapper, .cg-legal-aside, .cg-legal-migas, .absolute-footer, .back-to-top, .quiz-fab, [class*="whatsapp"] { display: none !important; }
	.cg-legal-doc-sec .col { flex-basis: 100% !important; max-width: 100% !important; }
	.cg-legal { max-width: none; font-size: 11pt; }
	.cg-legal-clausula { break-inside: avoid-page; }
	.cg-legal-head, .cg-legal-doc-sec { padding: 0 !important; background: #fff !important; }
}

/* Documentos legales: piezas extra de la Política de Cookies (meta, introducción, subtítulos, tablas y listas) */
.cg-legal-meta { margin: .8rem 0 0; font-size: .82rem; letter-spacing: .04em; color: #6b6b6b; }
.cg-legal-intro { margin-bottom: 2rem !important; padding: 1.3rem 1.6rem; border-left: 4px solid #4b2e83; background: #f6f3fa; font-size: 1.05rem; text-align: left !important; }
.cg-legal-sub { display: flex; gap: .6em; align-items: baseline; margin: 1.8rem 0 .7rem; font-size: 1rem; font-weight: 700; line-height: 1.4; color: #262626; }
.cg-legal-sub span { flex: none; font-weight: 800; color: #4b2e83; }
.cg-legal-tabla-wrap { margin: 0 0 1.4em; overflow-x: auto; }
.cg-legal-tabla { width: 100%; margin: 0; border-collapse: collapse; border-top: 2px solid #262626; border-bottom: 1px solid #262626; font-size: .86rem; line-height: 1.5; }
.cg-legal-tabla th { padding: .7em .8em; border: 0; border-bottom: 1px solid #262626; background: #fcfcf2; font-size: .64rem; font-weight: 800; letter-spacing: .14em; text-align: left; text-transform: uppercase; color: #262626; }
.cg-legal-tabla td { padding: .8em; border: 0; border-bottom: 1px solid rgba(38, 38, 38, .12); vertical-align: top; text-align: left; color: #333; }
.cg-legal-tabla tr:last-child td { border-bottom: 0; }
.cg-legal-tabla td:first-child { font-weight: 700; color: #262626; }
.cg-legal-estado { display: inline-block; padding: .1em .6em; border: 1px solid rgba(38, 38, 38, .35); border-radius: 99px; font-size: .74rem; font-weight: 700; white-space: nowrap; color: #6b6b6b; }
.cg-legal-opciones, .cg-legal-proveedores, .cg-legal-navegadores { margin: 0 0 1.2em; padding: 0; list-style: none; }
.cg-legal-opciones li { margin: 0 0 .6em; padding: .8em 1em; border: 1px solid rgba(38, 38, 38, .14); border-radius: 4px; text-align: left; }
.cg-legal-proveedores li { margin: 0; padding: .45em 0; border-bottom: 1px solid rgba(38, 38, 38, .1); text-align: left; }
.cg-legal-proveedores b { display: inline-block; min-width: 6.5em; }
.cg-legal a[target="_blank"] { color: #4b2e83; text-decoration: underline; text-underline-offset: .2em; }
.cg-legal-navegadores { display: flex; flex-wrap: wrap; gap: .5rem; }
.cg-legal-navegadores li { margin: 0; }
.cg-legal-navegadores a { display: inline-block; padding: .35em .9em; border: 1px solid #4b2e83; border-radius: 99px; font-size: .85rem; font-weight: 700; text-decoration: none !important; }
.cg-legal-navegadores a:hover { background: #4b2e83; color: #fff; }
@media (max-width: 849px) {
	.cg-legal-tabla thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
	.cg-legal-tabla, .cg-legal-tabla tbody, .cg-legal-tabla tr, .cg-legal-tabla td { display: block; width: 100%; }
	.cg-legal-tabla tr { padding: .6em 0; border-bottom: 1px solid rgba(38, 38, 38, .2); }
	.cg-legal-tabla td { padding: .3em 0; border: 0; }
	.cg-legal-tabla td::before { content: attr(data-label); display: block; font-size: .6rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: #8a8a8a; }
}

/* Aviso de Privacidad: recuadro del correo para derechos ARCO */
.cg-legal-arco { margin: 0 0 1.4em; padding: 1.2rem 1.5rem; border: 1px solid #4b2e83; border-radius: 4px; background: #f6f3fa; }
.cg-legal-arco p { margin: 0 !important; text-align: left !important; }
.cg-legal-arco-t { font-size: .68rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: #6b6b6b; }
.cg-legal-arco-mail a { font-size: 1.2rem; font-weight: 700; color: #4b2e83; }

/* ========== Blog editorial [cg_blog] (inc/cg-blog.php) ========== */
.cg-blog-hero-lead { max-width: 38em; font-size: 1.15rem; line-height: 1.6; color: #444; }
.cg-blog-hero-lista { margin: 0; padding: 0; list-style: none; border-top: 2px solid #262626; }
.cg-blog-hero-lista li { margin: 0; padding: .8rem 0; border-bottom: 1px solid rgba(38, 38, 38, .14); font-size: .88rem; line-height: 1.45; color: #555; }
.cg-blog-hero-lista b { display: block; font-size: .98rem; color: #262626; }

.cg-blog-barra { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem 2rem; margin-bottom: 2.4rem; padding-bottom: 1.2rem; border-bottom: 2px solid #262626; }
.cg-blog-temas { display: flex; flex-wrap: wrap; gap: .45rem; }
.cg-blog-temas a { padding: .4em 1em; border: 1px solid rgba(38, 38, 38, .25); border-radius: 99px; font-size: .84rem; font-weight: 700; color: #262626; transition: background .2s ease, color .2s ease, border-color .2s ease; }
.cg-blog-temas a small { margin-left: .2em; font-size: .78em; font-weight: 600; opacity: .6; }
.cg-blog-temas a:hover { border-color: #1e7f61; color: #1e7f61; }
.cg-blog-temas a.is-on { border-color: #262626; background: #262626; color: #fcfcf2; }
.cg-blog-buscar { display: flex; flex: 0 1 20rem; margin: 0; }
.cg-blog-buscar input { flex: 1; height: 2.6rem; margin: 0; padding: 0 1rem; border: 1px solid rgba(38, 38, 38, .3); border-right: 0; border-radius: 99px 0 0 99px; box-shadow: none; font-size: .9rem; }
.cg-blog-buscar button { height: 2.6rem; min-height: 0; margin: 0; padding: 0 1.1rem; border: 0; border-radius: 0 99px 99px 0; background: #262626; font-size: .8rem; font-weight: 700; letter-spacing: normal; text-transform: none; color: #fcfcf2; }

.cg-blog-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .25em .9em; margin: 0 0 .6em; font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #8a8a8a; }
.cg-blog-cat { color: #1e7f61; }
.cg-blog-cat:hover { color: #262626; }

.cg-blog-portada { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); gap: 2.4rem; margin-bottom: 3rem; }
.cg-blog-lead { padding-right: 2.4rem; border-right: 1px solid rgba(38, 38, 38, .14); }
.cg-blog-lead-img { display: block; margin-bottom: 1.4rem; overflow: hidden; border-radius: 6px; }
.cg-blog-lead-img img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; transition: transform .5s ease; }
.cg-blog-lead:hover .cg-blog-lead-img img { transform: scale(1.03); }
.cg-blog-kicker { display: inline-block; margin: 0 0 .9rem; padding: .2em .7em; border-radius: 99px; background: var(--fs-color-primary); font-size: .66rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: #262626; }
.cg-blog-lead-t { margin: 0 0 .5em; font-size: 2.4rem; line-height: 1.12; letter-spacing: -.015em; }
.cg-blog-lead-t a, .cg-blog-side-item h3 a, .cg-blog-row h3 a { color: #262626; background-image: linear-gradient(currentColor, currentColor); background-size: 0 1.5px; background-position: 0 100%; background-repeat: no-repeat; transition: background-size .35s ease; }
.cg-blog-lead-t a:hover, .cg-blog-side-item h3 a:hover, .cg-blog-row h3 a:hover { background-size: 100% 1.5px; }
.cg-blog-lead-x { margin: 0 0 1.2em; font-size: 1.08rem; line-height: 1.6; color: #444; }
.cg-blog-leer { font-size: .9rem; font-weight: 700; color: #1e7f61; }
.cg-blog-side { display: flex; flex-direction: column; }
.cg-blog-side-item { padding: 0 0 1.4rem; margin-bottom: 1.4rem; border-bottom: 1px solid rgba(38, 38, 38, .14); }
.cg-blog-side-item:last-child { margin-bottom: 0; border-bottom: 0; }
.cg-blog-side-item h3 { margin: 0 0 .4em; font-size: 1.25rem; line-height: 1.25; }
.cg-blog-side-item p { margin: 0; font-size: .9rem; line-height: 1.55; color: #555; }

.cg-blog-indice-t { margin: 0 0 .4rem; padding-bottom: .7rem; border-bottom: 2px solid #262626; font-size: .72rem; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; color: #262626; }
.cg-blog-indice ol { margin: 0; padding: 0; list-style: none; counter-reset: cgb var(--cg-start, 0); }
.cg-blog-row { counter-increment: cgb; display: grid; grid-template-columns: 4.4rem minmax(0, 1fr) auto; gap: 1.4rem; align-items: start; margin: 0; padding: 1.4rem 0; border-bottom: 1px solid rgba(38, 38, 38, .14); }
.cg-blog-num::before { content: counter(cgb, decimal-leading-zero); font-size: 2.6rem; font-weight: 800; line-height: 1; color: transparent; -webkit-text-stroke: 1.5px #1e7f61; transition: color .3s ease; }
.cg-blog-row:hover .cg-blog-num::before { color: var(--fs-color-primary); -webkit-text-stroke-color: var(--fs-color-primary); }
.cg-blog-row h3 { margin: 0 0 .35em; font-size: 1.3rem; line-height: 1.25; }
.cg-blog-row p { margin: 0; font-size: .92rem; line-height: 1.55; color: #555; }
.cg-blog-row-img { display: block; width: 9rem; overflow: hidden; border-radius: 6px; }
.cg-blog-row-img img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }

.cg-blog-pag { display: flex; justify-content: center; gap: .4rem; margin-top: 2.4rem; }
.cg-blog-pag a, .cg-blog-pag span { display: grid; place-items: center; min-width: 2.4rem; height: 2.4rem; padding: 0 .6rem; border: 1px solid rgba(38, 38, 38, .25); border-radius: 99px; font-size: .9rem; font-weight: 700; color: #262626; }
.cg-blog-pag span { border-color: #262626; background: #262626; color: #fcfcf2; }
.cg-blog-pag a:hover { border-color: #1e7f61; color: #1e7f61; }

.cg-blog-vacio { padding: 3rem 2rem; border: 1.5px dashed rgba(38, 38, 38, .25); border-radius: 16px; text-align: center; background: #fcfcf2; }
.cg-blog-vacio-t { max-width: 30em; margin: 0 auto .6em; font-size: 1.4rem; font-weight: 700; line-height: 1.3; color: #262626; }
.cg-blog-vacio p:last-child { margin: 0; color: #555; }
.cg-blog-vacio a { font-weight: 700; color: #1e7f61; }

.cg-blog-herr { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.cg-blog-herr > * { display: flex; flex-direction: column; gap: .35rem; padding: 1.3rem 1.4rem; border-radius: 16px; background: #fff; border-top: 3px solid var(--fs-color-primary); color: #262626; transition: transform .25s ease, box-shadow .25s ease; }
.cg-blog-herr > a:hover { transform: translateY(-3px); box-shadow: 0 16px 30px -20px rgba(30, 127, 97, .6); color: #262626; }
.cg-blog-herr b { font-size: 1.05rem; }
.cg-blog-herr span { flex: 1; font-size: .88rem; line-height: 1.5; color: #555; }
.cg-blog-herr i, .cg-blog-herr-link { margin-top: .4rem; font-size: .88rem; font-style: normal; font-weight: 700; color: #1e7f61; }
.cg-blog-herr-link { align-self: flex-start; min-height: 0; padding: 0; border: 0; background: none; letter-spacing: normal; line-height: 1.4; text-transform: none; cursor: pointer; }

@media (max-width: 849px) {
	.cg-blog-portada { grid-template-columns: 1fr; gap: 2rem; }
	.cg-blog-lead { padding-right: 0; border-right: 0; padding-bottom: 2rem; border-bottom: 1px solid rgba(38, 38, 38, .14); }
	.cg-blog-lead-t { font-size: 1.8rem; }
	.cg-blog-row { grid-template-columns: 3rem minmax(0, 1fr); }
	.cg-blog-num::before { font-size: 1.9rem; }
	.cg-blog-row-img { display: none; }
	.cg-blog-herr { grid-template-columns: 1fr; }
	.cg-blog-buscar { flex-basis: 100%; }
}
@media (prefers-reduced-motion: reduce) { .cg-blog-lead-img img, .cg-blog-temas a, .cg-blog-herr > * { transition: none; } }
.cg-blog-vacio .cg-eyebrow { justify-content: center; }
/* Blog · banda del newsletter: el formulario en línea dentro de un marco sutil sobre el fondo oscuro */
.cg-blog-news-form { padding: 1.4rem 1.5rem 1.2rem; border: 1px solid rgba(252, 252, 242, .18); border-radius: 16px; background: rgba(252, 252, 242, .04); }
.cg-blog-news-form .nl-form-wrap { max-width: none; }
.cg-blog-news-lista { margin: 1.6rem 0 0; padding: 0; list-style: none; border-top: 1px solid rgba(252, 252, 242, .18); }
.cg-blog-news-lista li { position: relative; margin: 0; padding: .9rem 0 .9rem 1.8rem; border-bottom: 1px solid rgba(252, 252, 242, .1); font-size: .88rem; line-height: 1.45; color: rgba(252, 252, 242, .7); }
.cg-blog-news-lista li::before { content: ""; position: absolute; left: .2rem; top: 1.15rem; width: .6rem; height: .6rem; border-radius: 50%; background: var(--fs-color-primary); }
.cg-blog-news-lista b { display: block; font-size: .98rem; color: #fcfcf2; }


/* =====================================================================
   Eventos y webinars: página /eventos-y-webinars/ (#172) y ficha de evento (templates/cg-evento.php)
   ===================================================================== */
.cg-ancla { display: block; position: relative; top: calc(-1 * (var(--wp-admin--admin-bar--height, 0px) + var(--cg-header-h, 70px) + 16px)); visibility: hidden; }
/* Indicador "en vivo": punto que late */
.cg-ev-live { display: inline-flex; align-items: center; gap: .6em; margin: 0 0 1rem; font-size: .72rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: #b3261e; }
.cg-ev-live > span { position: relative; width: .6rem; height: .6rem; border-radius: 50%; background: currentColor; }
.cg-ev-live > span::after { content: ""; position: absolute; inset: 0; border-radius: 50%; background: currentColor; animation: cg-ev-pulso 1.8s ease-out infinite; }
.cg-ev-live.is-off { color: #8a8a8a; }
.cg-ev-live.is-off > span::after { animation: none; }
@keyframes cg-ev-pulso { 0% { transform: scale(1); opacity: .7; } 100% { transform: scale(3); opacity: 0; } }

/* Portada */
.cg-ev-hero-lead { max-width: 30em; font-size: 1.2rem; line-height: 1.55; color: #444; }
.cg-ev-hero-cta { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1.6rem; margin-top: 1.8rem; }
.cg-ev-hero-cta .button { margin: 0; }
.cg-ev-hero-link { font-weight: 700; color: #262626; text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: .3em; }
.cg-ev-hero-link:hover { color: var(--fs-color-secondary); }
/* Boleto de admisión: cuerpo blanco + talón morado, muescas reales (máscara) y perforación */
.cg-ev-ticket { --stub: 6.4rem; --r: .85rem; max-width: 30rem; margin-left: auto; filter: drop-shadow(0 24px 28px rgba(38, 38, 38, .16)) drop-shadow(0 2px 3px rgba(38, 38, 38, .12)); transform: rotate(-2.5deg); transition: transform .5s cubic-bezier(.2, .8, .2, 1); animation: cg-ev-imprime .9s cubic-bezier(.2, .8, .2, 1) backwards; }
.cg-ev-ticket:hover { transform: rotate(0) translateY(-4px); }
@keyframes cg-ev-imprime { from { opacity: 0; transform: translateY(24px) rotate(2deg); } to { opacity: 1; transform: rotate(-2.5deg); } }
.cg-ev-ticket-in { display: grid; grid-template-columns: minmax(0, 1fr) var(--stub); border-radius: 10px; overflow: hidden;
	-webkit-mask: radial-gradient(circle var(--r) at calc(100% - var(--stub)) 0, #0000 98%, #000) top / 100% 51% no-repeat, radial-gradient(circle var(--r) at calc(100% - var(--stub)) 100%, #0000 98%, #000) bottom / 100% 51% no-repeat;
	mask: radial-gradient(circle var(--r) at calc(100% - var(--stub)) 0, #0000 98%, #000) top / 100% 51% no-repeat, radial-gradient(circle var(--r) at calc(100% - var(--stub)) 100%, #0000 98%, #000) bottom / 100% 51% no-repeat; }
.cg-ev-ticket-main { position: relative; padding: 1.5rem 1.7rem 1.3rem; background: #fff linear-gradient(90deg, #4b2e83 0 5px, transparent 5px); }
.cg-ev-ticket-top { display: flex; justify-content: space-between; gap: 1rem; margin: 0 0 1.3rem; padding-bottom: .7rem; border-bottom: 1px solid rgba(38, 38, 38, .12); font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .66rem; letter-spacing: .14em; text-transform: uppercase; color: #8a8a8a; }
.cg-ev-ticket-top span:first-child { font-weight: 700; color: #4b2e83; }
.cg-ev-ticket-k { margin: 0 0 .2rem; font-size: .7rem; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: #262626; }
.cg-ev-ticket-precio { display: flex; align-items: center; gap: .9rem; margin: 0 0 1.1rem; padding-bottom: 1.1rem; border-bottom: 2px dashed rgba(38, 38, 38, .22); }
.cg-ev-ticket-precio b { font-size: 4.2rem; line-height: .9; letter-spacing: -.05em; color: #1e7f61; }
.cg-ev-ticket-precio > span { display: grid; padding-left: .9rem; border-left: 2px solid #262626; font-size: 1.05rem; font-weight: 700; line-height: 1.2; color: #262626; }
.cg-ev-ticket-precio small { font-size: .74rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #b3261e; }
.cg-ev-ticket ul { display: grid; gap: .85rem; margin: 0 0 1.2rem; padding: 0; list-style: none; }
.cg-ev-ticket li { display: grid; grid-template-columns: 2.1rem minmax(0, 1fr); gap: .75rem; align-items: start; margin: 0; font-size: .84rem; line-height: 1.4; color: #555; }
.cg-ev-ticket li > i { display: grid; place-items: center; width: 2.1rem; height: 2.1rem; border-radius: 50%; background: #f1eef5; color: #4b2e83; }
.cg-ev-ticket li:first-child > i { background: #fdecea; color: #b3261e; }
.cg-ev-ticket li b { display: block; font-size: .96rem; color: #262626; }
.cg-ev-ticket-pie { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .8rem; margin: 0; padding-top: .9rem; border-top: 1px solid rgba(38, 38, 38, .12); }
.cg-ev-ticket-pie div { margin: 0; }
.cg-ev-ticket-pie dt { display: block; margin: 0; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .6rem; font-weight: 400; letter-spacing: .14em; text-transform: uppercase; color: #8a8a8a; }
.cg-ev-ticket-pie dd { display: block; margin: .1rem 0 0; font-size: .82rem; letter-spacing: normal; text-transform: none; line-height: 1.3; font-weight: 700; color: #262626; }
/* Talón: perforación, "Admite 1" vertical y código de barras */
.cg-ev-ticket-stub { position: relative; display: grid; grid-template-columns: 1fr 1.7rem; gap: .5rem; padding: 1.3rem .9rem 1.3rem 1.1rem; background: #4b2e83; color: #fcfcf2; }
.cg-ev-ticket-stub::before { content: ""; position: absolute; top: calc(var(--r) + .3rem); bottom: calc(var(--r) + .3rem); left: -1px; border-left: 2px dashed rgba(252, 252, 242, .55); }
.cg-ev-ticket-admite { align-self: center; justify-self: center; writing-mode: vertical-rl; transform: rotate(180deg); font-size: 1.35rem; font-weight: 700; letter-spacing: .28em; text-transform: uppercase; white-space: nowrap; }
.cg-ev-ticket-barras { border-radius: 2px; background: repeating-linear-gradient(180deg, #fcfcf2 0 2px, transparent 2px 4px, #fcfcf2 4px 5px, transparent 5px 8px, #fcfcf2 8px 11px, transparent 11px 12px, #fcfcf2 12px 13px, transparent 13px 16px, #fcfcf2 16px 17px, transparent 17px 19px, #fcfcf2 19px 22px, transparent 22px 25px); opacity: .9; }

/* Encabezado de sección */
.cg-ev-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1rem 3rem; margin-bottom: 2.2rem; padding-bottom: 1.4rem; border-bottom: 2px solid #262626; }
.cg-ev-head > p { max-width: 26em; margin: 0; color: #555; }

/* Próximo webinar */
.cg-ev-next { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); border: 1.5px solid #262626; border-radius: 6px; overflow: hidden; }
.cg-ev-next-main { padding: 2.2rem; }
.cg-ev-next-t { margin: 0 0 .4rem; font-size: 2rem; line-height: 1.1; letter-spacing: -.02em; }
.cg-ev-next-t a { color: #262626; }
.cg-ev-next-sub { margin: 0 0 1.2rem; font-size: 1.1rem; color: #555; }
.cg-ev-next-fecha { margin: 0 0 .3rem; font-weight: 700; color: #262626; }
.cg-ev-next-ponente { margin: 0; color: #555; }
.cg-ev-next-cta { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1.6rem; }
.cg-ev-next-cta .button { margin: 0; }
.cg-ev-next-reloj { display: flex; flex-direction: column; justify-content: center; gap: 1rem; padding: 2.2rem; background: #4b2e83; color: #fcfcf2; }
.cg-ev-next-reloj > p { margin: 0; font-size: .72rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: rgba(252, 252, 242, .7); }
.cg-ev-reloj { display: grid; grid-template-columns: repeat(4, 1fr); gap: .5rem; }
.cg-ev-reloj > span { display: grid; gap: .3rem; padding: .7rem .2rem; border-radius: 4px; background: rgba(252, 252, 242, .1); font-size: .62rem; font-weight: 700; letter-spacing: .12em; text-align: center; text-transform: uppercase; color: rgba(252, 252, 242, .65); }
.cg-ev-reloj > span > b { font-size: 2rem; line-height: 1; letter-spacing: -.02em; font-variant-numeric: tabular-nums; color: #fcfcf2; }
.cg-ev-next-detalles { font-weight: 700; color: #fcfcf2; }
.cg-ev-next-detalles:hover { color: var(--fs-color-primary); }
/* Sin próximo evento: invitación a recibir aviso */
.cg-ev-vacio { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 3rem; padding: 2.4rem; border: 1.5px solid #262626; border-radius: 6px; background: #fcfcf2; }
.cg-ev-vacio-txt h3 { margin: 0 0 .7rem; font-size: 1.8rem; line-height: 1.15; letter-spacing: -.02em; color: #262626; }
.cg-ev-vacio-txt > p:not(.cg-ev-live) { font-size: 1.05rem; line-height: 1.6; color: #444; }
.cg-ev-vacio .cg-ev-live { color: #4b2e83; }
.cg-ev-vacio-lista { margin: 1.4rem 0 0; padding: 0; list-style: none; border-top: 2px solid #262626; }
.cg-ev-vacio-lista li { margin: 0; padding: .7rem 0 .7rem 1.7rem; border-bottom: 1px solid rgba(38, 38, 38, .12); background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231e7f61' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 5 5 9-10'/%3E%3C/svg%3E") left .9rem / 1rem no-repeat; font-weight: 700; color: #262626; }
.cg-ev-vacio-form { align-self: start; padding: 1.6rem; border-radius: 6px; background: #fff; box-shadow: 0 18px 40px -28px rgba(38, 38, 38, .45); }
.cg-ev-vacio-form .nl-form-wrap { max-width: none; }

/* Por qué asistir */
.cg-ev-porque { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; margin: 0; padding: 0; list-style: none; counter-reset: cgev; border-top: 2px solid #262626; }
.cg-ev-porque li { counter-increment: cgev; margin: 0; padding: 1.6rem 1.6rem 1.4rem 0; }
.cg-ev-porque li + li { padding-left: 1.6rem; border-left: 1px solid rgba(38, 38, 38, .14); }
.cg-ev-porque li::before { content: counter(cgev, decimal-leading-zero); display: block; margin-bottom: 1rem; font-size: .8rem; font-weight: 700; letter-spacing: .14em; color: #4b2e83; }
.cg-ev-porque b { display: block; margin-bottom: .4rem; font-size: 1.15rem; line-height: 1.25; color: #262626; }
.cg-ev-porque span { font-size: .92rem; line-height: 1.55; color: #555; }

/* Biblioteca de grabaciones */
.cg-ev-filtros { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1.8rem; }
.cg-ev-filtros button { min-height: 0; margin: 0; padding: .5em 1.1em; border: 1.5px solid rgba(38, 38, 38, .25); border-radius: 99px; background: transparent; font-size: .82rem; font-weight: 700; line-height: 1.3; letter-spacing: normal; text-transform: none; color: #262626; transition: background .2s ease, border-color .2s ease, color .2s ease; }
.cg-ev-filtros button:hover { border-color: #262626; }
.cg-ev-filtros button.is-on { border-color: #262626; background: #262626; color: #fcfcf2; }
.cg-ev-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 22rem), 1fr)); gap: 2.4rem 2rem; }
.cg-ev-card[hidden] { display: none; }
.cg-ev-thumb { position: relative; display: block; width: 100%; min-height: 0; margin: 0; padding: 0; overflow: hidden; border: 0; border-radius: 6px; background: #262626; aspect-ratio: 16 / 9; cursor: pointer; }
.cg-ev-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease, opacity .3s ease; }
.cg-ev-thumb:hover img, .cg-ev-thumb:focus-visible img { transform: scale(1.04); opacity: .85; }
.cg-ev-play { position: absolute; top: 50%; left: 50%; display: grid; place-items: center; width: 4rem; height: 4rem; margin: -2rem 0 0 -2rem; border-radius: 50%; background: #fcfcf2; color: #4b2e83; box-shadow: 0 10px 30px -10px rgba(0, 0, 0, .6); transition: transform .3s ease, background .3s ease, color .3s ease; }
.cg-ev-play svg { margin-left: 3px; }
.cg-ev-thumb:hover .cg-ev-play, .cg-ev-thumb:focus-visible .cg-ev-play { transform: scale(1.1); background: #4b2e83; color: #fcfcf2; }
.cg-ev-dur { position: absolute; left: .8rem; bottom: .8rem; padding: .3em .7em; border-radius: 3px; background: rgba(38, 38, 38, .85); font-size: .68rem; font-weight: 700; line-height: 1.3; letter-spacing: .1em; text-transform: uppercase; color: #fcfcf2; }
.cg-ev-card-txt { padding-top: 1.1rem; }
.cg-ev-card-meta { display: flex; flex-wrap: wrap; gap: .4rem 1rem; margin: 0 0 .5rem; font-size: .72rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #8a8a8a; }
.cg-ev-card-meta span { color: #4b2e83; }
.cg-ev-card h3 { margin: 0 0 .3rem; font-size: 1.45rem; line-height: 1.2; letter-spacing: -.01em; }
.cg-ev-card h3 a { color: #262626; }
.cg-ev-card h3 a:hover { color: #4b2e83; }
.cg-ev-card-sub { margin: 0 0 .9rem; color: #555; }
.cg-ev-card-links { display: flex; flex-wrap: wrap; gap: .4rem 1.4rem; margin: 0; padding-top: .8rem; border-top: 1px solid rgba(38, 38, 38, .14); font-size: .88rem; font-weight: 700; }
.cg-ev-card-links a { color: #1e7f61; }
/* Herramienta relacionada en la tarjeta de grabación (2026-10-15): color por público */
.cg-ev-card-herr { display: flex; flex-wrap: wrap; align-items: baseline; gap: .3rem .9rem; margin: .7rem 0 0; font-size: .84rem; }
.cg-ev-card-herr > span { font-weight: 600; color: #8a8a8a; }
.cg-ev-card-herr a { font-weight: 800; color: #4b2e83; }
.cg-ev-card-herr a.is-personas { color: #17795b; }
.cg-ev-nada { color: #555; }
/* Ventana del reproductor */
.cg-ev-modal { position: fixed; inset: 0; z-index: 100000; display: grid; place-items: center; padding: 1rem; background: rgba(20, 16, 28, .88); }
.cg-ev-modal[hidden] { display: none; }
.cg-ev-modal-box { position: relative; width: min(100%, 1100px); }
.cg-ev-modal-video { aspect-ratio: 16 / 9; background: #000; }
.cg-ev-modal-video iframe, .cg-evf-iframe iframe { display: block; width: 100%; height: 100%; border: 0; }
.cg-ev-modal-x { position: absolute; right: 0; bottom: 100%; min-height: 0; margin: 0 0 .6rem; padding: .4em .7em; border: 0; background: transparent; font-size: 1.3rem; line-height: 1; color: #fcfcf2; cursor: pointer; }

/* Quién imparte */
.cg-ev-host-sello { display: grid; place-items: center; width: min(100%, 15rem); aspect-ratio: 1; margin: 0 auto; border: 1.5px solid rgba(252, 252, 242, .35); border-radius: 50%; box-shadow: inset 0 0 0 10px #262626, inset 0 0 0 11px rgba(252, 252, 242, .2); }
.cg-ev-host-sello > span { font-size: 4.2rem; font-weight: 700; letter-spacing: -.04em; color: var(--fs-color-primary); }
.cg-ev-host p { color: rgba(252, 252, 242, .8); }
.cg-ev-host-datos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.4rem; margin: 1.6rem 0 0; padding: 1.2rem 0 0; list-style: none; border-top: 1px solid rgba(252, 252, 242, .18); }
.cg-ev-host-datos li { margin: 0; font-size: .86rem; line-height: 1.45; color: rgba(252, 252, 242, .7); }
.cg-ev-host-datos b { display: block; margin-bottom: .2rem; font-size: 1rem; color: #fcfcf2; }

/* ---------- Ficha del evento ---------- */
.cg-evf-hero { padding: 3.2rem 0 2.8rem; background: #fcfcf2; border-bottom: 1px solid rgba(38, 38, 38, .12); }
.cg-evf-t { margin: 0 0 .5rem; font-size: 3rem; line-height: 1.05; }
.cg-evf-sub { max-width: 34em; margin: 0 0 1.8rem; font-size: 1.3rem; line-height: 1.4; color: #444; }
.cg-evf-datos { display: flex; flex-wrap: wrap; margin: 0; padding: 0; list-style: none; border-top: 2px solid #262626; }
.cg-evf-datos li { margin: 0; padding: .9rem 2.2rem .2rem 0; font-weight: 700; color: #262626; }
.cg-evf-datos b { display: block; margin-bottom: .2rem; font-size: .66rem; letter-spacing: .18em; text-transform: uppercase; color: #8a8a8a; }
.cg-evf-cuerpo { display: grid; grid-template-columns: minmax(0, 1fr) 22rem; gap: 3.5rem; padding-top: 3rem; padding-bottom: 4rem; }
.cg-evf-video { margin-bottom: 2.6rem; }
.cg-evf-thumb .cg-ev-play { width: 5rem; height: 5rem; margin: -2.5rem 0 0 -2.5rem; }
.cg-evf-iframe { aspect-ratio: 16 / 9; overflow: hidden; border-radius: 6px; background: #000; }
.cg-evf-sec { margin-bottom: 2.8rem; }
.cg-evf-sec > .cg-eyebrow { margin-bottom: 1.1rem; }
.cg-evf-desc p { font-size: 1.08rem; line-height: 1.7; color: #333; }
.cg-evf-desc h3 { margin: 1.8rem 0 .5rem; font-size: 1rem; }
.cg-evf-temario { margin: 0; padding: 0; list-style: none; counter-reset: cgevt; border-top: 2px solid #262626; }
.cg-evf-temario li { counter-increment: cgevt; display: grid; grid-template-columns: 3rem 1fr; margin: 0; padding: 1rem 0; border-bottom: 1px solid rgba(38, 38, 38, .14); font-size: 1.05rem; line-height: 1.5; color: #262626; }
.cg-evf-temario li::before { content: counter(cgevt, decimal-leading-zero); font-weight: 700; color: #4b2e83; }
.cg-evf-ponente { display: grid; grid-template-columns: 5.5rem minmax(0, 1fr); gap: 1.6rem; padding: 1.6rem; border: 1px solid rgba(38, 38, 38, .14); border-radius: 6px; background: #fcfcf2; }
.cg-evf-avatar { display: grid; place-items: center; width: 5.5rem; height: 5.5rem; border-radius: 50%; background: #4b2e83; font-size: 1.7rem; font-weight: 700; color: #fcfcf2; }
.cg-evf-ponente h2 { margin: 0; font-size: 1.4rem; }
.cg-evf-cargo { margin: .1rem 0 .9rem; font-size: .72rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: #1e7f61; }
.cg-evf-ponente p:not(.cg-evf-cargo) { margin: 0 0 .7em; font-size: .95rem; line-height: 1.6; color: #444; }
.cg-evf-h2 { font-size: 1.5rem; }
/* ---------- Compartir en redes (bloque UX compartir-en-redes, 2026-10-15) ---------- */
.cg-compartir { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1rem; margin-top: 1.4rem; }
.cg-compartir-t { margin: 0; font-size: .7rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: #8a8a8a; }
.cg-compartir .share-icons { margin: 0; }
.cg-compartir .share-icons a.button.icon { margin: 0 .35rem 0 0; border-color: rgba(38, 38, 38, .35); color: #262626; }
.cg-compartir .share-icons a.button.icon:hover { border-color: #4b2e83; background: #4b2e83; color: #fff; }
.cg-compartir .share-icons a.whatsapp:hover { border-color: #2eb98f; background: #2eb98f; }
.cg-evf-hero .cg-compartir { margin-top: 1.6rem; }
/* ---------- Herramientas relacionadas con el webinar (2026-10-15): color por público (empresas morado, personas verde) ---------- */
.cg-evf-herr-lista { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr)); gap: 1rem; }
.cg-evf-herr-card { --cg-herr: #4b2e83; --cg-herr-bg: #f1eef5; display: flex; flex-direction: column; gap: .45rem; padding: 1.4rem 1.5rem 1.3rem; border: 1px solid rgba(38, 38, 38, .14); border-top: 4px solid var(--cg-herr); border-radius: 6px; background: #fff; color: #262626; transition: box-shadow .2s, transform .2s; }
.cg-evf-herr-card.is-personas { --cg-herr: #2eb98f; --cg-herr-bg: #e6f7f0; }
.cg-evf-herr-card:hover, .cg-evf-herr-card:focus-visible { box-shadow: 0 14px 34px rgba(38, 38, 38, .1); transform: translateY(-2px); color: #262626; }
.cg-evf-herr-meta { align-self: flex-start; padding: .22rem .65rem; border-radius: 99px; background: var(--cg-herr-bg); font-size: .7rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: #4b2e83; }
.cg-evf-herr-card.is-personas .cg-evf-herr-meta, .cg-evf-herr-card.is-personas .cg-evf-herr-cta { color: #17795b; }
.cg-evf-herr-n { font-size: 1.2rem; font-weight: 800; line-height: 1.25; }
.cg-evf-herr-d { flex: 1; font-size: .95rem; line-height: 1.55; color: #555; }
.cg-evf-herr-cta { display: inline-flex; align-items: center; gap: .4rem; margin-top: .4rem; font-weight: 800; color: #4b2e83; }
.cg-evf-herr-card:hover .cg-evf-herr-cta svg { transform: translateX(3px); }
.cg-evf-herr-cta svg { transition: transform .2s; }
/* ---------- Material del webinar (2026-10-14): ficha del archivo + formulario embebido en un solo panel ---------- */
.cg-evf-mat-h { margin-bottom: .5rem; font-size: clamp(1.5rem, 2.4vw, 1.9rem); line-height: 1.15; letter-spacing: -.015em; }
.cg-evf-mat-lede { max-width: 34em; margin: 0 0 1.5rem; font-size: 1.04rem; line-height: 1.6; color: #555; }
.cg-evf-mat { overflow: hidden; border: 1px solid rgba(38, 38, 38, .14); border-top: 2px solid #4b2e83; border-radius: 6px; background: #fff; box-shadow: 0 18px 44px rgba(38, 38, 38, .06); }
.cg-evf-mat-ficha { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 1rem 1.2rem; padding: 1.5rem 1.8rem; border-bottom: 1px dashed rgba(38, 38, 38, .18); background: #fcfcf2; }
.cg-evf-mat-doc { position: relative; display: block; width: 46px; color: #4b2e83; }
.cg-evf-mat-doc svg { display: block; width: 46px; height: auto; }
.cg-evf-mat-doc b { position: absolute; left: -7px; bottom: 7px; padding: .12rem .38rem; border-radius: 3px; background: #4b2e83; font-size: .6rem; font-weight: 800; letter-spacing: .08em; line-height: 1.3; color: #fff; }
.cg-evf-mat-nombre { margin: 0; font-size: 1.06rem; font-weight: 800; line-height: 1.3; color: #262626; }
.cg-evf-mat-meta { margin: .25rem 0 0; font-size: .82rem; font-weight: 600; color: #8a8a8a; }
.cg-evf-mat-sellos { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: .45rem; margin: 0; padding: 0; list-style: none; }
.cg-evf-mat-sellos li { display: inline-flex; align-items: center; gap: .35rem; margin: 0; padding: .28rem .75rem; border: 1px solid rgba(46, 185, 143, .4); border-radius: 99px; background: #fff; font-size: .76rem; font-weight: 700; color: #1e7f61; }
.cg-evf-mat-sellos li::before { content: "✓"; font-weight: 800; }
.cg-evf-mat .lead-form-section { padding: 0; background: transparent; }
:root body .cg-evf-mat .cgf-ed .lf-card { max-width: none; padding: 1.8rem 1.8rem 1.6rem; border-top: 0; box-shadow: none; }
:root body .cg-evf-mat .cgf-ed .lf-submit-btn { width: 100%; justify-content: center; }
:root body .cg-evf-mat .cgf-ed .lf-check-row { margin-bottom: 1.4rem; }
@media (max-width: 549px) {
	.cg-evf-mat-ficha { padding: 1.2rem; }
	:root body .cg-evf-mat .cgf-ed .lf-card { padding: 1.4rem 1.2rem 1.3rem; }
}
.cg-evf-aside { align-self: stretch; }
.cg-evf-card { position: sticky; top: calc(var(--wp-admin--admin-bar--height, 0px) + var(--cg-header-h, 70px) + 20px); padding: 1.6rem; border: 1.5px solid #262626; border-radius: 6px; background: #fff; box-shadow: 8px 8px 0 #4b2e83; }
.cg-evf-card-k { margin: 0 0 .8rem; font-size: .7rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: #8a8a8a; }
.cg-evf-card-t { margin: 0 0 .4rem; font-size: 1.3rem; font-weight: 700; line-height: 1.25; color: #262626; }
.cg-evf-card-p { font-size: .92rem; line-height: 1.55; color: #555; }
.cg-evf-card .nl-form-wrap { max-width: none; }
.cg-evf-reloj { padding: 0; background: none; }
.cg-evf-reloj .cg-ev-reloj > span { background: #f1eef5; color: #8a8a8a; }
.cg-evf-reloj .cg-ev-reloj > span > b { color: #4b2e83; }
.cg-evf-btn { width: 100%; margin: 1.2rem 0 .7rem; }
.cg-evf-ics { display: block; font-size: .88rem; font-weight: 700; text-align: center; color: #262626; }
.cg-evf-incluye { margin: 1.2rem 0 0; padding: 1rem 0 0; list-style: none; border-top: 1px dashed rgba(38, 38, 38, .25); font-size: .86rem; color: #555; }
.cg-evf-incluye li { margin: 0 0 .35rem; }
.cg-evf-volver { display: inline-block; margin-top: 1.4rem; font-size: .88rem; font-weight: 700; color: #262626; }
.cg-evf-mas { padding: 3.5rem 0; background: #262626; }
.cg-evf-mas .cg-eyebrow { color: var(--fs-color-primary); }
.cg-evf-mas-lista { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 18rem), 1fr)); gap: 1.4rem; margin-top: 1.2rem; }
.cg-evf-mas-lista a { display: grid; gap: .35rem; padding: 1.3rem 0; border-top: 2px solid rgba(252, 252, 242, .5); color: #fcfcf2; }
.cg-evf-mas-lista time { font-size: .7rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: rgba(252, 252, 242, .55); }
.cg-evf-mas-lista b { font-size: 1.25rem; line-height: 1.25; }
.cg-evf-mas-lista span { color: rgba(252, 252, 242, .7); }
.cg-evf-mas-lista i { font-style: normal; font-weight: 700; color: var(--fs-color-primary); }

@media (max-width: 849px) {
	.cg-ev-next, .cg-ev-vacio, .cg-evf-cuerpo { grid-template-columns: minmax(0, 1fr); }
	.cg-ev-vacio { gap: 1.8rem; padding: 1.6rem; }
	.cg-ev-porque { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.cg-ev-porque li:nth-child(3) { padding-left: 0; border-left: 0; }
	.cg-ev-porque li:nth-child(n+3) { border-top: 1px solid rgba(38, 38, 38, .14); }
	.cg-evf-card { position: static; }
	.cg-ev-ticket { margin: 2.4rem auto 0; }
}
@media (max-width: 549px) {
	.cg-ev-hero-lead { font-size: 1.05rem; }
	.cg-ev-next-main, .cg-ev-next-reloj { padding: 1.4rem; }
	.cg-ev-next-t { font-size: 1.6rem; }
	.cg-ev-vacio, .cg-ev-vacio-form { padding: 1.2rem; }
	.cg-ev-vacio-txt h3 { font-size: 1.45rem; }
	.cg-ev-porque { grid-template-columns: minmax(0, 1fr); }
	.cg-ev-porque li, .cg-ev-porque li + li { padding: 1.2rem 0; border-left: 0; }
	.cg-ev-porque li + li { border-top: 1px solid rgba(38, 38, 38, .14); }
	.cg-ev-host-datos { grid-template-columns: minmax(0, 1fr); gap: .9rem; }
	.cg-ev-host-sello { width: 9rem; }
	.cg-ev-host-sello > span { font-size: 2.8rem; }
	.cg-evf-t { font-size: 2.1rem; }
	.cg-evf-sub { font-size: 1.1rem; }
	.cg-evf-ponente { grid-template-columns: minmax(0, 1fr); }
	.cg-ev-reloj > span > b { font-size: 1.6rem; }
	.cg-ev-ticket { --stub: 4.4rem; transform: rotate(-1.5deg); animation: none; }
	.cg-ev-ticket-main { padding: 1.2rem 1.1rem 1.1rem 1.3rem; }
	.cg-ev-ticket-precio b { font-size: 3.4rem; }
	.cg-ev-ticket-stub { grid-template-columns: 1fr; padding: 1rem .6rem; }
	.cg-ev-ticket-barras { display: none; }
	.cg-ev-ticket-admite { font-size: 1.1rem; }
	.cg-ev-ticket-pie { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.cg-ev-ticket-pie div:last-child { display: none; }
}
@media (prefers-reduced-motion: reduce) {
	.cg-ev-live > span::after { animation: none; }
	.cg-ev-ticket { animation: none; }
	.cg-ev-ticket, .cg-ev-thumb img, .cg-ev-play { transition: none; }
}


/* =====================================================================
   Partners y colaboradores (/partners-y-colaboradores/, #12)
   ===================================================================== */
.cg-pt-lead { max-width: 32em; font-size: 1.15rem; line-height: 1.6; color: #444; }
.cg-pt-cta { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: 1.8rem; }
.cg-pt-cta .button { margin: 0; }
/* Diagrama de conjuntos: A (tu especialidad) ∩ B (nuestro criterio) = lente verde */
.cg-pt-venn { width: min(100%, 34rem); margin-left: auto; }
.cg-pt-venn-fig { position: relative; aspect-ratio: 1.67; }
.cg-pt-circulo { position: absolute; top: 0; display: flex; flex-direction: column; justify-content: center; gap: .5rem; width: 60%; aspect-ratio: 1; padding: 0 5.5%; border-radius: 50%; animation: cg-pt-entra-a 1s cubic-bezier(.2, .8, .2, 1) backwards; }
.cg-pt-circulo > i { display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: 50%; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .8rem; font-style: normal; font-weight: 700; }
.cg-pt-circulo > span { max-width: 8.5em; font-size: 1.25rem; font-weight: 700; line-height: 1.15; letter-spacing: -.01em; }
.cg-pt-circulo--tu { left: 0; padding-right: 25%; border: 1.5px solid #262626; background: #fff radial-gradient(rgba(38, 38, 38, .16) 1px, transparent 1.6px) 0 0 / 13px 13px; color: #262626; }
.cg-pt-circulo--tu > i { border: 1.5px solid #262626; background: #fcfcf2; }
.cg-pt-circulo--cg { right: 0; align-items: flex-end; padding-left: 25%; background: radial-gradient(circle at 72% 28%, #6c4aa9 0, #4b2e83 55%, #37205f 100%); box-shadow: inset 0 0 0 14px rgba(252, 252, 242, .05), inset 0 0 0 15px rgba(252, 252, 242, .22), 0 30px 50px -30px rgba(75, 46, 131, .8); text-align: right; color: #fcfcf2; animation-name: cg-pt-entra-b; }
.cg-pt-circulo--cg > i { background: #fcfcf2; color: #4b2e83; }
/* Intersección real: un círculo A que recorta un círculo B */
.cg-pt-lente { position: absolute; top: 0; left: 0; z-index: 1; width: 60%; aspect-ratio: 1; overflow: hidden; border-radius: 50%; pointer-events: none; animation: cg-pt-lente .7s .75s cubic-bezier(.2, .8, .2, 1) backwards; }
.cg-pt-lente::before { content: ""; position: absolute; top: 0; left: 66.667%; width: 100%; height: 100%; border-radius: 50%; background: linear-gradient(165deg, #3fd1a5 0%, #2eb98f 45%, #1e7f61 100%); }
.cg-pt-centro { position: absolute; top: 50%; left: 50%; z-index: 2; display: grid; justify-items: center; width: 17%; text-align: center; color: #fff; transform: translate(-50%, -50%); animation: cg-pt-sube .6s 1.05s ease backwards; }
.cg-pt-centro svg { margin-bottom: .35rem; }
.cg-pt-centro b { font-size: 1rem; line-height: 1.1; }
.cg-pt-centro span { font-size: .72rem; font-weight: 700; line-height: 1.2; opacity: .9; }
/* Etiquetas que flotan sobre el borde de cada conjunto */
.cg-pt-pills { margin: 0; padding: 0; list-style: none; }
.cg-pt-pills li { position: absolute; z-index: 3; margin: 0; padding: .32em .8em; border-radius: 99px; font-size: .72rem; font-weight: 700; line-height: 1.2; white-space: nowrap; box-shadow: 0 6px 14px -8px rgba(38, 38, 38, .5); animation: cg-pt-pop .5s cubic-bezier(.3, 1.6, .5, 1) backwards, cg-pt-flota 5s ease-in-out infinite; }
.cg-pt-pills--tu li { border: 1.5px solid #262626; background: #fcfcf2; color: #262626; }
.cg-pt-pills--cg li { background: #fcfcf2; color: #4b2e83; }
.cg-pt-pills--tu li:nth-child(1) { top: -3%; left: 17%; animation-delay: 1.1s, 0s; }
.cg-pt-pills--tu li:nth-child(2) { top: 10%; left: 3%; animation-delay: 1.2s, .6s; }
.cg-pt-pills--tu li:nth-child(3) { top: 29%; left: -6%; animation-delay: 1.3s, 1.2s; }
.cg-pt-pills--tu li:nth-child(4) { top: 74%; left: -3%; animation-delay: 1.4s, 1.8s; }
.cg-pt-pills--tu li:nth-child(5) { top: 95%; left: 15%; animation-delay: 1.5s, 2.4s; }
.cg-pt-pills--cg li:nth-child(1) { top: 4%; right: 2%; animation-delay: 1.3s, .3s; }
.cg-pt-pills--cg li:nth-child(2) { top: 89%; right: 17%; animation-delay: 1.4s, 1.5s; }
.cg-pt-pills--cg li:nth-child(3) { top: 74%; right: -2%; animation-delay: 1.5s, 2.7s; }
.cg-pt-venn-pie { display: flex; align-items: center; justify-content: center; gap: .7rem; margin: 1.6rem 0 0; font-size: .82rem; color: #555; text-align: center; }
.cg-pt-venn-pie span { padding: .2em .6em; border-radius: 4px; background: #262626; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .74rem; font-weight: 700; letter-spacing: .08em; color: #fcfcf2; white-space: nowrap; }
@keyframes cg-pt-entra-a { from { opacity: 0; transform: translateX(-14%); } }
@keyframes cg-pt-entra-b { from { opacity: 0; transform: translateX(14%); } }
@keyframes cg-pt-lente { from { opacity: 0; transform: scale(.94); } }
@keyframes cg-pt-sube { from { opacity: 0; transform: translate(-50%, -30%); } }
@keyframes cg-pt-pop { from { opacity: 0; scale: .6; } }
@keyframes cg-pt-flota { 0%, 100% { translate: 0 0; } 50% { translate: 0 -4px; } }

/* Con quién trabajamos */
.cg-pt-quien-in { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 2rem; padding: 1.1rem 0; border-top: 2px solid #262626; border-bottom: 1px solid rgba(38, 38, 38, .14); }
.cg-pt-quien-k { margin: 0; font-size: .7rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: #8a8a8a; }
.cg-pt-quien-in ul { display: flex; flex-wrap: wrap; gap: .4rem 1.6rem; margin: 0; padding: 0; list-style: none; }
.cg-pt-quien-in li { position: relative; margin: 0; padding-left: 1rem; font-size: 1.02rem; font-weight: 700; color: #262626; }
.cg-pt-quien-in li::before { content: ""; position: absolute; top: .55em; left: 0; width: .45rem; height: .45rem; border-radius: 50%; background: #2eb98f; }

/* Dos formas */
.cg-pt-dos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.6rem; }
.cg-pt-modo { position: relative; display: flex; flex-direction: column; padding: 2rem; border: 1.5px solid #262626; border-radius: 6px; background: #fff; transition: transform .3s ease, box-shadow .3s ease; }
.cg-pt-modo:hover { transform: translateY(-4px); box-shadow: 8px 8px 0 #262626; }
.cg-pt-modo--partner { background: #4b2e83; border-color: #4b2e83; color: #fcfcf2; }
.cg-pt-modo--partner:hover { box-shadow: 8px 8px 0 #2eb98f; }
.cg-pt-modo-n { margin: 0 0 1.4rem; font-size: .8rem; font-weight: 700; letter-spacing: .14em; color: #4b2e83; }
.cg-pt-modo--partner .cg-pt-modo-n { color: #2eb98f; }
.cg-pt-modo-tag { position: absolute; top: 1.8rem; right: 2rem; margin: 0; padding: .3em .8em; border-radius: 99px; background: #2eb98f; font-size: .66rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #fff; }
.cg-pt-modo h3 { margin: 0 0 .8rem; font-size: 2.2rem; line-height: 1; letter-spacing: -.02em; color: inherit; }
.cg-pt-modo-txt { margin: 0 0 1.6rem; font-size: 1rem; line-height: 1.65; color: #444; }
.cg-pt-modo--partner .cg-pt-modo-txt { color: rgba(252, 252, 242, .82); }
.cg-pt-modo dl { margin: 0 0 1.6rem; border-top: 2px solid currentColor; }
.cg-pt-modo dl > div { display: grid; grid-template-columns: 6rem minmax(0, 1fr); gap: 1rem; padding: .75rem 0; border-bottom: 1px solid rgba(38, 38, 38, .14); }
.cg-pt-modo--partner dl > div { border-bottom-color: rgba(252, 252, 242, .2); }
.cg-pt-modo dt { margin: 0; font-size: .68rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: #8a8a8a; }
.cg-pt-modo--partner dt { color: rgba(252, 252, 242, .6); }
.cg-pt-modo dd { margin: 0; font-size: .95rem; letter-spacing: normal; text-transform: none; font-weight: 700; line-height: 1.4; }
.cg-pt-modo-cta { margin-top: auto; font-size: 1rem; font-weight: 700; color: #1e7f61; }
.cg-pt-modo--partner .cg-pt-modo-cta { color: #2eb98f; }
.cg-pt-modo-cta span { display: inline-block; transition: transform .25s ease; }
.cg-pt-modo-cta:hover span { transform: translateX(4px); }

/* Por qué (oscuro) */
.cg-pt-cita { margin: 1.2rem 0 1rem; padding: 0; border: 0; font-size: 2.8rem; font-weight: 700; font-style: normal; line-height: 1.05; letter-spacing: -.025em; color: #fcfcf2; }
.cg-pt-cita em { font-style: normal; color: var(--fs-color-primary); }
.cg-pt-cita-pie { max-width: 24em; color: rgba(252, 252, 242, .7); }
.cg-pt-razones { margin: 0; padding: 0; list-style: none; counter-reset: cgpt; border-top: 2px solid rgba(252, 252, 242, .6); }
.cg-pt-razones li { counter-increment: cgpt; display: grid; grid-template-columns: 3.2rem minmax(0, 1fr); margin: 0; padding: 1.4rem 0; border-bottom: 1px solid rgba(252, 252, 242, .14); font-size: .95rem; line-height: 1.6; color: rgba(252, 252, 242, .72); }
.cg-pt-razones li::before { content: counter(cgpt, decimal-leading-zero); grid-row: span 2; font-size: .8rem; font-weight: 700; letter-spacing: .14em; color: var(--fs-color-primary); }
.cg-pt-razones b { margin-bottom: .3rem; font-size: 1.2rem; line-height: 1.3; color: #fcfcf2; }

/* Cómo funciona */
.cg-pt-pasos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem; margin: 0; padding: 0; list-style: none; counter-reset: cgpp; }
.cg-pt-pasos li { counter-increment: cgpp; position: relative; display: grid; align-content: start; gap: .4rem; margin: 0; padding-top: 4.2rem; font-size: .95rem; line-height: 1.6; color: #555; }
.cg-pt-pasos li::before { content: counter(cgpp); position: absolute; top: 0; left: 0; display: grid; place-items: center; width: 2.8rem; height: 2.8rem; border-radius: 50%; background: #4b2e83; font-size: 1.1rem; font-weight: 700; color: #fcfcf2; }
.cg-pt-pasos li:not(:last-child)::after { content: ""; position: absolute; top: 1.4rem; left: 3.6rem; right: -1.2rem; border-top: 2px dashed rgba(75, 46, 131, .35); }
.cg-pt-pasos b { font-size: 1.2rem; line-height: 1.3; color: #262626; }
.cg-pt-sec .cg-ev-head a { font-weight: 700; color: #4b2e83; }

@media (max-width: 849px) {
	.cg-pt-venn { margin: 2.8rem auto 0; padding: 0 4%; }
	.cg-pt-dos { grid-template-columns: minmax(0, 1fr); }
	.cg-pt-pasos { grid-template-columns: minmax(0, 1fr); gap: 1.6rem; }
	.cg-pt-pasos li { padding: 0 0 0 4rem; min-height: 2.8rem; }
	.cg-pt-pasos li:not(:last-child)::after { top: 3.2rem; bottom: -1.2rem; left: 1.4rem; right: auto; border-top: 0; border-left: 2px dashed rgba(75, 46, 131, .35); }
	.cg-pt-cita { font-size: 2.2rem; }
}
@media (max-width: 549px) {
	.cg-pt-lead { font-size: 1.02rem; }
	.cg-pt-circulo { gap: .3rem; }
	.cg-pt-circulo > i { display: none; }
	.cg-pt-circulo > span { font-size: .88rem; }
	.cg-pt-centro svg { width: 16px; height: 16px; margin-bottom: .15rem; }
	.cg-pt-centro b { font-size: .74rem; }
	.cg-pt-centro span { font-size: .58rem; }
	.cg-pt-pills li { font-size: .6rem; padding: .28em .6em; }
	.cg-pt-pills--tu li:nth-child(3) { left: -3%; }
	.cg-pt-venn-pie { flex-direction: column; gap: .4rem; font-size: .76rem; }
	.cg-pt-modo { padding: 1.4rem; }
	.cg-pt-modo-tag { top: 1.3rem; right: 1.4rem; }
	.cg-pt-modo h3 { font-size: 1.8rem; }
	.cg-pt-modo dl > div { grid-template-columns: minmax(0, 1fr); gap: .15rem; }
	.cg-pt-quien-in ul { flex-direction: column; }
	.cg-pt-quien-in li { font-size: .92rem; }
	.cg-pt-cita { font-size: 1.9rem; }
}
@media (prefers-reduced-motion: reduce) {
	.cg-pt-circulo, .cg-pt-modo, .cg-pt-modo-cta span { transition: none; }
	.cg-pt-circulo, .cg-pt-lente, .cg-pt-centro, .cg-pt-pills li { animation: none; }
}
.cg-pt-form .lead-form-section { scroll-margin-top: calc(var(--wp-admin--admin-bar--height, 0px) + var(--cg-header-h, 70px) + 8px); }


/* =====================================================================
   Trabaja con nosotros (/trabaja-con-nosotros/, #13) y ficha de vacante (templates/cg-vacante.php)
   ===================================================================== */
.cg-vac-hero { position: relative; overflow: hidden; }
.cg-vac-hero::before { content: ""; position: absolute; top: -30%; right: -12%; width: 46rem; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, rgba(75, 46, 131, .55), rgba(75, 46, 131, 0) 68%); pointer-events: none; }
.cg-vac-hero::after { content: ""; position: absolute; right: 6%; bottom: -5rem; width: 16rem; aspect-ratio: 1; border: 2px solid rgba(46, 185, 143, .35); border-radius: 50%; box-shadow: 0 0 0 2.4rem rgba(46, 185, 143, .06); pointer-events: none; }
.cg-vac-hero .row { position: relative; z-index: 1; }
.cg-vac-hero-lead { max-width: 36em; font-size: 1.2rem; line-height: 1.6; color: rgba(252, 252, 242, .78); }
.cg-vac-hero-busca { margin-top: 1.4rem; }
/* Buscador */
.cg-vac-buscador { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr) auto; align-items: stretch; margin: 0; border-radius: 10px; background: #fff; box-shadow: 0 30px 60px -30px rgba(0, 0, 0, .7); overflow: hidden; }
.cg-vac-campo { display: grid; gap: .15rem; margin: 0; padding: .95rem 1.3rem; border-right: 1px solid rgba(38, 38, 38, .12); cursor: text; }
.cg-vac-campo > span { font-size: .66rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: #8a8a8a; }
:root body .cg-vac-buscador .cg-vac-campo :is(input, select) { height: auto; min-height: 0; margin: 0; padding: .2rem 0; border: 0; border-radius: 0; background-color: transparent; box-shadow: none; font-size: 1.02rem; font-weight: 700; color: #262626; }
:root body .cg-vac-buscador .cg-vac-campo :is(input, select):focus { box-shadow: none; outline: none; }
.cg-vac-campo:focus-within { background: #f6f3fa; }
.cg-vac-campo--q { background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234B2E83' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E") 1.3rem center / 1.3rem no-repeat; padding-left: 3.2rem; }
.cg-vac-campo--q:focus-within { background-color: #f6f3fa; }
.cg-vac-buscar { min-height: 0; margin: 0; padding: 0 2rem; border: 0; border-radius: 0; background: #2eb98f; font-size: 1rem; font-weight: 700; letter-spacing: normal; text-transform: none; color: #fff; cursor: pointer; transition: background .2s ease; }
.cg-vac-buscar:hover, .cg-vac-buscar:focus-visible { background: #1e7f61; color: #fff; }
.cg-vac-buscador-pie { margin: 1rem 0 0; font-size: .86rem; color: rgba(252, 252, 242, .65); }
.cg-vac-buscador-pie b { color: var(--fs-color-primary); }

/* Listado */
.cg-vac-cuenta { margin: 0 0 1.2rem; font-size: .9rem; color: #555; }
.cg-vac-cuenta b { color: #262626; }
.cg-vac-cuenta a { font-weight: 700; color: #4b2e83; }
.cg-vac-lista { display: grid; gap: 1rem; }
.cg-vac-card { display: grid; grid-template-columns: minmax(0, 1fr) 15rem; gap: 2rem; padding: 1.7rem 1.8rem; border: 1px solid rgba(38, 38, 38, .14); border-left: 4px solid #4b2e83; border-radius: 6px; background: #fff; transition: box-shadow .3s ease, transform .3s ease, border-color .3s ease; }
.cg-vac-card:hover { transform: translateY(-2px); border-left-color: #2eb98f; box-shadow: 0 22px 40px -28px rgba(38, 38, 38, .55); }
.cg-vac-card-area { margin: 0 0 .35rem; font-size: .7rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: #1e7f61; }
.cg-vac-card h3 { margin: 0 0 .7rem; font-size: 1.55rem; line-height: 1.2; letter-spacing: -.01em; }
.cg-vac-card h3 a { color: #262626; }
.cg-vac-card h3 a:hover { color: #4b2e83; }
.cg-vac-tags { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0 0 1rem; padding: 0; list-style: none; }
.cg-vac-tags li { margin: 0; padding: .3em .75em; border-radius: 99px; background: #f1eef5; font-size: .76rem; font-weight: 700; color: #4b2e83; }
.cg-vac-puntos { margin: 0; padding: 0; list-style: none; }
.cg-vac-puntos li { position: relative; margin: 0 0 .35rem; padding-left: 1.3rem; font-size: .95rem; line-height: 1.5; color: #444; }
.cg-vac-puntos li::before { content: ""; position: absolute; top: .6em; left: 0; width: .55rem; height: 2px; background: #2eb98f; }
.cg-vac-card-ext { margin: 0; color: #555; }
.cg-vac-card-side { display: flex; flex-direction: column; gap: .7rem; padding-left: 1.6rem; border-left: 1px dashed rgba(38, 38, 38, .2); }
.cg-vac-salario { margin: 0; font-size: 1.05rem; font-weight: 700; line-height: 1.3; color: #262626; }
.cg-vac-salario span { display: block; font-size: .66rem; letter-spacing: .16em; text-transform: uppercase; color: #8a8a8a; }
.cg-vac-fechas { margin: 0; font-size: .82rem; line-height: 1.5; color: #8a8a8a; }
.cg-vac-aplicar { width: 100%; margin: auto 0 0; }
.cg-vac-ver { font-size: .86rem; font-weight: 700; text-align: center; color: #262626; }
.cg-vac-nada { padding: 1.4rem 1.6rem; border: 1px dashed rgba(38, 38, 38, .3); border-radius: 6px; color: #444; }
.cg-vac-nada p { margin: 0; }
.cg-vac-nada a { font-weight: 700; color: #4b2e83; }
/* Sin vacantes: aplicación espontánea + alerta */
.cg-vac-vacio { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); border: 1.5px solid #262626; border-radius: 6px; overflow: hidden; }
.cg-vac-vacio-txt { display: flex; flex-direction: column; align-items: flex-start; padding: 2.4rem; background: repeating-linear-gradient(-45deg, transparent 0 14px, rgba(38, 38, 38, .035) 14px 15px), #fcfcf2; }
.cg-vac-vacio-k { margin: 0 0 .8rem; font-size: .7rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: #8a8a8a; }
.cg-vac-vacio-txt h3 { margin: 0 0 .8rem; font-size: 2rem; line-height: 1.1; letter-spacing: -.02em; color: #262626; }
.cg-vac-vacio-txt > p:not(.cg-vac-vacio-k) { max-width: 26em; font-size: 1.05rem; line-height: 1.6; color: #444; }
.cg-vac-vacio-txt .button { margin: .6rem 0 0; }
.cg-vac-alerta { padding: 2.4rem; background: #fff; border-left: 1.5px solid #262626; }
.cg-vac-alerta-k { display: inline-flex; align-items: center; gap: .5rem; margin: 0 0 .6rem; padding: .35em .8em; border-radius: 99px; background: #4b2e83; font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #fcfcf2; }
.cg-vac-alerta-k svg { animation: cg-vac-campana 2.6s ease-in-out infinite; transform-origin: 50% 10%; }
@keyframes cg-vac-campana { 0%, 60%, 100% { transform: rotate(0); } 66% { transform: rotate(14deg); } 72% { transform: rotate(-12deg); } 78% { transform: rotate(8deg); } 84% { transform: rotate(-4deg); } }
.cg-vac-alerta-t { margin: 0 0 1rem; font-size: 1.15rem; font-weight: 700; line-height: 1.35; color: #262626; }
.cg-vac-alerta .nl-form-wrap { max-width: none; }

/* Valores */
.cg-vac-valores { margin: 0; padding: 0; list-style: none; counter-reset: cgvv; border-top: 2px solid #262626; }
.cg-vac-valores li { counter-increment: cgvv; display: grid; grid-template-columns: 4.5rem minmax(0, 14rem) minmax(0, 1fr); align-items: baseline; gap: 1rem; margin: 0; padding: 1.6rem 0; border-bottom: 1px solid rgba(38, 38, 38, .14); }
.cg-vac-valores li::before { content: counter(cgvv, decimal-leading-zero); font-size: 2.4rem; font-weight: 700; line-height: 1; letter-spacing: -.03em; color: rgba(75, 46, 131, .25); }
.cg-vac-valores b { font-size: 1.5rem; line-height: 1.15; letter-spacing: -.01em; color: #262626; }
.cg-vac-valores span { font-size: 1rem; line-height: 1.6; color: #555; }
.cg-vac-valores li:hover::before { color: #4b2e83; }
/* Proceso: reutiliza .cg-pt-pasos con 4 columnas */
.cg-vac-pasos { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.cg-vac-pasos li:last-child::before { background: #2eb98f; }
.cg-vac-form .lead-form-section { scroll-margin-top: calc(var(--wp-admin--admin-bar--height, 0px) + var(--cg-header-h, 70px) + 8px); }
/* Ficha */
.cg-vacf-hero .cg-vac-card-area { margin-top: .4rem; }
.cg-vacf-puntos li { font-size: 1.08rem; }
.cg-vacf-desc .cg-evf-desc :is(h2, h3) { margin: 2rem 0 .6rem; font-size: 1.25rem; }
.cg-vacf-desc .cg-evf-desc ul { margin-left: 1.2rem; }
.cg-vacf-desc .cg-evf-desc li { margin-bottom: .35rem; }
.cg-vacf .lead-form-section { margin-top: 2rem; scroll-margin-top: calc(var(--wp-admin--admin-bar--height, 0px) + var(--cg-header-h, 70px) + 8px); }

@media (max-width: 849px) {
	.cg-vac-buscador { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
	.cg-vac-campo--q { grid-column: 1 / -1; border-right: 0; border-bottom: 1px solid rgba(38, 38, 38, .12); }
	.cg-vac-buscar { grid-column: 1 / -1; padding: 1rem; }
	.cg-vac-card { grid-template-columns: minmax(0, 1fr); gap: 1.2rem; }
	.cg-vac-card-side { padding: 1rem 0 0; border-left: 0; border-top: 1px dashed rgba(38, 38, 38, .2); }
	.cg-vac-vacio { grid-template-columns: minmax(0, 1fr); }
	.cg-vac-alerta { border-left: 0; border-top: 1.5px solid #262626; }
	.cg-vac-pasos { grid-template-columns: minmax(0, 1fr); }
	.cg-vac-valores li { grid-template-columns: 3.6rem minmax(0, 1fr); }
	.cg-vac-valores span { grid-column: 2; }
}
@media (max-width: 549px) {
	.cg-vac-hero-lead { font-size: 1.04rem; }
	.cg-vac-buscador { grid-template-columns: minmax(0, 1fr); }
	.cg-vac-campo { border-right: 0; border-bottom: 1px solid rgba(38, 38, 38, .12); }
	.cg-vac-card { padding: 1.3rem; }
	.cg-vac-card h3 { font-size: 1.3rem; }
	.cg-vac-vacio-txt, .cg-vac-alerta { padding: 1.4rem; }
	.cg-vac-vacio-txt h3 { font-size: 1.55rem; }
	.cg-vac-valores li::before { font-size: 1.8rem; }
	.cg-vac-valores b { font-size: 1.25rem; }
}
@media (prefers-reduced-motion: reduce) {
	.cg-vac-alerta-k svg { animation: none; }
	.cg-vac-card { transition: none; }
}
.cg-vac-buscador-pie a { font-weight: 700; color: #fcfcf2; text-decoration: underline; text-underline-offset: .25em; }
.cg-vac-buscador-pie a:hover { color: var(--fs-color-primary); }
.cg-vac-form #cv-form-wrapper { scroll-margin-top: calc(var(--wp-admin--admin-bar--height, 0px) + var(--cg-header-h, 70px) + 16px); }


/* =====================================================================
   Programa pro bono (/programa-pro-bono/) — inc/cg-probono.php
   ===================================================================== */
.cg-pb-lead { max-width: 34em; font-size: 1.15rem; line-height: 1.6; color: #444; }
.cg-pb-nota { display: flex; align-items: flex-start; gap: .8rem; max-width: 34em; margin: 1.2rem 0 0; padding: .9rem 1.1rem; border-left: 3px solid #2eb98f; border-radius: 0 6px 6px 0; background: #fff; font-size: .95rem; line-height: 1.5; color: #444; }
.cg-pb-nota > span:first-child { flex: none; color: #1e7f61; }
.cg-pb-nota b { color: #262626; }
/* Ciclo del donativo */
.cg-pb-ciclo { position: relative; padding: 1.8rem 1.8rem 1.4rem; border: 1.5px solid #262626; border-radius: 10px; background: #fff; box-shadow: 10px 10px 0 #2eb98f; }
.cg-pb-ciclo-k { margin: 0 0 1.2rem; font-size: .7rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: #8a8a8a; }
.cg-pb-ciclo ol { position: relative; margin: 0; padding: 0; list-style: none; }
.cg-pb-ciclo ol::before { content: ""; position: absolute; top: 1.6rem; bottom: 1.6rem; left: 1.55rem; border-left: 2px dashed rgba(75, 46, 131, .3); }
.cg-pb-ciclo ol::after { content: ""; position: absolute; top: 1.6rem; left: calc(1.55rem - 4px); width: 10px; height: 10px; border-radius: 50%; background: #2eb98f; box-shadow: 0 0 0 4px rgba(46, 185, 143, .2); animation: cg-pb-viaja 3.2s ease-in-out infinite; }
@keyframes cg-pb-viaja { 0% { top: 1.6rem; opacity: 0; } 10% { opacity: 1; } 90% { opacity: 1; } 100% { top: calc(100% - 1.6rem); opacity: 0; } }
.cg-pb-ciclo li { position: relative; display: grid; grid-template-columns: 3.1rem minmax(0, 1fr); column-gap: 1rem; align-items: center; margin: 0; padding: .55rem 0; }
.cg-pb-ciclo-ico { grid-row: span 2; display: grid; place-items: center; width: 3.1rem; height: 3.1rem; border-radius: 50%; background: #f1eef5; color: #4b2e83; position: relative; z-index: 1; }
.cg-pb-ciclo li:last-child .cg-pb-ciclo-ico { background: #2eb98f; color: #fff; }
.cg-pb-ciclo b { font-size: 1.1rem; color: #262626; }
.cg-pb-ciclo small { font-size: .82rem; color: #666; }

/* Casos */
.cg-pb-casos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.2rem; }
.cg-pb-caso { position: relative; display: flex; flex-direction: column; padding: 1.7rem; border: 1px solid rgba(38, 38, 38, .14); border-radius: 8px; background: #fff; overflow: hidden; transition: transform .35s cubic-bezier(.2, .8, .2, 1), box-shadow .35s ease, border-color .35s ease; }
.cg-pb-caso::after { content: ""; position: absolute; right: -2.5rem; bottom: -2.5rem; width: 7rem; height: 7rem; border-radius: 50%; background: #f1eef5; transition: transform .5s ease, background .35s ease; z-index: 0; }
.cg-pb-caso > * { position: relative; z-index: 1; }
.cg-pb-caso:hover { transform: translateY(-4px); border-color: #4b2e83; box-shadow: 0 24px 40px -28px rgba(75, 46, 131, .7); }
.cg-pb-caso:hover::after { transform: scale(1.6); background: rgba(46, 185, 143, .12); }
.cg-pb-caso-ico { display: grid; place-items: center; width: 3.4rem; height: 3.4rem; margin-bottom: 1.2rem; border-radius: 14px; background: #4b2e83; color: #fcfcf2; transition: transform .35s ease, background .35s ease; }
.cg-pb-caso:hover .cg-pb-caso-ico { transform: rotate(-6deg) scale(1.05); background: #2eb98f; }
.cg-pb-caso h3 { margin: 0 0 .5rem; font-size: 1.2rem; line-height: 1.25; color: #262626; }
.cg-pb-caso p { margin: 0 0 1.2rem; font-size: .93rem; line-height: 1.55; color: #555; }
.cg-pb-caso a { margin-top: auto; font-size: .88rem; font-weight: 700; color: #1e7f61; }
.cg-pb-caso a span { display: inline-block; transition: transform .25s ease; }
.cg-pb-caso a:hover span { transform: translateX(4px); }
/* Entrada escalonada */
.cg-pb-anim.cg-pb-casos > *, .cg-pb-anim.cg-pb-pasos > *, .cg-pb-anim.cg-pb-ciclo li { opacity: 0; transform: translateY(18px); }
.cg-pb-anim.is-in.cg-pb-casos > *, .cg-pb-anim.is-in.cg-pb-pasos > *, .cg-pb-anim.is-in.cg-pb-ciclo li { opacity: 1; transform: none; transition: opacity .6s ease, transform .6s cubic-bezier(.2, .8, .2, 1); }
.cg-pb-anim.is-in > :nth-child(2), .cg-pb-anim.is-in li:nth-child(2) { transition-delay: .1s; }
.cg-pb-anim.is-in > :nth-child(3), .cg-pb-anim.is-in li:nth-child(3) { transition-delay: .2s; }
.cg-pb-anim.is-in > :nth-child(4) { transition-delay: .3s; }
.cg-pb-anim.is-in > :nth-child(5) { transition-delay: .4s; }
.cg-pb-anim.is-in > :nth-child(6) { transition-delay: .5s; }

/* Simulador (oscuro) */
.cg-pb-fondo p { color: rgba(252, 252, 242, .75); }
.cg-pb-simulador { padding: 2rem; border: 1px solid rgba(252, 252, 242, .18); border-radius: 10px; background: rgba(252, 252, 242, .04); }
.cg-pb-sim-k { margin: 0 0 1.2rem; font-size: .72rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: rgba(252, 252, 242, .6); }
.cg-pb-personas { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: .8rem 1rem; margin-bottom: 1.6rem; }
.cg-pb-persona { display: grid; place-items: center; aspect-ratio: 1; border-radius: 50%; background: rgba(252, 252, 242, .06); color: rgba(252, 252, 242, .2); transition: background .4s ease, color .4s ease, transform .4s cubic-bezier(.3, 1.6, .5, 1); transition-delay: calc(var(--i) * 25ms); }
.cg-pb-persona.is-on { background: #2eb98f; color: #fff; transform: scale(1.06); }
.cg-pb-sim-control { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: .6rem 1.2rem; margin: 0; }
.cg-pb-sim-control > span { font-size: .78rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: rgba(252, 252, 242, .7); }
.cg-pb-sim-control > b { grid-column: 1 / -1; font-size: 1.2rem; color: #fcfcf2; }
.cg-pb-sim-control input[type=range] { --pct: 20%; width: 100%; height: .5rem; margin: 0; padding: 0; border: 0; border-radius: 99px; background: linear-gradient(90deg, #2eb98f var(--pct), rgba(252, 252, 242, .15) var(--pct)); box-shadow: none; -webkit-appearance: none; appearance: none; cursor: pointer; }
.cg-pb-sim-control input[type=range]::-webkit-slider-thumb { width: 1.5rem; height: 1.5rem; border: 3px solid #262626; border-radius: 50%; background: #fcfcf2; box-shadow: 0 0 0 3px #2eb98f; -webkit-appearance: none; appearance: none; }
.cg-pb-sim-control input[type=range]::-moz-range-thumb { width: 1.2rem; height: 1.2rem; border: 3px solid #262626; border-radius: 50%; background: #fcfcf2; box-shadow: 0 0 0 3px #2eb98f; }
.cg-pb-sim-pie { margin: 1.2rem 0 0; font-size: .78rem; font-style: italic; color: rgba(252, 252, 242, .5) !important; }

/* Dos puertas */
.cg-pb-puertas { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.6rem; }
.cg-pb-puerta { display: flex; flex-direction: column; align-items: flex-start; padding: 2.2rem; border: 1.5px solid #262626; border-radius: 10px; background: #fff; }
.cg-pb-puerta--donar { border-color: #4b2e83; background: #4b2e83; color: #fcfcf2; }
.cg-pb-puerta-ico { display: grid; place-items: center; width: 3.4rem; height: 3.4rem; margin-bottom: 1.2rem; border-radius: 50%; background: #2eb98f; color: #fff; }
.cg-pb-puerta-k { margin: 0 0 .3rem; font-size: .7rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: #8a8a8a; }
.cg-pb-puerta--donar .cg-pb-puerta-k { color: rgba(252, 252, 242, .65); }
.cg-pb-puerta h3 { margin: 0 0 .7rem; font-size: 1.9rem; line-height: 1.1; letter-spacing: -.02em; color: inherit; }
.cg-pb-puerta > p:not(.cg-pb-puerta-k) { font-size: 1rem; line-height: 1.6; color: #444; }
.cg-pb-puerta--donar > p:not(.cg-pb-puerta-k) { color: rgba(252, 252, 242, .85); }
.cg-pb-puerta ul { width: 100%; margin: 0 0 1.6rem; padding: 0; list-style: none; border-top: 1px solid rgba(38, 38, 38, .14); }
.cg-pb-puerta li { margin: 0; padding: .6rem 0 .6rem 1.6rem; border-bottom: 1px solid rgba(38, 38, 38, .14); background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231e7f61' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 5 5 9-10'/%3E%3C/svg%3E") left .8rem / .95rem no-repeat; font-weight: 700; color: #262626; }
.cg-pb-puerta .button { margin: auto 0 0; }
.cg-pb-formas { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .6rem; width: 100%; margin: 0 0 1.6rem; }
.cg-pb-formas a { display: grid; justify-items: center; gap: .4rem; padding: 1rem .5rem; border: 1px solid rgba(252, 252, 242, .25); border-radius: 8px; text-align: center; color: #fcfcf2; transition: background .25s ease, border-color .25s ease, transform .25s ease; }
.cg-pb-formas a:hover { transform: translateY(-3px); border-color: #2eb98f; background: rgba(46, 185, 143, .15); color: #fff; }
.cg-pb-formas span { color: #2eb98f; }
.cg-pb-formas b { font-size: .84rem; line-height: 1.25; }

/* Proceso */
.cg-pb-pasos { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.4rem; margin: 0; padding: 0; list-style: none; counter-reset: cgpb; }
.cg-pb-pasos li { counter-increment: cgpb; position: relative; display: grid; align-content: start; gap: .35rem; margin: 0; padding: 1.4rem; border-top: 3px solid #4b2e83; background: #fcfcf2; font-size: .92rem; line-height: 1.55; color: #555; }
.cg-pb-pasos li::after { content: counter(cgpb, decimal-leading-zero); position: absolute; top: 1.1rem; right: 1.2rem; font-size: 1.8rem; font-weight: 700; line-height: 1; color: rgba(75, 46, 131, .14); }
.cg-pb-pasos li > span { color: #4b2e83; }
.cg-pb-pasos li:last-child { border-top-color: #2eb98f; }
.cg-pb-pasos li:last-child > span { color: #1e7f61; }
.cg-pb-pasos b { margin-top: .4rem; font-size: 1.1rem; line-height: 1.3; color: #262626; }

/* ¿Puedo pedir ayuda? */
.cg-pb-check { padding: 1.6rem; border: 1.5px solid #262626; border-radius: 10px; background: #fff; }
.cg-pb-check ol { margin: 0; padding: 0; list-style: none; counter-reset: cgpc; }
.cg-pb-check li { counter-increment: cgpc; display: grid; grid-template-columns: 2.2rem minmax(0, 1fr) auto; align-items: center; gap: 1rem; margin: 0; padding: 1rem 0; border-bottom: 1px solid rgba(38, 38, 38, .12); }
.cg-pb-check li::before { content: counter(cgpc); display: grid; place-items: center; width: 2.2rem; height: 2.2rem; border-radius: 50%; background: #f1eef5; font-weight: 700; color: #4b2e83; transition: background .3s ease, color .3s ease; }
.cg-pb-check li.is-done::before { content: "✓"; background: #2eb98f; color: #fff; }
.cg-pb-check li p { margin: 0; font-weight: 700; line-height: 1.4; color: #262626; }
.cg-pb-check li > div { display: flex; gap: .4rem; }
.cg-pb-check button { min-height: 0; margin: 0; padding: .45em 1em; border: 1.5px solid rgba(38, 38, 38, .25); border-radius: 99px; background: transparent; font-size: .82rem; font-weight: 700; line-height: 1.3; letter-spacing: normal; text-transform: none; white-space: nowrap; color: #262626; }
.cg-pb-check button:hover { border-color: #262626; }
.cg-pb-check button.is-on { border-color: #4b2e83; background: #4b2e83; color: #fff; }
.cg-pb-check-res { margin-top: 1.2rem; padding: 1.1rem 1.2rem; border-radius: 8px; background: #fcfcf2; font-size: .95rem; line-height: 1.55; color: #555; transition: background .3s ease; }
.cg-pb-check-res p { margin: 0; }
.cg-pb-check-res b { display: block; margin-bottom: .2rem; font-size: 1.05rem; color: #262626; }
.cg-pb-check-res a { font-weight: 700; color: #1e7f61; }
.cg-pb-check-res.is-ok { background: #e3f5ee; animation: cg-pb-pop .5s cubic-bezier(.3, 1.6, .5, 1); }
.cg-pb-check-res.is-recursos, .cg-pb-check-res.is-caso, .cg-pb-check-res.is-tramite { background: #f1eef5; animation: cg-pb-pop .5s cubic-bezier(.3, 1.6, .5, 1); }
@keyframes cg-pb-pop { from { transform: scale(.97); opacity: .4; } }

/* Cierre en dos mitades */
.cg-pb-split { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cg-pb-split a { position: relative; display: grid; align-content: center; gap: .3rem; min-height: 17rem; padding: 3rem 8%; overflow: hidden; color: #fcfcf2; }
.cg-pb-split-a { background: #262626; }
.cg-pb-split-b { background: #4b2e83; }
.cg-pb-split a > span { color: #2eb98f; transition: transform .4s ease; }
.cg-pb-split small { font-size: .74rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: rgba(252, 252, 242, .6); }
.cg-pb-split b { font-size: 2.2rem; line-height: 1.1; letter-spacing: -.02em; }
.cg-pb-split i { font-style: normal; font-weight: 700; color: #2eb98f; }
.cg-pb-split a::after { content: ""; position: absolute; right: -4rem; bottom: -4rem; width: 12rem; height: 12rem; border-radius: 50%; border: 2px solid rgba(252, 252, 242, .12); transition: transform .5s ease; }
.cg-pb-split a:hover::after { transform: scale(1.4); }
.cg-pb-split a:hover > span { transform: translateY(-4px) rotate(-6deg); }
.cg-pb-volver { max-width: 1080px; margin: 0 auto; padding: 1rem 15px 2.4rem; font-size: .9rem; font-weight: 700; }
.cg-pb-volver a { color: #4b2e83; }

@media (max-width: 849px) {
	.cg-pb-ciclo { margin-top: 2.4rem; }
	.cg-pb-casos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.cg-pb-puertas, .cg-pb-split { grid-template-columns: minmax(0, 1fr); }
	.cg-pb-pasos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.cg-pb-check li { grid-template-columns: 2.2rem minmax(0, 1fr); }
	.cg-pb-check li > div { grid-column: 2; }
}
@media (max-width: 549px) {
	.cg-pb-lead { font-size: 1.02rem; }
	.cg-pb-casos, .cg-pb-pasos { grid-template-columns: minmax(0, 1fr); }
	.cg-pb-puerta { padding: 1.4rem; }
	.cg-pb-puerta h3 { font-size: 1.55rem; }
	.cg-pb-formas { grid-template-columns: minmax(0, 1fr); }
	.cg-pb-formas a { grid-template-columns: auto 1fr; justify-items: start; align-items: center; text-align: left; }
	.cg-pb-simulador { padding: 1.2rem; }
	.cg-pb-personas { gap: .5rem; }
	.cg-pb-check { padding: 1rem; }
	.cg-pb-split a { min-height: 13rem; }
	.cg-pb-split b { font-size: 1.7rem; }
}
@media (prefers-reduced-motion: reduce) {
	.cg-pb-ciclo ol::after { animation: none; display: none; }
	.cg-pb-anim > *, .cg-pb-anim li { opacity: 1 !important; transform: none !important; }
	.cg-pb-caso, .cg-pb-persona, .cg-pb-caso-ico, .cg-pb-caso::after { transition: none; }
	.cg-pb-check-res { animation: none !important; }
}

/* Pro bono · portada editorial a todo lo ancho */
.cg-pb-hero { position: relative; overflow: hidden; }
.cg-pb-hero::before { content: "§"; position: absolute; top: -3.5rem; right: 3%; font-size: 30rem; font-weight: 700; line-height: 1; color: rgba(75, 46, 131, .05); pointer-events: none; }
.cg-pb-hero .row { position: relative; z-index: 1; }
.cg-pb-hero-top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .6rem 2rem; margin-bottom: 1.6rem; }
.cg-pb-hero-top .cg-eyebrow { margin: 0; }
.cg-pb-hero-meta { margin: 0; font-size: .74rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #8a8a8a; }
.cg-pb-hero-meta span { margin: 0 .4em; color: #2eb98f; }
.cg-pb-h1 { max-width: 15em; margin: 0; line-height: .98; letter-spacing: -.035em; }
.cg-pb-subraya { position: relative; font-style: normal; color: #1e7f61 !important; background: linear-gradient(transparent 62%, rgba(46, 185, 143, .28) 62%, rgba(46, 185, 143, .28) 92%, transparent 92%) no-repeat 0 0 / 0% 100%; -webkit-box-decoration-break: clone; box-decoration-break: clone; animation: cg-pb-subraya 1.1s .4s cubic-bezier(.6, 0, .2, 1) forwards; }
@keyframes cg-pb-subraya { to { background-size: 100% 100%; } }
.cg-pb-hero-cols { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr) minmax(0, .8fr); margin-top: 2.6rem; border-top: 2px solid #262626; }
.cg-pb-hero-cols > * { margin: 0; padding: 1.6rem 2rem 0; }
.cg-pb-hero-cols > :first-child { padding-left: 0; }
.cg-pb-hero-cols > * + * { border-left: 1px solid rgba(38, 38, 38, .16); }
.cg-pb-hero-cols .cg-pb-lead { max-width: none; font-size: 1.08rem; }
.cg-pb-cita { position: relative; border: 0; font-size: 1.05rem; font-style: normal; line-height: 1.5; color: #444; }
.cg-pb-cita > span { display: block; height: 2.4rem; font-size: 4.4rem; font-weight: 700; line-height: 1; color: #2eb98f; }
.cg-pb-cita b { display: block; margin-top: .3rem; color: #262626; }
.cg-pb-hero-cta { display: flex; flex-direction: column; align-items: stretch; gap: .6rem; }
.cg-pb-hero-cta .button { margin: 0; text-align: center; }
.cg-pb-hero-dudas { margin-top: .3rem; font-size: .86rem; font-weight: 700; text-align: center; color: #4b2e83; text-decoration: underline; text-underline-offset: .25em; }
/* Recorrido del donativo, en franja */
.cg-pb-ciclo-h { position: relative; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; margin: 3rem 0 0; padding: 0; list-style: none; border-radius: 10px; background: #fff; box-shadow: 0 24px 50px -36px rgba(38, 38, 38, .5); }
.cg-pb-ciclo-h li { position: relative; display: flex; align-items: center; gap: 1rem; margin: 0; padding: 1.3rem 1.6rem; }
.cg-pb-ciclo-h li + li { border-left: 1px dashed rgba(75, 46, 131, .3); }
.cg-pb-ciclo-h li:not(:last-child)::after { content: "→"; position: absolute; top: 50%; right: -.85rem; z-index: 1; display: grid; place-items: center; width: 1.7rem; height: 1.7rem; margin-top: -.85rem; border-radius: 50%; background: #2eb98f; font-size: .85rem; font-weight: 700; color: #fff; }
.cg-pb-ciclo-h li > span { flex: none; display: grid; place-items: center; width: 3rem; height: 3rem; border-radius: 50%; background: #f1eef5; color: #4b2e83; }
.cg-pb-ciclo-h li:last-child > span { background: #2eb98f; color: #fff; }
.cg-pb-ciclo-h p { margin: 0; font-size: .82rem; line-height: 1.4; color: #666; }
.cg-pb-ciclo-h b { display: block; font-size: 1.02rem; color: #262626; }
.cg-pb-anim.cg-pb-ciclo-h li { opacity: 0; transform: translateY(14px); }
.cg-pb-anim.is-in.cg-pb-ciclo-h li { opacity: 1; transform: none; transition: opacity .6s ease, transform .6s cubic-bezier(.2, .8, .2, 1); }
@media (max-width: 849px) {
	.cg-pb-hero::before { font-size: 18rem; top: -2rem; }
	.cg-pb-hero-cols { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
	.cg-pb-hero-cols > .cg-pb-hero-cta { grid-column: 1 / -1; flex-direction: row; flex-wrap: wrap; align-items: center; padding-left: 0; border-left: 0; }
	.cg-pb-ciclo-h { grid-template-columns: minmax(0, 1fr); }
	.cg-pb-ciclo-h li + li { border-left: 0; border-top: 1px dashed rgba(75, 46, 131, .3); }
	.cg-pb-ciclo-h li:not(:last-child)::after { content: "↓"; top: auto; right: auto; bottom: -.85rem; left: 2.15rem; margin-top: 0; }
}
@media (max-width: 549px) {
	.cg-pb-hero-meta { display: none; }
	.cg-pb-hero-cols { grid-template-columns: minmax(0, 1fr); margin-top: 1.8rem; }
	.cg-pb-hero-cols > * { padding: 1.2rem 0 0; }
	.cg-pb-hero-cols > * + * { border-left: 0; }
	.cg-pb-hero-cta { flex-direction: column !important; align-items: stretch !important; }
	.cg-pb-ciclo-h { margin-top: 2rem; }
}
@media (prefers-reduced-motion: reduce) {
	.cg-pb-subraya { animation: none; background-size: 100% 100%; }
}


/* =====================================================================
   [cg_mapa_llegadas] Mapa del mundo: llegadas a México (inc/cg-mapa.php, assets/mapa/)
   Pensado para una sección oscura (dark="true").
   ===================================================================== */
.cg-mapa { --mx: #2eb98f; --org: #8a63d2; color: #fcfcf2; }
.cg-mapa-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1rem 3rem; margin-bottom: 1.8rem; }
.cg-mapa-intro { max-width: 26em; margin: 0; color: rgba(252, 252, 242, .7); }
.cg-mapa-tabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-bottom: 1.4rem; border-top: 2px solid rgba(252, 252, 242, .8); }
.cg-mapa-tabs button { position: relative; display: grid; gap: .15rem; min-height: 0; margin: 0; padding: 1rem 1.2rem 1rem 0; border: 0; border-radius: 0; background: none; text-align: left; letter-spacing: normal; text-transform: none; color: rgba(252, 252, 242, .5); cursor: pointer; transition: color .25s ease; }
.cg-mapa-tabs button + button { padding-left: 1.2rem; border-left: 1px solid rgba(252, 252, 242, .14); }
.cg-mapa-tabs button::before { content: ""; position: absolute; top: -2px; left: 0; right: 0; height: 4px; background: var(--mx); transform: scaleX(0); transform-origin: left; transition: transform .45s cubic-bezier(.2, .8, .2, 1); }
.cg-mapa-tabs button[aria-selected="true"] { color: #fcfcf2; }
.cg-mapa-tabs button[aria-selected="true"]::before { transform: scaleX(1); }
.cg-mapa-tabs button:hover { color: #fcfcf2; }
.cg-mapa-tabs b { font-size: 1.05rem; line-height: 1.2; }
.cg-mapa-tabs span { font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--mx); }
.cg-mapa-tabs button:not([aria-selected="true"]) span { color: rgba(252, 252, 242, .4); }
.cg-mapa-cuerpo { display: grid; grid-template-columns: minmax(0, 1fr) 17rem; gap: 1.6rem; align-items: start; }
.cg-mapa-fig { position: relative; margin: 0; border-radius: 12px; background: radial-gradient(ellipse at 38% 45%, rgba(75, 46, 131, .38), rgba(38, 38, 38, 0) 65%), rgba(252, 252, 242, .02); overflow: hidden; }
.cg-mapa-svg { display: block; width: 100%; height: auto; }
.cg-mapa-grid { fill: none; stroke: rgba(252, 252, 242, .05); stroke-width: .6; }
.cg-mapa-pais { fill: rgba(252, 252, 242, .1); stroke: #262626; stroke-width: .5; transition: fill .4s ease, opacity .3s ease; }
.cg-mapa-pais.is-origen { fill: color-mix(in srgb, var(--org) calc(var(--k, .5) * 100%), rgba(252, 252, 242, .1)); cursor: pointer; }
.cg-mapa-pais.is-mx { fill: var(--mx); }
.cg-mapa-arco-base { fill: none; stroke: rgba(138, 99, 210, .28); stroke-linecap: round; }
.cg-mapa-arco-flujo { fill: none; stroke: var(--mx); stroke-linecap: round; stroke-dasharray: 2 9; opacity: .9; animation: cg-mapa-flujo 1.4s linear infinite; }
.cg-mapa-arco-hit { fill: none; stroke: transparent; stroke-width: 14; cursor: pointer; }
@keyframes cg-mapa-flujo { to { stroke-dashoffset: -22; } }
/* Entrada: cada arco se traza desde su país hacia México */
.cg-mapa.is-dibujado .cg-mapa-arco { animation: cg-mapa-aparece .9s var(--d, 0s) cubic-bezier(.3, .7, .2, 1) backwards; }
.cg-mapa.is-dibujado .cg-mapa-arco-base { stroke-dasharray: var(--len) var(--len); animation: cg-mapa-traza 1.1s var(--d, 0s) cubic-bezier(.3, .7, .2, 1) backwards; }
@keyframes cg-mapa-traza { from { stroke-dashoffset: var(--len); } to { stroke-dashoffset: 0; } }
@keyframes cg-mapa-aparece { from { opacity: 0; } }
.cg-mapa-persona { fill: #fff; }
.cg-mapa-origen { fill: var(--org); stroke: #fcfcf2; stroke-width: 1; pointer-events: none; }
.cg-mapa-mx-punto { fill: #fff; stroke: var(--mx); stroke-width: 3; }
.cg-mapa-mx-onda { fill: none; stroke: var(--mx); stroke-width: 1.5; transform-box: fill-box; transform-origin: center; animation: cg-mapa-onda 2.4s ease-out infinite; }
.cg-mapa-mx-onda--2 { animation-delay: 1.2s; }
@keyframes cg-mapa-onda { from { transform: scale(.3); opacity: .9; } to { transform: scale(2.6); opacity: 0; } }
.cg-mapa-mx-txt { fill: #fcfcf2; font-size: 10px; font-weight: 700; letter-spacing: .18em; text-anchor: middle; paint-order: stroke; stroke: #262626; stroke-width: 3px; }
/* Foco: al pasar sobre un país, arco o renglón, se atenúa el resto */
.cg-mapa.is-foco .cg-mapa-arco:not(.is-hl) { opacity: .12; }
.cg-mapa.is-foco .cg-mapa-pais.is-origen:not(.is-hl) { opacity: .35; }
.cg-mapa-arco { transition: opacity .25s ease; }
.cg-mapa-arco.is-hl .cg-mapa-arco-base { stroke: rgba(46, 185, 143, .45); }
.cg-mapa-pais.is-hl { fill: #a98ae6; }
/* Total */
.cg-mapa-total { position: absolute; left: 1.2rem; bottom: 1rem; display: grid; margin: 0; pointer-events: none; }
.cg-mapa-total span { font-size: 2.6rem; font-weight: 700; line-height: 1; letter-spacing: -.03em; font-variant-numeric: tabular-nums; color: #fcfcf2; }
.cg-mapa-total small { margin-top: .3rem; font-size: .72rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--mx); }
/* Tooltip */
.cg-mapa-tip { position: absolute; z-index: 3; padding: .55rem .8rem; border-radius: 6px; background: #fcfcf2; box-shadow: 0 12px 28px -12px rgba(0, 0, 0, .7); font-size: .82rem; line-height: 1.4; white-space: nowrap; color: #555; transform: translate(-50%, -100%); pointer-events: none; }
.cg-mapa-tip b { display: block; color: #262626; }
/* Ranking */
.cg-mapa-nota { margin: 0 0 .9rem; font-size: .88rem; color: rgba(252, 252, 242, .65); }
.cg-mapa-lista ol { margin: 0; padding: 0; list-style: none; counter-reset: cgmp; }
.cg-mapa-lista li { counter-increment: cgmp; display: grid; grid-template-columns: 1.6rem minmax(0, 1fr) auto; column-gap: .4rem; margin: 0; padding: .42rem .4rem; border-radius: 6px; cursor: default; transition: background .2s ease; }
.cg-mapa-lista li::before { content: counter(cgmp); grid-row: span 2; font-size: .72rem; font-weight: 700; color: rgba(252, 252, 242, .4); }
.cg-mapa-lista li:hover, .cg-mapa-lista li.is-hl, .cg-mapa-lista li:focus { background: rgba(252, 252, 242, .07); outline: none; }
.cg-mapa-li-n { font-size: .9rem; font-weight: 700; color: #fcfcf2; }
.cg-mapa-li-v { font-size: .86rem; font-weight: 700; font-variant-numeric: tabular-nums; color: #fcfcf2; }
.cg-mapa-li-v small { margin-left: .2rem; font-size: .72rem; color: var(--mx); }
.cg-mapa-li-bar { grid-column: 2 / -1; height: 3px; margin-top: .3rem; border-radius: 3px; background: rgba(252, 252, 242, .08); overflow: hidden; }
.cg-mapa-li-bar i { display: block; height: 100%; border-radius: 3px; background: linear-gradient(90deg, var(--org), var(--mx)); animation: cg-mapa-barra .9s cubic-bezier(.2, .8, .2, 1) backwards; transform-origin: left; }
@keyframes cg-mapa-barra { from { transform: scaleX(0); } }
.cg-mapa-otros { margin: .8rem 0 0; padding-top: .7rem; border-top: 1px solid rgba(252, 252, 242, .14); font-size: .8rem; color: rgba(252, 252, 242, .55); }
.cg-mapa-fuente { margin: 1.4rem 0 0; font-size: .74rem; line-height: 1.5; color: rgba(252, 252, 242, .45); }
.cg-mapa.is-error .cg-mapa-fig::after { content: "No se pudo cargar el mapa."; position: absolute; inset: 0; display: grid; place-items: center; color: rgba(252, 252, 242, .6); }
.cg-mapa-fig { min-height: 12rem; }

@media (max-width: 849px) {
	.cg-mapa-cuerpo { grid-template-columns: minmax(0, 1fr); }
	.cg-mapa-lista ol { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 1rem; }
}
@media (max-width: 549px) {
	.cg-mapa-tabs { grid-template-columns: minmax(0, 1fr); }
	.cg-mapa-tabs button, .cg-mapa-tabs button + button { padding: .7rem 0; border-left: 0; border-bottom: 1px solid rgba(252, 252, 242, .1); }
	.cg-mapa-tabs button { grid-template-columns: 1fr auto; align-items: baseline; }
	.cg-mapa-total { position: static; padding: .6rem 1rem 1rem; }
	.cg-mapa-total span { font-size: 2rem; }
	.cg-mapa-mx-txt { font-size: 14px; }
	.cg-mapa-lista ol { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
	.cg-mapa-arco-flujo, .cg-mapa-mx-onda, .cg-mapa.is-dibujado .cg-mapa-arco, .cg-mapa.is-dibujado .cg-mapa-arco-base, .cg-mapa-li-bar i { animation: none; }
}


/* =====================================================================
   Solicitud de factura electrónica (/solicitud-de-factura-electronica/, #16)
   ===================================================================== */
.cg-fa-lead { max-width: 32em; font-size: 1.15rem; line-height: 1.6; color: #444; }
.cg-fa-badges { display: flex; flex-wrap: wrap; gap: .45rem; margin: 1.2rem 0 0; padding: 0; list-style: none; }
.cg-fa-badges li { margin: 0; padding: .4em .9em .4em 1.9em; border-radius: 99px; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231e7f61' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 5 5 9-10'/%3E%3C/svg%3E") .7em center / .9em no-repeat; box-shadow: inset 0 0 0 1px rgba(38, 38, 38, .12); font-size: .82rem; font-weight: 700; color: #262626; }
/* Documento CFDI ilustrativo */
.cg-fa-doc { position: relative; max-width: 25rem; margin: 0 auto; padding: 1.6rem 1.6rem 1.4rem; border-radius: 4px; background: #fff; box-shadow: 0 40px 60px -40px rgba(38, 38, 38, .55), 0 0 0 1px rgba(38, 38, 38, .08); transform: rotate(2deg); animation: cg-fa-entra .9s cubic-bezier(.2, .8, .2, 1) backwards; }
.cg-fa-doc::before { content: ""; position: absolute; inset: 10px -10px -10px 10px; z-index: -1; border-radius: 4px; background: #f1eef5; box-shadow: 0 0 0 1px rgba(75, 46, 131, .12); }
@keyframes cg-fa-entra { from { opacity: 0; transform: translateY(26px) rotate(-2deg); } }
.cg-fa-doc-top { display: flex; align-items: baseline; justify-content: space-between; padding-bottom: .9rem; border-bottom: 3px double #262626; }
.cg-fa-doc-top span { font-size: .72rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: #8a8a8a; }
.cg-fa-doc-top b { font-size: 1.3rem; letter-spacing: -.01em; color: #4b2e83; }
.cg-fa-doc dl { margin: .4rem 0 0; }
.cg-fa-doc dl > div { display: grid; grid-template-columns: 7.5rem minmax(0, 1fr); gap: .6rem; padding: .55rem 0; border-bottom: 1px dashed rgba(38, 38, 38, .15); }
.cg-fa-doc dt { margin: 0; font-size: .66rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #8a8a8a; }
.cg-fa-doc dd { margin: 0; font-size: .86rem; font-weight: 700; letter-spacing: normal; text-transform: none; color: #262626; }
.cg-fa-mono { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; letter-spacing: .06em !important; }
.cg-fa-doc-concepto { display: flex; justify-content: space-between; gap: 1rem; margin-top: .9rem; padding: .7rem .8rem; border-radius: 4px; background: #fcfcf2; font-size: .8rem; color: #555; }
.cg-fa-doc-concepto span:first-child { font-weight: 700; letter-spacing: .12em; text-transform: uppercase; font-size: .66rem; color: #8a8a8a; }
.cg-fa-doc-pie { display: grid; grid-template-columns: 4.2rem minmax(0, 1fr); gap: 1rem; align-items: center; margin-top: 1rem; }
.cg-fa-qr { width: 4.2rem; height: 4.2rem; padding: .3rem; border: 1px solid rgba(38, 38, 38, .15); }
.cg-fa-qr rect { fill: #262626; }
.cg-fa-sello { display: grid; gap: .3rem; }
.cg-fa-sello span { font-size: .62rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #8a8a8a; }
.cg-fa-sello i { display: block; height: .45rem; border-radius: 2px; background: repeating-linear-gradient(90deg, rgba(38, 38, 38, .18) 0 6px, transparent 6px 8px); }
.cg-fa-sello i:nth-child(3) { width: 85%; }
.cg-fa-sello i:nth-child(4) { width: 60%; }
.cg-fa-estampa { position: absolute; top: 38%; right: -1.6rem; display: grid; place-items: center; align-content: center; width: 6.4rem; height: 6.4rem; border: 2px solid #2eb98f; border-radius: 50%; background: rgba(255, 255, 255, .9); box-shadow: inset 0 0 0 4px #fff, inset 0 0 0 5px rgba(46, 185, 143, .5); font-size: .62rem; font-weight: 700; line-height: 1.1; letter-spacing: .12em; text-align: center; text-transform: uppercase; color: #1e7f61; transform: rotate(-14deg); animation: cg-fa-sella .5s 1s cubic-bezier(.3, 1.6, .5, 1) backwards; }
.cg-fa-estampa b { font-size: 2rem; letter-spacing: -.02em; }
@keyframes cg-fa-sella { from { opacity: 0; transform: rotate(-14deg) scale(1.8); } }

/* Antes de empezar */
.cg-fa-check { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.2rem; margin: 0; padding: 0; list-style: none; counter-reset: cgfa; }
.cg-fa-check li { counter-increment: cgfa; position: relative; display: grid; align-content: start; gap: .4rem; margin: 0; padding: 1.5rem 1.3rem; border: 1px solid rgba(38, 38, 38, .14); border-radius: 10px; font-size: .9rem; line-height: 1.55; color: #555; transition: border-color .3s ease, transform .3s ease; }
.cg-fa-check li:hover { transform: translateY(-3px); border-color: #4b2e83; }
.cg-fa-check li::after { content: counter(cgfa, decimal-leading-zero); position: absolute; top: 1.2rem; right: 1.2rem; font-size: .78rem; font-weight: 700; letter-spacing: .1em; color: rgba(75, 46, 131, .35); }
.cg-fa-ico { display: grid; place-items: center; width: 3rem; height: 3rem; margin-bottom: .6rem; border-radius: 12px; background: #f1eef5; color: #4b2e83; }
.cg-fa-check li:last-child .cg-fa-ico { background: #e3f5ee; color: #1e7f61; }
.cg-fa-check b { font-size: 1.08rem; line-height: 1.3; color: #262626; }
.cg-fa-check a { font-weight: 700; color: #4b2e83; }
/* Qué pasa después (oscuro) */
.cg-fa-pasos { position: relative; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.4rem; margin: 1.2rem 0 0; padding: 0; list-style: none; }
.cg-fa-pasos::before { content: ""; position: absolute; top: 1.5rem; left: 1.5rem; right: 12%; border-top: 2px dashed rgba(252, 252, 242, .2); }
.cg-fa-pasos li { position: relative; display: grid; gap: .3rem; margin: 0; font-size: .9rem; line-height: 1.5; color: rgba(252, 252, 242, .7); }
.cg-fa-pasos .cg-fa-ico { position: relative; z-index: 1; margin-bottom: .6rem; border-radius: 50%; background: #4b2e83; color: #fcfcf2; box-shadow: 0 0 0 6px #262626; }
.cg-fa-pasos li:nth-child(3) .cg-fa-ico { background: #2eb98f; }
.cg-fa-pasos b { font-size: 1.1rem; color: #fcfcf2; }

@media (max-width: 849px) {
	.cg-fa-doc { margin-top: 2.6rem; }
	.cg-fa-check { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.cg-fa-pasos { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 2rem; }
	.cg-fa-pasos::before { display: none; }
}
@media (max-width: 549px) {
	.cg-fa-lead { font-size: 1.02rem; }
	.cg-fa-doc { padding: 1.2rem; transform: none; }
	.cg-fa-doc dl > div { grid-template-columns: 6rem minmax(0, 1fr); }
	.cg-fa-estampa { top: auto; right: -.4rem; bottom: -2.2rem; width: 5.2rem; height: 5.2rem; }
	.cg-fa-doc { margin-bottom: 2rem; }
	.cg-fa-estampa b { font-size: 1.6rem; }
	.cg-fa-check, .cg-fa-pasos { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
	.cg-fa-doc, .cg-fa-estampa { animation: none; }
	.cg-fa-check li { transition: none; }
}


/* =====================================================================
   Footer editorial (UX Block footer-common-ground) — inc/cg-footer.php
   ===================================================================== */
.cg-ft { position: relative; overflow: hidden; color: rgba(252, 252, 242, .72); }
.cg-ft::before { content: ""; position: absolute; top: -18rem; right: -10rem; width: 38rem; height: 38rem; border-radius: 50%; background: radial-gradient(circle, rgba(75, 46, 131, .45), rgba(75, 46, 131, 0) 70%); pointer-events: none; }
.cg-ft .row { position: relative; z-index: 1; }
.cg-ft a { color: inherit; }
/* Banda de newsletter */
.cg-ft-nl { padding: 3.4rem 0 3rem; border-bottom: 1px solid rgba(252, 252, 242, .12); }
.cg-ft .cg-ft-nl .cg-eyebrow { color: var(--fs-color-primary); }
.cg-ft-nl-t { margin: .5rem 0 .6rem; font-size: 2rem; font-weight: 700; line-height: 1.1; letter-spacing: -.02em; color: #fcfcf2; }
.cg-ft-nl-t em { font-style: normal; color: var(--fs-color-primary); }
.cg-ft-nl-p { max-width: 30em; margin: 0; color: rgba(252, 252, 242, .65); }
.cg-ft-nl-form { display: flex; align-items: stretch; padding: .35rem; border-radius: 99px; background: #fcfcf2; box-shadow: 0 24px 40px -24px rgba(0, 0, 0, .8); }
:root body .cg-ft .cg-ft-nl-form input[type=email] { flex: 1; min-width: 0; height: auto; margin: 0; padding: 0 1.2rem 0 2.8rem; border: 0; border-radius: 99px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234B2E83' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='m22 7-10 6L2 7'/%3E%3C/svg%3E") 1rem center / 1.2rem no-repeat transparent; box-shadow: none; font-size: 1rem; color: #262626; }
:root body .cg-ft .cg-ft-nl-form input[type=email]::placeholder { color: #8a8a8a; }
.cg-ft .cg-ft-nl-btn { flex: none; margin: 0; padding: .8em 1.5em; border-radius: 99px; font-size: .95rem; letter-spacing: normal; text-transform: none; white-space: nowrap; }
.cg-ft-nl-pie { margin-top: .9rem; font-size: .8rem; line-height: 1.6; color: rgba(252, 252, 242, .5); }
.cg-ft-nl-pie a { text-decoration: underline; text-underline-offset: .2em; }
.cg-ft-nl-pie span { margin-left: .3rem; }
.cg-ft .cg-ft-unsub { display: inline; min-height: 0; margin: 0; padding: 0; border: 0; background: none; font-size: inherit; font-weight: 700; line-height: inherit; letter-spacing: normal; text-transform: none; text-decoration: underline; text-underline-offset: .2em; color: rgba(252, 252, 242, .8); cursor: pointer; }
.cg-ft .cg-ft-unsub:hover { color: var(--fs-color-primary); }
/* Columnas */
.cg-ft-main { padding: 3.2rem 0 1.4rem; }
.cg-ft-logo { display: inline-block; margin-bottom: 1rem; padding: .55rem .9rem; border-radius: 99px; background: #fcfcf2; }
.cg-ft-logo { width: auto !important; }
.cg-ft-logo .img-inner, .cg-ft-logo img { width: 7rem !important; max-width: none; }
.cg-ft-lema { max-width: 20em; margin: 0 0 1.4rem; font-size: 1.05rem; line-height: 1.5; color: #fcfcf2; }
.cg-ft-contacto { margin: 0 0 1.4rem; padding: 0; list-style: none; }
.cg-ft-contacto li { margin: 0; }
.cg-ft-contacto li, .cg-ft-contacto a { display: flex; align-items: center; gap: .8rem; padding: .35rem 0; font-size: .92rem; font-weight: 700; color: #fcfcf2; }
.cg-ft-contacto svg { flex: none; color: var(--fs-color-primary); }
.cg-ft-contacto small { display: block; font-size: .64rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: rgba(252, 252, 242, .45); }
.cg-ft-contacto a:hover { color: var(--fs-color-primary); }
.cg-ft-redes .icon { margin-right: .35rem; }
.cg-ft .cg-ft-redes a.button { border-color: rgba(252, 252, 242, .25) !important; color: #fcfcf2 !important; }
.cg-ft .cg-ft-redes a.button:hover { border-color: var(--fs-color-primary) !important; background: var(--fs-color-primary) !important; color: #fff !important; }
/* Menús (ux_menu) */
.cg-ft-menu .ux-menu-title { margin: 0 0 .9rem; padding-bottom: .7rem; border-bottom: 2px solid rgba(252, 252, 242, .7); font-size: .72rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: #fcfcf2; }
.cg-ft-menu .ux-menu-link { border: 0 !important; }
.cg-ft-menu .ux-menu-link__link { min-height: 0; padding: .32rem 0; font-size: .9rem; line-height: 1.35; color: rgba(252, 252, 242, .68); transition: color .2s ease, transform .2s ease; }
.cg-ft-menu .ux-menu-link__link:hover { color: #fff; transform: translateX(3px); }
.cg-ft-menu .ux-menu-link.ux-menu-link--active .ux-menu-link__link { color: var(--fs-color-primary); }
.cg-ft-quiz .ux-menu-link__text::after { content: "Gratis"; margin-left: .45rem; padding: .1em .5em; border-radius: 99px; background: var(--fs-color-primary); font-size: .62rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #fff; vertical-align: .1em; }
/* Barra legal y pagos */
.cg-ft-base { padding: 1.4rem 0; border-top: 1px solid rgba(252, 252, 242, .12); }
.cg-ft-legal { display: flex; flex-wrap: wrap; gap: .4rem 1.4rem; font-size: .84rem; font-weight: 700; }
.cg-ft-legal a { color: rgba(252, 252, 242, .75); }
.cg-ft-legal a:hover { color: #fff; }
.cg-ft-pagos { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: .5rem .6rem; }
.cg-ft-pagos-k { display: inline-flex; align-items: center; gap: .4rem; margin-right: .3rem; font-size: .7rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: rgba(252, 252, 242, .55); }
.cg-ft-pagos-k svg { width: 15px; height: 15px; color: var(--fs-color-primary); }
.cg-ft .payment-icons { margin: 0; }
.cg-ft .payment-icons .payment-icon { margin: 0 .25rem 0 0; padding: .25rem .45rem; border-radius: 4px; background: #fcfcf2; opacity: 1; }
.cg-ft .payment-icons .payment-icon svg { width: 34px; height: 20px; fill: #262626; }
.cg-ft-chip { padding: .3rem .55rem; border-radius: 4px; background: #fcfcf2; font-size: .72rem; font-weight: 900; letter-spacing: .04em; line-height: 1.15; color: #262626; }
/* Barra inferior de Flatsome (copyright) */
.absolute-footer { border-top: 1px solid rgba(252, 252, 242, .08); font-size: .8rem; }
.absolute-footer .copyright-footer, .absolute-footer .footer-secondary { color: rgba(252, 252, 242, .55); }

@media (max-width: 849px) {
	.cg-ft-nl-t { font-size: 1.6rem; }
	.cg-ft-nl .col + .col { margin-top: 1.4rem; }
	.cg-ft-marca { margin-bottom: 1.2rem; }
	.cg-ft-pagos { justify-content: flex-start; margin-top: 1rem; }
}
@media (max-width: 549px) {
	.cg-ft-nl { padding: 2.4rem 0 2rem; }
	.cg-ft-nl-form { flex-direction: column; padding: .5rem; border-radius: 18px; }
	:root body .cg-ft .cg-ft-nl-form input[type=email] { min-height: 3rem; }
	.cg-ft .cg-ft-nl-btn { width: 100%; }
	.cg-ft-menu { margin-bottom: .6rem; }
	.cg-ft-menu .ux-menu-link__link { font-size: .86rem; }
	.cg-ft-legal { gap: .4rem 1rem; font-size: .8rem; }
}
@media (prefers-reduced-motion: reduce) {
	.cg-ft-menu .ux-menu-link__link { transition: none; }
}


/* =====================================================================
   Encabezado: barra superior, navegación y mega menús (docs/header/header-guardar.php)
   ===================================================================== */
/* Barra superior */
#top-bar { font-size: .76rem; }
.cg-tb { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 0 1.4rem; }
.cg-tb-i { position: relative; color: rgba(252, 252, 242, .7) !important; letter-spacing: .02em; }
.cg-tb-i + .cg-tb-i::before { content: ""; position: absolute; left: -.75rem; top: 50%; width: 3px; height: 3px; margin-top: -1.5px; border-radius: 50%; background: rgba(252, 252, 242, .35); }
a.cg-tb-i:hover { color: #fff !important; }
.cg-tb-agenda { font-weight: 700; color: var(--fs-color-primary) !important; }
/* Barra principal */
.header-main { border-bottom: 1px solid rgba(38, 38, 38, .08); }
.header-main .nav > li > a { font-size: .95rem; font-weight: 700; letter-spacing: .01em; color: #262626; }
.header-main .nav > li.active > a, .header-main .nav > li > a:hover { color: #4b2e83; }
.header-main .nav-line-grow > li > a::before { height: 2px; background: #2eb98f; }
.header-main .header-button .button { padding: 0 1.4em; font-size: .9rem; letter-spacing: normal; text-transform: none; box-shadow: 0 10px 20px -12px rgba(46, 185, 143, .9); }
.header-main .header-divider { border-color: rgba(38, 38, 38, .12); }
.stuck .header-main { box-shadow: 0 10px 30px -20px rgba(38, 38, 38, .45); }
/* Desplegables sencillos */
.header-main .nav-dropdown { min-width: 250px; padding: .6rem 0; border: 0; border-top: 3px solid #4b2e83; border-radius: 0 0 10px 10px; box-shadow: 0 28px 50px -24px rgba(38, 38, 38, .45); }
.header-main .nav-dropdown > li > a { padding: .55rem 1.4rem; font-size: .9rem; color: #444; transition: color .2s ease, padding-left .2s ease, background .2s ease; }
.header-main .nav-dropdown > li > a:hover { padding-left: 1.7rem; background: #f6f3fa; color: #4b2e83; }
.header-main .nav-dropdown > li.active > a { color: #4b2e83; font-weight: 700; }
/* Mega menús (UX Blocks) */
.header-main .menu-item-has-block > .nav-dropdown { padding: 0; border-top: 3px solid #4b2e83; border-radius: 0 0 14px 14px; overflow: hidden; }
.cg-mm { padding: 2rem 1.4rem 1.2rem; }
.cg-mm > .col { padding-bottom: 0; }
.cg-mm-intro { position: relative; }
.cg-mm-intro::after { content: ""; position: absolute; top: 0; bottom: 1rem; right: 0; border-right: 1px solid rgba(38, 38, 38, .1); }
.cg-mm .cg-eyebrow { margin-bottom: .6rem; }
.cg-mm-t { margin: 0 0 .5rem; font-size: 1.45rem; font-weight: 700; line-height: 1.15; letter-spacing: -.02em; color: #262626; }
.cg-mm-t em { font-style: normal; color: #4b2e83; }
.cg-mm-p { margin: 0 0 .8rem; font-size: .9rem; line-height: 1.55; color: #666; }
.cg-mm .cg-mm-link { margin: 0; padding: 0; font-weight: 700; color: #1e7f61; }
.cg-mm-menu .ux-menu-title { margin-bottom: .5rem; font-size: .68rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: #8a8a8a; }
.cg-mm-menu .ux-menu-link { border: 0 !important; }
.cg-mm-menu .ux-menu-link__link { min-height: 0; padding: .45rem .6rem; border-radius: 8px; font-size: .95rem; font-weight: 700; color: #262626; transition: background .2s ease, color .2s ease; }
.cg-mm-menu .ux-menu-link__link:hover { background: #f6f3fa; color: #4b2e83; }
.cg-mm-menu .ux-menu-link--active .ux-menu-link__link { color: #4b2e83; }
.cg-mm-cards { display: grid; gap: .5rem; }
.cg-mm-card { display: flex; align-items: center; gap: .8rem; padding: .7rem .8rem; border-radius: 10px; background: #fcfcf2; color: #262626; transition: transform .2s ease, background .2s ease; }
.cg-mm-card:hover { transform: translateX(3px); background: #f1eef5; color: #262626; }
.cg-mm-card-ico { display: grid; place-items: center; flex: none; width: 2.4rem; height: 2.4rem; border-radius: 10px; background: #fff; color: #4b2e83; box-shadow: inset 0 0 0 1px rgba(75, 46, 131, .15); }
.cg-mm-card b { display: block; font-size: .92rem; line-height: 1.25; }
.cg-mm-card small { display: block; font-size: .78rem; line-height: 1.35; color: #666; }
.cg-mm-card--cta { background: #4b2e83; color: #fcfcf2; }
.cg-mm-card--cta:hover { background: #3a2367; color: #fff; }
.cg-mm-card--cta .cg-mm-card-ico { background: #2eb98f; color: #fff; box-shadow: none; }
.cg-mm-card--cta small { color: rgba(252, 252, 242, .75); }
/* Menú lateral móvil */
.mobile-sidebar .nav-sidebar > li > a { font-size: 1rem; font-weight: 700; text-transform: none; }
.mobile-sidebar .nav-sidebar .children a, .mobile-sidebar .nav-sidebar .sub-menu a { font-size: .92rem; text-transform: none; }
.mobile-sidebar .header-button .button { width: 100%; letter-spacing: normal; text-transform: none; }
.cg-mob-contacto { display: grid; gap: .4rem; padding: .6rem 0; font-size: .9rem; }
.cg-mob-contacto a { font-weight: 700; color: #4b2e83; }
.cg-mob-contacto span { color: #8a8a8a; }
@media (max-width: 849px) {
	#top-bar .cg-tb-i:nth-child(1), #top-bar .cg-tb-i:nth-child(3) { display: none; }
	#top-bar .cg-tb-i:nth-child(4)::before { display: none; }
	#top-bar .cg-tb { gap: 0 1.6rem; }
}
@media (prefers-reduced-motion: reduce) {
	.header-main .nav-dropdown > li > a, .cg-mm-card, .cg-mm-menu .ux-menu-link__link { transition: none; }
}

/* Mega menús: espaciado interior, columnas y franja inferior (ajuste editorial) */
.header-main .nav-line-bottom > li > a::before { height: 3px; background: #2eb98f; }
.header-main .menu-item-has-block > .nav-dropdown { padding: 0 !important; }
.header-main .nav-dropdown .cg-mm { width: auto !important; max-width: none !important; margin: 0 !important; padding: 2.2rem 1.4rem 1rem !important; }
.header-main .nav-dropdown .cg-mm > .col { padding: 0 1.6rem 1.4rem !important; }
.header-main .nav-dropdown .cg-mm-intro::after { right: 0; bottom: 1.4rem; }
.cg-mm-t { font-size: 1.55rem; }
.cg-mm-p { max-width: 22em; }
.header-main .nav-dropdown .cg-mm .cg-mm-link { min-height: 0; line-height: 1.4; }
.cg-mm-menu .ux-menu-title { padding-bottom: .6rem; margin-bottom: .6rem; border-bottom: 1px solid rgba(38, 38, 38, .1); }
.cg-mm-menu .ux-menu-link__link { position: relative; margin: 0 -.6rem; padding: .5rem 2rem .5rem .6rem; }
.cg-mm-menu .ux-menu-link__link::after { content: "→"; position: absolute; right: .7rem; top: 50%; color: #2eb98f; opacity: 0; transform: translate(-6px, -50%); transition: opacity .2s ease, transform .2s ease; }
.cg-mm-menu .ux-menu-link__link:hover::after { opacity: 1; transform: translate(0, -50%); }
.cg-mm-cards { gap: .6rem; }
.cg-mm-card { padding: .8rem .9rem; border: 1px solid rgba(38, 38, 38, .06); }
.cg-mm-card b { margin-bottom: .1rem; }
/* Franja inferior */
.header-main .nav-dropdown .cg-mm-pie { width: auto !important; max-width: none !important; margin: 0 !important; border-top: 1px solid rgba(38, 38, 38, .08); background: #fcfcf2; }
.header-main .nav-dropdown .cg-mm-pie > .col { padding: 0 !important; }
.cg-mm-pie-in { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .4rem 2rem; padding: .95rem 3rem; font-size: .86rem; color: #555; }
.cg-mm-pie-in b { color: #262626; }
.header-main .nav-dropdown .cg-mm-pie-in a { padding: 0; font-weight: 700; color: #4b2e83; }
.header-main .nav-dropdown .cg-mm-pie-in a:hover { color: #1e7f61; background: none; }
/* Entrada suave del panel */
.header-main .menu-item-has-block:hover > .nav-dropdown .cg-mm > .col { animation: cg-mm-in .35s cubic-bezier(.2, .8, .2, 1) backwards; }
.header-main .menu-item-has-block:hover > .nav-dropdown .cg-mm > .col:nth-child(2) { animation-delay: .05s; }
.header-main .menu-item-has-block:hover > .nav-dropdown .cg-mm > .col:nth-child(3) { animation-delay: .1s; }
@keyframes cg-mm-in { from { opacity: 0; transform: translateY(6px); } }
@media (prefers-reduced-motion: reduce) {
	.header-main .menu-item-has-block:hover > .nav-dropdown .cg-mm > .col { animation: none; }
	.cg-mm-menu .ux-menu-link__link::after { transition: none; }
}

/* Encabezado: íconos y escala más finos */
.header-main .cart-item .header-cart-link, .header-main .header-search a { display: inline-flex; align-items: center; justify-content: center; width: 2.4rem; height: 2.4rem; border-radius: 50%; color: #262626; transition: background .2s ease, color .2s ease; }
.header-main .cart-item .header-cart-link:hover, .header-main .header-search a:hover { background: #f1eef5; color: #4b2e83; }
.header-main .header-search .icon-search { font-size: 1.05rem !important; }
.header-main .cart-icon.image-icon, .header-main .header-cart-link .cart-icon { position: relative; margin: 0; }
.header-main .header-cart-link i.icon-shopping-bag, .header-main .header-cart-link [class*=icon-shopping] { font-size: 1.15rem !important; top: 0; }
.header-main .header-cart-link [data-icon-label]::after, .header-main .header-cart-link i[data-icon-label]::after { top: -.45rem; right: -.6rem; min-width: 1.05rem; height: 1.05rem; padding: 0 .25rem; border-radius: 99px; background: #2eb98f; box-shadow: 0 0 0 2px #fff; font-size: .62rem; font-weight: 900; line-height: 1.05rem; color: #fff; }
.header-main .header-cart-link [data-icon-label="0"]::after { display: none; }
.header-main .header-button .button.is-small { min-height: 2.4rem; padding: 0 1.25em; font-size: .86rem; line-height: 2.4rem; }
.header-main .header-divider { height: 1.6rem; margin: 0 .4rem; }
.header-main .nav > li > a { font-size: .93rem; }

/* Mega menús: fondo morado suave */
.header-main .menu-item-has-block > .nav-dropdown { background: #f5f1fa; }
.header-main .nav-dropdown .cg-mm { background: linear-gradient(135deg, #f8f5fc 0%, #f1ebf8 100%); }
.header-main .nav-dropdown .cg-mm-intro::after { border-right-color: rgba(75, 46, 131, .14); }
.cg-mm-menu .ux-menu-title { border-bottom-color: rgba(75, 46, 131, .14); }
.cg-mm-menu .ux-menu-link__link:hover { background: #fff; }
.cg-mm-card:not(.cg-mm-card--cta) { background: #fcfcf2; border-color: rgba(75, 46, 131, .1); box-shadow: 0 8px 18px -14px rgba(75, 46, 131, .45); }
.cg-mm-card:not(.cg-mm-card--cta):hover { background: #fffff8; box-shadow: 0 12px 24px -14px rgba(75, 46, 131, .6); }
.cg-mm-card:not(.cg-mm-card--cta) .cg-mm-card-ico { background: #fff; box-shadow: inset 0 0 0 1px rgba(75, 46, 131, .15); }
.cg-mm-card--cta { box-shadow: 0 14px 26px -14px rgba(75, 46, 131, .8); }
.header-main .nav-dropdown .cg-mm-pie { border-top-color: rgba(75, 46, 131, .12); background: #fcfcf2; }

/* Mega menú de Personas: fondo verde suave (Empresas conserva el morado) */
.header-main .menu-item-has-block > .nav-dropdown:has(.cg-mm--personas) { background: #eef8f3; }
.header-main .nav-dropdown .cg-mm.cg-mm--personas { background: linear-gradient(135deg, #f3faf6 0%, #e6f4ed 100%); }
.header-main .nav-dropdown .cg-mm--personas .cg-mm-intro::after { border-right-color: rgba(30, 127, 97, .16); }
.cg-mm--personas .cg-mm-menu .ux-menu-title { border-bottom-color: rgba(30, 127, 97, .16); }
.cg-mm--personas .cg-mm-card:not(.cg-mm-card--cta) { border-color: rgba(30, 127, 97, .12); box-shadow: 0 8px 18px -14px rgba(30, 127, 97, .45); }
.cg-mm--personas .cg-mm-card:not(.cg-mm-card--cta) .cg-mm-card-ico { box-shadow: inset 0 0 0 1px rgba(30, 127, 97, .2); color: #1e7f61; }
.cg-mm--personas .cg-mm-menu .ux-menu-link__link:hover { color: #1e7f61; }
.header-main .nav-dropdown:has(.cg-mm--personas) .cg-mm-pie { border-top-color: rgba(30, 127, 97, .14); }

/* Mega menú Recursos: tarjetas automáticas (inc/cg-menu.php) */
.header-main .nav-dropdown .cg-mm.cg-mm--recursos { background: linear-gradient(135deg, #f8f5fc 0%, #f1ebf8 100%); }
.cg-mmr { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.cg-mmr-card { display: flex; flex-direction: column; min-width: 0; padding: 1rem 1rem 1.1rem; border: 1px solid rgba(75, 46, 131, .1); border-radius: 12px; background: #fff; box-shadow: 0 10px 22px -16px rgba(75, 46, 131, .5); transition: transform .25s ease, box-shadow .25s ease; }
.cg-mmr-card:hover { transform: translateY(-3px); box-shadow: 0 16px 30px -16px rgba(75, 46, 131, .6); }
.cg-mmr-k { display: flex; align-items: center; gap: .45rem; margin: 0 0 .8rem; padding-bottom: .6rem; border-bottom: 1px solid rgba(38, 38, 38, .08); font-size: .64rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: #8a8a8a; }
.cg-mmr-live { position: relative; width: .5rem; height: .5rem; border-radius: 50%; background: #b3261e; }
.cg-mmr-live::after { content: ""; position: absolute; inset: 0; border-radius: 50%; background: #b3261e; animation: cg-ev-pulso 1.8s ease-out infinite; }
.cg-mmr-card h4 { margin: 0 0 .3rem; font-size: 1rem; line-height: 1.3; letter-spacing: -.01em; }
.cg-mmr-card h4 a { padding: 0 !important; color: #262626 !important; background: none !important; }
.cg-mmr-card h4 a:hover { color: #4b2e83 !important; }
.cg-mmr-meta { margin: 0 0 .8rem; font-size: .78rem; line-height: 1.45; color: #777; }
.header-main .nav-dropdown .cg-mmr-cta { display: inline-flex; align-items: center; gap: .35rem; min-height: 0; margin: auto 0 0; padding: 0 !important; border: 0; background: none !important; font-size: .84rem; font-weight: 700; line-height: 1.3; letter-spacing: normal; text-transform: none; color: #1e7f61 !important; cursor: pointer; }
.header-main .nav-dropdown .cg-mmr-cta:hover { color: #4b2e83 !important; }
/* Fecha del próximo webinar */
.cg-mmr-fecha { display: inline-grid; justify-items: center; align-self: flex-start; min-width: 3.4rem; margin-bottom: .7rem; padding: .35rem .6rem .4rem; border-radius: 8px; background: #4b2e83; color: #fcfcf2; }
.cg-mmr-fecha b { font-size: 1.5rem; line-height: 1; }
.cg-mmr-fecha span { font-size: .62rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.cg-mmr-fecha--pronto { background: #f1eef5; color: #4b2e83; }
/* Miniaturas (grabación, artículo) */
.header-main .nav-dropdown .cg-mmr-thumb { position: relative; display: block; margin: 0 0 .7rem; padding: 0 !important; overflow: hidden; border-radius: 8px; background: #262626; aspect-ratio: 16 / 9; }
.cg-mmr-thumb img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease, opacity .3s ease; }
.cg-mmr-thumb:hover img { transform: scale(1.05); opacity: .85; }
.cg-mmr-play { position: absolute; top: 50%; left: 50%; display: grid; place-items: center; width: 2.3rem; height: 2.3rem; margin: -1.15rem 0 0 -1.15rem; border-radius: 50%; background: #fcfcf2; color: #4b2e83; box-shadow: 0 8px 18px -8px rgba(0, 0, 0, .6); }
.cg-mmr-play svg { margin-left: 2px; }
.cg-mmr-cat { margin: 0 0 .3rem; font-size: .66rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #1e7f61; }
.cg-mmr-cita { margin: .2rem 0 .5rem; font-size: 1.15rem; font-weight: 700; line-height: 1.3; letter-spacing: -.01em; color: #4b2e83; }
@media (prefers-reduced-motion: reduce) {
	.cg-mmr-card, .cg-mmr-thumb img { transition: none; }
	.cg-mmr-live::after { animation: none; }
}

/* Mega menú Servicios: catálogo, membresías y notificaciones (inc/cg-menu.php) */
.header-main .nav-dropdown .cg-mm.cg-mm--servicios { padding-bottom: 1.6rem !important; background: linear-gradient(135deg, #fdfcf5 0%, #f6f1df 100%); }
.header-main .menu-item-has-block > .nav-dropdown:has(.cg-mm--servicios) { background: #f8f4e6; }
.cg-mms { display: grid; grid-template-columns: 1.15fr 1fr .95fr; gap: 0; }
.cg-mms-col { display: flex; flex-direction: column; min-width: 0; padding: 0 1.6rem; }
.cg-mms-col + .cg-mms-col { border-left: 1px solid rgba(38, 38, 38, .1); }
.cg-mms-col:first-child { padding-left: 0; }
.cg-mms-col:last-child { padding-right: 0; }
.cg-mms-k { margin: 0 0 .9rem; padding-bottom: .6rem; border-bottom: 1px solid rgba(38, 38, 38, .1); font-size: .66rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: #8a8a8a; }
.header-main .nav-dropdown .cg-mms a { padding: 0; background: none; }
/* Universos */
.cg-mms-unis { display: grid; gap: .5rem; }
.header-main .nav-dropdown a.cg-mms-uni { display: flex; align-items: flex-start; gap: .8rem; padding: .7rem .75rem; border-radius: 10px; background: #fff; box-shadow: 0 8px 18px -14px rgba(38, 38, 38, .45); color: #262626; transition: transform .2s ease, box-shadow .2s ease; }
.header-main .nav-dropdown a.cg-mms-uni:hover { transform: translateX(3px); box-shadow: 0 12px 24px -14px rgba(75, 46, 131, .55); }
.cg-mms-letra { display: grid; place-items: center; flex: none; width: 2.3rem; height: 2.3rem; border-radius: 8px; background: #4b2e83; font-size: 1.1rem; font-weight: 900; color: #fcfcf2; }
.cg-mms-uni b { display: block; font-size: .95rem; line-height: 1.25; }
.cg-mms-uni small { display: block; margin: .15rem 0 .3rem; font-size: .76rem; line-height: 1.4; color: #666; }
.cg-mms-uni i { font-size: .66rem; font-style: normal; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #4b2e83; }
.header-main .nav-dropdown a.cg-mms-cta { margin-top: auto; padding-top: .9rem; font-size: .84rem; font-weight: 700; color: #1e7f61; }
.header-main .nav-dropdown a.cg-mms-cta:hover { color: #4b2e83; }
/* Membresías */
.cg-mms-planes { margin: 0; padding: 0; list-style: none; }
.cg-mms-planes li { margin: 0; border-bottom: 1px dashed rgba(38, 38, 38, .14); }
.header-main .nav-dropdown .cg-mms-planes a { display: block; padding: .5rem .5rem !important; margin: 0 -.5rem; border-radius: 8px; color: #262626; transition: background .2s ease; }
.header-main .nav-dropdown .cg-mms-planes a:hover { background: rgba(255, 255, 255, .8); }
.cg-mms-plan-t { display: flex; align-items: baseline; justify-content: space-between; gap: .6rem; }
.cg-mms-plan-t b { font-size: .9rem; }
.cg-mms-plan-t em { flex: none; padding: .1em .5em; border-radius: 99px; background: #f1eef5; font-size: .64rem; font-style: normal; font-weight: 700; letter-spacing: .04em; color: #4b2e83; }
.cg-mms-planes small { display: block; margin-top: .15rem; font-size: .74rem; line-height: 1.4; color: #777; }
/* Notificaciones */
.cg-mms-avisos-p { margin: 0 0 .6rem; font-size: .8rem; line-height: 1.45; color: #666; }
.cg-mms-avisos { margin: 0 0 1rem; padding: 0; list-style: none; }
.cg-mms-avisos li { display: flex; align-items: baseline; justify-content: space-between; gap: .8rem; margin: 0; padding: .45rem 0; border-bottom: 1px solid rgba(38, 38, 38, .08); font-size: .82rem; line-height: 1.35; color: #262626; }
.cg-mms-avisos li span { position: relative; padding-left: 1rem; }
.cg-mms-avisos li span::before { content: ""; position: absolute; left: 0; top: .45em; width: .45rem; height: .45rem; border-radius: 50%; background: #2eb98f; }
.cg-mms-avisos em { flex: none; padding: .1em .5em; border-radius: 99px; background: #e3f5ee; font-size: .66rem; font-style: normal; font-weight: 700; color: #1e7f61; white-space: nowrap; }
.header-main .nav-dropdown a.cg-mms-btn { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; margin-top: auto; padding: .7rem 1rem !important; border-radius: 99px; background: #2eb98f; font-size: .86rem; font-weight: 700; color: #fff; box-shadow: 0 10px 20px -12px rgba(30, 127, 97, .9); transition: background .2s ease; }
.header-main .nav-dropdown a.cg-mms-btn:hover { background: #1e7f61; color: #fff; }
/* Franja inferior con enlaces rápidos */
.cg-mm-pie-links { display: inline-flex; flex-wrap: wrap; gap: .3rem 1.4rem; }
.header-main .nav-dropdown:has(.cg-mm--servicios) .cg-mm-pie { background: #fff; }
@media (prefers-reduced-motion: reduce) {
	.cg-mms-uni, .cg-mms-planes a { transition: none; }
}

/* Servicios: color por público (empresas = morado, personas = verde, ambos = mitad y mitad) */
.cg-mms-uni--empresas .cg-mms-letra { background: #4b2e83; }
.cg-mms-uni--personas .cg-mms-letra { background: #1e7f61; }
.cg-mms-uni--ambos .cg-mms-letra { background: linear-gradient(135deg, #4b2e83 0 50%, #1e7f61 50% 100%); }
.cg-mms-uni-pie { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem .4rem; }
.cg-mms-uni-pie i { margin-right: .2rem; color: #8a8a8a !important; }
.cg-mms-aud { padding: .05em .5em; border-radius: 99px; font-size: .62rem; font-style: normal; font-weight: 700; letter-spacing: .04em; }
.cg-mms-aud--empresas { background: #f1eef5; color: #4b2e83; }
.cg-mms-aud--personas { background: #e3f5ee; color: #1e7f61; }
.header-main .nav-dropdown a.cg-mms-uni--empresas:hover { box-shadow: 0 12px 24px -14px rgba(75, 46, 131, .6); }
.header-main .nav-dropdown a.cg-mms-uni--personas:hover { box-shadow: 0 12px 24px -14px rgba(30, 127, 97, .6); }

/* Claves dentro de las fichas (paquetes del catálogo y similares): la lista se parte entre claves,
   nunca a la mitad de una clave, y no se sale de la tarjeta. */
.cg-sku-wrap { display: block; max-width: 100%; }
.cg-sku-wrap .cg-sku { display: inline; margin-left: 0; white-space: normal; line-height: 1.9; overflow-wrap: normal; }
.cg-sku-wrap .cg-sku a { white-space: nowrap; }
.cg-cat-paq p:has(> .cg-sku-wrap) strong { display: block; margin-bottom: .1rem; }

/* Newsletter del footer: versión discreta */
.cg-ft-nl { padding: 2rem 0 1.8rem; }
.cg-ft .cg-ft-nl .cg-eyebrow { margin-bottom: .2rem; font-size: .66rem; }
.cg-ft-nl-t { margin: .2rem 0 .3rem; font-size: 1.25rem; line-height: 1.25; letter-spacing: -.01em; }
.cg-ft-nl-t em { color: rgba(252, 252, 242, .95); font-weight: 700; border-bottom: 2px solid rgba(46, 185, 143, .7); }
.cg-ft-nl-p { font-size: .86rem; color: rgba(252, 252, 242, .55); }
.cg-ft-nl-form { max-width: 30rem; margin-left: auto; padding: .25rem; border: 1px solid rgba(252, 252, 242, .2); background: rgba(252, 252, 242, .05); box-shadow: none; transition: border-color .2s ease, background .2s ease; }
.cg-ft-nl-form:focus-within { border-color: rgba(46, 185, 143, .7); background: rgba(252, 252, 242, .08); }
:root body .cg-ft .cg-ft-nl-form input[type=email] { padding-left: 2.5rem; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232EB98F' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='m22 7-10 6L2 7'/%3E%3C/svg%3E"); background-position: .9rem center; background-size: 1.05rem; font-size: .92rem; color: #fcfcf2; }
:root body .cg-ft .cg-ft-nl-form input[type=email]::placeholder { color: rgba(252, 252, 242, .45); }
.cg-ft .cg-ft-nl-btn { min-height: 0; padding: .55em 1.2em; font-size: .84rem; line-height: 1.4; box-shadow: none; }
.cg-ft-nl-pie { max-width: 30rem; margin: .6rem 0 0 auto; font-size: .74rem; color: rgba(252, 252, 242, .4); }
.cg-ft .cg-ft-unsub { color: rgba(252, 252, 242, .6); font-weight: 600; }
@media (max-width: 849px) {
	.cg-ft-nl-form, .cg-ft-nl-pie { margin-left: 0; }
}
@media (max-width: 549px) {
	.cg-ft-nl-form { flex-direction: row; border-radius: 99px; }
	.cg-ft .cg-ft-nl-btn { width: auto; }
	:root body .cg-ft .cg-ft-nl-form input[type=email] { min-height: 0; }
}

/* Footer reordenado: 4 menús parejos arriba y franja de contacto limpia abajo */
.cg-ft-main { padding: 3rem 0 2rem; }
.cg-ft-menu .ux-menu-title { display: flex; align-items: center; gap: .55rem; margin-bottom: 1rem; padding-bottom: .75rem; border-bottom: 1px solid rgba(252, 252, 242, .16); font-size: .74rem; letter-spacing: .2em; }
.cg-ft-menu .ux-menu-title::before { content: ""; flex: none; width: .55rem; height: .55rem; border-radius: 2px; background: rgba(252, 252, 242, .5); }
.cg-ft-menu--empresas .ux-menu-title::before { background: #8a63d2; }
.cg-ft-menu--personas .ux-menu-title::before { background: #2eb98f; }
.cg-ft-menu .ux-menu-link__link { padding: .38rem 0; font-size: .92rem; white-space: nowrap; }
.cg-ft-menu--empresas .ux-menu-link__link:hover { color: #c7b3ee; }
.cg-ft-menu--personas .ux-menu-link__link:hover { color: #7fdcbf; }
/* Franja de contacto */
.cg-ft-contacto-fila { padding: 1.8rem 0; border-top: 1px solid rgba(252, 252, 242, .12); }
.cg-ft-marca-in { display: flex; align-items: center; gap: 1rem; }
.cg-ft-marca-in .cg-ft-logo { flex: none; margin: 0; }
.cg-ft-marca-in .cg-ft-lema { max-width: 15em; margin: 0; font-size: .9rem; line-height: 1.45; color: rgba(252, 252, 242, .7); }
.cg-ft-contacto { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .6rem; margin: 0; }
.cg-ft-contacto li { margin: 0; }
.cg-ft-contacto li, .cg-ft-contacto a { gap: .6rem; padding: 0; font-size: .86rem; white-space: nowrap; }
.cg-ft-contacto li > svg, .cg-ft-contacto a > svg { padding: .45rem; width: 2.1rem; height: 2.1rem; border-radius: 50%; background: rgba(252, 252, 242, .06); box-sizing: border-box; }
.cg-ft-contacto a:hover > svg { background: rgba(46, 185, 143, .2); }
.cg-ft-redes-fila { display: flex; align-items: center; justify-content: flex-end; gap: .8rem; margin-top: 1rem; }
.cg-ft-redes-fila > span { font-size: .66rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: rgba(252, 252, 242, .45); }
.cg-ft-redes-fila .social-icons { margin: 0; }
.cg-ft .cg-ft-redes a.button { width: 2rem; height: 2rem; min-height: 0; margin: 0 .15rem; line-height: 1.9rem; }
@media (max-width: 849px) {
	.cg-ft-main .col { margin-bottom: 1.4rem; }
	.cg-ft-marca-in { margin-bottom: 1.4rem; }
	.cg-ft-contacto { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 1rem; }
	.cg-ft-redes-fila { justify-content: flex-start; }
}
@media (max-width: 549px) {
	.cg-ft-menu .ux-menu-link__link { white-space: normal; }
	.cg-ft-contacto { grid-template-columns: minmax(0, 1fr); }
	.cg-ft-marca-in { flex-direction: column; align-items: flex-start; }
}

/* Franja de contacto del footer: discreta (una línea de texto, íconos pequeños) */
.cg-ft-contacto-fila { padding: 1.1rem 0; }
.cg-ft-marca-in { gap: .8rem; }
.cg-ft-marca-in .cg-ft-logo { padding: .3rem .6rem; }
.cg-ft-marca-in .cg-ft-logo .img-inner, .cg-ft-marca-in .cg-ft-logo img { width: 5.2rem !important; }
.cg-ft-marca-in .cg-ft-lema { max-width: 17em; font-size: .78rem; color: rgba(252, 252, 242, .5); }
.cg-ft-contacto { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: .3rem 1.4rem; }
.cg-ft-contacto li, .cg-ft-contacto a { gap: .4rem; font-size: .8rem; font-weight: 600; color: rgba(252, 252, 242, .7); }
.cg-ft-contacto a:hover { color: #fff; }
.cg-ft-contacto small { display: none; }
.cg-ft-contacto li > svg, .cg-ft-contacto a > svg { width: 14px; height: 14px; padding: 0; background: none; color: rgba(46, 185, 143, .85); }
.cg-ft-contacto a:hover > svg { background: none; }
.cg-ft-contacto li:last-child span::after { content: " (CDMX)"; }
.cg-ft-contacto li:last-child span::before { content: "Lun–Vie "; }
.cg-ft-contacto li:nth-child(3) span { font-size: 0; }
.cg-ft-contacto li:nth-child(3) span::after { content: "WhatsApp"; font-size: .8rem; }
.cg-ft-redes-fila { gap: .2rem; margin-top: .5rem; }
.cg-ft-redes-fila > span { display: none; }
.cg-ft .cg-ft-redes a.button { width: 1.7rem; height: 1.7rem; margin: 0; border: 0 !important; background: none !important; line-height: 1.7rem; color: rgba(252, 252, 242, .5) !important; }
.cg-ft .cg-ft-redes a.button:hover { background: none !important; color: #fff !important; }
.cg-ft .cg-ft-redes a.button i { font-size: .9rem; }
@media (max-width: 849px) {
	.cg-ft-contacto, .cg-ft-redes-fila { justify-content: flex-start; }
	.cg-ft-marca-in { margin-bottom: .9rem; }
}
@media (max-width: 549px) {
	.cg-ft-contacto { flex-direction: row; gap: .5rem 1.2rem; }
	.cg-ft-marca-in { flex-direction: row; align-items: center; }
}

/* Barra legal y pagos: discreta, con los íconos de pago monocromos de Flatsome para fondos oscuros */
.cg-ft-base { padding: 1rem 0; }
.cg-ft-legal { gap: .3rem 1.2rem; font-size: .76rem; font-weight: 600; }
.cg-ft-legal a { color: rgba(252, 252, 242, .5); }
.cg-ft-legal a:hover { color: #fff; }
.cg-ft-pagos { gap: .2rem .5rem; }
.cg-ft-pagos-k { margin-right: .2rem; font-size: .62rem; letter-spacing: .14em; color: rgba(252, 252, 242, .4); }
.cg-ft-pagos-k svg { width: 12px; height: 12px; color: rgba(46, 185, 143, .7); }
.cg-ft .payment-icons .payment-icon { margin: 0 .1rem; padding: 0; border-radius: 0; background: none; opacity: .5; transition: opacity .2s ease; }
.cg-ft .payment-icons .payment-icon:hover { opacity: .9; }
.cg-ft .payment-icons .payment-icon svg { width: 30px; height: 18px; fill: #fcfcf2; }
.cg-ft-chip { padding: .1rem .4rem; border: 1px solid rgba(252, 252, 242, .3); border-radius: 3px; background: none; font-size: .6rem; font-weight: 700; letter-spacing: .06em; color: rgba(252, 252, 242, .55); }

/* Ficha de servicio con CG Quotation: botón "Agregar para cotizar" + caja de apoyo */
.cg-ficha form.cart { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; margin-bottom: 1rem; }
.cg-ficha form.cart .quantity { margin: 0; }
.cg-ficha .single_add_to_cart_button { margin: 0; padding: 0 1.8em; background-color: #2eb98f !important; box-shadow: 0 12px 24px -14px rgba(30, 127, 97, .9); }
.cg-ficha .single_add_to_cart_button:hover { background-color: #1e7f61 !important; }
.cg-woo-cotiza--cgq { padding: 1rem 1.2rem; border-left: 3px solid #4b2e83; border-radius: 0 10px 10px 0; background: #f6f3fa; }
.cg-woo-cotiza-pasos { margin: 0 0 .7rem; padding: 0; list-style: none; counter-reset: cgwc; }
.cg-woo-cotiza-pasos li { counter-increment: cgwc; position: relative; margin: 0 0 .35rem; padding-left: 1.8rem; font-size: .9rem; line-height: 1.45; color: #444; }
.cg-woo-cotiza-pasos li::before { content: counter(cgwc); position: absolute; left: 0; top: .05rem; display: grid; place-items: center; width: 1.25rem; height: 1.25rem; border-radius: 50%; background: #4b2e83; font-size: .7rem; font-weight: 700; color: #fff; }
.cg-woo-cotiza-alt { margin: 0 0 .4rem; font-size: .86rem; color: #555; }
.cg-woo-cotiza-alt a, .cg-woo-cotiza-alt .cg-woo-cotiza-quiz { display: inline; min-height: 0; margin: 0; padding: 0; border: 0; background: none; font-size: inherit; font-weight: 700; line-height: inherit; letter-spacing: normal; text-transform: none; text-decoration: underline; text-underline-offset: .2em; color: #4b2e83; cursor: pointer; }

/* Servicios relacionados (ficha): cuadrícula editorial de 3 columnas — [cg_relacionados] en inc/cg-woo.php */
.cg-rel-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: .4rem 2rem; margin-bottom: 1.4rem; padding-bottom: .9rem; border-bottom: 2px solid #262626; }
.cg-rel-head .cg-eyebrow { margin: 0 0 .3rem; flex-basis: 100%; }
.cg-rel-t { margin: 0; font-size: 1.7rem; line-height: 1.15; letter-spacing: -.02em; color: #262626; }
.cg-rel-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.2rem; }
.cg-rel-card { display: flex; flex-direction: column; padding: 1.3rem 1.3rem 1.1rem; border: 1px solid rgba(38, 38, 38, .1); border-radius: 12px; background: #fff; transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.cg-rel-card:hover { transform: translateY(-3px); border-color: rgba(75, 46, 131, .3); box-shadow: 0 18px 32px -22px rgba(38, 38, 38, .45); }
.cg-rel-sku { display: flex; align-items: center; justify-content: space-between; gap: .6rem; margin: 0 0 .6rem; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: .74rem; font-weight: 700; letter-spacing: .04em; color: #4b2e83; }
.cg-rel-sku span { font-family: Lato, sans-serif; font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; color: #8a8a8a; }
.cg-rel-card h3 { margin: 0 0 .5rem; font-size: 1.12rem; line-height: 1.3; }
.cg-rel-card h3 a { color: #262626; }
.cg-rel-card h3 a:hover { color: #4b2e83; }
.cg-rel-txt { margin: 0 0 .8rem; font-size: .9rem; line-height: 1.55; color: #555; }
.cg-rel-auds { display: flex; flex-wrap: wrap; gap: .3rem; margin: 0 0 1rem; }
.cg-rel-aud { padding: .15em .65em; border-radius: 99px; font-size: .68rem; font-weight: 700; letter-spacing: .04em; }
.cg-rel-aud--empresas { background: #f1eef5; color: #4b2e83; }
.cg-rel-aud--personas { background: #e3f5ee; color: #1e7f61; }
.cg-rel-pie { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem 1rem; margin-top: auto; padding-top: .8rem; border-top: 1px solid rgba(38, 38, 38, .08); }
.cg-rel-precio, .cg-rel-precio .cg-woo-precio { font-size: .84rem; font-weight: 700; color: #262626; }
.cg-rel-cta { font-size: .88rem; font-weight: 700; color: #1e7f61; white-space: nowrap; }
.cg-rel-cta:hover { color: #4b2e83; }
@media (max-width: 849px) { .cg-rel-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 549px) { .cg-rel-grid { grid-template-columns: minmax(0, 1fr); } .cg-rel-t { font-size: 1.4rem; } }
@media (prefers-reduced-motion: reduce) { .cg-rel-card { transition: none; } }

/* Franja de marca y contacto del footer (v3): logo en blanco como en el tema original
   (filter: brightness(0) invert(1)), contacto + redes en una sola línea */
.cg-ft-marca-in .cg-ft-logo { padding: 0 !important; border-radius: 0; background: none !important; }
.cg-ft-marca-in .cg-ft-logo .img-inner, .cg-ft-marca-in .cg-ft-logo img { width: auto !important; height: 34px !important; }
.cg-ft-marca-in .cg-ft-logo img { filter: brightness(0) invert(1); opacity: .94; }
.cg-ft-marca-in { gap: 1.2rem; }
.cg-ft-marca-in .cg-ft-lema { max-width: 20em; padding-left: 1.2rem; border-left: 1px solid rgba(252, 252, 242, .15); font-size: .8rem; line-height: 1.5; color: rgba(252, 252, 242, .55); }
.cg-ft-horario { display: flex; align-items: center; gap: .35rem; margin-top: .2rem; font-size: .74rem; color: rgba(252, 252, 242, .45); }
.cg-ft-horario svg { width: 12px; height: 12px; color: rgba(46, 185, 143, .85); }
.cg-ft-contacto-in { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: .6rem 1.4rem; }
.cg-ft-contacto-in .cg-ft-contacto { flex-wrap: nowrap; gap: 1.3rem; }
.cg-ft-contacto li:last-child span::before, .cg-ft-contacto li:last-child span::after, .cg-ft-contacto li:nth-child(3) span::after { content: none; }
.cg-ft-contacto li:nth-child(3) span { font-size: .8rem; }
.cg-ft-contacto-in .cg-ft-redes-fila { margin: 0; padding-left: 1.2rem; border-left: 1px solid rgba(252, 252, 242, .15); }
@media (max-width: 849px) {
	.cg-ft-contacto-in { justify-content: flex-start; }
	.cg-ft-contacto-in .cg-ft-contacto { flex-wrap: wrap; }
}
@media (max-width: 549px) {
	.cg-ft-marca-in { flex-direction: column; align-items: flex-start; }
	.cg-ft-marca-in .cg-ft-lema { padding-left: 0; border-left: 0; }
	.cg-ft-contacto-in .cg-ft-redes-fila { padding-left: 0; border-left: 0; }
}
.cg-ft-contacto-in .cg-ft-redes-fila .social-icons { display: inline-flex; width: auto; margin: 0; }

/* ==========================================================================
   Empresas · Contratar extranjeros (#161), prefijo .cg-ce-*  (morado = empresas)
   ========================================================================== */
.cg-ce-eyebrow { color: var(--fs-color-secondary); }
.cg-ce-lead { max-width: 36em; font-size: 1.12rem; line-height: 1.6; color: #444; }
.cg-ce-datos { border-top-color: rgba(38, 38, 38, .18); }
.cg-ce-datos span { color: #666; }
.cg-ce-datos b { color: var(--fs-color-secondary); }
.cg-ce-hero .cg-tablero-nota { color: #777 !important; }
/* Expediente ilustrativo */
.cg-ce-exp { position: relative; z-index: 0; max-width: 440px; margin: 1.6em 0 0 auto; padding: 1.6em 1.6em 1.3em; border-radius: 4px 14px 14px 14px; background: #fff; color: #262626; box-shadow: 12px 12px 0 #e4ddef, 0 1px 0 rgba(38, 38, 38, .06), 0 28px 60px -18px rgba(75, 46, 131, .35); transform: rotate(1.2deg); }
.cg-ce-exp-tab { position: absolute; top: -1.9em; left: 0; padding: .45em 1.2em .6em; border-radius: 10px 10px 0 0; background: var(--fs-color-secondary); color: #fcfcf2; font-size: .66rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; }
.cg-ce-exp-head { display: flex; justify-content: space-between; align-items: baseline; gap: 1em; padding-bottom: .9em; border-bottom: 2px solid #262626; }
.cg-ce-exp-head span { font-size: 1.15rem; font-weight: 700; letter-spacing: -.01em; }
.cg-ce-exp-head b { font-size: .74rem; letter-spacing: .08em; color: var(--fs-color-secondary); }
.cg-ce-exp-datos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .8em; margin: 1em 0 1.1em; }
.cg-ce-exp-datos dt { font-size: .6rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: #888; }
.cg-ce-exp-datos dd { margin: .15em 0 0; font-size: .84rem; font-weight: 600; line-height: 1.3; }
.cg-ce-exp-sub { margin: 0 0 .5em; font-size: .64rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--fs-color-secondary); }
.cg-ce-exp-lista { margin: 0 !important; padding: 0; list-style: none; }
.cg-ce-exp-lista li { display: flex; align-items: center; gap: .7em; margin: 0 !important; padding: .5em 0; border-bottom: 1px dashed rgba(38, 38, 38, .14); font-size: .88rem; }
.cg-ce-exp-lista i { display: grid; place-items: center; flex: none; width: 1.35em; height: 1.35em; border-radius: 50%; background: #e3f5ee; color: #1e7f61; font-style: normal; font-size: .72rem; font-weight: 900; }
.cg-ce-exp-pie { display: flex; justify-content: space-between; align-items: center; margin-top: 1em; font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #1e7f61; }
.cg-ce-exp-sello { display: grid; place-content: center; width: 74px; height: 74px; margin: -1.6em -.4em -.6em 0; border: 2px solid var(--fs-color-secondary); border-radius: 50%; outline: 1px dashed var(--fs-color-secondary); outline-offset: 3px; color: var(--fs-color-secondary); font-size: .56rem; line-height: 1; text-align: center; transform: rotate(-14deg); }
.cg-ce-exp-sello b { display: block; margin-top: .1em; font-size: 1.35rem; letter-spacing: -.02em; }
@media (max-width: 849px) { .cg-ce-exp { margin: 3em auto 0; transform: none; } .cg-ce-hero .cg-tablero-nota { margin: .9em auto 0; text-align: center; } }
@media (max-width: 549px) { .cg-ce-hero .button { display: flex; justify-content: center; width: 100%; margin-right: 0; } .cg-ce-datos { grid-template-columns: 1fr; } .cg-ce-exp-datos { grid-template-columns: 1fr 1fr; } }
/* Propuesta de valor: cuatro compromisos como columnas de revista */
.cg-ce-pilares { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2.4em; margin: 0 0 3em !important; padding: 0; list-style: none; }
.cg-ce-pilar { margin: 0 !important; padding-top: 1.2em; border-top: 2px solid #262626; }
.cg-ce-pilar-num { display: block; margin-bottom: .35em; font-size: 3rem; font-weight: 700; line-height: 1; letter-spacing: -.05em; color: transparent; -webkit-text-stroke: 1.2px var(--fs-color-secondary); }
.cg-ce-pilar-tag { margin: 0 0 .6em; font-size: .68rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--fs-color-secondary); }
.cg-ce-pilar-title { margin: 0 0 .6em; font-size: 1.25rem; line-height: 1.2; letter-spacing: -.015em; color: #262626; }
.cg-ce-pilar-txt { margin: 0; font-size: .92rem; line-height: 1.6; color: #555; }
.cg-ce-cierre .cg-fuente a { color: var(--fs-color-secondary); font-weight: 700; }
@media (max-width: 849px) { .cg-ce-pilares { grid-template-columns: 1fr 1fr; gap: 2em; } }
@media (max-width: 549px) { .cg-ce-pilares { grid-template-columns: 1fr; } .cg-ce-pilar-num { font-size: 2.4rem; } }
/* Situación del candidato: el índice de Empresas con la columna "¿Sale de México?" */
.cg-ce-indice .cg-indice-dato--p { font-size: 1.05rem; }
/* La ruta: escalas sobre fondo oscuro */
.cg-ce-escalas { margin: 0 0 1.4em !important; padding: 0; list-style: none; border-top: 1px solid rgba(252, 252, 242, .2); }
.cg-ce-escala { display: grid; grid-template-columns: 6rem minmax(0, 1.5fr) minmax(0, 1fr); gap: 2.4em; margin: 0 !important; padding: 2em 0; border-bottom: 1px solid rgba(252, 252, 242, .14); }
.cg-ce-escala-num span { display: block; font-size: 3.4rem; font-weight: 700; line-height: .9; letter-spacing: -.05em; color: transparent; -webkit-text-stroke: 1.2px var(--fs-color-primary); transition: color .3s ease; }
.cg-ce-escala:hover .cg-ce-escala-num span { color: var(--fs-color-primary); }
.cg-ce-escala-tag { margin: 0 0 .5em; font-size: .68rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--fs-color-primary); }
.cg-ce-escala-body h3 { margin: 0 0 .5em; font-size: 1.5rem; line-height: 1.15; letter-spacing: -.02em; color: #fcfcf2; }
.cg-ce-escala-body p:last-child { margin: 0; font-size: .95rem; line-height: 1.6; color: rgba(252, 252, 242, .75); }
.cg-ce-escala-meta { display: grid; gap: .9em; margin: 0; align-content: start; }
.cg-ce-escala-meta div { padding-left: 1em; border-left: 2px solid rgba(46, 185, 143, .45); }
.cg-ce-escala-meta dt { font-size: .6rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: rgba(252, 252, 242, .55); }
.cg-ce-escala-meta dd { margin: .15em 0 0; font-size: .92rem; font-weight: 600; line-height: 1.4; color: #fcfcf2; }
.cg-ce-escala-meta .cg-sku, .cg-ce-escala-meta .cg-sku a { color: var(--fs-color-primary); }
.cg-ce-nota-dark { color: rgba(252, 252, 242, .6) !important; }
@media (max-width: 849px) { .cg-ce-escala { grid-template-columns: 4rem minmax(0, 1fr); gap: 1.2em 1.6em; } .cg-ce-escala-meta { grid-column: 2; } .cg-ce-escala-num span { font-size: 2.4rem; } }
@media (prefers-reduced-motion: reduce) { .cg-ce-escala-num span { transition: none; } }
/* Revisión técnica: lista numerada de dos columnas */
@media (min-width: 850px) { .cg-ce-rev-head { position: sticky; top: 110px; padding-right: 2em; } }
.cg-ce-rev-head .cg-dolor-viz { margin: 1.4em 0; }
.cg-ce-rev { display: grid; grid-template-columns: 1fr 1fr; gap: 0 2.4em; margin: 0 0 2em !important; padding: 0; list-style: none; counter-reset: cgrev; border-top: 2px solid #262626; }
.cg-ce-rev li { position: relative; margin: 0 !important; padding: 1.2em 0 1.2em 3em; border-bottom: 1px solid rgba(38, 38, 38, .14); counter-increment: cgrev; }
.cg-ce-rev li::before { content: counter(cgrev, decimal-leading-zero); position: absolute; left: 0; top: 1.05em; font-size: 1.5rem; font-weight: 700; line-height: 1; letter-spacing: -.04em; color: transparent; -webkit-text-stroke: 1.1px var(--fs-color-secondary); }
.cg-ce-rev b { display: block; margin-bottom: .25em; font-size: 1.05rem; color: #262626; }
.cg-ce-rev span { font-size: .9rem; line-height: 1.55; color: #555; }
.cg-ce-rev-plan { padding: 1.3em 1.5em; border-left: 4px solid var(--fs-color-secondary); border-radius: 0 12px 12px 0; background: #f1eef5; }
.cg-ce-rev-plan b { display: block; margin-bottom: .35em; font-size: 1rem; color: #262626; }
.cg-ce-rev-plan > span { font-size: .92rem; line-height: 1.6; color: #444; }
@media (max-width: 549px) { .cg-ce-rev { grid-template-columns: 1fr; } }
/* Inversión: claves en la lista de los boletos */
.cg-ce-inversion .cg-boleto-list .cg-sku { font-size: .78em; color: #777; white-space: nowrap; }
.cg-ce-inversion .cg-boleto--pro .cg-boleto-list .cg-sku { color: rgba(252, 252, 242, .7); }
.cg-ce-inversion .cg-boleto-price b { font-size: 2.3rem; }
.cg-ce-exp-datos dt, .cg-ce-escala-meta dt { display: block; float: none; }
.cg-ce-exp-datos dd, .cg-ce-escala-meta dd { display: block; text-transform: none; letter-spacing: normal; }
.cg-ce-escala-meta dd .cg-sku { font-size: .85rem; }
.cg-ce-exp-head b { white-space: nowrap; }

/* ==========================================================================
   Empresas · Constancia de inscripción de empleador (#162), prefijo .cg-cie-*  (morado = empresas)
   Reutiliza .cg-ce-* (Contratar extranjeros), .cg-plazo, .cg-boleto, .cg-faq y .cg-diag-*
   ========================================================================== */
.cg-cie-mini { margin: 0 0 1em; font-size: .7rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--fs-color-secondary); }
/* Portada: la constancia ilustrativa */
.cg-cie-doc { position: relative; z-index: 0; max-width: 440px; margin: 1.6em 0 0 auto; padding: 1.5em 1.6em 1.3em; border: 1px solid rgba(75, 46, 131, .25); border-radius: 4px 14px 14px 14px; background: #fff; color: #262626; box-shadow: 12px 12px 0 #e4ddef, 0 28px 60px -18px rgba(75, 46, 131, .35); transform: rotate(-1deg); }
.cg-cie-doc::after { content: ""; position: absolute; inset: 7px; z-index: -1; border: 1px dashed rgba(75, 46, 131, .2); border-radius: 2px 10px 10px 10px; pointer-events: none; }
.cg-cie-doc-kicker { margin: 0 0 .5em; font-size: .62rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: #888; }
@media (max-width: 849px) { .cg-cie-doc { margin: 3em auto 0; transform: none; } }
/* Dos puertas */
.cg-cie-puertas { display: grid; grid-template-columns: 1fr 1fr; gap: 1.6em; margin-bottom: 1.2em; }
.cg-cie-puerta { position: relative; display: flex; flex-direction: column; gap: .6em; padding: 2em 2em 1.7em; border: 2px solid var(--fs-color-secondary); border-radius: 18px; color: #262626; text-decoration: none; transition: transform .25s ease, box-shadow .25s ease; }
.cg-cie-puerta:hover { transform: translateY(-4px); box-shadow: 0 22px 44px -20px rgba(75, 46, 131, .45); color: inherit; }
.cg-cie-puerta--nuevo { background: var(--fs-color-secondary); color: #fcfcf2; }
.cg-cie-puerta--nuevo:hover { color: #fcfcf2; }
.cg-cie-puerta--actual { background: #f1eef5; }
.cg-cie-puerta-num { position: absolute; top: .55em; right: .7em; font-size: 3.6rem; font-weight: 700; line-height: 1; letter-spacing: -.05em; color: transparent; -webkit-text-stroke: 1.2px #4b2e83; opacity: .45; }
.cg-cie-puerta--nuevo .cg-cie-puerta-num { -webkit-text-stroke-color: #fcfcf2; }
.cg-cie-puerta-tag { font-size: .7rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; opacity: .8; }
.cg-cie-puerta b { max-width: 16em; font-size: 1.45rem; line-height: 1.2; letter-spacing: -.015em; }
.cg-cie-puerta-txt { max-width: 30em; font-size: .95rem; line-height: 1.55; opacity: .85; }
.cg-cie-puerta-cta { margin-top: auto; padding-top: .9em; font-weight: 700; }
.cg-cie-puerta-cta i { display: inline-block; font-style: normal; transition: transform .25s ease; }
.cg-cie-puerta:hover .cg-cie-puerta-cta i { transform: translateX(4px); }
.cg-cie-puerta--actual .cg-cie-puerta-cta { color: var(--fs-color-secondary); }
@media (max-width: 849px) { .cg-cie-puertas { grid-template-columns: 1fr; } }
/* Camino 1 */
.cg-cie-abogado { margin: 1.6em 0 0; padding: 0 0 0 1.4em; border-left: 3px solid var(--fs-color-secondary); }
.cg-cie-abogado p { margin: 0 0 .6em; font-size: 1.08rem; font-style: italic; line-height: 1.6; color: #333; }
.cg-cie-abogado cite { font-size: .74rem; font-style: normal; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--fs-color-secondary); }
.cg-cie-rev { grid-template-columns: 1fr; margin-bottom: 0 !important; }
.cg-cie-pasos { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0; margin: 0 0 1.6em !important; padding: 0; list-style: none; border-top: 2px solid #262626; }
.cg-cie-paso { display: flex; flex-direction: column; gap: .35em; margin: 0 !important; padding: 1.2em 1.2em 1.2em 0; }
.cg-cie-paso + .cg-cie-paso { padding-left: 1.2em; border-left: 1px solid rgba(38, 38, 38, .14); }
.cg-cie-paso-num { font-size: 2.2rem; font-weight: 700; line-height: 1; letter-spacing: -.05em; color: transparent; -webkit-text-stroke: 1.1px var(--fs-color-secondary); }
.cg-cie-paso b { font-size: 1.02rem; color: #262626; }
.cg-cie-paso > span:last-child { font-size: .88rem; line-height: 1.5; color: #555; }
.cg-cie-beneficio { display: flex; flex-wrap: wrap; align-items: baseline; gap: .4em 1em; padding: 1.1em 1.4em; border-left: 4px solid var(--fs-color-secondary); border-radius: 0 12px 12px 0; background: #f1eef5; }
.cg-cie-beneficio b { font-size: .72rem; letter-spacing: .18em; text-transform: uppercase; color: var(--fs-color-secondary); }
.cg-cie-beneficio span { font-size: .98rem; line-height: 1.55; color: #333; }
.cg-cie-tipos { display: grid; grid-template-columns: 1fr 1fr; gap: .7em; }
.cg-cie-tipo { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: .8em; padding: .85em 1.1em; border: 1px solid rgba(75, 46, 131, .25); border-radius: 12px; background: #fff; color: #262626; font-size: .92rem; font-weight: 600; line-height: 1.35; text-decoration: none; transition: border-color .2s ease, background .2s ease; }
.cg-cie-tipo:hover { border-color: var(--fs-color-secondary); background: #f1eef5; color: #262626; }
.cg-cie-tipo .cg-sku { font-size: .72rem; font-weight: 700; color: #888; white-space: nowrap; }
.cg-cie-tipo i { font-style: normal; color: var(--fs-color-secondary); }
.cg-cie-cta-txt { font-size: .95rem; line-height: 1.6; color: #555; }
@media (max-width: 849px) { .cg-cie-pasos { grid-template-columns: 1fr 1fr; } .cg-cie-paso, .cg-cie-paso + .cg-cie-paso { padding: 1.2em 1em 1.2em 0; border-left: 0; border-bottom: 1px solid rgba(38, 38, 38, .14); } .cg-cie-tipos { grid-template-columns: 1fr; } .cg-cie-cta-txt { margin-top: 1.6em; } }
@media (max-width: 549px) { .cg-cie-pasos { grid-template-columns: 1fr; } .cg-cie-nuevo .button, .cg-cie-actual .button { display: flex; justify-content: center; width: 100%; margin-right: 0; } }
/* Camino 2 (fondo oscuro) */
.cg-cie-actual .cg-cie-mini { color: var(--fs-color-primary); }
.cg-cie-motivos { border-top: 1px solid rgba(252, 252, 242, .2); }
.cg-cie-motivo { display: grid; grid-template-columns: minmax(0, 1fr) 9.5em 7em; align-items: center; gap: 1.4em; padding: 1.15em .4em; border-bottom: 1px solid rgba(252, 252, 242, .14); color: #fcfcf2; text-decoration: none; transition: background .2s ease; }
.cg-cie-motivo:hover { background: rgba(252, 252, 242, .05); color: #fcfcf2; }
.cg-cie-motivo-txt b { display: block; font-size: 1.1rem; letter-spacing: -.01em; color: #fcfcf2; }
.cg-cie-motivo-txt span { font-size: .9rem; color: rgba(252, 252, 242, .7); }
.cg-cie-motivo-plazo { padding-left: .9em; border-left: 2px solid rgba(46, 185, 143, .45); font-size: .92rem; font-weight: 600; line-height: 1.3; }
.cg-cie-motivo-plazo small { display: block; font-size: .58rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: rgba(252, 252, 242, .55); }
.cg-cie-motivo-sku { text-align: right; }
.cg-cie-motivo-sku .cg-sku { font-size: .75rem; font-weight: 700; color: var(--fs-color-primary); white-space: nowrap; }
.cg-cie-panel { padding: 1.6em; border-radius: 18px; background: #fcfcf2; color: #262626; box-shadow: 10px 10px 0 rgba(75, 46, 131, .55); }
.cg-cie-panel .cg-plazo-txt { color: #333; }
.cg-cie-mini--panel { margin-top: 1.6em; color: var(--fs-color-secondary) !important; }
.cg-cie-hacemos { margin: 0 0 1.2em !important; padding: 0; list-style: none; }
.cg-cie-hacemos li { margin: 0 !important; padding: .55em 0 .55em 1.6em; border-bottom: 1px dashed rgba(38, 38, 38, .14); position: relative; font-size: .9rem; line-height: 1.45; color: #555; }
.cg-cie-hacemos li::before { content: "✓"; position: absolute; left: 0; top: .55em; font-weight: 900; color: #1e7f61; }
.cg-cie-hacemos b { display: block; color: #262626; }
.cg-cie-beneficio--panel { padding: .9em 1.1em; }
@media (max-width: 849px) { .cg-cie-motivo { grid-template-columns: minmax(0, 1fr) auto; gap: .6em 1.2em; } .cg-cie-motivo-sku { grid-column: 2; grid-row: 1; } .cg-cie-motivo-plazo { grid-column: 1 / -1; } .cg-cie-panel { margin-top: 2em; } }
@media (prefers-reduced-motion: reduce) { .cg-cie-puerta, .cg-cie-puerta-cta i { transition: none; } .cg-cie-puerta:hover { transform: none; } }

/* ==========================================================================
   Empresas · Renovación de residencia (#163), prefijo .cg-rr-*  (reutiliza .cg-cie-* y .cg-ce-*)
   ========================================================================== */
.cg-ce-exp-lista li.cg-rr-ahora { font-weight: 700; color: var(--fs-color-secondary); }
.cg-ce-exp-lista li.cg-rr-ahora i { background: #f1eef5; color: var(--fs-color-secondary); animation: cg-rr-pulso 1.8s ease-in-out infinite; }
.cg-ce-exp-lista li.cg-rr-luego { color: #888; }
.cg-ce-exp-lista li.cg-rr-luego i { background: transparent; border: 1px dashed #bbb; color: #bbb; }
@keyframes cg-rr-pulso { 0%, 100% { box-shadow: 0 0 0 0 rgba(75, 46, 131, .35); } 50% { box-shadow: 0 0 0 6px rgba(75, 46, 131, 0); } }
@media (prefers-reduced-motion: reduce) { .cg-ce-exp-lista li.cg-rr-ahora i { animation: none; } }

/* ==========================================================================
   Empresas · Auditoría migratoria (#165), prefijo .cg-au-*  (reutiliza .cg-cie-*, .cg-ce-*)
   Semáforo del informe ilustrativo
   ========================================================================== */
.cg-au-barra { display: flex; gap: 3px; height: 10px; margin: .2em 0 1em; border-radius: 99px; overflow: hidden; }
.cg-au-barra i { display: block; height: 100%; }
.cg-au-seg--ok { background: #1e7f61; }
.cg-au-seg--warn { background: #d99a1e; }
.cg-au-seg--risk { background: #b3261e; }
.cg-au-semaforo { margin: 0 !important; padding: 0; list-style: none; }
.cg-au-fila { display: grid; grid-template-columns: auto 2.2em minmax(0, 1fr); align-items: center; gap: .7em; margin: 0 !important; padding: .55em 0; border-bottom: 1px dashed rgba(38, 38, 38, .14); }
.cg-au-luz { width: .8em; height: .8em; border-radius: 50%; }
.cg-au-fila--ok .cg-au-luz { background: #1e7f61; box-shadow: 0 0 0 4px #e3f5ee; }
.cg-au-fila--warn .cg-au-luz { background: #d99a1e; box-shadow: 0 0 0 4px #fbf0d9; }
.cg-au-fila--risk .cg-au-luz { background: #b3261e; box-shadow: 0 0 0 4px #f8e1df; animation: cg-au-alerta 1.6s ease-in-out infinite; }
.cg-au-fila b { font-size: 1.5rem; line-height: 1; letter-spacing: -.03em; color: #262626; }
.cg-au-txt { font-size: .88rem; font-weight: 700; line-height: 1.25; color: #262626; }
.cg-au-txt small { display: block; font-size: .76rem; font-weight: 400; color: #777; }
@keyframes cg-au-alerta { 0%, 100% { box-shadow: 0 0 0 4px #f8e1df; } 50% { box-shadow: 0 0 0 7px rgba(179, 38, 30, .12); } }
@media (prefers-reduced-motion: reduce) { .cg-au-fila--risk .cg-au-luz { animation: none; } }

/* ==========================================================================
   Semáforo de riesgo migratorio (/empresas/semaforo-de-riesgo-migratorio/), prefijo .cg-sem-*
   Herramienta [cg_semaforo] (inc/cg-semaforo.php) + portada editorial. Verde/ámbar/rojo = semántica de riesgo.
   ========================================================================== */
:root { --cg-sem-verde: #1e7f61; --cg-sem-ambar: #d99a1e; --cg-sem-rojo: #b3261e; }
/* Portada: el poste grande */
.cg-sem-hero-poste { position: relative; display: grid; justify-items: center; gap: 1.4em; }
.cg-sem-hero-caja { display: grid; gap: 22px; padding: 26px 24px; border-radius: 40px; background: #262626; }
.cg-sem-hero-caja i { position: relative; display: block; width: 104px; height: 104px; border-radius: 50%; background: #3a3a3a; box-shadow: inset 0 -6px 0 rgba(0, 0, 0, .35); }
.cg-sem-hero-caja i::after { content: attr(data-l); position: absolute; left: calc(100% + 34px); top: 50%; transform: translateY(-50%); white-space: nowrap; font-size: .72rem; font-style: normal; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: #262626; opacity: .35; transition: opacity .4s ease; }
.cg-sem-hero-caja i:nth-child(1) { animation: cg-sem-r 6s infinite; } .cg-sem-hero-caja i:nth-child(2) { animation: cg-sem-a 6s infinite; } .cg-sem-hero-caja i:nth-child(3) { animation: cg-sem-v 6s infinite; }
.cg-sem-hero-caja i:nth-child(1)::after { animation: cg-sem-l 6s infinite; } .cg-sem-hero-caja i:nth-child(2)::after { animation: cg-sem-l 6s 2s infinite; } .cg-sem-hero-caja i:nth-child(3)::after { animation: cg-sem-l 6s 4s infinite; }
@keyframes cg-sem-r { 0%, 30% { background: var(--cg-sem-rojo); box-shadow: 0 0 40px 6px rgba(179, 38, 30, .6); } 34%, 100% { background: #3a3a3a; } }
@keyframes cg-sem-a { 0%, 32% { background: #3a3a3a; } 36%, 63% { background: var(--cg-sem-ambar); box-shadow: 0 0 40px 6px rgba(217, 154, 30, .6); } 67%, 100% { background: #3a3a3a; } }
@keyframes cg-sem-v { 0%, 65% { background: #3a3a3a; } 69%, 97% { background: var(--cg-sem-verde); box-shadow: 0 0 40px 6px rgba(30, 127, 97, .6); } 100% { background: #3a3a3a; } }
@keyframes cg-sem-l { 0%, 30% { opacity: 1; } 34%, 100% { opacity: .35; } }
.cg-sem-hero-pie { width: 16px; height: 70px; margin-top: -1.4em; background: linear-gradient(90deg, #1a1a1a, #3a3a3a); border-radius: 0 0 4px 4px; }
@media (max-width: 849px) { .cg-sem-hero-poste { margin-top: 2.4em; } .cg-sem-hero-caja i { width: 76px; height: 76px; } }
@media (prefers-reduced-motion: reduce) { .cg-sem-hero-caja i, .cg-sem-hero-caja i::after { animation: none !important; } .cg-sem-hero-caja i:nth-child(3) { background: var(--cg-sem-verde); } }
/* Cómo leerlo: tres colores */
.cg-sem-colores { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; margin: 0 !important; padding: 0; list-style: none; border-top: 2px solid #262626; }
.cg-sem-color { margin: 0 !important; padding: 1.6em 1.8em 1.6em 0; }
.cg-sem-color + .cg-sem-color { padding-left: 1.8em; border-left: 1px solid rgba(38, 38, 38, .14); }
.cg-sem-color-luz { display: block; width: 2.6rem; height: 2.6rem; margin-bottom: 1em; border-radius: 50%; }
.cg-sem-color--verde .cg-sem-color-luz { background: var(--cg-sem-verde); box-shadow: 0 0 0 8px #e3f5ee; }
.cg-sem-color--amarillo .cg-sem-color-luz { background: var(--cg-sem-ambar); box-shadow: 0 0 0 8px #fbf0d9; }
.cg-sem-color--rojo .cg-sem-color-luz { background: var(--cg-sem-rojo); box-shadow: 0 0 0 8px #f8e1df; }
.cg-sem-color-tag { margin: 0 0 .4em; font-size: .68rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: #777; }
.cg-sem-color h3 { margin: 0 0 .5em; font-size: 1.45rem; line-height: 1.15; letter-spacing: -.02em; color: #262626; }
.cg-sem-color p:last-child { margin: 0; font-size: .95rem; line-height: 1.6; color: #555; }
@media (max-width: 849px) { .cg-sem-colores { grid-template-columns: 1fr; } .cg-sem-color, .cg-sem-color + .cg-sem-color { padding: 1.4em 0; border-left: 0; border-bottom: 1px solid rgba(38, 38, 38, .14); } }
/* Herramienta */
.cg-sem-memoria { margin: 0 0 1.4em; padding: .9em 1.2em; border-left: 4px solid var(--fs-color-secondary); border-radius: 0 10px 10px 0; background: #f1eef5; font-size: .92rem; color: #333; }
.cg-sem-grid { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 2.4em; align-items: start; }
.cg-sem-area { margin: 0 0 1.6em; padding: 1.4em 1.6em .6em; border: 1px solid rgba(38, 38, 38, .12); border-radius: 18px; background: #fff; transition: border-color .3s ease; }
.cg-sem-area[data-color="verde"] { border-color: rgba(30, 127, 97, .5); }
.cg-sem-area[data-color="amarillo"] { border-color: rgba(217, 154, 30, .6); }
.cg-sem-area[data-color="rojo"] { border-color: rgba(179, 38, 30, .55); }
.cg-sem-area legend { display: flex; align-items: center; gap: .7em; float: left; width: 100%; margin: 0 0 .6em; padding: 0; font-size: 1.2rem; font-weight: 700; letter-spacing: -.01em; color: #262626; }
.cg-sem-area legend + * { clear: both; }
.cg-sem-area-num { font-size: 1.6rem; line-height: 1; letter-spacing: -.04em; color: transparent; -webkit-text-stroke: 1.1px var(--fs-color-secondary); }
.cg-sem-area-luz { width: .8em; height: .8em; margin-left: auto; border-radius: 50%; background: #ddd; transition: background .3s ease; }
[data-color="verde"] > .cg-sem-area-luz, [data-color="verde"] > legend .cg-sem-area-luz { background: var(--cg-sem-verde); }
[data-color="amarillo"] > legend .cg-sem-area-luz { background: var(--cg-sem-ambar); }
[data-color="rojo"] > legend .cg-sem-area-luz { background: var(--cg-sem-rojo); }
.cg-sem-area ol { margin: 0 !important; padding: 0; list-style: none; }
.cg-sem-q { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 1.2em; margin: 0 !important; padding: 1em 0; border-top: 1px dashed rgba(38, 38, 38, .14); }
.cg-sem-q-txt { margin: 0; font-size: .98rem; line-height: 1.5; color: #333; }
.cg-sem-q-txt span { margin-right: .6em; font-size: .72rem; font-weight: 700; letter-spacing: .1em; color: #999; }
.cg-sem-opts { display: flex; gap: .35em; }
.cg-sem-opts button { min-width: 3.6em; margin: 0; padding: .5em .8em; border: 1.5px solid rgba(38, 38, 38, .2); border-radius: 99px; background: #fff; color: #444; font-size: .82rem; font-weight: 700; line-height: 1.2; text-transform: none; letter-spacing: 0; cursor: pointer; transition: all .2s ease; }
.cg-sem-opts button:hover { border-color: var(--fs-color-secondary); color: var(--fs-color-secondary); }
.cg-sem-opts button:focus-visible { outline: 2px solid var(--fs-color-secondary); outline-offset: 2px; }
.cg-sem-q[data-color="verde"] .is-on { border-color: var(--cg-sem-verde); background: var(--cg-sem-verde); color: #fff; }
.cg-sem-q[data-color="amarillo"] .is-on { border-color: var(--cg-sem-ambar); background: var(--cg-sem-ambar); color: #262626; }
.cg-sem-q[data-color="rojo"] .is-on { border-color: var(--cg-sem-rojo); background: var(--cg-sem-rojo); color: #fff; }
/* Panel */
.cg-sem-panel { position: sticky; top: 110px; padding: 1.6em; border-radius: 20px; background: #262626; color: #fcfcf2; text-align: center; }
.cg-sem-panel-tag { margin: 0 0 1em; font-size: .68rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: rgba(252, 252, 242, .6); }
.cg-sem-poste { display: inline-grid; gap: 12px; padding: 14px 12px; border-radius: 24px; background: #141414; }
.cg-sem-lampara { display: block; width: 58px; height: 58px; border-radius: 50%; background: #333; transition: background .35s ease, box-shadow .35s ease; }
.cg-sem-poste[data-estado="rojo"] .cg-sem-lampara--rojo { background: var(--cg-sem-rojo); box-shadow: 0 0 30px 4px rgba(179, 38, 30, .7); }
.cg-sem-poste[data-estado="amarillo"] .cg-sem-lampara--amarillo { background: var(--cg-sem-ambar); box-shadow: 0 0 30px 4px rgba(217, 154, 30, .7); }
.cg-sem-poste[data-estado="verde"] .cg-sem-lampara--verde { background: var(--cg-sem-verde); box-shadow: 0 0 30px 4px rgba(30, 127, 97, .7); }
.cg-sem-estado { margin: 1em 0 .8em; font-size: 1.15rem; font-weight: 700; color: #fcfcf2; }
.cg-sem-progreso { display: grid; gap: .4em; margin-bottom: 1.2em; font-size: .78rem; color: rgba(252, 252, 242, .7); }
.cg-sem-progreso i { display: block; height: 6px; border-radius: 99px; background: rgba(252, 252, 242, .14); overflow: hidden; }
.cg-sem-progreso b { display: block; height: 100%; border-radius: 99px; background: var(--fs-color-primary); transition: width .3s ease; }
.cg-sem-areas { margin: 0 0 1.2em !important; padding: 0; list-style: none; text-align: left; }
.cg-sem-areas li { display: flex; align-items: center; gap: .7em; margin: 0 !important; padding: .5em 0; border-top: 1px solid rgba(252, 252, 242, .1); font-size: .86rem; color: rgba(252, 252, 242, .85); }
.cg-sem-areas li i { flex: none; width: .75em; height: .75em; border-radius: 50%; background: rgba(252, 252, 242, .2); }
.cg-sem-areas li[data-color="verde"] i { background: var(--cg-sem-verde); }
.cg-sem-areas li[data-color="amarillo"] i { background: var(--cg-sem-ambar); }
.cg-sem-areas li[data-color="rojo"] i { background: var(--cg-sem-rojo); }
.cg-sem-reset { margin: 0; padding: 0; border: 0; background: none; color: rgba(252, 252, 242, .6); font-size: .8rem; font-weight: 400; text-decoration: underline; text-transform: none; letter-spacing: 0; cursor: pointer; }
/* Resultado */
.cg-sem-res { margin-top: 1em; padding: 2em 2.2em; border-radius: 22px; background: #fff; box-shadow: 0 30px 70px -30px rgba(38, 38, 38, .35); border-top: 8px solid #ccc; scroll-margin-top: 110px; }
.cg-sem-res[data-color="verde"] { border-top-color: var(--cg-sem-verde); }
.cg-sem-res[data-color="amarillo"] { border-top-color: var(--cg-sem-ambar); }
.cg-sem-res[data-color="rojo"] { border-top-color: var(--cg-sem-rojo); }
.cg-sem-res-head { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 1.6em; align-items: center; padding-bottom: 1.4em; border-bottom: 1px solid rgba(38, 38, 38, .12); }
.cg-sem-res-luz { width: 72px; height: 72px; border-radius: 50%; background: #ccc; }
.cg-sem-res[data-color="verde"] .cg-sem-res-luz { background: var(--cg-sem-verde); box-shadow: 0 0 0 10px #e3f5ee; }
.cg-sem-res[data-color="amarillo"] .cg-sem-res-luz { background: var(--cg-sem-ambar); box-shadow: 0 0 0 10px #fbf0d9; }
.cg-sem-res[data-color="rojo"] .cg-sem-res-luz { background: var(--cg-sem-rojo); box-shadow: 0 0 0 10px #f8e1df; }
.cg-sem-res-tag { margin: 0 0 .3em; font-size: .68rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: #888; }
.cg-sem-res-head h3 { margin: 0 0 .3em; font-size: 1.8rem; line-height: 1.1; letter-spacing: -.02em; color: #262626; }
.cg-sem-res-head p:last-child { margin: 0; font-size: .98rem; line-height: 1.55; color: #555; }
.cg-sem-res-score { margin: 0; text-align: center; }
.cg-sem-res-score b { display: block; font-size: 3rem; line-height: 1; letter-spacing: -.05em; color: #262626; }
.cg-sem-res-score span { font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #888; }
.cg-sem-res-cuerpo { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 2.4em; padding-top: 1.6em; }
.cg-sem-mini { margin: 0 0 .9em; font-size: .68rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--fs-color-secondary); }
.cg-sem-acciones { margin: 0 !important; padding: 0; list-style: none; counter-reset: cgsem; }
.cg-sem-acciones li { margin: 0 !important; counter-increment: cgsem; }
.cg-sem-acciones a { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: .9em; padding: .85em 0; border-bottom: 1px solid rgba(38, 38, 38, .1); color: #262626; text-decoration: none; }
.cg-sem-acciones a:hover em { transform: translateX(4px); }
.cg-sem-acciones i { width: .9em; height: .9em; border-radius: 50%; }
.cg-sem-acciones li[data-color="rojo"] i { background: var(--cg-sem-rojo); }
.cg-sem-acciones li[data-color="amarillo"] i { background: var(--cg-sem-ambar); }
.cg-sem-acciones span { font-size: .95rem; font-weight: 600; line-height: 1.4; }
.cg-sem-acciones .cg-sku { margin-left: .4em; font-size: .72rem; font-weight: 700; color: #888; }
.cg-sem-acciones em { font-style: normal; color: var(--fs-color-secondary); transition: transform .2s ease; }
.cg-sem-todo-verde { margin: 0; font-size: 1rem; line-height: 1.6; color: #333; }
.cg-sem-siguiente { padding: 1.4em; border-radius: 16px; background: #f1eef5; }
.cg-sem-alertas { display: grid; gap: .5em; margin-bottom: 1.2em; }
.cg-sem-alertas .cg-sem-alerta-btn { width: 100%; margin: 0; justify-content: flex-start; text-align: left; }
.cg-sem-res-ctas { display: flex; flex-wrap: wrap; align-items: center; gap: .8em; }
.cg-sem-res-ctas .button { margin: 0; }
.cg-sem-print { margin: 0; padding: 0; border: 0; background: none; color: var(--fs-color-secondary); font-size: .85rem; font-weight: 700; text-decoration: underline; text-transform: none; letter-spacing: 0; cursor: pointer; }
.cg-sem-aviso { margin: 1.6em 0 0; font-size: .78rem; line-height: 1.5; color: #888; }
@media (max-width: 849px) {
	.cg-sem-grid { grid-template-columns: 1fr; }
	.cg-sem-panel { order: -1; top: 60px; z-index: 5; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .3em 1em; align-items: center; padding: .9em 1.1em; text-align: left; }
	.cg-sem-panel-tag, .cg-sem-areas, .cg-sem-reset { display: none; }
	.cg-sem-poste { grid-row: span 2; grid-auto-flow: column; gap: 6px; padding: 7px; border-radius: 99px; }
	.cg-sem-lampara { width: 22px; height: 22px; }
	.cg-sem-estado { margin: 0; font-size: .95rem; }
	.cg-sem-progreso { margin: 0; }
	.cg-sem-res-cuerpo { grid-template-columns: 1fr; }
}
@media (max-width: 549px) {
	.cg-sem-area { padding: 1.1em 1.1em .4em; }
	.cg-sem-q { grid-template-columns: 1fr; gap: .7em; }
	.cg-sem-opts button { flex: 1; }
	.cg-sem-res { padding: 1.4em 1.2em; }
	.cg-sem-res-head { grid-template-columns: auto minmax(0, 1fr); }
	.cg-sem-res-luz { width: 48px; height: 48px; }
	.cg-sem-res-score { grid-column: 1 / -1; text-align: left; }
	.cg-sem-res-score b { display: inline; font-size: 2rem; margin-right: .3em; }
	.cg-sem-res-head h3 { font-size: 1.4rem; }
}
@media (prefers-reduced-motion: reduce) { .cg-sem-lampara, .cg-sem-progreso b, .cg-sem-acciones em { transition: none; } }
/* Guardar como PDF: hoja carta vertical (.cg-sem-pdf, inc/cg-semaforo.php), lo único visible al imprimir.
   Solo en la página que tiene la hoja (body:has), como la Ruta: antes ocultaba todo al imprimir cualquier
   página del sitio (las legales salían en blanco). La hoja usa su propia página sin márgenes (page: cg-sem). */
.cg-sem-pdf { display: none; }
@page cg-sem { size: letter portrait; margin: 0; }
@media print {
	html:has(body > .cg-sem-pdf), body:has(> .cg-sem-pdf) { margin: 0 !important; padding: 0 !important; height: auto !important; min-height: 0 !important; background: #fff !important; }
	body:has(> .cg-sem-pdf) > *:not(.cg-sem-pdf) { display: none !important; }
	.cg-sem-pdf { page: cg-sem; display: flex !important; flex-direction: column; box-sizing: border-box; width: 215.9mm; height: 276mm; padding: 9mm 13mm 7mm; overflow: hidden; break-inside: avoid; page-break-inside: avoid; break-after: avoid; background: #fcfcf2; color: #262626; font-size: 9pt; line-height: 1.4; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
	.cg-sem-pdf * { box-sizing: border-box; }
	.cg-sem-pdf a { color: inherit; text-decoration: none; }
	.cg-sem-pdf-head { display: flex; justify-content: space-between; align-items: center; padding-bottom: 4mm; border-bottom: 2px solid #262626; }
	.cg-sem-pdf-logo { height: 11mm; width: auto; }
	.cg-sem-pdf-head p { margin: 0; text-align: right; }
	.cg-sem-pdf-head b { display: block; font-size: 11pt; color: #4b2e83; }
	.cg-sem-pdf-head span { font-size: 8pt; color: #777; }
	.cg-sem-pdf-mini { margin: 0 0 2mm; font-size: 7pt; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: #4b2e83; }
	/* Veredicto */
	.cg-sem-pdf-hero { display: grid; grid-template-columns: auto 1fr auto; gap: 7mm; align-items: center; padding: 4.5mm 0 4mm; }
	.cg-sem-pdf-poste { display: grid; gap: 2.2mm; padding: 2.8mm 2.4mm; border-radius: 6mm; background: #262626; }
	.cg-sem-pdf-poste i { display: block; width: 11mm; height: 11mm; border-radius: 50%; background: #444; }
	.cg-sem-pdf-poste[data-estado="rojo"] i:nth-child(1) { background: #b3261e; box-shadow: 0 0 0 1.2mm rgba(179, 38, 30, .35); }
	.cg-sem-pdf-poste[data-estado="amarillo"] i:nth-child(2) { background: #d99a1e; box-shadow: 0 0 0 1.2mm rgba(217, 154, 30, .35); }
	.cg-sem-pdf-poste[data-estado="verde"] i:nth-child(3) { background: #1e7f61; box-shadow: 0 0 0 1.2mm rgba(30, 127, 97, .35); }
	.cg-sem-pdf-kicker { margin: 0 0 1mm; font-size: 7pt; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: #777; }
	.cg-sem-pdf-veredicto h2 { margin: 0 0 2mm; font-size: 22pt; line-height: 1.05; letter-spacing: -.02em; }
	.cg-sem-pdf[data-color="rojo"] .cg-sem-pdf-veredicto h2 { color: #b3261e; } .cg-sem-pdf[data-color="amarillo"] .cg-sem-pdf-veredicto h2 { color: #a8740c; } .cg-sem-pdf[data-color="verde"] .cg-sem-pdf-veredicto h2 { color: #1e7f61; }
	.cg-sem-pdf-veredicto p:last-child { margin: 0; font-size: 9.5pt; color: #444; }
	.cg-sem-pdf-score { padding-left: 6mm; border-left: 1px solid rgba(38, 38, 38, .2); text-align: center; }
	.cg-sem-pdf-score b { display: block; font-size: 30pt; line-height: 1; letter-spacing: -.04em; }
	.cg-sem-pdf-score span { font-size: 7pt; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #777; }
	/* Áreas */
	.cg-sem-pdf-areas { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2.5mm; margin: 0 0 4mm; padding: 0; list-style: none; }
	.cg-sem-pdf-areas li { display: grid; grid-template-columns: auto 1fr; gap: .6mm 2mm; align-items: center; margin: 0; padding: 2.6mm 3mm; border-radius: 3mm; background: #fff; border-top: 1.2mm solid #ccc; }
	.cg-sem-pdf-areas li[data-color="verde"] { border-top-color: #1e7f61; } .cg-sem-pdf-areas li[data-color="amarillo"] { border-top-color: #d99a1e; } .cg-sem-pdf-areas li[data-color="rojo"] { border-top-color: #b3261e; }
	.cg-sem-pdf-areas i { grid-row: span 2; width: 3.2mm; height: 3.2mm; border-radius: 50%; background: #ccc; }
	.cg-sem-pdf-areas li[data-color="verde"] i { background: #1e7f61; } .cg-sem-pdf-areas li[data-color="amarillo"] i { background: #d99a1e; } .cg-sem-pdf-areas li[data-color="rojo"] i { background: #b3261e; }
	.cg-sem-pdf-areas b { font-size: 8pt; line-height: 1.2; }
	.cg-sem-pdf-areas span { font-size: 7pt; color: #777; }
	/* Plan */
	.cg-sem-pdf-plan { flex: 1; min-height: 0; overflow: hidden; }
	.cg-sem-pdf-plan ol { margin: 0; padding: 0; list-style: none; border-top: 1px solid rgba(38, 38, 38, .2); }
	.cg-sem-pdf-plan li { display: grid; grid-template-columns: auto 1fr auto; gap: .3mm 3mm; align-items: center; margin: 0; padding: 2mm 0; border-bottom: 1px solid rgba(38, 38, 38, .1); }
	.cg-sem-pdf-plan li i { grid-row: span 2; width: 3mm; height: 3mm; border-radius: 50%; }
	.cg-sem-pdf-plan li[data-color="rojo"] i { background: #b3261e; } .cg-sem-pdf-plan li[data-color="amarillo"] i { background: #d99a1e; }
	.cg-sem-pdf-plan li span { font-size: 9.5pt; font-weight: 700; }
	.cg-sem-pdf-plan li small { grid-row: span 2; font-size: 7pt; font-weight: 700; letter-spacing: .04em; color: #888; text-align: right; }
	.cg-sem-pdf-plan li a { grid-column: 2; font-size: 7pt; color: #4b2e83; }
	.cg-sem-pdf-plan li small { white-space: pre-line; }
	.cg-sem-pdf-verde { margin: 0; font-size: 10pt; }
	.cg-sem-pdf-verde-lead { margin: 0 0 4mm; font-size: 10.5pt; }
	.cg-sem-pdf-verde ol { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4mm; border-top: 0; }
	.cg-sem-pdf-verde li { display: block; padding: 4mm; border: 0; border-radius: 3.5mm; background: #fff; border-top: 1.2mm solid #1e7f61; }
	.cg-sem-pdf-verde li span { display: block; margin-bottom: 1.5mm; font-size: 16pt; font-weight: 700; color: #1e7f61; }
	.cg-sem-pdf-verde li b { display: block; margin-bottom: 1mm; font-size: 10pt; }
	.cg-sem-pdf-verde li p { margin: 0 0 2mm; font-size: 8.5pt; color: #555; }
	.cg-sem-pdf-verde li a { font-size: 8pt; font-weight: 700; color: #4b2e83; }
	.cg-sem-pdf-plan ol.is-dos { display: grid; grid-template-columns: 1fr 1fr; column-gap: 7mm; border-top: 0; }
	.cg-sem-pdf-plan ol.is-dos li { grid-template-columns: auto minmax(0, 1fr) auto; padding: 1.2mm 0; border-top: 0; }
	.cg-sem-pdf-plan ol.is-dos li:nth-child(-n+2) { border-top: 1px solid rgba(38, 38, 38, .2); }
	.cg-sem-pdf-plan ol.is-dos li span { font-size: 8.5pt; line-height: 1.25; }
	.cg-sem-pdf-plan li a { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
	.cg-sem-pdf-plan ol.is-dos li small { font-size: 6.5pt; max-width: 18mm; line-height: 1.2; }
	/* Siguiente paso: banda morada con contacto y QR */
	.cg-sem-pdf-cta { display: grid; grid-template-columns: 1fr auto; gap: 7mm; align-items: center; margin-top: 3mm; padding: 5mm 7mm; border-radius: 5mm; background: #4b2e83; color: #fcfcf2; }
	.cg-sem-pdf-cta .cg-sem-pdf-mini { color: #c9b8ee; }
	.cg-sem-pdf-cta h2 { margin: 0 0 3.5mm; font-size: 15pt; line-height: 1.15; letter-spacing: -.01em; color: #fcfcf2; }
	.cg-sem-pdf-cta h2 em { color: #d9ccf5; font-style: italic; }
	.cg-sem-pdf-contacto { display: grid; gap: 1.4mm; margin: 0; padding: 0; list-style: none; }
	.cg-sem-pdf-contacto li { display: grid; grid-template-columns: 17mm 1fr; margin: 0; font-size: 9pt; }
	.cg-sem-pdf-contacto span { font-size: 6.5pt; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: rgba(252, 252, 242, .6); align-self: center; }
	.cg-sem-pdf-contacto a, .cg-sem-pdf-contacto b { font-weight: 700; color: #fcfcf2; }
	.cg-sem-pdf-qrs { display: flex; gap: 4mm; }
	.cg-sem-pdf-qr { display: flex; flex-direction: column; align-items: center; width: 31mm; padding: 3mm 3mm 2.5mm; border-radius: 3.5mm; background: #fff; color: #262626 !important; text-align: center; }
	.cg-sem-pdf-qr span { display: block; width: 25mm; height: 25mm; margin-bottom: 1.5mm; }
	.cg-sem-pdf-qr svg { display: block; width: 100%; height: 100%; }
	.cg-sem-pdf-qr b { font-size: 7.5pt; line-height: 1.2; color: #4b2e83; }
	.cg-sem-pdf-qr small { font-size: 6.5pt; color: #777; }
	.cg-sem-pdf-pie { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1.5mm 8mm; margin-top: 3mm; padding-top: 2.5mm; border-top: 1px solid rgba(38, 38, 38, .2); font-size: 6.5pt; line-height: 1.4; color: #777; }
	.cg-sem-pdf-pie-legal p { margin: 0 0 .8mm; }
	.cg-sem-pdf-pie-legal b { color: #262626; }
	.cg-sem-pdf-pie-legal a { font-weight: 700; color: #4b2e83; }
	.cg-sem-pdf-pie-links { display: grid; grid-template-columns: auto auto; gap: .8mm 4mm; align-content: start; text-align: right; }
	.cg-sem-pdf-pie-links a { font-weight: 700; color: #4b2e83; }
	.cg-sem-pdf-pie-firma { grid-column: 1 / -1; margin: 0; padding-top: 1.5mm; border-top: 1px dashed rgba(38, 38, 38, .15); font-size: 6pt; letter-spacing: .04em; color: #999; }
}
/* Suscríbete: alertas (fondo oscuro) */
.cg-sem-subs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.2em; margin: 0 0 1.6em !important; padding: 0; list-style: none; }
.cg-sem-sub { display: grid; grid-template-rows: auto 1fr; gap: 1em; margin: 0 !important; padding: 1.5em; border-radius: 18px; background: #fcfcf2; color: #262626; }
.cg-sem-sub .cg-plazo-fecha { width: 3.6em; }
.cg-sem-sub > div { display: flex; flex-direction: column; }
.cg-sem-sub b { font-size: 1.08rem; color: #262626; }
.cg-sem-sub p { flex: 1; margin: .4em 0 1em; font-size: .9rem; line-height: 1.5; color: #555; }
.cg-sem-sub .cg-sem-sub-btn { align-self: flex-start; }
.cg-sem-subs-pie { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1em 2em; margin-bottom: 1.2em; padding: 1.4em 1.6em; border: 1px solid rgba(252, 252, 242, .2); border-radius: 18px; }
.cg-sem-subs-pie b { display: block; font-size: 1.1rem; color: #fcfcf2; }
.cg-sem-subs-pie span { font-size: .92rem; color: rgba(252, 252, 242, .7); }
.cg-sem-subs-pie .button { margin: 0; border-radius: 99px; }
@media (max-width: 849px) { .cg-sem-subs { grid-template-columns: 1fr 1fr; } }
@media (max-width: 549px) { .cg-sem-subs { grid-template-columns: 1fr; } }
/* Botones de alertas (cg-forms .cgr-open) en morado empresas */
.cg-sem-alerta-btn, .cg-sem-sub-btn { display: inline-flex; align-items: center; gap: .5em; min-height: 0; margin: 0; padding: .6em 1.1em; border: 1.5px solid var(--fs-color-secondary); border-radius: 99px; background: #fff; color: var(--fs-color-secondary); font-size: .85rem; font-weight: 700; line-height: 1.3; letter-spacing: 0; text-transform: none; cursor: pointer; transition: background .2s ease, color .2s ease; }
.cg-sem-alerta-btn::before, .cg-sem-sub-btn::before { content: "🔔"; font-size: .9em; }
.cg-sem-alerta-btn:hover, .cg-sem-sub-btn:hover { background: var(--fs-color-secondary); color: #fff; }
.cg-sem-res-ctas .button { white-space: normal; line-height: 1.3; padding-top: .7em; padding-bottom: .7em; text-align: center; }
.cg-sem-area legend { text-transform: none; }
/* Inicio · Recursos: tarjeta "Semáforo migratorio" (riesgo + vigencias), dos enlaces en una tarjeta */
.cg-rec--semaforo .cg-rec-poste { display: inline-flex; gap: 6px; padding: 6px 8px; border-radius: 99px; background: #262626; }
.cg-rec--semaforo .cg-luz { width: 18px; height: 18px; opacity: .25; }
.cg-rec-nuevo { margin-left: auto; padding: .3em .8em; border-radius: 99px; background: #f1eef5; color: var(--fs-color-secondary); font-size: .64rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.cg-rec--semaforo .cg-rec-txt { margin-bottom: .9em; }
.cg-rec-semis { margin: 0 !important; padding: 0; list-style: none; border-top: 1px solid rgba(75, 46, 131, .18); }
.cg-rec-semis li { margin: 0 !important; border-bottom: 1px solid rgba(75, 46, 131, .18); }
.cg-rec-semis a { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: .8em; padding: .7em .2em; color: #262626; text-decoration: none; transition: background .2s ease, padding .2s ease; }
.cg-rec-semis a:hover { padding-left: .6em; background: #f1eef5; }
.cg-rec-semi-n { font-size: 1.3rem; font-weight: 700; line-height: 1; letter-spacing: -.04em; color: transparent; -webkit-text-stroke: 1px var(--fs-color-secondary); }
.cg-rec-semi-t b { display: block; font-size: .92rem; line-height: 1.25; color: #262626; }
.cg-rec-semi-t small { font-size: .78rem; color: #777; }
.cg-rec-semi-a { font-weight: 700; color: var(--fs-color-secondary); transition: transform .2s ease; }
.cg-rec-semis a:hover .cg-rec-semi-a { transform: translateX(4px); }
.cg-rec--semaforo:hover { transform: none; }
@media (prefers-reduced-motion: reduce) { .cg-rec-semis a, .cg-rec-semi-a { transition: none; } }
/* Mega menú Recursos: franja "Semáforo de riesgo migratorio" (inc/cg-menu.php) */
.header-main .nav-dropdown .cg-mmr-tool { grid-column: 1 / -1; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 1.1rem; margin: 0; padding: .9rem 1.2rem !important; border-radius: 12px; background: #4b2e83 !important; color: #fcfcf2 !important; box-shadow: 0 14px 28px -18px rgba(75, 46, 131, .9); transition: transform .25s ease, box-shadow .25s ease; }
.header-main .nav-dropdown .cg-mmr-tool:hover { transform: translateY(-2px); box-shadow: 0 18px 34px -18px rgba(75, 46, 131, 1); }
.cg-mmr-tool-poste { display: inline-flex; flex-direction: column; gap: 4px; padding: 6px 5px; border-radius: 99px; background: #1f1f1f; }
.cg-mmr-tool-poste i { display: block; width: 13px; height: 13px; border-radius: 50%; background: #3a3a3a; animation: cg-mmr-luz 3.6s infinite; }
.cg-mmr-tool-poste i:nth-child(1) { --c: #b3261e; }
.cg-mmr-tool-poste i:nth-child(2) { --c: #d99a1e; animation-delay: 1.2s; }
.cg-mmr-tool-poste i:nth-child(3) { --c: #1e7f61; animation-delay: 2.4s; }
@keyframes cg-mmr-luz { 0%, 30% { background: var(--c); box-shadow: 0 0 10px 1px var(--c); } 34%, 100% { background: #3a3a3a; box-shadow: none; } }
.cg-mmr-tool-txt { display: grid; gap: .1rem; min-width: 0; }
.cg-mmr-tool-k { font-size: .6rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: #c9b8ee; }
.cg-mmr-tool-k em { margin-left: .4rem; padding: .1rem .45rem; border-radius: 99px; background: #fcfcf2; color: #4b2e83; font-style: normal; letter-spacing: .12em; }
.cg-mmr-tool-txt b { font-size: 1.05rem; line-height: 1.25; letter-spacing: -.01em; color: #fcfcf2; }
.cg-mmr-tool-txt > span:last-child { font-size: .8rem; line-height: 1.4; color: rgba(252, 252, 242, .78); }
.cg-mmr-tool-cta { padding: .55rem 1rem; border-radius: 99px; background: #fcfcf2; color: #4b2e83; font-size: .82rem; font-weight: 700; white-space: nowrap; transition: transform .2s ease; }
.header-main .nav-dropdown .cg-mmr-tool:hover .cg-mmr-tool-cta { transform: translateX(3px); }
@media (prefers-reduced-motion: reduce) { .cg-mmr-tool-poste i { animation: none; } .cg-mmr-tool-poste i:nth-child(3) { background: #1e7f61; } .header-main .nav-dropdown .cg-mmr-tool, .cg-mmr-tool-cta { transition: none; } }
/* Mega menú Empresas: anuncio discreto del semáforo de riesgo (docs/header/header-guardar.php) */
.header-main .nav-dropdown .cg-mm-sem { display: flex; align-items: center; gap: .8rem; max-width: 22rem; margin: 1.4rem 0 0; padding: .9rem 0 0 !important; border-top: 1px dashed rgba(75, 46, 131, .3); background: none !important; color: #262626 !important; }
.cg-mm-sem-luces { display: inline-flex; flex-direction: column; gap: 3px; padding: 4px 3px; border-radius: 99px; background: #262626; }
.cg-mm-sem-luces i { display: block; width: 7px; height: 7px; border-radius: 50%; background: #444; animation: cg-mm-sem 4.8s infinite; }
.cg-mm-sem-luces i:nth-child(1) { --c: #b3261e; }
.cg-mm-sem-luces i:nth-child(2) { --c: #d99a1e; animation-delay: 1.6s; }
.cg-mm-sem-luces i:nth-child(3) { --c: #1e7f61; animation-delay: 3.2s; }
@keyframes cg-mm-sem { 0%, 28% { background: var(--c); box-shadow: 0 0 6px var(--c); } 33%, 100% { background: #444; box-shadow: none; } }
.cg-mm-sem-txt b { display: block; font-size: .92rem; font-weight: 700; line-height: 1.3; color: #262626; transition: color .2s ease; }
.cg-mm-sem-txt small { font-size: .76rem; font-weight: 600; color: #4b2e83; }
.cg-mm-sem-txt small span { display: inline-block; transition: transform .2s ease; }
.header-main .nav-dropdown .cg-mm-sem:hover .cg-mm-sem-txt b { color: #4b2e83; }
.header-main .nav-dropdown .cg-mm-sem:hover .cg-mm-sem-txt small span { transform: translateX(3px); }
@media (prefers-reduced-motion: reduce) { .cg-mm-sem-luces i { animation: none; } .cg-mm-sem-luces i:nth-child(2) { background: #d99a1e; } }
/* Semáforo: folio, calificación con estrellas, newsletter y contador público (cg-forms 0.87.0) */
.cg-sem-folio { margin-left: .8em; padding: .15em .6em; border-radius: 99px; background: #f1eef5; color: var(--fs-color-secondary); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: .04em; }
.cg-sem-voto { margin-bottom: 1.3em; padding-bottom: 1.2em; border-bottom: 1px dashed rgba(75, 46, 131, .25); }
.cg-sem-estrellas { display: flex; gap: .15em; margin-bottom: .4em; }
.cg-sem-estrellas button { min-height: 0; margin: 0; padding: 0 .05em; border: 0; background: none; color: #d6cde6; font-size: 1.9rem; line-height: 1; cursor: pointer; transition: transform .15s ease, color .15s ease; }
.cg-sem-estrellas button.is-on { color: #d99a1e; }
.cg-sem-estrellas:hover button { color: #d99a1e; }
.cg-sem-estrellas button:hover ~ button { color: #d6cde6; }
.cg-sem-estrellas button:hover { transform: scale(1.15); }
.cg-sem-estrellas button:focus-visible { outline: 2px solid var(--fs-color-secondary); outline-offset: 2px; border-radius: 4px; }
.cg-sem-voto-gracias { margin: 0 0 .9em; font-size: .85rem; font-weight: 600; color: var(--fs-color-secondary); }
.cg-sem-nl { margin-top: .8em; }
.cg-sem-nl p { margin: 0 0 .6em; font-size: .85rem; line-height: 1.45; color: #444; }
.cg-sem-nl b { color: #262626; }
.cg-sem .cg-sem-nl-btn { display: inline-flex; min-height: 0; margin: 0; padding: .6em 1.1em; border: 0; border-radius: 99px; background: var(--fs-color-secondary); color: #fff; font-size: .85rem; font-weight: 700; line-height: 1.3; letter-spacing: 0; text-transform: none; }
.cg-sem .cg-sem-nl-btn:hover { background: #3a2266; }
.cg-sem-nl-ok { margin: .6em 0 0; font-size: .88rem; font-weight: 700; color: var(--fs-color-secondary); }
.cg-sem-contador { display: flex; flex-wrap: wrap; align-items: center; gap: .4em 1.2em; margin: 1.2em 0 0; font-size: .9rem; color: #555; }
.cg-sem-contador-n b { font-size: 1.05rem; color: var(--fs-color-secondary); }
.cg-sem-contador-n::before { content: ""; display: inline-block; width: .55em; height: .55em; margin-right: .5em; border-radius: 50%; background: #1e7f61; box-shadow: 0 0 0 3px rgba(30, 127, 97, .18); vertical-align: .08em; animation: cg-sem-vivo 2s ease-in-out infinite; }
@keyframes cg-sem-vivo { 50% { box-shadow: 0 0 0 6px rgba(30, 127, 97, 0); } }
.cg-sem-contador-r i { font-style: normal; color: #d99a1e; }
.cg-sem-contador-r b { color: #262626; }
@media (prefers-reduced-motion: reduce) { .cg-sem-contador-n::before { animation: none; } .cg-sem-estrellas button { transition: none; } }
/* Empresas (#160) · portada: invitación sutil al semáforo de riesgo, sobre fondo morado */
.cg-emp-sem { display: inline-flex; align-items: center; gap: .7rem; margin: .4rem 0 0; padding: .35rem 0; color: rgba(252, 252, 242, .78); font-size: .9rem; line-height: 1.4; text-decoration: none; }
.cg-emp-sem:hover { color: #fcfcf2; }
.cg-emp-sem-luces { display: inline-flex; flex: none; gap: 3px; padding: 3px 5px; border-radius: 99px; background: rgba(0, 0, 0, .35); }
.cg-emp-sem-luces i { display: block; width: 7px; height: 7px; border-radius: 50%; background: rgba(252, 252, 242, .2); animation: cg-mm-sem 4.8s infinite; }
.cg-emp-sem-luces i:nth-child(1) { --c: #e2554f; }
.cg-emp-sem-luces i:nth-child(2) { --c: #f2b33d; animation-delay: 1.6s; }
.cg-emp-sem-luces i:nth-child(3) { --c: #2eb98f; animation-delay: 3.2s; }
.cg-emp-sem-txt b { color: #fcfcf2; font-weight: 700; text-decoration: underline; text-decoration-style: dotted; text-decoration-color: rgba(252, 252, 242, .5); text-underline-offset: 3px; }
.cg-emp-sem:hover .cg-emp-sem-txt b { text-decoration-style: solid; }
.cg-emp-sem-a { transition: transform .2s ease; }
.cg-emp-sem:hover .cg-emp-sem-a { transform: translateX(3px); }
@media (prefers-reduced-motion: reduce) { .cg-emp-sem-luces i { animation: none; background: rgba(252, 252, 242, .45); } .cg-emp-sem-a { transition: none; } }
/* Mega menú Nosotros (bloque menu-nosotros, docs/header/header-guardar.php): panel oscuro editorial de marca */
.header-main .menu-item-has-block > .nav-dropdown:has(.cg-mm--nosotros) { background: #1d1d1f; border-color: #1d1d1f; }
.header-main .nav-dropdown .cg-mm.cg-mm--nosotros { position: relative; overflow: hidden; background: radial-gradient(120% 140% at 0% 0%, rgba(75, 46, 131, .55) 0%, rgba(75, 46, 131, 0) 55%), radial-gradient(90% 120% at 100% 100%, rgba(30, 127, 97, .35) 0%, rgba(30, 127, 97, 0) 55%), #1d1d1f; }
.cg-mm--nosotros .cg-eyebrow { color: #c9b8ee; }
.cg-mm--nosotros .cg-eyebrow::before { background: #c9b8ee; }
.cg-mm--nosotros .cg-mm-t { color: #fcfcf2; }
.cg-mm--nosotros .cg-mm-t em { background: linear-gradient(90deg, #c9b8ee, #7fdcbf); -webkit-background-clip: text; background-clip: text; color: transparent; }
.cg-mm--nosotros .cg-mm-p { color: rgba(252, 252, 242, .72); }
.header-main .nav-dropdown .cg-mm--nosotros .cg-mm-intro::after { border-right-color: rgba(252, 252, 242, .12); }
.cg-mmn-audiencias { display: flex; gap: .4rem; margin-top: 1rem; }
.cg-mmn-chip { padding: .2rem .65rem; border-radius: 99px; font-size: .62rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.cg-mmn-chip--e { background: rgba(75, 46, 131, .55); color: #e4dbf6; }
.cg-mmn-chip--p { background: rgba(30, 127, 97, .45); color: #c8f0e2; }
/* Índice numerado */
.cg-mmn-indice { display: grid; border-top: 1px solid rgba(252, 252, 242, .12); }
.header-main .nav-dropdown .cg-mmn-item { display: grid; grid-template-columns: 2.6rem minmax(0, 1fr) auto; align-items: center; gap: .9rem; margin: 0; padding: .72rem .5rem !important; border-bottom: 1px solid rgba(252, 252, 242, .1); background: none !important; color: #fcfcf2 !important; transition: background .2s ease, padding .2s ease; }
.header-main .nav-dropdown .cg-mmn-item:hover { padding-left: .9rem !important; background: rgba(252, 252, 242, .05) !important; }
.cg-mmn-n { font-size: 1.55rem; font-weight: 700; line-height: 1; letter-spacing: -.04em; color: transparent; -webkit-text-stroke: 1px rgba(252, 252, 242, .45); transition: color .2s ease, -webkit-text-stroke-color .2s ease; }
.cg-mmn-item:hover .cg-mmn-n { color: #c9b8ee; -webkit-text-stroke-color: #c9b8ee; }
.cg-mmn-t b { display: block; font-size: .98rem; line-height: 1.25; color: #fcfcf2; }
.cg-mmn-t small { display: block; font-size: .78rem; line-height: 1.35; color: rgba(252, 252, 242, .6); }
.cg-mmn-cta { font-size: .76rem; font-weight: 700; white-space: nowrap; color: #7fdcbf; opacity: 0; transform: translateX(-6px); transition: opacity .2s ease, transform .2s ease; }
.cg-mmn-cta i { font-style: normal; }
.cg-mmn-item:hover .cg-mmn-cta, .cg-mmn-item:focus-visible .cg-mmn-cta { opacity: 1; transform: none; }
.header-main .nav-dropdown .cg-mmn-item[aria-current="page"] .cg-mmn-n { color: #c9b8ee; -webkit-text-stroke-color: #c9b8ee; }
/* Tarjetas de acción */
.cg-mmn-acciones { display: grid; gap: .6rem; }
.header-main .nav-dropdown .cg-mmn-sello { display: flex; align-items: center; gap: .8rem; margin: 0; padding: .8rem !important; border-radius: 14px; background: #fcfcf2 !important; color: #262626 !important; transition: transform .2s ease; }
.header-main .nav-dropdown .cg-mmn-sello:hover { transform: rotate(-1deg) translateY(-2px); }
.cg-mmn-sello-c { display: grid; place-items: center; flex: none; width: 3rem; height: 3rem; border: 2px solid #4b2e83; border-radius: 50%; outline: 1px dashed #4b2e83; outline-offset: 3px; color: #4b2e83; font-size: .95rem; font-weight: 800; transform: rotate(-12deg); }
.cg-mmn-sello small { display: block; font-size: .6rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: #4b2e83; }
.cg-mmn-sello b { display: block; font-size: .86rem; line-height: 1.3; }
.header-main .nav-dropdown .cg-mmn-accion { position: relative; display: block; margin: 0; padding: .75rem 2.2rem .75rem .9rem !important; border: 1px solid rgba(252, 252, 242, .14); border-radius: 12px; background: rgba(252, 252, 242, .04) !important; color: #fcfcf2 !important; transition: background .2s ease, border-color .2s ease; }
.cg-mmn-accion b { display: block; font-size: .88rem; line-height: 1.25; }
.cg-mmn-accion small { display: block; margin-top: .15rem; font-size: .74rem; line-height: 1.35; color: rgba(252, 252, 242, .6); }
.cg-mmn-accion i { position: absolute; top: 50%; right: .9rem; font-style: normal; font-weight: 700; transform: translateY(-50%); transition: transform .2s ease; }
.header-main .nav-dropdown .cg-mmn-accion--p:hover { border-color: #2eb98f; background: rgba(30, 127, 97, .22) !important; }
.cg-mmn-accion--p i { color: #7fdcbf; }
.header-main .nav-dropdown .cg-mmn-accion--e:hover { border-color: #9b84d1; background: rgba(75, 46, 131, .4) !important; }
.cg-mmn-accion--e i { color: #c9b8ee; }
.cg-mmn-accion:hover i { transform: translate(3px, -50%); }
/* Franja inferior */
.header-main .nav-dropdown:has(.cg-mm--nosotros) .cg-mm-pie { border-top-color: rgba(252, 252, 242, .1); background: #151517; }
.header-main .nav-dropdown:has(.cg-mm--nosotros) .cg-mm-pie-in, .header-main .nav-dropdown:has(.cg-mm--nosotros) .cg-mm-pie-in span { color: rgba(252, 252, 242, .75); }
.header-main .nav-dropdown:has(.cg-mm--nosotros) .cg-mm-pie-in b { color: #fcfcf2; }
.header-main .nav-dropdown:has(.cg-mm--nosotros) .cg-mm-pie-in a { color: #c9b8ee !important; }
.header-main .nav-dropdown:has(.cg-mm--nosotros) .cg-mm-pie-in > a { color: #7fdcbf !important; }
@media (prefers-reduced-motion: reduce) { .cg-mmn-item, .cg-mmn-cta, .cg-mmn-n, .cg-mmn-sello, .cg-mmn-accion, .cg-mmn-accion i { transition: none !important; } }

/* ==========================================================================
   Personas · Jubilados (#168), prefijo .cg-jub-*  (personas = verde)
   Pensada para lectura cómoda (55+, poco tecnológicos): letra base grande, interlineado amplio,
   alto contraste, botones grandes con texto, teléfono primero. "Agrandar letra" e "Imprimir" en inc/cg-jubilados.php.
   ========================================================================== */
.cg-jub { --v: #1e7f61; --v2: #16654d; --vs: #e3f5ee; --t: #1f1f1f; --s: #4a4a4a; font-size: 1.12rem; }
html.cg-jub-grande .cg-jub { font-size: 1.32rem; }
.cg-jub p, .cg-jub li { line-height: 1.7; }
.cg-jub-eyebrow { color: var(--v) !important; }
.cg-jub .cg-eyebrow { font-size: .8rem; }
.cg-jub-h1 { font-size: clamp(2.1rem, 4.4vw, 3.3rem) !important; line-height: 1.08; }
.cg-jub-h2 { font-size: clamp(1.8rem, 3.4vw, 2.5rem) !important; line-height: 1.12; }
.cg-jub-p { max-width: 42em; font-size: 1.06em; color: var(--s); }
.cg-dark .cg-jub-p { color: rgba(252, 252, 242, .85); }
.cg-jub-amarillo, .cg-jub .cg-display em.cg-jub-amarillo, .cg-dark .cg-display em.cg-jub-amarillo { color: #f5d58a !important; font-style: normal; }
.cg-jub .cg-sku { font-size: .72em; color: #777; white-space: nowrap; }
.cg-jub .cg-indice-nota { font-size: .85rem; }

/* Herramientas: agrandar letra e imprimir */
.cg-jub-herramientas { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1.4rem; }
.cg-jub-herramientas button { display: inline-flex; align-items: center; gap: .45rem; min-height: 44px; margin: 0; padding: .45rem 1rem; border: 2px solid #cfe7dc; border-radius: 99px; background: #fff; color: var(--t); font-size: .95rem; font-weight: 700; text-transform: none; letter-spacing: 0; cursor: pointer; }
.cg-jub-herramientas button:hover, .cg-jub-herramientas button[aria-pressed="true"] { border-color: var(--v); background: var(--vs); color: var(--v2); }
.cg-jub-herramientas button span { font-weight: 800; }
.cg-jub-herramientas button:focus-visible, .cg-jub a:focus-visible { outline: 3px solid #f2b33d; outline-offset: 3px; }

/* Portada */
.cg-jub-lead { max-width: 34em; margin: 0 0 1.6rem; font-size: 1.18em; line-height: 1.7; color: #333; }
.cg-jub-llamar { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.4rem; margin-bottom: 1.2rem; }
.cg-jub-tel { display: inline-flex; align-items: center; gap: .9rem; padding: .85rem 1.5rem .85rem 1.1rem; border-radius: 18px; background: var(--v); color: #fff !important; text-decoration: none; box-shadow: 0 14px 28px -14px rgba(30, 127, 97, .9); transition: background .2s ease, transform .2s ease; }
.cg-jub-tel:hover { background: var(--v2); transform: translateY(-2px); }
.cg-jub-tel > span:first-child { font-size: 1.6rem; }
.cg-jub-tel small { display: block; font-size: .85rem; opacity: .9; }
.cg-jub-tel b { display: block; font-size: 1.45rem; letter-spacing: .01em; }
.cg-jub-tel--chico { margin-top: 1rem; padding: .7rem 1.2rem .7rem .9rem; }
.cg-jub-tel--chico b { font-size: 1.2rem; }
.cg-jub-cita { font-size: 1.05rem; font-weight: 700; color: var(--v2) !important; text-decoration: underline; text-underline-offset: 4px; }
.cg-jub-idiomas { display: flex; flex-wrap: wrap; gap: .4rem .9rem; margin: 0; font-size: .95rem; color: var(--s); }
.cg-jub-idiomas span[lang] { padding: .1rem .7rem; border-radius: 99px; background: var(--vs); color: var(--v2); font-weight: 700; }
/* Carta ilustrativa */
.cg-jub-carta { position: relative; max-width: 420px; margin: 1rem 0 0 auto; padding: 1.8rem 1.8rem 1.4rem; border: 1px solid #d9ecdf; border-radius: 6px 18px 18px 18px; background: #fff; box-shadow: 12px 12px 0 #d6eee3, 0 30px 60px -24px rgba(30, 127, 97, .45); transform: rotate(1deg); }
.cg-jub-carta-k { margin: 0 0 .3rem; font-size: .75rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--v); }
.cg-jub-carta-t { margin: 0 0 1rem; padding-bottom: .9rem; border-bottom: 2px solid var(--t); font-size: 1.35rem; font-weight: 700; line-height: 1.2; color: var(--t); }
.cg-jub-carta ol { margin: 0 !important; padding: 0; list-style: none; }
.cg-jub-carta li { display: flex; align-items: center; gap: .8rem; margin: 0 !important; padding: .55rem 0; border-bottom: 1px dashed #e3e3e3; font-size: 1.02rem; color: #888; }
.cg-jub-carta li span { display: grid; place-items: center; flex: none; width: 1.8rem; height: 1.8rem; border-radius: 50%; border: 2px solid #ccc; font-size: .85rem; font-weight: 800; }
.cg-jub-carta li.is-ok { color: var(--t); }
.cg-jub-carta li.is-ok span { border-color: var(--v); background: var(--v); color: #fff; }
.cg-jub-carta li.is-ahora { color: var(--v2); font-weight: 700; }
.cg-jub-carta li.is-ahora span { border-color: var(--v); color: var(--v); box-shadow: 0 0 0 4px var(--vs); }
.cg-jub-carta-pie { display: flex; justify-content: space-between; align-items: center; margin: 1rem 0 0; font-size: .85rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--v); }
.cg-jub-sello { display: grid; place-content: center; width: 78px; height: 78px; margin: -1.8rem -.4rem -.6rem 0; border: 2px solid var(--v); border-radius: 50%; outline: 1px dashed var(--v); outline-offset: 3px; font-size: .55rem; text-align: center; line-height: 1; transform: rotate(-12deg); }
.cg-jub-sello b { display: block; margin-top: .15rem; font-size: 1.4rem; }
@media (max-width: 849px) { .cg-jub-carta { margin: 2.4rem auto 0; transform: none; } }

/* Tres preguntas */
.cg-jub-pregs { display: grid; gap: 1rem; margin: 1.8rem 0 1rem !important; padding: 0; list-style: none; }
.cg-jub-preg { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 1.5rem; margin: 0 !important; padding: 1.4rem 1.6rem; border: 2px solid #e3efe8; border-radius: 18px; background: #fff; }
.cg-jub-preg-q { display: flex; align-items: flex-start; gap: .8rem; margin: 0; font-size: 1.3em; font-weight: 700; line-height: 1.3; color: var(--t); }
.cg-jub-preg-q span { display: grid; place-items: center; flex: none; width: 2.2rem; height: 2.2rem; border-radius: 50%; background: var(--v); color: #fff; font-size: 1rem; }
.cg-jub-preg-r { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.cg-jub-preg-r p { margin: 0; padding: 1rem 1.1rem; border-radius: 12px; background: #f6faf8; font-size: .98em; color: #333; }
.cg-jub-preg-r b:first-child { display: block; margin-bottom: .3rem; font-size: 1.02em; color: var(--v2); }
@media (max-width: 849px) { .cg-jub-preg, .cg-jub-preg-r { grid-template-columns: 1fr; } }

/* De dónde llegan (fondo verde oscuro) */
.cg-jub-origenes-lista { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.2rem; margin: 2rem 0 1.4rem !important; padding: 0; list-style: none; }
.cg-jub-origen { margin: 0 !important; padding: 1.6rem; border: 1px solid rgba(252, 252, 242, .18); border-radius: 18px; background: rgba(252, 252, 242, .06); }
.cg-jub-flag { font-size: 2.2rem; line-height: 1; }
.cg-jub-origen-pais { margin: .6rem 0 .2rem; font-size: 1.35em; font-weight: 700; color: #fff; }
.cg-jub-origen-num { margin: 0 0 .6rem; color: rgba(252, 252, 242, .85); }
.cg-jub-origen-num b { display: block; font-size: 2.6rem; line-height: 1.05; letter-spacing: -.03em; color: #f5d58a; }
.cg-jub-origen-dato { margin: 0 0 .9rem; padding-bottom: .9rem; border-bottom: 1px solid rgba(252, 252, 242, .15); color: #fff; font-weight: 600; }
.cg-jub-origen-dest { margin: 0; font-size: .95em; color: rgba(252, 252, 242, .85); }
.cg-jub-origen-dest span { display: block; font-size: .72rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: #9fd9c2; }
.cg-jub-fuente { margin: 0; font-size: .85rem; color: rgba(252, 252, 242, .65); }
@media (max-width: 849px) { .cg-jub-origenes-lista { grid-template-columns: 1fr; } }

/* Camino */
@media (min-width: 850px) { .cg-jub-camino-head { position: sticky; top: 110px; padding-right: 1.5rem; } }
.cg-jub-pasos { margin: 0 !important; padding: 0; list-style: none; }
.cg-jub-paso { position: relative; display: grid; grid-template-columns: 3.4rem minmax(0, 1fr); gap: 1.2rem; margin: 0 !important; padding: 0 0 2rem; }
.cg-jub-paso:not(:last-child)::before { content: ""; position: absolute; left: 1.7rem; top: 3.4rem; bottom: .2rem; width: 3px; background: #cfe7dc; }
.cg-jub-paso-n { position: relative; display: grid; place-items: center; width: 3.4rem; height: 3.4rem; border-radius: 50%; background: var(--v); color: #fff; font-size: 1.5rem; font-weight: 800; box-shadow: 0 0 0 6px #e3f5ee; }
.cg-jub-paso h3 { margin: .5rem 0 .4rem; font-size: 1.4em; line-height: 1.2; color: var(--t); }
.cg-jub-paso p { margin: 0 0 .5rem; color: #333; }
.cg-jub-paso-donde { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; font-size: .92em; font-weight: 600; color: var(--v2) !important; }

/* Lo que nadie te dice */
.cg-jub-nadie-lista { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem 1.4rem; margin: 1.8rem 0 1rem !important; padding: 0; list-style: none; counter-reset: nadie; }
.cg-jub-nadie-lista li { position: relative; margin: 0 !important; padding: 1.3rem 1.4rem 1.3rem 4rem; border-left: 4px solid #f2b33d; border-radius: 0 14px 14px 0; background: #fffaf0; counter-increment: nadie; }
.cg-jub-nadie-lista li::before { content: "!"; position: absolute; left: 1.2rem; top: 1.25rem; display: grid; place-items: center; width: 1.9rem; height: 1.9rem; border-radius: 50%; background: #f2b33d; color: #1f1f1f; font-weight: 900; }
.cg-jub-nadie-lista b { display: block; margin-bottom: .3rem; font-size: 1.15em; color: var(--t); }
.cg-jub-nadie-lista span { color: #3a3a3a; }
@media (max-width: 849px) { .cg-jub-nadie-lista { grid-template-columns: 1fr; } }

/* Lo que incluye */
.cg-jub-incluye-lista { display: grid; gap: .3rem; margin: 1.4rem 0 0 !important; padding: 0; list-style: none; }
.cg-jub-incluye-lista li { display: flex; align-items: flex-start; gap: .8rem; margin: 0 !important; font-size: 1.08em; color: var(--t); }
.cg-jub-incluye-lista li span { display: grid; place-items: center; flex: none; width: 1.7rem; height: 1.7rem; margin-top: .15rem; border-radius: 50%; background: var(--v); color: #fff; font-size: .85rem; font-weight: 900; }
.cg-jub-promesa { padding: 2rem; border-radius: 22px; background: #fff; box-shadow: 0 24px 50px -28px rgba(30, 127, 97, .55); }
.cg-jub-promesa-k { margin: 0 0 .6rem; font-size: .78rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--v); }
.cg-jub-promesa-t { margin: 0 0 1rem; font-size: 1.55em; font-weight: 700; line-height: 1.3; color: var(--t); }
.cg-jub-promesa-p { margin: 0; color: var(--s); }
.cg-jub-promesa a { color: var(--v2); font-weight: 700; }

/* Servicios */
.cg-jub-servs { display: grid; gap: .7rem; margin: 1.6rem 0 1rem; }
.cg-jub-serv { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 1.2rem; padding: 1.1rem 1.4rem; border: 2px solid #e3efe8; border-radius: 16px; background: #fff; color: var(--t) !important; text-decoration: none; transition: border-color .2s ease, background .2s ease; }
.cg-jub-serv:hover { border-color: var(--v); background: #f6faf8; }
.cg-jub-serv b { display: block; font-size: 1.12em; }
.cg-jub-serv small { display: block; font-size: .92em; color: var(--s); }
.cg-jub-serv-p { font-weight: 700; color: var(--v2); white-space: nowrap; }
@media (max-width: 549px) { .cg-jub-serv { grid-template-columns: 1fr; gap: .4rem; } }

/* Preguntas: acordeón más grande y legible */
.cg-jub-acc .accordion-title { padding-top: 1.1rem !important; padding-bottom: 1.1rem !important; font-size: 1.15em !important; line-height: 1.35; }
.cg-jub-acc .accordion-inner p { font-size: 1.05em; line-height: 1.7; }

/* Contacto */
.cg-jub-canales { display: grid; gap: .7rem; margin: 1.6rem 0 1rem !important; padding: 0; list-style: none; }
.cg-jub-canales li { margin: 0 !important; }
.cg-jub-canales a { display: flex; align-items: center; gap: 1rem; padding: 1rem 1.2rem; border-radius: 16px; background: rgba(252, 252, 242, .08); border: 1px solid rgba(252, 252, 242, .2); color: #fff !important; text-decoration: none; transition: background .2s ease; }
.cg-jub-canales a:hover { background: rgba(252, 252, 242, .16); }
.cg-jub-canales a > span:first-child { font-size: 1.6rem; }
.cg-jub-canales small { display: block; font-size: .85rem; color: #9fd9c2; }
.cg-jub-canales b { display: block; font-size: 1.2em; }
.cg-jub-horario { font-size: .95rem; color: rgba(252, 252, 242, .8); }
.cg-jub-form { padding: 1.4rem; border-radius: 20px; background: #fff; color: var(--t); }
.cg-jub-form-t { margin: 0 0 .6rem; font-size: 1.2em; font-weight: 700; color: var(--t); }

@media (max-width: 549px) {
	.cg-jub { font-size: 1.06rem; }
	.cg-jub-tel { width: 100%; }
	.cg-jub-preg, .cg-jub-origen, .cg-jub-promesa { padding: 1.2rem; }
}
@media (prefers-reduced-motion: reduce) { .cg-jub-tel, .cg-jub-serv, .cg-jub-canales a { transition: none; } .cg-jub-tel:hover { transform: none; } }

/* Imprimir esta guía: solo el contenido, en tinta negra, sin menús ni formularios */
@media print {
	body.cg-jub-pagina #header, body.cg-jub-pagina #footer, body.cg-jub-pagina .footer-wrapper, body.cg-jub-pagina .cg-jub-herramientas,
	body.cg-jub-pagina .cg-jub-form, body.cg-jub-pagina .cg-jub-carta, body.cg-jub-pagina .cg-tablero-nota, body.cg-jub-pagina #cgrv-root,
	body.cg-jub-pagina .quiz-fab, body.cg-jub-pagina [class*="fab"], body.cg-jub-pagina .lf-modal-overlay, body.cg-jub-pagina .back-to-top { display: none !important; }
	body.cg-jub-pagina .cg-jub { font-size: 12pt; }
	body.cg-jub-pagina .section { padding: 18pt 0 !important; background: #fff !important; }
	body.cg-jub-pagina .cg-dark, body.cg-jub-pagina .cg-dark * { color: #000 !important; background: #fff !important; }
	body.cg-jub-pagina .cg-jub-origen-num b, body.cg-jub-pagina .cg-jub-amarillo { color: #000 !important; }
	body.cg-jub-pagina .accordion-inner { display: block !important; }
	body.cg-jub-pagina .cg-jub-tel { box-shadow: none; }
	body.cg-jub-pagina a[href^="tel:"]::after { content: ""; }
}

/* ==========================================================================
   Personas · Familias (#169), prefijo .cg-fml-*  (reutiliza .cg-jub-* de Jubilados; personas = verde)
   ========================================================================== */
/* ¿Quién eres en esta historia? */
.cg-fml-puertas { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.2rem; margin-top: 1.8rem; }
.cg-fml-puerta { position: relative; display: flex; flex-direction: column; gap: .6rem; padding: 1.8rem 1.6rem 1.5rem; border: 2px solid #cfe7dc; border-radius: 20px; background: #fff; color: #1f1f1f !important; text-decoration: none; transition: border-color .2s ease, transform .2s ease, box-shadow .2s ease; }
.cg-fml-puerta:hover { border-color: #1e7f61; transform: translateY(-3px); box-shadow: 0 20px 40px -24px rgba(30, 127, 97, .6); }
.cg-fml-puerta:first-child { border-color: #1e7f61; background: #1e7f61; color: #fff !important; }
.cg-fml-puerta-n { display: grid; place-items: center; width: 2.6rem; height: 2.6rem; border-radius: 50%; background: #e3f5ee; color: #1e7f61; font-size: 1rem; font-weight: 800; line-height: 1; }
.cg-fml-puerta:first-child .cg-fml-puerta-n { background: rgba(255, 255, 255, .2); color: #fff; }
.cg-fml-puerta b { font-size: 1.35em; line-height: 1.2; }
.cg-fml-puerta-d { font-size: 1em; line-height: 1.6; opacity: .88; }
.cg-fml-puerta-cta { margin-top: auto; padding-top: .6rem; font-weight: 700; color: #16654d; }
.cg-fml-puerta:first-child .cg-fml-puerta-cta { color: #f5d58a; }
.cg-fml-puerta-cta i { display: inline-block; font-style: normal; transition: transform .2s ease; }
.cg-fml-puerta:hover .cg-fml-puerta-cta i { transform: translateX(4px); }
@media (max-width: 849px) { .cg-fml-puertas { grid-template-columns: 1fr; } }

/* ¿Quién cuenta como familia? */
.cg-fml-vinculos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.2rem; margin: 1.8rem 0 1rem !important; padding: 0; list-style: none; }
.cg-fml-vinculo { margin: 0 !important; padding: 1.6rem; border-radius: 20px; background: #fff; box-shadow: 0 16px 36px -26px rgba(30, 127, 97, .5); }
.cg-fml-vinculo-i { display: grid; place-items: center; width: 3.4rem; height: 3.4rem; margin-bottom: .8rem; border-radius: 50%; background: #e3f5ee; font-size: 1.7rem; }
.cg-fml-vinculo h3 { margin: 0 0 .3rem; font-size: 1.35em; color: #1f1f1f; }
.cg-fml-vinculo p { margin: 0 0 .8rem; color: #3a3a3a; }
.cg-fml-vinculo-doc { margin: 0 !important; padding-top: .8rem; border-top: 1px dashed #cfe7dc; font-size: .98em; }
.cg-fml-vinculo-doc span { display: block; font-size: .72rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: #1e7f61; }
@media (max-width: 849px) { .cg-fml-vinculos { grid-template-columns: 1fr; } }

/* Datos (fondo verde oscuro) */
.cg-fml-datos { display: grid; gap: 1rem; margin-bottom: 1.2rem; }
.cg-fml-datos div { padding: 1.3rem 1.4rem; border: 1px solid rgba(252, 252, 242, .18); border-radius: 16px; background: rgba(252, 252, 242, .06); }
.cg-fml-datos span { display: block; margin-bottom: .3rem; font-size: .75rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: #9fd9c2; }
.cg-fml-datos b { font-size: 1.2em; line-height: 1.5; color: #fff; }

/* Tres caminos */
.cg-fml-caminos { margin: 0 0 1rem !important; padding: 0; list-style: none; }
.cg-fml-camino { display: grid; grid-template-columns: 3.4rem minmax(0, 1fr); gap: 1.2rem; margin: 0 0 1.2rem !important; padding: 1.5rem; border: 2px solid #e3efe8; border-radius: 20px; background: #fff; scroll-margin-top: 110px; }
.cg-fml-camino:target { border-color: #1e7f61; box-shadow: 0 0 0 4px #e3f5ee; }
.cg-fml-camino-l { display: grid; place-items: center; width: 3.4rem; height: 3.4rem; border-radius: 14px; background: #1e7f61; color: #fff; font-size: 1.5rem; font-weight: 800; }
.cg-fml-camino h3 { margin: .3rem 0 .4rem; font-size: 1.35em; line-height: 1.2; color: #1f1f1f; }
.cg-fml-camino p { margin: 0 0 .5rem; color: #333; }
@media (max-width: 549px) { .cg-fml-camino { grid-template-columns: 1fr; gap: .6rem; padding: 1.2rem; } }
@media (prefers-reduced-motion: reduce) { .cg-fml-puerta, .cg-fml-puerta-cta i { transition: none; } .cg-fml-puerta:hover { transform: none; } }

/* ==========================================================================
   Personas con lectura fácil (Jubilados #168 y Familias #169) — v2 "calidez" (2026-10-05)
   Verde Common Ground (#2eb98f) en lugar del verde oscuro; secciones claras; trato humano; íconos; consejos sin alarma.
   Rellenos en #2eb98f con texto #0f3d30 (contraste alto para lectores mayores); texto verde #17795b sobre blanco.
   ========================================================================== */
.cg-jub { --v: #2eb98f; --v2: #27a37e; --vt: #17795b; --vs: #e6f7f0; --ink: #0f3d30; }
.cg-jub .cg-jub-eyebrow, .cg-jub-eyebrow { color: var(--vt) !important; }
.cg-jub .cg-jub-eyebrow::before { background: var(--v) !important; }
.cg-jub .cg-ic { display: block; width: 100%; height: 100%; }

/* Botones y herramientas */
.cg-jub-tel { background: var(--v); color: var(--ink) !important; box-shadow: 0 14px 28px -14px rgba(46, 185, 143, .95); }
.cg-jub-tel:hover { background: var(--v2); }
.cg-jub-tel small { opacity: 1; color: var(--ink); }
.cg-jub-cita { color: var(--vt) !important; }
.cg-jub-herramientas button { border-color: #bfe9d8; }
.cg-jub-herramientas button:hover, .cg-jub-herramientas button[aria-pressed="true"] { border-color: var(--v); background: var(--vs); color: var(--vt); }
.cg-jub-idiomas span[lang] { background: var(--vs); color: var(--vt); }

/* Carta de la portada */
.cg-jub-carta { border-color: #cdeee0; box-shadow: 12px 12px 0 #d3f1e4, 0 30px 60px -24px rgba(46, 185, 143, .55); }
.cg-jub-carta-k, .cg-jub-carta-pie { color: var(--vt); }
.cg-jub-carta li.is-ok span { border-color: var(--v); background: var(--v); color: var(--ink); }
.cg-jub-carta li.is-ahora { color: var(--vt); }
.cg-jub-carta li.is-ahora span { border-color: var(--v); color: var(--vt); box-shadow: 0 0 0 4px var(--vs); }
.cg-jub-sello { border-color: var(--vt); outline-color: var(--vt); color: var(--vt); }

/* Tres preguntas / puertas / caminos */
.cg-jub-preg { border-color: #d7f0e5; }
.cg-jub-preg-q span { background: var(--v); color: var(--ink); }
.cg-jub-preg-r p { background: #f3fbf7; }
.cg-jub-preg-r b:first-child { color: var(--vt); }
.cg-fml-puerta { border-color: #cdeee0; }
.cg-fml-puerta:hover { border-color: var(--v); box-shadow: 0 20px 40px -24px rgba(46, 185, 143, .7); }
.cg-fml-puerta:first-child { border-color: var(--v); background: var(--v); color: var(--ink) !important; }
.cg-fml-puerta:first-child .cg-fml-puerta-n { background: rgba(255, 255, 255, .45); color: var(--ink); }
.cg-fml-puerta:first-child .cg-fml-puerta-cta { color: var(--ink); text-decoration: underline; text-underline-offset: 4px; }
.cg-fml-puerta-n { background: var(--vs); color: var(--vt); }
.cg-fml-puerta-cta { color: var(--vt); }
.cg-fml-vinculo-i { background: var(--vs); }
.cg-fml-vinculo-doc { border-top-color: #cdeee0; }
.cg-fml-vinculo-doc span { color: var(--vt); }
.cg-fml-camino { border-color: #d7f0e5; }
.cg-fml-camino:target { border-color: var(--v); box-shadow: 0 0 0 4px var(--vs); }
.cg-fml-camino-l { background: var(--v); color: var(--ink); }
.cg-fml-camino-ic { width: 2.2rem; height: 2.2rem; margin: 0 0 .2rem !important; color: var(--vt); }

/* Pasos con ícono */
.cg-jub-paso-n { width: 3.6rem; height: 3.6rem; padding: .8rem; border: 2px solid var(--v); background: var(--vs); color: var(--vt); box-shadow: 0 0 0 6px #fff; }
.cg-jub-paso:not(:last-child)::before { left: 1.8rem; top: 3.6rem; background: #bfe9d8; }
.cg-jub-paso { grid-template-columns: 3.6rem minmax(0, 1fr); }
.cg-jub-paso-k { margin: .2rem 0 0 !important; font-size: .75rem !important; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--vt) !important; }
.cg-jub-paso h3 { margin-top: .1rem; }
.cg-jub-paso-donde { color: var(--vt) !important; }

/* Consejos (antes "alertas"): tono tranquilo */
.cg-jub-nadie-lista li { border-left-color: var(--v); background: #f3fbf7; }
.cg-jub-nadie-lista li::before { content: "💡"; background: #fff; box-shadow: 0 4px 10px -4px rgba(46, 185, 143, .6); font-size: 1rem; }

/* Lo que incluye */
.cg-jub-incluye-lista li span { background: var(--v); color: var(--ink); }
.cg-jub-promesa { box-shadow: 0 24px 50px -28px rgba(46, 185, 143, .7); }
.cg-jub-promesa-k { color: var(--vt); }
.cg-jub-promesa a { color: var(--vt); }

/* Servicios */
.cg-jub-serv { border-color: #d7f0e5; }
.cg-jub-serv:hover { border-color: var(--v); background: #f3fbf7; }
.cg-jub-serv-p { color: var(--vt); }

/* Secciones claras (antes en verde oscuro): datos y contacto */
.cg-jub-claro { background-image: linear-gradient(160deg, #f1fbf6 0%, #e2f6ec 100%) !important; }
.cg-jub-claro .cg-jub-h2 { color: #1f1f1f; }
.cg-jub-claro .cg-jub-p { color: #3a3a3a; }
.cg-jub-claro .cg-jub-origen { border: 1px solid #cdeee0; background: #fff; box-shadow: 0 16px 34px -26px rgba(46, 185, 143, .7); }
.cg-jub-claro .cg-jub-origen-pais { color: #1f1f1f; }
.cg-jub-claro .cg-jub-origen-num { color: #3a3a3a; }
.cg-jub-claro .cg-jub-origen-num b { color: var(--vt); }
.cg-jub-claro .cg-jub-origen-dato { border-bottom-color: #d7f0e5; color: #1f1f1f; }
.cg-jub-claro .cg-jub-origen-dest { color: #3a3a3a; }
.cg-jub-claro .cg-jub-origen-dest span { color: var(--vt); }
.cg-jub-claro .cg-jub-fuente { color: #555; }
.cg-jub-claro .cg-fml-datos div { border: 1px solid #cdeee0; background: #fff; }
.cg-jub-claro .cg-fml-datos span { color: var(--vt); }
.cg-jub-claro .cg-fml-datos b { color: #1f1f1f; }
.cg-jub-claro .cg-jub-canales a { border: 1px solid #cdeee0; background: #fff; color: #1f1f1f !important; box-shadow: 0 10px 24px -20px rgba(46, 185, 143, .9); }
.cg-jub-claro .cg-jub-canales a:hover { border-color: var(--v); background: #fff; }
.cg-jub-claro .cg-jub-canales small { color: var(--vt); }
.cg-jub-claro .cg-jub-horario { color: #3a3a3a; }
.cg-jub-claro .cg-jub-form { box-shadow: 0 24px 50px -30px rgba(46, 185, 143, .8); }

/* Así te vamos a tratar */
.cg-trato { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.1rem; margin: 1.8rem 0 1.6rem !important; padding: 0; list-style: none; }
.cg-trato-item { display: flex; flex-direction: column; gap: .4rem; margin: 0 !important; padding: 1.5rem; border: 1px solid #d7f0e5; border-radius: 20px; background: #fbfefc; }
.cg-trato-ic { display: grid; place-items: center; width: 3.4rem; height: 3.4rem; margin-bottom: .4rem; padding: .75rem; border-radius: 50%; background: var(--vs); color: var(--vt); }
.cg-trato-item b { font-size: 1.18em; line-height: 1.25; color: #1f1f1f; }
.cg-trato-item span:last-child { color: #3a3a3a; }
.cg-trato-cita { position: relative; margin: 0 !important; padding: 1.6rem 1.8rem 1.4rem 4.2rem; border: 0; border-radius: 20px; background: var(--vs); }
.cg-trato-cita::before { content: "“"; position: absolute; left: 1.2rem; top: .4rem; font-size: 4.5rem; line-height: 1; color: var(--v); font-family: Georgia, serif; }
.cg-trato-cita p { margin: 0 0 .4rem; font-size: 1.25em; font-style: italic; line-height: 1.5; color: #1f1f1f; }
.cg-trato-cita cite { font-size: .8rem; font-style: normal; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--vt); }
@media (max-width: 849px) { .cg-trato { grid-template-columns: 1fr 1fr; } }
@media (max-width: 549px) { .cg-trato { grid-template-columns: 1fr; } .cg-trato-cita { padding: 3.4rem 1.2rem 1.2rem; } .cg-trato-cita::before { left: 1rem; top: .2rem; } }

/* Marquesina de tranquilidad */
.cg-jub-cinta { overflow: hidden; }
/* Personas · invitación a descargar la guía (cg-forms CG_Form_Guia) */
.cg-jub-guia-cta { margin: 1.4rem 0 .6rem; padding-top: 1.2rem; border-top: 1px dashed #bfe9d8; font-size: .98em; color: #3a3a3a; }
.cg-jub-guia-cta b { display: block; color: #1f1f1f; }
.cg-jub-herramientas .cgg-abrir { font-size: .95rem; }

/* ==========================================================================
   Nosotros · Conócenos (#171), prefijo .cg-con-*  (marca = ambos públicos: neutro + morado empresas + verde personas)
   Reutiliza .cg-garantia/.cg-promesa/.cg-sello (Inicio), .cg-faq, .cg-diag-*, cg-marquesina.
   ========================================================================== */
.cg-con { --m: #4b2e83; --v: #2eb98f; --vt: #17795b; --t: #262626; }
.cg-con-lead { max-width: 36em; margin: 0 0 1.2rem; font-size: 1.14rem; line-height: 1.65; color: #444; }
.cg-con-credencial { display: flex; flex-wrap: wrap; gap: .45rem; margin: 0 0 .8rem; }
.cg-con-credencial span { padding: .35rem .85rem; border: 1px solid rgba(38, 38, 38, .14); border-radius: 99px; background: #fff; font-size: .82rem; font-weight: 700; letter-spacing: .02em; color: var(--t); }
.cg-con-credencial span:first-child { border-color: var(--m); background: var(--m); color: #fff; }

/* Manifiesto */
.cg-con-manifiesto { position: relative; max-width: 440px; margin: 1rem 0 0 auto; padding: 2.2rem 2rem 1.8rem; border-radius: 6px 22px 22px 22px; background: var(--t); color: #fcfcf2; box-shadow: 14px 14px 0 #e4ddef, 0 30px 60px -24px rgba(38, 38, 38, .6); transform: rotate(-1deg); }
.cg-con-manifiesto::before { content: ""; position: absolute; inset: 0; border-radius: inherit; background: linear-gradient(135deg, rgba(75, 46, 131, .55) 0%, rgba(75, 46, 131, 0) 45%, rgba(46, 185, 143, 0) 60%, rgba(46, 185, 143, .35) 100%); pointer-events: none; }
.cg-con-manifiesto > * { position: relative; }
.cg-con-manifiesto-k { margin: 0 0 1rem; font-size: .7rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: #c9b8ee; }
.cg-con-manifiesto blockquote { margin: 0; padding: 0; border: 0; }
.cg-con-manifiesto blockquote p { margin: 0; font-size: 1.45rem; font-weight: 700; line-height: 1.32; letter-spacing: -.01em; color: #fcfcf2; }
.cg-con-manifiesto figcaption { margin-top: 1.4rem; padding-top: 1rem; border-top: 1px solid rgba(252, 252, 242, .2); font-size: .78rem; letter-spacing: .16em; text-transform: uppercase; color: rgba(252, 252, 242, .7); }
.cg-con-manifiesto figcaption b { display: block; color: #7fdcbf; }
.cg-con-manifiesto-sello { position: absolute; right: -14px; bottom: -22px; display: grid; place-content: center; width: 84px; height: 84px; border: 2px solid var(--v); border-radius: 50%; outline: 1px dashed var(--v); outline-offset: 3px; background: var(--t); color: var(--v); font-size: .55rem; font-weight: 700; letter-spacing: .1em; line-height: 1; text-align: center; text-transform: uppercase; transform: rotate(-14deg); }
.cg-con-manifiesto-sello b { display: block; margin-top: .2rem; font-size: 1.5rem; letter-spacing: -.02em; }
@media (max-width: 849px) { .cg-con-manifiesto { margin: 2.2rem auto 1rem; transform: none; } }

/* Filosofía */
@media (min-width: 850px) { .cg-con-sticky { position: sticky; top: 110px; padding-right: 1.5rem; } }
.cg-con-principios { margin: 0 !important; padding: 0; list-style: none; border-top: 2px solid var(--t); }
.cg-con-princ { display: grid; grid-template-columns: 4.2rem minmax(0, 1fr); gap: 1.2rem; margin: 0 !important; padding: 1.8rem 0; border-bottom: 1px solid rgba(38, 38, 38, .12); }
.cg-con-princ-n { font-size: 2.8rem; font-weight: 700; line-height: 1; letter-spacing: -.05em; color: transparent; -webkit-text-stroke: 1.3px var(--m); }
.cg-con-princ h3 { margin: 0 0 .5rem; font-size: 1.4rem; line-height: 1.2; color: var(--t); }
.cg-con-princ p { margin: 0 0 .9rem; color: #444; line-height: 1.65; }
.cg-con-practica { margin: 0 !important; padding: .8rem 1rem; border-left: 4px solid var(--v); border-radius: 0 10px 10px 0; background: #f3fbf7; color: var(--t) !important; font-weight: 600; }
.cg-con-practica b { display: block; margin-bottom: .15rem; font-size: .7rem; letter-spacing: .16em; text-transform: uppercase; color: var(--vt); }

/* Equipo */
.cg-con-personas { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.4rem; margin-top: 1.6rem; }
.cg-con-persona { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 1.4rem; align-items: center; padding: 1.4rem; border-radius: 22px; background: #fff; box-shadow: 0 20px 44px -30px rgba(38, 38, 38, .5); }
.cg-con-persona img { width: 150px; height: 150px; border-radius: 50%; object-fit: cover; }
.cg-con-persona h3 { margin: 0 0 .2rem; font-size: 1.35rem; color: var(--t); }
.cg-con-cargo { margin: 0 0 .7rem; font-size: .95rem; font-weight: 600; color: var(--m); }
.cg-con-persona ul { display: flex; flex-wrap: wrap; gap: .35rem; margin: 0 0 .9rem !important; padding: 0; list-style: none; }
.cg-con-persona li { margin: 0 !important; padding: .2rem .65rem; border-radius: 99px; background: #f1eef5; font-size: .78rem; font-weight: 700; color: var(--m); }
.cg-con-persona a { font-weight: 700; color: var(--m); }
@media (max-width: 849px) { .cg-con-personas { grid-template-columns: 1fr; } }
@media (max-width: 549px) { .cg-con-persona { grid-template-columns: 1fr; text-align: center; } .cg-con-persona img { margin: 0 auto; } .cg-con-persona ul { justify-content: center; } }

/* Cómo cobramos */
.cg-con-conceptos { display: grid; gap: .8rem; margin: 1.2rem 0 1.6rem; }
.cg-con-conceptos div { padding: 1rem 1.2rem; border: 1px solid rgba(38, 38, 38, .12); border-radius: 14px; }
.cg-con-conceptos dt { display: flex; align-items: center; gap: .6rem; float: none; margin: 0 0 .3rem; font-size: 1.05rem; font-weight: 700; color: var(--t); text-transform: none; letter-spacing: 0; }
.cg-con-conceptos dt span { display: grid; place-items: center; width: 1.7rem; height: 1.7rem; border-radius: 50%; background: var(--t); color: #fff; font-size: .8rem; }
.cg-con-conceptos dd { margin: 0; color: #555; text-transform: none; letter-spacing: 0; }
.cg-con-recibo { position: relative; max-width: 440px; margin: 0 auto; padding: 1.8rem 1.8rem 1.4rem; border: 1px solid rgba(38, 38, 38, .12); border-radius: 6px; background: #fff; box-shadow: 0 30px 60px -30px rgba(38, 38, 38, .45); background-image: radial-gradient(circle at 10px -4px, transparent 9px, #fff 10px); }
.cg-con-recibo-k { margin: 0 0 .4rem; font-size: .7rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: #888; }
.cg-con-recibo-t { margin: 0 0 1rem; padding-bottom: .9rem; border-bottom: 2px dashed rgba(38, 38, 38, .25); font-size: 1.25rem; font-weight: 700; color: var(--t); }
.cg-con-recibo-fila { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .8rem 0; border-bottom: 1px solid rgba(38, 38, 38, .08); }
.cg-con-recibo-fila span { font-weight: 700; color: var(--t); }
.cg-con-recibo-fila small { display: block; font-weight: 400; font-size: .8rem; color: #777; }
.cg-con-recibo-fila b { flex: none; padding: .25rem .7rem; border-radius: 99px; background: var(--m); color: #fff; font-size: .8rem; }
.cg-con-recibo-fila--ext b { background: #f1f1f1; color: #555; }
.cg-con-recibo-pie { display: flex; justify-content: space-between; gap: 1rem; margin: 1rem 0 0; font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--vt); }

/* Garantía: misma pieza de Inicio */
.cg-con-garantia .cg-sello { width: min(320px, 70vw); }

/* Para quién: mitad morado, mitad verde */
.cg-con-puertas { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; margin-top: 1.6rem; }
.cg-con-puerta { display: flex; flex-direction: column; gap: .6rem; min-height: 15rem; padding: 2rem; border-radius: 22px; text-decoration: none; transition: transform .2s ease, box-shadow .2s ease; }
.cg-con-puerta:hover { transform: translateY(-4px); box-shadow: 0 26px 50px -30px rgba(38, 38, 38, .6); }
.cg-con-puerta--e { background: var(--m); color: #fcfcf2 !important; }
.cg-con-puerta--p { background: var(--v); color: #0f3d30 !important; }
.cg-con-puerta-k { font-size: .72rem; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; opacity: .85; }
.cg-con-puerta b { font-size: 1.55rem; line-height: 1.2; }
.cg-con-puerta-d { line-height: 1.6; opacity: .9; }
.cg-con-puerta-cta { margin-top: auto; font-weight: 800; }
.cg-con-puerta-cta i { display: inline-block; font-style: normal; transition: transform .2s ease; }
.cg-con-puerta:hover .cg-con-puerta-cta i { transform: translateX(5px); }
@media (max-width: 849px) { .cg-con-puertas { grid-template-columns: 1fr; } }

/* Herramientas */
.cg-con-tools-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin-top: 1.6rem; }
.cg-con-tool { position: relative; display: flex; flex-direction: column; gap: .45rem; padding: 1.4rem 1.4rem 1.2rem; border: 1px solid rgba(38, 38, 38, .1); border-top: 4px solid var(--c, #262626); border-radius: 6px 6px 18px 18px; background: #fff; color: var(--t) !important; text-decoration: none; transition: transform .2s ease, box-shadow .2s ease; }
.cg-con-tool:hover { transform: translateY(-3px); box-shadow: 0 20px 40px -28px rgba(38, 38, 38, .55); }
.cg-con-tool--e { --c: var(--m); } .cg-con-tool--p { --c: var(--v); }
.cg-con-tool--a { border-image: linear-gradient(90deg, var(--m) 50%, var(--v) 50%) 4 0 0 0 / 4px 0 0 0; }
.cg-con-tool-aud { font-size: .68rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: var(--c, #777); }
.cg-con-tool--a .cg-con-tool-aud { color: #777; }
.cg-con-tool b { font-size: 1.15rem; line-height: 1.25; }
.cg-con-tool-d { flex: 1; font-size: .93rem; line-height: 1.55; color: #555; }
.cg-con-tool-cta { font-weight: 700; color: var(--m); }
.cg-con-tool--p .cg-con-tool-cta { color: var(--vt); }
@media (max-width: 849px) { .cg-con-tools-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 549px) { .cg-con-tools-grid { grid-template-columns: 1fr; } }

/* Diagnóstico: pasos */
.cg-con-pasos { margin: 1.2rem 0 1.2rem !important; padding: 0; list-style: none; }
.cg-con-pasos li { position: relative; margin: 0 !important; padding: 0 0 1rem 3rem; }
.cg-con-pasos li span { position: absolute; left: 0; top: 0; display: grid; place-items: center; width: 2.1rem; height: 2.1rem; border-radius: 50%; background: var(--m); color: #fff; font-weight: 800; }
.cg-con-pasos li b { display: block; font-size: 1.05rem; color: var(--t); }
.cg-con-pasos li p { margin: .15rem 0 0; color: #555; font-size: .95rem; }

/* Cierre */
.cg-con-cierre-t { max-width: 30em; margin: 0 0 2rem; font-size: clamp(1.4rem, 2.6vw, 2rem); font-weight: 700; line-height: 1.3; letter-spacing: -.01em; color: #fcfcf2; }
.cg-con-cierre-t em { color: #7fdcbf; font-style: normal; }
.cg-con-mas-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; margin-bottom: 1.6rem; }
.cg-con-mas { position: relative; display: block; padding: 1.2rem 2.4rem 1.2rem 1.2rem; border: 1px solid rgba(252, 252, 242, .18); border-radius: 16px; color: #fcfcf2 !important; text-decoration: none; transition: background .2s ease; }
.cg-con-mas:hover { background: rgba(252, 252, 242, .06); }
.cg-con-mas b { display: block; margin-bottom: .2rem; font-size: 1.05rem; }
.cg-con-mas span { font-size: .88rem; color: rgba(252, 252, 242, .7); }
.cg-con-mas i { position: absolute; right: 1.1rem; top: 1.2rem; font-style: normal; color: #7fdcbf; }
.cg-con-nl { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.2rem 1.4rem; border-radius: 16px; background: rgba(252, 252, 242, .06); color: rgba(252, 252, 242, .85); }
.cg-con-nl b { color: #fcfcf2; }
.cg-con-nl .button { margin: 0; }
.cg-con-firma { margin: 2rem 0 0; font-size: .78rem; font-weight: 700; letter-spacing: .3em; text-transform: uppercase; color: rgba(252, 252, 242, .45); text-align: center; }
@media (max-width: 849px) { .cg-con-mas-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 549px) { .cg-con-mas-grid { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { .cg-con-puerta, .cg-con-tool, .cg-con-puerta-cta i { transition: none; } .cg-con-puerta:hover, .cg-con-tool:hover { transform: none; } }

/* =====================================================================
   Revisión · lote L-20261008-1209-q3wl (8 oct 2026)
   ===================================================================== */
/* Contadores de conteo: alineados con la línea de texto (REQ-0014 "8 de cada 100", REQ-0031 "12 h") */
.cgc-count.is-js .cgc-anim { vertical-align: baseline; }
/* Inicio · Datos del INM: verde Common Ground #2EB98F (REQ-0011, REQ-0022) */
.cg-datos .cg-eyebrow,
.cg-datos .cg-stat--persona .cg-stat-tag,
.cg-datos .cg-stat--persona .cg-stat-num { color: #2eb98f; }
.cg-datos .cg-stat--persona { border-color: #2eb98f; }
/* Botón con flecha a la derecha (REQ-0019) */
.cg-flecha::after { content: "\f105"; margin-left: .55em; font-family: fl-icons; font-weight: 400; line-height: 1; }
/* Soluciones: claves en blanco cuando la tarjeta se vuelve morada (REQ-0025) */
.cg-sol:hover .cg-sku, .cg-sol:hover .cg-sku a, .cg-sol:focus-within .cg-sku, .cg-sol:focus-within .cg-sku a { color: #fff; text-decoration-color: rgba(255, 255, 255, .6); }
/* Universo de servicios: los tres grupos en morado Common Ground (REQ-0028, REQ-0030) */
.cg-cat-idx-uni:nth-child(2), .cg-cat-idx-uni:nth-child(3) { border-top-color: var(--fs-color-secondary); }
/* Credencial del fundador más a la izquierda, con más aire junto al texto (REQ-0037) */
.cg-confianza-sec .cg-credencial-card { margin-left: 0; }
/* Empresas · tablero del hero más a la derecha, con más aire junto a la columna de texto (REQ-0047) */
.cg-emp-hero .cg-tablero, .cg-emp-hero .cg-tablero-nota { max-width: 410px; }
@media (min-width: 850px) { .cg-emp-hero .cg-tablero, .cg-emp-hero .cg-tablero-nota { margin-right: -1.5rem; } }
/* Empresas · red de interlocutores: todo el texto dentro de cada círculo (REQ-0048) */
.cg-red-sub { font-size: 10px; letter-spacing: .05em; }
/* Sello oficial "Garantía Common Ground" (REQ-0051 y siguientes) */
.cg-sello-oficial { display: block; width: 100%; height: auto; }
.cg-cert-sello { width: 132px; height: auto; top: -58px; }
.cg-cert-sello .cg-sello-oficial { position: static; transform: none; width: 100%; filter: drop-shadow(0 10px 22px rgba(20, 10, 40, .35)); }
@media (max-width: 849px) { .cg-cert-sello { width: 104px; } }
/* Tooltip sobre texto (no clave): "Talento Global" (REQ-0040, REQ-0042) */
.cg-tip { font-family: inherit; }
/* Título de la agenda junto al formulario (REQ-0080, REQ-0084) */
.cg-agenda-head { margin: 0 0 1.2em; padding-bottom: 1em; border-bottom: 1px solid rgba(38, 38, 38, .12); }
.cg-agenda-titulo { margin: 0 0 .3em; font-size: 1.6rem; font-weight: 700; line-height: 1.15; letter-spacing: -.015em; color: #262626; }
.cg-agenda-intro { margin: 0; font-size: .95rem; line-height: 1.5; color: #555; }
/* Mega menú Empresas: solo títulos de sección (REQ-0046, 0057, 0058, 0061, 0062) */
.cg-mm-titulos { display: grid; gap: 0; padding-left: 1.4rem; }
.header-main .nav-dropdown .cg-mm-titulos a { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.05rem .2rem !important; border-bottom: 1px solid rgba(75, 46, 131, .14); background: none; font-size: 1.35rem; font-weight: 700; line-height: 1.2; letter-spacing: -.01em; color: #262626; transition: color .2s ease, padding .2s ease; }
.header-main .nav-dropdown .cg-mm-titulos a:first-child { border-top: 1px solid rgba(75, 46, 131, .14); }
.header-main .nav-dropdown .cg-mm-titulos a span { color: #4b2e83; transition: transform .2s ease; }
.header-main .nav-dropdown .cg-mm-titulos a:hover { padding-left: .6rem !important; color: #4b2e83; background: none; }
.header-main .nav-dropdown .cg-mm-titulos a:hover span { transform: translateX(4px); }
/* Mega menú Personas sin "Según tu situación": las tarjetas en fila (REQ-0063) */
.cg-mm-cards--fila { grid-template-columns: repeat(3, minmax(0, 1fr)); padding-left: 1.4rem; }
.cg-mm-cards--fila .cg-mm-card { align-items: flex-start; flex-direction: column; }
/* Mega menú Servicios: universos + catálogo completo en grande + membresías (REQ-0068, 0069, 0070) */
.cg-mms--simple { display: block; }
.cg-mms--simple .cg-mms-unis { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cg-mms-accesos { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem 2rem; margin-top: 1.4rem; padding-top: 1.2rem; border-top: 1px solid rgba(38, 38, 38, .1); }
.header-main .nav-dropdown a.cg-mms-cta-grande { display: inline-flex; align-items: center; gap: .6rem; padding: 1rem 1.8rem !important; border-radius: 99px; background: #4b2e83; font-size: 1.25rem; font-weight: 700; line-height: 1.1; color: #fcfcf2; box-shadow: 0 14px 26px -14px rgba(75, 46, 131, .8); transition: background .2s ease, transform .2s ease; }
.header-main .nav-dropdown a.cg-mms-cta-grande:hover { background: #3a2367; color: #fff; transform: translateY(-2px); }
.header-main .nav-dropdown a.cg-mms-cta-plan { font-size: 1rem; font-weight: 700; color: #4b2e83; }
.header-main .nav-dropdown a.cg-mms-cta-plan:hover { color: #1e7f61; }
/* Mega menú Nosotros: sello oficial de la garantía (REQ-0079) */
.cg-mmn-sello-img { flex: none; width: 3.6rem; height: auto; }
/* Catálogo · universos del hero: al pasar el mouse, recuadro blanco con texto negro (REQ-0074) */
.cg-cat-unis-hero .cg-np-paso { transition: background .25s ease, border-color .25s ease, transform .25s ease; }
.cg-cat-unis-hero .cg-np-paso:hover { background: #fff; border-color: #fff; transform: translateX(4px); }
.cg-cat-unis-hero .cg-np-paso:hover b, .cg-cat-unis-hero .cg-np-paso:hover span { color: #262626; }
.cg-cat-unis-hero .cg-np-paso:hover i { color: #4b2e83; }
@media (prefers-reduced-motion: reduce) { .cg-cat-unis-hero .cg-np-paso { transition: none; } .cg-cat-unis-hero .cg-np-paso:hover { transform: none; } }
/* Catálogo · precio de cada paquete (REQ-0075) y enlace "Ver precios" (REQ-0076) */
.cg-cat-paq .cg-cat-paq-precio { margin: .6em 0 0; font-size: .82rem; color: #555; }
.cg-cat-paq .cg-cat-paq-precio b { display: inline; font-size: 1.35rem; letter-spacing: -.01em; color: #4b2e83; }
.cg-cat-paq .cg-cat-paq-precio small { font-size: .78rem; color: #777; }
a.cg-ver-precios { font-weight: 700; color: #2eb98f; }
a.cg-ver-precios:hover { color: #1e7f61; }
/* Conócenos · sello oficial en el manifiesto (REQ-0081) y en la sección Garantía (REQ-0082) */
.cg-con-sello-oficial { position: absolute; right: -26px; bottom: -34px; width: 104px; height: auto; transform: rotate(-10deg); filter: drop-shadow(0 10px 18px rgba(38, 38, 38, .35)); }
.cg-sello--oficial { display: grid; place-items: center; aspect-ratio: auto; }
.cg-sello--oficial .cg-sello-oficial { width: 100%; max-width: 340px; filter: drop-shadow(0 18px 36px rgba(0, 0, 0, .35)); }
/* Garantía CG · sello oficial en la portada (REQ-0083) */
.cg-legal-sello--oficial { border: 0; border-radius: 0; box-shadow: none; transform: rotate(-6deg); }
.cg-legal-sello--oficial img { display: block; width: 100%; height: auto; }
/* Personas · título visible arriba de cada ruta (REQ-0065) */
.cg-per-perfiles .cg-sol-grid > .col > .col-inner { display: flex; flex-direction: column; }
.cg-per-perfiles .cg-sol-grid .cg-sol { flex: 1; height: auto; }
.cg-per-ruta-titulo { display: flex; align-items: center; gap: .6em; margin: 0 0 .8em; font-size: 1.3rem; font-weight: 700; line-height: 1.2; letter-spacing: -.01em; color: #17795b; }
.cg-per-ruta-titulo::before { content: ""; flex: none; width: 1.6em; height: 3px; border-radius: 2px; background: #2eb98f; }
/* Notificaciones · dato del hero con texto en lugar de número (REQ-0056) */
.cg-emp-datos .cg-emp-dato-texto b { font-size: 1.15rem; line-height: 1.25; }

/* >>> Plan de lanzamiento v2 */
/* Estilos del Plan de lanzamiento v2 (octubre 2026). Fuente: docs/lanzamiento-v2/lanzamiento-estilos.css
   (se inserta con css.py; no editar directo en style.css). */

/* ---------- Inicio · hero ---------- */
/* Botones de las dos puertas: más grandes y cómodos para el pulgar. */
.cg-hero-copy .button.cg-hero-puerta {
	display: inline-flex; align-items: center; justify-content: center; gap: .35em;
	min-height: 3.3em; margin: 0 .7em .8em 0; padding: 0 1.8em;
	font-size: 1.1em; font-weight: 700; letter-spacing: .01em;
}
.cg-hero-copy .button.cg-hero-puerta i { top: 0; font-size: 1.15em; }
.cg-hero-copy .button.cg-hero-puerta--persona { color: #0f3d30; }
.cg-hero-copy .button.cg-hero-puerta--persona:hover { color: #0f3d30; }
/* Marquesina de credenciales debajo de los botones (sustituye la línea fija). */
.cg-hero-marquesina { margin-top: 1.1em; }
@media (max-width: 549px) {
	.cg-hero-copy .button.cg-hero-puerta { display: flex; width: 100%; margin: 0 0 .7em; font-size: 1em; }
	.cg-hero-lead { font-size: .98em !important; }
}

/* ---------- Inicio · puertas Empresas & Personas ---------- */
.cg-door-hook { max-width: 31em; margin: -.3em 0 1.6em; font-size: 1.08rem; line-height: 1.55; opacity: .92; }
.cg-door--persona .cg-door-hook { color: #262626; }
.cg-door .button.cg-door-cta {
	display: inline-flex; align-items: center; justify-content: center; gap: .35em;
	min-height: 3.2em; padding: 0 1.8em; font-size: 1.05em; font-weight: 700;
}
.cg-door .button.cg-door-cta { white-space: nowrap; }
@media (min-width: 550px) and (max-width: 849px) {
	/* Tableta: las dos puertas apiladas (span__md=12), con aire y título a lo ancho */
	.cg-door .col-inner { min-height: 0; }
	.cg-door-title { max-width: 20em; font-size: 200% !important; }
	.cg-door-list { max-width: none; }
	.cg-door-amp { top: auto; bottom: 0; right: 50%; transform: translate(50%, 50%); width: 72px; height: 72px; font-size: 34px; }
}
@media (max-width: 549px) {
	.cg-door-hook { font-size: 1rem; }
	.cg-door .button.cg-door-cta { display: flex; width: 100%; font-size: 1em; }
	.cg-door-txt strong { font-size: 1.05rem; }
}

/* ---------- Menú (REQ G01): botón del assessment al final de Empresas y Personas ---------- */
.header-main .nav-dropdown .cg-mm-eval {
	display: flex; align-items: center; gap: .9rem; margin: 1.3rem 0 0 1.4rem; padding: .95rem 1.1rem !important;
	border-radius: 14px; background: #4b2e83 !important; color: #fcfcf2 !important;
	box-shadow: 0 14px 26px -16px rgba(75, 46, 131, .9); transition: transform .2s ease, background .2s ease;
}
.header-main .nav-dropdown .cg-mm-eval:hover { transform: translateY(-2px); background: #3a2367 !important; }
.header-main .nav-dropdown .cg-mm-eval--personas { background: #2eb98f !important; color: #0f3d30 !important; box-shadow: 0 14px 26px -16px rgba(30, 127, 97, .9); }
.header-main .nav-dropdown .cg-mm-eval--personas:hover { background: #27a47e !important; }
.cg-mm-eval-txt { flex: 1; }
.cg-mm-eval-txt b { display: block; font-size: 1.05rem; line-height: 1.25; }
.cg-mm-eval-txt small { display: block; font-size: .78rem; font-weight: 600; opacity: .8; }
.cg-mm-eval-ir { font-size: 1.3rem; transition: transform .2s ease; }
.cg-mm-eval:hover .cg-mm-eval-ir { transform: translateX(4px); }
.cg-mm-eval-ico { display: grid; place-items: center; flex: none; width: 2rem; height: 2rem; border-radius: 50%; background: #fff; font-weight: 800; color: #17795b; }
.cg-mm-eval .cg-mm-sem-luces { flex: none; }

/* ---------- Menú · Herramientas: 4 tarjetas con el color de su público ---------- */
.cg-mm-cards--herr { grid-template-columns: 1fr 1fr; }
.cg-mm-card--empresa .cg-mm-card-ico { color: #4b2e83; }
.cg-mm-card--persona .cg-mm-card-ico { color: #17795b; box-shadow: inset 0 0 0 1px rgba(30, 127, 97, .25) !important; }
.cg-mm-card--ambos .cg-mm-card-ico { color: #4b2e83; background: linear-gradient(90deg, #f1eef5 50%, #e6f4ed 50%) !important; }
.cg-mm-card--empresa { border-left: 3px solid #4b2e83 !important; }
.cg-mm-card--persona { border-left: 3px solid #2eb98f !important; }
.cg-mm-card--ambos { border-left: 3px solid; border-image: linear-gradient(#4b2e83 50%, #2eb98f 50%) 1 !important; }
.cg-mm-card--pronto { opacity: .62; cursor: default; }
.cg-mm-card--pronto:hover { transform: none; }

/* ---------- Pie (REQ G02): Comunidad · Legal · Contacto ---------- */
.cg-ft-menu--contacto .ux-menu-link__link { color: rgba(252, 252, 242, .85); }
.cg-ft-horario-l { display: flex; align-items: center; gap: .5rem; margin: .4rem 0 1rem; font-size: .82rem; line-height: 1.4; color: rgba(252, 252, 242, .62); }
.cg-ft-horario-l svg { flex: none; }
.cg-ft-main .cg-ft-redes-fila { margin-top: 0; }
.cg-ft-aviso { margin: 0; max-width: 46em; font-size: .78rem; line-height: 1.5; color: rgba(252, 252, 242, .58); }
.cg-ft-aviso a { color: rgba(252, 252, 242, .85); text-decoration: underline; text-underline-offset: 2px; }
.cg-ft-aviso a:hover { color: #fff; }

/* Menú de 6 entradas + botón del assessment en una sola línea (contenedor de 1080 px). */
@media (min-width: 850px) {
	.header-main .header-nav-main.nav-spacing-medium > li { margin: 0 6px; }
	/* Solo los enlaces de primer nivel van en una línea; el contenido de los mega menús se parte normal. */
	.header-main .header-nav-main { flex-wrap: nowrap; }
	.header-main .header-nav-main > li > a { white-space: nowrap; }
	.header-main .nav-dropdown { white-space: normal; }
	.header-main .header-button-1 .button { padding: 0 1.1em; }
}

/* Conócenos: sin pro bono quedan 3 tarjetas en "Más de Common Ground". */
@media (min-width: 850px) { .cg-con-mas-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
/* Inicio · logo completo en el banner (2026-10-09): marca legible en los primeros 3 segundos */
.cg-hero-marca img.cg-hero-logo { display: block; width: 100%; height: auto; max-width: 440px; margin: 0 auto; filter: drop-shadow(0 6px 24px rgba(0, 0, 0, .35)); }
@media (max-width: 849px) { .cg-hero-marca img.cg-hero-logo { max-width: 300px; } }
@media (max-width: 549px) { .cg-hero-marca img.cg-hero-logo { max-width: 220px; } }


/* ===== Inicio · banner en retícula (2026-10-09): logo y texto en un mismo eje, todo alineado, nada cortado ===== */
.cg-hero-reticula .cg-hero-grid { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); align-items: center; max-width: 1160px; margin: 0 auto; }
.cg-hero-grid-marca { display: flex; align-items: center; align-self: stretch; padding-right: clamp(2rem, 4vw, 4.5rem); border-right: 1px solid rgba(252, 252, 242, .22); }
.cg-hero-grid-marca img.cg-hero-logo { display: block; width: 100%; max-width: 360px; height: auto; margin: 0; filter: drop-shadow(0 6px 24px rgba(0, 0, 0, .35)); }
.cg-hero-grid-copy { min-width: 0; max-width: 620px; padding-left: clamp(2rem, 4vw, 4.5rem); }
.cg-hero-reticula .cg-hero-h1 { margin-top: 0; }
.cg-hero-reticula .cg-hero-h1 .cg-kicker { white-space: nowrap; letter-spacing: .14em; }
.cg-hero-reticula .cg-hero-lead { max-width: 100%; margin-bottom: 0; }
.cg-hero-ctas { display: grid; grid-template-columns: 1fr 1fr; gap: .9rem; margin: 1.6rem 0 0; }
.cg-hero-reticula .cg-hero-ctas .button.cg-hero-puerta { display: flex; justify-content: center; width: 100%; margin: 0; }
ul.cg-hero-trust { display: grid; grid-template-columns: repeat(3, 1fr); gap: .8rem; margin: 1.8rem 0 0; padding: 1rem 0 0; border-top: 1px solid rgba(252, 252, 242, .22); list-style: none; }
ul.cg-hero-trust li { display: flex; align-items: center; gap: .5rem; margin: 0; font-size: .74rem; font-weight: 800; line-height: 1.3; letter-spacing: .1em; text-transform: uppercase; color: #fcfcf2; }
ul.cg-hero-trust svg { flex: none; width: 1rem; height: 1rem; fill: none; stroke: #2eb98f; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
@media (max-width: 849px) {
	.cg-hero-reticula .cg-hero-grid { grid-template-columns: 1fr; }
	.cg-hero-grid-marca { justify-content: flex-start; padding: 0 0 1.4rem; border-right: 0; border-bottom: 1px solid rgba(252, 252, 242, .22); }
	.cg-hero-grid-marca img.cg-hero-logo { max-width: 240px; }
	.cg-hero-grid-copy { max-width: none; padding: 1.4rem 0 0; }
	.cg-hero-reticula .cg-hero-h1 .cg-kicker { white-space: normal; }
}
@media (max-width: 549px) {
	.cg-hero-grid-marca img.cg-hero-logo { max-width: 190px; }
	.cg-hero-ctas { grid-template-columns: 1fr; gap: .6rem; }
	ul.cg-hero-trust { grid-template-columns: 1fr; gap: .45rem; }
}
ul.cg-hero-trust li { letter-spacing: .06em; white-space: nowrap; }
@media (max-width: 1099px) { ul.cg-hero-trust li { white-space: normal; } }
/* Inicio · botones del banner: mismo chevron (icon-angle de Flatsome), letras blancas en ambos y un solo renglón */
.cg-hero-reticula .cg-hero-ctas .button.cg-hero-puerta { white-space: nowrap; padding-left: 1.1em; padding-right: 1.1em; }
.cg-hero-copy .button.cg-hero-puerta--persona, .cg-hero-copy .button.cg-hero-puerta--persona:hover { color: #fff; text-shadow: 0 1px 2px rgba(15, 61, 48, .35); }
.cg-hero-copy .button.cg-hero-puerta--persona i { color: #fff; }
/* Inicio en ES · EN · FR (2026-10-14): en inglés y francés los textos son más largos; nada se sale de su columna.
   - Etiqueta superior: puede ir en dos renglones equilibrados; la línea verde queda a la altura del primero.
   - Botones: mitad y mitad si los dos caben en un renglón; si no, cada uno ocupa su renglón completo (nunca se desborda el texto).
   - Credenciales: pueden ir en dos renglones («Ancien consul du Mexique») en vez de salirse de su columna.
   - Móvil: el texto del botón puede partirse dentro del botón. */
.cg-hero-reticula .cg-hero-h1 .cg-kicker { white-space: normal; text-wrap: balance; align-items: flex-start; }
.cg-hero-reticula .cg-hero-h1 .cg-kicker::before { margin-top: calc(.7em - 1px); }
.cg-hero-ctas { display: flex; flex-wrap: wrap; }
.cg-hero-reticula .cg-hero-ctas .button.cg-hero-puerta { flex: 1 1 0; min-width: max-content; width: auto; }
ul.cg-hero-trust li { white-space: normal; text-wrap: balance; }
/* Aire fijo entre el texto y el selector vertical «CDMX · ES · EN · FR» (visible desde 550 px). */
@media (min-width: 550px) { .cg-hero-reticula .cg-hero-grid-copy { padding-right: 2rem; } }
/* El banner del Inicio crece con su contenido (mínimo: alto de pantalla). Antes era de alto fijo con las capas en
   posición absoluta: si el texto no cabía (francés, celulares, laptops bajas) se cortaba arriba y la línea legal
   quedaba encima de las credenciales. Ahora el texto va centrado en el flujo y la línea legal siempre debajo. */
.section:has(.cg-hero-reticula) { height: auto !important; min-height: 100vh; min-height: 100svh; }
.banner:has(.cg-hero-reticula) { height: auto !important; min-height: 100vh; min-height: 100svh; padding-top: 0 !important; }
.banner:has(.cg-hero-reticula) .banner-inner { position: relative; min-height: inherit; }
.banner:has(.cg-hero-reticula) .banner-layers { display: flex; flex-direction: column; align-items: center; height: auto; max-height: none; min-height: 100vh; min-height: 100svh; overflow: visible; padding-top: clamp(1.25rem, 3vh, 2.5rem); }
.banner-layers > .text-box.cg-hero-copy, .banner-layers > .text-box.cg-hero-legal { position: relative !important; inset: auto !important; transform: none !important; }
.banner-layers > .text-box.cg-hero-copy { margin: auto; }
.banner-layers > .text-box.cg-hero-legal { margin: 1.4rem auto 0; }
/* Pantallas bajas de escritorio (laptop ~640 px de alto útil): menos aire vertical para que las credenciales no
   toquen la línea legal, aunque los botones vayan en dos renglones (francés). */
@media (min-width: 850px) and (max-height: 820px) {
	.cg-hero-reticula .cg-hero-h1 .cg-kicker { margin-bottom: .6em; }
	.cg-hero-reticula .cg-hero-ctas { margin-top: 1rem; gap: .6rem; }
	.cg-hero-reticula .cg-hero-ctas .button.cg-hero-puerta { min-height: 2.8em; }
	.cg-hero-reticula ul.cg-hero-trust { margin-top: 1rem; padding-top: .6rem; }
}
@media (max-width: 549px) {
	.cg-hero-reticula .cg-hero-ctas .button.cg-hero-puerta { flex-basis: 100%; min-width: 0; white-space: normal; text-align: center; line-height: 1.25; padding-top: .6em; padding-bottom: .6em; }
}
/* Celular (2026-10-28): el Inicio no tiene encabezado, así que el selector vertical (marcado hide-for-small en el
   UX Builder) se muestra en horizontal arriba del hero, con zonas táctiles grandes. */
@media (max-width: 549px) {
	.banner-layers > .text-box.cg-hero-vertical.hide-for-small:has(.cg-idiomas) {
		display: block !important; order: -1; position: relative !important; inset: auto !important; transform: none !important;
		width: auto !important; margin: 0 auto .4rem; padding: 0;
	}
	.cg-hero-vertical .text-inner:has(.cg-idiomas) { writing-mode: horizontal-tb; transform: none; font-size: 12px; letter-spacing: .2em; }
	.cg-hero-vertical .text-inner:has(.cg-idiomas)::after { display: none; }
	.cg-hero-vertical .cg-idiomas { gap: .35em; }
	.cg-hero-vertical .cg-idiomas-l { min-width: 44px; padding: .95em .5em; text-align: center; }
}

/* Enlaces de texto a WhatsApp (2026-10-09, Edgar): logo de WhatsApp del color del texto, en todo el sitio.
   Los botones ya llevan su ícono (cg-cta); se excluyen botones, tarjetas de canal y enlaces con su propio ícono. */
p a[href*="wa.me/"]:not(.button):not(.cg-canal-link)::after,
li a[href*="wa.me/"]:not(.button):not([class*="ux-menu"]):not([class*="quiz"])::after {
  content: ""; display: inline-block; width: 1.05em; height: 1.05em; margin-left: .3em; vertical-align: -.17em;
  background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12.04 2a9.9 9.9 0 0 0-8.5 15l-1.4 5.1 5.24-1.37A9.9 9.9 0 1 0 12.04 2zm0 18.1a8.2 8.2 0 0 1-4.18-1.15l-.3-.18-3.1.82.82-3.03-.2-.31a8.22 8.22 0 1 1 6.96 3.85zm4.5-6.15c-.25-.12-1.46-.72-1.69-.8-.23-.09-.39-.13-.56.12-.16.25-.64.8-.78.96-.15.17-.29.19-.54.06a6.7 6.7 0 0 1-3.32-2.9c-.25-.43.25-.4.72-1.33.08-.16.04-.3-.02-.43-.06-.12-.56-1.34-.76-1.84-.2-.48-.4-.41-.56-.42h-.47a.9.9 0 0 0-.66.31 2.77 2.77 0 0 0-.86 2.06 4.8 4.8 0 0 0 1 2.56 11 11 0 0 0 4.22 3.73c1.57.68 2.19.74 2.97.62.48-.07 1.46-.6 1.67-1.18.2-.58.2-1.07.15-1.18-.07-.1-.23-.16-.48-.29z'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12.04 2a9.9 9.9 0 0 0-8.5 15l-1.4 5.1 5.24-1.37A9.9 9.9 0 1 0 12.04 2zm0 18.1a8.2 8.2 0 0 1-4.18-1.15l-.3-.18-3.1.82.82-3.03-.2-.31a8.22 8.22 0 1 1 6.96 3.85zm4.5-6.15c-.25-.12-1.46-.72-1.69-.8-.23-.09-.39-.13-.56.12-.16.25-.64.8-.78.96-.15.17-.29.19-.54.06a6.7 6.7 0 0 1-3.32-2.9c-.25-.43.25-.4.72-1.33.08-.16.04-.3-.02-.43-.06-.12-.56-1.34-.76-1.84-.2-.48-.4-.41-.56-.42h-.47a.9.9 0 0 0-.66.31 2.77 2.77 0 0 0-.86 2.06 4.8 4.8 0 0 0 1 2.56 11 11 0 0 0 4.22 3.73c1.57.68 2.19.74 2.97.62.48-.07 1.46-.6 1.67-1.18.2-.58.2-1.07.15-1.18-.07-.1-.23-.16-.48-.29z'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Inicio sin pie de página: línea legal discreta al fondo del hero (2026-10-09). */
.cg-hero-legal { padding-bottom: 14px; }
.cg-hero-legal p.cg-legal-linea { display: flex; flex-wrap: wrap; justify-content: center; gap: .15rem .5rem; margin: 0; font-size: 11px !important; line-height: 1.5; letter-spacing: .04em; color: rgba(252, 252, 242, .55); }
.cg-hero-legal a { color: rgba(252, 252, 242, .7); text-decoration: underline; text-underline-offset: 2px; }
.cg-hero-legal a:hover { color: #fcfcf2; }
/* Logo vertical (blanco + verde) en el hero del Inicio (2026-10-09) */
.cg-hero-grid-marca:has(.cg-hero-logo--vertical), .cg-hero-grid-marca:has(.cg-logo-vivo) { justify-content: center; }
.cg-hero-grid-marca img.cg-hero-logo--vertical { max-width: 270px; }
@media (max-width: 849px) {
	.cg-hero-grid-marca:has(.cg-hero-logo--vertical), .cg-hero-grid-marca:has(.cg-logo-vivo) { justify-content: center; }
	.cg-hero-grid-marca img.cg-hero-logo--vertical { max-width: 130px; }
}
@media (max-width: 549px) { .cg-hero-grid-marca img.cg-hero-logo--vertical { max-width: 104px; } }
/* Logo vivo del Inicio: se arma por capas — la «g» gira y cae en su lugar, el arco verde se abre desde el centro
   y «common» / «ground» se escriben de izquierda a derecha (2026-10-09). */
.cg-logo-vivo { display: grid; width: 100%; max-width: 270px; filter: drop-shadow(0 6px 24px rgba(0, 0, 0, .35)); }
.cg-logo-vivo .cg-lv { grid-area: 1 / 1; display: block; width: 100%; height: auto; margin: 0; }
.cg-lv--g { transform-origin: 53.7% 23.8%; animation: cg-lv-g 1s cubic-bezier(.3, 1.45, .5, 1) .35s both; }
.cg-lv--arco { animation: cg-lv-arco .7s cubic-bezier(.2, .9, .3, 1) 1s both; }
.cg-lv--common { animation: cg-lv-texto .6s cubic-bezier(.4, 0, .2, 1) 1.45s both; }
.cg-lv--ground { animation: cg-lv-texto .6s cubic-bezier(.4, 0, .2, 1) 1.75s both; }
@keyframes cg-lv-g { from { opacity: 0; transform: translateY(-12%) scale(.45) rotate(-140deg); } 60% { opacity: 1; } to { opacity: 1; transform: none; } }
@keyframes cg-lv-arco { from { opacity: 0; clip-path: inset(0 50% 0 50%); transform: translateY(4%); } to { opacity: 1; clip-path: inset(0 0 0 0); transform: none; } }
@keyframes cg-lv-texto { from { clip-path: inset(0 100% 0 0); transform: translateX(-2%); } to { clip-path: inset(0 0 0 0); transform: none; } }
@media (max-width: 849px) { .cg-hero-grid-marca .cg-logo-vivo { max-width: 130px; } }
@media (max-width: 549px) { .cg-hero-grid-marca .cg-logo-vivo { max-width: 104px; } }
/* Lema «Common Ground · Uncommon vision» bajo el logo: las letras aparecen una tras otra al terminar el armado. */
.cg-logo-vivo p.cg-lv-lema { grid-area: 2 / 1; justify-self: center; width: max-content; margin: 1.1rem 0 0; font-size: 11px !important; font-weight: 700; line-height: 1.4; letter-spacing: .24em; text-transform: uppercase; white-space: nowrap; color: rgba(252, 252, 242, .88); }
.cg-lv-lema .cg-lv-pal { display: inline-block; white-space: nowrap; }
.cg-lv-lema span span, .cg-lv-lema .cg-lv-sep { display: inline-block; animation: cg-lv-letra .45s cubic-bezier(.2, .9, .3, 1) both; animation-delay: calc(2.25s + var(--i) * 32ms); }
.cg-lv-lema .cg-lv-sep { margin: 0 .2em; color: #2eb98f; }
@keyframes cg-lv-letra { from { opacity: 0; transform: translateY(70%); filter: blur(3px); } to { opacity: 1; transform: none; filter: none; } }
[data-animate]:not([data-animated="true"]) .cg-lv-lema span { animation-play-state: paused; }
/* Solo «Uncommon vision», en morado de marca aclarado para que se lea sobre el video oscuro. */
.cg-logo-vivo p.cg-lv-lema--morado { color: #a68be0; letter-spacing: .3em; }
@media (max-width: 849px) { .cg-logo-vivo p.cg-lv-lema { justify-self: center; margin-top: .7rem; font-size: 10px !important; letter-spacing: .2em; } }
@media (prefers-reduced-motion: reduce) { .cg-lv-lema span { animation: none; } }
/* El lema quedó como <h6> en el contenido (no <p>) y se iba a la izquierda: centrado bajo el logo, también en móvil (2026-10-28). */
.cg-logo-vivo .cg-lv-lema { grid-area: 2 / 1; justify-self: center; width: max-content; max-width: none; text-align: center; }
.cg-logo-vivo .cg-lv-lema--morado { color: #a68be0; }
/* Espera a que Flatsome muestre el bloque (fadeInUp) para que el armado se vea completo. */
[data-animate]:not([data-animated="true"]) .cg-logo-vivo .cg-lv { animation-play-state: paused; }
@media (prefers-reduced-motion: reduce) { .cg-logo-vivo .cg-lv { animation: none; } }

/* ---------- Folios estilo numerador: rojo, negritas, letra de máquina (inc/cg-folio.php, 2026-10-09) ---------- */
.cg-folio { display: inline; white-space: nowrap; font-weight: 700; color: #c1121f; }
.cg-folio-k { font-family: inherit; font-weight: 700; color: inherit; }
b.cg-folio-n, .cg-folio b.cg-folio-n { font-family: "Courier New", Courier, "Nimbus Mono PS", "Liberation Mono", monospace; font-weight: 700; font-variant-numeric: tabular-nums; letter-spacing: .06em; color: #c1121f; text-shadow: 0 0 .4px rgba(193, 18, 31, .6); }
/* Sobre fondos oscuros (morado, negro) el rojo se aclara para que se lea. */
.dark .cg-folio, .dark b.cg-folio-n, .cg-s2-cta .cg-folio, .cg-s2-cta b.cg-folio-n, .cgs-lado .cg-folio, .cgs-lado b.cg-folio-n { color: #ff8a8a; }
@media print { .cg-folio, b.cg-folio-n { color: #c1121f !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; } }

/* =====================================================================
   Landings del plan v2 (.cg-lz-*): Empresas, Arranque, Cumplimiento,
   Personas, Retiro, Trabajo y familia. Morado = empresas, verde = personas.
   Fuente: docs/lanzamiento-v2/landings-estilos.css (se inserta con css.py).
   ===================================================================== */
.cg-lz [id] { scroll-margin-top: 110px; }
.cg-lz .cg-display em { color: var(--fs-color-secondary); }
.cg-lz-n { font-size: .72rem; font-weight: 800; letter-spacing: .16em; color: var(--fs-color-secondary); opacity: .75; }

/* Botones del assessment */
.cg-lz .button.cg-lz-btn, .cg-lz .cg-lz-btn.button {
	display: inline-flex; align-items: center; justify-content: center; gap: .35em;
	min-height: 3.2em; margin: 0 .6em .6em 0; padding: 0 1.8em; font-size: 1.02em; font-weight: 700; white-space: nowrap;
}
.cg-lz .cg-lz-btn--hero { min-height: 3.5em; padding: 0 2.1em; font-size: 1.1em; }
.cg-lz .cg-lz-btn--verde { background: #2eb98f; border-color: #2eb98f; color: #0f3d30; }
.cg-lz .cg-lz-btn--verde:hover { background: #27a47e; color: #0f3d30; }
.cg-lz .cg-lz-btn--blanco { background: #fff; color: #0f3d30; }
@media (max-width: 549px) {
	.cg-lz .button.cg-lz-btn, .cg-lz .cg-lz-btn.button { display: flex; width: 100%; margin-right: 0; white-space: normal; text-align: center; line-height: 1.25; }
}

/* ---------- 1 · Gancho ---------- */
.cg-lz-hero .cg-lz-h1 { line-height: 1.04; letter-spacing: -.025em; }
.cg-lz-hero--empresa .cg-eyebrow { color: var(--fs-color-primary); }
.cg-lz-hero--empresa .cg-display { color: #fcfcf2; }
.cg-lz-hero--empresa .cg-display em { color: var(--fs-color-primary); }
.cg-lz-hero--persona .cg-display { color: #0f3d30; }
.cg-lz-hero--persona .cg-display em { color: #17795b; }
.cg-lz-hero--persona .cg-eyebrow { color: #17795b; }
.cg-lz-lead { max-width: 33em; margin: .9em 0 1.5em; font-size: 1.15rem; line-height: 1.6; }
.cg-lz-hero--empresa .cg-lz-lead { color: rgba(252, 252, 242, .88); }
.cg-lz-hero--persona .cg-lz-lead { color: #234b40; }
p.cg-lz-hero-meta { display: flex; align-items: center; gap: .6em; margin: .2em 0 0; font-size: .82rem; font-weight: 700; letter-spacing: .04em; opacity: .85; }
p.cg-lz-hero-meta::before { content: ""; flex: none; width: .55em; height: .55em; border-radius: 50%; background: var(--fs-color-primary); box-shadow: 0 0 0 4px rgba(46, 185, 143, .25); }
.cg-lz-hero--persona p.cg-lz-hero-meta { color: #0f3d30; }
p.cg-lz-hero-alt { margin: 1.1em 0 0; font-size: .9rem; opacity: .85; }
.cg-lz-hero-alt a, .cg-lz-defensa .cg-lz-hero-alt a { font-weight: 700; text-decoration: underline; text-underline-offset: 3px; color: inherit; }
.cg-lz-nota { margin: .7em 0 0; font-size: .74rem; text-align: right; opacity: .7; }
.cg-lz-hero--empresa .cg-lz-nota { color: #fcfcf2; }
@media (max-width: 849px) {
	.cg-lz-hero-vis { margin-top: 1.4rem; }
	.cg-lz-hero .cg-lz-res, .cg-lz-hero .cg-lz-ruta, .cg-lz-hero .cg-tablero { margin-left: 0; transform: none; }
	.cg-lz-nota { text-align: left; }
}
@media (max-width: 549px) {
	.cg-lz-hero .cg-lz-h1 { font-size: 185% !important; }
	.cg-lz-lead { font-size: 1.02rem; }
}

/* Tarjeta de resultado del Semáforo (ilustrativa) */
.cg-lz-res, .cg-lz-ruta {
	max-width: 430px; margin: 0 0 0 auto; overflow: hidden; border-radius: 18px; background: #fcfcf2; color: #262626;
	box-shadow: 0 30px 70px rgba(20, 10, 40, .4); transform: rotate(1.5deg); transition: transform .5s cubic-bezier(.2, .7, .2, 1);
}
.cg-lz-res:hover, .cg-lz-ruta:hover { transform: rotate(0) translateY(-4px); }
.cg-lz-res-head { display: flex; justify-content: space-between; align-items: baseline; gap: 1em; padding: 1em 1.3em; border-bottom: 1px solid rgba(38, 38, 38, .1); }
.cg-lz-res-head span { font-size: .68rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: #777; }
.cg-lz-res-head b { font-size: .95rem; }
.cg-lz-luces { display: grid; grid-template-columns: repeat(3, 1fr); gap: .5em; padding: 1em 1.3em .4em; }
.cg-lz-luz { position: relative; padding: .55em .4em .55em 1.9em; border-radius: 10px; background: #efeee6; font-size: .78rem; font-weight: 700; color: #999; }
.cg-lz-luz::before { content: ""; position: absolute; left: .7em; top: 50%; width: .75em; height: .75em; margin-top: -.375em; border-radius: 50%; background: #cfcdc3; }
.cg-lz-luz.is-on { color: #262626; background: #fff; box-shadow: 0 6px 16px -8px rgba(38, 38, 38, .35); }
.cg-lz-luz--critico.is-on::before { background: #b3261e; box-shadow: 0 0 0 4px rgba(179, 38, 30, .18); }
.cg-lz-luz--moderado.is-on::before { background: #d99a1e; box-shadow: 0 0 0 4px rgba(217, 154, 30, .2); }
.cg-lz-luz--optimo.is-on::before { background: #1e7f61; box-shadow: 0 0 0 4px rgba(30, 127, 97, .18); }
.cg-lz-res-k { margin: .8em 1.3em .3em; font-size: .66rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: #777; }
.cg-lz-res-h { margin: 0 1.3em; padding: 0; list-style: none; counter-reset: h; }
.cg-lz-res-h li { position: relative; margin: 0; padding: .6em 0 .6em 2em; border-top: 1px solid rgba(38, 38, 38, .08); counter-increment: h; }
.cg-lz-res-h li::before { content: counter(h); position: absolute; left: 0; top: .65em; display: grid; place-items: center; width: 1.4em; height: 1.4em; border-radius: 50%; background: #f1eef5; font-size: .72rem; font-weight: 800; color: #4b2e83; }
.cg-lz-res-h b { display: block; font-size: .88rem; line-height: 1.3; }
.cg-lz-res-h span { display: block; font-size: .78rem; line-height: 1.4; color: #666; }
.cg-lz-res-paso { display: flex; flex-direction: column; gap: .15em; margin-top: .8em; padding: .9em 1.3em; background: #4b2e83; color: #fcfcf2; }
.cg-lz-res-paso span { font-size: .64rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; opacity: .7; }
.cg-lz-res-paso b { font-size: .95rem; }
.cg-lz-hero--persona .cg-lz-res-paso { background: #2eb98f; color: #0f3d30; }
.cg-lz-hero--persona .cg-lz-res-h li::before { background: #e6f7f0; color: #17795b; }
/* Ruta (arranque) */
.cg-lz-ruta-l { margin: 0; padding: .6em 1.3em .4em; list-style: none; }
.cg-lz-ruta-l li { position: relative; display: flex; gap: .9em; margin: 0; padding: .55em 0; }
.cg-lz-ruta-l li:not(:last-child)::after { content: ""; position: absolute; left: .55em; top: 1.9em; bottom: -.4em; width: 2px; background: #e4e1d6; }
.cg-lz-ruta-l i { position: relative; z-index: 1; flex: none; width: 1.15em; height: 1.15em; margin-top: .15em; border-radius: 50%; border: 2px solid #cfcdc3; background: #fff; }
.cg-lz-ruta-l li.is-ok i { border-color: #1e7f61; background: #1e7f61; box-shadow: inset 0 0 0 3px #fff; }
.cg-lz-ruta-l li.is-run i { border-color: #4b2e83; animation: cg-lz-pulso 1.8s infinite; }
.cg-lz-ruta-l b { display: block; font-size: .9rem; line-height: 1.3; }
.cg-lz-ruta-l small { display: block; font-size: .76rem; color: #666; }
.cg-lz-ruta-l li.is-todo b { color: #888; }
.cg-lz-hero--persona .cg-lz-ruta-l li.is-run i { border-color: #2eb98f; }
@keyframes cg-lz-pulso { 0%, 100% { box-shadow: 0 0 0 0 rgba(75, 46, 131, .45); } 50% { box-shadow: 0 0 0 6px rgba(75, 46, 131, 0); } }
@media (prefers-reduced-motion: reduce) { .cg-lz-ruta-l li.is-run i { animation: none; } .cg-lz-res, .cg-lz-ruta { transition: none; } }

/* ---------- 2 · Propuesta + lead magnet ---------- */
.cg-lz-recibe { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.2rem; }
.cg-lz-recibe-i { padding: 1.6rem 1.5rem 1.4rem; border-radius: 16px; background: #fff; border-top: 4px solid #4b2e83; box-shadow: 0 14px 30px -22px rgba(38, 38, 38, .45); }
.cg-lz-recibe--persona .cg-lz-recibe-i { border-top-color: #2eb98f; }
.cg-lz-recibe--persona .cg-lz-n { color: #17795b; }
.cg-lz-recibe-i b { display: block; margin: .5em 0 .35em; font-size: 1.3rem; line-height: 1.2; color: #262626; }
.cg-lz-recibe-i p { margin: 0; font-size: .95rem; line-height: 1.55; color: #555; }
.cg-lz-recibe-pie, .cg-lz-riesgos-pie { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem 2rem; margin-top: 1.8rem; padding-top: 1.4rem; border-top: 1px solid rgba(38, 38, 38, .12); }
.cg-lz-recibe-pie p, .cg-lz-riesgos-pie > p { flex: 1 1 26em; margin: 0; font-size: .98rem; line-height: 1.55; color: #444; }
.cg-lz-riesgos-pie .cg-pullquote { font-size: 1.15rem; }
.cg-lz-recibe-pie .button, .cg-lz-riesgos-pie .button { margin-bottom: 0; }
@media (max-width: 849px) { .cg-lz-recibe { grid-template-columns: 1fr; } }

/* ---------- 3 · Credibilidad ---------- */
.cg-lz-credibilidad .cg-credencial-card { margin-left: 0; }
.cg-lz-cred-p { max-width: 36em; margin: .9em 0 1.4em; font-size: 1.02rem; line-height: 1.6; color: #444; }
.cg-lz-cred { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1.8rem; margin-bottom: 1rem; }
.cg-lz-cred-i { padding: .95em 0; border-top: 1px solid rgba(38, 38, 38, .14); }
.cg-lz-cred-i b { display: flex; align-items: center; gap: .5em; margin-bottom: .2em; font-size: 1rem; color: #262626; }
.cg-lz-cred-i b::before { content: ""; flex: none; width: .5em; height: .5em; border-radius: 50%; background: #4b2e83; }
.cg-lz-cred--persona .cg-lz-cred-i b::before { background: #2eb98f; }
.cg-lz-cred-i span { font-size: .9rem; line-height: 1.5; color: #555; }
@media (max-width: 849px) { .cg-lz-credibilidad .cg-credencial-card { margin: 0 auto 2rem; } }
@media (max-width: 549px) { .cg-lz-cred { grid-template-columns: 1fr; } }

/* ---------- Tu caso: puertas a las landings de tema ---------- */
.cg-lz-casos { display: grid; gap: 1.2rem; }
.cg-lz-casos--2 { grid-template-columns: 1fr 1fr; }
.cg-lz-casos--3 { grid-template-columns: repeat(3, 1fr); }
.cg-lz-caso { position: relative; display: flex; flex-direction: column; padding: 2rem 1.8rem 1.6rem; border-radius: 20px; background: #4b2e83; color: #fcfcf2; transition: transform .3s ease, box-shadow .3s ease; }
.cg-lz-caso:hover { color: #fcfcf2; transform: translateY(-4px); box-shadow: 0 24px 40px -24px rgba(38, 38, 38, .6); }
.cg-lz-caso--empresa-2 { background: #2d1b52; }
.cg-lz-caso--persona, .cg-lz-caso--persona:hover { background: #2eb98f; color: #0f3d30; }
.cg-lz-caso--persona-2, .cg-lz-caso--persona-2:hover { background: #e6f7f0; color: #0f3d30; box-shadow: inset 0 0 0 1px rgba(30, 127, 97, .2); }
.cg-lz-caso-tag { font-size: .72rem; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; opacity: .8; }
.cg-lz-caso--empresa .cg-lz-caso-tag, .cg-lz-caso--empresa-2 .cg-lz-caso-tag { color: var(--fs-color-primary); opacity: 1; }
.cg-lz-caso-t { margin: .6em 0 .4em; font-size: 1.55rem; line-height: 1.15; letter-spacing: -.01em; }
.cg-lz-caso-d { font-size: 1rem; line-height: 1.5; opacity: .9; }
.cg-lz-caso ul { flex: 1; margin: 1.2em 0 1.4em; padding: 0; list-style: none; }
.cg-lz-caso li { position: relative; margin: 0; padding: .45em 0 .45em 1.5em; border-top: 1px solid rgba(255, 255, 255, .16); font-size: .95rem; line-height: 1.4; }
.cg-lz-caso--persona li, .cg-lz-caso--persona-2 li { border-top-color: rgba(15, 61, 48, .15); }
.cg-lz-caso li::before { content: "✓"; position: absolute; left: 0; font-weight: 800; color: var(--fs-color-primary); }
.cg-lz-caso--persona li::before, .cg-lz-caso--persona-2 li::before { color: #0f3d30; }
.cg-lz-caso-ir { display: inline-flex; align-items: center; gap: .5em; font-weight: 800; }
.cg-lz-caso-ir i { font-style: normal; transition: transform .25s ease; }
.cg-lz-caso:hover .cg-lz-caso-ir i { transform: translateX(5px); }
@media (max-width: 849px) { .cg-lz-casos--2, .cg-lz-casos--3 { grid-template-columns: 1fr; } }
@media (max-width: 549px) { .cg-lz-caso { padding: 1.6rem 1.3rem 1.3rem; } .cg-lz-caso-t { font-size: 1.3rem; } }

/* ---------- Riesgos ---------- */
.cg-lz-riesgos { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; }
.cg-lz-riesgo { position: relative; padding: 1.5rem 1.3rem 1.3rem; border-radius: 14px; background: #fff; box-shadow: inset 0 0 0 1px rgba(38, 38, 38, .08); }
.cg-lz-riesgo-ico { display: grid; place-items: center; width: 2.6rem; height: 2.6rem; margin-bottom: .9rem; border-radius: 50%; background: #fbeae8; font-weight: 900; color: #b3261e; }
.cg-lz-riesgo-ico svg { width: 1.25rem; height: 1.25rem; }
.cg-lz-riesgo b { display: block; margin-bottom: .4em; font-size: 1.05rem; line-height: 1.3; color: #262626; }
.cg-lz-riesgo p { margin: 0; font-size: .9rem; line-height: 1.55; color: #555; }
p.cg-lz-riesgo-ley { margin-top: .7em; font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #4b2e83; }
@media (max-width: 1099px) { .cg-lz-riesgos { grid-template-columns: 1fr 1fr; } }
@media (max-width: 549px) { .cg-lz-riesgos { grid-template-columns: 1fr; } }

/* ---------- Cómo trabajamos ---------- */
.cg-lz-pasos { position: relative; display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.4rem; margin: 0; padding: 0; list-style: none; }
.cg-lz-pasos::before { content: ""; position: absolute; top: 1.4rem; left: 1.4rem; right: 1.4rem; height: 2px; background: linear-gradient(90deg, #4b2e83, rgba(75, 46, 131, .15)); }
.cg-lz-pasos--persona::before { background: linear-gradient(90deg, #2eb98f, rgba(46, 185, 143, .15)); }
.cg-lz-pasos li { position: relative; margin: 0; }
.cg-lz-paso-n { position: relative; display: grid; place-items: center; width: 2.8rem; height: 2.8rem; margin-bottom: 1rem; border-radius: 50%; background: #4b2e83; font-size: .85rem; font-weight: 800; color: #fcfcf2; box-shadow: 0 0 0 6px #fff; }
.cg-lz-pasos--persona .cg-lz-paso-n { background: #2eb98f; color: #0f3d30; }
.cg-lz-pasos b { display: block; margin-bottom: .3em; font-size: 1.15rem; color: #262626; }
.cg-lz-paso-d { display: block; font-size: .92rem; line-height: 1.55; color: #555; }
.cg-lz-paso-t { display: inline-block; margin-top: .7em; padding: .2em .7em; border-radius: 99px; background: #f1eef5; font-size: .74rem; font-weight: 700; color: #4b2e83; }
.cg-lz-pasos--persona .cg-lz-paso-t { background: #e6f7f0; color: #17795b; }
@media (max-width: 849px) {
	.cg-lz-pasos { grid-template-columns: 1fr; gap: 0; }
	.cg-lz-pasos::before { top: 1.4rem; bottom: 1.4rem; left: 1.4rem; right: auto; width: 2px; height: auto; background: linear-gradient(180deg, #4b2e83, rgba(75, 46, 131, .15)); }
	.cg-lz-pasos--persona::before { background: linear-gradient(180deg, #2eb98f, rgba(46, 185, 143, .15)); }
	.cg-lz-pasos li { padding: 0 0 1.6rem 4rem; }
	.cg-lz-paso-n { position: absolute; left: 0; top: 0; margin: 0; }
}

/* ---------- Servicios con ancla (arranque, gestión, herramientas) ---------- */
.cg-lz-servicios { display: grid; grid-template-columns: repeat(6, 1fr); gap: 1.1rem; }
.cg-lz-servicios .cg-lz-serv { grid-column: span 2; }
.cg-lz-servicios .cg-lz-serv:nth-child(4), .cg-lz-servicios .cg-lz-serv:nth-child(5) { grid-column: span 3; }
.cg-lz-servicios--4 { grid-template-columns: 1fr 1fr; }
.cg-lz-servicios--4 .cg-lz-serv, .cg-lz-servicios--4 .cg-lz-serv:nth-child(4), .cg-lz-servicios--4 .cg-lz-serv:nth-child(5) { grid-column: auto; }
.cg-lz-serv { padding: 1.6rem 1.5rem 1.3rem; border-radius: 16px; background: #fcfcf2; box-shadow: inset 0 0 0 1px rgba(75, 46, 131, .1); transition: box-shadow .3s ease; }
.cg-lz-serv:target { box-shadow: inset 0 0 0 2px #4b2e83, 0 18px 40px -26px rgba(75, 46, 131, .7); }
.cg-lz-serv h3 { margin: .45em 0 .3em; font-size: 1.3rem; line-height: 1.2; color: #262626; }
p.cg-lz-serv-g { margin: 0 0 .6em; font-weight: 700; color: #4b2e83; }
.cg-lz-serv p { margin: 0 0 .8em; font-size: .94rem; line-height: 1.55; color: #555; }
.cg-lz-serv ul { margin: 0; padding: 0; list-style: none; }
.cg-lz-serv li { position: relative; margin: 0; padding: .4em 0 .4em 1.4em; border-top: 1px solid rgba(38, 38, 38, .08); font-size: .9rem; line-height: 1.4; color: #333; }
.cg-lz-serv li::before { content: "→"; position: absolute; left: 0; color: #4b2e83; }
p.cg-lz-serv-ley { margin: .8em 0 0; font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #777; }
.cg-lz-sec--lila .cg-lz-serv { background: #fff; }
@media (max-width: 849px) {
	.cg-lz-servicios, .cg-lz-servicios--4 { grid-template-columns: 1fr; }
	.cg-lz-servicios .cg-lz-serv, .cg-lz-servicios .cg-lz-serv:nth-child(4), .cg-lz-servicios .cg-lz-serv:nth-child(5) { grid-column: auto; }
}
.cg-lz-aviso { display: flex; align-items: center; gap: 1rem; margin-top: 1.4rem; padding: 1.1rem 1.4rem; border-radius: 14px; background: linear-gradient(90deg, #f1eef5, #e6f7f0); color: #262626; }
.cg-lz-aviso:hover { color: #262626; }
.cg-lz-aviso-ico { flex: none; font-size: 1.4rem; }
.cg-lz-aviso b { display: block; font-size: 1rem; }
.cg-lz-aviso > span:nth-child(2) { font-size: .92rem; line-height: 1.45; }
.cg-lz-aviso i { margin-left: auto; font-style: normal; font-size: 1.3rem; color: #4b2e83; }

/* ---------- Ruta con interruptor (pestañas) ---------- */
.cg-lz-tabs .nav { margin-bottom: 1.6rem; }
.cg-lz-tabs .nav > li > a { padding: .7em 1.6em; border-radius: 99px; font-size: 1rem; font-weight: 700; text-transform: none; letter-spacing: 0; }
.cg-lz-tabs .nav-pills > li.active > a { background: #4b2e83; color: #fff; }
.cg-lz-ruta-tab { max-width: 1040px; margin: 0 auto; }
p.cg-lz-ruta-q { margin: 0 0 1.4rem; padding: 1rem 1.2rem; border-left: 4px solid #4b2e83; border-radius: 0 12px 12px 0; background: #fff; font-size: 1rem; line-height: 1.55; }
.cg-lz-ruta-q a { font-weight: 700; color: #4b2e83; text-decoration: underline; }
/* Ruta paso a paso · línea de tiempo editorial (filete con nodos, columnas con filete, plazo como pie alineado) */
.cg-lz-tl { position: relative; display: grid; grid-template-columns: repeat(5, 1fr); margin: 0; padding: 0; list-style: none; counter-reset: t; border-top: 2px solid #262626; }
.cg-lz-tl li { position: relative; display: grid; grid-row: span 4; grid-template-rows: subgrid; row-gap: 0; margin: 0; padding: 1.5rem 1.2rem 1.2rem; border-right: 1px solid rgba(38, 38, 38, .14); counter-increment: t; }
.cg-lz-tl li:last-child { border-right: 0; }
.cg-lz-tl li::after { content: ""; position: absolute; top: -7px; left: 1.2rem; width: 12px; height: 12px; border-radius: 50%; background: #4b2e83; box-shadow: 0 0 0 4px #f1eef5; }
.cg-lz-tl li:first-child::after { background: #2eb98f; }
.cg-lz-tl li::before { content: counter(t, decimal-leading-zero); margin-bottom: .7rem; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: .78rem; font-weight: 700; color: #8a8a8a; }
.cg-lz-tl b { display: block; margin-bottom: .4em; font-size: 1.1rem; line-height: 1.2; letter-spacing: -.01em; color: #262626; }
.cg-lz-tl span { display: block; margin-bottom: 1rem; font-size: .88rem; line-height: 1.5; color: #555; }
.cg-lz-tl small { display: block; align-self: start; padding-top: .7rem; border-top: 1px solid rgba(38, 38, 38, .16); font-size: .82rem; font-weight: 800; line-height: 1.35; color: #4b2e83; }
.cg-lz-tl small::before { content: ""; display: inline-block; width: 1.1em; height: 2px; margin: 0 .5em .25em 0; background: currentColor; vertical-align: middle; }
@media (max-width: 1099px) {
	.cg-lz-tl { grid-template-columns: 1fr; margin-left: 6px; border-top: 0; border-left: 2px solid #262626; }
	.cg-lz-tl li { display: block; grid-row: auto; padding: 1.1rem 0 1.2rem 1.6rem; border-right: 0; border-bottom: 1px solid rgba(38, 38, 38, .12); }
	.cg-lz-tl li:last-child { border-bottom: 0; }
	.cg-lz-tl li::after { top: 1.35rem; left: -7px; }
	.cg-lz-tl li::before { display: block; margin-bottom: .3rem; }
	.cg-lz-tl span { margin-bottom: .7rem; }
	.cg-lz-tl small { display: inline-block; }
}
p.cg-lz-ruta-nota { margin: 1.2rem 0 0; font-size: .92rem; line-height: 1.6; color: #444; }
.cg-lz-familia { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem 2.5rem; margin-top: 2.4rem; padding: 2rem; border-radius: 20px; background: #fff; }
.cg-lz-familia h3 { margin: .2em 0 .5em; font-size: 1.5rem; line-height: 1.2; color: #262626; }
.cg-lz-familia p { margin: 0; font-size: .96rem; line-height: 1.6; color: #555; }
.cg-lz-check { margin: 0; padding: 0; list-style: none; }
.cg-lz-check li { margin: 0; padding: .6em 0; border-top: 1px solid rgba(38, 38, 38, .1); font-size: .92rem; line-height: 1.5; color: #444; }
.cg-lz-check b { display: block; color: #262626; }
@media (max-width: 849px) { .cg-lz-familia { grid-template-columns: 1fr; padding: 1.4rem; } }

/* ---------- Soft landing: 4 etapas ---------- */
.cg-lz-etapas { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; }
.cg-lz-etapa { display: flex; flex-direction: column; padding: 1.4rem 1.3rem; border-radius: 16px; background: #fcfcf2; box-shadow: inset 0 0 0 1px rgba(75, 46, 131, .12); }
b.cg-lz-etapa-t { margin: .4em 0 .3em; font-size: 1.2rem; color: #262626; }
p.cg-lz-etapa-q { margin: 0 0 .9em; font-size: .95rem; font-style: italic; color: #4b2e83; }
.cg-lz-etapa p { font-size: .86rem; line-height: 1.5; color: #555; }
.cg-lz-etapa p span { display: block; margin-bottom: .2em; font-size: .64rem; font-weight: 800; font-style: normal; letter-spacing: .16em; text-transform: uppercase; color: #999; }
p.cg-lz-etapa-r { margin: 0 0 .8em; padding-top: .8em; border-top: 1px dashed rgba(179, 38, 30, .35); }
p.cg-lz-etapa-r span { color: #b3261e; }
p.cg-lz-etapa-cg { margin: auto 0 0; padding-top: .8em; border-top: 1px dashed rgba(30, 127, 97, .35); }
p.cg-lz-etapa-cg span { color: #1e7f61; }
.cg-lz-etapa a { font-weight: 700; color: #4b2e83; }
p.cg-lz-limite { margin: 1.6rem 0 0; padding: 1.1rem 1.3rem; border-radius: 12px; background: #f1eef5; font-size: .92rem; line-height: 1.6; color: #333; }
.cg-lz-limite a { font-weight: 700; color: #4b2e83; text-decoration: underline; }
@media (max-width: 1099px) { .cg-lz-etapas { grid-template-columns: 1fr 1fr; } }
@media (max-width: 549px) { .cg-lz-etapas { grid-template-columns: 1fr; } }

/* ---------- Qué incluye (sin precios hasta validar la lista) ---------- */
/* Qué incluye · índice editorial: columnas con filete, número y plazo como pie (sin píldoras) */
.cg-lz-incluye { display: grid; grid-template-columns: repeat(5, 1fr); counter-reset: cg-inc; border-top: 2px solid #262626; }
.cg-lz-incluye-i { counter-increment: cg-inc; display: grid; grid-row: span 4; grid-template-rows: subgrid; row-gap: 0; padding: 1.3rem 1.3rem 1.4rem; border-right: 1px solid rgba(38, 38, 38, .14); border-bottom: 1px solid rgba(38, 38, 38, .14); }
.cg-lz-incluye-i::before { content: counter(cg-inc, decimal-leading-zero); margin-bottom: 1.1rem; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: .78rem; font-weight: 700; color: #8a8a8a; }
.cg-lz-incluye-i:last-child { border-right: 0; border-bottom: 0; border-radius: 0 0 16px 16px; background: #4b2e83; color: #fcfcf2; }
.cg-lz-incluye-i:last-child::before { color: #2eb98f; }
.cg-lz-incluye-i b { font-size: 1.15rem; line-height: 1.2; letter-spacing: -.01em; }
.cg-lz-incluye-i p { flex: 1; margin: .55em 0 1.1em; font-size: .9rem; line-height: 1.5; color: #555; }
.cg-lz-incluye-i:last-child p { color: rgba(252, 252, 242, .85); }
.cg-lz-plazo { display: block; align-self: start; padding-top: .75rem; border-top: 1px solid rgba(38, 38, 38, .16); font-size: .84rem; font-weight: 800; line-height: 1.35; letter-spacing: -.005em; color: #4b2e83; }
.cg-lz-plazo::before { content: ""; display: inline-block; width: 1.1em; height: 2px; margin: 0 .5em .25em 0; background: currentColor; vertical-align: middle; }
.cg-lz-plazo .cg-validar { margin-left: .3em; }
.cg-lz-incluye-i:last-child .cg-lz-plazo { border-top-color: rgba(252, 252, 242, .25); color: #2eb98f; }
@media (max-width: 1099px) {
	.cg-lz-incluye { grid-template-columns: 1fr 1fr; }
	.cg-lz-incluye-i:nth-child(2n) { border-right: 0; }
	.cg-lz-incluye-i:last-child { grid-column: span 2; border-radius: 16px; margin-top: 1rem; }
}
@media (max-width: 549px) {
	.cg-lz-incluye { grid-template-columns: 1fr; }
	.cg-lz-incluye-i { padding-left: 0; padding-right: 0; border-right: 0; }
	.cg-lz-incluye-i::before { margin-bottom: .6rem; }
	.cg-lz-incluye-i:last-child { grid-column: auto; padding: 1.3rem 1.2rem 1.4rem; }
}

/* ---------- Defensa migratoria ---------- */
.cg-lz-defensa .cg-eyebrow { color: #ff8a80; }
.cg-lz-defensa .cg-display { color: #fcfcf2; }
p.cg-lz-defensa-p { max-width: 32em; margin: 1em 0 1.5em; font-size: 1.1rem; line-height: 1.6; color: rgba(252, 252, 242, .85); }
.cg-lz-def { margin: 0; padding: 0; list-style: none; counter-reset: d; }
.cg-lz-def li { position: relative; margin: 0; padding: 1.1rem 0 1.1rem 3.2rem; border-top: 1px solid rgba(252, 252, 242, .14); counter-increment: d; }
.cg-lz-def li::before { content: counter(d, decimal-leading-zero); position: absolute; left: 0; top: 1.2rem; font-size: .8rem; font-weight: 800; letter-spacing: .1em; color: #ff8a80; }
.cg-lz-def b { display: block; font-size: 1.12rem; color: #fcfcf2; }
.cg-lz-def span { font-size: .92rem; line-height: 1.5; color: rgba(252, 252, 242, .7); }
@media (max-width: 849px) { .cg-lz-def { margin-top: 1.6rem; } }

/* ---------- Cierre ---------- */
.cg-lz-cierre { text-align: center; }
.cg-lz-cierre-in { max-width: 44em; margin: 0 auto 1.6rem; }
.cg-lz-cierre .cg-eyebrow { justify-content: center; }
.cg-lz-cierre--empresa .cg-eyebrow { color: var(--fs-color-primary); }
.cg-lz-cierre--empresa .cg-display { color: #fcfcf2; }
.cg-lz-cierre--persona .cg-eyebrow, .cg-lz-cierre--persona .cg-display, .cg-lz-cierre--persona .cg-display em { color: #0f3d30; }
p.cg-lz-cierre-p { margin: 1em auto 0; max-width: 36em; font-size: 1.1rem; line-height: 1.6; }
.cg-lz-cierre--empresa p.cg-lz-cierre-p { color: rgba(252, 252, 242, .85); }
.cg-lz-cierre--persona p.cg-lz-cierre-p { color: #0f3d30; }
.cg-lz-cierre .button.cg-lz-btn { margin: 0 auto; }
p.cg-lz-cierre-alt { display: flex; flex-wrap: wrap; justify-content: center; gap: .4rem 1.6rem; margin: 1.4rem 0 0; font-size: .92rem; }
.cg-lz-cierre-alt a { font-weight: 700; text-decoration: underline; text-underline-offset: 3px; opacity: .9; }
.cg-lz-cierre--empresa .cg-lz-cierre-alt a { color: #fcfcf2; }
.cg-lz-cierre--persona .cg-lz-cierre-alt a { color: #0f3d30; }
.cg-lz-sec--crema .cg-lz-serv { background: #fff; }
.cg-lz-sec--crema .cg-lz-recibe-i, .cg-lz-sec--crema .cg-lz-riesgo { background: #fff; }
.cg-lz-riesgos-sec:not(.cg-lz-sec--crema) .cg-lz-riesgo { background: #fcfcf2; }
/* Flatsome sangra los li (margin-left 1.3em): en las listas de las landings no. */
.cg-lz .col-inner ul li, .cg-lz .col-inner ol li, .cg-lz-res-h li, .cg-lz-ruta-l li { margin-left: 0; }

/* ---------- Riesgos: marquesina de 100 personas (/empresas/) ---------- */
.cg-lz-gente { margin-top: 1.8rem; }
p.cg-lz-gente-t { margin: 0 0 .8rem; font-size: .72rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: #4b2e83; }
.cg-lz-gente-pista { display: flex; overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
.cg-lz-gente-tira { display: flex; flex: none; gap: 6px; padding-right: 6px; animation: cg-lz-gente 70s linear infinite; }
.cg-lz-gente-pista:hover .cg-lz-gente-tira { animation-play-state: paused; }
.cg-lz-gente-tira i { flex: none; width: 22px; height: 30px; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 30'%3E%3Ccircle cx='11' cy='6' r='5.2'/%3E%3Cpath d='M2 29v-8.5a9 9 0 0 1 18 0V29z'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 30'%3E%3Ccircle cx='11' cy='6' r='5.2'/%3E%3Cpath d='M2 29v-8.5a9 9 0 0 1 18 0V29z'/%3E%3C/svg%3E") center / contain no-repeat; }
i.cg-lz-gente-r, li.cg-lz-gente-r::before { background: #b3261e; }
i.cg-lz-gente-a, li.cg-lz-gente-a::before { background: #d99a1e; }
i.cg-lz-gente-v, li.cg-lz-gente-v::before { background: #1e7f61; }
@keyframes cg-lz-gente { to { transform: translateX(-100%); } }
ul.cg-lz-gente-ley { display: flex; flex-wrap: wrap; gap: .5rem 1.8rem; margin: 1rem 0 0; padding: 0; list-style: none; }
ul.cg-lz-gente-ley li { display: flex; align-items: baseline; gap: .45rem; margin: 0; font-size: .92rem; line-height: 1.4; color: #444; }
ul.cg-lz-gente-ley li::before { content: ""; flex: none; width: .7rem; height: .7rem; border-radius: 50%; transform: translateY(.05rem); }
ul.cg-lz-gente-ley b { font-size: 1.15rem; font-weight: 900; color: #262626; }
li.cg-lz-gente-r b { color: #b3261e; }
li.cg-lz-gente-a b { color: #a86f00; }
li.cg-lz-gente-v b { color: #1e7f61; }
@media (prefers-reduced-motion: reduce) {
  .cg-lz-gente-pista { -webkit-mask-image: none; mask-image: none; }
  .cg-lz-gente-tira { flex: 1 1 auto; flex-wrap: wrap; animation: none; }
  .cg-lz-gente-tira + .cg-lz-gente-tira { display: none; }
}
/* Pie con marquesina: la cita se quitó; leyenda a la izquierda y botón a la derecha. */
.cg-lz-riesgos-pie--gente { display: block; }
.cg-lz-riesgos-pie--gente .cg-lz-gente { margin-top: 0; }
.cg-lz-gente-pie { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem 2rem; margin-top: 1.1rem; }
.cg-lz-gente-pie ul.cg-lz-gente-ley { flex: 1 1 32em; margin: 0; }
.cg-lz-gente-pie .button { flex: none; margin: 0; }
@media (max-width: 549px) { .cg-lz-gente-pie .button { width: 100%; justify-content: center; } }
.cg-lz-gente-pie ul.cg-lz-gente-ley { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .8rem 1.6rem; }
.cg-lz-gente-pie ul.cg-lz-gente-ley li { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: .15rem .45rem; font-size: .86rem; line-height: 1.35; }
.cg-lz-gente-pie ul.cg-lz-gente-ley li::before { transform: none; }
.cg-lz-gente-pie ul.cg-lz-gente-ley b { font-size: 1.7rem; line-height: 1; }
@media (max-width: 549px) { .cg-lz-gente-pie ul.cg-lz-gente-ley { grid-template-columns: 1fr; } }
.cg-lz-gente-pie ul.cg-lz-gente-ley li > span { grid-column: 1 / -1; }
.cg-lz-gente-pie ul.cg-lz-gente-ley li { align-content: start; }
/* Sello «Garantía CG» en empresas: mismo componente que Personas, en morado. */
.cg-lz-sello.cg-lz-sello--empresa { background: #f1eef5; color: #2a1a4a; }
.cg-lz-sello.cg-lz-sello--empresa:hover { background: #e7e1f0; color: #2a1a4a; }
.cg-lz-sello.cg-lz-sello--empresa u { color: #4b2e83; }
.cg-lz-cred--empresa + .cg-lz-sello { margin-top: .6rem; }

/* ---------- /empresas/riesgos/ (2026-10-09) ---------- */
.cg-rg-nav { display: flex; flex-wrap: wrap; gap: .6rem; margin: 0 0 2rem; }
.cg-rg-nav a { display: inline-flex; align-items: center; gap: .55rem; padding: .55rem 1rem; border: 1px solid rgba(75, 46, 131, .2); border-radius: 99px; background: #fff; font-size: .9rem; font-weight: 700; color: #4b2e83; }
.cg-rg-nav a:hover { border-color: #4b2e83; background: #4b2e83; color: #fff; }
.cg-rg-nav span { font-size: .72rem; letter-spacing: .08em; opacity: .7; }
.cg-rg-grupo { scroll-margin-top: 110px; }
.cg-rg-grupo + .cg-rg-grupo { margin-top: 2.6rem; padding-top: 2.4rem; border-top: 1px solid rgba(75, 46, 131, .15); }
.cg-rg-cab { display: grid; grid-template-columns: auto 1fr auto; align-items: end; gap: .4rem 1.4rem; margin-bottom: 1.4rem; }
.cg-rg-n { align-self: start; font-size: 2.6rem; font-weight: 900; line-height: 1; color: rgba(75, 46, 131, .25); }
p.cg-rg-k { margin: 0 0 .2rem; font-size: .72rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: #2eb98f; }
.cg-rg-cab h3 { margin: 0 0 .3rem; font-size: 1.45rem; line-height: 1.2; color: #262626; }
.cg-rg-cab h3 em { font-style: normal; color: #4b2e83; }
.cg-rg-cab-t p:last-child { margin: 0; max-width: 46em; font-size: .95rem; color: #555; }
.cg-rg-ir { white-space: nowrap; font-weight: 700; color: #4b2e83; }
.cg-rg-ir i { font-style: normal; display: inline-block; transition: transform .2s; }
.cg-rg-ir:hover i { transform: translateX(4px); }
.cg-rg-datos.cg-lz-riesgos-pie { margin-top: 0; padding-top: 0; border-top: 0; }
@media (max-width: 849px) {
  .cg-rg-cab { grid-template-columns: auto 1fr; }
  .cg-rg-ir { grid-column: 2; justify-self: start; }
}
/* Teaser en /empresas/ que lleva a la página de riesgos */
.cg-rg-teaser-lista { display: grid; grid-template-columns: 1fr 1fr; gap: .7rem; margin: 0 0 1.4rem; padding: 0; list-style: none; }
.cg-rg-teaser-lista li { display: flex; align-items: center; gap: .7rem; margin: 0; padding: .8rem .9rem; border: 1px solid rgba(38, 38, 38, .08); border-radius: 14px; background: #fff; font-size: .92rem; font-weight: 700; line-height: 1.3; color: #262626; }
.cg-rg-teaser-lista .cg-lz-riesgo-ico { flex: none; width: 2.2rem; height: 2.2rem; margin: 0; }
.cg-rg-teaser-lista .cg-lz-riesgo-ico svg { width: 1.05rem; height: 1.05rem; }
@media (max-width: 549px) { .cg-rg-teaser-lista { grid-template-columns: 1fr; } }
.cg-faq-head[id] { scroll-margin-top: 120px; }

/* ---------- /empresas/preguntas-frecuentes/ (2026-10-09) ---------- */
.cg-fq-temas { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1.4rem; }
.cg-fq-temas a { display: inline-flex; align-items: center; gap: .45rem; padding: .55rem 1.05rem; border: 1px solid rgba(252, 252, 242, .35); border-radius: 99px; font-size: .92rem; font-weight: 700; color: #fcfcf2; }
.cg-fq-temas a:hover { border-color: #fcfcf2; background: #fcfcf2; color: #4b2e83; }
.cg-fq-temas i { font-style: normal; }
/* /empresas/riesgos/ · retícula de 100 personas ([cg_puntos forma="persona"], 2026-10-09) */
p.cg-rg-100-k { margin: 0 0 1rem; font-size: .72rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: #4b2e83; }
.cg-rg-100 .cgd-grid { max-width: 340px; }
.cg-rg-100 .cgd-legend { flex-direction: column; gap: .45rem; margin-top: 1.2rem; font-size: .95rem; color: #444; }
.cg-rg-100 .cgd-legend .cgd-n { font-size: 1.35rem; font-weight: 900; }
.cg-rg-100 .cgd-legend i { width: .8em; height: .8em; }
.cg-rg-100-txt p { max-width: 32em; font-size: 1.04rem; line-height: 1.65; color: #444; }
p.cg-rg-100-dato { font-size: 1.6rem; line-height: 1.25; color: #262626; }
p.cg-rg-100-dato b { color: #b3261e; }
/* Buscador de preguntas frecuentes (2026-10-09) */
.cg-fq-buscar { max-width: 640px; margin: 1.6rem 0 1.4rem; }
label.cg-fq-buscar-k { display: block; margin: 0 0 .5rem; font-size: .72rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: #b9f0dc; }
.cg-fq-buscar-campo { display: flex; align-items: center; gap: .5rem; padding: .35rem .35rem .35rem 1rem; border-radius: 99px; background: #fff; box-shadow: 0 14px 34px rgba(20, 8, 46, .35); }
.cg-fq-lupa { flex: none; display: grid; color: #4b2e83; }
.cg-fq-lupa svg { width: 20px; height: 20px; }
.cg-fq-buscar input[type="search"] { flex: 1; min-width: 0; height: 46px; margin: 0; padding: 0 .3rem; border: 0; background: transparent; box-shadow: none; font-size: 1rem; color: #262626; }
.cg-fq-buscar input[type="search"]:focus { outline: none; box-shadow: none; }
.cg-fq-buscar-campo:focus-within { box-shadow: 0 0 0 3px #2eb98f, 0 14px 34px rgba(20, 8, 46, .35); }
.cg-fq-buscar button.cg-fq-ir { flex: none; min-height: 44px; margin: 0; padding: 0 1.3rem; border-radius: 99px; background: #4b2e83; font-size: .9rem; font-weight: 800; letter-spacing: 0; text-transform: none; color: #fff; }
.cg-fq-buscar button.cg-fq-ir:hover { background: #3a2367; }
p.cg-fq-pop { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem .5rem; margin: .8rem 0 0; font-size: .82rem; color: rgba(252, 252, 242, .75); }
p.cg-fq-pop button { min-height: 0; margin: 0; padding: .3rem .75rem; border: 1px solid rgba(252, 252, 242, .3); border-radius: 99px; background: transparent; font-size: .8rem; font-weight: 700; letter-spacing: 0; line-height: 1.3; text-transform: none; color: #fcfcf2; }
p.cg-fq-pop button:hover { border-color: #fcfcf2; background: rgba(252, 252, 242, .12); }
p.cg-fq-res { min-height: 1.4em; margin: .7rem 0 0; font-size: .95rem; color: #fcfcf2; }
p.cg-fq-res a { font-weight: 800; color: #b9f0dc; text-decoration: underline; text-underline-offset: 3px; }
.cg-faq-acc .accordion-title mark { padding: 0 .1em; border-radius: 3px; background: #d7f5e9; color: inherit; }
@media (max-width: 549px) { .cg-fq-buscar button.cg-fq-ir { padding: 0 1rem; } .cg-fq-buscar input[type="search"] { font-size: 16px; } }
/* Arranque: la familia como ficha 06, con el mismo número, título y gancho que las fichas de servicio (2026-10-09) */
.cg-lz-servicios-sec .cg-lz-familia { margin-top: 1.2rem; box-shadow: inset 0 0 0 1px rgba(75, 46, 131, .1); }
.cg-lz-familia > div > .cg-lz-n { display: block; }
.cg-lz-familia > div > h3 { margin: .45em 0 .3em; font-size: 1.3rem; }
.cg-lz-familia p.cg-lz-serv-g { margin: 0 0 .6em; font-weight: 700; color: #262626; }
/* Enlace de una ficha de servicio a su subpágina (Arranque · Soft landing, 2026-10-09) */
a.cg-lz-serv-mas { display: inline-flex; align-items: center; gap: .4rem; margin-top: .9rem; font-weight: 800; color: #4b2e83; }
a.cg-lz-serv-mas i { font-style: normal; transition: transform .2s; }
a.cg-lz-serv-mas:hover i { transform: translateX(4px); }
/* /empresas/riesgos/: etiqueta de la página de origen de cada grupo (Empresas · Arranque · Cumplimiento) */
em.cg-rg-cl { display: inline-block; margin-right: .6em; padding: .15em .6em; border-radius: 99px; background: #4b2e83; font-style: normal; font-size: .62rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; vertical-align: .15em; color: #fff; }
em.cg-rg-cl--arr { background: #6a4bb0; }
em.cg-rg-cl--cum { background: #2a1a4a; }
.cg-rg-nav a em.cg-rg-cl { margin: 0 0 0 .2rem; }
.cg-rg-nav a:hover em.cg-rg-cl { background: #fff; color: #4b2e83; }
/* Arranque: enlace a sus riesgos en la página de Riesgos */
p.cg-ar-riesgos { margin: 1.6rem 0 0; font-size: .98rem; color: #555; }
p.cg-ar-riesgos a { font-weight: 800; color: #4b2e83; text-decoration: underline; text-underline-offset: 3px; }
p.cg-ar-riesgos a::after { content: " →"; }

/* =====================================================================
   Semáforo de riesgos v2 (.cg-s2-*): una pregunta por pantalla, resultado por nivel.
   La hoja PDF sigue usando .cg-sem-pdf-* (docs/semaforo/semaforo-estilos.css).
   ===================================================================== */
.cg-s2 { --s2-mor: #4b2e83; --s2-rojo: #b3261e; --s2-amb: #d99a1e; --s2-ver: #1e7f61; max-width: 860px; margin: 0 auto; color: #262626; }
.cg-s2 [hidden] { display: none !important; }
.cg-s2-memoria { margin: 0 0 1rem; padding: .8rem 1rem; border-radius: 12px; background: #f1eef5; font-size: .92rem; line-height: 1.5; color: #3a2367; }

/* Tarjeta de preguntas */
.cg-s2-app { padding: 1.6rem 2rem 1.3rem; border-radius: 22px; background: #fff; box-shadow: 0 24px 60px -30px rgba(38, 38, 38, .45), 0 0 0 1px rgba(75, 46, 131, .08); }
.cg-s2-top { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: .7rem 1rem; margin-bottom: 1.6rem; }
p.cg-s2-paso { margin: 0; font-size: .82rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #777; }
.cg-s2-paso b { font-size: 1.05rem; color: var(--s2-mor); }
.cg-s2-luces { display: inline-flex; gap: 5px; padding: 5px 7px; border-radius: 99px; background: #262626; }
.cg-s2-luces i { display: block; width: 11px; height: 11px; border-radius: 50%; background: #4a4a4a; transition: background .3s ease, box-shadow .3s ease; }
.cg-s2-luces[data-nivel="critico"] i:nth-child(1) { background: var(--s2-rojo); box-shadow: 0 0 10px var(--s2-rojo); }
.cg-s2-luces[data-nivel="moderado"] i:nth-child(2) { background: var(--s2-amb); box-shadow: 0 0 10px var(--s2-amb); }
.cg-s2-luces[data-nivel="optimo"] i:nth-child(3) { background: var(--s2-ver); box-shadow: 0 0 10px var(--s2-ver); }
.cg-s2-barra { grid-column: 1 / -1; height: 6px; overflow: hidden; border-radius: 99px; background: #ece9f2; }
.cg-s2-barra b { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #4b2e83, #2eb98f); transition: width .4s cubic-bezier(.2, .7, .2, 1); }

.cg-s2-step { animation: cg-s2-entra .35s ease both; }
@keyframes cg-s2-entra { from { opacity: 0; transform: translateX(14px); } to { opacity: 1; transform: none; } }
p.cg-s2-k { margin: 0 0 .5rem; font-size: .74rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--s2-mor); }
h3.cg-s2-q { min-height: 2.6em; margin: 0 0 1.4rem; font-size: 1.55rem; line-height: 1.3; letter-spacing: -.01em; color: #262626; outline: none; }
.cg-s2-opts { display: grid; grid-template-columns: repeat(3, 1fr); gap: .7rem; }
.cg-s2 .cg-s2-opts button, .cg-s2 .cg-s2-opciones button {
	min-height: 3.6rem; margin: 0; padding: .6em 1em; border: 2px solid #e3dfe9; border-radius: 14px; background: #fcfcf2;
	font-size: 1.1rem; font-weight: 700; line-height: 1.25; letter-spacing: 0; text-transform: none; color: #262626; cursor: pointer;
	transition: border-color .2s ease, background .2s ease, color .2s ease, transform .15s ease;
}
.cg-s2 .cg-s2-opts button:hover, .cg-s2 .cg-s2-opciones button:hover { border-color: var(--s2-mor); transform: translateY(-1px); }
.cg-s2 .cg-s2-opts button.is-on, .cg-s2 .cg-s2-opciones button.is-on { border-color: var(--s2-mor); background: var(--s2-mor); color: #fff; }
.cg-s2 .cg-s2-opts button:focus-visible, .cg-s2 .cg-s2-opciones button:focus-visible { outline: 3px solid rgba(75, 46, 131, .35); outline-offset: 2px; }
.cg-s2 .cg-s2-opts .cg-s2-na { grid-column: 1 / -1; min-height: 3rem; font-size: .95rem; font-weight: 600; }
.cg-s2-opciones { display: grid; gap: .6rem; }
.cg-s2 .cg-s2-opciones button { display: flex; align-items: center; gap: .9rem; width: 100%; text-align: left; font-size: 1.02rem; font-weight: 600; }
.cg-s2 .cg-s2-opciones button::before { content: ""; flex: none; width: 1.15rem; height: 1.15rem; border: 2px solid #c9c2d6; border-radius: 50%; background: #fff; }
.cg-s2 .cg-s2-opciones button.is-on::before { border-color: #fff; background: #2eb98f; box-shadow: inset 0 0 0 3px var(--s2-mor); }
details.cg-s2-why { margin: 1.1rem 0 0; font-size: .88rem; color: #555; }
details.cg-s2-why summary { cursor: pointer; font-weight: 700; color: var(--s2-mor); list-style: none; }
details.cg-s2-why summary::-webkit-details-marker { display: none; }
details.cg-s2-why summary::before { content: "+ "; }
details.cg-s2-why[open] summary::before { content: "− "; }
details.cg-s2-why p { margin: .5em 0 0; line-height: 1.55; }
textarea.cg-s2-coment { width: 100%; min-height: 6.5rem; margin: 0 0 1rem; padding: .9rem 1rem; border: 2px solid #e3dfe9; border-radius: 14px; background: #fcfcf2; font-size: 1rem; box-shadow: none; }
textarea.cg-s2-coment:focus { border-color: var(--s2-mor); background: #fff; }
.cg-s2 .button.cg-s2-ver { min-height: 3.4rem; margin: 0; padding: 0 2.2em; border-radius: 99px; font-size: 1.08rem; font-weight: 700; text-transform: none; letter-spacing: 0; }
.cg-s2-nav { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 1.4rem; padding-top: 1rem; border-top: 1px solid #efedf3; }
.cg-s2 .cg-s2-atras { min-height: 0; margin: 0; padding: .4em .2em; border: 0; background: none; font-size: .95rem; font-weight: 700; text-transform: none; letter-spacing: 0; color: var(--s2-mor); cursor: pointer; }
p.cg-s2-privado { flex: 1; margin: 0; font-size: .78rem; text-align: right; color: #888; }
@media (max-width: 549px) {
	.cg-s2-app { padding: 1.2rem 1.1rem 1rem; border-radius: 18px; }
	h3.cg-s2-q { min-height: 0; font-size: 1.22rem; }
	.cg-s2-opts { grid-template-columns: 1fr 1fr; }
	.cg-s2 .cg-s2-opts button[data-v="nose"] { grid-column: 1 / -1; }
	.cg-s2 .cg-s2-opts button { min-height: 3.4rem; }
	.cg-s2 .button.cg-s2-ver { width: 100%; }
	.cg-s2-nav { flex-direction: column-reverse; align-items: flex-start; }
	p.cg-s2-privado { text-align: left; }
}
@media (prefers-reduced-motion: reduce) { .cg-s2-step { animation: none; } .cg-s2-barra b { transition: none; } }

/* Resultado */
.cg-s2-res { overflow: hidden; border-radius: 22px; background: #fff; box-shadow: 0 24px 60px -30px rgba(38, 38, 38, .45), 0 0 0 1px rgba(75, 46, 131, .08); outline: none; }
.cg-s2-res-head { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 1.4rem; padding: 1.8rem 2rem; border-top: 6px solid #ccc; background: #fcfcf2; }
.cg-s2-res[data-nivel="critico"] .cg-s2-res-head { border-top-color: var(--s2-rojo); background: #fdf3f2; }
.cg-s2-res[data-nivel="moderado"] .cg-s2-res-head { border-top-color: var(--s2-amb); background: #fdf8ec; }
.cg-s2-res[data-nivel="optimo"] .cg-s2-res-head { border-top-color: var(--s2-ver); background: #eef8f3; }
.cg-s2-res-luces { display: flex; flex-direction: column; gap: 7px; padding: 9px; border-radius: 99px; background: #262626; }
.cg-s2-res-luces i { display: block; width: 24px; height: 24px; border-radius: 50%; background: #444; }
.cg-s2-res[data-nivel="critico"] .cg-s2-res-luces i:nth-child(1) { background: var(--s2-rojo); box-shadow: 0 0 16px var(--s2-rojo); }
.cg-s2-res[data-nivel="moderado"] .cg-s2-res-luces i:nth-child(2) { background: var(--s2-amb); box-shadow: 0 0 16px var(--s2-amb); }
.cg-s2-res[data-nivel="optimo"] .cg-s2-res-luces i:nth-child(3) { background: var(--s2-ver); box-shadow: 0 0 16px var(--s2-ver); }
p.cg-s2-res-tag { margin: 0 0 .3rem; font-size: .72rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: #777; }
.cg-s2-res-txt h3 { margin: 0 0 .4rem; font-size: 1.55rem; line-height: 1.2; color: #262626; }
.cg-s2-res-txt p { margin: 0; font-size: .98rem; line-height: 1.55; color: #444; }
p.cg-s2-res-score { margin: 0; text-align: center; }
.cg-s2-res-score b { display: block; font-size: 2.6rem; line-height: 1; color: #262626; }
.cg-s2-res-score span { font-size: .72rem; font-weight: 700; letter-spacing: .06em; color: #777; }
.cg-s2-res-cuerpo { display: grid; grid-template-columns: 1.4fr 1fr; gap: 1.6rem; padding: 1.8rem 2rem; }
p.cg-s2-mini { margin: 0 0 .7rem; font-size: .72rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: #777; }
.cg-s2-hallazgos { margin: 0; padding: 0; list-style: none; counter-reset: h; }
.cg-s2 .cg-s2-hallazgos li { position: relative; margin: 0 0 .7rem; padding: 1rem 1rem .9rem 3rem; border-radius: 14px; background: #fcfcf2; box-shadow: inset 4px 0 0 #ccc; counter-increment: h; }
.cg-s2-hallazgos li[data-color="rojo"] { box-shadow: inset 4px 0 0 var(--s2-rojo); }
.cg-s2-hallazgos li[data-color="amarillo"] { box-shadow: inset 4px 0 0 var(--s2-amb); }
.cg-s2-hallazgos li::before { content: counter(h); position: absolute; left: 1rem; top: 1rem; display: grid; place-items: center; width: 1.5rem; height: 1.5rem; border-radius: 50%; background: #262626; font-size: .78rem; font-weight: 800; color: #fff; }
.cg-s2-hallazgos li[data-color="rojo"]::before { background: var(--s2-rojo); }
.cg-s2-hallazgos li[data-color="amarillo"]::before { background: var(--s2-amb); }
.cg-s2-hallazgos b { display: block; margin-bottom: .2rem; font-size: 1.02rem; line-height: 1.3; }
.cg-s2-h-pq { display: block; font-size: .9rem; line-height: 1.5; color: #555; }
.cg-s2-h-ley:not(:empty) { display: inline-block; margin-top: .4rem; font-size: .7rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--s2-mor); }
.cg-s2-hallazgos a { display: inline-block; margin: .4rem 0 0 .8rem; font-size: .86rem; font-weight: 700; color: var(--s2-mor); }
.cg-s2-hallazgos .cg-s2-h-ley:empty + a { margin-left: 0; }
p.cg-s2-sin { margin: 0; padding: 1rem 1.1rem; border-radius: 14px; background: #eef8f3; font-size: .95rem; line-height: 1.55; color: #17795b; }
.cg-s2-cta > div { padding: 1.5rem 1.4rem; border-radius: 18px; background: var(--s2-mor); color: #fcfcf2; }
.cg-s2-cta > div[data-nivel-cta="defensa"] { background: #262626; box-shadow: inset 0 4px 0 var(--s2-rojo); }
.cg-s2-cta p.cg-s2-mini { color: #2eb98f; }
p.cg-s2-cta-t { margin: 0 0 1.1rem; font-size: 1.25rem; font-weight: 700; line-height: 1.3; color: #fcfcf2; }
.cg-s2 .button.cg-s2-btn { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 3.3rem; margin: 0 0 .8rem; border-radius: 99px; background: #fff; font-size: 1.02rem; font-weight: 700; text-transform: none; letter-spacing: 0; color: var(--s2-mor); }
.cg-s2 .button.cg-s2-btn:hover { background: #2eb98f; color: #0f3d30; }
.cg-s2 .button.cg-s2-btn--urgente { background: #25d366; color: #0f3d30; }
a.cg-s2-link { display: block; font-size: .9rem; font-weight: 700; color: #fcfcf2; text-decoration: underline; text-underline-offset: 3px; }
.cg-s2-res-pie { display: grid; grid-template-columns: 1.3fr 1fr auto; gap: 1.4rem; align-items: start; padding: 1.4rem 2rem; border-top: 1px solid #efedf3; }
.cg-s2-alertas { display: flex; flex-wrap: wrap; gap: .5rem; }
.cg-s2-res-acciones { display: flex; flex-direction: column; align-items: flex-end; gap: .5rem; }
.cg-s2 .cg-s2-print, .cg-s2 .cg-s2-reset { min-height: 0; margin: 0; padding: .55em 1.1em; border: 1.5px solid #d6cde6; border-radius: 99px; background: #fff; font-size: .86rem; font-weight: 700; text-transform: none; letter-spacing: 0; color: var(--s2-mor); cursor: pointer; }
.cg-s2 .cg-s2-reset { border-color: transparent; color: #777; }
.cg-s2 .cg-sem-nl-btn { display: inline-flex; min-height: 0; margin: 0; padding: .55em 1.1em; border: 0; border-radius: 99px; background: var(--s2-mor); color: #fff; font-size: .82rem; font-weight: 700; line-height: 1.3; letter-spacing: 0; text-transform: none; }
p.cg-s2-aviso { margin: 0; padding: 1rem 2rem 1.4rem; font-size: .74rem; line-height: 1.5; color: #888; }
.cg-s2-aviso a { color: var(--s2-mor); }
@media (max-width: 849px) {
	.cg-s2-res-cuerpo, .cg-s2-res-pie { grid-template-columns: 1fr; }
	.cg-s2-res-acciones { flex-direction: row; align-items: center; }
}
@media (max-width: 549px) {
	.cg-s2-res-head { grid-template-columns: auto 1fr; gap: 1rem; padding: 1.3rem 1.1rem; }
	.cg-s2-res-luces i { width: 16px; height: 16px; }
	p.cg-s2-res-score { grid-column: 1 / -1; display: flex; align-items: baseline; gap: .5rem; text-align: left; }
	.cg-s2-res-score b { font-size: 2rem; }
	.cg-s2-res-txt h3 { font-size: 1.2rem; }
	.cg-s2-res-cuerpo, .cg-s2-res-pie { padding: 1.2rem 1.1rem; }
	p.cg-s2-aviso { padding: .8rem 1.1rem 1.2rem; }
}

/* Página del Semáforo */
.cg-s2-hero .cg-lz-lead { margin-bottom: .4em; }
ul.cg-s2-chips { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 1rem; padding: 0; list-style: none; }
.cg-s2-chips li { margin: 0 !important; padding: .35em .9em; border-radius: 99px; background: rgba(252, 252, 242, .12); font-size: .82rem; font-weight: 700; color: #fcfcf2; }
.cg-s2-chips li::before { content: "✓ "; color: #2eb98f; }
.cg-s2-hero-cont .cg-sem-contador { margin: 0; color: rgba(252, 252, 242, .8); }
.cg-s2-hero-cont .cg-sem-contador-n b { color: #2eb98f; }
.cg-s2-niveles { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.cg-s2-nivel { padding: 1.5rem 1.4rem; border-radius: 16px; background: #fcfcf2; box-shadow: inset 0 4px 0 #ccc; }
.cg-s2-nivel--critico { box-shadow: inset 0 4px 0 #b3261e; }
.cg-s2-nivel--moderado { box-shadow: inset 0 4px 0 #d99a1e; }
.cg-s2-nivel--optimo { box-shadow: inset 0 4px 0 #1e7f61; }
.cg-s2-nivel i { display: inline-block; width: 14px; height: 14px; margin-right: .5rem; border-radius: 50%; vertical-align: -1px; background: #ccc; }
.cg-s2-nivel--critico i { background: #b3261e; }
.cg-s2-nivel--moderado i { background: #d99a1e; }
.cg-s2-nivel--optimo i { background: #1e7f61; }
.cg-s2-nivel b { font-size: 1.3rem; }
.cg-s2-nivel-r { display: block; margin: .4rem 0 .7rem; font-size: .8rem; font-weight: 800; letter-spacing: .04em; color: #4b2e83; }
.cg-s2-nivel p { margin: 0; font-size: .92rem; line-height: 1.55; color: #555; }
p.cg-s2-ajuste { margin: 1.4rem 0 0; padding: 1rem 1.2rem; border-radius: 12px; background: #f1eef5; font-size: .94rem; line-height: 1.6; color: #333; }
@media (max-width: 849px) { .cg-s2-niveles { grid-template-columns: 1fr; } }

/* "¿Terminamos tu evaluación?" (inicio y páginas de empresas) */
.cg-s2-retomar { position: fixed; left: 16px; bottom: 16px; z-index: 60; display: flex; align-items: center; gap: .8rem; max-width: 420px; padding: .9rem 2.6rem .9rem 1.1rem; border-radius: 16px; background: #fff; box-shadow: 0 18px 40px -16px rgba(38, 38, 38, .45), 0 0 0 1px rgba(75, 46, 131, .12); animation: cg-s2-entra .4s ease both; }
.cg-s2-retomar[hidden] { display: none; }
.cg-s2-retomar p { flex: 1; margin: 0; font-size: .88rem; line-height: 1.4; color: #444; }
.cg-s2-retomar p b { display: block; color: #262626; }
.cg-s2-retomar .button { flex: none; margin: 0; border-radius: 99px; text-transform: none; letter-spacing: 0; }
.cg-s2-retomar-x { position: absolute; top: .3rem; right: .4rem; min-height: 0; margin: 0; padding: .2em .5em; border: 0; background: none; font-size: 1.3rem; line-height: 1; color: #999; cursor: pointer; }
@media (max-width: 549px) { .cg-s2-retomar { right: 88px; max-width: none; flex-direction: column; align-items: flex-start; } }

/* Semáforo · Paso 0: datos antes del diagnóstico (inc/cg-semaforo.php cg_semaforo_datos) */
.cg-s2-app.is-datos > :not(.cg-s2-datos) { display: none !important; }
.cg-s2-datos { margin: 0; }
.cg-s2-datos-cab { margin-bottom: 1rem; }
p.cg-s2-datos-sub { max-width: 40em; margin: .5rem 0 0; font-size: 1rem; line-height: 1.55; color: #444; }
ul.cg-s2-datos-por { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; margin: 0 0 1.6rem; padding: 0; list-style: none; border-top: 2px solid #262626; }
ul.cg-s2-datos-por li { margin: 0; padding: .8rem 1rem .8rem 0; font-size: .86rem; line-height: 1.45; color: #555; }
ul.cg-s2-datos-por li + li { padding-left: 1rem; border-left: 1px solid rgba(38, 38, 38, .14); }
ul.cg-s2-datos-por b { display: block; color: #4b2e83; }
p.cg-s2-datos-resumen { margin: 0 0 1rem; padding: .75rem 1rem; border-left: 4px solid #b3261e; border-radius: 0 10px 10px 0; background: #fdecea; font-size: .92rem; font-weight: 700; color: #8c1d18; }
.cg-s2-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
fieldset.cg-s2-grupo { margin: 0 0 1.2rem; padding: 0; border: 0; }
.cg-s2-grupo legend { width: 100%; margin: 0 0 .9rem; padding: 0 0 .5rem; border-bottom: 1px solid rgba(38, 38, 38, .16); font-size: .74rem; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; color: #4b2e83; }
.cg-s2-fila { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1rem; }
.cg-s2-campo { display: block; margin: 0 0 1rem; }
.cg-s2-label { display: block; margin-bottom: .35rem; font-size: .9rem; font-weight: 700; color: #262626; }
.cg-s2-label small { font-weight: 500; color: #6b6b6b; }
.cg-s2 .cg-s2-input { width: 100%; min-height: 3rem; margin: 0; padding: .6em .9em; border: 2px solid #ddd6ea; border-radius: 12px; background: #fcfcf2; font-size: 1rem; box-shadow: none; transition: border-color .2s ease, background .2s ease; }
.cg-s2 .cg-s2-input:focus { border-color: #4b2e83; background: #fff; outline: 3px solid rgba(75, 46, 131, .18); outline-offset: 1px; }
.cg-s2 .cg-s2-input[aria-invalid="true"] { border-color: #b3261e; background: #fff8f7; }
.cg-s2-chips { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: .3rem; }
.cg-s2-chip { position: relative; display: inline-flex; align-items: center; min-height: 46px; margin: 0; padding: 0 1.1em; border: 2px solid #ddd6ea; border-radius: 99px; background: #fcfcf2; font-size: .92rem; font-weight: 600; color: #262626; cursor: pointer; transition: border-color .2s ease, background .2s ease; }
.cg-s2-chip:hover { border-color: #4b2e83; }
.cg-s2-chip input { position: absolute; opacity: 0; pointer-events: none; }
.cg-s2-chip:has(input:checked) { border-color: #4b2e83; background: #4b2e83; color: #fcfcf2; }
.cg-s2-chip:has(input:focus-visible) { outline: 3px solid rgba(75, 46, 131, .35); outline-offset: 2px; }
.cg-s2-campo.is-error .cg-s2-chip { border-color: #e3a29d; }
.cg-s2-campo input[name="salutationOther"] { margin-top: .5rem; }
.cg-s2-checks { margin: .2rem 0 1.1rem; padding: 1rem 1.1rem; border-radius: 14px; background: #f1eef5; }
.cg-s2-check { display: flex; gap: .7rem; align-items: flex-start; margin: 0 0 .6rem; font-size: .9rem; line-height: 1.5; color: #333; cursor: pointer; }
.cg-s2-check input { flex: none; width: 22px; height: 22px; margin: .1em 0 0; accent-color: #4b2e83; }
.cg-s2-check a { font-weight: 700; color: #4b2e83; text-decoration: underline; }
.cg-s2-check.is-error span { color: #8c1d18; }
.cg-s2-check--opc { margin-top: .8rem; padding-top: .8rem; border-top: 1px dashed rgba(75, 46, 131, .3); }
.cg-s2-err { display: none; margin: .3rem 0 0; font-size: .82rem; font-weight: 700; color: #b3261e; }
.cg-s2-err.is-on { display: block; }
.cg-s2-checks .cg-s2-err { margin: -.3rem 0 .6rem 2.2rem; }
.cg-s2-err--envio { margin-bottom: .8rem; }
.cg-s2-datos .lf-captcha { margin: 0 0 1rem; }
.cg-s2-datos-pie { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem 1.4rem; }
.cg-s2-datos-pie .button { margin: 0; }
.cg-s2-datos-ok.is-cargando { opacity: .7; pointer-events: none; }
p.cg-s2-seguro { display: flex; align-items: center; gap: .45rem; margin: 0; font-size: .82rem; color: #6b6b6b; }
p.cg-s2-seguro svg { flex: none; width: 16px; height: 16px; fill: none; stroke: #2eb98f; stroke-width: 2; }
p.cg-s2-quien { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .4rem 1rem; margin: 0 0 1rem; padding: 0 0 .7rem; border-bottom: 1px solid rgba(38, 38, 38, .12); font-size: .82rem; font-weight: 700; color: #4b2e83; }
.cg-s2-quien-x { margin: 0; padding: 0; border: 0; background: none; font-size: .82rem; font-weight: 600; color: #6b6b6b; text-decoration: underline; cursor: pointer; }
.cg-s2-quien-x:hover { color: #4b2e83; }
@media (max-width: 849px) { ul.cg-s2-datos-por { grid-template-columns: 1fr; } ul.cg-s2-datos-por li + li { padding-left: 0; border-left: 0; border-top: 1px solid rgba(38, 38, 38, .1); } }
@media (max-width: 549px) { .cg-s2-fila { grid-template-columns: 1fr; } .cg-s2-datos-pie .button { width: 100%; } }
.cg-s2-datos h3.cg-s2-q { min-height: 0; margin: 0; }

/* Paso 0 v2: bloque 1 autorización (primero) · bloque 2 datos bloqueado hasta autorizar · temas del newsletter */
.cg-s2-bloque { margin: 0 0 1.4rem; }
p.cg-s2-bloque-t { display: flex; align-items: center; gap: .6rem; margin: 0 0 .9rem; font-size: 1.05rem; font-weight: 800; color: #262626; }
.cg-s2-bloque-n { display: inline-grid; place-items: center; flex: none; width: 1.8rem; height: 1.8rem; border-radius: 50%; background: #4b2e83; font-size: .85rem; font-weight: 800; color: #fcfcf2; }
.cg-s2-bloque--permiso .cg-s2-checks { margin: 0; }
.cg-s2-bloque--datos { position: relative; padding-top: 1.2rem; border-top: 2px solid #262626; transition: opacity .3s ease; }
.cg-s2-bloque--datos.is-bloqueado .cg-s2-bloque-n { background: #c9c3d6; }
.cg-s2-bloque--datos.is-bloqueado fieldset { opacity: .45; filter: grayscale(.4); }
.cg-s2-bloque--datos fieldset[disabled] * { cursor: not-allowed; }
p.cg-s2-candado { display: flex; align-items: center; gap: .5rem; margin: 0 0 1rem; padding: .7rem 1rem; border-radius: 10px; background: #fcfcf2; box-shadow: inset 0 0 0 1px #ddd6ea; font-size: .9rem; font-weight: 700; color: #4b2e83; }
p.cg-s2-candado svg { flex: none; width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; }
.cg-s2-nl { margin-top: .8rem; padding-top: .8rem; border-top: 1px dashed rgba(75, 46, 131, .3); }
.cg-s2-nl .cg-s2-check--opc { margin: 0; padding: 0; border: 0; }
fieldset.cg-s2-temas { margin: .8rem 0 0 2.2rem; padding: 0; border: 0; }
.cg-s2-temas legend { margin: 0 0 .5rem; padding: 0; border: 0; font-size: .86rem; font-weight: 700; letter-spacing: normal; text-transform: none; color: #262626; }
.cg-s2-chip--tema { min-height: 40px; padding: 0 .95em; font-size: .86rem; background: #fff; }
.cg-s2-chip--tema::before { content: ""; width: .8em; height: .8em; margin-right: .45em; border: 2px solid currentColor; border-radius: 3px; opacity: .5; }
.cg-s2-chip--tema:has(input:checked)::before { border-color: #fcfcf2; background: #2eb98f; opacity: 1; }
p.cg-s2-temas-nota { margin: .4rem 0 0; font-size: .78rem; color: #6b6b6b; }
.cg-s2-datos-ok[disabled] { opacity: .5; cursor: not-allowed; box-shadow: none; }
@media (max-width: 549px) { fieldset.cg-s2-temas { margin-left: 0; } }

/* Hoja PDF: quién hizo el diagnóstico (datos del Paso 0) */
@media print {
	.cg-sem-pdf-quien { display: grid; grid-template-columns: 1.25fr 1.25fr 1.3fr .8fr; margin: 3mm 0 0; border: 1px solid rgba(38, 38, 38, .18); border-radius: 3mm; background: #fff; }
	.cg-sem-pdf-quien[hidden], .cg-sem-pdf-quien [hidden] { display: none !important; }
	.cg-sem-pdf-quien > div { min-width: 0; padding: 2.2mm 3.5mm; }
	.cg-sem-pdf-quien > div + div { border-left: 1px solid rgba(38, 38, 38, .12); }
	.cg-sem-pdf-quien span { display: block; font-size: 6.5pt; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: #4b2e83; }
	.cg-sem-pdf-quien b { display: block; overflow: hidden; font-size: 9.5pt; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; color: #262626; }
	.cg-sem-pdf-quien small { display: block; overflow: hidden; font-size: 7.5pt; line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; color: #666; }
	.cg-sem-pdf-quien + .cg-sem-pdf-hero { padding-top: 3mm; padding-bottom: 3mm; }
}

/* Semáforo · portada editorial (cg-s2h-*) */
.cg-s2h-cab { display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin: 0 0 2.4rem; padding: 0 0 .85rem; border-bottom: 2px solid rgba(252, 252, 242, .85); font-size: .74rem; font-weight: 800; letter-spacing: .2em; text-transform: uppercase; color: #2eb98f; }
.cg-s2h-cab span + span { font-weight: 600; letter-spacing: .14em; color: rgba(252, 252, 242, .65); }
.cg-s2-hero .cg-display.cg-s2h-h1 { font-size: clamp(2.6rem, 6.4vw, 5.4rem) !important; line-height: .96; letter-spacing: -.045em; color: #fcfcf2; }
.cg-s2-hero .cg-s2h-h1 em { display: block; color: #2eb98f; }
p.cg-s2h-lead { max-width: 34em; margin: 1.5rem 0 0; padding-left: 1.1rem; border-left: 3px solid #2eb98f; font-size: 1.12rem; line-height: 1.55; color: rgba(252, 252, 242, .88); }
.cg-s2h-ficha { display: grid; grid-template-columns: auto 1fr; gap: 1.4rem; align-items: center; padding: 0 0 0 1.8rem; border-left: 1px solid rgba(252, 252, 242, .25); }
.cg-s2h-luz { display: flex; flex-direction: column; gap: .55rem; padding: .7rem .6rem; border-radius: 99px; background: #1d1430; box-shadow: inset 0 0 0 2px rgba(252, 252, 242, .12), 0 18px 30px -18px rgba(0, 0, 0, .6); }
.cg-s2h-luz i { width: 1.6rem; height: 1.6rem; border-radius: 50%; background: #3a2f4f; animation: cg-s2h-luz 6s infinite; }
.cg-s2h-luz i:nth-child(1) { --c: #e5484d; }
.cg-s2h-luz i:nth-child(2) { --c: #f2b43a; animation-delay: 2s; }
.cg-s2h-luz i:nth-child(3) { --c: #2eb98f; animation-delay: 4s; }
@keyframes cg-s2h-luz { 0%, 33% { background: var(--c); box-shadow: 0 0 14px var(--c); } 34%, 100% { background: #3a2f4f; box-shadow: none; } }
.cg-s2h-ficha dl { margin: 0; }
.cg-s2h-ficha dl > div { display: grid; grid-template-columns: 4.6rem 1fr; align-items: baseline; gap: .8rem; padding: .55rem 0; border-bottom: 1px solid rgba(252, 252, 242, .16); }
.cg-s2h-ficha dl > div:last-child { border-bottom: 0; }
.cg-s2h-ficha dt { margin: 0; font-size: 2.3rem; font-weight: 800; line-height: 1; letter-spacing: -.04em; color: #fcfcf2; }
.cg-s2h-ficha dt small { margin-left: .1em; font-size: .42em; letter-spacing: 0; color: #2eb98f; }
.cg-s2h-ficha dd { margin: 0; font-size: .92rem; line-height: 1.35; color: rgba(252, 252, 242, .78); }
.cg-s2h-pie { display: flex; justify-content: space-between; align-items: center; gap: .8rem 1.5rem; flex-wrap: wrap; margin: 2.4rem 0 0; padding: .9rem 0 0; border-top: 1px solid rgba(252, 252, 242, .25); }
.cg-s2h-pie ul { display: flex; flex-wrap: wrap; gap: .3rem 1.4rem; margin: 0; padding: 0; list-style: none; }
.cg-s2h-pie li { position: relative; margin: 0; padding-left: 1.2rem; font-size: .8rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: #fcfcf2; }
.cg-s2h-pie li::before { content: "✓"; position: absolute; left: 0; color: #2eb98f; }
.cg-s2h-cont .cg-sem-contador { display: flex; flex-wrap: wrap; gap: .2rem 1.1rem; margin: 0; font-size: .86rem; color: rgba(252, 252, 242, .8); }
.cg-s2h-cont .cg-sem-contador-n b { color: #2eb98f; }
@media (max-width: 849px) {
	.cg-s2h-ficha { margin-top: 2rem; padding: 1.2rem 0 0; border-left: 0; border-top: 1px solid rgba(252, 252, 242, .25); }
}
@media (max-width: 549px) {
	.cg-s2h-cab { margin-bottom: 1.5rem; }
	.cg-s2h-cab span + span { display: none; }
	p.cg-s2h-lead { font-size: 1rem; }
	.cg-s2h-ficha { grid-template-columns: 1fr; }
	.cg-s2h-luz { flex-direction: row; justify-self: start; padding: .5rem .7rem; }
	.cg-s2h-ficha dt { font-size: 1.9rem; }
}
@media (prefers-reduced-motion: reduce) { .cg-s2h-luz i { animation: none; } .cg-s2h-luz i:nth-child(3) { background: #2eb98f; } }
.cg-s2h-ficha dt, .cg-s2h-ficha dd { text-transform: none; letter-spacing: normal; }
.cg-s2h-ficha dt { letter-spacing: -.04em; }
.cg-s2h-ficha dd { font-size: .95rem; font-weight: 500; }

/* Resultado · pie con acciones claras (siguientes acciones + alertas + calificación) */
.cg-s2-res-pie { display: block; padding: 0; }
.cg-s2-res-acciones { display: grid; grid-template-columns: auto 1fr 1fr; align-items: start; gap: 1rem 1.6rem; padding: 1.3rem 2rem; border-bottom: 1px solid #efedf3; background: #f7f5fa; }
p.cg-s2-pie-t { margin: 0 0 .35rem; font-size: .74rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: #4b2e83; }
.cg-s2-res-acciones > p.cg-s2-pie-t { align-self: center; margin: 0; max-width: 8em; line-height: 1.35; }
.cg-s2-accion { position: relative; }
.cg-s2-accion .button { margin: 0 0 .45rem; }
.cg-s2-accion > p { margin: 0; font-size: .82rem; line-height: 1.45; color: #666; }
.cg-s2 .cg-s2-print, .cg-s2 .cg-s2-reset-ask, .cg-s2 .cg-s2-reset { min-height: 2.8rem; padding: 0 1.3em; border-radius: 99px; font-size: .92rem; font-weight: 700; letter-spacing: normal; text-transform: none; }
.cg-s2 .cg-s2-print { border: 0; background: #4b2e83; color: #fff; }
.cg-s2 .cg-s2-print:hover { background: #3c2469; }
.cg-s2 .cg-s2-reset-ask { border: 1.5px solid #4b2e83; background: #fff; color: #4b2e83; }
.cg-s2 .cg-s2-reset-ask:hover, .cg-s2 .cg-s2-reset-ask[aria-expanded="true"] { background: #4b2e83; color: #fff; }
.cg-s2-confirma { margin: .7rem 0 0; padding: .9rem 1rem; border-left: 4px solid #d99a1e; border-radius: 0 12px 12px 0; background: #fff8e8; }
.cg-s2-confirma p { margin: 0 0 .6rem; font-size: .86rem; line-height: 1.5; color: #333; }
.cg-s2-confirma > div { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem 1rem; }
.cg-s2 .cg-s2-reset { min-height: 2.4rem; border: 0; background: #4b2e83; color: #fff; font-size: .86rem; }
.cg-s2 .cg-s2-confirma-no { min-height: 0; margin: 0; padding: 0; border: 0; background: none; font-size: .86rem; font-weight: 700; letter-spacing: normal; text-transform: none; color: #666; text-decoration: underline; cursor: pointer; }
.cg-s2-pie-cols { display: grid; grid-template-columns: 1.3fr 1fr; }
.cg-s2-pie-card { padding: 1.3rem 2rem 1.4rem; }
.cg-s2-pie-card + .cg-s2-pie-card { border-left: 1px solid #efedf3; }
p.cg-s2-pie-sub { margin: 0 0 .8rem; font-size: .86rem; line-height: 1.45; color: #666; }
@media (max-width: 849px) {
	.cg-s2-res-acciones { grid-template-columns: 1fr; padding: 1.2rem 1.1rem; }
	.cg-s2-res-acciones > p.cg-s2-pie-t { max-width: none; }
	.cg-s2-pie-cols { grid-template-columns: 1fr; }
	.cg-s2-pie-card { padding: 1.2rem 1.1rem; }
	.cg-s2-pie-card + .cg-s2-pie-card { border-left: 0; border-top: 1px solid #efedf3; }
	.cg-s2-accion .button { width: 100%; }
}
.cg-s2 .cg-s2-quien-x { min-height: 0; letter-spacing: normal; text-transform: none; }

/* Hoja PDF: una sola página con cualquier margen del diálogo (también «Mínimos») + pie con Aviso de Privacidad */
@media print {
	html, body { background: #fcfcf2 !important; }
	.cg-sem-pdf { height: 258mm !important; padding: 8mm 12mm 6mm !important; break-before: avoid; break-after: avoid; page-break-after: avoid; }
	.cg-sem-pdf-logo { height: 9.5mm; }
	.cg-sem-pdf-head { padding-bottom: 3mm; }
	.cg-sem-pdf-quien { margin-top: 2.5mm; }
	.cg-sem-pdf-quien + .cg-sem-pdf-hero { padding-top: 2.5mm; padding-bottom: 2.5mm; }
	.cg-sem-pdf-veredicto h1 { font-size: 19pt; }
	.cg-sem-pdf-poste i { width: 9.5mm; height: 9.5mm; }
	.cg-sem-pdf-score b { font-size: 26pt; }
	.cg-sem-pdf-cta { gap: 6mm; margin-top: 2.5mm; padding: 4mm 6mm; }
	.cg-sem-pdf-cta h2 { margin-bottom: 2.5mm; font-size: 13.5pt; }
	.cg-sem-pdf-qr span { width: 21mm; height: 21mm; }
	.cg-sem-pdf-pie { grid-template-columns: minmax(0, 1fr) 40mm; gap: 1.2mm 8mm; margin-top: 2.5mm; padding-top: 2.2mm; border-top: 1.5px solid #262626; font-size: 6.6pt; line-height: 1.4; color: #666; }
	.cg-sem-pdf-pie-legal p { margin: 0 0 .7mm; }
	.cg-sem-pdf-pie-links { display: flex; flex-direction: column; gap: .6mm; padding-left: 4mm; border-left: 1px solid rgba(38, 38, 38, .15); text-align: left; }
	.cg-sem-pdf-pie-links a { font-size: 7pt; font-weight: 700; color: #4b2e83; text-decoration: none; }
	.cg-sem-pdf-pie-links a.cg-sem-pdf-pie-aviso { color: #262626; text-decoration: underline; }
	.cg-sem-pdf-pie-firma { display: flex; justify-content: space-between; gap: 4mm; padding-top: 1.3mm; font-size: 6.2pt; color: #888; }
	.cg-sem-pdf-pie-firma a { font-weight: 700; color: #4b2e83; text-decoration: none; }
}
@media print { .cg-sem-pdf-plan ol.is-dos li { padding-top: .7mm !important; padding-bottom: .7mm !important; } }

/* Resultado · tarjeta «Tu siguiente paso» editorial y persuasiva */
.cg-s2-cta > div { padding: 1.6rem 1.5rem 1.4rem; border-radius: 20px; box-shadow: 0 24px 50px -30px rgba(38, 20, 70, .7); }
.cg-s2-cta p.cg-s2-mini { margin: 0 0 .6rem; padding-bottom: .55rem; border-bottom: 1px solid rgba(252, 252, 242, .2); font-size: .7rem; letter-spacing: .18em; }
.cg-s2-cta p.cg-s2-cta-t { margin: 0 0 1rem; font-size: 1.32rem; line-height: 1.22; letter-spacing: -.01em; }
ul.cg-s2-cta-pros { margin: 0 0 1.1rem; padding: 0; list-style: none; }
ul.cg-s2-cta-pros li { display: flex; gap: .55rem; align-items: flex-start; margin: 0 0 .5rem; font-size: .92rem; line-height: 1.4; color: rgba(252, 252, 242, .92); }
ul.cg-s2-cta-pros svg, p.cg-s2-cta-ok svg { flex: none; width: 1.15rem; height: 1.15rem; margin-top: .1em; fill: none; stroke: #2eb98f; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.cg-s2-boleto { position: relative; display: flex; flex-direction: column; gap: .15rem; margin: 0 0 1rem; padding: .85rem 1rem; border: 1.5px dashed rgba(252, 252, 242, .45); border-radius: 12px; background: rgba(252, 252, 242, .07); }
.cg-s2-boleto::before, .cg-s2-boleto::after { content: ""; position: absolute; top: 50%; width: 14px; height: 14px; margin-top: -7px; border-radius: 50%; background: var(--s2-mor); }
.cg-s2-boleto::before { left: -8px; } .cg-s2-boleto::after { right: -8px; }
.cg-s2-boleto-k { font-size: .68rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: #2eb98f; }
.cg-s2-boleto b { font-size: 1.05rem; line-height: 1.25; color: #fcfcf2; }
.cg-s2-boleto span:last-child { font-size: .84rem; color: rgba(252, 252, 242, .75); }
.cg-s2 .cg-s2-cta .button.cg-s2-btn, .cg-s2 .cg-s2-cta .cg-sem-nl-btn { display: flex; align-items: center; justify-content: center; gap: .3rem; width: 100%; min-height: 3.2rem; margin: 0 0 .5rem; padding: .7em 1.2em; border: 0; border-radius: 99px; background: #2eb98f; font-size: 1rem; font-weight: 800; line-height: 1.2; letter-spacing: normal; text-transform: none; white-space: normal; color: #0f3d30; box-shadow: 0 10px 22px -12px rgba(0, 0, 0, .55); transition: transform .2s ease, background .2s ease; }
.cg-s2 .cg-s2-cta .button.cg-s2-btn:hover, .cg-s2 .cg-s2-cta .cg-sem-nl-btn:hover { background: #fcfcf2; color: #4b2e83; transform: translateY(-2px); }
.cg-s2 .cg-s2-cta .button.cg-s2-btn--urgente { background: #25d366; color: #0f3d30; }
p.cg-s2-cta-nota { margin: 0 0 1rem; font-size: .78rem; line-height: 1.4; text-align: center; color: rgba(252, 252, 242, .7); }
p.cg-s2-cta-ok { display: flex; gap: .5rem; align-items: flex-start; margin: 0 0 1rem; padding: .7rem .85rem; border-radius: 12px; background: rgba(46, 185, 143, .18); font-size: .9rem; font-weight: 700; line-height: 1.4; color: #fcfcf2; }
.cg-s2-cta a.cg-s2-link { padding-top: .8rem; border-top: 1px solid rgba(252, 252, 242, .2); font-size: .88rem; }

/* ---------- Portada · franja de confianza editorial (2026-10-09) ---------- */
.cg-s2h-pie { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 1.15fr); gap: 1.4rem 2.4rem; align-items: stretch; margin: 2.6rem 0 0; padding: 1.8rem 0 0; border-top: 1px solid rgba(252, 252, 242, .18); }
ul.cg-s2h-garantias { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.4rem 2rem; margin: 0; padding: 0; list-style: none; }
ul.cg-s2h-garantias li { font-weight: 400; display: grid; grid-template-columns: auto 1fr; gap: .2rem .8rem; align-content: start; margin: 0; padding: 0; font-size: inherit; letter-spacing: 0; text-transform: none; }
ul.cg-s2h-garantias li::before { content: none; }
.cg-s2h-g-ico { grid-row: span 2; display: grid; place-items: center; width: 2.4rem; height: 2.4rem; border-radius: 12px; background: rgba(46, 185, 143, .16); color: #2eb98f; }
.cg-s2h-g-ico svg { width: 1.2rem; height: 1.2rem; }
ul.cg-s2h-garantias b { font-size: .98rem; line-height: 1.3; color: #fff; }
ul.cg-s2h-garantias span:not(.cg-s2h-g-ico) { font-weight: 400; font-size: .86rem; line-height: 1.5; color: rgba(252, 252, 242, .72); }
.cg-s2h-cont { display: flex; flex-direction: column; justify-content: center; padding: 1.1rem 1.3rem; border: 1px solid rgba(252, 252, 242, .16); border-radius: 18px; background: rgba(252, 252, 242, .06); }
p.cg-s2h-cont-k { margin: 0 0 .5rem; font-size: .68rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: rgba(252, 252, 242, .6); }
.cg-s2h-cont .cg-sem-contador { flex-direction: column; gap: .35rem; font-size: .88rem; color: rgba(252, 252, 242, .85); }
.cg-s2h-cont .cg-sem-contador-n b { display: inline-block; margin-right: .2rem; font-size: 1.9rem; font-weight: 900; line-height: 1; color: #2eb98f; }
.cg-s2h-cont .cg-sem-contador-r { color: rgba(252, 252, 242, .85); }
.cg-s2h-cont .cg-sem-contador-r i { color: #f5b942; font-style: normal; }
.cg-s2h-cont .cg-sem-contador-r b { color: #fff; }
@media (max-width: 849px) { .cg-s2h-pie { grid-template-columns: 1fr; } }
@media (max-width: 549px) { ul.cg-s2h-garantias { grid-template-columns: 1fr; } }
/* Calificación del Semáforo con 5 estrellas (relleno proporcional al promedio) */
.cg-sem-estrellas { position: relative; display: inline-block; font-style: normal; letter-spacing: .08em; line-height: 1; color: rgba(252, 252, 242, .25); vertical-align: -.05em; }
.cg-sem-estrellas-on { position: absolute; left: 0; top: 0; overflow: hidden; white-space: nowrap; color: #f5b942; }
.cg-sem-contador:not(.cg-sem-contador--hero) .cg-sem-estrellas { color: rgba(38, 38, 38, .2); }
.cg-s2h-cont .cg-sem-estrellas { font-size: 1.05rem; }
/* Capítulo 03 · Tu diagnóstico: encabezado sobre la herramienta (2026-10-09) */
.cg-s2-cap { max-width: 860px; margin: 0 auto 1.6rem; }
.cg-s2-cap h2.cg-display { margin: 0 0 .4rem; font-size: clamp(1.8rem, 3vw, 2.4rem); line-height: 1.12; }
.cg-s2-cap p:last-child { margin: 0; max-width: 40em; font-size: 1.02rem; line-height: 1.6; color: #555; }
/* La herramienta va en lila para separarse de las preguntas frecuentes (crema); el formulario sigue en blanco encima. */
.cg-s2-sec.cg-lz-sec--lila { border-top: 1px solid rgba(75, 46, 131, .1); }

/* ---------- 01 · Cómo se calcula, versión clara (2026-10-09) ----------
   Retícula única de 3 columnas iguales: los 3 pasos arriba y los 3 niveles abajo quedan alineados columna con columna,
   mismas alturas, mismos márgenes, numeración y etiquetas siempre en el mismo lugar. */
.cg-s2c-head { max-width: 46em; margin: 0 0 2.4rem; }
.cg-s2c-head h2.cg-display { margin: 0 0 .6rem; font-size: clamp(2rem, 3.3vw, 2.85rem) !important; line-height: 1.1; }
.cg-s2c-head p:last-child { margin: 0; font-size: 1.06rem; line-height: 1.6; color: #555; }
ol.cg-s2c-pasos, .cg-s2c-escala { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; align-items: stretch; margin: 0; padding: 0; list-style: none; }
ol.cg-s2c-pasos > li { display: flex; flex-direction: column; margin: 0; padding: 1.5rem 1.5rem 1.4rem; border: 1px solid rgba(38, 38, 38, .1); border-radius: 18px; background: #fff; }
.cg-s2c-n { display: grid; place-items: center; width: 2.2rem; height: 2.2rem; margin-bottom: 1rem; border-radius: 50%; background: #4b2e83; font-size: .95rem; font-weight: 800; color: #fff; }
ol.cg-s2c-pasos > li > b { display: block; margin-bottom: .5rem; font-size: 1.15rem; line-height: 1.25; color: #262626; }
ol.cg-s2c-pasos p { margin: 0; font-size: .95rem; line-height: 1.6; color: #555; }
ol.cg-s2c-pasos strong { color: #262626; }
ol.cg-s2c-pasos ul { margin: .7rem 0 0; padding: 0; list-style: none; }
ol.cg-s2c-pasos ul li { position: relative; margin: 0; padding: .4rem 0 .4rem 1.3rem; border-top: 1px solid rgba(38, 38, 38, .08); font-size: .9rem; line-height: 1.4; color: #333; }
ol.cg-s2c-pasos ul li::before { content: ""; position: absolute; left: 0; top: .78rem; width: .55rem; height: .55rem; border-radius: 50%; background: #b3261e; }
p.cg-s2c-k { margin: 2.6rem 0 1rem; font-size: .72rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: #8a8a8a; }
.cg-s2c-nivel { display: flex; flex-direction: column; padding: 0 1.5rem 1.4rem; border-radius: 18px; background: #fcfcf2; overflow: hidden; }
.cg-s2c-nivel::before { content: ""; display: block; height: 6px; margin: 0 -1.5rem 1.2rem; }
.cg-s2c-nivel--optimo::before { background: #1e7f61; }
.cg-s2c-nivel--moderado::before { background: #d99a1e; }
.cg-s2c-nivel--critico::before { background: #b3261e; }
p.cg-s2c-pts { margin: 0 0 .35rem; font-size: .78rem; font-weight: 800; letter-spacing: .04em; color: #8a8a8a; }
.cg-s2c-nivel > b { display: flex; align-items: center; gap: .5rem; margin-bottom: .5rem; font-size: 1.3rem; color: #262626; }
.cg-s2c-nivel > b i { width: 14px; height: 14px; border-radius: 50%; }
.cg-s2c-nivel--optimo > b i { background: #1e7f61; }
.cg-s2c-nivel--moderado > b i { background: #d99a1e; }
.cg-s2c-nivel--critico > b i { background: #b3261e; }
.cg-s2c-nivel > p { margin: 0; font-size: .95rem; line-height: 1.55; color: #555; }
p.cg-s2c-sigue { margin-top: auto !important; padding-top: 1rem; font-size: .9rem !important; color: #333 !important; }
p.cg-s2c-sigue span { display: block; margin-bottom: .2rem; font-size: .68rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: #4b2e83; }
@media (max-width: 849px) { ol.cg-s2c-pasos, .cg-s2c-escala { grid-template-columns: 1fr; } }

/* ---------- Tarjeta «Tu siguiente paso»: días disponibles de esta semana (2026-10-09) ---------- */
.cgs-semana { margin: 0 0 .9rem; }
p.cgs-semana-k { margin: 0 0 .6rem; font-size: .78rem; font-weight: 800; letter-spacing: .04em; color: #b9f0dc; }
.cgs-semana-dias { display: grid; grid-template-columns: repeat(auto-fit, minmax(64px, 1fr)); gap: .5rem; margin-bottom: .8rem; }
.cgs-semana-cargando { grid-column: 1 / -1; padding: .9rem; border: 1px dashed rgba(252, 252, 242, .3); border-radius: 14px; font-size: .86rem; text-align: center; color: rgba(252, 252, 242, .75); }
.cg-s2 button.cgs-dia { display: flex; flex-direction: column; align-items: center; gap: .1rem; min-height: 0; margin: 0; padding: .65rem .3rem .6rem; border: 0; border-radius: 14px; background: #fff; font-size: inherit; font-weight: 400; letter-spacing: 0; line-height: 1.15; text-transform: none; color: #262626; cursor: pointer; transition: transform .15s, background .15s, box-shadow .15s; }
.cg-s2 button.cgs-dia small { font-size: .7rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: #4b2e83; }
.cg-s2 button.cgs-dia b { font-size: 1.45rem; font-weight: 900; color: #262626; }
.cg-s2 button.cgs-dia span { font-size: .68rem; font-weight: 700; color: #1e7f61; }
.cg-s2 button.cgs-dia:hover, .cg-s2 button.cgs-dia:focus-visible { transform: translateY(-2px); background: #2eb98f; box-shadow: 0 10px 22px -12px rgba(0, 0, 0, .5); }
.cg-s2 button.cgs-dia:hover small, .cg-s2 button.cgs-dia:hover b, .cg-s2 button.cgs-dia:hover span,
.cg-s2 button.cgs-dia:focus-visible small, .cg-s2 button.cgs-dia:focus-visible b, .cg-s2 button.cgs-dia:focus-visible span { color: #0f3d30; }
.cg-s2 button.cgs-dia:focus-visible { outline: 3px solid #fff; outline-offset: 2px; }
.cgs-semana .cg-s2-cta-nota { margin: 0 0 .5rem; }
a.cgs-semana-todos { display: inline-block; margin-bottom: .6rem; }

/* ---------- Ficha «Diagnóstico de…» con ícono de usuario (2026-10-09) ---------- */
p.cg-s2-quien { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: .3rem 1rem; margin: 0 0 1.2rem; padding: .9rem 1rem; border: 1px solid rgba(75, 46, 131, .14); border-radius: 16px; background: #f7f5fb; font-weight: 400; }
.cg-s2-quien-ico { display: grid; place-items: center; width: 2.6rem; height: 2.6rem; border-radius: 50%; background: #4b2e83; color: #fff; }
.cg-s2-quien-ico svg { width: 1.25rem; height: 1.25rem; }
.cg-s2-quien-txt { display: grid; gap: .1rem; min-width: 0; }
.cg-s2-quien-txt small { font-size: .66rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: #8a7bb0; }
.cg-s2-quien-txt b { font-size: 1rem; line-height: 1.25; color: #262626; }
.cg-s2-quien-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem .6rem; font-size: .82rem; color: #555; }
.cg-s2-quien-emp { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 100%; }
.cg-s2-quien-folio { padding: .1rem .55rem; border-radius: 99px; background: #fff; box-shadow: inset 0 0 0 1px rgba(75, 46, 131, .2); font-size: .74rem; font-weight: 800; letter-spacing: .03em; color: #4b2e83; }
.cg-s2 .cg-s2-quien-x { display: inline-flex; align-items: center; gap: .4rem; padding: .45rem .8rem; border: 1px solid rgba(38, 38, 38, .15); border-radius: 99px; background: #fff; font-size: .8rem; font-weight: 700; color: #555; text-decoration: none; }
.cg-s2 .cg-s2-quien-x svg { width: .95rem; height: .95rem; }
.cg-s2 .cg-s2-quien-x:hover { border-color: #4b2e83; color: #4b2e83; }
@media (max-width: 549px) { p.cg-s2-quien { grid-template-columns: auto 1fr; } .cg-s2 .cg-s2-quien-x { grid-column: 1 / -1; justify-self: start; } }

/* ---------- Continuidad desde el hero de /empresas/ (2026-10-09): portada con la pregunta 1, recorrido y «Pregunta 1 respondida» ---------- */
.cg-s2h--p1 .cg-display.cg-s2h-h1 { font-size: clamp(2.2rem, 4.3vw, 3.7rem) !important; line-height: 1.02; letter-spacing: -.035em; }
.cg-s2h--p1 .cg-s2h-h1 em { margin-top: .15em; }
.cg-s2h--p1 p.cg-s2h-lead { max-width: 30em; }
.cg-s2h--p1 .cg-vt-p1 { max-width: none; margin: 0; padding: 1.35rem 1.35rem 1.1rem; background: rgba(20, 10, 45, .38); }
.cg-s2h--p1 p.cg-vt-p1-q { font-size: 1.4rem; }
.cg-s2h--p1 .cg-lz-hero-alt { margin-top: .9rem; }
ul.cg-s2h-llevas { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; max-width: 34rem; margin: 1.8rem 0 0; padding: 1.1rem 0 0; border-top: 1px solid rgba(252, 252, 242, .2); list-style: none; }
ul.cg-s2h-llevas li { display: grid; gap: .15rem; margin: 0; font-size: .82rem; line-height: 1.35; color: rgba(252, 252, 242, .72); }
ul.cg-s2h-llevas b { font-size: .95rem; color: #fcfcf2; }
.cg-s2h-llevas-ico { justify-self: start; display: inline-grid; place-items: center; width: 2.2rem; height: 2.2rem; margin-bottom: .35rem; border-radius: 12px; background: rgba(252, 252, 242, .1); font-size: 1.2rem; font-weight: 800; color: #2eb98f; }
.cg-s2h-llevas-ico svg { width: 1.15rem; height: 1.15rem; }
.cg-s2h-llevas-luz { display: inline-flex; gap: 3px; width: auto; padding: 0 .55rem; }
.cg-s2h-llevas-luz i { width: 8px; height: 8px; border-radius: 50%; background: #e5484d; }
.cg-s2h-llevas-luz i:nth-child(2) { background: #f2b43a; }
.cg-s2h-llevas-luz i:nth-child(3) { background: #2eb98f; }
@media (max-width: 849px) {
	.cg-s2h--p1 .cg-vt-p1 { margin-top: 1.6rem; }
}
@media (max-width: 549px) {
	ul.cg-s2h-llevas { gap: .7rem; }
	ul.cg-s2h-llevas li { font-size: .74rem; }
	ul.cg-s2h-llevas b { font-size: .84rem; }
	.cg-s2h--p1 p.cg-vt-p1-q { font-size: 1.15rem; }
}

/* Recorrido: Pregunta 1 · Tus datos · Tus preguntas · Tu resultado */
ol.cg-s2-ruta { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .5rem; margin: 0 0 1rem; padding: 0; list-style: none; counter-reset: none; }
ol.cg-s2-ruta li { position: relative; display: flex; align-items: center; gap: .6rem; margin: 0; padding: .65rem .75rem; border-radius: 14px; background: rgba(255, 255, 255, .55); box-shadow: inset 0 0 0 1px rgba(75, 46, 131, .1); color: #6b6478; transition: background .25s, box-shadow .25s, color .25s; }
ol.cg-s2-ruta li > i { flex: none; display: grid; place-items: center; width: 1.8rem; height: 1.8rem; border-radius: 50%; background: #ece9f2; font-style: normal; font-size: .82rem; font-weight: 800; color: #4b2e83; }
ol.cg-s2-ruta li > i svg { display: none; width: 1rem; height: 1rem; fill: none; stroke: currentColor; stroke-width: 2.6; stroke-linecap: round; stroke-linejoin: round; }
ol.cg-s2-ruta li > span { display: grid; min-width: 0; line-height: 1.2; }
ol.cg-s2-ruta b { font-size: .86rem; color: inherit; }
ol.cg-s2-ruta small { overflow: hidden; font-size: .72rem; text-overflow: ellipsis; white-space: nowrap; opacity: .85; }
ol.cg-s2-ruta li.is-hecho { color: #1e7f61; }
ol.cg-s2-ruta li.is-hecho > i { background: #1e7f61; color: #fff; }
ol.cg-s2-ruta li.is-hecho > i span { display: none; }
ol.cg-s2-ruta li.is-hecho > i svg { display: block; }
ol.cg-s2-ruta li.is-actual { background: #fff; box-shadow: inset 0 0 0 2px #4b2e83, 0 10px 24px -16px rgba(75, 46, 131, .6); color: #262626; }
ol.cg-s2-ruta li.is-actual > i { background: #4b2e83; color: #fff; }
@media (max-width: 849px) {
	ol.cg-s2-ruta { gap: .35rem; }
	ol.cg-s2-ruta li { flex-direction: column; align-items: flex-start; gap: .35rem; padding: .55rem .6rem; }
	ol.cg-s2-ruta small { display: none; }
}
@media (max-width: 549px) {
	ol.cg-s2-ruta li { align-items: center; text-align: center; }
	ol.cg-s2-ruta b { font-size: .72rem; }
	ol.cg-s2-ruta li > i { width: 1.6rem; height: 1.6rem; }
}

/* «Pregunta 1 respondida» con opción de cambiarla */
.cg-s2-p1 { display: grid; grid-template-columns: 1fr; gap: .2rem; margin: 0 0 1rem; padding: .85rem 1.1rem; border-left: 4px solid #1e7f61; border-radius: 4px 16px 16px 4px; background: #fff; box-shadow: 0 0 0 1px rgba(30, 127, 97, .16); }
p.cg-s2-p1-k { display: flex; align-items: center; gap: .45rem; margin: 0; font-size: .7rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: #1e7f61; }
.cg-s2-p1-ok { display: grid; place-items: center; width: 1.15rem; height: 1.15rem; border-radius: 50%; background: #1e7f61; color: #fff; }
.cg-s2-p1-ok svg { width: .75rem; height: .75rem; fill: none; stroke: currentColor; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
p.cg-s2-p1-r { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .3rem 1rem; margin: 0; font-size: 1.02rem; line-height: 1.4; color: #262626; }
.cg-s2 .cg-s2-p1-cambiar { margin: 0; padding: .2rem 0; border: 0; background: none; font-size: .84rem; font-weight: 700; letter-spacing: 0; text-transform: none; color: #4b2e83; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.cg-s2 .cg-s2-p1-cambiar:hover { color: #2e1a55; }
.cg-s2-p1-ops { display: grid; gap: .45rem; margin: .6rem 0 .2rem; }
.cg-s2 .cg-s2-p1-ops button { margin: 0; padding: .65rem .9rem; border: 2px solid #e3dfe9; border-radius: 12px; background: #fcfcf2; font-size: .95rem; font-weight: 700; line-height: 1.3; letter-spacing: 0; text-align: left; text-transform: none; color: #262626; cursor: pointer; }
.cg-s2 .cg-s2-p1-ops button:hover, .cg-s2 .cg-s2-p1-ops button:focus-visible { border-color: #4b2e83; }
.cg-s2 .cg-s2-p1-ops button.is-on { border-color: #1e7f61; background: #eaf6f1; }
p.cg-s2-p1-urg { margin: .5rem 0 0; padding: .6rem .8rem; border-radius: 10px; background: #fdeceb; font-size: .88rem; line-height: 1.5; color: #7a1a14; }
p.cg-s2-p1-urg a { font-weight: 800; color: #b3261e; }
.cg-s2-p1.is-urgente { border-left-color: #b3261e; }
@media (prefers-reduced-motion: reduce) { ol.cg-s2-ruta li { transition: none; } }

/* =====================================================================
   Landings de Personas del plan v2 (verde = personas; texto tinta #0f3d30; sin verde oscuro).
   ===================================================================== */
.cg-lz-hero--persona .cg-lz-btn, .cg-lz-hero--persona .button.cg-lz-btn { box-shadow: 0 14px 28px -14px rgba(23, 121, 91, .7); }
.cg-lz-hero--persona .cg-lz-res, .cg-lz-hero--persona .cg-lz-ruta { background: #fff; box-shadow: 0 30px 60px -28px rgba(15, 61, 48, .45); }
.cg-lz-hero--persona .cg-lz-nota { color: #234b40; }
.cg-lz-hero--persona .cg-lz-hero-alt { color: #0f3d30; }
.cg-lz-hero--persona .cg-lz-hero-alt a { color: #17795b; }
.cg-lz-hero-extra { margin-top: 1.1em; }
.cg-lz-hero-extra .cg-jub-herramientas { margin: 0 0 .4em; }
.cg-lz-cinta .cgm-marquee { --cgm-icon-color: #17795b; }

/* Credibilidad: sello de la Garantía */
.cg-lz-sello { display: flex; align-items: center; gap: 1rem; margin: .4rem 0 1.2rem; padding: .9rem 1.1rem; border-radius: 16px; background: #e6f7f0; color: #0f3d30; }
.cg-lz-sello:hover { color: #0f3d30; background: #d9f2e7; }
.cg-lz-sello img { flex: none; width: 64px; height: auto; }
.cg-lz-sello b { display: block; font-size: 1.05rem; }
.cg-lz-sello span { font-size: .9rem; line-height: 1.45; }
.cg-lz-sello u { font-weight: 700; color: #17795b; }

/* Tu vida en regla */
.cg-lz-vida { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.cg-lz-vida-i { display: flex; flex-direction: column; gap: .3rem; padding: 1.3rem 1.3rem 1.2rem; border-radius: 16px; background: #fff; color: #0f3d30; box-shadow: 0 12px 26px -22px rgba(15, 61, 48, .6); transition: transform .25s ease; }
.cg-lz-vida-i:hover { color: #0f3d30; transform: translateY(-3px); }
.cg-lz-vida-ico { font-size: 1.6rem; }
.cg-lz-vida-i b { font-size: 1.08rem; }
.cg-lz-vida-i > span:last-child { font-size: .92rem; line-height: 1.5; color: #3d5c53; }
@media (max-width: 849px) { .cg-lz-vida { grid-template-columns: 1fr 1fr; } }
@media (max-width: 549px) { .cg-lz-vida { grid-template-columns: 1fr; } }

/* Colores verdes para componentes compartidos dentro de páginas de personas */
.cg-lz-hero--persona ~ .cg-lz .cg-lz-n, .cg-lz-sec--menta .cg-lz-n { color: #17795b; }
.cg-lz-tabs--persona .nav-pills > li.active > a { background: #2eb98f; color: #0f3d30; }
.cg-lz-tabs--persona p.cg-lz-ruta-q { border-left-color: #2eb98f; }
.cg-lz-tabs--persona .cg-lz-serv { background: #fff; box-shadow: inset 0 0 0 1px rgba(30, 127, 97, .14); }
.cg-lz-tabs--persona .cg-lz-serv li::before, .cg-lz-tabs--persona .cg-lz-n { color: #17795b; }
.cg-lz-hero--persona ~ .cg-lz-faq .accordion-title:hover, .cg-lz-hero--persona ~ .cg-lz-faq .accordion-title.active { color: #17795b; }
.cg-lz-hero--persona ~ .cg-lz-faq .accordion-title.active::after { border-color: #2eb98f; background: #2eb98f; color: #0f3d30; }
.cg-lz-hero--persona ~ .cg-lz-faq .accordion-inner a, .cg-lz-hero--persona ~ .cg-lz-faq .cg-faq-head a { color: #17795b; }
.cg-lz-hero--persona ~ .cg-lz .cg-display em { color: #17795b; }

/* Retiro · fases */
.cg-lz-fases { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; }
.cg-lz-fase { position: relative; display: flex; flex-direction: column; padding: 1.8rem 1.6rem 1.4rem; border-radius: 20px; background: #fff; box-shadow: 0 16px 34px -26px rgba(15, 61, 48, .6); }
.cg-lz-fase--2 { box-shadow: inset 0 0 0 2px #2eb98f, 0 16px 34px -26px rgba(15, 61, 48, .6); }
.cg-lz-fase-n { align-self: flex-start; padding: .25em .8em; border-radius: 99px; background: #e6f7f0; font-size: .78rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: #17795b; }
.cg-lz-fase--2 .cg-lz-fase-n { background: #2eb98f; color: #0f3d30; }
.cg-lz-fase > b { margin: .7em 0 .3em; font-size: 1.4rem; line-height: 1.2; color: #0f3d30; }
.cg-lz-fase-donde { margin-bottom: .9em; font-size: .95rem; font-weight: 700; color: #17795b; }
.cg-lz-fase .cg-lz-check { flex: 1; }
.cg-lz-check li { position: relative; padding-left: 1.6em; }
.cg-lz-check li::before { content: "✓"; position: absolute; left: 0; top: .6em; font-weight: 800; color: #2eb98f; }
.cg-lz-familia .cg-lz-check li::before { color: #4b2e83; }
p.cg-lz-fase-fin { margin: 1em 0 0; padding-top: .9em; border-top: 1px dashed rgba(30, 127, 97, .35); font-size: .98rem; color: #234b40; }
@media (max-width: 849px) { .cg-lz-fases { grid-template-columns: 1fr; } }

/* Retiro · temporal o permanente */
.cg-lz-tp { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; margin-bottom: 1rem; }
.cg-lz-tp-i { padding: 1.8rem 1.6rem; border-radius: 20px; background: #fcfcf2; box-shadow: inset 0 0 0 1px rgba(30, 127, 97, .16); }
.cg-lz-tp-i--perm { background: #e6f7f0; }
.cg-lz-tp-tag { font-size: .78rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: #17795b; }
.cg-lz-tp-i > b { display: block; margin: .4em 0 .6em; font-size: 1.5rem; color: #0f3d30; }
@media (max-width: 849px) { .cg-lz-tp { grid-template-columns: 1fr; } }

/* Paquetes de personas: 3 columnas y el último en verde */
.cg-lz-incluye--3 { grid-template-columns: repeat(3, 1fr); }
.cg-lz-hero--persona ~ .cg-lz .cg-lz-incluye-i:last-child { background: #2eb98f; color: #0f3d30; }
.cg-lz-hero--persona ~ .cg-lz .cg-lz-incluye-i:last-child p { color: #0f3d30; }
.cg-lz-hero--persona ~ .cg-lz .cg-lz-incluye-i:last-child .cg-lz-plazo { border-top-color: rgba(15, 61, 48, .25); color: #0f3d30; }
.cg-lz-hero--persona ~ .cg-lz .cg-lz-incluye-i:last-child::before { color: #0f3d30; }
.cg-lz-hero--persona ~ .cg-lz .cg-lz-plazo { color: #17795b; }
.cg-lz-incluye--3 .cg-lz-incluye-i:nth-child(2n) { border-right: 1px solid rgba(38, 38, 38, .14); }
@media (max-width: 1099px) { .cg-lz-incluye--3 .cg-lz-incluye-i:last-child { grid-column: auto; margin-top: 0; border-radius: 0 0 16px 16px; } }
@media (max-width: 849px) { .cg-lz-incluye--3 { grid-template-columns: 1fr; } .cg-lz-incluye--3 .cg-lz-incluye-i { border-right: 0; } .cg-lz-incluye--3 .cg-lz-incluye-i:last-child { border-radius: 16px; margin-top: 1rem; } }

/* Retiro · webinar mensual */
.cg-lz-webinar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.4rem 2.4rem; padding: 2rem 2.2rem; border-radius: 22px; background: linear-gradient(120deg, #e6f7f0, #fcfcf2); }
.cg-lz-webinar > div { flex: 1 1 28em; }
.cg-lz-webinar h3 { margin: .2em 0 .4em; font-size: 1.6rem; line-height: 1.2; color: #0f3d30; }
.cg-lz-webinar p { margin: 0; font-size: 1rem; line-height: 1.6; color: #234b40; }
.cg-lz-webinar .cg-eyebrow { color: #17795b; }
@media (max-width: 549px) { .cg-lz-webinar { padding: 1.4rem 1.2rem; } }

/* Trabajo y familia · avisos de 90 días */
.cg-lz-avisos { display: grid; grid-template-columns: 1.4fr 1fr; gap: 1.6rem 2.4rem; align-items: center; padding: 2rem 2.2rem; border-radius: 22px; background: #fcfcf2; box-shadow: inset 0 0 0 1px rgba(30, 127, 97, .16); }
.cg-lz-avisos h3 { margin: .2em 0 .8em; font-size: 1.5rem; line-height: 1.25; color: #0f3d30; }
.cg-lz-avisos .cg-eyebrow { color: #17795b; }
.cg-lz-check--grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1.6rem; }
.cg-lz-check--grid b { display: block; color: #0f3d30; }
.cg-lz-avisos-cta { display: flex; flex-direction: column; gap: .8rem; align-items: flex-start; padding: 1.4rem; border-radius: 16px; background: #e6f7f0; }
.cg-lz-avisos-cta p { margin: 0; font-size: .98rem; line-height: 1.5; color: #234b40; }
@media (max-width: 849px) { .cg-lz-avisos { grid-template-columns: 1fr; padding: 1.4rem 1.2rem; } }
@media (max-width: 549px) { .cg-lz-check--grid { grid-template-columns: 1fr; } }

/* Trabajo y familia · ¿paga tu empresa? (morado: lleva a empresas) */
.cg-lz-paga { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.2rem 2.4rem; }
.cg-lz-paga > div { flex: 1 1 30em; }
.cg-lz-paga h3 { margin: .2em 0 .4em; font-size: 1.5rem; line-height: 1.25; color: #262626; }
.cg-lz-paga p { margin: 0; font-size: 1rem; line-height: 1.6; color: #444; }
.cg-lz-paga .cg-eyebrow { color: #4b2e83; }

/* Retiro: letra mínima de 18 px y alto contraste (personas de 55+) */
.cg-lz-grande { font-size: 18px; }
.cg-lz-grande p, .cg-lz-grande li, .cg-lz-grande .cg-lz-paso-d, .cg-lz-grande .cg-lz-recibe-i p, .cg-lz-grande .cg-lz-cred-i span,
.cg-lz-grande .cg-faq .accordion-inner p, .cg-lz-grande .cg-lz-incluye-i p, .cg-lz-grande .cg-lz-check li { font-size: max(1rem, 18px); color: #1f2d29; }
.cg-lz-grande .cg-lz-ruta-l small, .cg-lz-grande .cg-lz-nota, .cg-lz-grande .cg-indice-nota { font-size: 15px; }
html.cg-jub-grande .cg-lz-grande { font-size: 21px; }
html.cg-jub-grande .cg-lz-grande p, html.cg-jub-grande .cg-lz-grande li { font-size: 21px; }

.cg-lz-grande p.cg-eyebrow { font-size: .82rem; }
.cg-lz-grande p.cg-lz-hero-meta { font-size: .95rem; }
.cg-lz-grande p.cg-lz-nota, .cg-lz-grande p.cg-indice-nota { font-size: 15px; }
/* «Tu vida en regla»: íconos de línea verdes, sin fondo (antes emojis) */
.cg-lz-vida-ico { display: block; width: 2.2rem; height: 2.2rem; margin-bottom: .2rem; background: none; color: #17795b; }
.cg-lz-vida-ico svg { display: block; width: 100%; height: 100%; }
.cg-lz-vida-i:hover .cg-lz-vida-ico { color: #2eb98f; }


/* ===== Cierre de personas v2 (Personas, Retiro, Trabajo y familia): tarjeta menta editorial sobre crema ===== */
.cg-lz-cierre--persona, .cg-lz-cierre--persona .section-bg { background-color: #fcfcf2 !important; }
.cg-lz-cierre--persona .col-inner { position: relative; overflow: hidden; padding: 3.4rem 3rem 3rem; border-radius: 28px; background: #e6f7f0; box-shadow: inset 0 0 0 1px rgba(46, 185, 143, .25), 0 30px 60px -40px rgba(15, 61, 48, .45); }
.cg-lz-cierre--persona .col-inner::before { content: ""; position: absolute; right: -10px; top: -10px; width: 300px; height: 230px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 230'%3E%3Cpath d='M10 220 C 90 200, 120 120, 190 110 S 260 60, 262 38' fill='none' stroke='%232eb98f' stroke-width='3' stroke-dasharray='3 10' stroke-linecap='round' opacity='.55'/%3E%3Cpath d='M262 14c-10 0-17 7.6-17 17 0 12.5 17 30 17 30s17-17.5 17-30c0-9.4-7-17-17-17z' fill='%232eb98f' opacity='.85'/%3E%3Ccircle cx='262' cy='31' r='6' fill='%23e6f7f0'/%3E%3C/svg%3E") no-repeat right top / contain; pointer-events: none; }
.cg-lz-cierre--persona .col-inner::after { content: "CDMX"; position: absolute; right: 22px; top: 76px; font-size: .68rem; font-weight: 800; letter-spacing: .2em; color: #17795b; opacity: .8; }
.cg-lz-cierre--persona .cg-lz-cierre-in { position: relative; }
.cg-lz-cierre--persona .cg-eyebrow { color: #17795b; }
.cg-lz-cierre--persona .cg-eyebrow::before { background: #17795b; }
.cg-lz-cierre--persona .cg-display { color: #0f3d30; letter-spacing: -.03em; }
.cg-lz-cierre--persona .cg-display em { color: #17795b; }
.cg-lz-cierre--persona p.cg-lz-cierre-p { color: #234b40; }
.cg-lz-cierre--persona .button.cg-lz-btn, .cg-lz-cierre--persona .button.cg-lz-btn:hover { min-height: 3.6rem; padding: 0 2.2em; border: 0; background: #2eb98f !important; color: #fff !important; text-shadow: 0 1px 2px rgba(15, 61, 48, .35); box-shadow: 0 14px 28px -14px rgba(15, 61, 48, .6) !important; }
.cg-lz-cierre--persona .button.cg-lz-btn:hover { background: #27a47e !important; transform: translateY(-2px); }
.cg-lz-cierre--persona p.cg-lz-cierre-alt { margin-top: 1.6rem; padding-top: 1.2rem; border-top: 1px solid rgba(15, 61, 48, .15); }
.cg-lz-cierre--persona .cg-lz-cierre-alt a { color: #0f3d30; opacity: 1; text-decoration-color: rgba(23, 121, 91, .5); }
.cg-lz-cierre--persona .cg-lz-cierre-alt a:hover { color: #17795b; }
@media (max-width: 849px) {
	.cg-lz-cierre--persona .col-inner { padding: 2.6rem 1.4rem 2.2rem; border-radius: 22px; }
	.cg-lz-cierre--persona .col-inner::before { width: 170px; height: 130px; opacity: .6; }
	.cg-lz-cierre--persona .col-inner::after { top: 46px; right: 14px; font-size: .6rem; }
}
.cg-lz-cierre--persona .col-inner::before { width: 220px; height: 170px; opacity: .8; }
.cg-lz-cierre--persona .col-inner::after { top: 58px; }
@media (max-width: 849px) { .cg-lz-cierre--persona .col-inner::before { width: 130px; height: 100px; } .cg-lz-cierre--persona .col-inner::after { top: 36px; } }


/* ===== «¿Qué te trae a México?» v2 (personas): fichas editoriales iguales, ícono + número, palomitas, barra de acción y pie de confianza ===== */
.cg-lz-caso--persona, .cg-lz-caso--persona-2, .cg-lz-caso--persona:hover, .cg-lz-caso--persona-2:hover { padding: 1.6rem 1.6rem 0; overflow: hidden; border-radius: 22px; background: #fff; color: #0f3d30; box-shadow: inset 0 0 0 1px #d5e7df, inset 0 5px 0 #2eb98f; transition: transform .25s ease, box-shadow .25s ease; }
.cg-lz-caso--persona:hover, .cg-lz-caso--persona-2:hover { transform: translateY(-4px); box-shadow: inset 0 0 0 1.5px #2eb98f, inset 0 5px 0 #2eb98f, 0 26px 44px -28px rgba(15, 61, 48, .55); }
.cg-lz-caso-cab { display: flex; align-items: center; justify-content: space-between; margin: .3rem 0 1.1rem; }
.cg-lz-caso-ico { display: grid; place-items: center; width: 3.2rem; height: 3.2rem; border-radius: 50%; background: #e6f7f0; color: #17795b; transition: background .25s ease, color .25s ease; }
.cg-lz-caso-ico svg { width: 1.6rem; height: 1.6rem; }
.cg-lz-caso:hover .cg-lz-caso-ico { background: #2eb98f; color: #fff; }
.cg-lz-caso-n { font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: .8rem; font-weight: 700; color: #8aa59c; }
.cg-lz-caso--persona .cg-lz-caso-tag, .cg-lz-caso--persona-2 .cg-lz-caso-tag { color: #17795b; opacity: 1; }
.cg-lz-caso--persona .cg-lz-caso-t, .cg-lz-caso--persona-2 .cg-lz-caso-t { margin: .45em 0 .4em; font-size: 1.45rem; color: #0f3d30; }
.cg-lz-caso--persona .cg-lz-caso-d, .cg-lz-caso--persona-2 .cg-lz-caso-d { color: #3d5a51; opacity: 1; }
.cg-lz-caso--persona ul, .cg-lz-caso--persona-2 ul { margin: 1.1em 0 1.4em; }
.cg-lz-caso--persona li, .cg-lz-caso--persona-2 li { padding: .5em 0 .5em 1.9em; border-top-color: #e6efeb; color: #1f2d29; }
.cg-lz-caso--persona li::before, .cg-lz-caso--persona-2 li::before { content: ""; top: .62em; width: 1.2em; height: 1.2em; border-radius: 50%; background: #e6f7f0 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2317795b' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6.5 12.5 3.5 3.5 7.5-8'/%3E%3C/svg%3E") no-repeat center / 70%; }
.cg-lz-caso--persona .cg-lz-caso-ir, .cg-lz-caso--persona-2 .cg-lz-caso-ir { display: flex; justify-content: space-between; align-items: center; margin: 0 -1.6rem; padding: 1rem 1.6rem; border-top: 1px solid #e6efeb; background: #fafdfb; color: #0f3d30; transition: background .25s ease, color .25s ease; }
.cg-lz-caso--persona .cg-lz-caso-ir i, .cg-lz-caso--persona-2 .cg-lz-caso-ir i { display: grid; place-items: center; width: 2.2rem; height: 2.2rem; border-radius: 50%; background: #e6f7f0; color: #17795b; transition: transform .25s ease, background .25s ease, color .25s ease; }
.cg-lz-caso--persona:hover .cg-lz-caso-ir, .cg-lz-caso--persona-2:hover .cg-lz-caso-ir { background: #e6f7f0; }
.cg-lz-caso--persona:hover .cg-lz-caso-ir i, .cg-lz-caso--persona-2:hover .cg-lz-caso-ir i { background: #2eb98f; color: #fff; transform: translateX(4px); }
p.cg-lz-casos-pie { display: flex; flex-wrap: wrap; align-items: center; gap: .7rem 1.4rem; margin: 1.6rem 0 0; padding: 1rem 1.3rem; border-radius: 16px; background: #e6f7f0; font-size: .95rem; line-height: 1.5; color: #234b40; }
p.cg-lz-casos-pie > svg { flex: none; width: 1.3rem; height: 1.3rem; color: #17795b; }
p.cg-lz-casos-pie > span { flex: 1 1 26em; }
p.cg-lz-casos-pie b { color: #0f3d30; }
p.cg-lz-casos-pie span a { font-weight: 700; color: #17795b; text-decoration: underline; }
a.cg-lz-casos-pie-ir { flex: none; padding: .7em 1.4em; border-radius: 99px; background: #2eb98f; font-weight: 800; color: #fff; text-shadow: 0 1px 2px rgba(15, 61, 48, .35); transition: transform .2s ease, background .2s ease; }
a.cg-lz-casos-pie-ir:hover { background: #27a47e; color: #fff; transform: translateY(-2px); }
@media (max-width: 549px) { .cg-lz-caso--persona, .cg-lz-caso--persona-2 { padding: 1.3rem 1.3rem 0; } .cg-lz-caso--persona .cg-lz-caso-ir, .cg-lz-caso--persona-2 .cg-lz-caso-ir { margin: 0 -1.3rem; padding: .9rem 1.3rem; } a.cg-lz-casos-pie-ir { width: 100%; text-align: center; } }

/* =====================================================================
   Páginas de apoyo del plan v2: Contacto, Herramientas, Estadísticas migratorias.
   ===================================================================== */
/* Dos puertas (empresa morado / persona verde) */
p.cg-lz-dos-t { margin: 0 0 .6rem; font-size: .78rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: #777; }
.cg-lz-dos { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; }
.cg-lz-dos-i { position: relative; display: flex; flex-direction: column; gap: .15rem; padding: 1.1rem 2.4rem 1.1rem 1.2rem; border-radius: 16px; transition: transform .25s ease; }
.cg-lz-dos-i:hover { transform: translateY(-3px); }
.cg-lz-dos-i--empresa, .cg-lz-dos-i--empresa:hover { background: #4b2e83; color: #fcfcf2; }
.cg-lz-dos-i--persona, .cg-lz-dos-i--persona:hover { background: #2eb98f; color: #0f3d30; }
.cg-lz-dos-i span { font-size: .7rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; opacity: .8; }
.cg-lz-dos-i b { font-size: 1.1rem; line-height: 1.25; }
.cg-lz-dos-i small { font-size: .82rem; opacity: .85; }
.cg-lz-dos-i i { position: absolute; right: 1rem; top: 50%; margin-top: -.7em; font-style: normal; font-size: 1.3rem; }
@media (max-width: 549px) { .cg-lz-dos { grid-template-columns: 1fr; } }

/* Contacto · canales */
.cg-lz-canales { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; }
.cg-lz-canal { display: flex; flex-direction: column; gap: .2rem; padding: 1.4rem 1.3rem; border-radius: 16px; background: #fff; color: #262626; box-shadow: 0 12px 28px -22px rgba(38, 38, 38, .5), inset 0 0 0 1px rgba(38, 38, 38, .06); transition: transform .25s ease; }
.cg-lz-canal:hover { color: #262626; transform: translateY(-3px); }
.cg-lz-canal--wa { background: #25d366; color: #0f3d30; }
.cg-lz-canal--wa:hover { color: #0f3d30; }
.cg-lz-canal-k { font-size: .7rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; opacity: .7; }
.cg-lz-canal b { font-size: 1.25rem; }
.cg-lz-canal > span:nth-of-type(2) { font-weight: 700; }
.cg-lz-canal small { font-size: .86rem; opacity: .8; }
@media (max-width: 1099px) { .cg-lz-canales { grid-template-columns: 1fr 1fr; } }
@media (max-width: 549px) { .cg-lz-canales { grid-template-columns: 1fr; } }

/* Contacto · oficina */
.cg-lz-oficina { display: grid; grid-template-columns: 1fr 1fr; overflow: hidden; border-radius: 22px; background: #fff; box-shadow: 0 20px 50px -34px rgba(38, 38, 38, .5); }
.cg-lz-oficina-mapa { position: relative; min-height: 280px; background:
	linear-gradient(90deg, rgba(75, 46, 131, .08) 1px, transparent 1px) 0 0 / 28px 28px,
	linear-gradient(rgba(75, 46, 131, .08) 1px, transparent 1px) 0 0 / 28px 28px,
	linear-gradient(135deg, #f1eef5, #e6f7f0); }
.cg-lz-oficina-mapa::before { content: ""; position: absolute; left: -10%; right: -10%; top: 58%; height: 14px; background: #fff; transform: rotate(-12deg); box-shadow: 0 0 0 2px rgba(75, 46, 131, .08); }
.cg-lz-oficina-mapa::after { content: ""; position: absolute; top: -10%; bottom: -10%; left: 46%; width: 10px; background: #fff; transform: rotate(14deg); }
.cg-lz-pin { position: absolute; z-index: 1; left: 50%; top: 46%; width: 34px; height: 34px; margin: -34px 0 0 -17px; border-radius: 50% 50% 50% 0; background: #4b2e83; transform: rotate(-45deg); box-shadow: 0 10px 20px -6px rgba(75, 46, 131, .6); }
.cg-lz-pin::after { content: ""; position: absolute; left: 50%; top: 50%; width: 12px; height: 12px; margin: -6px 0 0 -6px; border-radius: 50%; background: #2eb98f; }
.cg-lz-oficina-txt { padding: 2rem 2.2rem; }
.cg-lz-oficina-txt h3 { margin: .2em 0 .5em; font-size: 1.6rem; color: #262626; }
.cg-lz-oficina-txt address { margin: 0 0 1rem; font-style: normal; font-size: 1.05rem; line-height: 1.55; color: #333; }
a.cg-lz-link { display: inline-block; margin-top: .8rem; font-weight: 800; color: #4b2e83; }
@media (max-width: 849px) { .cg-lz-oficina { grid-template-columns: 1fr; } .cg-lz-oficina-mapa { min-height: 180px; } .cg-lz-oficina-txt { padding: 1.4rem 1.2rem; } }

/* Herramientas: tarjeta de ambos públicos y "próximamente" */
.cg-lz-caso--ambos, .cg-lz-caso--ambos:hover { background: linear-gradient(135deg, #4b2e83 0 50%, #1e7f61 50% 100%); color: #fcfcf2; }
.cg-lz-caso--ambos .cg-lz-caso-tag { color: #fcfcf2; opacity: .9; }
.cg-lz-caso--pronto { background: #fcfcf2; color: #555; border: 2px dashed rgba(38, 38, 38, .18); cursor: default; }
.cg-lz-caso--pronto:hover { color: #555; transform: none; box-shadow: none; }
.cg-lz-caso--pronto .cg-lz-caso-tag { color: #b5651d; opacity: 1; }
.cg-lz-caso--pronto li { border-top-color: rgba(38, 38, 38, .1); }
.cg-lz-caso--pronto li::before { color: #999; }
p.cg-lz-enlaces { display: flex; flex-direction: column; gap: .5rem; margin: 0; }
.cg-lz-enlaces a { padding: .8rem 1rem; border-radius: 12px; background: #fcfcf2; font-weight: 800; color: #262626; box-shadow: inset 0 0 0 1px rgba(38, 38, 38, .08); }
.cg-lz-enlaces a:hover { color: #4b2e83; }

/* Estadísticas: cifras */
.cg-lz-cifras { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.4rem; }
@media (max-width: 849px) { .cg-lz-cifras { grid-template-columns: 1fr 1fr; } }
@media (max-width: 549px) { .cg-lz-cifras { grid-template-columns: 1fr; } }
.cg-mapa-sec .cg-eyebrow { color: #2eb98f; }

/* Partners · alianza de arranque y kit */
.cg-lz-alianza { display: grid; grid-template-columns: 1.1fr 1fr; gap: 1.6rem 3rem; align-items: start; }
.cg-lz-alianza p { font-size: 1.02rem; line-height: 1.6; color: #444; }
.cg-lz-alianza .cg-lz-check li { background: #fff; margin-bottom: .5rem; padding: .8rem 1rem .8rem 2.4rem; border: 0; border-radius: 12px; }
.cg-lz-alianza .cg-lz-check li::before { left: 1rem; top: .8rem; color: #4b2e83; }
.cg-lz-kit { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-bottom: 1rem; }
.cg-lz-kit-i { padding: 1.4rem 1.3rem; border-radius: 16px; background: #fcfcf2; box-shadow: inset 0 0 0 1px rgba(75, 46, 131, .1); }
.cg-lz-kit-i span { font-size: .72rem; font-weight: 800; letter-spacing: .14em; color: #4b2e83; }
.cg-lz-kit-i b { display: block; margin: .4em 0 .3em; font-size: 1.15rem; color: #262626; }
.cg-lz-kit-i p { margin: 0; font-size: .92rem; line-height: 1.55; color: #555; }
@media (max-width: 849px) { .cg-lz-alianza, .cg-lz-kit { grid-template-columns: 1fr; } }

/* Blog · filtro por público y guías pilar */
.cg-lz-filtro { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin-bottom: 1.4rem; }
.cg-lz-filtro span { margin-right: .3rem; font-size: .82rem; font-weight: 700; color: #777; }
.cg-lz-filtro a { padding: .45em 1em; border-radius: 99px; background: #fcfcf2; font-size: .9rem; font-weight: 700; color: #262626; box-shadow: inset 0 0 0 1px rgba(38, 38, 38, .12); }
.cg-lz-filtro a.cg-lz-filtro--e { background: #4b2e83; color: #fcfcf2; box-shadow: none; }
.cg-lz-filtro a.cg-lz-filtro--p { background: #2eb98f; color: #0f3d30; box-shadow: none; }
.cg-lz-guias { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; }
.cg-lz-guia { display: flex; flex-direction: column; gap: .4rem; padding: 1.4rem 1.3rem; border-radius: 16px; background: #fcfcf2; box-shadow: inset 0 4px 0 #4b2e83; }
.cg-lz-guia--persona { box-shadow: inset 0 4px 0 #2eb98f; background: #f3fbf7; }
.cg-lz-guia > span { font-size: .7rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: #4b2e83; }
.cg-lz-guia--persona > span { color: #17795b; }
.cg-lz-guia b { font-size: 1.12rem; line-height: 1.25; color: #262626; }
.cg-lz-guia p { flex: 1; margin: 0; font-size: .9rem; line-height: 1.5; color: #555; }
.cg-lz-guia a { font-weight: 800; color: #4b2e83; }
.cg-lz-guia--persona a { color: #17795b; }
.cg-lz-guia small { font-size: .78rem; color: #999; }
@media (max-width: 1099px) { .cg-lz-guias { grid-template-columns: 1fr 1fr; } }
@media (max-width: 549px) { .cg-lz-guias { grid-template-columns: 1fr; } }

/* Trabaja con nosotros · aviso para candidatos */
p.cg-vac-aviso { max-width: 760px; margin: 0 auto; padding: 0 16px 2.4rem; text-align: center; }
p.cg-vac-aviso a { font-weight: 700; color: #4b2e83; }


/* Contacto · portada editorial (cg-ct-*) */
.cg-ct-cabecera { display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin: 0 0 2.6rem; padding: 0 0 .9rem; border-bottom: 2px solid #262626; font-size: .74rem; font-weight: 800; letter-spacing: .2em; text-transform: uppercase; color: #262626; }
.cg-ct-cabecera span + span { font-weight: 600; letter-spacing: .14em; color: #6b6b6b; }
.cg-ct .cg-display.cg-ct-h1 { font-size: clamp(2.9rem, 7.4vw, 6.2rem) !important; line-height: .95; letter-spacing: -.045em; }
.cg-ct .cg-ct-h1 em { display: block; color: #4b2e83; }
.cg-ct-lead { max-width: 30em; margin: 1.6rem 0 0; padding-left: 1.1rem; border-left: 3px solid #2eb98f; font-size: 1.18rem; line-height: 1.55; color: #3d3d3d; }
.cg-ct-promesa { padding: 1.6rem 0 0 1.8rem; border-left: 1px solid rgba(38, 38, 38, .2); }
.cg-ct-promesa-k { font-size: .7rem; font-weight: 800; letter-spacing: .2em; text-transform: uppercase; color: #6b6b6b; }
p.cg-ct-cifra { margin: .1em 0 0; font-size: clamp(4.4rem, 8vw, 6.6rem); font-weight: 800; line-height: .9; letter-spacing: -.06em; color: #262626; }
p.cg-ct-cifra small { margin-left: .06em; font-size: .42em; letter-spacing: -.02em; color: #2eb98f; }
p.cg-ct-promesa-d { max-width: 17em; margin: .7rem 0 .9rem; font-size: 1rem; line-height: 1.45; color: #3d3d3d; }
p.cg-ct-promesa-h { margin: 0; padding-top: .7rem; border-top: 1px solid rgba(38, 38, 38, .14); font-size: .82rem; font-weight: 700; color: #6b6b6b; }

.cg-ct-indice { margin: 3.4rem 0 0; }
.cg-ct-indice-t { display: flex; justify-content: space-between; gap: 1rem; padding: 0 0 .8rem; border-bottom: 1px solid #262626; font-size: .72rem; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; color: #262626; }
.cg-ct-indice-t span + span { color: #8a8a8a; }
a.cg-ct-fila { display: grid; grid-template-columns: 3.4rem minmax(0, 1.25fr) minmax(0, 1.1fr) minmax(0, 1.3fr) 2rem; align-items: center; gap: 1.2rem; padding: 1.35rem .6rem 1.35rem 0; border-bottom: 1px solid rgba(38, 38, 38, .16); color: #262626; transition: background-color .25s ease, padding .25s ease; }
a.cg-ct-fila:hover { padding-left: .8rem; background: #fff; color: #262626; }
.cg-ct-n { font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: .85rem; font-weight: 700; color: #8a8a8a; }
.cg-ct-nombre small { display: block; font-size: .68rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: #8a8a8a; }
.cg-ct-nombre b { display: block; font-size: clamp(1.4rem, 2.3vw, 1.9rem); line-height: 1.1; letter-spacing: -.02em; }
.cg-ct-valor { font-size: 1.05rem; font-weight: 700; overflow-wrap: anywhere; }
.cg-ct-nota { font-size: .92rem; line-height: 1.45; color: #5a5a5a; }
a.cg-ct-fila i { font-style: normal; font-size: 1.4rem; text-align: right; transition: transform .25s ease; }
a.cg-ct-fila:hover i { transform: translateX(4px); }
a.cg-ct-fila--wa .cg-ct-n { display: inline-grid; place-items: center; width: 2.2rem; height: 2.2rem; border-radius: 50%; background: #25d366; color: #0f3d30; }
a.cg-ct-fila--wa .cg-ct-nombre small { color: #128c4a; }

.cg-ct-puertas { display: grid; grid-template-columns: 1fr 1fr; margin: 3rem 0 0; overflow: hidden; border-radius: 18px; }
p.cg-ct-puertas-t { grid-column: 1 / -1; margin: 0; padding: .9rem 1.4rem; background: #262626; font-size: .72rem; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; color: #fcfcf2; }
a.cg-ct-puerta { position: relative; display: block; padding: 1.6rem 4rem 1.7rem 1.4rem; transition: filter .25s ease; }
a.cg-ct-puerta:hover { filter: brightness(1.06); }
a.cg-ct-puerta--empresa, a.cg-ct-puerta--empresa:hover { background: #4b2e83; color: #fcfcf2; }
a.cg-ct-puerta--persona, a.cg-ct-puerta--persona:hover { background: #2eb98f; color: #0f3d30; }
a.cg-ct-puerta small { display: block; margin-bottom: .45rem; font-size: .74rem; font-weight: 700; letter-spacing: .06em; opacity: .85; }
a.cg-ct-puerta b { display: block; max-width: 18em; font-size: clamp(1.2rem, 2vw, 1.55rem); line-height: 1.2; letter-spacing: -.015em; }
a.cg-ct-puerta i { position: absolute; right: 1.4rem; top: 50%; margin-top: -.75em; font-style: normal; font-size: 1.6rem; transition: transform .25s ease; }
a.cg-ct-puerta:hover i { transform: translateX(4px); }

@media (max-width: 849px) {
	.cg-ct-promesa { display: grid; grid-template-columns: auto 1fr; column-gap: 1.2rem; align-items: end; margin-top: 2rem; padding: 1.2rem 0 0; border-left: 0; border-top: 1px solid rgba(38, 38, 38, .2); }
	.cg-ct-promesa-k, p.cg-ct-promesa-h { grid-column: 1 / -1; }
	a.cg-ct-fila { grid-template-columns: 2.8rem minmax(0, 1fr) 1.6rem; row-gap: .25rem; }
	a.cg-ct-fila .cg-ct-n { grid-row: 1 / 4; align-self: start; }
	.cg-ct-nombre, .cg-ct-valor, .cg-ct-nota { grid-column: 2; }
	a.cg-ct-fila i { grid-column: 3; grid-row: 1 / 4; }
}
@media (max-width: 549px) {
	.cg-ct-cabecera { margin-bottom: 1.6rem; }
	.cg-ct-cabecera span + span, .cg-ct-indice-t span + span { display: none; }
	.cg-ct-lead { font-size: 1.04rem; }
	.cg-ct-indice { margin-top: 2.4rem; }
	.cg-ct-puertas { grid-template-columns: 1fr; }
}

/* Conócenos · sello Garantía CG vivo (docs/conocenos/sello_vivo.py, .cg-sv-*) */
.cg-sv { position: relative; display: block; width: min(400px, 80vw); aspect-ratio: 1; margin: 0 auto; filter: drop-shadow(0 22px 40px rgba(0, 0, 0, .4)); }
.cg-sv svg { display: block; width: 100%; height: 100%; overflow: visible; }
.cg-sv g { transform-box: view-box; transform-origin: 150px 150px; }
.cg-sv-borde { animation: cg-sv-giro 48s linear infinite; }
.cg-sv-puntos { animation: cg-sv-giro 30s linear infinite reverse; }
.cg-sv-texto { animation: cg-sv-giro 26s linear infinite reverse; }
.cg-sv-texto text { font-family: Lato, sans-serif; font-size: 29px; font-weight: 700; letter-spacing: 1px; fill: #262626; }
.cg-sv-g { transform-origin: 145.5px 140px; animation: cg-sv-g 5s ease-in-out infinite; }
.cg-sv-arco { animation: cg-sv-arco 5s ease-in-out infinite; }
@keyframes cg-sv-giro { to { transform: rotate(360deg); } }
@keyframes cg-sv-g { 0%, 100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(-6deg); } }
@keyframes cg-sv-arco { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(5px); } }
.cg-sv:hover .cg-sv-borde, .cg-sv:hover .cg-sv-texto, .cg-sv:hover .cg-sv-puntos { animation-duration: 8s; }
/* Tamaños por lugar (reemplazan la imagen fija sello-garantia-cg.png) */
.cg-sello--oficial .cg-sv { width: min(380px, 80vw); }
.cg-sv.cg-con-sello-oficial { position: absolute; right: -26px; bottom: -34px; width: 112px; margin: 0; transform: rotate(-10deg); filter: drop-shadow(0 10px 18px rgba(38, 38, 38, .35)); }
.cg-sv.cg-mmn-sello-img { flex: none; width: 3.8rem; margin: 0; filter: none; }
.cg-lz-sello .cg-sv { flex: none; width: 72px; margin: 0; filter: drop-shadow(0 6px 12px rgba(15, 61, 48, .25)); }
.cg-legal-sello--oficial .cg-sv { width: 100%; margin: 0; filter: drop-shadow(0 8px 16px rgba(38, 38, 38, .25)); }
.cg-legal-sello--oficial { transform: none; }
@media (prefers-reduced-motion: reduce) { .cg-sv g { animation: none !important; } }

/* CTAs siempre con ícono según su acción (theme inc/cg-cta.php) */
.cg-cta-ico { display: inline-block; flex: none; width: 1.15em; height: 1.15em; margin: 0 0 0 .5em; vertical-align: -.22em; transition: transform .25s ease; }
.cg-cta--atras .cg-cta-ico { margin: 0 .5em 0 0; }
.cg-cta--flecha:hover .cg-cta-ico, .cg-cta--externo:hover .cg-cta-ico { transform: translateX(3px); }
.cg-cta--externo:hover .cg-cta-ico { transform: translate(2px, -2px); }
.cg-cta--atras:hover .cg-cta-ico { transform: translateX(-3px); }
.cg-cta--abajo:hover .cg-cta-ico, .cg-cta--descarga:hover .cg-cta-ico { transform: translateY(3px); }
.cg-cta--reloj:hover .cg-cta-ico, .cg-cta--campana:hover .cg-cta-ico { transform: rotate(-14deg); }
.cg-cta--agenda:hover .cg-cta-ico, .cg-cta--semaforo:hover .cg-cta-ico, .cg-cta--ruta:hover .cg-cta-ico, .cg-cta--documento:hover .cg-cta-ico,
.cg-cta--buscar:hover .cg-cta-ico, .cg-cta--equipo:hover .cg-cta-ico, .cg-cta--sumarse:hover .cg-cta-ico, .cg-cta--whatsapp:hover .cg-cta-ico,
.cg-cta--telefono:hover .cg-cta-ico, .cg-cta--correo:hover .cg-cta-ico, .cg-cta--play:hover .cg-cta-ico, .cg-cta--bolsa:hover .cg-cta-ico, .cg-cta--imprimir:hover .cg-cta-ico { transform: scale(1.15); }
.cg-cta--enviar:hover .cg-cta-ico, .cg-cta--acceso:hover .cg-cta-ico { transform: translate(2px, -2px); }
.cg-cta--cancelar:hover .cg-cta-ico { transform: rotate(90deg); }
@media (prefers-reduced-motion: reduce) { .cg-cta-ico { transition: none; } }

/* Casilla opcional de comunicaciones en todos los formularios (cg-forms 0.95.0, CGQ 1.3.0, comentarios) */
.cg-mkt-row { margin-top: .7rem !important; padding-top: .7rem; border-top: 1px dashed rgba(38, 38, 38, .2); }
.cg-mkt-row small, .cgg-check--opc small, .cgs-check--opc small, .cgq-legal small { font-size: .85em; font-weight: 500; color: #6b6b6b; }
.cgg-check--opc, .cgs-check--opc { margin-top: .5rem; padding-top: .6rem; border-top: 1px dashed rgba(38, 38, 38, .2); }
.cgq-legal { margin: 1rem 0; padding: 1rem 1.1rem; border-radius: 14px; background: #f5f3ee; }
.cgq-legal .form-row { margin: 0 0 .5rem; padding: 0; }
.cgq-legal .woocommerce-form__label-for-checkbox { display: flex; gap: .6rem; align-items: flex-start; font-size: .92rem; line-height: 1.5; }
.cgq-legal .woocommerce-form__label-for-checkbox input { flex: none; width: 20px; height: 20px; margin: .15em 0 0; accent-color: #4b2e83; }
.cgq-legal .cgq-legal-fila--opc { margin-top: .7rem; padding-top: .7rem; border-top: 1px dashed rgba(38, 38, 38, .2); }
.cg-com-legal { margin: .5rem 0 1rem; }
.cg-com-legal .comment-form-cg { display: flex; gap: .6rem; align-items: flex-start; margin: 0 0 .5rem; font-size: .92rem; }
.cg-com-legal input[type="checkbox"] { flex: none; margin-top: .25em; }

/* =====================================================================
   Cuestionario "Descubre tu ruta a la residencia mexicana" (.cg-ru-*)
   Personas: verde; texto base 18 px; botones de 48 px o más; celular primero (360 px).
   ===================================================================== */
.cg-ru { --ru-ver: #2eb98f; --ru-tinta: #0f3d30; --ru-txt: #17795b; --ru-menta: #e6f7f0; max-width: 820px; margin: 0 auto; font-size: 18px; color: #1f2d29; }
.cg-ru [hidden] { display: none !important; }
.cg-ru-memoria { margin: 0 0 1rem; padding: .8rem 1rem; border-radius: 12px; background: var(--ru-menta); font-size: .9em; color: var(--ru-tinta); }
.cg-ru-app, .cg-ru-res, .cg-ru-trazo { padding: 1.6rem 1.8rem 1.4rem; border-radius: 22px; background: #fff; box-shadow: 0 24px 60px -30px rgba(15, 61, 48, .45), 0 0 0 1px rgba(30, 127, 97, .1); }
.cg-ru-top { margin-bottom: 1.4rem; }
p.cg-ru-avance { margin: 0 0 .5rem; font-size: .8em; font-weight: 700; color: #666; }
.cg-ru-avance b { font-size: 1.2em; color: var(--ru-txt); }
.cg-ru-barra { height: 8px; overflow: hidden; border-radius: 99px; background: #e4f1ec; }
.cg-ru-barra b { display: block; height: 100%; border-radius: inherit; background: var(--ru-ver); transition: width .4s ease; }
p.cg-ru-k { margin: 0 0 .4rem; font-size: .72em; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--ru-txt); }
h3.cg-ru-q { margin: 0 0 .6rem; font-size: 1.45em; line-height: 1.3; color: var(--ru-tinta); outline: none; }
p.cg-ru-sub { margin: 0 0 1.2rem; font-size: .88em; line-height: 1.5; color: #4a5c56; }
.cg-ru-paso { animation: cg-ru-in .3s ease both; }
@keyframes cg-ru-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

/* Opciones */
.cg-ru-opts { display: grid; gap: .65rem; margin-top: .6rem; }
.cg-ru .cg-ru-opts button {
	display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: .1rem; width: 100%; min-height: 3.2rem; margin: 0; padding: .7em 1.1em .7em 3em;
	position: relative; border: 2px solid #d5e7df; border-radius: 14px; background: #fcfcf2; font-size: 1em; font-weight: 600; line-height: 1.3; letter-spacing: 0; text-align: left; text-transform: none; color: #1f2d29; cursor: pointer;
	transition: border-color .2s ease, background .2s ease;
}
.cg-ru .cg-ru-opts button::before { content: ""; position: absolute; left: 1em; top: 50%; width: 1.2em; height: 1.2em; margin-top: -.6em; border: 2px solid #b9d6ca; border-radius: 50%; background: #fff; }
.cg-ru .cg-ru-opts--multi button::before { border-radius: 5px; }
.cg-ru .cg-ru-opts button:hover { border-color: var(--ru-ver); }
.cg-ru .cg-ru-opts button.is-on { border-color: var(--ru-ver); background: var(--ru-menta); color: var(--ru-tinta); }
.cg-ru .cg-ru-opts button.is-on::before { border-color: var(--ru-ver); background: var(--ru-ver); box-shadow: inset 0 0 0 3px #fff; }
.cg-ru .cg-ru-opts button:focus-visible { outline: 3px solid rgba(46, 185, 143, .45); outline-offset: 2px; }
.cg-ru-opts button small { font-size: .78em; font-weight: 500; color: #5c6f69; }
.cg-ru .button.cg-ru-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 3.2rem; margin: 1.2rem 0 0; padding: 0 2em; border: 0; border-radius: 99px; background: var(--ru-ver); font-size: 1em; font-weight: 700; letter-spacing: 0; text-transform: none; color: var(--ru-tinta); }
.cg-ru .button.cg-ru-btn:hover { background: #27a47e; color: var(--ru-tinta); }
.cg-ru .button.cg-ru-btn[disabled] { opacity: .5; cursor: not-allowed; }
.cg-ru-nav { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 1.4rem; padding-top: 1rem; border-top: 1px solid #edf3f0; }
.cg-ru .cg-ru-atras { min-height: 48px; margin: 0; padding: 0 .4em; border: 0; background: none; font-size: .95em; font-weight: 700; letter-spacing: 0; text-transform: none; color: var(--ru-txt); cursor: pointer; }
.cg-ru-nav p { margin: 0; font-size: .72em; text-align: right; color: #7a8a85; }

/* Paso 0 */
.cg-ru-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.cg-ru-fila { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1rem; }
.cg-ru-campo { display: block; margin: 0 0 1rem; }
.cg-ru-label { display: block; margin-bottom: .35rem; font-size: .85em; font-weight: 700; color: var(--ru-tinta); }
.cg-ru-label small { font-weight: 500; color: #6b7c77; }
.cg-ru .cg-ru-input { width: 100%; min-height: 3rem; margin: 0; padding: .6em .9em; border: 2px solid #d5e7df; border-radius: 12px; background: #fcfcf2; font-size: 1em; box-shadow: none; }
.cg-ru .cg-ru-input:focus { border-color: var(--ru-ver); background: #fff; }
.cg-ru-texto { min-height: 7rem; }
.cg-ru-chips { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: .5rem; }
.cg-ru-chip { position: relative; display: inline-flex; align-items: center; min-height: 48px; padding: 0 1.1em; border: 2px solid #d5e7df; border-radius: 99px; background: #fcfcf2; font-size: .9em; font-weight: 600; cursor: pointer; }
.cg-ru-chip input { position: absolute; opacity: 0; pointer-events: none; }
.cg-ru-chip:has(input:checked) { border-color: var(--ru-ver); background: var(--ru-ver); color: var(--ru-tinta); }
.cg-ru-chip:has(input:focus-visible) { outline: 3px solid rgba(46, 185, 143, .45); outline-offset: 2px; }
.cg-ru-checks { margin: .4rem 0 1rem; padding: 1rem 1.1rem; border-radius: 14px; background: var(--ru-menta); }
.cg-ru-check { display: flex; gap: .7rem; align-items: flex-start; margin: 0 0 .6rem; font-size: .84em; line-height: 1.5; color: #234b40; cursor: pointer; }
.cg-ru-check input { flex: none; width: 22px; height: 22px; margin: .1em 0 0; accent-color: var(--ru-txt); }
.cg-ru-check a { font-weight: 700; color: var(--ru-txt); text-decoration: underline; }
.cg-ru-check--opc { margin-top: .8rem; padding-top: .8rem; border-top: 1px dashed rgba(30, 127, 97, .3); }
.cg-ru-err { display: none; margin: .3rem 0 0; font-size: .78em; font-weight: 700; color: #b3261e; }
.cg-ru-err.is-on { display: block; }
.cg-ru-checks .cg-ru-err { margin: -.3rem 0 .6rem 2.2rem; }

/* Transición "Trazando tu ruta…" */
.cg-ru-trazo { text-align: center; }
.cg-ru-trazo svg { width: 100%; max-width: 360px; height: auto; }
.cg-ru-trazo p { margin: .4rem 0 0; font-size: 1.1em; font-weight: 700; color: var(--ru-tinta); }
.cg-ru-o { fill: #b9d6ca; }
.cg-ru-d { fill: var(--ru-ver); }
.cg-ru-trazo text { font-size: 12px; font-weight: 700; text-anchor: middle; fill: var(--ru-txt); }
.cg-ru-linea { fill: none; stroke: var(--ru-ver); stroke-width: 4; stroke-linecap: round; stroke-dasharray: 400; stroke-dashoffset: 400; animation: cg-ru-traza 1.8s ease forwards; }
@keyframes cg-ru-traza { to { stroke-dashoffset: 0; } }
@media (prefers-reduced-motion: reduce) { .cg-ru-linea { animation: none; stroke-dashoffset: 0; } .cg-ru-paso { animation: none; } }

/* Resultado (big reveal) */
.cg-ru-res { outline: none; }
.cg-ru-chip-estado { display: inline-block; padding: .3em .9em; border-radius: 99px; font-size: .78em; font-weight: 800; }
.cg-ru-chip-estado--lista { background: var(--ru-menta); color: var(--ru-txt); }
.cg-ru-chip-estado--paso { background: #fff4d6; color: #8a5e00; }
.cg-ru-chip-estado--construir { background: #efeee5; color: #555; }
.cg-ru-chip-estado--nacionalidad { background: #f1eef5; color: #4b2e83; }
h3.cg-ru-titular { margin: .7rem 0 1.1rem; font-size: 1.75em; line-height: 1.2; letter-spacing: -.01em; color: var(--ru-tinta); }
.cg-ru-ruta { padding: 1.2rem 1.3rem; border-radius: 16px; background: var(--ru-ver); color: var(--ru-tinta); }
.cg-ru-ruta span { font-size: .72em; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; opacity: .8; }
.cg-ru-ruta b { display: block; margin: .2rem 0 .3rem; font-size: 1.3em; line-height: 1.25; }
.cg-ru-ruta p { margin: 0; font-size: .92em; line-height: 1.5; }
.cg-ru-insights { display: grid; gap: .8rem; margin: 1.1rem 0; }
.cg-ru-ins { padding: 1rem 1.1rem; border-radius: 14px; background: #fcfcf2; box-shadow: inset 4px 0 0 var(--ru-ver); }
.cg-ru-ins--1 { box-shadow: inset 4px 0 0 #e0a800; }
.cg-ru-ins--2 { box-shadow: inset 4px 0 0 #4b2e83; background: #f7f5fa; }
.cg-ru-ins > span { font-size: .72em; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: #5c6f69; }
.cg-ru-ins p { margin: .3rem 0 0; font-size: .95em; line-height: 1.5; color: #1f2d29; }
.cg-ru-ins small { display: block; margin-top: .4rem; font-size: .72em; color: #7a8a85; }
a.cg-ru-emp { font-weight: 800; color: #4b2e83; white-space: nowrap; }
.cg-ru-cta { margin-top: .4rem; }
.cg-ru-cta .button.cg-ru-btn { margin-top: 0; }
p.cg-ru-precio { margin: .5rem 0 0; font-size: .78em; color: #5c6f69; }
.cg-ru-cta-sec { display: flex; flex-wrap: wrap; gap: .4rem 1.2rem; margin-top: .8rem; }
.cg-ru .cg-ru-sec { display: inline-flex; align-items: center; min-height: 48px; margin: 0; padding: 0; border: 0; background: none; font-size: .9em; font-weight: 700; letter-spacing: 0; text-transform: none; color: var(--ru-txt); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
p.cg-ru-legal { margin: 1.2rem 0 .4rem; font-size: .72em; line-height: 1.5; color: #7a8a85; }
.cg-ru .cg-ru-reset { min-height: 44px; margin: 0; padding: 0; border: 0; background: none; font-size: .8em; font-weight: 700; letter-spacing: 0; text-transform: none; color: #7a8a85; cursor: pointer; }

@media (max-width: 549px) {
	.cg-ru { font-size: 17px; }
	.cg-ru-app, .cg-ru-res, .cg-ru-trazo { padding: 1.2rem 1rem; border-radius: 18px; }
	.cg-ru-fila { grid-template-columns: 1fr; }
	h3.cg-ru-q { font-size: 1.28em; }
	h3.cg-ru-titular { font-size: 1.45em; }
	.cg-ru .button.cg-ru-btn { width: 100%; }
	.cg-ru-nav { flex-direction: column-reverse; align-items: flex-start; }
	.cg-ru-nav p { text-align: left; }
}
.cg-ru-hero-chips li { background: #fff; color: #0f3d30; box-shadow: inset 0 0 0 1px rgba(30, 127, 97, .2); }
.cg-ru-hero-chips li::before { color: #17795b; }
.cg-ru .button.cg-ru-btn { line-height: 1.25; padding: .8em 1.6em; white-space: normal; text-align: center; }


/* ===== Ruta v1.1 · Paso 0: autorización primero, datos bloqueados ===== */
ul.cg-ru-por { display: grid; grid-template-columns: repeat(3, 1fr); margin: 0 0 1.4rem; padding: 0; list-style: none; border-top: 2px solid #1f2d29; }
ul.cg-ru-por li { margin: 0; padding: .75rem 1rem .75rem 0; font-size: .8em; line-height: 1.45; color: #4a5a55; }
ul.cg-ru-por li + li { padding-left: 1rem; border-left: 1px solid rgba(31, 45, 41, .14); }
ul.cg-ru-por b { display: block; color: var(--ru-txt); }
p.cg-ru-resumen { margin: 0 0 1rem; padding: .75rem 1rem; border-left: 4px solid #b3261e; border-radius: 0 10px 10px 0; background: #fdecea; font-size: .88em; font-weight: 700; color: #8c1d18; }
.cg-ru-bloque { margin: 0 0 1.4rem; }
p.cg-ru-bloque-t { display: flex; align-items: center; gap: .6rem; margin: 0 0 .9rem; font-size: 1em; font-weight: 800; color: #1f2d29; }
.cg-ru-bloque-n { display: inline-grid; place-items: center; flex: none; width: 1.8rem; height: 1.8rem; border-radius: 50%; background: var(--ru-ver); font-size: .8em; font-weight: 800; color: var(--ru-tinta); }
.cg-ru-bloque--datos { padding-top: 1.2rem; border-top: 2px solid #1f2d29; }
.cg-ru-bloque--datos.is-bloqueado .cg-ru-bloque-n { background: #d5e7df; color: #6b7c77; }
.cg-ru-bloque--datos.is-bloqueado fieldset { opacity: .45; filter: grayscale(.4); }
.cg-ru-bloque--datos fieldset[disabled] * { cursor: not-allowed; }
fieldset.cg-ru-grupo { margin: 0; padding: 0; border: 0; }
p.cg-ru-candado { display: flex; align-items: center; gap: .5rem; margin: 0 0 1rem; padding: .7rem 1rem; border-radius: 10px; background: #fcfcf2; box-shadow: inset 0 0 0 1px #d5e7df; font-size: .82em; font-weight: 700; color: var(--ru-txt); }
p.cg-ru-candado svg, p.cg-ru-seguro svg { flex: none; width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; }
.cg-ru-check small.cg-ru-por-que { display: block; margin-top: .15rem; font-size: .9em; color: #4a5a55; }
.cg-ru-nl { margin-top: .8rem; padding-top: .8rem; border-top: 1px dashed rgba(30, 127, 97, .3); }
.cg-ru-nl .cg-ru-check--opc { margin: 0; padding: 0; border: 0; }
fieldset.cg-ru-temas { margin: .8rem 0 0 2.2rem; padding: 0; border: 0; }
.cg-ru-temas legend { margin: 0 0 .5rem; padding: 0; border: 0; font-size: .8em; font-weight: 700; letter-spacing: normal; text-transform: none; color: #1f2d29; }
.cg-ru-chip--tema { min-height: 40px; padding: 0 .95em; font-size: .8em; background: #fff; }
.cg-ru-chip--tema::before { content: ""; width: .8em; height: .8em; margin-right: .45em; border: 2px solid currentColor; border-radius: 3px; opacity: .5; }
.cg-ru-chip--tema:has(input:checked)::before { border-color: var(--ru-tinta); background: #fcfcf2; opacity: 1; }
p.cg-ru-temas-nota { margin: .4rem 0 0; font-size: .72em; color: #6b7c77; }
.cg-ru-campo.is-error .cg-ru-chip { border-color: #e3a29d; }
.cg-ru .cg-ru-input[aria-invalid="true"] { border-color: #b3261e; background: #fff8f7; }
.cg-ru-check.is-error span { color: #8c1d18; }
.cg-ru-datos-pie { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem 1.4rem; }
.cg-ru-datos-pie .button { margin: 0; }
.cg-ru .cg-ru-btn[disabled] { opacity: .5; cursor: not-allowed; box-shadow: none; }
.cg-ru .cg-ru-btn.is-cargando { opacity: .7; pointer-events: none; }
p.cg-ru-seguro { display: flex; align-items: center; gap: .45rem; margin: 0; font-size: .74em; color: #6b7c77; }
p.cg-ru-seguro svg { stroke: var(--ru-ver); }
p.cg-ru-quien { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .4rem 1rem; margin: 0 0 1rem; padding: 0 0 .7rem; border-bottom: 1px solid rgba(31, 45, 41, .12); font-size: .78em; font-weight: 700; color: var(--ru-txt); }
.cg-ru .cg-ru-quien-x { min-height: 0; margin: 0; padding: 0; border: 0; background: none; font-size: 1em; font-weight: 600; letter-spacing: normal; text-transform: none; color: #6b7c77; text-decoration: underline; cursor: pointer; }
@media (max-width: 849px) { ul.cg-ru-por { grid-template-columns: 1fr; } ul.cg-ru-por li + li { padding-left: 0; border-left: 0; border-top: 1px solid rgba(31, 45, 41, .1); } }
@media (max-width: 549px) { fieldset.cg-ru-temas { margin-left: 0; } .cg-ru-datos-pie .button { width: 100%; } }

/* ===== Ruta v1.1 · resultado: tarjeta de siguiente paso + acciones ===== */
.cg-ru-cta { margin: 1.4rem 0 0; padding: 1.5rem 1.5rem 1.3rem; border-radius: 20px; background: var(--ru-ver); color: var(--ru-tinta); box-shadow: 0 24px 50px -32px rgba(15, 61, 48, .6); }
p.cg-ru-cta-k { margin: 0 0 .6rem; padding-bottom: .55rem; border-bottom: 1px solid rgba(15, 61, 48, .2); font-size: .66em; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; color: var(--ru-tinta); }
p.cg-ru-cta-t { margin: 0 0 .9rem; font-size: 1.25em; font-weight: 800; line-height: 1.22; letter-spacing: -.01em; color: var(--ru-tinta); }
ul.cg-ru-cta-pros { margin: 0 0 1.1rem; padding: 0; list-style: none; }
ul.cg-ru-cta-pros li { display: flex; gap: .55rem; align-items: flex-start; margin: 0 0 .45rem; font-size: .86em; line-height: 1.4; color: var(--ru-tinta); }
ul.cg-ru-cta-pros svg { flex: none; width: 1.1rem; height: 1.1rem; margin-top: .1em; fill: none; stroke: var(--ru-tinta); stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.cg-ru .cg-ru-cta .button.cg-ru-btn { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 3.2rem; margin: 0 0 .5rem; padding: .7em 1.2em; border: 0; border-radius: 99px; background: #fcfcf2; font-size: .95em; font-weight: 800; line-height: 1.2; letter-spacing: normal; text-transform: none; white-space: normal; color: var(--ru-tinta); box-shadow: 0 10px 22px -12px rgba(15, 61, 48, .55); transition: transform .2s ease, background .2s ease; }
.cg-ru .cg-ru-cta .button.cg-ru-btn:hover { background: #fff; transform: translateY(-2px); }
p.cg-ru-cta-nota { margin: 0 0 .7rem; font-size: .74em; text-align: center; color: rgba(15, 61, 48, .8); }
.cg-ru-cta .cg-ru-cta-sec { margin-top: .4rem; padding-top: .6rem; border-top: 1px solid rgba(15, 61, 48, .2); }
.cg-ru .cg-ru-cta .cg-ru-sec { color: var(--ru-tinta); }
.cg-ru-acciones { display: grid; grid-template-columns: auto 1fr 1fr; align-items: start; gap: 1rem 1.4rem; margin: 1.4rem 0 1rem; padding: 1.2rem 1.3rem; border-radius: 16px; background: var(--ru-menta); }
p.cg-ru-acciones-t { align-self: center; max-width: 7em; margin: 0; font-size: .66em; font-weight: 800; line-height: 1.35; letter-spacing: .16em; text-transform: uppercase; color: var(--ru-txt); }
.cg-ru-accion > p { margin: .45rem 0 0; font-size: .72em; line-height: 1.45; color: #4a5a55; }
.cg-ru .cg-ru-print, .cg-ru .cg-ru-reset-ask, .cg-ru .cg-ru-reset { min-height: 2.8rem; margin: 0; padding: 0 1.3em; border-radius: 99px; font-size: .82em; font-weight: 700; letter-spacing: normal; text-transform: none; }
.cg-ru .cg-ru-print { border: 0; background: var(--ru-tinta); color: #fff; }
.cg-ru .cg-ru-reset-ask { border: 1.5px solid var(--ru-tinta); background: #fff; color: var(--ru-tinta); }
.cg-ru .cg-ru-reset-ask:hover, .cg-ru .cg-ru-reset-ask[aria-expanded="true"] { background: var(--ru-tinta); color: #fff; }
.cg-ru-confirma { margin: .7rem 0 0; padding: .9rem 1rem; border-left: 4px solid #d99a1e; border-radius: 0 12px 12px 0; background: #fff8e8; }
.cg-ru-confirma p { margin: 0 0 .6rem; font-size: .78em; line-height: 1.5; color: #333; }
.cg-ru-confirma > div { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem 1rem; }
.cg-ru .cg-ru-reset { min-height: 2.4rem; border: 0; background: var(--ru-tinta); color: #fff; }
.cg-ru .cg-ru-confirma-no { min-height: 0; margin: 0; padding: 0; border: 0; background: none; font-size: .78em; font-weight: 700; letter-spacing: normal; text-transform: none; color: #666; text-decoration: underline; cursor: pointer; }
@media (max-width: 849px) { .cg-ru-acciones { grid-template-columns: 1fr; } p.cg-ru-acciones-t { max-width: none; } .cg-ru-accion .button { width: 100%; } }

/* ===== Ruta · hoja PDF (una carta, cabe con cualquier margen del diálogo) ===== */
.cg-ru-pdf { display: none; }
@media print {
	body > .cg-ru-pdf.is-lista { display: flex !important; }
	body:has(.cg-ru-pdf.is-lista) > *:not(.cg-ru-pdf) { display: none !important; }
	html, body { background: #fff !important; }
	.cg-ru-pdf { flex-direction: column; box-sizing: border-box; width: 215.9mm; height: 258mm; padding: 8mm 12mm 6mm; overflow: hidden; break-inside: avoid; break-after: avoid; background: #fff; color: #1f2d29; font-family: Lato, sans-serif; font-size: 8.5pt; line-height: 1.4; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
	.cg-ru-pdf a { color: inherit; text-decoration: none; }
	.cg-ru-pdf-head { display: flex; justify-content: space-between; align-items: center; padding-bottom: 3mm; border-bottom: 2px solid #1f2d29; }
	.cg-ru-pdf-logo { height: 10mm; width: auto; }
	.cg-ru-pdf-head p { margin: 0; text-align: right; }
	.cg-ru-pdf-head b { display: block; font-size: 10.5pt; color: #17795b; }
	.cg-ru-pdf-head span { font-size: 7.5pt; color: #777; }
	.cg-ru-pdf-quien { display: grid; grid-template-columns: 1.4fr 1.4fr .8fr; margin-top: 2.5mm; border: 1px solid #d5e7df; border-radius: 3mm; }
	.cg-ru-pdf-quien > div { min-width: 0; padding: 2mm 3.5mm; }
	.cg-ru-pdf-quien > div + div { border-left: 1px solid #d5e7df; }
	.cg-ru-pdf-quien [hidden] { display: none !important; }
	.cg-ru-pdf-quien span, .cg-ru-pdf-mini, .cg-ru-pdf-ruta span { display: block; font-size: 6.5pt; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: #17795b; }
	.cg-ru-pdf-quien b { display: block; overflow: hidden; font-size: 9.5pt; text-overflow: ellipsis; white-space: nowrap; }
	.cg-ru-pdf-quien small { display: block; overflow: hidden; font-size: 7.5pt; text-overflow: ellipsis; white-space: nowrap; color: #666; }
	.cg-ru-pdf-hero { padding: 4mm 0 3mm; }
	.cg-ru-pdf-estado { display: inline-block; margin: 0 0 1.5mm; padding: .8mm 3mm; border-radius: 99px; background: #e6f7f0; font-size: 7.5pt; font-weight: 800; color: #17795b; }
	.cg-ru-pdf-estado[data-estado="paso"] { background: #fff4d6; color: #8a5e00; }
	.cg-ru-pdf-estado[data-estado="construir"] { background: #efeee5; color: #555; }
	.cg-ru-pdf-hero h1 { margin: 0 0 2.5mm; font-size: 17pt; line-height: 1.12; letter-spacing: -.02em; color: #1f2d29; }
	.cg-ru-pdf-ruta { padding: 2.5mm 4mm; border-left: 3px solid #2eb98f; background: #e6f7f0; }
	.cg-ru-pdf-ruta b { display: block; font-size: 12pt; color: #0f3d30; }
	.cg-ru-pdf-ruta small { font-size: 8pt; color: #4a5a55; }
	.cg-ru-pdf-ins { display: grid; grid-template-columns: repeat(3, 1fr); gap: 3mm; }
	.cg-ru-pdf-in { padding: 2.5mm 3mm; border-top: 2px solid #2eb98f; background: #fafcf9; }
	.cg-ru-pdf-in--1 { border-top-color: #d99a1e; } .cg-ru-pdf-in--2 { border-top-color: #4b2e83; }
	.cg-ru-pdf-in span { display: block; margin-bottom: 1mm; font-size: 6.5pt; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: #4a5a55; }
	.cg-ru-pdf-in p { margin: 0; font-size: 8pt; line-height: 1.35; }
	.cg-ru-pdf-in small { display: block; margin-top: 1mm; font-size: 6.5pt; color: #777; }
	.cg-ru-pdf-resp { flex: 1; min-height: 0; overflow: hidden; margin-top: 3mm; }
	.cg-ru-pdf-resp dl { columns: 2; column-gap: 6mm; margin: 1.5mm 0 0; }
	.cg-ru-pdf-resp dl > div { break-inside: avoid; padding: .9mm 0; border-bottom: 1px solid #edf2ef; }
	.cg-ru-pdf-resp dt { margin: 0; font-size: 7pt; color: #666; }
	.cg-ru-pdf-resp dd { margin: 0; font-size: 7.8pt; font-weight: 700; }
	.cg-ru-pdf-cta { display: grid; grid-template-columns: 1fr auto; gap: 6mm; align-items: center; margin-top: 2.5mm; padding: 4mm 6mm; border-radius: 4mm; background: #2eb98f; color: #0f3d30; }
	.cg-ru-pdf-cta .cg-ru-pdf-mini { color: #0f3d30; }
	.cg-ru-pdf-cta h2 { margin: .5mm 0 2.5mm; font-size: 12.5pt; line-height: 1.15; color: #0f3d30; }
	.cg-ru-pdf-contacto { display: grid; gap: .6mm; margin: 0; padding: 0; list-style: none; }
	.cg-ru-pdf-contacto li { display: grid; grid-template-columns: 17mm 1fr; margin: 0; font-size: 7.5pt; }
	.cg-ru-pdf-contacto span { font-size: 6pt; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
	.cg-ru-pdf-qrs { display: flex; gap: 3mm; }
	.cg-ru-pdf-qrs a { display: flex; flex-direction: column; align-items: center; width: 26mm; padding: 2mm; border-radius: 3mm; background: #fff; text-align: center; }
	.cg-ru-pdf-qrs span { display: block; width: 21mm; height: 21mm; margin-bottom: 1mm; }
	.cg-ru-pdf-qrs svg { display: block; width: 100%; height: 100%; }
	.cg-ru-pdf-qrs b { font-size: 6.5pt; line-height: 1.2; color: #17795b; }
	.cg-ru-pdf-pie { display: grid; grid-template-columns: minmax(0, 1fr) 38mm; gap: 1.2mm 8mm; margin-top: 2.5mm; padding-top: 2.2mm; border-top: 1.5px solid #1f2d29; font-size: 6.6pt; color: #666; }
	.cg-ru-pdf-pie p { margin: 0 0 .7mm; }
	.cg-ru-pdf-pie b { color: #1f2d29; }
	.cg-ru-pdf-pie nav { display: flex; flex-direction: column; gap: .6mm; padding-left: 4mm; border-left: 1px solid #d5e7df; }
	.cg-ru-pdf-pie nav a { font-size: 7pt; font-weight: 700; color: #17795b; }
	.cg-ru-pdf-pie nav a.cg-ru-pdf-aviso { color: #1f2d29; text-decoration: underline; }
	.cg-ru-pdf-firma { grid-column: 1 / -1; display: flex; justify-content: space-between; gap: 4mm; margin: 0; padding-top: 1.3mm; border-top: 1px dashed #d5e7df; font-size: 6.2pt; color: #888; }
}


/* ===== Ruta · portada editorial (cg-ruh-*), personas = verde menta ===== */
.cg-ruh-cab { display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin: 0 0 2.4rem; padding: 0 0 .85rem; border-bottom: 2px solid #0f3d30; font-size: .74rem; font-weight: 800; letter-spacing: .2em; text-transform: uppercase; color: #17795b; }
.cg-ruh-cab span + span { font-weight: 600; letter-spacing: .14em; color: #4a5a55; }
.cg-ruh .cg-display.cg-ruh-h1 { font-size: clamp(2.6rem, 6.2vw, 5.2rem) !important; line-height: .96; letter-spacing: -.045em; color: #0f3d30; }
.cg-ruh .cg-ruh-h1 em { display: block; color: #17795b; }
p.cg-ruh-lead { max-width: 34em; margin: 1.5rem 0 0; padding-left: 1.1rem; border-left: 3px solid #2eb98f; font-size: 1.12rem; line-height: 1.55; color: #234b40; }
.cg-ruh-ficha { display: grid; grid-template-columns: auto 1fr; gap: 1.2rem; align-items: center; padding: 0 0 0 1.6rem; border-left: 1px solid rgba(15, 61, 48, .2); }
.cg-ruh-mapa { width: 5.4rem; height: auto; overflow: visible; }
.cg-ruh-linea { fill: none; stroke: #0f3d30; stroke-width: 2.5; stroke-dasharray: 2 7; stroke-linecap: round; }
.cg-ruh-o { fill: #fff; stroke: #0f3d30; stroke-width: 2.5; }
.cg-ruh-d { fill: #2eb98f; stroke: #0f3d30; stroke-width: 2.5; }
.cg-ruh-mov { fill: #2eb98f; stroke: #0f3d30; stroke-width: 1.5; }
.cg-ruh-ficha dl { margin: 0; }
.cg-ruh-ficha dl > div { display: grid; grid-template-columns: 5.6rem 1fr; align-items: baseline; gap: .7rem; padding: .55rem 0; border-bottom: 1px solid rgba(15, 61, 48, .14); }
.cg-ruh-ficha dl > div:last-child { border-bottom: 0; }
.cg-ruh-ficha dt { margin: 0; white-space: nowrap; font-size: 2rem; font-weight: 800; line-height: 1; letter-spacing: -.04em; text-transform: none; color: #0f3d30; }
.cg-ruh-ficha dd { margin: 0; font-size: .92rem; font-weight: 500; line-height: 1.35; letter-spacing: normal; text-transform: none; color: #234b40; }
.cg-ruh-pie { margin: 2.4rem 0 0; padding: .9rem 0 0; border-top: 1px solid rgba(15, 61, 48, .2); }
.cg-ruh-pie ul { display: flex; flex-wrap: wrap; gap: .3rem 1.4rem; margin: 0; padding: 0; list-style: none; }
.cg-ruh-pie li { position: relative; margin: 0; padding-left: 1.2rem; font-size: .8rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: #0f3d30; }
.cg-ruh-pie li::before { content: "✓"; position: absolute; left: 0; color: #17795b; }
@media (max-width: 849px) { .cg-ruh-ficha { margin-top: 2rem; padding: 1.2rem 0 0; border-left: 0; border-top: 1px solid rgba(15, 61, 48, .2); } }
@media (max-width: 549px) {
	.cg-ruh-cab { margin-bottom: 1.5rem; }
	.cg-ruh-cab span + span { display: none; }
	p.cg-ruh-lead { font-size: 1rem; }
	.cg-ruh-ficha { grid-template-columns: 1fr; }
	.cg-ruh-mapa { display: none; }
	.cg-ruh-ficha dt { font-size: 1.7rem; }
}
@media (prefers-reduced-motion: reduce) { .cg-ruh-mov { display: none; } }
@media print { .cg-ru-pdf-resp dt, .cg-ru-pdf-resp dd { display: block; letter-spacing: normal; text-transform: none; } .cg-ru-pdf-resp dt { font-weight: 400; } }


/* ===== Ruta · resultado en dos columnas: claves + siguiente paso fijo ===== */
.cg-ru:has(.cg-ru-res:not([hidden])) { max-width: 1060px; }
.cg-ru-res-head { padding: 0 0 1.1rem; border-bottom: 2px solid #1f2d29; }
.cg-ru-res-meta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem 1rem; }
.cg-ru-res-folio { display: inline-flex; align-items: center; gap: .4rem; font-size: .72em; color: #5c6f69; }
.cg-ru-res-folio svg { flex: none; width: 15px; height: 15px; fill: none; stroke: var(--ru-ver); stroke-width: 2.2; }
.cg-ru-res-folio b { color: var(--ru-tinta); }
.cg-ru-res-folio a { font-weight: 700; color: var(--ru-txt); text-decoration: underline; text-underline-offset: 2px; }
.cg-ru-res-head h3.cg-ru-titular { margin: .8rem 0 0; font-size: clamp(1.45em, 2.6vw, 2em); line-height: 1.15; letter-spacing: -.02em; }
.cg-ru-res-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, 340px); gap: 1.6rem; align-items: start; margin-top: 1.4rem; }
.cg-ru-res-aside { position: sticky; top: 110px; scroll-margin-top: 100px; }
.cg-ru-res-aside .cg-ru-cta { margin: 0; }
.cg-ru-ruta { position: relative; padding: 1.3rem 1.4rem 1.2rem; border-radius: 18px; background: var(--ru-ver); }
.cg-ru-ruta b { font-size: 1.4em; letter-spacing: -.01em; }
.cg-ru-ruta p { display: flex; gap: .4rem; align-items: flex-start; }
.cg-ru-ruta p svg { flex: none; width: 18px; height: 18px; margin-top: .15em; fill: none; stroke: var(--ru-tinta); stroke-width: 2; }
a.cg-ru-ir-paso { display: none; margin-top: .8rem; font-size: .8em; font-weight: 800; color: var(--ru-tinta); text-decoration: underline; text-underline-offset: 3px; }
p.cg-ru-claves-t { margin: 1.5rem 0 .7rem; font-size: .66em; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; color: var(--ru-txt); }
.cg-ru-res-main .cg-ru-insights { gap: 0; margin: 0; border-top: 1px solid rgba(31, 45, 41, .14); }
.cg-ru-res-main .cg-ru-ins { display: grid; grid-template-columns: 2.4rem 1fr; gap: .9rem; align-items: start; padding: 1rem 0; border-radius: 0; border-bottom: 1px solid rgba(31, 45, 41, .14); background: none; box-shadow: none; }
.cg-ru-ins-ico { display: grid; place-items: center; width: 2.4rem; height: 2.4rem; border-radius: 50%; background: var(--ru-menta); font-style: normal; }
.cg-ru-ins-ico svg { width: 1.25rem; height: 1.25rem; fill: none; stroke: var(--ru-txt); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.cg-ru-ins--1 .cg-ru-ins-ico { background: #fff4d6; } .cg-ru-ins--1 .cg-ru-ins-ico svg { stroke: #8a5e00; }
.cg-ru-ins--2 .cg-ru-ins-ico { background: #f1eef5; } .cg-ru-ins--2 .cg-ru-ins-ico svg { stroke: #4b2e83; }
.cg-ru-res-main .cg-ru-ins > div > span { font-size: .66em; letter-spacing: .14em; }
.cg-ru-res-main .cg-ru-ins--0 > div > span { color: var(--ru-txt); }
.cg-ru-res-main .cg-ru-ins--1 > div > span { color: #8a5e00; }
.cg-ru-res-main .cg-ru-ins--2 > div > span { color: #4b2e83; }
.cg-ru-res-main .cg-ru-ins p { font-size: .98em; line-height: 1.5; }
@media (max-width: 849px) {
	.cg-ru-res-grid { grid-template-columns: 1fr; }
	.cg-ru-res-aside { position: static; }
	a.cg-ru-ir-paso { display: inline-block; }
}
.cg-ru-res-main .cg-ru-ins > div > span { display: block; font-weight: 800; text-transform: uppercase; }
.cg-ru-res-folio { display: block; line-height: 1.5; } .cg-ru-res-folio svg { display: inline-block; margin-right: .3rem; vertical-align: -.2em; }
/* Botones verdes del cuestionario (Empezar mi ruta, Continuar, Ver mi ruta): letras blancas (pedido 2026-10-09) */
.cg-ru .cg-ru-datos .button.cg-ru-btn, .cg-ru .cg-ru-paso .button.cg-ru-btn, .cg-ru .cg-ru-datos .button.cg-ru-btn:hover, .cg-ru .cg-ru-paso .button.cg-ru-btn:hover { color: #fff; text-shadow: 0 1px 2px rgba(15, 61, 48, .35); }

/* =====================================================================
   Mega menús · ajuste editorial (Plan v2). Misma retícula en los cinco desplegables:
   columna de entrada (eyebrow, titular, texto, liga) · contenido · franja inferior.
   Acento superior por público: empresas morado, personas verde, ambos mitad y mitad.
   ===================================================================== */
@media (min-width: 850px) {
	.header-main .menu-item-has-block > .nav-dropdown { border-top: 0; box-shadow: 0 34px 60px -30px rgba(38, 38, 38, .55), 0 0 0 1px rgba(38, 38, 38, .05); }
	.header-main .menu-item-has-block > .nav-dropdown::before { content: ""; position: absolute; z-index: 2; top: 0; left: 0; right: 0; height: 4px; background: #4b2e83; }
	.header-main .menu-item-has-block > .nav-dropdown:has(.cg-mm--personas)::before { background: #2eb98f; }
	.header-main .menu-item-has-block > .nav-dropdown:has(.cg-mm--nosotros)::before,
	.header-main .menu-item-has-block > .nav-dropdown:has(.cg-mm--recursos)::before,
	.header-main .menu-item-has-block > .nav-dropdown:has(.cg-mm--herramientas)::before { background: linear-gradient(90deg, #4b2e83 50%, #2eb98f 50%); }

	/* Columna de entrada: misma tipografía en todos */
	.header-main .nav-dropdown .cg-mm { padding: 2.4rem 1.6rem 1.4rem !important; }
	.header-main .nav-dropdown .cg-mm-intro > .col-inner { padding-right: 1.6rem; }
	.header-main .nav-dropdown .cg-mm .cg-eyebrow { margin-bottom: .8rem; font-size: .68rem; letter-spacing: .2em; }
	.header-main .nav-dropdown .cg-mm-t { margin: 0 0 .7rem; font-size: 1.5rem; line-height: 1.14; letter-spacing: -.02em; }
	.header-main .nav-dropdown .cg-mm-p { max-width: 23em; margin-bottom: 1rem; font-size: .9rem; line-height: 1.55; }
	.header-main .nav-dropdown .cg-mm-link { margin: 0; font-size: .9rem; }

	/* Empresas y Personas: índice numerado, como Conócenos */
	.header-main .nav-dropdown .cg-mm-titulos { counter-reset: mm; padding-left: 2rem; }
	.header-main .nav-dropdown .cg-mm-titulos a { counter-increment: mm; justify-content: flex-start; gap: 1.1rem; padding: 1.15rem .2rem !important; font-size: 1.4rem; }
	.header-main .nav-dropdown .cg-mm-titulos a::before { content: counter(mm, decimal-leading-zero); flex: none; width: 2rem; font-size: .8rem; font-weight: 800; letter-spacing: .1em; color: #4b2e83; opacity: .55; }
	.header-main .nav-dropdown .cg-mm--personas .cg-mm-titulos a::before { color: #17795b; }
	.header-main .nav-dropdown .cg-mm-titulos a span { margin-left: auto; }
	.header-main .nav-dropdown .cg-mm-titulos a:hover::before { opacity: 1; }
	.header-main .nav-dropdown .cg-mm-eval { margin: 1.6rem 0 0 2rem; }

	/* Herramientas: neutral (sirve a empresas y personas) */
	.header-main .menu-item-has-block > .nav-dropdown:has(.cg-mm--herramientas) { background: #fcfcf2; }
	.header-main .nav-dropdown .cg-mm--herramientas { background: #fcfcf2 !important; }
	.header-main .nav-dropdown .cg-mm-cards--herr { gap: .7rem; }
	.header-main .nav-dropdown .cg-mm-cards--herr .cg-mm-card { align-items: flex-start; min-height: 5.2rem; padding: 1rem 1.1rem; border-radius: 12px; background: #fff; }
	.header-main .nav-dropdown .cg-mm-cards--herr .cg-mm-card b { font-size: 1rem; }

	/* Franja inferior: misma altura y tipografía */
	.header-main .nav-dropdown .cg-mm-pie-in { padding: 1rem 3.2rem; font-size: .84rem; }
}


/* ===== Mega menú Recursos v2 (inc/cg-menu.php [cg_mm_recursos], bloque #718): índice + lista editorial + herramientas por público ===== */
.header-main .nav-dropdown ol.cg-mmr2-idx { margin: 1.2rem 0 0; padding: 0; list-style: none; border-top: 2px solid #262626; }
.header-main .nav-dropdown ol.cg-mmr2-idx li { margin: 0; padding: 0; border-bottom: 1px solid rgba(38, 38, 38, .12); }
.header-main .nav-dropdown ol.cg-mmr2-idx a { display: grid; grid-template-columns: 1.8rem 1fr; column-gap: .4rem; padding: .7rem .4rem .7rem 0 !important; color: #262626 !important; transition: background .2s ease, padding .2s ease; }
.header-main .nav-dropdown ol.cg-mmr2-idx a:hover { padding-left: .5rem !important; background: rgba(255, 255, 255, .7); }
.cg-mmr2-idx span { grid-row: span 2; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: .74rem; font-weight: 700; line-height: 1.6; color: #8a8a8a; }
.cg-mmr2-idx b { font-size: .98rem; line-height: 1.3; }
.cg-mmr2-idx small { font-size: .76rem; line-height: 1.35; color: #6b6b6b; }

.cg-mmr2 { display: flex; flex-direction: column; }
p.cg-mmr2-t { margin: 0 0 .5rem; font-size: .68rem; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; color: #4b2e83; }
ul.cg-mmr2-lista { margin: 0 0 1.4rem; padding: 0; list-style: none; border-top: 2px solid #262626; }
ul.cg-mmr2-lista li.cg-mmr2-item { margin: 0; padding: 0; border-bottom: 1px solid rgba(38, 38, 38, .12); }
.header-main .nav-dropdown .cg-mmr2-link { display: grid; grid-template-columns: 4.4rem minmax(0, 1fr) auto; align-items: center; gap: 1rem; width: 100%; margin: 0; padding: .75rem .5rem .75rem 0 !important; border: 0; border-radius: 0; background: none; font: inherit; text-align: left; text-transform: none; letter-spacing: normal; color: #262626 !important; cursor: pointer; transition: background .2s ease, padding .2s ease; }
.header-main .nav-dropdown .cg-mmr2-link:hover { padding-left: .5rem !important; background: rgba(255, 255, 255, .75); }
.cg-mmr2-fecha { display: grid; place-items: center; align-content: center; width: 4.4rem; height: 3.2rem; border-radius: 10px; background: #fff; box-shadow: inset 0 0 0 1px rgba(75, 46, 131, .18); font-size: .66rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: #4b2e83; }
.cg-mmr2-fecha b { font-size: 1.3rem; line-height: 1; letter-spacing: -.02em; }
.cg-mmr2-fecha--pronto, .cg-mmr2-fecha--doc { color: #8a8a8a; }
.cg-mmr2-thumb { position: relative; display: block; width: 4.4rem; height: 3.2rem; overflow: hidden; border-radius: 10px; background: #262626; }
.cg-mmr2-thumb img { display: block; width: 100%; height: 100%; object-fit: cover; opacity: .85; }
.cg-mmr2-play { position: absolute; inset: 0; display: grid; place-items: center; color: #fff; }
.cg-mmr2-play svg { width: 1.5rem; height: 1.5rem; padding: .35rem; border-radius: 50%; background: rgba(38, 38, 38, .55); }
.cg-mmr2-txt { display: flex; flex-direction: column; min-width: 0; }
.cg-mmr2-k { display: flex; align-items: center; gap: .35rem; font-size: .64rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: #8a8a8a; }
.cg-mmr2-vivo { width: .5rem; height: .5rem; border-radius: 50%; background: #e5484d; box-shadow: 0 0 0 3px rgba(229, 72, 77, .25); }
.cg-mmr2-txt b { overflow: hidden; font-size: .98rem; line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; }
.cg-mmr2-txt small { overflow: hidden; font-size: .78rem; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; color: #6b6b6b; }
.cg-mmr2-item--pronto .cg-mmr2-txt b { color: #555; }
.cg-mmr2-cta { display: inline-flex; align-items: center; gap: .3rem; font-size: .82rem; font-weight: 800; white-space: nowrap; color: #4b2e83; }
.cg-mmr2-cta i { font-style: normal; transition: transform .2s ease; }
.cg-mmr2-link:hover .cg-mmr2-cta i { transform: translateX(3px); }

.cg-mmr2-tools { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; }
.header-main .nav-dropdown a.cg-mmr2-tool { position: relative; display: grid; grid-template-columns: auto 1fr; gap: .8rem; align-items: center; margin: 0; padding: .9rem 2.4rem .9rem .9rem !important; border-radius: 14px; transition: transform .2s ease, box-shadow .2s ease; }
.header-main .nav-dropdown a.cg-mmr2-tool:hover { transform: translateY(-2px); box-shadow: 0 14px 26px -18px rgba(38, 38, 38, .6); }
.header-main .nav-dropdown a.cg-mmr2-tool--empresa { background: #4b2e83; color: #fcfcf2 !important; }
.header-main .nav-dropdown a.cg-mmr2-tool--persona { background: #2eb98f; color: #0f3d30 !important; }
.cg-mmr2-tool small { display: block; font-size: .64rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; opacity: .85; }
.cg-mmr2-tool b { display: block; font-size: 1rem; line-height: 1.25; }
.cg-mmr2-tool span > span { display: block; font-size: .78rem; line-height: 1.35; opacity: .9; }
.cg-mmr2-tool-ico { display: grid; place-items: center; width: 2.6rem; height: 2.6rem; border-radius: 50%; background: rgba(255, 255, 255, .16); }
.cg-mmr2-tool--persona .cg-mmr2-tool-ico { background: rgba(255, 255, 255, .35); }
/* Glosario migratorio (2026-10-23): franja bajo las herramientas, ambos públicos = mitad lila / mitad menta */
.header-main .nav-dropdown a.cg-mmr2-gl { display: grid; grid-template-columns: auto 1fr auto; gap: .8rem; align-items: center; margin: .8rem 0 0; padding: .75rem 1rem !important; border: 1px solid #e6e3ec; border-radius: 14px; background: linear-gradient(110deg, #f1eef5 0 50%, #e6f7f0 50% 100%); color: #1d1d1f !important; transition: border-color .2s ease, transform .2s ease; }
.header-main .nav-dropdown a.cg-mmr2-gl:hover { border-color: #4b2e83; transform: translateY(-1px); }
.cg-mmr2-gl-ico { display: grid; place-items: center; width: 2.3rem; height: 2.3rem; border-radius: 50%; background: #fff; color: #4b2e83; }
.cg-mmr2-gl b { display: block; font-size: .95rem; line-height: 1.25; }
.cg-mmr2-gl small { display: block; font-size: .76rem; line-height: 1.35; color: #55535c; }
.cg-mmr2-gl > i { font-style: normal; font-weight: 800; color: #4b2e83; }
.cg-mmr2-tool--empresa .cg-mmr2-tool-ico { display: flex; flex-direction: column; gap: 2px; justify-content: center; align-items: center; }
.cg-mmr2-tool--empresa .cg-mmr2-tool-ico i { width: .45rem; height: .45rem; border-radius: 50%; background: #e5484d; }
.cg-mmr2-tool--empresa .cg-mmr2-tool-ico i:nth-child(2) { background: #f2b43a; }
.cg-mmr2-tool--empresa .cg-mmr2-tool-ico i:nth-child(3) { background: #2eb98f; }
.cg-mmr2-tool-fl { position: absolute; right: 1rem; top: 50%; margin-top: -.7em; font-style: normal; font-size: 1.2rem; transition: transform .2s ease; }
.cg-mmr2-tool:hover .cg-mmr2-tool-fl { transform: translateX(3px); }
small.cg-mmr2-sinspam { display: block; margin-top: .1rem; font-size: .74rem; color: #6b6b6b; }


/* ===== Mega menú Contacto (bloque menu-contacto, docs/header/menu-contacto-v1.txt) ===== */
p.cg-mmc-promesa { display: flex; align-items: baseline; gap: .6rem; margin: 1.1rem 0 .8rem; padding: .9rem 0 0; border-top: 2px solid #262626; }
p.cg-mmc-promesa b { flex: none; font-size: 2.2rem; font-weight: 800; line-height: 1; letter-spacing: -.05em; color: #262626; }
p.cg-mmc-promesa span { font-size: .8rem; line-height: 1.4; color: #555; }
ul.cg-mmc-datos { margin: 0; padding: 0; list-style: none; }
ul.cg-mmc-datos li { margin: 0; padding: .45rem 0; border-top: 1px solid rgba(38, 38, 38, .12); font-size: .78rem; font-weight: 700; color: #6b6b6b; }
.cg-mmc-canales { margin-top: 0 !important; }
.cg-mmc-canales b { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; }
em.cg-mmc-rapido { padding: .1em .55em; border-radius: 99px; background: #25d366; font-size: .62rem; font-style: normal; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: #0f3d30; }
.cg-mmc-canales small { font-size: .78rem; }
.cg-mmc-tools { grid-template-columns: 1fr; gap: .6rem; }
.header-main .nav-dropdown a.cg-mmc-oficina { display: flex; gap: .6rem; align-items: flex-start; margin: .9rem 0 0; padding: .8rem 0 0 !important; border-top: 1px solid rgba(38, 38, 38, .12); color: #262626 !important; }
a.cg-mmc-oficina svg { flex: none; margin-top: .1rem; color: #4b2e83; }
a.cg-mmc-oficina b { display: block; font-size: .9rem; }
a.cg-mmc-oficina small { font-size: .76rem; color: #6b6b6b; }
a.cg-mmc-oficina:hover small { color: #4b2e83; }
.cg-mm-pie-in small.cg-mmr2-sinspam a { color: #4b2e83; text-decoration: underline; }

/* ==========================================================================
   /empresas/ · diseño editorial por capítulos (2026-10-09)
   Índice fijo con progreso · capítulos 01–04 · lectura legible · cierre de decisión
   ========================================================================== */

/* ---------- Índice «En esta página» ---------- */
.cg-ed-indice-sec { position: relative; z-index: 20; min-height: 58px; border-bottom: 1px solid rgba(38, 38, 38, .08); }
.cg-ed-indice { position: relative; background: rgba(255, 255, 255, .97); }
.cg-ed-indice-in { display: flex; align-items: center; gap: .3rem 1.6rem; max-width: 1080px; min-height: 58px; margin: 0 auto; padding: 0 15px; overflow-x: auto; scrollbar-width: none; }
.cg-ed-indice-in::-webkit-scrollbar { display: none; }
.cg-ed-indice-k { flex: none; font-size: .68rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: #8a8a8a; }
.cg-ed-indice a { flex: none; display: inline-flex; align-items: baseline; gap: .45rem; padding: .3rem 0; border-bottom: 2px solid transparent; font-size: .9rem; font-weight: 700; color: #555; white-space: nowrap; transition: color .2s, border-color .2s; }
.cg-ed-indice a b { font-size: .72rem; font-weight: 800; letter-spacing: .06em; color: #b5a9cc; transition: color .2s; }
.cg-ed-indice a:hover, .cg-ed-indice a.is-activo { color: #4b2e83; }
.cg-ed-indice a.is-activo { border-bottom-color: #4b2e83; }
.cg-ed-indice a.is-activo b, .cg-ed-indice a:hover b { color: #2eb98f; }
.cg-ed-indice a.cg-ed-indice-cta { margin-left: auto; padding: .45rem 1.05rem; border: 0; border-radius: 99px; background: #4b2e83; font-size: .82rem; color: #fff; opacity: 0; pointer-events: none; transition: opacity .25s; }
.cg-ed-indice.is-fijo a.cg-ed-indice-cta { opacity: 1; pointer-events: auto; }
.cg-ed-indice a.cg-ed-indice-cta:hover { background: #3a2367; color: #fff; }
.cg-ed-progreso { position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: transparent; }
.cg-ed-progreso i { display: block; width: 100%; height: 100%; background: linear-gradient(90deg, #4b2e83, #2eb98f); transform: scaleX(0); transform-origin: 0 50%; }
.cg-ed-indice.is-fijo { position: fixed; left: 0; right: 0; top: var(--cg-ed-top, 0px); box-shadow: 0 6px 20px rgba(38, 38, 38, .08); }
@media (max-width: 849px) { .cg-ed-indice-k { display: none; } .cg-ed-indice-in { gap: .2rem 1.2rem; } }

/* ---------- Capítulos ---------- */
.cg-ed .cg-cap { scroll-margin-top: 150px; }
.cg-cap .cg-cap-n { display: inline-grid; place-items: center; min-width: 2.3em; height: 2.3em; padding: 0 .5em; border: 1.5px solid currentColor; border-radius: 99px; font-size: .82rem; letter-spacing: .04em; line-height: 1; }
.cg-cap.cg-eyebrow { gap: .7em; }
.cg-cap.cg-eyebrow::before { width: 2em; }
.cg-ed .cg-eyebrow.cg-cap { color: #1e7f61; }
.cg-lz-cierre .cg-cap.cg-eyebrow, .cg-ed[class*="dark"] .cg-cap { color: #2eb98f; }

/* ---------- Lectura legible ---------- */
.cg-ed h2.cg-display { font-size: clamp(2rem, 3.3vw, 2.85rem) !important; line-height: 1.1; letter-spacing: -.02em; text-wrap: balance; }
.cg-ed .col-inner > p:not(.cg-eyebrow), .cg-ed .cg-lz-cred-p { max-width: 36em; font-size: 1.06rem; line-height: 1.65; color: #444; text-wrap: pretty; }
.cg-ed.cg-lz-casos-sec .row:first-of-type .col-inner > p { color: #555; }

/* ---------- 01 · ¿No sabes cuál te toca? ---------- */
.cg-ed-nosabes { display: flex; align-items: center; gap: 1rem 1.4rem; margin-top: 1.4rem; padding: 1.05rem 1.4rem; border: 1px dashed rgba(75, 46, 131, .35); border-radius: 18px; background: rgba(255, 255, 255, .7); color: #333; transition: background .2s, border-color .2s; }
.cg-ed-nosabes:hover { border-style: solid; border-color: #4b2e83; background: #fff; color: #333; }
.cg-ed-nosabes > span:nth-child(2) { flex: 1; font-size: .98rem; line-height: 1.5; }
.cg-ed-nosabes b { color: #262626; }
.cg-ed-nosabes-luces { flex: none; display: inline-flex; flex-direction: column; gap: 3px; padding: 6px 7px; border-radius: 99px; background: #262626; }
.cg-ed-nosabes-luces i { width: 8px; height: 8px; border-radius: 50%; background: #b3261e; }
.cg-ed-nosabes-luces i:nth-child(2) { background: #d99a1e; }
.cg-ed-nosabes-luces i:nth-child(3) { background: #2eb98f; }
.cg-ed-nosabes-ir { flex: none; font-weight: 800; color: #4b2e83; white-space: nowrap; }
.cg-ed-nosabes-ir i { font-style: normal; display: inline-block; transition: transform .2s; }
.cg-ed-nosabes:hover .cg-ed-nosabes-ir i { transform: translateX(4px); }
@media (max-width: 549px) { .cg-ed-nosabes { flex-wrap: wrap; } .cg-ed-nosabes-ir { width: 100%; } }

/* ---------- 04 · Tu decisión ---------- */
.cg-ed.cg-lz-cierre { text-align: left; }
.cg-ed-dec-head { max-width: 46em; margin: 0 auto 2.2rem; text-align: center; }
.cg-ed-dec-head .cg-eyebrow { justify-content: center; }
.cg-ed-dec-head h2.cg-display { color: #fcfcf2; }
.cg-ed-dec-head p:last-child { margin: .9rem auto 0; max-width: 34em; font-size: 1.06rem; line-height: 1.6; color: rgba(252, 252, 242, .8); }
.cg-ed-dec-opciones { display: grid; grid-template-columns: 1.15fr 1fr 1fr; gap: 1.1rem; align-items: stretch; }
.cg-ed-op { position: relative; display: flex; flex-direction: column; gap: .5rem; padding: 1.6rem 1.5rem 1.4rem; border: 1px solid rgba(252, 252, 242, .14); border-radius: 22px; background: rgba(252, 252, 242, .04); color: #fcfcf2; transition: transform .2s, border-color .2s, background .2s; }
.cg-ed-op:hover { transform: translateY(-3px); border-color: rgba(252, 252, 242, .4); background: rgba(252, 252, 242, .08); color: #fcfcf2; }
.cg-ed-op-k { font-size: .74rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: rgba(252, 252, 242, .65); }
.cg-ed-op b { font-size: 1.45rem; line-height: 1.15; color: #fff; }
.cg-ed-op-d { font-size: .95rem; line-height: 1.55; color: rgba(252, 252, 242, .82); }
.cg-ed-op-meta { margin-top: auto; padding-top: .8rem; border-top: 1px solid rgba(252, 252, 242, .14); font-size: .8rem; font-weight: 700; color: rgba(252, 252, 242, .7); }
.cg-ed-op-ir { display: inline-flex; align-items: center; gap: .45rem; font-weight: 800; color: #fff; }
.cg-ed-op-ir i { font-style: normal; display: inline-block; transition: transform .2s; }
.cg-ed-op-ir svg { width: 1.05em; height: 1.05em; }
.cg-ed-op:hover .cg-ed-op-ir i { transform: translateX(4px); }
.cg-ed-op--rec { border-color: transparent; background: #4b2e83; box-shadow: 0 18px 40px rgba(75, 46, 131, .45); }
.cg-ed-op--rec:hover { background: #563596; border-color: transparent; }
.cg-ed-op--rec .cg-ed-op-k { color: #b9f0dc; }
.cg-ed-op-tag { position: absolute; top: -.75rem; left: 1.4rem; padding: .25rem .7rem; border-radius: 99px; background: #2eb98f; font-size: .7rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: #0f3d30; }
.cg-ed-op--urg .cg-ed-op-k { color: #f3b7b2; }
.cg-ed-op--urg:hover { border-color: rgba(243, 183, 178, .6); }
p.cg-ed-dec-antes { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: .4rem 1.4rem; margin: 2rem 0 0; font-size: .92rem; color: rgba(252, 252, 242, .65); }
.cg-ed-dec-antes a { font-weight: 700; color: #fcfcf2; text-decoration: underline; text-underline-offset: 3px; }
.cg-ed-dec-antes a::after { content: " →"; }
@media (max-width: 849px) { .cg-ed-dec-opciones { grid-template-columns: 1fr; } .cg-ed-op--rec { order: -1; } }
.cg-ed-dec-head h2.cg-display em { color: #2eb98f; }

/* ---------- «Sigue» al pie de cada capítulo (continuidad) ---------- */
.cg-ed-sigue { display: flex; align-items: center; gap: .3rem 1rem; flex-wrap: wrap; margin-top: 2.6rem; padding-top: 1.2rem; border-top: 1px solid rgba(38, 38, 38, .1); color: #555; }
.cg-ed-sigue span { font-size: .7rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: #8a7bb0; }
.cg-ed-sigue b { font-size: 1.02rem; color: #262626; }
.cg-ed-sigue i { font-style: normal; display: inline-grid; place-items: center; width: 1.9rem; height: 1.9rem; margin-left: auto; border: 1.5px solid currentColor; border-radius: 50%; color: #4b2e83; transition: transform .2s; }
.cg-ed-sigue:hover b { color: #4b2e83; }
.cg-ed-sigue:hover i { transform: translateY(3px); }

/* ---------- Arranque · 01 ¿Es para ti? ---------- */
ul.cg-ar-si { display: grid; gap: .8rem; margin: 0; padding: 0; list-style: none; }
ul.cg-ar-si li { position: relative; display: grid; gap: .15rem; margin: 0; padding: 1rem 1.2rem 1rem 3.2rem; border: 1px solid rgba(75, 46, 131, .14); border-radius: 16px; background: #fbfaff; }
ul.cg-ar-si li::before { content: ""; position: absolute; left: 1.1rem; top: 1.1rem; width: 1.3rem; height: 1.3rem; border-radius: 50%; background: #2eb98f url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 70% no-repeat; }
ul.cg-ar-si b { font-size: 1.02rem; color: #262626; }
ul.cg-ar-si span { font-size: .93rem; line-height: 1.5; color: #555; }
.cg-ar-no { padding: 1.4rem; border-radius: 20px; background: #f6f4f0; }
p.cg-ar-no-k { margin: 0 0 .8rem; font-size: .72rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: #8a8a8a; }
.cg-ar-no-i { position: relative; display: grid; gap: .2rem; padding: .9rem 2.4rem .9rem 0; border-top: 1px solid rgba(38, 38, 38, .1); color: #555; }
.cg-ar-no-i b { font-size: .98rem; color: #262626; }
.cg-ar-no-i span { font-size: .9rem; line-height: 1.45; }
.cg-ar-no-i i { position: absolute; right: .3rem; top: 50%; font-style: normal; font-weight: 800; color: #4b2e83; transform: translateY(-50%); transition: transform .2s; }
.cg-ar-no-i:hover b { color: #4b2e83; }
.cg-ar-no-i:hover i { transform: translate(4px, -50%); }
@media (max-width: 849px) { .cg-ar-no { margin-top: 1.2rem; } }
/* Con 7 capítulos (Arranque) el índice no cabe completo en pantallas medianas: se aprietan los espacios y la etiqueta se oculta antes. */
@media (max-width: 1299px) { .cg-ed-indice-in { gap: .3rem 1.1rem; } .cg-ed-indice a { font-size: .86rem; } }
@media (max-width: 1149px) { .cg-ed-indice-k { display: none; } }

/* Miga de pan en el índice: dónde estás (sección › página) + en qué capítulo; se queda fija a la izquierda
   aunque los capítulos se deslicen en pantallas angostas (2026-10-09). */
.cg-ed-migas { position: sticky; left: 0; z-index: 1; flex: none; display: inline-flex; align-items: center; gap: .45rem; margin-right: .4rem; padding: .35rem 1.1rem .35rem 0; border-right: 1px solid rgba(38, 38, 38, .12); background: inherit; background: rgba(255, 255, 255, .97); font-size: .8rem; font-weight: 700; white-space: nowrap; }
.cg-ed-indice .cg-ed-migas a { padding: 0; border: 0; font-size: .8rem; color: #8a8a8a; }
.cg-ed-indice .cg-ed-migas a:hover { color: #4b2e83; }
.cg-ed-migas i { font-style: normal; color: #b5a9cc; }
.cg-ed-migas b { color: #4b2e83; }
@media (max-width: 1299px) { .cg-ed-indice .cg-ed-migas a { display: none; } .cg-ed-migas i { display: none; } }

/* ---------- Miga de pan «Estás aquí» en todas las páginas internas (inc/cg-migas.php) ---------- */
.cg-migas { position: relative; z-index: 2; background: #fff; border-bottom: 1px solid rgba(38, 38, 38, .08); }
.cg-migas-in { display: flex; align-items: center; flex-wrap: wrap; gap: .2rem .5rem; max-width: 1080px; min-height: 44px; margin: 0 auto; padding: .35rem 15px; font-size: .8rem; font-weight: 700; line-height: 1.3; }
.cg-migas a, .cg-migas span { color: #8a8a8a; }
.cg-migas a:hover { color: #4b2e83; }
.cg-migas i { font-style: normal; color: #b5a9cc; }
.cg-migas b { color: #4b2e83; }

/* ==========================================================================
   /empresas/ · capítulos de venta (2026-10-09, anatomía del CEO en 8 bloques)
   Hero con la pregunta 1 del Semáforo · 01 Qué recibes (hoja PDF) · 04 riesgos con «quién responde»
   · 05 pasos con plazo · 06 objeciones · revelado al entrar en pantalla ([data-cg-revela], JS en cg-lanzamiento.php)
   ========================================================================== */

/* ---------- Revelado (solo si el script corre y no hay movimiento reducido) ---------- */
.cg-revela-on [data-cg-revela] { opacity: 0; transform: translateY(18px); transition: opacity .6s ease, transform .6s cubic-bezier(.2, .7, .2, 1); }
.cg-revela-on [data-cg-revela].is-visto { opacity: 1; transform: none; }

/* ---------- Hero · Pregunta 1 del Semáforo ---------- */
.cg-vt-p1 { max-width: 34rem; margin: 1.6rem 0 .4rem; padding: 1.15rem 1.15rem .95rem; border: 1px solid rgba(252, 252, 242, .2); border-radius: 22px; background: rgba(20, 10, 45, .28); box-shadow: 0 18px 40px rgba(20, 10, 45, .25); }
p.cg-vt-p1-k { display: flex; align-items: center; gap: .6rem; margin: 0 0 .35rem; font-size: .7rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: #b9f0dc; }
.cg-vt-p1-luces { display: inline-flex; gap: 3px; padding: 4px 6px; border-radius: 99px; background: rgba(0, 0, 0, .35); }
.cg-vt-p1-luces i { width: 7px; height: 7px; border-radius: 50%; background: #b3261e; opacity: .35; animation: cg-vt-luz 3.6s infinite; }
.cg-vt-p1-luces i:nth-child(2) { background: #d99a1e; animation-delay: 1.2s; }
.cg-vt-p1-luces i:nth-child(3) { background: #2eb98f; animation-delay: 2.4s; }
@keyframes cg-vt-luz { 0%, 30% { opacity: 1; box-shadow: 0 0 8px currentColor; } 34%, 100% { opacity: .35; box-shadow: none; } }
p.cg-vt-p1-q { margin: 0 0 .8rem; font-size: 1.22rem; font-weight: 800; line-height: 1.25; color: #fff; }
.cg-vt-p1-ops { display: grid; gap: .5rem; }
a.cg-vt-op { display: flex; align-items: center; gap: .85rem; padding: .7rem .9rem; border: 1px solid rgba(252, 252, 242, .22); border-radius: 14px; background: rgba(252, 252, 242, .06); color: #fcfcf2; transition: background .2s, border-color .2s, transform .2s; }
a.cg-vt-op:hover, a.cg-vt-op:focus-visible { border-color: #2eb98f; background: rgba(46, 185, 143, .16); color: #fff; transform: translateX(3px); }
a.cg-vt-op:focus-visible { outline: 2px solid #b9f0dc; outline-offset: 2px; }
.cg-vt-op-ico { flex: none; display: grid; place-items: center; width: 2.3rem; height: 2.3rem; border-radius: 50%; background: rgba(252, 252, 242, .1); color: #b9f0dc; }
.cg-vt-op-ico svg { width: 1.2rem; height: 1.2rem; }
.cg-vt-op-txt { flex: 1; display: grid; gap: .1rem; line-height: 1.3; }
.cg-vt-op-txt b { font-size: .98rem; color: #fff; }
.cg-vt-op-txt small { font-size: .8rem; color: rgba(252, 252, 242, .72); }
.cg-vt-op > i { flex: none; font-style: normal; font-weight: 800; color: #2eb98f; transition: transform .2s; }
a.cg-vt-op:hover > i { transform: translateX(4px); }
a.cg-vt-op--urg .cg-vt-op-ico { background: rgba(179, 38, 30, .28); color: #f3b7b2; }
a.cg-vt-op--urg:hover, a.cg-vt-op--urg:focus-visible { border-color: #f3b7b2; background: rgba(179, 38, 30, .18); }
a.cg-vt-op--urg > i { color: #f3b7b2; }
p.cg-vt-p1-meta { margin: .75rem 0 0; font-size: .8rem; font-weight: 700; color: rgba(252, 252, 242, .7); }
p.cg-vt-p1-meta b { color: #b9f0dc; }
@media (max-width: 549px) { .cg-vt-p1 { padding: 1rem .8rem .85rem; } p.cg-vt-p1-q { font-size: 1.1rem; } .cg-vt-op-ico { width: 2rem; height: 2rem; } }

/* ---------- 01 · Qué recibes ---------- */
ol.cg-vt-recibe { display: grid; gap: .2rem; margin: 1.4rem 0 1.2rem; padding: 0; list-style: none; counter-reset: rec; }
ol.cg-vt-recibe li { position: relative; display: grid; gap: .15rem; margin: 0; padding: .85rem 0 .85rem 3.1rem; border-top: 1px solid rgba(38, 38, 38, .1); counter-increment: rec; }
ol.cg-vt-recibe li:last-child { border-bottom: 1px solid rgba(38, 38, 38, .1); }
ol.cg-vt-recibe li::before { content: counter(rec); position: absolute; left: 0; top: .85rem; display: grid; place-items: center; width: 2.1rem; height: 2.1rem; border-radius: 50%; background: #4b2e83; font-size: .9rem; font-weight: 800; color: #fff; }
ol.cg-vt-recibe b { font-size: 1.05rem; color: #262626; }
ol.cg-vt-recibe span { font-size: .95rem; line-height: 1.5; color: #555; }
.cg-vt-recibes .cg-sem-contador { margin: 0 0 1.2rem; }

/* Hoja PDF de ejemplo */
figure.cg-vt-hoja { position: relative; margin: 0 auto; max-width: 25rem; padding: 1.2rem 0 0; }
figure.cg-vt-hoja::before { content: ""; position: absolute; inset: 2.2rem -1.2rem -0.4rem 1.6rem; border-radius: 18px; background: #f1eef5; transform: rotate(3deg); }
.cg-vt-papel { position: relative; padding: 1.3rem 1.3rem 1.1rem; border: 1px solid rgba(38, 38, 38, .1); border-radius: 14px; background: #fff; box-shadow: 0 24px 50px rgba(38, 38, 38, .14); transform: rotate(-1.5deg); transition: transform .4s; }
figure.cg-vt-hoja:hover .cg-vt-papel { transform: rotate(0); }
.cg-vt-papel-top { display: flex; justify-content: space-between; align-items: center; gap: .6rem; padding-bottom: .7rem; border-bottom: 2px solid #4b2e83; font-size: .66rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: #8a7bb0; }
.cg-vt-papel-top b { font-size: .8rem; letter-spacing: .04em; text-transform: none; color: #4b2e83; }
.cg-vt-papel-quien { display: grid; gap: .05rem; margin: .8rem 0; padding: .6rem .75rem; border-radius: 10px; background: #f6f4fa; font-size: .78rem; color: #555; }
.cg-vt-papel-quien span { font-size: .6rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: #8a8a8a; }
.cg-vt-papel-quien b { font-size: .92rem; color: #262626; }
.cg-vt-papel-nivel { display: flex; align-items: center; gap: .4rem; margin-bottom: .7rem; }
.cg-vt-papel-nivel i { width: 14px; height: 14px; border-radius: 50%; background: #e7e3ee; transition: background .4s, box-shadow .4s; }
.cg-vt-papel-nivel b { margin-left: .35rem; font-size: .95rem; color: #9a6a0d; }
.cg-vt-hoja .cg-vt-papel-nivel i.is-on { background: #d99a1e; box-shadow: 0 0 0 4px rgba(217, 154, 30, .2); }
ol.cg-vt-papel-h { display: grid; gap: .45rem; margin: 0 0 .8rem; padding: 0; list-style: none; }
ol.cg-vt-papel-h li { display: flex; justify-content: space-between; align-items: center; gap: .6rem; margin: 0; padding: .5rem .6rem; border-left: 3px solid #d99a1e; border-radius: 0 8px 8px 0; background: #fcfcf2; font-size: .8rem; font-weight: 700; line-height: 1.3; color: #262626; }
ol.cg-vt-papel-h li em { flex: none; padding: .12rem .45rem; border-radius: 99px; background: #4b2e83; font-size: .6rem; font-style: normal; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: #fff; }
.cg-vt-papel-paso { padding: .55rem .7rem; border-radius: 10px; background: #e8f7f1; font-size: .78rem; color: #1e5f4b; }
.cg-vt-papel-paso b { display: block; font-size: .86rem; color: #0f3d30; }
.cg-vt-papel-pie { display: flex; justify-content: space-between; align-items: flex-end; margin-top: .8rem; font-size: .75rem; }
.cg-vt-papel-qr { width: 38px; height: 38px; border-radius: 4px; background: repeating-linear-gradient(90deg, #262626 0 3px, transparent 3px 6px), repeating-linear-gradient(0deg, #262626 0 3px, transparent 3px 7px); opacity: .75; background-blend-mode: multiply; }
figure.cg-vt-hoja figcaption { margin-top: 1.2rem; font-size: .8rem; text-align: center; color: #8a8a8a; }
/* Animación: la hoja «sale de la impresora», se enciende el ámbar y aparecen los hallazgos */
.cg-revela-on .cg-vt-hoja .cg-vt-papel-nivel i:nth-child(2) { background: #e7e3ee; box-shadow: none; }
.cg-revela-on .cg-vt-hoja.is-visto .cg-vt-papel-nivel i:nth-child(1) { animation: cg-vt-rojo .5s .3s; }
.cg-revela-on .cg-vt-hoja.is-visto .cg-vt-papel-nivel i:nth-child(2) { background: #d99a1e; box-shadow: 0 0 0 4px rgba(217, 154, 30, .2); transition-delay: .8s; }
@keyframes cg-vt-rojo { 50% { background: #b3261e; } }
.cg-revela-on .cg-vt-hoja ol.cg-vt-papel-h li, .cg-revela-on .cg-vt-hoja .cg-vt-papel-paso { opacity: 0; transform: translateX(-10px); transition: opacity .45s, transform .45s; }
.cg-revela-on .cg-vt-hoja.is-visto ol.cg-vt-papel-h li, .cg-revela-on .cg-vt-hoja.is-visto .cg-vt-papel-paso { opacity: 1; transform: none; }
.cg-revela-on .cg-vt-hoja.is-visto ol.cg-vt-papel-h li:nth-child(1) { transition-delay: 1s; }
.cg-revela-on .cg-vt-hoja.is-visto ol.cg-vt-papel-h li:nth-child(2) { transition-delay: 1.2s; }
.cg-revela-on .cg-vt-hoja.is-visto ol.cg-vt-papel-h li:nth-child(3) { transition-delay: 1.4s; }
.cg-revela-on .cg-vt-hoja.is-visto .cg-vt-papel-paso { transition-delay: 1.7s; }
@media (max-width: 849px) { figure.cg-vt-hoja { margin-top: 2rem; } figure.cg-vt-hoja::before { inset: 2.2rem -.4rem -.4rem .8rem; } }

/* ---------- 04 · Lo que está en juego: situación → consecuencia → quién responde ---------- */
ol.cg-vt-rg { display: grid; gap: .75rem; margin: 0; padding: 0; list-style: none; }
ol.cg-vt-rg li { display: grid; grid-template-columns: auto 1fr auto; align-items: start; gap: .3rem 1rem; margin: 0; padding: 1.05rem 1.15rem; border: 1px solid rgba(38, 38, 38, .1); border-radius: 18px; background: #fff; box-shadow: 0 6px 18px rgba(38, 38, 38, .04); transition: border-color .2s, box-shadow .2s; }
ol.cg-vt-rg li:hover { border-color: rgba(179, 38, 30, .35); box-shadow: 0 10px 26px rgba(38, 38, 38, .08); }
.cg-vt-rg-ico { display: grid; place-items: center; width: 2.6rem; height: 2.6rem; border-radius: 12px; background: #fbeceb; color: #b3261e; }
.cg-vt-rg-ico svg { width: 1.3rem; height: 1.3rem; }
.cg-vt-rg-txt b { display: block; font-size: 1.04rem; line-height: 1.3; color: #262626; }
.cg-vt-rg-txt span { display: block; margin-top: .2rem; font-size: .94rem; line-height: 1.5; color: #555; }
.cg-vt-rg-quien { display: grid; justify-items: end; gap: .1rem; padding-left: .4rem; text-align: right; white-space: nowrap; }
.cg-vt-rg-quien small { font-size: .62rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: #8a8a8a; }
.cg-vt-rg-quien b { padding: .2rem .65rem; border-radius: 99px; background: #262626; font-size: .78rem; color: #fff; }
.cg-revela-on ol.cg-vt-rg[data-cg-revela] { opacity: 1; transform: none; }
.cg-revela-on ol.cg-vt-rg li { opacity: 0; transform: translateY(14px); transition: opacity .5s, transform .5s, border-color .2s, box-shadow .2s; }
.cg-revela-on ol.cg-vt-rg.is-visto li { opacity: 1; transform: none; }
.cg-revela-on ol.cg-vt-rg.is-visto li:nth-child(2) { transition-delay: .12s, .12s, 0s, 0s; }
.cg-revela-on ol.cg-vt-rg.is-visto li:nth-child(3) { transition-delay: .24s, .24s, 0s, 0s; }
.cg-revela-on ol.cg-vt-rg.is-visto li:nth-child(4) { transition-delay: .36s, .36s, 0s, 0s; }
p.cg-vt-nota { margin: 1rem 0 0; font-size: .8rem; line-height: 1.5; color: #8a8a8a; }
.cg-vt-riesgos .cg-lz-btn { margin-top: .6rem; }
@media (max-width: 549px) {
	ol.cg-vt-rg li { grid-template-columns: auto 1fr; padding: 1rem; }
	.cg-vt-rg-quien { grid-column: 2; justify-items: start; grid-auto-flow: column; align-items: center; gap: .5rem; padding: .3rem 0 0; text-align: left; }
}

/* ---------- 05 · Cómo trabajamos: 4 pasos con plazo ---------- */
ol.cg-vt-pasos { position: relative; display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.2rem; margin: 2rem 0 0; padding: 0; list-style: none; }
ol.cg-vt-pasos::before { content: ""; position: absolute; left: 1.4rem; right: 12%; top: 1.4rem; height: 2px; background: linear-gradient(90deg, #4b2e83, #2eb98f); transform-origin: 0 50%; }
ol.cg-vt-pasos li { position: relative; display: grid; align-content: start; gap: .35rem; margin: 0; }
.cg-vt-paso-n { display: grid; place-items: center; width: 2.8rem; height: 2.8rem; margin-bottom: .5rem; border: 2px solid #4b2e83; border-radius: 50%; background: #fcfcf2; font-size: 1.05rem; font-weight: 800; color: #4b2e83; }
ol.cg-vt-pasos li:last-child .cg-vt-paso-n { border-color: #2eb98f; background: #2eb98f; color: #fff; }
ol.cg-vt-pasos b { font-size: 1.12rem; color: #262626; }
ol.cg-vt-pasos p { margin: 0; font-size: .93rem; line-height: 1.5; color: #555; }
.cg-vt-paso-t { justify-self: start; margin-top: .3rem; padding: .2rem .65rem; border-radius: 99px; background: #f1eef5; font-size: .78rem; font-weight: 800; color: #4b2e83; }
p.cg-vt-mas { margin: 1.8rem 0 0; font-size: .95rem; }
p.cg-vt-mas a { font-weight: 800; color: #4b2e83; text-decoration: underline; text-underline-offset: 3px; }
.cg-revela-on ol.cg-vt-pasos[data-cg-revela] { opacity: 1; transform: none; }
.cg-revela-on ol.cg-vt-pasos::before { transform: scaleX(0); transition: transform 1.4s cubic-bezier(.4, .1, .2, 1); }
.cg-revela-on ol.cg-vt-pasos.is-visto::before { transform: scaleX(1); }
.cg-revela-on ol.cg-vt-pasos li { opacity: 0; transform: translateY(12px); transition: opacity .5s, transform .5s; }
.cg-revela-on ol.cg-vt-pasos.is-visto li { opacity: 1; transform: none; }
.cg-revela-on ol.cg-vt-pasos.is-visto li:nth-child(2) { transition-delay: .35s; }
.cg-revela-on ol.cg-vt-pasos.is-visto li:nth-child(3) { transition-delay: .7s; }
.cg-revela-on ol.cg-vt-pasos.is-visto li:nth-child(4) { transition-delay: 1.05s; }
@media (max-width: 849px) {
	ol.cg-vt-pasos { grid-template-columns: 1fr; gap: 1.3rem; }
	ol.cg-vt-pasos::before { left: 1.35rem; right: auto; top: 1.4rem; bottom: 1.4rem; width: 2px; height: auto; background: linear-gradient(180deg, #4b2e83, #2eb98f); transform-origin: 50% 0; }
	.cg-revela-on ol.cg-vt-pasos::before { transform: scaleY(0); }
	.cg-revela-on ol.cg-vt-pasos.is-visto::before { transform: scaleY(1); }
	ol.cg-vt-pasos li { padding-left: 4rem; }
	.cg-vt-paso-n { position: absolute; left: 0; top: 0; }
}

/* ---------- 06 · Preguntas antes de contratar (details nativo, sin JS) ---------- */
.cg-vt-faq { display: grid; gap: .6rem; }
.cg-vt-faq details { border: 1px solid rgba(38, 38, 38, .1); border-radius: 16px; background: #fff; transition: border-color .2s, box-shadow .2s; }
.cg-vt-faq details[open] { border-color: rgba(75, 46, 131, .35); box-shadow: 0 10px 26px rgba(75, 46, 131, .08); }
.cg-vt-faq summary { position: relative; display: block; padding: 1rem 3.2rem 1rem 1.2rem; font-size: 1.02rem; font-weight: 800; line-height: 1.35; color: #262626; cursor: pointer; list-style: none; }
.cg-vt-faq summary::-webkit-details-marker { display: none; }
.cg-vt-faq summary::after { content: ""; position: absolute; right: 1.1rem; top: 50%; width: 1.5rem; height: 1.5rem; margin-top: -.75rem; border-radius: 50%; background: #f1eef5 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234b2e83' stroke-width='2.6' stroke-linecap='round'%3E%3Cpath d='M12 6v12M6 12h12'/%3E%3C/svg%3E") center / 60% no-repeat; transition: transform .25s; }
.cg-vt-faq details[open] summary::after { transform: rotate(45deg); }
.cg-vt-faq summary:hover { color: #4b2e83; }
.cg-vt-faq summary:focus-visible { outline: 2px solid #4b2e83; outline-offset: 2px; border-radius: 16px; }
.cg-vt-faq details p { margin: 0; padding: 0 1.2rem 1.1rem; font-size: .96rem; line-height: 1.6; color: #444; }
.cg-vt-faq details p a { font-weight: 700; color: #4b2e83; text-decoration: underline; }

/* ---------- 07 · Tu decisión: línea de privacidad ---------- */
p.cg-vt-privacidad { display: flex; justify-content: center; align-items: center; gap: .5rem; margin: 2rem 0 0; font-size: .88rem; color: rgba(252, 252, 242, .65); text-align: center; }
p.cg-vt-privacidad svg { flex: none; width: 1rem; height: 1rem; color: #2eb98f; }
p.cg-vt-privacidad a { font-weight: 700; color: #fcfcf2; text-decoration: underline; text-underline-offset: 3px; }

@media (prefers-reduced-motion: reduce) {
	.cg-vt-p1-luces i { animation: none; opacity: 1; }
	.cg-vt-papel, a.cg-vt-op, a.cg-vt-op > i { transition: none; }
}

/* Hero con la pregunta 1: que las tres opciones quepan en la primera pantalla (1280×800) */
@media (min-width: 850px) {
	.section.cg-lz-hero--empresa { padding-top: 52px !important; padding-bottom: 56px !important; }
	.cg-lz-hero--empresa h1.cg-lz-h1 { font-size: clamp(2.1rem, 3vw, 2.45rem) !important; }
	.cg-lz-hero--empresa .cg-vt-p1 { margin-top: 1.1rem; }
	.cg-lz-hero--empresa a.cg-vt-op { padding-top: .55rem; padding-bottom: .55rem; }
}

/* ==========================================================================
   /personas/ · capítulos de venta (2026-10-09, misma anatomía que /empresas/ en verde)
   Reutiliza .cg-vt-* (venta-empresas.css) y .cg-ed-* (editorial-estilos.css); aquí solo el color de personas
   (verde #2eb98f con tinta #0f3d30, texto verde #17795b; sin secciones verde oscuro) y las piezas nuevas .cg-vp-*.
   ========================================================================== */

/* ---------- Hero · Pregunta 1 de «Descubre tu ruta» (tarjeta clara sobre menta) ---------- */
.cg-vt-p1--persona { max-width: 38rem; border-color: rgba(15, 61, 48, .1); background: #fff; box-shadow: 0 26px 50px -30px rgba(15, 61, 48, .45); }
.cg-vt-p1--persona p.cg-vt-p1-k { color: #17795b; }
.cg-vp-brujula { display: inline-grid; place-items: center; width: 1.6rem; height: 1.6rem; border-radius: 50%; background: #e6f7f0; color: #17795b; }
.cg-vp-brujula svg { width: 1rem; height: 1rem; animation: cg-vp-brujula 5s ease-in-out infinite; }
@keyframes cg-vp-brujula { 0%, 100% { transform: rotate(0); } 30% { transform: rotate(28deg); } 60% { transform: rotate(-12deg); } }
.cg-vt-p1--persona p.cg-vt-p1-q { color: #0f3d30; }
.cg-vt-p1--persona .cg-vt-p1-ops { grid-template-columns: 1fr 1fr; }
.cg-vt-p1--persona a.cg-vt-op { border-color: rgba(15, 61, 48, .12); background: #f7fcfa; color: #0f3d30; }
.cg-vt-p1--persona a.cg-vt-op:hover, .cg-vt-p1--persona a.cg-vt-op:focus-visible { border-color: #2eb98f; background: #e6f7f0; color: #0f3d30; }
.cg-vt-p1--persona a.cg-vt-op:focus-visible { outline-color: #17795b; }
.cg-vt-p1--persona .cg-vt-op-ico { background: #e6f7f0; color: #17795b; }
.cg-vt-p1--persona a.cg-vt-op:hover .cg-vt-op-ico { background: #2eb98f; color: #0f3d30; }
.cg-vt-p1--persona .cg-vt-op-txt b { color: #0f3d30; }
.cg-vt-p1--persona .cg-vt-op-txt small { color: #3d5c53; }
.cg-vt-p1--persona .cg-vt-op > i { color: #17795b; }
.cg-vt-p1--persona p.cg-vt-p1-meta { color: #3d5c53; }
.cg-vt-p1--persona p.cg-vt-p1-meta b { color: #17795b; }
@media (max-width: 549px) { .cg-vt-p1--persona .cg-vt-p1-ops { grid-template-columns: 1fr; } }

@media (min-width: 850px) {
	.section.cg-lz-hero--persona { padding-top: 52px !important; padding-bottom: 56px !important; }
	.cg-lz-hero--persona h1.cg-lz-h1 { font-size: clamp(2.1rem, 3vw, 2.45rem) !important; }
	.cg-lz-hero--persona .cg-vt-p1 { margin-top: 1.1rem; }
	.cg-lz-hero--persona a.cg-vt-op { padding: .55rem .7rem; gap: .65rem; }
	.cg-lz-hero--persona .cg-vt-op-ico { width: 2rem; height: 2rem; }
}

/* ---------- Índice y «Sigue» en verde ---------- */
.cg-ed-indice--persona a b { color: #9fd9c4; }
.cg-ed-indice--persona a:hover, .cg-ed-indice--persona a.is-activo { color: #17795b; }
.cg-ed-indice--persona a.is-activo { border-bottom-color: #2eb98f; }
.cg-ed-indice--persona a.is-activo b, .cg-ed-indice--persona a:hover b { color: #2eb98f; }
.cg-ed-indice--persona .cg-ed-migas b { color: #17795b; }
.cg-ed-indice--persona .cg-ed-progreso i { background: linear-gradient(90deg, #17795b, #2eb98f); }
.cg-ed--persona .cg-ed-sigue span { color: #17795b; }
.cg-ed--persona .cg-ed-sigue i, .cg-ed--persona .cg-ed-sigue:hover b { color: #17795b; }

/* ---------- 01 · Qué recibes: hoja del resultado en verde ---------- */
ol.cg-vt-recibe--persona li::before { background: #2eb98f; color: #0f3d30; }
p.cg-vp-micro { margin: .7rem 0 0; font-size: .86rem; color: #3d5c53; }
.cg-vt-hoja--persona::before { background: #e6f7f0; }
.cg-vt-hoja--persona .cg-vt-papel-top { border-bottom-color: #2eb98f; color: #5f8f80; }
.cg-vt-hoja--persona .cg-vt-papel-top b { color: #17795b; }
.cg-vt-hoja--persona .cg-vt-papel-quien { background: #f2faf6; }
.cg-vp-estado { display: inline-flex; align-items: center; gap: .45rem; margin-bottom: .55rem; padding: .25rem .7rem; border-radius: 99px; background: #2eb98f; font-size: .74rem; font-weight: 800; color: #0f3d30; }
.cg-vp-estado i { width: 8px; height: 8px; border-radius: 50%; background: #fff; box-shadow: 0 0 0 3px rgba(255, 255, 255, .35); }
p.cg-vp-ruta { display: grid; gap: .1rem; margin: 0 0 .75rem; font-size: .76rem; line-height: 1.4; color: #555; }
p.cg-vp-ruta b { font-size: 1rem; line-height: 1.25; color: #0f3d30; }
.cg-vt-hoja--persona ol.cg-vt-papel-h li { border-left-color: #2eb98f; background: #f7fcfa; }
.cg-vt-hoja--persona ol.cg-vt-papel-h li:nth-child(2) { border-left-color: #d99a1e; background: #fdf8ee; }
.cg-vt-hoja--persona ol.cg-vt-papel-h li em { background: #e6f7f0; color: #17795b; }
.cg-vt-hoja--persona ol.cg-vt-papel-h li:nth-child(2) em { background: #fbefd6; color: #8a5a00; }
.cg-vt-hoja--persona ol.cg-vt-papel-h li:nth-child(3) em { background: #0f3d30; color: #fff; }
.cg-vt-hoja--persona .cg-vt-papel-paso { background: #2eb98f; color: #0f3d30; }
.cg-revela-on .cg-vt-hoja--persona .cg-vp-estado { opacity: 0; transform: scale(.85); transition: opacity .4s .5s, transform .4s .5s cubic-bezier(.3, 1.6, .5, 1); }
.cg-revela-on .cg-vt-hoja--persona.is-visto .cg-vp-estado { opacity: 1; transform: none; }

/* ---------- 03 · Tu caso: quien lo investiga por sus padres ---------- */
a.cg-vp-padres { display: flex; align-items: center; gap: 1rem; margin-top: 1rem; padding: 1rem 1.2rem; border: 1.5px dashed rgba(23, 121, 91, .45); border-radius: 18px; background: rgba(255, 255, 255, .7); color: #0f3d30; transition: background .2s, border-color .2s; }
a.cg-vp-padres:hover, a.cg-vp-padres:focus-visible { border-style: solid; border-color: #2eb98f; background: #fff; color: #0f3d30; }
.cg-vp-padres-ico { flex: none; display: grid; place-items: center; width: 2.6rem; height: 2.6rem; border-radius: 50%; background: #2eb98f; color: #0f3d30; }
.cg-vp-padres-ico svg { width: 1.25rem; height: 1.25rem; }
.cg-vp-padres-txt { flex: 1; font-size: .94rem; line-height: 1.5; color: #3d5c53; }
.cg-vp-padres-txt b { display: block; font-size: 1.02rem; color: #0f3d30; }
.cg-vp-padres-ir { flex: none; font-weight: 800; color: #17795b; white-space: nowrap; }
.cg-vp-padres-ir i { font-style: normal; display: inline-block; transition: transform .2s; }
a.cg-vp-padres:hover .cg-vp-padres-ir i { transform: translateX(4px); }
@media (max-width: 549px) { a.cg-vp-padres { flex-wrap: wrap; } .cg-vp-padres-ir { width: 100%; padding-left: 3.6rem; } }

/* ---------- 05 · Cómo trabajamos en verde ---------- */
ol.cg-vt-pasos--persona::before { background: linear-gradient(90deg, #9fd9c4, #2eb98f); }
.cg-vt-pasos--persona .cg-vt-paso-n { border-color: #2eb98f; color: #17795b; }
ol.cg-vt-pasos--persona li:last-child .cg-vt-paso-n { color: #0f3d30; }
.cg-vt-pasos--persona .cg-vt-paso-t { background: #e6f7f0; color: #17795b; }
@media (max-width: 849px) { ol.cg-vt-pasos--persona::before { background: linear-gradient(180deg, #9fd9c4, #2eb98f); } }

/* ---------- 06 · Preguntas en verde ---------- */
.cg-vt-faq--persona details[open] { border-color: rgba(46, 185, 143, .55); box-shadow: 0 10px 26px rgba(15, 61, 48, .08); }
.cg-vt-faq--persona summary::after { background-color: #e6f7f0; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2317795b' stroke-width='2.6' stroke-linecap='round'%3E%3Cpath d='M12 6v12M6 12h12'/%3E%3C/svg%3E"); }
.cg-vt-faq--persona summary:hover { color: #17795b; }
.cg-vt-faq--persona summary:focus-visible { outline-color: #17795b; }
.cg-vt-faq--persona details p a { color: #17795b; }
.cg-vt-preguntas.cg-ed--persona a { color: #17795b; }

/* ---------- 07 · Tu decisión sobre verde de marca (tinta, tarjetas blancas, recomendada en tinta) ---------- */
.cg-ed-dec--persona .cg-ed-dec-head .cg-cap.cg-eyebrow { color: #0f3d30; }
.cg-ed-dec--persona .cg-ed-dec-head h2.cg-display, .cg-ed-dec--persona .cg-ed-dec-head h2.cg-display em { color: #0f3d30; }
.cg-ed-dec--persona .cg-ed-dec-head p:last-child { color: #0f3d30; }
.cg-ed-dec--persona .cg-ed-op { border-color: transparent; background: #fff; color: #0f3d30; box-shadow: 0 18px 40px -24px rgba(15, 61, 48, .55); }
.cg-ed-dec--persona .cg-ed-op:hover { border-color: transparent; background: #fff; color: #0f3d30; box-shadow: 0 24px 46px -22px rgba(15, 61, 48, .6); }
.cg-ed-dec--persona .cg-ed-op-k { color: #17795b; }
.cg-ed-dec--persona .cg-ed-op b { color: #0f3d30; }
.cg-ed-dec--persona .cg-ed-op-d { color: #3d5c53; }
.cg-ed-dec--persona .cg-ed-op-meta { border-top-color: rgba(15, 61, 48, .12); color: #3d5c53; }
.cg-ed-dec--persona .cg-ed-op-ir { color: #17795b; }
.cg-ed-dec--persona .cg-ed-op--rec, .cg-ed-dec--persona .cg-ed-op--rec:hover { background: #0f3d30; color: #fff; box-shadow: 0 22px 46px -18px rgba(15, 61, 48, .7); }
.cg-ed-dec--persona .cg-ed-op--rec .cg-ed-op-k { color: #b9f0dc; }
.cg-ed-dec--persona .cg-ed-op--rec b, .cg-ed-dec--persona .cg-ed-op--rec .cg-ed-op-ir { color: #fff; }
.cg-ed-dec--persona .cg-ed-op--rec .cg-ed-op-d { color: rgba(255, 255, 255, .85); }
.cg-ed-dec--persona .cg-ed-op--rec .cg-ed-op-meta { border-top-color: rgba(255, 255, 255, .18); color: rgba(255, 255, 255, .75); }
.cg-ed-dec--persona .cg-ed-op-tag { background: #fff; color: #0f3d30; }
.cg-ed-dec--persona .cg-ed-op--urg .cg-ed-op-k { color: #b3261e; }
.cg-ed-dec--persona p.cg-vt-privacidad { color: #0f3d30; }
.cg-ed-dec--persona p.cg-vt-privacidad svg { color: #0f3d30; }
.cg-ed-dec--persona p.cg-vt-privacidad a { color: #0f3d30; }

/* ---------- «Descubre tu ruta»: pregunta 1 que llega desde /personas/ ---------- */
.cg-ru-memoria .cg-ru-cambiar { margin: 0 0 0 .5rem; padding: 0; border: 0; background: none; font: inherit; font-weight: 800; color: #17795b; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }

@media (prefers-reduced-motion: reduce) { .cg-vp-brujula svg { animation: none; } }

/* Ajustes tras revisar en pantalla */
.cg-ed.cg-ed--persona .col-inner > p.cg-eyebrow.cg-cap { color: #1e7f61; } /* .cg-ed.cg-lz-casos-sec … > p lo pintaba gris */
.cg-ed--persona .cg-cred-band { background: #2eb98f; color: #0f3d30; } /* credencial: verde de personas, no morado */
.cg-ed--persona .cg-cred-band span:last-child { color: #fff; }
/* <<< Plan de lanzamiento v2 */

/* Sello de garantía como enlace a la Garantía CG ([cg_sello_vivo], 2026-10-13): mismo aspecto, solo se vuelve clicable. */
.cg-sv-enlace { display: inline-block; line-height: 0; color: inherit; text-decoration: none; border-radius: 50%; cursor: pointer; }
.cg-sv-enlace:focus-visible { outline: 2px solid #2eb98f; outline-offset: 4px; }
.cg-sello--oficial > .cg-sv-enlace { display: grid; place-items: center; }

/* ==========================================================================
   Inicio · «Quiénes somos» debajo del hero (2026-10-14): texto indexable para buscadores
   (docs/inicio/seccion-quienes-somos.php). El hero queda igual y fijo; esta sección sube encima.
   Empresas = morado, personas = verde (regla de color por público).
   ========================================================================== */
.cg-hero-legal p.cg-ini-mas-wrap { margin: 0 0 .7rem; text-align: center; }
.cg-ini-mas { display: inline-flex; flex-direction: column; align-items: center; gap: .25rem; font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: rgba(252, 252, 242, .75) !important; text-decoration: none !important; }
.cg-ini-mas svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; animation: cg-ini-baja 1.8s ease-in-out infinite; }
.cg-ini-mas:hover { color: #fcfcf2 !important; }
@keyframes cg-ini-baja { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(5px); } }
@media (prefers-reduced-motion: reduce) { .cg-ini-mas svg { animation: none; } }

.section.cg-ini { position: relative; z-index: 2; border-top: 1px solid rgba(252, 252, 242, .08); }
.cg-ini-in { max-width: 1080px; margin: 0 auto; color: #fcfcf2; scroll-margin-top: 0; }
.cg-ini-cab { max-width: 46rem; margin-bottom: 2.6rem; }
.cg-ini .cg-eyebrow { color: #2eb98f; }
.cg-ini-h2 { margin: .6rem 0 1rem; font-size: clamp(1.9rem, 3.4vw, 2.8rem); line-height: 1.12; letter-spacing: -.02em; color: #fcfcf2; text-wrap: balance; }
.cg-ini-lead { margin: 0 0 .9rem; font-size: 1.08rem; line-height: 1.65; color: rgba(252, 252, 242, .82); }
.cg-ini-lead--2 { font-size: 1rem; color: rgba(252, 252, 242, .66); }

.cg-ini-puertas { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; }
.cg-ini-puerta { display: flex; flex-direction: column; padding: 1.8rem 1.8rem 1.6rem; border: 1px solid rgba(252, 252, 242, .12); border-top: 3px solid; border-radius: 6px; }
.cg-ini-puerta--empresa { border-top-color: #4b2e83; background: linear-gradient(160deg, rgba(75, 46, 131, .35), rgba(75, 46, 131, .08) 60%); }
.cg-ini-puerta--persona { border-top-color: #2eb98f; background: linear-gradient(160deg, rgba(46, 185, 143, .22), rgba(46, 185, 143, .05) 60%); }
.cg-ini-k { margin: 0 0 .4rem; font-size: .7rem; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
.cg-ini-puerta--empresa .cg-ini-k { color: #b9a6e0; }
.cg-ini-puerta--persona .cg-ini-k { color: #2eb98f; }
.cg-ini-puerta h3 { margin: 0 0 .7rem; font-size: 1.4rem; line-height: 1.2; color: #fcfcf2; }
.cg-ini-puerta > p:not(.cg-ini-k) { margin: 0 0 1.1rem; font-size: 1rem; line-height: 1.65; color: rgba(252, 252, 242, .8); }
.cg-ini-links { display: flex; flex-wrap: wrap; gap: .3rem 1.4rem; margin: 0 0 1.4rem; padding: 0; list-style: none; }
.cg-ini-links li { margin: 0; }
.cg-ini-links a { display: inline-flex; align-items: center; gap: .35rem; font-weight: 700; color: #fcfcf2; text-decoration: underline; text-decoration-color: rgba(252, 252, 242, .35); text-underline-offset: 4px; }
.cg-ini-links a:hover { text-decoration-color: currentColor; color: #fcfcf2; }
.cg-ini-in svg { flex: none; width: 1.05em; height: 1.05em; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.cg-ini-cta { display: inline-flex; align-items: center; gap: .5rem; align-self: flex-start; margin-top: auto; padding: .75rem 1.3rem; border-radius: 99px; font-weight: 700; text-decoration: none; transition: transform .2s, filter .2s; }
.cg-ini-cta:hover { transform: translateY(-2px); filter: brightness(1.08); }
.cg-ini-puerta--empresa .cg-ini-cta, .cg-ini-puerta--empresa .cg-ini-cta:hover { background: #4b2e83; color: #fff; }
.cg-ini-puerta--persona .cg-ini-cta, .cg-ini-puerta--persona .cg-ini-cta:hover { background: #2eb98f; color: #0f3d30; }

.cg-ini-cred { margin-top: 2.8rem; padding-top: 1.8rem; border-top: 1px solid rgba(252, 252, 242, .12); }
.cg-ini-cred-k { margin: 0 0 1.2rem; font-size: .7rem; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; color: rgba(252, 252, 242, .55); }
.cg-ini-cred ul { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.6rem; margin: 0; padding: 0; list-style: none; }
.cg-ini-cred li { margin: 0; padding-left: 1rem; border-left: 2px solid rgba(46, 185, 143, .55); }
.cg-ini-cred h3 { margin: 0 0 .4rem; font-size: 1rem; line-height: 1.3; color: #fcfcf2; }
.cg-ini-cred p { margin: 0; font-size: .9rem; line-height: 1.55; color: rgba(252, 252, 242, .7); }
.cg-ini-cred a { color: #2eb98f; text-decoration: underline; text-underline-offset: 3px; }

@media (max-width: 849px) {
	.cg-ini-puertas { grid-template-columns: 1fr; }
	.cg-ini-cred ul { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 549px) {
	.cg-ini-puerta { padding: 1.4rem 1.2rem 1.3rem; }
	.cg-ini-cred ul { grid-template-columns: 1fr; gap: 1.1rem; }
	.cg-ini-cta { align-self: stretch; justify-content: center; }
}
/* Pie legal al final de «Quiénes somos» (repite la línea del hero: razón social + Aviso de Privacidad). */
.cg-ini-pie { margin-top: 2.6rem; padding-top: 1.2rem; border-top: 1px solid rgba(252, 252, 242, .08); }
.cg-ini-pie p.cg-legal-linea { display: flex; flex-wrap: wrap; justify-content: center; gap: .15rem .5rem; margin: 0; font-size: 11px; line-height: 1.5; letter-spacing: .04em; color: rgba(252, 252, 242, .55); }
.cg-ini-pie a { color: rgba(252, 252, 242, .7); text-decoration: underline; text-underline-offset: 2px; }
.cg-ini-pie a:hover { color: #fcfcf2; }

/* SEO (16 oct 2026): la primera etiqueta de cada página (eyebrow, lema de la portada, «Documento legal») pasó de <p> a <h6>
   para que Yoast tome como primer párrafo el texto de entrada real. Se ve igual que antes. */
h6.cg-eyebrow, h6.cg-lv-lema, h6.cg-legal-doc { line-height: 1.6; text-rendering: auto; }

/* ===== 2026-10-20 · Hojas PDF de RESPALDO (ruta y Semáforo sin folio) =====
   El documento principal ahora lo arma el servidor (cg-forms CG_PDF: paginado, sin cortes).
   Estas hojas solo se usan sin folio; antes medían 215.9 mm fijos con overflow: hidden y el
   margen del diálogo se comía el lado derecho. Ahora son fluidas, parten textos largos y,
   si no caben en una hoja, siguen en la siguiente en vez de recortarse. */
@page cg-ru { size: letter portrait; margin: 10mm; }
@media print {
	.cg-ru-pdf { page: cg-ru; }
	.cg-ru-pdf, .cg-sem-pdf { width: auto !important; max-width: 100% !important; height: auto !important; min-height: 0 !important; overflow: visible !important; }
	.cg-ru-pdf *, .cg-sem-pdf * { min-width: 0; overflow-wrap: anywhere; }
	.cg-ru-pdf-quien b, .cg-ru-pdf-quien small, .cg-sem-pdf-quien b, .cg-sem-pdf-quien small, .cg-sem-pdf-plan li a { white-space: normal !important; text-overflow: clip !important; overflow: visible !important; }
	.cg-sem-pdf-hero, .cg-sem-pdf-plan li { grid-template-columns: auto minmax(0, 1fr) auto !important; }
	.cg-sem-pdf-plan li a { max-width: 48mm; }
	.cg-sem-pdf-cta, .cg-ru-pdf-cta { grid-template-columns: minmax(0, 1fr) auto !important; }
	.cg-sem-pdf-areas { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
	.cg-ru-pdf-ins { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
	.cg-sem-pdf-quien { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1.25fr) minmax(0, 1.3fr) minmax(0, .8fr) !important; }
	.cg-ru-pdf-contacto li, .cg-sem-pdf-contacto li { grid-template-columns: 17mm minmax(0, 1fr) !important; }
	.cg-sem-pdf-pie-firma, .cg-ru-pdf-firma { flex-wrap: wrap; }
	.cg-ru-pdf-ins > *, .cg-sem-pdf-areas > *, .cg-sem-pdf-plan li, .cg-ru-pdf-cta, .cg-sem-pdf-cta { break-inside: avoid; page-break-inside: avoid; }
}

/* =====================================================================
   Ruta · resultado: color editorial (pedido 2026-10-20). Nada de tinta oscura sobre el verde brillante:
   «Tu ruta» = ficha clara (menta + filete verde, tinta verde) · «Tu siguiente paso» = verde profundo con letras crema,
   el único bloque de color fuerte para que la acción mande. Contraste: crema sobre #0f3d30–#17795b ≥ 5:1.
   ===================================================================== */
.cg-ru { --ru-crema: #fcfcf2; --ru-brillo: #8fe3c4; }
.cg-ru-ruta { padding: 1.35rem 1.5rem 1.3rem 1.6rem; border: 1px solid rgba(23, 121, 91, .16); border-radius: 18px; background: linear-gradient(135deg, #f2fbf7 0%, var(--ru-menta) 100%); box-shadow: inset 5px 0 0 var(--ru-ver); color: var(--ru-tinta); }
.cg-ru-ruta span { display: inline-flex; align-items: center; gap: .55rem; font-size: .66em; letter-spacing: .18em; color: var(--ru-txt); opacity: 1; }
.cg-ru-ruta span::after { content: ""; width: 2.2rem; height: 1px; background: currentColor; opacity: .45; }
.cg-ru-ruta b { margin: .45rem 0 .5rem; font-size: 1.5em; font-weight: 800; line-height: 1.18; letter-spacing: -.015em; color: var(--ru-tinta); }
.cg-ru-ruta p { color: #3f564f; }
.cg-ru-ruta p svg { stroke: var(--ru-txt); }
a.cg-ru-ir-paso { color: var(--ru-txt); }

.cg-ru-cta { position: relative; overflow: hidden; background: radial-gradient(120% 70% at 100% 0%, rgba(46, 185, 143, .38) 0%, rgba(46, 185, 143, 0) 60%), linear-gradient(165deg, #17795b 0%, #0f3d30 78%); color: var(--ru-crema); box-shadow: 0 28px 56px -30px rgba(15, 61, 48, .75); }
p.cg-ru-cta-k { border-bottom-color: rgba(252, 252, 242, .2); color: var(--ru-brillo); }
p.cg-ru-cta-t { font-size: 1.32em; color: var(--ru-crema); }
ul.cg-ru-cta-pros li { color: rgba(252, 252, 242, .9); }
ul.cg-ru-cta-pros svg { stroke: var(--ru-brillo); }
p.cg-ru-cta-nota { color: rgba(252, 252, 242, .78); }
.cg-ru-cta .cg-ru-cta-sec { border-top-color: rgba(252, 252, 242, .2); }
.cg-ru .cg-ru-cta .cg-ru-sec { color: var(--ru-crema); text-decoration-color: rgba(143, 227, 196, .7); }
.cg-ru .cg-ru-cta .cg-ru-sec:hover, .cg-ru .cg-ru-cta .cg-ru-sec:focus-visible { color: var(--ru-brillo); }
.cg-ru .cg-ru-cta .button.cg-ru-btn { color: var(--ru-tinta); box-shadow: 0 12px 24px -12px rgba(0, 0, 0, .45); }
.cg-ru .cg-ru-cta :focus-visible { outline-color: var(--ru-brillo); }
/* Agenda dentro de la tarjeta (cg-forms ruta-cita.css la pinta para fondo claro) */
.cg-ru-cta p.cgru-semana-k { color: var(--ru-crema); }
.cg-ru-cta .cgru-semana-cargando { border-color: rgba(252, 252, 242, .35); color: rgba(252, 252, 242, .82); }
.cg-ru-cta .cgru-semana button.cgru-dia:focus-visible { outline-color: var(--ru-brillo); }
.cg-ru-cta .cgru-semana-ok { box-shadow: 0 14px 28px -16px rgba(0, 0, 0, .5); }
@media print {
	.cg-ru-cta { background: #fff !important; color: #0f3d30 !important; box-shadow: none !important; }
	.cg-ru-cta p.cg-ru-cta-k, .cg-ru-cta p.cg-ru-cta-t, .cg-ru-cta li, .cg-ru-cta p, .cg-ru-cta .cg-ru-sec { color: #0f3d30 !important; }
}
/* Ruta · «¿Cómo te enteraste de nosotros?» (opcional, discreto): al pie de «Tus datos», separado por un filete fino */
.cg-ru-origen { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: .5rem 1rem; align-items: center; margin: .3rem 0 0; padding-top: .9rem; border-top: 1px dashed rgba(23, 121, 91, .25); }
.cg-ru-origen .cg-ru-label { grid-column: 1 / -1; margin: 0; font-size: .78em; font-weight: 600; color: #4a5c56; }
.cg-ru .cg-ru-origen .cg-ru-input { min-height: 2.6rem; padding: .4em .8em; border-width: 1px; font-size: .88em; color: #1f2d29; }
.cg-ru .cg-ru-origen select.cg-ru-input:invalid, .cg-ru .cg-ru-origen select.cg-ru-input option[value=""] { color: #6b7c77; }
@media (max-width: 549px) { .cg-ru-origen { grid-template-columns: 1fr; } }
/* Semáforo · «¿Cómo te enteraste de nosotros?» (opcional, discreto), mismo trato que en Ruta, en el morado de Empresas */
.cg-s2-origen { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: .5rem 1rem; align-items: center; margin: .3rem 0 0; padding-top: .9rem; border-top: 1px dashed rgba(75, 46, 131, .25); }
.cg-s2-origen .cg-s2-label { grid-column: 1 / -1; margin: 0; font-size: .8rem; font-weight: 600; color: #5a5466; }
.cg-s2 .cg-s2-origen .cg-s2-input { min-height: 2.6rem; padding: .4em .8em; border-width: 1px; font-size: .9rem; color: #262626; }
@media (max-width: 549px) { .cg-s2-origen { grid-template-columns: 1fr; } }

/* Inicio · Cómo trabajamos: logo blanco sobre la línea legal, igual que en el footer (2026-10-26). */
.cg-ini-pie-logo { display: block; width: max-content; margin: 0 auto 1rem; opacity: .9; transition: opacity .2s; }
.cg-ini-pie-logo:hover { opacity: 1; }
.cg-ini-pie-logo img { display: block; width: 8.5rem; height: auto; filter: brightness(0) invert(1); }
