/*
* LGchassis - Main Stylesheet - Luxurious & Modern Update
*
* This stylesheet contains all custom JavaScript functionality for the LGchassis website,
* revised for a modern, subtle luxurious aesthetic.
* It is organized by sections: global styles, components, page-specific styles,
* and media queries for responsive design.
*/

/* -----------------------------------------------------------------------------
 * Table of Contents:
 * 1. Global Styles & Typography
 * 2. Navigation
 * 3. Header & Footer
 * 4. Components (Buttons, Cards, etc.)
 * 5. Page Header
 * 6. Home Page Sections
 * 7. Services Page Styles
 * 8. Gallery Page Styles
 * 9. About Page Styles
 * 10. Contact Page Styles
 * 11. Responsive Media Queries
 * -------------------------------------------------------------------------- */

/* -----------------------------------------------------------------------------
 * 1. Global Styles & Typography
 * -------------------------------------------------------------------------- */
/*
 * Import Fonts:
 * We'll replace Roboto and Montserrat with a pairing like Merriweather (Serif for headings - provides a touch of classic luxury)
 * and Source Sans 3 (Modern Sans-serif for body - highly readable and clean).
 * Make sure to include these in your HTML <head>:
 * <link href="https://fonts.googleapis.com/css2?family=Merriweather:wght@400;700&family=Source+Sans+3:wght@400;600&display=swap" rel="stylesheet">
 */

 :root {
    /* Color Palette (More refined and muted) */
    --primary-color: #1F3A93; /* Deep, sophisticated Blue */
    --secondary-color: #F8F9FA; /* Soft off-white/very light gray */
    --accent-color: #CC9900; /* Muted Gold/Bronze - used sparingly */
    --dark-color: #343A40; /* Deep Charcoal Gray - primary text */
    --light-color: #FFFFFF; /* White */
    --gray-color: #6C757D; /* Muted gray - subtle text/borders */
    --border-color: #E9ECEF; /* Lighter, softer border */

    /* Spacing */
    --section-padding: 6rem 0; /* Slightly more generous */
    --content-padding: 4rem 0;

    /* Shadows (Softer) */
    --subtle-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
    --hover-shadow: 0 8px 20px rgba(0, 0, 0, 0.08);

    /* Transitions */
    --transition-speed: 0.3s ease-in-out;
}

body {
    font-family: 'Source Sans 3', sans-serif; /* Modern sans for readability */
    color: var(--dark-color);
    line-height: 1.7; /* Increased line height for luxury */
    overflow-x: hidden;
    background-color: var(--secondary-color); /* Use the soft background color */
}

h1, h2, h3, h4, h5, h6 {
    font-family: 'Merriweather', serif; /* Serif for elegant headings */
    font-weight: 700; /* Use bold serif weight */
    margin-bottom: 1.5rem; /* Slightly more space below headings */
    color: var(--dark-color); /* Ensure headings use dark color */
}

h1 {
    font-size: 3rem; /* Slightly larger H1 */
}

h2 {
    font-size: 2.2rem;
    margin-bottom: 2rem;
    position: relative;
}

h3 {
    font-size: 1.7rem;
}

p {
    margin-bottom: 1.2rem; /* More space below paragraphs */
    color: var(--gray-color); /* Subtle paragraph color */
}

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

a:hover {
    color: #152B69; /* Darker shade of primary color */
    text-decoration: underline; /* Subtle underline on hover */
}

.section-heading {
    margin-bottom: 3rem; /* More space below section headings */
}

.separator {
    width: 60px; /* Thinner separator */
    height: 2px; /* Thinner separator */
    background-color: var(--accent-color); /* Use accent color for subtlety */
    margin-bottom: 2rem;
    opacity: 0.7; /* Slightly transparent */
}

.separator.mx-auto {
    margin-left: auto;
    margin-right: auto;
}

/* Container adjustments - Ensure they align with Bootstrap if used */
.container {
    padding-left: 15px;
    padding-right: 15px;
}

/* Placeholder for images */
.placeholder-image {
    background-color: #E9ECEF; /* Use border color */
    height: 100%;
    min-height: 300px;
    border-radius: 5px;
    opacity: 0.8;
}

/* -----------------------------------------------------------------------------
 * 2. Navigation
 * -------------------------------------------------------------------------- */
.navbar {
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05); /* Softer shadow */
    padding: 1rem 0;
    transition: all var(--transition-speed);
    background-color: var(--light-color); /* Ensure background is solid for shadow */
}

.navbar-light .navbar-nav .nav-link {
    color: var(--dark-color);
    font-weight: 600; /* Slightly bolder nav links */
    padding: 0.7rem 1.2rem; /* More padding */
    transition: color var(--transition-speed), border-bottom var(--transition-speed);
    border-bottom: 2px solid transparent; /* Add subtle border for hover/active */
}

.navbar-light .navbar-nav .nav-link:hover,
.navbar-light .navbar-nav .nav-link.active {
    color: var(--primary-color);
    border-bottom-color: var(--primary-color); /* Show border on hover/active */
}

.navbar-brand {
    font-family: 'Merriweather', serif;
    font-weight: 700;
    font-size: 1.7rem; /* Slightly larger brand */
    color: var(--dark-color) !important; /* Brand color is dark */
    transition: color var(--transition-speed);
}

.navbar-brand strong {
    color: var(--primary-color); /* Highlight part of the brand */
}


.navbar-brand:hover {
    color: var(--primary-color) !important;
}

.navbar-toggler {
    border: 1px solid var(--border-color); /* Add a subtle border */
    padding: 0.6rem;
    border-radius: 4px;
    transition: border-color var(--transition-speed);
}

.navbar-toggler:focus {
    box-shadow: 0 0 0 0.25rem rgba(31, 58, 147, 0.25); /* Softer focus outline */
    outline: none;
    border-color: var(--primary-color);
}

/* -----------------------------------------------------------------------------
 * 3. Header & Footer
 * -------------------------------------------------------------------------- */
main {
    padding-top: 90px; /* Space for fixed navbar */
    min-height: calc(100vh - 400px); /* Minimum height to push footer down (adjust based on footer height) */
}

.footer {
    background-color: var(--dark-color);
    color: rgba(255, 255, 255, 0.7); /* Softer light color */
    padding: 5rem 0 3rem; /* More generous padding */
}

.footer h5 {
    color: var(--light-color);
    margin-bottom: 2rem;
    font-size: 1.3rem; /* Slightly larger footer headings */
    font-family: 'Source Sans 3', sans-serif; /* Use sans-serif for footer headings */
    font-weight: 600;
}

.footer p,
.footer a,
.footer ul li {
    color: rgba(255, 255, 255, 0.6); /* Softer text color */
    font-size: 0.95rem;
    line-height: 1.8;
}

