/**
 * LVI public feedback system.
 * Shared visual language for notices, errors, confirmations and empty states.
 */

:root {
    --lvi-feedback-accent: #f3f3f1;
    --lvi-feedback-accent-rgb: 243, 243, 241;
    --lvi-feedback-panel: #090b0e;
    --lvi-feedback-line: rgba(255, 255, 255, .13);
    --lvi-feedback-text: #f7f7f5;
    --lvi-feedback-muted: #a8adb5;
    --lvi-feedback-success: #56d991;
    --lvi-feedback-error: #ff6678;
    --lvi-feedback-warning: #ffba55;
}

body.lvi-universe-music {
    --lvi-feedback-accent: #9657ff;
    --lvi-feedback-accent-rgb: 150, 87, 255;
}

body.lvi-universe-comedy {
    --lvi-feedback-accent: #ff394d;
    --lvi-feedback-accent-rgb: 255, 57, 77;
}

body.lvi-universe-arts,
body.lvi-arts-engine-active {
    --lvi-feedback-accent: #ff9400;
    --lvi-feedback-accent-rgb: 255, 148, 0;
}

body.lvi-universe-labs {
    --lvi-feedback-accent: #48d971;
    --lvi-feedback-accent-rgb: 72, 217, 113;
}

/* WooCommerce: account, cart and checkout notices. */
.woocommerce-notices-wrapper:not(:empty) {
    display: grid;
    gap: 10px;
    width: min(100%, 1280px);
    margin: 0 auto 22px;
}

.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
    position: relative;
    display: grid;
    min-height: 68px;
    margin: 0 0 18px !important;
    padding: 20px 22px 20px 58px !important;
    overflow: hidden;
    border: 1px solid var(--lvi-feedback-line) !important;
    border-top: 1px solid var(--lvi-feedback-line) !important;
    border-radius: 4px !important;
    color: var(--lvi-feedback-text) !important;
    background:
        linear-gradient(105deg, rgba(var(--lvi-feedback-accent-rgb), .08), transparent 42%),
        var(--lvi-feedback-panel) !important;
    box-shadow: 0 18px 48px rgba(0, 0, 0, .2) !important;
    font-size: 14px;
    line-height: 1.6;
}

.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before {
    position: absolute !important;
    top: 20px !important;
    left: 22px !important;
    display: grid;
    width: 22px;
    height: 22px;
    content: "i" !important;
    place-items: center;
    border: 1px solid currentColor;
    border-radius: 50%;
    color: var(--lvi-feedback-accent) !important;
    font-family: Arial, sans-serif !important;
    font-size: 12px;
    font-weight: 900;
    line-height: 1;
}

.woocommerce-message {
    border-color: rgba(86, 217, 145, .28) !important;
    background: linear-gradient(105deg, rgba(86, 217, 145, .09), transparent 42%), var(--lvi-feedback-panel) !important;
}

.woocommerce-message::before {
    content: "✓" !important;
    color: var(--lvi-feedback-success) !important;
}

.woocommerce-error {
    border-color: rgba(255, 102, 120, .3) !important;
    background: linear-gradient(105deg, rgba(255, 102, 120, .09), transparent 42%), var(--lvi-feedback-panel) !important;
    list-style: none !important;
}

.woocommerce-error::before {
    content: "!" !important;
    color: var(--lvi-feedback-error) !important;
}

.woocommerce-message a,
.woocommerce-info a,
.woocommerce-error a {
    color: inherit !important;
    font-weight: 850;
    text-decoration-color: rgba(var(--lvi-feedback-accent-rgb), .55) !important;
    text-underline-offset: 4px;
}

.woocommerce-message .button,
.woocommerce-info .button,
.woocommerce-error .button {
    align-self: center;
    justify-self: end;
    margin: -7px 0 -7px 22px !important;
    border-color: var(--lvi-feedback-accent) !important;
}

/* WPForms: inline validation and completed submissions. */
.lvi-editorial-form .wpforms-error-container,
.lvi-editorial-form .wpforms-confirmation-container-full,
.lvi-editorial-form .wpforms-confirmation-container,
.wpforms-container .wpforms-error-container {
    position: relative;
    margin: 0 0 22px !important;
    padding: 19px 20px 19px 54px !important;
    border: 1px solid var(--lvi-feedback-line) !important;
    border-radius: 4px !important;
    color: var(--lvi-feedback-text) !important;
    background: linear-gradient(105deg, rgba(var(--lvi-feedback-accent-rgb), .08), transparent 44%), var(--lvi-feedback-panel) !important;
    box-shadow: none !important;
    font-size: 14px;
    line-height: 1.65;
}

.lvi-editorial-form .wpforms-error-container::before,
.lvi-editorial-form .wpforms-confirmation-container-full::before,
.lvi-editorial-form .wpforms-confirmation-container::before,
.wpforms-container .wpforms-error-container::before {
    position: absolute;
    top: 19px;
    left: 20px;
    display: grid;
    width: 22px;
    height: 22px;
    content: "!";
    place-items: center;
    border: 1px solid currentColor;
    border-radius: 50%;
    color: var(--lvi-feedback-error);
    font-size: 12px;
    font-weight: 900;
    line-height: 1;
}

