/*
 Theme Name:   Labouganville
 Theme URI:    https://mrehanlatif.com
 Description:  Hello Commerce Child Theme for custom code.
 Author:       Rehan Latif
 Author URI:   https://mrehanlatif.com
 Template:     hello-commerce
 Version:      1.0.0
 License:      GNU General Public License v2 or later
 License URI:  http://www.gnu.org/licenses/gpl-2.0.html
 Text Domain:  labouganville
*/

.site-header .site-branding {
    text-align: left;
}

.site-header .site-branding .custom-logo {
    max-width: 180px;
    height: auto;
    display: inline-block;
}

.site-header .nav-menu {
    display: flex;
    gap: 20px;
    list-style: none;
    margin: 0;
    padding: 0;
    align-items: center;
}

.site-header .nav-menu li a {
    color: white;
    text-decoration: none;
    font-weight: 500;
}

.site-header .nav-menu li a:hover {
    opacity: 0.8;
}

/* Search Modal Styling */
#searchModal .modal-content {
    background-color: #fcfcfc;
    border: none;
    border-radius: 16px;
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.15);
}

#searchModal .modal-header {
    border-bottom: 1px solid #f0eee6;
    padding: 24px 30px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

#searchModal .modal-title {
    color: #7a3a5a;
    font-weight: 700;
    font-size: 1.4rem;
    margin: 0;
}

#searchModal .modal-header button {
    opacity: 0.6;
    transition: opacity 0.2s, transform 0.2s;
}

#searchModal .modal-header button:hover {
    opacity: 1;
    transform: scale(1.1);
}

#searchModal .modal-body {
    padding: 40px 30px;
}

/* WooCommerce Product Search Form */
#searchModal .woocommerce-product-search {
    display: flex;
    gap: 12px;
    width: 100%;
    position: relative;
}

#searchModal .woocommerce-product-search .search-field {
    flex: 1;
    padding: 16px 20px;
    border: 2px solid #eae8e1;
    border-radius: 8px;
    background: #fff;
    color: #444;
    font-size: 1.1rem;
    outline: none;
    transition: all 0.3s ease;
}

#searchModal .woocommerce-product-search .search-field::placeholder {
    color: #a9a9a9;
    font-weight: 400;
}

#searchModal .woocommerce-product-search .search-field:focus {
    border-color: #7a3a5a;
    box-shadow: 0 4px 15px rgba(122, 58, 90, 0.08);
}

#searchModal .woocommerce-product-search button[type="submit"] {
    background-color: #7a3a5a;
    color: #fff;
    border: none;
    padding: 0 35px;
    border-radius: 8px;
    font-size: 1.05rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    cursor: pointer;
    transition: all 0.3s ease;
    box-shadow: 0 4px 10px rgba(122, 58, 90, 0.2);
}

#searchModal .woocommerce-product-search button[type="submit"]:hover {
    background-color: #5c2c44;
    box-shadow: 0 6px 15px rgba(122, 58, 90, 0.3);
    transform: translateY(-1px);
}

#searchModal .woocommerce-product-search .screen-reader-text {
    display: none;
}

/* Custom Hero Banner Block */
.custom-hero-banner {
    position: relative;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    color: #fff;
    padding: 60px 20px;

    /* Force full width by breaking out of the parent container */
    width: 100vw;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
}

.custom-hero-banner .hero-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.45);
    z-index: 1;
}

.custom-hero-banner .hero-content {
    position: relative;
    z-index: 2;
    max-width: 900px;
}

.custom-hero-banner .hero-subtitle {
    display: block;
    font-size: 15px;
    letter-spacing: 10px;
    text-transform: uppercase;
    font-weight: 500;
    margin-bottom: 20px;
}

.custom-hero-banner .hero-title {
    font-family: "Libre Baskerville", Georgia, serif;
    font-size: 60px;
    font-weight: 500;
    line-height: 1.2;
    margin: 0 0 25px;
    color: #fff;
}

.custom-hero-banner .hero-desc {
    font-size: 1.1rem;
    font-weight: 300;
    margin: 0 0 40px;
}

.custom-hero-banner .hero-buttons {
    display: flex;
    gap: 20px;
    justify-content: center;
    flex-wrap: wrap;
}

.custom-hero-banner .hero-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 14px 35px;
    font-size: 15px;
    font-weight: 600;
    border-radius: 4px;
    text-decoration: none;
    transition: all 0.3s ease;
}

.custom-hero-banner .hero-btn.btn-white {
    background-color: #fff;
    color: #7a3a5a;
}