.footer a {
    transition: color var(--transition-speed);
}

.footer a:hover {
    color: var(--light-color);
    text-decoration: underline;
}

.footer ul li {
    margin-bottom: 0.8rem; /* More space between list items */
}

.footer hr {
    border-color: rgba(255, 255, 255, 0.08); /* Lighter border */
    margin: 3rem 0; /* More space around HR */
}

.social-icons a {
    display: inline-flex; /* Use flex for perfect centering */
    align-items: center;
    justify-content: center;
    width: 40px; /* Slightly larger icons */
    height: 40px; /* Slightly larger icons */
    background-color: rgba(255, 255, 255, 0.08); /* More subtle background */
    color: var(--light-color);
    border-radius: 50%;
    font-size: 1.1rem;
    margin-right: 0.8rem; /* More space between icons */
    transition: all var(--transition-speed);
}

.social-icons a:hover {
    background-color: var(--primary-color);
    color: var(--light-color);
    transform: translateY(-4px); /* Subtle lift */
}

.footer address p {
    margin-bottom: 0.6rem;
}

/* -----------------------------------------------------------------------------
 * 4. Components (Buttons, Cards, etc.)
 * -------------------------------------------------------------------------- */
.btn {
    padding: 0.85rem 2rem; /* More padding */
    border-radius: 30px; /* Pill shape for modern feel */
    font-weight: 600;
    text-transform: uppercase; /* Subtle uppercase */
    letter-spacing: 0.05em;
    transition: all var(--transition-speed);
    border-width: 2px; /* Thicker border for outline btn */
    /* ADD THIS for buttons with potentially long text: */
    white-space: normal; /* Allow text to wrap */
    word-break: break-word; /* Helps break very long words if absolutely necessary */
    line-height: 1.4; /* Adjust line height for wrapped text if needed */
    text-align: center; /* Ensure wrapped text is centered */
}

.btn-primary {
    background-color: var(--primary-color);
    border-color: var(--primary-color);
    color: var(--light-color);
}

.btn-primary:hover {
    background-color: #152B69; /* Darker shade of primary color */
    border-color: #152B69;
    transform: translateY(-3px);
    box-shadow: 0 6px 12px rgba(31, 58, 147, 0.3); /* Subtle shadow on hover */
}

.btn-outline-primary {
    color: var(--primary-color);
    border-color: var(--primary-color);
    background-color: transparent;
}

.btn-outline-primary:hover {
    background-color: var(--primary-color);
    color: var(--light-color);
    transform: translateY(-3px);
    box-shadow: 0 6px 12px rgba(31, 58, 147, 0.3); /* Subtle shadow on hover */
}

.service-card,
.team-card,
.gallery-card,
.project-card,
.testimonial-card,
.material-card,
.feature-card {
    background-color: var(--light-color);
    border-radius: 8px; /* Slightly larger border radius */
    box-shadow: var(--subtle-shadow); /* Use subtle shadow variable */
    padding: 2.5rem; /* More internal padding */
    height: 100%;
    transition: all var(--transition-speed);
    border: 1px solid transparent; /* Add subtle border */
}

.service-card:hover,
.team-card:hover,
.gallery-card:hover,
.project-card:hover,
.feature-card:hover,
.material-card:hover, /* Added material card to hover effect */
.testimonial-card:hover { /* Added testimonial card to hover effect */
    transform: translateY(-5px);
    box-shadow: var(--hover-shadow); /* Use hover shadow variable */
    border-color: rgba(31, 58, 147, 0.1); /* Subtle border color on hover */
}


.service-icon,
.feature-icon,
.material-icon,
.value-icon,
.contact-icon {
    font-size: 3rem; /* Larger icons */
    color: var(--primary-color);
    margin-bottom: 1.8rem; /* More space below icons */
    opacity: 0.9; /* Slightly less opaque icons */
}

/* Refined text colors within cards */
.service-card p, .feature-card p, .material-card p {
    color: var(--dark-color); /* Ensure main text in cards is dark */
}


/* -----------------------------------------------------------------------------
 * 5. Page Header
 * -------------------------------------------------------------------------- */
.page-header {
    background: linear-gradient(rgba(31, 58, 147, 0.8), rgba(31, 58, 147, 0.8)), url('https://source.unsplash.com/random/1600x600/?modern-building') no-repeat center center; /* Use primary color in gradient */
    background-size: cover;
    color: var(--light-color);
    padding: 8rem 0 6rem; /* More padding */
    text-align: center;
    margin-bottom: 4rem; /* More margin below header */
    position: relative;
    overflow: hidden; /* Helps contain background */
    /* --- ADD THESE LINES --- */
    min-height: 75vh; /* Sets the height to 75% of the viewport's height */
    display: flex; /* Enables Flexbox */
    align-items: center; /* Vertically centers the content */
    justify-content: center; /* Horizontally centers the content */

}

/* Subtle gradient overlay for depth */
.page-header::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(to bottom, rgba(31, 58, 147, 0.1), rgba(31, 58, 147, 0.4));
    z-index: 1;
}

.page-header .container {
    position: relative;
    z-index: 2; /* Ensure content is above overlay */
    width: 100%;
}


.page-header h1 {
    font-weight: 700;
    margin-bottom: 1.5rem;
    font-size: 3rem; /* Larger title */
    color: var(--light-color); /* Ensure title is white */
    text-shadow: 1px 1px 4px rgba(0, 0, 0, 0.2); /* Subtle text shadow */
}

.page-header .lead {
    font-size: 1.35rem; /* Larger lead text */
    max-width: 900px;
    margin: 0 auto 2rem; /* Add space below lead */
    color: rgba(255, 255, 255, 0.9); /* Softer white */
}

/* Optional: Breadcrumbs for pages */
.page-header .breadcrumb {
    background: none;
    margin-bottom: 0;
    justify-content: center;
}

.page-header .breadcrumb-item {
    color: rgba(255, 255, 255, 0.7);
}

.page-header .breadcrumb-item a {
    color: rgba(255, 255, 255, 0.9);
    font-weight: 600;
}

.page-header .breadcrumb-item.active {
    color: var(--light-color);
    font-weight: 700;
}

/* -----------------------------------------------------------------------------
 * 6. Home Page Sections
 * -------------------------------------------------------------------------- */
/* Hero Section */



/* Welcome Section */
.welcome-section {
    padding: var(--section-padding);
    background-color: var(--light-color); /* White background for contrast */
}

.welcome-image {
    height: 100%;
    min-height: 450px; /* Taller image */
    object-fit: cover; /* Added object-fit */
    border-radius: 8px;
    box-shadow: var(--subtle-shadow);
}

