/* 
    Template Name: Clean Wave - Swimming Pool Facility Management
    Description: A responsive, modern and futuristic animated Bootstrap template
*/

/* --- CSS Variables --- */
:root {
    --primary-color: #00d2ff;
    /* Aqua blue */
    --primary-hover: #00a8cc;
	/* White text for Paragraphs */
	--text-white: #ffffff;
	/* Dark gray for paragraphs */
    --text-dark: #1E293B;
    /* Main section background */
    --bg-white: #ffffff;    
	--bg-black: #000000;
    --bg-grayshade: #f3f7fa;
    /* Header and Footer background */
	/* --bg-header: #E8F1F8; */ /* #F1F5F9;*/
	/* --bg-footer: #DCE8F2; */
	--bg-header: #e8f1f8;
	--bg-footer: #3B444B;
	--text-header: #1E293B;
	--text-footer: #1E293B;
    -webkit-font-smoothing: subpixel-antialiased;
	-moz-osx-font-smoothing: auto;
}

* {
    box-sizing: border-box;
}

html {
scroll-behavior: smooth !important;
}


/* --- Global Styles --- */
body {
    font-family: 'Inter', sans-serif;
    background-color: var(--bg-white);
    color: var(--text-dark);
    overflow-x: hidden;
    min-width: 350px;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    color: var(--primary-color);
    font-weight: 700;
}

p {
    color: var(--text-dark);
    line-height: 1.6;
    text-align: justify;
}

a {
    color: var(--primary-color);
    text-decoration: none;
    transition: all 0.3s ease;
}

a:hover {
    color: var(--primary-hover);
    text-decoration: none;
}

.clearfix {
    overflow: auto;
}

.clearfix::after {
    content: "";
    clear: both;
    display: table;
}

/* Buttons */
.btn-primary,
.btn-aqua {
    background-color: var(--primary-color);
    border-color: var(--primary-color);
    color: var(--bg-white);
    border-radius: 30px;
    padding: 10px 25px;
    font-weight: 600;
    transition: all 0.3s ease;
}

.btn-primary:hover,
.btn-aqua:hover {
    background-color: var(--bg-white);
    color: var(--primary-color);
    border-color: var(--primary-color);
    transform: translateY(-2px);
    box-shadow: 0 4px 10px rgba(0, 210, 255, 0.3);
}

/* --- Header / Navbar --- */

header {
position: relative;
z-index: 1000; /* FIX: Keep entire header above homepage hero */
background-color: var(--bg-header);
border-bottom: 1px solid rgba(30, 41, 59, 0.12); /* Subtle bottom border */
}

.navbar {
position: relative;
z-index: 1001; /* FIX */
background-color: var(--bg-header);
padding: 15px 0;
}

.navbar-brand {
color: var(--primary-color) !important;
font-size: 24px;
font-weight: 800;
text-transform: uppercase;
letter-spacing: 1px;
}

.navbar-brand i {
margin-right: 8px;
}

.logo {
margin-right: 8px;
width: 100px;
max-width: 100%;
height: auto;
}

.footer-logo {
margin-right: 8px;
width: 150px;
max-width: 80%;
height: auto;
}

/* Nav Links Centered & Styling */

.navbar-nav {
margin: 0 auto;
}

.nav-item {
margin: 0 5px;
}

.nav-link {	
background-color: transparent !important;
color: var(--primary-color) !important;
font-weight: 500;
padding: 8px 16px !important;
border-radius: 6px;
transition:
			background-color 0.3s ease,
			color 0.3s ease;
}

/* Active & Hover link  */
	.nav-link:hover,
	.nav-link.active {
		background-color: var(--primary-hover) !important;
		color: var(--text-white) !important;
	}
	
	/* Prevent clicked/focused links from keeping an unwanted box */
	.nav-link:focus {
		background-color: transparent;
		color: var(--primary-color) !important;
	}

	/* If the focused link is also active, keep active styling */
	.nav-link.active:focus {
		background-color: var(--primary-hover) !important;
		color: var(--text-white) !important;
	}

/* Nav Icons */

.nav-icon {
margin-right: 6px;
font-size: 1.1em;
transition: transform 0.3s ease;
}

.nav-link .nav-icon {
transform: scale(1.15);
}

/* --- Mobile Nav Menu Styling --- */

