/*
 * Respiración Completa · Formación
 * Se apoya en las variables y piezas del tema (rc-*).
 */

.rcf {
	--rcf-blanco: #fff;
	--rcf-error: #b3261e;
	--rcf-ok: #4f6b3a;
	--rcf-sombra: 0 1px 2px rgba(60, 69, 53, .06), 0 8px 28px rgba(60, 69, 53, .06);
	--rcf-pegado: calc(var(--alto-cabecera, 5.25rem) + 1.5rem);
}

.rcf-icono {
	display: inline-block;
	flex: none;
	width: 1.15em;
	height: 1.15em;
	vertical-align: -.2em;
}

.rcf [hidden] {
	display: none !important;
}

/* ------------------------------------------------------------------
   Piezas comunes
------------------------------------------------------------------ */

.rcf-migas {
	margin: 0 0 1.5rem;
	font: 400 .7rem/1.4 var(--sans);
	letter-spacing: .22em;
	text-transform: uppercase;
}

.rcf-migas a {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	color: var(--suave);
	text-decoration: none;
	transition: color .2s ease;
}

.rcf-migas a:hover {
	color: var(--terracota);
}

.rcf-nota {
	margin: .4rem 0 0;
	font-size: .84rem;
	line-height: 1.55;
	color: var(--suave);
}

.rcf-enlace-texto {
	padding: 0;
	border: 0;
	background: none;
	font: inherit;
	font-size: .84rem;
	color: var(--oliva);
	text-decoration: underline;
	text-decoration-color: var(--linea);
	text-underline-offset: .2em;
	cursor: pointer;
	transition: color .2s ease, text-decoration-color .2s ease;
}

.rcf-enlace-texto:hover {
	color: var(--terracota);
	text-decoration-color: currentColor;
}

.rcf-enlace-texto--peligro {
	color: var(--rcf-error);
}

.rcf-aviso {
	margin: .2rem 0 0;
}

.rc-aviso--ok {
	border-left-color: var(--hoja);
}

.rcf-boton--ancho {
	width: 100%;
	padding-block: 1.2rem;
}

.rcf-boton--claro {
	background: var(--beige);
}

.rcf-boton--claro:hover {
	background: var(--beige-hover);
}

.rc-boton .rcf-icono {
	width: 1.05rem;
	height: 1.05rem;
}

.rc-boton[disabled] {
	opacity: .55;
	cursor: not-allowed;
}

.rcf-ocupado {
	cursor: progress !important;
	opacity: .7;
}

.rcf-ocupado .rcf-icono--candado {
	animation: rcf-latido 1s ease-in-out infinite;
}

@keyframes rcf-latido {
	50% { opacity: .35; }
}

.rcf-etiqueta {
	display: inline-block;
	padding: .2rem .55rem;
	border-radius: 2px;
	background: var(--crema);
	font: 400 .62rem/1.4 var(--sans);
	letter-spacing: .14em;
	text-transform: uppercase;
	vertical-align: middle;
	color: var(--oliva);
}

.rcf-seguro {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: .45rem;
	margin: .9rem 0 0;
	font-size: .78rem;
	color: var(--suave);
}

/* Campos */
.rcf-form .rc-campo input {
	background: var(--rcf-blanco);
}

.rcf-clave {
	position: relative;
	display: block;
}

.rcf-clave input {
	padding-right: 3rem !important;
}

.rcf-clave__ver {
	position: absolute;
	top: 50%;
	right: .55rem;
	display: grid;
	place-items: center;
	width: 2.1rem;
	height: 2.1rem;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: none;
	color: var(--suave);
	cursor: pointer;
	transform: translateY(-50%);
	transition: color .2s ease, background-color .2s ease;
}

.rcf-clave__ver:hover,
.rcf-clave__ver[aria-pressed="true"] {
	background: var(--crema);
	color: var(--oliva);
}

.rcf-error input,
.rcf-error.rc-check input {
	border-color: var(--rcf-error) !important;
	outline: 1px solid var(--rcf-error);
	outline-offset: 0;
}

.rcf-error.rc-check span {
	color: var(--rcf-error);
}

/* Progreso */
.rcf-barra {
	position: relative;
	height: 4px;
	overflow: hidden;
	border-radius: 2px;
	background: var(--linea);
}

.rcf-barra span {
	position: absolute;
	inset: 0 auto 0 0;
	border-radius: 2px;
	background: linear-gradient(90deg, var(--franja), var(--hoja));
	transition: width .6s cubic-bezier(.2, .7, .2, 1);
}

.rcf-progreso__texto {
	margin: 0 0 .6rem;
	font-size: .88rem;
	color: var(--suave);
}

.rcf-progreso__texto strong {
	font: 500 1.5rem/1 var(--serif);
	color: var(--oliva);
}

.rcf-progreso--mini .rcf-progreso__texto {
	font-size: .8rem;
}

.rcf-progreso--mini .rcf-progreso__texto strong {
	font: 400 .85rem/1 var(--sans);
}

.rcf-progreso__botones {
	display: flex;
	flex-wrap: wrap;
	gap: .7rem;
	margin: 1.3rem 0 0;
}

/* ------------------------------------------------------------------
   Catálogo
------------------------------------------------------------------ */

.rcf-intro {
	padding-bottom: clamp(2.5rem, 5vw, 3.5rem);
}

.rcf-intro .rc-cabezal {
	margin-bottom: 0;
}

.rcf-intro .rc-titulo {
	font-size: clamp(2.6rem, 5vw, 4rem);
}

.rcf-cursos {
	border-top: 1px solid var(--linea);
}