.core-values {
    display: flex;
    flex-wrap: wrap;
    gap: 2rem; /* More space between items */
    margin-top: 3rem; /* More space above values */
}

.value-item {
    flex: 1 0 calc(33.333% - 1.4rem); /* Adjust flex basis for gap */
    text-align: center;
    padding: 2rem; /* More padding */
    background-color: var(--secondary-color); /* Use soft background */
    border-radius: 8px;
    transition: all var(--transition-speed);
    border: 1px solid var(--border-color); /* Subtle border */
}

.value-item:hover {
    transform: translateY(-8px); /* More pronounced lift on hover */
    box-shadow: var(--hover-shadow);
    border-color: rgba(31, 58, 147, 0.1);
}

.value-item i {
    font-size: 2.8rem; /* Larger icons */
    color: var(--primary-color);
    margin-bottom: 1.5rem;
    opacity: 0.9;
}

.value-item h4 {
    font-size: 1.3rem; /* Larger value headings */
    margin-bottom: 0.8rem;
    color: var(--dark-color);
}

.value-item p {
    color: var(--gray-color);
    font-size: 0.95rem;
    margin-bottom: 0; /* Remove margin bottom if it's the last element */
}


/* Services Overview */
.services-overview {
    padding: var(--section-padding);
    background-color: var(--secondary-color); /* Soft background */
}

.service-card {
    text-align: center;
}

/* Project Showcase */
.project-showcase {
    padding: var(--section-padding);
    background-color: var(--light-color); /* White background */
}

.project-card {
    overflow: hidden;
    padding: 0;
}

.project-image {
    height: 300px; /* Taller project images */
    overflow: hidden;
    position: relative;
}

.project-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease; /* Subtle zoom on hover */
}

.project-card:hover .project-image img {
    transform: scale(1.05);
}

.project-details {
    padding: 2rem; /* More padding */
    background-color: var(--light-color);
}

.project-details h4 {
    font-size: 1.4rem; /* Larger project titles */
    margin-bottom: 0.6rem;
    color: var(--dark-color);
}
.project-details p {
    color: var(--gray-color);
    font-size: 0.95rem;
    margin-bottom: 0;
}


/* Testimonials */
.testimonials {
    padding: var(--section-padding);
    background-color: var(--secondary-color); /* Soft background */
}

.testimonial-card {
    text-align: center;
    padding: 3rem; /* More padding */
}

.testimonial-content p {
    font-style: italic;
    position: relative;
    padding: 0 1.5rem; /* More padding for quotes */
    margin-bottom: 2rem; /* More space below quote */
    font-size: 1.1rem;
    color: var(--dark-color); /* Testimonial text is dark */
    line-height: 1.8;
}

.testimonial-content p:before,
.testimonial-content p:after {
    content: '\201C'; /* Left double quote */
    font-size: 3rem; /* Larger quotes */
    color: var(--primary-color);
    position: absolute;
    opacity: 0.3; /* Softer opacity */
    line-height: 1;
}
.testimonial-content p:after {
     content: '\201D'; /* Right double quote */
}

.testimonial-content p:before {
    left: 0;
    top: -0.5rem; /* Adjust positioning */
}

.testimonial-content p:after {
    right: 0;
    bottom: -1rem; /* Adjust positioning */
    top: auto; /* Ensure it stays at the bottom */
}


.testimonial-author h5 {
    font-size: 1.2rem; /* Larger author name */
    margin-bottom: 0.4rem;
    color: var(--dark-color);
}

.testimonial-author p {
    font-size: 0.9rem;
    color: var(--gray-color);
    margin-bottom: 0;
}


/* Call to Action */
.cta-section {
    background: linear-gradient(rgba(34, 34, 34, 0.75), rgba(34, 34, 34, 0.75)), url('https://source.unsplash.com/random/1600x900/?construction,modern-building') no-repeat center center; /* Darker, neutral overlay */
    background-size: cover;
    color: var(--light-color);
    padding: 7rem 0; /* More padding */
    text-align: center;
}

.cta-content {
    max-width: 900px;
    margin: 0 auto;
}

.cta-content h2 {
    font-size: 3rem; /* Larger CTA heading */
    margin-bottom: 2rem;
    color: var(--light-color);
}

.cta-content .lead {
    font-size: 1.4rem; /* Larger CTA lead text */
    margin-bottom: 3rem; /* More space before button */
    color: rgba(255, 255, 255, 0.9);
}

/* static/css/language-select.css */

.language-select-hero {
    position: relative;
    overflow: hidden;
    min-height: 100vh; /* Full viewport height */
    display: flex;
    align-items: center; /* Vertically center content */
    justify-content: center; /* Horizontally center content */
    text-align: center;
    color: var(--light-color); /* Ensure this var is defined in style.css or here */
    /* Background image and overlay will be handled by the img and div inside */
    background: none; /* Ensure no default background */
}

.language-select-hero .container {
    position: relative;
    z-index: 2; /* Ensure content is above overlay and image */
    padding: 2rem; /* Add some padding */
}

.language-select-hero h1 {
    color: var(--light-color); /* White title */
    margin-bottom: 2rem;
    font-size: 3rem; /* Adjusted slightly from your template example */
    text-shadow: 1px 1px 6px rgba(0, 0, 0, 0.3); /* Stronger shadow for readability */
}

.language-options {
    display: flex;
    flex-wrap: wrap;
    justify-content: center; /* Center buttons */
    gap: 1.5rem; /* Space between buttons */
    margin-top: 2.5rem; /* Adjusted slightly */
}

.language-option-button {
    /* Reuse Bootstrap button styling */
    /* Or define custom styles */
    padding: 1rem 2.5rem;
    font-size: 1.15rem; /* Adjusted slightly */
    font-weight: 600; /* Adjusted slightly */
    border-radius: 50px; /* Pill shape */
    text-transform: uppercase;
    transition: all var(--transition-speed); /* Ensure this var is defined */
    min-width: 200px; /* Ensure buttons have a decent width */
}

.language-option-button i {
    margin-right: 0.8rem; /* Space between icon and text */
}

.language-option-button:hover {
    transform: translateY(-4px);
    box-shadow: var(--hover-shadow); /* Ensure this var is defined */
}

.language-select-footer {
    position: absolute;
    bottom: 0;
    width: 100%;
    padding: 1.5rem 0;
    color: rgba(255, 255, 255, 0.7);
    text-align: center;
    font-size: 0.9rem;
    z-index: 2; /* Ensure it's above background */
}
.language-select-footer a {
    color: rgba(255, 255, 255, 0.9);
    text-decoration: underline;
}
.language-select-footer a:hover {
    color: var(--light-color);
}
.language-select-logo .navbar-brand { /* Ensure logo text is white */
   color: var(--light-color) !important; /* Added !important if needed to override other styles */
}