.lvi-editorial-form .wpforms-confirmation-container-full,
.lvi-editorial-form .wpforms-confirmation-container {
    border-color: rgba(86, 217, 145, .3) !important;
    background: linear-gradient(105deg, rgba(86, 217, 145, .09), transparent 44%), var(--lvi-feedback-panel) !important;
}

.lvi-editorial-form .wpforms-confirmation-container-full::before,
.lvi-editorial-form .wpforms-confirmation-container::before {
    content: "✓";
    color: var(--lvi-feedback-success);
}

.lvi-editorial-form label.wpforms-error,
.lvi-editorial-form em.wpforms-error {
    display: block;
    margin-top: 8px !important;
    color: #ff9aa7 !important;
    font-size: 12px !important;
    font-style: normal !important;
    font-weight: 750 !important;
    line-height: 1.45 !important;
}

.lvi-editorial-form :is(input, select, textarea).wpforms-error {
    border-color: rgba(255, 102, 120, .8) !important;
    box-shadow: 0 0 0 3px rgba(255, 102, 120, .09) !important;
}

/* Native LVI states across Music, Comedy, Arts and the personal area. */
.lvi-music-empty,
.lvi-empty-state,
.lvi-status--empty,
.lvi-status--error,
.lvi-compatible-empty {
    border-color: rgba(var(--lvi-feedback-accent-rgb), .2) !important;
    background:
        radial-gradient(circle at 92% 12%, rgba(var(--lvi-feedback-accent-rgb), .1), transparent 35%),
        rgba(255, 255, 255, .018) !important;
    box-shadow: inset 0 1px rgba(255, 255, 255, .025) !important;
}

.lvi-music-empty > i,
.lvi-empty-state > span,
.lvi-status--empty > span,
.lvi-status--error > span,
.lvi-compatible-empty .lvi-account-eyebrow {
    color: var(--lvi-feedback-accent) !important;
}

.lvi-status:not(.lvi-status--empty):not(.lvi-status--error) {
    min-height: 62px;
    padding: 18px 20px !important;
    border: 1px solid rgba(var(--lvi-feedback-accent-rgb), .18) !important;
    border-radius: 4px !important;
    color: var(--lvi-feedback-muted) !important;
    background: rgba(var(--lvi-feedback-accent-rgb), .045) !important;
    line-height: 1.6;
}

/* Stock no-results views inherit the same system even before live results load. */
.ct-no-results {
    width: min(100% - 40px, 1120px);
    margin: clamp(44px, 8vw, 100px) auto !important;
    padding: clamp(30px, 5vw, 64px) !important;
    border: 1px solid var(--lvi-feedback-line);
    border-radius: 4px;
    background: linear-gradient(135deg, rgba(var(--lvi-feedback-accent-rgb), .07), transparent 44%), var(--lvi-feedback-panel);
}

.ct-no-results .page-title {
    color: var(--lvi-feedback-text);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(36px, 5vw, 64px);
    line-height: .98;
    letter-spacing: -.04em;
}

.ct-no-results .page-description {
    max-width: 680px;
    color: var(--lvi-feedback-muted);
    font-size: 15px;
    line-height: 1.75;
}

body.lvi-system-search.search-no-results .ct-no-results {
    display: grid;
    gap: 30px;
}

body.lvi-system-search.search-no-results .ct-no-results .hero-section {
    padding: 0 0 30px !important;
    border-bottom: 1px solid var(--lvi-feedback-line) !important;
    background: transparent !important;
}

body.lvi-system-search.search-no-results .ct-no-results .page-title {
    width: 100%;
    max-width: 840px;
    margin-inline: auto;
    font-size: 0 !important;
    line-height: 1 !important;
    overflow-wrap: anywhere;
    text-wrap: balance;
}

body.lvi-system-search.search-no-results .ct-no-results .page-title::before {
    display: block;
    content: "No hemos encontrado nada.";
    font-size: clamp(36px, 4.2vw, 58px);
    line-height: 1;
}

body.lvi-system-search.search-no-results .ct-no-results .entry-content {
    width: min(100%, 620px);
    margin: 0 auto;
}

@media (max-width: 700px) {
    .woocommerce-notices-wrapper:not(:empty) {
        width: calc(100% - 24px);
    }

    .woocommerce-message,
    .woocommerce-info,
    .woocommerce-error {
        padding: 18px 18px 18px 52px !important;
    }

    .woocommerce-message::before,
    .woocommerce-info::before,
    .woocommerce-error::before {
        top: 18px !important;
        left: 18px !important;
    }

    .woocommerce-message .button,
    .woocommerce-info .button,
    .woocommerce-error .button {
        float: none !important;
        justify-self: start;
        margin: 13px 0 0 !important;
    }

    .ct-no-results {
        width: calc(100% - 24px);
        margin: 30px auto 54px !important;
        padding: 28px 20px !important;
    }

    body.lvi-system-search.search-no-results .ct-no-results {
        gap: 22px;
    }

    body.lvi-system-search.search-no-results .ct-no-results .hero-section {
        padding-bottom: 22px !important;
    }

    body.lvi-system-search.search-no-results .ct-no-results .page-title {
        font-size: 0 !important;
    }

    body.lvi-system-search.search-no-results .ct-no-results .page-title::before {
        font-size: clamp(32px, 10vw, 44px);
    }
}

@media (prefers-reduced-motion: reduce) {
    .woocommerce-message *,
    .woocommerce-info *,
    .woocommerce-error *,
    .lvi-status * {
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
    }
}