/*------------------------------------*\
  #GLOBAL / BASE STYLES
  - Styles for the entire body, main typography, and global links.
\*------------------------------------*/

/* --- Global Body Styles with Animation --- */
body {
    /* Layout & Positioning */
    padding-top: 61px; /* Add padding to body to prevent content from going under fixed navbar */
    overflow-x: hidden; /* Prevent horizontal scrollbar from animations */

    /* Typography & Color */
    color: #fff;
    font-family: 'Poppins', sans-serif;

    /* Background & Effects */
    background: linear-gradient(135deg, #ff6ec4, #7873f5); /* Initial gradient for the body */

    /* Behavior */
    scroll-behavior: smooth; /* Smooth scrolling for anchor links */

    /* Animation */
    animation: gradientFlip 12s ease infinite; /* Slower animation for a smoother effect */
}

/* Keyframes for the body background animation */
@keyframes gradientFlip {
    0% { background: linear-gradient(135deg, #ff6ec4, #7873f5); }
    25% { background: linear-gradient(135deg, #7873f5, #ff6ec4); }
    50% { background: linear-gradient(135deg, #ff6ec4, #7873f5); }
    75% { background: linear-gradient(135deg, #7873f5, #ff6ec4); }
    100% { background: linear-gradient(135deg, #ff6ec4, #7873f5); }
}

/* --- General Link Styles --- */
a {
    color: #00bcd4;
    text-decoration: none;
    transition: all 0.3s ease;
}
a:hover {
    color: #00e5ff;
    text-shadow: 0 0 12px rgba(0, 229, 255, 0.8);
}


/*------------------------------------*\
  #NAVIGATION
  - Styles for the top navigation bar, brand, links, and toggler.
\*------------------------------------*/

/* --- Navbar Container Styles --- */
.custom-navbar {
    background-color: rgba(0, 0, 0, 0.4); /* Semi-transparent dark background */
    backdrop-filter: blur(10px); /* Frosted glass effect */
    -webkit-backdrop-filter: blur(10px);
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
}

/* --- Navbar Brand (Logo/Name) Styles --- */
.custom-navbar .navbar-brand {
    font-weight: 700;
    font-size: 1.5rem;
    color: #fff;
    text-shadow: 0 0 8px rgba(255, 255, 255, 0.4);
    transition: color 0.3s ease;
}

.custom-navbar .navbar-brand:hover {
    color: #00bcd4;
}

/* --- Navigation Link Styles --- */
.custom-navbar .nav-link {
    color: rgba(255, 255, 255, 0.8);
    font-weight: 500;
    margin-left: 15px;
    position: relative;
    transition: color 0.3s ease;
}

.custom-navbar .nav-link:hover,
.custom-navbar .nav-link.active {
    color: #00bcd4; /* Vibrant blue on hover/active */
}

/* Underline effect for nav links on hover/active */
.custom-navbar .nav-link::before {
    content: '';
    position: absolute;
    bottom: -5px;
    left: 0;
    width: 0;
    height: 2px;
    background-color: #00bcd4;
    transition: width 0.3s ease;
}

.custom-navbar .nav-link:hover::before,
.custom-navbar .nav-link.active::before {
    width: 100%;
}

/* --- Navbar Toggler Icon Styles --- */
.custom-navbar .navbar-toggler {
    border-color: rgba(255, 255, 255, 0.2);
}

.custom-navbar .navbar-toggler-icon {
    filter: brightness(0) invert(1); /* Makes the toggler icon white */
}


/*------------------------------------*\
  #HEADER / HERO SECTION
  - Styles for the main header section, profile image, titles, typing effect,
    and social buttons.
\*------------------------------------*/

/* --- Header Section Container Styles --- */
header {
    /* Layout & Positioning */
    padding: 100px 0 60px 0; /* Adjusted padding for better balance */
    text-align: center;
    position: relative;
    overflow: hidden;

    /* Background & Effects */
    background: rgba(0, 0, 0, 0.2);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
    border-bottom: 1px solid rgba(255, 255, 255, 0.15);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    height: 836px;

    /* Animation */
    animation: headerFadeIn 1s ease-out forwards;
}

/* Keyframes for header fade-in animation */
@keyframes headerFadeIn {
    from {
        opacity: 0;
        transform: translateY(-80px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* --- Profile Image Styles --- */
.profile-img {
    /* Sizing & Shape */
    width: 330px; /* Base size for desktop */
    height: 330px;
    border-radius: 50%;
    object-fit: cover;

    /* Border & Shadow */
    border: 6px solid #e0f2f7;
    box-shadow: 0 0 25px rgba(255, 255, 255, 0.3),
                0 0 0 10px rgba(255, 255, 255, 0.08);

    /* Layout */
    margin-bottom: 35px;
    display: block;
    margin-left: auto;
    margin-right: auto;
    opacity: 0; /* Initial state for animation */

    /* Animation */
    animation: imgScaleIn 1s cubic-bezier(0.68, -0.55, 0.27, 1.55) 0.5s forwards;
}

/* Keyframes for profile image scale-in animation */
@keyframes imgScaleIn {
    from {
        opacity: 0;
        transform: scale(0.5) translateY(20px);
    }
    to {
        opacity: 1;
        transform: scale(1) translateY(0);
    }
}

/* --- General Heading (H1, H2) Styles --- */
h1, h2 {
    font-weight: 700;
    color: #fff;
    text-shadow: 0 0 10px rgba(255, 255, 255, 0.3);
}

/* --- Main Title (H1) Styles --- */
h1 {
    font-size: 3.8rem; /* Base size for desktop */
    opacity: 0; /* Initial state for animation */
    transform: translateY(20px); /* Initial state for animation */

    /* Animation */
    animation: textSlideIn 1s ease-out 1.2s forwards;
}

/* Keyframes for text slide-in animation */
@keyframes textSlideIn {
    from { opacity: 0; transform: translateY(20px); }
    to { opacity: 1; transform: translateY(0); }
}

/* --- Lead Paragraph Text Styles --- */
.lead {
    font-weight: 300;
    line-height: 1.6;
    color: #e0f2f7;
    font-size: 1.3rem; /* Base size for desktop */
}

/* --- Typing Effect Styles --- */
.typing {
    /* Appearance */
    border-right: 2px solid #fff;
    white-space: nowrap;
    overflow: hidden;
    display: inline-block;
    opacity: 0; /* Initial state for animation */

    /* Size */
    width: 0;

    /* Animation: 8 seconds, 80 steps for slow typing */
    animation: typing 8s steps(80, end) forwards, blink 0.75s step-end infinite, textFadeIn 1s ease-out 1.5s forwards;
}

/* Keyframes for typing effect animations */
@keyframes textFadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes typing {
    from { width: 0 }
    to { width: 100% }
}
@keyframes blink {
    50% { border-color: transparent }
}

/* --- Social Buttons & Icons Container Styles --- */
.social-buttons {
    margin-top: 50px;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 20px;
    flex-wrap: wrap; /* Allow buttons to wrap on smaller screens */
    padding: 0 15px; /* Add some horizontal padding for very small screens */
    opacity: 0; /* Initial state for animation */

    /* Animation */
    animation: buttonsFadeIn 1s ease-out 2s forwards;
}

/* Keyframes for social buttons fade-in animation */
@keyframes buttonsFadeIn {
    from { opacity: 0; transform: translateY(30px); }
    to { opacity: 1; transform: translateY(0); }
}

/* --- Custom Button Styles (e.g., "Download CV") --- */
.custom-btn {
    /* Background & Border */
    background-color: #00bcd4;
    border-color: #00bcd4;
    color: #fff;

    /* Layout & Typography */
    padding: 14px 30px;
    border-radius: 35px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    font-size: 1rem; /* Default font size for button */

    /* Shadow & Transition */
    box-shadow: 0 6px 20px rgba(0, 188, 212, 0.4);
    transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
}

.custom-btn:hover {
    background-color: #0097a7;
    border-color: #0097a7;
    transform: translateY(-5px) scale(1.03);
    box-shadow: 0 10px 25px rgba(0, 188, 212, 0.6);
}

/* --- Social Icon Button Styles --- */
.social-icon {
    /* Sizing & Shape */
    width: 65px;
    height: 65px;
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;

    /* Color & Background */
    font-size: 2.8rem; /* Keep existing icon size */
    color: #e0f2f7;
    background-color: rgba(255, 255, 255, 0.08);

    /* Shadow & Transition */
    box-shadow: 0 3px 10px rgba(0, 0, 0, 0.3);
    transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
}

.social-icon:hover {
    color: #00bcd4;
    transform: translateY(-5px) scale(1.15) rotate(5deg);
    background-color: rgba(255, 255, 255, 0.15);
    box-shadow: 0 6px 18px rgba(0, 188, 212, 0.5);
}


/*------------------------------------*\
  #SECTION STYLES
  - General styles for all main content sections (About, Qualifications, etc.).
  - Includes animations for sections and their headings.
\*------------------------------------*/

/* --- General Section Container Styles (for sections with .container class) --- */
section.container {
    /* Layout & Positioning */
    padding: 60px 40px; /* Base padding for desktop */
    margin-top: 80px;
    margin-bottom: 80px;
    position: relative;
    opacity: 0; /* Initial state for animation */
    transform: translateY(50px); /* Initial state for animation */

    /* Appearance & Effects */
    background-color: rgba(0, 0, 0, 0.25);
    border-radius: 20px;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.6);
    border: 1px solid rgba(255, 255, 255, 0.12);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);

    /* Animation */
    animation: sectionRiseIn 1s cubic-bezier(0.23, 1, 0.32, 1) forwards;
}

/* Apply staggered animation delays to each section (e.g., Qualifications, Experience) */
section.container:nth-of-type(1) { animation-delay: 2.5s; }
section.container:nth-of-type(2) { animation-delay: 2.8s; }
section.container:nth-of-type(3) { animation-delay: 3.1s; }
section.container:nth-of-type(4) { animation-delay: 3.4s; }
section.container:nth-of-type(5) { animation-delay: 3.7s; }

/* Keyframes for section rise-in animation */
@keyframes sectionRiseIn {
    from {
        opacity: 0;
        transform: translateY(50px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* --- Section Heading (H2) Styles --- */
section h2 {
    /* Typography */
    font-size: 3rem; /* Base size for desktop */
    display: inline-block; /* For the border-bottom effect */

    /* Layout & Spacing */
    padding-bottom: 20px;
    margin-bottom: 50px !important;

    /* Appearance */
    border-bottom: 3px solid rgba(255, 255, 255, 0.3); /* Existing static underline */
    position: relative; /* Needed for pseudo-element underline */
    overflow: hidden; /* Hide overflow for the underline effect */
    opacity: 0; /* Initial state for animation */
    transform: translateY(30px); /* Initial state for animation */

    /* Interactivity */
    cursor: pointer; /* Indicate it's interactive, even if not a link */
    transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1); /* Add transition for smooth animation */

    /* Animation */
    animation: headingSlideIn 1s ease-out forwards;
}

/* Staggered animation delays for section headings (offset from parent section) */
section.container:nth-of-type(1) h2 { animation-delay: 2.7s; }
section.container:nth-of-type(2) h2 { animation-delay: 3.0s; }
section.container:nth-of-type(3) h2 { animation-delay: 3.3s; }
section.container:nth-of-type(4) h2 { animation-delay: 3.6s; }
section.container:nth-of-type(5) h2 { animation-delay: 3.9s; }

/* Keyframes for heading slide-in animation */
@keyframes headingSlideIn {
    from { opacity: 0; transform: translateY(30px); }
    to { opacity: 1; transform: translateY(0); }
}

/* --- Section Heading Hover Styles --- */
section h2:hover {
    color: #00e5ff; /* Lighter blue on hover */
    transform: translateY(-5px) scale(1.02); /* Lift and slightly enlarge */
    text-shadow: 0 0 15px rgba(0, 229, 255, 0.9); /* Stronger glow */
    border-color: transparent; /* Makes the static border disappear on hover */
}

/* Dynamic underline effect for heading on hover */
section h2::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 3px;
    background-color: #00e5ff; /* Color matching hover text */
    transform: scaleX(0); /* Start hidden */
    transform-origin: bottom right; /* Scale from right to left */
    transition: transform 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
}

section h2:hover::after {
    transform: scaleX(1); /* Expand to full width on hover */
    transform-origin: bottom left; /* End at full width from left */
}


/*------------------------------------*\
  #CARD COMPONENTS
  - Styles for reusable card elements used in Qualifications, Experience, Projects,
    and Certifications.
\*------------------------------------*/

/* --- General Card Container Styles --- */
.card {
    /* Appearance & Effects */
    background-color: rgba(255, 255, 255, 0.12);
    border: none;
    border-radius: 12px;
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.4);
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px);

    /* Typography */
    color: #fff;

    /* Layout */
    margin-bottom: 20px; /* Add margin for stacking on mobile */

    /* Transition */
    transition: all 0.5s cubic-bezier(0.25, 0.8, 0.25, 1);
}

.card:hover {
    transform: translateY(-12px) scale(1.05);
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.7), inset 0 0 20px rgba(255, 255, 255, 0.15);
    background-color: rgba(255, 255, 255, 0.25);
}

/* --- Card Title Styles --- */
.card-title {
    font-weight: 700;
    color: #fff;
    margin-bottom: 15px;
    font-size: 1.4rem; /* Base font size */
}

/* --- Card Text Styles --- */
.card-text {
    font-weight: 300;
    color: #e0f2f7;
    line-height: 1.7;
}

/* --- Project Image Specific Styles (within Project Cards) --- */
.project-image {
    width: 100%;
    height: 200px; /* Adjust as needed */
    object-fit: cover; /* Or 'contain' depending on your preference */
    border-radius: 8px;
    margin-bottom: 1rem;
}


/*------------------------------------*\
  #SPECIFIC SECTION ADJUSTMENTS
  - Minor tweaks for specific sections that don't fit into general component styles.
\*------------------------------------*/

/* --- Contact Section Paragraph Styles --- */
section.container.text-center p {
    font-size: 1.2rem;
    margin-bottom: 15px;
    color: #e0f2f7;
}


/*------------------------------------*\
  #FOOTER
  - Styles for the site's footer.
\*------------------------------------*/

/* --- Footer Container Styles --- */
footer {
    /* Layout & Positioning */
    padding: 40px;
    text-align: center;
    margin-top: 100px;
    opacity: 0; /* Initial state for animation */

    /* Appearance & Effects */
    background: linear-gradient(135deg, #ff6ec4, #7873f5); /* Initial gradient for the body */
    border-top: 1px solid rgba(255, 255, 255, 0.15);
    box-shadow: 0 -8px 25px rgba(0, 0, 0, 0.4);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);

    /* Animation */
    animation: footerFadeIn 1s ease-out 4s forwards;
}

/* Keyframes for footer fade-in animation */
@keyframes footerFadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}


/*------------------------------------*\
  #RESPONSIVE DESIGN / MEDIA QUERIES
  - Adjustments for different screen sizes.
\*------------------------------------*/

/* Small devices (landscape phones, 576px and up) */
@media (max-width: 767.98px) {
    body {
        padding-top: 56px; /* Adjust padding for smaller navbar on mobile */
    }

    header {
        padding: 80px 0 40px 0; /* Less padding on smaller screens */
    }

    .profile-img {
        width: 200px; /* Smaller image on mobile */
        height: 200px;
        border: 4px solid #e0f2f7; /* Thinner border */
        box-shadow: 0 0 15px rgba(255, 255, 255, 0.2), 0 0 0 6px rgba(255, 255, 255, 0.05); /* Smaller glow */
    }

    h1 {
        font-size: 2.5rem; /* Smaller main title on mobile */
    }

    .lead {
        font-size: 1rem; /* Smaller lead text on mobile */
    }

    .typing {
        /* Adjust typing animation for smaller screens if needed, but current values should scale OK */
        animation: typing 6s steps(60, end) forwards, blink 0.75s step-end infinite, textFadeIn 1s ease-out 1s forwards; /* Slightly faster typing for mobile */
    }

    .social-buttons {
        flex-direction: column; /* Stack buttons vertically on mobile */
        gap: 10px; /* Reduce gap between stacked items */
        margin-top: 30px;
    }

    .custom-btn {
        padding: 10px 20px; /* Smaller button padding */
        font-size: 0.9rem; /* Smaller button font */
        width: 80%; /* Make button take up more width */
        max-width: 250px; /* Limit button width */
    }

    .social-icon {
        font-size: 2rem; /* Smaller social icons on mobile */
        width: 45px;
        height: 45px;
    }

    section.container {
        padding: 30px 20px; /* Less padding inside sections on mobile */
        margin-top: 40px;
        margin-bottom: 40px;
        border-radius: 15px; /* Slightly less rounded */
    }

    section h2 {
        font-size: 2rem; /* Smaller section headings on mobile */
        padding-bottom: 10px;
        margin-bottom: 30px !important;
        border-bottom: 2px solid rgba(255, 255, 255, 0.3); /* Thinner underline */
    }

    .card {
        padding: 25px; /* Smaller card padding */
        margin-bottom: 15px; /* Adjust margin for stacking */
    }
    .card-title {
        font-size: 1.2rem; /* Smaller card titles */
    }
    .card-text {
        font-size: 0.9rem; /* Smaller card text */
    }

    section.container.text-center p {
        font-size: 1rem; /* Smaller font for contact info */
    }

    /* footer {
        padding: 25px;
        margin-top: 50px;
    } */
}



/* --- Footer Styles --- */
footer {
    background-color: #1a1a1a; /* Dark, strong background */
    color: #f0f0f0; /* Light text for contrast */
    padding: 80px 0 30px; /* Generous top padding, less bottom */
    margin-top: 80px; /* Good separation from content */
    border-top: 5px solid #007bff; /* A striking top border matching your primary color */
    position: relative; /* For potential future absolute positioning */
}

.footer-heading {
    font-size: 2.2rem;
    font-weight: 700;
    color: #ffffff; /* Brighter heading */
    letter-spacing: 0.05em;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.4);
}

.footer-subtext {
    max-width: 700px; /* Constrain width for readability */
    margin: 0 auto 30px; /* Center and add space */
    font-size: 1.15rem;
    line-height: 1.8;
    color: #d0d0d0;
}

.footer-btn {
    padding: 15px 35px;
    font-size: 1.1rem;
    font-weight: 600;
    border-radius: 50px; /* Pill-shaped button */
    transition: all 0.3s ease;
    background-image: linear-gradient(to right, #007bff, #0056b3); /* Gradient for depth */
    border: none;
}

.footer-btn:hover {
    transform: translateY(-3px); /* Subtle lift effect */
    box-shadow: 0 8px 15px rgba(0, 123, 255, 0.4); /* Glowing shadow */
    background-image: linear-gradient(to right, #0056b3, #007bff); /* Reverse gradient on hover */
}

.footer-bottom {
    border-color: rgba(255, 255, 255, 0.1) !important; /* Lighter border for distinction */
}

.footer-links a {
    color: #a0a0a0; /* Subtle link color */
    text-decoration: none;
    font-weight: 500;
    transition: color 0.3s ease;
}

.footer-links a:hover {
    color: #007bff; /* Primary color on hover */
    text-decoration: underline;
}

/* Back to Top Button */
#back-to-top {
    display: none; /* Hidden by default, shown with JS */
    position: fixed;
    bottom: 30px;
    right: 30px;
    z-index: 1000; /* Ensure it's above other content */
    width: 50px;
    height: 50px;
    border-radius: 50%; /* Circular button */
    text-align: center;
    line-height: 50px; /* Vertically center icon */
    font-size: 1.5rem;
    background-color: rgba(0, 123, 255, 0.8); /* Semi-transparent primary color */
    color: white;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.3);
    transition: all 0.3s ease;
    border: none;
}

#back-to-top:hover {
    background-color: #0056b3;
    transform: translateY(-3px);
    box-shadow: 0 6px 12px rgba(0, 0, 0, 0.4);
}

/* Responsive adjustments for footer */
@media (max-width: 768px) {
    footer {
        padding: 60px 0 25px;
    }
    .footer-heading {
        font-size: 1.8rem;
    }
    .footer-subtext {
        font-size: 1rem;
    }
    .footer-btn {
        padding: 12px 25px;
        font-size: 1rem;
    }
    #back-to-top {
        bottom: 20px;
        right: 20px;
        width: 45px;
        height: 45px;
        line-height: 45px;
        font-size: 1.3rem;
    }
}

@media (max-width: 576px) {
    .footer-links {
        display: flex;
        flex-direction: column;
        gap: 5px;
    }
    .footer-links a {
        margin: 0; /* Remove horizontal margin for stacked links */
    }
}










/* Medium devices (tablets, 768px and up) */
@media (min-width: 768px) and (max-width: 991.98px) {
    .profile-img {
        width: 280px;
        height: 280px;
    }

    h1 {
        font-size: 3.2rem;
    }

    .lead {
        font-size: 1.15rem;
    }

    .social-buttons {
        gap: 15px;
    }

    .custom-btn {
        padding: 12px 25px;
        font-size: 0.95rem;
    }

    .social-icon {
        font-size: 2.4rem;
        width: 55px;
        height: 55px;
    }

    section.container {
        padding: 50px 30px;
        margin-top: 60px;
        margin-bottom: 60px;
    }

    section h2 {
        font-size: 2.5rem;
    }

    .card {
        padding: 30px;
    }

}



/*  Contact section form
/* Contact Section */
/* Contact Section */
.crz-contact {
    background: linear-gradient(135deg, #ff6ec4, #7873f5);
    animation: gradientFlip 8s ease infinite;
    color: #fff;
    border-radius: 0 0 50px 50px;
    margin-top: 40px;
    overflow: hidden;
}

@keyframes gradientFlip {
    0% { background: linear-gradient(135deg, #ff6ec4, #7873f5); }
    50% { background: linear-gradient(135deg, #7873f5, #ff6ec4); }
    100% { background: linear-gradient(135deg, #ff6ec4, #7873f5); }
}

/* Styles for the form card background and effects */
.crz-contact .contact-form-card {
    background: rgba(255, 255, 255, 0.1);
    padding: 30px;
    border-radius: 20px;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    box-shadow: 0 0 20px rgba(0,0,0,0.3);
    text-align: center;
    min-height: 450px; /* Set a minimum height to ensure consistency */
    display: flex;
    flex-direction: column;
    justify-content: center;
}

/* Image styling */
.crz-contact .contact-image {
    width: 100%;
    min-height: 450px; /* Set the same minimum height as the form card */
    object-fit: cover;
    border-radius: 20px;
    display: block;
    box-shadow: 0 0 20px rgba(0,0,0,0.3);
    /* NEW: Add transition for smooth hover effects */
    transition: transform 0.4s ease-in-out, box-shadow 0.4s ease-in-out, filter 0.4s ease-in-out;
}

/* NEW: Image hover effect */
.crz-contact .contact-image:hover {
    transform: scale(1.03) rotate(1deg); /* Slightly enlarge and rotate */
    box-shadow: 0 0 35px rgba(0, 198, 255, 0.7), 0 0 15px rgba(0, 114, 255, 0.5); /* Glowing effect */
    filter: brightness(1.1); /* Slightly brighten the image */
    cursor: pointer; /* Indicate it's interactive, even if not linked */
}


/* Form element styles (these remain mostly unchanged) */
.crz-contact .contact-form input,
.crz-contact .contact-form select,
.crz-contact .contact-form textarea {
    width: 100%;
    padding: 15px;
    margin: 10px 0;
    background: rgba(255,255,255,0.2);
    border: none;
    border-radius: 10px;
    color: white;
    font-size: 16px;
    resize: none;
    outline: none;
}

.crz-contact .contact-form input::placeholder,
.crz-contact .contact-form textarea::placeholder {
    color: #ddd;
}

.crz-contact .contact-form button {
    background: #00c6ff;
    background: linear-gradient(to right, #0072ff, #00c6ff);
    border: none;
    padding: 15px 30px;
    border-radius: 30px;
    color: white;
    font-size: 16px;
    cursor: pointer;
    margin-top: 10px;
    transition: 0.3s ease;
}

.crz-contact .contact-form button:hover {
    background: linear-gradient(to right, #00c6ff, #0072ff);
    transform: scale(1.05);
}

/* --- Responsive Adjustments --- */
@media (max-width: 767.98px) {
    .crz-contact .row {
        flex-direction: column;
    }

    .crz-contact .contact-image {
        margin-bottom: 30px;
        height: auto; /* Allow image to scale naturally */
        max-height: 400px; /* Limit height for mobile portrait */
        min-height: unset; /* IMPORTANT: Remove min-height on mobile to avoid excessive height */
    }

    .crz-contact .contact-form-card {
        padding: 25px;
        min-height: unset; /* IMPORTANT: Remove min-height on mobile */
    }
}







/* --- Form Validation Styles --- */
.crz-contact .contact-form .is-invalid {
    border: 2px solid #ff4d4d !important; /* Red border for invalid fields */
    box-shadow: 0 0 8px rgba(255, 77, 77, 0.5); /* Soft red glow */
}

.crz-contact .contact-form .error-message {
    color: #ff4d4d; /* Red text for error messages */
    font-size: 0.85rem;
    margin-top: -5px; /* Pull it slightly closer to the input above */
    margin-bottom: 10px; /* Space it from the next input */
    text-align: left; /* Align text to the left */
    padding-left: 5px; /* Small indentation */
    background-color: rgba(255, 77, 77, 0.1); /* Subtle red background */
    border-radius: 5px;
    padding: 5px 8px;
    animation: fadeIn 0.3s ease-out; /* Fade in animation */
}

/* Keyframes for error message fade-in */
@keyframes fadeIn {
    from { opacity: 0; transform: translateY(-5px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Adjust margin for inputs/selects when an error is present below them */
.crz-contact .contact-form input.is-invalid + .error-message,
.crz-contact .contact-form select.is-invalid + .error-message,
.crz-contact .contact-form textarea.is-invalid + .error-message {
    margin-bottom: 15px; /* Add slightly more space when an error is present */
}