@media (max-width: 991.98px) {

	.navbar-collapse {
		background-color: var(--bg-header);

		position: absolute;
		top: 100%;
		left: 0;

		width: 100%;
		/* height: 100vh; */
        height: calc(100vh - 76px);
        height: calc(100dvh - 76px);
		/* height: calc(100vh - var(--mobile-navbar-height, 76px));
        height: calc(100dvh - var(--mobile-navbar-height, 76px)); */

		/*
		 * FIX:
		 * Make the mobile menu a layer above the
		 * homepage hero/carousel.
		 */
		z-index: 1002;

		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: center;

		opacity: 0;
		visibility: hidden;

		transition:
			opacity 0.3s ease,
			visibility 0.3s ease;
		
		overflow-y: auto;
        overflow-x: hidden;		
	}

	.navbar-collapse.show {
		opacity: 1;
		visibility: visible;
	}

	.navbar-nav {
		display: flex;
		flex-direction: column;
		align-items: center;
		width: 100%;

		/* No need for 9999 here */
		/* z-index: auto; */
		
		/*
         * Remove Bootstrap/default spacing effects
         * from the vertical centering calculation.
         */
        margin: 0;
        padding: 0;
	}

	.nav-item {
		margin: 10px 0;
		width: 80%;
		text-align: center;
	}

	.nav-link {
		font-size: 20px;
		padding: 15px !important;
		border-radius: 6px;
		width: 100%;
		/* Normal links: no background */
		background-color: transparent !important;

		color: var(--primary-color) !important;

		transition:
			background-color 0.3s ease,
			color 0.3s ease;
	}
	
	/* Active & Hover link  */
	.nav-link:hover,
	.nav-link.active {
		background-color: var(--primary-hover) !important;
		color: var(--text-white) !important;
	}
	
	/* Prevent clicked/focused links from keeping an unwanted box */
	.nav-link:focus {
		background-color: transparent;
		color: var(--primary-color) !important;
	}

	/* If the focused link is also active, keep active styling */
	.nav-link.active:focus {
		background-color: var(--primary-hover) !important;
		color: var(--text-white) !important;
	}

	.nav-icon {
		margin-right: 12px;
		font-size: 1.2em;
	}


	/* Hamburger Menu Icon */

	.navbar-toggler {
		border-color: var(--primary-color);
		position: relative;
		z-index: 1003;
	}

	.navbar-toggler-icon {
		background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0, 210, 255, 1)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E");
	}

}

/* ==========================================
   Mobile Landscape Navigation
   Fix menu clipping behind the header
   ========================================== */

@media (max-width: 991.98px) and (orientation: landscape) {

    .navbar-collapse {
        /*
         * Start immediately below the navbar
         */
        top: 100%;
        left: 0;
        width: 100%;

        /*
         * Use the remaining landscape viewport height
         */
        height: calc(100vh - 76px);
        height: calc(100dvh - 76px);

        /*
         * IMPORTANT:
         * Do not vertically center the menu in
         * landscape because the viewport is short.
         */
        justify-content: flex-start;

        /*
         * Keep the menu itself scrollable as a safety
         * fallback for extremely short screens.
         */
        overflow-y: auto;
        overflow-x: hidden;

        padding-top: 8px;
        padding-bottom: 8px;
    }


    /* Navigation list */

    .navbar-nav {
        width: 100%;
        margin: 0;
        padding: 0;

        /*
         * Remove the portrait upward movement.
         */
        transform: none;

        display: flex;
        flex-direction: column;
        align-items: center;
    }


    /* Compact spacing for landscape */

    .nav-item {
        width: 75%;
        margin: 3px 0;
    }


    /* Compact links */

    .nav-link {
        width: 100%;
        font-size: 18px;

        /*
         * Smaller vertical padding allows all six
         * links to fit inside short landscape screens.
         */
        padding: 9px 15px !important;

        border-radius: 6px;
    }


    /* Icons */

    .nav-icon {
        margin-right: 10px;
        font-size: 1.1em;
    }
}

.glass-effect {
  background: rgba(255, 255, 255, 0.05);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-radius: 20px;
  border: none;
  box-shadow: 0 0 0px -30px rgba(0, 0, 0, 0);
}

/* --- Main Section Sections --- */
.section-padding {
    padding: 80px 0;
}