.custom-hero-banner .hero-btn.btn-white:hover {
    background-color: #f7f5ef;
    transform: translateY(-2px);
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
}

.custom-hero-banner .hero-btn.btn-accent {
    background-color: #9e3256;
    /* Slightly brighter maroon for the button as seen in image */
    color: #fff;
}

.custom-hero-banner .hero-btn.btn-accent:hover {
    background-color: #7a3a5a;
    transform: translateY(-2px);
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
}

/* =========================================
   SERVICES CARDS SECTION
   ========================================= */
.services-cards-section {
    padding: 80px 20px;
    background-color: #fbf8f5;
    color: #4a3e35;

    /* Force full width by breaking out of the parent container */
    width: 100vw;
    position: relative;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
}

.services-container {
    max-width: 1200px;
    margin: 0 auto;
}

/* Header */
.services-header {
    text-align: center;
    margin-bottom: 60px;
}

/* Global Reusable Subtitle */
.services-subtitle,
.split-subtitle,
.newsletter-subtitle {
    display: block;
    font-family: Helvetica, Arial, sans-serif;
    font-size: 12px;
    color: #400404ad;
    letter-spacing: 9px;
    line-height: 29px;
    text-align: center;
    text-transform: uppercase;
    margin-top: 20px;
    margin-bottom: 15px;
}

.services-title {
    font-family: "Libre Baskerville", Georgia, serif;
    font-size: 42px;
    font-weight: 500;
    color: #5c4326;
    margin: 0 0 20px;
    line-height: 1.2;
}

.services-desc {
    font-size: 16px;
    color: #6a5e55;
    max-width: 700px;
    margin: 0 auto;
    line-height: 1.6;
}

/* Grid */
.services-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
}

/* Cards */
.service-card {
    border: 1px solid #e6dace;
    border-radius: 12px;
    overflow: hidden;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.service-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 15px 35px rgba(92, 67, 38, 0.08);
}

.card-style-1,
.card-style-3 {
    background-color: transparent;
}

.card-style-2 {
    background-color: #e5d2be;
    border-color: #d1bba4;
}

.card-inner {
    padding: 30px;
    display: flex;
    flex-direction: column;
    height: 100%;
}

.card-inner.flex-center {
    justify-content: center;
}

.card-img-wrapper {
    margin-bottom: 25px;
}

.card-img-wrapper img {
    width: 100%;
    height: 200px;
    object-fit: cover;
    border-radius: 8px;
    display: block;
}

.card-body {
    flex-grow: 1;
}

.card-title {
    font-size: 18px;
    font-weight: 700;
    color: #3b3028;
    margin: 0 0 15px;
}

.card-desc {
    font-size: 15px;
    line-height: 1.6;
    color: #5e5248;
    margin: 0 0 25px;
}

.card-footer {
    margin-top: auto;
}

/* Center all content strictly for the 3rd card */
.card-style-3 .card-body {
    flex-grow: 0;
}

.card-style-3 .card-footer {
    margin-top: 0;
}

/* Buttons */
.card-btn {
    display: block;
    text-align: center;
    padding: 14px 20px;
    font-size: 15px;
    font-weight: 600;
    text-decoration: none !important;
    border-bottom: none !important;
    border-radius: 8px;
    transition: all 0.3s ease;
}

.card-btn.btn-light {
    background-color: #e6d3c3;
    color: #9e3256;
    /* Maroon text */
}

.card-btn.btn-light:hover {
    background-color: #d8c2af;
    color: #7a2642;
}

.card-btn.btn-outline {
    background-color: transparent;
    border: 1px solid #c4ac97;
    color: #9e3256;
    /* Maroon text */
}

.card-btn.btn-outline:hover {
    background-color: rgba(255, 255, 255, 0.4);
    color: #7a2642;
}

.card-btn.btn-accent {
    background-color: #9e3256;
    color: #fff !important;
}

.card-btn.btn-accent:hover {
    background-color: #7a2642;
}

/* =========================================
   STUDIATA CTA SECTION
   ========================================= */
.studiata-cta-section {
    padding: 80px 20px;

    /* Force full width by breaking out of the parent container */
    width: 100vw;
    position: relative;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
}

.studiata-container {
    max-width: 1200px;
    margin: 0 auto;
    background-color: #fbf8f5;
    /* Slightly lighter than the background */
    border: 1px solid #2b1b25;
    border-radius: 6px;
    padding: 80px 40px;
    text-align: center;
}

