:root { --aurora-ink:#153a32; --aurora-paper:#f4f7ef; --aurora-lime:#d9fa8d; --aurora-mist:#e5eee4; }
:root { --aurora-surface:#fbfcf7; --aurora-border:#d1dfd4; --aurora-muted:#4a6256; --aurora-frame:1160px; --aurora-gutter:clamp(16px,4vw,40px); }
body { background: var(--aurora-paper); color: var(--aurora-ink); }
header, header .menu { background: #f8faf4 !important; }
header .navbar-brand img { width: clamp(142px, 25vw, 190px); max-width:none; height: auto; }
header .navbar .btn-entrar-desktop, header .navbar .btn-entrar-mobile { background:#153a32; color:#fff; }
.section-topo { background: radial-gradient(ellipse at 78% 20%, #dcebdd, transparent 62%), #f2f6e9 !important; }
.section-servicos { background: #eaf2e8 !important; }
.section-servicos { padding-top:20px; }
.section-servicos .btn-ver-mais { color:#23634c; }
.section-topo .highlight, .section-servicos .highlight { color: #23634c !important; }
.section-topo .aurora-hero-image { width: 100%; height: auto; }
.section-topo .hero-copy .ratings { display:flex; align-items:center; gap:13px; }
.section-topo .hero-copy .ratings p { margin:0; }
.section-topo .hero-copy .user-img { width:40px; height:40px; border:2px solid #edf4e9; margin:0; }
.section-topo .hero-copy .user-img + .user-img { margin-left:-7px; }
footer, .footer { background: #153a32 !important; }
.footer-logo img { background: #f8faf4; padding: 6px 9px; border-radius: 11px; }

header .menu { border-bottom:1px solid var(--aurora-border); box-shadow:0 3px 14px #153a3208; }
header .menu .navbar { max-width:var(--aurora-frame)!important; padding-inline:var(--aurora-gutter)!important; }
header .navbar-nav .nav-link.active { color:#22674e; }
header .navbar :is(.btn-entrar-desktop,.btn-entrar-mobile) { min-height:44px; align-items:center; justify-content:center; }
.mobile-nav { display:none; }
@media (max-width:991.98px) {
    header .menu .navbar { position:relative; flex-wrap:nowrap; gap:clamp(6px,2vw,12px); }
    header .navbar .navbar-brand { min-width:0; flex:0 1 auto; margin:0; margin-inline-end:auto!important; }
    header .navbar .navbar-brand img { max-width:100%; }
    header .navbar .navbar-nav { display:none; }
    header .navbar .mobile-nav { display:block; flex:none; }
    header .navbar > .btn-entrar-mobile {
        display:flex; flex:none; padding:0 clamp(11px,3vw,16px); border-radius:12px;
        font-size:.91rem; font-weight:700; white-space:nowrap;
    }
    .mobile-nav summary {
        display:flex; align-items:center; gap:7px; min-height:44px; padding:0 clamp(9px,2.5vw,13px); white-space:nowrap;
        list-style:none; border:1px solid #b9cfc0; border-radius:12px; background:#edf4e9;
        color:var(--aurora-ink); font-size:.91rem; font-weight:700; cursor:pointer;
    }
    .mobile-nav summary::-webkit-details-marker { display:none; }
    .mobile-nav summary i { font-size:.68rem; }
    .mobile-nav[open] summary i { transform:rotate(180deg); }
    .mobile-nav-links {
        position:absolute; z-index:1; top:calc(100% - 3px); inset-inline-end:var(--aurora-gutter);
        width:min(216px,calc(100% - 2 * var(--aurora-gutter)));
        display:grid; gap:3px; padding:7px; border:1px solid var(--aurora-border); border-radius:14px;
        background:var(--aurora-surface); box-shadow:0 14px 32px #153a3229;
    }
    .mobile-nav:not([open]) .mobile-nav-links { display:none; }
    .mobile-nav-links a {
        display:flex; align-items:center; min-height:44px; padding:0 11px; border-radius:8px;
        color:var(--aurora-ink); font-weight:600; white-space:nowrap;
    }
    .mobile-nav-links a:hover { background:var(--aurora-mist); text-decoration:none; }
    .mobile-nav :is(summary,a):focus-visible, .navbar > .btn-entrar-mobile:focus-visible {
        outline:2px solid #27634b; outline-offset:2px;
    }
}
#services.section-topo {
    padding:clamp(106px,9vw,130px) var(--aurora-gutter) clamp(27px,4vw,55px)!important;
    background:radial-gradient(ellipse at 78% 45%,#dbead7,transparent 58%),#f5f8ef!important;
}
#services.section-topo > .container,
.section-servicos > .container,
.section-custom-package > .container { max-width:var(--aurora-frame)!important; }
#services.section-topo > .container > .row { display:grid; grid-template-columns:minmax(0,1.06fr) minmax(0,.94fr); column-gap:clamp(24px,5vw,72px); }
#services :is(.hero-copy,.aurora-hero) { width:100%; max-width:none; padding:0; }
#services .hero-copy { color:var(--aurora-ink); }
#services .hero-copy h1 { color:var(--aurora-ink); font-size:clamp(2.35rem,4.2vw,3.85rem); line-height:1.07; letter-spacing:-.055em; text-wrap:balance; }
#services .hero-copy > p { color:var(--aurora-muted); max-width:47ch; font-size:clamp(.94rem,1.5vw,1.09rem); line-height:1.6; }
#services .hero-copy .ratings { margin-top:23px!important; }
#services .hero-copy .ratings p { color:var(--aurora-ink)!important; }
#services .hero-copy .ratings .stars { color:#285c48!important; }
#services .aurora-hero {
    border:1px solid #c8dacb; border-radius:30px; padding:clamp(9px,2vw,26px);
    background:radial-gradient(#8aaf9540 1px,transparent 1px) 0 0 / 13px 13px,#edf4e9;
    box-shadow:0 19px 42px -29px #163a32a0;
}
#services .aurora-hero-image { display:block; }

.section-servicos {
    margin-top:clamp(16px,2vw,25px); padding:16px!important; border-radius:19px; border:1px solid #294c40;
    background:radial-gradient(ellipse at 95% 10%,#315c49,transparent 75%),#153a32!important;
    text-align:left;
}
.section-servicos h2 { color:#f4f8ee; font-size:clamp(1.02rem,1.8vw,1.27rem); letter-spacing:-.025em; line-height:1.35; margin:0 0 11px; }
.section-servicos h2 + br { display:none; }
.section-servicos h2 .highlight { color:var(--aurora-lime)!important; }
.section-servicos .servicos-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; padding:0!important; }
.section-servicos .servico-btn {
    min-height:46px; height:auto; padding:4px; gap:6px; border:1px solid #dbe8db!important;
    border-radius:11px; background:#fafcf6; color:var(--aurora-ink); box-shadow:none;
    font-size:clamp(.9rem,1.5vw,1.05rem); transition:background-color .18s,transform .18s;
}
.section-servicos .servico-btn:hover { background:#eaf4e4; transform:translateY(-2px); }
.section-servicos .servico-btn i { flex:none; width:34px; height:34px; border-radius:8px; font-size:19px; }
.section-servicos .servico-btn span { min-width:0; padding-right:5px; }
.section-servicos .btn-ver-mais { display:grid; place-items:center; width:44px; height:44px; border:1px solid #5d826d; border-radius:12px; margin:8px 0 0 auto; font-size:1.15rem; color:var(--aurora-lime); }
.section-servicos .btn-ver-mais:hover { color:white; }
.section-servicos .btn-ver-mais:focus-visible { outline:2px solid var(--aurora-lime); outline-offset:4px; }

.section-custom-package { padding:clamp(34px,6vw,70px) var(--aurora-gutter)!important; background:#fafbf5!important; }
.section-custom-package > .container { display:grid; grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr); grid-template-rows:auto 1fr; column-gap:clamp(26px,6vw,85px); align-items:start; text-align:left; }
.section-custom-package h2,.section-faq h2 { color:var(--aurora-ink); font-size:clamp(1.65rem,3.4vw,2.9rem); letter-spacing:-.045em; }
.section-custom-package > .container > h2 { grid-column:1; grid-row:1; margin:0 0 12px; text-align:left; }
.section-custom-package > .container > p { grid-column:1; grid-row:2; color:var(--aurora-muted); margin:0; text-align:left; }
.section-custom-package .custom-package-steps {
    display:grid; grid-column:2; grid-row:1 / span 2; grid-template-columns:minmax(0,1fr); gap:0; margin:0;
    border:1px solid var(--aurora-border); background:white; border-radius:20px; overflow:hidden;
}
.section-custom-package .custom-package-step {
    display:grid; grid-template-columns:46px minmax(0,1fr); column-gap:15px; align-items:center;
    width:100%; max-width:none; border:0!important; border-radius:0; padding:clamp(12px,2vw,18px);
    background:transparent; box-shadow:none; text-align:left;
}
.section-custom-package .custom-package-step + .custom-package-step { border-top:1px solid #e4ede4!important; }
.section-custom-package .custom-package-step:hover { transform:none; box-shadow:none; }
.section-custom-package .custom-package-step-icon { grid-row:1 / span 2; width:44px; height:44px; padding:0; margin:0; border-radius:12px; background:#deebde; color:#245c47; }
.section-custom-package .custom-package-step:nth-child(2) .custom-package-step-icon { background:#ebeed5; color:#4e5d2f; }
.section-custom-package .custom-package-step:nth-child(3) .custom-package-step-icon { background:#d9f4a3; color:#2e5a37; }
.section-custom-package .custom-package-step h3 { color:var(--aurora-ink); font-size:1.05rem!important; margin:0 0 5px; }
.section-custom-package .custom-package-step p { color:var(--aurora-muted); font-size:.91rem; margin:0; text-align:left; }

.section-faq { padding:clamp(36px,6vw,65px) var(--aurora-gutter)!important; background:#e5efe5!important; }
.section-faq .container-faq { display:grid; grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr); column-gap:clamp(26px,6vw,85px); width:100%; max-width:var(--aurora-frame); padding:0; }
.section-faq h2 { grid-column:1; grid-row:1 / span 3; margin:0 0 16px; align-self:start; }
.section-faq .faq-item { grid-column:2; }
.section-faq .faq-item { background:var(--aurora-surface); border:1px solid var(--aurora-border); border-radius:13px; margin-bottom:8px; padding-inline:14px; }
.section-faq .faq-question { color:var(--aurora-ink); display:flex; align-items:center; justify-content:space-between; gap:10px; min-height:52px; padding:10px 0; border:0; font-weight:650; }
.section-faq .faq-question:focus-visible { outline:2px solid #2c7152; outline-offset:2px; }
.section-faq .faq-icon { position:static; flex:none; line-height:1; color:#27634b; }
.section-faq .faq-answer p { padding:0 6px 14px 0; margin:0; color:var(--aurora-muted); }
.section-faq .faq-question[aria-expanded="true"] + .faq-answer { padding-top:0; }
footer.footer-section { padding:32px var(--aurora-gutter); }
.footer-section .container-footer { max-width:var(--aurora-frame); }
.footer-section .footer-logo img { max-width:183px; height:auto; margin-bottom:12px; }
.footer-section .footer-links { flex-direction:row; flex-wrap:wrap; justify-content:center; gap:4px 9px; margin-bottom:9px; }
.footer-section .footer-links a { display:flex; align-items:center; min-height:44px; padding:5px; }
.footer-section .footer-links a:hover { color:var(--aurora-lime); }
.footer-section .footer-info { max-width:66ch; }

#modal {
    z-index:1100; padding:clamp(12px,4vw,28px); overflow:auto; overscroll-behavior:contain;
    background:#102f29a6; backdrop-filter:blur(4px);
}
#modal .modal-content {
    display:grid; grid-template-columns:auto minmax(0,1fr); column-gap:12px; row-gap:8px;
    flex:0 0 auto; width:min(100%,440px); max-height:100%; overflow:auto;
    padding:clamp(16px,5vw,24px); text-align:left; color:var(--aurora-ink);
    border:1px solid var(--aurora-border); border-radius:22px;
    background:radial-gradient(ellipse at 0 0,#e6f2e4,transparent 48%),var(--aurora-surface);
    box-shadow:0 24px 70px #102f2966;
    animation:elevador-modal-in .18s ease-out both;
}
#modal #service-modal-header { grid-row:1 / span 2; align-self:center; margin:0; }
#modal #service-icon {
    width:46px; height:46px; padding:0; border-radius:13px; font-size:22px;
    background:var(--aurora-ink)!important; color:var(--aurora-lime);
}
#modal #service-title {
    grid-column:2; align-self:end; margin:0; font-size:clamp(1.22rem,5.8vw,1.55rem);
    line-height:1.12; letter-spacing:-.035em; color:var(--aurora-ink);
}
#modal #service-title + br { display:none; }
#modal .modal-content > p { grid-column:2; margin:0; text-align:left; color:var(--aurora-muted); font-size:.875rem; }
#modal :is(.input-container,#error-message,#examples-list,.button-container) { grid-column:1 / -1; }
#modal .input-container {
    gap:9px; min-height:48px; margin:7px 0 0; padding:0 12px; background:#fff;
    border:1px solid #a6bcab; border-radius:12px; box-shadow:none;
}
#modal .input-container:focus-within { border-color:#27634b; outline:2px solid #27634b; outline-offset:2px; }
#modal .input-container i { margin:0; color:#3f6a58; font-size:15px; }
#modal #user-input { min-width:0; padding:11px 0; color:var(--aurora-ink); background:transparent; font:inherit; font-size:16px; }
#modal #user-input::placeholder { color:#526d60; opacity:1; }
#modal #error-message { margin:0; padding:7px 10px; border-radius:8px; background:#fbece6; color:#8b3427; font-size:.83rem; }
#modal #examples-list {
    margin:3px 0 5px; padding:10px 12px; border:1px solid var(--aurora-border); border-radius:12px;
    background:#eaf2e7; color:var(--aurora-ink); font-size:.83rem; overflow-wrap:anywhere;
}
#modal #examples-list p { margin:3px 0 0; color:var(--aurora-muted); font-size:.83rem; line-height:1.35; }
#modal .button-container { display:grid; grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr); gap:8px; }
#modal .modal-button {
    width:100%; max-width:none; height:auto; min-height:46px; padding:8px 6px; border-radius:11px;
    border:1px solid transparent; font:inherit; font-size:.91rem; font-weight:700; line-height:1.25;
}
#modal #back-button { border-color:#c6d9cb; background:#f3f8ef; color:var(--aurora-ink); }
#modal #back-button:hover { background:#e1eee0; }
#modal #submit-button { background:var(--aurora-lime); border-color:#b9d67b; color:var(--aurora-ink); }
#modal #submit-button:hover { background:#c9ed7e; opacity:1; }
#modal .modal-button:focus-visible { outline:2px solid #27634b; outline-offset:2px; }
@keyframes elevador-modal-in { from { opacity:0; transform:translateY(6px); } to { opacity:1; transform:none; } }

@media (max-width: 767px) {
    header .navbar-brand { display:flex; align-items:center; gap:12px; }
    #services.section-topo { padding-top:clamp(83px,23vw,100px)!important; padding-bottom:20px!important; }
    #services.section-topo > .container > .row { grid-template-columns:minmax(0,1fr); row-gap:12px; }
    .section-topo .hero-copy { padding-inline:0; }
    .section-topo .hero-copy > p { margin-bottom:0; }
    .section-topo .hero-copy .ratings { justify-content:center; margin-top:12px!important; gap:8px; }
    .section-topo .hero-copy .ratings p { font-size:clamp(.63rem,2.55vw,.77rem); line-height:1.38; text-align:left; }
    .section-topo .hero-copy .ratings .stars { font-size:inherit; }
    .section-topo .hero-copy .user-img { width:27px; height:27px; }
    #services .aurora-hero { display:block!important; max-width:370px; margin:0 auto; padding:6px; border-radius:20px; }
    .section-topo .aurora-hero-image { max-height:176px; object-fit:contain; }
    #services .hero-copy h1 { font-size:clamp(1.85rem,7.7vw,2.75rem); line-height:1.09; }
    #services .hero-copy > p { margin-inline:auto; line-height:1.5; }
    #services .hero-copy .ratings { margin-top:12px!important; }
    .section-servicos { margin-top:14px; padding:9px!important; border-radius:15px; }
    .section-servicos > .container { display:grid; grid-template-columns:minmax(0,1fr) 44px; align-items:start; gap:7px; }
    .section-servicos .servicos-grid { gap:8px; }
    .section-servicos .servico-btn { min-height:45px; border-radius:9px; gap:4px; font-size:clamp(.76rem,3.5vw,.91rem); }
    .section-servicos .servico-btn i { width:30px; height:30px; font-size:18px; }
    .section-servicos .servico-btn span { padding-right:2px; }
    .section-servicos .btn-ver-mais { margin:0; min-height:45px; }
    .section-custom-package > .container,.section-faq .container-faq { display:block; }
    .section-custom-package > .container > p { margin-bottom:16px; }
    .section-custom-package .custom-package-step { column-gap:12px; padding:12px; }
    .section-custom-package .custom-package-step h3 { margin:0; }
    .section-faq .faq-question { font-size:.93rem; }
}
@media (prefers-reduced-motion:reduce) {
    #modal .modal-content { animation:none; }
    .section-servicos .servico-btn,.section-servicos .btn-ver-mais,.section-faq .faq-answer { transition:none; }
    .section-servicos .servico-btn:hover,.section-servicos .btn-ver-mais:hover { transform:none; }
}
