/* ====================================
   Tawazon Main CSS Entry Point
   This file imports all modular CSS files
   Load order matters - dependencies first
   ==================================== */

/* 1. Global Base Styles */
@import url('css/elements/global.css');

/* 2. Elementor Customizations */
@import url('css/elements/elementor.css');

/* 3. UI Elements */
@import url('css/elements/buttons.css');
@import url('css/elements/header-menu.css');
@import url('css/elements/faq.css');

/* 4. WooCommerce */
@import url('css/woocommerce/cart.css');
@import url('css/woocommerce/checkout.css');
@import url('css/woocommerce/order-received.css');

/* 5. Bookly Booking System */
@import url('css/bookly/service-details.css');
@import url('css/bookly/providers.css');
@import url('css/bookly/time-selection.css');
@import url('css/bookly/custom-select.css');

/* 6. Components */
@import url('css/components/testimonials.css');
@import url('css/components/modal.css');
@import url('css/components/calendar.css');


/* Tawazon Join Form Styling */
.tawazun-form {
    font-family: 'Inter', sans-serif;
    max-width: 800px;
    margin: 0 auto;
    background: #fff;
    padding: 2rem;
    border-radius: 12px;
    box-shadow: 0 5px 20px rgba(0, 0, 0, 0.05);
}

.tawazun-form h2 {
    color: #111;
    text-align: center;
    margin-bottom: 2rem;
    font-size: 2rem;
}

.tawazun-form h3 {
    color: #000;
    /* Accent Color */
    font-size: 1.4rem;
    margin-bottom: 1.5rem;
    border-bottom: 2px solid #f0f0f0;
    padding-bottom: 0.5rem;
}

.tawazun-form h4 {
    font-size: 1.1rem;
    color: #555;
    margin: 5px;
}

.tawazun-form h5 {
    font-size: 1rem;
    color: #333;
    margin-bottom: 0.5rem;
    font-weight: 600;
}

.form-section {
    margin-bottom: 3rem;
}


.tawazun-form label {
    display: block;
    font-weight: 600;
    margin-bottom: 0.5rem;
    color: #333;
}


/* Fix CF7 Wrapper Width Issue */
.wpcf7-form-control-wrap {
    display: block !important;
    width: 100% !important;
    position: relative;
}

.tawazun-form input[type="text"],
.tawazun-form input[type="email"],
.tawazun-form input[type="tel"],
.tawazun-form input[type="number"],
.tawazun-form input[type="date"],
.tawazun-form select {
    height: 50px;
    /* Force consistent height */
    line-height: normal;
    /* Reset line-height */
    vertical-align: middle;
}

.tawazun-form textarea {
    height: auto;
    /* Allow textarea to be taller */
    min-height: 120px;
}

/* Enhanced Input Styling */
.tawazun-form input[type="text"],
.tawazun-form input[type="email"],
.tawazun-form input[type="tel"],
.tawazun-form input[type="number"],
.tawazun-form input[type="date"],
.tawazun-form select,
.tawazun-form textarea {
    -webkit-appearance: none;
    appearance: none;
    width: 100%;
    box-sizing: border-box;
    max-width: 100%;
    padding: 12px;
    border: 1px solid #ddd;
    border-radius: 8px;
    font-size: 1rem;
    transition: all 0.3s ease;
    background-color: #f9f9f9;
    color: #333 !important;
    /* Force Black Text */
    opacity: 1;
    /* Fix iOS disabled state look */
}

.tawazun-form input:focus,
.tawazun-form select:focus,
.tawazun-form textarea:focus {
    border-color: #C2A990;
    background-color: #fff;
    outline: none;
    box-shadow: 0 0 0 3px rgba(194, 169, 144, 0.1);
}

/* Date Input Direction */
.tawazun-form[dir="rtl"] input[type="date"] {
    text-align: right;
    direction: rtl;
}

.tawazun-form[dir="ltr"] input[type="date"] {
    text-align: left;
    direction: ltr;
}

/* Grid Layout for Personal Info */
.form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 0.8rem;
}

.form-group.full-width {
    grid-column: span 2;
}

.form-group br {
    display: none;
}

/* Checkboxes & Radios clean up */
.wpcf7-list-item {
    display: inline-block;
    margin-left: 15px;
    margin-bottom: 5px;
}

.wpcf7-list-item label {
    font-weight: 400;
    cursor: pointer;
}

