@charset "UTF-8";
:root  {
    --ink:#173e35;
    --green:#1e5b48;
    --green-hover:#164735;
    --mint:#eaf1e9;
    --paper:#f8f7f2;
    --sand:#f0ebdd;
    --gold:#b59559;
    --body:#616c65;
    --line:#e5e8df;
    --white:#fff;
    --radius:18px
}

*  {
    box-sizing:border-box
}

html  {
    scroll-behavior:smooth;
    scroll-padding-top:110px
}

body  {
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:"Segoe UI",Tahoma,Arial,sans-serif;
    font-size:16px;
    line-height:1.75;
    -webkit-font-smoothing:antialiased
}

a  {
    color:inherit;
    text-decoration:none
}

button,input,select  {
    font:inherit
}

button,a,input,select,summary  {
    -webkit-tap-highlight-color:transparent
}

button,summary  {
    cursor:pointer
}

button  {
    border:0
}

input,select  {
    min-width:0
}

svg  {
    flex-shrink:0;
    vertical-align:middle
}

h1,h2,h3,p  {
    margin:0
}

h1,h2,h3  {
    line-height:1.5
}

::selection  {
    background:#d9e7d8;
    color:var(--ink)
}

:focus-visible  {
    outline:3px solid #bb924e;
    outline-offset:4px
}

input:focus-visible,select:focus-visible  {
    outline-offset:1px
}

section[id],div[id]  {
    scroll-margin-top:108px
}

.container  {
    width:min(1180px,calc(100% - 80px));
    margin-inline:auto
}

.sr-only  {
    position:absolute;
    width:1px;
    height:1px;
    padding:0;
    margin:-1px;
    overflow:hidden;
    clip:rect(0,0,0,0);
    white-space:nowrap;
    border:0
}

.skip-link  {
    position:fixed;
    top:-100px;
    right:16px;
    z-index:100;
    background:var(--ink);
    color:white;
    padding:12px 22px;
    border-radius:8px
}

.skip-link:focus  {
    top:12px
}

.button  {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:13px;
    min-height:48px;
    padding:10px 22px;
    border-radius:9px;
    font-weight:600;
    transition:background .2s,transform .2s
}

.button-primary  {
    background:var(--green);
    color:#fff
}

.button-primary:hover  {
    background:var(--green-hover);
    transform:translateY(-1px)
}

.button-outline  {
    border:1px solid #bccbbf;
    background:transparent;
    color:var(--green)
}

.button-outline:hover  {
    background:var(--mint)
}

.text-link  {
    display:inline-flex;
    align-items:center;
    gap:10px;
    font-size:14px;
    font-weight:600;
    color:var(--green)
}

.text-link:hover  {
    text-decoration:underline;
    text-underline-offset:5px
}

.eyebrow  {
    display:inline-flex;
    align-items:center;
    gap:9px;
    color:var(--green);
    font-size:13px;
    font-weight:600;
    letter-spacing:.15px
}

.small-label  {
    font-size:12px;
    font-weight:600
}

.square-icon  {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:45px;
    height:45px;
    background:var(--mint);
    border-radius:12px;
    color:var(--green)
}

/* Header */
.site-header  {
    position:sticky;
    top:0;
    z-index:30;
    background:rgba(248,247,242,.97);
    border-bottom:1px solid #e6e8df;
    backdrop-filter:blur(12px)
}

.header-inner  {
    height:94px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:28px
}

.brand  {
    display:flex;
    gap:12px;
    align-items:center;
    flex-shrink:0
}

.brand-mark  {
    width:49px;
    height:49px;
    display:grid;
    place-items:center;
    background:var(--ink);
    color:#f5f4e9;
    border-radius:14px;
    overflow:hidden;
    flex-shrink:0
}

.brand-mark img {
    display:block;
    width:100%;
    height:100%;
    object-fit:contain
}

.brand-name  {
    font-size:18px;
    font-weight:750;
    line-height:1.35;
    letter-spacing:-.5px
}

.brand-name span  {
    display:block;
    font-size:12px;
    letter-spacing:2px;
    font-weight:500;
    color:#738077;
    margin-top:3px
}

.main-nav  {
    display:flex;
    align-items:center;
    gap:30px;
    font-size:14px;
    font-weight:600;
    height:100%
}

.main-nav a  {
    position:relative;
    height:100%;
    display:flex;
    align-items:center;
    color:#606b63;
    white-space:nowrap
}

.main-nav a:hover,.main-nav a.active  {
    color:var(--green)
}

.main-nav a.active:after  {
    content:"";
    position:absolute;
    bottom:20px;
    right:0;
    width:22px;
    height:3px;
    background:var(--green);
    border-radius:3px
}

.header-cta  {
    display:flex;
    align-items:center;
    gap:15px;
    font-size:13px;
    font-weight:600;
    border:1px solid #cbd3c8;
    border-radius:8px;
    padding:9px 15px
}

.header-cta:hover  {
    background:var(--mint)
}

.menu-toggle  {
    display:none;
    background:transparent;
    color:var(--ink);
    width:44px;
    height:44px;
    border-radius:8px
}

