/* Akilimali editorial design: shared foundations, public site and authenticated workspace. */
:root {
 --color-bg-darkest:#f5f5f0;--color-bg-input:#fafaf7;--color-text-primary:#20372e;--color-text-secondary:#59655e;--color-text-muted:#59665d;
 --color-accent-blue:#194937;--color-accent-gold:#9b743c;--color-accent-violet:#76664e;--gradient-primary:#194937;
 --border-subtle:1px solid #e6e9e0;--border-light:1px solid #dbe1d7;--glass-border:#e1e6dc;
 --radius-sm:7px;--radius-md:12px;--radius-lg:17px;--radius-xl:22px;--sidebar-width:264px;--topbar-height:76px;
 --shadow-sm:0 2px 5px #1c392607;--shadow-md:0 6px 24px #1c39260a;--shadow-lg:0 18px 60px #1c392614;
 --font-editorial:Georgia,'Times New Roman',serif;
}
[hidden]{display:none!important}
body{background:var(--color-bg-darkest)}
button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}
:focus-visible{outline:3px solid #b48b43;outline-offset:4px}
a,button{touch-action:manipulation}
.btn{border-radius:7px;letter-spacing:.01em;font-weight:600;box-shadow:none;min-height:42px;gap:14px;transition:background .18s,transform .18s,border-color .18s}
.btn-lg{padding:15px 23px;min-height:52px;font-size:.86rem}
.btn-primary{background:#194937;border:1px solid #194937;color:#fff}
.btn-primary:hover{background:#103b2b;border-color:#103b2b;box-shadow:0 5px 16px #17392c1a;transform:translateY(-1px)}
.btn-secondary{background:#fff;border:1px solid #d6ded2;color:#284c39}
.btn-secondary:hover{background:#f0f4ed;border-color:#a5b6a3}
.form-input,.form-select,.form-textarea{background:#fcfcfa;border:1px solid #dce2d7;border-radius:8px;min-height:46px;color:#20372e;box-shadow:0 1px 2px #183d2a03}
.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:#477454;box-shadow:0 0 0 3px #47745415}
.form-label{font-size:.78rem;letter-spacing:.015em;color:#334c3b}
.skip-link{position:fixed;top:8px;left:8px;z-index:2000;background:#fff;color:#183e2b;padding:12px 20px;transform:translateY(-180%);border:2px solid #194937}
.skip-link:focus{transform:translateY(0)}
.animated-bg{display:none}
/* Public website */
.public-site{background:#faf9f3;color:#193e30}
.site-container{width:min(1240px,calc(100% - 112px));margin-inline:auto}
.institution-bar{background:#183e30;color:#e8ece2;font-size:.63rem;letter-spacing:.11em;padding:10px 0}
.institution-bar .site-container{display:flex;justify-content:space-between;gap:20px}
.institution-bar span span{margin-left:16px;color:#d4b77b}
.public-header{background:#faf9f3f5;border-bottom:1px solid #e4e6db;position:sticky;top:0;z-index:90;backdrop-filter:blur(12px)}
.public-header__inner{min-height:99px;display:flex;align-items:center;justify-content:space-between;gap:28px}
.wordmark{display:flex;align-items:center;gap:13px;color:#1a422f;flex-shrink:0}
.wordmark img{object-fit:contain;width:51px;height:51px}
.wordmark>span{font-family:var(--font-editorial);font-size:1.4rem;font-weight:600;line-height:1.2;letter-spacing:-.045em}
.wordmark small{display:block;font-family:var(--font-body);font-size:.53rem;letter-spacing:.14em;font-weight:500;margin-top:6px}
.public-navigation{display:flex;gap:28px;align-items:center;font-size:.76rem;font-weight:500}
.public-navigation>a:not(.btn){position:relative;padding:12px 0;color:#425247}
.public-navigation>a:not(.btn)::after{content:'';position:absolute;left:0;bottom:5px;width:0;height:1px;background:#194937;transition:width .2s}
.public-navigation>a:hover::after{width:100%}
.public-navigation .btn{font-size:.75rem;padding:10px 20px;margin-left:8px}
.public-menu-button{display:none;border:1px solid #d6dfd1;border-radius:6px;padding:12px;background:none;color:#194937;cursor:pointer}
.site-hero{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center;padding-top:55px;padding-bottom:58px}
.eyebrow{font-size:.63rem;letter-spacing:.16em;font-weight:650;text-transform:uppercase;color:#586b56;display:flex;align-items:center;gap:12px;margin-bottom:26px}
.eyebrow-line{display:inline-block;width:25px;height:1px;background:#9b743c}
.site-hero h1{font-family:var(--font-editorial);font-size:clamp(3.1rem,4.8vw,4.6rem);font-weight:400;letter-spacing:-.065em;line-height:1.08;color:#193e30;margin:0 0 27px}
.public-site em,.auth-story em{font-weight:400;color:#9b743c}
.site-hero__description{font-size:.91rem;line-height:1.9;max-width:400px;color:#647060}
.site-hero__actions{display:flex;align-items:center;gap:28px;margin-top:31px;flex-wrap:wrap}
.text-link{display:inline-flex;align-items:center;gap:22px;color:#22472f;font-size:.76rem;font-weight:600;padding-block:10px;border-bottom:1px solid #b9c4b2}
.text-link:hover{color:#8d662e;border-color:#8d662e}
.hero-note{margin-top:45px;border-top:1px solid #e0e4d8;max-width:330px;padding-top:22px;display:flex;gap:16px;align-items:center;color:#697660;font-size:.67rem;line-height:1.8}
.hero-note>[data-icon]{font-size:1.5rem;color:#496c44}
.site-hero__visual{position:relative;height:520px;margin:0;border-radius:3px 84px 3px 3px;overflow:hidden;background:#173c2b}
.site-hero__visual>img{width:100%;height:100%;object-fit:cover;object-position:56% center}
.site-hero__visual::after{content:'';position:absolute;inset:45% 0 0;background:linear-gradient(transparent,#122d21e6)}
.site-hero__visual figcaption{position:absolute;bottom:30px;left:30px;right:24px;z-index:1;color:#fff}
.site-hero__visual figcaption>.eyebrow{color:#e1ce9f;margin-bottom:12px;font-size:.52rem}
.site-hero__visual figcaption>span:last-child{font-family:var(--font-editorial);font-size:1.64rem;line-height:1.15;letter-spacing:-.025em}
.image-index{position:absolute;top:23px;left:24px;color:#fff;font-size:.52rem;letter-spacing:.14em;background:#163327b3;padding:9px 12px;border:1px solid #ffffff30}
.academic-strip{display:grid;grid-template-columns:1fr 1.2fr 1fr auto;border-block:1px solid #dfe3d5;padding-block:28px;gap:28px;align-items:center}
.academic-strip>div{display:flex;gap:16px;align-items:center}
.strip-number{font-family:var(--font-editorial);font-size:2rem;letter-spacing:-.045em;color:#294b30;white-space:nowrap}
.academic-strip>div>span:last-child{font-size:.66rem;line-height:1.6;color:#6b7564}
.academic-strip .text-link{font-size:.68rem;border:0}
.editorial-section{padding-block:98px;scroll-margin-top:100px}
.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:48px;margin-bottom:40px}
.section-heading .eyebrow,.campus-intro .eyebrow{margin-bottom:17px}
.public-site h2{font-family:var(--font-editorial);font-weight:400;font-size:clamp(2.4rem,3.2vw,3.3rem);line-height:1.12;letter-spacing:-.05em;color:#1c422f}
.section-heading>p{max-width:340px;font-size:.83rem;line-height:1.9;color:#586551;margin-bottom:3px}
.school-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.school-card{border:1px solid #dde3d5;background:#fdfdf8;padding:30px 27px 22px;transition:transform .2s,box-shadow .2s}
.school-card:hover{transform:translateY(-4px);box-shadow:0 12px 24px #17332308}
.school-card__top{display:flex;justify-content:space-between;align-items:center;color:#6d785f;font-size:.59rem;letter-spacing:.1em}
.school-card__top>[data-icon]{font-size:1.4rem;color:#456843}
.school-card h3{font-family:var(--font-editorial);font-weight:400;font-size:2.05rem;letter-spacing:-.04em;line-height:1.13;color:#274b34;margin:36px 0 20px}
.school-card>p{font-size:.76rem;line-height:1.9;color:#6b7666;min-height:87px}
.school-card__footer{display:flex;align-items:center;gap:10px;justify-content:space-between;border-top:1px solid #e4e7da;margin-top:27px;padding-top:17px}
.school-card__footer>span{font-size:.62rem;font-weight:600;color:#345237}
.school-card__footer a{display:grid;place-items:center;min-width:38px;height:38px;border:1px solid #dbe1cf;border-radius:50%;font-size:1.1rem}
.school-card__footer a:hover{background:#194937;color:white}
.section-footnote{font-size:.65rem;color:#5b6853;margin-top:23px}
.community-section{background:#eeefe6;padding-block:84px;scroll-margin-top:100px}
.community-gallery{display:grid;grid-template-columns:1.4fr 1fr;gap:25px}
.community-photo{height:360px;position:relative;padding:0;border:none;background:#194937;text-align:left;cursor:pointer;overflow:hidden}
.community-photo img{height:100%;width:100%;object-fit:cover;transition:transform .6s}
.community-photo:hover img{transform:scale(1.035)}
.community-photo>span{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:space-between;padding:38px 25px 24px;background:linear-gradient(transparent,#122d21d9);color:#fff;font-family:var(--font-editorial);font-size:1.45rem}
.community-photo>span>span{font-family:var(--font-body);font-size:1.1rem}
.campus-section{display:grid;grid-template-columns:1fr 1.2fr;gap:100px}
.campus-intro>p:not(.eyebrow){font-size:.85rem;line-height:1.9;margin-top:24px;max-width:310px}
.campus-intro .text-link{margin-top:24px}
.campus-directory>div{border-bottom:1px solid #dfe3d5;display:flex;align-items:center;gap:24px;padding:21px 0}
.campus-directory>div:first-child{border-top:1px solid #dfe3d5}
.campus-number{font-size:.64rem;color:#637058;min-width:20px}
.campus-directory h3{font-size:1rem;font-weight:500;color:#2e4d37;flex:1;letter-spacing:-.02em}
.campus-directory h3 small{display:block;font-size:.63rem;font-weight:400;color:#5d6c55;margin-top:7px;letter-spacing:0}
.portal-section{background:#193f30;padding:82px 0;scroll-margin-top:90px;color:#fff}
.portal-section .eyebrow{color:#d1b67d}
.portal-section h2{color:#f5f5e9}
.portal-section .section-heading>p{color:#bdcbbd}
.portal-grid{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid #ffffff26}
.portal-entry{padding:32px;display:block;color:#eef1e8;transition:background .2s}
.portal-entry+.portal-entry{border-left:1px solid #ffffff26}
.portal-entry:hover{background:#ffffff07;color:white}
.portal-entry>[data-icon]{font-size:1.5rem;color:#d1b67d;margin-bottom:28px}
.portal-entry h3{font-family:var(--font-editorial);font-size:1.7rem;font-weight:400;color:#fff;letter-spacing:-.025em}
.portal-entry p{font-size:.76rem;color:#bdcbbb;line-height:1.8;margin:15px 0 28px;max-width:260px}
.portal-entry__link{display:flex;justify-content:space-between;align-items:center;font-size:.66rem;color:#f2e4c0;border-top:1px solid #ffffff26;padding-top:17px}
.portal-preview-note{font-size:.63rem;color:#bec9b7;margin-top:20px}
.closing-section{text-align:center;padding-block:90px}
.closing-section .eyebrow{justify-content:center}
.closing-section h2{font-size:clamp(2.8rem,4.5vw,4.4rem);margin-bottom:32px}
.premium-footer{border-top:1px solid #dce1d2;background:#f2f3e9;padding-top:43px}
.premium-footer__top{display:grid;grid-template-columns:1fr 1fr 1fr;gap:50px;align-items:start;padding-bottom:42px}
.premium-footer__top>p{font-size:.72rem;line-height:1.9;color:#56664d}
.premium-footer__top nav{display:grid;grid-template-columns:1fr 1fr;gap:15px;font-size:.68rem}
.premium-footer__bottom{border-top:1px solid #dce1d2;display:flex;justify-content:space-between;gap:20px;padding-block:20px;font-size:.58rem;color:#5b6b52}
.gallery-lightbox{position:relative;background:#173b2b;padding:8px;border-radius:8px;max-width:min(1000px,94vw);max-height:90vh}
.gallery-lightbox img{max-height:84vh;object-fit:contain;width:auto;max-width:100%}
/* Sign in and account journeys */
.auth-layout{min-height:100svh;display:grid;grid-template-columns:1fr 1fr;background:#faf9f3}
.auth-story{background:#173e2d;color:#fff;position:relative;min-height:100svh;display:flex;flex-direction:column;justify-content:space-between;padding:48px 55px;overflow:hidden}
.auth-story .wordmark{position:relative;z-index:1;color:#fff}
.auth-story .wordmark img{background:#ffffffed;border-radius:50%;padding:4px;width:50px;height:50px}
.auth-story__photo{position:absolute;inset:0;height:100%;width:100%;object-fit:cover;opacity:.32;filter:saturate(.6);object-position:48% center}
.auth-story::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#113324aa,transparent 40%,#113324)}
.auth-story__content{position:relative;z-index:1;margin:100px 0 40px}
.auth-story .eyebrow{color:#d9c48c}
.auth-story h2{color:#fff;font-family:var(--font-editorial);font-size:clamp(2.7rem,4.1vw,4.4rem);font-weight:400;letter-spacing:-.045em;line-height:1.08;max-width:460px}
.auth-story em{color:#dcc28e}
.auth-story__content>p:last-child{color:#d4dfd1;font-size:.84rem;line-height:1.85;max-width:350px;margin-top:25px}
.auth-story__footer{position:relative;z-index:1;display:flex;justify-content:space-between;font-size:.6rem;letter-spacing:.06em;color:#c0d0bc}
.auth-layout .login-page{min-height:100svh;padding:50px 38px;background:#faf9f3}
.auth-layout .login-card{max-width:410px;border:0;background:none;box-shadow:none;padding:0;border-radius:0}
.auth-layout .login-card__logo{width:52px;height:52px;margin:0 0 28px}
.auth-layout .login-card__title{font-family:var(--font-editorial);font-size:2.7rem;font-weight:400;letter-spacing:-.05em;text-align:left;margin-bottom:12px;color:#1d442e}
.auth-layout .login-card__subtitle{text-align:left;font-size:.82rem;color:#596651;margin-bottom:28px}
.auth-layout .role-tabs{padding:5px;background:#ecefe4;border:1px solid #e1e6d8;margin-bottom:16px;border-radius:8px;gap:3px}
.auth-layout .role-tab{padding:11px 8px;font-size:.74rem;color:#52664a;min-height:42px}
.auth-layout .role-tab.active{background:#fff;color:#1c4930;box-shadow:0 2px 5px #17392310;border:1px solid #dfe5d6}
.auth-layout #role-hint{font-size:.69rem;line-height:1.7;color:#5b6c51;margin-bottom:26px}
.auth-layout .form-group{margin-bottom:20px}
.auth-layout .form-input,.auth-layout .form-select{background:#fff;min-height:49px}
.auth-layout #toggle-password{padding:4px 0;font-size:.68rem;color:#547247;min-height:30px}
.auth-layout .form-checkbox .text-sm{font-size:.75rem}
.auth-layout #login-btn,.auth-layout #account-submit{width:100%;min-height:50px;font-size:.8rem}
.auth-layout .login-card>p.text-sm{font-size:.71rem;line-height:1.85}
.auth-layout #account-description{font-size:.8rem;line-height:1.85;color:#58674f}
.auth-layout #account-status:not(:empty){background:#edf0e5;border:1px solid #d9e1cb;padding:13px 15px;border-radius:7px;font-size:.76rem;line-height:1.8;color:#3e5733}
.auth-layout .login-card>a:last-child{font-size:.72rem}
/* Authenticated workspace */
.sidebar{background:#183d2f;border-right:0;box-shadow:none}
.sidebar__brand{padding:27px 24px;border-color:#ffffff16;gap:12px;min-height:100px}
.sidebar__brand img{background:#f7f8ef;border-radius:50%;padding:3px}
.sidebar__brand-text h3{background:none;-webkit-text-fill-color:#f1f3e9;color:#f1f3e9;font-family:var(--font-editorial);font-size:1.03rem;line-height:1.25;font-weight:400;letter-spacing:-.015em}
.sidebar__brand-text span{color:#c0ccb9;font-size:.57rem;letter-spacing:.1em}
.sidebar__nav{padding:22px 14px}
.sidebar__nav-label{color:#a4b89c;font-size:.55rem;letter-spacing:.14em;padding-left:16px;margin-bottom:9px}
.sidebar__nav-group{margin-bottom:26px}
.sidebar__link{color:#c9d5c3;font-size:.77rem;padding:11px 15px;margin-block:3px;border-radius:7px;gap:13px}
.sidebar__link:hover{background:#ffffff09;color:#fff}
.sidebar__link.active{background:#e8eedf;color:#20442e;font-weight:600}
.sidebar__link.active::before{display:none}
.sidebar__link .icon{font-size:1rem}
.sidebar__footer{border-color:#ffffff19;padding:18px 16px}
.sidebar__user-name{color:#f3f5eb!important;font-size:.76rem}
.sidebar__user-role{color:#b6c8ac!important;font-size:.65rem}
.sidebar__footer .btn{color:#d1deca;background:#ffffff08;border-color:#ffffff16;font-size:.72rem}
.sidebar__footer .btn:hover{color:white;background:#ffffff14}
.sidebar .avatar{background:#d9e4ce;color:#264b30}
.topbar{background:#fff;border-bottom:1px solid #e5e9df;box-shadow:none;padding-inline:36px}
.topbar__title{font-size:.92rem;font-weight:600;color:#314b37;letter-spacing:-.02em}
.topbar__breadcrumb{font-size:.62rem;color:#5f7056}
.topbar__search input{border-radius:7px;background:#f7f8f3;border:1px solid #e3e8db;font-size:.75rem}
.page-content{padding:34px 36px 45px;max-width:1600px;margin-inline:auto}
.page-header{margin-bottom:28px}
.page-header__title{font-size:1.75rem;font-weight:600;letter-spacing:-.045em;line-height:1.2;color:#244331}
.page-header__subtitle{font-size:.8rem;color:#5c6c54;margin-top:8px}
.card{border:1px solid #e2e7da;border-radius:12px;background:#fff;box-shadow:0 2px 5px #23432003;overflow:hidden}
.card:hover{border-color:#d7dfcf;box-shadow:0 3px 10px #23432005}
.card__header{padding:20px 24px;border-color:#e9ede2;gap:15px;flex-wrap:wrap}
.card__title{font-size:.9rem;font-weight:600;letter-spacing:-.02em;color:#304d36}
.card__body{padding:24px}
.stat-card{background:#fff;border:1px solid #e2e7da;border-radius:12px;padding:23px;box-shadow:none}
.stat-card::before{display:none}
.stat-card__value{font-size:1.9rem;font-weight:600;letter-spacing:-.055em;color:#244b32;line-height:1.2}
.stat-card__label{font-size:.69rem;color:#5c6c54;letter-spacing:.005em;margin-top:8px}
.stat-card__icon{border-radius:9px;font-size:1.15rem;width:39px;height:39px}
.stats-grid{gap:17px;margin-bottom:28px}
.badge{border-radius:5px;font-size:.62rem;padding:4px 8px;letter-spacing:.01em;font-weight:500}
.badge-primary{background:#e9f0e3;color:#315f35}
.data-table th{background:#f6f8f1;color:#586a4f;font-size:.61rem;letter-spacing:.055em;font-weight:600;text-transform:uppercase;padding:14px 20px;border-color:#e5eadc}
.data-table td{font-size:.74rem;padding:17px 20px;border-color:#edf0e6;color:#46593e}
.data-table tbody tr:hover{background:#fafbf6}
.avatar{background:#e9efdf;color:#45643b;font-weight:600;border:1px solid #dfe7d5}
.course-card{border:1px solid #e0e6d5;border-radius:12px;box-shadow:none}
.course-card__banner{border-radius:0;min-height:85px}
.course-card__title{font-size:1rem;font-weight:600;letter-spacing:-.025em}
.course-card__meta{font-size:.74rem;color:#6a7a60}
.course-card__body{padding:23px}
.tabs{background:#edf1e6;border-radius:8px;padding:5px;border:1px solid #e1e7d7;gap:3px}
.tab{font-size:.75rem;padding:10px 15px;border-radius:5px}
.tab.active{background:#fff;color:#244e31;box-shadow:0 1px 4px #244e3110;border-color:transparent}
.progress-bar{background:#e9efdf;height:7px}
.progress-bar__fill{background:#49734a}
.demo-notice{border:1px solid #dfdcc7;background:#f5f2e4;color:#76643d;font-size:.7rem;line-height:1.75;border-radius:8px;padding:12px 16px;margin:0 0 25px}
.modal{border:1px solid #dfe6d3;border-radius:16px;box-shadow:0 28px 90px #142c2630}
.modal__header,.modal__footer{border-color:#e7ebdf;padding:22px 26px}
.modal__title{font-size:1.05rem;color:#274d33}
.modal__body{padding:24px 26px}
.modal-overlay{background:#10271975;backdrop-filter:blur(5px)}
#account-requests>div{border:1px solid #e1e7d7;border-radius:8px;padding:16px 18px;background:#fafbf7}
#account-requests>div>p{font-size:.78rem;margin-bottom:12px;overflow-wrap:anywhere}
#account-requests .btn+.btn{margin-left:8px}
#requests-status{font-size:.73rem;line-height:1.7;margin-bottom:18px}
#edit-user-email[readonly]{background:#f2f4ec;color:#5d6c55}
/* Responsive compositions */
@media(min-width:1500px){.site-hero{gap:80px}.site-hero__visual{height:550px}}
@media(max-width:1100px){
 .site-container{width:calc(100% - 64px)}.public-navigation{gap:18px}.wordmark>span{font-size:1.25rem}
 .site-hero{gap:35px}.site-hero__visual{height:480px}.site-hero__actions{gap:18px}.site-hero .btn-lg{padding-inline:17px;font-size:.75rem}
 .academic-strip{gap:18px}.academic-strip>div{gap:11px}.strip-number{font-size:1.65rem}.academic-strip>div>span:last-child{font-size:.6rem}
 .school-card{padding:25px 20px 20px}.school-card h3{font-size:1.8rem}.school-card>p{min-height:112px}
 .campus-section{gap:55px}.auth-story{padding:38px}.portal-entry{padding:26px}.page-content{padding:28px}
}
@media(max-width:900px){
 .public-header__inner{min-height:85px}.public-menu-button{display:block;min-width:44px;min-height:44px}
 .public-navigation{display:none;position:absolute;top:100%;left:0;right:0;padding:22px 32px;background:#faf9f3;border-bottom:1px solid #dbe3d1;box-shadow:0 12px 20px #193c2510}
 .public-navigation.is-open{display:flex;flex-direction:column;align-items:stretch;gap:9px}.public-navigation .btn{margin:6px 0 0;text-align:center}
 .site-hero{gap:28px}.site-hero h1{font-size:3.25rem}.site-hero__description{font-size:.83rem}.site-hero__visual{height:450px;border-top-right-radius:60px}
 .academic-strip{grid-template-columns:repeat(3,1fr)}.academic-strip>.text-link{display:none}.academic-strip>div{align-items:flex-start;flex-direction:column;gap:4px}
 .school-grid{gap:12px}.school-card h3{font-size:1.5rem}.school-card>p{font-size:.7rem;min-height:118px}.school-card__footer>span{font-size:.55rem}
 .section-heading>p{max-width:280px;font-size:.76rem}.community-photo{height:300px}.auth-story{padding:30px}.auth-layout .login-page{padding:35px 28px}
 .portal-entry{padding:25px 20px}.portal-entry h3{font-size:1.45rem}.premium-footer__top{grid-template-columns:1.2fr 1fr;gap:32px}.premium-footer__top>p{display:none}
}
@media(max-width:640px){
 .site-container{width:calc(100% - 40px)}.institution-bar{font-size:.51rem;padding:9px 0;letter-spacing:.06em}.institution-bar span span{margin-left:5px}
 .public-header__inner{min-height:76px}.wordmark img{width:43px;height:43px}.wordmark>span{font-size:1.23rem}.wordmark small{font-size:.45rem}
 .site-hero{grid-template-columns:1fr;padding-top:34px;padding-bottom:30px;gap:29px}.eyebrow{font-size:.56rem;margin-bottom:20px}
 .site-hero h1{font-size:3.65rem;letter-spacing:-.065em;margin-bottom:22px}.site-hero__description{font-size:.85rem;max-width:100%}.site-hero__actions{margin-top:26px;gap:22px}
 .site-hero .btn-lg{font-size:.75rem;padding-inline:17px}.site-hero .text-link{font-size:.7rem;gap:12px}.hero-note{display:none}
 .site-hero__visual{height:355px;border-top-right-radius:55px}.site-hero__visual>img{object-position:center 40%}.site-hero__visual figcaption{left:23px;bottom:23px}.site-hero__visual figcaption>span:last-child{font-size:1.55rem}
 .academic-strip{padding-block:22px;gap:15px}.strip-number{font-size:1.48rem}.academic-strip>div>span:last-child{font-size:.54rem}
 .editorial-section{padding-block:58px}.section-heading{display:block;margin-bottom:28px}.public-site h2{font-size:2.45rem}.section-heading>p{max-width:100%;margin-top:20px;font-size:.79rem}
 .school-grid{grid-template-columns:1fr;gap:15px}.school-card{padding:26px}.school-card h3{font-size:2rem;margin-top:27px}.school-card>p{min-height:0;font-size:.78rem}.school-card__footer>span{font-size:.63rem}
 .section-footnote{line-height:1.8}.community-section{padding-block:55px}.community-gallery{grid-template-columns:1fr;gap:16px}.community-photo{height:290px}.community-photo>span{font-size:1.35rem}
 .campus-section{grid-template-columns:1fr;gap:30px}.campus-intro h2 br{display:none}.campus-intro>p:not(.eyebrow){max-width:100%;font-size:.8rem}.campus-intro .text-link{margin-top:12px}.campus-directory>div{padding-block:19px}
 .portal-section{padding-block:55px}.portal-grid{grid-template-columns:1fr}.portal-entry{padding:28px}.portal-entry+.portal-entry{border-left:0;border-top:1px solid #ffffff26}.portal-entry>[data-icon]{margin-bottom:22px}.portal-entry h3{font-size:1.8rem}.portal-entry p{max-width:100%}.portal-preview-note{font-size:.61rem;line-height:1.8}
 .closing-section{padding-block:58px}.closing-section h2{font-size:3rem}.premium-footer__top{grid-template-columns:1fr;gap:28px}.premium-footer__top nav{font-size:.72rem;gap:17px}.premium-footer__bottom{font-size:.53rem;gap:10px}
 .auth-layout{display:block}.auth-story{min-height:0;padding:23px 25px 27px}.auth-story__photo{display:none}.auth-story__content{margin:24px 0 0}.auth-story__content .eyebrow,.auth-story__content>p:last-child,.auth-story__footer{display:none}.auth-story h2{font-size:2rem;max-width:100%}.auth-story h2 br{display:none}.auth-story .wordmark>span{font-size:1.13rem}.auth-story .wordmark img{width:42px;height:42px}
 .auth-layout .login-page{min-height:0;padding:36px 25px 45px}.auth-layout .login-card{max-width:430px}.auth-layout .login-card__logo{display:none}.auth-layout .login-card__title{font-size:2.25rem}.auth-layout .login-card__subtitle{margin-bottom:25px}
 .page-content{padding:23px 17px 35px}.topbar{padding-inline:17px}.page-header__title{font-size:1.5rem}.page-header__subtitle{font-size:.75rem}.card__header,.card__body{padding:18px}.stat-card{padding:20px}.stat-card__value{font-size:1.8rem}.data-table th,.data-table td{padding:13px 15px}.demo-notice{font-size:.66rem;padding:10px 12px}.modal__header,.modal__body,.modal__footer{padding:20px}.mobile-tabbar{background:#fffffff5;border-top:1px solid #dfe6d4;backdrop-filter:blur(12px)}
}
@media(max-width:370px){.site-hero h1{font-size:3.1rem}.site-hero__actions{align-items:flex-start;flex-direction:column;gap:8px}.site-hero__visual{height:300px}.strip-number{font-size:1.25rem}.academic-strip{gap:10px}.institution-bar .site-container>span:last-child{display:none}.premium-footer__bottom{flex-direction:column}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
@media print{.auth-story,.public-header,.institution-bar{display:none}.sidebar{display:none}.main-content{margin:0}.card{box-shadow:none}}
/* Dashboard refinements after viewport review. */
.main-content{background:#f5f6f0}
.stats-grid{grid-template-columns:repeat(auto-fit,minmax(165px,1fr))}
.stat-card__icon{background:#edf2e7;color:#476b40;display:grid;place-items:center}
.stat-card__icon .icon{display:flex;align-items:center;justify-content:center}
@media(max-width:640px){.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.stat-card{padding:18px 15px}.stat-card__value{font-size:1.65rem}.stat-card__label{font-size:.64rem}}
@media(max-width:360px){.stats-grid{grid-template-columns:1fr}}
.closing-actions{display:flex;align-items:center;justify-content:center;gap:28px;flex-wrap:wrap}
.main-content{min-width:0}
@media(max-width:640px){.page-content [style*="min-width:320px"]{min-width:0!important;max-width:100%}.closing-actions{gap:18px}}
/* Full-width photographic hero with a dimmed, cross-fading background. */
.site-hero--slideshow{position:relative;isolation:isolate;display:block;padding:0;min-height:650px;background:#143526;overflow:hidden}
.hero-background{position:absolute;inset:0;z-index:-2;pointer-events:none}
.hero-background__slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 40%;opacity:0;transition:opacity 1.3s ease}
.hero-background__slide.is-active{opacity:1}
.site-hero--slideshow::before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(9,31,21,.88),rgba(9,31,21,.69) 53%,rgba(9,31,21,.49)),linear-gradient(0deg,rgba(9,31,21,.3),transparent 65%);pointer-events:none}
.hero-foreground{padding-top:82px;padding-bottom:28px}
.site-hero--slideshow .site-hero__copy{max-width:700px}
.site-hero--slideshow h1{color:#fff;font-size:clamp(3.6rem,5.4vw,5.1rem);text-shadow:0 2px 16px #00000015}
.site-hero--slideshow h1 em{color:#e2c58a}
.site-hero--slideshow .eyebrow{color:#ecddba}
.site-hero--slideshow .eyebrow-line{background:#d9bd7d}
.site-hero--slideshow .site-hero__description{color:#e4e9df;max-width:460px}
.site-hero--slideshow .btn-primary{background:#e5d0a1;border-color:#e5d0a1;color:#173c2a}
.site-hero--slideshow .btn-primary:hover{background:#f1dfb7;border-color:#f1dfb7}
.site-hero--slideshow .text-link{color:#fff;border-color:#ffffff6b}
.site-hero--slideshow .text-link:hover{color:#f0d79f;border-color:#f0d79f}
.site-hero--slideshow .hero-note{color:#d8e2d0;border-color:#ffffff2b;margin-top:33px;padding-top:18px}
.site-hero--slideshow .hero-note>[data-icon]{color:#dac797}
.hero-slideshow-controls{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:25px}
.hero-slide-selectors{display:flex;gap:5px}
.hero-slide-selector{width:36px;height:44px;padding:0;background:none;border:0;cursor:pointer;display:grid;place-items:center}
.hero-slide-selector::after{content:'';width:23px;height:3px;background:#ffffff70;transition:background .2s}
.hero-slide-selector[aria-pressed="true"]::after{background:#e5d0a1}
.hero-slide-selector:hover::after{background:white}


@media(max-width:640px){
 .site-hero--slideshow{min-height:600px}
 .hero-foreground{padding-top:50px;padding-bottom:20px}
 .site-hero--slideshow h1{font-size:3.6rem}
 .site-hero--slideshow::before{background:linear-gradient(90deg,#0a2419d9,#0a2419a3),linear-gradient(0deg,#0a24194d,transparent)}
 .hero-background__slide{object-position:58% center}
 .site-hero--slideshow .site-hero__description{font-size:.86rem}
 .hero-slideshow-controls{margin-top:40px}
}
@media(max-width:370px){.site-hero--slideshow h1{font-size:3.05rem}.hero-slideshow-controls{gap:12px}.hero-slide-selector{width:30px}}

/* Continuous community photo strip, travelling from left to right. */
.community-gallery{display:block;overflow:hidden}
.community-track{display:flex;width:max-content;animation:community-drift 84s linear infinite}
.community-group{display:flex;gap:25px;padding-right:25px;flex-shrink:0}
.community-group .community-photo{width:clamp(280px,42vw,600px);flex:none}
@keyframes community-drift{from{transform:translateX(-50%)}to{transform:translateX(0)}}
.community-gallery:hover .community-track,.community-gallery:focus-within .community-track,.community-gallery.is-paused .community-track{animation-play-state:paused!important}
.community-gallery.is-keyboard{overflow-x:auto}
.community-gallery.is-keyboard .community-track{transform:none;animation:none!important}
.community-gallery.is-keyboard .community-group[aria-hidden="true"]{display:none}

@media(max-width:640px){.community-group{gap:16px;padding-right:16px}.community-group .community-photo{width:80vw}}
@media(prefers-reduced-motion:reduce){.community-track{animation:community-drift 84s linear infinite!important}.community-gallery.is-paused .community-track{animation:none!important;transform:none}.community-gallery.is-paused{overflow-x:auto}}

/* Public course catalogue */
.catalogue-filters{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:18px;padding:24px;background:#eeefe6;border-radius:8px}
.catalogue-filters label{font-size:.8rem;font-weight:600;min-width:0}.catalogue-filters input,.catalogue-filters select{margin-top:8px;width:100%}
.catalogue-status{margin:24px 0;color:#526257}.public-course-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.public-course-card{padding:30px;border:1px solid #dce1d6;background:#fff;border-radius:8px;overflow-wrap:anywhere}.public-course-card h2{font-size:1.6rem;margin-bottom:18px}.public-course-card .course-description{line-height:1.75;color:#526257;margin-bottom:24px}.public-course-card dl>div{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-top:1px solid #eeefe6;font-size:.8rem}.public-course-card dt{color:#526257}.public-course-card dd{text-align:right;margin:0}
.catalogue-cta{margin-top:64px;padding-top:40px;border-top:1px solid #dce1d6}.catalogue-cta p{margin:20px 0}.catalogue-cta .text-link{margin-left:24px}
@media(max-width:1000px){.catalogue-filters,.public-course-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.catalogue-filters,.public-course-grid{grid-template-columns:1fr}.catalogue-cta .text-link{display:block;margin:20px 0}}

/* Readable status colours on the light backgrounds used throughout the portal. */
:root{--color-success:#256944;--color-warning:#80530d}
.btn-gold{background:#896022;color:#fff}.btn-gold:hover{background:#74501b}