.studiata-title {
    font-family: "Libre Baskerville", Georgia, serif;
    font-size: 38px;
    font-weight: 500;
    color: #3b3028;
    margin: 0 0 20px;
    line-height: 1.2;
}

.studiata-desc {
    font-size: 15px;
    line-height: 1.6;
    color: #5e5248;
    max-width: 800px;
    margin: 0 auto 35px;
}

.studiata-btn {
    display: inline-block;
    background-color: #9e3256;
    color: #fff !important;
    padding: 14px 35px;
    font-size: 15px;
    font-weight: 600;
    text-decoration: none !important;
    border-bottom: none !important;
    border-radius: 8px;
    transition: all 0.3s ease;
}

.studiata-btn:hover {
    background-color: #7a2642;
    transform: translateY(-2px);
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
}

/* =========================================
   SPLIT INFO SECTION (La Nostra Storia)
   ========================================= */
.split-info-section {
    padding: 100px 20px;
    width: 100vw;
    position: relative;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
}

.split-info-container {
    max-width: 1100px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-areas:
        "subtitle subtitle"
        "title title"
        "image desc"
        "image btn";
    column-gap: 60px;
    row-gap: 10px;
    align-items: center;
}

/* Make the right column invisible to grid so its children can be placed freely */
.split-content-col {
    display: contents;
}

.split-subtitle {
    grid-area: subtitle;
}

.split-title {
    grid-area: title;
    text-align: center;
    font-family: "Libre Baskerville", Georgia, serif;
    font-size: 42px;
    font-weight: 500;
    color: #4a3e35;
    margin: 0 0 60px;
    line-height: 1.2;
}

.split-image-col {
    grid-area: image;
}

.split-img-wrapper {
    position: relative;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
}

.split-img-wrapper {
    position: relative;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
}

.split-img-wrapper img {
    width: 100%;
    height: 410px;
    object-fit: cover;
    display: block;
}

.split-desc {
    grid-area: desc;
    font-size: 16px;
    line-height: 1.8;
    color: #5e5248;
    align-self: end;
    padding-bottom: 10px;
}

.split-btn-wrap {
    grid-area: btn;
    align-self: start;
}

.split-btn {
    display: inline-block;
    color: #9e3256;
    /* Maroon */
    font-weight: 700;
    font-size: 16px;
    text-decoration: none !important;
    border-bottom: none !important;
    transition: all 0.3s ease;
}

.split-btn:hover {
    color: #7a2642;
    transform: translateX(3px);
}

/* =========================================
   NEWSLETTER SECTION
   ========================================= */
.newsletter-section {
    padding: 80px 20px;
    width: 100vw;
    position: relative;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
}

.newsletter-container {
    max-width: 900px;
    margin: 0 auto;
}

.newsletter-header {
    text-align: center;
    margin-bottom: 40px;
}

.newsletter-title {
    font-family: "Libre Baskerville", Georgia, serif;
    font-size: 42px;
    font-style: italic;
    font-weight: 500;
    color: #3b3028;
    margin: 0 0 20px;
    line-height: 1.2;
}

.newsletter-desc {
    font-size: 16px;
    color: #5e5248;
    max-width: 700px;
    margin: 0 auto;
}

.newsletter-form-container {
    max-width: 800px;
    margin: 0 auto;
}

/* Contact Form 7 Styles */
.cf7-newsletter-wrap {
    width: 100%;
}

.cf7-field {
    margin-bottom: 20px;
    text-align: left;
}

.cf7-field label,
.cf7-privacy-label {
    display: block;
    font-size: 14px;
    font-weight: 600;
    color: #d1c1a5;
    /* Light beige/tan color */
    margin-bottom: 8px;
}

.cf7-field label .required {
    color: #cc0000;
}

.cf7-input,
.wpcf7-form-control.wpcf7-text,
.wpcf7-form-control.wpcf7-email {
    width: 100%;
    padding: 12px 15px;
    border: 1px solid #a3adb6;
    /* Greyish border */
    border-radius: 4px;
    font-size: 15px;
    color: #333;
    background-color: #fff;
    box-sizing: border-box;
    outline: none;
    font-family: inherit;
}

.cf7-input:focus,
.wpcf7-form-control.wpcf7-text:focus,
.wpcf7-form-control.wpcf7-email:focus {
    border-color: #c9b39e;
}

.cf7-consent-field {
    font-size: 13px;
    color: #d1c1a5;
    margin-top: 10px;
    margin-bottom: 25px;
}

