/* ==========================================================================
   Fichador.app — base
   Solo lo que las utilidades de Tailwind (Play CDN) no resuelven bien:
   componentes reutilizados en muchas plantillas, el texto que sale del
   editor de bloques, los formularios de Contact Form 7, el menú desplegable
   y los fondos decorativos.

   Especificidad: las clases de componente (.fc-boton…) son de una sola
   clase, como las utilidades de Tailwind; como la hoja de Tailwind se
   inyecta después, en caso de empate gana la utilidad. Los estilos del
   texto (.fc-prose) usan :where() en el elemento para no pisar utilidades.
   ========================================================================== */

/* 1. Base ---------------------------------------------------------------- */

body {
	font-family: var(--fc-fuente-texto);
	color: var(--fc-tinta);
	background: #fff;
}

[id] {
	scroll-margin-top: calc(var(--fc-cabecera-alto) + 1.5rem);
}

::selection {
	background: var(--fc-marca-100);
	color: var(--fc-tinta);
}

:focus-visible {
	outline: 2px solid var(--fc-marca);
	outline-offset: 3px;
}

/* En una rejilla de una sola columna (móvil), la columna se ensancharía hasta
   el ancho mínimo de su contenido (p. ej. los campos del formulario) y la
   sección se saldría de la pantalla. Igual que hace Tailwind en grid-cols-N. */
.grid > * {
	min-width: 0;
}

/* Rejillas de tarjetas: en el tramo de 2 columnas, si la última tarjeta se
   queda sola, va centrada (4 pistas y cada tarjeta ocupa 2). */