.bg-white {
    background-color: var(--bg-white) !important;
}

.bg-dark {
    background-color: var(--bg-black) !important;
}

.bg-light-gray {
    background-color: #f8f9fa !important;
	/* background-color: #8f8f8f !important; */
}

.bg-alternate {
    background-color: #D3D3D3 !important; /* Gray Goose: d1d0ce */
}

/* --- Hero Section --- */

.hero-section {
position: relative;

/*
 * FIX:
 * Keep hero below the header/menu stacking layer.
 */
z-index: 1;

height: 80vh;
min-height: 600px;

}

.carousel-item {
height: 80vh;
min-height: 600px;
background-size: cover;
background-position: center;
background-repeat: no-repeat;
}

.carousel-overlay {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;

background-color: rgba(0, 0, 0, 0.6);

display: flex;
align-items: center;
justify-content: center;
text-align: center;

}

.hero-content {
max-width: 70%;
margin: 0 auto;
}

.hero-content h1 {
font-size: clamp(2rem, 5vw, 4rem);
color: var(--primary-color);
margin-bottom: 20px;
text-transform: uppercase;
letter-spacing: 2px;
animation: fadeInDown 1s ease;
}

.hero-content p {
font-size: clamp(1rem, 2vw, 1.25rem);
color: var(--text-white);
margin-bottom: 30px;
animation: fadeInUp 1s ease;
}

.carousel-control-prev,
.carousel-control-next,
.carousel-indicators {
z-index: 10;
}

/* Services Cards */
.service-card {
    background: var(--bg-white);
    border-radius: 15px;
    padding: 30px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
    transition: all 0.3s ease;
    text-align: center;
    height: 100%;
    border: 1px solid #eee;
}

.service-card:hover {
    transform: translateY(-10px);
    box-shadow: 0 15px 40px rgba(0, 210, 255, 0.2);
    border-color: var(--primary-color);
}

.service-card img {
    width: 100%;
    height: 200px;
    object-fit: cover;
    border-radius: 10px;
    margin-bottom: 20px;
}

.service-card h4 {
    margin-bottom: 15px;
}

/* Team Cards */
.team-card {
    background: var(--bg-white);
    border-radius: 15px;
    padding: 20px;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);
    transition: all 0.3s ease;
    border: 1px solid #eee;
}

.team-card:hover {
    box-shadow: 0 10px 25px rgba(0, 210, 255, 0.2);
    transform: translateY(-5px);
    border-color: var(--primary-color);
}

.team-img-wrapper {
    overflow: hidden;
    border-radius: 50%;
    width: 150px;
    height: 150px;
    margin: 0 auto;
}

.team-img-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.team-card:hover .team-img-wrapper img,
.team-img-wrapper img:focus,
.team-img-wrapper img:hover {
    transform: scale(1.1);
}

/* Testimonials */
.testimonial-card {
    background: #f8f9fa;
    padding: 30px;
    border-radius: 15px;
    text-align: center;
    margin: 15px;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);
    border-left: 4px solid var(--primary-color);
}

.testimonial-img {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    object-fit: cover;
    margin: 0 auto 15px;
    border: 3px solid var(--primary-color);
}

.testimonial-card p {
    font-style: italic;
    color: var(--text-dark);
}

.testimonial-card h5 {
    margin-bottom: 0;
    color: var(--primary-color);
}

.testimonial-card small {
    color: #888;
}

/* Testimonial Auto Scroll Container */
.testimonial-marquee {
    overflow: hidden;
    position: relative;
    padding: 20px 0;
    background: #f8f9fa;
}

.testimonial-track {
    display: flex;
    width: max-content;
    animation: scrollMarquee 30s linear infinite;
}

.testimonial-marquee:hover .testimonial-track {
    animation-play-state: paused;
}

.testimonial-track>div {
    flex: 0 0 350px;
    padding: 0 15px;
    box-sizing: border-box;
    white-space: normal;
}

@keyframes scrollMarquee {
    0% {
        transform: translateX(0);
    }

    100% {
        transform: translateX(-50%);
    }
}

/* Map */
.map-container {
    width: 100%;
    height: 400px;
	position: relative;
    overflow: hidden;
}

.map-container iframe {
    width: 100%;
    height: 100%;
    border: 0;
	display: block;
}

