/* ---- Global Resets (helps avoid unexpected scrollbars) ---- */
html, body {
    margin: 0;
    padding: 0;
    /* Optional fallback to ensure no overflow if something is still off */
    overflow-x: hidden; 
    box-sizing: border-box;
}
*, *::before, *::after {
    box-sizing: inherit;
}

/* ---- Header / Logo / Title ---- */

/* Logo and toggles on the left */
.header-block .col-4.d-flex {
    justify-content: flex-start; /* Aligns the logo and toggles */
    align-items: center;
}

/* By default on desktop, title aligned to the left */
.header-block .col-8.d-flex {
    justify-content: flex-start;
    align-items: center;
    text-align: left; /* Prevent forced right alignment on desktop */
}

/* Logo sizing and spacing */
.header-block img {
    max-width: 150px;
    margin-right: 10px; /* Adjust for your design */
    margin-left: 10px;  /* Adjust for your design */
}

/* Site title: allow wrapping, remove large margins that might cause overflow */
.site-title {
    font-size: 1.8em;
    font-weight: bold;
    white-space: normal; /* Allow wrapping to prevent horizontal scroll */
    margin: 0;           /* Remove big left margin on desktop */
    padding-left: 10px;  /* A bit of spacing from the logo */
    padding-right: 10px; 
}

/* Navbar margin spacing */
.t4-navbar {
    margin-top: 15px;
}

/* Center the main menu */
.t4-navbar .d-flex {
    justify-content: center; /* Center the menu */
}

/* ---- MOBILE & TABLET (max-width: 992px) ---- */
@media (max-width: 992px) {
    /* Site title on mobile */
    .site-title {
        display: block !important;  
        text-align: right;          
        font-size: 1.5em;           
        max-width: 100%;            
        margin: 0;                  
        padding: 0 10px;            
    }

    /* Push the title to the right on smaller screens */
    .header-block .col-8.d-flex {
        justify-content: flex-end !important;
        text-align: right;
    }

    /* Hide Contact Us and Pricing buttons on smaller screens */
    .col-8.d-flex .d-flex {
        display: none !important;
    }
}

/* ---- DESKTOP (min-width: 992px) ---- */
/* Hide specific menu items on desktop (screens wider than 992px) */
@media (min-width: 992px) {
    .btn-sindicalize,
    .btn-contacte-nos {
        display: none !important;
    }
}

/* ---- Accordion Button Styles ---- */
.accordion-button {
    border: 1px solid #e0e0e0;
}
.accordion-button:focus {
    border-color: #00923f;
    box-shadow: 0 0 0 0.2rem rgba(0, 146, 63, 0.5);
}
.accordion-button.collapsed {
    color: #000;
    background-color: #fff;
}
.accordion-button:not(.collapsed) {
    color: #fff;
    background-color: #00923f;
}
/* Hover effect */
.accordion-button:hover {
    background-color: #00923f;
    color: #fff;
}

/* ---- #t4-footnav Footer ---- */
#t4-footnav {
    background-color: #212529;
    color: #b1b5b9;
    padding-top: 0;
    padding-bottom: 0;
    text-align: center;
}
#t4-footnav a {
    color: #b1b5b9;
    text-decoration: none;
}
#t4-footnav a:hover {
    color: #ffffff;
}
/* Hide the empty columns causing extra space */
#t4-footnav .col-6.col-md-3.col-lg-2 {
    display: none;
}
/* Center content and remove width constraints */
#t4-footnav .container-xxl,
#t4-footnav .row,
#t4-footnav .col-lg-4,
#t4-footnav .t4-module,
#t4-footnav .module-inner,
#t4-footnav .module-ct,
#t4-footnav .custom,
#t4-footnav .description-container {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 auto;
}
/* Center the logo and text */
#t4-footnav .logo-container img {
    display: block;
    margin: 0 auto;
    max-width: 150px;
}
#t4-footnav .description-container p {
    line-height: 1.3;
    margin: 5px auto;
    max-width: 700px;
    padding: 0 10px;
}

/* ---- Bottom #t4-footer ---- */
#t4-footer {
    background-color: #212529;
    color: #b1b5b9;
    padding-top: 10px;
    padding-bottom: 10px;
    text-align: center;
}
#t4-footer a {
    color: #b1b5b9;
    text-decoration: none;
}
#t4-footer a:hover {
    color: #ffffff;
}
/* Center footer text and remove width constraints */
#t4-footer .container,
#t4-footer .t4-row,
#t4-footer .t4-col {
    width: 100% !important;
    max-width: 100% !important;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    margin: 0 auto;
}
#t4-footer .mod-footer .footer1,
#t4-footer .mod-footer .footer2 {
    margin: 5px 0;
    padding: 0 15px;
}