.cf7-consent-field .wpcf7-list-item {
    margin-left: 0;
    display: flex;
    align-items: flex-start;
}

.cf7-consent-field .wpcf7-list-item label {
    display: flex;
    align-items: flex-start;
    margin: 0;
}

.cf7-consent-field input[type="checkbox"] {
    margin-right: 10px;
    margin-top: 4px;
}

.cf7-consent-field .wpcf7-list-item-label {
    display: inline;
    font-weight: normal;
    color: #d1c1a5;
}

.cf7-submit-wrap {
    text-align: center;
}

.newsletter-section input.wpcf7-submit,
.cf7-submit-btn {
    width: 100% !important;
    display: block !important;
    background-color: #9e3256 !important;
    /* Maroon */
    color: #fff !important;
    border: none !important;
    padding: 16px !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    border-radius: 6px !important;
    cursor: pointer !important;
    opacity: 1 !important;
    /* Override CF7 disabled opacity */
    transition: background-color 0.3s ease !important;
}

.newsletter-section input.wpcf7-submit:hover,
.cf7-submit-btn:hover {
    background-color: #7a2642 !important;
}

/* =========================================
   GLOBAL FIXES
   ========================================= */
/* Remove empty paragraph gaps at the end of the content before the footer */
.page-content>p:empty,
p.wp-block-paragraph:empty {
    display: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Remove default trailing margins on the last element in the main content area */
.page-content>*:last-child,
.site-main>*:last-child {
    margin-bottom: 0 !important;
}

/* Remove any bottom padding from the main wrapper to keep sections flush with the footer */
.site-main,
.page-content {
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
}

/* --- Team Cards Section --- */
.team-cards-section {
    padding: 80px 20px;
    width: 100vw;
    position: relative;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
}

.team-cards-container {
    max-width: 1200px;
    margin: 0 auto;
}

.team-cards-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 30px;
    justify-content: center;
}

.team-card-item {
    background-color: #fff;
    border-radius: 12px;
    padding: 15px;
    flex: 1 1 calc(33.333% - 30px);
    max-width: 380px;
    box-sizing: border-box;
}

/* Inner border effect */
.team-card-item>div:first-child,
.team-card-img-wrap {
    /* We will use a pseudo element for the inner border to wrap everything */
}

.team-card-item {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.team-card-item::after {
    content: '';
    position: absolute;
    top: 15px;
    left: 15px;
    right: 15px;
    bottom: 15px;
    border: 1px solid #f0e6dd;
    border-radius: 8px;
    pointer-events: none;
}

.team-card-img-wrap {
    margin-top: 35px;
    margin-bottom: 20px;
    width: 160px;
    height: 200px;
    border-radius: 100px;
    overflow: hidden;
    position: relative;
    z-index: 1;
}

.team-card-img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.team-card-body {
    text-align: center;
    padding: 0 30px;
    position: relative;
    z-index: 1;
    flex-grow: 1;
}

.team-card-title {
    font-family: 'Libre Baskerville', serif;
    font-size: 22px;
    color: #333;
    margin: 0 0 5px 0;
    font-weight: 400;
}

.team-card-designation {
    font-family: 'Libre Baskerville', serif;
    font-style: italic;
    font-size: 13px;
    color: #666;
    display: block;
    margin-bottom: 20px;
}

.team-card-desc {
    font-size: 13px;
    line-height: 1.6;
    color: #555;
    margin: 0 0 25px 0;
}

.team-card-footer {
    text-align: center;
    position: relative;
    z-index: 1;
    padding-bottom: 35px;
}

.team-card-link {
    display: block;
    color: #5145CD;
    font-weight: 600;
    font-size: 15px;
    text-decoration: none;
    margin-bottom: 5px;
}

.team-card-link:hover {
    color: #3b31a3;
}

.team-card-note {
    display: block;
    font-size: 11px;
    color: #888;
}

@media (max-width: 991px) {
    .team-card-item {
        flex: 1 1 calc(50% - 30px);
    }
}

@media (max-width: 767px) {
    .team-card-item {
        flex: 1 1 100%;
    }
}


/* --- Consulenze Banner Section --- */
.consulenze-banner-section {
    position: relative;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    padding: 230px 20px 130px;
    /* Added more top padding to account for header */
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100vw;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
    margin-top: -160px;
    /* Pull banner under the absolute header */
}

.consulenze-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
    opacity: 0.65;
    /* Add opacity to the background color overlay */
}

