:root {
	--anim-duration: 250ms;
}

/* Global Buttons interactions */
.Button {transition: background-color var(--anim-duration) ease, box-shadow var(--anim-duration) ease, transform .15s ease, filter var(--anim-duration) ease, color var(--anim-duration) ease, border-color var(--anim-duration) ease;}

/* Hover effects only for hover-capable pointers (desktop/tablet with mouse/trackpad) */
@media (hover: hover) and (pointer: fine) {
	.Button:hover {box-shadow: 0 6px 16px rgba(0,0,0,0.18); transform: translateY(-2px); filter: brightness(1.05);} 
}

/* Phones and touch-only: no hover, provide pressed feedback */
@media (hover: none), (pointer: coarse) {
	/* Neutralize any accidental :hover styles on touch */
	.Button:hover {box-shadow: none; transform: none; filter: none;}
	/* Pressed state */
	.Button:active {transform: translateY(1px); box-shadow: 0 2px 8px rgba(0,0,0,0.18);}
}
.Dialog {position: fixed; left: 0; top: 0; width: 100%; height: 100%; display: grid; place-content: center; background: #DF96BE77; backdrop-filter: blur(3px); z-index: 3;}
.Dialog .Content {padding: 20px; background: var(--blue); border-radius: 10px; text-align: center; position: relative; outline: 1px solid rgba(255,255,255,0.2); outline-offset: -1px; box-shadow: 0 8px 32px rgba(0,0,0,0.1);}
.Dialog .Close {position: absolute; right: 10px; top: 10px; width: 40px; height: 40px; font-size: 23px; cursor: pointer; display: grid; place-content: center; background: none; border: none; padding: 0; border-radius: 5px; transition: background 0.2s;}
.Dialog .Close:hover {background: #DF96BE77;}/* Content item card interactions */

.ContentItem a {transition: background-color .2s ease, box-shadow .2s ease, transform .2s ease, outline-color .2s ease, color .2s ease;}

@media (hover: hover) and (pointer: fine) {
	.ContentItem a:hover .Info {background-color: #1FA8C9;}
	.ContentItem a:hover {box-shadow: 0 6px 16px rgba(0,0,0,0.18); transform: translateY(-2px);}
}

@media (hover: none), (pointer: coarse) {
	.ContentItem a:hover {box-shadow: none; transform: none;}
	.ContentItem a:active {transform: translateY(1px); box-shadow: 0 2px 8px rgba(0,0,0,0.18);} 
	.ContentItem a:active .Info {background-color: #1FA8C9;}
}
.Intro .Video button {transition: background-color .2s ease, transform .15s ease, box-shadow .2s ease, opacity .2s ease;}

@media (hover: hover) and (pointer: fine) {
	.Intro .Video button:hover {background-color: rgba(255,255,255,0.08);} 
}

@media (hover: none), (pointer: coarse) {
	.Intro .Video button:hover {background-color: transparent;}
	.Intro .Video button:active {background-color: rgba(255,255,255,0.12); transform: scale(0.98);} 
}

.BookingSectionHollow {background-color: var(--light); height: 1px;}

.Programs {position: relative; color: var(--blue); padding-top: 60px; padding-bottom: 60px;}
.Programs::before {content: ''; position: absolute; inset: 0 calc(50% - 50vw) 0; background: var(--light-blue); z-index: -1;}
.Programs header {margin-bottom: 60px;}
.Programs article + article {margin-top: 15px;}
.Programs article {display: flex; gap: 20px; flex-wrap: wrap;}
.Programs article .Image {position: relative; display: block; overflow: visible; border: none; outline: none;}
.Programs article img {height: auto; width: auto; border-radius: 10px;}
.Programs article .Info {flex: 1; border-radius: 10px; background: var(--blue); color: var(--light-blue); padding: 25px 32px; border: 1px solid rgba(255,255,255,0.2);}
.Programs article h2 {font-size: 32px; line-height: 40px; margin-bottom: 10px; font-weight: 600; color: var(--light);}
.Programs .SubTitle {font-weight: bold; margin-bottom: 20px; color: var(--light);}
.Programs .Timing {margin-bottom: 10px;}
.Programs .BigInfo {margin-bottom: 10px; color: var(--blue); background-color: var(--light-blue); width: max-content; padding: 4px 12px; border-radius: 8px; line-height: normal; font-weight: bold;}
.Programs article .Text {
	--font-size: 14px;
	--line-height: 20px;
	margin-top: 20px;
}
@media (min-width: 901px) {
	.Programs article img {max-width: 300px; position: sticky; top: calc(var(--header-height) + 10px);}
}
@media (max-width: 900px) {
	.Programs article .Image {order: 1; flex: 1 0 100%;}
}/* Header interactions and device-specific behavior */

/* Smooth transitions */
#Header nav a:not(.Button), #Header .BurgerMenu {transition: background-color .2s ease, color .2s ease, transform .15s ease, box-shadow .2s ease, opacity .2s ease;}

/* Desktop / hover-capable */
@media (hover: hover) and (pointer: fine) {
	#Header nav a:not(.Button):hover {background: rgba(255,255,255,0.08); border-radius: 8px;}
	#Header .BurgerMenu:hover {opacity: 0.85; transform: translateY(-1px);} 
}

/* Phones / touch-only: disable hover, use active */
@media (hover: none), (pointer: coarse) {
	#Header nav a:not(.Button):hover {background: transparent;}
	#Header nav a:not(.Button):active {background: rgba(255,255,255,0.12); border-radius: 8px;}
	#Header .BurgerMenu:hover {opacity: 1; transform: none;}
	#Header .BurgerMenu:active {transform: scale(0.96);} 
}
.Foot, .LinkSign {position: relative;}
.Foot::before, .LinkSign::before {content: ''; position: absolute; inset: 0 calc(50% - 50vw); background: #056D87; z-index: -1;}

.Foot {padding-top: 98px; padding-bottom: 108px; display: flex; flex-wrap: wrap; gap: 30px; justify-content: space-between; align-items: flex-start;}
.Foot > * {flex: 1; width: min(100%, 300px);}

.Foot :is(.C2, .C3) {font-size: 16px; line-height: 22px;}

.Foot .Socials {display: flex; gap: 15px 25px;}
.Foot .Socials a {display: grid; place-content: center; width: 50px; height: 50px; border-radius: 50%; background: var(--pink);}
.Foot .Socials img {height: 30px; width: auto;}
.Foot [href="/"] {display: block; width: fit-content; margin-bottom: 23px;}
.Foot [href="/"] img {width: 171px;}
.Foot .Heading {font-weight: bold; font-size: 20px; line-height: 100%; margin-bottom: 7px;}

.Foot .C3 a {display: block; font-weight: 500; margin-bottom: 5px;}
.Foot .C4 a {display: flex; align-items: center; font-weight: 500; margin-bottom: 17.64px; font-size: 20.9px; line-height: 31.3px; text-decoration: none;}
.Foot .C4 img {margin-right: 13.92px;}
.Foot .ContactBtn {margin-top: 15px; width: 100%; max-width: 250px;}

.LinkSign {border-top: 1px solid rgba(255,255,255,0.2); padding-top: 12px; padding-bottom: 35px; text-align: center; margin-top: -1px;}
.LinkSign a {color: rgba(255,255,255,0.5); font-size: 16px; font-weight: 500; text-decoration: none; display: flex; width: max-content; margin-left: auto; margin-right: auto; gap: 9px;}
.LinkSign img {align-items: center;}

@media (max-width: 1023px) {
	.Foot {padding-top: 70px; padding-bottom: 80px; gap: 24px;}
	.Foot > * {width: 100%; max-width: none;}
	.Foot .Socials {justify-content: center;}
}

@media (max-width: 767px) {
	.Foot {padding-top: 50px; padding-bottom: 60px; gap: 32px; flex-direction: column; align-items: center; text-align: center;}
	.Foot [href="/"] {margin-left: auto; margin-right: auto;}
	.Foot .Socials {justify-content: center;}
	.Foot .Heading {font-size: 18px;}
	.Foot .C4 a {font-size: 18px; justify-content: center;}
	.LinkSign a {font-size: 14px;}

	.Foot .ContactBtn {margin-left: auto; margin-right: auto;}
}/* Auth tabs slider */
.AuthTabs:has(.active)::before {position: absolute; top: 3px; bottom: 3px; height: calc(100% - 6px); width: calc((100% - 10px) / 2); content: ''; border-radius: 99px; background: var(--pink); left: 5px; transition: left 0.3s ease;}
.AuthTabs:has(.AuthTab:nth-child(2).active)::before {left: 50%;}

/* Interactions */
.AuthTab, .LostPwdBtn {transition: color .2s ease, opacity .2s ease, transform .15s ease, text-decoration-color .2s ease;}

@media (hover: hover) and (pointer: fine) {
	.AuthTab:not(.active):hover {opacity: 0.9; transform: translateY(-1px);} 
	.LostPwdBtn:hover {color: #ABF1FD;}
}

@media (hover: none), (pointer: coarse) {
	/* Neutralize hover on touch */
	.AuthTab:hover, .LostPwdBtn:hover {opacity: 1; transform: none;}
	/* Pressed feedback */
	.AuthTab:active {transform: translateY(1px);} 
	.LostPwdBtn:active {opacity: 0.85;}
}
/* Auth tabs slider */
.AuthTabs:has(.active)::before {position: absolute; top: 3px; bottom: 3px; height: calc(100% - 6px); width: calc((100% - 10px) / 2); content: ''; border-radius: 99px; background: var(--pink); left: 5px; transition: left 0.3s ease;}
.AuthTabs:has(.AuthTab:nth-child(2).active)::before {left: 50%;}

/* Interactions */
.AuthTab, .LostPwdBtn {transition: color .2s ease, opacity .2s ease, transform .15s ease, text-decoration-color .2s ease;}

@media (hover: hover) and (pointer: fine) {
	.AuthTab:not(.active):hover {opacity: 0.9; transform: translateY(-1px);} 
	.LostPwdBtn:hover {color: #ABF1FD;}
}

@media (hover: none), (pointer: coarse) {
	/* Neutralize hover on touch */
	.AuthTab:hover, .LostPwdBtn:hover {opacity: 1; transform: none;}
	/* Pressed feedback */
	.AuthTab:active {transform: translateY(1px);} 
	.LostPwdBtn:active {opacity: 0.85;}
}

.AuthSystemContainer .AuthInfo { 
	display: flex; align-items: center; gap: 10px;
	padding: 16px;
	margin: 0 0 16px 0;
	border-radius: 10px;
	font-size: 24px; line-height: 32px; font-weight: 600;
	border: 1px solid rgba(0,146,182,0.3);
	background: var(--blue);
	color: var(--light-blue);
	box-shadow: 0 1px 2px rgba(0,0,0,0.04);
}
.AuthSystemContainer .AuthInfo.error { background: #FCE8F2; color: #8A2C5A; border-color: rgba(223,150,190,0.45); }

@media (max-width: 767px) {
	.AuthSystemContainer .AuthInfo { font-size: 13px; padding: 10px 14px; margin-bottom: 12px; }
}