/* Complex Grids (for Approaches lines) */
.complex-grid {
    display: grid;
    gap: 1rem;
    background: #fdfdfd;
    padding: 1rem;
    border-radius: 8px;
    border: 1px solid #eee;
}

.complex-grid .grid-item {
    display: flex;
    flex-direction: column;
    border-bottom: 1px solid #eee;
    padding-bottom: 0.5rem;
}

.complex-grid .grid-item:last-child {
    border-bottom: none;
}

.complex-grid .grid-item label {
    color: #333;
    margin-bottom: 0.2rem;
}

/* Specialty Category Accordion */
.specialty-categories {
    margin-top: 15px;
}

.specialty-category {
    margin-bottom: 10px;
    border: 1px solid #eee;
    border-radius: 8px;
    background: #fff;
}

.category-accordion-header {
    cursor: pointer;
    background-color: #fafafa;
    padding: 12px 15px;
    margin: 0;
    border-radius: 8px;
    transition: background 0.3s;
    position: relative;
    user-select: none;
    color: #333;
    font-size: 1rem;
    font-weight: 600;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.category-accordion-header:hover {
    background-color: #f0f0f0;
}

.category-accordion-header::after {
    content: '+';
    position: relative;
    font-size: 1.3rem;
    color: #C2A990;
    font-weight: bold;
}

.specialty-category.active .category-accordion-header::after {
    content: '-';
    font-size: 1.5rem;
}

.specialty-category.active .category-accordion-header {
    background-color: #f5f5f5;
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
}

.category-content {
    display: none;
    opacity: 0;
    transition: opacity 0.3s ease;
}

.specialty-category.active .category-content {
    display: block;
    opacity: 1;
    animation: fadeIn 0.3s;
}

.specialty-category.active .complex-grid {
    padding: 15px;
    background: #fdfdfd;
    border-radius: 0 0 8px 8px;
}

/* RTL support for category accordion */
.tawazun-form[dir="rtl"] .category-accordion-header {
    text-align: right;
    margin: 5px;
}

/* Submit Button & Wrapper */
.tawazun-form .form-submit {
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
}

/* Submit Button */
.form-submit input[type="submit"] {
    background-color: #111;
    color: #fff;
    padding: 18px 60px;
    /* Enhanced Padding */
    border: none;
    border-radius: 50px;
    /* Fully rounded */
    font-size: 1.2rem;
    /* Enhanced styling */
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s ease;
    width: auto;
    /* Allow natural width */
    min-width: 200px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
}

.form-submit input[type="submit"]:hover {
    background-color: #333;
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15);
}

/* --- Enhanced Mobile Responsiveness --- */
@media screen and (max-width: 768px) {

    /* Container: Less padding to maximize screen width usage */
    .tawazun-form {
        padding: 20px 15px;
        margin: 10px auto;
        max-width: 100%;
        width: auto;
        border-radius: 8px;
    }

    /* Headings: Adjusted for mobile readability */
    .tawazun-form h2 {
        font-size: 1.5rem;
        margin-bottom: 1.2rem;
    }

    .tawazun-form h3 {
        font-size: 1.15rem;
        /* Accordion Headers */
    }

    /* Inputs: Enforce 16px to prevent iOS zoom & larger touch targets */
    .tawazun-form input[type="text"],
    .tawazun-form input[type="email"],
    .tawazun-form input[type="tel"],
    .tawazun-form input[type="number"],
    .tawazun-form input[type="date"],
    .tawazun-form select,
    .tawazun-form textarea {
        font-size: 16px !important;
        padding: 14px;
    }

    .tawazun-form label {
        font-size: 0.95rem;
    }

    /* Grids: Collapse to single column */
    .form-grid {
        grid-template-columns: 1fr;
        gap: 15px;
    }

    .form-group.full-width {
        grid-column: span 1;
    }

    /* Checkboxes & Radios: Stack vertically for better touch */
    .wpcf7-list-item {
        display: block;
        margin: 8px 0;
        margin-left: 0;
    }

    .wpcf7-list-item label {
        display: flex;
        align-items: center;
        gap: 10px;
        font-size: 1rem;
        padding-top: 2px;
    }

    /* Submit Button: Full width and touch-friendly */
    .form-submit input[type="submit"] {
        width: 100%;
        padding: 16px;
        font-size: 1.1rem;
    }

    /* File Upload: Full width button */
    .tawazun-form input[type="file"]::after {
        width: 100%;
        text-align: center;
        padding: 12px;
        box-sizing: border-box;
    }

    /* Accordion Header: Compact but accessible */
    .accordion-header {
        padding: 15px;
        font-size: 1rem;
    }

    /* Adjust Icon Spacing for Mobile (RTL/LTR) */
    .tawazun-form[dir="rtl"] .accordion-header {
        padding-left: 45px;
    }

    .tawazun-form[dir="ltr"] .accordion-header {
        padding-right: 45px;
    }

    /* Response Messages */
    div.wpcf7-response-output {
        padding: 15px !important;
        font-size: 14px !important;
        margin: 20px 0 !important;
    }
}