/* Hero */
.hero  {
    position:relative;
    overflow:hidden;
    padding:58px 0 42px;
    background:radial-gradient(ellipse at 13% 35%,#e9eee3 0,transparent 52%),#f6f5ee
}

.hero-grain  {
    position:absolute;
    inset:0;
    background-image:radial-gradient(#637a5a 0.6px,transparent .6px);
    background-size:9px 9px;
    opacity:.055;
    pointer-events:none
}

.hero-grid  {
    position:relative;
    display:grid;
    grid-template-columns:1.18fr 1fr;
    align-items:center;
    gap:90px
}

.hero-copy  {
    padding-block:12px
}

.hero-copy .eyebrow  {
    background:#e9eddf;
    border:1px solid #dde5d6;
    padding:5px 12px;
    border-radius:30px;
    font-size:12px
}

.tiny-star  {
    font-size:17px;
    color:#73834e
}

.hero h1  {
    font-size:clamp(36px,3.9vw,53px);
    font-weight:750;
    letter-spacing:-1.8px;
    line-height:1.65;
    margin-top:20px
}

.highlight  {
    position:relative;
    white-space:nowrap;
    color:#367052
}

.highlight svg  {
    position:absolute;
    bottom:-13px;
    right:-3px;
    width:100%;
    height:22px;
    fill:none;
    stroke:#bdab70;
    stroke-width:3;
    stroke-linecap:round;
    opacity:.85
}

.hero-description  {
    margin-top:27px;
    font-size:17px;
    color:#687267;
    max-width:475px;
    line-height:1.95
}

.hero-benefits  {
    display:flex;
    gap:24px;
    margin-top:23px;
    font-size:12px;
    color:#54634f
}

.hero-benefits span  {
    display:flex;
    align-items:center;
    gap:6px
}

.hero-benefits svg  {
    color:var(--green)
}

.hero-browse  {
    margin-top:24px
}

.hero-decoration  {
    position:relative;
    margin-top:32px;
    max-width:330px;
    color:#9bac8a;
    overflow:hidden
}

.hero-decoration>svg  {
    display:block;
    width:100%;
    height:auto
}

.decoration-caption  {
    display:block;
    color:#899282;
    font-size:10px;
    text-align:center;
    margin-top:8px
}

.orbit  {
    position:absolute;
    border:1px solid #ced5bd;
    border-radius:50%;
    width:220px;
    height:220px;
    top:2px;
    left:47px;
    opacity:.6
}

.orbit-two  {
    width:260px;
    height:260px;
    left:27px;
    top:-18px;
    opacity:.25
}

.calculator-wrap  {
    position:relative;
    padding-top:8px
}

.calculator-wrap:before  {
    content:"";
    position:absolute;
    inset:-10px 22px 66px -16px;
    background:#e2e8d8;
    border:1px solid #d5dfca;
    border-radius:22px;
    transform:rotate(-3deg)
}

.calculator-card  {
    position:relative;
    background:#fff;
    border:1px solid #e1e7db;
    border-radius:20px;
    padding:29px 32px 20px;
    box-shadow:0 14px 50px #143d3010
}

.calculator-heading  {
    display:flex;
    align-items:center;
    gap:10px
}

.calculator-heading .square-icon  {
    width:37px;
    height:37px;
    border-radius:10px
}

.calculator-heading .small-label  {
    color:#6b796b
}

.calculator-step  {
    margin-right:auto;
    direction:ltr;
    letter-spacing:2px;
    font-size:10px;
    color:#9ba497
}

.calculator-card h2  {
    font-size:27px;
    letter-spacing:-.7px;
    margin-top:17px;
    font-weight:750
}

.calculator-intro  {
    font-size:13px;
    color:#7b8378;
    margin-top:3px
}

.calculator-form  {
    margin-top:22px
}

.calculator-form>label  {
    display:flex;
    justify-content:space-between;
    font-size:12px;
    font-weight:650;
    margin-bottom:7px
}

.calculator-form>label span  {
    font-size:10px;
    color:#8a9386;
    font-weight:400
}

.score-field  {
    position:relative
}

.score-field input  {
    width:100%;
    height:67px;
    background:#f9faf6;
    border:1px solid #d9e0d3;
    border-radius:10px;
    padding:7px 21px 7px 50px;
    direction:ltr;
    text-align:right;
    font-size:29px;
    color:var(--ink);
    font-weight:600;
    letter-spacing:1px
}

.score-field input::placeholder  {
    color:#aeb7a5;
    font-weight:400
}

.score-field>span  {
    position:absolute;
    left:20px;
    top:15px;
    font-size:23px;
    color:#8c9781
}

.field-hint  {
    font-size:10px;
    color:#828a7d;
    margin-top:6px
}

.calculator-form .field-hint  {
    margin-bottom:17px
}

.calculator-form select  {
    width:100%;
    height:45px;
    color:#56644f;
    font-size:12px;
    border:1px solid #dde2d7;
    border-radius:8px;
    background:#fff;
    padding:8px 11px
}

.gender-field  {
    border:0;
    padding:0;
    margin:15px 0 18px
}

.gender-field legend  {
    font-size:12px;
    font-weight:650;
    padding:0;
    margin-bottom:8px
}

.segmented-control  {
    display:flex;
    gap:8px
}

.segmented-control label  {
    flex:1;
    position:relative
}

.segmented-control input  {
    position:absolute;
    opacity:0;
    width:1px;
    height:1px
}

.segmented-control span  {
    display:flex;
    align-items:center;
    justify-content:center;
    border:1px solid #e2e6dc;
    height:39px;
    border-radius:8px;
    font-size:12px;
    color:#81897a;
    cursor:pointer
}

.segmented-control input:checked+span  {
    border-color:#9db59d;
    background:#edf3e9;
    color:var(--green);
    font-weight:600
}

.segmented-control input:checked+span:before  {
    content:"";
    width:6px;
    height:6px;
    border-radius:50%;
    background:var(--green);
    margin-left:7px
}

.segmented-control input:focus-visible+span  {
    outline:3px solid var(--gold);
    outline-offset:3px
}

.calculator-submit  {
    width:100%;
    font-size:13px;
    height:49px;
    justify-content:space-between;
    padding-inline:19px
}

.calculator-note  {
    display:flex;
    align-items:flex-start;
    gap:7px;
    margin-top:17px;
    color:#8b917f;
    padding-top:13px;
    border-top:1px solid #eef0e9
}

.calculator-note svg  {
    margin-top:2px
}

.calculator-note p  {
    font-size:10px;
    line-height:1.8
}

.calculator-footnote  {
    position:relative;
    display:flex;
    justify-content:center;
    align-items:center;
    gap:6px;
    font-size:11px;
    color:#829074;
    margin-top:17px
}

.form-errors  {
    background:#fff3f0;
    border:1px solid #f2d3c9;
    color:#9a3524;
    padding:12px;
    border-radius:8px;
    font-size:12px;
    margin-top:15px
}

.form-errors ul  {
    margin:3px 0;
    padding-right:18px
}

/* Stats */
.stats-strip  {
    background:#fff;
    border-bottom:1px solid var(--line)
}

.stats-inner  {
    display:grid;
    grid-template-columns:1.5fr repeat(4,1fr);
    align-items:center;
    padding-block:29px
}

.stats-intro  {
    display:flex;
    gap:15px;
    align-items:center
}

.stats-intro p  {
    font-size:12px;
    color:#768170;
    line-height:1.6
}

.stats-intro strong  {
    font-size:16px;
    color:var(--ink);
    font-weight:650
}

.stat  {
    border-right:1px solid var(--line);
    text-align:center;
    display:flex;
    flex-direction:column;
    gap:0
}

.stat strong  {
    font-size:30px;
    font-weight:600;
    line-height:1.35;
    font-variant-numeric:tabular-nums
}

.stat span  {
    font-size:11px;
    color:#86907e;
    margin-top:5px
}

/* Directory */
.section  {
    padding-block:68px
}

.section-heading  {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:24px;
    margin-bottom:27px
}

.section-heading h2,.faq-heading h2  {
    font-size:30px;
    letter-spacing:-.7px;
    font-weight:700;
    margin-top:8px
}

.section-heading p,.faq-heading p  {
    font-size:13px;
    color:#838b7f;
    margin-top:8px
}

.heading-dot  {
    color:#b7a16d;
    margin-right:3px
}

.section-count  {
    display:flex;
    align-items:center;
    gap:10px;
    color:#76846b;
    font-size:12px;
    border:1px solid #dfe4d8;
    background:#f1f4eb;
    border-radius:25px;
    padding:7px 14px;
    white-space:nowrap
}

.directory-filters  {
    display:flex;
    align-items:center;
    gap:12px;
    padding:14px;
    background:#eeefe7;
    border:1px solid #e4e7dc;
    border-radius:13px;
    margin-bottom:24px
}

.search-field  {
    flex:1.8;
    display:flex;
    align-items:center;
    gap:10px;
    background:#fff;
    border:1px solid #e0e4d8;
    border-radius:8px;
    padding-inline:14px;
    height:46px;
    color:#91a084
}

.search-field input  {
    border:0;
    background:transparent;
    width:100%;
    height:100%;
    color:var(--ink);
    font-size:12px
}

.search-field input::placeholder  {
    color:#9aA290
}

.search-field:focus-within  {
    outline:2px solid #a8b99e
}

.search-field input:focus-visible  {
    outline:0
}

.filter-select  {
    display:flex;
    align-items:center;
    gap:2px;
    flex:1;
    border:1px solid #e0e4d8;
    background:#fff;
    border-radius:8px;
    padding:0 10px;
    color:#88977c;
    height:46px
}

.filter-select select  {
    background:transparent;
    border:0;
    color:#627154;
    width:100%;
    height:100%;
    font-size:12px;
    cursor:pointer
}

.filter-submit  {
    min-height:46px;
    padding:8px 18px;
    font-size:12px
}

.filter-summary  {
    display:flex;
    align-items:center;
    justify-content:space-between;
    color:#69775f;
    font-size:13px;
    margin-bottom:20px
}

.filter-summary a  {
    text-decoration:underline;
    text-underline-offset:4px
}

.university-grid  {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:19px
}

.university-card  {
    background:#fff;
    border:1px solid #e1e6dc;
    border-radius:13px;
    padding:23px 24px 0;
    transition:border-color .2s,box-shadow .2s,transform .2s;
    display:flex;
    flex-direction:column;
    min-width:0
}

.university-card:hover  {
    border-color:#b5c6a9;
    box-shadow:0 8px 25px #21483108;
    transform:translateY(-3px)
}

.card-top  {
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:15px
}

.university-emblem  {
    width:60px;
    height:66px;
    border-radius:10px;
    display:flex;
    align-items:center;
    justify-content:center;
    flex-direction:column;
    gap:4px;
    background:#edf1e7;
    color:#48623e
}

.university-emblem span  {
    font-size:8px;
    font-weight:700;
    letter-spacing:1px;
    line-height:1;
    direction:ltr
}

.emblem-1  {
    color:#526d83;
    background:#eaf0f4
}

.emblem-2  {
    color:#916e44;
    background:#f4eee3
}

.emblem-3  {
    color:#766385;
    background:#f0edf4
}

.badge  {
    display:inline-flex;
    align-self:flex-start;
    border-radius:5px;
    padding:3px 10px;
    font-size:10px;
    font-weight:500;
    white-space:normal
}

.badge-green  {
    color:#47734a;
    background:#eef4e9
}

.badge-sand  {
    color:#a08045;
    background:#f6f0e1
}

.university-card h3  {
    font-size:16px;
    font-weight:650;
    line-height:1.6;
    margin-top:17px;
    min-height:51px
}

.university-location  {
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:5px;
    font-size:11px;
    color:#7e8976;
    margin-top:8px
}

.university-location span  {
    color:#a0a796
}

.card-note  {
    display:flex;
    align-items:center;
    gap:6px;
    color:#8d9685;
    font-size:10px;
    margin-top:14px;
    margin-bottom:17px
}

.university-link  {
    margin-top:auto;
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:13px 0;
    border-top:1px solid #eef0e8;
    color:#526d45;
    font-size:11px;
    font-weight:600
}

.university-link:hover  {
    color:var(--green);
    text-decoration:underline;
    text-underline-offset:4px
}

.pagination  {
    display:flex;
    align-items:center;
    justify-content:center;
    gap:32px;
    margin-top:30px;
    font-size:12px
}

.page-numbers  {
    display:flex;
    gap:7px;
    align-items:center
}

.page-numbers a  {
    display:grid;
    place-items:center;
    width:34px;
    height:34px;
    border-radius:7px;
    color:#7f8e73;
    border:1px solid transparent
}

.page-numbers a:hover  {
    border-color:#cdd7c4
}

.page-numbers .current  {
    background:var(--green);
    color:#fff
}

.pagination-arrow  {
    display:flex;
    align-items:center;
    gap:8px;
    font-weight:600
}

.pagination-arrow:hover  {
    text-decoration:underline
}

.pagination-arrow.disabled  {
    color:#b5bbae
}

.directory-source  {
    margin-top:23px;
    font-size:10px;
    text-align:center;
    color:#98a08f;
    max-width:790px;
    margin-inline:auto
}

.directory-source a  {
    text-decoration:underline;
    text-underline-offset:3px
}

.empty-state  {
    padding:35px;
    text-align:center;
    background:#fff;
    border:1px dashed #ccd7c3;
    border-radius:14px
}

.empty-state h3  {
    margin-top:12px;
    font-size:19px
}

.empty-state p  {
    font-size:13px;
    color:var(--body);
    max-width:680px;
    margin:10px auto 20px;
    line-height:1.9
}

.directory-empty  {
    grid-column:1/-1
}

.score-pill  {
    display:inline-block;
    vertical-align:middle;
    font-size:21px;
    direction:ltr;
    background:var(--mint);
    color:var(--green);
    border-radius:8px;
    padding:2px 12px;
    margin-right:8px
}

.results-section  {
    padding-bottom:0
}

.results-notice  {
    font-size:12px;
    padding:12px 16px;
    background:var(--mint);
    border-radius:9px;
    color:#5e7354;
    margin-bottom:18px
}

.match-card  {
    padding-bottom:20px
}

.match-card h3  {
    min-height:0
}

.match-card>p  {
    font-size:12px;
    color:var(--body);
    margin-top:5px
}

.match-score  {
    display:flex;
    align-items:center;
    justify-content:space-between;
    background:#f5f7f1;
    padding:12px;
    border-radius:8px;
    margin-top:16px;
    font-size:11px
}

.match-score strong  {
    font-size:22px;
    font-weight:600;
    direction:ltr;
    color:var(--green)
}

.match-conditions  {
    line-height:1.9;
    white-space:pre-line
}

.match-links  {
    display:flex;
    gap:12px;
    flex-wrap:wrap;
    justify-content:space-between;
    margin-top:auto;
    padding-top:17px
}

.match-links a  {
    font-size:11px
}

.match-card small,.date-card small  {
    font-size:10px;
    color:#8d9984;
    margin-top:12px
}

/* Journey and deadlines */
.journey-section  {
    background:var(--ink);
    color:#fff;
    padding-block:45px;
    position:relative;
    overflow:hidden
}

.journey-section:after  {
    content:"";
    position:absolute;
    width:320px;
    height:320px;
    border:1px solid #ffffff0d;
    border-radius:50%;
    left:-100px;
    top:-70px;
    pointer-events:none
}

.journey-inner  {
    display:grid;
    grid-template-columns:1.1fr repeat(3,1fr);
    gap:45px;
    align-items:center
}

.journey-heading .eyebrow  {
    color:#b2c4a2;
    font-size:11px
}

.journey-heading h2  {
    font-size:29px;
    font-weight:600;
    line-height:1.5;
    letter-spacing:-.5px;
    margin-top:12px
}

.journey-heading p  {
    font-size:11px;
    color:#91ab99;
    line-height:1.8;
    margin-top:12px
}

.journey-step  {
    position:relative;
    padding-top:25px
}

.step-number  {
    position:absolute;
    left:0;
    top:-4px;
    font-size:48px;
    font-weight:300;
    color:#ffffff15;
    line-height:1
}

.step-icon  {
    width:48px;
    height:48px;
    display:grid;
    place-items:center;
    border:1px solid #ffffff24;
    border-radius:12px;
    color:#b6cba8
}

.journey-step h3  {
    font-size:17px;
    margin-top:18px;
    font-weight:600
}

.journey-step p  {
    font-size:12px;
    line-height:1.95;
    margin-top:8px;
    color:#a1b7a5;
    max-width:205px
}

.date-heading-icon  {
    color:#96a684;
    border:1px solid #d9e0d1;
    padding:12px;
    border-radius:13px;
    background:#f0f3e9
}

.dates-section  {
    padding-bottom:36px
}

.admission-banner  {
    display:flex;
    align-items:center;
    gap:25px;
    background:#eeefe3;
    border:1px solid #e0e4d1;
    border-radius:15px;
    padding:31px
}

.banner-icon  {
    display:grid;
    place-items:center;
    width:72px;
    height:72px;
    border-radius:50%;
    background:#e2e7d4;
    color:#6b8250;
    flex-shrink:0
}

.banner-copy  {
    flex:1
}

.banner-copy .small-label  {
    color:#8e9b7b;
    font-size:10px
}

.banner-copy h3  {
    font-size:22px;
    font-weight:600;
    margin-top:4px
}

.banner-copy p  {
    font-size:12px;
    color:#7d8870;
    max-width:560px;
    margin-top:8px
}

.admission-banner .button  {
    font-size:12px;
    white-space:nowrap
}

.date-card  {
    padding-bottom:22px
}

.date-card h3  {
    min-height:0
}

.date-card>p  {
    color:var(--body);
    font-size:12px;
    margin-top:8px
}

.date-range  {
    display:flex;
    gap:20px;
    border-top:1px solid var(--line);
    padding-top:15px;
    margin-top:20px
}

.date-range dt  {
    font-size:11px;
    color:#8c9981
}

.date-range dd  {
    margin:4px 0 0;
    direction:ltr;
    font-size:13px;
    font-weight:600
}

/* FAQ and footer */
.faq-section  {
    display:grid;
    grid-template-columns:1fr 1.8fr;
    gap:80px;
    padding-top:33px;
    padding-bottom:70px
}

.faq-heading  {
    position:relative
}

.faq-heading h2  {
    font-size:29px
}

.faq-heading p  {
    max-width:230px
}

.faq-art  {
    display:block;
    font-size:120px;
    line-height:1.5;
    font-weight:300;
    color:#e0e5d7;
    margin-right:30px;
    transform:rotate(-15deg);
    width:100px
}

.faq-list details  {
    border-bottom:1px solid #e1e6d9;
    padding:16px 0
}

.faq-list details:first-child  {
    padding-top:4px
}

.faq-list summary  {
    list-style:none;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    font-size:14px;
    font-weight:600
}

.faq-list summary::-webkit-details-marker  {
    display:none
}

.faq-list summary span  {
    display:grid;
    place-items:center;
    font-size:21px;
    font-weight:300;
    color:#7f9270;
    border:1px solid #dbe2d1;
    background:#f1f4e9;
    border-radius:50%;
    width:27px;
    height:27px;
    flex-shrink:0;
    transition:transform .2s
}

.faq-list details[open] summary span  {
    transform:rotate(45deg)
}

.faq-list details p  {
    font-size:12px;
    color:#808b74;
    line-height:1.95;
    padding-left:35px;
    margin-top:13px
}

.site-footer  {
    background:#eef0e7;
    border-top:1px solid #e0e5d7;
    padding-top:32px
}

.footer-top  {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:25px;
    padding-bottom:27px
}

.footer-top .brand-mark  {
    width:43px;
    height:43px
}

.footer-top .brand-name  {
    font-size:16px
}

.footer-top .brand-name span  {
    font-size:10px
}

.footer-top p  {
    font-size:13px;
    color:#88957a
}

.footer-top>a:last-child  {
    display:flex;
    align-items:center;
    gap:12px;
    font-size:12px;
    font-weight:600;
    color:#667a54
}

.footer-bottom  {
    display:flex;
    justify-content:space-between;
    gap:18px;
    align-items:center;
    border-top:1px solid #dce3d1;
    padding-block:19px;
    color:#8f9b80;
    font-size:10px
}

.footer-bottom a  {
    display:flex;
    gap:7px;
    align-items:center
}

/* Responsive layouts */
@media(min-width:1500px)  {
    .hero-grid  {
        gap:120px
    }
    .hero  {
        padding-block:70px 50px
    }
}

@media(max-width:1100px)  {
    .container  {
        width:calc(100% - 56px)
    }
    .hero-grid  {
        gap:45px
    }
    .hero h1  {
        font-size:41px
    }
    .main-nav  {
        gap:20px;
        font-size:12px
    }
    .header-inner  {
        gap:18px
    }
    .header-cta  {
        font-size:11px;
        gap:8px
    }
    .brand-name  {
        font-size:16px
    }
    .calculator-card  {
        padding:26px
    }
    .journey-inner  {
        gap:28px
    }
    .university-card  {
        padding:20px 20px 0
    }
    .match-card,.date-card  {
        padding-bottom:20px
    }
    .university-location span  {
        font-size:10px
    }
    .admission-banner  {
        gap:20px;
        padding:25px
    }
    .banner-copy h3  {
        font-size:20px
    }
    .faq-section  {
        gap:50px
    }
}

@media(max-width:850px)  {
    .header-inner  {
        height:80px
    }
    .header-cta  {
        display:none
    }
    .hero  {
        padding-block:38px
    }
    .hero-grid  {
        gap:30px;
        grid-template-columns:1.05fr 1fr
    }
    .hero h1  {
        font-size:33px;
        letter-spacing:-1.2px
    }
    .hero-description  {
        font-size:14px
    }
    .hero-benefits  {
        gap:12px;
        font-size:10px;
        flex-wrap:wrap
    }
    .calculator-card  {
        padding:23px
    }
    .calculator-card h2  {
        font-size:24px
    }
    .hero-decoration  {
        max-width:270px
    }
    .stats-intro  {
        gap:8px
    }
    .stats-intro .square-icon  {
        width:36px;
        height:36px
    }
    .stat strong  {
        font-size:25px
    }
    .stats-intro strong  {
        font-size:13px
    }
    .university-grid  {
        grid-template-columns:repeat(2,minmax(0,1fr))
    }
    .directory-filters  {
        flex-wrap:wrap
    }
    .search-field  {
        flex-basis:100%
    }
    .filter-select  {
        flex:1
    }
    .section-heading h2  {
        font-size:26px
    }
    .journey-inner  {
        grid-template-columns:1fr 1fr;
        gap:30px 50px
    }
    .journey-step p  {
        max-width:100%
    }
    .journey-heading h2 br  {
        display:none
    }
    .journey-heading p br  {
        display:none
    }
    .admission-banner  {
        flex-wrap:wrap
    }
    .banner-copy  {
        flex-basis:calc(100% - 100px)
    }
    .admission-banner .button  {
        margin-right:92px
    }
    .faq-section  {
        gap:30px;
        grid-template-columns:1fr 1.6fr
    }
    .footer-top p  {
        display:none
    }
    .section  {
        padding-block:52px
    }
    .results-section  {
        padding-bottom:0
    }
    .dates-section  {
        padding-bottom:25px
    }
    .faq-section  {
        padding-top:25px
    }
}

@media(max-width:640px)  {
    html  {
        scroll-padding-top:92px
    }
    .container  {
        width:calc(100% - 36px)
    }
    .header-inner  {
        height:74px;
        gap:15px
    }
    .brand-mark  {
        width:40px;
        height:40px;
        border-radius:11px
    }
    .brand-name  {
        font-size:15px
    }
    .brand-name span  {
        font-size:10px
    }
    .menu-toggle  {
        display:grid;
        place-items:center
    }
    .main-nav  {
        position:absolute;
        top:74px;
        right:0;
        left:0;
        height:auto;
        background:var(--paper);
        border-bottom:1px solid var(--line);
        padding:10px 18px 18px;
        flex-direction:column;
        gap:0;
        align-items:stretch;
        box-shadow:0 10px 18px #203e3008;
        display:none
    }
    .main-nav.is-open  {
        display:flex
    }
    .main-nav a  {
        padding:12px 16px;
        font-size:14px;
        height:auto;
        border-radius:8px
    }
    .main-nav a.active  {
        background:var(--mint)
    }
    .main-nav a.active:after  {
        display:none
    }
    .hero  {
        padding-block:30px 28px
    }
    .hero-grid  {
        grid-template-columns:1fr;
        gap:30px
    }
    .hero-copy  {
        text-align:center;
        padding:0
    }
    .hero-copy .eyebrow  {
        font-size:11px
    }
    .hero h1  {
        font-size:36px;
        line-height:1.7;
        letter-spacing:-1.3px;
        margin-top:15px
    }
    .hero-description  {
        font-size:14px;
        max-width:400px;
        margin:23px auto 0
    }
    .hero-benefits  {
        justify-content:center;
        font-size:11px;
        gap:18px;
        margin-top:18px
    }
    .hero-browse  {
        margin-top:17px;
        font-size:12px
    }
    .hero-decoration  {
        display:none
    }
    .calculator-wrap  {
        width:min(420px,100%);
        margin-inline:auto;
        padding-top:0
    }
    .calculator-wrap:before  {
        inset:-7px 18px 52px -6px;
        transform:rotate(-2deg)
    }
    .calculator-card  {
        padding:24px 23px 18px;
        border-radius:17px
    }
    .calculator-heading .square-icon  {
        height:33px;
        width:33px
    }
    .calculator-card h2  {
        font-size:25px;
        margin-top:14px
    }
    .calculator-form  {
        margin-top:19px
    }
    .score-field input  {
        height:60px
    }
    .calculator-footnote  {
        font-size:10px
    }
    .stats-inner  {
        grid-template-columns:repeat(4,1fr);
        padding-block:23px;
        row-gap:18px
    }
    .stats-intro  {
        grid-column:1/-1;
        justify-content:center
    }
    .stats-intro p br  {
        display:none
    }
    .stats-intro p  {
        display:flex;
        gap:5px;
        font-size:12px;
        align-items:center
    }
    .stats-intro .square-icon  {
        width:30px;
        height:30px;
        border-radius:7px
    }
    .stats-intro .square-icon svg  {
        width:20px
    }
    .stats-intro strong  {
        font-size:13px
    }
    .stat:nth-child(2)  {
        border-right:0
    }
    .stat strong  {
        font-size:24px
    }
    .stat span  {
        font-size:9px;
        margin-top:3px
    }
    .section  {
        padding-block:39px
    }
    .section-heading  {
        gap:10px;
        margin-bottom:22px;
        align-items:flex-start
    }
    .section-heading .eyebrow  {
        font-size:11px
    }
    .section-heading h2  {
        font-size:23px;
        letter-spacing:-.7px
    }
    .section-heading p  {
        font-size:12px;
        line-height:1.9
    }
    .section-count  {
        padding:4px 8px;
        font-size:10px;
        gap:5px;
        margin-top:25px
    }
    .section-count svg  {
        display:none
    }
    .directory-filters  {
        padding:10px;
        gap:8px;
        border-radius:10px;
        margin-bottom:17px
    }
    .filter-select  {
        padding-inline:6px;
        min-width:0
    }
    .filter-select select  {
        font-size:10px
    }
    .filter-select svg  {
        display:none
    }
    .filter-submit  {
        padding-inline:11px;
        gap:4px;
        font-size:11px
    }
    .search-field  {
        height:43px;
        padding-inline:10px
    }
    .filter-select,.filter-submit  {
        height:42px;
        min-height:42px
    }
    .university-grid  {
        grid-template-columns:1fr;
        gap:14px
    }
    .university-card  {
        padding:19px 21px 0;
        border-radius:12px
    }
    .card-top  {
        align-items:center
    }
    .university-emblem  {
        width:53px;
        height:57px
    }
    .university-card h3  {
        font-size:17px;
        min-height:0;
        margin-top:14px
    }
    .university-location  {
        font-size:12px;
        margin-top:7px
    }
    .university-location span  {
        font-size:11px
    }
    .card-note  {
        font-size:11px;
        margin-top:14px
    }
    .university-link  {
        padding-block:14px;
        font-size:12px
    }
    .badge  {
        font-size:11px
    }
    .pagination  {
        gap:14px;
        margin-top:24px;
        font-size:11px
    }
    .page-numbers  {
        gap:4px
    }
    .page-numbers a  {
        width:29px;
        height:31px
    }
    .directory-source  {
        font-size:9px;
        margin-top:18px;
        line-height:1.9
    }
    .journey-section  {
        padding-block:33px
    }
    .journey-inner  {
        gap:28px 25px
    }
    .journey-heading  {
        grid-column:1/-1
    }
    .journey-heading h2  {
        font-size:26px;
        margin-top:7px
    }
    .journey-heading p  {
        font-size:12px;
        margin-top:6px
    }
    .journey-step  {
        padding-top:13px
    }
    .journey-step:last-child  {
        grid-column:1/-1;
        border-top:1px solid #ffffff15;
        padding-top:22px
    }
    .journey-step h3  {
        font-size:17px;
        margin-top:13px
    }
    .journey-step p  {
        font-size:11px;
        margin-top:6px
    }
    .step-number  {
        font-size:39px
    }
    .journey-step:last-child .step-number  {
        top:21px
    }
    .step-icon  {
        width:42px;
        height:42px
    }
    .step-icon svg  {
        width:23px
    }
    .dates-section  {
        padding-bottom:22px
    }
    .date-heading-icon  {
        padding:9px;
        margin-top:28px
    }
    .date-heading-icon svg  {
        width:22px;
        height:22px
    }
    .admission-banner  {
        padding:23px;
        gap:15px;
        align-items:flex-start
    }
    .banner-icon  {
        width:47px;
        height:47px
    }
    .banner-icon svg  {
        width:25px;
        height:25px
    }
    .banner-copy  {
        flex-basis:calc(100% - 65px)
    }
    .banner-copy h3  {
        font-size:18px;
        line-height:1.7
    }
    .banner-copy p  {
        font-size:12px
    }
    .admission-banner .button  {
        margin:7px 0 0;
        width:100%;
        font-size:12px;
        justify-content:space-between
    }
    .faq-section  {
        grid-template-columns:1fr;
        gap:25px;
        padding-top:19px;
        padding-bottom:40px
    }
    .faq-heading h2  {
        font-size:25px
    }
    .faq-heading p  {
        max-width:none;
        font-size:12px
    }
    .faq-art  {
        display:none
    }
    .faq-list summary  {
        font-size:13px;
        gap:12px;
        line-height:1.8
    }
    .faq-list details p  {
        padding-left:0;
        font-size:12px
    }
    .faq-list details  {
        padding-block:17px
    }
    .footer-top  {
        flex-wrap:wrap;
        gap:21px;
        padding-bottom:23px
    }
    .footer-top>a:last-child  {
        font-size:11px
    }
    .footer-bottom  {
        flex-wrap:wrap;
        gap:7px;
        font-size:9px;
        padding-block:15px
    }
    .footer-bottom span:nth-child(2)  {
        order:3;
        width:100%
    }
    .results-section  {
        padding-bottom:0
    }
    .results-section .section-heading  {
        flex-wrap:wrap
    }
    .score-pill  {
        font-size:18px;
        padding-inline:8px
    }
    .empty-state  {
        padding:25px 18px
    }
    .empty-state h3  {
        font-size:17px
    }
    .empty-state p  {
        font-size:12px
    }
    .match-card,.date-card  {
        padding-bottom:20px
    }
    .match-links a  {
        font-size:12px
    }
    .match-card small,.date-card small  {
        font-size:11px
    }
}

@media(max-width:360px)  {
    .hero h1  {
        font-size:31px
    }
    .brand-name  {
        font-size:14px
    }
    .section-count  {
        display:none
    }
    .pagination  {
        gap:8px
    }
    .page-numbers a  {
        width:26px
    }
    .footer-top>a:last-child  {
        width:100%
    }
    .section-heading h2  {
        font-size:22px
    }
}

@media(prefers-reduced-motion:reduce)  {
    html  {
        scroll-behavior:auto
    }
    *,*:before,*:after  {
        transition:none!important;
        animation:none!important
    }
    .university-card:hover,.button-primary:hover  {
        transform:none
    }
}

/* Verified admission matches */
.admission-universities {
    display:grid;
    gap:24px
}

.admission-university {
    background:#fff;
    border:1px solid #dce7e2;
    border-radius:20px;
    overflow:hidden
}

.admission-university-header {
    display:flex;
    align-items:center;
    gap:16px;
    padding:24px;
    background:#f5f8f5
}

.admission-university-header img {
    object-fit:contain;
    background:#fff;
    border-radius:12px;
    padding:6px
}

.admission-university-header h3 {
    margin:0
}

.admission-university-header p {
    margin:5px 0 0
}

.admission-university-header>.text-link {
    margin-inline-start:auto
}

.admission-program {
    padding:22px 24px;
    border-top:1px solid #e5ebe7
}

.admission-program h4 {
    font-size:19px;
    margin:14px 0 6px
}

.admission-numbers {
    display:flex;
    flex-wrap:wrap;
    gap:20px;
    margin:14px 0
}

.admission-numbers strong {
    font-size:24px;
    color:#14594a;
    margin-inline-start:8px
}

.badge-reference {
    background:#fff1d5;
    color:#785118
}

.grade-requirement {
    display:inline-block;
    margin:5px 0 5px 10px;
    padding:5px 10px;
    background:#f1f5f2;
    border-radius:8px;
    font-size:13px
}

.formula-details {
    margin:18px 0 28px
}

.formula-details summary,.more-programs summary {
    cursor:pointer;
    color:#14594a;
    font-weight:700;
    padding:16px
}

.admission-program small {
    display:block;
    color:#63736c;
    margin-top:12px;
    line-height:1.8
}

.calculator-status:empty {
    display:none
}

.calculator-submit:disabled {
    opacity:.7;
    cursor:wait
}

.match-summary {
    font-weight:700;
    margin:24px 0
}

#results {
    scroll-margin-top:100px
}

@media(max-width:640px) {
    .admission-university-header {
        flex-wrap:wrap;
        padding:18px
    }
    .admission-university-header>.text-link {
        width:100%;
        margin:0
    }
    .admission-program {
        padding:18px
    }
    .admission-numbers {
        gap:10px
    }
    .admission-numbers span {
        width:100%
    }
}

.remaining-heading {
    margin:40px 0 20px
}

.remaining-heading h3 {
    font-size:24px;
    margin-bottom:8px
}

.remaining-heading p {
    color:#63736c;
    line-height:1.9
}

.remaining-options {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px
}

.remaining-option {
    display:flex;
    flex-direction:column;
    padding:22px;
    border:1px solid #dce7e2;
    background:#fff;
    border-radius:18px
}

.remaining-option-heading {
    display:flex;
    align-items:center;
    gap:14px;
    margin-bottom:18px
}

.remaining-logo {
    width:62px;
    height:62px;
    flex-shrink:0;
    padding:4px;
    display:grid;
    place-items:center;
    border-radius:12px;
    background:#f5f8f5
}

.remaining-logo img {
    max-width:100%;
    height:56px;
    object-fit:contain
}

.remaining-logo.logo-dark-background {
    background:#183f35
}

.remaining-option h4 {
    margin:0 0 6px;
    font-size:17px
}

.remaining-option-heading p {
    font-size:12px;
    margin:0;
    color:#63736c
}

.remaining-option>.badge {
    align-self:flex-start
}

.remaining-note {
    font-size:13px;
    line-height:1.9;
    color:#63736c
}

.remaining-option-footer {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-top:auto;
    padding-top:14px;
    border-top:1px solid #eef2ef;
    font-size:12px
}

.remaining-option-footer .text-link {
    font-size:12px
}

@media(max-width:640px) {
    .remaining-options {
        grid-template-columns:1fr
    }
    .remaining-option {
        padding:18px
    }
    .remaining-option-footer {
        flex-wrap:wrap
    }
}
