html, body {
  overflow-x: hidden;
}

.elementor-sticky--effects{
	    box-shadow: none !important;
    background: rgba(0, 0, 0, 0.5) !important;
	min-height: 120px !important;
}

.elementor-sticky--effects .elementor-widget-image img{
	height: 115px !important;
}

.elementor-sticky--effects .elementor-widget-nav-menu{
	padding-bottom:0 !important;
}

.elementor-widget-video .elementor-wrapper iframe, .elementor-widget-video .elementor-wrapper video {
	background-color: transparent !important;
}


.custom-text-banner{
	top:50%;
	transform:translatey(-50%);
}

.custom-title-block{
    transform: rotate(-90deg) translate(0);
    position: absolute;
    bottom: 25%;
    right: 43%;
    width: 100%;
}

.custom-title-block .elementor-heading-title{
	width:615px;
}

.custom-block {
  position: relative !important;
  overflow: hidden; 
}

.custom-block-image {
  transition: transform 0.5s ease;
}

.custom-block-info {
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%) translateX(30px); /* немного смещен вправо */
  opacity: 0;
  visibility: hidden;
  transition: transform 0.5s ease, opacity 0.5s ease, visibility 0.5s ease;
}

.custom-block:hover .custom-block-info {
  transform: translateY(-50%) translateX(0); /* возвращается на место */
  opacity: 1;
  visibility: visible;
}

.custom-block:hover .custom-block-image {
  transform: scale(1.1);
}

.custom-form .elementor-field-type-submit{
	width:auto !important;
}

.custom-course-desc{
	height:92px;
	overflow:hidden;
}

.course-schedule-slider {
	width: 100%; 
	padding: 0 65px;
}

.schedule-box {
	text-align: center;
	background: #F0D9C3;
	border-radius: 4px;
	position: relative;
	min-width: 250px;
}

.schedule-year { 
	font-size: 30px; 
	font-weight: 600; 
	color: #429CB0;
	line-height: 1;
	padding: 17px 15px;
}

/* UPDATED: Stack icon and text vertically & ensure flex is clean */
.schedule-dates {
	display: flex;
	flex-direction: column; /* Icon on top, text below */
	align-items: center;
	justify-content: center;
	font-size: 18px;
	color: #000;
	padding: 12px;
	border-top: 1px dotted rgba(0,0,0,0.4);
	border-bottom: 1px dotted rgba(0,0,0,0.4);
}

/* UPDATED: Auto margins force centering even if flex fails */
.schedule-icon {
	margin: 0 auto 10px auto;
	width: 33px;
}

/* UPDATED: Center the text lines */
.schedule-dates-lines {
	display: flex;
	flex-direction: column;
	align-items: center; /* Center horizontally */
	text-align: center;
	font-family: 'Courier New', Courier, monospace;
}

.schedule-date-line {
	white-space: normal; /* Changed from nowrap to normal to allow wrapping */
    line-height: 1.3;
}

/* UPDATED: Added !important to force cursive font on the link */
.schedule-info span{
	color: #000;
	font-size: 18px;
	font-family: "Marck Script", Sans-serif !important;
	padding: 17px;
	line-height: 1;
	display: block;
}


.swiper-button-next, .swiper-button-prev{
	color: #FFF !important;
    background-color: rgba(0, 0, 0, 0.4); /* Added background */
    width: 45px; /* Added sizing */
    height: 45px; /* Added sizing */
    border-radius: 50%; /* Circular */
    display: flex; /* Centering */
    align-items: center;
    justify-content: center;
	text-align: center;
	font-style: normal;
	font-weight: 300;
	line-height: normal;
    transition: background-color 0.3s;
}

.swiper-button-next:hover, .swiper-button-prev:hover {
    background-color: rgba(0, 0, 0, 0.7);
}

.swiper-button-next:after, .swiper-button-prev:after{
	font-size: 20px !important;
}

.course-schedule-slider .swiper-slide {
	width: auto;
}

.custom-iconbox .elementor-image-box-img img{
	margin:0 auto;
}

.cpt-gallery-flex{
	gap:15px
}

.cpt-gallery-item {
    flex: 1 1 calc(33.333% - 15px);
    max-width: calc(33.333% - 15px);
	padding-bottom: 10px;
}

.custom-contactus .elementor-field::placeholder, .custom-contactus .elementor-field{
	opacity:1 !important;
}

.custom-menu .menu-item .sub-menu .elementor-sub-item{
	justify-content: center !important;
}

