/*!
Theme Name: Hello Elementor Child
Theme URI: https://crocoblock.com/
Author: Crocoblock
Author URI: https://crocoblock.com/
Description: Child theme for Hello Elementor with all CrocoBlock features compatibility.
Template: hello-elementor
Version: 1.0.0
License: GNU General Public License v3 or later
License URI: http://www.gnu.org/licenses/gpl-3.0.html
Text Domain: hello-elementor-child
*/

/* =====================================================
   TIO WOOCOMMERCE NOTIFICATIONS
   ===================================================== */

.woocommerce-notices-wrapper {
    width: 100%;
    margin: 0;
    padding: 0;
}

/* Shared notification bar */
.woocommerce-message,
.woocommerce-error,
.woocommerce-info {
    position: relative;
    align-items: center;
    gap: 12px;

    width: 100% !important;
    max-width: none !important;
    min-height: 64px;
    margin: 0 !important;
    padding: 14px 18px 14px 52px !important;
    box-sizing: border-box;

    color: #111111;
    background: #FFFFFF;
    border: 1px solid #E7E7E5;
    border-left-width: 4px !important;
    border-radius: 0 !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);

    font-size: 0.9375rem;
    line-height: 1.5;
    list-style: none !important;
}

/* Messages and information notices contain text and an action directly */
.woocommerce-message,
.woocommerce-info {
    display: flex;
}

/* Error notices contain one or more list items */
.woocommerce-error {
    display: block;
}

/* Shared notification icon */
.woocommerce-message::before,
.woocommerce-error::before,
.woocommerce-info::before {
    position: absolute;
    left: 18px;

    display: flex;
    align-items: center;
    justify-content: center;

    width: 22px;
    height: 22px;
    margin: 0;

    color: #FFFFFF;
    border-radius: 50%;

    font-size: 0.75rem;
    font-weight: 700;
    line-height: 1;
}

/* Centre icons in single-line message and information bars */
.woocommerce-message::before,
.woocommerce-info::before {
    top: 50% !important;
    transform: translateY(-50%) !important;
}

/* Keep the error icon aligned with the first error row */
.woocommerce-error::before {
    top: 20px !important;
    transform: none !important;
}

/* Success */
.woocommerce-message {
    border-left-color: #2E7D32 !important;
}

.woocommerce-message::before {
    content: "\2713";
    background: #2E7D32;
}

/* Information */
.woocommerce-info {
    border-left-color: #177DBB !important;
}

.woocommerce-info::before {
    content: "i";
    background: #177DBB;
}

/* Error */
.woocommerce-error {
    border-left-color: #D32F2F !important;
}

.woocommerce-error::before {
    content: "!";
    background: #D32F2F;
}

/* Error-list layout */
.woocommerce-error li {
    display: flex !important;
    align-items: center !important;
    gap: 16px;

    width: 100%;
    margin: 0 !important;
    padding: 0 !important;

    list-style: none !important;
}

.woocommerce-error li + li {
    margin-top: 8px !important;
}

/* Standard notice links */
.woocommerce-message a,
.woocommerce-error a,
.woocommerce-info a {
    color: #177DBB;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 2px;
}

/* Notice action buttons */
.woocommerce-message .button,
.woocommerce-error .button,
.woocommerce-info .button {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex: 0 0 auto;
    float: none !important;

    width: auto !important;
    min-width: 116px;
    min-height: 36px;
    margin: 0 0 0 auto !important;
    padding: 0 14px !important;
    box-sizing: border-box;

    color: #111111 !important;
    background: transparent !important;
    border: 1px solid #111111 !important;
    border-radius: 5px !important;
    box-shadow: none !important;

    font-weight: 700;
    line-height: 1 !important;
    text-align: center !important;
    text-decoration: none !important;
    white-space: nowrap;
}

/* Button hover and keyboard focus */
.woocommerce-message .button:hover,
.woocommerce-message .button:focus-visible,
.woocommerce-error .button:hover,
.woocommerce-error .button:focus-visible,
.woocommerce-info .button:hover,
.woocommerce-info .button:focus-visible {
    color: #111111 !important;
    background: #FFD400 !important;
    border-color: #FFD400 !important;
}

/* =====================================================
   TIO WOOCOMMERCE FIELD VALIDATION
   ===================================================== */

/* Invalid checkout fields: strong enough to override Elementor template CSS */
body.woocommerce-checkout main#content
form.checkout .tio-checkout-billing-form
.form-row.woocommerce-invalid input.input-text,

body.woocommerce-checkout main#content
form.checkout .tio-checkout-billing-form
.form-row.woocommerce-invalid select,

body.woocommerce-checkout main#content
form.checkout .tio-checkout-billing-form
.form-row.woocommerce-invalid textarea,

/* Invalid account fields */
body.woocommerce-account main#content
.form-row.woocommerce-invalid input.input-text,

body.woocommerce-account main#content
.form-row.woocommerce-invalid select,

body.woocommerce-account main#content
.form-row.woocommerce-invalid textarea {
    border-color: #D32F2F !important;
    box-shadow: 0 0 0 1px #D32F2F !important;
}

/* Invalid checkout and account labels */
body.woocommerce-checkout main#content
form.checkout .form-row.woocommerce-invalid label,

body.woocommerce-checkout main#content
form.checkout .form-row.woocommerce-invalid label .required,

body.woocommerce-account main#content
.form-row.woocommerce-invalid label,

body.woocommerce-account main#content
.form-row.woocommerce-invalid label .required {
    color: #D32F2F !important;
}

/* Terms checkbox validation */
body.woocommerce-checkout main#content
form.checkout .woocommerce-invalid input#terms {
    border-color: #D32F2F !important;
    box-shadow: 0 0 0 1px #D32F2F !important;
}

/* Valid fields */
form.checkout .form-row.woocommerce-validated input.input-text,
form.checkout .form-row.woocommerce-validated select,
form.checkout .form-row.woocommerce-validated textarea,
.woocommerce-account .form-row.woocommerce-validated input.input-text,
.woocommerce-account .form-row.woocommerce-validated select,
.woocommerce-account .form-row.woocommerce-validated textarea {
    border-color: #2E7D32 !important;
}

/* Keyboard focus */
form.checkout .input-text:focus,
form.checkout select:focus,
form.checkout textarea:focus,
.woocommerce-account form .input-text:focus,
.woocommerce-account form select:focus,
.woocommerce-account form textarea:focus {
    outline: none !important;
    border-color: #177DBB !important;
    box-shadow: 0 0 0 2px rgba(23, 125, 187, 0.16) !important;
}

/* =====================================================
   MOBILE NOTIFICATIONS
   ===================================================== */

@media (max-width: 767px) {
    .woocommerce-message,
    .woocommerce-error,
    .woocommerce-info {
        display: block !important;

        min-height: 0;
        padding: 14px 16px 14px 48px !important;

        font-size: 0.875rem;
        line-height: 1.5;
    }

    /* Align every mobile icon with the first text line */
    .woocommerce-message::before,
    .woocommerce-error::before,
    .woocommerce-info::before {
        top: 14px !important;
        left: 14px;
        transform: none !important;
    }

    .woocommerce-error li {
        display: block !important;
        width: 100%;
    }

    /* Full-width mobile action */
    .woocommerce-message .button,
    .woocommerce-error .button,
    .woocommerce-info .button {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;

        width: 100% !important;
        max-width: 100% !important;
        min-height: 44px;
        margin: 12px 0 0 !important;
        padding: 10px 14px !important;

        line-height: 1.2 !important;
        white-space: normal;
    }
}