/* Sarape Academico: a responsive shell shared by public pages and legacy tools. */
:root{
    --navy:#002546;
    --blue:#0d3b66;
    --clay:#ab3600;
    --orange:#d9531e;
    --gold:#e5a93b;
    --teal:#0e8388;
    --magenta:#ba135d;
    --green:#1b6b44;
    --cream:#fff8f8;
    --soft:#fbf1f2;
    --ink:#231f20;
    --muted:#625d60;
    --line:#e8dddd;
    --shadow:0 8px 28px -14px #3c2a1433;
    --width:1240px;
    --heading:"Epilogue",Arial,sans-serif;
    --body:"Source Sans 3",Arial,sans-serif
}
*{
    box-sizing:border-box
}
html{
    scroll-behavior:smooth;
    scroll-padding-top:24px
}
body.site-shell{
    margin:0;
    background:var(--cream);
    color:var(--ink);
    font:17px/1.6 var(--body);
    overflow-wrap:break-word
}
img{
    max-width:100%;
    height:auto
}
a{
    color:var(--blue);
    text-underline-offset:4px
}
a:hover{
    color:var(--clay)
}
button,input,select,textarea{
    font:inherit
}
:focus-visible{
    outline:3px solid var(--teal);
    outline-offset:4px
}
[hidden]{
    display:none!important
}
.hidden{
    display:none
}
.center{
    text-align:center
}
.bold{
    font-weight:700
}
.small,.smallNote{
    font-size:.85em
}
.skip-link{
    position:fixed;
    top:12px;
    left:12px;
    z-index:1000;
    transform:translateY(-180%);
    padding:12px 20px;
    background:var(--navy);
    color:white;
    border-radius:8px
}
.skip-link:focus{
    transform:none
}
.site-width{
    width:min(var(--width),calc(100% - 64px));
    margin-inline:auto
}
.sarape-stripe{
    height:5px;
    background:linear-gradient(90deg,var(--magenta) 0 20%,var(--orange) 20% 40%,var(--gold) 40% 60%,var(--teal) 60% 80%,var(--navy) 80%)
}
.site-header{
    position:relative;
    background:white;
    border-bottom:1px solid var(--line);
    z-index:30
}
.utility-bar{
    background:var(--soft)
}
.utility-inner{
    display:flex;
    justify-content:space-between;
    gap:20px;
    align-items:center;
    min-height:37px
}
.utility-links{
    display:flex;
    flex-wrap:wrap;
    gap:6px 22px;
    padding-block:8px
}
.utility-links a,.session-tools a,.session-tools button{
    font-size:12px;
    letter-spacing:.025em;
    color:#544e51;
    text-decoration:none
}
.utility-links a:hover,.session-tools a:hover,.session-tools button:hover{
    color:var(--clay)
}
.brand-bar{
    min-height:103px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:22px
}
.brand{
    display:flex;
    align-items:center;
    gap:12px;
    text-decoration:none;
    flex-shrink:0
}
.brand-mark{
    display:block;
    position:relative;
    width:56px;
    height:56px;
    border-radius:50%;
    overflow:hidden;
    flex-shrink:0;
    background:#f3e9df
}
.brand-mark img{
    position:absolute;
    max-width:none;
    width:207px;
    height:62px;
    left:-14px;
    top:-3px
}
.brand-name{
    font:700 17px/1.28 var(--heading);
    letter-spacing:-.5px;
    color:var(--navy)
}
.brand-subtitle{
    display:block;
    font:600 9px/1.5 var(--body);
    letter-spacing:.09em;
    text-transform:uppercase;
    color:var(--clay);
    margin-top:5px
}
.primary-nav{
    display:flex;
    align-items:center;
    gap:4px
}
.primary-nav>a{
    font:600 11px/1.5 var(--heading);
    padding:12px 10px;
    border-radius:7px;
    text-decoration:none;
    color:#49454b;
    white-space:nowrap
}
.primary-nav>a:hover{
    background:var(--soft);
    color:var(--clay)
}
.primary-nav>a[aria-current=page]:not(.button){
    background:var(--navy);
    color:white
}
.primary-nav .nav-register{
    margin-left:10px;
    padding:13px 15px;
    color:white;
    font-size:11px
}
.menu-toggle{
    display:none
}
.session-tools{
    display:flex;
    align-items:center;
    gap:14px;
    white-space:nowrap
}
.session-tools form{
    margin:0
}
.session-tools button{
    border:0;
    background:transparent;
    padding:7px 0;
    cursor:pointer
}
.button,.site-shell button[type=submit]{
    display:inline-flex;
    justify-content:center;
    align-items:center;
    gap:12px;
    background:var(--navy);
    color:white;
    border:1px solid transparent;
    border-radius:8px;
    padding:13px 20px;
    font:600 12px/1.5 var(--heading);
    text-decoration:none;
    cursor:pointer;
    min-height:45px;
    transition:background .15s,transform .15s
}
.button:hover,.site-shell button[type=submit]:hover{
    background:var(--blue);
    color:white;
    transform:translateY(-1px)
}
.button.button-accent{
    background:var(--clay);
    color:white
}
.button-accent:hover{
    background:#822700
}
.button.button-light{
    background:white;
    color:var(--navy);
    border-color:var(--line);
    box-shadow:0 2px 5px #00254608
}
.button.button-outline{
    color:var(--navy);
    background:transparent;
    border-color:#b1bac5
}
.text-link{
    font-weight:600;
    text-decoration:none;
    display:inline-flex;
    gap:20px;
    align-items:center
}
.admin-navigation{
    background:var(--navy);
    color:white;
    font-size:13px;
    padding:10px max(32px,calc((100% - var(--width))/2))
}
.admin-navigation summary{
    cursor:pointer;
    font:600 12px var(--heading);
    padding:6px 0;
    color:#ffdbcf
}
.admin-nav-group{
    display:flex;
    gap:18px;
    align-items:flex-start;
    padding:8px 0
}
.admin-nav-label{
    font-size:11px;
    text-transform:uppercase;
    letter-spacing:.07em;
    min-width:115px;
    color:#b9cde2;
    padding-top:4px
}
.admin-nav-links{
    display:flex;
    gap:4px 16px;
    flex-wrap:wrap
}
.admin-nav-links a{
    color:white;
    text-decoration:none;
    padding:2px 0
}
.admin-nav-links a:hover{
    color:#ffdbcf
}
#main-content{
    min-height:50vh;
    outline:none
}
.site-shell .content{
    width:min(var(--width),calc(100% - 64px));
    margin:0 auto;
    padding:60px 0 76px;
    float:none;
    min-width:0;
    background:none
}
.site-shell h1,.site-shell h2,.site-shell h3,.site-shell h4{
    font-family:var(--heading);
    color:var(--navy);
    line-height:1.25;
    letter-spacing:-.04em
}
.site-shell h1.page-title{
    font-size:clamp(30px,4vw,44px);
    text-align:left;
    margin:0 0 30px
}
.site-shell h3.section-title,.site-shell h3.section-title-left{
    font-size:23px;
    text-align:left;
    margin-top:36px
}
.eyebrow{
    display:block;
    color:var(--clay);
    font:700 10px/1.7 var(--heading);
    letter-spacing:.12em;
    text-transform:uppercase;
    margin-bottom:13px
}
.lede{
    font-size:20px;
    line-height:1.6;
    color:var(--muted);
    max-width:740px
}
.page-intro{
    margin-bottom:38px;
    max-width:800px
}
.page-intro h1{
    margin-bottom:16px!important
}
.page-intro p{
    color:var(--muted);
    margin:0
}
.section-heading{
    display:flex;
    justify-content:space-between;
    align-items:end;
    gap:30px;
    margin-bottom:30px
}
.section-heading h2{
    font-size:clamp(24px,3vw,32px);
    margin:0
}
.section-heading>p{
    max-width:360px;
    font-size:16px;
    color:var(--muted);
    margin:0
}
.section-pad{
    padding-block:68px
}
.section-white{
    background:white
}
.section-soft{
    background:var(--soft)
}
.card{
    background:white;
    border:1px solid var(--line);
    border-radius:16px;
    padding:28px;
    box-shadow:var(--shadow)
}
.card h2{
    margin-top:0
}
.badge{
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:7px 12px;
    background:#f1e5e5;
    border-radius:99px;
    color:var(--clay);
    font:700 9px/1.5 var(--heading);
    letter-spacing:.1em;
    text-transform:uppercase
}
.badge::before{
    content:"";
    width:5px;
    height:5px;
    border-radius:50%;
    background:currentColor
}
.home-hero{
    background:var(--soft);
    padding:74px 0 84px;
    overflow:hidden
}
.hero-grid{
    display:grid;
    grid-template-columns:1.2fr 1fr;
    gap:70px;
    align-items:center
}
.hero-copy h1{
    font-size:clamp(34px,4.2vw,55px);
    line-height:1.16;
    letter-spacing:-.055em;
    margin:24px 0
}
.hero-copy h1 em{
    font-style:normal;
    color:var(--clay)
}
.hero-copy>p{
    font-size:19px;
    color:var(--muted);
    max-width:620px;
    margin:0 0 28px
}
.hero-actions{
    display:flex;
    flex-wrap:wrap;
    gap:12px
}
.hero-contact{
    display:flex;
    gap:12px;
    align-items:center;
    margin-top:32px;
    font-size:12px;
    color:var(--muted)
}
.hero-contact strong{
    display:block;
    color:var(--navy);
    font-size:14px
}
.round-icon{
    width:42px;
    height:42px;
    border-radius:10px;
    background:#f7e6df;
    display:flex;
    align-items:center;
    justify-content:center;
    color:var(--clay);
    font-size:22px;
    flex-shrink:0
}
.hero-art{
    position:relative;
    padding:18px 0 24px
}
.hero-poster{
    display:block;
    border:7px solid white;
    border-radius:16px;
    background:white;
    box-shadow:0 16px 35px #0025461c;
    transform:rotate(2deg);
    overflow:hidden
}
.hero-poster img{
    display:block;
    width:100%;
    aspect-ratio:1.12;
    object-fit:cover;
    object-position:center 12%
}
.hero-art::before{
    content:"";
    position:absolute;
    inset:-25px -34px 10px 30px;
    background:repeating-linear-gradient(90deg,transparent 0 22px,#e5a93b20 22px 24px);
    border-radius:100% 40% 80% 20%;
    transform:rotate(-8deg)
}
.hero-pin{
    position:absolute;
    right:-16px;
    top:0;
    background:var(--navy);
    color:white;
    padding:9px 14px;
    border-radius:6px;
    font:600 10px var(--heading);
    box-shadow:var(--shadow)
}
.hero-note{
    position:absolute;
    bottom:0;
    left:-24px;
    background:white;
    border:1px solid var(--line);
    padding:20px 24px;
    border-radius:12px;
    box-shadow:var(--shadow);
    display:flex;
    gap:16px;
    align-items:center
}
.hero-note strong{
    display:block;
    font:700 17px var(--heading);
    color:var(--navy)
}
.hero-note small{
    color:var(--muted);
    font-size:12px
}
.feature-card{
    overflow:hidden;
    background:var(--navy);
    color:white;
    border-radius:16px;
    box-shadow:0 12px 22px -12px #00254666
}
.feature-inner{
    padding:36px
}
.feature-head{
    display:grid;
    grid-template-columns:1.6fr 1fr;
    gap:45px;
    align-items:center
}
.feature-card .eyebrow{
    color:#ffdbcf
}
.feature-card h2{
    font-size:30px;
    color:white;
    margin:10px 0 14px
}
.feature-card p{
    color:#c2d2e5;
    margin:0
}
.event-meta{
    background:var(--blue);
    padding:22px;
    border-radius:12px;
    font-size:14px;
    display:grid;
    gap:10px
}
.event-meta span{
    color:#f7c36c;
    margin-right:9px
}
.event-meta strong{
    font-size:15px
}
.event-meta .text-link{
    color:white
}
.feature-links{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:14px;
    margin-top:30px
}
.feature-link{
    display:block;
    text-decoration:none;
    background:#0d3b6680;
    border-radius:10px;
    padding:21px;
    color:white
}
.feature-link:hover{
    background:var(--blue);
    color:white
}
.feature-link strong{
    display:block;
    font:600 13px var(--heading);
    margin-bottom:8px
}
.feature-link small{
    display:block;
    font-size:14px;
    line-height:1.45;
    color:#c2d2e5
}
.feature-number{
    display:block;
    color:#f7c36c;
    font:700 13px var(--heading);
    margin-bottom:20px
}
.feature-bottom{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
    margin-top:28px;
    font-size:13px
}
.feature-bottom>a{
    color:white
}
.pillars-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:20px
}
.pillar-card{
    border-radius:14px;
    background:white;
    padding:26px;
    display:flex;
    flex-direction:column;
    border:1px solid var(--line)
}
.pillar-icon{
    display:grid;
    place-items:center;
    width:38px;
    height:38px;
    background:#e6edf2;
    color:var(--blue);
    font:700 17px var(--heading);
    border-radius:9px;
    margin-bottom:24px
}
.pillar-card:nth-child(2) .pillar-icon{
    background:#f9e7de;
    color:var(--clay)
}
.pillar-card:nth-child(3) .pillar-icon{
    background:#f8efd9;
    color:#8d620b
}
.pillar-card:nth-child(4) .pillar-icon{
    background:#e0f1ef;
    color:var(--teal)
}
.pillar-card h3{
    font-size:17px;
    margin:0 0 12px
}
.pillar-card p{
    color:var(--muted);
    font-size:16px;
    margin:0 0 24px
}
.pillar-card .text-link{
    margin-top:auto;
    font-size:12px
}
.pillar-card .eyebrow{
    font-size:8px
}
.story-grid{
    display:grid;
    grid-template-columns:1.2fr 1fr;
    gap:70px;
    align-items:center
}
.story-grid h2{
    font-size:32px;
    margin:0 0 22px
}
.story-grid p{
    color:var(--muted)
}
.language-art{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:14px;
    transform:rotate(-2deg)
}
.language-tile{
    min-height:145px;
    border-radius:12px;
    background:var(--navy);
    color:white;
    padding:25px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    box-shadow:var(--shadow)
}
.language-tile:nth-child(2){
    background:#f8e9df;
    color:var(--clay);
    margin-top:26px
}
.language-tile:nth-child(3){
    background:#dfedeb;
    color:#0d5d61;
    margin-top:-26px
}
.language-tile:nth-child(4){
    background:#f8efd9;
    color:#775009
}
.language-tile strong{
    font:700 23px/1.3 var(--heading)
}
.language-tile span{
    font-size:13px;
    margin-top:10px
}
.registration-callout{
    display:grid;
    grid-template-columns:1.4fr 1fr;
    gap:50px;
    padding:40px
}
.registration-callout h2{
    font-size:29px;
    margin:0 0 16px
}
.registration-callout p{
    color:var(--muted)
}
.registration-callout aside{
    background:var(--navy);
    color:white;
    padding:30px;
    border-radius:12px;
    align-self:center
}
.registration-callout aside h3{
    color:white;
    font-size:20px;
    margin-top:0
}
.registration-callout aside p{
    color:#c2d2e5;
    font-size:16px
}
.registration-callout aside a{
    color:white
}
.steps{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:12px;
    margin:25px 0
}
.step{
    background:var(--soft);
    padding:17px;
    border-radius:8px;
    font-size:14px;
    color:var(--muted)
}
.step>span{
    font:700 9px var(--heading);
    letter-spacing:.08em;
    color:var(--clay)
}
.step strong{
    display:block;
    color:var(--navy);
    font-size:15px;
    margin-top:7px
}
.resources-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:18px
}
.resource-card{
    display:flex;
    flex-direction:column;
    text-decoration:none;
    color:var(--navy);
    background:var(--soft);
    padding:25px;
    border-radius:12px;
    min-height:218px;
    border:1px solid transparent
}
.resource-card:hover{
    border-color:var(--clay);
    color:var(--clay)
}
.resource-card>span{
    font:700 10px var(--heading);
    color:var(--clay);
    letter-spacing:.08em;
    margin-bottom:24px
}
.resource-card h3{
    font-size:17px;
    margin:0 0 12px
}
.resource-card p{
    font-size:15px;
    line-height:1.5;
    color:var(--muted);
    margin:0 0 25px
}
.resource-card small{
    margin-top:auto;
    font-weight:600;
    font-size:12px
}
.contact-strip{
    display:grid;
    grid-template-columns:1fr auto;
    gap:32px;
    align-items:center
}
.contact-strip h2{
    font-size:30px;
    margin:0 0 15px
}
.contact-strip p{
    margin:0;
    color:var(--muted)
}
.site-footer{
    background:var(--navy);
    color:#c2d2e5
}
.footer-grid{
    display:grid;
    grid-template-columns:1.2fr 1fr 1fr 1.1fr;
    gap:48px;
    padding-block:50px
}
.footer-grid h2{
    color:white;
    font:700 11px var(--heading);
    text-transform:uppercase;
    letter-spacing:.08em;
    margin:0 0 23px
}
.footer-grid p,.footer-grid address{
    font-size:14px;
    font-style:normal;
    margin:0 0 18px
}
.footer-grid a:not(.button){
    display:block;
    color:#c2d2e5;
    font-size:13px;
    text-decoration:none;
    margin-bottom:8px
}
.footer-grid a:hover{
    color:white
}
.footer-grid .footer-brand{
    font:700 17px/1.4 var(--heading)!important;
    color:white!important;
    margin-bottom:18px!important
}
.footer-brand span{
    display:block;
    font:400 11px var(--body);
    margin-top:5px;
    letter-spacing:.04em
}
.footer-tag{
    display:block;
    font-size:11px;
    padding:8px 10px;
    background:var(--blue);
    border-radius:5px
}
.footer-enroll .button{
    font-size:10px;
    padding:12px;
    margin:0 0 20px;
    gap:8px
}
.footer-bottom{
    border-top:1px solid #ffffff20;
    padding-block:22px;
    display:flex;
    justify-content:space-between;
    gap:16px;
    font-size:11px;
    color:#aabfd6
}
.footer-bottom a{
    color:#aabfd6;
    text-decoration:none
}
.site-shell input:not([type=hidden]):not([type=checkbox]):not([type=radio]):not([type=file]):not([type=submit]),.site-shell select,.site-shell textarea{
    border:1px solid #cfc5bf;
    border-radius:7px;
    background:white;
    color:var(--ink);
    padding:9px 11px;
    min-height:43px;
    max-width:100%
}
.site-shell input[type=checkbox],.site-shell input[type=radio]{
    accent-color:var(--clay);
    width:17px;
    height:17px
}
.site-shell textarea{
    width:100%;
    min-height:120px
}
.site-shell select[size]{
    padding:8px;
    min-height:150px
}
.site-shell input:focus,.site-shell textarea:focus,.site-shell select:focus{
    border-color:var(--teal)
}
.site-shell form{
    max-width:100%
}
.site-shell table{
    border-collapse:collapse;
    max-width:100%;
    font-size:15px
}
.site-shell th{
    text-align:left;
    color:var(--navy);
    font-weight:600
}
.site-shell td,.site-shell th{
    padding:12px 15px;
    vertical-align:top
}
.site-shell thead,.site-shell tr:has(>th){
    background:#eef1f4
}
.site-shell table tr:nth-child(even){
    background:#ffffff70
}
.table-scroll{
    max-width:100%;
    overflow-x:auto;
    border:1px solid var(--line);
    border-radius:12px;
    background:white;
    margin-block:20px;
    overscroll-behavior-x:contain
}
.table-scroll>table{
    width:100%;
    margin:0;
    box-shadow:none
}
.table-scroll:focus-visible{
    outline-offset:2px
}
.table-scroll th{
    white-space:nowrap
}
.site-shell #mission-container{
    max-width:940px;
    margin-inline:auto
}
.site-shell p.mission-title{
    font:700 23px/1.4 var(--heading);
    text-shadow:none;
    color:var(--navy);
    margin:35px 0 13px
}
.site-shell p.mission-text{
    width:auto;
    margin:0 0 25px;
    color:var(--muted)
}
.people-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:22px
}
.person-card{
    display:flex;
    align-items:center;
    gap:20px;
    background:white;
    border:1px solid var(--line);
    border-radius:13px;
    padding:24px;
    min-width:0
}
.person-card h2{
    font:700 16px/1.4 var(--heading);
    margin:0 0 6px;
    letter-spacing:-.03em
}
.person-card p{
    font-size:15px;
    color:var(--muted);
    margin:0 0 7px
}
.person-card a{
    font-size:13px;
    word-break:break-word
}
.person-avatar{
    width:78px;
    height:92px;
    position:relative;
    flex-shrink:0;
    border-radius:10px;
    overflow:hidden;
    background:#f1e8df;
    display:grid;
    place-items:center;
    color:#7c614d;
    font:700 23px var(--heading)
}
.person-avatar img{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover
}
.person-avatar .initials{
    letter-spacing:-1px
}
.council-note{
    margin:28px 0 40px;
    background:#f4ead8;
    border-radius:10px;
    padding:18px 22px;
    font-size:15px
}
.site-shell #gc-meetings-container{
    height:auto;
    max-height:640px;
    overflow:auto
}
.site-shell #gc-meetings{
    width:100%;
    margin:0;
    box-shadow:none;
    background:white;
    min-width:900px
}
.site-shell #gc-meetings td{
    font-size:14px;
    max-width:260px;
    padding:16px
}
.site-shell #gc-meetings th{
    padding:16px;
    background:#edf1f5;
    position:sticky;
    top:0
}
.site-shell #policiesList{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:14px;
    list-style:none;
    padding:0;
    margin:0
}
.site-shell #policiesList li{
    margin:0;
    padding:0;
    background:transparent
}
.site-shell #policiesList a{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    border:1px solid var(--line);
    background:white;
    padding:22px;
    border-radius:10px;
    text-decoration:none;
    font-size:16px;
    height:100%
}
.site-shell #policiesList a::after{
    content:"↗";
    color:var(--clay)
}
.site-shell #policiesList a:hover{
    border-color:var(--clay)
}
.site-shell #jobsContainer{
    max-width:1000px
}
.site-shell .job-container{
    background:white;
    border:1px solid var(--line);
    border-radius:12px;
    padding:26px;
    margin:25px 0
}
.site-shell .job-header{
    font:700 21px var(--heading);
    color:var(--navy);
    margin-top:0
}
.site-shell .job-post-date{
    font:400 13px var(--body);
    color:var(--muted);
    display:block;
    margin-top:8px
}
.site-shell #message-2{
    padding:28px;
    background:var(--soft);
    border-radius:12px;
    margin-top:35px
}
.document-stack{
    display:grid;
    gap:18px
}
.document-card{
    padding:26px;
    border:1px solid var(--line);
    border-radius:12px;
    background:white
}
.document-card h2{
    font-size:21px;
    margin-top:0
}
.document-card p{
    margin-bottom:0
}
.site-shell #container-reentry{
    max-width:980px
}
.site-shell #reentry-info{
    width:100%;
    margin:0;
    float:none
}
.site-shell #re-entry-message{
    max-width:100%;
    margin:0;
    padding:26px;
    background:white;
    border:1px solid var(--line);
    border-radius:12px
}
.site-shell #reentry-links{
    margin-top:25px
}
.contact-grid{
    display:grid;
    grid-template-columns:1.1fr 1fr;
    gap:30px
}
.contact-details{
    display:grid;
    gap:0
}
.contact-detail{
    padding:20px 0;
    border-bottom:1px solid var(--line);
    display:grid;
    grid-template-columns:130px 1fr;
    gap:20px
}
.contact-detail:last-child{
    border:0
}
.contact-detail dt{
    font:600 12px var(--heading);
    color:var(--navy)
}
.contact-detail dd{
    margin:0;
    color:var(--muted)
}
.campus-card{
    background:var(--navy);
    color:white;
    padding:40px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    border-radius:16px;
    position:relative;
    overflow:hidden
}
.campus-card::before{
    content:"";
    position:absolute;
    inset:0;
    background:repeating-linear-gradient(35deg,transparent 0 44px,#ffffff04 44px 46px)
}
.campus-card>*{
    position:relative
}
.campus-card .eyebrow{
    color:#f7c36c
}
.campus-card h2{
    color:white;
    font-size:32px
}
.campus-card p{
    color:#c2d2e5
}
.campus-card .button{
    align-self:flex-start;
    margin-top:20px
}
.site-shell .registration-page{
    max-width:1060px
}
.registration-heading{
    display:flex;
    justify-content:space-between;
    align-items:start;
    gap:22px
}
.language-switch{
    display:flex;
    gap:4px;
    background:#f1e5e5;
    padding:4px;
    border-radius:30px;
    flex-shrink:0
}
.language-switch a{
    font-size:13px;
    text-decoration:none;
    padding:6px 13px;
    border-radius:25px
}
.language-switch a[aria-current=page]{
    background:var(--navy);
    color:white
}
.form-note{
    padding:17px 20px;
    background:#f1e8df;
    border-radius:8px;
    font-size:15px;
    margin:20px 0 30px
}
.registration-form{
    background:white;
    padding:36px;
    border:1px solid var(--line);
    border-radius:16px;
    box-shadow:var(--shadow)
}
.registration-form fieldset{
    border:0;
    padding:0;
    margin:0 0 30px;
    min-width:0
}
.registration-form legend{
    width:100%;
    font:700 18px var(--heading);
    color:var(--navy);
    padding-bottom:16px;
    margin-bottom:20px;
    border-bottom:1px solid var(--line)
}
.form-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:20px
}
.form-grid.three{
    grid-template-columns:repeat(3,minmax(0,1fr))
}
.field{
    display:flex;
    flex-direction:column;
    gap:8px;
    font-size:14px;
    font-weight:600;
    color:var(--navy);
    min-width:0
}
.field input,.field select{
    width:100%;
    font-weight:400
}
.field.full{
    grid-column:1/-1
}
.field small{
    font-size:12px;
    font-weight:400;
    color:var(--muted)
}
.form-date{
    font-size:13px;
    color:var(--muted);
    margin:0 0 28px
}
.captcha-row{
    display:flex;
    align-items:center;
    gap:20px;
    margin:12px 0
}
.captcha-row img{
    width:65px;
    height:20px
}
.captcha-row input{
    max-width:130px
}
.form-actions{
    border-top:1px solid var(--line);
    padding-top:24px;
    display:flex;
    align-items:center;
    gap:24px
}
.form-actions p{
    font-size:13px;
    color:var(--muted);
    max-width:400px;
    margin:0
}
.site-shell .SrConfirmation{
    max-width:900px;
    margin:60px auto;
    padding:32px;
    border:1px solid #b9d5c5;
    background:#f1f9f4;
    border-radius:15px;
    color:var(--green)
}
.site-shell .auth-page{
    max-width:500px
}
.site-shell .auth-page h1{
    text-align:center
}
.login-card{
    padding:32px;
    background:white;
    border:1px solid var(--line);
    border-radius:16px;
    box-shadow:var(--shadow);
    display:grid;
    gap:20px
}
.login-error{
    background:#fff0ea;
    color:#8c2809;
    border-left:4px solid var(--clay);
    border-radius:8px;
    padding:16px 20px;
    margin:0 0 24px;
    text-align:left;
}
.login-card button{
    width:100%
}
.site-shell.is-admin .content{
    --width:1440px;
    font-size:15px;
    padding-top:35px
}
.site-shell.is-admin h1.page-title{
    font-size:30px
}
.site-shell.is-admin .content>div{
    max-width:100%
}
.site-shell.is-admin table{
    font-size:14px
}
.site-shell.is-admin td,.site-shell.is-admin th{
    padding:10px
}
.site-shell.is-admin .content a{
    color:var(--blue)
}
.site-shell.is-admin .content button{
    min-height:36px;
    font-size:11px;
    padding:8px 14px
}
.site-shell.is-admin .content input,.site-shell.is-admin .content select{
    font-size:14px
}
.site-shell #status{
    display:none;
    position:fixed;
    bottom:22px;
    right:22px;
    z-index:200;
    max-width:min(440px,calc(100% - 44px));
    border-radius:10px;
    padding:16px 24px;
    box-shadow:var(--shadow);
    font-weight:600;
    background:white;
    border:1px solid var(--line)
}
.site-shell #status.statusGood{
    background:#edf8f1;
    border-color:#a5cbb4;
    color:var(--green)
}
.site-shell #status.statusError{
    background:#fff1ed;
    border-color:#efbbaa;
    color:#922d09
}
.required{
    outline:2px solid #ba1a1a
}
.site-shell #dim{
    position:fixed;
    inset:0;
    background:#00254688;
    z-index:70
}
@media(min-width:1450px){
    .brand-name{
        font-size:19px
    }
    .primary-nav>a{
        font-size:12px;
        padding:12px 13px
    }
}
@media(max-width:1100px){
    .brand-name{
        font-size:15px
    }
    .brand-mark{
        width:48px;
        height:48px
    }
    .brand-mark img{
        width:178px;
        height:54px;
        left:-13px;
        top:-3px
    }
    .primary-nav>a{
        font-size:10px;
        padding:11px 8px
    }
    .register-grades{
        display:none
    }
    .primary-nav .nav-register{
        margin-left:4px;
        padding:12px
    }
    .people-grid{
        grid-template-columns:repeat(2,1fr)
    }
    .footer-grid{
        gap:28px
    }
    .hero-grid{
        gap:44px
    }
    .pillars-grid{
        gap:14px
    }
    .pillar-card{
        padding:22px
    }
}
@media(max-width:900px){
    .brand-bar{
        min-height:90px;
        flex-wrap:wrap;
        padding-block:15px
    }
    .brand-name{
        font-size:17px
    }
    .menu-toggle{
        display:flex;
        align-items:center;
        gap:10px;
        background:white;
        color:var(--navy);
        font:600 12px var(--heading);
        border:1px solid var(--line);
        border-radius:8px;
        padding:12px;
        cursor:pointer
    }
    .menu-icon{
        width:16px;
        height:12px;
        border-block:2px solid var(--navy);
        position:relative
    }
    .menu-icon::after{
        content:"";
        position:absolute;
        left:0;
        right:0;
        top:3px;
        border-top:2px solid var(--navy)
    }
    .primary-nav{
        flex-basis:100%;
        flex-wrap:wrap;
        padding-top:10px;
        border-top:1px solid var(--line)
    }
    .nav-ready .primary-nav:not(.is-open){
        display:none
    }
    .primary-nav>a{
        font-size:12px;
        padding:12px 14px
    }
    .primary-nav .nav-register{
        margin-left:0
    }
    .utility-links{
        gap:5px 15px
    }
    .utility-links a{
        font-size:11px
    }
    .hero-grid{
        gap:35px
    }
    .hero-copy h1{
        font-size:38px
    }
    .hero-copy>p{
        font-size:17px
    }
    .home-hero{
        padding:50px 0 62px
    }
    .hero-note{
        padding:16px;
        left:-12px;
        gap:10px
    }
    .hero-note strong{
        font-size:14px
    }
    .hero-note small{
        font-size:11px
    }
    .hero-pin{
        right:-8px;
        font-size:9px
    }
    .pillars-grid,.resources-grid{
        grid-template-columns:repeat(2,1fr)
    }
    .story-grid{
        gap:40px
    }
    .story-grid h2{
        font-size:27px
    }
    .registration-callout{
        gap:28px;
        padding:28px;
        grid-template-columns:1.2fr 1fr
    }
    .steps{
        grid-template-columns:1fr
    }
    .step{
        padding:12px 16px
    }
    .footer-grid{
        grid-template-columns:1fr 1fr;
        gap:36px 50px
    }
    .contact-grid{
        gap:22px
    }
    .contact-detail{
        grid-template-columns:95px 1fr
    }
    .feature-card h2{
        font-size:26px
    }
    .feature-head{
        gap:25px
    }
    .feature-links{
        grid-template-columns:repeat(2,1fr)
    }
}
@media(max-width:640px){
    .site-width,.site-shell .content{
        width:calc(100% - 36px)
    }
    body.site-shell{
        font-size:16px
    }
    .utility-inner{
        align-items:start;
        gap:10px
    }
    .utility-links{
        padding-block:8px;
        gap:3px 13px
    }
    .utility-links a{
        font-size:10px
    }
    .utility-links a:nth-child(n+4){
        display:none
    }
    .session-tools{
        gap:10px;
        flex-wrap:wrap;
        justify-content:end;
        padding-block:4px
    }
    .session-tools a,.session-tools button{
        font-size:10px
    }
    .brand-bar{
        gap:14px;
        min-height:85px
    }
    .brand-name{
        font-size:15px
    }
    .brand-subtitle{
        font-size:8px
    }
    .brand{
        gap:9px
    }
    .primary-nav{
        flex-direction:column;
        align-items:stretch;
        gap:2px
    }
    .primary-nav>a{
        padding:13px 12px;
        white-space:normal
    }
    .primary-nav .nav-register{
        margin-top:9px
    }
    .home-hero{
        padding:36px 0 48px
    }
    .hero-grid{
        grid-template-columns:1fr;
        gap:32px
    }
    .hero-copy h1{
        font-size:37px;
        max-width:500px;
        margin:22px 0
    }
    .hero-copy>p{
        font-size:17px
    }
    .hero-actions .button{
        font-size:11px;
        padding:12px 17px
    }
    .hero-art{
        max-width:430px;
        width:calc(100% - 20px);
        margin:0 auto;
        padding-bottom:30px
    }
    .hero-poster img{
        aspect-ratio:1.4;
        object-position:50% 8%
    }
    .hero-note{
        left:-9px;
        padding:15px 18px
    }
    .hero-note strong{
        font-size:16px
    }
    .hero-contact{
        margin-top:24px
    }
    .section-pad{
        padding-block:43px
    }
    .feature-inner{
        padding:25px
    }
    .feature-head{
        grid-template-columns:1fr;
        gap:25px
    }
    .feature-card h2{
        font-size:27px
    }
    .event-meta{
        padding:18px
    }
    .feature-links{
        gap:10px;
        margin-top:22px
    }
    .feature-link{
        padding:17px
    }
    .feature-link strong{
        font-size:12px
    }
    .feature-link small{
        font-size:13px
    }
    .feature-number{
        margin-bottom:14px
    }
    .feature-bottom{
        align-items:start;
        flex-direction:column
    }
    .section-heading{
        display:block;
        margin-bottom:25px
    }
    .section-heading h2{
        font-size:26px
    }
    .section-heading>p{
        margin-top:16px
    }
    .pillars-grid{
        grid-template-columns:1fr 1fr;
        gap:12px
    }
    .pillar-card{
        padding:19px
    }
    .pillar-card h3{
        font-size:16px
    }
    .pillar-card p{
        font-size:15px
    }
    .pillar-card .text-link{
        font-size:11px;
        gap:8px
    }
    .story-grid{
        grid-template-columns:1fr;
        gap:28px
    }
    .story-grid h2{
        font-size:27px
    }
    .language-art{
        max-width:420px;
        gap:12px;
        margin:auto
    }
    .language-tile{
        min-height:120px;
        padding:22px
    }
    .language-tile strong{
        font-size:23px
    }
    .registration-callout{
        grid-template-columns:1fr;
        gap:25px;
        padding:25px
    }
    .registration-callout h2{
        font-size:26px
    }
    .registration-callout aside{
        padding:24px
    }
    .steps{
        grid-template-columns:repeat(3,1fr);
        gap:9px
    }
    .step{
        padding:12px;
        font-size:13px
    }
    .step strong{
        font-size:13px
    }
    .resources-grid{
        gap:12px
    }
    .resource-card{
        padding:20px;
        min-height:215px
    }
    .resource-card h3{
        font-size:15px
    }
    .resource-card p{
        font-size:14px
    }
    .contact-strip{
        grid-template-columns:1fr;
        gap:24px
    }
    .contact-strip h2{
        font-size:26px
    }
    .contact-strip .button{
        justify-self:start
    }
    .footer-grid{
        gap:32px 24px;
        padding-block:38px
    }
    .footer-grid .footer-about,.footer-grid .footer-enroll{
        grid-column:1/-1
    }
    .footer-grid .footer-about{
        max-width:360px
    }
    .footer-bottom{
        flex-wrap:wrap;
        font-size:10px
    }
    .footer-bottom>span:nth-child(2){
        display:none
    }
    .site-shell .content{
        padding:38px 0 48px
    }
    .site-shell h1.page-title{
        font-size:31px;
        margin-bottom:24px
    }
    .lede{
        font-size:18px
    }
    .people-grid{
        grid-template-columns:1fr;
        gap:14px
    }
    .person-card{
        padding:21px
    }
    .person-avatar{
        width:70px;
        height:82px
    }
    .site-shell #policiesList{
        grid-template-columns:1fr
    }
    .contact-grid{
        grid-template-columns:1fr
    }
    .campus-card{
        padding:28px
    }
    .contact-detail{
        grid-template-columns:80px 1fr
    }
    .registration-heading{
        display:block
    }
    .language-switch{
        display:inline-flex;
        margin:6px 0 15px
    }
    .registration-form{
        padding:23px
    }
    .form-grid,.form-grid.three{
        grid-template-columns:1fr
    }
    .form-actions{
        flex-direction:column;
        align-items:stretch;
        gap:15px
    }
    .registration-form legend{
        font-size:17px
    }
    .admin-navigation{
        padding:9px 18px
    }
    .admin-nav-group{
        display:block
    }
    .admin-nav-label{
        display:block;
        margin-bottom:8px
    }
    .admin-nav-links{
        gap:9px 15px
    }
    .site-shell.is-admin .content{
        width:calc(100% - 28px);
        font-size:14px
    }
    .site-shell.is-admin .content>div,.site-shell.is-admin #referralToolsContainer>div{
        float:none;
        max-width:100%;
        margin-left:0;
        margin-right:0
    }
    .site-shell.is-admin #studentsList{
        margin-bottom:20px
    }
    .site-shell.is-admin #referralEditor{
        margin-left:0
    }
    .site-shell.is-admin #referralEditorToolbar{
        height:auto;
        display:flex;
        gap:10px;
        flex-wrap:wrap
    }
    .site-shell.is-admin #adminGc table,.site-shell.is-admin #meetings{
        width:100%
    }
    .site-shell.is-admin .content form table,.site-shell.is-admin .content form tbody,.site-shell.is-admin .content form tr,.site-shell.is-admin .content form th,.site-shell.is-admin .content form td{
        display:block;
        width:100%;
        max-width:100%
    }
    .site-shell.is-admin .content form td,.site-shell.is-admin .content form th{
        padding:7px 8px
    }
    .site-shell.is-admin #news-editor-container,.site-shell.is-admin #news-editor-container-b,.site-shell.is-admin #news-editor,.site-shell.is-admin #editor-content{
        width:100%;
        max-width:100%;
        margin-inline:0
    }
    .site-shell.is-admin #users_list,.site-shell.is-admin #students_list{
        max-width:100%;
        width:100%
    }
    .site-shell #status{
        bottom:14px;
        right:14px;
        max-width:calc(100% - 28px)
    }
}
@media(max-width:380px){
    .brand-name{
        font-size:13px
    }
    .brand-subtitle{
        font-size:7px
    }
    .brand-mark{
        width:42px;
        height:42px
    }
    .brand-mark img{
        width:155px;
        height:47px;
        left:-11px;
        top:-2px
    }
    .hero-copy h1{
        font-size:33px
    }
    .pillars-grid,.resources-grid{
        grid-template-columns:1fr
    }
    .steps{
        grid-template-columns:1fr
    }
    .feature-links{
        grid-template-columns:1fr
    }
    .footer-grid{
        grid-template-columns:1fr
    }
    .footer-grid>div{
        grid-column:1!important
    }
}
@media(prefers-reduced-motion:reduce){
    html{
        scroll-behavior:auto
    }
    *,*::before,*::after{
        animation-duration:.01ms!important;
        transition-duration:.01ms!important
    }
}
@media print{
    .site-header,.site-footer,.skip-link,.menu-toggle,#status{
        display:none!important
    }
    .site-shell .content{
        width:100%;
        padding:0
    }
    .table-scroll{
        overflow:visible;
        max-height:none!important;
        border:0
    }
    body.site-shell{
        background:white;
        color:black
    }
}
/* Remaining public archives and legacy admin compatibility. */
.site-shell #container-news{
    max-width:1000px
}
.news-post{
    padding:28px;
    background:white;
    border:1px solid var(--line);
    border-radius:12px;
    margin-bottom:22px;
    min-width:0
}
.news-post-title{
    font:700 22px/1.4 var(--heading);
    color:var(--navy);
    margin:0 0 20px
}
.news-post-date{
    display:block;
    font:400 13px var(--body);
    color:var(--muted);
    margin-top:8px
}
.news-post-content{
    max-width:100%;
    overflow-x:auto;
    overflow-wrap:anywhere
}
.news-post-content img{
    max-width:100%!important;
    height:auto!important
}
.news-post-content iframe{
    max-width:100%
}
.site-shell #calendar_container{
    max-width:100%;
    padding:12px
}
.site-shell #calendar{
    width:100%;
    min-width:600px
}
.site-shell #calendar_download p{
    padding:0;
    margin:0 0 24px
}
.site-shell #calendar_day_div{
    position:relative;
    top:auto;
    left:auto;
    width:100%;
    max-width:800px;
    min-height:0;
    padding:24px;
    margin:24px auto;
    border:1px solid var(--line);
    border-radius:12px;
    overflow-x:auto
}
.site-shell #calendar_events{
    min-width:450px
}
.calendar-close{
    padding:8px 14px;
    background:var(--navy);
    color:white;
    border:0;
    border-radius:6px;
    cursor:pointer
}
.site-shell #artYoutube{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:22px
}
.site-shell #artYoutube br{
    display:none
}
.site-shell #artYoutube iframe{
    width:100%;
    height:auto;
    aspect-ratio:4/3;
    border:0;
    border-radius:12px;
    background:var(--soft)
}
.site-shell #links-container{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:16px
}
.site-shell p.link{
    padding:24px;
    border:1px solid var(--line);
    border-radius:12px;
    background:white;
    margin:0;
    font-weight:600
}
.site-shell p.link a{
    display:block;
    margin:10px 0 0;
    font-size:14px
}
.site-shell .session-tools button[type=submit]{
    min-height:0;
    background:transparent;
    color:#544e51;
    font:400 12px var(--body);
    border:0;
    padding:7px 0;
    transform:none
}
.site-shell .session-tools button[type=submit]:hover{
    color:var(--clay)
}
.site-shell.is-admin .assetNavLink,.site-shell.is-admin .backLink{
    margin-left:0;
    display:flex;
    gap:20px;
    flex-wrap:wrap
}
.site-shell.is-admin .content::after{
    content:"";
    display:table;
    clear:both
}
.site-shell.is-admin #users_editor_toolbar,.site-shell.is-admin #referralEditorToolbar{
    height:auto;
    min-height:48px;
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:10px
}
.site-shell.is-admin #users_editor_toolbar a,.site-shell.is-admin #referralEditorToolbar a{
    height:auto;
    min-height:30px;
    display:inline-flex;
    align-items:center;
    padding:6px 10px;
    margin:0;
    font-size:12px
}
.site-shell.is-admin #users_editor_toolbar a{
    margin-right:8px
}
.site-shell.is-admin #menu_table td{
    color:white
}
@media(max-width:640px){
    .site-shell #artYoutube,.site-shell #links-container{
        grid-template-columns:1fr
    }
    .news-post{
        padding:21px
    }
    .news-post-title{
        font-size:19px
    }
    .site-shell #editor-preview{
        min-width:0;
        max-width:100%;
        margin-inline:0;
        padding:16px
    }
    .site-shell.is-admin #users_list_container,.site-shell.is-admin #menu_container{
        float:none;
        width:100%;
        margin-bottom:20px;
        min-height:0
    }
    .site-shell.is-admin #users_editor,.site-shell.is-admin #site_editor_container{
        margin-left:0;
        max-width:100%
    }
    .site-shell.is-admin #edit_user_form{
        float:none;
        width:100%
    }
    .site-shell.is-admin #create_referral_notes,.site-shell.is-admin #create_referral_action,.site-shell.is-admin #edit_referral_notes,.site-shell.is-admin #edit_referral_action{
        width:100%
    }
    .site-shell.is-admin #assetUpdateForm{
        float:none;
        margin-left:0;
        width:100%
    }
}
.site-shell.is-admin #adminSite{
    width:min(1440px,calc(100% - 64px));
    margin-inline:auto
}
.site-shell.is-admin .sr_nav{
    width:100%;
    padding-inline:0
}
.site-shell.is-admin .table-scroll>table{
    float:none
}
@media(max-width:640px){
    .site-shell.is-admin #adminSite{
        width:calc(100% - 28px)
    }
    .site-shell #meeting_tools_container{
        width:100%;
        padding:0;
        display:grid;
        gap:18px
    }
    .site-shell #create_meeting_container{
        float:none;
        width:100%;
        padding:18px;
        min-width:0
    }
    .site-shell #meeting_forms_container{
        width:100%;
        margin:0;
        padding:0
    }
    .site-shell #meetings_container{
        overflow-x:auto;
        margin-top:24px
    }
    .site-shell #adminStaffSelect,.site-shell #adminStaffEditor{
        width:100%;
        margin-inline:0
    }
    .site-shell #change_password_form{
        width:100%;
        margin:22px 0 0
    }
    .site-shell #account_table{
        width:100%;
        float:none
    }
    .site-shell #createController,.site-shell #editController,.site-shell #createGroup,.site-shell #editGroup,.site-shell #createNav,.site-shell #editNav{
        width:100%;
        margin-left:0
    }
    .site-shell.is-admin .site_editor_main>div{
        max-width:100%
    }
    .site-shell.is-admin .site_editor_main>div form{
        width:100%;
        margin-inline:0
    }
}
@media(max-width:640px){
    .site-shell #upload_user_picture_container,.site-shell #user_groups_container{
        width:100%;
        max-width:100%;
        margin:20px 0 0
    }
    .site-shell #upload_user_picture_form{
        width:100%;
        margin:0
    }
    .site-shell #user_current_picture{
        max-width:100%;
        margin-inline:0
    }
    .site-shell #user_groups_table{
        width:100%;
        margin:0
    }
    .site-shell.is-admin .content form{
        margin-left:0!important;
        float:none!important
    }
    .site-shell.is-admin .content form table,.site-shell.is-admin .content form th,.site-shell.is-admin .content form td{
        width:100%!important;
        min-width:0!important;
        max-width:100%!important
    }
    .site-shell input[type=file]{
        max-width:100%
    }
}
@media(max-width:1000px){
    .site-shell.is-admin #meeting_tools_container{
        width:100%;
        padding:0;
        display:grid;
        gap:18px
    }
    .site-shell.is-admin #create_meeting_container{
        float:none;
        width:100%;
        padding:18px;
        min-width:0
    }
    .site-shell.is-admin #meeting_forms_container{
        width:100%;
        margin:0;
        padding:0
    }
    .site-shell.is-admin #users_list_container,.site-shell.is-admin #menu_container{
        float:none;
        width:100%;
        margin-bottom:20px;
        min-height:0
    }
    .site-shell.is-admin #users_editor,.site-shell.is-admin #site_editor_container{
        margin-left:0;
        max-width:100%
    }
    .site-shell.is-admin #edit_user_form{
        float:none;
        width:100%
    }
    .site-shell.is-admin #upload_user_picture_container,.site-shell.is-admin #user_groups_container{
        width:100%;
        max-width:100%;
        margin:20px 0 0
    }
    .site-shell.is-admin #upload_user_picture_form{
        width:100%;
        margin:0
    }
    .site-shell.is-admin #user_current_picture{
        max-width:100%;
        margin-inline:0
    }
    .site-shell.is-admin #user_groups_table{
        width:100%;
        margin:0
    }
    .site-shell.is-admin #change_password_form{
        width:100%;
        margin:22px 0 0
    }
    .site-shell.is-admin #account_table{
        width:100%;
        float:none
    }
    .site-shell.is-admin #adminStaffSelect,.site-shell.is-admin #adminStaffEditor{
        width:100%;
        margin-inline:0
    }
    .site-shell.is-admin #create_controller,.site-shell.is-admin #edit_controller,.site-shell.is-admin #create_group,.site-shell.is-admin #edit_group,.site-shell.is-admin #create_nav,.site-shell.is-admin #edit_nav{
        width:100%;
        max-width:100%;
        margin-left:0
    }
    .site-shell.is-admin .content form{
        margin-left:0!important;
        float:none!important
    }
    .site-shell.is-admin .content form table,.site-shell.is-admin .content form th,.site-shell.is-admin .content form td{
        width:100%!important;
        min-width:0!important;
        max-width:100%!important
    }
    .site-shell.is-admin .content form table,.site-shell.is-admin .content form tbody,.site-shell.is-admin .content form tr,.site-shell.is-admin .content form th,.site-shell.is-admin .content form td{
        display:block
    }
    .site-shell.is-admin input[type=file]{
        max-width:100%
    }
    .site-shell.is-admin #news-editor-container,.site-shell.is-admin #news-editor-container-b,.site-shell.is-admin #news-editor,.site-shell.is-admin #editor-content{
        width:100%;
        max-width:100%;
        margin-inline:0
    }
}

