@import url("https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@300;400;500;600;700;800&display=swap");

.lcdf-wizard-host,
.lcdf-info-grid {
	--lcdf-blue: #039aff;
	--lcdf-blue-dark: #0279c9;
	--lcdf-blue-rgb: 3, 154, 255;
	--lcdf-blue-dark-rgb: 2, 121, 201;
	--lcdf-soft-blue: rgba(var(--lcdf-blue-rgb), 0.08);
	--lcdf-soft-blue-strong: rgba(var(--lcdf-blue-rgb), 0.18);
	--lcdf-glow: 0 0 0 1px rgba(var(--lcdf-blue-rgb), 0.2),
		0 22px 40px rgba(var(--lcdf-blue-dark-rgb), 0.2);
	--lcdf-bg: #f2f5f9;
	--lcdf-white: #ffffff;
	--lcdf-text: #1f2b3a;
	--lcdf-text-soft: #4a5a6c;
	--lcdf-border: #d5e2ef;
	--lcdf-shadow: 0 18px 36px rgba(15, 33, 58, 0.12);
	font-family: "Plus Jakarta Sans", sans-serif;
	color: var(--lcdf-text);
}

.lcdf-wizard-loading {
	background: #f7fafc;
	border: 1px solid var(--lcdf-border);
	padding: 18px;
	border-radius: 14px;
	font-size: 18px;
}

.lcdf-wizard {
	background: linear-gradient(165deg, #f8fbff 0%, #edf3f9 48%, #f4f7fb 100%);
	border-radius: 16px;
	overflow: hidden;
	padding-bottom: 28px;
	box-shadow: var(--lcdf-shadow);
	scroll-margin-top: var(--lcdf-scroll-offset, 96px);
}

.lcdf-wizard * {
	box-sizing: border-box;
}

.lcdf-wizard-host {
	position: relative;
	padding-right: 0;
	--lcdf-scroll-offset: 96px;
}

.lcdf-wizard-root {
	min-width: 0;
}

.lcdf-floating-support {
	position: fixed;
	top: 14px;
	right: 14px;
	width: min(312px, calc(100vw - 28px));
	background: #ffffff;
	border: 1px solid #c6e3f8;
	border-radius: 16px;
	box-shadow: 0 16px 30px rgba(10, 66, 109, 0.18);
	padding: 12px;
	z-index: 99990;
}

body.admin-bar .lcdf-floating-support {
	top: 46px;
}

@media (max-width: 782px) {
	body.admin-bar .lcdf-floating-support {
		top: 60px;
	}
}

.lcdf-floating-support-head {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 8px;
	margin-bottom: 8px;
}

.lcdf-floating-support-title-wrap {
	min-width: 0;
}

.lcdf-floating-support-title {
	margin: 0;
	font-size: 14px;
	font-weight: 800;
	color: #1c4d72;
}

.lcdf-floating-support .lcdf-madrid-time {
	margin-top: 6px;
	padding: 6px 10px;
	font-size: 12px;
}

.lcdf-floating-support-agent {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 8px;
}

.lcdf-floating-support-avatar {
	width: 42px;
	height: 42px;
	border-radius: 50%;
	object-fit: cover;
	border: 1px solid #b7d8f2;
	background: #e7f3ff;
	color: #16517d;
	font-weight: 800;
	display: inline-grid;
	place-items: center;
	flex: none;
}

.lcdf-floating-support-name {
	margin: 0;
	font-size: 14px;
	font-weight: 700;
	color: #163b5a;
}

.lcdf-floating-support-links {
	display: grid;
	gap: 6px;
}

.lcdf-floating-support-link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 13px;
	font-weight: 700;
	color: #0d4f7f;
	text-decoration: none;
	padding: 6px 8px;
	border-radius: 10px;
	background: #f2f9ff;
	border: 1px solid #d1e8fa;
}

.lcdf-floating-support-link:hover {
	background: #e9f5ff;
}

.lcdf-floating-support-schedule {
	margin: 8px 0 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 4px;
}

.lcdf-floating-support-schedule li,
.lcdf-floating-support-hours {
	font-size: 12px;
	font-weight: 600;
	color: #42617b;
	margin: 0;
}

.lcdf-floating-support-alert {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	margin: 10px 0 0;
	padding: 8px 10px;
	border-radius: 10px;
	border: 1px solid #b8daf5;
	background: #edf7ff;
	color: #13517e;
	font-size: 12px;
	font-weight: 700;
}

.lcdf-stepper {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	background: #edf2f7;
	border-bottom: 1px solid #d7e3f0;
}

.lcdf-stepper-mobile-meta {
	display: none;
	padding: 10px 14px;
	font-size: 14px;
	font-weight: 700;
	color: #36526b;
	background: #e9f3fb;
	border-bottom: 1px solid #d7e3f0;
}

.lcdf-progress-wrap {
	padding: 10px 14px 12px;
	background: #f3f9ff;
	border-bottom: 1px solid #d7e3f0;
}

.lcdf-progress-label {
	display: flex;
	justify-content: space-between;
	gap: 8px;
	font-size: 13px;
	font-weight: 700;
	color: #31506a;
	margin-bottom: 6px;
}

.lcdf-progress-track {
	width: 100%;
	height: 8px;
	background: #d8e7f5;
	border-radius: 999px;
	overflow: hidden;
}

.lcdf-progress-fill {
	height: 100%;
	background: linear-gradient(90deg, var(--lcdf-blue), var(--lcdf-blue-dark));
	transition: width 0.35s ease;
}

.lcdf-step {
	text-align: center;
	padding: 12px 10px;
	font-weight: 700;
	font-size: 16px;
	color: #5d6f83;
	position: relative;
	transition: color 0.25s ease, background-color 0.25s ease;
}

.lcdf-step:not(:last-child)::after {
	content: "";
	position: absolute;
	top: 20%;
	right: 0;
	height: 60%;
	width: 1px;
	background: #d8e5f2;
}

.lcdf-step.is-active,
.lcdf-step.is-complete {
	color: #ffffff;
	background: linear-gradient(180deg, var(--lcdf-blue), var(--lcdf-blue-dark));
}

.lcdf-step-label {
	font-size: 16px;
	line-height: 1.2;
}

.lcdf-body {
	padding: 26px 30px 0;
	animation: lcdfFadeUp 0.32s ease;
}