/* Dark overlay over Google Map */
.map-container::after {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.18);
    pointer-events: none;
    z-index: 2;
}

/* body {font-family: "Lato", sans-serif;} */

.row.justify-content-center {
    display: flex;
}

/* Style the tab */
.tab {
    float: left;
    width: 20%;
    border: 1px solid #ccc;
    border-radius: 6px 0 0 6px;
    background-color: #d3de3d3;
    padding: 0;
}

/* Style the buttons inside the tab */
.tab button {
    display: block;
    width: 100%;
    margin: 0;
    padding: 22px 0;
    border: none;
    border-radius: 6px 0 0 6px;
    box-sizing: border-box;

    background-color: #d3d3d3;
    color: var(--text-dark);
    text-align: center;
    cursor: pointer;
    transition: 0.3s;
    font-size: 14px;

    appearance: none;
    -webkit-appearance: none;
}

/* Change background color of buttons on hover */
.tab button:hover {
    background-color: #ccc;
	color: var(--text-dark);
}

/* Create an active/current "tab button" class */
.tab button.active {
    background-color: var(--primary-color);
	color: var(--text-white);
    font-weight: bold;
}

/* Style the tab content */
.tabcontent {
    width: 80%;
	background-color: #d3d3d3;
    border: 1px solid #ccc;
    border-left: none;
    border-radius: 0 6px 6px 0;
    padding: 0 12px;
}

@media screen and (max-width: 768px) {
    .container {
        width: 90%;
        margin: 0 auto;
    }
	.tab {
		float: left;
		width: 25%;
	}
	.tab button {
		font-size: 0.8em;
		-webkit-font-smoothing: subpixel-antialiased;
		-moz-osx-font-smoothing: auto;
		color: var(--text-dark);
		overflow-x: hidden;
	}
	.tab button:hover {
    background-color: #ccc;
	color: var(--text-dark);
	}
	.tab button.active {
    background-color: var(--primary-color);
	color: var(--text-white);
	font-size: 0.8em;
    font-weight: bold;
	}
	.tabcontent {
    width: 75%;
    border: 1px solid #ccc;
    border-left: none;
    border-radius: 0 6px 6px 0;
    padding: 0 12px;
	-webkit-font-smoothing: subpixel-antialiased;
	-moz-osx-font-smoothing: auto;
	}
}

/* Desktop layout */
/* .tab-wrapper {
    display: flex;
    width: 100%;
}

.tab {
    width: 25%;
    min-width: 180px;
}

.tabcontent {
    width: 75%;
} */

/* Mobile responsiveness */
/* @media screen and (max-width: 768px) {

    .container {
        width: 90%;
        margin: 0 auto;
    }

    /* .tab-wrapper {
        flex-direction: column;
    } *

    .tab {
        width: 100%;
        height: auto;
    }

    .tab button {
        width: 100%;
        font-size: 16px;
    }

    .tabcontent {
        width: 100%;
        border-left: 1px solid #ccc;
        border-top: none;
        height: auto;
    }
} */

/* --- Footer --- */
footer {
    background-color: var(--bg-footer) !important;
    color: var(--text-white);
    padding: 60px 0 20px;
	border-radius: 0 !important;
	border-top: 1px solid rgba(59, 68, 75, 0.12); /* Subtle top border */
}

footer h4 {
    color: var(--primary-color);
    margin-bottom: 25px;
    font-size: 1.5rem;
}

footer p {
    /* color: #ccc; */
	color: var(--text-white);
}

footer a {
    /* color: #ccc; */
	color: var(--text-white);
    display: block;
    margin-bottom: 10px;
}

footer a:hover {
    color: var(--primary-color);
    padding-left: 5px;
}

.social-icons a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    color: #ffffff;
    border-radius: 10%;
    margin-right: 10px;
    font-size: 18px;
    transition: all 0.3s ease;
}

.social-icons a.social-fb {
    background-color: #1877F2;
}

