/* =====================================================================
   CatálogoCursosGratis — Hoja de estilos principal
   Sistema de diseño + componentes. Maquetación Gutenberg + Astra.
   Los tokens replican la paleta definida en theme.json.
   ===================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap');

:root {
	--ccg-primary: #1a5fb4;
	--ccg-primary-dark: #0f3f92;
	--ccg-accent: #2563eb;
	--ccg-contrast: #111827;
	--ccg-muted: #6b7280;
	--ccg-base: #f4f5f7;
	--ccg-surface: #eaf1fd;
	--ccg-border: #e5e7eb;
	--ccg-white: #fff;
	--ccg-success: rgb(18, 179, 154);
	--ccg-success-bg: #dcfce7;
	--ccg-radius: 12px;
	--ccg-radius-sm: 8px;
	--ccg-shadow: 0 1px 3px rgba(17, 24, 39, .08), 0 1px 2px rgba(17, 24, 39, .04);
	--ccg-shadow-md: 0 6px 20px rgba(17, 24, 39, .08);
	--ccg-container: 1140px;
}

body,
.ast-container {
	font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
	color: var(--ccg-contrast);
}

/* Astra fija el fondo del body en blanco (varias reglas en main.min.css);
   lo igualamos al crema del sistema de diseño con prioridad garantizada. */
body { background-color: var(--ccg-base) !important; }

/* Enlaces sin subrayado por defecto, subrayado sólo en hover (criterio de diseño). */
a { text-decoration: none; }
a:hover { text-decoration: underline; }
.ccg-btn:hover,
.ccg-card:hover,
.menu-cta a:hover,
.ccg-footer a:hover { text-decoration: none; }

/* Astra subraya por defecto los enlaces del contenido (.entry-content); igualamos
   especificidad para que nuestro criterio (sin subrayado salvo hover) prevalezca. */
.ast-single-post .entry-content a,
.ast-comment-content a:not(.ast-comment-edit-reply-wrap a) { text-decoration: none; }
.ast-single-post .entry-content a:hover,
.ast-comment-content a:not(.ast-comment-edit-reply-wrap a):hover { text-decoration: underline; }

/* Sin espacio en blanco antes de la primera banda (criterio de aceptación). */
.ccg-home .site-content,
.ccg-home #primary,
.ccg-home .entry-content { margin-top: 0; padding-top: 0; }
.ccg-home .ast-container > article > .entry-content > *:first-child { margin-top: 0; }

/* ------------------------------------------------------------------ */
/* Contenedores y botones                                              */
/* ------------------------------------------------------------------ */
.ccg-wrap { max-width: var(--ccg-container); margin-inline: auto; padding-inline: 1.25rem; }