/* These might already be in your main style.css, if so, you might not need to repeat them here */
/* Or, ensure they are specific enough if they are variations for this page only */
.page-header-bg-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center; /* Experiment with this */
}

.hero-background-overlay {
   position: absolute;
   top: 0;
   left: 0;
   width: 100%;
   height: 100%;
   background-color: rgba(0, 0, 0, 0.5); /* Example overlay */
   z-index: 1;
}

/* -----------------------------------------------------------------------------
 * 7. Chassis Page Styles (Renamed to Chassis Page Styles conceptually)
 * -------------------------------------------------------------------------- */

 /* Sticky Page Menu (Placeholder for JS) */
 .sticky-page-menu {
    /* Basic styling for the sticky menu bar */
    /* JS is needed to make it actually sticky and update active state */
    background-color: var(--secondary-color); /* Light background */
    /* Add a subtle shadow */
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.03);
    position: sticky; /* Make it sticky */
    top: 90px; /* Adjust based on your fixed navbar height */
    z-index: 50; /* Ensure it's above most content */
    text-align: center;
    padding: 0.8rem 0;
}

.sticky-page-menu .nav-link {
    /* Style for links in the sticky menu */
    color: var(--dark-color);
    font-weight: 600;
    padding: 0.5rem 1rem;
    transition: color var(--transition-speed), border-bottom var(--transition-speed);
    border-bottom: 2px solid transparent;
    display: inline-block; /* Ensure padding works horizontally */
}

.sticky-page-menu .nav-link:hover,
.sticky-page-menu .nav-link.active {
    color: var(--primary-color);
    border-bottom-color: var(--primary-color);
}

/* Materials Section */
.materials-section {
    padding: var(--section-padding);
    background-color: var(--light-color); /* White background */
}

.material-image,
.tech-image,
.pricing-image { /* Apply styles to image containers in these sections */
    height: 100%; /* Ensure image container takes full height */
    min-height: 300px; /* Minimum height for images */
}

.material-image img,
.tech-image img,
.pricing-image img {
     /* img-fluid class should handle max-width: 100% */
     width: 100%; /* Ensure image fills its container */
     height: 100%; /* Ensure image fills its container */
     object-fit: cover; /* Crop image to cover container */
     border-radius: 8px; /* Rounded corners */
     box-shadow: var(--subtle-shadow); /* Subtle shadow */
}

.material-details h3,
.tech-details h3,
.pricing-details h2 { /* Ensure headings within these details blocks are dark */
    color: var(--dark-color);
}

.material-details p,
.tech-details p,
.pricing-details p { /* Ensure paragraph text is gray */
     color: var(--gray-color);
}


/* Styles Section */
.styles-section {
    padding: var(--section-padding);
    background-color: var(--secondary-color); /* Soft background */
}

/* Style cards reuse project-card styles for consistency */
.style-card {
    /* Inherits styles from .project-card */
}

.style-image {
    /* Inherits styles from .project-image */
    height: 250px; /* Adjust height as needed for style cards */
}

.style-image img {
     /* Inherits styles from .project-image img */
}

.style-details {
    /* Inherits styles from .project-details */
    text-align: center; /* Center text as per template */
}

.style-details h4 {
     /* Inherits styles from .project-details h4 */
     color: var(--dark-color);
}
.style-details p {
     /* Inherits styles from .project-details p */
     color: var(--gray-color);
     font-size: 0.95rem; /* Adjusted slightly for detail text */
}


/* Technical Aspects Section */
.technical-section {
    padding: var(--section-padding);
    background-color: var(--light-color); /* White background */
}

/* Tech image/details reuse material styles */


/* Pricing Section */
.pricing-section {
    padding: var(--section-padding);
    background-color: var(--secondary-color); /* Soft background */
}

/* Pricing image/details reuse material styles */


/* Accessories Section */
.accessories-section {
    padding: var(--section-padding);
    background-color: var(--light-color); /* White background */
}

/* Accessory cards reuse feature-card styles */
.accessory-card {
     /* Inherits styles from .feature-card */
     padding: 2rem; /* Slightly less padding than feature card for denser grid */
}
.accessory-icon {
     /* Inherits styles from .feature-icon */
     font-size: 2.5rem; /* Slightly smaller icons than feature icon */
     margin-bottom: 1.2rem; /* Adjusted margin */
}
.accessory-card h3 {
     /* Styles for accessory titles */
     font-size: 1.25rem;
     color: var(--dark-color);
     margin-bottom: 0.8rem;
}
.accessory-card p {
     /* Styles for accessory descriptions */
     color: var(--gray-color);
     font-size: 0.95rem;
     margin-bottom: 0;
}


/* Tips & Advice Section */
.tips-advice-section {
    padding: var(--section-padding);
    background-color: var(--secondary-color); /* Soft background */
}

/* Tip cards reuse project-card styles */
.tip-card {
    /* Inherits styles from .project-card */
}
.tip-image {
    /* Inherits styles from .project-image */
     height: 220px; /* Adjust height for tip images */
}
.tip-image img {
    /* Inherits styles from .project-image img */
}
.tip-details {
    /* Inherits styles from .project-details */
}
.tip-details h4 {
     /* Inherits styles from .project-details h4 */
     font-size: 1.25rem; /* Slightly smaller titles */
     color: var(--dark-color);
}
.tip-details p {
     /* Inherits styles from .project-details p */
     color: var(--gray-color);
     font-size: 0.9rem; /* Slightly smaller text */
     margin-bottom: 0.8rem; /* Space above button */
}
/* --- general chassis page
/* Override default page header background and overlay for the chassis page */
.chassis-page .page-header {
    background: none !important; /* Override the background image/gradient */
    background-size: auto !important; /* Override background size */
    /* Keep other properties like padding, position, overflow, z-index etc. */
}

.chassis-page .page-header::before {
    display: none !important; /* Hide the default CSS pseudo-element overlay */
}

/* Style for the HTML image background used in .chassis-page .page-header */
.page-header-bg-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover; /* Ensure image covers the area */
    z-index: -2; /* Place it behind the overlay (-1) and content (2) */
    display: block; /* Ensure it's displayed */
}

/* --- PVC
/* Override default page header background and overlay for the PVC page */
.pvc-page .page-header {
    background: none !important; /* Override the background image/gradient */
    background-size: auto !important; /* Override background size */
    /* Keep other properties like padding, position, overflow, z-index etc. */
}

.pvc-page .page-header::before {
    display: none !important; /* Hide the default CSS pseudo-element overlay */
}

/* Style for the HTML image background used in .pvc-page .page-header */
.page-header-bg-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover; /* Ensure image covers the area */
    z-index: -2; /* Place it behind the overlay (-1) and content (2) */
    display: block; /* Ensure it's displayed */
}

