/*
Theme Name: Moov OpenBus
Theme URI: https://openbus.com.br/
Author: OpenBus
Description: Sistema integrado de gestao operacional da Moov, consolidado em um tema WordPress instalavel e compativel com os dados existentes.
Version: 1.8.7
Requires at least: 6.0
Tested up to: 7.0
Requires PHP: 7.4
Text Domain: moov-openbus
*/

:root {
    --moov-primary: #15934d;
    --moov-dark: #111827;
    --moov-surface: #f4f7fb;
}

html { box-sizing: border-box; }
*, *::before, *::after { box-sizing: inherit; }
body {
    margin: 0;
    background-color: #064a95;
    background-image:
        radial-gradient(circle at 7% 8%, rgba(184, 229, 63, .25) 0, transparent 27%),
        radial-gradient(circle at 92% 16%, rgba(34, 190, 91, .34) 0, transparent 31%),
        linear-gradient(135deg, #032f70 0%, #0755a7 38%, #087b86 68%, #15934d 100%);
    background-attachment: fixed;
    color: #172033;
    font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
img { max-width: 100%; height: auto; }
a { color: inherit; }
.moov-site-main { min-height: 100vh; }
.moov-page-shell { width: min(1480px, calc(100% - 28px)); margin: 0 auto; padding: 24px 0 48px; }
.moov-page-title { margin: 0 0 20px; font-size: clamp(24px, 4vw, 38px); }
.moov-default-content { background: #fff; border-radius: 20px; padding: clamp(18px, 3vw, 32px); box-shadow: 0 12px 35px rgba(16, 24, 40, .08); }
.screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

/* Superficies do sistema com profundidade sobre o fundo institucional */
body:not(.moov-access-page) .moov-site-main {
    background: transparent;
}
body:not(.moov-access-page) .moov-default-content { border: 1px solid rgba(6,74,154,.09); background: #fff; }

/* Tela de acesso Moov OpenBus */
body.moov-access-page { background: #081712; overflow-x: hidden; }
body.moov-access-page.admin-bar .moov-access { min-height: calc(100svh - 32px); }
.moov-access {
    --moov-green: #14a46f;
    --moov-lime: #9ad838;
    position: relative;
    isolation: isolate;
    min-height: 100svh;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    color: #fff;
    background: #081712;
}
.moov-access__photo {
    position: absolute;
    z-index: -3;
    inset: 0;
    background-image: url('https://moovopenbus.vaoborauai.com.br/wp-content/uploads/2026/08/TRANBUSS-2031.webp');
    background-size: cover;
    background-position: 66% center;
    transform: scale(1.015);
    animation: moov-photo-in 1.2s ease-out both;
}
.moov-access__shade {
    position: absolute;
    z-index: -2;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(4, 18, 13, .98) 0%, rgba(4, 18, 13, .91) 30%, rgba(4, 18, 13, .53) 55%, rgba(4, 18, 13, .12) 78%),
        linear-gradient(0deg, rgba(3, 13, 10, .77) 0%, transparent 40%);
}
.moov-access::before {
    content: "";
    position: absolute;
    z-index: -1;
    width: 520px;
    height: 520px;
    left: -240px;
    top: 25%;
    border-radius: 50%;
    background: rgba(20, 164, 111, .2);
    filter: blur(90px);
}
.moov-access__header {
    width: min(1440px, calc(100% - 72px));
    margin: 0 auto;
    padding: 30px 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}
.moov-access__brand { display: inline-flex; text-decoration: none; }
.moov-access__logo-frame {
    width: 208px;
    height: 86px;
    padding: 8px 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255,255,255,.22);
    border-radius: 18px;
    background: rgba(255,255,255,.94);
    box-shadow: 0 14px 38px rgba(0,0,0,.22);
    backdrop-filter: blur(14px);
}
.moov-access__logo-frame img { max-width: 100%; max-height: 100%; width: auto; object-fit: contain; }
.moov-access__secure {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 10px 14px;
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 999px;
    background: rgba(8,23,18,.36);
    color: rgba(255,255,255,.76);
    font-size: 12px;
    font-weight: 650;
    letter-spacing: .02em;
    backdrop-filter: blur(12px);
}
.moov-access__secure-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--moov-lime); box-shadow: 0 0 0 5px rgba(154,216,56,.12); }
.moov-access__content {
    width: min(1440px, calc(100% - 72px));
    margin: auto;
    padding: 48px 0 90px;
}
.moov-access__eyebrow {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 22px;
    color: #c9f0df;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .17em;
    text-transform: uppercase;
}
.moov-access__eyebrow span { width: 36px; height: 2px; background: var(--moov-lime); }
.moov-access h1 {
    max-width: 840px;
    margin: 0;
    font-size: clamp(46px, 6vw, 88px);
    line-height: .99;
    letter-spacing: -.055em;
    font-weight: 760;
    text-wrap: balance;
}
.moov-access h1 em { color: var(--moov-lime); font-style: normal; }
.moov-access__content > p {
    max-width: 620px;
    margin: 28px 0 0;
    color: rgba(255,255,255,.75);
    font-size: clamp(16px, 1.45vw, 20px);
    line-height: 1.65;
}
.moov-access__actions { display: flex; align-items: center; gap: 22px; margin-top: 38px; }
.moov-access__button {
    min-height: 58px;
    padding: 0 22px 0 26px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 28px;
    border-radius: 14px;
    background: linear-gradient(135deg, var(--moov-lime), #6fc52c);
    color: #102116;
    box-shadow: 0 16px 40px rgba(93,177,40,.3);
    text-decoration: none;
    font-size: 15px;
    font-weight: 850;
    transition: transform .2s ease, box-shadow .2s ease, filter .2s ease;
}
.moov-access__button svg { width: 21px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; transition: transform .2s ease; }
.moov-access__button:hover { color: #102116; transform: translateY(-2px); box-shadow: 0 20px 48px rgba(93,177,40,.38); filter: brightness(1.04); }
.moov-access__button:hover svg { transform: translateX(3px); }
.moov-access__hint { max-width: 190px; color: rgba(255,255,255,.52); font-size: 11px; line-height: 1.5; }
.moov-access__footer {
    width: min(1440px, calc(100% - 72px));
    margin: 0 auto;
    padding: 22px 0 28px;
    display: flex;
    align-items: center;
    gap: 13px;
    color: rgba(255,255,255,.46);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
}
.moov-access__footer-line { width: 28px; height: 1px; background: rgba(255,255,255,.25); }
@keyframes moov-photo-in { from { opacity: .55; transform: scale(1.055); } to { opacity: 1; transform: scale(1.015); } }
@media (max-width: 782px) {
    body.moov-access-page.admin-bar .moov-access { min-height: calc(100svh - 46px); }
    .moov-access__header, .moov-access__content, .moov-access__footer { width: min(100% - 36px, 1440px); }
    .moov-access__header { padding: 18px 0; }
    .moov-access__logo-frame { width: 160px; height: 68px; border-radius: 14px; }
    .moov-access__secure { padding: 9px 11px; font-size: 0; }
    .moov-access__photo { background-position: 67% center; }
    .moov-access__shade { background: linear-gradient(0deg, rgba(4,18,13,.98) 0%, rgba(4,18,13,.88) 48%, rgba(4,18,13,.34) 100%); }
    .moov-access__content { margin: auto auto 0; padding: 180px 0 30px; }
    .moov-access h1 { font-size: clamp(38px, 11vw, 57px); }
    .moov-access__content > p { margin-top: 20px; font-size: 15px; line-height: 1.55; }
    .moov-access__actions { align-items: stretch; flex-direction: column; gap: 13px; margin-top: 28px; }
    .moov-access__button { width: 100%; justify-content: space-between; }
    .moov-access__hint { max-width: none; text-align: center; }
    .moov-access__footer { padding: 17px 0 20px; }
    .moov-access__footer span:last-child, .moov-access__footer-line { display: none; }
}
@media (prefers-reduced-motion: reduce) {
    .moov-access__photo { animation: none; }
    .moov-access__button, .moov-access__button svg { transition: none; }
}