@media (min-width: 640px) {
	.grid.fc-rejilla--2 {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.grid.fc-rejilla--2 > * {
		grid-column: span 2;
	}

	.grid.fc-rejilla--2 > :last-child:nth-child(odd) {
		grid-column: 2 / span 2;
	}
}

@media (min-width: 640px) and (max-width: 1023.98px) {
	.grid.fc-rejilla--sm2 {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.grid.fc-rejilla--sm2 > * {
		grid-column: span 2;
	}

	.grid.fc-rejilla--sm2 > :last-child:nth-child(odd) {
		grid-column: 2 / span 2;
	}
}

@media (min-width: 768px) and (max-width: 1023.98px) {
	.grid.fc-rejilla--md2 {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.grid.fc-rejilla--md2 > * {
		grid-column: span 2;
	}

	.grid.fc-rejilla--md2 > :last-child:nth-child(odd) {
		grid-column: 2 / span 2;
	}
}

/* 2. Piezas comunes ------------------------------------------------------- */

.fc-resaltado {
	color: var(--fc-marca);
}

:is(.bg-ink, .fc-seccion--oscuro) .fc-resaltado {
	color: #A9CBFF;
}

/* En las cabeceras azules, el amarillo que usaba la web anterior. */
.fc-hero--azul .fc-resaltado {
	color: #EBD158;
}

/* Enlaces escritos en los textos de los bloques: [texto](/ruta/). */
.fc-enlace {
	color: var(--fc-marca);
	font-weight: 600;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
	transition: color .2s;
}

.fc-enlace:hover {
	color: var(--fc-marca-700);
}

:is(.bg-ink, .fc-seccion--oscuro, .fc-hero--azul, .fc-banda) .fc-enlace {
	color: inherit;
}

.fc-antetitulo {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	padding: .375rem .875rem;
	border-radius: 9999px;
	background: var(--fc-marca-50);
	box-shadow: inset 0 0 0 1px var(--fc-marca-100);
	color: var(--fc-marca-700);
	font-family: var(--fc-fuente-titulos);
	font-size: .8125rem;
	font-weight: 600;
	letter-spacing: .02em;
}

.fc-antetitulo::before {
	content: "";
	width: .4375rem;
	height: .4375rem;
	border-radius: 9999px;
	background: currentColor;
	opacity: .8;
}

.fc-antetitulo--oscuro {
	background: rgba(255, 255, 255, .12);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .22);
	color: #fff;
}

/* Botones */
.fc-boton {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	padding: .75rem 1.375rem;
	border-radius: 9999px;
	font-family: var(--fc-fuente-titulos);
	font-size: .9375rem;
	font-weight: 600;
	line-height: 1.25;
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
	transition: background-color .2s, color .2s, box-shadow .2s, transform .2s;
}

/* En pantallas estrechas el texto largo de un botón pasa a dos líneas. */
@media (max-width: 479px) {
	.fc-boton {
		max-width: 100%;
		white-space: normal;
		text-align: center;
		justify-content: center;
	}
}

/* Botón de una barra (cabecera): en el móvil, más pequeño,
   sin flecha y siempre en una línea. Va después de la regla anterior para
   ganarle el white-space. */
.fc-boton--compacto {
	padding: .625rem 1rem;
	font-size: .875rem;
	white-space: nowrap;
}

.fc-boton--compacto .fc-boton__flecha {
	display: none;
}

@media (min-width: 640px) {
	.fc-boton--compacto {
		padding: .75rem 1.375rem;
		font-size: .9375rem;
	}

	.fc-boton--compacto .fc-boton__flecha {
		display: inline-block;
	}
}

.fc-boton:hover {
	transform: translateY(-1px);
}

.fc-boton .fc-boton__flecha {
	transition: transform .2s;
}

.fc-boton:hover .fc-boton__flecha {
	transform: translateX(3px);
}

.fc-boton--grande {
	padding: .9375rem 1.75rem;
	font-size: 1rem;
}

.fc-boton--principal {
	background: var(--fc-marca);
	color: #fff;
	box-shadow: var(--fc-sombra-marca);
}

.fc-boton--principal:hover {
	background: var(--fc-marca-700);
}

.fc-boton--claro {
	background: #fff;
	color: var(--fc-marca-700);
	box-shadow: 0 10px 30px -12px rgba(7, 19, 42, .5);
}

.fc-boton--claro:hover {
	background: var(--fc-marca-50);
}

.fc-boton--contorno {
	background: #fff;
	color: var(--fc-tinta);
	box-shadow: inset 0 0 0 1px #CBD5E1;
}

.fc-boton--contorno:hover {
	color: var(--fc-marca-700);
	box-shadow: inset 0 0 0 1px var(--fc-marca-300);
}

.fc-boton--contorno-claro {
	color: #fff;
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .45);
}

.fc-boton--contorno-claro:hover {
	background: rgba(255, 255, 255, .1);
}

.fc-boton--texto {
	padding-inline: .5rem;
	color: var(--fc-marca-700);
}

.fc-boton--texto .fc-boton__flecha,
.fc-boton--contorno-claro .fc-boton__flecha,
.fc-boton--contorno .fc-boton__flecha {
	display: none;
}

/* Logos sobre fondo oscuro/claro */
.fc-logo--blanco {
	filter: brightness(0) invert(1);
}

.fc-logo--oscuro {
	filter: invert(1);
}

/* 3. Cabecera y menús ----------------------------------------------------- */

.fc-cabecera.is-scrolled {
	border-color: var(--fc-borde);
	background: rgba(255, 255, 255, .95);
	box-shadow: 0 8px 30px -14px rgba(11, 27, 51, .18);
}

.admin-bar .fc-cabecera {
	top: 32px;
}

@media (max-width: 782px) {
	.admin-bar .fc-cabecera {
		top: 46px;
	}
}

@media (max-width: 600px) {
	.admin-bar .fc-cabecera {
		top: 0;
	}
}

.fc-menu > li {
	position: relative;
}

.fc-menu .current-menu-item > a,
.fc-menu .current-page-ancestor > a,
.fc-menu .current-menu-ancestor > a {
	background: var(--fc-marca-50);
	color: var(--fc-marca-700);
}

.fc-menu .sub-menu {
	position: absolute;
	top: calc(100% + .5rem);
	left: 50%;
	z-index: 10;
	min-width: 20rem;
	padding: .5rem;
	border-radius: 1.25rem;
	background: #fff;
	box-shadow: 0 0 0 1px rgba(11, 27, 51, .06), 0 24px 48px -16px rgba(11, 27, 51, .28);
	opacity: 0;
	visibility: hidden;
	transform: translate(-50%, 6px);
	transition: opacity .18s, transform .18s, visibility .18s;
}

/* Puente invisible para que el desplegable no se cierre al bajar el ratón. */
.fc-menu .sub-menu::before {
	content: "";
	position: absolute;
	inset: -.75rem 0 auto;
	height: .75rem;
}

.fc-menu li:hover > .sub-menu,
.fc-menu li:focus-within > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: translate(-50%, 0);
}