/* --- Aluminum Chassis*/

.aluminium-page .page-header {
    background: none !important; /* Override the background image/gradient */
    background-size: auto !important; /* Override background size */
    /* Keep other properties like padding, position, overflow, z-index etc. */
}

.aluminium-page .page-header::before {
    display: none !important; /* Hide the default CSS pseudo-element overlay */
}

/* --- Wooden Chassis */
.wooden-page .page-header {
    background: none !important; /* Override the background image/gradient */
    background-size: auto !important; /* Override background size */
    /* Keep other properties like padding, position, overflow, z-index etc. */
}

.wooden-page .page-header::before {
    display: none !important; /* Hide the default CSS pseudo-element overlay */
}
/* Doors */

.doors-page .page-header {
    background: none !important; /* Override the background image/gradient */
    background-size: auto !important; /* Override background size */
    /* Keep other properties like padding, position, overflow, z-index etc. */
}

.doors-page .page-header::before {
    display: none !important; /* Hide the default CSS pseudo-element overlay */
}

/* Sliding Doors */

.sliding-doors-page .page-header {
    background: none !important; /* Override the background image/gradient */
    background-size: auto !important; /* Override background size */
    /* Keep other properties like padding, position, overflow, z-index etc. */
}

.sliding-doors-page .page-header::before {
    display: none !important; /* Hide the default CSS pseudo-element overlay */
}

.sticky-page-menu {
    background-color: var(--light-color); /* Or var(--secondary-color) */
    position: sticky;
    top: 80px; /* Adjust based on your main navbar's height */
    z-index: 1020; /* Ensure it's above content but below modals if any */
    transition: top 0.3s ease-in-out;
}
.sticky-page-menu.is-sticky { /* Example for JS part */
    /* Styles when it becomes fully sticky, if different */
}
.sticky-page-menu .nav-link {
    color: var(--dark-color);
    font-weight: 500;
}
.sticky-page-menu .nav-link:hover,
.sticky-page-menu .nav-link.active { /* You might need JS to set active class */
    color: var(--primary-color);
    /* border-bottom: 2px solid var(--primary-color); */
}

/* -----------------------------------------------------------------------------
 * 8. Gallery Page Styles
 * -------------------------------------------------------------------------- */
.gallery-intro {
    padding-top: 4rem;
    padding-bottom: 3rem;
    background-color: var(--light-color);
}

.gallery-filter {
    padding: 1.5rem 0; /* More padding */
    background-color: var(--secondary-color);
    margin-bottom: 3rem;
}

.filter-buttons {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.8rem; /* More space */
    margin-bottom: 1.5rem;
}

.filter-btn {
    padding: 0.6rem 1.8rem; /* More padding */
    border-radius: 30px;
    transition: all var(--transition-speed);
    background-color: var(--light-color);
    border: 1px solid var(--border-color);
    color: var(--dark-color);
    font-weight: 600;
}

.filter-btn:hover {
     border-color: var(--primary-color);
     color: var(--primary-color);
     background-color: var(--secondary-color);
}

.filter-btn.active {
    background-color: var(--primary-color);
    color: var(--light-color);
    border-color: var(--primary-color);
    box-shadow: 0 4px 8px rgba(31, 58, 147, 0.2);
}

.gallery-grid {
    padding: var(--content-padding);
    padding-top: 0; /* Remove top padding if filter is separate */
    background-color: var(--light-color);
}

.gallery-card {
    overflow: hidden;
    padding: 0;
    box-shadow: var(--subtle-shadow);
}

.gallery-image {
    height: 300px; /* Taller images */
    overflow: hidden;
    position: relative;
}

.gallery-image img {
     width: 100%;
     height: 100%;
     object-fit: cover;
     transition: transform 0.5s ease;
}
.gallery-card:hover .gallery-image img {
    transform: scale(1.05);
}


.gallery-details {
    padding: 1.8rem; /* More padding */
    background-color: var(--light-color);
}

.gallery-details h4 {
    font-size: 1.3rem;
    margin-bottom: 0.5rem;
    color: var(--dark-color);
}
.gallery-details p {
    color: var(--gray-color);
    font-size: 0.9rem;
    margin-bottom: 0;
}


.testimonials-mini {
    padding: 5rem 0; /* More padding */
    background-color: var(--secondary-color);
}

.testimonial-quote {
    font-size: 1.35rem; /* Larger quote font */
    font-style: italic;
    position: relative;
    padding: 0 3rem; /* More padding for quotes */
    margin-bottom: 2.5rem;
    color: var(--dark-color);
    line-height: 1.8;
}

.testimonial-quote:before,
.testimonial-quote:after {
    content: '\201C';
    font-size: 4rem; /* Larger quote symbols */
    color: var(--primary-color);
    position: absolute;
    opacity: 0.2; /* More subtle opacity */
    line-height: 1;
}
.testimonial-quote:after {
    content: '\201D';
}

.testimonial-quote:before {
    left: 0;
    top: -1rem;
}

.testimonial-quote:after {
    right: 0;
    bottom: -2rem;
     top: auto;
}

.testimonial-author {
    font-weight: 600;
    font-size: 1.2rem;
    color: var(--dark-color);
}
.testimonial-author span {
    display: block;
    font-size: 0.9rem;
    font-weight: 400;
    color: var(--gray-color);
    margin-top: 0.3rem;
}


/* -----------------------------------------------------------------------------
 * 9. About Page Styles
 * -------------------------------------------------------------------------- */
.company-story {
    padding: var(--content-padding);
    background-color: var(--light-color);
}

.about-image {
    height: 100%;
    min-height: 450px;
    object-fit: cover; /* Added object-fit */
    border-radius: 8px;
    box-shadow: var(--subtle-shadow);
}
.company-story p {
     color: var(--dark-color); /* Use dark color for main text */
}

.mission-values {
    padding: var(--content-padding);
    background-color: var(--secondary-color);
}

.mission-card,
.values-card {
    background-color: var(--light-color);
    border-radius: 8px;
    box-shadow: var(--subtle-shadow);
    padding: 2.5rem;
    height: 100%;
    transition: transform var(--transition-speed), box-shadow var(--transition-speed);
}
/* Add hover effect if appropriate, or keep static for these key messages */
/* mission-card:hover, values-card:hover {
     transform: translateY(-5px);
     box-shadow: var(--hover-shadow);
} */


.mission-card ul {
    padding-left: 1.8rem; /* More padding */
    margin-top: 2rem; /* More space */
    list-style: disc; /* Use disc style */
}

.mission-card ul li {
    margin-bottom: 1rem; /* More space */
    color: var(--dark-color);
    font-size: 1rem;
}