/*
 * Rejilla según cuántos cursos haya: filas de tres y la última fila repartida
 * a todo el ancho (1 curso: entero; 2: mitades; 4: tres + uno entero;
 * 5: tres + dos mitades…). Seis columnas para poder repartir así.
 */
@media (min-width: 901px) {
	.rc-servicios.rcf-cursos {
		grid-template-columns: repeat(6, minmax(0, 1fr));
	}

	.rcf-cursos > .rcf-curso {
		grid-column: span 2;
	}

	.rcf-cursos > .rcf-curso:nth-child(3n+1):last-child {
		grid-column: span 6;
	}

	.rcf-cursos > .rcf-curso:nth-child(3n+1):nth-last-child(2),
	.rcf-cursos > .rcf-curso:nth-child(3n+2):last-child {
		grid-column: span 3;
	}

	/* Filas siguientes: la misma línea fina que separa las columnas. */
	.rcf-cursos > .rcf-curso:nth-child(n+4) {
		border-top: 1px solid rgba(255, 255, 255, .55);
	}

	/* Un curso a todo el ancho: algo menos alto, para que la foto no se agigante. */
	.rcf-cursos > .rcf-curso:nth-child(3n+1):last-child {
		min-height: clamp(34rem, 72vh, 46rem);
	}

	.rcf-cursos > .rcf-curso:nth-child(3n+1):last-child .rc-servicio__foto:not(.rc-servicio__foto--baja) {
		object-position: center 35%;
	}
}

.rcf-curso {
	--fondo: linear-gradient(180deg, #ebe6dc 0%, #d9d0bf 55%, #b9ab92 100%);
}

.rcf-curso:nth-child(2n) {
	--fondo: linear-gradient(180deg, #e8e6dd 0%, #d5d7ca 50%, #a0a88e 100%);
}

.rcf-curso .rc-servicio__texto {
	max-width: 26rem;
}

.rcf-curso__precio {
	margin: 0;
	font: 400 .72rem/1.4 var(--sans);
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--oliva);
}

/* Ventana */
.rcf-datos {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem 1.6rem;
	margin: -.2rem 0 1.6rem;
	padding: 0;
	list-style: none;
	font-size: .86rem;
	color: var(--suave);
}

.rcf-datos li {
	display: inline-flex;
	align-items: center;
	gap: .45rem;
}

.rcf-datos .rcf-icono {
	color: var(--terracota);
}

.rcf-detalle__texto > :last-child {
	margin-bottom: 0;
}

.rcf-detalle__incluye {
	margin-top: 1.5rem;
}

.rcf-planes {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr));
	gap: 1rem;
	margin: 2rem 0 0;
}

.rcf-plan {
	padding: 1.4rem 1.5rem;
	border: 1px solid var(--linea);
	background: var(--rcf-blanco);
}

.rcf-plan p {
	margin: 0;
}

.rcf-plan__nombre {
	font: 400 .66rem/1.4 var(--sans);
	letter-spacing: .24em;
	text-transform: uppercase;
	color: var(--oliva);
}

.rcf-plan__precio {
	margin: .45rem 0 .3rem !important;
	font: 500 2.4rem/1 var(--serif);
	color: var(--oliva);
}

.rcf-plan__precio span {
	font-size: 1.1rem;
	color: var(--suave);
}

.rcf-plan__nota {
	font-size: .82rem;
	color: var(--suave);
}

.rcf-detalle .rc-detalle__botones {
	margin-top: 1.8rem;
}

.rcf-detalle__iva {
	margin: .9rem 0 0;
	font-size: .75rem;
	color: var(--suave);
}

/* Acceso */
.rcf-acceso {
	background: var(--papel);
	border-top: 1px solid var(--linea);
}

.rcf-acceso--sola {
	min-height: calc(100vh - var(--alto-cabecera, 5.25rem) - 10rem);
}

.rcf-acceso__caja {
	max-width: 30rem;
	margin: 0 auto;
	text-align: center;
}

.rcf-acceso__caja .rc-titulo {
	font-size: clamp(2rem, 3.4vw, 2.6rem);
}

.rcf-acceso__texto {
	margin: 0 auto 1.8rem;
	color: var(--suave);
}

.rcf-acceso .rc-form {
	text-align: left;
}

.rcf-acceso .rc-form > p {
	margin: 0;
}

.rcf-acceso__olvido {
	text-align: center;
}

.rcf-acceso .rc-form__envio .rc-boton {
	margin-left: auto;
}

.rcf-accesos {
	display: grid;
	gap: .5rem;
	margin: 0 0 1.6rem;
	padding: 0;
	list-style: none;
}

.rcf-accesos a {
	display: flex;
	align-items: center;
	gap: .7rem;
	padding: .9rem 1.1rem;
	border: 1px solid var(--linea);
	background: var(--rcf-blanco);
	color: var(--oliva);
	text-align: left;
	text-decoration: none;
	transition: border-color .2s ease;
}

.rcf-accesos a:hover {
	border-color: var(--terracota);
}

.rcf-acceso__botones {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 1rem 1.5rem;
}

.rcf-vacio .rc-texto {
	text-align: center;
}

/* ------------------------------------------------------------------
   Pago
------------------------------------------------------------------ */

.rcf-pago {
	padding-top: clamp(2.5rem, 5vw, 3.5rem);
}

.rcf-pago__rejilla {
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(0, .9fr);
	gap: clamp(2rem, 5vw, 4.5rem);
	align-items: start;
}

.rcf-pago__form {
	gap: 0;
}

.rcf-pago__cabecera .rc-titulo {
	margin-bottom: 1.8rem;
	font-size: clamp(2.3rem, 4.2vw, 3.3rem);
}

