@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root {
    --navy:#06366b;
    --green:#278773;
    --ink:#344f70;
    --pale:#eef7f8
}
* {
    box-sizing:border-box
}
html {
    scroll-behavior:smooth;
    scroll-padding-top:110px
}
body {
    margin:0;
    color:var(--navy);
    background:var(--cor-fundo);
    font-family:'DM Sans',Arial,sans-serif
}
a {
    color:inherit;
    text-decoration:none
}
button,input {
    font:inherit
}
button,a,input,summary {
    outline-offset:5px
}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible {
    outline:3px solid #279b89
}
.wrap {
    width:min(1170px,86%);
    margin:auto
}
.brand {
    display:flex;
    align-items:center;
    gap:12px
}
.brand svg {
    width:49px;
    height:73px
}
.brand strong {
    font-size:35px;
    font-weight:600;
    letter-spacing:1px;
    line-height:1
}
.brand small {
    display:block;
    text-align:center;
    font-size:8.5px;
    letter-spacing:1.8px;
    line-height:1.45;
    margin-top:6px
}
.nav {
    display:flex;
    align-items:center;
    gap:27px;
    font-size:13px
}
.nav a:hover {
    color:var(--green)
}
.pill {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:20px;
    background:var(--green);
    border:1px solid transparent;
    color:white;
    border-radius:40px;
    padding:17px 26px;
    font-size:14px;
    transition:background .2s,transform .2s
}
.pill:hover {
    background:#176e5e;
    transform:translateY(-2px)
}
.portal {
    padding:14px 23px
}
.portal svg {
    width:18px;
    height:18px
}
.hero {
    position:relative;
    overflow:hidden;
    margin-top:-145px;
    padding-top:145px;
    background:linear-gradient(115deg,#fff 12%,#fdfefe 62%,#eaf5f7)
}
.hero .wrap {
    position:relative;
    z-index:1;
    padding-top:75px;
    padding-bottom:108px
}
.eyebrow {
    display:flex;
    align-items:center;
    gap:24px;
    font-size:10px;
    letter-spacing:4px;
    text-transform:uppercase;
    font-weight:600;
    line-height:1.8
}
.eyebrow:before {
    content:'';
    width:43px;
    height:2px;
    background:var(--green);
    flex-shrink:0
}
h1,h2,h3 {
    font-family:Manrope,Arial,sans-serif;
    letter-spacing:-2px
}
h1 {
    font-size:clamp(48px,5.7vw,78px);
    line-height:1.08;
    margin:24px 0 24px;
    font-weight:800;
    max-width:810px
}
h1 span {
    color:var(--green)
}
.hero p {
    font-size:19px;
    line-height:1.7;
    color:var(--ink);
    max-width:540px;
    margin:0 0 29px
}
.arrow {
    font-size:23px;
    line-height:1
}
.art {
    position:absolute;
    width:620px;
    height:820px;
    right:-190px;
    top:30px;
    pointer-events:none
}
.hero-bottom {
    position:absolute;
    bottom:-1px;
    width:100%;
    height:70px;
    left:0
}
.hero-foot {
    margin-top:34px;
    display:flex;
    gap:27px;
    font-size:11px;
    color:#4b657d
}
.hero-foot span {
    display:flex;
    align-items:center;
    gap:8px
}
.hero-foot i {
    width:5px;
    height:5px;
    border-radius:50%;
    background:var(--green)
}
.breadcrumb {
    font-size:11px;
    color:#698094;
    margin-bottom:44px
}
.breadcrumb a:hover {
    text-decoration:underline
}
.breadcrumb span {
    margin:0 10px
}
.intro {
    padding-top:20px
}
.intro-top {
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    gap:40px;
    margin-bottom:35px
}
h2 {
    font-size:clamp(30px,3.6vw,44px);
    line-height:1.18;
    margin:18px 0 0;
    font-weight:800
}
.intro-top p {
    max-width:340px;
    font-size:15px;
    line-height:1.7;
    color:var(--ink);
    margin:0
}
.curriculum {
    padding-bottom:85px
}
.toolbar {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
    margin:32px 0 20px
}
.search {
    display:flex;
    align-items:center;
    gap:12px;
    width:420px;
    background:white;
    border:1px solid #dae6e9;
    border-radius:12px;
    padding:14px 17px
}
.search svg {
    width:19px;
    height:19px;
    flex-shrink:0
}
.search input {
    border:0;
    outline:none;
    width:100%;
    color:var(--navy);
    background:transparent;
    font-size:13px
}
.search:focus-within {
    border-color:var(--green)
}
.toolbar button {
    background:none;
    border:0;
    color:var(--green);
    cursor:pointer;
    font-size:12px;
    padding:10px
}
.toolbar button:hover {
    text-decoration:underline
}
.count {
    font-size:11px;
    color:#6a7e90;
    letter-spacing:.3px;
    margin:0 0 17px
}
.modules {
    border-top:1px solid #dce7e9
}
details {
    border-bottom:1px solid #dce7e9;
    transition:background .2s
}
details[open] {
    background:#f0f8f7;
    border-radius:12px;
    border-color:transparent;
    margin:8px 0
}
summary {
    cursor:pointer;
    display:flex;
    align-items:center;
    gap:22px;
    padding:24px 18px;
    list-style:none
}
summary::-webkit-details-marker {
    display:none
}
.number {
    flex-shrink:0;
    font-size:12px;
    color:var(--green);
    background:#eaf4f2;
    display:flex;
    justify-content:center;
    align-items:center;
    border-radius:50%;
    width:36px;
    height:36px
}
summary h3 {
    font-family:'DM Sans',Arial,sans-serif;
    font-size:16px;
    line-height:1.45;
    letter-spacing:-.25px;
    font-weight:500;
    margin:0;
    flex:1
}
.plus {
    font-size:23px;
    font-weight:400;
    color:var(--green);
    width:22px;
    text-align:center
}
details[open] .plus {
    font-size:0
}
details[open] .plus:after {
    content:'−';
    font-size:23px
}
.module-body {
    padding:0 70px 27px 76px;
    color:var(--ink);
    font-size:14px;
    line-height:1.9
}
.module-body p {
    margin:0
}
.module-body small {
    display:block;
    text-transform:uppercase;
    letter-spacing:2px;
    font-size:9px;
    color:var(--green);
    margin-bottom:10px
}
#empty {
    padding:32px;
    background:var(--pale);
    border-radius:12px;
    color:var(--ink)
}
.values {
    position:relative;
    overflow:hidden;
    background:linear-gradient(130deg,#eff8f7,#f8fbfd);
    padding:75px 0 70px
}
.values .wrap {
    position:relative;
    z-index:1
}
.values-heading {
    max-width:700px
}
.values-heading p {
    color:var(--ink);
    line-height:1.8;
    font-size:16px;
    max-width:620px
}
.cards {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:22px;
    margin-top:35px
}
.card {
    background:#ffffffd9;
    border:1px solid #fff;
    border-radius:20px;
    padding:30px 28px;
    box-shadow:0 12px 40px #06366b05
}
.icon {
    width:56px;
    height:56px;
    border-radius:50%;
    background:#e4f3ef;
    color:#16816d;
    display:grid;
    place-items:center;
    font-size:25px
}
.card:nth-child(2) .icon {
    background:#e5f2fa;
    color:#0e62a1
}
.card h3 {
    font-size:22px;
    letter-spacing:-.7px;
    line-height:1.3;
    margin:22px 0 12px
}
.card p {
    font-size:14px;
    line-height:1.7;
    color:var(--ink);
    margin:0
}
.signature {
    display:flex;
    justify-content:center;
    align-items:center;
    gap:25px;
    text-align:center;
    font-size:9px;
    letter-spacing:3px;
    margin-top:55px;
    color:#31638e
}
.signature:before,.signature:after {
    content:'';
    width:48px;
    height:1px;
    background:var(--green)
}
.footer-inner {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:30px;
    color:#62778b;
    font-size:11px;
    line-height:1.8
}
footer a {
    color:var(--green)
}
.note {
    max-width:470px
}
.menu {
    display:none;
    background:white;
    border:1px solid #dce7e9;
    padding:10px 14px;
    border-radius:20px;
    color:var(--navy)
}
[hidden] {
    display:none!important
}
@media(min-width:1500px) {
    .art {
        right:-80px
    }
}
@media(max-width:1000px) {
    .nav {
        gap:17px
    }
    .brand strong {
        font-size:29px
    }
    .brand svg {
        width:40px
    }
    .brand small {
        font-size:7px
    }
    .art {
        right:-300px;
        opacity:.8
    }
    .hero p {
        max-width:470px
    }
    .nav .portal {
        padding:13px 16px
    }
}
@media(max-width:760px) {
    .wrap {
        width:88%
    }
    .brand strong {
        font-size:27px
    }
    .brand svg {
        height:59px;
        width:35px
    }
    .menu {
        display:block;
        font-size:12px
    }
    .nav {
        display:none;
        position:absolute;
        top:90px;
        right:0;
        left:0;
        flex-direction:column;
        align-items:stretch;
        background:white;
        padding:22px;
        border-radius:16px;
        box-shadow:0 12px 35px #06366b15;
        gap:20px
    }
    .nav.open {
        display:flex
    }
    .hero {
        margin-top:-106px;
        padding-top:106px
    }
    .hero .wrap {
        padding-top:55px;
        padding-bottom:83px
    }
    .eyebrow {
        font-size:8px;
        letter-spacing:2.6px;
        gap:16px
    }
    .eyebrow:before {
        width:28px
    }
    h1 {
        font-size:47px;
        letter-spacing:-2px;
        max-width:500px
    }
    .hero p {
        font-size:16px;
        max-width:92%
    }
    .art {
        opacity:.22;
        right:-370px;
        top:30px
    }
    .hero-foot {
        gap:15px;
        font-size:10px
    }
    .intro-top {
        display:block
    }
    .intro-top p {
        margin-top:22px;
        max-width:100%
    }
    .breadcrumb {
        margin-bottom:30px
    }
    .toolbar {
        align-items:stretch;
        flex-direction:column;
        gap:6px
    }
    .search {
        width:100%
    }
    .toolbar button {
        align-self:flex-end
    }
    summary {
        padding:20px 5px;
        gap:13px
    }
    summary h3 {
        font-size:14px
    }
    .number {
        width:31px;
        height:31px;
        font-size:10px
    }
    .module-body {
        padding:0 24px 24px 49px;
        font-size:13px
    }
    .cards {
        grid-template-columns:1fr;
        gap:15px
    }
    .card {
        padding:25px
    }
    .card h3 {
        margin-top:15px
    }
    .values {
        padding:55px 0
    }
    .signature {
        letter-spacing:1.5px;
        gap:12px;
        font-size:8px
    }
    .footer-inner {
        flex-direction:column;
        align-items:flex-start;
        gap:16px
    }
    .curriculum {
        padding-bottom:55px
    }
}
@media(prefers-reduced-motion:reduce) {
    html {
        scroll-behavior:auto
    }
    * {
        transition:none!important
    }
}
@media print {
    header,.art,.toolbar,.hero-bottom,.values,footer,.hero .pill,.hero-foot {
        display:none
    }
    .hero {
        margin:0;
        padding:0;
        background:white
    }
    .hero .wrap {
        padding:20px 0
    }
    .hero h1 {
        font-size:36px
    }
    .hero p {
        font-size:13px
    }
    .module-body {
        display:block
    }
    .wrap {
        width:100%
    }
    details {
        break-inside:avoid
    }
    summary {
        padding:12px
    }
    body {
        font-size:12px
    }
}
.course-introduction {
    padding:8px 0 58px;
    margin-bottom:48px;
    border-bottom:1px solid #dce7e9
}
.course-introduction h2 {
    max-width:850px;
    font-size:clamp(28px,3.5vw,43px);
    letter-spacing:-1.3px;
    line-height:1.25;
    margin-bottom:35px
}
.course-introduction h2 span {
    color:var(--green)
}
.course-copy {
    max-width:940px
}
.course-copy article+article {
    margin-top:30px
}
.course-copy h3 {
    font-size:23px;
    letter-spacing:-.5px;
    margin:0 0 13px;
    color:var(--navy)
}
.course-copy p {
    color:var(--ink);
    font-size:16px;
    line-height:1.85;
    margin:0
}
@media(max-width:760px) {
    .course-introduction {
        padding-bottom:36px;
        margin-bottom:36px
    }
    .course-introduction h2 {
        margin-bottom:26px
    }
    .course-copy h3 {
        font-size:21px
    }
    .course-copy p {
        font-size:15px;
        line-height:1.8
    }
}
.curriculum {
    padding-top:64px
}
.course-introduction {
    padding-top:0
}
.course-introduction h2 {
    margin-top:0
}
@media(max-width:760px) {
    .curriculum {
        padding-top:35px
    }
}