.value-item {
    display: flex;
    align-items: flex-start;
    margin-bottom: 2rem; /* More space between values */
    background: none;
    padding: 0;
    text-align: left;
    transition: transform var(--transition-speed); /* Add hover effect */
}

.value-item:hover {
    transform: translateY(-5px); /* Subtle lift on hover */
    /* box-shadow: none; */ /* Keep box-shadow none as per original intent */
}


.value-icon {
    margin-right: 1.5rem; /* More space */
    min-width: 60px; /* Larger icon area */
    font-size: 2rem; /* Larger icon */
    color: var(--primary-color);
    opacity: 0.9;
}

.value-content h4 {
    font-size: 1.3rem;
    margin-bottom: 0.6rem;
    color: var(--dark-color);
}
.value-content p {
    color: var(--gray-color);
    font-size: 0.95rem;
}

.team-section {
    padding: var(--content-padding);
    background-color: var(--light-color);
}

.team-card {
    overflow: hidden;
    padding: 0;
}

.team-image {
    height: 350px; /* Taller team photos */
    overflow: hidden;
    position: relative;
}
.team-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}
.team-card:hover .team-image img {
    transform: scale(1.05);
}


.team-details {
    padding: 1.8rem;
    text-align: center; /* Center team details */
    background-color: var(--light-color);
}

.team-details h4 {
    margin-bottom: 0.4rem;
    font-size: 1.4rem;
    color: var(--dark-color);
}

.team-position {
    color: var(--primary-color);
    font-weight: 600;
    margin-bottom: 1.5rem;
    font-size: 1rem;
    opacity: 0.9;
}

.team-details p {
    color: var(--gray-color);
    font-size: 0.95rem;
    margin-bottom: 0;
}


.why-choose-us {
    padding: var(--content-padding);
    background-color: var(--secondary-color);
}

.feature-card {
    text-align: center;
}


.service-areas {
    padding: var(--content-padding);
    background-color: var(--light-color);
}

.areas-list {
    background-color: var(--secondary-color); /* Use soft background for the list */
    border-radius: 8px;
    box-shadow: var(--subtle-shadow);
    padding: 2.5rem;
    height: 100%;
}

.areas-list ul {
    padding-left: 1.5rem;
    list-style: disc;
}

.areas-list ul li {
    padding: 0.6rem 0; /* More padding */
    margin-bottom: 0.5rem;
    color: var(--dark-color);
    font-size: 1rem;
}

.service-map {
    height: 100%;
    min-height: 400px; /* Taller map */
    border-radius: 8px;
    overflow: hidden;
    box-shadow: var(--subtle-shadow);
}

/* -----------------------------------------------------------------------------
 * 10. Contact Page Styles
 * -------------------------------------------------------------------------- */
.contact-section {
    padding: var(--content-padding);
    background-color: var(--light-color);
}

.contact-info {
    background-color: var(--secondary-color); /* Soft background */
    border-radius: 8px;
    box-shadow: var(--subtle-shadow);
    padding: 2.5rem;
    height: 100%;
}

.contact-item {
    display: flex;
    align-items: flex-start;
    margin-bottom: 2rem; /* More space */
}

.contact-icon {
    margin-right: 1.5rem;
    min-width: 55px; /* Slightly larger icon area */
    font-size: 2rem; /* Larger icon */
    color: var(--primary-color);
    opacity: 0.9;
}

.contact-text h5 {
    font-size: 1.2rem;
    margin-bottom: 0.4rem;
    color: var(--dark-color);
}
.contact-text p, .contact-text a {
    font-size: 1rem;
    color: var(--gray-color);
    margin-bottom: 0;
    line-height: 1.6;
}
.contact-text a:hover {
    color: var(--primary-color);
}


.social-media h5 {
    margin-bottom: 1.5rem;
    font-size: 1.3rem;
    color: var(--dark-color);
    font-family: 'Source Sans 3', sans-serif;
}

.contact-info .social-icons a {
    font-size: 1.4rem; /* Larger social icons */
    margin-right: 1rem;
    color: var(--gray-color);
    transition: all var(--transition-speed);
    background: none; /* Remove background for contact social icons */
    width: auto;
    height: auto;
    line-height: normal;
    border-radius: 0;
}

.contact-info .social-icons a:hover {
    color: var(--primary-color);
    transform: translateY(-4px);
    background: none;
}


.contact-form-container {
    background-color: var(--secondary-color); /* Soft background */
    border-radius: 8px;
    box-shadow: var(--subtle-shadow);
    padding: 2.5rem;
    height: 100%;
}

.contact-form label {
    font-weight: 600;
    color: var(--dark-color);
    margin-bottom: 0.5rem;
    display: block; /* Ensure labels are block elements */
}

.contact-form .form-control {
    border-radius: 4px;
    padding: 0.8rem 1rem;
    border: 1px solid var(--border-color);
    box-shadow: none; /* Remove default input shadow */
    transition: border-color var(--transition-speed), box-shadow var(--transition-speed);
}

.contact-form .form-control:focus {
    border-color: var(--primary-color);
    box-shadow: 0 0 0 0.25rem rgba(31, 58, 147, 0.2); /* Subtle focus shadow */
    outline: none;
}

.contact-form textarea.form-control {
    min-height: 150px;
}


.map-section {
    padding: var(--content-padding);
    background-color: var(--secondary-color);
}

.map-container {
    overflow: hidden;
    border-radius: 8px;
    box-shadow: var(--subtle-shadow);
    height: 450px; /* Specific height for map */
}
.map-container iframe {
    width: 100%;
    height: 100%;
    border: 0; /* Remove iframe border */
}


.faq-section {
    padding: var(--content-padding);
    background-color: var(--secondary-color);
}

.accordion-item {
    border: 1px solid var(--border-color);
    margin-bottom: 1.2rem; /* More space between items */
    border-radius: 8px;
    overflow: hidden; /* Ensures border radius applies to content */
    box-shadow: var(--subtle-shadow); /* Add subtle shadow */
    transition: border-color var(--transition-speed), box-shadow var(--transition-speed);
}
.accordion-item:hover {
     border-color: rgba(31, 58, 147, 0.2);
     box-shadow: var(--hover-shadow);
}


.accordion-button {
    font-weight: 600;
    padding: 1.2rem 1.5rem; /* More padding */
    font-size: 1.1rem;
    color: var(--dark-color);
    background-color: var(--light-color); /* White background */
    transition: background-color var(--transition-speed), color var(--transition-speed);
}

.accordion-button:not(.collapsed) {
    background-color: rgba(31, 58, 147, 0.1); /* Primary color tint */
    color: var(--primary-color);
    border-bottom-color: var(--border-color); /* Subtle line below active header */
    box-shadow: none; /* Remove default box shadow */
}

