/*
 Theme Name:   Woodmart Child
 Description:  Woodmart Child Theme
 Author:       XTemos
 Author URI:   http://xtemos.com
 Template:     woodmart
 Version:      1.0.0
 Text Domain:  woodmart
*/

.myschool-lesson-video__wrapper {
	position: relative;
	background: #111;
}

.myschool-lesson-video {
	background: #111;
}

.myschool-lesson-video__button {
	position: absolute;
	right: 20px;
	bottom: 20px;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-height: 48px;
	padding: 10px 18px;
	border: 0;
	border-radius: 999px;
	background: rgba( 159, 1, 2, 0.94 );
	box-shadow: 0 4px 18px rgba( 0, 0, 0, 0.25 );
	color: #fff;
	font: inherit;
	font-weight: 600;
	cursor: pointer;
	transition: background-color 0.2s ease, transform 0.2s ease;
}

.myschool-lesson-video__button:hover,
.myschool-lesson-video__button:focus-visible {
	background: #7f0102;
	transform: translateY( -1px );
}

.myschool-lesson-video__button:focus-visible {
	outline: 3px solid #fff;
	outline-offset: 3px;
}

.myschool-lesson-video__button:disabled {
	cursor: wait;
	opacity: 0.8;
}

.myschool-lesson-video__play {
	width: 0;
	height: 0;
	border-top: 7px solid transparent;
	border-bottom: 7px solid transparent;
	border-left: 11px solid currentcolor;
}

@media ( max-width: 767px ) {
	.myschool-lesson-video__button {
		right: 12px;
		bottom: 12px;
		min-height: 44px;
		padding: 8px 14px;
		font-size: 14px;
	}
}

@media ( prefers-reduced-motion: reduce ) {
	.myschool-lesson-video__button {
		transition: none;
	}
}

/* Lead popup: one decisive field, clear promise, and no visual white strip. */
#elementor-popup-modal-2160 {
	--popup-blue: #07135f;
}

@keyframes myschool-popup-appear {
	from {
		opacity: 0;
		transform: translateY(8px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

#elementor-popup-modal-2160 .dialog-widget-content,
#elementor-popup-modal-2160 .dialog-widget-content.animated {
	animation: myschool-popup-appear 220ms cubic-bezier(0.22, 1, 0.36, 1) both !important;
}

#elementor-popup-modal-2160 .dialog-widget-content {
	max-width: 640px;
	max-height: none;
	height: auto !important;
	scrollbar-gutter: auto !important;
	border-radius: 24px;
	background: #fff;
	box-shadow: 0 24px 80px rgba(0, 0, 0, 0.36);
	overflow: hidden;
}

#elementor-popup-modal-2160 .dialog-message {
	padding: 0;
	scrollbar-width: none;
	width: 100% !important;
	scrollbar-gutter: auto !important;
}

#elementor-popup-modal-2160 .elementor.elementor-2160.elementor-location-popup {
	height: auto !important;
	min-height: 0 !important;
	max-height: none !important;
	overflow: visible !important;
}

#elementor-popup-modal-2160 .dialog-message::-webkit-scrollbar {
	display: none;
	width: 0;
	height: 0;
}

@media (min-width: 768px) {
	#elementor-popup-modal-2160 .dialog-widget-content {
		overflow: visible !important;
		padding-right: 0 !important;
	}

	#elementor-popup-modal-2160 .dialog-message {
		overflow: visible !important;
		padding-right: 0 !important;
	}

	#elementor-popup-modal-2160 .dialog-lightbox-message {
		overflow: visible !important;
		padding-right: 0 !important;
	}

	#elementor-popup-modal-2160 .dialog-widget-content::-webkit-scrollbar,
	#elementor-popup-modal-2160 .dialog-message::-webkit-scrollbar,
	#elementor-popup-modal-2160 .dialog-lightbox-message::-webkit-scrollbar {
		display: none;
		width: 0;
		height: 0;
	}
}

#elementor-popup-modal-2160 .elementor-element-0d26556 {
	position: relative;
	width: 100% !important;
	align-items: stretch !important;
	min-height: 0 !important;
	padding: 32px 40px !important;
	background: #fff !important;
}

#elementor-popup-modal-2160 .elementor-element-0d26556 > .elementor-element-1d22e5a,
#elementor-popup-modal-2160 .elementor-element-0d26556 > .elementor-element-1ea4ffe {
	width: 100% !important;
	max-width: 520px;
	margin-right: auto !important;
	margin-left: auto !important;
}

#elementor-popup-modal-2160 .elementor-element-1ea4ffe,
#elementor-popup-modal-2160 .elementor-widget-form,
#elementor-popup-modal-2160 .elementor-element-1ea4ffe .elementor-widget-container,
#elementor-popup-modal-2160 .elementor-element-1ea4ffe .elementor-form {
	width: 100% !important;
	flex: 0 0 100% !important;
	align-self: stretch !important;
	max-width: none !important;
}

#elementor-popup-modal-2160 .elementor-element-0d26556::before {
	position: absolute;
	top: -8%;
	right: -4%;
	width: 42%;
	height: 116%;
	background: url('/wp-content/uploads/2024/10/1786f9a6-6973-4cbd-b9f2-a6ee281d08d5.jpeg') center / cover no-repeat;
	content: "";
	filter: blur(7px);
	opacity: 0.13;
	pointer-events: none;
}

#elementor-popup-modal-2160 .elementor-element-0d26556 > * {
	position: relative;
	z-index: 1;
}

#elementor-popup-modal-2160 .elementor-element-1d22e5a {
	margin: 0 0 6px !important;
}

#elementor-popup-modal-2160 .elementor-heading-title {
	color: #07135f !important;
}