.rcf-paso {
	display: grid;
	gap: .8rem;
	min-width: 0;
	margin: 0 0 2rem;
	padding: 0 0 2rem;
	border: 0;
	border-bottom: 1px solid var(--linea);
}

.rcf-paso:last-child {
	margin-bottom: 0;
	padding-bottom: 0;
	border-bottom: 0;
}

.rcf-paso__titulo {
	display: flex;
	align-items: center;
	gap: .75rem;
	margin: 0 0 .6rem;
	padding: 0;
	font: 500 1.45rem/1.2 var(--serif);
	color: var(--oliva);
}

.rcf-paso__titulo span {
	display: grid;
	place-items: center;
	width: 1.9rem;
	height: 1.9rem;
	border: 1px solid var(--oliva);
	border-radius: 50%;
	font: 400 .8rem/1 var(--sans);
}

.rcf-sesion-actual {
	margin: 0;
	padding: .9rem 1.1rem;
	background: var(--papel);
	font-size: .9rem;
}

.rcf-cuenta-nueva,
.rcf-entrar-pago {
	display: grid;
	gap: .8rem;
}

.rcf-entrar-pago {
	padding: 1.2rem;
	border: 1px solid var(--linea);
	background: var(--papel);
}

.rcf-entrar-pago p {
	margin: 0;
}

.rcf-entrar-pago__botones {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .8rem 1.3rem;
}

/* Plan */
.rcf-opciones {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: .8rem;
}

.rcf-opcion {
	position: relative;
	cursor: pointer;
}

.rcf-opcion input {
	position: absolute;
	opacity: 0;
}

.rcf-opcion__caja {
	display: grid;
	gap: .25rem;
	height: 100%;
	padding: 1.1rem 1.2rem 1.1rem 2.9rem;
	border: 1px solid var(--linea);
	background: var(--rcf-blanco);
	transition: border-color .2s ease, box-shadow .2s ease;
}

.rcf-opcion__caja::before {
	content: "";
	position: absolute;
	top: 1.25rem;
	left: 1.1rem;
	width: 1rem;
	height: 1rem;
	border: 1px solid var(--suave);
	border-radius: 50%;
	background: var(--rcf-blanco);
	transition: border .2s ease;
}

.rcf-opcion input:checked + .rcf-opcion__caja {
	border-color: var(--oliva);
	box-shadow: inset 0 0 0 1px var(--oliva);
}

.rcf-opcion input:checked + .rcf-opcion__caja::before {
	border: 5px solid var(--oliva);
}

.rcf-opcion input:focus-visible + .rcf-opcion__caja {
	outline: 1px solid var(--terracota);
	outline-offset: 3px;
}

.rcf-opcion__nombre {
	font: 400 .66rem/1.4 var(--sans);
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--oliva);
}

.rcf-opcion__precio {
	font: 500 1.7rem/1.1 var(--serif);
	color: var(--oliva);
}

.rcf-opcion__precio small {
	font-size: .95rem;
	color: var(--suave);
}

.rcf-opcion__nota {
	font-size: .8rem;
	line-height: 1.45;
	color: var(--suave);
}

/* Cupón */
.rcf-cupon summary {
	display: inline-block;
	font-size: .86rem;
	color: var(--oliva);
	text-decoration: underline;
	text-decoration-color: var(--linea);
	text-underline-offset: .2em;
	cursor: pointer;
	list-style: none;
}

.rcf-cupon summary::-webkit-details-marker {
	display: none;
}

.rcf-cupon[open] summary {
	margin-bottom: .7rem;
}

.rcf-cupon__fila {
	display: flex;
	gap: .6rem;
}

.rcf-cupon__fila .rc-campo {
	flex: 1;
}

.rcf-cupon__fila input {
	text-transform: uppercase;
	letter-spacing: .08em;
}

.rcf-cupon__fila .rc-boton {
	padding-inline: 1.4rem;
}

/* Stripe */
.rcf-stripe {
	min-height: 5rem;
	padding: 1.2rem;
	border: 1px solid var(--linea);
	background: var(--rcf-blanco);
}

.rcf-cargando {
	margin: 0;
	font-size: .86rem;
	color: var(--suave);
}

.rcf-gratis {
	margin: 0;
	padding: 1rem 1.2rem;
	background: rgba(107, 117, 86, .09);
	color: var(--oliva);
}

.rcf-legal {
	display: grid;
	gap: .2rem;
	margin-top: .4rem;
}

.rcf-legal .rc-check {
	margin: 0;
}

/* Resumen */
.rcf-resumen {
	position: sticky;
	top: var(--rcf-pegado);
}

.rcf-resumen__caja {
	overflow: hidden;
	background: var(--papel);
	box-shadow: var(--rcf-sombra);
}

.rcf-resumen__foto {
	display: block;
	width: 100%;
	height: 17rem;
	padding: 1.2rem 1.2rem 0;
	background: var(--crema);
	object-fit: contain;
	object-position: center bottom;
}

.rcf-resumen__cuerpo {
	padding: 1.8rem 1.9rem 2rem;
}

.rcf-resumen__cuerpo .rc-antetitulo {
	margin-bottom: .5rem;
}

.rcf-resumen__titulo {
	margin: 0 0 1.4rem;
	font: 500 2rem/1.1 var(--serif);
	color: var(--oliva);
}

.rcf-resumen__lineas {
	margin: 0;
}

.rcf-resumen__lineas > div {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	padding: .75rem 0;
	border-top: 1px solid var(--linea);
	font-size: .92rem;
}