.social-icons a.social-insta {
    /* background-color: #1877F2; */
    background: linear-gradient(45deg, #833AB4, #FD1D1D, #FCB045);
    /* 3. Legacy Safari 5.1+, Chrome 10+ (The newer WebKit syntax) */
    background-image: -webkit-linear-gradient(45deg, #833AB4, #FD1D1D, #FCB045);
    /* 4. Legacy Firefox 3.6 to 15 (-moz-) */
    background-image: -moz-linear-gradient(45deg, #833AB4, #FD1D1D, #FCB045);
    /* 5. Legacy Opera 11.10 to 12.0 */
    background-image: -o-linear-gradient(45deg, #833AB4, #FD1D1D, #FCB045);
    /* 6. Modern standard syntax (Firefox 16+, Internet Explorer 10+, Chrome 26+, Safari 7+) */
    background-image: linear-gradient(45deg, #833AB4, #FD1D1D, #FCB045);
}

/* :root {
    --tiktok-bg: #000000;
    --tiktok-red: #FE2C55;
    --tiktok-cyan: #25F4EE;
    --tiktok-white: #FFFFFF;
} */

/* .social-icons a.social-tk {
    background-color: var(--tiktok-bg);
    color: var(--tiktok-white);
} */

.social-icons a.social-tk {
    /* background-color: #1877F2; */
    background: linear-gradient(45deg, #25F4EE, #FE2C55, #FFFFFF);
    /* 3. Legacy Safari 5.1+, Chrome 10+ (The newer WebKit syntax) */
    background-image: -webkit-linear-gradient(45deg, 45deg, #25F4EE, #FE2C55, #FFFFFF);
    /* 4. Legacy Firefox 3.6 to 15 (-moz-) */
    background-image: -moz-linear-gradient(45deg, 45deg, #25F4EE, #FE2C55, #FFFFFF);
    /* 5. Legacy Opera 11.10 to 12.0 */
    background-image: -o-linear-gradient(45deg, 45deg, #25F4EE, #FE2C55, #FFFFFF);
    /* 6. Modern standard syntax (Firefox 16+, Internet Explorer 10+, Chrome 26+, Safari 7+) */
    background-image: linear-gradient(45deg, 45deg, #25F4EE, #FE2C55, #FFFFFF);
}

.social-icons a.social-wa {
    background-color: #25D366;
}

.social-icons a.social-tg {
    background-color: #0088cc;
}

.social-icons a:hover {
    background-color: var(--bg-white);
    color: var(--primary-color);
    transform: scale(1.1);
}

.social-icons a.social-insta:hover {
    background-color: var(--bg-white);
    color: var(--primary-color);
    transform: scale(1.1);
}

.social-icons a.social-tk:hover {
    background-color: var(--bg-white);
    color: var(--primary-color);
    transform: scale(1.1);
}

.footer-bottom {
    margin-top: 40px;
    padding-top: 20px;
    border-top: 1px solid rgba(59, 68, 75, 0.12);
}

.footer-bottom p {
    margin-bottom: 0;
    /* color: #aaa; */
	color: var(--text-white);
}

@media screen and (max-width: 768px) {
    .footer-bottom p {
        margin-bottom: 0;
        font-size: 0.8em;
        color: var(--text-white);
    }
}

.certificate {
    width:50%;
    max-width: 100%;
    height: auto;
    cursor:pointer;
}

/* Modal background */
.modal {
  display: none;
  position: fixed;
  z-index: 1000;
  padding-top: 60px;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  overflow: auto;
  background-color: rgba(0,0,0,0.8);
}

/* Enlarged modal image */
.modal-content {
  margin: auto;
  display: block;
  width: 60%;          /* Default width */
  height: auto;        /* Maintain aspect ratio */
  max-height: 80%;     /* Limit height to 80% of viewport */
  border-radius: 8px;
  object-fit: contain; /* Ensures portrait/landscape fit */
}

/* Caption */
#caption {
  margin: 15px auto;
  text-align: center;
  color: #ccc;
  font-size: 18px;
}

/* Close button */
.close {
  position: absolute;
  top: 20px;
  right: 35px;
  color: #fff;
  font-size: 40px;
  font-weight: bold;
  cursor: pointer;
}

.close:hover {
  color: #8a0404;
}

/* 📱 Mobile responsiveness */
@media (max-width: 768px) {
  .modal-content {
    width: 90%;       /* Use more width on smaller screens */
    max-height: 70%;  /* Slightly reduce height for better fit */
  }

  #caption {
    font-size: 16px;
  }

  .close {
    font-size: 30px;
    right: 20px;
  }
}

@media (max-width: 480px) {
  .modal-content {
    width: 95%;       /* Almost full width on very small screens */
    max-height: 65%;
  }

  #caption {
    font-size: 14px;
  }

  .close {
    font-size: 26px;
    right: 15px;
  }
}



/* Scroll to Top Button */
#scrollBtn {
    position: fixed;
	bottom: 30px;
	right: 30px;

	width: 50px;
	height: 50px;

	border: none;
	outline: none;
	border-radius: 10%;

	background-color: var(--primary-color);
	color: #ffffff;

	cursor: pointer;
	padding: 0;

	display: flex;
	align-items: center;
	justify-content: center;

	font-size: 18px;
	box-shadow: 0 4px 10px rgba(0, 0, 0, 0.3);

	/* Hidden initially */
	opacity: 0;
	visibility: hidden;
	pointer-events: none;

	/* Button show/hide animation */
	transform: translateY(10px);
	transition:
		opacity 0.3s ease,
		visibility 0.3s ease,
		transform 0.3s ease;

	z-index: 9999;
}

#scrollBtn.show {
    opacity: 1;
    visibility: visible;
	pointer-events: auto;
	transform: translateY(0);
}

#scrollBtn {
    background-color: var(--primary-hover);
    transform: translateY(-3px);
}

/* ------------------------------------------
Mobile
------------------------------------------ */

@media (max-width: 768px) {

#scrollBtn {
    width: 40px;
    height: 40px;
    font-size: 16px;
    bottom: 20px;
    right: 20px;
}

}

/* Mobile responsive styles */
@media (max-width: 991.98px) {
    .section-padding {
        padding: 60px 0;
    }
}

@media (max-width: 768px) {
    .hero-content {
        width: 90%;
    }

    .hero-section,
    .carousel-item {
        min-height: 500px;
        height: 70vh;
    }

    .section-padding {
        padding: 50px 0;
    }

    #scrollBtn {
        width: 40px;
        height: 40px;
        font-size: 16px;
        bottom: 20px;
        right: 20px;
    }

    .service-card {
        padding: 20px;
    }

    .service-card img {
        height: 180px;
    }

    footer {
        padding: 40px 0 20px;
    }

    .map-container {
        height: 300px;
    }
}

@media (max-width: 576px) {

    .hero-section,
    .carousel-item {
        min-height: 400px;
        height: 60vh;
    }

    .section-padding {
        padding: 40px 0;
    }

    .testimonial-card {
        padding: 20px;
        margin: 10px;
    }
}

/* Animations */
@keyframes fadeInDown {
    from {
        opacity: 0;
        transform: translateY(-30px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* === Widget Base Styles === */
.social-widget {
    display: flex;
    flex-direction: column;
    gap: 12px;
    position: fixed;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    z-index: 9999;
}

.tooltip-container {
    position: relative;
    display: inline-block;
}

.tooltip-text {
    position: absolute;
    right: 100%;
    margin-right: 12px;
    background-color: black;
    color: #f8f8ff;
    padding: 6px 10px;
    border-radius: 4px;
    white-space: nowrap;
    visibility: hidden;
    opacity: 0;
    transform: translateY(-50%);
    top: 50%;
    transition:
        opacity 0.3s ease,
        transform 0.3s ease;
    pointer-events: none;
    width: max-content;
    text-align: right;
}

.tooltip-container:hover .tooltip-text {
    visibility: visible;
    opacity: 1;
    transition-delay: 0.3s;
    transform: translateY(-50%) translateX(-5px);
}

/* Hide immediately on mouse leave */
.tooltip-container .tooltip-text {
    transition:
        opacity 0.15s ease,
        visibility 0.15s ease;
}

/* Button styles */
.widget-btn {
    border: none;
    color: #f8f8ff;
    padding: 12px;
    border-radius: 10px 0 0 10px;
    cursor: pointer;
    transition: transform 0.3s ease;
    font-size: 1.1rem;
}

.call-btn {
    background-color: #9e9c05
}

.email-btn {
    background-color: #800020;
}

.whatsapp-btn {
    background-color: #25d366;
}

.telegram-btn {
    background-color: #0088cc;
}

.widget-btn i {
    transition: transform 0.3s ease;
}

.widget-btn:hover i {
    transform: rotate(180deg);
}

.social-widget.dimmed {
    opacity: 0.5;
    transition: opacity 0.5s ease;
}

/* === Responsive Styles === */

/* Phones */
@media screen and (max-width: 630px) {
    .widget-btn {
        font-size: 0.95rem;
        padding: 10px 11px;
    }

    .tooltip-container {
        position: relative;
        display: inline-block;
    }

    .tooltip-text {
        visibility: hidden;
        opacity: 0;
        position: absolute;
        font-size: 13px;
        margin-right: 10px;
        white-space: normal;
        width: max-content;
        pointer-events: none;
    }

    .tooltip-container:hover .tooltip-text {
        visibility: visible;
        opacity: 1;
        transition-delay: 0.3s;
        transform: translateY(-50%) translateX(-5px);
    }

    /* Hide immediately on mouse leave */
    .tooltip-container .tooltip-text {
        transition:
            opacity 0.15s ease,
            visibility 0.15s ease;
    }
}

/* Tablets Portrait */
@media screen and (min-width: 631px) and (max-width: 900px) and (orientation: portrait) {
    .widget-btn {
        font-size: 1rem;
        padding: 11px;
    }

    .tooltip-container {
        position: relative;
        display: inline-block;
    }

    .tooltip-text {
        visibility: hidden;
        opacity: 0;
        position: absolute;
        font-size: 14px;
        margin-right: 12px;
        pointer-events: none;
    }

    .tooltip-container:hover .tooltip-text {
        visibility: visible;
        opacity: 1;
        transition-delay: 0.3s;
        transform: translateY(-50%) translateX(-5px);
    }

    /* Hide immediately on mouse leave */
    .tooltip-container .tooltip-text {
        transition:
            opacity 0.15s ease,
            visibility 0.15s ease;
    }
}

/* Tablets Landscape */
@media screen and (min-width: 901px) and (max-width: 1199px) and (orientation: landscape) {
    .widget-btn {
        font-size: 1.05rem;
        padding: 11px;
    }

    .tooltip-container {
        position: relative;
        display: inline-block;
    }

    .tooltip-text {
        visibility: hidden;
        opacity: 0;
        position: absolute;
        font-size: 14px;
        pointer-events: none;
    }

    .tooltip-container:hover .tooltip-text {
        visibility: visible;
        opacity: 1;
        transition-delay: 0.3s;
        transform: translateY(-50%) translateX(-5px);
    }

    /* Hide immediately on mouse leave */
    .tooltip-container .tooltip-text {
        transition:
            opacity 0.15s ease,
            visibility 0.15s ease;
    }
}

/* iPad 10.2" Portrait */
@media screen and (device-width: 810px) and (orientation: portrait) {
    .widget-btn {
        font-size: 1rem;
        padding: 11px 12px;
    }

    .tooltip-container {
        position: relative;
        display: inline-block;
    }

    .tooltip-text {
        visibility: hidden;
        opacity: 0;
        position: absolute;
        font-size: 14px;
        margin-right: 14px;
        pointer-events: none;
    }

    .tooltip-container:hover .tooltip-text {
        visibility: visible;
        opacity: 1;
        transition-delay: 0.3s;
        transform: translateY(-50%) translateX(-5px);
    }

    /* Hide immediately on mouse leave */
    .tooltip-container .tooltip-text {
        transition:
            opacity 0.15s ease,
            visibility 0.15s ease;
    }
}

/* iPad 10.2" Landscape */
@media screen and (device-width: 1080px) and (orientation: landscape) {
    .widget-btn {
        font-size: 1.05rem;
        padding: 12px 13px;
    }

    .tooltip-container {
        position: relative;
        display: inline-block;
    }

    .tooltip-text {
        visibility: hidden;
        opacity: 0;
        position: absolute;
        font-size: 14px;
        margin-right: 16px;
    }

    .tooltip-container:hover .tooltip-text {
        visibility: visible;
        opacity: 1;
        transition-delay: 0.3s;
        transform: translateY(-50%) translateX(-5px);
    }

    /* Hide immediately on mouse leave */
    .tooltip-container .tooltip-text {
        transition:
            opacity 0.15s ease,
            visibility 0.15s ease;
    }
}

.contact-company {
	font-size: clamp(0.8rem, 1.2rem, 1.4rem);
	color: var(--primary-color);
}

.contact-regno {
	font-size: clamp(0.3rem, 0.6rem, 0.8rem);
	color: var(--text-dark);
}