/* INFAP single course — sidebar + tabs + IRFID-inspired highlights */

.infap-course-pitch {
	margin: 8px 0 0;
	max-width: 42rem;
	font-size: 16px;
	line-height: 1.55;
	color: #ffffff;
}

.infap-course-highlights {
	display: flex;
	flex-direction: column;
	gap: 22px;
	margin: 28px 0 8px;
	padding-top: 8px;
	border-top: 1px solid #e3e8ef;
}

.infap-highlights__title {
	margin: 0 0 10px;
	font-size: 20px;
	font-weight: 700;
	color: #0b3459;
	line-height: 1.3;
}

.infap-highlights__body {
	font-size: 15px;
	line-height: 1.65;
	color: #243447;
}

.infap-highlights__body ol,
.infap-highlights__body ul {
	margin: 0;
	padding-left: 1.25em;
}

.infap-highlights__body li {
	margin: 0.4em 0;
}

.infap-highlights__learn .infap-highlights__body ol {
	list-style: none;
	padding-left: 0;
	counter-reset: infap-learn;
}

.infap-highlights__learn .infap-highlights__body ol li {
	counter-increment: infap-learn;
	position: relative;
	padding-left: 2.1em;
	margin: 0.55em 0;
}

.infap-highlights__learn .infap-highlights__body ol li::before {
	content: counter(infap-learn);
	position: absolute;
	left: 0;
	top: 0.05em;
	width: 1.55em;
	height: 1.55em;
	border-radius: 50%;
	background: #0b3459;
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.55em;
	text-align: center;
}

.infap-course-instructors {
	margin: 28px 0 8px;
	padding-top: 22px;
	border-top: 1px solid #e3e8ef;
}

.infap-course-instructors__body {
	margin-top: 4px;
}

.infap-instructors-grid {
	display: flex;
	flex-direction: column;
	gap: 28px;
	margin-top: 8px;
}

.infap-instructor-card {
	display: grid;
	grid-template-columns: 120px minmax(0, 1fr);
	gap: 18px 22px;
	align-items: start;
}

.infap-instructor-card__media {
	width: 120px;
}

.infap-instructor-card__photo {
	width: 120px;
	height: 120px;
	border-radius: 50%;
	object-fit: cover;
	display: block;
	background: #e8eef5;
}

.infap-instructor-card__photo--placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 36px;
	font-weight: 700;
	color: #0b3459;
	line-height: 1;
}

.infap-instructor-card__name {
	margin: 0 0 4px;
	font-size: 18px;
	font-weight: 700;
	color: #0b3459;
	line-height: 1.3;
}

.infap-instructor-card__role {
	margin: 0 0 10px;
	font-size: 14px;
	font-weight: 600;
	color: #69a24e;
	line-height: 1.4;
}

.infap-instructor-card__bio {
	font-size: 14px;
	line-height: 1.65;
	color: #334155;
}

.infap-instructor-card__bio p {
	margin: 0 0 0.6em;
}

.infap-instructor-card__bio p:last-child {
	margin-bottom: 0;
}

@media (max-width: 767px) {
	.infap-instructor-card {
		grid-template-columns: 88px minmax(0, 1fr);
		gap: 14px;
	}

	.infap-instructor-card__media,
	.infap-instructor-card__photo {
		width: 88px;
		height: 88px;
	}

	.infap-instructor-card__photo--placeholder {
		font-size: 28px;
	}
}

/* Sticky purchase card (desktop) */
.infap-purchase-card {
	position: sticky;
	top: 96px;
	z-index: 5;
	background: #fff;
	border: 1px solid #e1e7ef !important;
	border-radius: 10px !important;
	box-shadow: 0 10px 28px rgba(11, 52, 89, 0.08);
}

@media (max-width: 1024px) {
	.infap-purchase-card {
		position: static;
		box-shadow: none;
	}
}

.infap-course-sidebar-extras {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin: 12px 0 8px;
}

