/* Tipografia local: Baloo 2 para títulos e Nunito para leitura e interface. */
@font-face {
    font-family: "Nunito";
    font-style: normal;
    font-weight: 400 900;
    font-display: swap;
    src: url("../fonts/nunito-latin-variable.woff2") format("woff2");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: "Baloo 2";
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url("../fonts/baloo2-latin-700.woff2") format("woff2");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

body { font-family: "Nunito", system-ui, -apple-system, "Segoe UI", sans-serif; }
h1, h2, h3, .brand-caption, .nav-link, .btn, .eyebrow, .level-subtitle, .footer-title {
    font-family: "Baloo 2", "Nunito", system-ui, sans-serif;
}
h1, h2, h3, .section-title, .page-hero h1, .hero-copy h1 { letter-spacing: -.015em; }
.hero-copy h1, .page-hero h1, .section-title, .level-card h3, .level-detail h2 { font-weight: 700; }

:focus-visible { outline: 3px solid var(--yellow); outline-offset: 3px; }
.btn { transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease; }
.btn:hover { transform: translateY(-2px); box-shadow: 0 9px 22px rgba(7,78,116,.2); }
.btn:active { transform: translateY(0) scale(.98); }
.dropdown-item, .nav-link, .text-link { transition: color .18s ease, background-color .18s ease; }
.portal-card, .value-card, .contact-card { transition: transform .22s ease, box-shadow .22s ease; }
.portal-card:hover, .value-card:hover, .contact-card:hover { transform: translateY(-4px); box-shadow: 0 16px 36px rgba(7,78,116,.14); }
.hero-copy h1 span { display: inline-block; transition: transform .2s ease, text-shadow .2s ease; }
.hero-copy h1 span:hover { transform: translateY(-2px) rotate(-.4deg); text-shadow: 0 5px 0 rgba(247,200,45,.2); }
.hero-note { animation: friendly-float 5s ease-in-out infinite; }
@keyframes friendly-float { 0%, 100% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-7px) rotate(1deg); } }

@media (max-width: 767.98px) {
    .navbar { min-height: 72px; }
    .navbar-toggler { min-width: 46px; min-height: 44px; border: 2px solid var(--blue); border-radius: 14px; background: #eaf7fd; }
    .navbar-toggler:focus { box-shadow: 0 0 0 .2rem rgba(21,155,215,.25); }
    .navbar-collapse { margin-top: .45rem; padding: .5rem .65rem .75rem; border: 1px solid #d5edf8; border-radius: 1.1rem; background: linear-gradient(140deg, #e4f4fc 0%, #edf8fd 58%, #f1f9e9 80%, #fff8df 100%); box-shadow: 0 12px 26px rgba(7,78,116,.1); }
    .navbar-nav { gap: .3rem; padding: .35rem 0 .15rem !important; }
    .navbar-nav > .nav-item:not(.dropdown) > .nav-link { min-height: 44px; display: flex; align-items: center; padding: .52rem .9rem !important; border-radius: 999px; background: #fff; box-shadow: 0 2px 8px rgba(7,78,116,.05); }
    .navbar-nav > .nav-item:nth-child(2):not(.dropdown) > .nav-link { background: #f0f8e8; }
    .navbar-nav > .nav-item:nth-child(3):not(.dropdown) > .nav-link { background: #fff8df; }
    .navbar-nav > .nav-item:nth-child(4):not(.dropdown) > .nav-link { background: #fff0f6; }
    .navbar-nav > .nav-item:not(.dropdown) > .nav-link.active { color: #fff !important; background: var(--navy); }
    .navbar-nav > .nav-item.dropdown { padding: .2rem; border-radius: 1rem; background: rgba(255,255,255,.75); }
    .navbar-nav .area-aluno-toggle { width: 100%; min-height: 44px; padding: .55rem .9rem !important; border-radius: 999px; color: #fff !important; background: var(--navy) !important; }
    .navbar-nav .area-aluno-toggle:hover { color: #fff !important; background: var(--navy-deep) !important; }
    .navbar-nav .dropdown-menu { width: 100%; margin-top: .35rem !important; padding: .35rem; border-color: #d7edf7; background: #fff; }
    .navbar-nav .dropdown-item { min-height: 44px; display: flex; align-items: center; justify-content: space-between; }

    .hero-section { min-height: 505px; background-image: linear-gradient(110deg, rgba(7,83,120,.96), rgba(9,105,150,.91)), url('../banner-inove.png'); }
    .hero-section::before, .hero-section::after { content: ""; position: absolute; pointer-events: none; border-radius: 50%; }
    .hero-section::before { width: 116px; height: 116px; top: 1.1rem; right: -2rem; border: 16px solid rgba(247,200,45,.55); }
    .hero-section::after { width: 42px; height: 42px; right: 1.8rem; bottom: 2.5rem; background: rgba(230,61,123,.8); box-shadow: -35px 20px 0 rgba(139,195,74,.9); }
    .hero-content { padding-top: 3.8rem; padding-bottom: 3.8rem; }
    .hero-copy h1 { max-width: 11ch; font-size: clamp(2.5rem, 10vw, 3.25rem); }
    .hero-copy > p { max-width: 34rem; font-size: 1.05rem; }
    .hero-copy .btn { min-height: 46px; }
    .intro-strip { background: linear-gradient(100deg, #e8f6fd, #f0f8e8 72%, #fff8df); }
    .intro-strip-inner { align-items: flex-start; padding-top: 1rem; padding-bottom: 1rem; }
    .intro-strip p { text-align: left; font-size: .96rem; }

    .levels-section { background: linear-gradient(180deg, #eaf7fd, #f5faff); }
    .level-card { border-radius: 1.25rem; }
    .level-coral .level-card-body { background: linear-gradient(145deg, #fff, #fff4f8); }
    .level-blue .level-card-body { background: linear-gradient(145deg, #fff, #eef8fd); }
    .level-green .level-card-body { background: linear-gradient(145deg, #fff, #f3f9ed); }
    .level-yellow .level-card-body { background: linear-gradient(145deg, #fff, #fff9e7); }
    .values-section { background: linear-gradient(145deg, #0b78a8, #074e74 80%); }
    .portal-section { background: #eaf7fd; }
    .portal-card { border: 1px solid #cce8f5; background: linear-gradient(135deg, #dff2fc, #ebf7fd 65%, #f2f9eb); }
    .portal-card .btn { width: 100%; }
    .page-hero { min-height: 300px; background-image: linear-gradient(110deg, rgba(7,83,120,.97), rgba(9,105,150,.9)), url('../banner-inove.png'); }
    .contact-card { background: linear-gradient(145deg, #fff, #eef8fd); }
    .row > div:nth-child(2) .contact-card { background: linear-gradient(145deg, #fff, #f3f9ed); }
    .row > div:nth-child(3) .contact-card { background: linear-gradient(145deg, #fff, #fff9e7); }
    .row > div:nth-child(4) .contact-card { background: linear-gradient(145deg, #fff, #fff4f8); }
    .topbar { display: none; }
    .contact-note { border-color: #cfe9f5; }
    .cookie-notice { border-top: 4px solid var(--blue); }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