.fc-menu-movil .sub-menu {
	margin: .25rem 0 .75rem .75rem;
	padding-left: .75rem;
	border-left: 2px solid var(--fc-borde);
}

.fc-cajon[hidden] {
	display: none;
}

.fc-cajon__panel {
	animation: fc-entrar-derecha .25s ease-out;
}

.fc-cajon__velo {
	animation: fc-aparecer .2s ease-out;
}

@keyframes fc-entrar-derecha {
	from { transform: translateX(100%); }
	to { transform: translateX(0); }
}

@keyframes fc-aparecer {
	from { opacity: 0; }
	to { opacity: 1; }
}

/* 4. Fondos decorativos --------------------------------------------------- */

.fc-hero--azul {
	background:
		radial-gradient(60rem 30rem at 85% -10%, rgba(125, 180, 255, .45), transparent 60%),
		radial-gradient(40rem 30rem at -10% 110%, rgba(11, 58, 133, .6), transparent 60%),
		linear-gradient(160deg, #0A6BFF 0%, #0061FE 40%, #004FD1 75%, #0B3A85 100%);
}

.fc-hero--claro {
	background:
		radial-gradient(50rem 26rem at 90% -10%, var(--fc-marca-100), transparent 65%),
		linear-gradient(180deg, var(--fc-suave) 0%, #fff 100%);
}

.fc-hero__fondo,
.fc-cabecera-pagina__fondo,
.fc-formulario__fondo {
	position: absolute;
	inset: 0;
	z-index: -1;
	background-image:
		linear-gradient(rgba(255, 255, 255, .08) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, .08) 1px, transparent 1px);
	background-size: 56px 56px;
	-webkit-mask-image: radial-gradient(ellipse 80% 70% at 50% 0%, #000 30%, transparent 75%);
	mask-image: radial-gradient(ellipse 80% 70% at 50% 0%, #000 30%, transparent 75%);
	pointer-events: none;
}

.fc-hero--claro .fc-hero__fondo,
.fc-cabecera-pagina__fondo,
.fc-formulario__fondo {
	background-image:
		linear-gradient(rgba(0, 97, 254, .07) 1px, transparent 1px),
		linear-gradient(90deg, rgba(0, 97, 254, .07) 1px, transparent 1px);
}

.fc-formulario__fondo {
	-webkit-mask-image: radial-gradient(ellipse 70% 60% at 0% 0%, #000 20%, transparent 70%);
	mask-image: radial-gradient(ellipse 70% 60% at 0% 0%, #000 20%, transparent 70%);
}

.fc-cifras__brillo {
	position: absolute;
	inset: 0;
	z-index: -1;
	background:
		radial-gradient(40rem 20rem at 15% 0%, rgba(0, 97, 254, .35), transparent 70%),
		radial-gradient(30rem 20rem at 95% 100%, rgba(31, 111, 255, .22), transparent 70%);
	pointer-events: none;
}

.fc-banda__brillo {
	position: absolute;
	inset: 0;
	z-index: -1;
	background: radial-gradient(30rem 16rem at 100% 0%, rgba(255, 255, 255, .22), transparent 70%);
	pointer-events: none;
}

/* Cinta de logos: se desvanece en los bordes. */
.fc-cinta {
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
	mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}

@media (prefers-reduced-motion: reduce) {
	.fc-cinta .animate-desplazar {
		animation: none;
		flex-wrap: wrap;
		justify-content: center;
		width: 100%;
	}

	.fc-cinta ul[aria-hidden="true"] {
		display: none;
	}
}

/* 5. Secciones sobre fondo oscuro ----------------------------------------- */

.fc-seccion--oscuro .fc-tarjeta {
	background: rgba(255, 255, 255, .04);
	border-color: rgba(255, 255, 255, .1);
	box-shadow: none;
}

.fc-seccion--oscuro .fc-tarjeta__titulo {
	color: #fff;
}

.fc-seccion--oscuro .fc-tarjeta__texto {
	color: rgba(255, 255, 255, .7);
}

.fc-seccion--oscuro .fc-tarjeta__icono {
	background: rgba(255, 255, 255, .08);
	color: var(--fc-marca-300);
	--tw-ring-color: rgba(255, 255, 255, .12);
}

/* 6. Texto del editor de bloques (legales, artículos, respuestas del FAQ) -- */

.fc-seccion-texto {
	max-width: 48rem;
	margin: 0 auto;
	padding: 3.5rem 1rem;
}

.fc-prose {
	color: rgba(11, 27, 51, .82);
	font-size: 1.0625rem;
	line-height: 1.75;
	overflow-wrap: break-word; /* URLs largas de los textos legales */
}

.fc-prose > :first-child {
	margin-top: 0;
}

.fc-prose :where(p, ul, ol, figure, blockquote, table, pre, .wp-block-embed, .wp-block-buttons) {
	margin-top: 1.25em;
	margin-bottom: 0;
}

.fc-prose :where(h2) {
	margin-top: 2.2em;
	color: var(--fc-tinta);
	font-family: var(--fc-fuente-titulos);
	font-size: 1.625rem;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: -.01em;
}

.fc-prose :where(h3) {
	margin-top: 1.9em;
	color: var(--fc-tinta);
	font-family: var(--fc-fuente-titulos);
	font-size: 1.3125rem;
	font-weight: 600;
	line-height: 1.35;
}

.fc-prose :where(h4, h5, h6) {
	margin-top: 1.6em;
	color: var(--fc-tinta);
	font-family: var(--fc-fuente-titulos);
	font-size: 1.0625rem;
	font-weight: 600;
}

.fc-prose :where(h2, h3, h4) + * {
	margin-top: .75em;
}

.fc-prose :where(a) {
	color: var(--fc-marca-700);
	font-weight: 500;
	text-decoration: underline;
	text-decoration-color: var(--fc-marca-200);
	text-decoration-thickness: 2px;
	text-underline-offset: 3px;
	transition: text-decoration-color .2s;
}

.fc-prose :where(a):hover {
	text-decoration-color: var(--fc-marca);
}

.fc-prose :where(strong, b) {
	color: var(--fc-tinta);
	font-weight: 600;
}

.fc-prose :where(ul, ol) {
	padding-left: 1.4em;
}

.fc-prose :where(ul) {
	list-style: disc;
}

.fc-prose :where(ol) {
	list-style: decimal;
}

.fc-prose :where(li) {
	margin-top: .5em;
	padding-left: .25em;
}

.fc-prose :where(li)::marker {
	color: var(--fc-marca-400);
}

.fc-prose :where(li > ul, li > ol) {
	margin-top: .5em;
}

.fc-prose :where(img) {
	height: auto;
	max-width: 100%;
	border-radius: 1rem;
	box-shadow: 0 0 0 1px rgba(11, 27, 51, .06), var(--fc-sombra-suave);
}

.fc-prose :where(figcaption) {
	margin-top: .75em;
	color: var(--fc-gris);
	font-size: .875rem;
	text-align: center;
}

.fc-prose :where(blockquote) {
	padding: 1rem 1.25rem;
	border-left: 4px solid var(--fc-marca);
	border-radius: 0 1rem 1rem 0;
	background: var(--fc-suave);
	color: var(--fc-tinta);
}

.fc-prose :where(hr) {
	margin: 2.5em 0;
	border: 0;
	border-top: 1px solid var(--fc-borde);
}

.fc-prose :where(table) {
	width: 100%;
	border-collapse: collapse;
	font-size: .9375rem;
}

/* En móvil, las tablas anchas se desplazan de lado dentro de su caja en vez
   de sacar la página de la pantalla. */
@media (max-width: 767px) {
	.fc-prose :where(table) {
		display: block;
		overflow-x: auto;
		font-size: .875rem;
	}
}

.fc-prose :where(th, td) {
	padding: .625rem .75rem;
	border-bottom: 1px solid var(--fc-borde);
	text-align: left;
	vertical-align: top;
}

.fc-prose :where(th) {
	color: var(--fc-tinta);
	font-weight: 600;
}

/* Tablas del editor (bloque «Tabla»): en lugar de los bordes negros por
   defecto de WordPress, caja redondeada con líneas finas y cabecera suave. */
.fc-prose .wp-block-table table {
	display: table; /* A todo el ancho también en el móvil: si no cabe, se desplaza el marco (.wp-block-table). */
	width: 100%;
	border: 1px solid var(--fc-borde);
	border-collapse: separate;
	border-spacing: 0;
	border-radius: 1rem;
	overflow: hidden;
}

.fc-prose .wp-block-table thead {
	border-bottom: 0;
}

.fc-prose .wp-block-table th,
.fc-prose .wp-block-table td {
	padding: .75rem 1.125rem;
	border: 0;
	border-bottom: 1px solid var(--fc-borde);
}

.fc-prose .wp-block-table th {
	background: var(--fc-suave);
	font-family: var(--fc-fuente-titulos);
}

.fc-prose .wp-block-table tbody tr:last-child td {
	border-bottom: 0;
}

.fc-prose :where(.wp-block-embed iframe) {
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
	border-radius: 1rem;
}

.fc-prose--compacta {
	font-size: 1rem;
	line-height: 1.7;
}

.fc-prose--compacta :where(p, ul, ol, figure) {
	margin-top: .9em;
}

/* FAQ */
.fc-pregunta summary::-webkit-details-marker {
	display: none;
}

.fc-pregunta summary:focus-visible {
	border-radius: 1rem;
}

/* 8. Formularios (Contact Form 7) ------------------------------------------ */

.fc-form .fc-campos {
	display: grid;
	grid-template-columns: minmax(0, 1fr); /* si no, los campos miden 40 caracteres aunque no quepan */
	gap: 1rem;
}

@media (min-width: 640px) {
	.fc-form .fc-campos {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.fc-form .fc-campo--ancho {
	grid-column: 1 / -1;
}

.fc-form label {
	display: block;
	color: var(--fc-tinta);
	font-size: .875rem;
	font-weight: 600;
}

.fc-form .fc-campo > label > .wpcf7-form-control-wrap,
.fc-form .fc-campo > .wpcf7-form-control-wrap {
	display: block;
	margin-top: .375rem;
}

.fc-form :where(input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="number"], input[type="password"], select, textarea) {
	display: block;
	width: 100%;
	padding: .75rem 1rem;
	border: 1px solid #D5DCE7;
	border-radius: .875rem;
	background: #fff;
	color: var(--fc-tinta);
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.5;
	transition: border-color .15s, box-shadow .15s;
}

.fc-form :where(input, select, textarea)::placeholder {
	color: #94A3B8;
}

.fc-form :where(input, select, textarea):focus {
	border-color: var(--fc-marca-500);
	outline: none;
	box-shadow: 0 0 0 4px rgba(0, 97, 254, .15);
}

.fc-form select {
	padding-right: 2.25rem;
	padding-left: .875rem;
	text-overflow: ellipsis;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235B6474' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
	background-position: right .7rem center;
	background-repeat: no-repeat;
	background-size: 1.1rem;
	-webkit-appearance: none;
	appearance: none;
}

.fc-form textarea {
	min-height: 7rem;
	resize: vertical;
}

.fc-form .fc-aceptacion label,
.fc-form .wpcf7-acceptance label {
	display: flex;
	align-items: flex-start;
	gap: .625rem;
	color: var(--fc-gris);
	font-size: .875rem;
	font-weight: 400;
	line-height: 1.5;
}

.fc-form .fc-aceptacion .wpcf7-list-item,
.fc-form .wpcf7-acceptance .wpcf7-list-item {
	margin: 0;
}

.fc-form input[type="checkbox"] {
	flex: none;
	width: 1.125rem;
	height: 1.125rem;
	margin-top: .125rem;
	accent-color: var(--fc-marca);
}

.fc-form .fc-aceptacion a,
.fc-form .wpcf7-acceptance a {
	color: var(--fc-marca-700);
	font-weight: 500;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.fc-form .wpcf7-submit {
	display: block;
	width: 100%;
	margin-top: .5rem;
	padding: 1rem 1.5rem;
	border: 0;
	border-radius: 9999px;
	background: var(--fc-marca);
	box-shadow: var(--fc-sombra-marca);
	color: #fff;
	font-family: var(--fc-fuente-titulos);
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.3;
	white-space: normal; /* el texto largo pasa a dos líneas en vez de cortarse */
	cursor: pointer;
	transition: background-color .2s, transform .2s;
}

@media (max-width: 399px) {
	.fc-form .wpcf7-submit {
		padding-inline: 1rem;
		font-size: .9375rem;
	}
}

.fc-form .wpcf7-submit:hover {
	background: var(--fc-marca-700);
	transform: translateY(-1px);
}

.fc-form .wpcf7-submit:disabled {
	opacity: .6;
	cursor: not-allowed;
}

.fc-form .wpcf7-spinner {
	display: block;
	margin: .75rem auto 0;
}

/* Enviando (main.js): desde el primer clic, antes de que Contact Form 7 marque
   el formulario. Botón quieto, rueda visible y campos atenuados. */
.fc-form.fc-enviando .wpcf7-submit,
.fc-form.fc-enviando .wpcf7-submit:hover {
	background: var(--fc-marca-700);
	cursor: progress;
	transform: none;
}

.fc-form.fc-enviando:not(.fc-enviado) .wpcf7-spinner {
	visibility: visible;
}

.fc-form.fc-enviando:not(.fc-enviado) :is(input:not([type="submit"]):not([type="hidden"]), select, textarea) {
	opacity: .6;
}

.wpcf7 form.fc-form.fc-sin-respuesta .wpcf7-spinner {
	visibility: hidden;
}

.wpcf7 form.fc-form.fc-sin-respuesta .wpcf7-response-output {
	display: block;
}

.fc-form .wpcf7-not-valid-tip,
.fc-form .fc-aviso-check {
	display: block;
	margin-top: .375rem;
	color: var(--fc-coral-600);
	font-size: .8125rem;
	font-weight: 500;
}

.fc-form .wpcf7-not-valid {
	border-color: var(--fc-coral);
}

.fc-form .fc-check-error {
	border-radius: .5rem;
	outline: 2px solid var(--fc-coral);
	outline-offset: 4px;
}

.wpcf7 form .wpcf7-response-output {
	margin: 1rem 0 0;
	padding: .75rem 1rem;
	border: 1px solid transparent;
	border-radius: .875rem;
	font-size: .875rem;
}

.wpcf7 form.sent .wpcf7-response-output {
	border-color: #A7F3D0;
	background: #ECFDF5;
	color: var(--fc-exito);
}

.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.spam .wpcf7-response-output,
.wpcf7 form.fc-sin-respuesta .wpcf7-response-output {
	border-color: #FECDD3;
	background: #FFF1F2;
	color: var(--fc-coral-600);
}

/* 9. Calculadora de precios ------------------------------------------------ */

/* Portada clara seguida de una sección blanca (p. ej. «Precios»): el degradado
   de la portada acaba en blanco, así que la sección empieza sin su margen
   superior y no queda un hueco entre las dos. */
.fc-hero--claro + .fc-seccion--blanco {
	padding-top: 0;
}

/* Campo del número de empleados: sin las flechas del navegador (ya hay − / +). */
.fc-numero {
	-moz-appearance: textfield;
	appearance: textfield;
}

.fc-numero::-webkit-inner-spin-button,
.fc-numero::-webkit-outer-spin-button {
	margin: 0;
	-webkit-appearance: none;
}

.fc-rango {
	height: 1.5rem;
	background: transparent;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
}

.fc-rango::-webkit-slider-runnable-track {
	height: .375rem;
	border-radius: 9999px;
	background: linear-gradient(90deg, #fff var(--fc-progreso, 2%), rgba(255, 255, 255, .25) var(--fc-progreso, 2%));
}

.fc-rango::-moz-range-track {
	height: .375rem;
	border-radius: 9999px;
	background: rgba(255, 255, 255, .25);
}

.fc-rango::-moz-range-progress {
	height: .375rem;
	border-radius: 9999px;
	background: #fff;
}

.fc-rango::-webkit-slider-thumb {
	width: 1.375rem;
	height: 1.375rem;
	margin-top: -.5rem;
	border: 4px solid var(--fc-marca);
	border-radius: 9999px;
	background: #fff;
	box-shadow: 0 2px 8px rgba(7, 19, 42, .35);
	-webkit-appearance: none;
	appearance: none;
}

.fc-rango::-moz-range-thumb {
	width: 1rem;
	height: 1rem;
	border: 4px solid var(--fc-marca);
	border-radius: 9999px;
	background: #fff;
}

/* 10. Vídeo (fachada de YouTube) ------------------------------------------- */

.fc-video iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

/* 11. reCAPTCHA: insignia oculta, aviso en cada formulario ------------------ */

.grecaptcha-badge {
	visibility: hidden;
}

.fc-form .fc-recaptcha {
	margin-top: .875rem;
	color: #94A3B8;
	font-size: .75rem;
	line-height: 1.5;
	text-align: center;
}

.fc-form .fc-recaptcha a {
	text-decoration: underline;
	text-underline-offset: 2px;
}

/* 12. Enlaces legales del pie separados por «·», como en la web anterior -- */

.fc-menu-legal li + li::before {
	content: "·";
	margin-right: .5rem;
	color: rgba(255, 255, 255, .4);
}

/* En móvil no caben en una línea: uno debajo de otro, sin «·» sueltos al
   principio de las líneas. */
@media (max-width: 767px) {
	.fc-menu-legal {
		flex-direction: column;
		align-items: center;
	}

	.fc-menu-legal li + li::before {
		content: none;
	}
}


/* 13. Formularios del área de cliente -------------------------------------- */

.fc-form label.fc-check {
	display: inline-flex;
	color: var(--fc-gris);
	font-weight: 400;
}

/* 14. Pie: un solo azul noche (el de la franja del Kit Digital de la web
   anterior) de arriba abajo, con un brillo suave solo en la parte alta
   para que no haya corte de color con la franja. ------------------------ */

.fc-pie {
	background:
		radial-gradient(48rem 22rem at 12% 0%, rgba(0, 97, 254, .22), transparent 70%),
		#0F1E31;
}

/* 15. Llegar al formulario de demo y barra fija del móvil ----------------- */

/* Al bajar a la tarjeta del formulario, que no quede tapada por la cabecera. */
.fc-tarjeta-formulario {
	scroll-margin-top: calc(var(--fc-cabecera-alto) + 1rem);
}

/* Con la barra del formulario de demo visible (móvil), el botón de
   WhatsApp sube y el final de la página no queda tapado. */
@media (max-width: 1023.98px) {
	.fc-con-barra {
		padding-bottom: 4.5rem;
	}

	.fc-con-barra .fc-whatsapp {
		bottom: 5.75rem;
	}
}