#elementor-popup-modal-2160 .myschool-popup-title__sub {
	display: inline-block;
	margin-top: 4px;
	font-size: 0.56em;
	font-weight: 500;
	line-height: 1.25;
	opacity: 0.86;
}

#elementor-popup-modal-2160 .elementor-form .elementor-field-group {
	margin-bottom: 0;
}

#elementor-popup-modal-2160 .elementor-form {
	row-gap: 6px !important;
}

#elementor-popup-modal-2160 .elementor-field {
	min-height: 18px;
	border: 1px solid #d9dfec;
	background: #f8f9fc;
	color: #17203b;
	box-sizing: border-box;
}

#elementor-popup-modal-2160 .elementor-field-group-field_d91cf4a {
	margin-bottom: 12px !important;
}

#elementor-popup-modal-2160 .elementor-field-group-field_d91cf4a .elementor-field {
	width: 100%;
	height: 48px;
	min-height: 48px;
	padding: 12px 14px;
	font-size: 16px !important;
	line-height: 1.4;
	-webkit-appearance: none;
	appearance: none;
}

#elementor-popup-modal-2160 .elementor-field:focus {
	border-color: #07135f;
	box-shadow: 0 0 0 3px rgba(7, 19, 95, 0.14);
}

#elementor-popup-modal-2160 .elementor-field-type-acceptance {
	margin-top: 8px;
	margin-bottom: 20px !important;
	color: #4d5870 !important;
	line-height: 1.3;
	font-size: 12px;
}

#elementor-popup-modal-2160 .elementor-field-type-acceptance label,
#elementor-popup-modal-2160 .elementor-field-type-acceptance .elementor-field-option {
	color: #4d5870 !important;
}

#elementor-popup-modal-2160 .elementor-field-type-acceptance a {
	color: #07135f;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.myschool-popup-message-toggle {
	display: inline-flex;
	margin: 6px 0 0;
	padding: 0;
	border: 0;
	background: transparent;
	color: #07135f;
	font: inherit;
	font-size: 13px;
	text-transform: none;
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
}

#elementor-popup-modal-2160 .dialog-close-button,
#elementor-popup-modal-2160 .dialog-close-button i,
#elementor-popup-modal-2160 .dialog-close-button svg {
	color: #07135f !important;
	fill: #07135f !important;
}

#elementor-popup-modal-2160 .elementor-field-group-message[hidden] {
	display: none !important;
}

.myschool-popup-message-toggle:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 4px;
}

@media (max-width: 767px) {
	#elementor-popup-modal-2160 .dialog-widget-content {
		width: calc(100vw - 24px);
		max-height: calc(100vh - 24px);
		overflow: hidden;
		border-radius: 18px;
	}

	#elementor-popup-modal-2160 .elementor-element-0d26556 {
		padding: 34px 20px 28px !important;
	}

	#elementor-popup-modal-2160 .elementor-element-0d26556::before {
		top: -16%;
		right: -20%;
		width: 70%;
		height: 48%;
		opacity: 0.09;
	}

	#elementor-popup-modal-2160 .elementor-heading-title {
		font-size: 25px !important;
		line-height: 1.12;
	}
}

@media (prefers-reduced-motion: reduce) {
	#elementor-popup-modal-2160 .dialog-widget-content,
	#elementor-popup-modal-2160 .dialog-widget-content.animated {
		animation: none !important;
	}
}

/* Front-page hero. Elementor keeps the content editable; these classes own layout. */
.home .main-page-wrapper {
	padding-top: 0 !important;
}

.home .content-layout-wrapper {
	padding-top: 0 !important;
}

.myschool-hero {
	--hero-red: #b5121b;
	--hero-red-dark: #8f0710;
	position: relative;
	isolation: isolate;
	display: flex;
	align-items: center;
	gap: clamp(32px, 5vw, 76px);
	height: calc(100svh - 80px);
	min-height: 620px;
	padding: clamp(44px, 6vh, 72px) max(24px, calc((100vw - 1280px) / 2));
	overflow: hidden;
}

.myschool-hero::before,
.myschool-hero::after {
	position: absolute;
	z-index: -1;
	border-radius: 50%;
	content: "";
	pointer-events: none;
}

.myschool-hero::before {
	top: -38%;
	left: -10%;
	width: 520px;
	aspect-ratio: 1;
	background: rgba(51, 84, 205, 0.3);
	filter: blur(90px);
}

.myschool-hero::after {
	right: -7%;
	bottom: -34%;
	width: 440px;
	aspect-ratio: 1;
	background: rgba(181, 18, 27, 0.2);
	filter: blur(90px);
}

.myschool-hero > .myschool-hero__content,
.myschool-hero > .myschool-hero__visual {
	padding: 0;
}

.myschool-hero__content {
	display: flex;
	flex: 1 1 55%;
	align-items: flex-start;
	justify-content: center;
	gap: 0 !important;
	max-width: 700px;
}

.myschool-hero__eyebrow {
	margin: 0 0 20px;
}

.myschool-hero__eyebrow .elementor-heading-title {
	display: inline-flex;
	align-items: center;
	min-height: 34px;
	margin: 0;
	padding: 7px 14px;
	border: 1px solid rgba(255, 255, 255, 0.2);
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.09);
	color: #fff;
	font-family: Inter, sans-serif;
	font-size: 13px;
	font-weight: 600;
	line-height: 1.25;
	letter-spacing: 0.025em;
}

.myschool-hero__title {
	margin: 0 0 22px;
	padding-top: 10px !important;
}

.myschool-hero__title .elementor-heading-title {
	max-width: 700px;
	margin: 0;
	color: #fff;
	font-family: Inter, sans-serif;
	font-size: clamp(42px, 4vw, 54px) !important;
	font-weight: 650;
	line-height: 1.05;
	letter-spacing: -0.035em;
	text-wrap: balance;
}