/* Styling for Accordion Behavior */

.section-content {
    display: none;
    opacity: 0;
    transition: opacity 0.3s ease;
    padding: 15px 5px;
}

.form-section.active .section-content {
    display: block;
    opacity: 1;
    animation: fadeIn 0.5s;
}

.accordion-header {
    cursor: pointer;
    background-color: #fafafa;
    padding: 15px;
    border-radius: 8px;
    transition: background 0.3s;
    position: relative;
    user-select: none;
    margin-bottom: 10px;
}

.accordion-header:hover {
    background-color: #f0f0f0;
}

.accordion-header::after {
    content: '+';
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    font-size: 1.5rem;
    color: #C2A990;
    font-weight: bold;
}

.form-section.active .accordion-header::after {
    content: '-';
    font-size: 2rem;
    top: 45%;
}

.form-section.active {
    border-radius: 12px;
    padding: 10px;
    background: #fff;
}

@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(-10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* --- Arabic Direction Adjustment (RTL) --- */
.tawazun-form[dir="rtl"] .accordion-header::after {
    left: 20px;
    right: auto;
}

.tawazun-form[dir="rtl"] .accordion-header {
    padding-left: 50px;
    padding-right: 15px;
}

.tawazun-form[dir="rtl"] input[type="date"],
.tawazun-form[dir="rtl"] select {
    text-align: right !important;
    direction: rtl;
}

/* --- English Direction Adjustment (LTR) --- */
.tawazun-form[dir="ltr"] .accordion-header::after {
    left: auto;
    right: 20px;
}

.tawazun-form[dir="ltr"] .accordion-header {
    padding-right: 50px;
    padding-left: 15px;
}

/* Custom File Upload Button */
.tawazun-form input[type="file"] {
    position: relative;
    padding: 10px;
    color: #333 !important;
    /* Make filename visible */
    background: #fdfdfd;
    border: 1px dashed #ccc;
    /* Dashed border for upload area feeling */
    cursor: pointer;
    height: auto !important;
    /* Allow height to adjust */
}

/* Style the native button */
.tawazun-form input[type="file"]::file-selector-button {
    border: 1px solid #ccc;
    background: #f0f0f0;
    padding: 8px 15px;
    border-radius: 4px;
    color: #333;
    font-size: 14px;
    transition: all 0.2s;
    margin-right: 10px;
    /* Space between button and filename */
    margin-left: 10px;
    cursor: pointer;
}

.tawazun-form input[type="file"]::file-selector-button:hover {
    background: #e0e0e0;
}

/* Hide the pseudo-element hack we added previously */
.tawazun-form input[type="file"]::after {
    display: none !important;
}

.tawazun-form[dir="rtl"] input[type="file"]::after,
.tawazun-form[dir="ltr"] input[type="file"]::after {
    content: none !important;
}

/* Spinner Centering */
.tawazun-form .wpcf7-spinner {
    display: block;
    margin: 10px auto;
    width: 24px;
    height: 24px;
    visibility: hidden;
    /* Hide by default */
}

.tawazun-form .wpcf7-spinner.is-active {
    visibility: visible;
    /* Show when submitting */
}

/* General message box format */
div.wpcf7-response-output {
    font-family: 'Inter', sans-serif, Arial;
    font-size: 15px;
    line-height: 1.8;
    padding: 15px 20px 15px 25px;
    margin: 20px 0;
    border-radius: 8px;
    border: 0;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05);
    position: relative;
    width: 100%;
    box-sizing: border-box;
}

/* LTR for English pages */
.tawazun-form[dir="ltr"] div.wpcf7-response-output,
body[dir="ltr"] div.wpcf7-response-output,
html[lang="en"] div.wpcf7-response-output {
    direction: ltr !important;
    text-align: left !important;
    border-left: 5px solid #d8613c;
    border-right: none;
}