/* Quarterly financial reports and their administration. */
.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; }
.financial-year { margin-top:38px; }
.financial-year > h2 { font-size:23px; margin-bottom:18px; }
.financial-report,.financial-admin-report { display:flex; align-items:center; justify-content:space-between; gap:24px; }
.financial-report h3,.financial-admin-report h3 { margin:6px 0 8px; font-size:22px; overflow-wrap:anywhere; }
.financial-report p,.financial-admin-report p { margin:0 0 8px; color:var(--muted); }
.financial-report .button { flex-shrink:0; }
.financials-admin > section { margin-top:32px; }
.financial-editor { max-width:900px; }
.financial-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.financial-full { grid-column:1 / -1; }
.financial-field { display:flex; flex-direction:column; gap:8px; min-width:0; }
.site-shell .financial-field label { font-weight:600; color:var(--navy); }
.site-shell .financial-field input,.site-shell .financial-field select { width:100%; max-width:100%; }
.financial-field small { color:var(--muted); font-size:14px; }
.financial-form-actions { display:flex; gap:20px; align-items:center; margin-top:24px; flex-wrap:wrap; }
.financial-notice { padding:18px 22px; border-radius:10px; background:#e5f3ec; color:#215a3d; margin:24px 0; }
.financial-notice.is-error { background:#fff0ea; color:#8c2809; }
.financial-report-actions { display:flex; gap:20px; align-items:start; flex-shrink:0; }
.site-shell .financials-admin a.button-light { color:var(--navy); }
.site-shell .financials-admin button.button { min-height:44px; font-size:12px; padding:12px 20px; }
.financial-delete { max-width:245px; }
.financial-delete summary { cursor:pointer; text-decoration:underline; color:var(--clay); padding:12px 0; }
.financial-delete > div { margin-top:10px; }
.financial-delete p { font-size:15px; }
.site-shell .financial-delete form { margin:12px 0 0; padding:0; }
@media(max-width:640px) {
    .utility-links a.financials-nav-link { display:inline; }
    .financial-report,.financial-admin-report { align-items:start; flex-direction:column; gap:16px; padding:22px; }
    .financial-form-grid { grid-template-columns:1fr; }
    .financial-report h3,.financial-admin-report h3 { font-size:20px; }
    .financial-report-actions { flex-wrap:wrap; width:100%; }
    .financial-editor { padding:22px; }
}

/* Single-line school wordmark. */
.brand-name { font-size:22px; white-space:nowrap; }
.brand-subtitle { font-size:11px; }
@media(min-width:1450px) { .brand-name { font-size:23px; } .brand-subtitle { font-size:12px; } }
@media(min-width:901px) and (max-width:1200px) { .brand-bar { flex-wrap:wrap; gap:12px; padding-block:18px 12px; } .primary-nav { width:100%; justify-content:flex-end; } }
@media(max-width:900px) { .brand-name { font-size:21px; } }
@media(max-width:640px) {
    .brand-bar { gap:10px; }
    .brand-mark { width:42px; height:42px; }
    .brand-mark img { width:155px; height:47px; left:-11px; top:-2px; }
    .menu-toggle { width:44px; height:44px; padding:12px; justify-content:center; flex-shrink:0; }
    .menu-toggle > span:last-child { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
    .brand-name { font-size:17px; }
    .brand-subtitle { font-size:10px; }
}
@media(max-width:380px) { .brand-name { font-size:14.5px; } .brand-subtitle { font-size:9px; } }
@media(max-width:350px) { .brand-mark { display:none; } }

/* The homepage displays one staff-published post. */
.site-shell .content.home-post { --width:1240px; padding-block:40px 56px; }
.home-post-flyer { display:block; width:fit-content; max-width:100%; margin:0 auto; }
.home-post-flyer img { display:block; width:auto; max-width:100%; height:auto; }
.home-post-html { max-width:1000px; margin-inline:auto; overflow-wrap:anywhere; font-size:18px; line-height:1.7; }
.home-post-flyer + .home-post-html { margin-top:36px; }
.home-post-html img { max-width:100%; height:auto; }
.home-post-html table { display:block; max-width:100%; overflow-x:auto; border-collapse:collapse; }
.home-post-html th,.home-post-html td { padding:12px; border:1px solid var(--line); }
.home-post-html h1 { font-size:clamp(30px,4vw,44px); }
.home-post-html h2 { font-size:clamp(25px,3vw,34px); }
.home-post-html blockquote { border-left:4px solid var(--clay); padding:12px 24px; margin-inline:0; background:#fff; }
.home-post-html pre { overflow:auto; padding:20px; background:#f2f3f5; border-radius:8px; }
.home-post-empty { padding:55px 20px; text-align:center; }
.home-preview-note { padding:15px 20px; border-radius:9px; background:#e9f0f7; color:var(--navy); margin:0 0 28px; font-size:14px; }
.home-admin-heading { display:flex; justify-content:space-between; align-items:center; gap:24px; margin-bottom:28px; }
.home-admin-heading h1.page-title { margin-bottom:12px; }
.home-admin-heading p { margin:0; max-width:700px; color:var(--muted); font-size:17px; }
.home-admin-heading > .button { flex-shrink:0; }
.home-live-notice { display:flex; gap:15px; align-items:center; background:#edf5f1; border:1px solid #c7dfd3; border-radius:12px; padding:20px 24px; margin-bottom:28px; color:#365d4a; font-size:13px; }
.home-live-dot { width:10px; height:10px; background:#23754a; border-radius:50%; flex-shrink:0; }
.home-live-notice strong { display:block; font:700 16px var(--heading); color:var(--navy); margin-top:6px; overflow-wrap:anywhere; }
.home-live-notice > a { margin-left:auto; white-space:nowrap; font-weight:600; }
.home-admin-columns { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); gap:28px; align-items:start; }
.home-editor { padding:26px; background:white; border:1px solid var(--line); border-radius:14px; min-width:0; }
.home-editor > header { display:flex; justify-content:space-between; gap:20px; align-items:center; }
.site-shell .home-editor h2 { margin:0; font-size:23px; }
.home-editor > header a { font-size:13px; font-weight:600; white-space:nowrap; }
.home-editor-help,.home-editor-live-note { color:var(--muted); line-height:1.6; font-size:14px; margin:18px 0 25px; }
.home-editor-live-note { padding:12px 15px; background:#fff0e8; color:#8a370f; border-radius:8px; }
.home-editor-grid { display:grid; gap:23px; }
.home-field { display:flex; flex-direction:column; gap:9px; min-width:0; }
.home-field label { color:var(--navy); font-size:14px; font-weight:600; }
.home-field label > span { color:var(--muted); font-weight:400; }
.site-shell .home-field input,.site-shell .home-field textarea { width:100%; max-width:100%; }
.home-field textarea { border:1px solid #d6d2d1; border-radius:8px; padding:14px; font:13px/1.7 Consolas,monospace; resize:vertical; }
.home-field small { color:var(--muted); line-height:1.6; font-size:13px; }
.home-current-image { display:flex; gap:16px; padding:14px; border:1px solid var(--line); border-radius:10px; background:#fffafa; align-items:center; }
.home-current-image > a { width:75px; flex-shrink:0; }
.home-current-image img { width:auto; height:auto; max-width:100%; max-height:130px; object-fit:contain; display:block; margin:auto; }
.home-current-image p { margin:0 0 12px; color:var(--muted); font-size:13px; }
.site-shell .home-current-image input[type=checkbox] { width:auto; margin:0 7px 0 0; }
.home-editor-actions { display:flex; gap:20px; align-items:center; flex-wrap:wrap; margin-top:26px; }
.site-shell .home-admin button.button-accent { color:white; background:var(--clay); border-color:var(--clay); min-height:44px; padding:12px 18px; font-size:12px; }
.home-history-heading { margin:0 0 20px; padding:5px 0; }
.site-shell .home-history-heading h2 { margin:0; font-size:24px; }
.home-history-heading .eyebrow { margin-bottom:7px; }
.home-history-heading p { color:var(--muted); margin:12px 0 0; font-size:13px; }
.home-history-list { display:grid; gap:18px; }
.home-history-post { display:flex; align-items:start; gap:20px; padding:22px; border:1px solid var(--line); border-radius:14px; background:white; }
.home-history-post.is-published { border-color:#9bc2ad; }
.home-history-media { width:95px; height:125px; display:grid; place-items:center; flex-shrink:0; background:#faf3ef; border:1px solid #f0e9e3; border-radius:8px; overflow:hidden; }
.home-history-media img { width:auto; height:auto; max-width:100%; max-height:100%; object-fit:contain; }
.home-post-text-icon { font:600 32px var(--heading); color:var(--clay); }
.home-history-details { flex:1; min-width:0; }
.home-history-title { display:flex; flex-direction:column; align-items:start; gap:10px; }
.site-shell .home-history-title h3 { margin:0; font-size:18px; line-height:1.4; overflow-wrap:anywhere; }
.home-post-badge { display:inline-block; padding:4px 9px; background:#f1f1f3; color:#57606b; font-size:11px; font-weight:600; border-radius:5px; }
.is-published .home-post-badge { color:#256641; background:#e9f5ed; }
.home-history-dates { color:var(--muted); font-size:12px; line-height:1.6; margin:13px 0 0; }
.home-history-excerpt { font-size:13px; color:#526071; line-height:1.6; margin:12px 0 16px; overflow-wrap:anywhere; }
.home-history-actions { display:flex; align-items:center; gap:18px; flex-wrap:wrap; }
.home-history-actions > a { font-size:13px; font-weight:600; }
.home-history-actions form { margin:0 0 0 auto; padding:0; }
.home-history-actions button:disabled { opacity:.45; cursor:default; }
.home-notice { padding:17px 22px; background:#e9f5ed; color:#256641; margin:24px 0; border-radius:10px; }
.home-notice.is-error { background:#fff0e8; color:#8a370f; }
@media(max-width:950px) { .home-admin-columns { grid-template-columns:1fr; } .home-admin-heading { align-items:start; flex-direction:column; gap:18px; } }
@media(max-width:640px) { .site-shell .content.home-post { padding-block:25px 35px; } .home-editor { padding:21px; } .home-live-notice { padding:18px; flex-wrap:wrap; } .home-live-notice > a { margin-left:25px; } .home-history-post { gap:15px; padding:18px; } .home-history-media { width:70px; height:95px; } .home-history-actions form { margin-left:0; } .home-post-html { font-size:17px; } }
