/*
 * ING Blocks — estilos estructurales de los bloques (front y editor).
 * Los colores toman los presets del tema (theme.json) con valores de reserva.
 */
:root {
	--ing-orange: var(--wp--preset--color--orange, #ff6200);
	--ing-indigo: var(--wp--preset--color--indigo, #525199);
	--ing-indigo-dark: var(--wp--preset--color--indigo-dark, #31305b);
	--ing-indigo-100: var(--wp--preset--color--indigo-100, #ededf5);
	--ing-sky-100: var(--wp--preset--color--sky-100, #eff6fb);
	--ing-sky-200: var(--wp--preset--color--sky-200, #dfedf8);
	--ing-leaf: var(--wp--preset--color--leaf, #349651);
	--ing-leaf-200: var(--wp--preset--color--leaf-200, #d6eadc);
	--ing-gray-100: var(--wp--preset--color--gray-100, #f0f0f0);
	--ing-gray-200: var(--wp--preset--color--gray-200, #d9d9d9);
	--ing-gray-400: var(--wp--preset--color--gray-400, #696969);
	--ing-gray-600: var(--wp--preset--color--gray-600, #333333);
	--ing-white: #ffffff;
	--ing-radius-btn: 8px;
	--ing-radius-card: 16px;
}

/* ---------- Botones (compartidos con el tema) ---------- */
.ing-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .5rem;
	padding: 6px 16px 8px;
	border-radius: var(--ing-radius-btn);
	border: 1px solid transparent;
	font-weight: 700;
	font-size: 1rem;
	line-height: 1.5;
	text-decoration: none;
	cursor: pointer;
	transition: background-color .15s, color .15s, border-color .15s;
}
.ing-btn--orange { background: var(--ing-orange); color: var(--ing-white); }
.ing-btn--orange:hover { background: #e55800; color: var(--ing-white); }
.ing-btn--indigo { background: var(--ing-indigo); color: var(--ing-white); }
.ing-btn--indigo:hover { background: var(--ing-indigo-dark); color: var(--ing-white); }
.ing-btn--outline { background: transparent; color: var(--ing-indigo); border-color: var(--ing-indigo); }
.ing-btn--outline:hover { background: var(--ing-indigo-100); }
.ing-btn--white { background: var(--ing-white); color: var(--ing-indigo); border-color: var(--ing-indigo); }

/* ---------- Icono ---------- */
.ing-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	vertical-align: middle;
	line-height: 0;
}
.ing-icon svg { width: 1em; height: 1em; fill: currentColor; display: block; }
.ing-icon--sm { font-size: 16px; }
.ing-icon--md { font-size: 24px; }
.ing-icon--lg { font-size: 32px; }
.ing-icon--xl { font-size: 48px; }
.ing-icon--xxl { font-size: 64px; }
.ing-icon--indigo { color: var(--ing-indigo); }
.ing-icon--orange { color: var(--ing-orange); }
.ing-icon--white { color: var(--ing-white); }
.ing-icon--gray { color: var(--ing-gray-400); }
.ing-icon--leaf { color: var(--ing-leaf); }
.ing-icon--coin,
.ing-icon--coin-light {
	width: 2em;
	height: 2em;
	border-radius: 50%;
	background: var(--ing-indigo-100);
	color: var(--ing-indigo);
}
.ing-icon--coin-light { background: var(--ing-white); }
.ing-icon--coin.ing-icon--orange { background: #ffe0cc; color: var(--ing-orange); }
.ing-icon-block { display: inline-block; line-height: 0; }
.ing-icon-block.aligncenter { display: block; text-align: center; }

/* ---------- Acceso con icono (toolbox) ---------- */
.ing-icon-link {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: .5rem;
	min-width: 7.5rem;
	max-width: 9rem;
	padding: .5rem .25rem;
	text-align: center;
	text-decoration: none;
	color: var(--ing-gray-600);
	font-weight: 700;
	font-size: 1rem;
	line-height: 1.3;
}
.ing-icon-link .ing-icon--coin { transition: background-color .15s; }
.ing-icon-link:hover .ing-icon--coin { background: var(--ing-indigo); color: var(--ing-white); }
.ing-icon-link__label { display: block; }

/* ---------- Etiqueta ---------- */
.ing-tag {
	display: inline-flex;
	align-self: flex-start;
	align-items: center;
	gap: .35rem;
	padding: .2rem .6rem;
	border-radius: 999px;
	font-size: .75rem;
	font-weight: 700;
	line-height: 1.4;
	background: var(--ing-gray-100);
	color: var(--ing-gray-600);
	vertical-align: middle;
}
.ing-tag--medium { font-size: .875rem; padding: .3rem .8rem; }
.ing-tag--soft { background: var(--ing-sky-200); color: var(--ing-gray-600); }
.ing-tag--promo { background: var(--ing-indigo); color: var(--ing-white); }
.ing-tag--info { background: var(--ing-sky-100); color: var(--ing-gray-600); }
.ing-tag--indigo { background: var(--ing-indigo-100); color: var(--ing-indigo); }
.ing-tag--success { background: var(--ing-leaf-200); color: #1f5a30; }
.ing-tag--ribbon,
.ing-ribbon {
	display: inline-block;
	padding: .1rem .5rem;
	border-radius: 4px;
	background: var(--ing-orange);
	color: var(--ing-white);
	font-size: .7rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .02em;
	vertical-align: middle;
}

/* ---------- Valoración ---------- */
.ing-rating {
	display: inline-flex;
	align-items: center;
	flex-wrap: wrap;
	gap: .5rem;
	font-size: 1rem;
}
.ing-rating.aligncenter { display: flex; justify-content: center; }
.ing-rating__stars { position: relative; display: inline-block; font-size: 1.25em; line-height: 1; letter-spacing: 2px; }
.ing-rating__stars-bg { color: var(--ing-gray-200); }
.ing-rating__stars-fg { position: absolute; left: 0; top: 0; overflow: hidden; white-space: nowrap; color: var(--ing-orange); }
.ing-rating__number { font-weight: 700; }
.ing-rating__reviews,
.ing-rating__info { color: var(--ing-gray-400); font-size: .875rem; }

/* ---------- Riesgo ---------- */
.ing-risk { display: flex; align-items: center; gap: 1rem; padding: .75rem 1rem; border: 1px solid var(--ing-gray-200); border-radius: 8px; background: var(--ing-white); }
.ing-risk__digits { display: inline-flex; align-items: baseline; padding: .25rem .75rem; border: 2px solid var(--ing-gray-600); border-radius: 6px; font-weight: 700; line-height: 1; }
.ing-risk__level { font-size: 1.75rem; }
.ing-risk__sep, .ing-risk__max { font-size: 1rem; }
.ing-risk__scale { display: inline-flex; gap: 2px; flex: 0 0 auto; }
.ing-risk--bar .ing-risk__step,
.ing-risk--dots .ing-risk__step { display: inline-flex; align-items: center; justify-content: center; width: 1.75rem; height: 1.75rem; border: 1px solid var(--ing-gray-400); font-size: .75rem; font-weight: 700; }
.ing-risk--dots .ing-risk__step { border-radius: 50%; }
.ing-risk__step.is-active { background: var(--ing-gray-600); color: var(--ing-white); border-color: var(--ing-gray-600); }
.ing-risk__note { margin: 0; font-size: .75rem; line-height: 1.4; color: var(--ing-gray-600); }

/* ---------- Migas de pan ---------- */
.ing-breadcrumbs { font-size: .875rem; padding: .75rem 0; }
.ing-breadcrumbs__list { display: flex; flex-wrap: wrap; align-items: center; gap: .25rem; margin: 0; padding: 0; list-style: none; }
.ing-breadcrumbs__item { display: inline-flex; align-items: center; gap: .25rem; }
.ing-breadcrumbs__item a { color: var(--ing-indigo); text-decoration: none; }
.ing-breadcrumbs__item a:hover { text-decoration: underline; }
.ing-breadcrumbs__item span[aria-current] { color: var(--ing-gray-400); }
.ing-breadcrumbs__sep { width: 12px; height: 12px; fill: var(--ing-gray-400); }

/* ---------- Carrusel ---------- */
.ing-carousel { position: relative; }
.ing-carousel__viewport { overflow: hidden; }
.ing-carousel__track {
	display: flex;
	gap: var(--ing-carousel-gap, 1.5rem);
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
	padding-bottom: 2px;
}
.ing-carousel__track::-webkit-scrollbar { display: none; }
.ing-carousel__track > * {
	flex: 0 0 100%;
	scroll-snap-align: start;
	box-sizing: border-box;
	margin: 0 !important;
}
@media (min-width: 720px) {
	.ing-carousel--per-2 .ing-carousel__track > * { flex-basis: calc((100% - var(--ing-carousel-gap, 1.5rem)) / 2); }
	.ing-carousel--per-3 .ing-carousel__track > * { flex-basis: calc((100% - 2 * var(--ing-carousel-gap, 1.5rem)) / 3); }
	.ing-carousel--per-4 .ing-carousel__track > * { flex-basis: calc((100% - 3 * var(--ing-carousel-gap, 1.5rem)) / 4); }
}
.ing-carousel__nav { display: flex; align-items: center; justify-content: center; gap: .75rem; margin-top: 1rem; }
.ing-carousel.is-single .ing-carousel__nav { display: none; }
.ing-carousel__btn {
	display: inline-flex; align-items: center; justify-content: center;
	width: 2.5rem; height: 2.5rem; border-radius: 50%;
	border: 1px solid var(--ing-indigo); background: var(--ing-white); color: var(--ing-indigo); cursor: pointer; padding: 0;
}
.ing-carousel__btn svg { width: 1.25rem; height: 1.25rem; fill: currentColor; }
.ing-carousel__btn:disabled { opacity: .35; cursor: default; }
.ing-carousel__dots { display: flex; gap: .5rem; }
.ing-carousel__dot { width: .625rem; height: .625rem; padding: 0; border-radius: 50%; border: 0; background: var(--ing-gray-200); cursor: pointer; }
.ing-carousel__dot.is-active { background: var(--ing-indigo); }
.ing-carousel--controls-white .ing-carousel__btn { background: var(--ing-white); }
.ing-carousel--controls-white .ing-carousel__nav { position: absolute; left: 0; right: 0; bottom: 1rem; margin: 0; }
.ing-carousel--controls-white .ing-carousel__dot { background: rgba(255,255,255,.6); }
.ing-carousel--controls-white .ing-carousel__dot.is-active { background: var(--ing-white); }
.ing-carousel-editor__hint { margin: 0 0 .5rem; font-size: .75rem; color: var(--ing-gray-400); }

/* ---------- CTA fijo ---------- */
.ing-sticky-cta {
	position: fixed; left: 0; right: 0; bottom: 0; z-index: 900;
	transform: translateY(110%);
	visibility: hidden;
	transition: transform .25s ease, visibility 0s linear .25s;
	background: var(--ing-white);
	box-shadow: 0 -2px 12px rgba(0,0,0,.12);
}
.ing-sticky-cta.is-visible { transform: translateY(0); visibility: visible; transition-delay: 0s; }
.ing-sticky-cta__inner {
	display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: .75rem 1.5rem;
	max-width: var(--wp--style--global--content-size, 1134px); margin: 0 auto; padding: .75rem 1rem;
}
.ing-sticky-cta__title { margin: 0; font-weight: 700; font-size: 1.1875rem; }
@media (max-width: 719px) {
	.ing-sticky-cta__title { display: none; }
	.ing-sticky-cta__button { width: 100%; }
}
body.admin-bar .ing-sticky-cta { z-index: 900; }
.editor-styles-wrapper .ing-sticky-cta { position: static; transform: none; box-shadow: none; border: 1px dashed var(--ing-gray-200); }

/* ---------- Opiniones ---------- */
.ing-opiniones { display: grid; gap: 1.5rem; grid-template-columns: 1fr; }
@media (min-width: 720px) {
	.ing-opiniones--cols-2 { grid-template-columns: repeat(2, 1fr); }
	.ing-opiniones--cols-3 { grid-template-columns: repeat(3, 1fr); }
	.ing-opiniones--cols-4 { grid-template-columns: repeat(4, 1fr); }
}
.ing-opinion { padding: 1.5rem; border: 1px solid var(--ing-gray-200); border-radius: var(--ing-radius-card); background: var(--ing-white); }
.ing-opinion__author { margin: .75rem 0 0; font-size: 1.1875rem; }
.ing-opinion__date { margin: 0 0 .5rem; color: var(--ing-gray-400); font-size: .875rem; }
.ing-opinion__text p { margin: 0; }

/* ---------- Menús simples ---------- */
.ing-menu__list { list-style: none; margin: 0; padding: 0; }
.ing-menu__link { text-decoration: none; color: inherit; display: inline-flex; align-items: center; gap: .5rem; }
.ing-menu--inline-icons .ing-menu__list,
.ing-menu--buttons .ing-menu__list,
.ing-menu--social .ing-menu__list,
.ing-menu--legal .ing-menu__list { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1.5rem; }
.ing-menu--inline-icons .ing-menu__link { font-size: .875rem; font-weight: 400; }
.ing-menu--inline-icons .ing-menu__link:hover span { text-decoration: underline; }
.ing-menu--list .ing-menu__item { margin: 0 0 .75rem; }
.ing-menu--list .ing-menu__link:hover { text-decoration: underline; }
.ing-menu--legal .ing-menu__item + .ing-menu__item::before { content: "|"; margin-right: 1.5rem; color: var(--ing-gray-400); }
.ing-menu--legal .ing-menu__link { font-size: .875rem; }
.ing-menu--social .ing-menu__link img,
.ing-menu--social .ing-menu__link svg { display: block; height: 2rem; width: auto; }
.ing-menu-empty { padding: .5rem; border: 1px dashed var(--ing-gray-200); font-size: .875rem; }

/* ---------- Mega menú (estructura; el tema ajusta el aspecto) ---------- */
.ing-mega__list { list-style: none; margin: 0; padding: 0; display: flex; gap: .5rem; }
.ing-mega__item { position: static; }
.ing-mega__toggle {
	display: inline-flex; align-items: center; gap: .25rem;
	background: none; border: 0; padding: .75rem 0; margin: 0;
	font: inherit; font-size: 1rem; color: var(--ing-gray-600); cursor: pointer; text-decoration: none;
	border-bottom: 3px solid transparent;
}
.ing-mega__toggle:hover,
.ing-mega__toggle[aria-expanded="true"],
.ing-mega__item.is-current-ancestor > .ing-mega__toggle,
.ing-mega__item.is-current > .ing-mega__toggle { border-bottom-color: var(--ing-orange); }
.ing-mega__panel { position: absolute; left: 0; right: 0; z-index: 200; background: var(--ing-white); border-top: 1px solid var(--ing-gray-200); box-shadow: 0 12px 24px rgba(0,0,0,.12); }
.ing-mega__panel[hidden] { display: none; }
.ing-mega__inner { max-width: var(--wp--style--global--content-size, 1134px); margin: 0 auto; padding: 1.5rem 1rem 2rem; }
.ing-mega__section-link { display: inline-flex; align-items: center; gap: .25rem; margin-bottom: 1rem; font-weight: 700; color: var(--ing-indigo); text-decoration: none; }
.ing-mega__cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 2rem; align-items: start; }
.ing-mega__col-title { margin: 0 0 .75rem; font-size: .875rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--ing-gray-400); }
.ing-mega__col-title a { color: inherit; text-decoration: none; }
.ing-mega__links, .ing-mega__shortcuts { list-style: none; margin: 0; padding: 0; }
.ing-mega__link {
	display: flex; align-items: flex-start; gap: .75rem;
	padding: .625rem .5rem; border-radius: 8px; text-decoration: none; color: var(--ing-gray-600);
}
.ing-mega__link:hover { background: var(--ing-gray-100); }
.ing-mega__link-body { display: flex; flex-direction: column; gap: .125rem; flex: 1 1 auto; }
.ing-mega__link-title { font-weight: 700; }
.ing-mega__link-desc { font-size: .875rem; color: var(--ing-gray-400); }
.ing-mega__chevron { width: 1rem; height: 1rem; flex: 0 0 auto; fill: var(--ing-indigo); align-self: center; }
.is-distributive .ing-mega__link { color: var(--ing-indigo); }
.ing-mega__shortcuts { margin-top: .75rem; padding-top: .75rem; border-top: 1px solid var(--ing-gray-200); }
.ing-mega__shortcut { display: inline-flex; align-items: center; gap: .25rem; padding: .375rem .5rem; font-weight: 700; color: var(--ing-indigo); text-decoration: none; }
.ing-mega__promo { padding: 1rem; border-radius: var(--ing-radius-card); background: var(--ing-gray-100); }
.ing-mega__promo .wp-block-image img { border-radius: var(--ing-radius-card); }