/* RTL for Arabic pages */
.tawazun-form[dir="rtl"] div.wpcf7-response-output,
body[dir="rtl"] div.wpcf7-response-output,
html[lang="ar"] div.wpcf7-response-output {
    direction: rtl !important;
    text-align: right !important;
}

/* Error state format (Validation Errors) */
.tawazun-form .wpcf7-response-output.wpcf7-validation-errors,
.tawazun-form .wpcf7-response-output.wpcf7-acceptance-missing,
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output {
    background-color: #fff8f5;
    color: #c0392b;
    border-color: #e74c3c;
    /* fallback */
    border-right: 5px solid #d8613c;
}

/* Success Status Format (Submitted) - Quiet Green */
.tawazun-form .wpcf7-response-output.wpcf7-mail-sent-ok,
.wpcf7 form.sent .wpcf7-response-output {
    background-color: #f0fdf4;
    color: #155724;
    border-color: #2ecc71;
    /* fallback */
    border-right: 5px solid #2ecc71;
}

/* Technical Failure Status Format - Red */
.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.spam .wpcf7-response-output {
    background-color: #fee2e2;
    color: #991b1b;
    border-right: 5px solid #dc2626;
}

.tawazun-form .wpcf7-not-valid-tip {
    direction: rtl;
    text-align: right;
    font-size: 12px;
    color: #d8613c;
    margin-top: 5px;
    font-weight: 600;
}

.tawazun-form .wpcf7-not-valid {
    border-color: #dc2626 !important;
    background-color: #fef2f2 !important;
    box-shadow: 0 0 0 2px rgba(220, 38, 38, 0.08) !important;
    animation: shake 0.3s ease-in-out;
}

.tawazun-form .wpcf7-form-control:not(.wpcf7-not-valid),
.tawazun-form .wpcf7-form-control[aria-invalid="false"] {
    animation: none !important;
}

.tawazun-form input[type="file"]:not(.wpcf7-not-valid),
.tawazun-form input[type="file"][aria-invalid="false"] {
    border-color: #ccc !important;
    background-color: #fdfdfd !important;
    box-shadow: none !important;
}

/* File input validation styling - clean UX approach */
.tawazun-form .form-group:has(.wpcf7-form-control-wrap.wpcf7-not-valid) label {
    color: #dc2626 !important;
    font-weight: 600;
}

.tawazun-form .form-group:has(.wpcf7-form-control-wrap.wpcf7-not-valid) .required-star {
    color: #dc2626 !important;
}

.tawazun-form .wpcf7-not-valid-tip {
    direction: rtl;
    text-align: right;
    font-size: 13px;
    color: #dc2626;
    margin-top: 8px;
    font-weight: 600;
    background-color: #fef2f2;
    padding: 10px 14px;
    border-radius: 4px;
    border-right: 3px solid #fecaca;
    box-shadow: 0 1px 4px rgba(220, 38, 38, 0.08);
}

/* RTL error message alignment */
.tawazun-form[dir="rtl"] .wpcf7-not-valid-tip {
    direction: rtl;
    text-align: right;
    border-right: 3px solid #fecaca;
    border-left: none;
}

/* LTR error message alignment */
.tawazun-form[dir="ltr"] .wpcf7-not-valid-tip {
    direction: ltr;
    text-align: left;
    border-left: 3px solid #fecaca;
    border-right: none;
}

/* Focus state for invalid fields */
.tawazun-form .wpcf7-not-valid:focus {
    border-color: #dc2626 !important;
    background-color: #fff !important;
    outline: none;
    box-shadow: 0 0 0 2px rgba(220, 38, 38, 0.15) !important;
}

/* Shake animation for invalid fields */
@keyframes shake {

    0%,
    100% {
        transform: translateX(0);
    }

    25% {
        transform: translateX(-5px);
    }

    75% {
        transform: translateX(5px);
    }
}

/* Hide duplicate validation messages */
.tawazun-form .wpcf7-not-valid-tip+.wpcf7-not-valid-tip {
    display: none !important;
}

/* Accordion header with invalid fields - light red indicator */
.tawazun-form .accordion-header.has-invalid-fields {
    background-color: #fee2e2 !important;
    border: 1px solid #fecaca !important;
    color: #991b1b !important;
    box-shadow: 0 0 0 1px rgba(220, 38, 38, 0.1) !important;
}

