/*
Theme Name: FelServ
Theme URI: https://felserv.cl
Author: FelServ
Description: Tema de bloques para felserv.cl — hosting, dominios, streaming y blog de notas y novedades.
Version: 2.3.1
Requires at least: 6.6
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: felserv
*/

/* Cabecera: barra de anuncio + menú oscuro tipo vidrio.
   Al bajar, la barra de anuncio se va y el menú queda fijo arriba. */
.wp-site-blocks > header.wp-block-template-part {
	position: sticky;
	top: -36px;
	z-index: 50;
}
.admin-bar .wp-site-blocks > header.wp-block-template-part { top: calc(32px - 36px); }
@media (max-width: 782px) { .admin-bar .wp-site-blocks > header.wp-block-template-part { position: relative; top: 0; } }
.wp-site-blocks > header.wp-block-template-part + * { margin-block-start: 0; }

.fs-cabecera > * { margin-block: 0; }
.fs-anuncio {
	height: 36px;
	background: linear-gradient(90deg, #0047b3, #0066ff 50%, #0091ff);
	color: #fff;
	font-size: 0.8rem;
}
.fs-anuncio p { margin: 0; line-height: 36px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fs-anuncio a { color: #fff; font-weight: 700; }

.fs-header {
	background: rgba(18, 18, 20, 0.97);
	/* Sin backdrop-filter: encerraría el menú móvil (position: fixed) dentro de la barra */
	border-bottom: 1px solid rgba(255, 255, 255, 0.08);
	color: #fff;
}
.fs-header .wp-block-site-title a { color: #fff; text-decoration: none; }
/* Logo */
.fs-logo { margin: 0; line-height: 0; }
.fs-logo img { display: block; width: auto !important; height: 46px !important; transition: filter 0.3s ease; }
.fs-logo a:hover img { filter: drop-shadow(0 0 10px rgba(0, 229, 255, 0.45)); }
.fs-footer .fs-logo img { height: 54px !important; }
@media (max-width: 600px) { .fs-header .fs-logo img { height: 36px !important; } }
/* Navegación principal */
.fs-header .wp-block-navigation__container { gap: 0.25rem; }
.fs-header .wp-block-navigation-item__content { text-decoration: none; color: rgba(255, 255, 255, 0.82); transition: color 0.2s ease; }
/* Enlaces de primer nivel: "píldora" que aparece al pasar el mouse */
.fs-header .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
	position: relative;
	padding: 0.55em 0.8em;
	border-radius: 999px;
}
.fs-header .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	border-radius: inherit;
	background: rgba(255, 255, 255, 0.08);
	opacity: 0;
	transform: scale(0.8);
	transition: opacity 0.25s ease, transform 0.25s ease;
}
.fs-header .wp-block-navigation__container > .wp-block-navigation-item:hover > .wp-block-navigation-item__content::before,
.fs-header .wp-block-navigation__container > .wp-block-navigation-item:focus-within > .wp-block-navigation-item__content::before { opacity: 1; transform: none; }
.fs-header .wp-block-navigation__container > .wp-block-navigation-item:hover > .wp-block-navigation-item__content { color: #fff; }
/* Página actual: punto cian bajo el enlace */
.fs-header .wp-block-navigation__container > .fs-activo > .wp-block-navigation-item__content { color: #fff; }
.fs-header .wp-block-navigation__container > .fs-activo > .wp-block-navigation-item__content::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: -2px;
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: var(--wp--preset--color--acento);
	box-shadow: 0 0 8px var(--wp--preset--color--acento);
	transform: translateX(-50%);
}
.fs-header .wp-block-navigation__container > .has-child > .wp-block-navigation-item__content { padding-right: 0.3em; }
.fs-header .wp-block-navigation__submenu-icon { margin-left: 0 !important; margin-right: 0.6em; transition: transform 0.3s ease; color: rgba(255, 255, 255, 0.6); }
.fs-header .has-child:hover > .wp-block-navigation__submenu-icon,
.fs-header .has-child:focus-within > .wp-block-navigation__submenu-icon,
.fs-header .has-child > .wp-block-navigation__submenu-icon[aria-expanded="true"] { transform: rotate(180deg); color: var(--wp--preset--color--acento); }

/* Submenú desplegable tipo vidrio */
.fs-header .wp-block-navigation:not(.has-background) .wp-block-navigation__submenu-container {
	min-width: 320px !important;
	padding: 0.5rem;
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 16px;
	background: rgba(24, 25, 30, 0.97);
	-webkit-backdrop-filter: blur(14px);
	backdrop-filter: blur(14px);
	box-shadow: 0 24px 60px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(0, 102, 255, 0.08);
	color: #fff;
}
@media (min-width: 600px) {
	.fs-header .wp-block-navigation .has-child > .wp-block-navigation__submenu-container {
		top: calc(100% + 12px);
		left: 50%;
		margin-left: -160px;
		opacity: 0;
		transform: translateY(10px) scale(0.97);
		transform-origin: top center;
		transition: opacity 0.25s ease, transform 0.3s cubic-bezier(0.2, 0.7, 0.2, 1), visibility 0.25s;
	}
	/* Puente invisible para que el menú no se cierre al bajar el mouse */
	.fs-header .wp-block-navigation .has-child > .wp-block-navigation__submenu-container::before {
		content: "";
		position: absolute;
		left: 0;
		right: 0;
		top: -14px;
		height: 14px;
	}
	/* Flechita que apunta al enlace */
	.fs-header .wp-block-navigation .has-child > .wp-block-navigation__submenu-container::after {
		content: "";
		position: absolute;
		top: -6px;
		left: 50%;
		width: 12px;
		height: 12px;
		border-left: 1px solid rgba(255, 255, 255, 0.1);
		border-top: 1px solid rgba(255, 255, 255, 0.1);
		background: rgb(24, 25, 30);
		transform: translateX(-50%) rotate(45deg);
	}
	.fs-header .wp-block-navigation .has-child:not(.open-on-click):hover > .wp-block-navigation__submenu-container,
	.fs-header .wp-block-navigation .has-child:not(.open-on-click):not(.open-on-hover-click):focus-within > .wp-block-navigation__submenu-container,
	.fs-header .wp-block-navigation .has-child .wp-block-navigation-submenu__toggle[aria-expanded="true"] ~ .wp-block-navigation__submenu-container {
		opacity: 1;
		transform: none;
	}
	/* Opciones que entran en cascada */
	.fs-header .wp-block-navigation__submenu-container > .wp-block-navigation-item {
		opacity: 0;
		transform: translateY(6px);
		transition: opacity 0.3s ease, transform 0.3s ease;
	}
	.fs-header .has-child:hover > .wp-block-navigation__submenu-container > .wp-block-navigation-item,
	.fs-header .has-child:focus-within > .wp-block-navigation__submenu-container > .wp-block-navigation-item,
	.fs-header .wp-block-navigation-submenu__toggle[aria-expanded="true"] ~ .wp-block-navigation__submenu-container > .wp-block-navigation-item { opacity: 1; transform: none; }
	.fs-header .wp-block-navigation__submenu-container > .wp-block-navigation-item:nth-child(2) { transition-delay: 0.04s; }
	.fs-header .wp-block-navigation__submenu-container > .wp-block-navigation-item:nth-child(3) { transition-delay: 0.08s; }
	.fs-header .wp-block-navigation__submenu-container > .wp-block-navigation-item:nth-child(4) { transition-delay: 0.12s; }
}
.fs-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	display: grid !important;
	grid-template-columns: 38px 1fr;
	grid-template-rows: auto auto;
	column-gap: 0.8rem;
	align-items: center;
	padding: 0.6rem 0.7rem !important;
	border-radius: 10px;
	transition: background-color 0.2s ease;
}
.fs-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: rgba(0, 102, 255, 0.14); }
.fs-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content::before {
	content: "";
	grid-row: 1 / 3;
	width: 38px;
	height: 38px;
	border-radius: 10px;
	background: var(--fs-icono, none) center / 20px no-repeat, linear-gradient(135deg, rgba(0, 102, 255, 0.35), rgba(0, 229, 255, 0.12));
	border: 1px solid rgba(0, 229, 255, 0.18);
	transition: transform 0.25s ease, background-color 0.25s ease;
}
.fs-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover::before {
	transform: scale(1.08) rotate(-4deg);
	background: var(--fs-icono, none) center / 20px no-repeat, linear-gradient(135deg, #0066ff, #00b3ff);
}
.fs-header .wp-block-navigation__submenu-container .wp-block-navigation-item__label { font-weight: 700; color: #fff; }
.fs-header .wp-block-navigation-item__description {
	display: block !important;
	grid-column: 2;
	margin-top: 0.1rem;
	color: rgba(255, 255, 255, 0.55);
	font-size: 0.78rem;
	font-weight: 400;
	line-height: 1.35;
}

/* Menú en móvil: panel oscuro con opciones que entran en cascada */
.fs-header .wp-block-navigation__responsive-container-open,
.fs-header .wp-block-navigation__responsive-container-close { color: #fff; }
.fs-header .wp-block-navigation__responsive-container.is-menu-open {
	background: radial-gradient(80% 40% at 50% 0%, rgba(0, 102, 255, 0.3), transparent 70%), #121214 !important;
	color: #fff !important;
}
.fs-header .is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 3.5rem; }
.fs-header .is-menu-open .wp-block-navigation__container { gap: 1.2rem !important; width: 100%; }
.fs-header .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item {
	width: 100%;
	animation: fs-entrar-menu 0.45s cubic-bezier(0.2, 0.7, 0.2, 1) both;
}
.fs-header .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content { font-size: 1.35rem; font-weight: 700; color: #fff; padding: 0 !important; }
.fs-header .is-menu-open .wp-block-navigation__container > :nth-child(2) { animation-delay: 0.05s; }
.fs-header .is-menu-open .wp-block-navigation__container > :nth-child(3) { animation-delay: 0.1s; }
.fs-header .is-menu-open .wp-block-navigation__container > :nth-child(4) { animation-delay: 0.15s; }
.fs-header .is-menu-open .wp-block-navigation__container > :nth-child(5) { animation-delay: 0.2s; }
.fs-header .is-menu-open .wp-block-navigation__submenu-container {
	min-width: 0 !important;
	width: 100%;
	margin-top: 0.4rem;
	padding: 0.3rem !important;
	border-radius: 12px;
	background: rgba(255, 255, 255, 0.04) !important;
	box-shadow: none;
}
.fs-header .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { font-size: 1rem; }
.fs-header .is-menu-open .wp-block-navigation__responsive-container-content,
.fs-header .is-menu-open .wp-block-navigation__container,
.fs-header .is-menu-open .wp-block-navigation-item { align-items: stretch !important; text-align: left; }
.fs-header .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { justify-items: start; }
.fs-header .is-menu-open .wp-block-navigation-item__content::before { display: none; }
.fs-header .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content::before { display: block; }
@keyframes fs-entrar-menu { from { opacity: 0; transform: translateX(-24px); } to { opacity: 1; transform: none; } }

/* Barra de progreso de lectura bajo el menú y sombra al bajar */
.fs-header { position: relative; }
@supports (animation-timeline: scroll()) {
	.fs-header { animation: fs-cabecera linear both; animation-timeline: scroll(root); animation-range: 0 160px; }
	@keyframes fs-cabecera { to { box-shadow: 0 10px 30px rgba(0, 0, 0, 0.35); background: rgba(18, 18, 20, 0.97); } }
	.fs-header::after {
		content: "";
		position: absolute;
		left: 0;
		right: 0;
		bottom: -1px;
		height: 2px;
		background: linear-gradient(90deg, #0066ff, #00e5ff);
		box-shadow: 0 0 10px rgba(0, 229, 255, 0.6);
		transform-origin: left;
		transform: scaleX(0);
		animation: fs-progreso linear both;
		animation-timeline: scroll(root);
	}
	@keyframes fs-progreso { to { transform: scaleX(1); } }
}

/* Portada: las secciones de color van pegadas, sin franjas blancas entre ellas */
.wp-block-post-content > .alignfull { margin-block-start: 0; }

/* Hero */
.fs-hero {
	position: relative;
	overflow: hidden;
	isolation: isolate;
}
.fs-hero--red {
	padding-top: clamp(2.5rem, 7vh, 5rem) !important;
	padding-bottom: 150px !important;
	background-color: #121214 !important;
}
@media (max-width: 700px) { .fs-hero--red { padding-bottom: 120px !important; } }

/* La red LAN dibujada por assets/js/felserv.js */
.fs-red {
	position: absolute !important;
	inset: 0;
	width: 100% !important;
	max-width: none !important;
	height: 100%;
	margin: 0 !important;
	z-index: -1;
	pointer-events: none;
	animation: fs-aparecer 1.4s ease both !important;
}
@keyframes fs-aparecer { from { opacity: 0; } to { opacity: 1; } }

/* Rejilla tenue que avanza y brillos que flotan detrás de la red */
.fs-hero::before {
	content: "";
	position: absolute;
	inset: -48px 0 0;
	z-index: -2;
	background:
		linear-gradient(rgba(0, 255, 255, 0.045) 1px, transparent 1px) 0 0 / 48px 48px,
		linear-gradient(90deg, rgba(0, 255, 255, 0.045) 1px, transparent 1px) 0 0 / 48px 48px;
	-webkit-mask-image: linear-gradient(transparent, #000 30%, #000 70%, transparent);
	mask-image: linear-gradient(transparent, #000 30%, #000 70%, transparent);
	animation: fs-rejilla 6s linear infinite;
}
.fs-hero::after {
	content: "";
	position: absolute;
	inset: -20%;
	z-index: -3;
	background:
		radial-gradient(30% 35% at 35% 25%, rgba(0, 102, 255, 0.5), transparent 70%),
		radial-gradient(25% 30% at 70% 70%, rgba(0, 255, 255, 0.16), transparent 70%),
		radial-gradient(20% 25% at 15% 80%, rgba(0, 102, 255, 0.22), transparent 70%);
	filter: blur(20px);
	animation: fs-brillo 14s ease-in-out infinite alternate;
}
@keyframes fs-rejilla { to { transform: translateY(48px); } }
@keyframes fs-brillo {
	0%   { transform: translate(0, 0) rotate(0deg) scale(1); }
	50%  { transform: translate(6%, 4%) rotate(8deg) scale(1.1); }
	100% { transform: translate(-6%, 2%) rotate(-6deg) scale(1.05); }
}

/* Entrada escalonada del contenido del hero */
.fs-hero > * { animation: fs-subir 0.8s cubic-bezier(0.2, 0.7, 0.2, 1) both; }
.fs-hero > :nth-child(3) { animation-delay: 0.1s; }
.fs-hero > :nth-child(4) { animation-delay: 0.2s; }
.fs-hero > :nth-child(5) { animation-delay: 0.3s; }
.fs-hero > :nth-child(6) { animation-delay: 0.4s; }
.fs-hero > :nth-child(7) { animation-delay: 0.5s; }
@keyframes fs-subir {
	from { opacity: 0; transform: translateY(24px); filter: blur(6px); }
	to   { opacity: 1; transform: none; filter: none; }
}

.fs-hero h1 {
	max-width: 17ch;
	margin-inline: auto;
	font-size: clamp(2.3rem, 5.6vw, 4.4rem);
	line-height: 1.08;
	background: linear-gradient(100deg, #fff 0%, #fff 40%, var(--wp--preset--color--acento) 50%, #fff 60%, #fff 100%) 0 0 / 250% 100%;
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	animation: fs-subir 0.8s 0.1s cubic-bezier(0.2, 0.7, 0.2, 1) both, fs-destello 5s 1.2s ease-in-out infinite;
}
@keyframes fs-destello {
	0%   { background-position: 100% 0; }
	60%, 100% { background-position: -50% 0; }
}
.fs-hero h1 + p { max-width: 50ch; margin-inline: auto; opacity: 0.88; }

.fs-hero .wp-block-button:not(.is-style-outline) .wp-block-button__link { animation: fs-pulso 2.8s ease-in-out infinite; }
@keyframes fs-pulso {
	0%, 100% { box-shadow: 0 0 0 1px rgba(0, 255, 255, 0.25), 0 8px 28px rgba(0, 102, 255, 0.45); }
	50%      { box-shadow: 0 0 0 1px rgba(0, 255, 255, 0.6), 0 8px 44px rgba(0, 102, 255, 0.75), 0 0 0 6px rgba(0, 102, 255, 0.12); }
}
.fs-hero .wp-block-button__link { transition: transform 0.2s ease; }
.fs-hero .wp-block-button__link:hover { transform: translateY(-2px); }

/* Buscador de dominios en vidrio dentro del hero */
.fs-hero-dominio {
	max-width: 680px !important;
	margin-top: var(--wp--preset--spacing--40) !important;
	padding: 1rem;
	border: 1px solid rgba(255, 255, 255, 0.14);
	border-radius: 16px;
	background: rgba(255, 255, 255, 0.06);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.35);
}
.fs-hero-dominio .fs-dominio { max-width: none; }
.fs-hero-dominio .fs-dominio input { background: #fff; color: var(--wp--preset--color--texto); }
.fs-hero-dominio p { margin: 0.6rem 0 0; opacity: 0.7; }

.fs-confianza {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.4rem 1.6rem;
	padding: 0;
	list-style: none;
	font-size: var(--wp--preset--font-size--small);
	opacity: 0.85;
}
.fs-confianza li::before { content: "✓"; margin-right: 0.45em; color: var(--wp--preset--color--acento); font-weight: 700; }

.fs-etiqueta {
	display: inline-block;
	padding: 0.3em 0.9em;
	border: 1px solid rgba(0, 255, 255, 0.45);
	border-radius: 999px;
	background: rgba(0, 255, 255, 0.08);
	color: var(--wp--preset--color--acento);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}
.fs-hero .fs-etiqueta::before {
	content: "";
	display: inline-block;
	width: 0.5em;
	height: 0.5em;
	margin-right: 0.55em;
	border-radius: 50%;
	background: var(--wp--preset--color--acento);
	vertical-align: 0.1em;
	animation: fs-vivo 1.8s ease-out infinite;
}
@keyframes fs-vivo {
	0%   { box-shadow: 0 0 0 0 rgba(0, 255, 255, 0.7); }
	100% { box-shadow: 0 0 0 0.7em rgba(0, 255, 255, 0); }
}

/* Fondos oscuros: enlaces y acentos en cian, botones outline en blanco */
.has-contraste-background-color a:not(.wp-element-button) { color: var(--wp--preset--color--acento); }
.has-contraste-background-color .is-style-outline .wp-block-button__link {
	color: #fff;
	border-color: rgba(255, 255, 255, 0.6);
	background: transparent;
}
.has-contraste-background-color .is-style-outline .wp-block-button__link:hover {
	border-color: var(--wp--preset--color--acento);
	color: var(--wp--preset--color--acento);
}
.has-contraste-background-color .wp-block-button:not(.is-style-outline) .wp-block-button__link {
	box-shadow: 0 0 0 1px rgba(0, 255, 255, 0.25), 0 8px 28px rgba(0, 102, 255, 0.45);
}

/* Fondos claros: outline en azul */
.is-style-outline .wp-block-button__link {
	border: 2px solid currentColor;
	color: var(--wp--preset--color--primario);
	background: transparent;
}
.is-style-outline .wp-block-button__link:hover {
	background: var(--wp--preset--color--primario);
	border-color: var(--wp--preset--color--primario);
	color: #fff;
}

/* Foco visible para teclado */
:where(a, button, input, select, textarea, summary):focus-visible {
	outline: 2px solid var(--wp--preset--color--primario);
	outline-offset: 3px;
}
.has-contraste-background-color :where(a, button, input):focus-visible { outline-color: var(--wp--preset--color--acento); }

.fs-card {
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--borde);
	border-radius: 12px;
	padding: var(--wp--preset--spacing--40);
	height: 100%;
	box-sizing: border-box;
	transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}
.fs-card > :first-child { margin-top: 0; }
.fs-card:hover {
	border-color: rgba(0, 102, 255, 0.45);
	box-shadow: 0 12px 32px rgba(0, 102, 255, 0.1);
	transform: translateY(-2px);
}
.fs-card .wp-block-post-title a { color: inherit; text-decoration: none; }
.fs-card .wp-block-post-title a:hover { color: var(--wp--preset--color--primario); }

.fs-beneficio { border-top: 3px solid var(--wp--preset--color--primario); padding-top: 1rem; }
.fs-beneficio strong { display: block; font-size: var(--wp--preset--font-size--large); color: var(--wp--preset--color--primario); }

@media (prefers-reduced-motion: reduce) {
	.fs-card, .fs-card:hover, .fs-plan, .fs-plan:hover { transition: none; transform: none; }
	.fs-hero::before, .fs-hero::after, .fs-hero > *, .fs-hero h1, .fs-red,
	.fs-hero .fs-etiqueta::before, .fs-hero .wp-block-button__link,
	.fs-plan--destacado, .fs-ecualizador span, .fs-paso::after, .fs-chips li { animation: none !important; }
}

/* Tablas */
.wp-block-table table { border-collapse: collapse; width: 100%; }
.wp-block-table th,
.wp-block-table td { border: 1px solid var(--wp--preset--color--borde); padding: 0.6em 0.8em; text-align: left; }
.wp-block-table thead { background: var(--wp--preset--color--superficie); border-bottom: 0; }
.wp-block-table { overflow-x: auto; }

/* Preguntas frecuentes */
.wp-block-details {
	border: 1px solid var(--wp--preset--color--borde);
	border-radius: 10px;
	padding: 0.9em 1.1em;
}
.wp-block-details summary { cursor: pointer; font-weight: 700; }
.wp-block-details[open] { border-color: var(--wp--preset--color--primario); }
.wp-block-details summary::marker { color: var(--wp--preset--color--primario); }

/* Código (comandos de soporte remoto) */
.wp-block-code { overflow-x: auto; }

/* Formularios del plugin */
.fs-form { display: grid; gap: 1rem; }
.fs-form label { display: block; font-weight: 600; margin-bottom: 0.3rem; }
.fs-form input,
.fs-form select,
.fs-form textarea {
	width: 100%;
	box-sizing: border-box;
	padding: 0.7em 0.9em;
	border: 1px solid var(--wp--preset--color--borde);
	border-radius: 8px;
	font: inherit;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--texto);
}
.fs-form textarea { min-height: 160px; }
.fs-form button,
.fs-dominio button {
	padding: 0.75em 1.4em;
	border: 0;
	border-radius: 8px;
	background: var(--wp--preset--color--primario);
	color: #fff;
	font: inherit;
	font-weight: 600;
	cursor: pointer;
}
.fs-form button:hover,
.fs-dominio button:hover { background: #0052cc; }
.fs-form input:focus,
.fs-form select:focus,
.fs-form textarea:focus,
.fs-dominio input:focus {
	border-color: var(--wp--preset--color--primario);
	box-shadow: 0 0 0 3px rgba(0, 102, 255, 0.18);
	outline: none;
}
.fs-oculto { position: absolute !important; left: -9999px !important; }
.fs-aviso { padding: 0.9em 1.1em; border-radius: 8px; }
.fs-aviso--ok { background: #e6f7ef; color: #0b5d3b; }
.fs-aviso--error { background: #fdecec; color: #8a1c1c; }

.fs-dominio { display: flex; gap: 0.5rem; flex-wrap: wrap; max-width: 640px; margin-inline: auto; }
.fs-dominio input {
	flex: 1 1 260px;
	padding: 0.8em 1em;
	border: 1px solid var(--wp--preset--color--borde);
	border-radius: 8px;
	font: inherit;
}
.has-contraste-background-color .fs-dominio input { border-color: transparent; }

/* Pie */
.fs-footer { border-top: 2px solid var(--wp--preset--color--primario); }
.fs-footer h3 { color: var(--wp--preset--color--acento); font-size: 0.8rem !important; letter-spacing: 0.08em; text-transform: uppercase; }
.fs-footer a:not(.wp-element-button) { color: inherit; text-decoration: none; opacity: 0.8; }
.fs-footer a:not(.wp-element-button):hover { opacity: 1; color: var(--wp--preset--color--acento); }
.fs-footer ul { list-style: none; padding-left: 0; }
.fs-footer li { margin-bottom: 0.4em; }

/* -------------------------------------------------------------------------
 * Portada: secciones de venta
 * ---------------------------------------------------------------------- */

.fs-sobretitulo {
	margin-bottom: 0.4rem !important;
	color: var(--wp--preset--color--primario);
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}
.has-contraste-background-color .fs-sobretitulo { color: var(--wp--preset--color--acento); }
.fs-seccion h2 { margin-top: 0; font-size: clamp(1.8rem, 3.6vw, 2.6rem); }
.fs-bajada { max-width: 62ch; margin-inline: auto; color: var(--wp--preset--color--tenue); }
.has-contraste-background-color .fs-bajada { color: rgba(255, 255, 255, 0.7); }
.fs-seccion > .wp-block-columns { margin-top: var(--wp--preset--spacing--50); }
.fs-subtitulo { margin-top: var(--wp--preset--spacing--60) !important; }

/* Aparición al hacer scroll (la activa el JS; sin JS todo se ve) */
.fs-js .fs-revelar {
	transition: opacity 0.7s cubic-bezier(0.2, 0.7, 0.2, 1), transform 0.7s cubic-bezier(0.2, 0.7, 0.2, 1), border-color 0.2s ease, box-shadow 0.2s ease;
}
.fs-js .fs-revelar:not(.fs-visible) { opacity: 0; transform: translateY(28px); }

/* Cifras */
.fs-cifras .wp-block-column + .wp-block-column { border-left: 1px solid var(--wp--preset--color--borde); }
@media (max-width: 781px) { .fs-cifras .wp-block-column + .wp-block-column { border-left: 0; } }
.fs-cifra p { margin: 0; text-align: center; color: var(--wp--preset--color--tenue); font-size: var(--wp--preset--font-size--small); }
.fs-cifra strong {
	display: block;
	margin-bottom: 0.2rem;
	font-size: clamp(2.2rem, 4vw, 3rem);
	line-height: 1.1;
	font-variant-numeric: tabular-nums;
	background: linear-gradient(135deg, #0066ff, #00b3ff);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
}

/* Cinta de tecnologías */
.fs-cinta-marco {
	overflow: hidden;
	border-block: 1px solid var(--wp--preset--color--borde);
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
	mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
}
.fs-cinta-marco .fs-cinta {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	max-width: none;
	margin-block: 0.5rem 0;
	padding: 0;
	list-style: none;
	color: var(--wp--preset--color--tenue);
	font-size: 1.05rem;
	font-weight: 700;
	white-space: nowrap;
}
.fs-cinta li { padding: 0.3rem 1.4rem; }
.fs-cinta li::before { content: "◆"; margin-right: 0.7em; color: var(--wp--preset--color--primario); font-size: 0.55em; vertical-align: 0.3em; }
.fs-cinta-marco .fs-cinta--movimiento {
	flex-wrap: nowrap;
	justify-content: flex-start;
	width: max-content;
	animation: fs-desplazar 45s linear infinite;
}
.fs-cinta-marco:hover .fs-cinta--movimiento { animation-play-state: paused; }
@keyframes fs-desplazar { to { transform: translateX(-50%); } }

/* Planes */
@property --fs-angulo { syntax: "<angle>"; inherits: false; initial-value: 0deg; }
.fs-planes { gap: 1.5rem; align-items: stretch !important; }
.fs-plan {
	position: relative;
	display: flex;
	flex-direction: column;
	box-sizing: border-box;
	height: 100%;
	padding: 2rem 1.6rem 1.6rem;
	border: 1px solid var(--wp--preset--color--borde);
	border-radius: 18px;
	background: var(--wp--preset--color--base);
	transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}
.fs-plan > * { margin-block: 0 0.9rem; }
.fs-plan:hover { transform: translateY(-6px); box-shadow: 0 22px 50px rgba(0, 102, 255, 0.14); border-color: rgba(0, 102, 255, 0.4); }
.fs-plan h3 { font-size: 1.5rem; }
.fs-plan-para { color: var(--wp--preset--color--tenue); font-size: var(--wp--preset--font-size--small); }
.fs-plan .wp-block-buttons { margin-top: auto; margin-bottom: 0; }
.fs-plan .wp-block-button { width: 100%; }
.fs-plan .wp-block-button__link { display: block; width: 100%; box-sizing: border-box; text-align: center; }
.fs-plan--destacado {
	border: 2px solid transparent;
	background:
		linear-gradient(var(--wp--preset--color--base), var(--wp--preset--color--base)) padding-box,
		conic-gradient(from var(--fs-angulo), #0066ff, #00e5ff, #0066ff 50%, #00e5ff 75%, #0066ff) border-box;
	box-shadow: 0 24px 60px rgba(0, 102, 255, 0.2);
	animation: fs-girar 5s linear infinite;
}
@keyframes fs-girar { to { --fs-angulo: 360deg; } }
@media (min-width: 782px) { .fs-planes .fs-plan--destacado:not(:hover) { transform: translateY(-10px); } }
.fs-insignia {
	position: absolute;
	top: 0;
	left: 50%;
	transform: translate(-50%, -50%);
	margin: 0 !important;
	padding: 0.3em 1em;
	border-radius: 999px;
	background: linear-gradient(90deg, #0052cc, #0066ff);
	box-shadow: 0 6px 20px rgba(0, 102, 255, 0.45);
	color: #fff;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	white-space: nowrap;
}
.fs-precio-grande { color: var(--wp--preset--color--tenue); }
.fs-precio-grande strong { color: var(--wp--preset--color--texto); font-size: 2.3rem; letter-spacing: -0.03em; }

.fs-checks { padding: 0; list-style: none; font-size: 0.95rem; }
.fs-checks li { position: relative; padding-left: 1.7em; margin-bottom: 0.55em; }
.fs-checks li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.3em;
	width: 1.1em;
	height: 1.1em;
	border-radius: 50%;
	background: rgba(0, 102, 255, 0.12) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230066ff' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4 8-9'/%3E%3C/svg%3E") center / 70% no-repeat;
}

/* Planes sobre fondo oscuro (streaming) */
.fs-plan--oscuro {
	border-color: rgba(255, 255, 255, 0.12);
	background: rgba(255, 255, 255, 0.04);
	color: #fff;
}
.fs-plan--oscuro:hover { border-color: rgba(0, 229, 255, 0.5); box-shadow: 0 22px 50px rgba(0, 102, 255, 0.3); }
.fs-plan--oscuro.fs-plan--destacado {
	background:
		linear-gradient(#1a1b20, #1a1b20) padding-box,
		conic-gradient(from var(--fs-angulo), #0066ff, #00e5ff, #0066ff 50%, #00e5ff 75%, #0066ff) border-box;
}
.fs-plan--oscuro .fs-plan-para, .fs-plan--oscuro .fs-precio-grande { color: rgba(255, 255, 255, 0.6); }
.fs-plan--oscuro .fs-precio-grande strong { color: #fff; }
.fs-plan--oscuro h3 { font-size: 1.2rem; letter-spacing: 0.04em; }
.fs-plan--oscuro .fs-checks li::before { background-color: rgba(0, 229, 255, 0.14); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2300e5ff' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4 8-9'/%3E%3C/svg%3E"); }

/* Streaming */
.fs-streaming {
	background-image:
		radial-gradient(60% 40% at 50% 0%, rgba(0, 102, 255, 0.28), transparent 70%),
		radial-gradient(40% 30% at 90% 100%, rgba(0, 229, 255, 0.1), transparent 70%);
}
.fs-ecualizador {
	display: flex;
	width: 100%;
	align-items: flex-end;
	justify-content: center;
	gap: 4px;
	max-width: 360px !important;
	height: 56px;
	margin-top: var(--wp--preset--spacing--40) !important;
}
.fs-ecualizador span {
	flex: 1;
	height: 100%;
	border-radius: 3px 3px 0 0;
	background: linear-gradient(to top, #0066ff, #00e5ff);
	transform-origin: bottom;
	animation: fs-eq 1s ease-in-out infinite alternate;
}
@keyframes fs-eq { from { transform: scaleY(0.12); } to { transform: scaleY(1); } }
.fs-video {
	margin-top: var(--wp--preset--spacing--50) !important;
	padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--50);
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 18px;
	background: linear-gradient(120deg, rgba(0, 102, 255, 0.22), rgba(0, 229, 255, 0.05));
	max-width: var(--wp--style--global--wide-size) !important;
}
.fs-video .wp-block-columns { margin: 0; align-items: center !important; }
.fs-video h3 { margin-top: 0; }
@media (min-width: 782px) { .fs-video .wp-block-buttons { justify-content: flex-end; } }

/* Tarjetas con icono */
.fs-con-icono::before {
	content: "";
	display: block;
	width: 52px;
	height: 52px;
	margin-bottom: 1.1rem;
	border-radius: 14px;
	background: var(--fs-icono) center / 26px no-repeat, linear-gradient(135deg, #0066ff, #00b3ff);
	box-shadow: 0 10px 24px rgba(0, 102, 255, 0.3);
	transition: transform 0.3s ease;
}
.fs-con-icono:hover::before { transform: rotate(-6deg) scale(1.08); }
.fs-card--mini { padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40) var(--wp--preset--spacing--40); }
.fs-card--mini::before { width: 42px; height: 42px; border-radius: 12px; background-size: 22px, auto; }
.fs-card--mini h3 { font-size: 1.05rem; margin-bottom: 0.3rem; }
.fs-card--mini p { margin-top: 0; color: var(--wp--preset--color--tenue); font-size: var(--wp--preset--font-size--small); }
.fs-icono-soporte   { --fs-icono: 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='M3 15v-3a9 9 0 0 1 18 0v3'/%3E%3Cpath d='M3 15h3v5H4a1 1 0 0 1-1-1zM21 15h-3v5h2a1 1 0 0 0 1-1z'/%3E%3C/svg%3E"); }
.fs-icono-migracion { --fs-icono: 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='M4 8h15l-4-4M20 16H5l4 4'/%3E%3C/svg%3E"); }
.fs-icono-nvme      { --fs-icono: 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='M13 2 4 14h7l-1 8 9-12h-7z'/%3E%3C/svg%3E"); }
.fs-icono-escudo    { --fs-icono: 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='M12 3l8 3v6c0 5-3.5 8-8 9-4.5-1-8-4-8-9V6z'/%3E%3Cpath d='M9 12l2 2 4-4'/%3E%3C/svg%3E"); }
.fs-icono-backup    { --fs-icono: 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='M3 12a9 9 0 1 0 3-6.7L3 8'/%3E%3Cpath d='M3 3v5h5M12 7v5l3 2'/%3E%3C/svg%3E"); }
.fs-icono-panel     { --fs-icono: 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='M4 4h7v7H4zM13 4h7v7h-7zM4 13h7v7H4zM13 13h7v7h-7z'/%3E%3C/svg%3E"); }
.fs-icono-email { --fs-icono: 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%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m3 7 9 6 9-6'/%3E%3C/svg%3E"); }
.fs-icono-dominio { --fs-icono: 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%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M3 12h18M12 3a14 14 0 0 1 0 18M12 3a14 14 0 0 0 0 18'/%3E%3C/svg%3E"); }
.fs-icono-libro { --fs-icono: 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='M4 5a2 2 0 0 1 2-2h13v16H6a2 2 0 0 0-2 2z'/%3E%3Cpath d='M4 19V5M8 7h7'/%3E%3C/svg%3E"); }
.fs-icono-antena { --fs-icono: 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='M12 12v9M8 21h8'/%3E%3Ccircle cx='12' cy='10' r='2'/%3E%3Cpath d='M7.8 5.8a6 6 0 0 0 0 8.4M16.2 5.8a6 6 0 0 1 0 8.4M5 3a10 10 0 0 0 0 14M19 3a10 10 0 0 1 0 14'/%3E%3C/svg%3E"); }
.fs-icono-video { --fs-icono: 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%3Crect x='3' y='6' width='13' height='12' rx='2'/%3E%3Cpath d='m16 10 5-3v10l-5-3'/%3E%3C/svg%3E"); }
.fs-icono-ticket { --fs-icono: 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='M3 8a2 2 0 0 0 0 4v4h18v-4a2 2 0 0 1 0-4V4H3z' transform='translate(0 2)'/%3E%3Cpath d='M13 6v12' stroke-dasharray='2 2'/%3E%3C/svg%3E"); }
.fs-icono-estado { --fs-icono: 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='M3 12h4l3-8 4 16 3-8h4'/%3E%3C/svg%3E"); }
.fs-icono-reloj { --fs-icono: 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%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E"); }
.fs-icono-candado { --fs-icono: 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%3Crect x='4' y='11' width='16' height='10' rx='2'/%3E%3Cpath d='M8 11V7a4 4 0 0 1 8 0v4'/%3E%3C/svg%3E"); }
.fs-icono-wordpress { --fs-icono: 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%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='m6 8 3.5 10L12 11l2.5 7L18 8M5 8h3M16 8h3'/%3E%3C/svg%3E"); }
.fs-icono-chat { --fs-icono: 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='M21 12a8 8 0 0 1-11.6 7.1L4 20l1-4.6A8 8 0 1 1 21 12z'/%3E%3C/svg%3E"); }
.fs-icono-cohete { --fs-icono: 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='M5 15c-1.5 1.5-2 5-2 5s3.5-.5 5-2M9 15l-3-3c1-4 4.5-8 12-9-1 7.5-5 11-9 12z'/%3E%3Ccircle cx='14.5' cy='9.5' r='1.5'/%3E%3C/svg%3E"); }
.fs-icono-pesos { --fs-icono: 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%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M15 9a3 3 0 0 0-3-1.5c-1.7 0-3 .9-3 2.2 0 3 6 1.6 6 4.6 0 1.3-1.3 2.2-3 2.2A3 3 0 0 1 9 15M12 6v12'/%3E%3C/svg%3E"); }
.fs-icono-musica { --fs-icono: 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='M9 18V5l12-2v13'/%3E%3Ccircle cx='6' cy='18' r='3'/%3E%3Ccircle cx='18' cy='16' r='3'/%3E%3C/svg%3E"); }
.fs-icono-grabar { --fs-icono: 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%3Ccircle cx='12' cy='12' r='9'/%3E%3Ccircle cx='12' cy='12' r='3.5'/%3E%3C/svg%3E"); }

/* Pasos de migración */
.fs-pasos { counter-reset: fs-paso; }
.fs-paso { position: relative; counter-increment: fs-paso; padding-top: 4.6rem; }
.fs-paso h3 { margin-top: 0; }
.fs-paso p { color: var(--wp--preset--color--tenue); }
.fs-paso::before {
	content: counter(fs-paso, decimal-leading-zero);
	position: absolute;
	top: 0;
	left: 0;
	display: grid;
	place-items: center;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: linear-gradient(135deg, #0066ff, #00b3ff);
	box-shadow: 0 0 0 8px rgba(0, 102, 255, 0.12);
	color: #fff;
	font-weight: 700;
}
/* Línea punteada que "transmite" datos de un paso al siguiente */
@media (min-width: 782px) {
	.fs-pasos > .wp-block-column:not(:last-child) .fs-paso::after {
		content: "";
		position: absolute;
		top: 27px;
		left: 76px;
		right: -1.5rem;
		height: 2px;
		background: repeating-linear-gradient(90deg, var(--wp--preset--color--primario) 0 8px, transparent 8px 16px) 0 0 / 16px 2px;
		animation: fs-flujo 0.6s linear infinite;
	}
}
@keyframes fs-flujo { to { background-position: 16px 0; } }

/* Dominios */
.fs-dominios {
	background-image:
		radial-gradient(50% 60% at 50% 100%, rgba(0, 102, 255, 0.35), transparent 70%),
		linear-gradient(rgba(0, 255, 255, 0.04) 1px, transparent 1px),
		linear-gradient(90deg, rgba(0, 255, 255, 0.04) 1px, transparent 1px);
	background-size: auto, 40px 40px, 40px 40px;
}
.fs-chips {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.6rem;
	padding: 0;
	list-style: none;
}
.fs-chips li {
	padding: 0.45em 1.1em;
	border: 1px solid rgba(255, 255, 255, 0.22);
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.04);
	font-family: var(--wp--preset--font-family--mono);
	font-weight: 700;
	transition: border-color 0.2s ease, color 0.2s ease;
	animation: fs-flotar 4s ease-in-out infinite;
}
.fs-chips li:nth-child(2n) { animation-delay: -1s; }
.fs-chips li:nth-child(3n) { animation-delay: -2s; }
.fs-chips li:hover { border-color: var(--wp--preset--color--acento); color: var(--wp--preset--color--acento); }
@keyframes fs-flotar { 50% { transform: translateY(-5px); } }

@media (max-width: 600px) {
	.fs-etiqueta { font-size: 0.66rem; letter-spacing: 0.02em; }
	.fs-hero-dominio .fs-dominio button { width: 100%; }
}
.fs-header .wp-block-button__link { white-space: nowrap; }
@media (max-width: 600px) {
	.fs-header .wp-block-button__link { padding: 0.55em 0.9em; font-size: 0.8rem !important; }
}

/* -------------------------------------------------------------------------
 * Páginas internas
 * ---------------------------------------------------------------------- */

/* Cabecera oscura de cada página */
.fs-hero--pagina {
	padding-top: clamp(3.5rem, 9vh, 6rem) !important;
	padding-bottom: clamp(3.5rem, 9vh, 6rem) !important;
	background-color: #121214 !important;
}
.fs-hero--pagina h1 { max-width: 22ch; font-size: clamp(2.1rem, 4.6vw, 3.5rem); }
.fs-hero--compacto { padding-top: clamp(3rem, 7vh, 4.5rem) !important; padding-bottom: clamp(3rem, 7vh, 4.5rem) !important; }
.fs-hero--compacto h1 { font-size: clamp(1.9rem, 4vw, 3rem); }
.fs-hero--pagina .fs-ecualizador { margin-top: var(--wp--preset--spacing--50) !important; height: 48px; }
.fs-hero--pagina .fs-chips { margin-top: var(--wp--preset--spacing--40); }
.wp-site-blocks > header.wp-block-template-part + main > .fs-hero:first-child,
main > .fs-hero:first-child { margin-top: 0; }

.fs-bajada--izq { margin-left: 0 !important; }
.fs-enlace { margin-top: auto; font-weight: 700; }
.fs-enlace a { text-decoration: none; }
.fs-enlace a:hover { text-decoration: underline; }
.fs-card.fs-con-icono { display: flex; flex-direction: column; }
.fs-card--acento {
	border-color: rgba(0, 102, 255, 0.35);
	background: linear-gradient(135deg, rgba(0, 102, 255, 0.07), rgba(0, 229, 255, 0.04)), var(--wp--preset--color--base);
}
.fs-seccion .wp-block-columns + .wp-block-columns { margin-top: 1.5rem; }

/* Tabla comparativa */
.fs-tabla { max-width: 900px !important; }
.fs-tabla table { border: 1px solid var(--wp--preset--color--borde); border-radius: 16px; border-collapse: separate; border-spacing: 0; overflow: hidden; }
.fs-tabla th, .fs-tabla td { border: 0; border-bottom: 1px solid var(--wp--preset--color--borde); padding: 0.9em 1.1em; }
.fs-tabla tr:last-child td { border-bottom: 0; }
.fs-tabla thead { background: var(--wp--preset--color--contraste); color: #fff; }
.fs-tabla thead th { font-size: 0.95rem; }
.fs-tabla th:not(:first-child), .fs-tabla td:not(:first-child) { text-align: center; }
.fs-tabla td:first-child { font-weight: 600; }
.fs-tabla th:nth-child(3) { background: var(--wp--preset--color--primario); }
.fs-tabla td:nth-child(3) { background: rgba(0, 102, 255, 0.06); font-weight: 700; color: var(--wp--preset--color--primario); }
.fs-tabla tbody tr { transition: background-color 0.2s ease; }
.fs-tabla tbody tr:hover { background: var(--wp--preset--color--superficie); }

/* Bandeja de correo de ejemplo (email corporativo) */
.fs-buzon {
	border: 1px solid var(--wp--preset--color--borde);
	border-radius: 18px;
	background: var(--wp--preset--color--base);
	box-shadow: 0 30px 70px rgba(30, 30, 30, 0.12);
	overflow: hidden;
}
.fs-buzon-titulo {
	margin: 0 !important;
	padding: 0.9rem 1.2rem 0.9rem 4.2rem;
	position: relative;
	background: var(--wp--preset--color--contraste);
	color: rgba(255, 255, 255, 0.75);
	font-size: var(--wp--preset--font-size--small);
}
.fs-buzon-titulo strong { color: #fff; }
.fs-buzon-titulo::before {
	content: "";
	position: absolute;
	left: 1.2rem;
	top: 50%;
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: #ef4444;
	box-shadow: 16px 0 0 #facc15, 32px 0 0 #22c55e;
	transform: translateY(-50%);
}
.fs-buzon-lista { margin: 0 !important; padding: 0.5rem; list-style: none; }
.fs-buzon-lista li {
	position: relative;
	display: grid;
	padding: 0.85rem 1rem 0.85rem 3.6rem;
	border-radius: 12px;
	animation: fs-correo 0.6s cubic-bezier(0.2, 0.7, 0.2, 1) both;
}
.fs-buzon-lista li:nth-child(2) { animation-delay: 0.25s; }
.fs-buzon-lista li:nth-child(3) { animation-delay: 0.5s; }
.fs-buzon-lista li:nth-child(4) { animation-delay: 0.75s; }
.fs-buzon-lista li:first-child { background: rgba(0, 102, 255, 0.07); }
.fs-buzon-lista li::before {
	content: "";
	position: absolute;
	left: 1rem;
	top: 50%;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background: var(--fs-icono) center / 16px no-repeat, linear-gradient(135deg, #0066ff, #00b3ff);
	transform: translateY(-50%);
	--fs-icono: 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%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m3 7 9 6 9-6'/%3E%3C/svg%3E");
}
.fs-buzon-lista li:first-child::after {
	content: "";
	position: absolute;
	right: 1rem;
	top: 50%;
	width: 9px;
	height: 9px;
	border-radius: 50%;
	background: var(--wp--preset--color--primario);
	animation: fs-vivo-azul 1.8s ease-out infinite;
}
.fs-buzon-lista strong { font-size: 0.95rem; }
.fs-buzon-lista span { color: var(--wp--preset--color--tenue); font-size: var(--wp--preset--font-size--small); }
@keyframes fs-correo { from { opacity: 0; transform: translateX(30px); } to { opacity: 1; transform: none; } }
@keyframes fs-vivo-azul { 0% { box-shadow: 0 0 0 0 rgba(0, 102, 255, 0.6); } 100% { box-shadow: 0 0 0 10px rgba(0, 102, 255, 0); } }
#email .wp-block-columns { align-items: center !important; gap: var(--wp--preset--spacing--60); }

/* Garantía con sello giratorio */
.fs-garantia { background-image: radial-gradient(50% 80% at 85% 50%, rgba(0, 102, 255, 0.35), transparent 70%); }
.fs-garantia .wp-block-columns { align-items: center !important; }
.fs-sello {
	position: relative;
	display: grid;
	place-content: center;
	width: 200px;
	height: 200px;
	margin-inline: auto !important;
	border-radius: 50%;
	background: linear-gradient(135deg, #0066ff, #00b3ff);
	box-shadow: 0 20px 60px rgba(0, 102, 255, 0.5);
	text-align: center;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-size: 0.85rem;
}
.fs-sello strong { display: block; font-size: 4.5rem; line-height: 1; letter-spacing: 0; }
.fs-sello::before {
	content: "";
	position: absolute;
	inset: -14px;
	border: 2px dashed rgba(0, 229, 255, 0.55);
	border-radius: 50%;
	animation: fs-rotar 18s linear infinite;
}
@keyframes fs-rotar { to { transform: rotate(360deg); } }

/* Extensiones de dominio */
.fs-tld-ext {
	margin: 0 !important;
	font-family: var(--wp--preset--font-family--mono);
	font-size: 2.6rem;
	font-weight: 700;
	line-height: 1.1;
	background: linear-gradient(135deg, #0066ff, #00b3ff);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
}
.fs-tld { display: flex; flex-direction: column; }
.fs-tld p:not(.fs-tld-ext):not(.fs-enlace) { color: var(--wp--preset--color--tenue); }

/* Preguntas frecuentes */
.fs-faq { display: grid; gap: 0.8rem; max-width: 820px !important; margin-top: var(--wp--preset--spacing--50) !important; }
.fs-faq .wp-block-details { margin: 0; padding: 0; background: var(--wp--preset--color--base); transition: border-color 0.2s ease, box-shadow 0.2s ease; }
.fs-faq .wp-block-details:hover { border-color: rgba(0, 102, 255, 0.4); }
.fs-faq .wp-block-details[open] { box-shadow: 0 14px 40px rgba(0, 102, 255, 0.1); }
.fs-faq summary { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1.1rem 1.3rem; list-style: none; }
.fs-faq summary::-webkit-details-marker { display: none; }
.fs-faq summary::after {
	content: "+";
	flex: none;
	display: grid;
	place-items: center;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: rgba(0, 102, 255, 0.1);
	color: var(--wp--preset--color--primario);
	font-size: 1.2rem;
	transition: transform 0.3s ease, background-color 0.3s ease, color 0.3s ease;
}
.fs-faq details[open] summary::after { transform: rotate(45deg); background: var(--wp--preset--color--primario); color: #fff; }
.fs-faq details > :not(summary) { margin: 0; padding: 0 1.3rem 1.2rem; color: var(--wp--preset--color--tenue); animation: fs-subir 0.4s ease both; }

/* Reproductor de video "en vivo" */
.fs-reproductor {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	aspect-ratio: 16 / 10;
	padding: 1.2rem;
	border-radius: 18px;
	background:
		radial-gradient(60% 60% at 50% 45%, rgba(0, 102, 255, 0.45), transparent 70%),
		linear-gradient(rgba(0, 255, 255, 0.05) 1px, transparent 1px) 0 0 / 32px 32px,
		linear-gradient(90deg, rgba(0, 255, 255, 0.05) 1px, transparent 1px) 0 0 / 32px 32px,
		#121214;
	box-shadow: 0 30px 70px rgba(0, 0, 0, 0.3);
	color: #fff;
	overflow: hidden;
}
.fs-reproductor > * { margin: 0 !important; }
.fs-reproductor-barra { display: flex; align-items: center; gap: 0.6rem; font-size: 0.8rem; font-weight: 700; opacity: 0.9; }
.fs-envivo { padding: 0.2em 0.6em 0.2em 1.4em; position: relative; border-radius: 6px; background: #ef4444; letter-spacing: 0.06em; }
.fs-envivo::before { content: ""; position: absolute; left: 0.5em; top: 50%; width: 6px; height: 6px; margin-top: -3px; border-radius: 50%; background: #fff; animation: fs-parpadeo 1.2s steps(2) infinite; }
@keyframes fs-parpadeo { 50% { opacity: 0; } }
.fs-reproductor .fs-ecualizador { width: 70%; max-width: 70% !important; margin-inline: auto !important; height: 70px; }
.fs-reproductor-pie { position: relative; padding-top: 0.9rem; font-size: 0.85rem; opacity: 0.85; }
.fs-reproductor-pie::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 4px; border-radius: 4px; background: rgba(255, 255, 255, 0.15); }
.fs-reproductor-pie::after { content: ""; position: absolute; top: 0; left: 0; height: 4px; border-radius: 4px; background: linear-gradient(90deg, #0066ff, #00e5ff); animation: fs-avance 12s linear infinite; }
@keyframes fs-avance { from { width: 0; } to { width: 100%; } }
#video .wp-block-columns { align-items: center !important; gap: var(--wp--preset--spacing--60); }

/* Chips sobre fondo claro */
.fs-chips--claro li { border-color: var(--wp--preset--color--borde); background: var(--wp--preset--color--base); color: var(--wp--preset--color--texto); }
.fs-chips--claro li:hover { border-color: var(--wp--preset--color--primario); color: var(--wp--preset--color--primario); }

/* Terminal (soporte remoto) */
.fs-terminal { border-radius: 14px; background: #141414; overflow: hidden; box-shadow: 0 20px 50px rgba(0, 0, 0, 0.25); }
.fs-terminal-titulo { position: relative; margin: 0 !important; padding: 0.7rem 1rem 0.7rem 4rem; background: #26272b; color: rgba(255, 255, 255, 0.7); font-size: 0.8rem; }
.fs-terminal-titulo::before { content: ""; position: absolute; left: 1rem; top: 50%; width: 10px; height: 10px; border-radius: 50%; background: #ef4444; box-shadow: 16px 0 0 #facc15, 32px 0 0 #22c55e; transform: translateY(-50%); }
.fs-terminal .wp-block-code { margin: 0; border-radius: 0; }
.fs-terminal .wp-block-code code::before { content: "$ "; color: var(--wp--preset--color--acento); }

/* Contacto */
.fs-canales .fs-card--mini h3 { margin-top: 0; }
.fs-formulario { padding: var(--wp--preset--spacing--50); box-shadow: 0 24px 60px rgba(30, 30, 30, 0.08); }
.fs-formulario:hover { transform: none; }
.fs-contacto .wp-block-column > .fs-card + .fs-card { margin-top: 1.2rem; }
.fs-contacto .fs-card { height: auto; }

/* Llamado a la acción oscuro */
.fs-cta { background-image: radial-gradient(50% 70% at 50% 100%, rgba(0, 102, 255, 0.35), transparent 70%); }

/* Blog: listado de entradas */
.fs-categorias {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.5rem;
	margin-top: var(--wp--preset--spacing--40) !important;
	padding: 0;
	list-style: none;
}
.fs-categorias a {
	display: inline-block;
	padding: 0.35em 1em;
	border: 1px solid rgba(255, 255, 255, 0.22);
	border-radius: 999px;
	color: #fff !important;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	text-decoration: none;
	transition: border-color 0.2s ease, background-color 0.2s ease;
}
.fs-categorias a:hover { border-color: var(--wp--preset--color--acento); background: rgba(0, 229, 255, 0.1); }
.fs-entrada { display: flex; flex-direction: column; padding: 0; overflow: hidden; }
.fs-entrada > * { margin-inline: var(--wp--preset--spacing--40); }
.fs-entrada > :last-child { margin-bottom: var(--wp--preset--spacing--40); }
.fs-entrada .wp-block-post-featured-image { margin: 0; }
.fs-entrada .wp-block-post-featured-image img { transition: transform 0.5s ease; }
.fs-entrada:hover .wp-block-post-featured-image img { transform: scale(1.05); }
.fs-entrada .fs-categoria:first-child, .fs-entrada .wp-block-post-featured-image + .fs-categoria { margin-top: var(--wp--preset--spacing--40); }
.fs-entrada .wp-block-post-excerpt__more-link { font-weight: 700; text-decoration: none; }
.fs-categoria a {
	display: inline-block;
	padding: 0.2em 0.8em;
	border-radius: 999px;
	background: rgba(0, 102, 255, 0.1);
	color: var(--wp--preset--color--primario);
	font-size: 0.75rem;
	letter-spacing: 0.04em;
	text-decoration: none;
	text-transform: uppercase;
}
.has-contraste-background-color .fs-categoria a { background: rgba(0, 229, 255, 0.12); color: var(--wp--preset--color--acento); }
.fs-listado .wp-block-query-pagination { margin-top: var(--wp--preset--spacing--50); }

/* Blog: entrada individual */
.fs-meta { gap: 0.4rem 1.2rem; opacity: 0.7; font-size: var(--wp--preset--font-size--small); }
.fs-meta .wp-block-post-date { color: inherit; }
.fs-meta .wp-block-post-author-name::before { content: "· "; }
.fs-articulo { margin-top: var(--wp--preset--spacing--50) !important; }
.fs-contenido h2 { margin-top: 2.2em; font-size: 1.6rem; }
.fs-contenido h3 { margin-top: 1.8em; }
.fs-contenido img { border-radius: 12px; }
.fs-contenido blockquote { margin-inline: 0; padding: 1rem 1.4rem; border-left: 4px solid var(--wp--preset--color--primario); border-radius: 0 12px 12px 0; background: var(--wp--preset--color--superficie); }
.fs-contenido :not(pre) > code { padding: 0.1em 0.4em; border-radius: 5px; background: var(--wp--preset--color--superficie); font-size: 0.9em; }
.fs-navegacion-entradas { margin-top: var(--wp--preset--spacing--50) !important; padding-top: var(--wp--preset--spacing--40); border-top: 1px solid var(--wp--preset--color--borde); font-weight: 700; }
.fs-navegacion-entradas a { text-decoration: none; }
.fs-caja-cta {
	margin-top: var(--wp--preset--spacing--50) !important;
	padding: var(--wp--preset--spacing--50);
	border: 2px solid transparent;
	border-radius: 18px;
	background:
		linear-gradient(var(--wp--preset--color--superficie), var(--wp--preset--color--superficie)) padding-box,
		conic-gradient(from var(--fs-angulo), #0066ff, #00e5ff, #0066ff 50%, #00e5ff 75%, #0066ff) border-box;
	animation: fs-girar 6s linear infinite;
}
.fs-caja-cta h3 { margin-top: 0; }

/* Buscador sobre fondo oscuro */
.fs-buscador { max-width: 560px !important; margin-inline: auto !important; }
.fs-buscador .wp-block-search__inside-wrapper { gap: 0.5rem; }
.fs-buscador .wp-block-search__input { padding: 0.75em 1em; border: 0; border-radius: 10px; font: inherit; }
.fs-buscador .wp-block-search__button { margin: 0; border: 0; border-radius: 10px; background: var(--wp--preset--color--primario); color: #fff; font-weight: 700; }

/* 404 */
.fs-404-codigo {
	margin: 0 auto !important;
	font-family: var(--wp--preset--font-family--mono);
	font-size: clamp(5rem, 16vw, 10rem);
	font-weight: 700;
	line-height: 1;
	background: linear-gradient(135deg, #0066ff, #00e5ff);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	animation: fs-falla 3s steps(1) infinite;
}
@keyframes fs-falla {
	0%, 92%, 100% { transform: none; opacity: 1; }
	93% { transform: translateX(-4px) skewX(8deg); opacity: 0.6; }
	95% { transform: translateX(4px); opacity: 0.85; }
	97% { transform: translateX(-2px) skewX(-6deg); opacity: 0.5; }
}
.fs-404 .wp-block-buttons { margin-top: var(--wp--preset--spacing--40); }

@media (prefers-reduced-motion: reduce) {
	.fs-buzon-lista li, .fs-buzon-lista li::after, .fs-sello::before, .fs-envivo::before, .fs-reproductor-pie::after,
	.fs-faq details > :not(summary), .fs-caja-cta, .fs-404-codigo,
	.fs-header .wp-block-navigation__submenu-container > .wp-block-navigation-item,
	.fs-header .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item { animation: none !important; transition: none !important; }
	.fs-header::after { display: none; }
}
/* La bandeja de correo se llena recién cuando aparece en pantalla */
.fs-js .fs-buzon.fs-revelar:not(.fs-visible) .fs-buzon-lista li { animation-play-state: paused; }

/* El pie va pegado al contenido (sin franja blanca tras una sección oscura) */
.wp-site-blocks > footer.wp-block-template-part { margin-block-start: 0; }

.fs-lista-titulo { margin-bottom: 0.4rem !important; }