.infap-duration-variants {
	padding: 14px 16px;
	border: 1px solid #d7e3cf;
	border-radius: 6px;
	background: #f7faf4;
}

.infap-duration-variants__label {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: #0b3459;
	margin-bottom: 10px;
}

.infap-duration-variants__options {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.infap-duration-variants__option {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	padding: 10px 12px;
	border: 1px solid #cfdcc8;
	border-radius: 4px;
	background: #fff;
	cursor: pointer;
	font-size: 14px;
	line-height: 1.3;
	color: #0b3459;
}

.infap-duration-variants__option.is-selected {
	border-color: #69a24e;
	box-shadow: inset 3px 0 0 #69a24e;
	background: #eef6e8;
}

.infap-duration-variants__option input {
	margin: 0;
	accent-color: #69a24e;
}

.infap-duration-variants__hours {
	flex: 1 1 auto;
	font-weight: 600;
}

.infap-duration-variants__price-tag {
	font-weight: 700;
	white-space: nowrap;
}

.infap-duration-variants__summary {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 8px 12px;
	margin-top: 12px;
}

.infap-duration-variants__summary-label {
	font-size: 12px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: #5a6b7a;
}

.infap-variant-price {
	font-size: 22px;
	font-weight: 800;
	color: #0b3459;
}

.infap-variant-regular {
	font-size: 14px;
	color: #7a8794;
	text-decoration: line-through;
}

.infap-duration-variants__note {
	margin: 10px 0 0;
	font-size: 12px;
	line-height: 1.45;
	color: #5a6b7a;
}

.infap-edition-callout {
	background: linear-gradient(135deg, #0b3459 0%, #153f63 100%);
	color: #fff;
	padding: 14px 16px;
	border-radius: 6px;
}

.infap-edition-callout__label {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	opacity: 0.85;
	margin-bottom: 4px;
}

.infap-edition-callout__date {
	font-size: 15px;
	font-weight: 700;
	line-height: 1.35;
}

.infap-edition-callout__seats {
	margin-top: 6px;
	font-size: 13px;
	font-weight: 600;
	color: #c8e6a8;
}

.infap-related-course {
	display: block;
	padding: 12px 14px;
	border: 1px solid #d7e3cf;
	border-left: 4px solid #69a24e;
	border-radius: 4px;
	background: #f7faf4;
	color: #0b3459 !important;
	font-size: 13px;
	font-weight: 600;
	line-height: 1.4;
	text-decoration: none !important;
}

.infap-related-course:hover {
	background: #eef6e8;
}

.infap-course-ctas {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.infap-course-cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 12px 18px;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	text-decoration: none !important;
	border-radius: 4px;
	line-height: 1.2;
	transition: opacity 0.2s ease, transform 0.2s ease;
	flex: 1 1 auto;
	text-align: center;
}

.infap-course-cta:hover {
	opacity: 0.92;
	transform: translateY(-1px);
}

.infap-cta--coupon {
	color: #102b4d !important;
	background: #ffd970;
}

.infap-cta--brochure {
	color: #fff !important;
	background: #dd1d56;
}

.infap-course-tab-body {
	font-size: 15px;
	line-height: 1.65;
}

.infap-course-tab-body h3,
.infap-course-tab-body h4 {
	margin: 0.4em 0 0.6em;
	color: #0b3459;
}

.infap-course-tab-body ul {
	padding-left: 1.2em;
	margin: 0.5em 0 1em;
}

.infap-course-tab-body li {
	margin: 0.35em 0;
}

.infap-course-tab-body .infap-note {
	margin-top: 1em;
	padding: 10px 12px;
	background: #f4f6fa;
	border-radius: 4px;
	font-size: 13px;
}

.infap-sold-out {
	display: flex;
	flex-direction: column;
	gap: 4px;
	margin: 0 0 12px;
	padding: 14px 16px;
	border-radius: 6px;
	background: #fdecea;
	border: 1px solid #e8b4b0;
	color: #6b1d18;
}

.infap-sold-out strong {
	font-size: 14px;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.infap-sold-out span {
	font-size: 13px;
	line-height: 1.45;
}

/* Sold-out: hide CTA/forms only — keep .thim-ekit-single-course__buttons so banner stays visible */
body.infap-course-sold-out .thim-ekit-single-course__buttons form.enroll-course,
body.infap-course-sold-out .thim-ekit-single-course__buttons form[name="enroll-course"],
body.infap-course-sold-out form[name="form-add-item-to-cart"],
body.infap-course-sold-out .wrap-btn-add-course-to-cart,
body.infap-course-sold-out .button-enroll-course,
body.infap-course-sold-out .lp-btn-enroll-course,
body.infap-course-sold-out .lp-btn-add-item-to-cart,
body.infap-course-sold-out .button-purchase-course,
body.infap-course-sold-out .infap-terms-gate,
body.infap-course-sold-out .elementor-widget-shortcode:has(.infap-terms-gate) {
	display: none !important;
}

body.infap-course-sold-out .thim-ekit-single-course__buttons {
	display: block !important;
}

.infap-cf-field input.input-text {
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.infap-checkout-cf-password-note {
	margin: 0 0 1em;
	padding: 10px 12px;
	background: #f4f6fa;
	border-left: 3px solid #1a3a5c;
	font-size: 13px;
	line-height: 1.45;
	color: #333;
}

/* Sold-out watermark (diagonal filigree) — single + archive cards */
body.infap-course-sold-out .infap-purchase-card .thim-ekit-single-course__image,
body.infap-course-sold-out .thim-ekit-single-course__image,
.thim-ekits-course__item.infap-course-sold-out .elementor-widget-thim-loop-item-featured-image,
.thim-ekits-course__item.infap-course-sold-out .elementor-widget-thim-loop-item-featured-image a,
.thim-ekits-course__item.infap-course-sold-out .thim-ekits-course__thumbnail,
.thim-ekits-course__item.infap-course-sold-out .course-thumbnail {
	position: relative;
	overflow: hidden;
}

/* Soft dim over the photo */
body.infap-course-sold-out .infap-purchase-card .thim-ekit-single-course__image::after,
body.infap-course-sold-out .thim-ekit-single-course__image::after,
.thim-ekits-course__item.infap-course-sold-out .elementor-widget-thim-loop-item-featured-image a::after,
.thim-ekits-course__item.infap-course-sold-out .thim-ekits-course__thumbnail::after,
.thim-ekits-course__item.infap-course-sold-out .course-thumbnail::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 3;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	pointer-events: none;
	background: rgba(20, 24, 32, 0.28);
}

/* Filigrana / watermark in alto a sinistra (scheda + card archivio) */
body.infap-course-sold-out .infap-purchase-card .thim-ekit-single-course__image::before,
body.infap-course-sold-out .thim-ekit-single-course__image::before,
.thim-ekits-course__item.infap-course-sold-out .elementor-widget-thim-loop-item-featured-image a::before,
.thim-ekits-course__item.infap-course-sold-out .thim-ekits-course__thumbnail::before,
.thim-ekits-course__item.infap-course-sold-out .course-thumbnail::before {
	content: "Posti esauriti";
	position: absolute;
	top: 12px;
	left: 12px;
	z-index: 4;
	width: auto;
	max-width: calc(100% - 24px);
	margin: 0;
	padding: 7px 12px;
	border: 1px solid rgba(255, 255, 255, 0.55);
	border-radius: 2px;
	background: rgba(107, 29, 24, 0.72);
	color: rgba(255, 255, 255, 0.92);
	font-size: clamp(11px, 1.6vw, 13px);
	font-weight: 700;
	letter-spacing: 0.1em;
	line-height: 1.2;
	text-align: left;
	text-transform: uppercase;
	white-space: nowrap;
	pointer-events: none;
	transform: none;
	box-shadow: 0 1px 6px rgba(0, 0, 0, 0.2);
	opacity: 0.92;
}