.consulenze-content {
    position: relative;
    z-index: 2;
    text-align: center;
    max-width: 950px;
    width: 100%;
    margin: 0 auto;
}

.consulenze-title {
    font-family: 'Libre Baskerville', serif;
    font-size: 42px;
    color: #fff;
    margin: 0 0 30px 0;
    font-weight: 400;
}

.consulenze-desc {
    font-size: 16px;
    line-height: 1.7;
    color: #fff;
    margin: 0;
}

.consulenze-desc p {
    margin-bottom: 0;
}

@media (max-width: 767px) {
    .consulenze-banner-section {
        padding: 200px 20px 80px; /* Increased top padding to avoid header overlap */
    }

    .consulenze-title {
        font-size: 30px;
    }

    .consulenze-desc {
        font-size: 15px;
    }
}


/* Force transparent header on Homepage and Shop page, overriding inline !important rules */
body.home header#site-header.site-header.custom-labouganville-header,
body.post-type-archive-product header#site-header.site-header.custom-labouganville-header,
body.page-template-elementor_header_footer header#site-header.site-header.custom-labouganville-header,
body.page-template-default:not(.woocommerce-page) header#site-header.site-header.custom-labouganville-header {
    background-color: transparent !important;
}

/* Force solid maroon header on WooCommerce utility pages and Single Product pages */
body.woocommerce-cart header#site-header.site-header.custom-labouganville-header,
body.woocommerce-checkout header#site-header.site-header.custom-labouganville-header,
body.woocommerce-account header#site-header.site-header.custom-labouganville-header,
body.single-product header#site-header.site-header.custom-labouganville-header {
    background-color: #9e3256 !important;
    position: relative !important;
}

/* --- Banner Contact Section --- */
.banner-contact-section {
    position: relative;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    padding: 300px 20px 200px;
    /* Adjusted padding for better vertical balance */
    color: #fff;
    width: 100vw;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
    margin-top: -160px;
    /* Pull banner under the absolute header */
}

.banner-contact-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgb(133 37 85 / 65%);
    /* Darker Maroon overlay for better contrast */
    z-index: 1;
}

.banner-contact-container {
    position: relative;
    z-index: 2;
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 40px;
}

.banner-contact-left {
    flex: 1;
    max-width: 55%;
}

.banner-contact-title {
    font-family: 'Libre Baskerville', serif;
    font-size: 42px;
    color: #fff;
    margin: 0 0 20px 0;
    font-weight: 400;
}

.banner-contact-desc {
    font-size: 16px;
    line-height: 1.6;
    margin: 0;
    color: rgba(255, 255, 255, 0.9);
}

.banner-contact-right {
    flex: 1;
    max-width: 40%;
}

.contact-info-block {
    margin-bottom: 25px;
}

.contact-info-block:last-child {
    margin-bottom: 0;
}

.contact-info-title {
    font-family: 'Libre Baskerville', serif;
    font-size: 18px;
    color: #fff;
    margin: 0 0 5px 0;
    font-weight: 400;
}

.contact-info-text,
.contact-info-link {
    font-size: 14px;
    color: #fff;
    text-decoration: none;
    display: block;
    font-weight: 300;
}

.contact-info-link:hover {
    text-decoration: underline;
}

@media (max-width: 991px) {
    .banner-contact-container {
        flex-direction: column;
        align-items: flex-start;
    }

    .banner-contact-left,
    .banner-contact-right {
        max-width: 100%;
    }

    .banner-contact-right {
        margin-top: 40px;
    }
}

