@import url('https://fonts.googleapis.com/css2?family=Lora:ital,wght@1,200,300,400,500,600&display=swap');


*{
    margin:0;
    padding:0;
    box-sizing:border-box;
    font-family:'Inter', sans-serif;
}

body {

        /* 1. Set a soft, very pale base color */
    background:var(--box, linear-gradient(103deg, rgba(88, 76, 255, 0.3) -3.37%, #FFF 44.96%, rgba(112, 191, 255, 0.3) 93.28%));



    background-attachment: fixed;
    background-size: cover;
    background-repeat: no-repeat;

    /* 4. Keep the Flexbox setup for your sticky footer! */
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    margin: 0;

    /* Set the minimum height to 100% of the viewport (screen) height */
    min-height: 100vh;
    
    /* Turn on Flexbox for the whole page */
    display: flex;
    flex-direction: column;
    
    /* Remove default margins so there's no weird spacing */
    margin: 0; 
    
}

/* Main layout */

.main-container{
    display:flex;
    height:100vh;
}

/* Left panel */

.left-side{
    width:50%;
    height:100vh;
    overflow:hidden;
    position:relative;
}

.background-video{
    width:100%;
    height:100%;
    object-fit:cover;
}

/* Right panel */

.right-side {
    width: 50%;
    
    /* Recreating the soft mesh gradient from your image */
    background-color: #dbe9fc; /* A very soft base blue */
    background-image: 
        radial-gradient(circle at 0% 50%, #9bcbfb 0%, transparent 50%),   /* Left blue blob */
        radial-gradient(circle at 100% 0%, #f6e5e0 0%, transparent 50%),  /* Top right pinkish blob */
        radial-gradient(circle at 100% 100%, #e6dafd 0%, transparent 50%); /* Bottom right purple blob */
        
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

/* Eternify title */
.login_title {
  background: var(--gg, linear-gradient(90deg, #002954 12.87%, #000647 100%));
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  font-size: 42px;
font-weight: 800; /* This is the maximum thickness for the Intel font */  margin-bottom: 35px;

}
.email-instruction {
    background: var(--gg, linear-gradient(90deg, #002954 12.87%, #000647 100%));
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    
    /* Centering logic */
    text-align: center;
    width: 100%; /* Ensures the text has room to center itself */
    
    /* Styling */
    font-weight: 600; 
    line-height: 1.5;
    margin-bottom: 20px;
    font-size: 15px; /* Matches your input font size for consistency */
}
/* Form */

.register-form{
    width:400px;
    display:flex;
    flex-direction:column;
    gap:25px;
}

/* Inputs */

.register-form input{
    padding:15px 5px;
    border-radius:6px;
    border:1.5px solid rgba(120,160,210,0.6);
    background:rgba(255,255,255,0.35);
    outline:none;
    font-size:15px;
    text-align:center;
}

/* Input placeholder */

.register-form input::placeholder{
    color:#6b7d92;
}

/* Register button */
.register-form button {
    margin-top: 10px;
    padding: 12px;
    width: 140px; /* Keeps it distinctly shorter than the 320px input boxes */
    align-self: center; /* Centers the shorter button in the flex column */
    border: none;
    border-radius: 30px; /* Gives it that fully rounded pill shape */
    background: linear-gradient(90deg, #d2e6ff 0%, #6ba9fc 100%); /* Recreates the soft blue gradient */
    color: white;
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
    box-shadow: 0 4px 12px rgba(107, 169, 252, 0.3); /* Adds the subtle glow/shadow underneath */
}

/* Password Error Tip */
.error-tip {
    color: #e74c3c;
    font-size: 13px;
    font-weight: 500;
    margin-top: -8px; /* Pulls it up closer to the input box */
    margin-bottom: 8px;
    opacity: 0;
    max-height: 0;
    overflow: hidden;
    transition: all 0.3s ease-in-out;
}

/* This class will be added by JavaScript to show the error */
.error-tip.show {
    opacity: 1;
    max-height: 20px;
}

/* Login Link */
.login-button {
    text-align: center;
    font-size: 14px;
    color: #0000EE; /* Keeps the standard blue link color */
    text-decoration: underline;
    margin-top: -5px; /* Pulls it slightly closer to the register button */
    transition: 0.3s;
}

.login-button:hover {
    color: #5c98d8; /* Adds a nice hover effect matching your button */
}

.login-error{
    color:#e74c3c;
    font-size:13px;
    text-align:center;
    margin-top:-8px;
        text-align: center; /* This centers the text */

}

.error-message {
    color: red;
    font-size: 14px;
    margin-bottom: 10px;
    text-align: center; /* This centers the text */
}

/* 1. The Clean Text Links */
.bottom-link {
  display: block;
  text-align: center;
  text-decoration: none; /* Removes the ugly default underline */
  color: #002954; /* Your Eternify dark blue */
  font-size: 14px;
  font-weight: 600; /* Semi-bold so it's easy to read */
  margin-top: 0px;
  transition: all 0.2s ease;
}

/* Adds the underline only when the user hovers over it */
.bottom-link:hover {
  text-decoration: underline;
  opacity: 0.8;
}

/* 2. The "OR" Line Divider */
.login-divider {
  display: flex;
  align-items: center;
  text-align: center;
  margin: -5px auto;
  max-width: 300px; /* Adjust width to fit under your form nicely */
  color: #8e8e8e; /* Instagram's subtle grey */
  font-size: 13px;
  font-weight: 600;
}

/* Draws the actual grey lines on the left and right */
.login-divider::before, 
.login-divider::after {
  content: "";
  flex: 1;
  border-bottom: 1px solid #dbdbdb; 
}

/* Adds breathing room around the word "OR" */
.login-divider span {
  padding: 0 15px;
}





/* Container to add some breathing room between the form and the links */
.bottom-links-container {
  margin-top: 0px; 
  display: flex;
  flex-direction: column; /* Stacks the links vertically */
  gap: 18px; /* Adds consistent spacing between each link */
}

/* The clean text links */
.bottom-link {
  display: block;
  text-align: center;
  text-decoration: none; /* Removes the default underline */
  color: #002954; /* Your Eternify dark blue */
  font-size: 14px;
  font-weight: 600; /* Semi-bold for readability */
  transition: opacity 0.2s ease, text-decoration 0.2s ease;
}

/* Adds the underline only when hovered, matching modern UI standards */
.bottom-link:hover {
  text-decoration: underline;
  opacity: 0.7; /* Fades slightly on hover */
}










/* --- 1. The Navbar Container --- */
.guest-navbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 20px 60px;
    
    /* NEW: Sticky positioning to keep it on top while scrolling */
    position: sticky;
    top: 0;
    z-index: 9999; /* Ensures it stays above all other content */

    /* NEW: iOS Liquid Glass Effect */
    /* We use rgba() to make your soft blue gradient 65% transparent */
    background: linear-gradient(to bottom, rgba(110, 178, 255, 0.474), rgba(240, 247, 255, 0.65)); 
    backdrop-filter: blur(16px); /* The magic background blur */
    -webkit-backdrop-filter: blur(16px); /* Required for Safari support */
    
    border-bottom-left-radius: 40px;
    border-bottom-right-radius: 40px;
    
    /* Slightly softened shadow so the glass effect feels natural */
    box-shadow: 0 10px 30px rgba(0, 102, 255, 0.15);
}

/* --- 2. Logo --- */
/* --- NAVBAR LOGO SIZING --- */
.logo .nav-logo-img {
    height: 40px; /* Adjust this number to make it bigger or smaller */
    width: auto;
    display: block; /* Removes any weird bottom spacing */
}

/* --- 3. Nav Links --- */
.nav-links {
    list-style: none;
    display: flex;
    gap: 70px;
    margin: 0;
    padding: 0;
}

.nav-links a {
    text-decoration: none;
    font-family: 'Inter', sans-serif;
    font-size: 16px;
    font-weight: 500;
    color: #000;
    text-transform: uppercase; 
    letter-spacing: 0.5px;
    transition: all 0.3s ease; 
}

.nav-links a.active {
    color: #44a2ff; /* Changes the text to your theme's blue */
    font-weight: 900; /* Makes it bolder than the rest */
    font-size: 17px;

    border-bottom: 0px solid #44a2ff; /* Adds a nice crisp line underneath */
    padding-bottom: 2px; /* Gives the line a little breathing room */
}

/* --- 4. Sign In Button --- */
.nav-right .signin-btn {
    display: inline-block;
    padding: 10px 24px; 
    background-color: white;
    color: black;
    text-decoration: none;
    font-family: 'Inter', sans-serif;
    font-weight: 600;
    font-size: 14px;
    border-radius: 50px; 
    
    /* FIXED: Corrected the syntax here so the shadow works properly */
    box-shadow: 0 4px 10px rgba(36, 61, 175, 0.15);
    transition: all 0.3s ease;
}

.nav-right .signin-btn:hover {
    background-color: #f8f9fa;
    box-shadow: 0 6px 15px rgba(70, 101, 255, 0.3);
}











.contact-section {
    /* --- ADD THIS LINE --- */
    margin-top: auto; 
    
    /* Your existing styles below */
    background: linear-gradient(to bottom, #d6e9ff, #87bbf0);
    padding: 60px 20px;
    text-align: center;
    font-family: 'Inter', sans-serif;
    width: 100%; /* Ensures it stretches all the way across */
    box-sizing: border-box; /* Prevents horizontal scrolling issues */

}

.contact-section h3 {
    font-size: 24px;
    font-weight: 700;
    margin-bottom: 40px;
    color: #000;
}

.contact-container {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 80px; /* Space between columns */
    max-width: 1200px;
    margin: 0 auto;
}

.contact-item {
    display: flex;
    align-items: center;
    gap: 15px;
    text-align: left;
}

.contact-item .icon {
    font-size: 28px;
    color: white; /* Matches the icon look in image */
}

.contact-item .details p {
    margin: 0;
    font-weight: 700;
    font-size: 16px;
    color: #000;
}

/* Social Media Circles */
.social-icons {
    display: flex;
    gap: 20px;
}

.social-circle {
    width: 40px;
    height: 40px;
    background: white;
    border-radius: 50%;
    display: inline-block;
    transition: transform 0.3s ease;
}

.social-circle:hover {
    transform: scale(1.1);
}

.nav-right{
    display:flex;
    align-items:center;
    gap:12px;
}

.social-icon{
    width:32px;
    height:32px;
    border-radius:50%;
    background:white;
    display:flex;
    align-items:center;
    justify-content:center;
    text-decoration:none;
    color:black;
    font-size:14px;
}

/* --- GLOBAL TYPOGRAPHY SETTINGS --- */
.italic-subtitle {
        background: var(--gg, linear-gradient(90deg, #3477be 12.87%, #1A237E 100%));
background-clip: text;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
    font-size: 24px;
    margin-bottom: 20px;
}

.text-center {
    text-align: center;
}

.uppercase-heading {
    text-transform: uppercase;
    letter-spacing: 1px;
}

/* Ensure the parent container traps the background */
.hero-section {
    position: relative; 
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 80px 15%;
    gap: 150px;
    overflow: hidden; 
}

.hero-bg-layer {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0.3;
    z-index: 0;
    pointer-events: none;
}

.hero-text, 
.hero-image-container {
    position: relative;
    z-index: 1;
}



.hero-text h1 {
    font-size: 48px;
    font-weight: 700;
    margin: 0 0 50px 0;
    
}

/* ... keep the rest of your existing hero CSS below here exactly as it is ... */

.hero-text h1 {
    font-size: 48px;
    font-weight: 800;
    margin: 0 0 50px 0;
    background: var(--gg, linear-gradient(90deg, #3477be 12.87%, #1A237E 100%));
background-clip: text;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}

.hero-desc {
    font-size: 20px;
    line-height: 35px;
    margin-bottom: 50px;
    text-align: justify;
}

.learn-more-btn {
    font-weight: 700;
    text-decoration: none;
    color: #002b55;
    font-size: 25px;
    letter-spacing: 3px;
    font-weight: 900;
    text-transform: uppercase;
}

.learn-more-btn:hover {
    color: #0000c6;
}

.hero-image-container {
    flex: 1;
    display: flex;
    justify-content: flex-end;
    align-items: center;
}

.arch-image {
    width: clamp(250px, 40vw, 450px); /* 🔥 responsive */
    aspect-ratio: 3 / 4;
    object-fit: cover;

    border-radius: 250px 250px 20px 20px;
    flex-shrink: 0;
}


/* --- 2 & 4. WHITE SECTIONS (About & CTA) --- */
.white-section {
    background-color: #ffffff;
    padding: 150px 20px;
}

.white-section h2 {
    font-size: 40px;
    line-height: 60px;
    margin-bottom: 60px;
        background: var(--gg, linear-gradient(90deg, #134c88 12.87%, #1A237E 100%));
background-clip: text;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
    
}

.cta-desc {
    font-size: 25px;
    margin-bottom: 50px;
    font-style: italic;
}

/* Light Blue Pill Buttons */
.pill-btn {
    display: inline-block;
    background: linear-gradient(to right, #d6e9ff, #eef5ff);
    color: #002b55;
    padding: 12px 35px;
    border-radius: 50px;
    text-decoration: none;
    font-weight: 800;
    font-size: 20px;
    box-shadow: 0 4px 10px (#2c93faac);
    transition: transform 0.3s ease;
}

.pill-btn:hover {
    transform: translateY(-0px);
}

/* --- PACKAGE GUIDE SECTION --- */
.italic-subtitle{
    font-family: 'Lora', serif;
  font-weight: 500; /* 500 is the standard weight for 'Medium' */
  font-style: italic;
        font-size: 25px;
    margin-bottom: 10px;
    font-style: italic;
}

.uppercase-heading {
    font-size: 40px;
    line-height: 60px;
    margin-bottom: 60px;
            background: var(--gg, linear-gradient(90deg, #134c88 12.87%, #1A237E 100%));
background-clip: text;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}

.package-guide-section {
    padding: 80px 10%;
    background-color: #f8fbff; /* A very soft, calming blue/grey tint */
}

.package-options-container {
    display: flex;
    justify-content: center;
    gap: 50px;
    margin-top: 50px;
    flex-wrap: wrap; /* Keeps it responsive for mobile screens */
}

.package-card {
    background: #ffffff;
    padding: 50px 40px;
    border-radius: 20px;
    box-shadow: 0 10px 30px rgba(106, 125, 255, 0.05); /* Gentle shadow */
    flex: 1;
    max-width: 450px;
    display: flex;
    flex-direction: column;
    align-items: center;
    transition: transform 0.3s ease; /* Smooth hover animation */
}

.package-card:hover {
    transform: translateY(-10px); /* Lifts the card slightly when hovered */
}

.package-card img {
    width: 120px;
    height: 120px;
    object-fit: contain;
    margin-bottom: 25px;
}

.package-card h3 {
    font-size: 26px;
    font-weight: 700;
    color: #333;
    margin-bottom: 15px;
}

.package-card p {
    font-size: 18px;
    color: #666;
    line-height: 1.6;
    margin-bottom: auto; /* Pushes the button to the bottom evenly */
}

/* --- 5. TESTIMONIALS SECTION --- */
.testimonials-section {
    padding: 80px 5%; /* Adjusted padding for better fit */
    text-align: center;
}

.testimonials-section h2 {
    font-size: 32px;
    margin-bottom: 40px;
    text-transform: uppercase;
    letter-spacing: 1px;
            background: var(--gg, linear-gradient(90deg, #134c88 12.87%, #1A237E 100%));
background-clip: text;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}

/* The Window: Hides the cards that aren't on the current "page" */
.testimonials-container {
    overflow: hidden; 
    width: 100%;
    max-width: 1400px; /* Limits width on very large screens */
    margin: 0 auto;
}

/* The Track: This moves left/right via JavaScript */
.testimonials-track {
    display: flex;
    gap: 45px; /* Your exact requested gap */
    transition: transform 0.8s cubic-bezier(0.4, 0, 0.2, 1); /* Professional smooth slide */
    padding: 20px 0; /* Space for the box shadows */
}

/* Individual Card Styling */
.testimonial-card {
    /* MATH: 4 cards per view. (100% - (3 gaps of 45px)) / 4 = calc(25% - 33.75px) */
    flex: 0 0 calc(25% - 33.75px); 
    aspect-ratio: 1 / 1; /* Keeps it a perfect square */
    border-radius: 20px;
    padding: 35px;
    box-sizing: border-box;
    
    display: flex;
    flex-direction: column;
    align-items: center; 
    text-align: center;
    
    border: 1px solid rgba(255, 255, 255, 0.4);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.03);
}

/* 16-Card Gradient Pattern (Repeats every 4 cards) */
.testimonial-card:nth-child(4n+1) { background: linear-gradient(180deg, #d8eeff, #cfe4ff); }
.testimonial-card:nth-child(4n+2) { background: linear-gradient(180deg, #d9e8ff, #d2e0ff); }
.testimonial-card:nth-child(4n+3) { background: linear-gradient(180deg, #dce2ff, #d9dbff); }
.testimonial-card:nth-child(4n+4) { background: linear-gradient(180deg, #e1e0ff, #e8deff); }

/* Testimonial Text (Justified & Centered) */
.testimonial-card p {
    font-style: italic;
    font-size: 18px; /* Your requested size */
    line-height: 1.5;
    color: #333;
    text-justify: inter-word;
    margin-top: 10%;   /* Pushes text to middle */
    margin-bottom: 10%;
    max-width: 95%;
}

/* Name (Stuck to bottom) */
.testimonial-card h4 {
    margin-top: auto;   /* The "Spring" that pushes the name to the bottom */
    margin-bottom: 5%;  /* Small gap from the very bottom edge */
    
    font-weight: 700;
    font-size: 22px;    /* Your requested size */
    color: #000;
}

/* --- SLIDESHOW DOTS --- */
.carousel-dots {
    display: flex;
    justify-content: center;
    gap: 15px;
    margin-top: 40px;
}

.dot {
    width: 18px;
    height: 18px;
    background-color: #ffffff;
    border: 1px solid #d0d0d0;
    border-radius: 50%;
    cursor: pointer;
    transition: all 0.3s ease;
}

/* Light blue active state from your image */
.dot.active {
    background-color: #b8d4f0; 
    border-color: #b8d4f0;
    transform: scale(1.2);
}





/* =========================================================
   RESPONSIVE DESIGN: IPAD LANDSCAPE (Screens up to 1200px)
   ========================================================= */
@media (max-width: 1200px) {
    /* --- 1. Hero Section --- */
    .hero-section {
        padding: 60px 5%; /* Reduces the huge 15% side margins */
        gap: 50px; /* Shrinks the massive 150px gap */
    }
    
    .hero-text h1 {
        font-size: 40px; /* Slightly scale down for tablet */
    }
    
    .hero-desc {
        font-size: 18px;
    }

    /* --- 2. Testimonials --- */
    /* Keep 4 cards, but reduce padding inside them so text fits */
    .testimonials-track {
        gap: 20px; 
    }
    
    .testimonial-card {
        flex: 0 0 calc(25% - 15px); /* Adjust math for the new 20px gap */
        padding: 20px;
    }
    
    .testimonial-card h4 {
        font-size: 18px;
    }
    
    .testimonial-card p {
        font-size: 14px;
        margin-top: 5%;
    }
}

/* =========================================================
   RESPONSIVE DESIGN: IPAD PORTRAIT (Screens up to 850px)
   ========================================================= */
@media (max-width: 1330px) {
    /* --- 1. Hero Section (Stack Vertically) --- */
    .hero-section {
        flex-direction: column; /* Stacks text on top, image on bottom */
        text-align: center;
        gap: 40px;
        padding: 40px 5%;
    }
    
    .hero-desc {
        text-align: center; /* Override the justify for portrait view */
        margin-bottom: 30px;
    }
    
    .arch-image {
        width: 60vw; /* Make the arch slightly wider to look good centered */
        border-radius: 200px 200px 20px 20px;
    }

    /* --- 2. Global Headings --- */
    .white-section h2, 
    .uppercase-heading {
        font-size: 30px; /* Scale down the big headings */
        line-height: 45px;
    }

    /* --- 3. Package Guide (Stack Vertically) --- */
    .package-options-container {
        flex-direction: column;
        align-items: center;
        gap: 30px;
    }
    
    .package-card {
        width: 100%;
        max-width: 100%; /* Let the cards breathe to full width */
    }

    /* --- 4. Testimonials (Drop to 2 per view) --- */
    /* 4 is too crowded for portrait mode. We drop to 2 cards per view. */
    .testimonial-card {
        flex: 0 0 calc(50% - 10px); 
    }
}














/* --- MEMORIALS BUTTONS WITH IMG SOURCE --- */

.memorial-options-container {
    display: flex;
    gap: 170px; 
    justify-content: center;
    align-items: center;
    padding: 100px 20px;
}

.memorial-circle-btn {
    position: relative;
    width: 450px; 
    height: 450px;
    border-radius: 360px; 
    overflow: hidden; 
    display: flex;
    justify-content: center;
    align-items: center;
    cursor: pointer;
    text-decoration: none;
    border: none;
    
    background: linear-gradient(0deg, rgba(227, 241, 255, 0.10) 0%, rgba(44, 147, 250, 0.10) 100%);
    box-shadow: 0 4px 50px -15px #2C93FA inset, 0 0 100px 25px rgba(107, 181, 255, 0.30);
    transition: transform 0.4s ease;
}

.btn-source-img {
    position: absolute;
    top: 15px;
    left: -12px;
    width: 102.235%;
    height: 100.235%;
    object-fit: cover;
    z-index: 1; 
    pointer-events: none; 
    opacity: 70%;
}


.btn-source-right-img {
    position: absolute;
    top: 15px;
    left: 4px;
    width: 102.235%;
    height: 100.235%;
    object-fit: cover;
    z-index: 1; 
    pointer-events: none; 
    opacity: 70%;
}

/* --- FONT UPDATE HERE --- */
.memorial-circle-btn span {
    position: relative;
    z-index: 2; 
    
    /* Applying Seoul Hangang font */
    font-family: 'Seoul Hangang';
    font-size: 40px; /* Slightly larger as this font tends to be tall/narrow */
    font-weight: 500;
            background: var(--gg, linear-gradient(90deg, #002954 12.87%, #000647 100%));
background-clip: text;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
    text-align: center;
    line-height: 1.1;
    letter-spacing: -0.5px; /* Tighter spacing for a cleaner look */
    text-shadow: 0 2px 4px rgba(255, 255, 255, 0.4);
}

.memorial-circle-btn:hover {
    transform: scale(1.04);
}
/* --- MODAL NOTICE STYLING --- */

.modal-overlay {
    display: none;
    position: fixed;
    z-index: 9999;
    left: 0; top: 0;
    width: 100%; height: 100%;
    background: rgba(0, 0, 0, 0.3);
    backdrop-filter: blur(8px);
    justify-content: center;
    align-items: center;
}

.modal-box {
    background: #fff;
    padding: 50px 40px; /* Increased padding for breathing room */
    border-radius: 30px;
    text-align: center;
    max-width: 450px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.15);
}

.modal-box h3 {
    font-family: 'Inter', sans-serif;
    font-size: 26px;
    font-weight: 600;
    margin-bottom: -5px;
    color: #111;
}

.modal-box p {
    font-family: 'Inter', sans-serif;
    font-size: 16px;
    color: #444;
    margin-bottom: 35px; /* Pushes the buttons down */
    line-height: 1.8; /* Increased line height to make it less compact */
}

/* Button Layout */
.modal-actions {
    display: flex;
    gap: 15px;
    justify-content: center;
}

/* Base Homepage-style Button */
.modal-btn {
    padding: 12px 30px;
    border-radius: 50px;
    text-decoration: none;
    font-family: 'Inter', sans-serif;
    font-weight: 500;
    font-size: 15px;
    transition: all 0.3s ease;
}

/* Sign In Button (Outlined) */
.signin-btn {
    background-color: transparent;
    color: #333;
    border: 1px solid #6ba9fc;
}

/* Sign Up Button (Filled - Matching Eternify Theme) */
.signup-btn {
    background: linear-gradient(90deg, #d2e6ff 0%, #6ba9fc 100%); /* Recreates the soft blue gradient */
    color: white;
    box-shadow: 0 4px 12px rgba(107, 169, 252, 0.3); /* Adds the subtle glow/shadow underneath */
}

/* --- CREATE MEMORIAL PAGE STYLES --- */

/* Page Background Gradient matching the UI */
.memorials-page {
    margin: 0;
    padding: 0;
    /* Soft blue to peachy-pink to blue gradient */
    min-height: 100vh;
}

.cm-container {
    max-width: 1050px; 
    margin: 0 auto;
    padding: 60px 20px 100px 20px;
    font-family: 'Inter', sans-serif;
}

.cm-main-title {
    text-align: center;
    font-size: 42px;
    font-weight: 800; 
      background: var(--gg, linear-gradient(90deg, #3477be 12.87%, #1A237E 100%));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    margin-bottom: 50px;
    text-transform: uppercase;
}

/* Style for the label to match the bold heading */
.cm-funeral-days label {
    display: block;
    font-weight: 700;
    margin-bottom: 12px; /* Adjust spacing to match your layout */
    font-family: inherit;
    color: #000;
}

/* Style for the select dropdown to match the date input */
.cm-funeral-days select {
    width: 100%;
    max-width: 250px; /* Adjust based on your column width */
    height: 51px; /* Typical height for inputs, adjust if needed */
    padding: 8px 12px;
    background-color: #ffffff;
    border: 1px solid #94bfff; /* The light blue border from your image */
    border-radius: 6px; /* The rounded corners */
    font-size: 15px;
    color: #333;
    box-sizing: border-box;
    outline: none;
    cursor: pointer;
    
    /* Optional: Smooth transition for when the user clicks it */
    transition: border-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
}

/* Add a focus state for accessibility and design */
.cm-funeral-days select:focus {
    border-color: #5c9cff;
    box-shadow: 0 0 0 3px rgba(92, 156, 255, 0.2);
}

/* Wrapper to hold top grid and bottom location */
.cm-form-wrapper {
    display: flex;
    flex-direction: column;
    gap: 30px; 
}

/* Two-column layout for the top part */
.cm-top-grid {
    display: grid;
    /* Adjusted slightly so the left form has the exact breathing room shown in UI */
    grid-template-columns: 1.2fr 0.8fr; 
    gap: 80px; 
}

/* Row layouts for perfect balancing */
.cm-row {
    display: flex;
    gap: 20px;
    margin-bottom: 30px;
    width: 100%;
}

.cm-input-group {
    display: flex;
    flex-direction: column;
    width: 100%; 
}

/* Custom Proportions based on UI Design */
.cm-row-names .cm-col-en { flex: 3; }    /* English name takes ~75% */
.cm-row-names .cm-col-cn { flex: 1; }    /* Chinese name takes ~25% */

.cm-row-dates .cm-input-group { flex: 1; } /* 50/50 split */

.cm-row-age .cm-col-age { flex: 1; }     /* Age takes ~28% */
.cm-row-age .cm-col-rel { flex: 2.5; }   /* Religion takes ~72% */

.cm-cortege { margin-bottom: 0; }        /* Full width of the left column */

/* Styling all labels */
.cm-input-group label {
    font-size: 16px;
    font-weight: 700; /* Bolded to match UI */
    color: #000;
    margin-bottom: 12px;
    display: block;
}

/* Input, Date, and Textarea Styling */
.cm-input-group input[type="text"],
.cm-input-group input[type="date"],
.cm-input-group textarea {
    background-color: #ffffff; /* Solid, very light blue/white fill */
    border: 1px solid #A6C8FF; /* Soft blue border */
    border-radius: 8px;
    padding: 14px 18px;
    font-size: 15px;
    color: #333;
    font-family: 'Inter', sans-serif;
    outline: none;
    transition: all 0.3s ease;
    width: 100%;
    box-sizing: border-box; 
}

.cm-input-group input[type="text"]:focus,
.cm-input-group input[type="date"]:focus,
.cm-input-group textarea:focus {
    border-color: #2C93FA; 
    box-shadow: 0 0 5px rgba(44, 147, 250, 0.2); 
}

/* Optional: Make the placeholder text inside the date picker match the text color */
.cm-input-group input[type="date"] {
    color: #555;
}

/* Photo Upload Box Styling */
.cm-photo-group {
    height: 100%;
}


/* Center the label above the photo upload box */
.cm-photo-group label {
    text-align: center;
    display: block; /* Ensures the label takes up the full width so text-align works */
}

.cm-upload-box {
    background-color: #ffffff; /* Matches text boxes */
    border: 1px solid #A6C8FF; /* Matches text boxes */
    border-radius: 8px;
    height: 380px; 
    display: flex;
    justify-content: center;
    align-items: center;
    cursor: pointer;
    overflow: hidden; 
    position: relative;
    transition: all 0.3s ease;
}

.cm-upload-box:hover {
    border-color: #2C93FA;
    background-color: #ffffff;
}

#uploadText {
    font-size: 14px;
    font-weight: 700;
    color: #888; /* Grey color matching the UI */
}

#photoPreview {
    width: 100%;
    height: 100%;
    object-fit: cover; 
    border-radius: 8px;
}

/* Bottom Full-Width Location */
.cm-bottom-full {
    width: 100%;
}

.cm-bottom-full textarea {
    resize: vertical;
    min-height: 160px;
}

/* Save Button */
.cm-submit-container {
    display: flex;
    justify-content: center;
    margin-top: 20px;
}

.cm-save-btn {
    background: linear-gradient(90deg, #99cfff 0%, #66b5ff 100%);
    color: #fff;
    font-size: 16px;
    font-weight: 700;
    padding: 12px 60px;
    border: none;
    border-radius: 50px; 
    cursor: pointer;
    box-shadow: 0 4px 15px rgba(102, 181, 255, 0.4);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.cm-save-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(102, 181, 255, 0.6);
}

/* Mobile Responsiveness */
@media (max-width: 850px) {
    .cm-top-grid { grid-template-columns: 1fr; gap: 30px; }
    .cm-upload-box { height: 300px; }
    .cm-row { flex-direction: column; gap: 15px; margin-bottom: 15px; }
    .cm-row-names .cm-col-en, .cm-row-names .cm-col-cn,
    .cm-row-age .cm-col-age, .cm-row-age .cm-col-rel { flex: 1; }
}
/* --- DASHBOARD & MODAL STYLES --- */

/* 1. Container - Made wider so cards are bigger and longer */
.db-container {
    max-width: 950px; /* Increased from 800px */
    margin: 0 auto;
    padding: 60px 20px;
}

.db-main-title {
    text-align: center;
    font-size: 36px;
    font-weight: 800;
    margin-bottom: 40px;
      background: var(--gg, linear-gradient(90deg, #3477be 12.87%, #1A237E 100%));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

/* Update your Obituary Card background and border */
.obituary-display-card {
    /* Using the exact Diamond gradient colors from your Figma screenshot */
    background: radial-gradient(circle, #C8F3FF 0%, #FFFFFF 100%);
    /* Using the exact border color from your Figma screenshot */
    border: 1px solid #9CCEFF;
    border-radius: 20px;
    padding: 60px 40px;
    text-align: center;
    max-width: 850px;
    margin: 0 auto;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
}

/* Ensure the photo circle has a white border like Figma */
.ob-photo-circle {
    width: 300px; /* Reduced size to match Figma proportions better */
    height: 300px;
    border-radius: 50%;
    margin: 0 auto 30px;
    border: 8px solid #FFFFFF; 
    box-shadow: 0 4px 15px rgba(0,0,0,0.05);
    background-size: cover;
    background-position: center;
}

/* You can completely delete the .ob-photo-circle img { ... } block */

.ob-photo-circle img { 
    width: 100%; 
    height: 100%; 
    object-fit: cover; 
}

.ob-quote { 
    font-style: italic; 
    color: #616161; 
    letter-spacing: 1px; 
    margin-bottom: 20px; 
    font-size: 18px; 
    max-width: 80%; 
    line-height: 1.6; /* Adds breathing room between the lines */
    margin: 60px auto; /* Centers the block and adds space on top and bottom */
}

.ob-quote2 { 
    color: #000000; 
    letter-spacing: 1px; 
    margin-bottom: 20px; 
    font-size: 21px; 
    max-width: 80%; 
    line-height: 1.6; /* Adds breathing room between the lines */
    margin: 40px auto; /* Centers the block and adds space on top and bottom */
}

.ob-name-cn { 
    font-size: 38px; /* Slightly larger */
    font-weight: 700;
    margin-bottom: 30px; 
    color: #000; 
}

.ob-dates {
    display: flex;
    justify-content: center;
    gap: 120px; /* Pushed dates further apart to match UI */
    border-top: 1px solid #dceaff;
    border-bottom: 1px solid #dceaff;
    padding: 25px 0;
    margin-bottom: 30px;
}

.date-item strong { 
    display: block; 
    font-size: 25px; 
    margin-bottom: 8px; 
    color: #000;
}

.date-item span { 
    color: #555; 
    font-size: 20px; 
}

.ob-sub-quote { 
    font-style: italic; 
    color: #888; 
    margin-bottom: 15px; 
    font-size: 16px;
}

.ob-cortege-date { 
    font-size: 32px; 
    font-weight: 800; 
    margin-bottom: 20px; 
    color: #000;
}

.ob-location-text { 
    font-size: 16px; 
    color: #444; 
    line-height: 1.6; 
    margin-bottom: 30px;

}
/* 3. RSVP Card Style */
.rsvp-display-card {
    background: radial-gradient(circle at top, #e8f6ff 0%, #FFFFFF 80%);
    border: 1px solid #c8e1ff;
    border-radius: 30px;
    padding: 50px 40px; 
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.05);
}


/* RSVP Floral Background Fix */
.rsvp-floral-inner {
    background-image: url('../images/rsvp.png'); 
    
    /* 100% 100% forces the background to stretch to the exact size of this box */
    background-size: 100% 100%; 
    background-repeat: no-repeat;
    background-position: center;
    
    /* Make the container nice and big */
    width: 100%;
    max-width: 750px; 
    min-height: 680px; /* Taller height so it doesn't squish */
    margin: 0 auto 40px auto; 
    
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    
    /* THE FIX: Huge padding on ALL sides to create a safe zone inside the dotted lines */
    padding: 100px 110px; 
    box-sizing: border-box;
}

/* Photo perfectly sized */
.rsvp-mini-photo {
    width: 150px;
    height: 150px;
    border-radius: 50%;
    margin: 0 auto 15px auto;
    overflow: hidden;
    border: 3px solid #fff;
    box-shadow: 0 4px 10px rgba(0,0,0,0.1);
    flex-shrink: 0; 
}

.rsvp-mini-photo img { 
    width: 100%; 
    height: 100%; 
    object-fit: cover; 
}

.rsvp-name-cn {
    font-size: 28px;
    font-weight: 600;
    margin-bottom: 12px;
    color: #000;
}

.rsvp-invite-text {
    font-size: 16px; 
    color: #444;
    line-height: 1.6;
    text-align: center;
    font-style: italic;
    max-width: 70%;
}

/* RSVP Form Inputs Layout */
.rsvp-form-mock {
    max-width: 600px;
    margin: 0 auto;
}

.rsvp-form-mock .cm-input-group label {
    display: block;
    font-size: 22px;
    font-weight: 700; /* Bold to match UI */
    margin-bottom: 15px;
    text-align: center;
    color: #000;
}

.rsvp-form-mock .cm-input-group input,
.rsvp-form-mock .cm-input-group select {
    width: 100%;
    padding: 16px 20px;
    border: 1px solid #A6C8FF;
    border-radius: 8px;
    background: #F4F9FF;
    text-align: center;
    font-family: 'Inter', sans-serif;
    font-size: 20px;
    box-sizing: border-box;
    transition: all 0.3s ease;
    margin-bottom: 20px;
    appearance: none; /* Removes the default ugly browser arrow */
}

.rsvp-form-mock .cm-input-group input:focus,
.rsvp-form-mock .cm-input-group select:focus {
    outline: none;
    border-color: #2C93FA;
    background-color: #fff;
}

.rsvp-form-mock .cm-row {
    display: flex;
    gap: 20px;
    margin-top: 25px;
}

.rsvp-form-mock .cm-row .cm-input-group { 
    flex: 1; 
}

/* 4. Button Rows - Updated to match UI */
.db-action-row {
    display: flex;
    justify-content: center;
    gap: 120px; /* Increased gap to match the wide spacing in your image */
    margin-top: 40px;
}

.db-btn {
    padding: 12px 35px; /* Adjusted padding for better proportions */
    border-radius: 12px; /* Changed from 50px to 12px for the rounded-rectangle shape */
    font-family: 'Inter', sans-serif;
    font-weight: 700;
    font-size: 22px; /* Increased font size to match the image */
    text-decoration: none;
    cursor: pointer;
    background: #def0ff; /* Very soft light blue background */
    color: #3b8cf6; /* Bright blue text */
    border: 2px solid #c1dcff; /* Added the distinct light blue border from the image */
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.03); /* Extremely soft shadow so it doesn't overpower the border */
    transition: all 0.3s ease;
}

.db-btn:hover { 
    background: #cfe6ff; 
    border-color: #a8cdff; /* Border gets slightly darker on hover */
    box-shadow: 0 6px 15px rgba(59, 140, 246, 0.15);
}

/* ================= ABOUT US PAGE ================= */


.about-container {
    max-width: 1600px;
    margin: 0 auto;
    padding: 30px 5%;
}

.about-main-title {
    text-align: center;
    font-size: 40px;
    font-weight: 800;
    margin-bottom: 50px;
    margin-top: 10px;
        background: var(--gg, linear-gradient(90deg, #3477be 12.87%, #1A237E 100%));
background-clip: text;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}

/* --- TOP SECTION --- */
.about-top-section {
    display: flex;
    align-items: center;
    gap: 50px;
    margin-bottom: 100px;
}

.about-img-col {
    flex: 1;
}

/* The Arched Image */
.arch-img {
    width: 100%;
    max-width: 450px;
    height: 600px;
    object-fit: cover;
    border-radius: 250px 250px 20px 20px; /* Creates the top arch */
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
}

.about-text-col {
    flex: 1.2;
}

.about-subtitle {
    font-family: 'Lora', serif;
  font-weight: 500; /* 500 is the standard weight for 'Medium' */
    font-style: italic;
    font-size: 20px;
    background: var(--gg, linear-gradient(90deg, #3477be 12.87%, #1A237E 100%));
background-clip: text;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
    margin-bottom: 20px;
}

.about-heading {
    font-size: 35px;
    font-weight: 700;
    margin-bottom: 20px;
    background: var(--gg, linear-gradient(90deg, #3477be 12.87%, #1A237E 100%));
background-clip: text;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}

.about-desc {
    font-size: 18px;
    line-height: 2;
    color: #333;
    margin-bottom: 80px;
    text-align: justify;
}

/* Stats Row */
.about-stats {
    display: flex;
    justify-content: space-between;
    text-align: center;
    margin-bottom: 10px;
    
}

.stat-box h3 {
    font-size: 30px;
    font-weight: 700;
    margin-bottom: 15px;
        background: var(--gg, linear-gradient(90deg, #3477be 12.87%, #1A237E 100%));
background-clip: text;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;

}

.stat-box p {
    font-size: 18px;
    font-weight: 600;
    line-height: 1.3;

}

/* Initial hidden state for the fade-up effect */
.stat-box {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

/* Stagger the animations so they pop up one by one */
.stat-box:nth-child(1) { transition-delay: 0.1s; }
.stat-box:nth-child(2) { transition-delay: 0.3s; }
.stat-box:nth-child(3) { transition-delay: 0.5s; }

/* The active class that JavaScript will add when visible */
.stat-box.fade-up-active {
    opacity: 1;
    transform: translateY(0);
}


/* --- MID SECTION (SLIDESHOW) --- */
.about-mid-section {
    background-color: #ffffff; 
    padding: 80px 0; /* Spacing for top and bottom */
    text-align: center;
    margin-bottom: 10px;
    

    /* These 3 lines make the white background stretch full-width (横着一排过去) */
    margin-left: calc(50% - 49.5vw);
    margin-right: calc(50% - 49.5vw);
    
    border-radius: 0; /* Removed rounded corners so it sits flush against the screen edges */
}

.mid-section-title {
    font-size: 35px;
    font-weight: 700;
    margin-bottom: 20px;
            background: var(--gg, linear-gradient(90deg, #3477be 12.87%, #1A237E 100%));
background-clip: text;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
/* Image Slideshow Wrapper - Updated to be full width with no frame */
.about-slideshow-wrapper {
    position: relative;
    width: 100%; /* Changed from 50% to 100% to fill the white bar */
    height: 450px; /* Slightly taller for a better full-screen look, adjust if needed */
    border-radius: 0; /* Removes the rounded corners */
    overflow: hidden;
    background: transparent; /* Removes the colored background */
    margin: 0 auto; 
}


/* 1. Default State: Waiting off-screen to the right */
/* 1. Base Slide State */
.about-slide {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(150%, -50%) scale(0.8); /* Start slightly smaller */
    opacity: 0; 
    
    /* CHANGE: Instead of forcing 100%, we use max values */
    min-width: 350px;  /* Leaves a margin so it doesn't touch the edges */
    min-height: 350px; 
    object-fit: contain; /* Ensures the whole image is visible without cropping */
    
    transition: transform 0.8s ease-in-out, opacity 0.8s ease-in-out;
}

/* 2. Active State: Sitting perfectly in the center */
.about-slide.active {
    transform: translate(-50%, -50%);
    opacity: 1;
    z-index: 2; /* Keeps the active image on top */
}

/* 3. Exit State: Moving off-screen to the left */
.about-slide.slide-out {
    /* Move far out to the left */
    transform: translate(-250%, -50%); 
    opacity: 0; /* Fade out gracefully as it leaves */
    z-index: 1;
}

.about-dots {
    margin-top: 25px;
}

/* Find your existing .dot styling and add .about-dot */
.dot, .about-dot {
    width: 18px;
    height: 18px;
    background-color: #ffffff;
    border: 1px solid #d0d0d0;
    border-radius: 50%;
    cursor: pointer;
    transition: all 0.3s ease;
}

/* Find your existing .dot.active styling and add .about-dot.active */
.dot.active, .about-dot.active {
    background-color: #b8d4f0; 
    border-color: #b8d4f0;
    transform: scale(1.2);
}



/* --- USER NAVBAR PROFILE DROPDOWN --- */

.profile-dropdown-container {
    position: relative;
    display: inline-block;
}

/* The invisible button wrapping the image */
.profile-pic-toggle {
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    outline: none;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* The circular profile picture */
.profile-pic-toggle img {
    width: 45px;
    height: 45px;
    border-radius: 50%;
    object-fit: cover;
    background-color: white; /* Fallback white circle */
    border: 2px solid #fff;
    box-shadow: 0 4px 10px rgba(36, 61, 175, 0.15);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.profile-pic-toggle img:hover {
    transform: scale(1.05);
    box-shadow: 0 6px 15px rgba(70, 101, 255, 0.3);
}

/* The Dropdown Box */
.profile-dropdown-menu {
    display: none; /* Hidden until toggled via JS */
    position: absolute;
    top: 60px; /* Pushes it just below the profile pic */
    
    /* NEW CENTERING TRICK */
    left: 50%;
    transform: translateX(-50%);
    
    /* Liquid Glass Effect for the menu */
    background: linear-gradient(to bottom, rgba(214, 233, 255, 0.65), rgba(240, 247, 255, 0.65)); 
    backdrop-filter: blur(16px); /* The magic background blur */
    -webkit-backdrop-filter: blur(16px); /* Required for Safari support */
    border: 1px solid rgba(255, 255, 255, 0.6);
    
    min-width: 140px;
    border-radius: 15px;
    box-shadow: 0 10px 30px rgba(0, 102, 255, 0.15);
    z-index: 10000;
    overflow: hidden;
    flex-direction: column;

    
    /* Slightly softened shadow so the glass effect feels natural */

}

/* JS adds this class to make it visible */
.profile-dropdown-menu.show-dropdown {
    display: flex;
}

/* Dropdown Links */
.profile-dropdown-menu a {
    color: #000;
    padding: 12px 20px;
    text-decoration: none;
    font-family: 'Inter', sans-serif;
    font-size: 13px;
    font-weight: 600;
    transition: background-color 0.2s, color 0.2s;
}

.profile-dropdown-menu a:hover {
    background-color: rgba(197, 207, 255, 0.262);
    color: #2C93FA;
}

/* The subtle line separating Log Out */
.dropdown-divider {
    height: 1px;
    background-color: rgba(0, 0, 0, 0.08);
    margin: 2px 0;
}

/* Red styling for Log Out */
.profile-dropdown-menu a.logout-text {
    color: #ff4d4f;
}

.profile-dropdown-menu a.logout-text:hover {
    background-color: rgba(255, 77, 79, 0.08);
}



/* Base styling for the red notification badge */
.cart-badge {
    background-color: #ff3b3b;
    color: white;
    font-size: 12px;
    font-weight: bold;
    height: 18px;
    width: 18px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Position for the badge floating on the profile picture */
.profile-badge {
    position: absolute;
    top: -2px;
    right: -2px;
    border: 2px solid #fff; /* White border to separate from profile pic */
}

/* Position for the badge inside the dropdown menu */
.dropdown-cart-link {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
}

/* --- ACTION ICONS (CART + PROFILE) --- */
.action-icons-container {
    display: flex;
    align-items: center;
    gap: 25px; /* Adds nice spacing between the trolley and profile picture */
}

/* Trolley Icon Styling */
.cart-icon-container {
    position: relative;
    color: #000;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.2s ease, color 0.2s ease;
}

.cart-icon-container:hover {
    transform: scale(1.1); /* Gently enlarges the trolley when hovered */
    color: #44a2ff; /* Changes icon to your theme blue */
}

/* Base styling for the red notification badge */
.cart-badge {
    background-color: #ff3b3b;
    color: white;
    font-size: 11px;
    font-weight: bold;
    height: 18px;
    width: 18px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Positioning the badge specifically on the navbar trolley */
.nav-cart-badge {
    position: absolute;
    top: -8px;
    right: -10px;
    border: 2px solid #fff; 
}

/* Note: Your existing .active CSS rule from earlier will automatically work for this navbar too! */



/* --- RSVP Checkbox Styles --- */
.date-checkbox-wrapper {
    display: flex;
    flex-direction: column;
    gap: 12px;
    background: #F4F9FF; /* Matches your other inputs */
    border: 1px solid #A6C8FF;
    border-radius: 8px;
    padding: 16px 20px;
    text-align: left; 
}

/* Override the heavy label styles just for checkboxes */
.rsvp-form-mock .cm-input-group .date-checkbox-label {
    display: flex;
    align-items: center;
    font-size: 14px;
    font-weight: 500;
    margin-bottom: 0;
    cursor: pointer;
}

/* Stop the checkbox from stretching */
.rsvp-form-mock .cm-input-group .date-checkbox-label input[type="checkbox"] {
    width: 18px !important;
    height: 18px !important;
    margin: 0 12px 0 0 !important;
    padding: 0 !important;
    accent-color: #2C93FA; /* Makes the checkmark Eternify blue! */
}


/* --- Custom Multi-Select Dropdown --- */
.multi-select-dropdown {
    position: relative;
    width: 100%;
}

.dropdown-header {
    background: #F4F9FF;
    border: 1px solid #A6C8FF;
    border-radius: 8px;
    padding: 16px 20px;
    font-size: 15px;
    font-family: 'Inter', sans-serif;
    color: #777;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    transition: all 0.3s ease;
}

.dropdown-header:hover {
    border-color: #2C93FA;
}

/* The floating menu with checkboxes */
.dropdown-options {
    display: none; /* Hidden until clicked */
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    background: #ffffff;
    border: 1px solid #A6C8FF;
    border-radius: 8px;
    box-shadow: 0 8px 20px rgba(0,0,0,0.1);
    margin-top: 8px;
    z-index: 100;
    padding: 15px;
    box-sizing: border-box;
}

/* When the JavaScript adds the 'show' class */
.dropdown-options.show {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

/* Make this rule highly specific to override the global label rules! */
.rsvp-form-mock .cm-input-group label.dropdown-checkbox-label {
    display: flex;
    align-items: center;
    font-size: 15px; /* This will finally apply! */
    font-weight: 500; /* Un-bolds it from your default 700 */
    margin-bottom: 0; /* Removes the huge gap between checkboxes */
    text-align: left; /* Stops them from trying to center */
    color: #333;
    cursor: pointer;
}

/* FORCE checkboxes back to normal squares */
.dropdown-options input[type="checkbox"] {
    all: revert !important; /* This strips away your global input rules */
    width: 18px !important;
    height: 18px !important;
    margin-right: 12px !important;
    cursor: pointer;
    accent-color: #2C93FA;
}

/* =========================================================
   RSVP List - Deceased Records Page Styles
   ========================================================= */

.record-list-wrapper {
    min-width: 1000px;
    margin: 40px auto;
    padding: 0 20px;
    font-family: 'Inter', sans-serif;
}

.page-title {
    text-align: center;
    font-size: 42px;
    font-weight: 800;
    margin-bottom: 20px;
background: var(--gg, linear-gradient(90deg, #3477be 12.87%, #1A237E 100%));
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    margin-bottom: 40px;
    text-transform: uppercase;
}

.record-list-card {
    background: #FFFFFF;
    border: 1px solid #A6C8FF;
    border-radius: 20px;
    box-shadow: 0 10px 40px rgba(166, 200, 255, 0.2);
    padding: 40px 50px;
    min-height: 400px; /* Keeps the card nicely sized even if empty */
}

/* Grid Layout for the List */
.list-header, .list-row {
    display: grid;
    grid-template-columns: 2fr 2fr 100px; /* Name, Date, Icon */
    align-items: center;
    padding: 50px 0px; /* Slightly reduced from 50px so rows aren't overly tall */
    gap: 20px; /* A small, healthy gap to prevent columns from touching */
}

.list-header {
    font-size: 24px;
    font-weight: 700;
    color: #000;
    border-bottom: 2px solid #E5EFFF;
    margin-bottom: 10px;
    /* REMOVED the 150px gap that was breaking the layout */
}

.list-row {
    border-bottom: 1px solid #E5EFFF;
    transition: background 0.2s ease;
    /* REMOVED the 250px gap that was breaking the layout */
}

/* Force the text to stay horizontal and not wrap */
.col-name, .col-date {
    white-space: nowrap; 
    overflow: hidden;
    text-overflow: ellipsis; /* Adds '...' if a name is miraculously too long */
}


/* Make the name clickable to go to the guest list */
.col-name a {
    text-decoration: none;
    color: #333;
    font-size: 25px;
    font-weight: 400;
    display: block; /* Makes the whole area clickable */
}

.col-name a:hover {
    color: #2C93FA;
}

.col-date {
    font-size: 20px;
    color: #2e2e2e;
    font-style: italic; /* Matches your UI */
}

/* The Trash Can Icon Button */
.delete-btn {
    background: none;
    border: none;
    cursor: pointer;
    color: #888;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: color 0.3s ease;
}

.delete-btn:hover {
    color: #FF4A4A; /* Turns red on hover */
}

.empty-state {
    text-align: center;
    color: #888;
    padding: 40px 0;
    font-style: italic;
}

   /* =========================================================
   GUEST LIST - PASTEL GRID UI
   ========================================================= */

.grid-layout-wrapper {
    max-width: 1600px; /* Nice and wide */
    margin: 60px auto;
    padding: 0 20px;
    font-family: 'Inter', sans-serif;
}

.page-title {
    text-align: center;
    font-size: 42px;
    font-weight: 800;
    margin-bottom: 50px;
    color: #000;
    text-transform: uppercase;
    letter-spacing: 2px;
}

/* Make it stack gracefully on smaller screens */
@media (max-width: 1400px) {
    .day-card {
        width: calc((100% - 40px) / 3); /* 3 cards per row */
    }
}

@media (max-width: 900px) {
    .day-card {
        width: calc((100% - 20px) / 2); /* 2 cards per row */
    }



}

@media (max-width: 600px) {
    .day-card {
        width: 100%; /* Stacks vertically on phones */
    }
}
/* The Flexbox System - Centers items no matter how many there are! */
.guest-card-grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: center; /* This is the magic line that centers 4, 3, 2, or 1 cards */
    gap: 20px;
}

.day-card {
    /* Set to take up 1/5th of the container, minus the 20px gaps */
    width: calc((100% - 80px) / 5); 
    
    /* THE MAGIC FIX: This entirely prevents the squishing! */
    min-width: 260px; 
    
    background: #FFFFFF;
    border-radius: 20px;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.05); 
    overflow: hidden; 
    display: flex;
    flex-direction: column;
}

/* CSS MAGIC: If there are exactly 5 cards, change the width for all of them! */
.day-card:nth-last-child(n+5),
.day-card:nth-last-child(n+5) ~ .day-card {
    width: calc((100% - 80px) / 5);
}

/* The Colored Top Section */
.day-header {
    padding: 20px 30px;
    text-align: center;
    color: #000;
}

.day-header h2 {
    margin: 0;
    font-size: 28px;
    font-weight: 700;
}

.day-header p {
    margin: 10px 0 0;
    font-size: 16px;
    font-weight: 500;
    opacity: 0.7;
}

/* The Scrollable List Area */
.day-body {
    /* Reduced margin from 35px to 20px so the table inside has room to breathe */
    margin: 20px; 
    padding: 10px;
    max-height: 400px; 
    overflow-y: auto;  
    background: #fff;
}

/* Table styling */
.day-table {
    width: 100%;
    border-collapse: collapse;
}

.day-table th {
    text-align: left;
    padding-bottom: 15px;
    border-bottom: 2px solid #eee;
    font-weight: 600;
    font-size: 18px;
    color: #333;
}

.day-table td {
    padding: 25px 0;
    border-bottom: 1px solid #f9f9f9;
    font-size: 18px;
    color: #666;
    font-style: italic;
}

/* Align Pax column to the right */
.day-table th:last-child, 
.day-table td:last-child {
    text-align: right;
    width: 60px;
}

/* Empty State Styling */
.empty-state-card {
    background: #FFFFFF;
    border-radius: 20px;
    padding: 60px;
    text-align: center;
    box-shadow: 0 10px 40px rgb(255, 255, 255);
    max-width: 600px;
    margin: 0 auto;
}


/* =========================================
   APP PROMO PAGE STYLES (user_app.php)
   ========================================= */

.app-promo-container {
    display: flex;
    justify-content: center;
    align-items: stretch;
    gap: 100px;
    padding: 40px 10px;
    max-width: 1400px;
    margin: 0 auto;
    min-height:800px;
    margin-bottom: 50px;
}

/* The 2 side-by-side cards */
.promo-card {
    flex: 1;
    background-color: #E2EAF4; /* Soft grey-blue to match mockup */
    border-radius: 30px;
    overflow: hidden; 
    position: relative;
    box-shadow: 0 10px 30px rgba(0,0,0,0.05);
    min-height: 500px; 
    display: flex;
}

/* Right side specific wrapper (to position buttons relative to this card) */
.image-card-wrapper {
    position: relative;
}

/* Left side video */
.promo-video {
    width: 100%;
    height: 100%;
    object-fit: cover; 
}

/* Right side image */
.promo-image {
    width: 100%;
    height: 100%;
    object-fit: cover; 
}

/* App Store Buttons Container */
.store-buttons-wrapper {
    position: absolute;
    bottom: 70px;
    right: 60px;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

/* Styling for the buttons */
.store-btn img {
    height: 65px; 
    width: auto;
    border-radius: 8px;
    transition: transform 0.2s ease;
}


/* Make it responsive for mobile phones */
@media (max-width: 1130px) {
    .app-promo-container {
        flex-direction: column;
    }
    .promo-card {
        min-height: 600px;
    }



}


/* =========================================
   PRICE CHECKER PAGE STYLES
   ========================================= */
.price-checker-main {
    width: 100%;
    padding-top: 10px;
    margin: 0;
    overflow: visible;
}

/* --- CAROUSEL WRAPPER & ARROWS --- */
.carousel-wrapper {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    max-width: 1400px;   /* increased from 1200px */
    margin: 0 auto;
    overflow: visible;   /* important */
    padding: 0 80px;     /* give space for arrows and side cards */
    box-sizing: border-box;
}

.arrow-btn {
    background: none;
    border: none;
    font-size: 60px;
    color: #44a2ff;
    cursor: pointer;
    padding: 10px;
    transition: transform 0.3s ease, color 0.3s;
    
    /* FIX: Absolute positioning & higher z-index so they are clickable */
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 100; 
}

.arrow-btn:hover {
    transform: translateY(-50%) scale(1.2);
    color: #1A237E;
}

.left-arrow {
    left: -250px;
}

.right-arrow {
    right: -250px;
}

/* --- OVERVIEW DETAILS --- */
.comp-summary-title {
    margin: 20px 0;
    font-size: 24px;
}



.comp-overview-text {
    text-align: center;
    font-size: 17px;
    line-height: 2;
    color: #555;
}

/* --- SELECT PACKAGE BUTTON --- */
.select-pkg-label {
    display: block;
    margin-top: 25px;
    cursor: pointer;
    text-align: center;
    position: relative;
    z-index: 5;
}

.select-pkg-label input[type="checkbox"] {
    display: none;
}

.select-btn-ui {
    display: inline-block;
    padding: 8px 25px;
    border: 2px solid #44a2ff;
    border-radius: 50px;
    color: #44a2ff;
    font-weight: 700;
    transition: all 0.3s ease;
    font-size: 0;
}

.select-btn-ui::after {
    content: "Select";
    font-size: 15px;
}

.select-pkg-label input[type="checkbox"]:checked + .select-btn-ui {
    background-color: #44a2ff;
    color: white;
    box-shadow: 0 4px 15px rgba(68, 162, 255, 0.4);
}

.select-pkg-label input[type="checkbox"]:checked + .select-btn-ui::after {
    content: "Selected";
}

.select-pkg-label input[type="checkbox"]:checked + .select-btn-ui::after {
    content: "Selected ✓";
    font-size: 15px;
}

/* --- COMPARE ACTION AREA --- */
.comp-action-area {
    text-align: center;
    margin-top: 150px;
    margin-bottom: 20px;
}

.comp-hint-text {
    text-align: center;
    opacity: 0.6;
    font-size: 14px;
    margin-top: 10px;
}








.pc-part {
    width: 100%;
    padding: 60px 20px;
    text-align: center;
}

.pc-container {
    max-width: 1200px;
    margin: 0 auto;
}

/* --- PART 1: Search & Card --- */
.pc-title {
    font-size: 40px;
    font-weight: 800;
    margin-bottom: 20px;
        background: var(--gg, linear-gradient(90deg, #3477be 12.87%, #1A237E 100%));
background-clip: text;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}

.pc-subtitle {
    font-family: 'Lora', serif;
  font-weight: 500; /* 500 is the standard weight for 'Medium' */
  font-style: italic;
    font-size: 20px;
    margin-bottom: 35px;
        background: var(--gg, linear-gradient(90deg, #3477be 12.87%, #1A237E 100%));
background-clip: text;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}

.pc-search-form {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 40px;
    margin-bottom: 40px;
}

.pc-search-input {
    width: 100%;
    max-width: 1000px;
    padding: 20px 20px;
    border: none;
    border-radius: 10px;
    background-color: rgba(255, 255, 255, 0.7);
    font-size: 25px;
    box-shadow: inset 0 2px 5px rgba(255, 254, 254, 0.05);
    text-align: center;

}

.pc-search-btn {
background: linear-gradient(90deg, #99cfff 0%, #66b5ff 100%);    color: white;
    border: none;
    padding: 10px 35px;
    border-radius: 60px;
    font-weight: 600;
    cursor: pointer;
    font-size: 20px;

}

.pc-search-btn:hover {
    background-color: #72a9ee;
}

.pc-result-card {
    background: linear-gradient(to bottom, rgba(255,255,255,0.8), #E8F1FC);
    border: 2px solid #C4DFFD;
    border-radius: 20px;
    padding: 30px;
    max-width: 1000px;
    margin: 0 auto;
    box-shadow: 0 10px 25px #72aaee62;
}

.pc-card-image-placeholder {
    width: 100%;
    height: 550px;
    background-color: white;
    border-radius: 15px;
    margin-bottom: 30px;
}

.pc-card-details h2 {
    font-size: 40px;
    margin-bottom: 25px;
}

.pc-divider {
    border: 0;
    height: 2px;
    background-color: #A6C8FF;
    margin: 25px 0;
}

.pc-card-details h3 {
    margin-bottom: 20px;
}

.pc-item-list {
    list-style: none;
    padding: 10px;
    text-align: center;
    font-size:17px;
    color: #333;
}

.pc-item-list li {
    margin-bottom: 20px;
}



/* ========================================= */
/* PRICE CHECKER RESULT CARD           */
/* ========================================= */

.pc-error-msg {
    color: #ff4d4d;
    margin-top: 20px;
    font-weight: bold;
    text-align: center;
}

.pc-result-card {
    margin-top: 40px;
    display: flex;
    flex-direction: column;
    align-items: center;
    border-radius: 22px;
    padding: 40px;
    background-color: #ffffff; /* Assuming a white card background */
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05); /* Optional: adds a nice soft shadow */
}

/* Target specifically the image inside the result card so it doesn't affect the promo packages */
.pc-result-card .pc-pkg-img {
    width: 500px; /* Increased from 1200px */
    max-width: 100%; /* Added this as a safety net so it doesn't break your screen on smaller laptops */
    height: auto;
    display: block;
    margin: 0 auto 30px auto;
    border-radius: 15px; 
}

.pc-card-details {
    width: 100%;
    text-align: center;
}

.pc-package-title {
    font-size: 30px;
    margin-bottom: 5px;
}

.pc-divider-center {
    margin: 15px auto;
    width: 60%;
    border: none;
    border-top: 1px solid #e0e0e0;
}

.pc-price-text {
    color: #4EA6FF;
    font-size: 30px;
    margin-bottom: 30px;
}

.pc-list-title {
    margin-bottom: 15px;
    font-weight: 700;
    font-size: 25px;
}

.pc-gift-title {
    margin-top: 30px;
    margin-bottom: 15px;
    font-weight: 700;
    color: #ff9f43;
    font-size: 25px;
}

.pc-item-list {
    list-style-type: none;
    
    line-height: 2;
}



.pc-promo-sub {
    font-style: italic;
    color: #666;
    margin-bottom: 20px;
        font-size: 20px;

}

.pc-promo-title {
    font-size: 40px;
    font-weight: 700;
    margin-bottom: 70px;
}

.pc-packages-grid {
    display: flex;
    justify-content: center;
    gap: 40px; /* Reduced from 100px so they fit better on screen */
    margin-bottom: 50px;
    flex-wrap: nowrap; /* MAGIC FIX: Forces them to stay in ONE row! */
}



.pc-package-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 35px;
    
}

/* Replace .pc-pkg-box with this */
.pc-pkg-img {
    width: 110%; /* Allows image to shrink slightly if screen is small */
    max-width: 600px; /* Keeps your original maximum size */
    height: 300px;
    border-radius: 20px;
    object-fit: cover; /* Prevents the images from stretching */
}

.pc-package-item p {
    font-weight: 600;
    font-size: 25px;
        margin-bottom: 40px;


}

.pc-compare-btn {
    display: inline-block;
    background: linear-gradient(0deg, rgba(255, 255, 255, 0.10) 0%, rgba(255, 255, 255, 0.10) 100%), linear-gradient(270deg, #4EA6FF 0%, #C9E4FF 105.5%);
    text-decoration: none;
    color: white;
    padding: 12px 40px;
    border-radius: 25px;
    font-weight: 600;
    font-size: 20px;
    transition: background-color 0.2s;
    margin-bottom: 40px;


}

/* --- PART 3: Video & App Stores --- */
.pc-design-title {
    font-size: 40px;
    font-weight: 700;
    margin-bottom: 20px;
}

.pc-design-sub {
    font-style: italic;
        font-size: 20px;
    color: #666;
    margin-bottom: 50px;
}

.pc-video-wrapper {
    width: 100%;
    background-color: #E0E0E0; /* Placeholder grey before video loads */
    border-radius: 25px;
    overflow: visible;
    margin-bottom: 50px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.1);
}

.pc-large-video {
    width: 100%;
    display: block;
    aspect-ratio: 16/9; /* Keeps the video rectangle perfectly shaped */
    object-fit: cover;
}

.pc-store-badges {
    display: flex;
    justify-content: center;
    gap: 100px;
    flex-wrap: wrap;
}

.pc-store-badges img {
    height: 70px;
    width: auto;
    transition: transform 0.2s;
}

.pc-store-badges a:hover img {
    transform: scale(1.05);
}





/* =========================================
   SHOP CART PAGE STYLES
   ========================================= */

.shop-main {
    padding: 60px 20px;
    min-height: 80vh;
}

.shop-container {
    max-width: 1200px;
    margin: 0 auto;
}

/* Titles */
.shop-page-title {
    text-align: center;
    font-size: 40px; /* User requested */
    font-weight: 800;
    background: var(--gg, linear-gradient(90deg, #3477be 12.87%, #1A237E 100%));
background-clip: text;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
    margin-bottom: 50px;
    text-transform: uppercase;
}

.shop-category-title {
    font-family: 'Lora', serif;
  font-weight: 500; /* 500 is the standard weight for 'Medium' */
  font-style: italic;
    font-size: 30px;
    background: var(--gg, linear-gradient(90deg, #3477be 12.87%, #1A237E 100%));
background-clip: text;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
    margin-bottom: 30px;
        text-align: center;

}

/* Filter Bar updated for multiple buttons */
.shop-filter-bar {
    position: relative; /* CRITICAL FIX: This keeps the indicator inside the bar */
    display: flex;
    gap: 40px;
    background: rgba(255, 255, 255, 0.5);
    border: 1px solid #cce0ff;
    padding: 10px;
    border-radius: 70px;
    margin-bottom: 100px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.03);
    justify-content: center;
    /* Prevent wrapping so the sliding math works perfectly */
    flex-wrap: nowrap; 
    overflow-x: auto; 
    white-space: nowrap;
}

/* The Sliding Gradient Pill */
.filter-indicator {
    position: absolute;
    top: 10px; /* Matches the padding of the filter bar */
    left: 0;
    height: calc(100% - 20px); /* Height minus top/bottom padding */
    z-index: 1; /* Sits behind the text */
    pointer-events: none; /* So it doesn't block your clicks */
    
    /* YOUR custom styling! */
    background: linear-gradient(0deg, rgba(255, 255, 255, 0.10) 0%, rgba(255, 255, 255, 0.10) 100%), linear-gradient(270deg, #4EA6FF 0%, #C9E4FF 105.5%);
    border-radius: 100px;
    box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.20), 0 4px 4px 0 rgba(255, 255, 255, 0.10) inset;
    
    /* The magic smooth slide transition */
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1), width 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.filter-btn {
    position: relative;
    z-index: 2; /* Text sits on top of the sliding pill */
    background: transparent;
    border: none;
    padding: 10px 20px;
    font-size: 16px;
    color: #666;
    cursor: pointer;
    border-radius: 100px; /* Ensure hover matches pill shape */
    font-weight: 500;
    transition: color 0.3s ease;
}

.filter-btn:hover {
    background: rgba(102, 181, 255, 0.1);
    color: #000;
}

.filter-btn.active {
    /* REMOVED the gradient from here because the indicator does the job */
    background: transparent;
    color: white;
    font-weight: 900;
    box-shadow: none; /* Removed so it doesn't double-shadow with the indicator */
}

/* Grid Layout */
.shop-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr); /* 4 items per row on desktop */
    gap: 100px 100px;
}

/* Product Card */
.shop-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.shop-img-wrapper {
    height: 180px; /* Fix height to keep grid perfectly aligned */
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 15px;
}

.shop-img-wrapper img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

/* Font Sizes requested by user */
.shop-item-name {
    font-size: 20px; 
    font-weight: 500;
    color: #333;
    line-height: 1.4;
    margin-bottom: 20px;
    height: 56px; /* Keep height consistent for 2 lines of text */
}

.shop-item-price {
    font-size: 25px; 
    font-weight: 700;
    color: #000;
    margin-bottom: 20px;
}

/* Add to Cart Button (User's exact CSS) */
.shop-add-btn {
    background: linear-gradient(90deg, #99cfff 0%, #66b5ff 100%);
    color: white;
    border: none;
    padding: 10px 35px;
    border-radius: 60px;
    font-weight: 600;
    cursor: pointer;
    font-size: 20px;
    transition: opacity 0.3s ease;
}

.shop-add-btn:hover {
    opacity: 0.8;
}





/* --- QUANTITY SELECTOR --- */
.quantity-wrapper {
    display: flex;
    align-items: center;
    background: #f8fbff;
    border-radius: 50px;
    padding: 5px 10px;
    margin-bottom: 20px;
    border: 1px solid #cce0ff;
}

.qty-btn {
    background: transparent;
    border: none;
    font-size: 22px;
    color: #44a2ff;
    cursor: pointer;
    width: 35px;
    height: 35px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    transition: background 0.2s;
}

.qty-btn:hover {
    background: #e6f2ff;
}

.qty-input {
    width: 40px;
    text-align: right;
    border: none;
    background: transparent;
    font-size: 16px;
    font-weight: 700;
    color: #333;
    outline: none;
}

/* --- TOAST NOTIFICATIONS --- */
.toast-container {
    position: fixed;
    bottom: 30px;
    right: 30px;
    z-index: 10000;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.toast {
    background: #ffffff;
    border-left: 6px solid #44a2ff;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.15);
    padding: 16px 24px;
    border-radius: 8px;
    font-family: 'Inter', sans-serif;
    color: #333;
    font-size: 15px;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 10px;
    transform: translateX(120%); /* Starts off-screen to the right */
    transition: transform 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55); /* Bouncy slide-in effect */
}

.toast.show {
    transform: translateX(0); /* Slides into view */
}





/* Responsive for smaller screens */
@media (max-width: 1024px) {
    .shop-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 768px) {
    .shop-grid { grid-template-columns: repeat(2, 1fr); }
    .shop-page-title { font-size: 30px; }
}
@media (max-width: 480px) {
    .shop-grid { grid-template-columns: 1fr; }
}



/* =========================================
   CHECKOUT / CART PAGE STYLES (Scaled +10px)
========================================= */



.checkout-main {
    max-width: 1900px; 
    margin: 50px auto; /* 40px -> 50px */
    padding: 0 30px;   /* 20px -> 30px */
    flex-grow: 1;
}

.checkout-header-title {
    font-size: 40px;       /* 32px -> 42px */
    font-weight: 800;
    margin-bottom: 40px;   /* 30px -> 40px */
        background: var(--gg, linear-gradient(90deg, #3477be 12.87%, #1A237E 100%));
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    text-align: center; 
}

.checkout-layout {
    display: flex;
    gap: 40px;             /* 30px -> 40px */
    align-items: flex-start;
}

/* Left & Right Container Panels */
.checkout-left-col,
.checkout-right-col {
    background: #ffffff;
    border-radius: 22px;   /* 12px -> 22px */
    padding: 40px;         /* 30px -> 40px */
    box-shadow: 0 4px 15px rgba(0,0,0,0.03);
}

.checkout-left-col {
    flex: 7; 
}

.checkout-right-col {
    flex: 3; 
    position: sticky;
    top: 110px;            /* 100px -> 110px */
}

.box-title {
    font-size: 25px;       /* 22px -> 32px */
    font-weight: 700;
    margin-bottom: 35px;   /* 25px -> 35px */
    border-bottom: 1px solid #eee;
    padding-bottom: 25px;  /* 15px -> 25px */
}

/* Cart Item Rows */
.cart-items-container {
    margin-bottom: 40px;   /* 30px -> 40px */
}

.cart-item-row {
    display: flex;
    align-items: center;
    padding: 30px 0;       /* 20px -> 30px */
    border-bottom: 1px solid #eee;
}

.cart-item-img {
    width: 90px;           /* 80px -> 90px */
    height: 90px;          /* 80px -> 90px */
    flex-shrink: 0;
    background: #f9f9f9;
    border-radius: 18px;   /* 8px -> 18px */
    display: flex;
    justify-content: center;
    align-items: center;
    margin-right: 30px;    /* 20px -> 30px */
    padding: 20px;         /* 10px -> 20px */
}

.cart-item-img img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

.cart-item-info {
    flex-grow: 1;
}

.cart-item-name {
    font-weight: 600;
    font-size: 20px;       /* 16px -> 26px */
    line-height: 1.4;
    margin-bottom: 18px;   /* 8px -> 18px */
}

.cart-item-qty {
    font-size: 20px;       /* 14px -> 24px */
    color: #666;
}

.cart-item-price-col {
    text-align: right;
    min-width: 110px;      /* 100px -> 110px */
}

.cart-item-price {
    font-weight: 500;
    font-size: 20px;       /* 18px -> 28px */
    margin-bottom: 20px;   /* 10px -> 20px */
}

.cart-remove-btn {
    background: none;
    border: none;
    color: #ff4d4f;
    font-size: 18px;       /* 13px -> 23px */
    font-weight: 600;
    cursor: pointer;
    text-decoration: underline;
}

.cart-remove-btn:hover {
    color: #cc0000;
}

/* Totals Section */
.cart-totals-section {
    padding-top: 30px;     /* 20px -> 30px */
}

.total-row {
    display: flex;
    justify-content: space-between;
    margin-bottom: 25px;   /* 15px -> 25px */
    font-size: 20px;       /* 16px -> 26px */
    color: #444;
}

.grand-total-row {
    font-size: 25px;       /* 22px -> 32px */
    font-weight: 800;
    color: #000;
    border-top: 2px solid #eee;
    padding-top: 25px;     /* 15px -> 25px */
    margin-top: 15px;      /* 5px -> 15px */
}

/* Payment Options & Pay Now Button */
/* --- PAYMENT OPTIONS --- */
.payment-options {
    display: flex;
    flex-direction: column;
    gap: 15px;
    margin-top: 20px;
}

/* The clickable payment container */
.payment-method {
    display: flex;
    align-items: center;
    gap: 35px; /* Space between radio, logo, and text */
    padding: 15px 20px;
    border: 2px solid #eef2f6;
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.3s ease;
    background-color: #fff;
}

/* Hover effect */
.payment-method:hover {
    border-color: #a3cfff;
    box-shadow: 0 4px 12px rgba(0,0,0,0.05);
}

/* Magic Trick: Highlight box when the radio button is selected */
.payment-method:has(input[type="radio"]:checked) {
    border-color: #6ba9fc;
    background-color: #f4f9ff;
}

/* Make the radio button match the theme */
.payment-method input[type="radio"] {
    width: 20px;
    height: 20px;
    cursor: pointer;
    accent-color: #6ba9fc;
}

/* Size the logos nicely */
.pay-logo {
    height: 60px; /* Set a fixed height so all logos look consistent */
    width: auto;
    object-fit: contain; /* Prevents stretching */
}

/* The text label */
.pay-text {
    font-size: 20px;
    font-weight: 500;
    color: #333;
    font-family: 'Inter', sans-serif;
}

.pay-now-btn {
    display: block; /* Forces the button to respect the auto margins */
    width: 70%;
    margin: 30px auto 0 auto; /* Top: 30px, Left/Right: auto (centers it), Bottom: 0 */
    
    background: linear-gradient(0deg, rgba(255, 255, 255, 0.10) 0%, rgba(255, 255, 255, 0.10) 100%), linear-gradient(270deg, #4EA6FF 0%, #C9E4FF 105.5%);
    color: #ffffff;
    border: none;
    padding: 10px;        
    font-size: 20px;      
    font-weight: 700;
    border-radius: 40px;  
    cursor: pointer;
    transition: transform 0.2s, box-shadow 0.2s;
}

/* --- MODAL STYLES --- */
.modal-overlay {
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 10000;
    backdrop-filter: blur(4px);
}

.modal-box {
    background: #fff;
    padding: 30px;
    border-radius: 16px;
    box-shadow: 0 10px 40px rgba(0,0,0,0.2);
    width: 100%;
    max-width: 400px;
    font-family: 'Inter', sans-serif;
}

/* =========================================
   USER PROFILE PAGE STYLES
========================================= */

.profile-main {
    min-width: 1000px; /* Keep it focused and centered */
    margin: 60px auto; 
    padding: 0 30px;
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.profile-header-title {
    font-size: 42px;
    font-weight: 800;
    margin-bottom: 70px;
        background: var(--gg, linear-gradient(90deg, #3477be 12.87%, #1A237E 100%));
background-clip: text;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
    text-align: center; 
}

/* The white card container */
.profile-card {
    background: white;
    width: 100%;
    border-radius: 22px;
    padding: 50px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.04);
    display: flex;
    flex-direction: column;
    align-items: center;
}

/* Profile Picture Box */
.profile-img-container {
    width: 400px;
    height: 400px;
    border-radius: 50%; /* Makes it a perfect circle */
    border: 4px solid #f0f4f8;
    overflow: hidden; /* Ensures the image stays inside the circle */
    margin-top: 30px;
    margin-bottom: 70px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.05);
}

.profile-pic {
    width: 100%;
    height: 100%;
    object-fit: cover; /* Keeps image proportions correct without stretching */
}

/* Information Rows */
.profile-info-section {
    width: 100%;
    margin-bottom: 40px;
}

.profile-info-row {
    display: flex;
    flex-direction: column;
    margin-bottom: 25px;
    padding-bottom: 15px;
    border-bottom: 1px solid #f0f0f0;
}

.profile-info-row:last-child {
    border-bottom: none;
    margin-bottom: 0;
    padding-bottom: 0;
}

.profile-label {
    font-size: 18px;
    color: #888;
    font-weight: 500;
    margin-bottom: 8px;
}

.profile-value {
    font-size: 24px;
    color: #222;
    font-weight: 600;
}

/* Edit Profile Button */
.edit-profile-btn {
    display: inline-block;
    width: 100%;
    max-width: 180px;
    background: linear-gradient(0deg, rgba(255, 255, 255, 0.10) 0%, rgba(255, 255, 255, 0.10) 100%), linear-gradient(270deg, #4EA6FF 0%, #C9E4FF 105.5%);
    color: #ffffff;
    text-align: center;
    text-decoration: none;
    padding: 12px;
    font-size: 20px;
    font-weight: 600;
    border-radius: 40px;
    transition: transform 0.2s, box-shadow 0.2s;
}

/* =========================================
   EDIT PROFILE FORM STYLES (Adjusted)
========================================= */

/* Ensure whole card is centered on page */
.profile-main {
    max-width: 800px; 
    margin: 60px auto; 
    padding: 0 30px;
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    align-items: center; /* Centers the card and its content horizontally on the page */
}

/* Updated profile card to use centering flex box, 
   makes everything inside center aligned by default */
.profile-card {
    background: #ffffff;
    width: 100%;
    border-radius: 22px;
    padding: 50px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.04);
    display: flex;
    flex-direction: column;
    align-items: center; /* Centers everything inside the card vertically and horizontally */
}

/* Container already centered by flex, can optionally re-add border or overflow */
.profile-img-container {
    width: 360px;
    height: 360px;
    border-radius: 50%;
    border: 4px solid #f0f4f8;
    overflow: hidden;
    /* The "auto" on the left and right is the magic trick to center it! */
    margin: 0 auto 40px auto; 
    box-shadow: 0 4px 10px rgba(0,0,0,0.05);
    
    /* This ensures the actual image tag inside stays perfectly centered too */
    display: flex;
    justify-content: center;
    align-items: center;
}

.profile-pic {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Unified styling for form input rows within edit profile */
.profile-input-row {
    width: 100%;
    max-width: 600px; /* Keeps input fields from getting too wide */
    margin-bottom: 20px; /* Unified margin */
    text-align: left; /* Keep text left aligned inside the row */
    align-self: center; /* Centers the whole row within the card flex container */
}

.profile-input-row label {
    display: block;
    font-size: 18px;
    color: #888;
    font-weight: 500;
    margin-bottom: 8px;
}

.profile-input {
    width: 100%;
    padding: 18px 20px; /* Slightly reduced padding: 20px -> 18px */
    font-size: 20px;       /* Reduced font size: 22px -> 20px */
    color: #222;
    background-color: #f9fbfd;
    border: 2px solid #e1e8f0;
    border-radius: 12px;
    transition: border-color 0.2s, background-color 0.2s;
}

.profile-input:focus {
    outline: none;
    border-color: #66b2ff;
    background-color: #fff;
}

/* Container for all text information rows, now uses grid for better layout and alignment */
.profile-info-section {
    width: 100%;
    margin-bottom: 40px;
    display: grid;
    grid-template-columns: repeat(1, 1fr); /* Unified column layout */
    gap: 20px;
}

/* Individual info row styling inside the grid section */
.profile-info-grid-row {
    display: flex;
    flex-direction: column;
    padding-bottom: 10px; /* Unified padding */
    border-bottom: 1px solid #f0f0f0;
}

/* Remove bottom border on the very last item in the information list */
.profile-info-grid-row:last-child {
    border-bottom: none;
    margin-bottom: 0;
    padding-bottom: 0;
}

/* Unified label styling for the view page and grid view rows */
.profile-view-label {
    font-size: 18px;
    color: #888;
    font-weight: 500;
    margin-bottom: 8px;
}

/* Unified data value styling for the view page and grid view rows */
.profile-view-value {
    font-size: 24px;
    color: #222;
    font-weight: 600;
}

/* Specific styling for Edit Profile section header, centers text */
.profile-section-title {
    width: 100%;
    max-width: 600px;
    text-align: center;
    font-size: 28px;
    font-weight: 700;
    margin-top: 30px;
    margin-bottom: 20px;
    align-self: center;
}

/* Password instruction text within edit profile */
.profile-instruction {
    width: 100%;
    max-width: 600px;
    text-align: center;
    color: #666;
    margin-bottom: 30px;
    font-size: 16px;
    align-self: center;
}

/* --- ADJUSTED: "Change photo" Button Styling --- */
.upload-btn {
    display: inline-block;
    background: linear-gradient(0deg, rgba(255, 255, 255, 0.10) 0%, rgba(255, 255, 255, 0.10) 100%), linear-gradient(270deg, #4EA6FF 0%, #C9E4FF 105.5%);
    color: #ffffff;
    padding: 12px 30px;     /* Reduced padding from 12px 25px -> 10px 18px */
    border-radius: 40px;
    font-size: 18px;       /* Reduced font size: 16px -> 15px */
    font-weight: 600;
    cursor: pointer;
    border: 1px solid #cce3ff;
    margin-top: 10px; /* Space from picture */
    margin-bottom: 30px; /* Unified bottom spacing */
    width: fit-content;    /* Forces width to fit the text exactly */
    align-self: center;     /* Centers the button within its centered flex container */
    transition: background 0.2s;
}



/* --- ADJUSTED: Bottom Buttons Sizing --- */
/* Save & Cancel Buttons container (already present) */
.profile-button-group {
    display: flex;
    gap: 20px;
    justify-content: center;
    width: 100%;
}

.save-profile-btn {
    flex: 1;
    max-width: 200px;       /* Reduced max-width: 300px -> 250px */
    background: linear-gradient(0deg, rgba(255, 255, 255, 0.10) 0%, rgba(255, 255, 255, 0.10) 100%), linear-gradient(270deg, #4EA6FF 0%, #C9E4FF 105.5%);
    color: #ffffff;
    border: none;
    padding: 15px 10px;     /* Reduced padding from 12px 25px -> 10px 18px */
    font-size: 18px;       /* Reduced font size from 24px -> 18px */
    font-weight: 700;
    border-radius: 25px;   /* Reduced border-radius from 40px -> 25px */
    cursor: pointer;
    align-self: center;     /* Centers the whole row within the centered flex container */
    transition: transform 0.2s, box-shadow 0.2s;
}


.cancel-profile-btn {
    flex: 1;
    max-width: 150px;       /* Reduced max-width: 200px -> 150px */
    background-color: transparent;
    color: #333;
    border: 1px solid #6ba9fc;
    text-align: center;
    text-decoration: none;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 10px 18px;     /* Reduced padding from 12px 25px -> 10px 18px */
    font-size: 18px;       /* Reduced font size from 24px -> 18px */
    font-weight: 700;
    border-radius: 25px;   /* Reduced border-radius from 40px -> 25px */
    transition: background 0.2s;
}


/* =========================================
   3D CAROUSEL CSS FOR PACKAGES 
   ========================================= */
.comparison-page {
    text-align: center;
    padding: 60px 0; /* 减少侧面填充，让卡片可以扩展 */
    max-width: 1400px; /* 拓宽以适应 3D 布局 */
    margin: 0 auto;
    overflow: visible; /* 防止卡片滑动时出现水平滚动条 */
}

.comp-main-title {
    font-size: 40px;
    font-weight: 800;
    margin-bottom: 50px;
        background: var(--gg, linear-gradient(90deg, #3477be 12.87%, #1A237E 100%));
background-clip: text;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}

/* 3D 容器设置 */
.carousel-container {
    position: relative;
    width:1920px;
    /* 1. 修复：增加高度以防止下部被切断。 根据您的内容调整此值。 */
    height: 620px; /* 原为 1300px，我将其增加了 500px */
    display: flex;
    justify-content: center;
    perspective: 1200px; /* 创建 3D 深度空间 */
}

/* 基础卡片样式 */
.comp-card {
    position: absolute;
    width: 450px; /* 包装卡片的固定宽度 */
    background-color: transparent;
    display: flex;
    flex-direction: column;
    align-items: center;
    transition: all 0.6s cubic-bezier(0.25, 0.8, 0.25, 1); /* 超平滑的 Apple 风格滑动过渡 */
    cursor: pointer;
}

/* 状态 1：中间卡片（弹出，清晰） */
.card-center {
    transform: translateX(0) translateZ(0) scale(1);
    filter: blur(0);
    opacity: 1;
    z-index: 10;
}

/* 2. 修复：增加两侧卡片的间距（移动得更远） */

/* 状态 2：左侧卡片（后退，模糊） */
.card-left {
    /* 修复：增加 translateX 值以向左移动得更远（增加 gap） */
    transform: translateX(-130%) translateZ(0px) scale(100%); /* 原为 -80%，增加了 30% */
    filter: blur(6px);
    opacity: 0.6;
    z-index: 5;
}

/* 状态 3：右侧卡片（后退，模糊） */
.card-right {
    /* 修复：增加 translateX 值以向右移动得更远（增加 gap） */
    transform: translateX(130%) translateZ(0px) scale(100%); /* 原为 80%，增加了 30% */
    filter: blur(6px);
    opacity: 0.6;
    z-index: 5;
}

/* 禁用点击侧面卡片内部以防止意外高亮显示 */
.card-left *, .card-right * {
    pointer-events: none; 
}
.card-center * {
    pointer-events: auto;
}

/* 4. 修复：强制照片放大，并使用高Specificity和具体的 max-width 强制执行 */
/* 我们不使用 % 宽度，而是使用固定数值，以确保 specificity 强制生效 */
/* 使用 .carousel-container .comp-card 的层级来确保权重高于任何旧规则 */
.carousel-container .comp-card .comp-img {
    width: 100%; /* 填满父级卡片 */
    max-width: 280px; /* 强制放大到 580px，这比 360px 和 420px 都大得多 */
    border-radius: 15px;
    display: block;
    object-fit: cover; /* 确保图片缩放时不会变形，填充整个区域 */
}


/* 您之前的元素（适用于适应新卡片内部） */
.comp-img {
    width: 100%;
    /* 将 max-width 从 320px 增大，例如改为 420px */
    max-width: 420px; /* 增加最大宽度以使照片看起来更大 */
    border-radius: 15px;
    display: block;
}

.comp-full-divider {
    border: none;
    height: 2px;
    background-color: #a3cfff;
    margin: 0px 0;
    width: 100%;
}

.comp-pill {
    border-radius: 25px;
    padding: 00px;
    margin: 0px 0;
    width: 100%;
    font-weight: 730;
    font-size: 12px;
    color: #000;
}



.comp-grey-box {
    background-color: #ffffff;
    border-radius: 50px;
    padding: 40px 30px;
    width: 100%;
}

.comp-list {
    list-style-type: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 40px; 
    text-align: center;
}

.comp-list li {
    font-size: 20px;
    font-weight: 400;
    color: #222;
    line-height: 1.4;
}

.comp-zh {
    font-weight: 600;
    color: #555;
    font-size: 16px;
}

.comp-gift-header {
    margin-top: 10px;
    color: #ff9f43;
    font-size: 24px;
    font-weight: 800; 
}

/* 比较按钮 */
.comp-cart-btn {
    background: linear-gradient(0deg, rgba(255, 255, 255, 0.10) 0%, rgba(255, 255, 255, 0.10) 100%), linear-gradient(270deg, #4EA6FF 0%, #C9E4FF 105.5%);
    color: white;
    border: none;
    padding: 18px 60px; /* 使按钮大一点 */
    border-radius: 30px;
    font-size: 22px;
    font-weight: 700;
    cursor: pointer;
    box-shadow: 0 4px 15px rgba(115, 191, 255, 0.4);
    transition: background-color 0.3s, transform 0.2s;
}




/* =========================================
   MODAL CSS (SCALED UP)
   ========================================= */
.modal-overlay {
    display: none; 
    position: fixed;
    z-index: 9999;
    left: 0; top: 0;
    width: 100%; height: 100%;
    background: rgba(0, 0, 0, 0.3);
    backdrop-filter: blur(8px);
    justify-content: center;
    align-items: center;
}

.modal-box {
    background: #fff;
    padding: 30px 40px; 
    border-radius: 30px;
    text-align: center;
    width: 100%;
    /* 1. 修改这里：将模态框调宽，以容纳更大的卡片 */
    max-width: 750px; /* 原为 600px */
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.15);
}

.modal-box h3 {
    font-weight: 800;
    margin-bottom: 20px;
    color: #111;
}

.modal-box p {
    font-size: 18px; 
    color: #444;
    margin-bottom: 20px;
    line-height: 1.5;
}

/* Custom Checkbox Container for the Modal (WITH IMAGES) */
.modal-checkbox-group {
    display: flex;
    justify-content: center;
    gap: 25px; /* 稍微增加卡片之间的间距 */
    margin-bottom: 40px;
}

/* The clickable card layout */
.modal-package-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 15px;
    cursor: pointer;
    padding: 20px; /* 稍微增加内边距 */
    border: 2px solid #eef2f6; 
    border-radius: 20px;
    transition: all 0.3s ease;
    /* 2. 修改这里：增加卡片宽度 */
    width: 210px; /* 原为 160px */
}



/* Make the image fit nicely inside the card */
.modal-package-card img {
    width: 100%;
    /* 3. 修改这里：让卡片内的图片也变大 */
    max-width: 170px; /* 原为 120px */
    border-radius: 10px;
    object-fit: cover;
}

/* The text label under the image */
.modal-package-card span {
    font-size: 20px; /* 字体稍微调大一点匹配大卡片 */
    font-weight: 700;
    color: #333;
}

/* The actual checkbox */
.modal-package-card input[type="checkbox"] {
    width: 24px; /* 选框也稍微调大一点 */
    height: 24px;
    cursor: pointer;
    accent-color: #6ba9fc; 
}

/* MAGIC TRICK: Highlight the whole card when the checkbox is checked! */
.modal-package-card:has(input[type="checkbox"]:checked) {
    border-color: #6ba9fc;
    background-color: #f4f9ff;
}

/* Button Layout */
.modal-actions {
    display: flex;
    gap: 20px;
    justify-content: center;
}

/* 4. 修改这里：确保基础按钮没有自带的浏览器黑色边框 */
.modal-btn {
    padding: 15px 40px; 
    border-radius: 50px;
    text-decoration: none;
    font-family: 'Inter', sans-serif;
    font-weight: 700;
    font-size: 18px;
    cursor: pointer;
    transition: all 0.3s ease;
    border: none; /* 移除默认边框 */
    outline: none; /* 移除点击时的黑框轮廓 */
}

.signin-btn {
    background-color: transparent;
    color: #333;
    border: 2px solid #6ba9fc; /* Cancel 按钮保留蓝色边框 */
}

/* 5. 修改这里：彻底清理 Proceed 按钮的边框 */
.signup-btn {
    background: linear-gradient(90deg, #d2e6ff 0%, #6ba9fc 100%);
    color: white;
    border: none !important; /* 强制移除任何黑边 */
    outline: none !important; /* 强制移除黑边 */
    box-shadow: 0 4px 12px rgba(107, 169, 252, 0.3); 
}



/* ========================================= */
/* PACKAGE COMPARISON PAGE                   */
/* ========================================= */






.comparison-page {
    text-align: center;
    padding: 60px 20px;
    max-width: 1200px;
    margin: 0 auto;
}

.comp-main-title {
    font-size: 40px;
    font-weight: 800;
    margin-bottom: 50px;
}

.comp-container {
    display: flex;
    flex-direction: column; /* <-- CHANGE THIS: from column to row */
    align-items: stretch; /* Now this will stretch their heights equally! */
    gap: 10px; /* Add this to create space between the 3 boxes */
}
/* 3-Column Grid for each row */
.comp-row {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 120px;
}

.comp-item {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.comp-img {
    width: 150%;
    max-width: 360px;
    border-radius: 15px;
    display: block;
}

.comp-full-divider {
    border: none;
    height: 2px;
    background-color: #a3cfff; /* Matches your light blue mockup line */
    margin: 30px 0;
    width: 100%;
}

.comp-pill {
    border-radius: 25px;
    padding: 5px 5px;
    margin: 5px 0;
    width: 100%;
    max-width: 400px;
    font-weight: 730;
    font-size: 28px;
    color: #000000;
}

.price {
    border-radius: 25px;
    padding: 5px 5px;
    margin: 5px 0;
    width: 100%;
    max-width: 250px;
    font-weight: 400;
    font-size: 20px;
    color: #000000;
}

.comp-summary-title {
    font-size: 30px;
    font-weight: 800;
    margin: 20px 0 20px 0;
}

/* The tall white/grey boxes */
/* The tall white/grey boxes */
.comp-grey-box {
    background-color: #ffffff;
    border-radius: 30px;
    padding: 20px 20px;
    width: 100%;
    min-height: 150px;
    height: 100%; /* ADD THIS: Tells the box to stretch to the parent's height */
    box-sizing: border-box; /* ADD THIS: Ensures padding doesn't break the height */
    text-align: center;
}

.comp-list {
    list-style-type: none;
    padding: 20px;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 30px !important; /* This controls the exact gap between every single item */
}

.comp-list li {
    /* Notice we removed margin-bottom here, the 'gap' above handles it now! */
    font-size: 17px;
    font-weight: 400;
    color: #222;
    line-height: 1.4;
}

.comp-zh {
    font-weight: 600;
    color: #555;
    font-size: 18px;
}

.comp-gift-header {
    margin-top: 0px !important;
    color: #ff9f43 !important;
    font-size: 20px !important;
    font-weight: 800 !important; /* Added this to make the text bolder */
}

/* Custom Checkmark Radio Buttons */
.comp-form {
    margin-top: 10px;
}

.comp-selectors {
    margin-bottom: 30px;
}

.comp-selectors input[type="radio"] {
    display: none; /* Hide default radio */
}

.comp-radio-label {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    width: 80px;
    height: 38px;
    background-color: rgb(174, 251, 255);
    border-radius: 25px;
    cursor: pointer;
    transition: background-color 0.2s;
}

/* What happens when the box is clicked/checked */
.comp-selectors input[type="radio"]:checked + .comp-radio-label {
    background-color: #ffe600; 
}

/* The little tick mark inside the box */
.comp-radio-label::after {
    content: '✔';
    font-size: 20px;
    color: #000000;
    opacity: 0.5;
}

.comp-selectors input[type="radio"]:checked + .comp-radio-label::after {
    opacity: 1; /* Make tick solid black when selected */
}

/* Add to cart Button */
.comp-cart-btn {
    background: linear-gradient(0deg, rgba(255, 255, 255, 0.10) 0%, rgba(255, 255, 255, 0.10) 100%), linear-gradient(270deg, #4EA6FF 0%, #C9E4FF 105.5%);
    color: white;
    border: none;
    padding: 14px 40px;
    border-radius: 25px;
    font-size: 15px;
    font-weight: 700;
    cursor: pointer;
    box-shadow: 0 4px 10px rgba(115, 191, 255, 0.3);
    transition: background-color 0.3s;
}

/* --- TOAST NOTIFICATIONS --- */
.toast-container {
    position: fixed;
    bottom: 30px;
    right: 30px;
    z-index: 10000;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.toast {
    background: #ffffff;
    border-left: 6px solid #44a2ff;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.15);
    padding: 16px 24px;
    border-radius: 8px;
    font-family: 'Inter', sans-serif;
    color: #333;
    font-size: 15px;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 10px;
    transform: translateX(120%); /* Starts off-screen to the right */
    transition: transform 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55); /* Bouncy slide-in effect */
}

.toast.show {
    transform: translateX(0); /* Slides into view */
}






@media (max-width: 1700px) {
    


.arrow-btn {
    background: none;
    border: none;
    font-size: 60px;
    color: #44a2ff;
    cursor: pointer;
    padding: 0px;
    transition: transform 0.3s ease, color 0.3s;
    
    /* FIX: Absolute positioning & higher z-index so they are clickable */
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 100; 
}

.arrow-btn:hover {
    transform: translateY(-50%) scale(1.2);
    color: #1A237E;
}

.left-arrow {
    left: -50px;
}

.right-arrow {
    right: -50px;
}


}



@media (max-width: 1650px) {

.card-left {
    /* 修复：增加 translateX 值以向左移动得更远（增加 gap） */
    transform: translateX(-100%) translateZ(0px) scale(100%); /* 原为 -80%，增加了 30% */
    filter: blur(6px);
    opacity: 0.6;
    z-index: 5;
}

/* 状态 3：右侧卡片（后退，模糊） */
.card-right {
    /* 修复：增加 translateX 值以向右移动得更远（增加 gap） */
    transform: translateX(100%) translateZ(0px) scale(100%); /* 原为 80%，增加了 30% */
    filter: blur(6px);
    opacity: 0.6;
    z-index: 5;
}

}



@media (max-width: 1550px) {

.login_title {
        font-size: 38px; /* Slightly smaller title */
    }
    .register-form {
        width: 380px; /* Slight reduction for better proportions */
    }




/* --- 1. The Navbar Container --- */
.guest-navbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 20px 60px;
    
    /* NEW: Sticky positioning to keep it on top while scrolling */
    position: sticky;
    top: 0;
    z-index: 9999; /* Ensures it stays above all other content */

    /* NEW: iOS Liquid Glass Effect */
    /* We use rgba() to make your soft blue gradient 65% transparent */
    background: linear-gradient(to bottom, rgba(110, 178, 255, 0.474), rgba(240, 247, 255, 0.65)); 
    backdrop-filter: blur(16px); /* The magic background blur */
    -webkit-backdrop-filter: blur(16px); /* Required for Safari support */
    
    border-bottom-left-radius: 40px;
    border-bottom-right-radius: 40px;
    
    /* Slightly softened shadow so the glass effect feels natural */
    box-shadow: 0 10px 30px rgba(0, 102, 255, 0.15);
}

/* --- 2. Logo --- */
/* --- NAVBAR LOGO SIZING --- */
.logo .nav-logo-img {
    height: 30px; /* Adjust this number to make it bigger or smaller */
    width: auto;
    display: block; /* Removes any weird bottom spacing */
}

/* --- 3. Nav Links --- */
.nav-links {
    list-style: none;
    display: flex;
    gap: 40px;
    margin: 0;
    padding: 0;
}

.nav-links a {
    text-decoration: none;
    font-family: 'Inter', sans-serif;
    font-size: 15px;
    font-weight: 500;
    color: #000;
    text-transform: uppercase; 
    letter-spacing: 0.5px;
    transition: all 0.3s ease; 
}

.nav-links a.active {
    color: #44a2ff; /* Changes the text to your theme's blue */
    font-weight: 900; /* Makes it bolder than the rest */
    font-size: 17px;

    border-bottom: 0px solid #44a2ff; /* Adds a nice crisp line underneath */
    padding-bottom: 2px; /* Gives the line a little breathing room */
}

/* --- 4. Sign In Button --- */
.nav-right .signin-btn {
    display: inline-block;
    padding: 10px 24px; 
    background-color: white;
    color: black;
    text-decoration: none;
    font-family: 'Inter', sans-serif;
    font-weight: 600;
    font-size: 14px;
    border-radius: 50px; 
    
    /* FIXED: Corrected the syntax here so the shadow works properly */
    box-shadow: 0 4px 10px rgba(36, 61, 175, 0.15);
    transition: all 0.3s ease;
}

.nav-right .signin-btn:hover {
    background-color: #f8f9fa;
    box-shadow: 0 6px 15px rgba(70, 101, 255, 0.3);
}






/* --- GLOBAL TYPOGRAPHY SETTINGS --- */
.italic-subtitle {
font-family: 'Lora', serif;
  font-weight: 500; /* 500 is the standard weight for 'Medium' */
  font-style: italic;
        background: var(--gg, linear-gradient(90deg, #3477be 12.87%, #1A237E 100%));
background-clip: text;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
    font-size: 20px;
    margin-bottom: 20px;
}

.text-center {
    text-align: center;
}

.uppercase-heading {
    text-transform: uppercase;
    letter-spacing: 1px;
}

/* Ensure the parent container traps the background */
.hero-section {
    position: relative; 
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 80px 15%;
    gap: 40px;
    overflow: hidden; 
}

.hero-bg-layer {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0.3;
    z-index: 0;
    pointer-events: none;
}

.hero-text, 
.hero-image-container {
    position: relative;
    z-index: 1;
}



.hero-text h1 {
        font-weight: 700;
    margin: 0 0 50px 0;
    
}

/* ... keep the rest of your existing hero CSS below here exactly as it is ... */

.hero-text h1 {
    font-size: 36px;
    font-weight: 800;
    margin: 0 0 50px 0;
    background: var(--gg, linear-gradient(90deg, #3477be 12.87%, #1A237E 100%));
background-clip: text;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}

.hero-desc {
    font-size: 17px;
    line-height: 30px;
    margin-bottom: 50px;
    text-align: justify;
}

.learn-more-btn {
    font-weight: 700;
    text-decoration: none;
    color: #002b55;
    font-size: 25px;
    letter-spacing: 3px;
    font-weight: 900;
    text-transform: uppercase;
}

.learn-more-btn:hover {
    color: #0000c6;
}

.hero-image-container {
    flex: 1;
    display: flex;
    justify-content: flex-end;
    align-items: center;
}

.arch-image {
    width: clamp(250px, 40vw, 450px); /* 🔥 responsive */
    aspect-ratio: 3 / 4;
    object-fit: cover;

    border-radius: 250px 250px 20px 20px;
    flex-shrink: 0;
}


/* --- 2 & 4. WHITE SECTIONS (About & CTA) --- */
.white-section {
    background-color: #ffffff;
    padding: 150px 20px;
}

.white-section h2 {
    font-size: 20px;
    line-height: 25px;
    margin-bottom: 60px;
        background: var(--gg, linear-gradient(90deg, #134c88 12.87%, #1A237E 100%));
background-clip: text;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
    
}

.cta-desc {
    font-size: 25px;
    margin-bottom: 50px;
    font-style: italic;
}

/* Light Blue Pill Buttons */
.pill-btn {
    display: inline-block;
    background: linear-gradient(to right, #d6e9ff, #eef5ff);
    color: #002b55;
    padding: 12px 35px;
    border-radius: 50px;
    text-decoration: none;
    font-weight: 800;
    font-size: 20px;
    box-shadow: 0 4px 10px (#2c93faac);
    transition: transform 0.3s ease;
}

.pill-btn:hover {
    transform: translateY(-0px);
}


}

@media (max-width: 1400px) {

.card-left {
    /* 修复：增加 translateX 值以向左移动得更远（增加 gap） */
    transform: translateX(-70%) translateZ(0px) scale(100%); /* 原为 -80%，增加了 30% */
    filter: blur(15px);
    opacity: 0.6;
    z-index: 5;
}

/* 状态 3：右侧卡片（后退，模糊） */
.card-right {
    /* 修复：增加 translateX 值以向右移动得更远（增加 gap） */
    transform: translateX(70%) translateZ(0px) scale(100%); /* 原为 80%，增加了 30% */
    filter: blur(15px);
    opacity: 0.6;
    z-index: 5;
}

}




@media (max-width: 1350px) {


.left-arrow {
    left: -10px;
}

.right-arrow {
    right: -10px;
}


/* --- 5. TESTIMONIALS SECTION --- */
.testimonials-section {
    padding: 80px 5%; /* Adjusted padding for better fit */
    text-align: center;
}

.testimonials-section h2 {
    font-size: 32px;
    margin-bottom: 40px;
    text-transform: uppercase;
    letter-spacing: 1px;
            background: var(--gg, linear-gradient(90deg, #134c88 12.87%, #1A237E 100%));
background-clip: text;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}

/* The Window: Hides the cards that aren't on the current "page" */
.testimonials-container {
    overflow: hidden; 
    width: 100%;
    max-width: 1400px; /* Limits width on very large screens */
    margin: 0 auto;
}

/* The Track: This moves left/right via JavaScript */
.testimonials-track {
    display: flex;
    gap: 45px; /* Your exact requested gap */
    transition: transform 0.8s cubic-bezier(0.4, 0, 0.2, 1); /* Professional smooth slide */
    padding: 20px 0; /* Space for the box shadows */
}

/* Individual Card Styling */
.testimonial-card {
    /* MATH: 4 cards per view. (100% - (3 gaps of 45px)) / 4 = calc(25% - 33.75px) */
    flex: 0 0 calc(25% - 33.75px); 
    aspect-ratio: 1 / 1; /* Keeps it a perfect square */
    border-radius: 20px;
    padding: 35px;
    box-sizing: border-box;
    
    display: flex;
    flex-direction: column;
    align-items: center; 
    text-align: center;
    
    border: 1px solid rgba(255, 255, 255, 0.4);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.03);
}

}


@media (max-width: 1200px) {



/* --- MEMORIALS BUTTONS WITH IMG SOURCE --- */

.memorial-options-container {
    display: flex;
    gap: 100px; 
    justify-content: center;
    align-items: center;
    padding: 100px 20px;
}

.memorial-circle-btn {
    position: relative;
    width: 350px; 
    height: 350px;
    border-radius: 360px; 
    overflow: hidden; 
    display: flex;
    justify-content: center;
    align-items: center;
    cursor: pointer;
    text-decoration: none;
    border: none;
    
    background: linear-gradient(0deg, rgba(227, 241, 255, 0.10) 0%, rgba(44, 147, 250, 0.10) 100%);
    box-shadow: 0 4px 50px -15px #2C93FA inset, 0 0 100px 25px rgba(107, 181, 255, 0.30);
    transition: transform 0.4s ease;
}

.btn-source-img {
    position: absolute;
    top: 15px;
    left: -12px;
    width: 102.235%;
    height: 100.235%;
    object-fit: cover;
    z-index: 1; 
    pointer-events: none; 
    opacity: 70%;
}


.btn-source-right-img {
    position: absolute;
    top: 15px;
    left: 4px;
    width: 102.235%;
    height: 100.235%;
    object-fit: cover;
    z-index: 1; 
    pointer-events: none; 
    opacity: 70%;
}

/* --- FONT UPDATE HERE --- */
.memorial-circle-btn span {
    position: relative;
    z-index: 2; 
    
    /* Applying Seoul Hangang font */
    font-family: 'Seoul Hangang';
    font-size: 35px; /* Slightly larger as this font tends to be tall/narrow */
    font-weight: 500;
            background: var(--gg, linear-gradient(90deg, #002954 12.87%, #000647 100%));
background-clip: text;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
    text-align: center;
    line-height: 1.1;
    letter-spacing: -0.5px; /* Tighter spacing for a cleaner look */
    text-shadow: 0 2px 4px rgba(255, 255, 255, 0.4);
}

.memorial-circle-btn:hover {
    transform: scale(1.04);
}











.comparison-page {
    text-align: center;
    padding: 60px 20px;
    max-width: 1200px;
    margin: 0 auto;
}

.comp-main-title {
    font-size: 40px;
    font-weight: 800;
    margin-bottom: 50px;
}

.comp-container {
    display: flex;
    flex-direction: column; /* <-- CHANGE THIS: from column to row */
    align-items: stretch; /* Now this will stretch their heights equally! */
    gap: 20px; /* Add this to create space between the 3 boxes */
}
/* 3-Column Grid for each row */
.comp-row {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
}

.comp-item {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.comp-img {
    width: 100%;
    max-width: 260px;
    border-radius: 15px;
    display: block;
}

.comp-full-divider {
    border: none;
    height: 2px;
    background-color: #a3cfff; /* Matches your light blue mockup line */
    margin: 30px 0;
    width: 100%;
}

.comp-pill {
    border-radius: 25px;
    padding: 5px 5px;
    margin: 5px 0;
    width: 100%;
    max-width: 400px;
    font-weight: 730;
    font-size: 28px;
    color: #000000;
}

.price {
    border-radius: 25px;
    padding: 5px 5px;
    margin: 5px 0;
    width: 100%;
    max-width: 250px;
    font-weight: 400;
    font-size: 20px;
    color: #000000;
}

.comp-summary-title {
    font-size: 30px;
    font-weight: 800;
    margin: 20px 0 20px 0;
}

/* The tall white/grey boxes */
/* The tall white/grey boxes */
.comp-grey-box {
    background-color: #ffffff;
    border-radius: 30px;
    padding: 20px 20px;
    width: 100%;
    min-height: 150px;
    height: 100%; /* ADD THIS: Tells the box to stretch to the parent's height */
    box-sizing: border-box; /* ADD THIS: Ensures padding doesn't break the height */
    text-align: center;
}

.comp-list {
    list-style-type: none;
    padding: 10px;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 30px !important; /* This controls the exact gap between every single item */
}

.comp-list li {
    /* Notice we removed margin-bottom here, the 'gap' above handles it now! */
    font-size: 17px;
    font-weight: 400;
    color: #222;
    line-height: 1.4;
}

.comp-zh {
    font-weight: 600;
    color: #555;
    font-size: 18px;
}

.comp-gift-header {
    margin-top: 0px !important;
    color: #ff9f43 !important;
    font-size: 20px !important;
    font-weight: 800 !important; /* Added this to make the text bolder */
}

/* Custom Checkmark Radio Buttons */
.comp-form {
    margin-top: 10px;
}

.comp-selectors {
    margin-bottom: 30px;
}

.comp-selectors input[type="radio"] {
    display: none; /* Hide default radio */
}

.comp-radio-label {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    width: 80px;
    height: 38px;
    background-color: rgb(174, 251, 255);
    border-radius: 25px;
    cursor: pointer;
    transition: background-color 0.2s;
}

/* What happens when the box is clicked/checked */
.comp-selectors input[type="radio"]:checked + .comp-radio-label {
    background-color: #ffe600; 
}

/* The little tick mark inside the box */
.comp-radio-label::after {
    content: '✔';
    font-size: 20px;
    color: #000000;
    opacity: 0.5;
}

.comp-selectors input[type="radio"]:checked + .comp-radio-label::after {
    opacity: 1; /* Make tick solid black when selected */
}

/* Add to cart Button */
.comp-cart-btn {
    background: linear-gradient(0deg, rgba(255, 255, 255, 0.10) 0%, rgba(255, 255, 255, 0.10) 100%), linear-gradient(270deg, #4EA6FF 0%, #C9E4FF 105.5%);
    color: white;
    border: none;
    padding: 14px 40px;
    border-radius: 25px;
    font-size: 15px;
    font-weight: 700;
    cursor: pointer;
    box-shadow: 0 4px 10px rgba(115, 191, 255, 0.3);
    transition: background-color 0.3s;
}

/* --- TOAST NOTIFICATIONS --- */
.toast-container {
    position: fixed;
    bottom: 30px;
    right: 30px;
    z-index: 10000;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.toast {
    background: #ffffff;
    border-left: 6px solid #44a2ff;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.15);
    padding: 16px 24px;
    border-radius: 8px;
    font-family: 'Inter', sans-serif;
    color: #333;
    font-size: 15px;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 10px;
    transform: translateX(120%); /* Starts off-screen to the right */
    transition: transform 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55); /* Bouncy slide-in effect */
}

.toast.show {
    transform: translateX(0); /* Slides into view */
}


    
/* --- 1. The Navbar Container --- */
.guest-navbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 20px 60px;
    
    /* NEW: Sticky positioning to keep it on top while scrolling */
    position: sticky;
    top: 0;
    z-index: 9999; /* Ensures it stays above all other content */

    /* NEW: iOS Liquid Glass Effect */
    /* We use rgba() to make your soft blue gradient 65% transparent */
    background: linear-gradient(to bottom, rgba(110, 178, 255, 0.474), rgba(240, 247, 255, 0.65)); 
    backdrop-filter: blur(16px); /* The magic background blur */
    -webkit-backdrop-filter: blur(16px); /* Required for Safari support */
    
    border-bottom-left-radius: 40px;
    border-bottom-right-radius: 40px;
    
    /* Slightly softened shadow so the glass effect feels natural */
    box-shadow: 0 10px 30px rgba(0, 102, 255, 0.15);
}

/* --- 2. Logo --- */
/* --- NAVBAR LOGO SIZING --- */
.logo .nav-logo-img {
    height: 30px; /* Adjust this number to make it bigger or smaller */
    width: auto;
    display: block; /* Removes any weird bottom spacing */
}

/* --- 3. Nav Links --- */
.nav-links {
    list-style: none;
    display: flex;
    gap: 40px;
    margin: 0;
    padding: 0;
}

.nav-links a {
    text-decoration: none;
    font-family: 'Inter', sans-serif;
    font-size: 12px;
    font-weight: 500;
    color: #000;
    text-transform: uppercase; 
    letter-spacing: 0.5px;
    transition: all 0.3s ease; 
}

.nav-links a.active {
    color: #44a2ff; /* Changes the text to your theme's blue */
    font-weight: 900; /* Makes it bolder than the rest */
    font-size: 15px;

    border-bottom: 0px solid #44a2ff; /* Adds a nice crisp line underneath */
    padding-bottom: 2px; /* Gives the line a little breathing room */
}

/* --- 4. Sign In Button --- */
.nav-right .signin-btn {
    display: inline-block;
    padding: 10px 24px; 
    background-color: white;
    color: black;
    text-decoration: none;
    font-family: 'Inter', sans-serif;
    font-weight: 600;
    font-size: 14px;
    border-radius: 50px; 
    
    /* FIXED: Corrected the syntax here so the shadow works properly */
    box-shadow: 0 4px 10px rgba(36, 61, 175, 0.15);
    transition: all 0.3s ease;
}

.nav-right .signin-btn:hover {
    background-color: #f8f9fa;
    box-shadow: 0 6px 15px rgba(70, 101, 255, 0.3);
}

}



@media (max-width: 1400px) {

.card-left {
    /* 修复：增加 translateX 值以向左移动得更远（增加 gap） */
    transform: translateX(-70%) translateZ(0px) scale(100%); /* 原为 -80%，增加了 30% */
    filter: blur(15px);
    opacity: 0.6;
    z-index: 5;
}

/* 状态 3：右侧卡片（后退，模糊） */
.card-right {
    /* 修复：增加 translateX 值以向右移动得更远（增加 gap） */
    transform: translateX(70%) translateZ(0px) scale(100%); /* 原为 80%，增加了 30% */
    filter: blur(15px);
    opacity: 0.6;
    z-index: 5;
}

}


@media (max-width: 1130px) {

.card-left {
    /* 修复：增加 translateX 值以向左移动得更远（增加 gap） */
    transform: translateX(-40%) translateZ(0px) scale(100%); /* 原为 -80%，增加了 30% */
    filter: blur(17px);
    opacity: 0.2;
    z-index: 5;
}

/* 状态 3：右侧卡片（后退，模糊） */
.card-right {
    /* 修复：增加 translateX 值以向右移动得更远（增加 gap） */
    transform: translateX(40%) translateZ(0px) scale(100%); /* 原为 80%，增加了 30% */
    filter: blur(15px);
    opacity: 0.2;
    z-index: 5;
}

/* =========================================================
   RSVP List - Deceased Records Page Styles
   ========================================================= */

.record-list-wrapper {
    min-width: 800px;
    margin: 30px auto;
    padding: 0 15px;
    font-family: 'Inter', sans-serif;
}

.page-title {
    text-align: center;
    font-size: 42px;
    font-weight: 800;
    margin-bottom: 20px;
background: var(--gg, linear-gradient(90deg, #3477be 12.87%, #1A237E 100%));
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    margin-bottom: 40px;
    text-transform: uppercase;
}

.record-list-card {
    background: #FFFFFF;
    border: 1px solid #A6C8FF;
    border-radius: 20px;
    box-shadow: 0 10px 40px rgba(166, 200, 255, 0.2);
    padding: 20px 40px;
    min-height: 300px; /* Keeps the card nicely sized even if empty */
}

/* Grid Layout for the List */
.list-header, .list-row {
    display: grid;
    grid-template-columns: 2fr 2fr 100px; /* Name, Date, Icon */
    align-items: center;
    padding: 40px 0px; /* Slightly reduced from 50px so rows aren't overly tall */
    gap: 20px; /* A small, healthy gap to prevent columns from touching */
}

.list-header {
    font-size: 20px;
    font-weight: 700;
    color: #000;
    border-bottom: 2px solid #E5EFFF;
    margin-bottom: 7px;
    /* REMOVED the 150px gap that was breaking the layout */
}

.list-row {
    border-bottom: 1px solid #E5EFFF;
    transition: background 0.2s ease;
    /* REMOVED the 250px gap that was breaking the layout */
}

/* Force the text to stay horizontal and not wrap */
.col-name, .col-date {
    white-space: nowrap; 
    overflow: hidden;
    text-overflow: ellipsis; /* Adds '...' if a name is miraculously too long */
}


/* Make the name clickable to go to the guest list */
.col-name a {
    text-decoration: none;
    color: #333;
    font-size: 22px;
    font-weight: 400;
    display: block; /* Makes the whole area clickable */
}

.col-name a:hover {
    color: #2C93FA;
}

.col-date {
    font-size: 18px;
    color: #2e2e2e;
    font-style: italic; /* Matches your UI */
}

/* The Trash Can Icon Button */
.delete-btn {
    background: none;
    border: none;
    cursor: pointer;
    color: #888;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: color 0.3s ease;
}

.delete-btn:hover {
    color: #FF4A4A; /* Turns red on hover */
}

.empty-state {
    text-align: center;
    color: #888;
    padding: 40px 0;
    font-style: italic;
}
















.left-side {
        width: 40%; /* Shrink the video side to give form more room */
    }
    .right-side {
        width: 60%;
    }
    .login_title {
        font-size: 34px;
    }
    .register-form {
        width: 350px;
    }


/* --- 1. The Navbar Container --- */
.guest-navbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 30px;
    
    /* NEW: Sticky positioning to keep it on top while scrolling */
    position: sticky;
    top: 0;
    z-index: 9999; /* Ensures it stays above all other content */

    /* NEW: iOS Liquid Glass Effect */
    /* We use rgba() to make your soft blue gradient 65% transparent */
    background: linear-gradient(to bottom, rgba(110, 178, 255, 0.474), rgba(240, 247, 255, 0.65)); 
    backdrop-filter: blur(16px); /* The magic background blur */
    -webkit-backdrop-filter: blur(16px); /* Required for Safari support */
    
    border-bottom-left-radius: 40px;
    border-bottom-right-radius: 40px;
    
    /* Slightly softened shadow so the glass effect feels natural */
    box-shadow: 0 10px 30px rgba(0, 102, 255, 0.15);
}

/* --- 2. Logo --- */
/* --- NAVBAR LOGO SIZING --- */
.logo .nav-logo-img {
    height: 20px; /* Adjust this number to make it bigger or smaller */
    width: auto;
    display: block; /* Removes any weird bottom spacing */
}

/* --- 3. Nav Links --- */
.nav-links {
    list-style: none;
    display: flex;
    gap: 25px;
    margin: 0;
    padding: 0;
}

.nav-links a {
    text-decoration: none;
    font-family: 'Inter', sans-serif;
    font-size: 11px;
    font-weight: 500;
    color: #000;
    text-transform: uppercase; 
    letter-spacing: 0.5px;
    transition: all 0.3s ease; 
}

.nav-links a.active {
    color: #44a2ff; /* Changes the text to your theme's blue */
    font-weight: 900; /* Makes it bolder than the rest */
    font-size: 15px;

    border-bottom: 0px solid #44a2ff; /* Adds a nice crisp line underneath */
    padding-bottom: 2px; /* Gives the line a little breathing room */
}

/* --- 4. Sign In Button --- */
.nav-right .signin-btn {
    display: inline-block;
    padding: 7px 15px; 
    background-color: white;
    color: black;
    text-decoration: none;
    font-family: 'Inter', sans-serif;
    font-weight: 600;
    font-size: 10px;
    border-radius: 50px; 
    
    /* FIXED: Corrected the syntax here so the shadow works properly */
    box-shadow: 0 4px 10px rgba(36, 61, 175, 0.15);
    transition: all 0.3s ease;
}

.nav-right .signin-btn:hover {
    background-color: #f8f9fa;
    box-shadow: 0 6px 15px rgba(70, 101, 255, 0.3);
}

    .profile-pic-toggle img {
    width: 35px;
    height: 35px;
    border-radius: 50%;
    object-fit: cover;
    background-color: white; /* Fallback white circle */
    border: 2px solid #fff;
    box-shadow: 0 4px 10px rgba(36, 61, 175, 0.15);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.profile-pic-toggle img:hover {
    transform: scale(1.05);
    box-shadow: 0 6px 15px rgba(70, 101, 255, 0.3);
}

/* --- 5. TESTIMONIALS SECTION --- */
.testimonials-section {
    padding: 5px 5%; /* Adjusted padding for better fit */
    text-align: center;
}

.testimonials-section h2 {
    font-size: 22px;
    margin-bottom: 40px;
    text-transform: uppercase;
    letter-spacing: 1px;
            background: var(--gg, linear-gradient(90deg, #134c88 12.87%, #1A237E 100%));
background-clip: text;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}

/* The Window: Hides the cards that aren't on the current "page" */
.testimonials-container {
    overflow: hidden; 
    width: 100%;
    height: 100%;
    max-width: 1400px; /* Limits width on very large screens */
    margin: 0 auto;
}

/* The Track: This moves left/right via JavaScript */
.testimonials-track {
    display: flex;
    gap: 45px; /* Your exact requested gap */
    transition: transform 0.8s cubic-bezier(0.4, 0, 0.2, 1); /* Professional smooth slide */
    padding: 10px 0; /* Space for the box shadows */
}

/* Individual Card Styling */
.testimonial-card {
    /* MATH: 4 cards per view. (100% - (3 gaps of 45px)) / 4 = calc(25% - 33.75px) */
    flex: 0 0 calc(25% - 33.75px); 
    aspect-ratio: 1 / 1; /* Keeps it a perfect square */
    border-radius: 20px;
    padding: 35px;
    box-sizing: border-box;
    
    display: flex;
    flex-direction: column;
    align-items: center; 
    text-align: center;
    
    border: 1px solid rgba(255, 255, 255, 0.4);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.03);
}


    .about-top-section {
        flex-direction: column; /* Stacks image on top of text */
        position: relative;     /* As requested */
        gap: 40px;              /* Reduces gap for a tighter mobile look */
        text-align: center;     /* Centers headings and text for better flow */
        margin-bottom: 60px;
    }

    .about-img-col, 
    .about-text-col {
        width: 100%;            /* Forces columns to take full width */
        flex: none;             /* Disables the 1.2 flex ratio from desktop */
    }

    .arch-img {
        max-width: 40%;        /* Prevents image from horizontal scrolling */
        height: auto;           /* Maintains proportions as it shrinks */
        margin: 0 auto;         /* Centers the arched image */
    }

    .about-desc {
        text-align: center;     /* Swaps from justify to center for readability */
        margin-bottom: 40px;
        font-size:17px;
    }

    .about-stats {
        justify-content: center;
        gap: 20px;
        flex-wrap: wrap;        /* Allows stats to wrap to a new line if needed */
    }

    .stat-box {
        flex: 1 1 150px;        /* Allows boxes to grow and shrink evenly */
    }

.mid-section-title {
    font-size: 25px;


}
}


/* --- Hide Hamburger on Desktop --- */
.hamburger {
    display: none;
    cursor: pointer;
    flex-direction: column;
    gap: 5px;
    margin-left: 15px;
}

.hamburger span {
    display: block;
    width: 25px;
    height: 3px;
    background-color: #000;
    border-radius: 10px;
    transition: 0.3s;
}



/* --- Mobile Menu (900px and below) --- */

@media (max-width: 900px) {


/* --- MEMORIALS BUTTONS WITH IMG SOURCE --- */
/* 2. 修复：增加两侧卡片的间距（移动得更远） */

/* 状态 2：左侧卡片（后退，模糊） */
.card-left {
    /* 修复：增加 translateX 值以向左移动得更远（增加 gap） */
    transform: translateX(0%) translateZ(0px) scale(100%); /* 原为 -80%，增加了 30% */
    filter: blur(20px);
    opacity: 0;
    z-index: 5;
}

/* 状态 3：右侧卡片（后退，模糊） */
.card-right {
    /* 修复：增加 translateX 值以向右移动得更远（增加 gap） */
    transform: translateX(0%) translateZ(0px) scale(100%); /* 原为 80%，增加了 30% */
    filter: blur(20px);
    opacity: 0;
    z-index: 5;
}



.memorial-options-container {
    display: flex;
    gap: 100px; 
    justify-content: center;
    align-items: center;
    padding: 100px 20px;
}

.memorial-circle-btn {
    position: relative;
    width: 220px; 
    height: 220px;
    border-radius: 360px; 
    overflow: hidden; 
    display: flex;
    justify-content: center;
    align-items: center;
    cursor: pointer;
    text-decoration: none;
    border: none;
    
    background: linear-gradient(0deg, rgba(227, 241, 255, 0.10) 0%, rgba(44, 147, 250, 0.10) 100%);
    box-shadow: 0 4px 50px -15px #2C93FA inset, 0 0 100px 25px rgba(107, 181, 255, 0.30);
    transition: transform 0.4s ease;
}

.btn-source-img {
    position: absolute;
    top: 15px;
    left: -12px;
    width: 102.235%;
    height: 100.235%;
    object-fit: cover;
    z-index: 1; 
    pointer-events: none; 
    opacity: 70%;
}


.btn-source-right-img {
    position: absolute;
    top: 15px;
    left: 4px;
    width: 102.235%;
    height: 100.235%;
    object-fit: cover;
    z-index: 1; 
    pointer-events: none; 
    opacity: 70%;
}

/* --- FONT UPDATE HERE --- */
.memorial-circle-btn span {
    position: relative;
    z-index: 2; 
    
    /* Applying Seoul Hangang font */
    font-family: 'Seoul Hangang';
    font-size: 25px; /* Slightly larger as this font tends to be tall/narrow */
    font-weight: 500;
            background: var(--gg, linear-gradient(90deg, #002954 12.87%, #000647 100%));
background-clip: text;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
    text-align: center;
    line-height: 1.1;
    letter-spacing: -0.5px; /* Tighter spacing for a cleaner look */
    text-shadow: 0 2px 4px rgba(255, 255, 255, 0.4);
}

.memorial-circle-btn:hover {
    transform: scale(1.04);
}















    .pc-search-input {
        
    width: 100%;
    max-width: 1000px;
    padding: 15px 15px;
    border: none;
    border-radius: 10px;
    background-color: rgba(255, 255, 255, 0.7);
    font-size: 25px;
    box-shadow: inset 0 2px 5px rgba(255, 254, 254, 0.05);
    text-align: center;

}

    .pay-now-btn {
    display: block; /* Forces the button to respect the auto margins */
    width: 40%;
    margin: 30px auto 0 auto; /* Top: 30px, Left/Right: auto (centers it), Bottom: 0 */
    
    background: linear-gradient(0deg, rgba(255, 255, 255, 0.10) 0%, rgba(255, 255, 255, 0.10) 100%), linear-gradient(270deg, #4EA6FF 0%, #C9E4FF 105.5%);
    color: #ffffff;
    border: none;
    padding: 10px;        
    font-size: 20px;      
    font-weight: 700;
    border-radius: 40px;  
    cursor: pointer;
    transition: transform 0.2s, box-shadow 0.2s;
}

    .checkout-layout {
        /* This flips the horizontal layout to vertical */
        flex-direction: column;
        
        /* This ensures the boxes stretch to fill the width */
        align-items: stretch; 
        
        /* Optional: increase gap if they feel too squished vertically */
        gap: 50px;
    }

    /* If your Summary or Payment Method boxes have fixed widths, 
       ensure they take up the full width now */
    .checkout-summary, 
    .payment-method-container { 
        width: 100%; 
    }



/* Cart Item Rows */
.cart-items-container {
    margin-bottom: 40px;   /* 30px -> 40px */
}

.cart-item-row {
    display: flex;
    align-items: center;
    padding: 30px 0;       /* 20px -> 30px */
    border-bottom: 1px solid #eee;
}

.cart-item-img {
    width: 90px;           /* 80px -> 90px */
    height: 90px;          /* 80px -> 90px */
    flex-shrink: 0;
    background: #f9f9f9;
    border-radius: 18px;   /* 8px -> 18px */
    display: flex;
    justify-content: center;
    align-items: center;
    margin-right: 30px;    /* 20px -> 30px */
    padding: 20px;         /* 10px -> 20px */
}

.cart-item-img img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

.cart-item-info {
    flex-grow: 1;
}

.cart-item-name {
    font-weight: 600;
    font-size: 20px;       /* 16px -> 26px */
    line-height: 1.4;
    margin-bottom: 18px;   /* 8px -> 18px */
}

.cart-item-qty {
    font-size: 20px;       /* 14px -> 24px */
    color: #666;
}

.cart-item-price-col {
    text-align: right;
    min-width: 150px;      /* 100px -> 110px */
}

.cart-item-price {
    font-weight: 500;
    font-size: 20px;       /* 18px -> 28px */
    margin-bottom: 20px;   /* 10px -> 20px */
}

.cart-remove-btn {
    background: none;
    border: none;
    color: #ff4d4f;
    font-size: 16px;       /* 13px -> 23px */
    font-weight: 600;
    cursor: pointer;
    text-decoration: underline;
}




    .comparison-page {
    text-align: center;
    padding: 60px 20px;
    max-width: 1200px;
    margin: 0 auto;
}

.comp-main-title {
    font-size: 40px;
    font-weight: 800;
    margin-bottom: 50px;
}

.comp-container {
    display: flex;
    flex-direction: column; /* <-- CHANGE THIS: from column to row */
    align-items: stretch; /* Now this will stretch their heights equally! */
    gap: 20px; /* Add this to create space between the 3 boxes */
}
/* 3-Column Grid for each row */
.comp-row {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
}

.comp-item {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.comp-img {
    width: 100%;
    max-width: 160px;
    border-radius: 15px;
    display: block;
}

.comp-full-divider {
    border: none;
    height: 2px;
    background-color: #a3cfff; /* Matches your light blue mockup line */
    margin: 30px 0;
    width: 100%;
}

.comp-pill {
    border-radius: 25px;
    padding: 0px 0px;
    margin: 0px 0;
    width: 100%;
    max-width: 400px;
    font-weight: 730;
    font-size: 23px;
    color: #000000;
}

.price {
    border-radius: 25px;
    padding: 5px 5px;
    margin: 5px 0;
    width: 100%;
    max-width: 250px;
    font-weight: 400;
    font-size: 20px;
    color: #000000;
}

.comp-summary-title {
    font-size: 30px;
    font-weight: 800;
    margin: 20px 0 20px 0;
}

/* The tall white/grey boxes */
/* The tall white/grey boxes */
.comp-grey-box {
    background-color: #ffffff;
    border-radius: 30px;
    padding: 20px 20px;
    width: 100%;
    min-height: 150px;
    height: 100%; /* ADD THIS: Tells the box to stretch to the parent's height */
    box-sizing: border-box; /* ADD THIS: Ensures padding doesn't break the height */
    text-align: center;
}

.comp-list {
    list-style-type: none;
    padding: 10px;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 20px !important; /* This controls the exact gap between every single item */
}

.comp-list li {
    /* Notice we removed margin-bottom here, the 'gap' above handles it now! */
    font-size: 13px;
    font-weight: 400;
    color: #222;
    line-height: 1.4;
}

.comp-zh {
    font-weight: 600;
    color: #555;
    font-size: 13px;
}

.comp-gift-header {
    margin-top: 0px !important;
    color: #ff9f43 !important;
    font-size: 15px !important;
    font-weight: 800 !important; /* Added this to make the text bolder */
}

/* Custom Checkmark Radio Buttons */
.comp-form {
    margin-top: 10px;
}

.comp-selectors {
    margin-bottom: 30px;
}

.comp-selectors input[type="radio"] {
    display: none; /* Hide default radio */
}

.comp-radio-label {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    width: 80px;
    height: 38px;
    background-color: rgb(174, 251, 255);
    border-radius: 25px;
    cursor: pointer;
    transition: background-color 0.2s;
}

/* What happens when the box is clicked/checked */
.comp-selectors input[type="radio"]:checked + .comp-radio-label {
    background-color: #ffe600; 
}

/* The little tick mark inside the box */
.comp-radio-label::after {
    content: '✔';
    font-size: 20px;
    color: #000000;
    opacity: 0.5;
}

.comp-selectors input[type="radio"]:checked + .comp-radio-label::after {
    opacity: 1; /* Make tick solid black when selected */
}

/* Add to cart Button */
.comp-cart-btn {
    background: linear-gradient(0deg, rgba(255, 255, 255, 0.10) 0%, rgba(255, 255, 255, 0.10) 100%), linear-gradient(270deg, #4EA6FF 0%, #C9E4FF 105.5%);
    color: white;
    border: none;
    padding: 14px 40px;
    border-radius: 25px;
    font-size: 15px;
    font-weight: 700;
    cursor: pointer;
    box-shadow: 0 4px 10px rgba(115, 191, 255, 0.3);
    transition: background-color 0.3s;
}

/* --- TOAST NOTIFICATIONS --- */
.toast-container {
    position: fixed;
    bottom: 30px;
    right: 30px;
    z-index: 10000;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.toast {
    background: #ffffff;
    border-left: 6px solid #44a2ff;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.15);
    padding: 16px 24px;
    border-radius: 8px;
    font-family: 'Inter', sans-serif;
    color: #333;
    font-size: 15px;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 10px;
    transform: translateX(120%); /* Starts off-screen to the right */
    transition: transform 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55); /* Bouncy slide-in effect */
}

.toast.show {
    transform: translateX(0); /* Slides into view */
}


.modal-box {
    background: #fff;
    padding: 50px 20px; /* Increased padding for breathing room */
    border-radius: 30px;
    text-align: center;
    max-width: 400px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.15);
}

.modal-box h3 {
    font-family: 'Inter', sans-serif;
    font-size: 26px;
    font-weight: 600;
    margin-bottom: 15px;
    color: #111;
}

.modal-box p {
    font-family: 'Inter', sans-serif;
    font-size: 16px;
    color: #444;
    margin-bottom: 35px; /* Pushes the buttons down */
    line-height: 1.8; /* Increased line height to make it less compact */
}

/* Button Layout */
.modal-actions {
    display: flex;
    gap: 15px;
    justify-content: center;
}

/* Base Homepage-style Button */
.modal-btn {
    padding: 12px 30px;
    border-radius: 50px;
    text-decoration: none;
    font-family: 'Inter', sans-serif;
    font-weight: 500;
    font-size: 15px;
    transition: all 0.3s ease;
}

/* Sign In Button (Outlined) */
.signin-btn {
    background-color: transparent;
    color: #333;
    border: 1px solid #6ba9fc;
}

/* Sign Up Button (Filled - Matching Eternify Theme) */
.signup-btn {
    background: linear-gradient(90deg, #d2e6ff 0%, #6ba9fc 100%); /* Recreates the soft blue gradient */
    color: white;
    box-shadow: 0 4px 12px rgba(107, 169, 252, 0.3); /* Adds the subtle glow/shadow underneath */
}


    .main-container {
        position: relative; /* Needed to anchor the absolute video */
        height: 100vh;
        width: 100%;
        overflow: hidden;
    }

    /* Move the video side to cover the whole background */
    .left-side {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        z-index: 1; /* Sits at the bottom */
    }

    .background-video {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    /* ... your existing container/video CSS ... */

    .right-side {
        display: flex;
        justify-content: center;
        align-items: center;
        background: transparent;
        width: 100%;
        height: 100%;
        z-index: 2;
        backdrop-filter: blur(8px); /* Blurs the video slightly behind the form */
        -webkit-backdrop-filter: blur(8px);
    }

    .register-form {
        width: 90%;
        max-width: 380px;
        background: white; /* The white column */
        padding: 40px 30px;
        border-radius: 20px;
        box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
        
        /* Ensures the title and inputs stack and center perfectly */
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    .login_title {
        /* Reduced size to fit better inside the white box */
        font-size: 50px; 
        margin-bottom: 30px;
        text-align: center;
        
        /* Keep your existing gradient effect */
        background: var(--gg, linear-gradient(90deg, #002954 12.87%, #000647 100%));
        -webkit-background-clip: text;
        background-clip: text;
        -webkit-text-fill-color: transparent;
    }

    .register-form input {
        width: 100%; /* Ensure inputs take full width of the white column */
        margin-bottom: 15px;
    }

    .register-form button {
        width: 60%; /* Slightly wider for better touch area on mobile */
        margin-top: 10px;
    }






    .hamburger {
        display: flex; /* Shows the hamburger */
        z-index: 10001; /* Stays above the sliding menu */
    }

        .about-desc {
        text-align: center;     /* Swaps from justify to center for readability */
        margin-bottom: 40px;
        font-size:17px;
    }

    .mid-section-title {
    font-size: 20px;


}

.nav-links {
    position: absolute;
    top: 70px;

    width: 250px;
    transform: translateX(-120%); /* 👈 fully hidden */
    opacity: 0;
    pointer-events: none;

    flex-direction: column;
    align-items: center;
    padding: 30px 0;
    gap: 20px;

    transition: all 0.4s ease-in-out;

    background: rgba(240, 247, 255, 0.9);
    backdrop-filter: blur(15px);
    -webkit-backdrop-filter: blur(15px);

    border-radius: 30px;
    box-shadow: -10px 10px 30px rgba(0, 0, 0, 0.1);
    z-index: 10000;
}

.nav-links.mobile-active {
    transform: translateX(0); /* 👈 slide into place */
    opacity: 1;
    pointer-events: auto;
}

    .nav-links a {
        font-size: 14px;
        width: 100%; /* Makes the whole area clickable */
        text-align: center;
        padding: 10px 0;
    }

    /* Keep profile pic consistent on mobile */
    .profile-pic-toggle img {
        width: 35px;
        height: 35px;
        border-radius: 50%;
        object-fit: cover;
        background-color: white;
        border: 2px solid #fff;
        box-shadow: 0 4px 10px rgba(36, 61, 175, 0.15);
    }

.contact-section {
    /* --- ADD THIS LINE --- */
    margin-top: auto; 
    
    /* Your existing styles below */
    background: linear-gradient(to bottom, #d6e9ff, #87bbf0);
    padding: 60px 20px;
    text-align: center;
    font-family: 'Inter', sans-serif;
    width: 100%; /* Ensures it stretches all the way across */
    box-sizing: border-box; /* Prevents horizontal scrolling issues */

}

.contact-section h3 {
    font-size: 20px;
    font-weight: 700;
    margin-bottom: 40px;
    color: #000;
}

.contact-container {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 25px; /* Space between columns */
    max-width: 1000px;
    margin: 0 auto;
}

.contact-item {
    display: flex;
    align-items: center;
    gap: 15px;
    text-align: left;
}

.contact-item .icon {
    font-size: 17px;
    color: white; /* Matches the icon look in image */
}

.contact-item .details p {
    margin: 0;
    font-weight: 700;
    font-size: 12px;
    color: #000;
}

/* Social Media Circles */
.social-icons {
    display: flex;
    gap: 20px;
}

.social-circle {
    width: 30px;
    height: 30px;
    background: white;
    border-radius: 50%;
    display: inline-block;
    transition: transform 0.3s ease;
}

.social-circle:hover {
    transform: scale(1.1);
}

.nav-right{
    display:flex;
    align-items:center;
    gap:12px;
}

.social-icon{
    width:22px;
    height:22px;
    border-radius:50%;
    background:white;
    display:flex;
    align-items:center;
    justify-content:center;
    text-decoration:none;
    color:black;
    font-size:14px;
}


/* --- 5. TESTIMONIALS SECTION --- */
.testimonials-section {
    padding: 20px 5%;
    text-align: center;
}

.testimonials-section h2 {
    font-size: 22px;
    margin-bottom: 40px;
    text-transform: uppercase;
    letter-spacing: 1px;
    background: linear-gradient(90deg, #134c88 12.87%, #1A237E 100%);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

/* Container (viewport) */
.testimonials-container {
    overflow: hidden;
    width: 100%;
    max-width: 1400px;
    margin: 0 auto;
}

/* Sliding track */
.testimonials-track {
    display: flex;
    gap: 45px;
    transition: transform 0.8s cubic-bezier(0.4, 0, 0.2, 1);
    padding: 10px 0;
}

/* Cards (Desktop: 4 per row) */
.testimonial-card {
    flex: 0 0 calc(50% - 10px); /* mobile: 2 per row */
    aspect-ratio: 1 / 1; /* square */
    border-radius: 20px;

    padding: 20px; /* reduce padding */
    box-sizing: border-box;

    display: flex;
    flex-direction: column;
    justify-content: space-between; /* 👈 prevents stretching */
    align-items: center;

    text-align: center;

    overflow: hidden; /* 👈 IMPORTANT: keeps square */
}

.testimonial-card p {
    font-size: 17px;
    line-height: 1.4;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 4; /* 👈 limits text */
    -webkit-box-orient: vertical;
}



    .testimonials-track {
        gap: 20px;
    }

    .testimonial-card {
        flex: 0 0 calc(50% - 10px); /* 👈 2 cards per screen */
        aspect-ratio: 1 / 1;
        padding: 20px;
    }

}



@media (max-width: 800px) {



/* =========================================================
   RSVP List - Deceased Records Page Styles
   ========================================================= */

.record-list-wrapper {
    min-width: 600px;
    margin: 20px auto;
    padding: 0 10px;
    font-family: 'Inter', sans-serif;
}

.page-title {
    text-align: center;
    font-size: 40px;
    font-weight: 800;
    margin-bottom: 20px;
background: var(--gg, linear-gradient(90deg, #3477be 12.87%, #1A237E 100%));
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    margin-bottom: 30px;
    text-transform: uppercase;
}

.record-list-card {
    background: #FFFFFF;
    border: 1px solid #A6C8FF;
    border-radius: 20px;
    box-shadow: 0 10px 40px rgba(166, 200, 255, 0.2);
    padding: 15px 30px;
    min-height: 230px; /* Keeps the card nicely sized even if empty */
}

/* Grid Layout for the List */
.list-header, .list-row {
    display: grid;
    grid-template-columns: 2fr 2fr 100px; /* Name, Date, Icon */
    align-items: center;
    padding: 20px 0px; /* Slightly reduced from 50px so rows aren't overly tall */
    gap: 10px; /* A small, healthy gap to prevent columns from touching */
}

.list-header {
    font-size: 17px;
    font-weight: 700;
    color: #000;
    border-bottom: 2px solid #E5EFFF;
    margin-bottom: 5px;
    /* REMOVED the 150px gap that was breaking the layout */
}

.list-row {
    border-bottom: 1px solid #E5EFFF;
    transition: background 0.2s ease;
    /* REMOVED the 250px gap that was breaking the layout */
}

/* Force the text to stay horizontal and not wrap */
.col-name, .col-date {
    white-space: nowrap; 
    overflow: hidden;
    text-overflow: ellipsis; /* Adds '...' if a name is miraculously too long */
}


/* Make the name clickable to go to the guest list */
.col-name a {
    text-decoration: none;
    color: #333;
    font-size: 18px;
    font-weight: 400;
    display: block; /* Makes the whole area clickable */
}

.col-name a:hover {
    color: #2C93FA;
}

.col-date {
    font-size: 15px;
    color: #2e2e2e;
    font-style: italic; /* Matches your UI */
}

/* The Trash Can Icon Button */
.delete-btn {
    background: none;
    border: none;
    cursor: pointer;
    color: #888;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: color 0.3s ease;
}

.delete-btn:hover {
    color: #FF4A4A; /* Turns red on hover */
}

.empty-state {
    text-align: center;
    color: #888;
    padding: 40px 0;
    font-style: italic;
}













.obituary-display-card {
    /* Using the exact Diamond gradient colors from your Figma screenshot */
    background: radial-gradient(circle, #C8F3FF 0%, #FFFFFF 100%);
    /* Using the exact border color from your Figma screenshot */
    border: 1px solid #9CCEFF;
    border-radius: 20px;
    padding: 60px 40px;
    text-align: center;
    max-width: 650px;
    margin: 0 auto;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
}

/* Ensure the photo circle has a white border like Figma */
.ob-photo-circle {
    width: 250px; /* Reduced size to match Figma proportions better */
    height: 250px;
    border-radius: 50%;
    margin: 0 auto 30px;
    border: 8px solid #FFFFFF; 
    box-shadow: 0 4px 15px rgba(0,0,0,0.05);
    background-size: cover;
    background-position: center;
}

/* You can completely delete the .ob-photo-circle img { ... } block */

.ob-photo-circle img { 
    width: 100%; 
    height: 100%; 
    object-fit: cover; 
}

.ob-quote { 
    font-style: italic; 
    color: #616161; 
    letter-spacing: 1px; 
    margin-bottom: 20px; 
    font-size: 15px; 
    max-width: 80%; 
    line-height: 1.6; /* Adds breathing room between the lines */
    margin: 60px auto; /* Centers the block and adds space on top and bottom */
}

.ob-quote2 { 
    color: #000000; 
    letter-spacing: 1px; 
    margin-bottom: 10px; 
    font-size: 15px; 
    max-width: 80%; 
    line-height: 1; /* Adds breathing room between the lines */
    margin: 40px auto; /* Centers the block and adds space on top and bottom */
}

.ob-name-cn { 
    font-size: 38px; /* Slightly larger */
    font-weight: 700;
    margin-bottom: 30px; 
    color: #000; 
}

.ob-dates {
    display: flex;
    justify-content: center;
    gap: 120px; /* Pushed dates further apart to match UI */
    border-top: 1px solid #dceaff;
    border-bottom: 1px solid #dceaff;
    padding: 25px 0;
    margin-bottom: 30px;
}

.date-item strong { 
    display: block; 
    font-size: 25px; 
    margin-bottom: 8px; 
    color: #000;
}

.date-item span { 
    color: #555; 
    font-size: 20px; 
}

.ob-sub-quote { 
    font-style: italic; 
    color: #888; 
    margin-bottom: 15px; 
    font-size: 16px;
}

.ob-cortege-date { 
    font-size: 32px; 
    font-weight: 800; 
    margin-bottom: 20px; 
    color: #000;
}

.ob-location-text { 
    font-size: 16px; 
    color: #444; 
    line-height: 1.6; 
    margin-bottom: 30px;

}
/* 3. RSVP Card Style */
.rsvp-display-card {
    background: radial-gradient(circle at top, #e8f6ff 0%, #FFFFFF 80%);
    border: 1px solid #c8e1ff;
    border-radius: 30px;
    padding: 50px 40px; 
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.05);
}


/* RSVP Floral Background Fix */
.rsvp-floral-inner {
    background-image: url('../images/rsvp.png'); 
    
    /* 100% 100% forces the background to stretch to the exact size of this box */
    background-size: 100% 100%; 
    background-repeat: no-repeat;
    background-position: center;
    
    /* Make the container nice and big */
    width: 100%;
    max-width: 850px; 
    min-height: 750px; /* Taller height so it doesn't squish */
    margin: 0 auto 40px auto; 
    
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    
    /* THE FIX: Huge padding on ALL sides to create a safe zone inside the dotted lines */
    padding: 50px 60px; 
    box-sizing: border-box;
}

/* Photo perfectly sized */
.rsvp-mini-photo {
    width: 100px;
    height: 100px;
    border-radius: 50%;
    margin: 0 auto 15px auto;
    overflow: hidden;
    border: 3px solid #fff;
    box-shadow: 0 4px 10px rgba(0,0,0,0.1);
    flex-shrink: 0; 
}

.rsvp-mini-photo img { 
    width: 100%; 
    height: 100%; 
    object-fit: cover; 
}

.rsvp-name-cn {
    font-size: 25px;
    font-weight: 600;
    margin-bottom: 12px;
    color: #000;
}

.rsvp-invite-text {
    font-size: 16px; 
    color: #444;
    line-height: 1.6;
    text-align: center;
    font-style: italic;
    max-width: 70%;
}

/* RSVP Form Inputs Layout */
.rsvp-form-mock {
    max-width: 600px;
    margin: 0 auto;
}

.rsvp-form-mock .cm-input-group label {
    display: block;
    font-size: 22px;
    font-weight: 700; /* Bold to match UI */
    margin-bottom: 15px;
    text-align: center;
    color: #000;
}

.rsvp-form-mock .cm-input-group input,
.rsvp-form-mock .cm-input-group select {
    width: 100%;
    padding: 12px 17px;
    border: 1px solid #A6C8FF;
    border-radius: 8px;
    background: #F4F9FF;
    text-align: center;
    font-family: 'Inter', sans-serif;
    font-size: 20px;
    box-sizing: border-box;
    transition: all 0.3s ease;
    margin-bottom: 20px;
    appearance: none; /* Removes the default ugly browser arrow */
}

.rsvp-form-mock .cm-input-group input:focus,
.rsvp-form-mock .cm-input-group select:focus {
    outline: none;
    border-color: #2C93FA;
    background-color: #fff;
}

.rsvp-form-mock .cm-row {
    display: flex;
    gap: 20px;
    margin-top: 25px;
}

.rsvp-form-mock .cm-row .cm-input-group { 
    flex: 1; 
}

/* 4. Button Rows - Updated to match UI */
.db-action-row {
    display: flex;
    justify-content: center;
    gap: 120px; /* Increased gap to match the wide spacing in your image */
    margin-top: 40px;
}

.db-btn {
    padding: 12px 35px; /* Adjusted padding for better proportions */
    border-radius: 12px; /* Changed from 50px to 12px for the rounded-rectangle shape */
    font-family: 'Inter', sans-serif;
    font-weight: 700;
    font-size: 22px; /* Increased font size to match the image */
    text-decoration: none;
    cursor: pointer;
    background: #def0ff; /* Very soft light blue background */
    color: #3b8cf6; /* Bright blue text */
    border: 2px solid #c1dcff; /* Added the distinct light blue border from the image */
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.03); /* Extremely soft shadow so it doesn't overpower the border */
    transition: all 0.3s ease;
}

.db-btn:hover { 
    background: #cfe6ff; 
    border-color: #a8cdff; /* Border gets slightly darker on hover */
    box-shadow: 0 6px 15px rgba(59, 140, 246, 0.15);
}



















    

}



@media (max-width: 700px) {








/* =========================================================
   RSVP List - Deceased Records Page Styles
   ========================================================= */

.record-list-wrapper {
    min-width: 450px;
    margin: 20px auto;
    padding: 0 10px;
    font-family: 'Inter', sans-serif;
}

.page-title {
    text-align: center;
    font-size: 40px;
    font-weight: 800;
    margin-bottom: 20px;
background: var(--gg, linear-gradient(90deg, #3477be 12.87%, #1A237E 100%));
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    margin-bottom: 30px;
    text-transform: uppercase;
}

.record-list-card {
    background: #FFFFFF;
    border: 1px solid #A6C8FF;
    border-radius: 20px;
    box-shadow: 0 10px 40px rgba(166, 200, 255, 0.2);
    padding: 15px 30px;
    min-height: 230px; /* Keeps the card nicely sized even if empty */
}

/* Grid Layout for the List */
.list-header, .list-row {
    display: grid;
    grid-template-columns: 2fr 2fr 100px; /* Name, Date, Icon */
    align-items: center;
    padding: 20px 0px; /* Slightly reduced from 50px so rows aren't overly tall */
    gap: 2px; /* A small, healthy gap to prevent columns from touching */
}

.list-header {
    font-size: 14px;
    font-weight: 700;
    color: #000;
    border-bottom: 2px solid #E5EFFF;
    margin-bottom: 5px;
    /* REMOVED the 150px gap that was breaking the layout */
}

.list-row {
    border-bottom: 1px solid #E5EFFF;
    transition: background 0.2s ease;
    /* REMOVED the 250px gap that was breaking the layout */
}

/* Force the text to stay horizontal and not wrap */
.col-name, .col-date {
    white-space: nowrap; 
    overflow: hidden;
    text-overflow: ellipsis; /* Adds '...' if a name is miraculously too long */
}


/* Make the name clickable to go to the guest list */
.col-name a {
    text-decoration: none;
    color: #333;
    font-size: 15px;
    font-weight: 400;
    display: block; /* Makes the whole area clickable */
}

.col-name a:hover {
    color: #2C93FA;
}

.col-date {
    font-size: 13px;
    color: #2e2e2e;
    font-style: italic; /* Matches your UI */
}

/* The Trash Can Icon Button */
.delete-btn {
    background: none;
    border: none;
    cursor: pointer;
    color: #888;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: color 0.3s ease;
}

.delete-btn:hover {
    color: #FF4A4A; /* Turns red on hover */
}

.empty-state {
    text-align: center;
    color: #888;
    padding: 30px 0;
    font-style: italic;
}




/* RSVP Floral Background Fix */
.rsvp-floral-inner {
    background-image: url('../images/rsvp.png'); 
    
    /* 100% 100% forces the background to stretch to the exact size of this box */
    background-size: 100% 100%; 
    background-repeat: no-repeat;
    background-position: center;
    
    /* Make the container nice and big */
    width: 100%;
    max-width: 950px; 
    min-height: 580px; /* Taller height so it doesn't squish */
    margin: 0 auto 10px auto; 
    
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    
    /* THE FIX: Huge padding on ALL sides to create a safe zone inside the dotted lines */
    padding: 50px 60px; 
    box-sizing: border-box;
}

/* Photo perfectly sized */
.rsvp-mini-photo {
    width: 100px;
    height: 100px;
    border-radius: 50%;
    margin: 0 auto 15px auto;
    overflow: hidden;
    border: 3px solid #fff;
    box-shadow: 0 4px 10px rgba(0,0,0,0.1);
    flex-shrink: 0; 
}

.rsvp-mini-photo img { 
    width: 100%; 
    height: 100%; 
    object-fit: cover; 
}

.rsvp-name-cn {
    font-size: 28px;
    font-weight: 600;
    margin-bottom: 12px;
    color: #000;
}

.rsvp-invite-text {
    font-size: 13px; 
    color: #444;
    line-height: 1.6;
    text-align: center;
    font-style: italic;
    max-width: 70%;
}

/* RSVP Form Inputs Layout */
.rsvp-form-mock {
    max-width: 600px;
    margin: 0 auto;
}

.rsvp-form-mock .cm-input-group label {
    display: block;
    font-size: 22px;
    font-weight: 700; /* Bold to match UI */
    margin-bottom: 15px;
    text-align: center;
    color: #000;
}

.rsvp-form-mock .cm-input-group input,
.rsvp-form-mock .cm-input-group select {
    width: 100%;
    padding: 16px 20px;
    border: 1px solid #A6C8FF;
    border-radius: 8px;
    background: #F4F9FF;
    text-align: center;
    font-family: 'Inter', sans-serif;
    font-size: 20px;
    box-sizing: border-box;
    transition: all 0.3s ease;
    margin-bottom: 20px;
    appearance: none; /* Removes the default ugly browser arrow */
}

.rsvp-form-mock .cm-input-group input:focus,
.rsvp-form-mock .cm-input-group select:focus {
    outline: none;
    border-color: #2C93FA;
    background-color: #fff;
}

.rsvp-form-mock .cm-row {
    display: flex;
    gap: 20px;
    margin-top: 25px;
}

.rsvp-form-mock .cm-row .cm-input-group { 
    flex: 1; 
}

/* 4. Button Rows - Updated to match UI */
.db-action-row {
    display: flex;
    justify-content: center;
    gap: 120px; /* Increased gap to match the wide spacing in your image */
    margin-top: 40px;
}

.db-btn {
    padding: 12px 35px; /* Adjusted padding for better proportions */
    border-radius: 12px; /* Changed from 50px to 12px for the rounded-rectangle shape */
    font-family: 'Inter', sans-serif;
    font-weight: 700;
    font-size: 22px; /* Increased font size to match the image */
    text-decoration: none;
    cursor: pointer;
    background: #def0ff; /* Very soft light blue background */
    color: #3b8cf6; /* Bright blue text */
    border: 2px solid #c1dcff; /* Added the distinct light blue border from the image */
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.03); /* Extremely soft shadow so it doesn't overpower the border */
    transition: all 0.3s ease;
}

.db-btn:hover { 
    background: #cfe6ff; 
    border-color: #a8cdff; /* Border gets slightly darker on hover */
    box-shadow: 0 6px 15px rgba(59, 140, 246, 0.15);
}









    .contact-item .details p {
    margin: 0;
    font-weight: 700;
    font-size: 9px;
    color: #000;
}


/* --- MEMORIALS BUTTONS WITH IMG SOURCE --- */

.memorial-options-container {
    display: flex;
    gap: 30px; 
    justify-content: center;
    align-items: center;
    padding: 50px 20px;
}

.memorial-circle-btn {
    position: relative;
    width: 180px; 
    height: 180px;
    border-radius: 360px; 
    overflow: hidden; 
    display: flex;
    justify-content: center;
    align-items: center;
    cursor: pointer;
    text-decoration: none;
    border: none;
    
    background: linear-gradient(0deg, rgba(227, 241, 255, 0.10) 0%, rgba(44, 147, 250, 0.10) 100%);
    box-shadow: 0 4px 50px -15px #2C93FA inset, 0 0 100px 25px rgba(107, 181, 255, 0.30);
    transition: transform 0.4s ease;
}

.btn-source-img {
    position: absolute;
    top: 15px;
    left: -12px;
    width: 102.235%;
    height: 100.235%;
    object-fit: cover;
    z-index: 1; 
    pointer-events: none; 
    opacity: 70%;
}


.btn-source-right-img {
    position: absolute;
    top: 15px;
    left: 4px;
    width: 102.235%;
    height: 100.235%;
    object-fit: cover;
    z-index: 1; 
    pointer-events: none; 
    opacity: 70%;
}

/* --- FONT UPDATE HERE --- */
.memorial-circle-btn span {
    position: relative;
    z-index: 2; 
    
    /* Applying Seoul Hangang font */
    font-family: 'Seoul Hangang';
    font-size: 20px; /* Slightly larger as this font tends to be tall/narrow */
    font-weight: 500;
            background: var(--gg, linear-gradient(90deg, #002954 12.87%, #000647 100%));
background-clip: text;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
    text-align: center;
    line-height: 1.1;
    letter-spacing: -0.5px; /* Tighter spacing for a cleaner look */
    text-shadow: 0 2px 4px rgba(255, 255, 255, 0.4);
}

.memorial-circle-btn:hover {
    transform: scale(1.04);
}


}









@media (max-width: 1000px) {
.profile-main {
    /* Changed min-width to max-width to prevent horizontal scrolling on smaller screens */
    max-width: 800px; 
    margin: 0px auto; 
    padding: 0 5px;
    
    /* 1. Use Flexbox to center the card horizontally */
    display: flex;
    flex-direction: column;
    align-items: center;
}

/* The white card container */
.profile-card {
    width: 70%;
    padding: 40px;
    background-color: #fff; /* Ensure background is visible */
    border-radius: 20px;
    
    /* 2. Center everything inside the card */
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

/* Profile Picture Box */
.profile-img-container {
    width: 300px;
    height: 300px;
    margin-top: 30px;
    margin-bottom: 70px;
    /* Centers the image container if it wasn't already */
    margin-left: auto;
    margin-right: auto;
}

/* Information Rows */
.profile-info-section {
    width: 70%;
    margin-bottom: 30px;
    /* 3. Keep text left-aligned but the block centered */
    text-align: left; 
}

/* Edit Profile Button */
.edit-profile-btn {
    width: 80%;
    max-width: 160px;
    padding: 10px;
    font-size: 18px;
    /* 4. Ensure the button stays centered */
    margin: 0 auto;
}
/* =========================================
   EDIT PROFILE FORM STYLES (Adjusted)
========================================= */

/* Ensure whole card is centered on page */
.profile-main {
    max-width: 600px; 
    margin: 40px auto; 
    padding: 0 25px;

}

/* Updated profile card to use centering flex box, 
   makes everything inside center aligned by default */
.profile-card {
    padding: 40px;

}

/* Container already centered by flex, can optionally re-add border or overflow */
.profile-img-container {
    width: 300px;
    height: 300px;

}


/* Unified styling for form input rows within edit profile */
.profile-input-row {
    width: 100%;
    max-width: 600px; /* Keeps input fields from getting too wide */
    margin-bottom: 20px; /* Unified margin */
    text-align: left; /* Keep text left aligned inside the row */
    align-self: center; /* Centers the whole row within the card flex container */
}

.profile-input-row label {
    display: block;
    font-size: 18px;
    color: #888;
    font-weight: 500;
    margin-bottom: 8px;
}

.profile-input {
    width: 100%;
    padding: 18px 20px; /* Slightly reduced padding: 20px -> 18px */
    font-size: 20px;       /* Reduced font size: 22px -> 20px */
    color: #222;
    background-color: #f9fbfd;
    border: 2px solid #e1e8f0;
    border-radius: 12px;
    transition: border-color 0.2s, background-color 0.2s;
}

.profile-input:focus {
    outline: none;
    border-color: #66b2ff;
    background-color: #fff;
}

/* Container for all text information rows, now uses grid for better layout and alignment */
.profile-info-section {
    width: 100%;
    margin-bottom: 40px;
    display: grid;
    grid-template-columns: repeat(1, 1fr); /* Unified column layout */
    gap: 18px;
}

/* Individual info row styling inside the grid section */
.profile-info-grid-row {
    display: flex;
    flex-direction: column;
    padding-bottom: 10px; /* Unified padding */
    border-bottom: 1px solid #f0f0f0;
}

/* Remove bottom border on the very last item in the information list */
.profile-info-grid-row:last-child {
    border-bottom: none;
    margin-bottom: 0;
    padding-bottom: 0;
}

/* Unified label styling for the view page and grid view rows */
.profile-view-label {
    font-size: 18px;
    color: #888;
    font-weight: 500;
    margin-bottom: 8px;
}

/* Unified data value styling for the view page and grid view rows */
.profile-view-value {
    font-size: 24px;
    color: #222;
    font-weight: 600;
}

/* Specific styling for Edit Profile section header, centers text */
.profile-section-title {
    width: 100%;
    max-width: 600px;
    text-align: center;
    font-size: 28px;
    font-weight: 700;
    margin-top: 30px;
    margin-bottom: 20px;
    align-self: center;
}

/* Password instruction text within edit profile */
.profile-instruction {
    width: 100%;
    max-width: 600px;
    text-align: center;
    color: #666;
    margin-bottom: 30px;
    font-size: 16px;
    align-self: center;
}

/* --- ADJUSTED: "Change photo" Button Styling --- */
.upload-btn {
    display: inline-block;
    background: linear-gradient(0deg, rgba(255, 255, 255, 0.10) 0%, rgba(255, 255, 255, 0.10) 100%), linear-gradient(270deg, #4EA6FF 0%, #C9E4FF 105.5%);
    color: #ffffff;
    padding: 12px 30px;     /* Reduced padding from 12px 25px -> 10px 18px */
    border-radius: 40px;
    font-size: 18px;       /* Reduced font size: 16px -> 15px */
    font-weight: 600;
    cursor: pointer;
    border: 1px solid #cce3ff;
    margin-top: 10px; /* Space from picture */
    margin-bottom: 30px; /* Unified bottom spacing */
    width: fit-content;    /* Forces width to fit the text exactly */
    align-self: center;     /* Centers the button within its centered flex container */
    transition: background 0.2s;
}



/* --- ADJUSTED: Bottom Buttons Sizing --- */
/* Save & Cancel Buttons container (already present) */
.profile-button-group {
    display: flex;
    gap: 20px;
    justify-content: center;
    width: 100%;
}

.save-profile-btn {
    flex: 1;
    max-width: 200px;       /* Reduced max-width: 300px -> 250px */
    background: linear-gradient(0deg, rgba(255, 255, 255, 0.10) 0%, rgba(255, 255, 255, 0.10) 100%), linear-gradient(270deg, #4EA6FF 0%, #C9E4FF 105.5%);
    color: #ffffff;
    border: none;
    padding: 15px 10px;     /* Reduced padding from 12px 25px -> 10px 18px */
    font-size: 18px;       /* Reduced font size from 24px -> 18px */
    font-weight: 700;
    border-radius: 25px;   /* Reduced border-radius from 40px -> 25px */
    cursor: pointer;
    align-self: center;     /* Centers the whole row within the centered flex container */
    transition: transform 0.2s, box-shadow 0.2s;
}


.cancel-profile-btn {
    flex: 1;
    max-width: 150px;       /* Reduced max-width: 200px -> 150px */
    background-color: transparent;
    color: #333;
    border: 1px solid #6ba9fc;
    text-align: center;
    text-decoration: none;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 10px 18px;     /* Reduced padding from 12px 25px -> 10px 18px */
    font-size: 18px;       /* Reduced font size from 24px -> 18px */
    font-weight: 700;
    border-radius: 25px;   /* Reduced border-radius from 40px -> 25px */
    transition: background 0.2s;
}
}




@media (max-width: 900px) {
    .profile-main {
        width: 100%; /* Occupy full screen width */
        max-width: 100%; 
        margin: 0 auto;
        padding: 20px 10px; /* Give it some breathing room on the sides */
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    .profile-card {
        /* On mobile/tablet, the card should be wider to fit inputs */
        width: 95%; 
        max-width: 500px; /* Prevents it from getting too chunky on tablets */
        padding: 30px 20px;
        background-color: #fff;
        border-radius: 20px;
        display: flex;
        flex-direction: column;
        align-items: center;
        box-sizing: border-box; /* Crucial: keeps padding inside the width calculation */
    }

    /* Profile Picture Box - The "Fluid" Part */
    .profile-img-container {
        /* Use a responsive size (vw) but cap it so it doesn't get huge */
        width: 50vw; 
        max-width: 220px; 
        aspect-ratio: 1 / 1; /* Keeps it a perfect circle/square */
        height: auto; 
        margin: 10px auto 40px auto;
        border-radius: 50%;
        overflow: hidden;
    }

    .profile-pic {
        width: 100%;
        height: 100%;
        object-fit: cover; /* Ensures the photo doesn't stretch */
    }

    /* Information Rows */
    .profile-info-section {
        width: 100%; /* Take up the full width of the white card */
        margin-bottom: 20px;
        text-align: left;
    }

    /* Make input fields grow with the card */
    .profile-info-row input {
        width: 100%;
        box-sizing: border-box;
    }

    /* Edit Profile Button */
    .edit-profile-btn {
        width: 100%; /* Full width button is easier to tap on mobile */
        max-width: 200px;
        padding: 12px;
        margin-top: 20px;
    }
}




/* =========================================
   USER PROFILE PAGE STYLES
========================================= */
@media (max-width: 900px) {

.profile-label {
    font-size: 15px;
    color: #888;
    font-weight: 500;
    margin-bottom: 8px;
}

.profile-value {
    font-size: 18px;
    color: #222;
    font-weight: 600;
}

/* --- ADJUSTED: "Change photo" Button Styling --- */
.upload-btn {
    display: inline-block;
    background: linear-gradient(0deg, rgba(255, 255, 255, 0.10) 0%, rgba(255, 255, 255, 0.10) 100%), linear-gradient(270deg, #4EA6FF 0%, #C9E4FF 105.5%);
    color: #ffffff;
    padding: 8px 15px;     /* Reduced padding from 12px 25px -> 10px 18px */
    border-radius: 40px;
    font-size: 15px;       /* Reduced font size: 16px -> 15px */
    font-weight: 600;
    cursor: pointer;
    border: 1px solid #cce3ff;
    margin-top: 10px; /* Space from picture */
    margin-bottom: 30px; /* Unified bottom spacing */
    width: fit-content;    /* Forces width to fit the text exactly */
    align-self: center;     /* Centers the button within its centered flex container */
    transition: background 0.2s;
}



/* --- ADJUSTED: Bottom Buttons Sizing --- */
/* Save & Cancel Buttons container (already present) */
.profile-button-group {
    display: flex;
    gap: 20px;
    justify-content: center;
    width: 100%;
}

.save-profile-btn {
    flex: 1;
    max-width: 150px;       /* Reduced max-width: 300px -> 250px */
    background: linear-gradient(0deg, rgba(255, 255, 255, 0.10) 0%, rgba(255, 255, 255, 0.10) 100%), linear-gradient(270deg, #4EA6FF 0%, #C9E4FF 105.5%);
    color: #ffffff;
    border: none;
    padding: 8px 15px;     /* Reduced padding from 12px 25px -> 10px 18px */
    font-size: 15px;       /* Reduced font size from 24px -> 18px */
    font-weight: 700;
    border-radius: 25px;   /* Reduced border-radius from 40px -> 25px */
    cursor: pointer;
    align-self: center;     /* Centers the whole row within the centered flex container */
    transition: transform 0.2s, box-shadow 0.2s;
}


.cancel-profile-btn {
    flex: 1;
    max-width: 100px;       /* Reduced max-width: 200px -> 150px */
    background-color: transparent;
    color: #333;
    border: 1px solid #6ba9fc;
    text-align: center;
    text-decoration: none;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 8px 15px;     /* Reduced padding from 12px 25px -> 10px 18px */
    font-size: 15px;       /* Reduced font size from 24px -> 18px */
    font-weight: 700;
    border-radius: 25px;   /* Reduced border-radius from 40px -> 25px */
    transition: background 0.2s;
}



    .profile-main {
        /* 1. Change min-width to 100% so it fits the screen */
        min-width: 100%; 
        width: 100%;
        margin: 20px 0;
        padding: 0;
        /* 2. Use Flexbox to center the child (the card) */
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    .profile-card {
        /* 3. margin: 0 auto is the classic way to center a block with a width */
        width: 85%; /* 70% might be a bit narrow on mobile, 85% usually looks better */
        margin: 0 auto;
        padding: 20px;
        background-color: #fff; /* Ensuring visibility */
        border-radius: 15px;    /* Optional: matches the smooth UI look */
        
        /* 4. Center the content INSIDE the card (photo, text) */
        display: flex;
        flex-direction: column;
        align-items: center;
        text-align: center;
    }

    /* Adjusting internal sections to fit the centered layout */
    .profile-info-section {
        width: 90%; 
        margin: 0 auto 30px auto;
        text-align: left; /* Keeps labels/values left-aligned inside the centered card */
    }


    .profile-input {
    width: 100%;
    padding: 13px 15px; /* Slightly reduced padding: 20px -> 18px */
    font-size: 17px;       /* Reduced font size: 22px -> 20px */
    color: #222;
    background-color: #f9fbfd;
    border: 2px solid #e1e8f0;
    border-radius: 12px;
    transition: border-color 0.2s, background-color 0.2s;
}


/* Responsive layout for screens 900px and smaller */

    .contact-social-row {
        grid-template-columns: 1fr; /* Stacks items into a single column (3 rows) */
        gap: 20px; /* Reduces the large gap for vertical spacing */
    }

    /* Reset the alignment so all items are centered on mobile */
    .contact-social-row .social-item:nth-child(1),
    .contact-social-row .social-item:nth-child(2),
    .contact-social-row .social-item:nth-child(3) {
        justify-self: center; 
    }


}