/* ---- Owl Carousel Dots ---- */
div.owl-carousel .owl-dots .owl-dot span {
    background-color: #b1b5b9;
    opacity: 1;
    width: 12px;
    height: 12px;
    border-radius: 100%;
    transition: background-color 0.3s ease, opacity 0.3s ease;
}
div.owl-carousel .owl-dots .owl-dot.active span {
    background-color: #6c757d;
    opacity: 1;
    border-radius: 100%;
    width: 14px;
}

/* ---- Button Variations ---- */
/* Small Primary Button */
a.btn.btn-sm.btn-primary {
    background-color: #00923f;
    color: #ffffff;
    border-color: #00923f;
}
a.btn.btn-sm.btn-primary:hover {
    background-color: #6c757d;
    color: #ffffff;
    border-color: #6c757d;
}
a.btn.btn-sm.btn-primary:active {
    background-color: #111;
    color: #ffffff;
    border-color: #111;
}

/* Generic .btn-primary */
a.btn-primary {
    background-color: #00923f;
    color: #ffffff;
    border-color: #00923f;
}
a.btn-primary:hover {
    background-color: #6c757d;
    color: #ffffff;
    border-color: #6c757d;
}
a.btn-primary:active {
    background-color: #111 !important;
    color: #ffffff;
    border-color: #111 !important;
}

/* Register button */
button.com-users-registration__register.btn-primary {
    background-color: #00923f;
    color: #ffffff;
    border-color: #00923f;
}
button.com-users-registration__register.btn-primary:hover {
    background-color: #6c757d;
    color: #ffffff;
    border-color: #6c757d;
}
button.com-users-registration__register.btn-primary:active {
    background-color: #111 !important;
    color: #ffffff;
    border-color: #111 !important;
}

/* Cancel button */
a.com-users-registration__cancel.btn-danger {
    background-color: #dd261e;
    color: #ffffff;
    border-color: #dd261e;
}
a.com-users-registration__cancel.btn-danger:hover {
    background-color: #6c757d;
    color: #ffffff;
    border-color: #6c757d;
}
a.com-users-registration__cancel.btn-danger:active {
    background-color: #111 !important;
    color: #ffffff;
    border-color: #111 !important;
}
fieldset legend {
    display: none !important;
}
.com-users-registration .page-header h1 {
    text-align: center !important;
    font-size: 1.5rem !important; /* Ensure it matches h3 */
    font-weight: bold !important; /* Match h3 font weight */
    color: inherit !important; /* Inherit the same color as h3 */
    margin-bottom: 0px !important; /* Adjust for consistency */
    margin-top: 0px !important; /* Adjust for consistency */
    display: block !important;
}
.com-users-registration .page-header::after {
    content: "O registo neste website é exclusivo a associados ativos da ASPL.";
    display: block;
    text-align: center;
    font-weight: bold;
    color: red;
    margin-top: 10px;
}
/* Ensure Captcha label is above the box */
.com-users-registration .control-group label {
    display: block;
    text-align: left !important;
    font-weight: bold;
    margin-bottom: 5px;
}

/* Ensure hCaptcha is fully left-aligned */
.com-users-registration .h-captcha {
    display: flex !important;
    justify-content: flex-start !important; /* Aligns left */
    align-items: center !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow: visible !important; /* Prevents cutoff */
    margin: 0 !important;
    padding: 0 !important;
    height: auto !important; /* Prevents height restriction */
}

/* Ensure hCaptcha iframe stays fully visible */
.com-users-registration .h-captcha iframe {
    display: block !important;
    width: 100% !important;
    max-width: 300px !important; /* Prevents cut-off */
    min-width: 200px !important;
    height: auto !important;
    min-height: 100px !important;
    margin: 0 !important;
    padding-left: 0 !important;
}

/* Ensure the Captcha wrapper allows full visibility */
#form_captcha {
    display: flex !important;
    justify-content: flex-start !important; /* Fully left-align */
    align-items: center !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow: visible !important; /* Allows full expansion */
    height: auto !important;
    min-height: 100px !important;
}

/* 🟢 MOBILE FIX: Move Captcha Left */
@media (max-width: 768px) {
    .com-users-registration .h-captcha {
        min-height: 120px !important;
        padding-left: 0 !important;
        width: 100% !important;
    }

    .com-users-registration .h-captcha iframe {
        min-height: 120px !important;
        max-width: 100% !important; /* Ensures full visibility */
        width: auto !important;
        margin-left: -80px !important; /* Moves it 80px left */
        transform: none !important;
    }
}
.item-date {
    color: #b1b5b9 !important;
}