:root{font-family:Inter,system-ui,Arial,sans-serif;color:#152b26;background:#f5f7f5}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0}a{text-decoration:none;color:inherit}.wrap{max-width:1180px;margin:auto;padding:0 24px}header{background:#fff;border-bottom:1px solid #e4e9e5;position:sticky;top:0;z-index:10}.head{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:82px}.brand{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:800;letter-spacing:.05em}.brand img{height:60px;width:94px;object-fit:contain}.brand b{display:block;color:#15904a}nav{display:flex;gap:22px;align-items:center;font-size:13px;font-weight:700}nav a:hover{color:#0d9548}.hero{background:linear-gradient(125deg,#073e2c,#07673d 65%,#0c874a);color:white;overflow:hidden}.hero-inner{min-height:400px;display:grid;grid-template-columns:1.3fr 1fr;align-items:center;gap:24px;padding-top:46px;padding-bottom:46px}.eyebrow{font-size:11px;font-weight:850;letter-spacing:2px;color:#18a15a}.hero .eyebrow{color:#bbf2c8}.hero h1{font-size:clamp(34px,5vw,64px);line-height:1.07;letter-spacing:-.04em;margin:18px 0}.hero h1 em{color:#f5df49;font-style:normal}.hero p{color:#d5efe0;line-height:1.7;max-width:530px}.hero-logo{display:flex;justify-content:center}.hero-logo img{max-width:100%;max-height:320px;object-fit:contain;filter:drop-shadow(0 18px 20px #003c2880)}.primary-link{display:inline-block;background:#f9d935;color:#173b22;border-radius:10px;padding:15px 24px;font-weight:900;margin:14px 0}.trust{font-size:12px;color:#d3efdd;margin-top:14px}.pricebar{display:grid;grid-template-columns:repeat(3,1fr);background:#fff;border-radius:18px;box-shadow:0 14px 36px #163b2420;margin:-24px 0 40px;position:relative;overflow:hidden}.pricebar>div{display:flex;flex-direction:column;gap:7px;padding:25px 30px;border-right:1px solid #e9eee9}.pricebar span{font-size:11px;color:#61796b;font-weight:850;letter-spacing:1px}.pricebar strong{font-size:27px;color:#0c6238}.pricebar small{color:#64776b}.panel{background:white;border:1px solid #e4eae5;border-radius:22px;padding:clamp(22px,4vw,40px);box-shadow:0 14px 35px #183b2910;margin-bottom:30px}.section-head h2,.consult h2{font-size:32px;margin:10px 0}.section-head p,.consult p{color:#63746a;line-height:1.6}.fields{display:grid;grid-template-columns:1fr 1fr;gap:18px}label{display:flex;flex-direction:column;gap:8px;font-size:13px;font-weight:750}input,select{border:1px solid #d0dcd3;border-radius:10px;background:#fff;padding:14px;font:inherit;width:100%;color:#183326}input:focus,select:focus{outline:2px solid #28a768;outline-offset:1px}.schedule{background:#ecf7ef;color:#1c6d3b;padding:16px 20px;border-radius:12px;margin:20px 0;font-size:14px;line-height:1.7}.booking-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;border-top:1px solid #edf0ed;margin-top:28px;padding-top:10px}.booking-grid h3{font-size:20px}.legend{display:flex;gap:15px;flex-wrap:wrap;font-size:12px;color:#69796f;margin-bottom:15px}.seatbox{max-width:355px;border:2px solid #e2eae3;border-radius:25px;background:#f6faf7;padding:22px;margin:0 auto}.front{text-align:right;color:#6c8575;font-size:11px;padding-bottom:15px}.seats{display:grid;grid-template-columns:1fr 1fr 32px 1fr 1fr;gap:7px}.seat{border:1px solid #bfd7c5;border-radius:8px;background:white;padding:11px 2px;cursor:pointer;font-weight:800;color:#1b6b3f}.seat.selected{background:#187bda;border-color:#187bda;color:white}.seat:disabled{background:#344b3c;color:white;opacity:.6;cursor:not-allowed}.aisle{text-align:center;font-size:10px;align-self:center;color:#7c9081}.hint{font-size:11px;line-height:1.6;color:#687d70}.selection{background:#edf8f0;border:1px solid #d1ebd8;padding:18px;border-radius:12px;margin:14px 0 20px;font-weight:800}.formstack{display:grid;gap:14px}.check{display:flex;flex-direction:row;align-items:flex-start;font-weight:500;line-height:1.5}.check input{width:18px;height:18px;flex:none}button#buy,.consult button{background:#078a46;color:white;border:0;border-radius:11px;padding:16px;font-weight:850;cursor:pointer;width:100%;margin-top:15px}button:disabled{opacity:.45;cursor:not-allowed}#result,#consultResult{margin-top:16px;overflow-wrap:anywhere}#result img{display:block;max-width:210px;margin:16px auto}#result textarea{width:100%;height:85px;padding:10px}.consult{display:grid;grid-template-columns:1fr 1fr;gap:35px}.consult form{display:grid;gap:12px}.help{background:#113d2a;color:white;border-radius:20px;padding:30px 40px;margin:30px 0}.help p{color:#d4e6da}footer{padding:20px 0 45px;color:#718176;font-size:12px}table{width:100%;border-collapse:collapse;font-size:13px}th,td{padding:11px 9px;text-align:left;border-bottom:1px solid #e5ece7}td button{background:#147c48;color:white;border:0;padding:8px;border-radius:7px;cursor:pointer}#summary p{background:#eef7f0;border-radius:10px;padding:12px}#dashboard{overflow:auto}@media(max-width:800px){.hero-inner,.booking-grid,.consult{grid-template-columns:1fr}.hero-logo img{max-height:190px}.hero-inner{padding-top:35px}.pricebar{grid-template-columns:1fr}.pricebar>div{border-bottom:1px solid #e5eee8}nav{gap:10px;flex-wrap:wrap;font-size:11px}.brand span{display:none}}@media(max-width:520px){.fields{grid-template-columns:1fr}.head{align-items:flex-start;padding-top:10px;padding-bottom:10px}.brand img{width:75px}.hero h1{font-size:37px}}

/* Rodapé institucional 2027 */
.institutional-footer{background:#10291f;color:#e5f1e9;margin-top:64px;padding:52px 0 20px;font-size:14px}
.institutional-footer .footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:46px;align-items:start}
.institutional-footer h3{font-size:15px;color:#fff;margin:0 0 18px}
.institutional-footer p{color:#b8cec0;line-height:1.7;margin:8px 0}
.institutional-footer a{display:block;color:#d8f5e1;text-decoration:none;margin:10px 0}
.institutional-footer a:hover{text-decoration:underline}
.institutional-footer .footer-brand{display:flex;align-items:center;gap:12px;margin:0 0 20px}
.institutional-footer .footer-brand img{width:62px;height:62px;object-fit:contain;background:#fff;border-radius:12px;padding:5px}
.institutional-footer .footer-brand strong,.institutional-footer .footer-brand small{display:block}
.institutional-footer .footer-brand small{color:#b8cec0;font-size:12px;margin-top:5px}
.institutional-footer .footer-bottom{border-top:1px solid #355243;padding-top:18px;margin-top:40px;display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;color:#b8cec0;font-size:12px;line-height:1.6}
@media(max-width:800px){.institutional-footer .footer-grid{grid-template-columns:1fr;gap:28px}.institutional-footer{padding-top:36px}}

/* Busca de viagens e mapa de dois andares */
.search-journey{background:linear-gradient(135deg,#edf7f0,#f7faf8);border:1px solid #d7e8de;border-radius:20px;padding:18px;margin:20px 0}.search-journey .fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.search-journey input[readonly]{background:#fff;color:#173b2a}.trip-list-head{margin:24px 0 12px}.trip-list-head h3{margin:6px 0}.trip-list-head p{color:#63756b}.bus-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin-bottom:26px}.bus-card{display:flex;flex-direction:column;gap:14px;cursor:pointer;text-align:left;border:2px solid #e0e9e3;border-radius:18px;padding:18px;background:#fff;color:#18392a;box-shadow:0 6px 22px rgba(20,65,40,.06);transition:.2s}.bus-card:hover{border-color:#80ae8b;transform:translateY(-2px)}.bus-card.active{border-color:#19834b;background:#f0faf3;box-shadow:0 0 0 2px rgba(25,131,75,.12)}.bus-card-top,.bus-card-route,.bus-card-bottom,.bus-route-label{display:flex;justify-content:space-between;align-items:center;gap:10px}.bus-pill{font-size:11px;background:#d9f2e2;border-radius:30px;padding:5px 9px}.bus-route{font-size:22px}.route-line{color:#438a62}.bus-route-label{font-size:12px;color:#728477}.bus-card-bottom{border-top:1px solid #e4ede6;padding-top:12px;font-size:12px}.bus-card-bottom b{color:#08763c}.deck-tabs{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0}.deck-tab{display:flex;flex-direction:column;align-items:flex-start;gap:5px;text-align:left;background:#f6f9f7;border:2px solid #dce7df;border-radius:15px;padding:15px;color:#234632;cursor:pointer}.deck-tab.active{border-color:#168449;background:#eaf8ee}.deck-tab strong{font-size:17px}.deck-tab small{font-size:12px;color:#54735e}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:720px){.search-journey .fields{grid-template-columns:1fr}.deck-tabs{grid-template-columns:1fr}.bus-cards{grid-template-columns:1fr}}

/* Marca local: imagem entregue no pacote, sem dependência de servidor externo */
.brand img,.hero-logo img,.footer-brand img{object-fit:contain;display:block;max-width:100%;height:auto}
.hero-logo{display:flex;align-items:center;justify-content:center;min-height:180px}
.hero-logo img{width:min(100%,510px);max-height:330px}

/* Logo maior, com movimento suave e acessível */
.hero-logo{min-height:350px;overflow:visible}
.hero-logo img{width:min(100%,620px);max-height:520px;animation:logoFlutua 5s ease-in-out infinite;transform-origin:center;filter:drop-shadow(0 22px 28px rgba(0,0,0,.27))}
.brand img{width:120px;height:78px;max-width:none;animation:logoRespira 6s ease-in-out infinite}
@keyframes logoFlutua{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-14px) scale(1.045)}}
@keyframes logoRespira{0%,100%{transform:scale(1)}50%{transform:scale(1.06)}}
@media(max-width:800px){.hero-logo{min-height:260px}.hero-logo img{max-height:340px;width:min(100%,450px)}}
@media(max-width:520px){.hero-logo{min-height:220px}.hero-logo img{max-height:280px}.brand img{width:100px;height:68px}}
@media(prefers-reduced-motion:reduce){.hero-logo img,.brand img{animation:none}}

/* FAQ e chat OpenRouter */
.faq-panel{margin-top:28px}.faq-list{display:grid;gap:10px}.faq-list details{border:1px solid #ddd;border-radius:12px;padding:14px 18px;background:#fff}.faq-list summary{cursor:pointer;font-weight:700}.faq-list details p{line-height:1.65;margin:12px 0 2px}.faq-chat{margin-top:24px;padding:20px;border:1px solid #ddd;border-radius:16px;background:#fafafa}.faq-messages{height:240px;overflow:auto;padding:14px;background:#fff;border:1px solid #ddd;border-radius:12px;margin:12px 0}.faq-messages p{line-height:1.5;margin:0 0 12px;white-space:pre-wrap;overflow-wrap:anywhere}.faq-chat-form{display:flex;gap:8px}.faq-chat-form input{flex:1;min-width:0;padding:12px;border:1px solid #ccc;border-radius:8px}.faq-chat-form button{padding:12px 18px}.faq-chat small{display:block;margin-top:10px;color:#666}@media(max-width:600px){.faq-chat-form{flex-direction:column}}

/* Tema vermelho histórico — respeita movimentos reduzidos */
:root{--memoria-vermelho:#a8091d;--memoria-amarelo:#ffdc57}
body{background-image:radial-gradient(circle at 90% 10%,rgba(177,18,38,.07),transparent 30%)}
.hero{background:linear-gradient(125deg,#500610 0%,#9f0b21 58%,#cf2530 100%)!important;color:#fff!important;position:relative;overflow:hidden}
.hero:after{content:'★';position:absolute;right:3%;top:1%;font-size:18rem;line-height:1;color:rgba(255,255,255,.055);pointer-events:none}
.hero h1,.hero p,.hero .eyebrow,.hero .trust{color:#fff!important}
.hero h1 em{color:var(--memoria-amarelo)!important}
.hero-subline{display:block;font-size:.48em;line-height:1.5;letter-spacing:.01em;color:#fff}
.hero-logo img{filter:drop-shadow(0 12px 28px rgba(0,0,0,.25))}
.memoria{margin:30px 0 38px;background:#fff;border-radius:22px;padding:clamp(22px,4vw,48px);border-top:8px solid var(--memoria-vermelho);box-shadow:0 12px 35px rgba(65,0,0,.09)}
.memoria-top{max-width:750px;margin-bottom:24px}.memoria-top .eyebrow{color:var(--memoria-vermelho);font-weight:800}.memoria-top h2{font-size:clamp(1.6rem,3vw,2.7rem);line-height:1.15;margin:10px 0}.memoria-top p{color:#555}
.memoria-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.memoria-grid figure{margin:0;overflow:hidden;border-radius:16px;background:#fff5f3;border:1px solid #f1dbd8}.memoria-grid img{display:block;width:100%;height:260px;object-fit:cover}.memoria-grid figcaption{padding:16px;display:grid;gap:6px}.memoria-grid figcaption strong{color:#8c0a1b;font-size:1.05rem}.memoria-grid figcaption span{font-size:.88rem;color:#4b4545}.memoria-grid a{color:#9e0a20}.memoria-nota{margin:18px 0 0;color:#555;font-size:.86rem}
@media(max-width:650px){.memoria-grid{grid-template-columns:1fr}.memoria-grid img{height:220px}.hero:after{font-size:10rem}}
@media(prefers-reduced-motion:reduce){.hero-logo img,.brand img{animation:none!important}}

/* Doação simbólica */
.donation-panel{scroll-margin-top:100px}.donation-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin:18px 0}.donation-form label{display:flex;flex-direction:column;gap:7px}.donation-form input{width:100%;padding:12px;border:1px solid #d5c6c6;border-radius:9px}.donation-form button{align-self:end}#donationResult{max-width:560px;overflow-wrap:anywhere}#donationResult img{display:block;margin:12px 0}

.seat.next-batch{opacity:.5;cursor:not-allowed;border-style:dashed!important;background:repeating-linear-gradient(45deg,#eee,#eee 5px,#ddd 5px,#ddd 10px)!important;color:#555!important}