.myschool-hero__description {
	max-width: 660px;
	margin: 0 0 30px;
	padding-top: 16px !important;
}

.myschool-hero__description,
.myschool-hero__description p {
	color: rgba(255, 255, 255, 0.86);
	font-family: Inter, sans-serif;
	font-size: clamp(16px, 1.35vw, 19px);
	line-height: 1.55;
}

.myschool-hero__description p {
	margin: 0;
}

.myschool-hero__actions {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 12px;
	margin: 0 0 32px;
	padding: 20px 0 0 !important;
}

.myschool-hero__actions > .elementor-element {
	width: auto;
}

.myschool-hero__actions .elementor-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 54px;
	padding: 14px 24px;
	border-radius: 12px;
	font-family: Inter, sans-serif;
	font-size: 15px;
	font-weight: 650;
	line-height: 1.2;
	white-space: nowrap;
	transition: transform 0.2s ease, background-color 0.2s ease, border-color 0.2s ease;
}

.myschool-hero__actions .elementor-button-text {
	white-space: normal;
}

.myschool-hero__actions .elementor-button:hover,
.myschool-hero__actions .elementor-button:focus-visible {
	transform: translateY(-2px);
}

.myschool-hero__primary .elementor-button {
	border: 1px solid var(--hero-red);
	background: var(--hero-red);
	box-shadow: 0 12px 30px rgba(181, 18, 27, 0.28);
	color: #fff;
}

.myschool-hero__primary .elementor-button:hover,
.myschool-hero__primary .elementor-button:focus-visible {
	border-color: var(--hero-red-dark);
	background: var(--hero-red-dark);
	color: #fff;
}

.myschool-hero__secondary .elementor-button {
	border: 1px solid rgba(255, 255, 255, 0.38);
	background: transparent;
	color: #fff;
}

.myschool-hero__secondary .elementor-button:hover,
.myschool-hero__secondary .elementor-button:focus-visible {
	border-color: #fff;
	background: rgba(255, 255, 255, 0.1);
	color: #fff;
}

.myschool-hero__actions .elementor-button:focus-visible {
	outline: 3px solid #fff;
	outline-offset: 3px;
}

.myschool-hero__facts-widget {
	width: 100%;
	padding-top: 20px !important;
}

.myschool-hero__facts {
	display: flex;
	align-items: stretch;
	gap: 0;
	margin: 0;
	padding: 0;
	list-style: none;
}

.myschool-hero__facts li {
	display: flex;
	flex: 0 1 auto;
	flex-direction: column;
	gap: 2px;
	min-width: 132px;
	padding: 0 22px;
	border-left: 1px solid rgba(255, 255, 255, 0.2);
}

.myschool-hero__facts li:first-child {
	padding-left: 0;
	border-left: 0;
}

.myschool-hero__facts strong,
.myschool-hero__facts span {
	color: #fff;
	font-family: Inter, sans-serif;
}

.myschool-hero__facts strong {
	font-size: 17px;
	font-weight: 700;
	line-height: 1.25;
}

.myschool-hero__facts span {
	color: rgba(255, 255, 255, 0.68);
	font-size: 12px;
	line-height: 1.35;
}

.myschool-hero__visual {
	position: relative;
	display: flex;
	flex: 0 1 45%;
	align-items: center;
	justify-content: center;
	min-width: 0;
}

.myschool-hero__photo {
	width: 100%;
}

.myschool-hero__photo img {
	display: block;
	width: 100%;
	max-height: min(680px, calc(100svh - 170px));
	aspect-ratio: 4 / 5;
	border: 1px solid rgba(255, 255, 255, 0.16);
	border-radius: 28px;
	box-shadow: 0 30px 80px rgba(0, 0, 0, 0.3);
	object-fit: cover;
	object-position: 52% center;
}

.myschool-hero__photo-badge {
	position: absolute;
	right: -14px;
	bottom: 34px;
	width: auto;
	margin: 0;
}

.myschool-hero__photo-badge .elementor-heading-title {
	margin: 0;
	padding: 12px 16px;
	border: 1px solid rgba(255, 255, 255, 0.62);
	border-radius: 12px;
	background: rgba(255, 255, 255, 0.94);
	box-shadow: 0 12px 30px rgba(0, 0, 0, 0.2);
	color: #000c5e;
	font-family: Inter, sans-serif;
	font-size: 13px;
	font-weight: 700;
	line-height: 1.25;
	backdrop-filter: blur(10px);
}

@media (max-width: 1024px) {
	.myschool-hero {
		gap: 28px;
		height: calc(100svh - 60px);
		min-height: 600px;
		padding: 42px 32px;
	}

	.myschool-hero__title .elementor-heading-title {
		font-size: clamp(36px, 4.4vw, 46px) !important;
	}

	.myschool-hero__actions {
		align-items: stretch;
		flex-direction: column;
		width: 100%;
	}

	.myschool-hero__actions > .elementor-element,
	.myschool-hero__actions .elementor-button-wrapper,
	.myschool-hero__actions .elementor-button {
		width: 100%;
	}

	.myschool-hero__facts li {
		min-width: 0;
		padding: 0 14px;
	}
}