.rcf-resumen__lineas dt,
.rcf-resumen__lineas dd {
	margin: 0;
}

.rcf-resumen__descuento dd {
	color: var(--rcf-ok);
}

.rcf-resumen__total {
	align-items: baseline;
}

.rcf-resumen__total dt {
	font: 400 .7rem/1.4 var(--sans);
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--oliva);
}

.rcf-resumen__total dd {
	font: 500 2rem/1 var(--serif);
	color: var(--oliva);
}

.rcf-resumen__nota {
	margin: .3rem 0 0;
	font-size: .82rem;
	line-height: 1.5;
	color: var(--suave);
}

.rcf-resumen__iva {
	margin: .2rem 0 0;
	font-size: .75rem;
	color: var(--suave);
}

.rcf-resumen__incluye {
	display: grid;
	gap: .55rem;
	margin: 1.4rem 0 0;
	padding: 1.3rem 0 0;
	border-top: 1px solid var(--linea);
	list-style: none;
	font-size: .86rem;
	line-height: 1.5;
}

.rcf-resumen__incluye li {
	display: flex;
	gap: .55rem;
}

.rcf-resumen__incluye .rcf-icono {
	margin-top: .15em;
	color: var(--hoja);
}

/* ------------------------------------------------------------------
   Cabecera del área privada (curso y cuenta)
------------------------------------------------------------------ */

.rcf-cabecera {
	padding: clamp(2.2rem, 5vw, 3.5rem) 0 clamp(2rem, 4vw, 3rem);
	border-bottom: 1px solid var(--linea);
	background: var(--papel);
}

.rcf-cabecera .rc-titulo {
	margin-bottom: .6rem;
	font-size: clamp(2.3rem, 4.4vw, 3.4rem);
}

.rcf-cabecera .rc-aviso {
	margin-bottom: 1.5rem;
}

.rcf-cabecera__rejilla {
	display: grid;
	grid-template-columns: minmax(0, 1.3fr) minmax(16rem, 1fr);
	gap: 2rem clamp(2rem, 6vw, 5rem);
	align-items: end;
}

.rcf-cabecera .rcf-progreso {
	padding: 1.4rem 1.5rem;
	background: var(--rcf-blanco);
	box-shadow: var(--rcf-sombra);
}

/* Temario */
.rcf-temario {
	padding-top: clamp(2.5rem, 5vw, 3.5rem);
}

.rcf-temario .rc-subtitulo {
	margin-top: 0;
}

.rcf-sesiones {
	display: grid;
	gap: .8rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.rcf-sesion__enlace {
	display: grid;
	grid-template-columns: 10.5rem minmax(0, 1fr) auto;
	gap: 1.4rem;
	align-items: center;
	padding: .8rem 1.4rem .8rem .8rem;
	border: 1px solid var(--linea);
	background: var(--rcf-blanco);
	color: inherit;
	text-decoration: none;
	transition: border-color .25s ease, box-shadow .25s ease, transform .25s ease;
}

a.rcf-sesion__enlace:hover {
	border-color: var(--franja);
	box-shadow: var(--rcf-sombra);
	transform: translateY(-1px);
}

.rcf-sesion__media {
	position: relative;
	display: block;
}

.rcf-sesion__img {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	background: var(--crema);
}

.rcf-sesion__img--vacia {
	background: linear-gradient(135deg, var(--crema), var(--beige));
}

.rcf-sesion__num {
	position: absolute;
	top: .45rem;
	left: .45rem;
	display: grid;
	place-items: center;
	min-width: 1.8rem;
	height: 1.8rem;
	padding: 0 .4rem;
	border-radius: 1rem;
	background: rgba(247, 244, 238, .92);
	font: 400 .75rem/1 var(--sans);
	color: var(--oliva);
}

.rcf-sesion__texto {
	display: grid;
	gap: .35rem;
	min-width: 0;
}

.rcf-sesion__titulo {
	font: 500 1.35rem/1.25 var(--serif);
	color: var(--oliva);
}

.rcf-sesion__datos {
	display: flex;
	flex-wrap: wrap;
	gap: .3rem 1.1rem;
	font-size: .8rem;
	color: var(--suave);
}

.rcf-sesion__datos span {
	display: inline-flex;
	align-items: center;
	gap: .35rem;
}

.rcf-sesion__estado {
	display: inline-flex;
	align-items: center;
	gap: .45rem;
	font: 400 .66rem/1.3 var(--sans);
	letter-spacing: .16em;
	text-transform: uppercase;
	white-space: nowrap;
	color: var(--oliva);
}

.rcf-sesion--hecha .rcf-sesion__estado {
	color: var(--rcf-ok);
}

.rcf-sesion--hecha .rcf-sesion__num {
	background: var(--hoja);
	color: #fff;
}

.rcf-sesion--cerrada .rcf-sesion__enlace {
	background: transparent;
	cursor: not-allowed;
}

.rcf-sesion--cerrada .rcf-sesion__media,
.rcf-sesion--cerrada .rcf-sesion__titulo {
	opacity: .55;
}

.rcf-sesion--cerrada .rcf-sesion__estado {
	color: var(--suave);
	text-transform: none;
	letter-spacing: 0;
	font-size: .8rem;
}

/* ------------------------------------------------------------------
   Sesión
------------------------------------------------------------------ */

.rcf-leccion {
	padding: clamp(2rem, 4vw, 3rem) 0 clamp(4rem, 8vw, 6rem);
}

.rcf-leccion__rejilla {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 20rem;
	gap: clamp(2rem, 4vw, 3.5rem);
	align-items: start;
}

.rcf-video {
	position: relative;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: #1d211a;
	box-shadow: var(--rcf-sombra);
}

.rcf-video__medio {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
	object-fit: contain;
	background: #1d211a;
}

.rcf-video--imagen {
	background: var(--crema);
}

.rcf-video--imagen .rcf-video__medio {
	object-fit: contain;
	background: var(--crema);
}

.rcf-video__externo {
	position: absolute;
	inset: 0;
	display: grid;
	place-items: center;
	margin: 0;
}

.rcf-leccion__cabecera {
	margin-top: 2rem;
}

.rcf-leccion__cabecera .rc-antetitulo {
	margin-bottom: .6rem;
}

.rcf-leccion__cabecera .rc-titulo {
	font-size: clamp(2rem, 3.6vw, 2.8rem);
}

.rcf-leccion__texto {
	max-width: 44rem;
}

.rcf-materiales {
	margin: 2rem 0 0;
}

.rcf-materiales ul {
	display: grid;
	gap: .5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.rcf-materiales a {
	display: flex;
	align-items: center;
	gap: .8rem;
	padding: .9rem 1.1rem;
	border: 1px solid var(--linea);
	background: var(--rcf-blanco);
	color: var(--oliva);
	text-decoration: none;
	transition: border-color .2s ease;
}

.rcf-materiales a:hover {
	border-color: var(--terracota);
}

.rcf-materiales__nombre {
	flex: 1;
	min-width: 0;
	overflow-wrap: anywhere;
}

.rcf-materiales__tamano {
	font-size: .75rem;
	color: var(--suave);
	white-space: nowrap;
}

.rcf-leccion__acciones {
	display: flex;
	flex-wrap: wrap;
	gap: .7rem;
	margin: 2.2rem 0 .8rem;
}

.rcf-completar {
	background: var(--rcf-blanco);
	box-shadow: inset 0 0 0 1px var(--oliva);
}

.rcf-completar:hover {
	background: var(--papel);
}

.rcf-completar--hecha,
.rcf-completar--hecha:hover {
	background: var(--hoja);
	box-shadow: none;
	color: #fff;
}

.rcf-leccion__nav {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	margin-top: 2.5rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--linea);
}

.rcf-leccion__paso {
	display: grid;
	gap: .3rem;
	max-width: 48%;
	color: var(--oliva);
	text-decoration: none;
}

.rcf-leccion__paso small {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	font: 400 .66rem/1.4 var(--sans);
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--suave);
}