.tawazun-form .accordion-header.has-invalid-fields::after {
    color: #991b1b !important;
}

/* Category accordion header with invalid fields */
.tawazun-form .category-accordion-header.has-invalid-fields {
    background-color: #fee2e2 !important;
    border: 1px solid #fecaca !important;
    color: #991b1b !important;
}

.tawazun-form .category-accordion-header.has-invalid-fields::after {
    color: #991b1b !important;
}

/* Specific styling for invalid file inputs - Targets input and its CF7 wrapper */
.tawazun-form input[type="file"].wpcf7-not-valid,
.tawazun-form .wpcf7-form-control-wrap.wpcf7-not-valid input[type="file"] {
    border: 1px solid #dc2626 !important;
    background-color: #fef2f2 !important;
    border-style: solid !important;
    /* Force solid red over dashed grey */
}

.tawazun-form input[type="file"].wpcf7-not-valid::file-selector-button,
.tawazun-form .wpcf7-form-control-wrap.wpcf7-not-valid input[type="file"]::file-selector-button {
    background-color: #fee2e2 !important;
    border-color: #dc2626 !important;
    color: #991b1b !important;
}

/* Required Field Indicator - Red Asterisk */
.tawazun-form .required-star {
    color: #e74c3c;
    font-weight: bold;
}

/* RTL - asterisk on the right (before text) */
.tawazun-form[dir="rtl"] .required-star {
    margin-left: 4px;
    margin-right: 0;
}

/* LTR - asterisk on the right (after text) */
.tawazun-form[dir="ltr"] .required-star {
    margin-left: 4px;
    margin-right: 0;
}



/* ==========================================
   🔹 Fix: Hide original lang menu item instantly
   Prevents flash before JS replaces it with custom switcher
   ========================================== */
.lang-item {
    display: none !important;
}

/* ==========================================
   🔹 Simplified Professional Language Switcher
   ========================================== */
.custom-lang-switcher {
    position: relative;
    display: inline-flex;
    align-items: center;
    font-family: 'Inter', 'Outfit', sans-serif;
    z-index: 9999;
}

.lang-trigger {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 5px 10px;
    background: transparent;
    /* Remove background */
    border: none;
    /* Remove border */
    cursor: pointer;
    font-size: 15px;
    font-weight: 600;
    color: #333;
    transition: all 0.3s ease;
}

.lang-trigger:hover,
.custom-lang-switcher.is-active .lang-trigger {
    color: #adceb4;
    /* Brand Color */
}

.lang-icon {
    width: 16px;
    height: 16px;
    color: inherit;
    opacity: 0.8;
}

.lang-label {
    line-height: 1;
}

.chevron {
    width: 10px;
    height: 6px;
    transition: transform 0.3s ease;
    color: #999;
}

.custom-lang-switcher.is-active .chevron {
    transform: rotate(180deg);
    color: #adceb4;
}

.lang-dropdown {
    position: absolute;
    top: calc(100% + 5px);
    right: 0;
    min-width: 60px;
    /* Reduced width to fit EN/AR */
    background: #ffffff;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.08);
    /* Soft shadow */
    border-radius: 8px;
    padding: 4px;
    opacity: 0;
    visibility: hidden;
    transform: translateY(10px);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    border: 1px solid #f0f0f0;
}

[dir="rtl"] .lang-dropdown {
    right: auto;
    left: 0;
}

