:root {
    --ink:#163e37;
    --muted:#5f716c;
    --accent:#168371;
    --paper:#fff;
    --line:#dbe5de;
    --tint:#edf3ee
}
body {
    background:var(--paper);
    color:var(--ink);
    font-family:'Open Sans',sans-serif!important;
    font-size:16px!important;
    line-height:1.8
}
a {
    color:var(--accent)
}
a:hover {
    color:var(--ink)
}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible {
    outline:3px solid var(--accent);
    outline-offset:5px
}
#main_header {
    background:var(--paper);
    border-bottom:1px solid var(--line);
    padding:4px 0!important;
    position:relative;
    z-index:10
}
#main_header>.container-fluid {
    max-width:1400px;
    margin:auto
}
#main_nav {
    font-size:16px;
    letter-spacing:.04em
}
#main_nav .navbar-brand {
    margin-left:0!important
}
#main_nav .logo {
    width:150px;
    height:auto;
    max-width:none;
    max-height:none;
    object-fit:contain
}
#main_nav .nav-link {
    padding:12px 13px;
    color:var(--ink);
    text-transform:none
}
#main_nav .active .nav-link {
    color:var(--accent);
    box-shadow:inset 0 -2px var(--accent)
}
#main_nav .red-circle {
    height:32px;
    width:32px;
    font-size:11px;
    background:var(--ink)
}
.editorial-shell {
    width:min(1220px,calc(100% - 96px));
    margin-inline:auto
}
.editorial-split {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:clamp(40px,6vw,90px);
    align-items:center
}
.editorial-hero {
    padding:72px 0 84px;
    position:relative;
    overflow:hidden
}
.editorial-hero:before {
    content:'';
    position:absolute;
    width:480px;
    height:480px;
    border:1px solid var(--line);
    border-radius:50%;
    right:-240px;
    top:80px;
    pointer-events:none
}
.editorial-eyebrow {
    display:block;
    font-size:11px;
    letter-spacing:.18em;
    text-transform:uppercase;
    color:var(--accent);
    margin-bottom:24px;
    font-weight:700
}
.hero-copy h1 {
    font-family:Georgia,'Times New Roman',serif;
    font-size:clamp(40px,4.6vw,66px);
    font-weight:400;
    line-height:1.09;
    letter-spacing:-.045em;
    margin:0 0 26px
}
.hero-copy h1 strong {
    font-weight:400!important
}
.hero-copy p {
    font-size:15px;
    color:var(--muted);
    margin-bottom:18px;
    max-width:540px
}
.hero-copy h1+p {
    color:var(--ink);
    font-size:18px;
    line-height:1.55
}
.hero-photo {
    margin:0;
    position:relative
}
.hero-photo:after {
    content:'';
    width:75px;
    height:75px;
    border-right:2px solid var(--accent);
    border-bottom:2px solid var(--accent);
    position:absolute;
    bottom:-14px;
    right:-14px
}
.hero-photo img {
    display:block;
    width:100%;
    height:auto;
    object-fit:contain;
    border-radius:3px
}
.home-hero .hero-photo img {
    aspect-ratio:auto;
    object-fit:contain;
    object-position:center
}
.hero-rule {
    display:block;
    height:2px;
    width:70px;
    background:var(--accent);
    margin-top:32px
}
.text-hero .editorial-split {
    grid-template-columns:1fr
}
.text-hero h1 {
    max-width:850px
}
.editorial-section {
    padding:72px 0;
    border-top:1px solid var(--line)
}
.editorial-section:nth-of-type(even) {
    background:var(--tint)
}
.editorial-reading {
    max-width:830px
}
.cms-content {
    overflow-wrap:anywhere
}
.cms-content p {
    margin-bottom:20px
}
.cms-content p:empty {
    display:none
}
.cms-content h2,.editorial-contact h2 {
    font-family:Georgia,'Times New Roman',serif;
    font-size:clamp(28px,3vw,42px);
    font-weight:400;
    letter-spacing:-.025em;
    line-height:1.2;
    margin:0 0 28px
}
.cms-content h2 strong {
    font-weight:400!important
}
.cms-content h2+h2 {
    font-size:28px;
    margin-top:-12px
}
.cms-content h2 span {
    background:transparent!important;
    color:inherit!important
}
.cms-content ul,.cms-content ol {
    padding-left:24px;
    list-style-position:outside;
    margin:22px 0
}
.cms-content li {
    padding-left:5px;
    margin:10px 0
}
.cms-content li::marker {
    color:var(--accent)
}
.cms-content a {
    text-decoration:underline;
    text-underline-offset:4px
}
.cms-content .editorial-action {
    display:inline-flex;
    align-items:center;
    border-bottom:1px solid var(--accent);
    padding:7px 0;
    text-decoration:none;
    font-size:13px;
    font-weight:700;
    color:var(--ink)
}
.hero-copy p:has(.editorial-action) {
    display:inline-block;
    margin:8px 24px 0 0
}
.section-photo {
    margin:0;
    align-self:start;
    position:sticky;
    top:40px
}
.section-photo img {
    display:block;
    width:100%;
    height:auto;
    object-fit:contain
}
.has-image:nth-of-type(odd) .section-photo {
    order:2
}
.ways-section .editorial-shell {
    max-width:1220px
}
.ways-grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:24px;
    margin-top:36px
}
.way-card {
    padding:32px;
    border:1px solid var(--line);
    background:var(--paper);
    border-top:3px solid var(--accent)
}
.way-card h2 {
    font-size:26px
}
.way-card p:first-of-type {
    font-size:10px;
    letter-spacing:.14em;
    font-weight:700;
    color:var(--accent)
}
.way-card p {
    font-size:14px;
    line-height:1.8
}
.way-card p:last-child {
    margin:0
}
.editorial-contact {
    background:var(--ink);
    color:white;
    padding:70px 0
}
.contact-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:60px;
    align-items:center
}
.contact-map iframe {
    width:100%;
    height:340px!important;
    min-height:0!important;
    display:block;
    border-radius:3px
}
.contact-person {
    display:flex;
    gap:26px;
    align-items:center
}
.contact-person>img {
    width:160px;
    height:auto;
    object-fit:contain;
    border-radius:2px
}
.editorial-contact .editorial-eyebrow {
    color:#8dd9c5
}
.editorial-contact h2 {
    font-size:32px;
    margin-bottom:20px
}
.editorial-contact a {
    color:white
}
.editorial-contact .contact-email {
    font-size:16px;
    border-bottom:1px solid #6f9990;
    padding-bottom:6px
}
.editorial-contact address {
    font-size:12px;
    color:#bbd0c9;
    margin-top:20px;
    margin-bottom:0
}
.footer {
    margin:0!important;
    padding:28px 0;
    background:var(--ink);
    color:#b4c8c1;
    border-top:1px solid #35564f;
    font-size:11px
}
.footer img {
    display:none
}
.footer .row {
    gap:10px
}
.footer a {
    color:#b4c8c1
}
.application-section {
    scroll-margin-top:25px
}
.application-section .btn {
    min-width:130px;
    border:0;
    background:var(--ink)!important
}
.application-section .form-control {
    border:1px solid #c5d7ce;
    border-radius:3px!important
}
.skip-link {
    position:fixed;
    top:-70px;
    left:15px;
    z-index:100;
    background:var(--ink);
    color:white;
    padding:12px
}
.skip-link:focus {
    top:12px
}
@media(prefers-reduced-motion:no-preference) {
    [data-reveal] {
        animation:editorial-enter .65s ease both
    }
    @keyframes editorial-enter {
        from {
            opacity:.25;
            transform:translateY(14px)
        }
        to {
            opacity:1;
            transform:translateY(0)
        }
    }
    .editorial-action,.way-card {
        transition:transform .25s ease
    }
    .way-card:hover {
        transform:translateY(-4px)
    }
}
@media(min-width:1500px) {
    .editorial-hero {
        padding-top:100px;
        padding-bottom:100px
    }
}
@media(max-width:991px) {
    .editorial-shell {
        width:calc(100% - 48px)
    }
    .editorial-split {
        gap:32px
    }
    .hero-copy h1 {
        font-size:42px
    }
    .editorial-hero {
        padding:46px 0 60px
    }
    .editorial-section {
        padding:52px 0
    }
    .ways-grid {
        gap:14px
    }
    .way-card {
        padding:22px
    }
    .way-card h2 {
        font-size:23px
    }
    .contact-grid {
        gap:30px
    }
    .contact-person {
        flex-direction:column;
        align-items:start
    }
    .navbar-collapse {
        padding:20px 0
    }
    #main_nav .active .nav-link {
        box-shadow:none;
        color:var(--accent)
    }
}
@media(max-width:640px) {
    .editorial-shell {
        width:calc(100% - 40px)
    }
    .editorial-split,.contact-grid,.ways-grid {
        grid-template-columns:1fr
    }
    .hero-copy h1 {
        font-size:40px
    }
    .editorial-hero {
        padding:36px 0 52px
    }
    .hero-photo img {
        max-height:none
    }
    .hero-photo:after {
        width:45px;
        height:45px;
        right:-8px;
        bottom:-8px
    }
    .hero-copy p {
        font-size:14px
    }
    .hero-copy h1+p {
        font-size:16px
    }
    .editorial-eyebrow {
        margin-bottom:18px
    }
    .editorial-section {
        padding:42px 0
    }
    .section-photo {
        position:static
    }
    .section-photo img {
        max-height:none;
        object-fit:contain
    }
    .has-image:nth-of-type(odd) .section-photo {
        order:0
    }
    .editorial-contact {
        padding:40px 0
    }
    .contact-person {
        flex-direction:row;
        gap:18px
    }
    .contact-person>img {
        width:105px;
        height:auto
    }
    .editorial-contact h2 {
        font-size:25px
    }
    .contact-email {
        font-size:14px!important
    }
    .cms-content h2 {
        font-size:30px
    }
    .cms-content h2+h2 {
        font-size:25px
    }
    .way-card {
        padding:26px
    }
    .contact-map iframe {
        height:260px!important
    }
}
.cms-content .cms-subheading {
    font-size:20px;
    line-height:1.4;
    color:var(--ink);
    margin-top:32px;
    margin-bottom:18px
}
.hero-copy .cms-subheading {
    margin-top:0
}
.cms-content .cms-subheading:first-child {
    margin-top:0
}
.program-details summary {
    font-family:Georgia,serif;
    font-size:26px;
    line-height:1.4;
    cursor:pointer;
    color:var(--ink)
}
.program-details[open] summary {
    margin-bottom:30px
}
@media(min-width:641px) and (max-width:900px) {
    .ways-grid {
        grid-template-columns:1fr
    }
    .way-card {
        padding:28px
    }
    .way-card h2 {
        font-size:27px
    }
    .editorial-split {
        grid-template-columns:1fr
    }
    .hero-photo {
        max-width:650px
    }
    .home-hero .hero-photo img {
        aspect-ratio:auto
    }
    .contact-grid {
        grid-template-columns:1fr
    }
    .contact-person {
        flex-direction:row
    }
}
.contact-phone {
    display:inline-block;
    font-size:13px;
    margin-top:16px;
    color:#bbd0c9!important
}
#main_nav .navbar-nav {
    align-items:center
}
#main_nav .social_top {
    display:flex;
    align-items:center;
    margin-left:12px
}
#main_nav .socials {
    align-items:center;
    margin:0;
    padding:0
}
#main_nav .socials .list-group-item {
    display:flex;
    align-items:center;
    background:transparent;
    margin:0;
    padding-block:0
}
#main_nav .socials .d-none {
    display:none!important
}
#main_nav .socials a {
    display:flex;
    align-items:center;
    justify-content:center
}
#main_nav .red-circle {
    width:40px;
    height:40px;
    font-size:13px;
    line-height:1;
    margin:0
}
#main_nav .nav-link {
    font-weight:400;
    letter-spacing:0
}
.section-photo img,.hero-photo img {
    aspect-ratio:auto!important;
    object-fit:contain!important;
    height:auto!important;
    max-height:none!important
}
.contact-person>img {
    height:auto!important;
    max-height:none;
    object-fit:contain!important;
    flex-shrink:0
}
@media(max-width:991px) {
    #main_nav .logo {
        width:139px;
        max-width:none
    }
    #main_nav .navbar-nav {
        align-items:flex-start
    }
    #main_nav .social_top {
        margin-left:0;
        margin-top:16px
    }
    #main_nav .nav-link {
        font-size:17px
    }
}
#main_nav .navbar-brand,#main_nav .navbar-brand .logo {
    max-width:none!important
}
#main_nav .navbar-brand {
    flex-shrink:0
}
.contact-linkedin {
    display:inline-flex;
    align-items:center;
    gap:14px;
    font-size:15px;
    border-bottom:1px solid #6f9990;
    padding:4px 0;
    margin-top:16px
}
@media(min-width:901px) and (max-width:1100px) {
    .contact-grid {
        gap:32px
    }
    .contact-person {
        gap:20px
    }
    .contact-person>img {
        width:130px
    }
}
.apply-hero .hero-photo {
    width:50%;
    margin-inline:auto
}