.accordion-body {
    padding: 1.5rem; /* More padding */
    background-color: var(--light-color);
    border-top: 1px solid var(--border-color); /* Subtle top border */
    color: var(--gray-color); /* Use gray for body text */
    line-height: 1.7;
}

/* Style for accordion button arrow */
.accordion-button::after {
    filter: invert(40%) sepia(10%) saturate(400%) hue-rotate(180deg) brightness(90%) contrast(90%); /* Adjust icon color */
     transition: transform var(--transition-speed);
}

.accordion-button:not(.collapsed)::after {
    filter: invert(20%) sepia(70%) saturate(3000%) hue-rotate(220deg) brightness(70%) contrast(100%); /* Primary color tint */
}

/* static/css/style.css OR static/css/modal.css */

/* Your existing modal CSS from the prompt can go here if you prefer a fully custom look */
/* The HTML provided in the previous step uses Bootstrap modal classes like
   .modal, .modal-dialog, .modal-content, .modal-header, .modal-body, .modal-footer, .btn-close
   So Bootstrap's default modal styling will largely apply.
   You can add overrides here if needed.
*/

/* Example overrides or additions if you're heavily customizing: */
body.modal-open {
    overflow: hidden; /* Usually handled by Bootstrap's JS */
}

#notificationModal .modal-content { /* Targeting by ID for specificity */
    text-align: center; /* Ensure content is centered if not by Bootstrap */
    border-radius: 0.5rem; /* Slightly more rounded corners */
}

#notificationModal .modal-header {
    border-bottom: none; /* Cleaner look */
    padding-bottom: 0.5rem;
}
#notificationModal .modal-title {
    font-size: 1.5rem; /* Larger modal title */
}

#notificationModal .modal-body {
    padding-top: 0.5rem;
    padding-bottom: 1.5rem;
}

#notificationModal .modal-footer {
    border-top: none; /* Cleaner look */
    padding-top: 0;
}

#modalMessageText {
    margin-bottom: 1rem;
    word-wrap: break-word;
    font-size: 1.1rem;
}

.modal-message-success {
    color: var(--bs-success, #198754); /* Use Bootstrap success color variable */
    font-weight: 500;
}

.modal-message-error {
    color: var(--bs-danger, #dc3545); /* Use Bootstrap danger color variable */
    font-weight: 500;
}

/* Ensure the close button in header is visible and styled */
#notificationModal .btn-close {
    font-size: 1rem; /* Adjust if needed */
}

/* -----------------------------------------------------------------------------
 * 11. Responsive Media Queries (Modern & Device-Aware)
 * -------------------------------------------------------------------------- */
/*
* This section is structured using a "mobile-first" approach.
* Base styles apply to all devices, and we add complexity for larger screens.
* The rules hiding the background video on mobile have been REMOVED to allow it to play.
*/

/* ========================================================================== */
/* BASE STYLES (Mobile First)
/* Targets: All phones in portrait (iPhone 15/Pro, Samsung Galaxy S series, etc.)
/* Viewport width: ~360px to 430px
/* ========================================================================== */
/* ========================================================================== */
/* HERO SECTION - CONSOLIDATED & RESPONSIVE */
/* ========================================================================== */

/* ========================================================================== */
/* HERO SECTION - CONSOLIDATED & RESPONSIVE */
/* ========================================================================== */

.hero-section {
    position: relative; /* Crucial for positioning child elements */
    width: 100%;
    display: flex; /* Keeps your text content vertically centered */
    align-items: center;
    overflow: hidden; /* Ensures nothing spills out */
}

.video-wrapper {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -2; /* Places it behind content but above background color */
    pointer-events: none; /* Allows clicks to go through to content */
}

.hero-background-video { /* This is your iframe */
    /* These properties make the iframe cover the wrapper completely */
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    border: none; /* Remove any default iframe border */
}


/* Background Media Elements */
.hero-background-media {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: -3;
    pointer-events: none;
}

.hero-background-image {
    display: block;
}

.hero-background-video {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    pointer-events: none;
    z-index: -2;
    display: block; /* Show by default - remove JS dependency */
    
    /* Ensure video covers entire container regardless of aspect ratio */
    width: 100vw;
    height: 100vh;
    min-width: 100%;
    min-height: 100%;
    
    /* Use object-fit to cover the entire area without distortion */
    object-fit: cover;
    
    /* Fallback for older browsers - scale to cover */
    /* If aspect ratio doesn't match, scale up to ensure no grey bars */
    width: calc(100vh * 16 / 9); /* 16:9 video width based on viewport height */
    height: calc(100vw * 9 / 16); /* 16:9 video height based on viewport width */
    min-width: 100vw;
    min-height: 100vh;
}

.hero-background-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.6);
    z-index: -1;
    pointer-events: none;
}

/* Hero Content Container */
.hero-section .container {
    position: relative;
    z-index: 1;
    height: 100%;
    display: flex;
    align-items: center;
}

.hero-content {
    position: relative;
    z-index: 2;
    background-color: transparent;
    border: none;
    backdrop-filter: none;
    max-width: 700px;
    padding: 0;
}

/* Typography - Base Styles */
.hero-content h1 {
    color: var(--light-color);
    font-size: 3.5rem;
    line-height: 1.3;
    margin-bottom: 1.5rem;
    word-break: normal;
    white-space: normal;
}

h1.hero-title-custom {
    font-size: 2.2rem;
    line-height: 1.4;
    margin-bottom: 1rem;
    color: var(--light-color);
}

.hero-content p.lead {
    color: rgba(255, 255, 255, 0.9);
    font-size: 1.25rem;
    margin-bottom: 2rem;
    line-height: 1.6;
}

.hero-content .btn-primary.btn-lg {
    font-size: 0.85rem;
    padding: 0.7rem 1.2rem;
    display: block;
    width: fit-content;
    max-width: 90%;
    margin: 0 auto;
}

/* ========================================================================== */
/* RESPONSIVE BREAKPOINTS */
/* ========================================================================== */

/* Extra Small Devices (≤ 575.98px) - Mobile Portrait */
@media (max-width: 575.98px) {
    .hero-section {
        position: relative;
        overflow: hidden;
        color: var(--light-color);
        display: flex;
        align-items: center;

        /* --- The Fix --- */
        /* This sets the height to be 56.25% of the viewport width (a 16:9 ratio) */
        height: 56.25vw; 

        /* Set minimum and maximum heights to handle extreme screen sizes */
        min-height: 450px; /* Prevents it from being too short on very narrow screens */
        max-height: 95vh;  /* Prevents it from being too tall on ultra-wide screens */
    }
    
    .hero-content {
        padding: 1.5rem 1rem;
        text-align: center;
        display: flex;
        flex-direction: column;
        align-items: center;
    }
    
    h1.hero-title-custom {
        font-size: 1.6rem;
    }
    
    .hero-content p.lead {
        font-size: 1rem;
        max-width: 90%;
        margin-bottom: 1.5rem;
    }
    
    .hero-content .btn-primary.btn-lg {
        font-size: 0.85rem;
        padding: 0.7rem 1.2rem;
    }
    
    /* Keep video on mobile - just optimize it */
    .hero-background-video {
        width: 100%;
        height: 100%;
        min-width: 100%;
        min-height: 100%;
    }
}