.rcf-leccion__paso span {
	font: 500 1.2rem/1.25 var(--serif);
	transition: color .2s ease;
}

.rcf-leccion__paso:hover span {
	color: var(--terracota);
}

.rcf-leccion__paso--siguiente {
	margin-left: auto;
	text-align: right;
}

.rcf-leccion__paso--siguiente small {
	justify-content: flex-end;
}

.rcf-leccion__lateral {
	position: sticky;
	top: var(--rcf-pegado);
}

.rcf-leccion__lateral-caja {
	padding: 1.5rem;
	background: var(--papel);
}

.rcf-leccion__lateral-caja .rc-antetitulo {
	margin-bottom: .8rem;
}

.rcf-temario-mini {
	display: grid;
	gap: .15rem;
	max-height: calc(100vh - var(--rcf-pegado) - 12rem);
	margin: 1.2rem -.5rem 0;
	padding: 0;
	overflow-y: auto;
	list-style: none;
}

.rcf-temario-mini__item > a,
.rcf-temario-mini__item > span {
	display: flex;
	align-items: flex-start;
	gap: .7rem;
	padding: .55rem .5rem;
	font-size: .86rem;
	line-height: 1.4;
	color: var(--texto);
	text-decoration: none;
	transition: background-color .2s ease;
}

.rcf-temario-mini__item > a:hover {
	background: var(--crema);
}

.rcf-temario-mini__marca {
	position: relative;
	display: grid;
	flex: none;
	place-items: center;
	width: 1.5rem;
	height: 1.5rem;
	border: 1px solid var(--linea);
	border-radius: 50%;
	background: var(--rcf-blanco);
	font-size: .7rem;
	color: var(--suave);
}

.rcf-temario-mini__marca .rcf-icono {
	display: none;
	width: .85rem;
	height: .85rem;
}

.es-hecha .rcf-temario-mini__marca {
	border-color: var(--hoja);
	background: var(--hoja);
	color: #fff;
}

.es-hecha .rcf-temario-mini__marca .rcf-icono,
.es-cerrada .rcf-temario-mini__marca .rcf-icono {
	display: block;
}

.es-hecha .rcf-temario-mini__num,
.es-cerrada .rcf-temario-mini__num {
	display: none;
}

.es-cerrada > span {
	opacity: .55;
}

.es-actual > a {
	background: var(--rcf-blanco);
	font-weight: 400;
	color: var(--oliva);
	box-shadow: inset 2px 0 0 var(--terracota);
}

/* ------------------------------------------------------------------
   Mi cuenta
------------------------------------------------------------------ */

.rcf-cabecera--cuenta {
	padding-bottom: 0;
}

.rcf-pestanas {
	display: flex;
	gap: 1.8rem;
	margin: 2rem 0 0;
	overflow-x: auto;
	scrollbar-width: none;
}

.rcf-pestanas::-webkit-scrollbar {
	display: none;
}

.rcf-pestanas a {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	padding: .9rem 0 1rem;
	border-bottom: 2px solid transparent;
	font: 400 .7rem/1 var(--sans);
	letter-spacing: .18em;
	text-transform: uppercase;
	white-space: nowrap;
	color: var(--suave);
	text-decoration: none;
	transition: color .2s ease, border-color .2s ease;
}