@media (max-width: 767px) {
	.home .whb-mobile-center {
		display: none !important;
	}

	.home .whb-general-header-inner {
		justify-content: space-between;
	}

	.home .whb-mobile-left,
	.home .whb-mobile-right {
		flex: 0 0 auto;
	}

	.myschool-hero {
		flex-direction: column;
		align-items: stretch;
		gap: 24px;
		height: calc(100svh - 60px);
		min-height: 0;
		padding: 28px 20px 24px;
	}

	.myschool-hero > .myschool-hero__content,
	.myschool-hero > .myschool-hero__visual {
		width: 100%;
		max-width: none;
	}

	.myschool-hero__content {
		flex: 0 0 auto;
		gap: 0 !important;
	}

	.myschool-hero__eyebrow {
		margin-bottom: 14px;
	}

	.myschool-hero__eyebrow .elementor-heading-title {
		min-height: 30px;
		padding: 6px 11px;
		font-size: 11px;
	}

	.myschool-hero__title {
		margin-bottom: 14px;
		padding-top: 6px !important;
	}

	.myschool-hero__title .elementor-heading-title {
		font-size: clamp(30px, 8.5vw, 38px) !important;
		line-height: 1.06;
		text-align: left;
	}

	.myschool-hero__description {
		margin-bottom: 20px;
		padding-top: 12px !important;
	}

	.myschool-hero__description,
	.myschool-hero__description p {
		font-size: 16px;
		line-height: 1.42;
	}

	.myschool-hero__actions {
		gap: 9px;
		margin-bottom: 22px;
		padding-top: 14px !important;
	}

	.myschool-hero__actions .elementor-button {
		min-height: 52px;
		padding: 12px 16px;
		font-size: 15px;
		white-space: normal;
	}

	.myschool-hero__secondary .elementor-button {
		min-height: 32px;
		padding: 4px 0;
		border: 0;
		background: transparent;
	}

	.myschool-hero__secondary .elementor-button-text::after {
		content: " →";
	}

	.myschool-hero__facts {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		max-width: 320px;
	}

	.myschool-hero__facts-widget {
		padding-top: 16px !important;
	}

	.myschool-hero__facts li {
		box-sizing: border-box;
		width: auto;
		min-width: 0;
		padding: 0 14px;
		overflow: hidden;
	}

	.myschool-hero__facts li:nth-child(2) {
		padding-right: 0;
	}

	.myschool-hero__facts strong {
		font-size: 15px;
	}

	.myschool-hero__facts span {
		font-size: 10px;
	}

	.myschool-hero__visual {
		flex: 1 1 190px;
		min-height: 150px;
	}

	.myschool-hero__photo,
	.myschool-hero__photo .elementor-widget-container,
	.myschool-hero__photo a,
	.myschool-hero__photo img {
		height: 100%;
	}

	.myschool-hero__photo img {
		max-height: 280px;
		aspect-ratio: 16 / 8.5;
		border-radius: 20px;
		object-position: 52% 42%;
	}

	.myschool-hero__photo-badge {
		right: 10px;
		bottom: 10px;
	}

	.myschool-hero__photo-badge .elementor-heading-title {
		padding: 8px 10px;
		font-size: 10px;
	}

	.wd-cookies-popup {
		padding: 10px 14px !important;
	}

	.wd-cookies-inner .cookies-info-text {
		font-size: 13px;
		line-height: 1.35;
	}

	.wd-cookies-inner .cookies-buttons {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 14px;
		margin-top: 8px;
	}

	.wd-cookies-inner .cookies-buttons > a {
		margin: 0;
	}

	.cookies-buttons .cookies-more-btn {
		font-size: 11px;
	}

	.cookies-buttons .cookies-accept-btn {
		min-height: 38px;
		padding: 9px 18px;
		font-size: 12px;
	}

	.mobile-fixed-call {
		right: 14px !important;
		bottom: 108px !important;
		width: 52px !important;
		height: 52px !important;
		font-size: 25px !important;
	}
}

@media (max-width: 374px), (max-height: 650px) and (max-width: 767px) {
	.myschool-hero {
		gap: 16px;
		padding-top: 20px;
		padding-bottom: 18px;
	}

	.myschool-hero__eyebrow {
		margin-bottom: 10px;
	}

	.myschool-hero__title {
		margin-bottom: 10px;
	}

	.myschool-hero__title .elementor-heading-title {
		font-size: clamp(28px, 8vw, 32px) !important;
	}

	.myschool-hero__description {
		margin-bottom: 14px;
	}

	.myschool-hero__description,
	.myschool-hero__description p {
		font-size: 15px;
		line-height: 1.35;
	}

	.myschool-hero__actions {
		margin-bottom: 16px;
	}

	.myschool-hero__primary .elementor-button {
		min-height: 48px;
	}

	.myschool-hero__visual {
		flex-basis: 120px;
		min-height: 100px;
	}

	.myschool-hero__photo img {
		max-height: 170px;
	}
}

@media (max-width: 340px) and (max-height: 650px) {
	.mobile-fixed-call {
		bottom: 99px !important;
	}

	.myschool-hero {
		padding-top: 10px;
	}

	.myschool-hero__content {
		gap: 0 !important;
	}

	.myschool-hero__eyebrow {
		margin-bottom: 8px;
	}

	.myschool-hero__title {
		margin-bottom: 8px;
		padding-top: 4px !important;
	}

	.myschool-hero__title .elementor-heading-title {
		font-size: 27px !important;
	}

	.myschool-hero__description {
		margin-bottom: 10px;
		padding-top: 8px !important;
	}

	.myschool-hero__description,
	.myschool-hero__description p {
		font-size: 14px;
		line-height: 1.3;
	}

	.myschool-hero__actions {
		gap: 6px;
		padding-top: 10px !important;
	}

	.myschool-hero__primary .elementor-button {
		min-height: 52px;
		padding-top: 9px;
		padding-bottom: 9px;
		font-size: 14px;
	}

	.myschool-hero__facts-widget {
		padding-top: 10px !important;
	}
}

/* Consistent breathing room between the main home-page sections. */
.home .elementor-element-444118a {
	display: none !important;
}

/* Real-class photo banner: controlled crop keeps faces visible without a tall empty section. */
.home .elementor-element-a1f1c53 {
	height: clamp(220px, 24vw, 340px) !important;
	min-height: 0 !important;
	margin-top: 40px !important;
	border-radius: 24px;
	overflow: hidden;
	background-position: center 18% !important;
	background-size: cover !important;
}