.custom-menu .elementor-nav-menu--layout-horizontal .elementor-nav-menu>li ul{
	top: 130% !important;
}

/* .cpt-gallery-popup {
    background: rgba(0, 0, 0, 1) !important;
} */

.cpt-gallery-popup img, .cpt-gallery-popup video{
	max-height: 90vh !important;
}

.popup-content{
	max-width: 70%;
}

@media (max-width: 1920px) {
.off-banner-1920 .elementor-background-video-container{
	display:none;
}
}
@media (max-width: 1024px) {
	.elementor-sticky{
		background: rgba(0, 0, 0, 0) !important;
		        box-shadow: none !important;
	}
	.elementor-sticky--effects{
	    box-shadow: none !important;
    background: rgba(0, 0, 0, 0.5) !important;
}
	.custom-text-banner{
	top:auto;
	transform:none;
	position:inherit !important;
}
}
@media (max-width: 768px) {
	.course-schedule-slider {
		padding: 0 15px;
	}

	.schedule-box {
		min-width: auto;
	}

	.schedule-year { 
		font-size: 22px; 
		padding: 13px 10px;
	}
	.schedule-dates { 
		font-size: 16px;
		padding:12px 10px;
	}
	.schedule-info {
		font-size: 22px; 
		padding: 12px; 
	}
	
	.custom-block-info {
    	right: auto;
	    left: 50%;
		top:auto;
		bottom:0 !important;
     	transform: translateY(0) translateX(-50%);
	}
	.custom-block:hover .custom-block-info {
		transform: translateY(-50%) translateX(-50%); /* возвращается на место */
		opacity: 1;
		visibility: visible;
	}
}


@media only screen and (max-width: 1024px) {
	.custom-title-block .elementor-heading-title{
	width:350px;
}
	.elementor-sticky--effects{
	min-height: 70px !important;
}

.elementor-sticky--effects .elementor-widget-image img{
	height: 60px !important;
}
}

@media only screen and (max-width: 680px) {
.custom-form .elementor-field-type-submit{
	width:100% !important;
}
.custom-block-info {
  opacity: 1;
  visibility: visible;
}
	.custom-course-desc{
	height:auto;
}
}

/* ===========================
   Fully Booked Stamp Styles
=========================== */

/* 1. The main container for the stamp (Positioned Top-Left) */
.fully-booked-stamp-wrapper {
    position: absolute;
    top: 15px;
    left: 5px; /* Moved to left */
    right: auto;
    transform: rotate(-15deg); /* Adjusted angle for left side */
    z-index: 10;
    pointer-events: none;
    
    color: #8B4513; 
    mix-blend-mode: multiply;
    opacity: 0.95;
}

/* 2. The inner part of the stamp */
.fully-booked-stamp-inner {
    font-family: 'Courier New', Courier, monospace;
    font-size: 12px; /* Reduced from 16px */
    font-weight: bold;
    text-transform: uppercase;
    letter-spacing: 1px;
    padding: 5px 8px; /* Reduced from 6px 10px */
    
    border: 2px solid #8B4513; /* Thinner border */
    outline: 1px solid #8B4513;
    outline-offset: -4px; /* Adjusted offset for thinner border */
    
    background-color: rgba(240, 217, 195, 0.9);
    box-shadow: 0 0 0 3px rgba(139, 69, 19, 0.1) inset;
}

/* 3. Fully booked card state */
.schedule-box.is-fully-booked {
    background: #e6cfb9; 
}

.schedule-box.is-fully-booked .schedule-year,
.schedule-box.is-fully-booked .schedule-dates {
    opacity: 0.6; 
}

/* Disabled button state (Matches design of Active button) */
.schedule-info-disabled {
    display: block;
    background: #d4bda8;
    cursor: not-allowed;
}

.schedule-info-disabled span {
    color: #5c3e2e;
    font-size: 18px;
    font-family: "Marck Script", Sans-serif; /* Same cursive font */
    padding: 17px;
    line-height: 1;
    display: block;
}

/* Responsive adjustments */
@media (max-width: 768px) {
    .fully-booked-stamp-wrapper {
        top: 10px;
        left: 10px; /* Moved to left */
        right: auto;
    }
    .fully-booked-stamp-inner {
        font-size: 10px; /* Further reduced for mobile */
        padding: 3px 6px;
        border-width: 2px;
        outline-offset: -3px;
    }
}