.ccg-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
	background: var(--ccg-primary); color: var(--ccg-white) !important;
	font-weight: 600; line-height: 1.2; padding: .8rem 1.5rem;
	border-radius: var(--ccg-radius-sm); border: 0; cursor: pointer;
	transition: background .15s ease; font-size: 1rem;
}
.ccg-btn:hover { background: var(--ccg-primary-dark); color: #fff !important; }
.ccg-btn--block { width: 100%; }
.ccg-btn--ghost { background: var(--ccg-white); color: var(--ccg-primary) !important; border: 1px solid var(--ccg-border); }
.ccg-btn--ghost:hover { background: var(--ccg-base); color: var(--ccg-primary) !important; border-color: var(--ccg-primary); }

/* ------------------------------------------------------------------ */
/* Cabecera / navegación (Astra)                                       */
/* ------------------------------------------------------------------ */
.main-header-bar { box-shadow: var(--ccg-shadow); }

/* CTA del recomendador en el menú: altura de botón normal, NO altura completa
   del header (criterio de aceptación). */
.main-navigation .menu-cta > a,
.ast-builder-menu .menu-cta > a {
	background: var(--ccg-primary); color: var(--ccg-white) !important;
	border-radius: var(--ccg-radius-sm); padding: .55rem 1.15rem !important;
	margin: auto 0 auto .5rem; line-height: 1.2 !important; height: auto !important;
	align-self: center; font-weight: 600;
}
.main-navigation .menu-cta > a:hover { background: var(--ccg-primary-dark); text-decoration: none; }
.main-navigation .menu-cta { display: flex; align-items: center; }

.ccg-logo-text { font-weight: 800; font-size: 1.25rem; color: var(--ccg-contrast); }
.ccg-logo-text .is-blue { color: var(--ccg-primary); }

/* Wordmark del header (HTML + Inter, nítido). */
.ccg-logo { display: inline-flex; align-items: center; gap: .5rem; text-decoration: none; line-height: 1; }
.ccg-logo:hover { text-decoration: none; }
.ccg-logo__cap { flex: 0 0 auto; display: block; }
.ccg-logo__text { font-family: Inter, sans-serif; font-weight: 800; font-size: 1.35rem; letter-spacing: -.01em; color: var(--ccg-contrast); white-space: nowrap; }
.ccg-logo__text b { color: var(--ccg-primary); font-weight: 800; }

/* Logo PNG subido. */
.ccg-logo--img { display: inline-flex; align-items: center; }
.ccg-logo__img { display: block; height: 95px; width: auto; max-width: 320px; object-fit: contain; }
@media (max-width: 767px) { .ccg-logo__img { height: 56px; } }

/* Compacta el espaciado vertical del site-identity de Astra. */
.ast-logo-title-inline .ast-site-identity { padding: 0.5em 0; }

/* ------------------------------------------------------------------ */
/* Hero                                                                */
/* ------------------------------------------------------------------ */
.ccg-hero {
	position: relative;
	overflow: hidden;
	background:
		linear-gradient(135deg, rgba(26,95,180,.95) 0%, rgba(21,76,160,.92) 55%, rgba(15,63,146,.95) 100%),
		url('https://images.unsplash.com/photo-1521737604893-d14cc237f11d?auto=format&fit=crop&w=1600&q=70') center/cover no-repeat;
	background-color: #1a5fb4;
	color: var(--ccg-white); text-align: center;
	padding: 5.5rem 1.25rem 5rem;
}
/* Orbes animados de fondo en el hero */
.ccg-hero::before,
.ccg-hero::after {
	content: "";
	position: absolute;
	border-radius: 50%;
	pointer-events: none;
	opacity: .18;
}
.ccg-hero::before {
	width: 600px; height: 600px;
	background: radial-gradient(circle, rgba(255,255,255,.6) 0%, transparent 70%);
	top: -200px; left: -150px;
	animation: ccg-orb 12s ease-in-out infinite alternate;
}
.ccg-hero::after {
	width: 400px; height: 400px;
	background: radial-gradient(circle, rgba(100,180,255,.7) 0%, transparent 70%);
	bottom: -100px; right: -80px;
	animation: ccg-orb 9s ease-in-out infinite alternate-reverse;
}
@keyframes ccg-orb {
	from { transform: translate(0, 0) scale(1); }
	to   { transform: translate(40px, 30px) scale(1.12); }
}
/* El contenido del hero queda por encima de los orbes */
.ccg-hero > * { position: relative; z-index: 1; }
.ccg-hero h1 { color: #fff; font-size: clamp(2.4rem, 5vw, 3.4rem); margin: 0 0 1rem; animation: ccg-fade-down .75s cubic-bezier(.16,1,.3,1) both; }
.ccg-hero p  { color: rgba(255,255,255,.92); font-size: 1.15rem; max-width: 720px !important; margin: 0 auto 2rem; animation: ccg-fade-down .75s .14s cubic-bezier(.16,1,.3,1) both; }
.ccg-herosearch { animation: ccg-fade-up .75s .26s cubic-bezier(.16,1,.3,1) both; }
@keyframes ccg-fade-down {
	from { opacity: 0; transform: translateY(-24px); }
	to   { opacity: 1; transform: translateY(0); }
}
@keyframes ccg-fade-up {
	from { opacity: 0; transform: translateY(24px); }
	to   { opacity: 1; transform: translateY(0); }
}

.ccg-herosearch {
	background: var(--ccg-white); border-radius: var(--ccg-radius); box-shadow: var(--ccg-shadow-md);
	max-width: 880px !important; margin: 0 auto; padding: 1rem;
	display: grid; grid-template-columns: repeat(4, 1fr); gap: .75rem;
}
.ccg-herosearch .ccg-submit { grid-column: 1 / -1; }

/* ------------------------------------------------------------------ */
/* Campos de formulario — texto NO cortado (line-height/padding/min-height) */
/* ------------------------------------------------------------------ */
.ccg-input, .ccg-select,
.ccg-herosearch input, .ccg-herosearch select,
.wpcf7 input[type="text"], .wpcf7 input[type="email"], .wpcf7 input[type="tel"],
.wpcf7 select, .wpcf7 textarea,
.ccg-catalogo input[type="search"], .ccg-catalogo select,
.ccg-quiz input:not([type="checkbox"]):not([type="radio"]), .ccg-quiz select {
	width: 100%; min-height: 48px; padding: .7rem .9rem;
	font-size: 1rem; line-height: 1.5; color: var(--ccg-contrast);
	background: var(--ccg-white); border: 1px solid var(--ccg-border);
	border-radius: var(--ccg-radius-sm); box-sizing: border-box; overflow: visible;
	-webkit-appearance: none; appearance: none;
}
.ccg-input:focus, .ccg-select:focus,
.wpcf7 input:focus, .wpcf7 select:focus, .wpcf7 textarea:focus,
.ccg-quiz input:focus, .ccg-quiz select:focus {
	outline: none; border-color: var(--ccg-primary); box-shadow: 0 0 0 3px rgba(24, 87, 196, .15);
}
label.ccg-quiz__legal { display: flex; align-items: flex-start; gap: .5rem; }
.ccg-quiz__legal input[type="checkbox"] { width: auto; min-width: 16px; height: 16px; margin-top: .2rem; flex: 0 0 auto; }
.ccg-select, .ccg-herosearch select, .wpcf7 select, .ccg-catalogo select, .ccg-quiz select {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-position: right .9rem center; padding-right: 2.2rem;
}

/* ------------------------------------------------------------------ */
/* Secciones / bandas                                                  */
/* ------------------------------------------------------------------ */
.ccg-section { padding: 3rem 1.25rem; }
.ccg-section--first { padding-top: 4rem; padding-bottom: 4rem; } /* primera banda más alta */
.ccg-section--base { background: var(--ccg-base); }
.ccg-section__title { text-align: left; font-size: 1.75rem; margin: 0 0 1.75rem; }
.ccg-section--center { text-align: center; }
.ccg-section--center .ccg-section__title { text-align: center; }

.ccg-audience { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.25rem; max-width: var(--ccg-container) !important; margin-inline: auto; }
.ccg-audience__card { background: var(--ccg-white); border: 1px solid var(--ccg-border); border-radius: var(--ccg-radius); padding: 1.5rem; text-align: center; }
.ccg-audience__card .ccg-icon { color: var(--ccg-primary); margin-bottom: .75rem; }
.ccg-audience__card h3 { font-size: 1.05rem; margin: 0 0 .4rem; }
.ccg-audience__card p { color: var(--ccg-muted); font-size: .9rem; margin: 0 0 .75rem; }
.ccg-audience__card a { font-weight: 600; font-size: .9rem; }

/* Segunda banda: textos e iconos centrados. */
.ccg-band2 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.25rem; max-width: var(--ccg-container); margin-inline: auto; text-align: center; }
.ccg-band2__item { display: flex; flex-direction: column; align-items: center; gap: .6rem; }
.ccg-band2__item .ccg-icon { color: var(--ccg-accent); }
.ccg-band2__item h3 { font-size: 1rem; margin: 0; }
.ccg-band2__item p { color: var(--ccg-muted); font-size: .88rem; margin: 0; }

/* ------------------------------------------------------------------ */
/* Tarjetas de curso                                                   */
/* ------------------------------------------------------------------ */
.ccg-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; max-width: var(--ccg-container) !important; margin-inline: auto; }
.ccg-card {
	background: var(--ccg-white); border: 1px solid var(--ccg-border); border-radius: var(--ccg-radius);
	overflow: hidden; display: flex; flex-direction: column;
	box-shadow: var(--ccg-shadow);
	transition: box-shadow .25s cubic-bezier(.22,1,.36,1), transform .25s cubic-bezier(.22,1,.36,1), border-color .2s ease;
}
.ccg-card:hover {
	box-shadow: 0 12px 32px rgba(17,24,39,.13), 0 3px 8px rgba(26,95,180,.1);
	transform: translateY(-5px);
	border-color: rgba(37,99,235,.2);
}
.ccg-card__media { transition: transform .4s cubic-bezier(.22,1,.36,1); }
.ccg-card:hover .ccg-card__media { transform: scale(1.02); }
/* La imagen dentro del media no debe desbordarse al escalar el contenedor */
.ccg-card__media { overflow: hidden; }