@media (max-width: 767px) {
	.home .elementor-element-a1f1c53 {
		height: 190px !important;
		margin-top: 28px !important;
		border-radius: 16px;
		background-position: center 16% !important;
	}
}

/* Course directions: compact card grid instead of tall legacy button rows. */
.home .elementor-element-3c22cae {
	gap: 22px !important;
	padding: clamp(44px, 6vw, 72px) max(20px, calc((100vw - 1120px) / 2)) !important;
	background: #f6f8fc !important;
}

.myschool-courses-grid {
	width: 100%;
	max-width: 1120px;
	margin: 0 auto;
	color: #07135f;
}

.myschool-courses-grid h2 {
	margin: 0 0 28px;
	font-family: Inter, sans-serif;
	font-size: clamp(30px, 4vw, 48px);
	font-weight: 700;
	line-height: 1.08;
	text-align: center;
}

.myschool-courses-grid__audience,
.myschool-courses-grid__items {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
}

.myschool-courses-grid__audience {
	margin-bottom: 14px;
}

.myschool-courses-grid a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 58px;
	padding: 14px 20px;
	border: 1px solid #d9dfec;
	border-radius: 14px;
	background: #fff;
	box-shadow: 0 5px 16px rgba(7, 19, 95, 0.06);
	color: #07135f;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.25;
	text-decoration: none;
	transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.myschool-courses-grid a span {
	margin-left: 12px;
	font-size: 20px;
	font-weight: 400;
}

.myschool-courses-grid__audience a {
	border-color: #07135f;
	background: #07135f;
	color: #fff;
}

.myschool-courses-grid a:hover,
.myschool-courses-grid a:focus-visible {
	border-color: #07135f;
	box-shadow: 0 10px 24px rgba(7, 19, 95, 0.13);
	transform: translateY(-2px);
}

/* One consistent type system for semantic headings on the home page. */
.home .main-page-wrapper h1,
.home .main-page-wrapper h2,
.home .main-page-wrapper h3 {
	font-family: Inter, sans-serif;
}

.home .main-page-wrapper h2 {
	font-size: 34px;
	line-height: 1.12;
}

.home .main-page-wrapper h3 {
	font-size: 18px;
	line-height: 1.25;
}

.myschool-courses-grid__all {
	width: min(100%, 320px);
	margin: 22px auto 0;
	border-color: #b5121b !important;
	background: #b5121b !important;
	color: #fff !important;
}

/* Photo cards: strong bottom gradient and text panel keep copy readable on any frame. */
/* These wd_banner widgets get no width from Elementor (only known widget types like
   accordion/video get auto sizing inside a flex container); without an explicit basis
   they collapse to 0 width once their image and caption become absolutely positioned. */
.home .elementor-element-d80c6c0 > .elementor-element {
	flex: 1 1 0;
	min-width: 0;
}

.home .elementor-element-d80c6c0 .promo-banner {
	position: relative;
	height: 280px;
	min-height: 0;
	overflow: hidden;
	border-radius: 18px;
}

.home .elementor-element-d80c6c0 .main-wrapp-img,
.home .elementor-element-d80c6c0 .banner-image,
.home .elementor-element-d80c6c0 .banner-image img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}

.home .elementor-element-d80c6c0 .banner-image img {
	object-fit: cover;
}

.home .elementor-element-d80c6c0 .wrapper-content-banner {
	position: absolute;
	inset: 0;
	z-index: 2;
	display: flex !important;
	flex-direction: column !important;
	justify-content: flex-end !important;
	align-items: flex-end !important;
	padding: 20px 20px 36px !important;
}

.home .elementor-element-d80c6c0 .content-banner {
	width: 100%;
}

.home .elementor-element-d80c6c0 .banner-inner {
	width: 100%;
	text-align: center;
	overflow-wrap: break-word;
}

.home .elementor-element-d80c6c0 .promo-banner::after,
.home .elementor-element-a5dfeef .elementor-element-2df39d0::after,
.home .elementor-element-a5dfeef .elementor-element-549b4a3::after,
.home .elementor-element-a5dfeef .elementor-element-968f99a::after,
.home .elementor-element-a5dfeef .elementor-element-6ec53ea::after,
.home .elementor-element-a5dfeef .elementor-element-76cd848::after,
.home .elementor-element-a5dfeef .elementor-element-0f6568e::after {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(7, 19, 95, 0) 25%, rgba(7, 19, 95, 0.62) 100%);
	content: "";
	pointer-events: none;
}

.home .elementor-element-a5dfeef .elementor-element-2df39d0 > *,
.home .elementor-element-a5dfeef .elementor-element-549b4a3 > *,
.home .elementor-element-a5dfeef .elementor-element-968f99a > *,
.home .elementor-element-a5dfeef .elementor-element-6ec53ea > *,
.home .elementor-element-a5dfeef .elementor-element-76cd848 > *,
.home .elementor-element-a5dfeef .elementor-element-0f6568e > * {
	position: relative;
	z-index: 2;
}

.home .elementor-element-d80c6c0 .banner-inner,
.home .elementor-element-a5dfeef .elementor-element-2df39d0 .elementor-heading-title,
.home .elementor-element-a5dfeef .elementor-element-549b4a3 .elementor-heading-title,
.home .elementor-element-a5dfeef .elementor-element-968f99a .elementor-heading-title,
.home .elementor-element-a5dfeef .elementor-element-6ec53ea .elementor-heading-title,
.home .elementor-element-a5dfeef .elementor-element-76cd848 .elementor-heading-title,
.home .elementor-element-a5dfeef .elementor-element-0f6568e .elementor-heading-title {
	display: inline-block;
	padding: 9px 13px;
	border-radius: 10px;
	background: rgba(7, 19, 95, 0.84);
	color: #fff !important;
	text-shadow: none;
}