.rcf-pestanas a:hover,
.rcf-pestanas a[aria-current="page"] {
	color: var(--oliva);
}

.rcf-pestanas a[aria-current="page"] {
	border-bottom-color: var(--terracota);
}

.rcf-pestanas__salir {
	margin-left: auto;
}

.rcf-cuenta {
	padding-top: clamp(2.5rem, 5vw, 3.5rem);
}

.rcf-caja-cuenta {
	display: grid;
	gap: 1rem;
	align-content: start;
	padding: clamp(1.5rem, 3vw, 2.2rem);
	background: var(--papel);
}

.rcf-caja-cuenta .rc-subtitulo {
	margin: 0 0 .4rem;
}

.rcf-caja-cuenta > p {
	margin: 0;
}

.rcf-caja-cuenta .rc-boton {
	justify-self: start;
}

.rcf-cuenta__rejilla {
	display: grid;
	grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
	gap: 1.5rem;
	align-items: start;
}

.rcf-campos {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: .9rem 1rem;
}

.rcf-campo {
	display: grid;
	gap: .35rem;
}

.rcf-campo--ancho {
	grid-column: 1 / -1;
}

.rcf-campo__etiqueta {
	font: 400 .64rem/1.4 var(--sans);
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--oliva);
}

.rcf-campo__etiqueta small {
	letter-spacing: 0;
	text-transform: none;
	color: var(--suave);
}

.rcf-vacio-caja {
	padding: clamp(2.5rem, 6vw, 4rem) 1.5rem;
	background: var(--papel);
	text-align: center;
}

/* Mis cursos */
.rcf-mis-cursos {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 22rem), 1fr));
	gap: 1.5rem;
}

.rcf-mi-curso {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	background: var(--rcf-blanco);
	box-shadow: var(--rcf-sombra);
}

.rcf-mi-curso__foto {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.rcf-mi-curso__cuerpo {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: 1.5rem 1.6rem 1.7rem;
}

.rcf-mi-curso__cuerpo .rc-antetitulo {
	margin-bottom: .4rem;
}

.rcf-mi-curso__titulo {
	margin: 0 0 .4rem;
	font: 500 1.9rem/1.1 var(--serif);
	color: var(--oliva);
}

.rcf-mi-curso__estado {
	margin: 0 0 1.2rem;
	font-size: .84rem;
	color: var(--suave);
}

.rcf-mi-curso__botones {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .8rem 1.3rem;
	margin: auto 0 0;
	padding-top: 1.3rem;
}

/* Toda la tarjeta es un enlace. */
.rcf-mi-curso {
	position: relative;
	transition: box-shadow .3s ease, transform .3s ease;
}

.rcf-mi-curso:has(.rcf-mi-curso__enlace):hover {
	box-shadow: 0 2px 4px rgba(60, 69, 53, .08), 0 14px 36px rgba(60, 69, 53, .12);
	transform: translateY(-2px);
}

.rcf-mi-curso__enlace {
	color: inherit;
	text-decoration: none;
}

.rcf-mi-curso__enlace::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}

.rcf-mi-curso__enlace:focus-visible {
	outline: none;
}

.rcf-mi-curso:has(.rcf-mi-curso__enlace:focus-visible) {
	outline: 1px solid var(--terracota);
	outline-offset: 4px;
}

.rcf-mi-curso__extra {
	position: relative;
	z-index: 2;
}

.rcf-mi-curso__media {
	position: relative;
	height: 19rem;
	padding: 1.4rem 1.4rem 0;
	overflow: hidden;
	background: var(--crema);
}

.rcf-mi-curso--sin .rcf-mi-curso__media {
	background: #ebe7df;
}

.rcf-mi-curso__foto {
	transition: filter .5s ease, transform 1.2s cubic-bezier(.2, .7, .2, 1);
}

.rcf-mi-curso:hover .rcf-mi-curso__foto {
	transform: scale(1.03);
}

/* Sin acceso: en gris hasta pasar el cursor. */
.rcf-mi-curso--sin {
	background: var(--papel);
}

.rcf-mi-curso--sin .rcf-mi-curso__foto {
	filter: grayscale(1) contrast(.9);
	opacity: .75;
}

.rcf-mi-curso--sin:hover .rcf-mi-curso__foto {
	filter: grayscale(.2);
	opacity: 1;
}

.rcf-mi-curso--sin .rcf-mi-curso__titulo,
.rcf-mi-curso--sin .rc-antetitulo {
	color: var(--suave);
}

.rcf-mi-curso--sin:hover .rcf-mi-curso__titulo {
	color: var(--oliva);
}

.rcf-mi-curso--sin .rc-boton {
	background: var(--beige);
}

.rcf-mi-curso--sin:hover .rc-boton {
	background: var(--boton);
}

.rcf-mi-curso__sello {
	position: absolute;
	top: .9rem;
	left: .9rem;
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	padding: .35rem .7rem;
	background: rgba(247, 244, 238, .92);
	font: 400 .62rem/1.3 var(--sans);
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--oliva);
}

.rcf-mi-curso__resumen {
	margin: 0;
	font-size: .88rem;
	line-height: 1.55;
	color: var(--suave);
}

/* Métodos de pago */
.rcf-metodos {
	max-width: 44rem;
}