.custom-lang-switcher.is-active .lang-dropdown,
.custom-lang-switcher:hover .lang-dropdown {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.lang-option {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 6px 10px;
    /* More compact padding */
    text-decoration: none !important;
    color: #444 !important;
    font-size: 13px;
    /* Slightly smaller font for compactness */
    font-weight: 700;
    border-radius: 6px;
    transition: all 0.2s ease;
}

.lang-option:hover {
    background: #f0fdf4;
    /* Brand light background */
    color: #adceb4 !important;
}

.lang-option .option-text {
    color: inherit;
}

/* ==========================================
   🔹 Mobile Language Switcher Fix
   ========================================== */

/* Mobile header adjustments */
@media (max-width: 1024px) {

    /* Mobile switcher is now placed in the flex container (92230ff) alongside cart/hamburger */
    /* No absolute positioning needed - it flows naturally in the flex layout */
    .elementor-element-92230ff .custom-lang-switcher {
        position: relative;
        z-index: 1000;
        margin-right: 10px;
    }

    /* Make sure the lang-trigger is visible on mobile */
    .elementor-element-92230ff .custom-lang-switcher .lang-trigger {
        color: #333;
        padding: 8px;
        background: transparent;
    }

    /* Adjust dropdown position for mobile - align to left with slight offset */
    .elementor-element-92230ff .custom-lang-switcher .lang-dropdown {
        right: auto;
        left: 50%;
        transform: translateX(-50%);
        top: calc(100% + 8px);
    }

    /* Hide desktop switcher on mobile */
    .elementor-element-6d238b6 .custom-lang-switcher {
        display: none !important;
    }

    /* Hide cart on mobile */
    .elementor-element-0cef51a {
        display: none !important;
    }

    /* Flex layout with explicit ordering */
    .elementor-element-92230ff {
        display: flex !important;
        flex-direction: row !important;
        justify-content: flex-start !important;
        align-items: center !important;
        gap: 10px !important;
        width: auto !important;
        --width: auto !important;
        --flex-wrap-mobile: nowrap !important;
        flex-wrap: nowrap !important;
    }

    /* Switcher first in DOM, but we want it second visually - so order: 2 */
    .elementor-element-92230ff .custom-lang-switcher {
        order: 2 !important;
    }

    /* Hamburger second in DOM, but we want it first visually - so order: 1 */
    .elementor-element-7906fe6 {
        order: 1 !important;
    }

    /* RTL: align items to right side */
    [dir="rtl"] .elementor-element-92230ff,
    html[dir="rtl"] .elementor-element-92230ff {
        justify-content: flex-end !important;
    }
}

/* Desktop: hide mobile header and mobile switcher */
@media (min-width: 1025px) {
    .elementor-element-a0fe908 {
        display: none !important;
    }

    .elementor-element-a0fe908 .custom-lang-switcher {
        display: none !important;
    }
}

/* Alternative: Add to mobile flyout menu */
@media (max-width: 1024px) {

    /* If you want the switcher inside the flyout menu instead */
    .hfe-flyout-content .custom-lang-switcher-mobile {
        display: flex;
        justify-content: center;
        padding: 15px 0;
        border-bottom: 1px solid #eee;
        margin-bottom: 10px;
    }

    .hfe-flyout-content .custom-lang-switcher-mobile .lang-trigger {
        color: #333;
    }
}

/* Absolute Vertical Alignment Fix for all header items */
.elementor-element-6d238b6 {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 20px !important;
    /* Balanced gap for a cleaner look */
    flex-wrap: nowrap !important;
    min-height: 40px !important;
}

/* Force every child into a flex container and normalize height/spacing */
.elementor-element-6d238b6>div,
.elementor-element-6d238b6>.elementor-widget,
.elementor-element-6d238b6>.custom-lang-switcher {
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    height: 40px !important;
    width: auto !important;
    /* Allow icons to define their own width */
    min-width: unset !important;
    /* Remove any min-width constraints */
}

/* Center all content within widgets and remove any bottom offsets */
.elementor-element-6d238b6 .elementor-widget-container,
.elementor-element-6d238b6 .elementor-icon-wrapper,
.elementor-element-6d238b6 .hfe-masthead-custom-menu-items,
.elementor-element-6d238b6 .hfe-site-header-cart,
.elementor-element-6d238b6 .hfe-site-header-cart-li {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    height: 100% !important;
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

/* Final centering for svgs and text */
.elementor-element-6d238b6 .elementor-icon,
.elementor-element-6d238b6 .hfe-cart-container,
.elementor-element-6d238b6 .hfe-cart-menu-wrap-default,
.elementor-element-6d238b6 .lang-trigger {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 1 !important;
    margin: 0 !important;
    padding: 0 !important;
}

.lang-trigger {
    gap: 6px !important;
}

.lang-label {
    text-transform: uppercase;
    font-weight: 700;
    line-height: 1 !important;
    font-size: 15px !important;
    display: inline-flex !important;
    align-items: center !important;
}

/* Extra tweak for HFE cart bag alignment */
.hfe-cart-menu-wrap-default {
    display: flex !important;
    align-items: center !important;
}

/* Mobile Adjustments */
@media screen and (max-width: 768px) {
    .elementor-element-6d238b6 {
        gap: 12px !important;
    }

    .lang-label {
        font-size: 13px !important;
    }
}