.ccg-card__media { position: relative; aspect-ratio: 16 / 10; overflow: hidden; background: var(--ccg-surface); border-bottom: 5px solid var(--ccg-success); }
/* Sólo la imagen de portada cubre la tarjeta; el logo se excluye expresamente. */
.ccg-card__media img:not(.ccg-card__logo) { width: 100%; height: 100%; object-fit: cover; display: block; }
/* Overlay sutil: solo un degradado inferior leve para legibilidad del badge/marca; deja la foto luminosa. */
.ccg-card__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(9,30,76,.46) 0%, rgba(9,30,76,.12) 42%, rgba(12,52,120,.05) 100%); pointer-events: none; }
/* Marca de agua diagonal sutil en el color de marca, para romper la planitud de la foto. */
.ccg-card__media::before { content: ""; position: absolute; left: -20%; bottom: -35%; width: 70%; aspect-ratio: 1 / 1; background: var(--ccg-success); opacity: .26; transform: rotate(45deg); pointer-events: none; z-index: 1; }
.ccg-card__logo { position: absolute; right: .65rem; bottom: .55rem; z-index: 3; height: 44px !important; width: auto !important; max-width: 160px; opacity: .9; object-fit: contain; filter: brightness(0) invert(1) drop-shadow(0 1px 3px rgba(0,0,0,.6)); }
.ccg-card__badge { position: absolute; left: .6rem; top: .6rem; z-index: 2; background: var(--ccg-success); color: #fff; font-size: .72rem; font-weight: 600; padding: .2rem .55rem; border-radius: 999px; }
.ccg-card__body { padding: 1rem 1.1rem 1.2rem; display: flex; flex-direction: column; gap: .65rem; flex: 1; }
.ccg-card__title { font-size: 1.02rem; margin: 0; line-height: 1.3; text-align: left; }
.ccg-card__title a { color: var(--ccg-contrast); }
.ccg-card__meta { display: flex; flex-wrap: wrap; gap: .4rem; }
.ccg-chip { display: inline-flex; align-items: center; gap: .25rem; background: var(--ccg-base); color: var(--ccg-muted); font-size: .74rem; padding: .22rem .55rem; border-radius: 999px; border: 1px solid var(--ccg-border); }
.ccg-card__cta { margin-top: auto; }

/* "¿Para quién son estos cursos?" — icono flotando a la izquierda. */
.ccg-forwhom { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.25rem; max-width: var(--ccg-container) !important; margin-inline: auto; }
.ccg-forwhom__item { display: flex; gap: 1rem; align-items: flex-start; background: var(--ccg-white); border: 1px solid var(--ccg-border); border-radius: var(--ccg-radius); padding: 1.25rem 1.4rem; text-align: left; }
.ccg-forwhom__item .ccg-icon { color: var(--ccg-primary); flex: 0 0 auto; }
.ccg-forwhom__item h3 { margin: 0 0 .25rem; font-size: 1.05rem; }
.ccg-forwhom__item p { margin: 0; color: var(--ccg-muted); font-size: .9rem; }

.ccg-center-btn { text-align: center; margin-top: 2rem; }

/* ------------------------------------------------------------------ */
/* Footer                                                              */
/* ------------------------------------------------------------------ */
.ccg-footer { background: var(--ccg-white); border-top: 1px solid var(--ccg-border); padding: 3rem 1.25rem 1.5rem; color: var(--ccg-muted); font-size: .92rem; }
.ccg-footer__cols { max-width: var(--ccg-container); margin-inline: auto; display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: 2rem; }
.ccg-footer h4 { font-size: .8rem; text-transform: uppercase; letter-spacing: .04em; color: var(--ccg-contrast); margin: 0 0 1rem; }
.ccg-footer ul { list-style: none; margin: 0; padding: 0; }
.ccg-footer li { margin-bottom: .55rem; }
.ccg-footer a { color: var(--ccg-muted); }
.ccg-footer a:hover { color: var(--ccg-primary); }
.ccg-footer__brand { font-weight: 800; font-size: 1.15rem; color: var(--ccg-contrast); margin-bottom: .75rem; }
.ccg-footer__brand .is-blue { color: var(--ccg-primary); }
.ccg-footer__logo { display: block; height: 76px; width: auto; max-width: 250px; margin-bottom: .85rem; }
.ccg-footer__tagline { max-width: 320px; line-height: 1.6; }
.ccg-footer__bottom { max-width: var(--ccg-container); margin: 2rem auto 0; padding-top: 1.25rem; border-top: 1px solid var(--ccg-border); text-align: center; font-size: .85rem; }

/* ------------------------------------------------------------------ */
/* Catálogo                                                            */
/* ------------------------------------------------------------------ */
.ccg-catalogo { max-width: var(--ccg-container) !important; margin-inline: auto; padding: 2.5rem 1.25rem 3.5rem; }
.ccg-catalogo__head { text-align: center; margin-bottom: 2rem; } /* contenido centrado */
.ccg-catalogo__head h1 { margin: 0 0 .5rem; }
.ccg-catalogo__head p { color: var(--ccg-muted); margin: 0; }
.ccg-filters { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr auto; gap: .75rem; align-items: end; background: var(--ccg-white); border: 1px solid var(--ccg-border); border-radius: var(--ccg-radius); padding: 1rem; box-shadow: var(--ccg-shadow); margin-bottom: 1.5rem; }
.ccg-filters label { display: block; font-size: .8rem; color: var(--ccg-muted); margin-bottom: .3rem; }
.ccg-filters .ccg-submit { align-self: end; }
.ccg-catalogo__count { color: var(--ccg-muted); font-size: .9rem; margin-bottom: 1.5rem; text-align: center; }
.ccg-empty { text-align: center; color: var(--ccg-muted); padding: 3rem 0; }

/* Paginación compacta y centrada (rango acotado: 1 … 4 5 6 … 20). */
.ccg-pagination { display: flex; justify-content: center; gap: .35rem; margin-top: 2.5rem; flex-wrap: wrap; }
.ccg-pagination a, .ccg-pagination span { min-width: 40px; height: 40px; display: inline-flex; align-items: center; justify-content: center; padding: 0 .5rem; border: 1px solid var(--ccg-border); border-radius: var(--ccg-radius-sm); color: var(--ccg-contrast); background: var(--ccg-white); font-size: .9rem; }
.ccg-pagination a:hover { background: var(--ccg-base); text-decoration: none; }
.ccg-pagination .current { background: var(--ccg-primary); color: #fff; border-color: var(--ccg-primary); }
.ccg-pagination .dots { border: 0; background: transparent; }

/* ------------------------------------------------------------------ */
/* Recomendador (quiz)                                                 */
/* ------------------------------------------------------------------ */
.ccg-quiz-wrap { background: var(--ccg-base); padding: 3rem 1.25rem 5rem; min-height: 60vh; }
.ccg-quiz { max-width: 640px !important; margin: 0 auto; background: var(--ccg-white); border-radius: var(--ccg-radius); box-shadow: var(--ccg-shadow-md); overflow: hidden; }
.ccg-quiz__progress { height: 6px; background: var(--ccg-border); }
.ccg-quiz__progress > span { display: block; height: 100%; background: var(--ccg-primary); transition: width .3s ease; }
.ccg-quiz__inner { padding: 2.25rem 2.25rem 2rem; }
.ccg-quiz h2 { font-size: 1.6rem; margin: 0 0 .35rem; }
.ccg-quiz__sub { color: var(--ccg-muted); margin: 0 0 1.5rem; }
.ccg-quiz__options { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
.ccg-quiz__options--3 { grid-template-columns: repeat(3, 1fr); }
.ccg-quiz__option { display: flex; align-items: center; gap: .75rem; border: 1px solid var(--ccg-border); border-radius: var(--ccg-radius-sm); padding: 1rem 1.1rem; background: var(--ccg-white); cursor: pointer; font-weight: 600; color: var(--ccg-contrast); text-align: left; width: 100%; font-size: 1rem; transition: border-color .15s, background .15s; }
.ccg-quiz__option:hover { border-color: var(--ccg-primary); background: var(--ccg-surface); color: var(--ccg-contrast); text-decoration: none; }
.ccg-quiz__option .ccg-icon { color: var(--ccg-accent); flex: 0 0 auto; }
.ccg-quiz__option:hover .ccg-icon { color: var(--ccg-primary-dark); }
.ccg-quiz__back { display: inline-flex; align-items: center; gap: .4rem; color: var(--ccg-muted); margin-top: 1.5rem; background: none; border: 0; cursor: pointer; font-size: .95rem; text-decoration: none; }
.ccg-quiz__back:hover { color: var(--ccg-primary); text-decoration: underline; }
.ccg-quiz__form { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.ccg-quiz__form .full { grid-column: 1 / -1; }
.ccg-quiz__legal { font-size: .8rem; color: var(--ccg-muted); }
.ccg-quiz__rating { color: #f59e0b; font-weight: 600; margin-bottom: .25rem; }
.ccg-notice { padding: 1rem 1.25rem; border-radius: var(--ccg-radius-sm); margin-bottom: 1rem; }
.ccg-notice--ok { background: var(--ccg-success-bg); color: #14532d; }
.ccg-notice--err { background: #fee2e2; color: #991b1b; }

/* ------------------------------------------------------------------ */
/* Ficha de curso (single)                                             */
/* ------------------------------------------------------------------ */
.ccg-single { background: var(--ccg-base); max-width: 1180px; margin: 0 auto; }
.ccg-single__hero { position: relative; color: #fff; padding: 2.5rem 1.25rem; background: var(--ccg-primary-dark); overflow: hidden; border-radius: var(--ccg-radius); }
/* Overlay del héroe más suave: fuerte a la izquierda (legibilidad del título) y la foto respira a la derecha. */
.ccg-single__hero::before { content: ""; position: absolute; inset: 0; background: linear-gradient(102deg, rgba(8,28,72,.84) 0%, rgba(10,38,96,.6) 50%, rgba(16,64,140,.3) 100%); z-index: 1; }
.ccg-single__hero > * { position: relative; z-index: 2; }
.ccg-single__hero-inner { max-width: var(--ccg-container); margin-inline: auto; }
.ccg-single__hero h1 { color: #fff; font-size: clamp(1.6rem, 3.5vw, 2.3rem); margin: .5rem 0; }
.ccg-single__hero-meta { display: flex; flex-wrap: wrap; gap: 1.25rem; font-size: .9rem; color: rgba(255,255,255,.9); }
.ccg-single__layout { max-width: 100%; padding: 2.5rem 0rem 4rem; display: grid; grid-template-columns: 1fr 360px; gap: 2.5rem; align-items: start; }
.ccg-single__main > section { background: var(--ccg-white); border: 1px solid var(--ccg-border); border-radius: var(--ccg-radius); padding: 1.25rem 1.5rem; margin-bottom: 1.25rem; font-size: .9375rem; }
.ccg-single__main h2 { font-size: 1.1rem; font-weight: 700; margin: 0 0 .85rem; }
.ccg-single__main ul, .ccg-single__main ol { padding-left: 1.1rem; margin-left: 0; }
.ccg-single__main li { margin-bottom: .35rem; }

/* Temario: ol con h3 por tema + doble anidación ul > li > ul */
.ccg-single__main ol.contenido.curso,
.ccg-single__main ol.contenido-curso { list-style: none; padding-left: 0; margin-left: 0; counter-reset: ccg-tema; }
.ccg-single__main ol.contenido.curso > li,
.ccg-single__main ol.contenido-curso > li { counter-increment: ccg-tema; margin-bottom: 1.25rem; padding-left: 0; margin-left: 0; }
.ccg-single__main > section h3 { font-size: .9rem !important; font-weight: 700; color: var(--ccg-contrast); margin: 0 0 .4rem; }
.ccg-single__main ol.contenido.curso > li > h3,
.ccg-single__main ol.contenido-curso > li > h3 { display: flex; gap: .35em; }
.ccg-single__main ol.contenido.curso > li > h3::before { content: counter(ccg-tema) "."; color: var(--ccg-contrast); font-weight: 700; flex: 0 0 auto; }
.ccg-single__main ol.contenido.curso > li > ul,
.ccg-single__main ol.contenido-curso > li > ul { list-style: none; padding-left: 0; margin: 0; }
.ccg-single__main ol.contenido.curso > li > ul > li,
.ccg-single__main ol.contenido-curso > li > ul > li { list-style: none; padding: 0; margin: 0; }
.ccg-single__main ol.contenido.curso > li > ul > li > ul,
.ccg-single__main ol.contenido-curso > li > ul > li > ul { list-style: disc; padding-left: 1.5rem; margin: .35rem 0 0; }
.ccg-single__main ol.contenido.curso > li > ul > li > ul > li,
.ccg-single__main ol.contenido-curso > li > ul > li > ul > li { margin-bottom: .3rem; color: var(--ccg-contrast) !important; }
.ccg-single__main ol.contenido.curso > li > ul > li > ul > li a,
.ccg-single__main ol.contenido-curso > li > ul > li > ul > li a { color: var(--ccg-contrast) !important; text-decoration: none; }
.ccg-single__main ol.contenido.curso > li > ul > li > ul ul,
.ccg-single__main ol.contenido-curso > li > ul > li > ul ul { padding-left: 2rem; }
.ccg-single__main ol.contenido.curso > li > ul > li > ul ul ul,
.ccg-single__main ol.contenido-curso > li > ul > li > ul ul ul { padding-left: 2.5rem; }
.ccg-steps { list-style: none; padding: 0; margin: 0; display: grid; gap: .85rem; }
.ccg-steps li { display: flex; gap: .75rem; align-items: flex-start; }
.ccg-steps .num { background: var(--ccg-primary); color: #fff; width: 26px; height: 26px; border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; font-size: .85rem; flex: 0 0 auto; }
.ccg-sidebar { position: static; }
.ccg-sidebar__box { background: var(--ccg-white); border: 1px solid var(--ccg-border); border-radius: var(--ccg-radius); padding: 1.5rem; box-shadow: var(--ccg-shadow-md); }
.ccg-sidebar__box h3 { margin: 0 0 1rem; font-size: 1.15rem; }
.ccg-back { display: flex; align-items: center; gap: .4rem; color: var(--ccg-primary); font-weight: 600; font-size: .9rem; padding: 1rem 0 1.25rem 1.25rem; max-width: var(--ccg-container); margin: 0 auto; }
.ccg-back:hover { text-decoration: underline; }
.ccg-related { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }

/* ------------------------------------------------------------------ */
/* Blog                                                                */
/* ------------------------------------------------------------------ */
.ccg-blog { max-width: var(--ccg-container) !important; margin-inline: auto; padding: 2.5rem 1.25rem 4rem; }
.ccg-blog__head h1 { margin: 0 0 .35rem; }
.ccg-blog__head p { color: var(--ccg-muted); margin: 0 0 2rem; }
.ccg-blog__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.ccg-post-card { background: var(--ccg-white); border: 1px solid var(--ccg-border); border-radius: var(--ccg-radius); overflow: hidden; display: flex; flex-direction: column; }
.ccg-post-card__icon { background: var(--ccg-surface); display: flex; align-items: center; justify-content: center; height: 140px; color: var(--ccg-primary); }
.ccg-post-card__icon img { width: 100%; height: 100%; object-fit: cover; }
.ccg-post-card__icon--placeholder { background: linear-gradient(135deg, var(--ccg-primary) 0%, var(--ccg-primary-dark) 100%); }
.ccg-post-card__imagotipo { width: auto !important; height: 52px !important; object-fit: contain !important; filter: brightness(0) invert(1); opacity: .88; }
.ccg-post-card__body { padding: 1.25rem; }
.ccg-post-card__cat { font-size: .72rem; text-transform: uppercase; letter-spacing: .04em; color: var(--ccg-primary); font-weight: 600; }
.ccg-post-card__body h3 { font-size: 1.05rem; margin: .4rem 0 .5rem; }
.ccg-post-card__body h3 a { color: var(--ccg-contrast); }
.ccg-post-card__body p { color: var(--ccg-muted); font-size: .9rem; margin: 0; }

/* ------------------------------------------------------------------ */
/* GDPR Cookie Compliance — alinear botones con el estilo del sitio   */
/* ------------------------------------------------------------------ */
#moove_gdpr_cookie_info_bar .mgbutton,
#moove_gdpr_cookie_modal .mgbutton {
	border-radius: var(--ccg-radius-sm) !important;
	padding: .55rem 1.15rem !important;
	min-width: auto !important;
	font-size: .9rem !important;
	font-weight: 600 !important;
	line-height: 1.2 !important;
	text-transform: none !important;
}
#moove_gdpr_cookie_info_bar .moove-gdpr-info-bar-content { font-size: .9rem; }
#moove_gdpr_cookie_modal .moove-gdpr-modal-content .moove-gdpr-modal-footer-content .moove-gdpr-button-holder .mgbutton {
	margin: 4px;
}

/* ------------------------------------------------------------------ */
/* CF7                                                                 */
/* ------------------------------------------------------------------ */
.wpcf7 form { display: grid; gap: .75rem; }
.wpcf7 form > div, .wpcf7 form > p { margin-bottom: 0; }
.wpcf7 .ccg-row { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; }
.wpcf7 .ccg-row p { margin: 0; }
.wpcf7-acceptance .wpcf7-list-item { margin: 0; }
.wpcf7-acceptance label { display: flex; gap: .4rem; align-items: flex-start; font-size: .78rem; color: var(--ccg-muted); line-height: 1.4; }
.wpcf7-acceptance input[type="checkbox"] { width: auto; min-width: 15px; height: 15px; margin-top: .15rem; flex: 0 0 auto; }
.wpcf7 .wpcf7-submit { width: 100%; margin-top: .25rem; }
.wpcf7-not-valid-tip { font-size: .78rem; }
.wpcf7 p { margin: 0; }
.ccg-label { display: block; font-size: .82rem; font-weight: 600; margin-bottom: .25rem; color: var(--ccg-contrast); }
.ccg-req { color: #dc2626; margin-left: .1rem; }

/* Bloque RGPD compacto */
.ccg-rgpd-info { background: var(--ccg-surface); border-radius: var(--ccg-radius-sm); padding: .65rem .8rem; margin-top: .25rem; }
.ccg-rgpd-info p { font-size: .72rem; color: var(--ccg-muted); line-height: 1.45; margin: 0; }
.ccg-rgpd-info strong { color: var(--ccg-contrast); }
.ccg-rgpd-checks { display: grid; gap: .4rem; }
.ccg-rgpd-check { margin: 0; }
.ccg-rgpd-note { font-size: .72rem; color: var(--ccg-muted); line-height: 1.45; margin-top: .5rem; }

/* Iconos SVG inline. */
.ccg-icon { width: 28px; height: 28px; display: inline-block; flex: 0 0 auto; }
.ccg-icon--sm { width: 20px; height: 20px; }

/* ------------------------------------------------------------------ */
/* Header scrolled — sombra más pronunciada al hacer scroll            */
/* ------------------------------------------------------------------ */
.main-header-bar { transition: box-shadow .25s ease; }
.ccg-scrolled.main-header-bar { box-shadow: 0 4px 20px rgba(17,24,39,.12) !important; }

/* ------------------------------------------------------------------ */
/* Ripple en botones                                                   */
/* ------------------------------------------------------------------ */
.ccg-btn { position: relative; overflow: hidden; }
.ccg-ripple {
	position: absolute; border-radius: 50%;
	width: 6px; height: 6px; margin-left: -3px; margin-top: -3px;
	background: rgba(255,255,255,.45);
	transform: scale(0);
	animation: ccg-ripple .55s linear;
	pointer-events: none;
}
@keyframes ccg-ripple {
	to { transform: scale(60); opacity: 0; }
}

/* ------------------------------------------------------------------ */
/* Audience cards y forwhom — hover suave                              */
/* ------------------------------------------------------------------ */
.ccg-audience__card {
	transition: box-shadow .25s cubic-bezier(.22,1,.36,1), transform .25s cubic-bezier(.22,1,.36,1);
}
.ccg-audience__card:hover {
	box-shadow: 0 8px 24px rgba(26,95,180,.12);
	transform: translateY(-3px);
}
.ccg-forwhom__item {
	transition: box-shadow .25s cubic-bezier(.22,1,.36,1), transform .25s cubic-bezier(.22,1,.36,1);
}
.ccg-forwhom__item:hover {
	box-shadow: 0 8px 24px rgba(26,95,180,.1);
	transform: translateY(-3px);
}

/* Post cards (blog) */
.ccg-post-card {
	transition: box-shadow .25s cubic-bezier(.22,1,.36,1), transform .25s cubic-bezier(.22,1,.36,1);
}
.ccg-post-card:hover {
	box-shadow: 0 10px 28px rgba(17,24,39,.11);
	transform: translateY(-4px);
}

/* ------------------------------------------------------------------ */
/* Responsive                                                          */
/* ------------------------------------------------------------------ */
@media (max-width: 1024px) {
	.ccg-grid, .ccg-blog__grid, .ccg-related { grid-template-columns: repeat(2, 1fr); }
	.ccg-audience, .ccg-band2 { grid-template-columns: repeat(2, 1fr); }
	.ccg-single__layout { grid-template-columns: 1fr; }
	.ccg-sidebar { position: static; order: -1; }
	.ccg-footer__cols { grid-template-columns: 1fr 1fr; }
	.ccg-filters { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
	.ccg-herosearch, .ccg-grid, .ccg-blog__grid, .ccg-related, .ccg-audience, .ccg-band2, .ccg-forwhom,
	.ccg-quiz__options, .ccg-quiz__options--3, .ccg-quiz__form, .ccg-filters, .ccg-footer__cols { grid-template-columns: 1fr; }
	.ccg-hero { padding: 3.5rem 1.25rem; }
	.ccg-quiz__inner { padding: 1.5rem; }
}

/* ------------------------------------------------------------------ */
/* Quita el padding/recuadro extra que Astra añade al contenido        */
/* en plantillas tipo page-builder (afecta a home y otras páginas).    */
/* ------------------------------------------------------------------ */
.ast-single-post.ast-page-builder-template .site-main > article,
.ast-page-builder-template .post-navigation {
	padding-top: 0;
	padding-left: 0;
	padding-right: 0;
}

/* ------------------------------------------------------------------ */
/* Modal de configuración de cookies (GDPR Cookie Compliance)         */
/* El tema "modern" del plugin no limita la altura del panel derecho, */
/* por lo que su contenido se desborda fuera del modal y de la        */
/* pantalla. Lo acotamos a la altura visible y lo hacemos scrollable. */
/* ------------------------------------------------------------------ */
#moove_gdpr_cookie_modal .moove-gdpr-modal-content.moove_gdpr_modal_theme_modern .moove-gdpr-modal-left-content,
#moove_gdpr_cookie_modal .moove-gdpr-modal-content.moove_gdpr_modal_theme_modern .moove-gdpr-modal-right-content {
	max-height: 85vh;
	overflow: hidden;
}
/* El footer de botones es absolute (bottom:0) y se solapa con el final de
   la última sección (Política de cookies). Reservamos su altura como
   padding extra y limitamos/scrolleamos el contenido para que no quede
   tapado por el footer. */
#moove_gdpr_cookie_modal .moove-gdpr-modal-content.moove_gdpr_modal_theme_modern .moove-gdpr-modal-right-content {
	padding-bottom: 170px;
}
#moove_gdpr_cookie_modal .moove-gdpr-modal-content.moove_gdpr_modal_theme_modern .main-modal-content {
	max-height: calc(85vh - 300px);
	overflow-y: auto;
	padding-bottom: 0;
}
@media (max-width: 767px) {
	#moove_gdpr_cookie_modal .moove-gdpr-modal-content.moove_gdpr_modal_theme_modern {
		max-height: 90vh;
		overflow-y: auto;
	}
	#moove_gdpr_cookie_modal .moove-gdpr-modal-content.moove_gdpr_modal_theme_modern .moove-gdpr-modal-left-content,
	#moove_gdpr_cookie_modal .moove-gdpr-modal-content.moove_gdpr_modal_theme_modern .moove-gdpr-modal-right-content {
		position: relative;
		width: 100%;
		max-height: none;
		overflow-y: visible;
		padding-bottom: 15px;
	}
	#moove_gdpr_cookie_modal .moove-gdpr-modal-content.moove_gdpr_modal_theme_modern .main-modal-content {
		max-height: none;
		overflow-y: visible;
	}
	/* El footer pasa a flujo normal (en vez de absolute) y los botones se
	   apilan a ancho completo, evitando que se salgan del modal o se
	   solapen entre ellos. */
	#moove_gdpr_cookie_modal .moove-gdpr-modal-content.moove_gdpr_modal_theme_modern .moove-gdpr-modal-footer-content {
		position: relative;
		left: auto;
		bottom: auto;
		height: auto;
		width: 100%;
		padding: 10px 0 0;
	}
	#moove_gdpr_cookie_modal .moove-gdpr-modal-content.moove_gdpr_modal_theme_modern .moove-gdpr-modal-footer-content:before {
		content: none;
	}
	#moove_gdpr_cookie_modal .moove-gdpr-modal-content.moove_gdpr_modal_theme_modern .moove-gdpr-button-holder {
		width: 100%;
		flex-direction: column;
		padding: 0;
		margin: 0;
		gap: 8px;
	}
	#moove_gdpr_cookie_modal .moove-gdpr-modal-content.moove_gdpr_modal_theme_modern .moove-gdpr-button-holder .mgbutton {
		width: 100%;
		margin: 0 !important;
	}
}

