/* style.css */
/* Import */
@import url('https://fonts.googleapis.com/css2?family=Great+Vibes&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500&display=swap');

/* Add transitions to homepage elements for smooth appearance/disappearance */
.wedding-date-location,
.lead,
.date-location-text,
.countdown {
    transition: opacity 0.3s ease, visibility 0.3s ease;
}

/* General Global Setting */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    text-decoration: none;
}

/* Font optimization for better cross-device compatibility */
html {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}

/* Fix for mobile viewport width issues */
html, body {
    max-width: 100vw;
    overflow-x: hidden;
    scroll-behavior: smooth;
    position: relative;
}

/* Mobile-specific body/html fixes */
@media (max-width: 768px) {
    html, body {
        height: 100%;
        width: 100%;
        max-width: 100%;
        margin: 0 !important;
        padding: 0 !important;
        overflow-x: hidden;
    }
    
    /* Override any Bootstrap classes that might interfere */
    .container-fluid, .container, .row {
        width: 100% !important;
        max-width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    
    /* Homepage overlay for better text visibility */
    .banner::before {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background-color: rgba(75, 75, 75, 0.25); /* Davy's Gray #4B4B4B with 25% opacity */
        z-index: 300; /* Between background image (z-index: 200) and content (z-index: 1100+), ensuring tint appears BEHIND text, not on it */
        pointer-events: none; /* Allows clicks to pass through to elements underneath */
    }
}

:root {
    --primary: #A58C85;
    /* Warm Taupe - for depth, headings, contrast */
    --secondary: #C9A9A6;
    /* Dusty Mauve - for buttons, highlights */
    --accent: #E8C7C8;
    /* Muted Blush Pink - primary, backgrounds, accents */
    --background-light: #FDFBF6;
    /* Ivory - main background / body content */
    --text-dark: #4B4B4B;
    /* Graphite Gray - for text */
    --title-brown: #A58C85;
    /* Warm Taupe - for heading text */
    --peach-text: #E8C7C8;
    /* Muted Blush Pink - for highlighted text */
    --champagne: #F6E2C5;
    /* Champagne - for cards, overlays */
    --header-padding-desktop: 100px;
    --header-padding-tablet: 50px;
    --header-padding-mobile: 20px;
    --section-padding-desktop: 100px;
    --section-padding-tablet: 50px;
    --section-padding-mobile: 20px;
}

body {
    position: relative;
    background: var(--background-light);
    font-family: "Ubuntu Condensed", serif;
    min-height: 100vh;
    color: var(--text-dark);
}

body.menu-open {
    overflow: hidden;
    /* Prevent scrolling when menu is open */
}

/* Header */
header {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 20px var(--header-padding-desktop);
    background: transparent;
    backdrop-filter: blur(10px);
    border-bottom: 1px solid rgba(165, 140, 133, 0.2);
    /* Updated border color to match Warm Taupe */
    transition: 1s;
    z-index: 1300;
}

header.active {
    background: var(--background-light);
    box-shadow: 0 0 50px rgba(165, 140, 133, 0.15);
}

/* Default styles for all devices */
.mobile-logo-container {
    display: none;
    /* Hidden by default */
}

.mobile-logo {
    height: 1.8rem;
    width: auto;
    margin-bottom: 2px;
}

/* Desktop logo */
.desktop-logo {
    position: relative;
    height: calc(3.5rem * 0.95);
    width: auto;
    z-index: 1310;
    transition: 0.3s ease-in-out;
    margin-right: 0;
    /* Remove right margin */
}

.menu {
    color: var(--text-dark);
    font-size: 2em;
    transition: 0.5s;
    position: relative;
    display: none;
    z-index: 1400;
}

.menu.active {
    transform: translateX(0);
}

.menu ion-icon {
    font-size: 1.5em;
}

/* Main Navigation */
.nav {
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 0;
    padding: 0;
    flex: 1;
}

.nav li {
    list-style: none;
    position: relative;
    padding: 0;
    display: flex;
    justify-content: center;
    flex: 1;
    /* Make all items equal width */
}

.nav li a {
    color: var(--text-dark);
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 1px;
    cursor: pointer;
    transition: 0.5s;
    font-weight: 300;
    padding: 0 15px;
    white-space: nowrap;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    height: 2.5rem;
}

.nav li a:hover,
.nav li a.active {
    color: var(--accent);
}

/* Homepage specific nav button colors */
header:not(.active) .nav li a {
    color: #1a1a1a; /* Darker black for homepage */
    /* Optional: Add text-shadow if needed for contrast, but dark text might be fine */
    /* text-shadow: 0 1px 2px rgba(255, 255, 255, 0.2); */
}

/* Keep hover/active color consistent with other sections */
header:not(.active) .nav li a:hover,
header:not(.active) .nav li a.active {
    color: var(--accent); /* Use the standard accent color for hover/active */
    text-shadow: none; /* Ensure no shadow on hover/active */
}

/* Search */
.search {
    display: none;
    /* Hide the search feature */
}

/* Banner */
.banner {
    position: relative;
    width: 100%;
    height: 100vh;
    padding: 0 var(--header-padding-desktop);
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
    transition: 0.5s;
    /* Add transition properties for smooth appearance/disappearance */
    transition: opacity 0.3s ease, visibility 0.3s ease;
}

.banner::after {
    position: absolute;
    content: '';
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(253, 251, 246, 0.2);
    z-index: 500;
}

.bg-slide {
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
    opacity: 0;
    /* Ensure slides always exist in DOM but are invisible until active */
    visibility: visible;
    transition: opacity 1.2s ease-in-out;
    z-index: 100;
}

.bg-slide.active {
    opacity: 1;
    z-index: 200;
}

/* Enhance slide content transitions */
.bg-slide .content {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: scale(0.95) translate(-50%, -50%);
    width: 60%;
    max-width: 800px;
    z-index: 1100;
    transition: all 1.5s cubic-bezier(0.19, 1, 0.22, 1);
    opacity: 0;
    /* Display content but keep invisible until active */
    visibility: visible;
    text-align: center;
}

/* Subtle text shadow for better readability */
.bg-slide .content h1 {
    font-size: clamp(3em, 8vw, 8em);
    /* Responsive font size */
    text-transform: uppercase;
    color: var(--peach-text);
    line-height: 1.2;
    text-shadow: 0 3px 6px rgba(0, 0, 0, 0.6); /* Harsher shadow: increased offset, blur, and opacity */
}

.bg-slide .content p {
    font-family: 'Playfair Display', serif;
    font-weight: 400;
    font-style: italic;
    font-size: clamp(1em, 2vw, 1.5em);
    letter-spacing: 1px;
    color: var(--peach-text);
    text-shadow: 0 3px 6px rgba(0, 0, 0, 0.6); /* Harsher shadow: increased offset, blur, and opacity */
}

/* Soft transition for slide content */
.bg-slide.active .content {
    transform: scale(1) translate(-50%, -50%);
    opacity: 1;
    visibility: visible;
}

.circle {
    border-radius: 50%;
    overflow: hidden;
    display: flex;
    justify-content: center;
    align-items: center;
    transform: translate(0, 0);
    opacity: 0;
    visibility: hidden;
    transition: 1.8s cubic-bezier(0.22, 1, 0.36, 1);
    transform-origin: center center;
}

.circle.bg {
    background: transparent;
    width: 140vw;
    height: 140vw;
    border-radius: 0;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 150; /* Ensure proper stacking */
}

.circle.large {
    width: 70vw;
    height: 70vw;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.circle.small {
    width: 35vw;
    height: 35vw;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

/* Refined circle image styling */
.circle img {
    position: absolute;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    transition: transform 2s cubic-bezier(0.22, 1, 0.36, 1);
    will-change: transform, opacity;
}

/* Mobile/Desktop image display rules */
.circle .mobile-slide {
    display: none; /* Hide mobile slides by default */
}

.circle .desktop-slide {
    display: block; /* Show desktop slides by default */
}

/* Media query for mobile devices */
@media (max-width: 768px) {
    .circle .mobile-slide {
        display: block; /* Show mobile slides on small screens */
    }
    
    .circle .desktop-slide {
        display: none; /* Hide desktop slides on small screens */
    }
    
    /* Optimize mobile slide positioning and sizing */
    .circle.bg .mobile-slide {
        position: absolute !important;
        top: 0 !important;
        left: 0 !important;
        width: 100% !important;
        height: 100vh !important;
        object-fit: cover !important;
        object-position: center !important;
        max-width: 100vw !important;
        min-width: 100vw !important;
        transform: none !important;
    }
    
    /* Remove banner padding on mobile to eliminate whitespace */
    .banner {
        padding: 0;
        width: 100%;
        max-width: 100%;
        margin: 0;
        left: 0;
        right: 0;
        height: 100vh !important;
        position: absolute !important;
        overflow: hidden !important;
    }
    
    /* Ensure container-fluid doesn't add unwanted margins/padding */
    .banner.container-fluid {
        padding-left: 0 !important;
        padding-right: 0 !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        max-width: 100% !important;
        width: 100% !important;
    }
    
    /* Ensure bg-slide and circle bg fill the screen width */
    .bg-slide {
        width: 100%;
        height: 100vh !important;
        position: absolute !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        overflow: hidden !important;
    }
    
    .circle.bg {
        width: 100% !important;
        height: 100vh !important;
        position: absolute !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        transform: none !important;
        border-radius: 0 !important;
    }
    
    /* Fix for the header to ensure it appears over the content */
    header {
        position: fixed !important;
        z-index: 2500 !important;
        width: 100% !important;
        left: 0 !important;
        right: 0 !important;
        top: 0 !important;
    }
    
    /* Adjust navbar when viewing sections */
    header.active {
        background: var(--background-light) !important;
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        width: 100% !important;
        z-index: 2500 !important; /* Above all content */
    }
    
    /* Update content positioning for the new layout */
    .bg-slide .content {
        width: 90%;
        z-index: 1200 !important;
        position: absolute !important;
        top: 40% !important;
        left: 50% !important;
        transform: translateX(-50%) !important;
        text-align: center !important;
    }
    
    /* Ensure the wedding date and countdown are visible and properly positioned */
    .wedding-date-location {
        position: fixed !important; /* Changed to fixed to ensure consistent positioning */
        bottom: 13% !important; /* Moved higher up from 6% */
        left: 0 !important;
        right: 0 !important;
        z-index: 2100 !important; /* Higher z-index to appear above hashtag */
        display: block !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
    }
    
    /* Keep relative spacing between elements */
    .date-location-text {
        flex-direction: column !important;
        margin-bottom: 10px !important;
    }
    
    .countdown {
        margin-top: 15px !important;
    }
    
    /* Move ONLY the hashtag further down */
    .lead {
        position: fixed !important; /* Changed to fixed to ensure consistent positioning */
        bottom: 6% !important; /* Just above slide buttons */
        left: 0 !important;
        right: 0 !important;
        z-index: 2000 !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
    }
    
    /* Move the slide loader dots to better position */
    .slide-loader {
        position: fixed !important;
        bottom: 0.5% !important; /* Moved further down */
        right: 4% !important;
        z-index: 2500 !important;
        display: flex !important;
        flex-direction: row !important;
        justify-content: center !important;
        gap: 15px !important;
        pointer-events: auto !important;
    }
    
    .slide-loader li {
        pointer-events: auto !important;
        position: relative !important;
        z-index: 2450 !important;
    }
    
    .slide-loader li a {
        pointer-events: auto !important;
        position: relative !important;
        z-index: 2500 !important;
        display: block !important;
        padding: 8px !important;
        font-size: 2rem !important;
        color: var(--primary) !important;
    }
    
    .slide-loader li a.active {
        color: var(--peach-text) !important;
        font-size: 2.5rem !important;
    }
    
    /* Fix for sections to ensure they cover the home page completely */
    section.section-show {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        width: 100% !important;
        height: 100% !important;
        z-index: 2000 !important;
        overflow-y: auto !important;
        background-color: var(--background-light) !important;
        padding-top: 65px !important;
        visibility: visible !important;
        opacity: 1 !important;
    }
    
    /* Adjust navbar when viewing sections */
    header.active {
        background: var(--background-light) !important;
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        width: 100% !important;
        z-index: 2500 !important; /* Above all content */
    }
    
    /* Add specific styles for the Bride & Groom section */
    .Bride\&Groom.section-show {
        background-color: #fff !important;
    }
    
    .Bride\&Groom .container-fluid {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    /* Remove circle divider between date and location */
    .circle-spacer {
        display: none !important; /* Hide the circle divider */
    }
}

.circle.bg img {
    border-radius: 0;
    width: 100vw;
    height: 100vh;
    object-fit: cover;
    object-position: center;
    transform: translate(-50%, -50%) scale(1.03);
}

/* Elegant subtle zoom for active slides */
.bg-slide.active .circle.bg img {
    transform: translate(-50%, -50%) scale(1);
}

/* Active states with subtle fade and scale effects */
.bg-slide.active .circle.bg {
    opacity: 1;
    visibility: visible;
}

.bg-slide.active .circle.large {
    opacity: 1;
    visibility: visible;
}

.bg-slide.active .circle.small {
    opacity: 1;
    visibility: visible;
}

/* Subtle entrance animation */
@keyframes subtle-fade {
    0% {
        opacity: 0;
        transform: translate(-50%, -50%) scale(1.03);
    }
    100% {
        opacity: 1;
        transform: translate(-50%, -50%) scale(1);
    }
}

/* Apply the refined animations */
.bg-slide.active .circle.bg {
    animation: subtle-fade 2s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.slide-loader {
    position: absolute;
    z-index: 1100;
    bottom: 5%;
    right: 10%;
    display: flex;
    gap: 20px;
    margin-bottom: 0;
}

/* Add specific rule to ensure desktop slide navigation is always visible */
@media (min-width: 769px) {
    .slide-loader {
        display: flex !important;
        visibility: visible !important;
        opacity: 1 !important;
    }
}

.slide-loader li {
    list-style: none;
    display: flex;
    align-items: end;
}

.slide-loader li a {
    text-decoration: none;
    color: var(--primary);
    font-size: clamp(1.5em, 2vw, 2em);
    /* Responsive font size */
    font-weight: 800;
    transition: 0.5s;
    line-height: 1em;
    cursor: pointer;
    padding: 0;
}

.slide-loader li a:hover,
.slide-loader li a.active {
    font-size: clamp(2.5em, 3.5vw, 3.5em);
    /* Slightly less dramatic size change */
    color: var(--peach-text);
    transition: all 0.4s ease;
}

.slide-loader::before {
    position: absolute;
    content: '';
    top: 50%;
    left: -70%;
    width: 100px;
    height: 2px;
    background: var(--primary);
    display: none;
    /* Hide on smaller screens */
}

.share {
    /* Hide the entire share component (button, text, and line) */
    display: none;

    /* Original positioning (kept for reference) */
    position: absolute;
    bottom: 5%;
    left: 6%;
    /* Moved from 5% to 7% to shift it right */
    flex-direction: column;
    justify-content: space-between;
    align-items: center;
    z-index: 1200;
}

.share::before {
    position: absolute;
    content: '';
    left: 50%;
    transform: translateX(-50%);
    top: -120%;
    height: 100px;
    width: 2px;
    background: var(--text-dark);
}

.share p {
    writing-mode: vertical-rl;
    text-transform: uppercase;
    font-weight: 300;
    letter-spacing: 1px;
    color: var(--text-dark);
}

.share a {
    text-decoration: none;
    color: var(--text-dark);
}

.share a:hover {
    color: var(--accent);
}

.share a ion-icon {
    font-size: 1.8em;
}

.lead {
    position: absolute;
    bottom: 5%;
    /* Align vertically with slide numbers */
    left: 0;
    z-index: 1000;
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
}

.lead svg {
    font-family: 'Playfair Display', serif;
    position: relative;
    z-index: 1100;
    fill: var(--peach-text);
    height: auto;
    width: 90%;
    max-width: 500px;
    letter-spacing: 2px;
    text-shadow: 0 3px 6px rgba(0, 0, 0, 0.6); /* Harsher shadow */
}

/* Hide the move-down chevron button */
.move-down {
    display: none;
}

@keyframes flink {
    from {
        opacity: 1;
    }

    to {
        opacity: 0;
    }
}

/* Sections General */
section {
    overflow: hidden;
    position: absolute;
    width: 100%;
    top: 100vh;
    bottom: 0;
    background: var(--background-light);
    transition: ease-in-out 1s;
    transform-origin: bottom;
    z-index: 1100;
    opacity: 0;
}

section::-webkit-scrollbar {
    display: none;
}

section.section-show {
    padding: 150px var(--section-padding-desktop) 100px;
    top: 0;
    height: auto;
    min-height: 100vh;
    min-height: calc(var(--vh, 1vh) * 100);
    /* Better mobile height handling */
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    /* Smooth scrolling on iOS */
    opacity: 1;
}

section h1 {
    font-family: 'Great Vibes', cursive;
    font-weight: 400;
    font-size: clamp(2.5em, 5vw, 4em);
    /* Responsive font size */
    letter-spacing: 1px;
    margin-bottom: 150px;
    text-align: center;
    color: var(--title-brown);
}

section h4 {
    font-family: 'Great Vibes', cursive;
    font-weight: 300;
    font-size: clamp(1.8em, 3vw, 2.5em);
    /* Responsive font size */
    letter-spacing: 1px;
    margin-bottom: 20px;
    color: var(--title-brown);
}

section p {
    font-weight: 300;
    color: var(--text-dark);
    letter-spacing: 1px;
    margin-bottom: 40px;
    font-size: clamp(0.9em, 1.2vw, 1em);
    /* Responsive font size */
}

/* About Section */
.Accommodation h4::first-letter {
    color: var(--title-brown);
    font-size: 2em;
}

/* Accommodation title divider */
.accommodation-divider {
    width: 250px;
    /* Slightly larger than the word "Accommodation" */
    height: 2px;
    background: var(--accent);
    margin: -140px auto 190px;
    /* Adjusted to move up under the title */
}

.Accommodation .img-box {
    position: relative;
    margin-bottom: 2rem;
    /* Add margin bottom for mobile */
}

/* Map container styles */
.map-container {
    position: relative;
    width: 100%;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 5px 15px rgba(95, 70, 56, 0.15);
}

/* Styles for the main hotel image */
.main-hotel-img {
    border-radius: 8px;
    box-shadow: 0 5px 15px rgba(165, 140, 133, 0.15);
    transition: all 0.3s ease;
    display: block;
    width: 100%;
}

.main-hotel-img:hover {
    transform: scale(1.02);
}

/* Styles for map as corner element */
.corner-map {
    position: absolute;
    width: 12vw;
    height: 12vw;
    left: 10px; /* Changed from right: 10px to left: 10px */
    bottom: 120px;
    border-radius: 8px;
    box-shadow: 0 5px 15px rgba(165, 140, 133, 0.2);
    transition: all 0.3s ease;
}

.corner-map:hover {
    transform: scale(1.05);
}

.hotel-map {
    display: block;
    transition: all 0.3s ease;
}

.Accommodation .img-box img {
    max-width: 100%;
    /* Change from fixed 450px */
    width: 100%;
    height: auto;
}

.section-bg-img {
    position: absolute;
    bottom: 50px;
    right: 200px;
    opacity: 0.1;
    z-index: 100;
    pointer-events: none;
    max-width: 30%;
    /* Ensure it doesn't overflow */
}

.section-btn {
    position: relative;
    text-decoration: none;
    color: var(--primary);
    text-transform: uppercase;
    font-weight: 300;
    letter-spacing: 1px;
    transition: 0.3s;
    display: inline-block;
    /* Make it a block for better mobile display */
    margin-top: 1rem;
}

.section-btn:hover {
    color: var(--secondary);
}

.section-btn::before {
    position: absolute;
    content: '';
    left: 0;
    bottom: -10px;
    width: 85%;
    height: 1px;
    background: var(--accent);
    transition: 0.3s;
}

.section-btn:hover::before {
    left: 20%;
    background: var(--secondary);
}

/* Events Section */
.Events {
    background-color: #fff;
    padding: 80px 0 100px 0;
}

.Events .card {
    transition: all 0.3s ease;
    border: none;
    box-shadow: 0 5px 15px rgba(165, 140, 133, 0.1);
    height: 100%;
    background-color: #fff;
    border-radius: 8px;
    overflow: hidden;
    margin: 2rem auto;
    max-width: 900px;
}

.Events .card:hover {
    transform: translateY(-10px);
    box-shadow: 0 15px 30px rgba(165, 140, 133, 0.2);
}

.Events .img-box {
    height: 400px;
    /* Increased from 350px */
    overflow: hidden;
    position: relative;
}

.Events .card-body {
    padding: 1.5rem;
    /* Reduced from 2rem */
}

.Events .card-title {
    font-family: 'Great Vibes', cursive;
    font-size: clamp(2em, 3vw, 2.5em);
    margin-bottom: 15px;
    /* Reduced from 20px */
    color: var(--title-brown);
    text-align: center;
}

.Events .card-text {
    font-size: 1.1rem;
    margin-bottom: 0.6rem;
    /* Reduced from 0.8rem */
    text-align: center;
}

.Events .card-text:last-of-type {
    margin-top: 1rem;
    /* Reduced from 1.5rem */
    font-style: italic;
    line-height: 1.6;
}

/* Update spacing for Wedding section */
.Events h1 {
    margin-bottom: 2rem;
}

.Events .img-box::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 3px;
    background: var(--accent);
}

.Events .card:hover .img-box img {
    transform: scale(1.1);
}

/* Add an accent background to a section for contrast */
.Events {
    background-color: var(--background-light);
}

.Accommodation {
    background-color: #fff;
}

.RSVP {
    background-color: var(--champagne);
    padding: 80px 0 100px 0;
}

.RSVP .image-column {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    min-height: 600px;
}

.RSVP .image-column img {
    max-width: 100%;
    height: auto;
    border-radius: 8px;
    box-shadow: 0 5px 15px rgba(165, 140, 133, 0.1);
}

.RSVP .form-column {
    padding: 20px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 600px;
}

.RSVP form {
    background-color: white;
    padding: 40px;
    border-radius: 8px;
    box-shadow: 0 5px 15px rgba(165, 140, 133, 0.1);
}

.RSVP button {
    background-color: var(--secondary);
    border: none;
    padding: 10px 20px;
    transition: all 0.3s ease;
    width: 100%;
    /* Full width on mobile */
    color: var(--background-light);
    font-weight: 500;
}

.RSVP button:hover {
    background-color: var(--primary);
    color: #fff;
    transform: translateY(-3px);
    box-shadow: 0 5px 15px rgba(165, 140, 133, 0.3);
}

/* Add some accent color to form inputs when focused */
.RSVP form .form-control:focus {
    border-color: var(--accent);
    box-shadow: 0 0 0 0.25rem rgba(232, 199, 200, 0.25);
}

/* Update mobile-specific elements */
@media (max-width: 768px) {

    /* Accommodation mobile styles */
    .accommodation-divider {
        width: 200px;
        margin-bottom: 30px;
    }

    .main-hotel-img {
        margin-bottom: 40px;
    }

    .corner-map {
        width: 20vw;
        height: 20vw;
        bottom: 30px;
        left: 10px; /* Changed from right: 10px to left: 10px */
    }

    /* Make all nav items the same base width */
    .nav li {
        flex: 1;
    display: flex;
    justify-content: center;
    align-items: center;
        position: relative;
    }

    /* Position items properly for the centered layout */
    .nav li a {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        padding: 5px 0;
    }

    /* Make the center item (Bride & Groom) stand out slightly */
    .nav li:nth-child(3) a ion-icon {
        font-size: 2.4rem;
        /* Remove the permanent accent color to make it behave like other icons */
    }

    /* Hide spans (text) on mobile */
    .nav li a span {
        display: none;
    }

    /* Size the icons properly */
    .nav li a ion-icon {
        font-size: 2.2rem;
        margin: 0;
    }

    /* Active state for mobile navigation */
    .nav li a.active {
        color: var(--accent);
    }

    .nav li a.active::after {
        content: '';
        position: absolute;
        bottom: 10px;
        left: 50%;
        transform: translateX(-50%);
        width: 5px;
        height: 5px;
        background-color: var(--accent);
        border-radius: 50%;
    }

    /* Special styling for the active center item */
    .nav li:nth-child(3) a.active ion-icon {
        transform: scale(1.1);
    }

    /* Adjust sections to account for fixed header */
    main {
        padding-top: 65px;
    }

    /* Banner content styles */
    .bg-slide .content {
        width: 90%;
    }

    section.section-show {
        padding-top: 20px;
        padding-bottom: 30px;
    }

    section h1 {
        font-size: clamp(2.2em, 8vw, 3em);
        margin-bottom: 40px; /* Less margin bottom on mobile */
        /* This will affect all sections including Registry */
    }
}

/* Add some accent to the search bar */
.search input:focus {
    border-bottom: 1px solid var(--accent);
}

.search input:focus+ion-icon {
    color: var(--accent);
    border-left: 1px solid var(--accent);
}

/* Additional responsive styles */
/* Large monitors */
@media (min-width: 1600px) {
    .circle.large {
        width: 60vw;
        height: 60vw;
    }

    .circle.small {
        width: 30vw;
        height: 30vw;
    }
}

/* Standard desktop */
@media (max-width: 1200px) {
    header .top-left-logo {
        height: calc(3rem * 0.95);
    }

    .nav {
        padding: 0;
    }

    .nav li {
        margin: 0;
    }

    .nav li a {
        padding: 8px;
        height: 2.3rem;
    }

    .search {
        width: 200px;
    }

    .search input {
        height: 2.3rem;
    }
}

/* Tablet */
@media (max-width: 991px) {
    header .top-left-logo {
        height: calc(2.5rem * 0.95);
    }

    header {
        padding: 15px var(--header-padding-tablet);
    }

    .search {
        width: 180px;
    }

    .nav li a,
    .search input {
        height: 2.2rem;
        font-size: 0.95rem;
    }

    .nav {
        padding: 0;
    }

    /* Ensure chevron stays centered in text on tablets */
    .move-down {
        top: 74%;
        /* Same position as other screen sizes */
    }

    /* Restore removed styles */
    section.section-show {
        padding: 100px var(--section-padding-tablet) 50px;
    }

    section h1 {
        margin-bottom: 100px;
    }

    .share::before {
        height: 60px;
    }

    .slide-loader::before {
        display: none;
    }
}

/* Mobile phones */
@media (max-width: 480px) {

    /* Logo sizing */
    .desktop-logo {
        height: 2rem;
    }

    /* Hide search bar on mobile */
    .search {
        display: none;
    }

    /* Navbar optimization for mobile */
    header {
        padding: 10px var(--header-padding-mobile);
        height: 60px;
        /* Reduce overall navbar height */
    }

    /* Adjust the navigation to fill the available space (without search bar) */
    .nav {
        width: calc(100% - 80px);
        /* Account for logo width and some padding */
        margin-left: auto;
        /* Push to the right, next to logo */
        display: flex;
        justify-content: space-between;
        /* Evenly distribute items */
    }

    /* Update for smaller screens */
    .corner-map {
        width: 30vw;
        height: 30vw;
        bottom: 20px;
        left: 10px; /* Added left positioning to ensure it stays on the left */
    }

    /* Adjust icon sizes */
    .nav li a ion-icon {
        font-size: 2rem;
    }

    /* Keep the center item (Bride & Groom) slightly larger */
    .nav li:nth-child(3) a ion-icon {
        font-size: 2.2rem;
    }

    .bg-slide .content {
        width: 95%;
    }

    section h1 {
        margin-bottom: 50px;
    }

    .lead {
        width: 250px;
        height: 250px;
    }

    .Accommodation::before {
        display: none;
    }

    .share p {
        font-size: 0.8em;
    }

    .share::before {
        height: 40px;
        top: -100%;
    }

    .slide-loader {
        bottom: 20px;
        right: 20px;
        gap: 10px;
        z-index: 1200; /* Ensure it's above other elements */
    }

    .section-bg-img {
        display: none;
    }

    .nav li a {
        font-size: 0.7rem;
        padding: 5px 2px;
        /* Reduce padding to save space */
    }

    /* Remove any offset margins */
    .nav {
        margin-left: auto;
        /* Keep this to position nav after logo */
        padding: 0;
    }

    /* Handle "Bride & Groom" text */
    .nav li:nth-child(3) a span {
        font-size: 85%;
        /* Smaller font for very small screens */
    }

    .mobile-logo {
        height: 2rem;
    }

    .mobile-logo-container::after {
        font-size: 0.65rem;
    }

    /* Circle styles */
    .circle.large {
        width: 90vw;
        height: 90vw;
    }

    .circle.small {
        width: 45vw;
        height: 45vw;
    }

    .move-down {
        top: 74%;
        /* Maintain the same relative position on mobile */
    }

    /* Banner and section styles */
    .banner {
        padding: 0;
        width: 100vw;
        max-width: 100%;
        left: 0;
        right: 0;
    }

    /* Override Bootstrap container constraints */
    .container-fluid {
        padding-left: 0 !important;
        padding-right: 0 !important;
        max-width: none !important;
        width: 100% !important;
    }
    
    body, html {
        max-width: 100vw;
        width: 100%;
        overflow-x: hidden;
    }
}

/* Very small phones */
@media (max-width: 360px) {

    /* Logo sizing */
    .desktop-logo {
        height: 1.8rem;
    }

    /* Navbar optimization for very small screens */
    header {
        height: 55px;
        /* Slightly smaller for very small screens */
        padding: 8px var(--header-padding-mobile);
        /* Further reduce padding */
    }

    /* Adjust icon sizes */
    .nav li a ion-icon {
        font-size: 1.8rem;
    }

    /* Ensure navigation fills available space (without search) */
    .nav {
        width: calc(100% - 70px);
        /* Slightly less space for smaller screens */
    }

    .nav li a ion-icon {
        font-size: 1.8rem;
    }

    /* Keep the center item (Bride & Groom) slightly larger */
    .nav li:nth-child(3) a ion-icon {
        font-size: 2rem;
    }

    /* Navigation specific styles */
    .nav li a {
        padding: 4px 2px;
        font-size: 0.6rem;
    }

    /* Ensure text fits for Bride & Groom */
    .nav li:nth-child(3) a span {
        font-size: 80%;
        line-height: 0.9;
    }

    /* Adjust logo position */
    header .top-left-logo {
        left: 10px;
        height: calc(1.8rem * 0.95);
    }

    /* Original styles restored */
    .lead {
        width: 200px;
        height: 200px;
    }

    .move-down {
        top: 74%;
        /* Maintain the same relative position on very small screens */
    }

    .move-down ion-icon {
        font-size: 2.5em;
        /* Only change font size, position is handled by parent */
    }

    .bg-slide .content h1 {
        font-size: 2.5em;
    }

    .bg-slide .content p {
        font-size: 0.9em;
    }

    section.section-show {
        padding: 80px var(--section-padding-mobile) 40px;
    }

    .RSVP form {
        padding: 20px 15px;
    }

    section h1 {
        font-size: 2em;
        margin-bottom: 30px;
    }

    section p {
        margin-bottom: 20px;
    }

    /* Improve tap targets for mobile */
    .section-btn,
    button {
        padding: 12px;
        min-height: 44px;
        display: inline-flex;
        align-items: center;
    }

    .mobile-logo {
        height: 1.8rem;
    }

    .mobile-logo-container::after {
        font-size: 0.6rem;
    }
}

/* Adjust media queries for logo responsiveness */
@media (min-width: 1400px) {
    header .top-left-logo {
        height: calc(4rem * 0.95);
        /* 5% smaller */
    }
}

/* Bride & Groom Section Styles */
.Bride\&Groom {
    background: #fff;
}

.Bride\&Groom .container-fluid {
    padding: 0;
}

.Bride\&Groom .row {
    margin: 0;
}

.Bride\&Groom .image-column {
    padding: 0;
    height: 100vh;
    /* Full viewport height */
    position: relative;
}

.Bride\&Groom .couple-img {
    position: absolute;
    width: 100%;
    height: 100%;
    object-fit: cover;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
}

.Bride\&Groom .couple-details {
    padding: 80px;
    height: 100vh;
    display: flex;
    flex-direction: column;
    justify-content: center;
    background-color: var(--background-light);
}

.Bride\&Groom .couple-title {
    font-family: 'Great Vibes', cursive;
    font-size: 2.2em;
    color: var(--title-brown);
    margin-bottom: 10px;
    font-weight: normal;
    font-style: italic;
    text-align: center;
}

.Bride\&Groom .title-divider {
    width: 100%;
    height: 1px;
    background: var(--primary);
    margin: 10px 0 60px 0;
}

.Bride\&Groom .bride-name,
.Bride\&Groom .groom-name {
    font-family: 'Great Vibes', cursive;
    font-size: 2.2em;
    color: var(--title-brown);
    margin-bottom: 5px;
    font-weight: normal;
    font-style: italic;
    text-align: center;
}

.Bride\&Groom .name-underline {
    width: 140px;
    /* Slightly larger than name */
    height: 1px;
    background: var(--secondary);
    margin: 5px auto 15px;
}

.Bride\&Groom .bride-desc,
.Bride\&Groom .groom-desc {
    font-size: 0.9em;
    line-height: 1.7;
    color: var(--text-dark);
    width: 100%;
    font-style: italic;
    text-align: center;
    margin-bottom: 20px;
}

.Bride\&Groom .name-divider {
    width: 100%;
    height: 1px;
    background: var(--secondary);
    margin: 30px 0;
}

/* Mobile styles for Bride & Groom section */
@media (max-width: 768px) {
    .Bride\&Groom .image-column {
        height: 400px;
    }

    .Bride\&Groom .couple-details {
        padding: 40px 20px;
        height: auto;
    }
}

.Events .img-box img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: all 0.5s ease;
}

/* Responsive adjustments for the RSVP section */
@media (max-width: 767px) {
    .RSVP .image-column {
        margin-bottom: 30px;
        min-height: 400px;
    }
    
    .RSVP .form-column {
        padding: 25px;
        min-height: auto;
    }
    
    .RSVP form {
        padding: 25px;
    }
}

/* Update RSVP headings to Playfair Display */
.RSVP h1, 
.RSVP h4,
.RSVP form h4,
#rsvp-success h4,
#rsvp-decline h4 {
    font-family: 'Playfair Display', serif;
    font-weight: 500;
    color: var(--title-brown);
}

/* Wedding invitation container and image styling */
.wedding-invite-container {
  text-align: center;
  margin: 0 auto;
  max-width: 90%;
}

.wedding-invite-img {
  max-width: 100%;
  height: auto;
  border-radius: 8px;
  box-shadow: 0 8px 20px rgba(165, 140, 133, 0.25);
  max-height: 1000px;
  margin: 0 auto 50px;
  display: block;
}

@media (max-width: 767px) {
  .wedding-invite-container {
    max-width: 100%;
  }
  
  .wedding-invite-img {
    max-width: 100%;
    max-height: 800px;
    width: auto;
    margin: 0 auto 30px;
  }
}

/* Center the RSVP form elements */
.form-column {
  padding: 20px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

/* Style for venue address with line break */
.Events .card-text br {
  display: block;
  content: "";
  margin-top: 5px;
}

.Events .card-text {
  line-height: 1.6;
}

/* Special positioning for slide-3 to move subject's face up */
.bg-slide.slide-3 .circle.bg .desktop-slide {
    object-position: center 60%; /* Move image up by positioning at 25% from top instead of center */
}

/* Registry Section */
.Registry {
  background-color: var(--background-light);
  padding: 80px 0 100px 0;
}

.Registry h1 {
  position: relative;
}

.registry-divider {
  width: 200px;
  height: 2px;
  background: var(--accent);
  margin: -140px auto 80px;
  position: relative;
}

.registry-flower-container {
  margin: 0 auto 20px;
  max-width: 150px;
}

.registry-flower {
  width: 100%;
  height: auto;
  opacity: 0.8;
}

.registry-title {
  font-family: 'Great Vibes', cursive;
  font-size: 2.5em;
  color: var(--title-brown);
  margin: 20px 0;
  letter-spacing: 2px;
  text-transform: uppercase;
}

.registry-message {
  font-family: 'Playfair Display', serif;
  font-size: clamp(1em, 2vw, 1.1em); /* Responsive font size */
  color: var(--text-dark);
  margin: 30px auto;
  max-width: 90%;
  line-height: 1.7;
}

.registry-buttons {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 20px;
    margin-top: 40px;
}

/* New styles for the single registry button */
.registry-main-btn {
    background-color: var(--champagne); /* Keep original background */
    border: 1px solid var(--secondary); /* Match RSVP border style (using secondary as base border) */
    color: var(--text-dark);
    padding: 10px 20px; /* Match RSVP padding */
    transition: all 0.3s ease; /* Match RSVP transition */
    font-weight: 500; /* Match RSVP font-weight */
    font-family: 'Playfair Display', serif; /* Match old registry button font */
    font-style: italic; /* Match old registry button font style */
    border-radius: 8px; /* Match RSVP button border-radius */
    width: auto; /* Let the button size itself */
    min-width: 200px; /* Give it a reasonable min-width */
}

.registry-main-btn:hover {
    background-color: var(--primary); /* Match RSVP hover background */
    color: #fff; /* Match RSVP hover text color */
    transform: translateY(-3px); /* Match RSVP hover transform */
    box-shadow: 0 5px 15px rgba(165, 140, 133, 0.3); /* Match RSVP hover shadow */
    border-color: var(--primary); /* Match hover background */
}

@media (max-width: 768px) {
  .registry-buttons {
    flex-direction: column;
    gap: 15px;
    align-items: center;
  }
  
  .registry-divider {
    width: 120px;
    margin: 20px auto 30px;
    top: 0;
  }
  
  .Registry {
    padding: 120px 0 60px 0;
  }
  
  .registry-message {
    font-size: 1em;
    max-width: 100%;
    padding: 0 15px;
    margin: 20px auto;
  }
  
  .registry-flower-container {
    max-width: 120px;
    margin-bottom: 10px;
  }
  
  section.Registry h1 {
    margin-bottom: 20px;
  }
}

/* Small mobile adjustments */
@media (max-width: 480px) {
  .registry-divider {
    width: 100px;
    margin: 15px auto 20px;
    top: 0;
  }
  
  /* Style the new button for small mobile */
  .registry-main-btn {
    width: 80%;
    max-width: 280px;
    padding: 10px 15px;
  }
}

/* Tablet adjustments */
@media (max-width: 991px) {
  .registry-divider {
    margin: -100px auto 60px;
  }
}

/* Mobile specific styles for Registry section */
@media (max-width: 767px) {
  .Registry h1 {
    margin-bottom: 50px;
  }
  
  .registry-message {
    margin: 20px auto;
    padding: 0 15px;
  }
}

/* EXTREME MOBILE FIXES FOR REGISTRY */
@media (max-width: 767px) {
  /* Fix Registry section spacing */
  .Registry {
    padding-top: 150px !important;
    padding-bottom: 60px;
  }
  
  /* Fix Registry title */
  .Registry h1 {
    margin-top: 0;
    margin-bottom: 20px;
    padding-top: 0;
    font-size: 2.6em;
    position: relative;
    z-index: 5;
  }
  
  /* Fix divider line */
  .registry-divider {
    width: 120px;
    margin: 0 auto 40px;
    position: relative;
    top: 0;
    z-index: 5;
  }
  
  /* Push content down */
  .registry-flower-container {
    margin-top: 30px;
  }
  
  /* Ensure buttons are centered */
  .registry-buttons {
    display: flex;
    flex-direction: column;
    align-items: center;
  }
  
  .registry-main-btn {
    width: 80%;
    max-width: 280px;
  }
}

/* Very small mobile devices */
@media (max-width: 380px) {
  .Registry {
    padding-top: 180px !important;
  }
  
  .Registry h1 {
    font-size: 2.2em;
  }
}

/* Additional failsafe for slide transitions */
@keyframes fadeFallback {
    0%, 100% { opacity: 1; }
}

/* Apply fallback animation to ensure something is always visible */
.bg-slide.active {
    opacity: 1;
    z-index: 200;
    animation: fadeFallback 0.1s;
}

/* Wedding Date and Location */
.wedding-date-location {
  position: absolute; /* Position relative to the banner */
  bottom: 15%; /* Adjust vertical position as needed */
  left: 0;
  right: 0;
  /* margin-top removed as it's absolutely positioned now */
  text-align: center;
  color: var(--peach-text);
  font-family: 'Playfair Display', serif;
  text-shadow: 0 3px 6px rgba(0, 0, 0, 0.6); /* Keep harsh shadow */
  z-index: 1150; /* Ensure it's above slides but potentially below other fixed UI */
  display: none; /* Hide by default */
}

/* Show date/location only when banner is visible (header is not active) */
header:not(.active) ~ .banner .wedding-date-location {
    display: block;
}

.date-location-text {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 0.7rem; /* Adjusted slightly */
  font-size: 1.35rem; /* Reduced from 1.5rem (approx 10%) */
  letter-spacing: 0.1em;
  font-weight: 500;
}

.circle-spacer {
  display: inline-block;
  width: 0.45rem; /* Reduced slightly */
  height: 0.45rem; /* Reduced slightly */
  background-color: var(--peach-text);
  border-radius: 50%;
  margin: 0 1rem; /* Kept margin */
}

.countdown {
  font-size: 1.15rem; /* Reduced from 1.3rem (approx 10%) */
  font-weight: 500;
  letter-spacing: 0.05em;
}

#countdown-days {
  font-weight: 700;
}

@media (max-width: 768px) {
  .wedding-date-location {
    position: fixed !important;
    bottom: 13% !important; /* Moved higher up from 6% */
    left: 0 !important;
    right: 0 !important;
    z-index: 2100 !important; /* Higher z-index to appear above hashtag */
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  
  .date-location-text {
    flex-direction: column !important;
    margin-bottom: 5px !important;
  }
  
  .countdown {
    margin-top: 5px !important;
  }
  
  .lead {
    position: fixed !important;
    bottom: 16% !important; /* Position above the date/location */
    left: 0 !important;
    right: 0 !important;
    z-index: 2000 !important; /* Lower z-index to appear below date/location */
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  
  /* Position the slide buttons at the very bottom */
  .slide-loader {
    position: fixed !important;
    bottom: 0.5% !important;
    right: 4% !important;
    z-index: 2500 !important;
  }
}

/* FAQ Section */
.FAQ {
  background-color: #fff;
  padding: 80px 0 100px 0;
}

.FAQ h1 {
  position: relative;
  font-family: 'Great Vibes', cursive;
  font-weight: 400;
  font-size: clamp(2.5em, 5vw, 4em);
  letter-spacing: 1px;
  margin-bottom: 30px;
  text-align: center;
  color: var(--title-brown);
}

.faq-divider {
  width: 320px;
  height: 2px;
  background: var(--accent);
  margin: 0 auto 60px;
}

.faq-content {
  padding: 20px;
}

.faq-item {
  margin-bottom: 20px;
}

.faq-question {
  margin-bottom: 15px;
  font-family: 'Playfair Display', serif;
  font-size: 2.2em;
  color: var(--title-brown);
  font-weight: normal;
  text-align: center;
}

.question-underline {
  display: none;
}

.faq-answer {
  font-size: 0.9em;
  line-height: 1.7;
  color: var(--text-dark);
  width: 100%;
  text-align: center;
  margin-bottom: 20px;
}

.FAQ .name-divider {
  width: 100%;
  height: 1px;
  background: var(--secondary);
  margin: 30px 0;
}

/* Mobile styles for FAQ section */
@media (max-width: 768px) {
  .FAQ {
    padding: 60px 0 60px 0;
  }
  
  .faq-divider {
    width: 200px;
    margin-bottom: 40px;
  }
  
  .faq-content {
    padding: 10px;
  }
  
  .faq-question {
    font-size: 1.8em;
  }
  
  .faq-answer {
    font-size: 0.85em;
    line-height: 1.6;
  }
}

/* Add numbers to FAQ questions */
.faq-item {
  counter-increment: faq-counter;
  position: relative;
}

.faq-question::before {
  content: counter(faq-counter) ". ";
  font-family: 'Playfair Display', serif;
  font-size: 0.8em;
  position: relative;
  top: -5px;
}

/* Very small mobile devices */
@media (max-width: 480px) {
  .faq-question {
    font-size: 1.6em;
  }
  
  .faq-answer {
    font-size: 0.8em;
  }
  
  .faq-divider {
    width: 150px;
    margin-bottom: 30px;
  }
}

/* Gallery Section */
.Gallery {
  background-color: var(--background-light);
  padding: 80px 0 100px 0;
}

.Gallery h1 {
  position: relative;
  font-family: 'Great Vibes', cursive;
  font-weight: 400;
  font-size: clamp(2.5em, 5vw, 4em);
  letter-spacing: 1px;
  margin-bottom: 30px;
  text-align: center;
  color: var(--title-brown);
}

.gallery-divider {
  width: 320px;
  height: 2px;
  background: var(--accent);
  margin: 0 auto 40px;
}

/* Gallery Grid Styling */
.gallery-grid {
  margin-bottom: 30px;
}

.gallery-item-wrapper {
  padding: 10px;
  margin-bottom: 10px;
}

.gallery-item {
  position: relative;
  overflow: hidden;
  border-radius: 8px;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
  height: 0;
  padding-top: 100%; /* Makes items square */
  background-color: #f8f8f8;
  transition: transform 0.3s ease;
}

.gallery-item:hover {
  transform: scale(1.03);
}

.gallery-item img.thumbnail {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Responsive tweaks for gallery */

/* Responsive tweaks for gallery */
@media (max-width: 767px) {
  .gallery-item-wrapper {
    padding: 5px;
  }
  
  .gallery-grid {
    margin-left: -5px;
    margin-right: -5px;
  }
}

/* Ensure mobile slides have the same animation behavior */
.bg-slide.active .circle.bg .mobile-slide {
    transform: translate(-50%, -50%) scale(1);
    width: 100vw; /* Force full viewport width */
    min-height: 100vh; /* Force full viewport height */
    object-fit: cover; /* Ensure image covers entire area */
    left: 50%;
    right: auto;
}

/* Override the above for mobile devices specifically */
@media (max-width: 768px) {
    .bg-slide.active .circle.bg .mobile-slide {
        position: absolute !important;
        top: 0 !important;
        left: 0 !important;
        width: 100% !important;
        height: 100vh !important;
        object-fit: cover !important;
        object-position: center !important;
        transform: none !important;
    }
    
    /* Ensure banner is visible */
    .banner, .bg-slide, .circle.bg {
        opacity: 1 !important;
        visibility: visible !important;
    }
}

/* Remove the special positioning for slide 3 since mobile images are properly sized */
.bg-slide.slide-3 .circle.bg .mobile-slide {
    object-position: center center;
}

/* Hide slide-loader when a section is shown */
@media (max-width: 768px) {
    /* Hide slide navigation when any section is active */
    body:has(section.section-show) .slide-loader {
        display: none !important;
    }
    
    /* Alternative selector for browsers that don't support :has */
    section.section-show ~ .banner .slide-loader {
        display: none !important;
    }
    
    /* Hide when header is active (indicates a section is shown) */
    header.active ~ .banner .slide-loader {
        display: none !important;
    }
}

/* Home-specific slide-loader styling */
@media (max-width: 768px) {
    /* Only show slide-loader on home page (when header is not active) */
    header:not(.active) ~ .banner .slide-loader {
        display: flex !important;
        visibility: visible !important;
        z-index: 2400 !important;
        pointer-events: auto !important;
    }
    
    /* Ensure proper positioning relative to banner content */
    .banner .slide-loader {
        position: fixed !important;
        bottom: 0.5% !important; /* Moved further down */
        right: 4% !important;
        z-index: 2500 !important;
    }
}

/* Repositioning mobile elements for all 3 slides */
@media (max-width: 768px) {
    /* 1. Move the header text (h1) to the top (position 1) */
    .bg-slide .content h1 {
        position: absolute !important;
        top: 15% !important;
        left: 0 !important;
        right: 0 !important;
        width: 100% !important;
        text-align: center !important;
        font-size: clamp(2.5em, 8vw, 4em) !important;
        z-index: 2000 !important;
        margin: 0 !important;
        padding: 0 15px !important;
    }
    
    /* 2. Move the body text (p) higher up */
    .bg-slide .content p {
        position: absolute !important;
        top: 28% !important; /* Moved up from 35% */
        left: 0 !important;
        right: 0 !important;
        width: 90% !important;
        margin: 0 auto !important;
        text-align: center !important;
        z-index: 2000 !important;
        padding: 0 20px !important;
        font-size: 1.1em !important;
        line-height: 1.5 !important;
    }
    
    /* Adjust content container for proper positioning */
    .bg-slide .content {
        width: 100% !important;
        height: 100% !important;
        position: absolute !important;
        top: 0 !important;
        left: 0 !important;
        transform: none !important;
        z-index: 1500 !important;
        opacity: 1 !important;
        visibility: visible !important;
    }
    
    /* 3a. Move the date location DRAMATICALLY further down */
    .wedding-date-location {
        position: fixed !important; /* Changed to fixed to ensure consistent positioning */
        bottom: 13% !important; /* Moved higher up from 6% */
        left: 0 !important;
        right: 0 !important;
        z-index: 2100 !important; /* Higher z-index to appear above hashtag */
        display: block !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
    }
    
    /* Ensure date and location text are stacked with proper spacing */
    .date-location-text {
        flex-direction: column !important;
        margin-bottom: 10px !important;
    }
    
    /* 3b. Position the countdown with spacing */
    .countdown {
        margin-top: 15px !important; /* Space between date/location and countdown */
    }
    
    /* 3c. Move the hashtag DRAMATICALLY further down */
    .lead {
        position: fixed !important; /* Changed to fixed to ensure consistent positioning */
        bottom: 6% !important; /* Just above slide buttons */
        left: 0 !important;
        right: 0 !important;
        z-index: 2000 !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
    }
    
    /* Adjust the SVG size for the hashtag */
    .lead svg {
        width: 90% !important;
        max-width: 300px !important;
        margin: 0 auto !important;
        display: block !important;
        margin-top: 25px !important; /* Additional space above hashtag */
    }
    
    /* 4a. Move slide buttons back to bottom right corner */
    .banner .slide-loader {
        position: fixed !important;
        bottom: 0.5% !important; /* Moved further down */
        right: 4% !important;
        z-index: 2500 !important;
    }
    
    /* 4b. Reduce spacing between slide buttons */
    .slide-loader {
        gap: 5px !important; /* Reduced from 15px */
    }
    
    .slide-loader li {
        margin: 0 !important;
        padding: 0 !important;
    }
    
    /* Make slide buttons more visible but reduce spacing */
    .slide-loader li a {
        font-size: 1.8rem !important;
        padding: 5px !important; /* Reduced padding */
        margin: 0 3px !important; /* Reduced margin */
        color: var(--peach-text) !important;
    }
    
    .slide-loader li a.active {
        font-size: 2.2rem !important;
        font-weight: bold !important;
    }
}

/* Enhanced text shadows for mobile devices */
@media (max-width: 768px) {
    /* Header text with stronger shadow */
    .bg-slide .content h1 {
        text-shadow: 0 6px 12px rgba(0, 0, 0, 0.95), 0 3px 5px rgba(0, 0, 0, 0.95), 0 1px 2px rgba(0, 0, 0, 0.95) !important; /* Much harsher 3-layer shadow */
        -webkit-text-stroke: 0.5px rgba(0, 0, 0, 0.3); /* Add subtle text outline for better definition */
    }
    
    /* Body text with stronger shadow */
    .bg-slide .content p {
        text-shadow: 0 5px 10px rgba(0, 0, 0, 0.95), 0 2px 4px rgba(0, 0, 0, 0.95), 0 1px 2px rgba(0, 0, 0, 0.95) !important; /* Much harsher 3-layer shadow */
    }
    
    /* Enhanced shadow for date/location text - NOT CHANGING PER USER REQUEST */
    .wedding-date-location,
    .date-location-text,
    .date-location-text span {
        text-shadow: 0 4px 8px rgba(0, 0, 0, 0.9), 0 2px 4px rgba(0, 0, 0, 0.9) !important; /* Much harsher shadow */
        color: var(--peach-text) !important; /* Match hashtag color */
    }
    
    /* Enhanced shadow for countdown - NOT CHANGING PER USER REQUEST */
    .countdown,
    #countdown-days {
        text-shadow: 0 4px 8px rgba(0, 0, 0, 0.9), 0 2px 4px rgba(0, 0, 0, 0.9) !important; /* Much harsher shadow */
        color: var(--peach-text) !important; /* Match hashtag color */
    }
    
    /* Enhanced shadow for hashtag - much softer version */
    .lead svg text {
        filter: drop-shadow(0 2px 3px rgba(0, 0, 0, 0.6)) !important; /* Softer, more subtle shadow */
    }
    
    /* Enhanced visibility for slide buttons */
    .slide-loader li a {
        text-shadow: 0 4px 8px rgba(0, 0, 0, 0.9), 0 2px 4px rgba(0, 0, 0, 0.9) !important; /* Much harsher shadow */
        color: var(--peach-text) !important; /* Match hashtag color */
    }
}

/* WhileYourHere Section */
.WhileYourHere {
  padding: var(--section-padding-desktop) 0;
  background: var(--background-light);
}

.WhileYourHere h1 {
  font-family: 'Playfair Display', serif;
  font-size: 2.8rem;
  color: var(--title-brown);
  text-align: center;
  margin-bottom: 30px;
}

.whileyourhere-divider {
  width: 320px;
  height: 2px;
  background-color: var(--accent);
  margin: 0 auto 60px;
}

.whileyourhere-content {
  padding: 0 20px;
}

.whileyourhere-item {
  margin-bottom: 30px;
}

.whileyourhere-heading {
  font-family: 'Playfair Display', serif;
  font-size: 1.7rem;
  color: var(--title-brown);
  margin-bottom: 0.5rem;
}

.whileyourhere-subheading {
  font-family: 'Playfair Display', serif;
  font-size: 1.3rem;
  color: var(--title-brown);
  margin-top: 1.5rem;
  margin-bottom: 0.5rem;
}

.WhileYourHere .name-divider {
  width: 100%;
  height: 1px;
  background-color: var(--secondary);
  margin: 30px 0;
  opacity: 1;
}

.whileyourhere-img {
  border-radius: 8px;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
  max-width: 100%;
  height: auto;
}

.image-caption {
  font-size: 0.95rem;
  font-style: italic;
  color: var(--text-dark);
  opacity: 0.9;
}

@media (max-width: 768px) {
  .WhileYourHere {
    padding: 60px 0;
  }
  
  .whileyourhere-divider {
    width: 200px;
    margin-bottom: 40px;
  }
  
  .whileyourhere-content {
    padding: 0 15px;
  }
  
  .whileyourhere-heading {
    font-size: 1.5rem;
  }
  
  .whileyourhere-subheading {
    font-size: 1.2rem;
  }
}

@media (max-width: 480px) {
  .whileyourhere-heading {
    font-size: 1.4rem;
  }
  
  .whileyourhere-divider {
    width: 150px;
    margin-bottom: 30px;
  }
  
  .whileyourhere-item {
    margin-bottom: 20px;
  }
}

@media (max-width: 768px) {
    /* Fix for Accommodation section on mobile - ensure title is visible */
    .Accommodation.section-show {
        padding-top: 120px !important; /* More top padding to make room for the header */
    }
    
    .Accommodation h1 {
        margin-top: 0;
        margin-bottom: 20px;
        padding-top: 0;
    }
    
    .accommodation-divider {
        width: 200px;
        margin-bottom: 40px; /* Increased from 30px */
        margin-top: 10px;
    }
    
    /* Add space between title and first row */
    .Accommodation .row.mb-5 {
        margin-top: 30px;
    }
    
    .main-hotel-img {
        margin-bottom: 40px;
    }

    .corner-map {
        width: 20vw;
        height: 20vw;
        bottom: 30px;
        left: 10px; /* Changed from right: 10px to left: 10px */
    }
}

/* Desktop navbar spacing fixes */
@media (min-width: 991px) {
    header {
        padding: 20px var(--header-padding-desktop);
    }
    
    .nav {
        justify-content: space-between;
        padding: 0 20px;
    }
    
    .nav li {
        margin: 0 5px;
        flex: 0 0 auto; /* Override the flex: 1 to prevent stretching */
    }
    
    .nav li a {
        padding: 0 12px;
        font-size: 0.9rem;
    }
    
    .nav li a ion-icon {
        margin-right: 5px;
        font-size: 1.2rem;
    }
}

/* Enhanced shadow for hashtag - much softer version */
.lead svg text {
    filter: drop-shadow(0 2px 3px rgba(0, 0, 0, 0.6)) !important; /* Softer, more subtle shadow */
}

/* Fix for iPhone hashtag overlap with countdown */
@media screen and (max-width: 480px) {
    .lead {
        bottom: 2% !important; /* Move further from bottom on small screens */
    }
    
    .lead svg {
        margin-top: 40px !important; /* Increased space above hashtag */
        padding-bottom: 15px !important; /* Added bottom padding */
    }
}

/* Specific fix for iOS devices */
@supports (-webkit-touch-callout: none) {
    /* iOS specific styles */
    .lead {
        bottom: 5% !important; /* Move even further down on iOS devices */
    }
    
    .lead svg {
        margin-top: 50px !important; /* More space for hashtag on iOS */
        height: 70px !important; /* Adjust height on iOS */
    }
    
    /* Add more space between countdown and hashtag */
    .wedding-date-location {
        margin-bottom: 50px !important; /* Add more space below */
    }
}

/* Specific fix for iOS devices */
@supports (-webkit-touch-callout: none) {
    /* iOS specific styles */
    .lead {
        bottom: 5% !important; /* Move even further down on iOS devices */
    }
    
    .lead svg {
        margin-top: 50px !important; /* More space for hashtag on iOS */
        height: 70px !important; /* Adjust height on iOS */
    }
    
    /* Add more space between countdown and hashtag */
    .wedding-date-location {
        margin-bottom: 30px !important; /* Add more space below */
    }
    
    /* Font rendering fixes for iOS */
    body {
        -webkit-text-size-adjust: 100%; /* Prevent iOS text size adjust after orientation change */
    }
    
    /* Fix font weight rendering on iOS */
    h1, h2, h3, h4, h5, h6, .faq-question, .couple-title, 
    .bride-name, .groom-name, .whileyourhere-heading, .whileyourhere-subheading {
        font-weight: 600 !important; /* Force slightly heavier weight for iOS */
    }
    
    /* Fix specific fonts on iOS */
    .bg-slide .content h1, section h1, section h4, .Events .card-title,
    .Bride\&Groom .couple-title, .Bride\&Groom .bride-name, 
    .Bride\&Groom .groom-name, .registry-title {
        letter-spacing: -0.01em; /* Tighten letter spacing slightly */
    }
}

/* Enhanced spacing for iPhone 15 Pro Max and other newer iPhones */
@media screen and (max-width: 480px) and (min-height: 800px) {
    .lead {
        bottom: 16% !important; /* Above the date/location */
    }
    
    .wedding-date-location {
        bottom: 13% !important; /* Moved higher up from 6% */
    }
    
    /* Make things fit better on larger iPhone screens */
    .date-location-text {
        font-size: 1.2rem !important;
    }
    
    .countdown {
        font-size: 1.1rem !important;
    }
}

/* Maximum separation for iPhone Pro Max models with notches */
@supports (-webkit-touch-callout: none) and (max-width: 480px) and (min-height: 840px) {
    .lead {
        bottom: 17% !important; /* Slightly higher on tall iPhones */
    }
    
    .lead svg {
        margin-top: 0 !important; 
        height: 50px !important; /* Slightly smaller */
    }
    
    .wedding-date-location {
        bottom: 14% !important; /* Moved higher up from 7% */
    }
}

/* Specific fix for iOS devices */
@supports (-webkit-touch-callout: none) {
    /* iOS specific styles */
    .lead {
        bottom: 17% !important; /* Higher on iOS */
        text-shadow: 0 1px 3px rgba(0, 0, 0, 0.8) !important; /* Better shadow for legibility */
    }
    
    .wedding-date-location {
        bottom: 14% !important; /* Moved higher up from 7% */
        text-shadow: 0 1px 3px rgba(0, 0, 0, 0.8) !important; /* Better shadow for legibility */
    }
    
    /* Fix font rendering on iOS */
    .date-location-text, .countdown, .lead svg text {
        -webkit-font-smoothing: antialiased !important;
    }
}

/* When header is active (indicates we're on a section page), hide banner elements */
header.active ~ .banner .wedding-date-location,
header.active ~ .banner .lead,
header.active ~ .banner .date-location-text,
header.active ~ .banner .countdown {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    z-index: -1 !important;
    pointer-events: none !important;
}

/* Additional override for all banner content when sections are shown */
body:has(section.section-show) .banner .wedding-date-location,
body:has(section.section-show) .banner .lead,
body:has(section.section-show) .banner .date-location-text,
body:has(section.section-show) .banner .countdown {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    z-index: -1 !important;
    pointer-events: none !important;
}

/* Hide homepage elements during transitions - alternative approach */
.section-transition .wedding-date-location,
.section-transition .lead,
.section-transition .date-location-text,
.section-transition .countdown {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
}

/* Fix the ordering issue - adjust z-index to ensure proper layering */
@media (max-width: 768px) {
  /* Date/location should be positioned lower */
  .wedding-date-location {
    position: fixed !important;
    bottom: 14% !important; /* Positioned above hashtag with clearance */
    left: 0 !important;
    right: 0 !important;
    z-index: 2100 !important;
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 0 15px 0 !important; /* Add bottom padding */
  }
  
  /* Date location text formatting */
  .date-location-text {
    flex-direction: column !important;
    margin-bottom: 8px !important; /* Keep spacing minimal but clear */
    line-height: 1.1 !important; /* Tighter line height */
  }
  
  /* Countdown text */
  .countdown {
    margin-top: 8px !important; /* Reduced from 15px */
    line-height: 1 !important; 
  }
  
  /* Hashtag should appear BELOW with significant space */
  .lead {
    position: fixed !important;
    bottom: 4% !important; /* Very close to bottom */
    left: 0 !important;
    right: 0 !important;
    z-index: 2000 !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    height: 40px !important; /* Fixed height to control space */
  }
  
  /* Set specific height for hashtag SVG */
  .lead svg {
    height: 40px !important;
    width: auto !important; 
    max-width: 300px !important;
  }

  /* Ensure slide loader doesn't overlap with hashtag */
  .slide-loader {
    bottom: 0.5% !important;
    right: 3% !important;
  }
}

/* Enhanced spacing for iPhone 15 Pro Max and other newer iPhones */
@media screen and (max-width: 480px) and (min-height: 800px) {
    .wedding-date-location {
        bottom: 14% !important; /* Same position */
    }
    
    .lead {
        bottom: 4% !important; /* Same position */
    }
}

/* Maximum separation for iPhone Pro Max models with notches */
@supports (-webkit-touch-callout: none) and (max-width: 480px) and (min-height: 840px) {
    .wedding-date-location {
        bottom: 14% !important; /* Same position */
    }
    
    .lead {
        bottom: 4% !important; /* Same position */
    }
}

/* Specific fix for iOS devices */
@supports (-webkit-touch-callout: none) {
    /* iOS specific styles */
    .wedding-date-location {
        bottom: 14% !important; /* Same position */
        text-shadow: 0 1px 3px rgba(0, 0, 0, 0.8) !important; /* Better shadow for legibility */
    }
    
    .lead {
        bottom: 4% !important; /* Same position */
        text-shadow: 0 1px 3px rgba(0, 0, 0, 0.8) !important; /* Better shadow for legibility */
    }
}

@media (max-width: 768px) {
  /* Move the hashtag up closer to the date/location */
  .lead {
    position: fixed !important;
    bottom: 7% !important; /* Moved up from 6% to be closer to date/location */
    left: 0 !important;
    right: 0 !important;
    z-index: 2000 !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  
  /* Increase size of hashtag text by ~75% */
  .lead svg {
    width: 90% !important;
    max-width: 450px !important; /* Increased from 300px (50% larger) */
    height: 70px !important; /* Increased from ~40px (75% larger) */
    margin: 0 auto !important;
    display: block !important;
    margin-top: 15px !important; /* Reduced from 25px to move it up */
  }
}

/* Enhanced spacing for iPhone 15 Pro Max and other newer iPhones */
@media screen and (max-width: 480px) and (min-height: 800px) {
  .lead {
    bottom: 7% !important;
  }
  
  .lead svg {
    height: 70px !important;
  }
}

/* Maximum separation for iPhone Pro Max models with notches */
@supports (-webkit-touch-callout: none) and (max-width: 480px) and (min-height: 840px) {
  .lead {
    bottom: 7% !important;
  }
  
  .lead svg {
    height: 70px !important;
  }
}

/* Specific fix for iOS devices */
@supports (-webkit-touch-callout: none) {
  .lead {
    bottom: 7% !important;
  }
  
  .lead svg {
    height: 70px !important;
  }
}

/* Specific adjustment for slide 3 title and body text */
@media (max-width: 768px) {
  .bg-slide.slide-3 .content h1 {
    top: calc(15%) !important; /* Move down by 10px from default 15% */
  }
  
  .bg-slide.slide-3 .content p {
    top: calc(28%) !important; /* Move down by 10px from default 28% */
  }
}

/* Improved fix for mobile slide transition issues */
@media (max-width: 768px) {
  /* Base state for slides - not visible */
  .bg-slide {
    display: none !important;
    opacity: 0 !important;
    transition: none !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100vh !important;
    z-index: 100 !important;
    overflow: hidden !important;
  }
  
  /* Active slide - visible */
  .bg-slide.active {
    display: block !important;
    opacity: 1 !important;
    z-index: 200 !important;
  }
  
  /* During transitions, maintain cleaner state management */
  body.slide-transitioning .bg-slide:not(.active) {
    display: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
    z-index: -1 !important;
  }
  
  /* Active slide during transition */
  body.slide-transitioning .bg-slide.active {
    display: block !important;
    z-index: 200 !important;
  }
  
  /* Hide UI elements during transitions */
  body.slide-transitioning .wedding-date-location,
  body.slide-transitioning .lead {
    opacity: 0 !important;
  }
  
  /* Ensure images fully cover their container */
  .circle.bg .mobile-slide {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100vh !important;
    object-fit: cover !important;
  }
  
  /* Prevent the circle background from having any transforms */
  .circle.bg {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    transform: none !important;
    border-radius: 0 !important;
  }
}

/* Optimize image loading and positioning */
.circle.bg img, .circle.bg .mobile-slide {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
  z-index: 1 !important;
  will-change: transform; /* Let browser optimize for this */
  transition: opacity 0.3s ease-in-out;
  opacity: 1;
}

/* Add loading state to handle transitions while loading */
.bg-slide.loading .circle.bg .mobile-slide {
  opacity: 0;
}

/* Optimize image loading and positioning - FIXED FOR DESKTOP */
.circle.bg img.mobile-slide {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
  z-index: 1 !important;
  will-change: transform; /* Let browser optimize for this */
  transition: opacity 0.3s ease-in-out;
  opacity: 1;
}

/* Fix desktop slide positioning */
.circle.bg img.desktop-slide {
  position: absolute !important;
  width: 100vw !important;
  height: 100vh !important;
  object-fit: cover !important;
  object-position: center !important;
  top: 50% !important;
  left: 50% !important;
  transform: translate(-50%, -50%) !important;
  z-index: 1 !important;
}

/* Add loading state to handle transitions while loading */
.bg-slide.loading .circle.bg .mobile-slide {
  opacity: 0;
}

/* CLEAN CSS RULES TO FIX SLIDE IMAGES - DESKTOP AND MOBILE */
/* Desktop slide image positioning - super important fix */
@media (min-width: 769px) {
  .circle.bg img.desktop-slide {
    position: absolute !important;
    width: 100vw !important;
    height: 100vh !important;
    object-fit: cover !important;
    object-position: center !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
    z-index: 1 !important;
  }
  
  /* Ensure proper positioning for circular BG */
  .circle.bg {
    background: transparent !important;
    width: 140vw !important;
    height: 140vw !important;
    border-radius: 0 !important;
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
    z-index: 150 !important;
  }
}

/* Mobile slide image positioning */
@media (max-width: 768px) {
  .circle.bg img.mobile-slide {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100vh !important;
    object-fit: cover !important;
    object-position: center !important;
    transform: none !important;
  }
  
  /* Keep circle background simple on mobile */
  .circle.bg {
    position: absolute !important;
    width: 100% !important;
    height: 100% !important;
    top: 0 !important;
    left: 0 !important;
    transform: none !important;
    border-radius: 0 !important;
  }
}

/* Hide slides 2-3 and navigation buttons on mobile devices */
@media (max-width: 768px) {
  /* Hide slides 2 and 3 completely */
  .bg-slide.slide-2,
  .bg-slide.slide-3 {
    display: none !important;
    visibility: hidden !important;
  }
  
  /* Hide slide navigation buttons */
  .slide-loader {
    display: none !important;
    visibility: hidden !important;
  }
  
  /* Force slide 1 to always be visible */
  .bg-slide.slide-1 {
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
    z-index: 200 !important;
  }
}

/* FINAL OVERRIDE: Completely hide slide navigation on mobile devices - no exceptions */
@media (max-width: 768px) {
  .slide-loader,
  .slide-loader li,
  .slide-loader li a {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
    position: absolute !important;
    z-index: -9999 !important;
  }

  /* Hide all slides except slide 1 */
  .bg-slide:not(.slide-1) {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
  }

  /* Force slide 1 to be visible */
  .bg-slide.slide-1 {
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
    z-index: 200 !important;
  }
}

/* MOBILE HOME PAGE SCROLL LOCK: Prevent scrolling on homepage for mobile devices */
@media (max-width: 768px) {
  /* When no section is active (homepage is showing), lock scrolling */
  body:not(:has(section.section-show)) {
    position: fixed !important;
    overflow: hidden !important;
    width: 100% !important;
    height: 100% !important;
    max-height: 100% !important;
    touch-action: pan-x !important; /* Allow horizontal swiping but prevent vertical */
  }
  
  /* Alternative selector for browsers that don't support :has */
  body.home-active {
    position: fixed !important;
    overflow: hidden !important;
    width: 100% !important;
    height: 100% !important;
    max-height: 100% !important;
    touch-action: pan-x !important;
  }
  
  /* Allow scrolling when a section is active */
  body:has(section.section-show),
  body.section-active {
    position: relative !important;
    overflow-y: auto !important;
    height: auto !important;
    touch-action: auto !important;
  }
  
  /* Ensure banner fills the viewport exactly with no overflow */
  .banner {
    height: 100vh !important;
    max-height: 100vh !important;
    overflow: hidden !important;
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
  }
}

/* Desktop-only: Move slide 2 heading up to avoid covering the ring */
@media (min-width: 769px) {
  .bg-slide.slide-2 .content h1 {
    position: relative;
    top: -30px; /* Move up by 30px from its normal position */
    margin-bottom: 30px; /* Maintain spacing to paragraph */
  }
}

/* Desktop-only: Nudge slide-3 content down slightly to avoid covering face */
@media (min-width: 769px) {
  .bg-slide.slide-3 .content {
    top: 55% !important; /* Slightly lower than default 50% */
  }
}