@import url("https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@300;400;500;600;700;800&display=swap");

.imed-wizard-host,
.imed-info-grid {
	--imed-blue: #009664;
	--imed-blue-dark: #007a52;
	--imed-blue-rgb: 0, 150, 100;
	--imed-blue-dark-rgb: 0, 122, 82;
	--imed-soft-blue: rgba(var(--imed-blue-rgb), 0.08);
	--imed-soft-blue-strong: rgba(var(--imed-blue-rgb), 0.18);
	--imed-glow: 0 0 0 1px rgba(var(--imed-blue-rgb), 0.2),
		0 22px 40px rgba(var(--imed-blue-dark-rgb), 0.2);
	--imed-bg: #f2f9f7;
	--imed-white: #ffffff;
	--imed-text: #203931;
	--imed-text-soft: #4b6b60;
	--imed-border: #d6eee6;
	--imed-shadow: 0 18px 36px rgba(15, 33, 58, 0.12);
	font-family: "Plus Jakarta Sans", sans-serif;
	color: var(--imed-text);
}

.imed-wizard-loading {
	background: #f7fcfa;
	border: 1px solid var(--imed-border);
	padding: 18px;
	border-radius: 14px;
	font-size: 18px;
}

.imed-wizard {
	background: linear-gradient(165deg, #f8fffd 0%, #edf9f5 48%, #f4fbf9 100%);
	border-radius: 16px;
	overflow: hidden;
	padding-bottom: 28px;
	box-shadow: var(--imed-shadow);
	scroll-margin-top: var(--imed-scroll-offset, 96px);
}

.imed-wizard * {
	box-sizing: border-box;
}

.imed-wizard-host {
	position: relative;
	padding-right: 0;
	--imed-scroll-offset: 96px;
}

.imed-wizard-root {
	min-width: 0;
}

.imed-floating-support {
	position: fixed;
	top: 14px;
	right: 14px;
	width: min(312px, calc(100vw - 28px));
	background: #ffffff;
	border: 1px solid #c7f7e7;
	border-radius: 16px;
	box-shadow: 0 16px 30px rgba(10, 66, 109, 0.18);
	padding: 12px;
	z-index: 99990;
}

body.admin-bar .imed-floating-support {
	top: 46px;
}

@media (max-width: 782px) {
	body.admin-bar .imed-floating-support {
		top: 60px;
	}
}

.imed-floating-support-head {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 8px;
	margin-bottom: 8px;
}

.imed-floating-support-title-wrap {
	min-width: 0;
}

.imed-floating-support-title {
	margin: 0;
	font-size: 14px;
	font-weight: 800;
	color: #1e7055;
}

.imed-floating-support .imed-madrid-time {
	margin-top: 6px;
	padding: 6px 10px;
	font-size: 12px;
}

.imed-floating-support-agent {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 8px;
}

.imed-floating-support-avatar {
	width: 42px;
	height: 42px;
	border-radius: 50%;
	object-fit: cover;
	border: 1px solid #b8f1de;
	background: #e8fef7;
	color: #197a5a;
	font-weight: 800;
	display: inline-grid;
	place-items: center;
	flex: none;
}

.imed-floating-support-name {
	margin: 0;
	font-size: 14px;
	font-weight: 700;
	color: #185843;
}

.imed-floating-support-links {
	display: grid;
	gap: 6px;
}

.imed-floating-support-link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 13px;
	font-weight: 700;
	color: #107c58;
	text-decoration: none;
	padding: 6px 8px;
	border-radius: 10px;
	background: #f2fffb;
	border: 1px solid #d2f9ec;
}

.imed-floating-support-link:hover {
	background: #eafef7;
}

.imed-floating-support-schedule {
	margin: 8px 0 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 4px;
}

.imed-floating-support-schedule li,
.imed-floating-support-hours {
	font-size: 12px;
	font-weight: 600;
	color: #437a68;
	margin: 0;
}

.imed-floating-support-alert {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	margin: 10px 0 0;
	padding: 8px 10px;
	border-radius: 10px;
	border: 1px solid #baf3e0;
	background: #edfff9;
	color: #167b59;
	font-size: 12px;
	font-weight: 700;
}

.imed-stepper {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	background: #edf7f4;
	border-bottom: 1px solid #d8efe7;
}

.imed-stepper-mobile-meta {
	display: none;
	padding: 10px 14px;
	font-size: 14px;
	font-weight: 700;
	color: #376a59;
	background: #e9fbf5;
	border-bottom: 1px solid #d8efe7;
}

.imed-progress-wrap {
	padding: 10px 14px 12px;
	background: #f3fffb;
	border-bottom: 1px solid #d8efe7;
}

.imed-progress-label {
	display: flex;
	justify-content: space-between;
	gap: 8px;
	font-size: 13px;
	font-weight: 700;
	color: #326957;
	margin-bottom: 6px;
}

.imed-progress-track {
	width: 100%;
	height: 8px;
	background: #d9f4eb;
	border-radius: 999px;
	overflow: hidden;
}

.imed-progress-fill {
	height: 100%;
	background: linear-gradient(90deg, var(--imed-blue), var(--imed-blue-dark));
	transition: width 0.35s ease;
}

.imed-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;
}

.imed-step:not(:last-child)::after {
	content: "";
	position: absolute;
	top: 20%;
	right: 0;
	height: 60%;
	width: 1px;
	background: #d9f1e9;
}

.imed-step.is-active,
.imed-step.is-complete {
	color: #ffffff;
	background: linear-gradient(180deg, var(--imed-blue), var(--imed-blue-dark));
}

.imed-step-label {
	font-size: 16px;
	line-height: 1.2;
}

.imed-body {
	padding: 26px 30px 0;
	animation: imedFadeUp 0.32s ease;
}