/* Small Devices (576px - 767.98px) - Mobile Landscape & Small Tablets */
@media (min-width: 576px) and (max-width: 767.98px) {
    .hero-section {
        position: relative;
        overflow: hidden;
        color: var(--light-color);
        display: flex;
        align-items: center;

        /* --- The Fix --- */
        /* This sets the height to be 56.25% of the viewport width (a 16:9 ratio) */
        height: 56.25vw; 

        /* Set minimum and maximum heights to handle extreme screen sizes */
        min-height: 450px; /* Prevents it from being too short on very narrow screens */
        max-height: 95vh;  /* Prevents it from being too tall on ultra-wide screens */
    }
    
    .hero-content {
        padding: 2rem 1.5rem;
        text-align: center;
        display: flex;
        flex-direction: column;
        align-items: center;
    }
    
    h1.hero-title-custom {
        font-size: 1.8rem;
    }
    
    .hero-content p.lead {
        font-size: 1.05rem;
        max-width: 80%;
    }
    
    .hero-content .btn-primary.btn-lg {
        font-size: 0.9rem;
        padding: 0.7rem 1.3rem;
    }
}

/* Medium Devices (768px - 991.98px) - Tablets */
@media (min-width: 768px) and (max-width: 991.98px) {
    .hero-section {
        position: relative;
        overflow: hidden;
        color: var(--light-color);
        display: flex;
        align-items: center;

        /* --- The Fix --- */
        /* This sets the height to be 56.25% of the viewport width (a 16:9 ratio) */
        height: 56.25vw; 

        /* Set minimum and maximum heights to handle extreme screen sizes */
        min-height: 450px; /* Prevents it from being too short on very narrow screens */
        max-height: 95vh;  /* Prevents it from being too tall on ultra-wide screens */
    }
    
    .hero-content {
        text-align: center;
        align-items: center;
        padding: 2rem 1.5rem;
    }
    
    h1.hero-title-custom {
        font-size: 2rem;
    }
    
    .hero-content p.lead {
        font-size: 1.15rem;
    }
    
    .hero-content .btn-primary.btn-lg {
        font-size: 0.95rem;
        padding: 0.75rem 1.4rem;
    }
}

/* Large Devices (992px - 1199.98px) - Small Desktops */
@media (min-width: 992px) and (max-width: 1199.98px) {
    .hero-section {
        position: relative;
        overflow: hidden;
        color: var(--light-color);
        display: flex;
        align-items: center;

        /* --- The Fix --- */
        /* This sets the height to be 56.25% of the viewport width (a 16:9 ratio) */
        height: 56.25vw; 

        /* Set minimum and maximum heights to handle extreme screen sizes */
        min-height: 450px; /* Prevents it from being too short on very narrow screens */
        max-height: 95vh;  /* Prevents it from being too tall on ultra-wide screens */
    }
    
    .hero-content {
        text-align: left;
        align-items: flex-start;
        padding: 0;
    }
    
    h1.hero-title-custom {
        font-size: 2.2rem;
    }
    
    .hero-content p.lead {
        font-size: 1.2rem;
    }
    
    .hero-content .btn-primary.btn-lg {
        font-size: 1rem;
        padding: 0.85rem 2rem;
        margin: 0;
    }
}

/* Extra Large Devices (1200px - 1399.98px) - Large Desktops */
@media (min-width: 1200px) and (max-width: 1399.98px) {
    .hero-content h1 {
        font-size: 4rem;
    }
    
    h1.hero-title-custom {
        font-size: 2.4rem;
        line-height: 1.3;
    }
    
    .hero-content p.lead {
        font-size: 1.3rem;
    }
    
    .hero-content {
        text-align: left;
        align-items: flex-start;
        padding: 0;
    }
    
    .hero-content .btn-primary.btn-lg {
        margin: 0;
    }
}

/* XXL Devices (≥1400px) - Ultra-wide/4K */
@media (min-width: 1400px) {
    .hero-section {
        position: relative;
        overflow: hidden;
        color: var(--light-color);
        display: flex;
        align-items: center;

        /* --- The Fix --- */
        /* This sets the height to be 56.25% of the viewport width (a 16:9 ratio) */
        height: 56.25vw; 

        /* Set minimum and maximum heights to handle extreme screen sizes */
        min-height: 450px; /* Prevents it from being too short on very narrow screens */
        max-height: 95vh;  /* Prevents it from being too tall on ultra-wide screens */
    }
        
    .hero-content h1 {
        font-size: 4.5rem;
    }
    
    h1.hero-title-custom {
        font-size: 2.6rem;
    }
    
    .hero-content p.lead {
        font-size: 1.4rem;
    }
    
    .hero-content {
        text-align: left;
        align-items: flex-start;
        padding: 0;
    }
    
    .hero-content .btn-primary.btn-lg {
        margin: 0;
    }
}

/* ========================================================================== */
/* ADDITIONAL MOBILE OPTIMIZATIONS FOR VIMEO */
/* ========================================================================== */

/* Ensure Vimeo iframe works properly on all devices */
.hero-background-video iframe,
iframe.hero-background-video {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    border: none;
    pointer-events: none;
    
    /* Make iframe fill the entire hero section */
    width: 100vw;
    height: 100vh;
    min-width: 100%;
    min-height: 100%;
    
    /* Scale to ensure no grey bars appear */
    width: calc(100vh * 16 / 9);
    height: calc(100vw * 9 / 16);
    min-width: 100vw;
    min-height: 100vh;
}

/* Mobile-specific iframe optimizations */
@media (max-width: 767.98px) {
    .hero-background-video iframe,
    iframe.hero-background-video {
        /* Ensure full coverage on mobile with extra scaling if needed */
        width: 100vw;
        height: 100vh;
        min-width: 100vw;
        min-height: 100vh;
        transform: translate(-50%, -50%) scale(1.1); /* Slight scale to ensure full coverage */
    }
}

/* General Mobile Typography Improvements */
@media (max-width: 991.98px) {
    h1 { font-size: 2rem; }
    h2 { font-size: 1.7rem; }
    h3 { font-size: 1.3rem; }
    .btn { white-space: normal; }
}

