/* Course single-product layout */

.tt-course-page {
	padding-bottom: 124px;
}

.tt-course-page .divider_curves {
	color: var(--beige, #fdefda);
}

.tt-course-page__layout {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 24px 48px;
	margin-bottom: 66px;
}

.tt-course-page__left {
	flex: 0 0 648px;
	max-width: 100%;
	min-width: 0;
}

.tt-course-page__title {
	margin-top: 0;
	margin-bottom: 18px;
	font-family: 'Montserrat', sans-serif;
	font-size: 52px;
	line-height: 60px;
	font-weight: 700;
}

.tt-course-page__right {
	flex: 0 0 493px;
	max-width: 493px;
	width: 100%;
	min-width: 0;
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 0;
}

.tt-course-page__right > .tt-course-page__back-link {
	align-self: flex-end;
	margin-bottom: 13px;
}

.tt-course-page__back-link {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 7px 24px 7px 7px;
	border-radius: 50px;
	background-color: var(--grey, #DADEE1);
	color: var(--font-color, #0A2636);
	font-size: 18px;
	line-height: 20px;
	font-weight: 700;
	text-decoration: none;
	transition: background-color 0.25s ease, color 0.25s ease;
}

.tt-course-page__back-link:hover,
.tt-course-page__back-link:focus-visible {
	background-color: var(--light-green);
	color: var(--green);
}

.tt-course-page__back-link-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background-color: #fff;
	flex-shrink: 0;
	color: inherit;
	position: relative;
	left: 0;
	z-index: 1;
	transition: left 0.35s ease;
}

.tt-course-page__back-link:hover .tt-course-page__back-link-icon,
.tt-course-page__back-link:focus-visible .tt-course-page__back-link-icon {
	left: calc(100% - 23px);
	z-index: 0;
}

.tt-course-page__back-link-text {
	position: relative;
	left: 0;
	z-index: 2;
	transition: left 0.35s ease;
}

.tt-course-page__back-link:hover .tt-course-page__back-link-text,
.tt-course-page__back-link:focus-visible .tt-course-page__back-link-text {
	left: -33px;
}

.tt-course-page__back-link-icon svg {
	display: block;
	width: 25px;
	height: 25px;
}

.tt-course-page__help {
	width: 100%;
	box-sizing: border-box;
	text-align: center;
}

.tt-course-page__photos {
	width: 100%;
	box-sizing: border-box;
	text-align: center;
	margin-bottom: 32px;
}

.tt-course-page__photos-row {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 19px;
	width: 100%;
}

.tt-course-page__photo {
	display: block;
	border-radius: 50%;
	object-fit: cover;
	flex-shrink: 0;
}

.tt-course-page__photo--large {
	width: 273px;
	height: 273px;
	border: 18px solid var(--green);
}

.tt-course-page__photo--small {
	width: 144px;
	height: 144px;
	border: 8px solid var(--blue);
}

.tt-course-page__help-title {
	margin: 0 0 17px;
	font-family: 'LucyCousins', cursive;
	font-size: 24px;
	line-height: 29px;
	color: var(--green);
}

.tt-course-page__help-row {
	display: flex;
	flex-wrap: nowrap;
	align-items: stretch;
	gap: 14px;
	width: 100%;
	box-sizing: border-box;
}

.tt-course-page__help-item {
	box-sizing: border-box;
	flex: 1 1 0;
	min-width: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-start;
	padding: 26px 10px 11px;
	border-radius: 13px;
	border: 1px solid #fff;
	background-color: #fdf2e1;
	text-decoration: none;
	color: var(--font-color, #0A2636);
}

.tt-course-page__help-item:hover,
.tt-course-page__help-item:focus-visible {
	text-decoration: none;
}

.tt-course-page__help-item-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 12px;
	flex-shrink: 0;
}

.tt-course-page__help-item-icon svg {
	display: block;
	width: 58px;
	height: 58px;
	max-width: 100%;
}

.tt-course-page__help-item-text {
	font-size: 14px;
	line-height: 26px;
	color: var(--font-color, #0A2636);
	text-align: center;
}

.tt-course-page__labels {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 16px;
	margin-bottom: 37px;
}

.tt-course-page__label {
	box-sizing: border-box;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 30px;
	padding: 0 18px;
	border-radius: 80px;
	font-size: 20px;
	line-height: 29px;
	font-weight: 700;
	background-color: var(--light-blue);
	color: var(--blue);
}

.tt-course-page__label--level {
	background-color: var(--light-green);
	color: var(--green);
}

.tt-course-page__details {
	margin-top: 24px;
	margin-bottom: 21px;
	padding: 32px 25px;
	border-radius: 15px;
	background-color: #fff;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.tt-course-page__other-dates {
	box-sizing: border-box;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 7px;
	width: 100%;
	padding: 10px;
	border-radius: 15px;
	background-color: #fff;
	color: var(--font-color, #0A2636);
	font-size: 16px;
	line-height: 26px;
	font-weight: 600;
	text-decoration: none;
	transition: color 0.25s ease;
}

.tt-course-page__other-dates:hover,
.tt-course-page__other-dates:focus-visible {
	text-decoration: none;
	color: var(--pink);
}

.tt-course-page__other-dates-text {
	min-width: 0;
	text-align: center;
}

.tt-course-page__other-dates-icon {
	display: inline-flex;
	flex-shrink: 0;
	align-items: center;
	justify-content: center;
	color: inherit;
}

.tt-course-page__other-dates-icon svg {
	display: block;
	width: 25px;
	height: 25px;
}

.tt-course-page__other-dates-icon path {
	fill: currentColor;
}

.tt-course-page__detail-row {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	gap: 16px;
	width: 100%;
	font-size: 16px;
	line-height: 26px;
}

.tt-course-page__detail-row:not(:last-child) {
	padding-bottom: 7px;
	border-bottom: 1px solid var(--light-blue);
}

.tt-course-page__detail-label {
	flex: 0 1 auto;
	min-width: 0;
	font-weight: 400;
	color: var(--font-color, #000);
}

.tt-course-page__detail-label--start-date,
.tt-course-page__detail-label--end-date,
.tt-course-page__detail-label--day-time,
.tt-course-page__detail-label--location,
.tt-course-page__detail-label--price,
.tt-course-page__detail-label--availability {
	display: inline-flex;
	align-items: center;
	gap: 9px;
}

.tt-course-page__detail-label__icon {
	display: flex;
	flex-shrink: 0;
	align-items: center;
	justify-content: center;
}

.tt-course-page__detail-label__icon svg {
	display: block;
	width: 30px;
	height: 30px;
}

.tt-course-page__detail-label__icon path {
	fill: var(--orange);
}

.tt-course-page__detail-value {
	flex: 0 1 auto;
	margin-left: auto;
	text-align: right;
	font-weight: 600;
}

.tt-course-page__detail-value .woocommerce-Price-amount {
	font-weight: inherit;
}

.tt-course-page__included-info {
	margin: 0;
	padding: 0;
	font-size: 12px;
	line-height: 26px;
	text-align: right;
	color: var(--font-color, #000);
}

.tt-course-page__details > .tt-course-page__included-info + .tt-course-page__detail-row {
	margin-top: -12px;
}

.tt-course-page__detail-value--availability {
	display: inline-flex;
	align-items: center;
	justify-content: flex-end;
	gap: 7px;
	font-weight: 600;
	text-align: left;
}

.tt-course-page__availability-indicator {
	box-sizing: content-box;
	width: 15px;
	height: 15px;
	border-radius: 9999px;
	border: 4.5px solid var(--grey, #DADEE1);
	background-color: transparent;
	flex-shrink: 0;
}

.tt-course-page__detail-value--availability.available .tt-course-page__availability-indicator {
	background-color: var(--green, #1FA238);
	border-color: var(--light-green, #DCF1E0);
}

.tt-course-page__detail-value--availability.limited .tt-course-page__availability-text {
	color: var(--orange, #f3950b);
}

.tt-course-page__detail-value--availability.limited .tt-course-page__availability-indicator {
	background-color: var(--orange, #f3950b);
	border-color: var(--light-orange, #fef3e0);
}

.tt-course-page__detail-value--availability.full .tt-course-page__availability-text {
	color: var(--pink, #e4087e);
}

.tt-course-page__detail-value--availability.full .tt-course-page__availability-indicator {
	background-color: var(--pink, #e4087e);
	border-color: var(--light-pink, #fbdaec);
}

.tt-course-page__details-cta {
	margin-top: 11px;
}

.tt-course-page__details-cta .button {
	width: 100%;
	box-sizing: border-box;
	text-align: center;
}

/* --- Lesson schedule (below two-column layout) --- */

.tt-course-page__schedule {
	margin-bottom: 66px;
}

.tt-course-page .tt-course-page__schedule-heading {
	margin: 0 0 21px;
	font-family: 'Montserrat', sans-serif;
	font-size: 20px;
	line-height: 29px;
	font-weight: 700;
	color: var(--font-color, #0a2636);
}

.tt-course-page__schedule-row {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 26px;
}

.tt-course-page__schedule-box-wrap {
	flex: 1 1 auto;
	min-width: 0;
}

.tt-course-page__schedule-box {
	box-sizing: border-box;
	padding: 22px 22px 22px 27px;
	border-radius: 13px;
	border: 2px solid var(--peach-border, #f6d7aa);
	background-color: #fff;
	transition: background-color 0.25s ease, padding-bottom 0.25s ease;
}

.tt-course-page__schedule-box:has(.tt-course-page__schedule-toggle[aria-expanded="true"]) {
	background-color: var(--beige, #fdefda);
	padding-bottom: 30px;
}

.tt-course-page__schedule-toggle {
	box-sizing: border-box;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	width: 100%;
	margin: 0;
	padding: 0;
	border: none;
	font-size: 16px;
	line-height: 28px;
	font-weight: 500;
	text-align: left;
	cursor: pointer;
	transition: padding-bottom 0.2s ease, border-bottom 0.2s ease;
}

.tt-course-page__schedule-toggle[aria-expanded="true"] {
	padding-bottom: 6px;
	border-bottom: 1px solid var(--grey, #dadee1);
}

.tt-course-page__schedule-toggle:hover {
	cursor: pointer;
}

.tt-course-page__schedule-toggle:focus {
	outline: none;
}

.tt-course-page__schedule-toggle:focus-visible {
	outline: 2px solid var(--font-color, #0a2636);
	outline-offset: 2px;
}

.tt-course-page__schedule-toggle-text {
	flex: 1 1 auto;
	min-width: 0;
}

.tt-course-page__schedule-toggle-chevron {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	color: var(--font-color, #0a2636);
	transition: transform 0.2s ease;
}

.tt-course-page__schedule-toggle[aria-expanded="true"] .tt-course-page__schedule-toggle-chevron {
	transform: rotate(180deg);
}

.tt-course-page__schedule-panel {
	padding-top: 23px;
}

.tt-course-page__schedule-panel[hidden] {
	display: none;
}

.tt-course-page__schedule-panel-inner {
	font-size: 16px;
	line-height: 1.5;
}

.tt-course-page__schedule-columns {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	column-gap: 3px;
	row-gap: 0;
}

.tt-course-page__schedule-column {
	flex: 0 1 234px;
	width: 234px;
	max-width: calc(33.33% - 2px);
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.tt-course-page__schedule-date {
	margin: 0;
	padding: 10px;
	border-radius: 3px;
	background-color: var(--schedule-date-bg, #fbe7c9);
	font-size: 16px;
	line-height: 28px;
	font-weight: 500;
	color: #000;
}

.tt-course-page__schedule-deco {
	flex-shrink: 0;
	display: flex;
	align-items: flex-start;
	justify-content: center;
	padding-top: 4px;
}

.tt-course-page__schedule-deco svg {
	display: block;
	width: 71px;
	height: 71px;
}

/* --- Course info (full width below highlights): curves + --lighter-green bg --- */

.tt-course-page__course-info {
	position: relative;
	overflow: visible;
	background-color: var(--lighter-green, #ddf1e1);
	padding: 104px 0;
}

.tt-course-page__course-info .divider_curves {
	color: var(--lighter-green, #ddf1e1);
}

.tt-course-page__course-info-list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.tt-course-page__course-info-list--details {
	display: flex;
	flex-direction: column;
	gap: 13px;
}

.tt-course-page__course-info-item--details {
	display: flex;
	align-items: flex-start;
	gap: 16px;
}

.tt-course-page__course-info-item-icon {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 25px;
	height: 25px;
	color: var(--font-color, #0a2636);
}

.tt-course-page__course-info-item-icon svg {
	display: block;
	width: 25px;
	height: 25px;
}

.tt-course-page__course-info-item--details .tt-course-page__course-info-item-text {
	flex: 1 1 auto;
	min-width: 0;
	font-size: 18px;
	line-height: 27px;
	font-weight: 500;
}

.tt-course-page__course-info-address-line {
	margin: 0;
	font-size: 18px;
	line-height: 27px;
	font-weight: 500;
}

.tt-course-page__course-info-location-text {
	display: flex;
	align-items: flex-start;
	gap: 16px;
}

.tt-course-page__course-info-location-lines {
	display: flex;
	flex-direction: column;
	gap: 0;
}

.tt-course-page__course-info-location-text::before {
	content: '';
	display: inline-block;
	flex-shrink: 0;
	width: 30px;
	height: 30px;
	background-repeat: no-repeat;
	background-size: 30px 30px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30' fill='none'%3E%3Cpath d='M8.25 11.8406C8.25 8.23594 11.2359 5.25 15 5.25C18.7641 5.25 21.75 8.23594 21.75 11.8406C21.75 13.9781 20.6344 16.5984 18.9891 19.2047C17.6625 21.3047 16.1297 23.1797 15 24.4594C13.8703 23.1797 12.3422 21.3094 11.0109 19.2047C9.36563 16.6031 8.25 13.9781 8.25 11.8406ZM15 3C10.0312 3 6 6.95625 6 11.8406C6 17.4328 11.6344 24.1359 13.9875 26.6906C14.5406 27.2906 15.4594 27.2906 16.0125 26.6906C18.3656 24.1359 24 17.4328 24 11.8406C24 6.95625 19.9688 3 15 3ZM13.5 12C13.5 11.6022 13.658 11.2206 13.9393 10.9393C14.2206 10.658 14.6022 10.5 15 10.5C15.3978 10.5 15.7794 10.658 16.0607 10.9393C16.342 11.2206 16.5 11.6022 16.5 12C16.5 12.3978 16.342 12.7794 16.0607 13.0607C15.7794 13.342 15.3978 13.5 15 13.5C14.6022 13.5 14.2206 13.342 13.9393 13.0607C13.658 12.7794 13.5 12.3978 13.5 12ZM18.75 12C18.75 11.0054 18.3549 10.0516 17.6517 9.34835C16.9484 8.64509 15.9946 8.25 15 8.25C14.0054 8.25 13.0516 8.64509 12.3483 9.34835C11.6451 10.0516 11.25 11.0054 11.25 12C11.25 12.9946 11.6451 13.9484 12.3483 14.6517C13.0516 15.3549 14.0054 15.75 15 15.75C15.9946 15.75 16.9484 15.3549 17.6517 14.6517C18.3549 13.9484 18.75 12.9946 18.75 12Z' fill='%23F3950B'/%3E%3C/svg%3E");
}

.tt-course-page__course-info-side--location {
	display: flex;
	flex-direction: row;
	align-items: flex-start;
	justify-content: space-between;
	gap: 20px;
}

.tt-course-page__course-info-side-content--location {
	flex: 1 1 auto;
	min-width: 0;
}

.tt-course-page__course-info-side-map--location {
	flex: 0 0 auto;
}

.tt-course-page__course-info-map-placeholder {
	width: 400px;
	max-width: 100%;
	height: 243px;
	border-radius: 15px;
	background-color: #efe4d0;
}

.tt-course-page__course-info-map-link {
	display: block;
	width: 400px;
	max-width: 100%;
	border-radius: 15px;
	overflow: hidden;
}

.tt-course-page__course-info-map-image {
	display: block;
	width: 100%;
	height: 243px;
	object-fit: cover;
}

.tt-course-page__course-info-inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 700px;
	gap: 24px 48px;
	align-items: start;
}

.tt-course-page__course-info-side {
	min-width: 0;
}

.tt-course-page__course-info-side--location {
	min-width: 0;
}

.tt-course-page__course-info-address-line--street {
	white-space: nowrap;
}

.tt-course-page .tt-course-page__course-info-title {
	margin: 0 0 27px;
	font-family: 'Montserrat', sans-serif;
	font-size: 20px;
	line-height: 29px;
	font-weight: 700;
	color: var(--font-color, #0a2636);
}

.tt-course-page__course-info h2 {
	margin: 0 0 27px;
	font-family: 'Montserrat', sans-serif;
	font-size: 20px;
	line-height: 29px;
	font-weight: 700;
}

.tt-course-page__sticky-cta {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 1000;
	background-color: #fff;
	box-shadow: 0 -3px 2px 0 rgba(0, 0, 0, 0.15);
	padding: 14px 0;
	opacity: 0;
	visibility: hidden;
	transform: translateY(100%);
	pointer-events: none;
	transition: opacity 0.25s ease, transform 0.25s ease, visibility 0.25s ease;
}

.tt-course-page__sticky-cta.is-visible {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
	pointer-events: auto;
}

.tt-course-page__sticky-cta .container {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
}

.tt-course-page__sticky-cta-main {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.tt-course-page__sticky-cta-price {
	font-family: 'Montserrat', sans-serif;
	font-size: 24px;
	line-height: 32px;
	font-weight: 600;
	color: var(--font-color, #0a2636);
}

.tt-course-page__sticky-cta .tt-course-page__included-info {
	margin: 0;
	font-size: 14px;
	line-height: 26px;
}

.tt-course-page__sticky-cta-actions {
	display: flex;
	align-items: center;
	gap: 21px;
	flex-shrink: 0;
}

.tt-course-page__sticky-cta-signup {
	box-sizing: border-box;
	margin: 0;
	width: 336px;
	max-width: 100%;
}

.tt-course-page__sticky-cta-whatsapp {
	display: inline-flex;
	align-items: center;
	flex-direction: row-reverse;
	gap: 8px;
	text-decoration: none;
}

.tt-course-page__sticky-cta-whatsapp-icon {
	display: inline-flex;
	flex-shrink: 0;
}

.tt-course-page__sticky-cta-whatsapp-icon svg {
	display: block;
	width: 48px;
	height: 48px;
}

.tt-course-page__sticky-cta-whatsapp-text {
	display: flex;
	flex-direction: column;
	font-size: 14px;
	line-height: 20px;
	color: var(--font-color, #0a2636);
}

.single-product .ht-ctc-chat {
	display: none !important;
}

.single-product .scroll-to-top {
	bottom: calc(100px + env(safe-area-inset-bottom, 0px));
}

/* --- Course highlights (below lesson schedule): __highlights* + --usps | --takeaways --- */

.tt-course-page__highlights {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px 48px;
	align-items: start;
}

.tt-course-page .tt-course-page__highlights-title {
	margin: 0 0 20px;
	font-family: 'Montserrat', sans-serif;
	font-size: 28px;
	line-height: 36px;
	font-weight: 700;
	color: var(--font-color, #0a2636);
}

.tt-course-page__highlights-list {
	display: flex;
	flex-direction: column;
	gap: 13px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.tt-course-page__highlights-item {
	display: flex;
	align-items: flex-start;
	gap: 16px;
	font-size: 18px;
	line-height: 27px;
	font-weight: 500;
}

.tt-course-page__highlights-item-icon {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 25px;
	height: 25px;
}

.tt-course-page__highlights-item-icon svg {
	display: block;
	width: 25px;
	height: 25px;
}

.tt-course-page__highlights-item-text {
	flex: 1 1 auto;
	min-width: 0;
}

@media (max-width: 991px) {
	.tt-course-page__layout {
		flex-direction: column;
	}

	.tt-course-page__left {
		flex-basis: auto;
		width: 100%;
	}

	.tt-course-page__right {
		flex: 1 1 auto;
		max-width: 100%;
	}

	.tt-course-page__help-row {
		flex-wrap: wrap;
	}

	.tt-course-page__schedule-row {
		flex-direction: column;
		align-items: stretch;
	}

	.tt-course-page__schedule-deco {
		align-self: center;
	}

	.tt-course-page__highlights {
		grid-template-columns: 1fr;
	}

	.tt-course-page__course-info-inner {
		grid-template-columns: 1fr;
	}
}