@keyframes imedFadeUp {
	from {
		opacity: 0;
		transform: translateY(8px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.imed-top-meta {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 16px;
}

.imed-top-meta-right {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 6px;
}

.imed-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(--imed-blue);
	background: #ffffff;
	color: var(--imed-blue);
	box-shadow: 0 2px 6px rgba(var(--imed-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;
}

.imed-madrid-time {
	font-size: 16px;
	font-weight: 600;
	color: #41665a;
}

.imed-top-support {
	display: inline-flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 4px;
	padding: 8px 10px;
	border-radius: 12px;
	border: 1px solid #d3f4e9;
	background: #f5fffc;
	box-shadow: 0 8px 16px rgba(18, 74, 116, 0.08);
}

.imed-top-support-title {
	margin: 0;
	font-size: 12px;
	font-weight: 800;
	color: #1d7457;
}

.imed-top-support-agent {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

.imed-top-support-avatar {
	width: 28px;
	height: 28px;
	border-radius: 50%;
	object-fit: cover;
	border: 1px solid #c5eee0;
}

.imed-top-support-avatar-fallback {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: #e0fef4;
	color: #157958;
	font-size: 12px;
	font-weight: 800;
}

.imed-top-support-agent-name {
	font-size: 12px;
	font-weight: 700;
	color: #216e54;
}

.imed-top-support-links {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-start;
	gap: 6px;
}

.imed-top-support-phone {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 13px;
	font-weight: 700;
	color: #1f7458;
	text-decoration: none;
	padding: 4px 8px;
	border-radius: 999px;
	background: #ffffff;
	border: 1px solid #ccf3e6;
}

.imed-top-support-whatsapp {
	color: #0f6c47;
}

.imed-top-support-hours {
	font-size: 12px;
	font-weight: 600;
	color: #4f8170;
	text-align: left;
}

.imed-title {
	font-size: 30px;
	line-height: 1.18;
	margin: 4px 0 10px;
	font-weight: 800;
	letter-spacing: -0.015em;
}

.imed-title-inline {
	display: inline-flex;
	align-items: center;
	gap: 0.5em;
	flex-wrap: wrap;
	vertical-align: middle;
}

.imed-title-inline > span:last-child {
	min-width: 0;
}

.imed-title-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.3em;
	height: 1.3em;
	min-width: 1.3em;
	border-radius: 999px;
	background: rgba(var(--imed-blue-rgb), 0.1);
	box-shadow: inset 0 0 0 1px rgba(var(--imed-blue-rgb), 0.18);
	color: var(--imed-blue-dark);
}

.imed-title-icon svg {
	width: 0.82em;
	height: 0.82em;
}

.imed-title-icon svg,
.imed-title-icon svg * {
	stroke: currentColor;
	stroke-width: 1.85;
	stroke-linecap: round;
	stroke-linejoin: round;
	vector-effect: non-scaling-stroke;
}

.imed-subtitle {
	font-size: 22px;
	font-weight: 500;
	color: #45685c;
	margin: 0 0 22px;
}

.imed-season-filter {
	margin-bottom: 18px;
}

.imed-season-filter select {
	font-size: 18px;
	border-radius: 999px;
	padding: 10px 16px;
	border: 1px solid var(--imed-border);
	min-width: 250px;
	background: #fff;
}

.imed-cards-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
}

.imed-level-cards-grid {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.imed-level-sections {
	display: grid;
	gap: 24px;
}

.imed-level-section {
	display: grid;
	gap: 14px;
}

.imed-level-section-header {
	display: grid;
	gap: 4px;
}

.imed-level-section-title {
	margin: 0;
	color: var(--imed-blue-dark);
	font-size: 22px;
	line-height: 1.15;
}

.imed-level-section-description {
	margin: 0;
	color: #5d7287;
	font-size: 14px;
	line-height: 1.5;
}

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

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

.imed-levels-separator::before {
	display: none;
}

.imed-card {
	background: #fff;
	border: 1px solid var(--imed-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;
}

.imed-card:hover {
	transform: translateY(-3px);
	border-color: #b9eddc;
	box-shadow: 0 14px 26px rgba(20, 40, 65, 0.14);
}

.imed-level-head {
	display: flex;
	gap: 12px;
	align-items: flex-start;
	margin-bottom: 10px;
}

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

.imed-level-card {
	padding: 0;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	border-color: rgba(var(--imed-level-accent-rgb, var(--imed-blue-rgb)), 0.24);
	background: linear-gradient(
		180deg,
		rgba(var(--imed-level-accent-rgb, var(--imed-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;
}

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

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

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

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

.imed-level-type-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin: 0 0 12px;
	padding: 6px 12px;
	border-radius: 999px;
	border: 1px solid rgba(var(--imed-level-accent-rgb, var(--imed-blue-rgb)), 0.18);
	background: rgba(var(--imed-level-accent-rgb, var(--imed-blue-rgb)), 0.1);
	color: var(--imed-blue-dark);
	font-size: 12px;
	font-weight: 800;
	line-height: 1;
}

.imed-level-type-badge.is-pack {
	border-color: rgba(var(--imed-level-accent-rgb, var(--imed-blue-rgb)), 0.24);
	background: linear-gradient(135deg, rgba(var(--imed-level-accent-rgb, var(--imed-blue-rgb)), 0.18), rgba(var(--imed-level-accent-rgb, var(--imed-blue-rgb)), 0.08));
}

.imed-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(--imed-level-accent-rgb, var(--imed-blue-rgb)), 0.24);
	background-color: rgba(var(--imed-level-accent-rgb, var(--imed-blue-rgb)), 0.06);
}

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

.imed-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);
}

.imed-clickable-card.is-selected::after {
	content: "\2713";
	position: absolute;
	top: 10px;
	right: 10px;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background: var(--imed-level-accent, var(--imed-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(--imed-level-accent-rgb, var(--imed-blue-rgb)), 0.32);
	z-index: 3;
}

.imed-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;
}

.imed-level-avatar.is-image {
	background-size: cover;
	background-position: center;
	color: transparent;
}

.imed-level-card-title,
.imed-level-card-subtitle {
	font-size: 24px;
	line-height: 1.06;
	margin: 0;
}

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

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

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

.imed-level-card .imed-level-card-subtitle {
	color: rgba(var(--imed-level-accent-rgb, var(--imed-blue-rgb)), 0.88);
}

.imed-level-desc {
	font-size: 18px;
	color: var(--imed-text-soft);
	line-height: 1.42;
	margin: 8px 0 14px;
}

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

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

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

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

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

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

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

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

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

.imed-level-desc a {
	color: var(--imed-blue-dark);
	text-decoration: underline;
	text-underline-offset: 2px;
}

.imed-teacher-card-title {
	font-size: 24px;
	line-height: 1.2;
}

.imed-row-meta {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 10px;
	font-size: 16px;
	font-weight: 600;
	margin-bottom: 14px;
	color: #345349;
}

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

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

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

.imed-meta-label {
	font-weight: 700;
}

.imed-btn,
.imed-btn-primary,
.imed-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(--imed-blue);
	background: #ffffff;
	color: var(--imed-blue);
	box-shadow: 0 2px 6px rgba(var(--imed-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;
}

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

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

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

.imed-btn:disabled,
.imed-btn-primary:disabled,
.imed-btn-ghost:disabled,
.imed-back-btn:disabled {
	opacity: 0.55;
	cursor: not-allowed;
	transform: none;
	box-shadow: none;
}

.imed-card .imed-btn {
	width: 100%;
}

.imed-help-block {
	margin-top: 24px;
	padding: 18px;
	background: #fff;
	border-radius: 14px;
	border: 1px solid var(--imed-border);
}

.imed-help-block h3 {
	font-size: 30px;
	margin: 0 0 8px;
}

.imed-help-block p {
	font-size: 20px;
	color: var(--imed-text-soft);
	margin: 0 0 6px;
}

.imed-help-block .imed-strong {
	color: #27453b;
	font-weight: 700;
}

.imed-group-card img {
	width: 70px;
	height: 70px;
	object-fit: cover;
	border-radius: 50%;
}

.imed-group-card .imed-level-head {
	align-items: center;
}

.imed-group-schedule-line {
	margin: 4px 0 0;
	color: #306855;
	font-size: 15px;
	font-weight: 600;
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.imed-group-title {
	margin: 0 0 4px;
}

.imed-group-teacher-row {
	margin: 2px 0 0;
	color: #21644e;
	font-size: 16px;
	font-weight: 700;
}

.imed-teacher-avatar-fallback {
	width: 70px;
	height: 70px;
	border-radius: 50%;
	flex: none;
}

.imed-step2-alt-note {
	margin: -4px 0 10px;
	font-size: 15px;
	font-weight: 600;
	color: #377460;
}

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

.imed-step2-mode-note.is-hidden,
.imed-step2-schedule-wrap.is-hidden,
.imed-alt-observations.is-hidden {
	display: none;
}

.imed-pill-toggle {
	display: inline-flex;
	gap: 10px;
	margin: 8px 0 22px;
}

.imed-pill-toggle button {
	min-width: 82px;
	border-radius: 999px;
	border: 1px solid var(--imed-blue);
	background: #ffffff;
	padding: 8px 14px;
	font-size: 17px;
	font-weight: 700;
	cursor: pointer;
	color: var(--imed-blue);
	box-shadow: 0 2px 6px rgba(var(--imed-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;
}

.imed-pill-toggle button.is-active {
	background: var(--imed-blue);
	color: #fff;
	border-color: var(--imed-blue);
}

.imed-modalidad-box {
	background: #fff;
	padding: 16px;
	border-radius: 14px;
	border: 1px solid var(--imed-border);
	max-width: 980px;
	margin-bottom: 14px;
}

.imed-modalidad-box label {
	display: block;
	font-size: 20px;
	margin-bottom: 10px;
	cursor: pointer;
	color: #355c4f;
}

.imed-textarea {
	width: 100%;
	max-width: 980px;
	border-radius: 14px;
	border: 1px solid #c9e7dd;
	padding: 12px;
	font-size: 18px;
}

.imed-center {
	text-align: center;
}

.imed-terms-box {
	background: #fff;
	border: 1px solid var(--imed-border);
	border-radius: 16px;
	padding: 16px 16px 8px;
	max-width: 1100px;
	margin: 0 auto 12px;
}

.imed-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;
}

.imed-terms-warning a {
	color: #0fc387;
	font-weight: 700;
	text-decoration: underline;
}

.imed-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: #3e6155;
	overscroll-behavior: contain;
	-webkit-overflow-scrolling: touch;
	touch-action: pan-y;
}

.imed-terms-content {
	font-size: 16px;
	line-height: 1.65;
	color: #2e584a;
}

.imed-terms-content :where(h1, h2, h3, h4) {
	color: #184c3b;
	line-height: 1.3;
	margin: 0 0 12px;
}

.imed-terms-content :where(p, li) {
	text-align: justify;
	margin: 0 0 10px;
}

.imed-terms-content :where(strong, b) {
	font-weight: 700 !important;
}

.imed-terms-content :where(ul, ol) {
	margin: 0 0 14px;
	padding-left: 22px;
}

.imed-terms-content blockquote {
	margin: 0 0 14px;
	padding: 10px 14px;
	border-left: 3px solid #a0e8d0;
	background: #f6fffc;
}

.imed-terms-content table {
	width: 100%;
	border-collapse: collapse;
	margin: 0 0 14px;
}

.imed-terms-content table th,
.imed-terms-content table td {
	border: 1px solid #d1f0e6;
	padding: 8px;
	text-align: left;
	vertical-align: top;
}

.imed-checkbox-line {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	font-size: 16px;
	line-height: 1.4;
	margin: 14px auto;
	max-width: 1100px;
}

.imed-checkbox-line > span {
	flex: 1 1 auto;
	min-width: 0;
}

.imed-checkbox-field .imed-checkbox-line {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	max-width: none;
	margin: 4px 0 0;
	font-size: 18px;
}

.imed-checkbox-line input[type="checkbox"] {
	width: 20px;
	height: 20px;
	min-width: 20px;
	min-height: 20px;
	flex: 0 0 20px;
	margin-top: 4px;
	padding: 0;
	border-radius: 6px;
	appearance: auto;
	accent-color: var(--imed-blue);
	border: 1px solid rgba(var(--imed-blue-rgb), 0.45);
	background-color: #ffffff;
	box-shadow: inset 0 0 0 1px rgba(var(--imed-blue-rgb), 0.08);
	cursor: pointer;
	transition: border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

.imed-checkbox-line input[type="checkbox"]:checked {
	border-color: var(--imed-blue);
	background-color: var(--imed-blue);
}

.imed-step4-grid,
.imed-summary-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
}

.imed-panel {
	background: #fff;
	border: 1px solid var(--imed-border);
	border-radius: 16px;
	padding: 18px;
	box-shadow: 0 8px 18px rgba(20, 41, 68, 0.08);
}

.imed-panel.is-soft {
	background: var(--imed-soft-blue);
}

.imed-section-title {
	font-size: 30px;
	margin: 0 0 12px;
	font-weight: 800;
}

.imed-fields-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px 14px;
}

.imed-field,
.imed-field textarea,
.imed-field select {
	width: 100%;
}

.imed-field label,
.imed-field > span {
	display: block;
	font-size: 18px;
	font-weight: 700;
	margin-bottom: 6px;
	color: #34574b;
}

.imed-field input,
.imed-field textarea,
.imed-field select {
	border-radius: 999px;
	border: 1px solid #a0e2cc;
	padding: 10px 14px;
	font-size: 16px;
	background: #fff;
}

.imed-field textarea {
	border-radius: 14px;
	min-height: 92px;
}

.imed-phone-row {
	display: grid;
	grid-template-columns: minmax(128px, 170px) minmax(170px, 1fr);
	gap: 8px;
}

.imed-phone-prefix {
	max-width: 170px;
}

.imed-phone-number {
	max-width: 280px;
}

.imed-field.full {
	grid-column: 1 / -1;
}

.imed-price-note {
	color: var(--imed-blue-dark);
	font-size: 16px;
	margin-top: 6px;
}

.imed-note-success {
	color: #10774a;
}

.imed-note-warning {
	color: #b26100;
}

.imed-note-error {
	color: #b42323;
}

.imed-divider {
	border-top: 1px solid #b5ebd9;
	margin: 16px 0;
}

.imed-summary-list {
	font-size: 20px;
	line-height: 1.45;
}

.imed-summary-list li {
	margin-bottom: 4px;
}

.imed-course-summary-card {
	background: linear-gradient(180deg, #ffffff 0%, #f4fffb 100%);
	border-color: #d0f0e5;
}

.imed-course-summary-head {
	display: flex;
	gap: 14px;
	align-items: flex-start;
	margin-bottom: 10px;
}

.imed-summary-avatar {
	display: inline-grid;
	place-items: center;
	width: 62px;
	height: 62px;
	border-radius: 14px;
	background: #ddfef3;
	color: #167555;
	font-size: 22px;
	font-weight: 800;
	flex: none;
	border: 1px solid #baeddc;
	background-size: cover;
	background-position: center;
}

.imed-summary-avatar-level {
	width: 68px;
	height: 68px;
	border-radius: 50%;
}

.imed-summary-avatar.is-image {
	color: transparent;
}

.imed-summary-avatar-teacher {
	width: 46px;
	height: 46px;
	border-radius: 50%;
	font-size: 18px;
}

.imed-course-summary-title-wrap {
	min-width: 0;
}

.imed-course-summary-title {
	font-size: 22px;
	line-height: 1.25;
	margin: 2px 0 8px;
}

.imed-course-summary-teacher {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 8px;
}

.imed-course-summary-kicker {
	font-size: 15px;
	color: #628e7f;
	font-weight: 700;
	margin: 0;
}

.imed-course-summary-name {
	font-size: 18px;
	font-weight: 700;
	margin: 0;
	color: #203c33;
}

.imed-highlight {
	color: #0dc487;
}

.imed-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;
}

.imed-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;
}

.imed-modal-title {
	font-size: 30px;
	font-weight: 800;
	text-align: center;
	margin-bottom: 10px;
}

.imed-signature-canvas {
	width: 100%;
	height: 220px;
	border-radius: 12px;
	border: 2px solid #4a5663;
	background: #f8fffd;
	touch-action: none;
	display: block;
}

.imed-modal-close {
	position: absolute;
	top: 8px;
	right: 10px;
	border: 0;
	background: transparent;
	font-size: 30px;
	cursor: pointer;
	color: #4d7165;
}

.imed-modal .imed-checkbox-line {
	font-size: 16px;
	max-width: none;
	margin: 10px 0;
}

.imed-modal .imed-checkbox-line input[type="checkbox"] {
	width: 18px;
	height: 18px;
	min-width: 18px;
	flex: 0 0 18px;
	margin-top: 3px;
}

.imed-sign-submit-loading {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 12px auto 0;
	padding: 8px 12px;
	border-radius: 999px;
	background: #eefff9;
	border: 1px solid #c9f7e8;
	color: #255f4c;
	font-size: 14px;
	font-weight: 600;
}

.imed-sign-spinner {
	display: inline-block;
	width: 16px;
	height: 16px;
	border-radius: 50%;
	border: 2px solid #9eeed3;
	border-top-color: var(--imed-blue);
	animation: imedSpin 0.85s linear infinite;
}

.imed-sign-spinner-inline {
	margin-right: 8px;
	vertical-align: middle;
	border-color: rgba(255, 255, 255, 0.45);
	border-top-color: #ffffff;
}

@keyframes imedSpin {
	from {
		transform: rotate(0deg);
	}
	to {
		transform: rotate(360deg);
	}
}

.imed-success-card {
	max-width: 920px;
	background: #fff;
	border-radius: 18px;
	padding: 30px 24px;
	margin: 36px auto 24px;
	text-align: center;
	border: 1px solid var(--imed-border);
}

.imed-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;
}

.imed-contact-box {
	text-align: center;
	font-size: 18px;
	font-weight: 600;
	color: #33594c;
}

.imed-contact-box p {
	font-weight: 500;
	font-size: 18px;
}

.imed-info-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
	gap: 16px;
}

.imed-info-card {
	background: #fff;
	border-radius: 14px;
	border: 1px solid var(--imed-border);
	padding: 16px;
	box-shadow: 0 10px 20px rgba(22, 42, 69, 0.08);
}

.imed-info-card h3 {
	margin: 10px 0 4px;
	font-size: 25px;
}

.imed-info-card p {
	font-size: 20px;
}

.imed-info-card .imed-btn {
	width: 100%;
	margin-top: 10px;
}

.imed-input-error {
	border-color: #d62a2a !important;
}

.imed-focusable:focus-visible,
.imed-btn:focus-visible,
.imed-btn-primary:focus-visible,
.imed-btn-ghost:focus-visible,
.imed-back-btn:focus-visible,
.imed-pill-toggle button:focus-visible,
.imed-checkbox-line input:focus-visible {
	outline: 3px solid var(--imed-blue-dark);
	outline-offset: 2px;
}

@media (max-width: 1200px) {
	.imed-wizard-host {
		padding-right: 0;
	}

	.imed-floating-support {
		position: sticky;
		top: 10px;
		right: auto;
		width: 100%;
		margin: 0 0 12px;
		z-index: 30;
	}

	.imed-cards-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.imed-level-cards-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.imed-step4-grid,
	.imed-summary-grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 860px) {
	.imed-body {
		padding: 16px;
	}

	.imed-floating-support {
		padding: 10px;
		border-radius: 12px;
	}

	.imed-floating-support-link {
		font-size: 12px;
	}

	.imed-top-meta {
		align-items: flex-start;
	}

	.imed-top-meta-right {
		align-items: flex-end;
		max-width: 72%;
	}

	.imed-top-support {
		align-items: flex-end;
	}

	.imed-top-support-phone,
	.imed-top-support-hours {
		text-align: right;
	}

	.imed-stepper-mobile-meta {
		display: block;
	}

	.imed-stepper {
		display: block;
		background: transparent;
		border-bottom: 0;
	}

	.imed-step {
		display: none;
		font-size: 15px;
		padding: 10px 12px;
		border-radius: 10px;
		margin: 8px 10px;
	}

	.imed-step.is-current {
		display: block;
	}

	.imed-step::after {
		display: none;
	}

	.imed-cards-grid,
	.imed-fields-grid {
		grid-template-columns: 1fr;
	}

	.imed-phone-row {
		grid-template-columns: 1fr;
	}

	.imed-phone-prefix,
	.imed-phone-number {
		max-width: none;
	}

	.imed-title,
	.imed-section-title,
	.imed-level-card-title,
	.imed-level-card-subtitle,
	.imed-help-block h3,
	.imed-modal-title,
	.imed-info-card h3 {
		font-size: 24px;
	}

	.imed-subtitle {
		font-size: 20px;
	}

	.imed-level-desc,
	.imed-help-block p,
	.imed-modalidad-box label,
	.imed-field label,
	.imed-field > span,
	.imed-summary-list,
	.imed-contact-box,
	.imed-contact-box p,
	.imed-info-card p {
		font-size: 18px;
	}

	.imed-btn,
	.imed-btn-primary,
	.imed-btn-ghost,
	.imed-row-meta,
	.imed-madrid-time,
	.imed-back-btn,
	.imed-field input,
	.imed-field textarea,
	.imed-field select {
		font-size: 16px;
	}

	.imed-course-summary-title {
		font-size: 20px;
	}

	.imed-course-summary-name {
		font-size: 16px;
	}

	.imed-price-note,
	.imed-checkbox-line,
	.imed-modal .imed-checkbox-line,
	.imed-step-label {
		font-size: 16px;
	}

	.imed-progress-label {
		font-size: 12px;
	}

	.imed-terms-scroll {
		max-height: 360px;
		font-size: 16px;
	}
}

@media (max-width: 640px) {
	.imed-wizard {
		border-radius: 12px;
		padding-bottom: 18px;
	}

	.imed-body {
		padding: 14px 12px 0;
	}

	.imed-title,
	.imed-section-title,
	.imed-level-card-title,
	.imed-level-card-subtitle {
		font-size: 22px;
	}

	.imed-subtitle {
		font-size: 18px;
		margin-bottom: 16px;
	}

	.imed-top-meta {
		flex-wrap: wrap;
		gap: 10px;
	}

	.imed-top-meta-right {
		width: 100%;
		max-width: none;
		align-items: flex-start;
	}

	.imed-top-support {
		align-items: flex-start;
	}

	.imed-top-support-phone,
	.imed-top-support-hours {
		text-align: left;
	}

	.imed-btn,
	.imed-btn-primary,
	.imed-btn-ghost {
		width: 100%;
	}

	.imed-checkbox-line {
		font-size: 15px;
	}

	.imed-terms-box {
		padding: 12px 12px 6px;
	}

	.imed-terms-scroll {
		max-height: 50vh;
	}

	.imed-modal {
		padding: 16px 12px;
		border-radius: 12px;
	}

	.imed-signature-canvas {
		height: 180px;
	}

	.imed-floating-support {
		width: 100%;
	}
}

/* Visual style overrides */
.imed-wizard-host,
.imed-info-grid {
	--imed-blue: #009664;
	--imed-blue-dark: #007a52;
	--imed-blue-rgb: 0, 150, 100;
	--imed-blue-dark-rgb: 0, 122, 82;
	--imed-soft-blue: rgba(var(--imed-blue-rgb), 0.08);
	--imed-soft-blue-strong: rgba(var(--imed-blue-rgb), 0.18);
	--imed-glow: 0 0 0 1px rgba(var(--imed-blue-rgb), 0.2),
		0 22px 40px rgba(var(--imed-blue-dark-rgb), 0.2);
}

.imed-wizard {
	position: relative;
	isolation: isolate;
	background: radial-gradient(circle at 18% -12%, rgba(var(--imed-blue-rgb), 0.24), transparent 34%),
		radial-gradient(circle at 92% 110%, rgba(var(--imed-blue-rgb), 0.2), transparent 38%),
		linear-gradient(145deg, #f7fffc 0%, #edfdf8 48%, #f5fffc 100%);
	box-shadow: var(--imed-glow);
}

.imed-wizard::before,
.imed-wizard::after {
	content: "";
	position: absolute;
	z-index: 0;
	border-radius: 999px;
	pointer-events: none;
	filter: blur(0.2px);
}

.imed-wizard::before {
	top: -86px;
	right: -86px;
	width: 210px;
	height: 210px;
	background: radial-gradient(circle at center, rgba(var(--imed-blue-rgb), 0.3), rgba(var(--imed-blue-rgb), 0));
	animation: imedFloatGlow 8s ease-in-out infinite;
}

.imed-wizard::after {
	bottom: -120px;
	left: -100px;
	width: 240px;
	height: 240px;
	background: radial-gradient(circle at center, rgba(var(--imed-blue-rgb), 0.2), rgba(var(--imed-blue-rgb), 0));
	animation: imedFloatGlow 10s ease-in-out infinite reverse;
}

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

.imed-bottom-support {
	position: relative;
	z-index: 0;
}

@keyframes imedFloatGlow {
	0% {
		transform: translate(0, 0) scale(1);
	}
	50% {
		transform: translate(12px, -10px) scale(1.04);
	}
	100% {
		transform: translate(0, 0) scale(1);
	}
}

.imed-stepper {
	background: linear-gradient(
		180deg,
		rgba(var(--imed-blue-rgb), 0.1) 0%,
		rgba(var(--imed-blue-rgb), 0.16) 100%
	);
}

.imed-step {
	font-size: 15px;
	letter-spacing: 0.01em;
}

.imed-step.is-active,
.imed-step.is-complete {
	background: linear-gradient(180deg, var(--imed-blue), var(--imed-blue-dark));
	box-shadow: inset 0 -1px 0 rgba(255, 255, 255, 0.2);
}

.imed-top-meta {
	margin-bottom: 18px;
}

.imed-madrid-time {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: #ffffff;
	border: 1px solid rgba(var(--imed-blue-rgb), 0.3);
	border-radius: 999px;
	padding: 8px 14px;
	font-size: 14px;
	font-weight: 700;
	color: var(--imed-blue-dark);
	box-shadow: 0 8px 16px rgba(var(--imed-blue-rgb), 0.14);
}

.imed-top-meta-right {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 6px;
}

.imed-top-support {
	background: #ffffff;
	border: 1px solid rgba(var(--imed-blue-rgb), 0.24);
	border-radius: 12px;
	padding: 7px 10px;
	box-shadow: 0 6px 14px rgba(var(--imed-blue-rgb), 0.12);
}

.imed-top-support-phone {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: var(--imed-blue-dark);
	font-weight: 800;
	font-size: 13px;
	text-decoration: none;
}

.imed-top-support-hours {
	font-size: 11px;
	color: #477d6b;
	font-weight: 600;
}

.imed-progress-wrap {
	background: linear-gradient(
		180deg,
		rgba(var(--imed-blue-rgb), 0.08) 0%,
		rgba(var(--imed-blue-rgb), 0.13) 100%
	);
}

.imed-title {
	color: #123f30;
}

.imed-subtitle {
	color: #396f5d;
	font-size: 20px;
}

.imed-card {
	position: relative;
	border-radius: 18px;
	border: 1px solid #caf7e8;
	box-shadow: 0 14px 24px rgba(22, 44, 69, 0.09);
	animation: imedCardEnter 0.45s ease both;
	animation-delay: calc(var(--imed-item-index, 0) * 80ms);
}

.imed-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 22px 32px rgba(16, 38, 62, 0.16);
}

.imed-group-card.is-selected {
	border-color: var(--imed-blue);
	box-shadow: 0 0 0 2px rgba(var(--imed-blue-rgb), 0.2), 0 16px 30px rgba(var(--imed-blue-rgb), 0.18);
}

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

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

@keyframes imedCardEnter {
	from {
		opacity: 0;
		transform: translateY(8px) scale(0.995);
	}
	to {
		opacity: 1;
		transform: translateY(0) scale(1);
	}
}

.imed-level-avatar {
	border-radius: 50%;
	border: 1px solid #c7f6e6;
	background: linear-gradient(145deg, var(--imed-blue), var(--imed-blue-dark));
	box-shadow: 0 10px 16px rgba(var(--imed-blue-rgb), 0.26);
}

.imed-card-actions {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 8px;
}

.imed-card-actions .imed-btn,
.imed-card-actions .imed-btn-ghost {
	width: 100%;
}

.imed-btn-ghost {
	background: #ffffff;
	border-color: var(--imed-blue);
}

.imed-level-card .imed-btn-ghost:hover:not(:disabled),
.imed-level-card .imed-btn-ghost:focus-visible:not(:disabled) {
	background: var(--imed-blue);
	border-color: var(--imed-blue);
	color: #ffffff;
	box-shadow: 0 8px 16px rgba(var(--imed-blue-rgb), 0.28);
}

.imed-level-card-subtitle {
	color: #31715c;
	font-size: 18px;
}

.imed-level-desc {
	font-size: 17px;
}

.imed-row-meta {
	padding: 10px 12px;
	background: rgba(var(--imed-blue-rgb), 0.08);
	border: 1px solid rgba(var(--imed-blue-rgb), 0.18);
	border-radius: 12px;
}

.imed-group-card img {
	border-radius: 50%;
	border: 1px solid #c6f6e6;
}

.imed-group-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 8px 0 6px;
}

.imed-chip {
	display: inline-flex;
	align-items: center;
	padding: 4px 10px;
	border-radius: 999px;
	background: rgba(var(--imed-blue-rgb), 0.1);
	border: 1px solid rgba(var(--imed-blue-rgb), 0.2);
	font-size: 12px;
	font-weight: 700;
	color: #217358;
}

.imed-chip-shift {
	gap: 6px;
}

.imed-group-select-btn {
	background: #ffffff;
	color: var(--imed-blue);
	border: 1px solid var(--imed-blue);
	box-shadow: 0 2px 6px rgba(var(--imed-blue-rgb), 0.12);
}

.imed-group-select-btn:hover {
	background: var(--imed-blue);
	color: #ffffff;
	border-color: var(--imed-blue);
	box-shadow: 0 8px 16px rgba(var(--imed-blue-rgb), 0.22);
}

.imed-group-select-btn.is-selected {
	background: var(--imed-blue);
	color: #ffffff;
	border-color: var(--imed-blue);
	box-shadow: 0 8px 16px rgba(var(--imed-blue-rgb), 0.28);
}

.imed-groups-grid .imed-card {
	animation: none;
}

.imed-support-card {
	margin-top: 22px;
	padding: 22px;
	border-radius: 18px;
	border: 1px solid #ccf8e9;
	background: linear-gradient(145deg, #ffffff 0%, #f2fffb 100%);
	box-shadow: 0 14px 28px rgba(24, 45, 69, 0.1);
}

.imed-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: #e9fef7;
	border: 1px solid #bbf9e4;
	color: #119166;
	margin: 0 0 8px;
}

.imed-support-card h3 {
	font-size: 28px;
	margin: 0 0 10px;
	color: #15533e;
}

.imed-support-card p {
	margin: 0 0 8px;
	font-size: 17px;
	color: #376c5a;
}

.imed-support-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 14px 0;
}