@keyframes lcdfFadeUp {
	from {
		opacity: 0;
		transform: translateY(8px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.lcdf-top-meta {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 16px;
}

.lcdf-top-meta-right {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 6px;
}

.lcdf-back-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 999px;
	padding: 8px 14px;
	font-size: 17px;
	font-weight: 700;
	text-decoration: none;
	cursor: pointer;
	border: 1px solid var(--lcdf-blue);
	background: #ffffff;
	color: var(--lcdf-blue);
	box-shadow: 0 2px 6px rgba(var(--lcdf-blue-rgb), 0.12);
	transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease,
		color 0.2s ease, border-color 0.2s ease;
}

.lcdf-madrid-time {
	font-size: 16px;
	font-weight: 600;
	color: #405467;
}

.lcdf-top-support {
	display: inline-flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 4px;
	padding: 8px 10px;
	border-radius: 12px;
	border: 1px solid #d2e4f5;
	background: #f5faff;
	box-shadow: 0 8px 16px rgba(18, 74, 116, 0.08);
}

.lcdf-top-support-title {
	margin: 0;
	font-size: 12px;
	font-weight: 800;
	color: #1b4f76;
}

.lcdf-top-support-agent {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

.lcdf-top-support-avatar {
	width: 28px;
	height: 28px;
	border-radius: 50%;
	object-fit: cover;
	border: 1px solid #c4dbef;
}

.lcdf-top-support-avatar-fallback {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: #dff0ff;
	color: #12507c;
	font-size: 12px;
	font-weight: 800;
}

.lcdf-top-support-agent-name {
	font-size: 12px;
	font-weight: 700;
	color: #1f4c70;
}

.lcdf-top-support-links {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-start;
	gap: 6px;
}

.lcdf-top-support-phone {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 13px;
	font-weight: 700;
	color: #1d4f76;
	text-decoration: none;
	padding: 4px 8px;
	border-radius: 999px;
	background: #ffffff;
	border: 1px solid #cbe0f4;
}

.lcdf-top-support-whatsapp {
	color: #0f6c47;
}

.lcdf-top-support-hours {
	font-size: 12px;
	font-weight: 600;
	color: #4e6a82;
	text-align: left;
}

.lcdf-title {
	font-size: 30px;
	line-height: 1.18;
	margin: 4px 0 10px;
	font-weight: 800;
	letter-spacing: -0.015em;
}

.lcdf-subtitle {
	font-size: 22px;
	font-weight: 500;
	color: #445769;
	margin: 0 0 22px;
}

.lcdf-season-filter {
	margin-bottom: 18px;
}

.lcdf-season-filter select {
	font-size: 18px;
	border-radius: 999px;
	padding: 10px 16px;
	border: 1px solid var(--lcdf-border);
	min-width: 250px;
	background: #fff;
}

.lcdf-cards-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
}

.lcdf-levels-separator {
	grid-column: 1 / -1;
	display: flex;
	align-items: center;
	justify-content: flex-start;
	text-align: left;
	gap: 10px;
	margin: 4px 0;
	color: #1f5076;
	font-size: 15px;
	font-weight: 700;
}

.lcdf-levels-separator::before,
.lcdf-levels-separator::after {
	content: "";
	flex: 1;
	height: 1px;
	background: #b9d8ee;
}

.lcdf-levels-separator::before {
	display: none;
}

.lcdf-card {
	background: #fff;
	border: 1px solid var(--lcdf-border);
	border-radius: 14px;
	padding: 16px;
	box-shadow: 0 8px 20px rgba(22, 40, 66, 0.08);
	transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.lcdf-card:hover {
	transform: translateY(-3px);
	border-color: #b8d6ee;
	box-shadow: 0 14px 26px rgba(20, 40, 65, 0.14);
}

.lcdf-level-head {
	display: flex;
	gap: 12px;
	align-items: flex-start;
	margin-bottom: 10px;
}

.lcdf-level-card .lcdf-level-head {
	display: block;
	margin-bottom: 10px;
}

.lcdf-level-card {
	padding: 0;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	border-color: rgba(var(--lcdf-level-accent-rgb, var(--lcdf-blue-rgb)), 0.24);
	background: linear-gradient(
		180deg,
		rgba(var(--lcdf-level-accent-rgb, var(--lcdf-blue-rgb)), 0.08) 0,
		#ffffff 130px
	);
	box-shadow: none;
	transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
	will-change: transform, box-shadow;
}

.lcdf-level-card:hover {
	transform: translateY(-4px);
	border-color: #b8d6ee;
	box-shadow: 0 22px 32px rgba(16, 38, 62, 0.16);
}

.lcdf-clickable-card {
	cursor: pointer;
}

.lcdf-clickable-card:focus-visible {
	outline: 3px solid var(--lcdf-blue-dark);
	outline-offset: 2px;
}

.lcdf-level-card-body {
	padding: 14px 16px 16px;
}

.lcdf-level-cover {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 6;
	min-height: 118px;
	max-height: 180px;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	border-bottom: 1px solid rgba(var(--lcdf-level-accent-rgb, var(--lcdf-blue-rgb)), 0.24);
	background-color: rgba(var(--lcdf-level-accent-rgb, var(--lcdf-blue-rgb)), 0.06);
}

.lcdf-level-cover.is-fallback {
	display: flex;
	align-items: center;
	justify-content: center;
	background: linear-gradient(
		145deg,
		var(--lcdf-level-accent, var(--lcdf-blue)),
		var(--lcdf-level-accent-dark, var(--lcdf-blue-dark))
	);
}

.lcdf-level-cover-text {
	color: #ffffff;
	font-size: 30px;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	text-shadow: 0 2px 8px rgba(0, 0, 0, 0.16);
}

.lcdf-clickable-card.is-selected::after {
	content: "\2713";
	position: absolute;
	top: 10px;
	right: 10px;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background: var(--lcdf-level-accent, var(--lcdf-blue));
	color: #ffffff;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 14px;
	font-weight: 800;
	box-shadow: 0 6px 12px rgba(var(--lcdf-level-accent-rgb, var(--lcdf-blue-rgb)), 0.32);
	z-index: 3;
}

.lcdf-level-avatar {
	width: 72px;
	height: 72px;
	border-radius: 50%;
	background: #14b38d;
	color: #fff;
	font-size: 26px;
	font-weight: 800;
	line-height: 1;
	text-align: center;
	display: inline-grid;
	place-items: center;
	flex: none;
}

.lcdf-level-avatar.is-image {
	background-size: cover;
	background-position: center;
	color: transparent;
}

.lcdf-level-card-title,
.lcdf-level-card-subtitle {
	font-size: 24px;
	line-height: 1.06;
	margin: 0;
}

.lcdf-level-card-title {
	font-weight: 800;
}

.lcdf-level-card .lcdf-level-card-title {
	color: var(--lcdf-level-accent-dark, var(--lcdf-blue-dark));
}

.lcdf-level-card-subtitle {
	font-weight: 600;
}

.lcdf-level-card .lcdf-level-card-subtitle {
	color: rgba(var(--lcdf-level-accent-rgb, var(--lcdf-blue-rgb)), 0.88);
}

.lcdf-level-desc {
	font-size: 18px;
	color: var(--lcdf-text-soft);
	line-height: 1.42;
	margin: 8px 0 14px;
}

.lcdf-level-date-line {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin: 6px 0 0;
	font-size: 15px;
	font-weight: 600;
	color: #334454;
}

.lcdf-level-price-line {
	display: flex;
	align-items: center;
	gap: 6px;
	margin: -2px 0 12px;
	font-size: 16px;
	font-weight: 400;
	color: var(--lcdf-text-soft);
}

.lcdf-level-price-line .lcdf-meta-icon {
	color: currentColor;
}

.lcdf-level-desc p {
	margin: 0 0 8px;
}

.lcdf-level-desc p:last-child {
	margin-bottom: 0;
}

.lcdf-level-desc ul,
.lcdf-level-desc ol {
	margin: 0 0 8px 20px;
	padding: 0;
}

.lcdf-level-desc ul {
	list-style: disc;
}

.lcdf-level-desc ol {
	list-style: decimal;
}

.lcdf-level-desc li {
	margin: 0 0 4px;
}

.lcdf-level-desc a {
	color: var(--lcdf-blue-dark);
	text-decoration: underline;
	text-underline-offset: 2px;
}

.lcdf-teacher-card-title {
	font-size: 24px;
	line-height: 1.2;
}

.lcdf-row-meta {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 10px;
	font-size: 16px;
	font-weight: 600;
	margin-bottom: 14px;
	color: #334454;
}

.lcdf-meta-item {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.lcdf-meta-item:last-child {
	justify-content: flex-end;
}

.lcdf-meta-icon {
	color: var(--lcdf-blue-dark);
	font-size: 15px;
	line-height: 1;
}

.lcdf-meta-label {
	font-weight: 700;
}

.lcdf-btn,
.lcdf-btn-primary,
.lcdf-btn-ghost {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 999px;
	padding: 11px 20px;
	font-size: 17px;
	font-weight: 700;
	text-decoration: none;
	cursor: pointer;
	border: 1px solid var(--lcdf-blue);
	background: #ffffff;
	color: var(--lcdf-blue);
	box-shadow: 0 2px 6px rgba(var(--lcdf-blue-rgb), 0.12);
	transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease,
		color 0.2s ease, border-color 0.2s ease, opacity 0.2s ease;
}

.lcdf-btn,
.lcdf-btn-primary {
	background: #ffffff;
	color: var(--lcdf-blue);
}

.lcdf-btn:hover,
.lcdf-btn-primary:hover,
.lcdf-btn-ghost:hover,
.lcdf-back-btn:hover {
	background: var(--lcdf-blue);
	color: #ffffff;
	border-color: var(--lcdf-blue);
	box-shadow: 0 8px 16px rgba(var(--lcdf-blue-rgb), 0.22);
	transform: translateY(-2px);
}

.lcdf-btn-ghost {
	background: #fff;
	color: var(--lcdf-blue);
	border: 1px solid var(--lcdf-blue);
}

.lcdf-btn:disabled,
.lcdf-btn-primary:disabled,
.lcdf-btn-ghost:disabled,
.lcdf-back-btn:disabled {
	opacity: 0.55;
	cursor: not-allowed;
	transform: none;
	box-shadow: none;
}

.lcdf-card .lcdf-btn {
	width: 100%;
}

.lcdf-help-block {
	margin-top: 24px;
	padding: 18px;
	background: #fff;
	border-radius: 14px;
	border: 1px solid var(--lcdf-border);
}

.lcdf-help-block h3 {
	font-size: 30px;
	margin: 0 0 8px;
}

.lcdf-help-block p {
	font-size: 20px;
	color: var(--lcdf-text-soft);
	margin: 0 0 6px;
}

.lcdf-help-block .lcdf-strong {
	color: #263646;
	font-weight: 700;
}

.lcdf-group-card img {
	width: 70px;
	height: 70px;
	object-fit: cover;
	border-radius: 50%;
}

.lcdf-group-card .lcdf-level-head {
	align-items: center;
}

.lcdf-group-schedule-line {
	margin: 4px 0 0;
	color: #2f5069;
	font-size: 15px;
	font-weight: 600;
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.lcdf-group-title {
	margin: 0 0 4px;
}

.lcdf-group-teacher-row {
	margin: 2px 0 0;
	color: #1f4666;
	font-size: 16px;
	font-weight: 700;
}

.lcdf-teacher-avatar-fallback {
	width: 70px;
	height: 70px;
	border-radius: 50%;
	flex: none;
}

.lcdf-step2-alt-note {
	margin: -4px 0 10px;
	font-size: 15px;
	font-weight: 600;
	color: #355876;
}

.lcdf-step2-mode-note {
	margin: 8px 0 14px;
	font-size: 15px;
	font-weight: 600;
	color: #355876;
}

.lcdf-step2-mode-note.is-hidden,
.lcdf-step2-schedule-wrap.is-hidden,
.lcdf-alt-observations.is-hidden {
	display: none;
}

.lcdf-pill-toggle {
	display: inline-flex;
	gap: 10px;
	margin: 8px 0 22px;
}

.lcdf-pill-toggle button {
	min-width: 82px;
	border-radius: 999px;
	border: 1px solid var(--lcdf-blue);
	background: #ffffff;
	padding: 8px 14px;
	font-size: 17px;
	font-weight: 700;
	cursor: pointer;
	color: var(--lcdf-blue);
	box-shadow: 0 2px 6px rgba(var(--lcdf-blue-rgb), 0.12);
	transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease,
		color 0.2s ease, border-color 0.2s ease;
}

.lcdf-pill-toggle button.is-active {
	background: var(--lcdf-blue);
	color: #fff;
	border-color: var(--lcdf-blue);
}

.lcdf-modalidad-box {
	background: #fff;
	padding: 16px;
	border-radius: 14px;
	border: 1px solid var(--lcdf-border);
	max-width: 980px;
	margin-bottom: 14px;
}

.lcdf-modalidad-box label {
	display: block;
	font-size: 20px;
	margin-bottom: 10px;
	cursor: pointer;
	color: #34495d;
}

.lcdf-textarea {
	width: 100%;
	max-width: 980px;
	border-radius: 14px;
	border: 1px solid #c8d8e8;
	padding: 12px;
	font-size: 18px;
}

.lcdf-center {
	text-align: center;
}

.lcdf-terms-box {
	background: #fff;
	border: 1px solid var(--lcdf-border);
	border-radius: 16px;
	padding: 16px 16px 8px;
	max-width: 1100px;
	margin: 0 auto 12px;
}

.lcdf-terms-warning {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	width: 100%;
	box-sizing: border-box;
	max-width: 1100px;
	margin: 0 auto 12px;
	padding: 10px 12px;
	border-radius: 12px;
	border: 1px solid #f2d8a9;
	background: #fff8e8;
	color: #6b4a11;
	font-size: 15px;
	font-weight: 600;
}

.lcdf-terms-warning a {
	color: #0a78c8;
	font-weight: 700;
	text-decoration: underline;
}

.lcdf-terms-scroll {
	height: auto;
	max-height: min(58vh, 520px);
	overflow-y: auto;
	overflow-x: hidden;
	padding-right: 8px;
	font-size: 16px;
	line-height: 1.55;
	color: #3d5062;
	overscroll-behavior: contain;
	-webkit-overflow-scrolling: touch;
	touch-action: pan-y;
}

.lcdf-terms-content {
	font-size: 16px;
	line-height: 1.65;
	color: #2d4359;
}

.lcdf-terms-content :where(h1, h2, h3, h4) {
	color: #17324d;
	line-height: 1.3;
	margin: 0 0 12px;
}

.lcdf-terms-content :where(p, li) {
	text-align: justify;
	margin: 0 0 10px;
}

.lcdf-terms-content :where(strong, b) {
	font-weight: 700 !important;
}

.lcdf-terms-content :where(ul, ol) {
	margin: 0 0 14px;
	padding-left: 22px;
}

.lcdf-terms-content blockquote {
	margin: 0 0 14px;
	padding: 10px 14px;
	border-left: 3px solid #9ec7ea;
	background: #f6fbff;
}

.lcdf-terms-content table {
	width: 100%;
	border-collapse: collapse;
	margin: 0 0 14px;
}

.lcdf-terms-content table th,
.lcdf-terms-content table td {
	border: 1px solid #d0e1f1;
	padding: 8px;
	text-align: left;
	vertical-align: top;
}

.lcdf-checkbox-line {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	font-size: 16px;
	line-height: 1.4;
	margin: 14px auto;
	max-width: 1100px;
}

.lcdf-checkbox-line input[type="checkbox"] {
	width: 20px;
	height: 20px;
	min-width: 20px;
	min-height: 20px;
	flex: 0 0 20px;
	margin-top: 4px;
}

.lcdf-step4-grid,
.lcdf-summary-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
}

.lcdf-panel {
	background: #fff;
	border: 1px solid var(--lcdf-border);
	border-radius: 16px;
	padding: 18px;
	box-shadow: 0 8px 18px rgba(20, 41, 68, 0.08);
}

.lcdf-panel.is-soft {
	background: var(--lcdf-soft-blue);
}

.lcdf-section-title {
	font-size: 30px;
	margin: 0 0 12px;
	font-weight: 800;
}

.lcdf-fields-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px 14px;
}

.lcdf-field,
.lcdf-field textarea,
.lcdf-field select {
	width: 100%;
}

.lcdf-field label,
.lcdf-field > span {
	display: block;
	font-size: 18px;
	font-weight: 700;
	margin-bottom: 6px;
	color: #334758;
}

.lcdf-field input,
.lcdf-field textarea,
.lcdf-field select {
	border-radius: 999px;
	border: 1px solid #9ec3e4;
	padding: 10px 14px;
	font-size: 16px;
	background: #fff;
}

.lcdf-field textarea {
	border-radius: 14px;
	min-height: 92px;
}

.lcdf-phone-row {
	display: grid;
	grid-template-columns: minmax(128px, 170px) minmax(170px, 1fr);
	gap: 8px;
}

.lcdf-phone-prefix {
	max-width: 170px;
}

.lcdf-phone-number {
	max-width: 280px;
}

.lcdf-field.full {
	grid-column: 1 / -1;
}

.lcdf-price-note {
	color: #0b82cf;
	font-size: 16px;
	margin-top: 6px;
}

.lcdf-note-success {
	color: #10774a;
}

.lcdf-note-warning {
	color: #b26100;
}

.lcdf-note-error {
	color: #b42323;
}

.lcdf-divider {
	border-top: 1px solid #b4d3ec;
	margin: 16px 0;
}

.lcdf-summary-list {
	font-size: 20px;
	line-height: 1.45;
}

.lcdf-summary-list li {
	margin-bottom: 4px;
}

.lcdf-course-summary-card {
	background: linear-gradient(180deg, #ffffff 0%, #f4f9ff 100%);
	border-color: #cfe0f1;
}

.lcdf-course-summary-head {
	display: flex;
	gap: 14px;
	align-items: flex-start;
	margin-bottom: 10px;
}

.lcdf-summary-avatar {
	display: inline-grid;
	place-items: center;
	width: 62px;
	height: 62px;
	border-radius: 14px;
	background: #dcecff;
	color: #134a78;
	font-size: 22px;
	font-weight: 800;
	flex: none;
	border: 1px solid #b9d4ee;
	background-size: cover;
	background-position: center;
}

.lcdf-summary-avatar-level {
	width: 68px;
	height: 68px;
	border-radius: 50%;
}

.lcdf-summary-avatar.is-image {
	color: transparent;
}

.lcdf-summary-avatar-teacher {
	width: 46px;
	height: 46px;
	border-radius: 50%;
	font-size: 18px;
}

.lcdf-course-summary-title-wrap {
	min-width: 0;
}

.lcdf-course-summary-title {
	font-size: 22px;
	line-height: 1.25;
	margin: 2px 0 8px;
}

.lcdf-course-summary-teacher {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 8px;
}

.lcdf-course-summary-kicker {
	font-size: 15px;
	color: #61788f;
	font-weight: 700;
	margin: 0;
}

.lcdf-course-summary-name {
	font-size: 18px;
	font-weight: 700;
	margin: 0;
	color: #1f2d3d;
}

.lcdf-highlight {
	color: #087fc9;
}

.lcdf-modal-wrap {
	position: fixed;
	inset: 0;
	background: rgba(20, 30, 42, 0.45);
	backdrop-filter: blur(4px);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 16px;
	z-index: 999999;
}

.lcdf-modal {
	background: #fff;
	border-radius: 16px;
	box-shadow: 0 22px 40px rgba(0, 0, 0, 0.3);
	width: 100%;
	max-width: 760px;
	padding: 20px;
	position: relative;
}

.lcdf-modal-title {
	font-size: 30px;
	font-weight: 800;
	text-align: center;
	margin-bottom: 10px;
}

.lcdf-signature-canvas {
	width: 100%;
	height: 220px;
	border-radius: 12px;
	border: 2px solid #4a5663;
	background: #f8fbff;
	touch-action: none;
	display: block;
}

.lcdf-modal-close {
	position: absolute;
	top: 8px;
	right: 10px;
	border: 0;
	background: transparent;
	font-size: 30px;
	cursor: pointer;
	color: #4c5f72;
}

.lcdf-modal .lcdf-checkbox-line {
	font-size: 16px;
	max-width: none;
	margin: 10px 0;
}

.lcdf-modal .lcdf-checkbox-line input[type="checkbox"] {
	width: 18px;
	height: 18px;
	min-width: 18px;
	flex: 0 0 18px;
	margin-top: 3px;
}

.lcdf-sign-submit-loading {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 12px auto 0;
	padding: 8px 12px;
	border-radius: 999px;
	background: #eef8ff;
	border: 1px solid #c8e3f8;
	color: #234761;
	font-size: 14px;
	font-weight: 600;
}

.lcdf-sign-spinner {
	display: inline-block;
	width: 16px;
	height: 16px;
	border-radius: 50%;
	border: 2px solid #9cccf0;
	border-top-color: var(--lcdf-blue);
	animation: lcdfSpin 0.85s linear infinite;
}

.lcdf-sign-spinner-inline {
	margin-right: 8px;
	vertical-align: middle;
	border-color: rgba(255, 255, 255, 0.45);
	border-top-color: #ffffff;
}

@keyframes lcdfSpin {
	from {
		transform: rotate(0deg);
	}
	to {
		transform: rotate(360deg);
	}
}

.lcdf-success-card {
	max-width: 920px;
	background: #fff;
	border-radius: 18px;
	padding: 30px 24px;
	margin: 36px auto 24px;
	text-align: center;
	border: 1px solid var(--lcdf-border);
}

.lcdf-success-icon {
	width: 90px;
	height: 90px;
	border-radius: 50%;
	border: 8px solid #11c585;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 48px;
	color: #11c585;
	font-weight: 800;
}

.lcdf-contact-box {
	text-align: center;
	font-size: 18px;
	font-weight: 600;
	color: #32475a;
}

.lcdf-contact-box p {
	font-weight: 500;
	font-size: 18px;
}

.lcdf-info-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
	gap: 16px;
}

.lcdf-info-card {
	background: #fff;
	border-radius: 14px;
	border: 1px solid var(--lcdf-border);
	padding: 16px;
	box-shadow: 0 10px 20px rgba(22, 42, 69, 0.08);
}

.lcdf-info-card h3 {
	margin: 10px 0 4px;
	font-size: 25px;
}

.lcdf-info-card p {
	font-size: 20px;
}

.lcdf-info-card .lcdf-btn {
	width: 100%;
	margin-top: 10px;
}

.lcdf-input-error {
	border-color: #d62a2a !important;
}

.lcdf-focusable:focus-visible,
.lcdf-btn:focus-visible,
.lcdf-btn-primary:focus-visible,
.lcdf-btn-ghost:focus-visible,
.lcdf-back-btn:focus-visible,
.lcdf-pill-toggle button:focus-visible,
.lcdf-checkbox-line input:focus-visible {
	outline: 3px solid var(--lcdf-blue-dark);
	outline-offset: 2px;
}

@media (max-width: 1200px) {
	.lcdf-wizard-host {
		padding-right: 0;
	}

	.lcdf-floating-support {
		position: sticky;
		top: 10px;
		right: auto;
		width: 100%;
		margin: 0 0 12px;
		z-index: 30;
	}

	.lcdf-cards-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.lcdf-step4-grid,
	.lcdf-summary-grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 860px) {
	.lcdf-body {
		padding: 16px;
	}

	.lcdf-floating-support {
		padding: 10px;
		border-radius: 12px;
	}

	.lcdf-floating-support-link {
		font-size: 12px;
	}

	.lcdf-top-meta {
		align-items: flex-start;
	}

	.lcdf-top-meta-right {
		align-items: flex-end;
		max-width: 72%;
	}

	.lcdf-top-support {
		align-items: flex-end;
	}

	.lcdf-top-support-phone,
	.lcdf-top-support-hours {
		text-align: right;
	}

	.lcdf-stepper-mobile-meta {
		display: block;
	}

	.lcdf-stepper {
		display: block;
		background: transparent;
		border-bottom: 0;
	}

	.lcdf-step {
		display: none;
		font-size: 15px;
		padding: 10px 12px;
		border-radius: 10px;
		margin: 8px 10px;
	}

	.lcdf-step.is-current {
		display: block;
	}

	.lcdf-step::after {
		display: none;
	}

	.lcdf-cards-grid,
	.lcdf-fields-grid {
		grid-template-columns: 1fr;
	}

	.lcdf-phone-row {
		grid-template-columns: 1fr;
	}

	.lcdf-phone-prefix,
	.lcdf-phone-number {
		max-width: none;
	}

	.lcdf-title,
	.lcdf-section-title,
	.lcdf-level-card-title,
	.lcdf-level-card-subtitle,
	.lcdf-help-block h3,
	.lcdf-modal-title,
	.lcdf-info-card h3 {
		font-size: 24px;
	}

	.lcdf-subtitle {
		font-size: 20px;
	}

	.lcdf-level-desc,
	.lcdf-help-block p,
	.lcdf-modalidad-box label,
	.lcdf-field label,
	.lcdf-field > span,
	.lcdf-summary-list,
	.lcdf-contact-box,
	.lcdf-contact-box p,
	.lcdf-info-card p {
		font-size: 18px;
	}

	.lcdf-btn,
	.lcdf-btn-primary,
	.lcdf-btn-ghost,
	.lcdf-row-meta,
	.lcdf-madrid-time,
	.lcdf-back-btn,
	.lcdf-field input,
	.lcdf-field textarea,
	.lcdf-field select {
		font-size: 16px;
	}

	.lcdf-course-summary-title {
		font-size: 20px;
	}

	.lcdf-course-summary-name {
		font-size: 16px;
	}

	.lcdf-price-note,
	.lcdf-checkbox-line,
	.lcdf-modal .lcdf-checkbox-line,
	.lcdf-step-label {
		font-size: 16px;
	}

	.lcdf-progress-label {
		font-size: 12px;
	}

	.lcdf-terms-scroll {
		max-height: 360px;
		font-size: 16px;
	}
}

@media (max-width: 640px) {
	.lcdf-wizard {
		border-radius: 12px;
		padding-bottom: 18px;
	}

	.lcdf-body {
		padding: 14px 12px 0;
	}

	.lcdf-title,
	.lcdf-section-title,
	.lcdf-level-card-title,
	.lcdf-level-card-subtitle {
		font-size: 22px;
	}

	.lcdf-subtitle {
		font-size: 18px;
		margin-bottom: 16px;
	}

	.lcdf-top-meta {
		flex-wrap: wrap;
		gap: 10px;
	}

	.lcdf-top-meta-right {
		width: 100%;
		max-width: none;
		align-items: flex-start;
	}

	.lcdf-top-support {
		align-items: flex-start;
	}

	.lcdf-top-support-phone,
	.lcdf-top-support-hours {
		text-align: left;
	}

	.lcdf-btn,
	.lcdf-btn-primary,
	.lcdf-btn-ghost {
		width: 100%;
	}

	.lcdf-checkbox-line {
		font-size: 15px;
	}

	.lcdf-terms-box {
		padding: 12px 12px 6px;
	}

	.lcdf-terms-scroll {
		max-height: 50vh;
	}

	.lcdf-modal {
		padding: 16px 12px;
		border-radius: 12px;
	}

	.lcdf-signature-canvas {
		height: 180px;
	}

	.lcdf-floating-support {
		width: 100%;
	}
}

/* Visual style overrides */
.lcdf-wizard-host,
.lcdf-info-grid {
	--lcdf-blue: #039aff;
	--lcdf-blue-dark: #0279c9;
	--lcdf-blue-rgb: 3, 154, 255;
	--lcdf-blue-dark-rgb: 2, 121, 201;
	--lcdf-soft-blue: rgba(var(--lcdf-blue-rgb), 0.08);
	--lcdf-soft-blue-strong: rgba(var(--lcdf-blue-rgb), 0.18);
	--lcdf-glow: 0 0 0 1px rgba(var(--lcdf-blue-rgb), 0.2),
		0 22px 40px rgba(var(--lcdf-blue-dark-rgb), 0.2);
}

.lcdf-wizard {
	position: relative;
	isolation: isolate;
	background: radial-gradient(circle at 18% -12%, rgba(var(--lcdf-blue-rgb), 0.24), transparent 34%),
		radial-gradient(circle at 92% 110%, rgba(var(--lcdf-blue-rgb), 0.2), transparent 38%),
		linear-gradient(145deg, #f7fbff 0%, #edf5fd 48%, #f5f9ff 100%);
	box-shadow: var(--lcdf-glow);
}

.lcdf-wizard::before,
.lcdf-wizard::after {
	content: "";
	position: absolute;
	z-index: 0;
	border-radius: 999px;
	pointer-events: none;
	filter: blur(0.2px);
}

.lcdf-wizard::before {
	top: -86px;
	right: -86px;
	width: 210px;
	height: 210px;
	background: radial-gradient(circle at center, rgba(var(--lcdf-blue-rgb), 0.3), rgba(var(--lcdf-blue-rgb), 0));
	animation: lcdfFloatGlow 8s ease-in-out infinite;
}

.lcdf-wizard::after {
	bottom: -120px;
	left: -100px;
	width: 240px;
	height: 240px;
	background: radial-gradient(circle at center, rgba(var(--lcdf-blue-rgb), 0.2), rgba(var(--lcdf-blue-rgb), 0));
	animation: lcdfFloatGlow 10s ease-in-out infinite reverse;
}

.lcdf-stepper,
.lcdf-progress-wrap,
.lcdf-body {
	position: relative;
	z-index: 1;
}

.lcdf-bottom-support {
	position: relative;
	z-index: 0;
}

@keyframes lcdfFloatGlow {
	0% {
		transform: translate(0, 0) scale(1);
	}
	50% {
		transform: translate(12px, -10px) scale(1.04);
	}
	100% {
		transform: translate(0, 0) scale(1);
	}
}

.lcdf-stepper {
	background: linear-gradient(
		180deg,
		rgba(var(--lcdf-blue-rgb), 0.1) 0%,
		rgba(var(--lcdf-blue-rgb), 0.16) 100%
	);
}

.lcdf-step {
	font-size: 15px;
	letter-spacing: 0.01em;
}

.lcdf-step.is-active,
.lcdf-step.is-complete {
	background: linear-gradient(180deg, var(--lcdf-blue), var(--lcdf-blue-dark));
	box-shadow: inset 0 -1px 0 rgba(255, 255, 255, 0.2);
}

.lcdf-top-meta {
	margin-bottom: 18px;
}

.lcdf-madrid-time {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: #ffffff;
	border: 1px solid rgba(var(--lcdf-blue-rgb), 0.3);
	border-radius: 999px;
	padding: 8px 14px;
	font-size: 14px;
	font-weight: 700;
	color: var(--lcdf-blue-dark);
	box-shadow: 0 8px 16px rgba(var(--lcdf-blue-rgb), 0.14);
}

.lcdf-top-meta-right {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 6px;
}

.lcdf-top-support {
	background: #ffffff;
	border: 1px solid rgba(var(--lcdf-blue-rgb), 0.24);
	border-radius: 12px;
	padding: 7px 10px;
	box-shadow: 0 6px 14px rgba(var(--lcdf-blue-rgb), 0.12);
}

.lcdf-top-support-phone {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: var(--lcdf-blue-dark);
	font-weight: 800;
	font-size: 13px;
	text-decoration: none;
}

.lcdf-top-support-hours {
	font-size: 11px;
	color: #46647e;
	font-weight: 600;
}

.lcdf-progress-wrap {
	background: linear-gradient(
		180deg,
		rgba(var(--lcdf-blue-rgb), 0.08) 0%,
		rgba(var(--lcdf-blue-rgb), 0.13) 100%
	);
}

.lcdf-title {
	color: #112a40;
}

.lcdf-subtitle {
	color: #385870;
	font-size: 20px;
}

.lcdf-card {
	position: relative;
	border-radius: 18px;
	border: 1px solid #c9e3f8;
	box-shadow: 0 14px 24px rgba(22, 44, 69, 0.09);
	animation: lcdfCardEnter 0.45s ease both;
	animation-delay: calc(var(--lcdf-item-index, 0) * 80ms);
}

.lcdf-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 22px 32px rgba(16, 38, 62, 0.16);
}

.lcdf-group-card.is-selected {
	border-color: var(--lcdf-blue);
	box-shadow: 0 0 0 2px rgba(var(--lcdf-blue-rgb), 0.2), 0 16px 30px rgba(var(--lcdf-blue-rgb), 0.18);
}

.lcdf-level-card.is-selected {
	border-color: var(--lcdf-level-accent, var(--lcdf-blue));
	box-shadow: 0 0 0 2px
		rgba(var(--lcdf-level-accent-rgb, var(--lcdf-blue-rgb)), 0.24);
}

.lcdf-card.lcdf-level-card:hover {
	transform: translateY(-4px);
	border-color: #b8d6ee;
	box-shadow: 0 22px 32px rgba(16, 38, 62, 0.16);
}

@keyframes lcdfCardEnter {
	from {
		opacity: 0;
		transform: translateY(8px) scale(0.995);
	}
	to {
		opacity: 1;
		transform: translateY(0) scale(1);
	}
}

.lcdf-level-avatar {
	border-radius: 50%;
	border: 1px solid #c6e2f7;
	background: linear-gradient(145deg, var(--lcdf-blue), var(--lcdf-blue-dark));
	box-shadow: 0 10px 16px rgba(var(--lcdf-blue-rgb), 0.26);
}

.lcdf-card-actions {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 8px;
}

.lcdf-card-actions .lcdf-btn,
.lcdf-card-actions .lcdf-btn-ghost {
	width: 100%;
}

.lcdf-btn-ghost {
	background: #ffffff;
	border-color: var(--lcdf-blue);
}

.lcdf-level-card .lcdf-btn-ghost:hover:not(:disabled),
.lcdf-level-card .lcdf-btn-ghost:focus-visible:not(:disabled) {
	background: var(--lcdf-blue);
	border-color: var(--lcdf-blue);
	color: #ffffff;
	box-shadow: 0 8px 16px rgba(var(--lcdf-blue-rgb), 0.28);
}

.lcdf-level-card-subtitle {
	color: #2f5473;
	font-size: 18px;
}

.lcdf-level-desc {
	font-size: 17px;
}

.lcdf-row-meta {
	padding: 10px 12px;
	background: rgba(var(--lcdf-blue-rgb), 0.08);
	border: 1px solid rgba(var(--lcdf-blue-rgb), 0.18);
	border-radius: 12px;
}

.lcdf-group-card img {
	border-radius: 50%;
	border: 1px solid #c5e1f7;
}

.lcdf-group-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 8px 0 6px;
}

.lcdf-chip {
	display: inline-flex;
	align-items: center;
	padding: 4px 10px;
	border-radius: 999px;
	background: rgba(var(--lcdf-blue-rgb), 0.1);
	border: 1px solid rgba(var(--lcdf-blue-rgb), 0.2);
	font-size: 12px;
	font-weight: 700;
	color: #1f5075;
}

.lcdf-chip-shift {
	gap: 6px;
}

.lcdf-group-select-btn {
	background: #ffffff;
	color: var(--lcdf-blue);
	border: 1px solid var(--lcdf-blue);
	box-shadow: 0 2px 6px rgba(var(--lcdf-blue-rgb), 0.12);
}

.lcdf-group-select-btn:hover {
	background: var(--lcdf-blue);
	color: #ffffff;
	border-color: var(--lcdf-blue);
	box-shadow: 0 8px 16px rgba(var(--lcdf-blue-rgb), 0.22);
}

.lcdf-group-select-btn.is-selected {
	background: var(--lcdf-blue);
	color: #ffffff;
	border-color: var(--lcdf-blue);
	box-shadow: 0 8px 16px rgba(var(--lcdf-blue-rgb), 0.28);
}

.lcdf-groups-grid .lcdf-card {
	animation: none;
}

.lcdf-support-card {
	margin-top: 22px;
	padding: 22px;
	border-radius: 18px;
	border: 1px solid #cbe5f9;
	background: linear-gradient(145deg, #ffffff 0%, #f2f9ff 100%);
	box-shadow: 0 14px 28px rgba(24, 45, 69, 0.1);
}

.lcdf-support-badge {
	display: inline-flex;
	padding: 4px 10px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	background: #e8f6ff;
	border: 1px solid #b9ddfb;
	color: #0e5d94;
	margin: 0 0 8px;
}

.lcdf-support-card h3 {
	font-size: 28px;
	margin: 0 0 10px;
	color: #133555;
}

.lcdf-support-card p {
	margin: 0 0 8px;
	font-size: 17px;
	color: #36546d;
}

.lcdf-support-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 14px 0;
}

.lcdf-support-meta {
	padding-top: 8px;
	border-top: 1px solid #d7eaf9;
}

.lcdf-help-tip {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 19px;
	height: 19px;
	margin-left: 8px;
	border-radius: 50%;
	background: #e9f6ff;
	border: 1px solid #9dcdf0;
	color: #006aa8;
	font-size: 12px;
	font-weight: 800;
	line-height: 1;
	cursor: help;
	vertical-align: middle;
}

.lcdf-help-tip:focus-visible {
	outline: 2px solid var(--lcdf-blue);
	outline-offset: 2px;
}

.lcdf-help-tip::after {
	content: attr(data-tip);
	position: absolute;
	left: 50%;
	bottom: calc(100% + 9px);
	transform: translateX(-50%) translateY(4px);
	width: min(320px, 70vw);
	background: #102e4a;
	color: #ffffff;
	border-radius: 10px;
	padding: 9px 11px;
	font-size: 12px;
	line-height: 1.4;
	font-weight: 500;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.18s ease, transform 0.18s ease;
	text-align: left;
	box-shadow: 0 10px 20px rgba(0, 0, 0, 0.24);
	z-index: 20;
}

.lcdf-help-tip:hover::after,
.lcdf-help-tip:focus-visible::after {
	opacity: 1;
	transform: translateX(-50%) translateY(0);
}

.lcdf-label-with-help {
	display: inline-flex;
	align-items: center;
	flex-wrap: wrap;
}

.lcdf-panel-student {
	background: linear-gradient(145deg, #ffffff 0%, #f6fbff 100%);
	border-color: #c7e1f7;
}

.lcdf-payment-panel {
	background: linear-gradient(145deg, #eef8ff 0%, #f7fcff 100%);
	border-color: #c8e3f8;
}

.lcdf-field input,
.lcdf-field textarea,
.lcdf-field select {
	border-radius: 12px;
	border-color: #9ec7e7;
}

.lcdf-field input:focus,
.lcdf-field textarea:focus,
.lcdf-field select:focus {
	border-color: var(--lcdf-blue);
	box-shadow: 0 0 0 3px rgba(var(--lcdf-blue-rgb), 0.16);
	outline: 0;
}

.lcdf-summary-grid .lcdf-panel {
	border-radius: 18px;
}

@media (max-width: 860px) {
	.lcdf-madrid-time {
		font-size: 12px;
		padding: 6px 10px;
	}

	.lcdf-card-actions {
		grid-template-columns: 1fr;
	}

	.lcdf-support-card h3 {
		font-size: 22px;
	}
}

/* Typography scale */
.lcdf-title {
	font-size: 30px;
	font-weight: 700;
	line-height: 1.2;
}

.lcdf-section-title,
.lcdf-level-card-title,
.lcdf-group-title,
.lcdf-modal-title {
	font-size: 20px;
	font-weight: 800;
	line-height: 1.25;
}

.lcdf-subtitle,
.lcdf-level-card-subtitle {
	font-size: 18px;
	font-weight: 600;
	line-height: 1.35;
}

.lcdf-level-desc,
.lcdf-group-schedule-line,
.lcdf-price-note,
.lcdf-summary-list,
.lcdf-terms-content,
.lcdf-terms-scroll,
.lcdf-modalidad-box label,
.lcdf-success-card p,
.lcdf-course-summary-kicker,
.lcdf-course-summary-name {
	font-size: 16px;
	font-weight: 300;
	line-height: 1.5;
}

.lcdf-field label,
.lcdf-field > span,
.lcdf-field input,
.lcdf-field textarea,
.lcdf-field select,
.lcdf-checkbox-line {
	font-size: 16px;
}

@media (max-width: 860px) {
	.lcdf-title {
		font-size: 24px;
	}

	.lcdf-level-avatar {
		width: 66px;
		height: 66px;
		font-size: 24px;
	}

	.lcdf-level-cover {
		min-height: 108px;
	}

	.lcdf-summary-avatar-level {
		width: 62px;
		height: 62px;
	}

	.lcdf-section-title,
	.lcdf-level-card-title,
	.lcdf-group-title,
	.lcdf-modal-title {
		font-size: 18px;
	}

	.lcdf-subtitle,
	.lcdf-level-card-subtitle {
		font-size: 16px;
	}

	.lcdf-level-desc,
	.lcdf-group-schedule-line,
	.lcdf-price-note,
	.lcdf-summary-list,
	.lcdf-terms-content,
	.lcdf-terms-scroll,
	.lcdf-modalidad-box label,
	.lcdf-success-card p,
	.lcdf-course-summary-kicker,
	.lcdf-course-summary-name,
	.lcdf-field label,
	.lcdf-field > span,
	.lcdf-field input,
	.lcdf-field textarea,
	.lcdf-field select,
	.lcdf-checkbox-line {
		font-size: 15px;
	}
}

@media (max-width: 640px) {
	.lcdf-title {
		font-size: 22px;
	}

	.lcdf-level-avatar {
		width: 58px;
		height: 58px;
		font-size: 22px;
	}

	.lcdf-level-cover {
		min-height: 98px;
	}

	.lcdf-level-cover-text {
		font-size: 24px;
	}

	.lcdf-summary-avatar-level {
		width: 56px;
		height: 56px;
	}

	.lcdf-section-title,
	.lcdf-level-card-title,
	.lcdf-group-title,
	.lcdf-modal-title {
		font-size: 17px;
	}

	.lcdf-subtitle,
	.lcdf-level-card-subtitle {
		font-size: 15px;
	}

	.lcdf-level-desc,
	.lcdf-group-schedule-line,
	.lcdf-price-note,
	.lcdf-summary-list,
	.lcdf-terms-content,
	.lcdf-terms-scroll,
	.lcdf-modalidad-box label,
	.lcdf-success-card p,
	.lcdf-course-summary-kicker,
	.lcdf-course-summary-name,
	.lcdf-field label,
	.lcdf-field > span,
	.lcdf-field input,
	.lcdf-field textarea,
	.lcdf-field select,
	.lcdf-checkbox-line {
		font-size: 14px;
	}
}

/* Step 2 hierarchy */
.lcdf-group-title {
	font-weight: 700;
}

.lcdf-group-teacher-row {
	font-weight: 400;
}

/* Bottom support block */
.lcdf-bottom-support {
	margin: 22px 30px 26px;
	padding: 16px 18px;
	border-radius: 16px;
	border: 1px solid rgba(var(--lcdf-blue-rgb), 0.24);
	background: rgba(var(--lcdf-blue-rgb), 0.08);
	box-shadow: 0 10px 20px rgba(var(--lcdf-blue-rgb), 0.1);
}

.lcdf-bottom-support-title {
	margin: 0 0 10px;
	font-size: 19px;
	font-weight: 700;
	color: var(--lcdf-blue-dark);
}

.lcdf-bottom-support-agent {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 10px;
}

.lcdf-bottom-support-avatar {
	width: 52px;
	height: 52px;
	border-radius: 50%;
	object-fit: cover;
	border: 1px solid rgba(var(--lcdf-blue-rgb), 0.3);
	background: rgba(var(--lcdf-blue-rgb), 0.12);
	color: var(--lcdf-blue-dark);
	font-size: 19px;
	font-weight: 700;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.lcdf-bottom-support-agent-name {
	font-size: 18px;
	font-weight: 700;
	color: #173f60;
}

.lcdf-bottom-support-links {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 8px;
}

.lcdf-bottom-support-link {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 16px;
	font-weight: 600;
	color: var(--lcdf-blue-dark);
	text-decoration: none;
	padding: 6px 10px;
	border-radius: 999px;
	border: 1px solid rgba(var(--lcdf-blue-rgb), 0.25);
	background: #ffffff;
}

.lcdf-bottom-support-link:hover {
	background: rgba(var(--lcdf-blue-rgb), 0.1);
}

.lcdf-bottom-support-whatsapp {
	color: #0c6c46;
}

.lcdf-bottom-support-hours {
	margin: 0;
	font-size: 16px;
	font-weight: 500;
	color: #3f617e;
}

.lcdf-bottom-support-alert {
	margin: 10px 0 0;
	display: inline-flex;
	align-items: flex-start;
	gap: 6px;
	font-size: 14px;
	font-weight: 600;
	color: var(--lcdf-blue-dark);
	background: rgba(var(--lcdf-blue-rgb), 0.12);
	border: 1px solid rgba(var(--lcdf-blue-rgb), 0.3);
	border-radius: 10px;
	padding: 8px 10px;
}

.lcdf-pill-toggle button {
	color: var(--lcdf-blue);
	border-color: var(--lcdf-blue);
	background: #ffffff;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease,
		box-shadow 0.2s ease, transform 0.2s ease;
}

.lcdf-pill-toggle button:hover {
	background: var(--lcdf-blue);
	color: #ffffff;
	border-color: var(--lcdf-blue);
	box-shadow: 0 8px 16px rgba(var(--lcdf-blue-rgb), 0.22);
	transform: translateY(-2px);
}

@media (max-width: 860px) {
	.lcdf-bottom-support {
		margin: 18px 20px 22px;
		padding: 14px;
	}

	.lcdf-bottom-support-title {
		font-size: 17px;
	}

	.lcdf-bottom-support-avatar {
		width: 46px;
		height: 46px;
		font-size: 17px;
	}

	.lcdf-bottom-support-agent-name {
		font-size: 16px;
	}

	.lcdf-bottom-support-link,
	.lcdf-bottom-support-hours {
		font-size: 15px;
	}
}

@media (max-width: 640px) {
	.lcdf-bottom-support {
		margin: 14px 14px 18px;
	}

	.lcdf-bottom-support-title {
		font-size: 16px;
	}

	.lcdf-bottom-support-avatar {
		width: 42px;
		height: 42px;
		font-size: 15px;
	}

	.lcdf-bottom-support-agent-name {
		font-size: 15px;
	}

	.lcdf-bottom-support-link,
	.lcdf-bottom-support-hours {
		font-size: 14px;
	}
}

/* Final mobile typography tuning */
@media (max-width: 860px) {
	.lcdf-wizard .lcdf-title {
		font-size: 18px !important;
		line-height: 1.22;
	}

	.lcdf-wizard .lcdf-section-title,
	.lcdf-wizard .lcdf-level-card-title,
	.lcdf-wizard .lcdf-group-title,
	.lcdf-wizard .lcdf-modal-title,
	.lcdf-wizard .lcdf-help-block h3,
	.lcdf-wizard .lcdf-info-card h3,
	.lcdf-wizard .lcdf-course-summary-title {
		font-size: 18px !important;
		line-height: 1.28;
	}

	.lcdf-wizard .lcdf-subtitle,
	.lcdf-wizard .lcdf-level-card-subtitle {
		font-size: 17px;
		line-height: 1.38;
	}

	.lcdf-step-label {
		font-size: 14px;
	}
}

@media (max-width: 640px) {
	.lcdf-wizard .lcdf-title {
		font-size: 18px !important;
	}

	.lcdf-wizard .lcdf-section-title,
	.lcdf-wizard .lcdf-level-card-title,
	.lcdf-wizard .lcdf-group-title,
	.lcdf-wizard .lcdf-modal-title,
	.lcdf-wizard .lcdf-help-block h3,
	.lcdf-wizard .lcdf-info-card h3,
	.lcdf-wizard .lcdf-course-summary-title {
		font-size: 17px !important;
	}

	.lcdf-subtitle,
	.lcdf-level-card-subtitle {
		font-size: 16px;
	}

	.lcdf-step-label {
		font-size: 13px;
	}

	.lcdf-progress-label {
		font-size: 11px;
	}
}
