:root {
    --site-bg-start: #02112b;
    --site-bg-end: #0a2d61;
    --site-primary: #007bff;
    --site-text: #f4f7f6;
    --site-surface: rgba(255, 255, 255, .05);
    --site-border: rgba(255, 255, 255, .1);
    --site-surface-fallback: #0d1e3d;
}

body.site-public {
    min-height: 100vh;
    margin: 0;
    display: flex;
    flex-direction: column;
    overflow-x: hidden;
    color: var(--site-text);
    background: linear-gradient(135deg, var(--site-bg-start), var(--site-bg-end));
    background-attachment: fixed;
    font-family: "Poppins", sans-serif;
}

.site-public .main-wrapper {
    display: flex;
    min-height: 100vh;
    flex-direction: column;
}

.site-public *,
.site-public *::before,
.site-public *::after { box-sizing: border-box; }

.site-public img { max-width: 100%; height: auto; }

.site-public a,
.site-public button,
.site-public input,
.site-public select,
.site-public textarea { touch-action: manipulation; }

.site-public :focus-visible {
    outline: 3px solid #ffc107;
    outline-offset: 3px;
}

.site-public .navbar-custom {
    min-height: 70px;
    padding: 10px 15px;
    border-bottom: 1px solid var(--site-border);
    background: rgba(2, 17, 43, .88);
    backdrop-filter: blur(15px);
}

.site-public .nav-main-logo {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
}

.site-public .nav-main-logo img {
    width: auto;
    max-height: 45px;
    border-radius: 10px;
    object-fit: contain;
}

.site-public .main-logo img {
    height: auto;
    object-fit: contain;
}

.site-public .site-card {
    color: rgba(255, 255, 255, .9);
    border: 1px solid var(--site-border);
    border-radius: 25px;
    background: var(--site-surface-fallback);
    background: var(--site-surface);
    backdrop-filter: blur(12px);
    box-shadow: 0 10px 30px rgba(0, 0, 0, .3);
}

.site-public .card-auth,
.site-public .card-glass,
.site-public .card-menu {
    color: rgba(255, 255, 255, .9);
    border: 1px solid var(--site-border);
    background: var(--site-surface-fallback);
    background: var(--site-surface);
    backdrop-filter: blur(12px);
    box-shadow: 0 10px 30px rgba(0, 0, 0, .3);
}

.site-public .form-control,
.site-public .form-select {
    min-height: 44px;
}

.site-public .generated-card-image {
    display: block;
    width: 100%;
    max-width: 500px;
    height: auto;
    margin-inline: auto;
}

.site-public .promotion-image { max-width: 100%; }

.site-public .cart-clear-button {
    padding: 5px 15px;
    border-color: rgba(255, 255, 255, .2);
    font-size: .75rem;
}

.site-public .site-section-title { font-weight: 600; }
.site-public .site-copyright { opacity: .4; }
.site-public .site-copyright a {
    color: inherit;
    text-decoration: none;
}
.site-public .site-copyright a:hover,
.site-public .site-copyright a:focus-visible { text-decoration: underline; }
.site-public .site-trust-badge { max-width: 90px; }
.site-public .site-warning-icon { font-size: 3rem; }
.site-public .site-text-link { color: var(--site-primary); text-decoration: none; }
.site-public .site-text-link:hover { color: #fff; text-decoration: underline; }
.site-public .site-sponsors-title {
    color: var(--site-text);
    font-family: "Orbitron", sans-serif;
    letter-spacing: 2px;
    opacity: .8;
}
.site-public .site-alert-title { color: #00d4ff; font-weight: 700; }
.site-public .whatsapp-accent { color: #25d366; }
.site-public .phone-input-wrapper { position: relative; }
.site-public .phone-input { padding-left: 45px; }
.site-public .phone-input-icon {
    position: absolute;
    z-index: 5;
    top: 50%;
    left: 12px;
    color: #25d366;
    font-size: 1.3rem;
    transform: translateY(-50%);
}
.site-public .is-hidden { display: none; }
.site-public .translucent-panel { background: rgba(255, 255, 255, .08); }

.site-public .btn-confirmar,
.site-public .btn-consultar,
.site-public .btn-zion,
.site-public .btn-primary-action {
    min-height: 44px;
}

.site-public .site-card h1,
.site-public .site-card strong { color: #fff; }
.site-public .site-card h2 { color: var(--site-primary); }

.site-public .site-button-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    color: #fff;
    border: 0;
    border-radius: 50px;
    background: var(--site-primary);
    text-decoration: none;
}

.site-public .site-button-primary:hover { color: #fff; }

.site-public .alert-importante,
.site-public .alert-zion {
    border: 1px solid rgba(255, 82, 82, .28);
    border-radius: 15px;
    background: rgba(255, 0, 0, .1);
}

.site-public .footer {
    width: 100%;
    margin-top: auto;
    padding: 40px 0;
    background: rgba(0, 0, 0, .4);
}

.site-public .footer img {
    width: auto;
    max-width: 100px;
    margin: 0 10px;
    padding: 5px;
    border-radius: 8px;
    background: rgba(255, 255, 255, .08);
    object-fit: contain;
}

/* Compatibilidade durante a migração das páginas existentes. */
.site-public .card-lgpd { background: var(--site-surface); }
.site-public .card-lgpd h2 { color: var(--site-primary); }
.site-public .btn-zion { background: var(--site-primary); }

@media (max-width: 575.98px) {
    .site-public .navbar-custom { min-height: 64px; }
    .site-public .nav-main-logo img { max-height: 35px; }
    .site-public .footer { padding: 28px 12px; }
    .site-public .footer img { max-width: 82px; margin: 6px; }
}

@media (prefers-reduced-motion: reduce) {
    .site-public *,
    .site-public *::before,
    .site-public *::after {
        scroll-behavior: auto !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
}