.imed-support-meta {
	padding-top: 8px;
	border-top: 1px solid #d8f8ed;
}

.imed-help-tip {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 19px;
	height: 19px;
	margin-left: 8px;
	border-radius: 50%;
	background: rgba(var(--imed-blue-rgb), 0.12);
	border: 1px solid rgba(var(--imed-blue-rgb), 0.32);
	color: var(--imed-blue-dark);
	font-size: 12px;
	font-weight: 800;
	line-height: 1;
	cursor: help;
	vertical-align: middle;
	box-shadow: 0 6px 14px rgba(var(--imed-blue-rgb), 0.12);
}

.imed-help-tip:focus-visible {
	outline: 2px solid var(--imed-blue);
	outline-offset: 2px;
}

.imed-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: var(--imed-blue-dark);
	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;
}

.imed-help-tip:hover::after,
.imed-help-tip:focus-visible::after {
	opacity: 1;
	transform: translateX(-50%) translateY(0);
}

.imed-label-with-help {
	display: inline-flex;
	align-items: center;
	flex-wrap: wrap;
}

.imed-panel-student {
	background: linear-gradient(145deg, #ffffff 0%, #f6fffc 100%);
	border-color: #c8f6e7;
}

.imed-payment-panel {
	background: linear-gradient(145deg, #eefff9 0%, #f7fffc 100%);
	border-color: #c9f7e8;
}

.imed-field input,
.imed-field textarea,
.imed-field select {
	border-radius: 12px;
	border-color: #a0e5ce;
}

.imed-panel-student .imed-field input,
.imed-panel-student .imed-field textarea,
.imed-panel-student .imed-field select,
.imed-payment-panel .imed-field input,
.imed-payment-panel .imed-field textarea,
.imed-payment-panel .imed-field select {
	border-radius: 999px;
}

.imed-panel-student .imed-field textarea,
.imed-payment-panel .imed-field textarea {
	border-radius: 999px;
	padding-top: 14px;
	padding-bottom: 14px;
}

.imed-field input:focus,
.imed-field textarea:focus,
.imed-field select:focus {
	border-color: var(--imed-blue);
	box-shadow: 0 0 0 3px rgba(var(--imed-blue-rgb), 0.16);
	outline: 0;
}

.imed-summary-grid .imed-panel {
	border-radius: 18px;
}

@media (max-width: 860px) {
	.imed-madrid-time {
		font-size: 12px;
		padding: 6px 10px;
	}

	.imed-card-actions {
		grid-template-columns: 1fr;
	}

	.imed-support-card h3 {
		font-size: 22px;
	}
}

/* Typography scale */
.imed-title {
	font-size: 30px;
	font-weight: 700;
	line-height: 1.2;
}

.imed-section-title,
.imed-level-card-title,
.imed-group-title,
.imed-modal-title {
	font-size: 20px;
	font-weight: 800;
	line-height: 1.25;
}

.imed-subtitle,
.imed-level-card-subtitle {
	font-size: 18px;
	font-weight: 600;
	line-height: 1.35;
}

.imed-level-desc,
.imed-group-schedule-line,
.imed-price-note,
.imed-summary-list,
.imed-terms-content,
.imed-terms-scroll,
.imed-modalidad-box label,
.imed-success-card p,
.imed-course-summary-kicker,
.imed-course-summary-name {
	font-size: 16px;
	font-weight: 300;
	line-height: 1.5;
}

.imed-field label,
.imed-field > span,
.imed-field input,
.imed-field textarea,
.imed-field select,
.imed-checkbox-line {
	font-size: 16px;
}

@media (max-width: 860px) {
	.imed-title {
		font-size: 24px;
	}

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

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

	.imed-summary-avatar-level {
		width: 62px;
		height: 62px;
	}

	.imed-section-title,
	.imed-level-card-title,
	.imed-group-title,
	.imed-modal-title {
		font-size: 18px;
	}

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

	.imed-level-desc,
	.imed-group-schedule-line,
	.imed-price-note,
	.imed-summary-list,
	.imed-terms-content,
	.imed-terms-scroll,
	.imed-modalidad-box label,
	.imed-success-card p,
	.imed-course-summary-kicker,
	.imed-course-summary-name,
	.imed-field label,
	.imed-field > span,
	.imed-field input,
	.imed-field textarea,
	.imed-field select,
	.imed-checkbox-line {
		font-size: 15px;
	}
}

@media (max-width: 640px) {
	.imed-title {
		font-size: 22px;
	}

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

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

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

	.imed-summary-avatar-level {
		width: 56px;
		height: 56px;
	}

	.imed-section-title,
	.imed-level-card-title,
	.imed-group-title,
	.imed-modal-title {
		font-size: 17px;
	}

	.imed-subtitle,
	.imed-level-card-subtitle {
		font-size: 15px;
	}

	.imed-level-desc,
	.imed-group-schedule-line,
	.imed-price-note,
	.imed-summary-list,
	.imed-terms-content,
	.imed-terms-scroll,
	.imed-modalidad-box label,
	.imed-success-card p,
	.imed-course-summary-kicker,
	.imed-course-summary-name,
	.imed-field label,
	.imed-field > span,
	.imed-field input,
	.imed-field textarea,
	.imed-field select,
	.imed-checkbox-line {
		font-size: 14px;
	}
}

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

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

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

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

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

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

.imed-bottom-support-agent-name {
	font-size: 18px;
	font-weight: 700;
	color: #195e47;
}

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

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

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

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

.imed-bottom-support-hours {
	margin: 0;
	font-size: 16px;
	font-weight: 500;
	color: #417c68;
}

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

.imed-pill-toggle button {
	color: var(--imed-blue);
	border-color: var(--imed-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;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

/* Requested white surfaces and summary/mobile adjustments */
.imed-wizard {
	background: #ffffff;
}

.imed-stepper,
.imed-stepper-mobile-meta,
.imed-progress-wrap {
	background: #ffffff;
	border-color: rgba(var(--imed-blue-rgb), 0.14);
}

.imed-progress-track {
	background: #ffffff;
	border: 1px solid rgba(var(--imed-blue-rgb), 0.16);
}

.imed-progress-fill {
	box-shadow: 0 0 14px rgba(var(--imed-blue-rgb), 0.22);
}

.imed-course-summary-description,
.imed-course-summary-description p,
.imed-course-summary-description li {
	text-align: justify;
}

.imed-course-summary-description ul,
.imed-course-summary-description ol {
	margin-left: 20px;
}

.imed-student-summary-panel {
	border-color: rgba(var(--imed-blue-rgb), 0.22);
	background: linear-gradient(180deg, rgba(var(--imed-blue-rgb), 0.06) 0%, #ffffff 100%);
}

.imed-student-summary-panel .imed-summary-list,
.imed-student-summary-panel .imed-student-summary-item {
	color: #485560;
}

.imed-student-summary-panel .imed-summary-label {
	color: #485560;
	font-weight: 600;
}

.imed-student-summary-panel .imed-highlight {
	color: var(--imed-blue);
	font-weight: 700;
}

.imed-level-select-cta {
	display: none;
	pointer-events: none;
	user-select: none;
}

.imed-level-card.is-selected .imed-level-select-cta {
	background: linear-gradient(
		180deg,
		var(--imed-level-accent, var(--imed-blue)),
		var(--imed-level-accent-dark, var(--imed-blue-dark))
	);
	border-color: transparent;
	color: #ffffff;
}

.imed-card-hover-cta {
	position: absolute;
	top: 50%;
	left: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 118px;
	padding: 12px 22px;
	border-radius: 999px;
	border: 1px solid transparent;
	color: #ffffff;
	font-size: 14px;
	font-weight: 800;
	letter-spacing: 0.02em;
	opacity: 0;
	pointer-events: none;
	user-select: none;
	z-index: 4;
	transform: translate(-50%, -50%) scale(0.84);
	transform-origin: center;
	transition: opacity 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease;
	box-shadow: 0 14px 26px rgba(15, 33, 58, 0.18);
}

.imed-level-card-hover-cta {
	background: linear-gradient(
		180deg,
		var(--imed-level-accent, var(--imed-blue)),
		var(--imed-level-accent-dark, var(--imed-blue-dark))
	);
}

.imed-group-card-hover-cta {
	background: linear-gradient(180deg, var(--imed-blue), var(--imed-blue-dark));
}

@media (hover: hover) and (pointer: fine) {
	.imed-level-card:hover .imed-card-hover-cta,
	.imed-level-card:focus-visible .imed-card-hover-cta,
	.imed-group-card:hover .imed-card-hover-cta,
	.imed-group-card:focus-visible .imed-card-hover-cta {
		opacity: 1;
		transform: translate(-50%, -50%) scale(1);
		box-shadow: 0 18px 30px rgba(15, 33, 58, 0.22);
	}
}

@media (max-width: 860px) {
	.imed-level-select-cta {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 100%;
		margin-top: 8px;
		padding: 10px 14px;
		border-radius: 999px;
		border: 1px solid rgba(var(--imed-level-accent-rgb, var(--imed-blue-rgb)), 0.24);
		background: #ffffff;
		color: var(--imed-level-accent-dark, var(--imed-blue-dark));
		font-size: 15px;
		font-weight: 800;
		letter-spacing: 0.01em;
		box-shadow: 0 10px 20px rgba(var(--imed-level-accent-rgb, var(--imed-blue-rgb)), 0.12);
	}

	.imed-card-hover-cta {
		display: none;
	}
}