.rcf-metodos__lista {
	display: grid;
	gap: .6rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.rcf-metodo {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .8rem 1rem;
	padding: 1rem 1.2rem;
	border: 1px solid var(--linea);
	background: var(--rcf-blanco);
}

.rcf-metodo--defecto {
	border-color: var(--franja);
}

.rcf-metodo__icono {
	color: var(--oliva);
	font-size: 1.4rem;
}

.rcf-metodo__texto {
	flex: 1;
	min-width: 10rem;
}

.rcf-metodo__texto small {
	display: block;
	font-size: .78rem;
	color: var(--suave);
}

.rcf-metodo__acciones {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .6rem 1.1rem;
}

.rcf-metodo-nuevo {
	display: grid;
	gap: .8rem;
}

.rcf-metodo-nuevo p {
	margin: 0;
}

.rcf-metodo-nuevo__botones {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1rem;
}

/* Pagos */
.rcf-tabla-envoltura {
	overflow-x: auto;
}

.rcf-tabla {
	width: 100%;
	border-collapse: collapse;
	font-size: .9rem;
}

.rcf-tabla th {
	padding: 0 .8rem .7rem 0;
	border-bottom: 1px solid var(--linea);
	font: 400 .64rem/1.4 var(--sans);
	letter-spacing: .16em;
	text-align: left;
	text-transform: uppercase;
	color: var(--oliva);
}

.rcf-tabla td {
	padding: .85rem .8rem .85rem 0;
	border-bottom: 1px solid var(--linea);
	vertical-align: top;
}

.rcf-descarga {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	color: var(--oliva);
	white-space: nowrap;
}

/* Suscripciones */
.rcf-suscripciones {
	display: grid;
	gap: .6rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.rcf-suscripcion {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1.1rem 1.3rem;
	border: 1px solid var(--linea);
	background: var(--rcf-blanco);
}

.rcf-suscripcion p {
	margin: 0;
}

.rcf-suscripcion__titulo {
	font: 500 1.35rem/1.2 var(--serif);
	color: var(--oliva);
}

.rcf-suscripcion__estado {
	font-size: .84rem;
	color: var(--suave);
}

/* ------------------------------------------------------------------
   Pantallas medianas y pequeñas
------------------------------------------------------------------ */

@media (max-width: 1000px) {
	.rcf-leccion__rejilla {
		grid-template-columns: minmax(0, 1fr);
	}

	.rcf-leccion__lateral {
		position: static;
	}

	.rcf-temario-mini {
		max-height: none;
	}
}

@media (max-width: 900px) {
	.rcf-cursos {
		grid-template-columns: minmax(0, 1fr);
	}

	.rcf-pago__rejilla {
		grid-template-columns: minmax(0, 1fr);
	}

	/* En móvil, el resumen va primero y sin foto. */
	.rcf-resumen {
		position: static;
		order: -1;
	}

	.rcf-resumen__foto,
	.rcf-resumen__incluye {
		display: none;
	}

	.rcf-cabecera__rejilla,
	.rcf-cuenta__rejilla {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (max-width: 640px) {
	.rcf-opciones,
	.rcf-campos {
		grid-template-columns: minmax(0, 1fr);
	}

	.rcf-sesion__enlace {
		grid-template-columns: 6.5rem minmax(0, 1fr);
		gap: .9rem;
		padding: .6rem;
	}

	.rcf-sesion__estado {
		grid-column: 2;
		white-space: normal;
	}

	.rcf-sesion__titulo {
		font-size: 1.15rem;
	}

	.rcf-leccion__paso {
		max-width: none;
	}

	.rcf-leccion__nav {
		flex-direction: column;
	}

	.rcf-leccion__paso--siguiente {
		margin-left: 0;
	}

	.rcf-cupon__fila {
		flex-direction: column;
	}

	.rcf-tabla thead {
		display: none;
	}

	.rcf-tabla tr {
		display: grid;
		padding: .8rem 0;
		border-bottom: 1px solid var(--linea);
	}

	.rcf-tabla td {
		display: flex;
		justify-content: space-between;
		gap: 1rem;
		padding: .2rem 0;
		border: 0;
	}

	.rcf-tabla td::before {
		content: attr(data-titulo);
		font-size: .75rem;
		color: var(--suave);
	}

	.rcf-pestanas__salir {
		margin-left: 0;
	}
}

@media (prefers-reduced-motion: reduce) {
	.rcf-barra span,
	a.rcf-sesion__enlace {
		transition: none;
	}
}

/* ------------------------------------------------------------------
   Tarjeta del modo simulación
------------------------------------------------------------------ */

.rcf-simulada {
	display: grid;
	gap: .8rem;
	padding: 1.2rem;
	border: 1px dashed var(--terracota);
	background: var(--rcf-blanco);
}

.rcf-simulada__aviso {
	display: grid;
	gap: .2rem;
	margin: 0;
	padding: .7rem .9rem;
	background: rgba(192, 116, 63, .08);
	font-size: .82rem;
	color: var(--oliva);
}

.rcf-simulada__aviso span {
	color: var(--suave);
}

.rcf-simulada__aviso code {
	font-size: .78rem;
	white-space: nowrap;
}

.rcf-simulada .rc-form__fila {
	margin: 0;
}

.rcf-simulada .rc-campo input {
	letter-spacing: .04em;
}

.rcf-simulada__numero {
	position: relative;
	display: block;
}

.rcf-simulada__numero input {
	padding-right: 3.5rem;
}

.rcf-simulada__marca {
	position: absolute;
	top: 50%;
	right: .9rem;
	color: var(--suave);
	transform: translateY(-50%);
}

.rcf-simulada__marca[data-marca="visa"],
.rcf-simulada__marca[data-marca="mastercard"],
.rcf-simulada__marca[data-marca="amex"] {
	color: var(--oliva);
}

.rcf-simulada__marca[data-marca]:not([data-marca="tarjeta"])::after {
	content: attr(data-marca);
	margin-left: .35rem;
	font: 400 .62rem/1 var(--sans);
	letter-spacing: .12em;
	text-transform: uppercase;
	vertical-align: middle;
}

.rcf-metodo-nuevo .rcf-simulada {
	max-width: 30rem;
}

/* ==================================================================
   Modalidad (online, semipresencial, presencial), gratuitos y plazas
================================================================== */

.rcf-curso__modalidad {
	color: var(--terracota);
}

.rcf-curso__modalidad::after {
	content: " ·";
	color: var(--oliva);
}

.rcf-modalidad {
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: .88rem;
	color: var(--suave);
}

.rcf-modalidad li {
	display: flex;
	align-items: flex-start;
	gap: .5rem;
	line-height: 1.45;
}

.rcf-modalidad .rcf-icono {
	flex: none;
	width: 1.05rem;
	height: 1.05rem;
	margin-top: .1rem;
	color: var(--terracota);
}

.rcf-datos--modalidad li {
	align-items: flex-start;
}

.rcf-modalidad--cabecera {
	display: flex;
	flex-wrap: wrap;
	gap: .4rem 1.5rem;
	margin-top: .8rem;
}

.rcf-resumen__modalidad {
	display: grid;
	gap: .35rem;
	margin: .2rem 0 1.1rem;
	font-size: .85rem;
}

.rcf-plan--gratis {
	border-color: var(--hoja);
}

.rcf-boton--agotado,
.rcf-boton--agotado:hover {
	border-color: var(--linea);
	background: var(--crema);
	color: var(--suave);
	cursor: not-allowed;
}

.rcf-nota--gratis {
	margin: 0 0 1.2rem;
	padding: .9rem 1.1rem;
	border-left: 2px solid var(--hoja);
	background: var(--papel);
}

.rcf-sesion__tipo {
	color: var(--terracota);
}

/* Sesión presencial */

.rcf-presencial {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: .7rem;
	padding: clamp(1.75rem, 4vw, 3rem);
	background: var(--oliva);
	color: var(--crema);
	box-shadow: var(--rcf-sombra);
}

.rcf-presencial p {
	margin: 0;
}

.rcf-presencial__etiqueta {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	font: 400 .75rem/1 var(--sans);
	letter-spacing: .2em;
	text-transform: uppercase;
	opacity: .85;
}

.rcf-presencial__etiqueta .rcf-icono,
.rcf-presencial__botones .rcf-icono,
.rcf-directo__calendario .rcf-icono {
	width: 1.1rem;
	height: 1.1rem;
}

.rcf-presencial__cuando {
	font: italic 400 clamp(1.7rem, 3.4vw, 2.5rem)/1.1 var(--serif);
}

.rcf-presencial__cuando span {
	display: block;
	margin-top: .35rem;
	font: 300 1.05rem/1.3 var(--sans);
	font-style: normal;
	letter-spacing: .06em;
	opacity: .85;
}

.rcf-presencial__lugar {
	max-width: 34rem;
	font: 300 1rem/1.55 var(--sans);
	opacity: .9;
}

.rcf-presencial__botones {
	display: flex;
	flex-wrap: wrap;
	gap: .6rem;
	margin-top: .6rem !important;
}

.rcf-presencial .rcf-boton--claro {
	border-color: rgba(242, 238, 230, .5);
	background: transparent;
	color: var(--crema);
}

.rcf-presencial .rcf-boton--claro:hover {
	border-color: var(--crema);
	background: rgba(242, 238, 230, .1);
}

.rcf-directo__calendario {
	display: inline-flex;
	align-items: center;
	gap: .45rem;
	margin-top: .4rem;
	color: var(--crema);
	font: 400 .82rem/1 var(--sans);
	text-decoration: underline;
	text-underline-offset: .2em;
}

/* Aviso al entrar como un alumno desde el escritorio */
.rcf-suplantando {
	position: sticky;
	top: 0;
	z-index: 50;
	padding: .7rem var(--margen, 1.25rem);
	background: var(--terracota);
	color: #fff;
	font-size: .9rem;
	text-align: center;
}

.rcf-suplantando p {
	margin: 0;
}

.rcf-suplantando a {
	color: #fff;
	font-weight: 500;
}

/* Vídeo: aviso al reanudar */
.rcf-video__reanudar {
	position: absolute;
	top: 1rem;
	left: 1rem;
	margin: 0;
	padding: .45rem .8rem;
	background: rgba(29, 33, 26, .8);
	color: var(--crema);
	font-size: .82rem;
	pointer-events: none;
}

/* Pago: datos de facturación opcionales */
.rcf-facturacion {
	margin: .4rem 0 1.2rem;
}

.rcf-facturacion summary {
	cursor: pointer;
	color: var(--oliva);
	font-size: .9rem;
}

.rcf-facturacion summary span {
	color: var(--suave);
}

.rcf-facturacion[open] summary {
	margin-bottom: .9rem;
}

/* Lista de espera */
.rcf-espera {
	margin: 1.5rem 0;
	padding: 1.25rem 1.4rem;
	border: 1px solid var(--linea);
	background: var(--rcf-blanco);
}

.rcf-espera__texto {
	margin: 0 0 .9rem;
	color: var(--oliva);
}

.rcf-espera .rc-boton {
	margin-top: .6rem;
}

.rcf-detalle__espera .rcf-espera {
	margin-bottom: 0;
}

/* Privacidad */
.rcf-boton--peligro,
.rcf-boton--peligro:hover {
	background: #b3261e;
	color: #fff;
}

.rcf-baja {
	border-color: #e8c4c1;
}