/* ═══════════════════════════════════════════════════════════════
   SIDEBAR — Compartir + CTA + widgets blog
   ═══════════════════════════════════════════════════════════════ */

/* Compartir en redes */
.ccg-share-box {
	background: var(--wp--preset--color--base-2, #f8f9fa);
	border-radius: 10px;
	padding: 1.25rem 1rem 1rem;
	margin-bottom: 1.5rem;
}
.ccg-share-title {
	font-size: .8rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .05em;
	color: var(--wp--preset--color--contrast-2, #555);
	margin: 0 0 .85rem;
}
.ccg-share-buttons {
	display: flex;
	flex-direction: column;
	gap: .5rem;
}
.ccg-share-btn {
	display: flex;
	align-items: center;
	gap: .55rem;
	padding: .55rem .85rem;
	border-radius: 7px;
	font-size: .82rem;
	font-weight: 600;
	text-decoration: none !important;
	transition: filter .15s, transform .12s;
	cursor: pointer;
	border: none;
	width: 100%;
	text-align: left;
}
.ccg-share-btn:hover { filter: brightness(.9); transform: translateX(2px); }

.ccg-share-whatsapp  { background: #25d366; color: #fff !important; }
.ccg-share-linkedin  { background: #0a66c2; color: #fff !important; }
.ccg-share-twitter   { background: #000;    color: #fff !important; }
.ccg-share-facebook  { background: #1877f2; color: #fff !important; }
.ccg-share-copy      { background: var(--wp--preset--color--contrast-3, #e2e2e2); color: #333 !important; }

/* CTA sidebar */
.ccg-sidebar-cta {
	background: linear-gradient(135deg, var(--wp--preset--color--primary, #2563eb) 0%, #1e40af 100%);
	color: #fff;
	border-radius: 12px;
	padding: 1.5rem 1.1rem;
	text-align: center;
	margin-bottom: 1.5rem;
}
.ccg-cta-icon  { font-size: 2rem; margin: 0 0 .5rem; line-height: 1; }
.ccg-cta-title { font-size: 1rem; font-weight: 700; margin: 0 0 .5rem; color: #fff; }
.ccg-cta-desc  { font-size: .8rem; opacity: .9; margin: 0 0 1rem; color: #fff; line-height: 1.45; }
.ccg-cta-button {
	display: inline-block;
	background: #fff;
	color: var(--wp--preset--color--primary, #2563eb) !important;
	font-weight: 700;
	font-size: .82rem;
	padding: .55rem 1.1rem;
	border-radius: 6px;
	text-decoration: none !important;
	transition: box-shadow .15s;
}
.ccg-cta-button:hover { box-shadow: 0 4px 12px rgba(0,0,0,.2); }

/* Headings en sidebar */
.widget-area h3,
.secondary h3 {
	font-size: .88rem !important;
	font-weight: 700 !important;
	text-transform: uppercase;
	letter-spacing: .05em;
	color: var(--wp--preset--color--contrast-2, #555);
	padding-bottom: .4rem;
	border-bottom: 2px solid var(--wp--preset--color--primary, #2563eb);
	margin-bottom: .9rem !important;
}

/* Tag cloud sidebar */
.widget-area .wp-block-tag-cloud a {
	font-size: .78rem !important;
	padding: .25rem .6rem;
	border-radius: 20px;
	background: var(--wp--preset--color--base-2, #f1f5f9);
	color: var(--wp--preset--color--contrast, #333) !important;
	text-decoration: none !important;
	display: inline-block;
	margin: .2rem .15rem;
	transition: background .15s, color .15s;
}
.widget-area .wp-block-tag-cloud a:hover {
	background: var(--wp--preset--color--primary, #2563eb);
	color: #fff !important;
}

/* Latest posts sidebar */
.widget-area .wp-block-latest-posts__list {
	padding: 0;
	list-style: none;
}
.widget-area .wp-block-latest-posts__list li {
	padding: .45rem 0;
	border-bottom: 1px solid var(--wp--preset--color--base-2, #eee);
	font-size: .83rem;
	line-height: 1.35;
}
.widget-area .wp-block-latest-posts__list li:last-child { border-bottom: none; }
.widget-area .wp-block-latest-posts__list a {
	color: var(--wp--preset--color--contrast, #333) !important;
	text-decoration: none !important;
	font-weight: 500;
}
.widget-area .wp-block-latest-posts__list a:hover {
	color: var(--wp--preset--color--primary, #2563eb) !important;
}
