        /* Custom styles for the theme and responsiveness */
        html, body { /* Apply overscroll-behavior-y to both html and body */
            overscroll-behavior-y: none; /* Prevent vertical overscroll (rubber-banding) */
        }
        body {
            font-family: 'Inter', sans-serif;
            color: #1a202c; /* Dark text for readability */
            background-color: #f8f9fa; /* Light sandy background */
            transition: background-color 0.4s ease, color 0.4s ease;
            min-width: 375px; /* Enforce minimum viewport width */
            margin: 0; /* Ensure no default body margin */
            padding: 0; /* Ensure no default body padding */
            overflow-x: hidden; /* Prevent horizontal scroll */
        }
        h1, h2, h3, h4, h5, h6 {
            font-family: 'Poppins', sans-serif;
            color: #003366; /* Abyssal Blue for headings */
            transition: color 0.4s ease;
            letter-spacing: 0.025em; /* Apply letter spacing to all Poppins headings for readability */
        }
        /* Custom Tailwind colors for oceanic theme */
        .bg-ocean-deep { background-color: #007BFF; } /* Primary Blue */
        .text-ocean-deep { color: #007BFF; }
        .bg-seaweed-green { background-color: #28A745; } /* Accent Green */
        .text-seaweed-green { color: #28A745; }
        .bg-sky-blue-light { background-color: #E0F2F7; } /* Light Blue */
        .text-sky-blue-light { color: #E0F2F7; }
        .bg-abyssal-blue { background-color: #003366; } /* Dark Blue */
        .text-abyssal-blue { color: #003366; }
        .bg-beach-sand { background-color: #F8F9FA; } /* Sandy Tone */
        .text-beach-sand { color: #F8F9FA; }
        .bg-coral-red { background-color: #FF6B6B; } /* Coral Accent */
        .text-coral-red { color: #FF6B6B; }

        /* General button styling - expanded from @apply */
        /* Original @apply definition: @apply bg-coral-red text-white font-semibold py-3 px-6 rounded-full shadow-lg focus:outline-none focus:ring-2 focus:ring-coral-red focus:ring-opacity-75; */
        /* Note: @apply requires PostCSS for processing. These properties are manually expanded for CDN usage. */
        .btn-primary {
            background-color: #FF6B6B; /* bg-coral-red */
            color: #ffffff; /* text-white */
            box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); /* shadow-lg */
            box-shadow: 0 0 0 2px rgba(255, 107, 107, 0.75); /* focus:ring-2 focus:ring-coral-red focus:ring-opacity-75 */
        }
        /* Original @apply definition: @apply bg-ocean-deep text-white font-semibold py-3 px-6 rounded-full shadow-lg focus:outline-none focus:ring-2 focus:ring-ocean-deep focus:ring-opacity-75; */
        /* Note: @apply requires PostCSS for processing. These properties are manually expanded for CDN usage. */
        .btn-secondary {
            background-color: #007BFF; /* bg-ocean-deep */
            color: #ffffff; /* text-white */
            box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); /* shadow-lg */
            box-shadow: 0 0 0 2px rgba(0, 123, 255, 0.75); /* focus:ring-2 focus:ring-ocean-deep focus:ring-opacity-75 */
        }
        /* Original @apply definition: @apply border-2 border-ocean-deep text-ocean-deep font-semibold py-3 px-6 rounded-full focus:outline-none focus:ring-2 focus:ring-ocean-deep focus:ring-opacity-75; */
        /* Note: @apply requires PostCSS for processing. These properties are manually expanded for CDN usage. */
        .btn-outline {
            border-width: 2px; /* border-2 */
            border-color: #007BFF; /* border-ocean-deep */
            color: #007BFF; /* text-ocean-deep */
            box-shadow: 0 0 0 2px rgba(0, 123, 255, 0.75); /* focus:ring-2 focus:ring-ocean-deep focus:ring-opacity-75 */
        }
	.btn-primary, .btn-secondary, .btn-outline {
            border-radius: 9999px; /* rounded-full */
            font-size: 0.9rem;
            font-weight: 600; /* font-semibold */
            outline: none; /* focus:outline-none */
            padding: 0.5rem 1rem;
        }
        /* Default hover for btn-primary, btn-secondary, btn-outline (used outside hero section) */
        .btn-primary:not(.hero-btn):hover {
            background-color: #DC2626; /* bg-red-600 */
            Xtransform: scale(1.05);
        }
        .btn-secondary:not(.hero-btn):hover {
            background-color: #1D4ED8; /* bg-blue-700 */
            Xtransform: scale(1.05);
        }
        .btn-outline:not(.hero-btn):hover {
            background-color: #007BFF; /* bg-ocean-deep */
            color: #ffffff; /* text-white */
            Xtransform: scale(1.05);
        }

        /* Hero buttons: no hover effects (no scale, no color change) */
        .hero-btn {
            transition: none !important; /* Override all transitions */
            transform: none !important; /* Override transform */
            box-shadow: none !important; /* Override box-shadow */
            /* Ensure no background/text/border color change on hover */
            background-color: initial !important;
            color: white !important; /* Always white text for contrast in hero */
            border-color: white !important; /* Always white border for contrast in hero */
        }
        .hero-btn:hover {
            background-color: initial !important;
            color: white !important;
            border-color: white !important;
            transform: none !important;
            box-shadow: none !important;
        }
        /* Dark mode specifically for hero buttons - keep them white/white border */
        body.dark-mode .hero-btn {
            color: white !important;
            border-color: white !important;
        }

        /* Custom padding for hero primary/secondary buttons */
        .btn-primary.hero-btn,
        .btn-secondary.hero-btn {
            padding-left: 0.5rem !important;
            padding-right: 0.5rem !important;
        }


        /* Carousel specific styles */
        .carousel-container {
            position: relative;
            overflow: hidden; /* Ensure content outside current slide is hidden */
            border-radius: 1rem; /* rounded-xl */
        }
        .carousel-wrapper {
            position: relative; /* Needed for absolute positioning of items */
            min-height: 200px; /* Example height, adjust as needed */
        }
        .carousel-item {
            opacity: 0;
            visibility: hidden;
            transition: opacity 1.5s ease-in-out, visibility 1.5s ease-in-out; /* Slower fade transition */
            position: absolute; /* Position items on top of each other */
            top: 0;
            left: 0;
            width: 100%;
            height: 100%; /* Fill parent height */
            display: flex; /* To center content within item */
            flex-direction: column;
            justify-content: center;
            align-items: center;
            text-align: center;
        }
        .carousel-item.active {
            opacity: 1;
            visibility: visible;
            position: relative; /* Bring active item back to normal flow for height calculation */
            height: auto; /* Allow content to define height */
            min-height: 200px; /* Ensure minimum height */
        }
        .carousel-item-content {
            padding: 1rem 2.5rem; /* Updated horizontal padding */
            width: 100%; /* Ensure content takes full width */
        }
        .carousel-nav-button {
            position: absolute;
            top: 50%;
            transform: translateY(-50%);
            background-color: rgba(0, 51, 102, 0.6); /* Abyssal blue with opacity */
            color: white;
            padding: 0.75rem 1rem;
            border-radius: 9999px; /* rounded-full */
            cursor: pointer;
            z-index: 10;
            opacity: 0.5; /* Reduced opacity by default */
            transition: opacity 0.3s ease-in-out, background-color 0.3s ease;
        }
        .carousel-nav-button:hover {
            background-color: rgba(0, 51, 102, 0.8);
            opacity: 1; /* Fully opaque on hover */
        }
        .carousel-nav-button.left { left: 1rem; }
        .carousel-nav-button.right { right: 1rem; }
        .carousel-dots {
            display: flex;
            justify-content: center;
            margin-top: 1rem;
        }
        .carousel-dot {
            width: 0.75rem;
            height: 0.75rem;
            background-color: #cbd5e0; /* gray-400 */
            border-radius: 9999px;
            margin: 0 0.25rem;
            cursor: pointer;
            transition: background-color 0.3s ease;
        }
        .carousel-dot.active {
            background-color: #007BFF; /* ocean-deep */
        }

        /* Ensure WCAG compliance for focus states */
        /* All focus outlines should be consistent and transient */
        a:focus, button:focus, input:focus, select:focus, textarea:focus {
            outline: none; /* Remove default outline */
            box-shadow: 0 0 0 2px rgba(0, 123, 255, 0.75); /* Custom focus ring (Ocean Deep) */
            transition: box-shadow 0.2s ease-in-out; /* Make it transient */
        }
        /* Re-apply default focus for elements that are not buttons/links etc. if needed */


        /* Dark Mode Styles */
        body.dark-mode {
            background-color: #1a202c; /* Dark background */
            color: #e2e8f0; /* Light text */
        }
        body.dark-mode h1, body.dark-mode h2, body.dark-mode h3, body.dark-mode h4, body.dark-mode h5, body.dark-mode h6 {
            color: #90cdf4; /* Lighter blue for headings */
        }
        body.dark-mode .bg-beach-sand { background-color: #1a202c; }
        body.dark-mode .bg-sky-blue-light { background-color: #2d3748; /* Darker grey-blue */ }
        body.dark-mode .text-abyssal-blue { color: #e2e8f0; } /* Light text in dark mode */
        /* Adjusted dark mode for cards and text for better contrast */
        body.dark-mode .bg-white-tile { background-color: #4b5563; } /* gray-600 for lighter tiles in dark mode */
        body.dark-mode .border-gray-200 { border-color: #4a5568; } /* Darker border */
        body.dark-mode .text-gray-700 { color: #e2e8f0; } /* Lighter grey text for better contrast */
        body.dark-mode .bg-gray-700 { background-color: #4a5568; } /* Darker input background */
        body.dark-mode .border-gray-600 { border-color: #6b7280; } /* Darker input border */
        body.dark-mode .text-gray-300 { color: #a0aec0; } /* Lighter grey for footer text */
        body.dark-mode .text-gray-400 { color: #718096; } /* Darker copyright text */
        body.dark-mode .carousel-nav-button { background-color: rgba(144, 205, 244, 0.6); color: #1a202c; } /* Lighter blue with opacity */
        body.dark-mode .carousel-nav-button:hover { background-color: rgba(144, 205, 244, 0.8); }
        body.dark-mode .carousel-dot { background-color: #718096; } /* Darker dot */
        body.dark-mode .carousel-dot.active { background-color: #90cdf4; } /* Lighter active dot */
        body.dark-mode .btn-outline {
            border-color: #90cdf4; /* Lighter border in dark mode */
            color: #90cdf4; /* Lighter text in dark mode */
        }
        body.dark-mode .btn-outline:hover {
            background-color: #90cdf4; /* Lighter background on hover */
            color: #1a202c; /* Dark text on hover */
        }

        /* Custom dark mode override for Anthony's Key Resort (bg-gray-400) */
        body.dark-mode .bg-gray-400 {
            background-color: #374151; /* gray-700 for dark mode */
        }
        /* Custom dark mode override for Caradonna Adventures (bg-gray-100) */
        body.dark-mode .bg-gray-100 {
            background-color: #2a3a4a; /* A subtle dark blue-gray for dark mode */
        }

        /* Custom dark mode override for bg-blue-100 (Beqa Lagoon Resort) */
        body.dark-mode .bg-blue-100 {
            background-color: #1f2937; /* bg-gray-800 for less contrast in dark mode */
        }

        /* Light Mode Tile Contrast */
        .bg-white-tile {
            background-color: #e5e7eb; /* gray-200 for darker tiles in light mode */
        }

        /* Specific dark mode background for events/partners sections */
        body.dark-mode section#events,
        body.dark-mode section#partners {
            background-color: #111827; /* gray-900 for section background */
        }

        /* Hero animation */
        @keyframes fadeInScale {
            from { opacity: 0; transform: scale(0.95); }
            to { opacity: 1; transform: scale(1); }
        }
        .animate-fade-in-scale {
            animation: fadeInScale 1s ease-out forwards;
        }

        /* Card hover effects */
        .card-hover-effect {
            transition: transform 0.3s ease-in-out, box-shadow 0.3s ease-in-out;
        }
        .card-hover-effect:hover {
            transform: translateY(-5px);
            box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);
        }
        body.dark-mode .card-hover-effect:hover {
            box-shadow: 0 10px 20px rgba(0, 0, 0, 0.3);
        }

        /* Disable tile hover effects on single column (mobile) */
        @media (max-width: 767px) { /* Tailwind's 'md' breakpoint is 768px */
            .card-hover-effect:hover {
                transform: translateY(0px); /* Disable transform */
                box-shadow: none; /* Disable box-shadow */
            }
            body.dark-mode .card-hover-effect:hover {
                box-shadow: none;
            }
        }

        /* Header structure */
        #main-header {
            height: 170px; /* Initial total height (90px image + 8px*2 margin + 64px nav) */
            transition: height 0.3s ease-in-out; /* Smooth transition for header height */
            display: flex;
            flex-direction: column;
            justify-content: flex-end; /* Align nav to bottom */
            background-color: #003366; /* Solid background for the entire fixed header */
            top: 0;
            left: 0;
            right: 0;
        }

        #main-header.header-compact {
            height: 122px; /* Compact total height (50px image + 4px*2 margin + 64px nav) */
        }

        /* Header image container */
        #header-image-container {
            /* Height will be determined by its content (img) and its margins */
            box-sizing: border-box; /* Include padding in height calculation */
            cursor: pointer; /* Indicate it's clickable */
            flex-shrink: 0; /* Prevent it from shrinking more than intended by flexbox */
            display: flex; /* Use flex to align image and icon */
            align-items: center; /* Vertically center the image and icon */
            justify-content: space-between; /* Push logo left, icon right */
            padding-right: 1.5rem; /* Right padding for the icon */
        }
        #header-image-container img {
            height: 90px; /* Initial explicit height for the image */
            width: auto; /* Maintain aspect ratio */
            object-fit: contain; /* Ensure image is fully visible */
            margin-left: 1.5rem; /* Left margin for the image */
            margin-top: 0.5rem; /* Initial top margin (8px) */
            margin-bottom: 0.5rem; /* Initial bottom margin (8px) */
            display: block; /* Ensure img behaves as a block element */
            transition: height 0.3s ease-in-out, margin 0.3s ease-in-out; /* Smooth transition for img height and margins */
        }

        #main-header.header-compact #header-image-container img {
            height: 50px; /* Compact explicit height for the image */
            margin-top: 0.25rem; /* Smaller top margin (4px) */
            margin-bottom: 0.25rem; /* Smaller bottom margin (4px) */
        }


        /* Navigation section - fixed height and padding */
        #header-nav-section {
            height: 64px; /* Fixed height for navigation bar */
            flex-shrink: 0; /* Prevent it from shrinking */
            padding-top: 0.5rem; /* Reduced vertical padding */
            padding-bottom: 0.5rem; /* Reduced vertical padding */
            box-sizing: border-box; /* Include padding in height calculation */
        }

        /* Ensure the main content starts below the header */
        main {
            /* Initial padding set in CSS based on initial header height to prevent content jump on load. */
            padding-top: 170px; /* Initial padding to account for full header height */
            transition: padding-top 0.3s ease-in-out; /* Smooth transition for content adjustment */
        }

        /* Footer contact item styling for indentation */
        .footer-contact-item {
            display: flex;
            align-items: flex-start; /* Align icon and text to the top */
            margin-bottom: 0.5rem; /* Space between items */
        }
        .footer-contact-item i {
            flex-shrink: 0; /* Prevent icon from shrinking */
            width: 1.5rem; /* Standardized width for icons (24px) */
            text-align: center; /* Center icon within its allocated width */
            margin-right: 0.5rem; /* Space between icon and text */
            padding-top: 0.125rem; /* Adjust for vertical alignment if needed */
        }
        .footer-contact-item span { /* Wrap text in span */
            flex-grow: 1; /* Allow text to grow */
        }

        /* Scroll to top button */
        #scroll-to-top-btn {
            position: fixed;
            bottom: 1.5rem; /* 24px */
            right: 1.5rem; /* 24px */
            background-color: #007BFF; /* ocean-deep */
            color: white;
            padding: 0.75rem 1rem; /* py-3 px-4 */
            border-radius: 9999px; /* rounded-full */
            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
            display: flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            opacity: 0.5; /* Start semi-transparent */
            visibility: hidden; /* Hidden by default */
            transition: opacity 0.3s ease-in-out, visibility 0.3s ease-in-out;
            z-index: 1000;
        }
        #scroll-to-top-btn.show {
            opacity: 0.5; /* Maintain semi-transparency when shown */
            visibility: visible;
        }
        #scroll-to-top-btn:hover {
            opacity: 1; /* Fully opaque on hover */
        }


        /* Smooth scroll behavior for the entire document */
        html {
            scroll-behavior: smooth;
        }

        /* Scroll-margin-top for fixed header offset */
        /* Set to max header height (170px) + buffer (10px) = 180px */
        section[id], div[id] {
            scroll-margin-top: 180px; /* Accounts for maximum header height + buffer */
        }

        /* Hero section with background image */
        .hero-with-bg {
            position: relative;
            background-color: #007BFF; /* Fallback color */
            overflow: hidden;
        }

        .hero-with-bg::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background-image: url('https://newco.beneaththesea.us/images/bg_hero.jpg');
            background-size: cover; /* Fills the area, cropping if necessary */
            background-position: center;
            background-repeat: no-repeat;
            opacity: 0.4; /* Adjust image opacity here */
            z-index: 0; /* Place behind content */
        }

        /* Dark overlay for text readability, now with increased opacity */
        .hero-overlay {
            position: absolute;
            inset: 0;
            background-color: black;
            opacity: 0.4; /* Increased opacity for better contrast */
            z-index: 0; /* Placed behind content, but above the image pseudo-element */
        }

        /* Ensure content is above the pseudo-element and overlay */
        .hero-with-bg > .container {
            position: relative;
            z-index: 1;
        }

        /* For h1 title text in hero section */
        .hero-with-bg h1 {
            color: white; /* Explicitly set to white for contrast */
        }

        /* Custom grid for footer at lg breakpoint to make 'Connect With Us' column wider */
        @media (min-width: 1024px) { /* Equivalent to Tailwind's lg breakpoint */
            #contact > .container.grid {
                grid-template-columns: 1fr 1fr 1.3fr 1fr; /* Custom widths for columns */
            }
        }

        /* Video overlay button styling */
        .video-container-relative {
            position: relative;
            width: 100%;
            padding-bottom: 56.25%; /* 16:9 Aspect Ratio (9 / 16 * 100%) */
            height: 0;
            overflow: hidden;
        }

        .video-container-relative video {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            object-fit: cover; /* Ensures video covers the area without distortion */
        }

        .video-overlay-button {
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            background-color: rgba(0, 51, 102, 0.7); /* Abyssal blue with opacity */
            color: white;
            width: 64px; /* w-16 */
            height: 64px; /* h-16 */
            border-radius: 9999px; /* rounded-full */
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 2rem; /* text-3xl */
            cursor: pointer;
            z-index: 10;
            transition: background-color 0.3s ease, opacity 0.3s ease;
            opacity: 1; /* Always visible initially */
        }

        .video-overlay-button:hover {
            background-color: rgba(0, 51, 102, 0.9);
        }

        .video-overlay-button.hidden {
            opacity: 0;
            pointer-events: none; /* Disable clicks when hidden */
        }

	/* Custom style to adjust scroll-to-top button position when cookie banner is active */
        #scroll-to-top-btn.banner-active {
            bottom: 190px; /* Adjust this value based on the cookie banner's height */
        }