/* Six benefit cards were built as two separate 3-card rows (each ~340px square:
   "огромные"). Unwrap both row containers with display:contents so their cards
   become direct grid items of the shared panel, then lay all six out in a single
   row of six equal columns; the heading and CTA above/below span the full row. */
.home .elementor-element-baf7c47 {
	display: grid !important;
	grid-template-columns: repeat(6, 1fr) !important;
	gap: 24px !important;
	align-items: start !important;
}

.home .elementor-element-baf7c47 > .elementor-element-43af3fa,
.home .elementor-element-baf7c47 > .elementor-element-258b400 {
	grid-column: 1 / -1 !important;
}

.home .elementor-element-5d65ff3,
.home .elementor-element-d9b78f1 {
	display: contents !important;
}

.home .elementor-element-a5dfeef .elementor-element-2df39d0,
.home .elementor-element-a5dfeef .elementor-element-549b4a3,
.home .elementor-element-a5dfeef .elementor-element-968f99a,
.home .elementor-element-a5dfeef .elementor-element-6ec53ea,
.home .elementor-element-a5dfeef .elementor-element-76cd848,
.home .elementor-element-a5dfeef .elementor-element-0f6568e {
	position: relative;
	width: 100% !important;
	min-height: 0;
	height: auto;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	border-radius: 18px;
}

.home .elementor-element-a5dfeef .elementor-element-2df39d0::before,
.home .elementor-element-a5dfeef .elementor-element-549b4a3::before,
.home .elementor-element-a5dfeef .elementor-element-968f99a::before,
.home .elementor-element-a5dfeef .elementor-element-6ec53ea::before,
.home .elementor-element-a5dfeef .elementor-element-76cd848::before,
.home .elementor-element-a5dfeef .elementor-element-0f6568e::before {
	background: rgba(0, 0, 0, 0.1) !important;
}

.home .elementor-element-a5dfeef .elementor-element-2df39d0 .elementor-widget-heading,
.home .elementor-element-a5dfeef .elementor-element-549b4a3 .elementor-widget-heading,
.home .elementor-element-a5dfeef .elementor-element-968f99a .elementor-widget-heading,
.home .elementor-element-a5dfeef .elementor-element-6ec53ea .elementor-widget-heading,
.home .elementor-element-a5dfeef .elementor-element-76cd848 .elementor-widget-heading,
.home .elementor-element-a5dfeef .elementor-element-0f6568e .elementor-widget-heading {
	position: absolute;
	top: auto !important;
	right: 16px;
	bottom: 16px;
	left: 16px;
	z-index: 3;
}

.home .elementor-element-a5dfeef .elementor-heading-title {
	display: block;
	width: 100%;
	box-sizing: border-box;
	border-radius: 10px;
	text-align: center;
	overflow-wrap: break-word;
	font-size: 14px !important;
	line-height: 1.25 !important;
}

/* The wide photo has no textual content; remove Elementor's heavy black overlay. */
.home .elementor-element-a1f1c53::before {
	display: none !important;
}

@media (max-width: 767px) {
	.myschool-courses-grid h2 {
		margin-bottom: 22px;
		font-size: 30px;
	}

	.myschool-courses-grid__audience,
	.myschool-courses-grid__items {
		gap: 10px;
	}

	.myschool-courses-grid a {
		min-height: 54px;
		padding: 12px 14px;
		font-size: 14px;
	}

	.home .elementor-element-d80c6c0 .promo-banner {
		height: 220px;
		min-height: 0;
		border-radius: 16px;
	}

	.home .elementor-element-d80c6c0 > .elementor-element {
		flex: 1 1 calc(50% - 10px);
		min-width: calc(50% - 10px);
	}

	/* The hover "К курсам" button is hidden on mobile, so the extra bottom
	   padding reserved for it on desktop just steals space from the caption.
	   Long captions were touching the card edges (wd-fontsize-xs isn't set
	   consistently on every card, so it fell back to the 16px default). */
	.home .elementor-element-d80c6c0 .wrapper-content-banner {
		padding: 14px !important;
	}

	.home .elementor-element-d80c6c0 .banner-inner p {
		font-size: 13px !important;
		line-height: 1.3 !important;
	}

	.home .elementor-element-a5dfeef .elementor-element-2df39d0,
	.home .elementor-element-a5dfeef .elementor-element-549b4a3,
	.home .elementor-element-a5dfeef .elementor-element-968f99a,
	.home .elementor-element-a5dfeef .elementor-element-6ec53ea,
	.home .elementor-element-a5dfeef .elementor-element-76cd848,
	.home .elementor-element-a5dfeef .elementor-element-0f6568e {
		min-height: 0;
		height: auto;
		aspect-ratio: 1 / 1;
		border-radius: 16px;
	}

	.home .elementor-element-baf7c47 {
		grid-template-columns: repeat(2, 1fr) !important;
		gap: 14px !important;
	}
}

.home .elementor-element-3c22cae > .elementor-element-03d197,
.home .elementor-element-3c22cae > .elementor-element-983bdcd,
.home .elementor-element-3c22cae > .elementor-element-fd9c14c,
.home .elementor-element-3c22cae > .elementor-element-0d309e4 {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px !important;
	width: 100% !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
}