@media (max-width: 767px) {
    .banner-contact-section {
        padding: 200px 20px 80px; /* Increased top padding to avoid header overlap */
    }

    .banner-contact-title {
        font-size: 32px;
    }
}
/* --- Events Lineup Section --- */
.events-lineup-section {
    padding: 100px 20px;
    background-color: #fff;
}
.events-container {
    max-width: 1100px;
    margin: 0 auto;
}
.events-header {
    margin-bottom: 60px;
}
.events-subtitle {
    color: #7a3a5a; /* Maroon Theme Color */
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 3px;
    font-weight: 600;
    display: block;
    margin-bottom: 15px;
}
.events-main-title {
    font-family: 'Libre Baskerville', serif;
    font-size: 46px;
    color: #222;
    margin: 0;
    font-weight: 400;
}
.events-list {
    display: flex;
    flex-direction: column;
}
.event-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 35px 0;
    border-bottom: 1px solid #eaeaea;
}
.event-item:first-child {
    border-top: 1px solid #eaeaea;
}
.event-left {
    display: flex;
    align-items: center;
    gap: 30px;
}
.event-thumb {
    flex-shrink: 0;
}
.event-thumb img {
    width: 200px;
    height: 120px;
    object-fit: cover;
    display: block;
}
.event-info {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.event-title {
    font-family: 'Libre Baskerville', serif;
    font-size: 20px;
    color: #222;
    margin: 0;
    font-weight: 700;
}
.event-meta {
    font-size: 14px;
    color: #777;
    display: flex;
    gap: 8px;
    align-items: center;
}
.meta-separator {
    margin: 0 4px;
    color: #ccc;
}
/* Cut-corner Button using pseudo-elements */
.event-btn {
    position: relative;
    display: inline-block;
    padding: 14px 40px;
    color: #7a3a5a;
    font-size: 15px;
    text-decoration: none !important;
    text-align: center;
    background: transparent;
    z-index: 1;
    font-family: 'Libre Baskerville', serif;
    font-weight: 400;
    transition: color 0.3s ease;
}
.event-btn::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: #7a3a5a;
    clip-path: polygon(15px 0, 100% 0, 100% 100%, 0 100%, 0 15px);
    z-index: -2;
}
.event-btn::after {
    content: '';
    position: absolute;
    top: 1px; left: 1px; right: 1px; bottom: 1px;
    background: #fff;
    clip-path: polygon(14px 0, 100% 0, 100% 100%, 0 100%, 0 14px);
    z-index: -1;
    transition: background 0.3s ease;
}
.event-btn:hover {
    color: #fff;
    text-decoration: none !important;
}
.event-btn:hover::after {
    background: transparent;
}
@media (max-width: 1024px) {
    .events-lineup-section {
        padding: 80px 20px;
    }
    .events-main-title {
        font-size: 40px;
    }
}
@media (max-width: 768px) {
    .events-lineup-section {
        padding: 60px 15px;
    }
    .events-header {
        margin-bottom: 40px;
    }
    .events-main-title {
        font-size: 32px;
    }
    .event-item {
        flex-direction: column;
        align-items: flex-start;
        gap: 20px;
        padding: 25px 0;
    }
    .event-left {
        flex-direction: column;
        align-items: flex-start;
        gap: 15px;
        width: 100%;
    }
    .event-thumb, .event-thumb img {
        width: 100%;
        max-width: 100%;
        height: auto;
        border-radius: 8px;
    }
    .event-right {
        width: 100%;
        display: flex;
        justify-content: flex-start;
    }
    .event-btn {
        width: 100%;
        max-width: 300px;
        padding: 15px 20px;
    }
}
@media (max-width: 480px) {
    .events-main-title {
        font-size: 28px;
    }
    .event-title {
        font-size: 18px;
    }
    .event-meta {
        font-size: 13px;
        flex-wrap: wrap;
    }
    .event-btn {
        max-width: 100%;
    }
}


/* --- Services Cards Responsive --- */
@media (max-width: 991px) {
    .services-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    .services-title {
        font-size: 36px;
    }
    .services-cards-section {
        padding: 60px 20px;
    }
}
@media (max-width: 767px) {
    .services-grid {
        grid-template-columns: 1fr;
    }
    .services-title {
        font-size: 30px;
    }
    .services-header {
        margin-bottom: 40px;
    }
    .services-cards-section {
        padding: 50px 15px;
    }
}


/* --- Footer Responsive Styles --- */
@media (max-width: 991px) {
    .custom-labouganville-footer .footer-row {
        flex-direction: column;
        gap: 30px;
    }
    .custom-labouganville-footer .footer-left,
    .custom-labouganville-footer .footer-right {
        flex: 1 1 100% !important;
        max-width: 100%;
    }
    .custom-labouganville-footer .footer-right {
        text-align: left !important;
    }
    .custom-labouganville-footer .footer-nav-menu {
        align-items: flex-start !important;
    }
    .custom-labouganville-footer .footer-menu-wrapper {
        text-align: left !important;
    }
}
@media (max-width: 767px) {
    .custom-labouganville-footer {
        padding: 40px 15px 20px !important;
    }
    .custom-labouganville-footer .footer-logo img {
        max-width: 220px !important;
    }
    .custom-labouganville-footer .footer-row {
        margin-bottom: 30px !important;
    }
    .custom-labouganville-footer .footer-socials {
        justify-content: flex-start;
    }
    .custom-labouganville-footer .footer-bottom {
        padding-top: 20px !important;
    }
}