.home .elementor-element-3c22cae .elementor-button {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 58px;
	padding: 14px 18px;
	border: 1px solid #d9dfec;
	border-radius: 14px;
	background: #fff;
	box-shadow: 0 5px 16px rgba(7, 19, 95, 0.06);
	color: #07135f;
	font-family: Inter, sans-serif;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.25;
	transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

.home .elementor-element-3c22cae .elementor-element-d04701 .elementor-heading-title {
	color: #07135f !important;
}

.home .elementor-element-3c22cae > .elementor-element-983bdcd > .elementor-element-8d84f63,
.home .elementor-element-3c22cae > .elementor-element-983bdcd > .elementor-element-e0cc33c,
.home .elementor-element-3c22cae > .elementor-element-fd9c14c > .elementor-element-557dd45,
.home .elementor-element-3c22cae > .elementor-element-fd9c14c > .elementor-element-b2b8797,
.home .elementor-element-3c22cae > .elementor-element-0d309e4 > .elementor-element-f33b279,
.home .elementor-element-3c22cae > .elementor-element-0d309e4 > .elementor-element-7e0fa9c {
	width: 100% !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	flex: 1 1 0 !important;
}

.home .elementor-element-3c22cae .elementor-button:hover,
.home .elementor-element-3c22cae .elementor-button:focus-visible {
	border-color: #07135f;
	box-shadow: 0 10px 24px rgba(7, 19, 95, 0.13);
	transform: translateY(-2px);
}

.home .elementor-element-3c22cae > .elementor-element-03d197 .elementor-button,
.home .elementor-element-3c22cae > .elementor-element-03d197 .elementor-button:hover,
.home .elementor-element-3c22cae > .elementor-element-03d197 .elementor-button:focus-visible {
	border-color: #07135f;
	background: #07135f;
	color: #fff;
}

.home .elementor-element-3c22cae > .elementor-element-84b3100 {
	width: 100% !important;
	margin: 2px 0 0 !important;
	padding: 0 !important;
	text-align: center;
}

.home .elementor-element-3c22cae > .elementor-element-84b3100 .elementor-button {
	width: auto;
	min-width: 220px;
	min-height: 52px;
	border-color: #b5121b;
	background: #b5121b;
	color: #fff;
}

@media (max-width: 767px) {
	.home .elementor-element-3c22cae {
		gap: 16px !important;
		padding: 40px 20px !important;
	}

	.home .elementor-element-3c22cae .elementor-button {
		min-height: 54px;
		padding: 12px 10px;
		font-size: 14px;
	}

	.home .elementor-element-3c22cae > .elementor-element-84b3100 .elementor-button {
		width: 100%;
		min-width: 0;
	}
}

.myschool-seo-details {
	margin-top: 18px;
	color: inherit;
}

.myschool-seo-details summary {
	display: inline-flex;
	align-items: center;
	min-height: 42px;
	padding: 8px 16px;
	border: 1px solid rgba(7, 19, 95, 0.2);
	border-radius: 999px;
	color: #07135f;
	font-weight: 600;
	cursor: pointer;
	list-style: none;
}

.myschool-seo-details summary::-webkit-details-marker {
	display: none;
}

.myschool-seo-details summary::after {
	margin-left: 8px;
	content: "＋";
	font-size: 18px;
}

.myschool-seo-details[open] summary::after {
	content: "−";
}

.myschool-seo-details > :not(summary) {
	margin-top: 16px;
}

.myschool-seo-details li strong {
	color: #9f0102;
}

/* Teacher cards: short highlight always visible, full bio behind "Подробнее". */
.myschool-teacher-highlight {
	margin: 6px 0 0;
	color: #07135f;
}

.myschool-teacher-more {
	margin-top: 8px;
	color: inherit;
}

.myschool-teacher-more summary {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	color: #9f0102;
	font-weight: 600;
	cursor: pointer;
	list-style: none;
}

.myschool-teacher-more summary::-webkit-details-marker {
	display: none;
}

.myschool-teacher-more summary::after {
	content: "▾";
	font-size: 10px;
}

.myschool-teacher-more[open] summary::after {
	content: "▴";
}

.myschool-teacher-more[open] summary {
	margin-bottom: 6px;
}

.myschool-teacher-more p {
	margin: 0 0 8px;
}

.myschool-about-carousel {
	position: relative;
	width: 100%;
	height: clamp(280px, 32vw, 420px);
	overflow: hidden;
	border-radius: 20px;
	background: #eef1f8;
}

.myschool-about-carousel__slide {
	position: absolute;
	inset: 0;
	margin: 0;
	opacity: 0;
	transition: opacity 800ms ease;
}

.myschool-about-carousel__slide.is-active {
	opacity: 1;
}

.myschool-about-carousel__slide img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

@media (max-width: 767px) {
	.myschool-about-carousel {
		height: 240px;
		border-radius: 16px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.myschool-about-carousel__slide {
		transition: none;
	}
}

@media (min-width: 1025px) {
	.home .elementor > .elementor-element-378c383,
	.home .elementor > .elementor-element-3c22cae,
	.home .elementor > .elementor-element-af9318c,
	.home .elementor > .elementor-element-a1f1c53,
	.home .elementor > .elementor-element-8c6ac3b,
	.home .elementor > .elementor-element-444118a,
	.home .elementor > .elementor-element-4a760c1,
	.home .elementor > .elementor-element-5b72c5e,
	.home .elementor > .elementor-element-d6153d2,
	.home .elementor > .elementor-element-b1cdb32 {
		margin-top: 64px !important;
	}
}

@media (max-width: 1024px) {
	.home .elementor > .elementor-element-378c383,
	.home .elementor > .elementor-element-3c22cae,
	.home .elementor > .elementor-element-af9318c,
	.home .elementor > .elementor-element-a1f1c53,
	.home .elementor > .elementor-element-8c6ac3b,
	.home .elementor > .elementor-element-444118a,
	.home .elementor > .elementor-element-4a760c1,
	.home .elementor > .elementor-element-5b72c5e,
	.home .elementor > .elementor-element-d6153d2,
	.home .elementor > .elementor-element-b1cdb32 {
		margin-top: 40px !important;
	}
}

/* Woodmart's own base CSS sets `.elementor-widget-text-editor:has(.elementor-widget-container){display:flex}`
   with no media query, at the same specificity as (and loading after) Elementor's
   `.elementor .elementor-hidden-desktop/-tablet/-mobile{display:none}` responsive-visibility
   utilities - silently un-hiding any text-editor widget that uses them (e.g. the desktop/mobile
   copy pairs used throughout this page). Reassert Elementor's own breakpoints. */
@media (min-width: 1025px) {
	.elementor .elementor-hidden-desktop {
		display: none !important;
	}
}

@media (min-width: 768px) and (max-width: 1024px) {
	.elementor .elementor-hidden-tablet {
		display: none !important;
	}
}

@media (max-width: 767px) {
	.elementor .elementor-hidden-mobile {
		display: none !important;
	}
}

/* Trial-lesson form section: the whole row (elementor-element-b1cdb32) had
   min-height:45vh, and the card and text column stretched to match via
   align-self:stretch - that's what actually produced the empty white space
   below the button, not just the card's own (already-zeroed) min-height. */
.home .elementor-element-b1cdb32 {
	min-height: 0 !important;
}

.home .elementor-element-9fdb9e1 {
	min-height: 0 !important;
	height: auto !important;
	align-self: flex-start !important;
	padding: 24px !important;
}

.elementor-element-9f50310 .elementor-field-group-message[hidden] {
	display: none !important;
}

.myschool-form-message-toggle {
	display: inline-flex;
	margin: 2px 0 4px;
	padding: 0;
	border: 0;
	background: transparent;
	color: #07135f;
	font: inherit;
	font-size: 13px;
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
}

.myschool-form-message-toggle:focus-visible {
	outline: 2px solid #07135f;
	outline-offset: 4px;
}

.elementor-element-9f50310 .elementor-field-type-acceptance label,
.elementor-element-9f50310 .elementor-field-type-acceptance .elementor-field-option {
	color: #4d5870 !important;
	font-size: 13px;
}

.elementor-element-9f50310 .elementor-field-type-acceptance a {
	color: #07135f;
	text-decoration: underline;
	text-underline-offset: 2px;
}

/* Leftover 140px left margin from an old layout kept the centered
   "Сложный материал..." subtitle off-center under the teachers heading. */
.elementor-28 .elementor-element.elementor-element-44072aa > .elementor-widget-container {
	margin: 0px 0px 0px 0px !important;
}

/* Manager CTA section had --margin-top:240px / --margin-bottom:100px -
   far more breathing room than a now-compact ~300px band needs. */
.elementor-28 .elementor-element.elementor-element-9f82ba5 {
	--margin-top: 100px;
	--margin-bottom: 50px;
}

/* Manager CTA: was a full-height stretched row built around a large framed
   photo. Shrunk to a compact band; the background-removed cutout is taken
   out of flow and anchored to the section's bottom edge, so it's free to
   rise above the section's own top edge for the "breaking out of the frame"
   look, without the row stretching to fit the photo's height. */
.home .elementor-element-53c5945 {
	position: relative;
	min-height: 0 !important;
	overflow: visible !important;
	padding-top: 32px !important;
	padding-bottom: 32px !important;
}

.home .elementor-element-5a0818a {
	position: relative;
	z-index: 1;
}

.home .elementor-element-0ea7516 {
	/* Elementor containers get position:relative by default (.e-con base rule);
	   left as-is, this - not elementor-element-53c5945 - became the containing
	   block for the absolutely-positioned photo below, and since this wrapper
	   sits at the row's top with height:0, the photo ended up anchored near
	   the section's top edge instead of its bottom, floating far too high. */
	position: static !important;
	overflow: visible !important;
	margin: 0 !important;
	padding: 0 !important;
	min-height: 0 !important;
	height: 0 !important;
}

.home .elementor-element-2e4ff34 {
	position: absolute !important;
	right: 6%;
	bottom: 0;
	width: min(28vw, 410px) !important;
	margin: 0 !important;
	pointer-events: none;
	z-index: 2;
}

.home .elementor-element-2e4ff34 img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 0 !important;
	filter: drop-shadow(0 18px 26px rgba(0, 0, 0, 0.28));
}

@media (max-width: 1024px) {
	.home .elementor-element-2e4ff34 {
		right: 4%;
		width: min(24vw, 220px) !important;
	}
}

@media (max-width: 767px) {
	.home .elementor-element-53c5945 {
		flex-direction: column !important;
		padding-top: 40px !important;
		padding-bottom: 32px !important;
	}

	/* No room to let the photo poke past the section on a narrow phone screen -
	   let it sit in normal flow below the button instead of floating absolute. */
	/* On mobile the photo is back in normal flow (see below), so this wrapper
	   needs its natural height again to keep the section's own box tall
	   enough to contain it - the desktop rule collapses it to 0 because the
	   photo there is taken out of flow (absolutely positioned). */
	.home .elementor-element-0ea7516 {
		height: auto !important;
	}

	.home .elementor-element-2e4ff34 {
		position: relative !important;
		right: auto;
		bottom: auto;
		width: min(55vw, 240px) !important;
		margin: 8px auto 0 !important;
	}
}
/* Price page billing-period clarification */
.myschool-price-period-notice {
	margin: 0 auto 24px;
	padding: 16px 20px;
	max-width: 1100px;
	border-left: 3px solid var(--wd-primary-color, #367bf5);
	background: #f5f8ff;
	color: #333;
	font-size: 15px;
	line-height: 1.55;
}

@media (max-width: 767px) {
	.myschool-price-period-notice {
		margin-bottom: 18px;
		padding: 13px 15px;
		font-size: 14px;
	}
}
