/* Shared layout rules: consistent page edges, navigation and touch controls. */
.events-heading>h1{max-width:none}
.page-heading>p{max-width:none}
.events-heading>.lead{text-wrap:wrap}
.text-link{display:inline-flex;align-items:center;gap:6px;max-width:100%}
.course-info h2>a,.event-feature h2>a{display:block}
.utility-bar nav{align-items:center;gap:24px}
.utility-bar nav>a{display:inline-flex;align-items:center;gap:4px;min-height:28px;padding:0;line-height:1.4}
.site-header .appearance-toggle{display:inline-flex;align-items:center;justify-content:center;width:32px;min-width:32px;min-height:32px;padding:6px;border:0;border-radius:50%;background:transparent;color:var(--ink);text-decoration:none;flex:none}
.site-header .appearance-toggle:hover{background:var(--pale)}
.appearance-toggle .theme-icon{display:block;flex:none;width:18px;height:18px}
.appearance-toggle .theme-icon-sun,.appearance-toggle[aria-pressed=true] .theme-icon-moon{display:none}
.appearance-toggle[aria-pressed=true] .theme-icon-sun{display:block}
.mobile-apply{display:none}
.utility-bar [data-saved-count]{align-items:center;min-width:20px;height:20px;line-height:1;margin-left:2px}
.nav-dropdown summary{display:flex;align-items:center;gap:9px;min-height:44px;line-height:1.4}
.nav-dropdown summary:after{content:'';width:6px;height:6px;flex:0 0 6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;margin:0 0 3px;transform:rotate(45deg);transition:transform .15s}
.nav-dropdown[open] summary:after{transform:rotate(225deg);margin-bottom:-3px}
.nav-dropdown summary[data-active=true],.primary-menu>a.button[aria-current]{text-decoration:none}
.nav-dropdown summary[data-active=true]>.nav-label{text-decoration:underline;text-underline-offset:7px;text-decoration-color:var(--green);text-decoration-thickness:2px}
.primary-menu>a:not(.button){display:inline-flex;align-items:center;min-height:44px;line-height:1.4}
.button>span[aria-hidden],.button-row .button>span[aria-hidden]{display:inline-flex;align-items:center;justify-content:center;line-height:1;flex-shrink:0;text-decoration:none}
.page-heading.container,.form-shell.container,.staff-signin.container{max-width:none}
.page-heading{padding-top:40px;padding-bottom:32px}
.content-hero{padding-top:24px;padding-bottom:16px;gap:48px}
.page-heading>.breadcrumbs{margin-bottom:24px}
.breadcrumbs{align-items:center;column-gap:10px;row-gap:6px;line-height:1.6}
.breadcrumbs>a{display:inline-flex;align-items:center;min-height:24px}
.breadcrumbs>a:after{margin-left:10px;text-decoration:none}
.detail-grid>.course-summary,.event-detail-grid>.summary-panel{grid-column:2;grid-row:1}
.detail-grid>.course-content,.event-detail-grid>.prose{grid-column:1;grid-row:1}
.course-summary dl{display:grid;grid-template-columns:1fr 1fr;gap:4px 20px}
.course-summary dl>div{min-width:0}
.course-summary dd{overflow-wrap:anywhere}
.section-nav a{display:inline-flex;align-items:center;min-height:36px}
.content-accordion summary{display:flex;align-items:center;justify-content:space-between;gap:20px;list-style:none;line-height:1.4}
.content-accordion summary::-webkit-details-marker{display:none}
.content-accordion summary:after{content:'+';font-size:25px;font-weight:400;flex:none;line-height:1}
.content-accordion[open] summary:after{content:'−'}
.summary-panel>.button+p{margin-top:18px}
.summary-panel p+.text-link{display:inline-block;margin-bottom:20px}
.summary-panel .text-link{line-height:1.6}
.form-card .field:has(.field-validation-valid){row-gap:7px}
.form-card .field-validation-valid:empty{display:none}
.notice:empty{display:none}
.notice-error .validation-summary-errors{border:0;background:none;padding:0;margin-bottom:0;color:inherit}
.document-filters{grid-template-columns:minmax(0,2fr) minmax(180px,1fr) auto}
.document-filters>.field:first-child{grid-column:auto}
.event-feature h2>a{text-decoration:none}
.event-feature h2>a:hover{text-decoration:underline}
.course-row small{display:block;margin-top:10px;line-height:1.65}
.course-facts>span+span:before{content:'·';margin-right:12px}
.source-note summary{padding-block:8px;line-height:1.6}
.rich-text table{display:block;max-width:100%;overflow-x:auto}
.editorial-body a,.summary-panel a{overflow-wrap:anywhere}
.menu-toggle [data-menu-icon]{width:16px;line-height:1;text-align:center}
.footer-group summary{list-style:none;font-size:15px;font-weight:500;line-height:1.5;margin-bottom:20px;cursor:pointer}
.footer-group summary::-webkit-details-marker{display:none}
.utility-intro{display:flex;align-items:center;gap:24px;min-width:0}
.social-menu{position:relative}
.social-menu>summary{min-height:32px;gap:7px;font-size:11px;padding:0;color:var(--ink)}
.social-menu>summary>svg{flex:none}
.social-panel{position:absolute;left:0;top:calc(100% + 8px);width:max-content;max-width:calc(100vw - 48px);padding:18px;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:0 12px 32px #102e4018}
.social-panel>p,.mobile-socials>p{margin:0 0 12px;font-size:12px;font-weight:500;color:var(--ink)}
.social-links{display:flex;align-items:center;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}
.social-links>li{display:block;margin:0;padding:0}
.social-links .social-link{display:inline-flex;align-items:center;justify-content:center;flex:none;width:40px;height:40px;min-height:40px;margin:0;padding:0;border:1px solid var(--line);border-radius:50%;color:var(--ink);background:var(--surface);text-decoration:none;transition:background-color .15s,border-color .15s}
.social-links .social-link:hover{background:var(--pale);border-color:var(--control-border)}
.social-link svg{display:block;width:18px;height:18px;flex:none}
.mobile-socials{display:none}
.footer-brand .footer-socials{margin-top:24px}
.footer-brand .footer-socials>p{font-size:11px;line-height:1.5;letter-spacing:0;color:var(--muted);margin:0 0 10px}
.footer-campuses{display:grid;gap:24px}
.footer-campus+ .footer-campus{border-top:1px solid var(--line);padding-top:20px}
.footer-campus h3{font-size:15px;letter-spacing:0;line-height:1.45;margin:0}
.footer-grid .footer-campus h3>a{display:inline-flex;align-items:center;gap:8px;font-size:15px;font-weight:500;line-height:1.45;margin:0;min-height:28px;padding:0}
.footer-campus address{font-style:normal;font-size:12px;line-height:1.65;color:var(--muted);margin:6px 0}
.footer-campus address span{letter-spacing:.03em;font-variant-numeric:tabular-nums}
.footer-grid .footer-campus .footer-directions{display:inline-flex;align-items:center;gap:4px;min-height:28px;font-size:11px;line-height:1.5;margin:0;padding:0;text-decoration:underline;text-underline-offset:4px}


@media(min-width:851px) and (max-width:1100px){
 .primary-menu{gap:19px;font-size:12px}
 .brand{width:220px}
 .main-nav{gap:20px}
}
@media(max-width:1000px){
 .utility-bar{display:none}
 .main-nav{display:grid;grid-template-columns:minmax(0,1fr) auto auto;min-height:76px;gap:12px}
 .main-nav .brand{max-width:238px;width:100%;min-width:0}
 .main-nav .mobile-apply{display:inline-flex;min-height:44px;padding:10px 16px;font-size:14px;line-height:1.4;white-space:nowrap}
 .main-nav .menu-toggle{display:inline-flex;gap:10px;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:40px;padding:10px 15px;background:var(--surface);color:var(--ink);min-height:44px;font-size:14px;flex:none}
 .primary-menu{display:none;position:absolute;top:100%;left:0;right:0;padding:12px 24px 24px;background:var(--surface);border-bottom:1px solid var(--line);max-height:calc(100dvh - 108px);overflow-y:auto;overscroll-behavior:contain;font-size:16px;box-shadow:0 16px 25px #102e4012}
 .primary-menu.is-open{display:flex;flex-direction:column;align-items:stretch;gap:0}
 .primary-menu>.nav-dropdown,.primary-menu>a:not(.button){border-bottom:1px solid var(--line)}
 .primary-menu>a:not(.button),.nav-dropdown summary{min-height:52px;padding-block:12px}
 .nav-dropdown summary{justify-content:space-between}
 .nav-panel,.nav-panel.small{position:static;padding:0 0 12px 12px;display:grid;grid-template-columns:1fr;gap:0;box-shadow:none;border:0;border-radius:0}
 .nav-panel a{font-size:14px;padding:12px;min-height:44px}
 .nav-panel a span{display:none}
 .primary-menu>.primary-apply{display:none}
 .mobile-utilities{display:grid;grid-template-columns:1fr 1fr;gap:0 18px;border-top:1px solid var(--line);margin-top:20px;padding-top:12px;font-size:13px;align-items:center}
 .mobile-utilities>a,.mobile-utilities>button{min-height:44px;display:flex;align-items:center;text-align:left;line-height:1.5}
 .site-header .mobile-utilities .appearance-toggle{width:44px;min-width:44px;min-height:44px;padding:13px}
 .mobile-socials{display:block;border-top:1px solid var(--line);margin-top:14px;padding-top:18px}
 .mobile-socials .social-link{width:44px;height:44px;min-height:44px}
 .mobile-utilities [data-saved-count]{margin-left:7px;background:var(--pale);border-radius:50%;width:22px;height:22px;display:inline-grid;place-items:center}
}
@media(max-width:850px){
 .detail-grid>.course-summary,.detail-grid>.course-content,.event-detail-grid>.summary-panel,.event-detail-grid>.prose{grid-column:1;grid-row:auto}
 .course-summary dl{grid-template-columns:repeat(3,minmax(0,1fr))}
 .content-hero{gap:30px}
 .form-shell:has(>aside){gap:24px}
 .document-filters{grid-template-columns:1fr 1fr}
 .document-filters>.field:first-child{grid-column:1/-1}
}
@media(max-width:600px){
 body{font-size:16px;line-height:1.65}
 .container{width:calc(100% - 32px)}
 .demo-ribbon{font-size:10px;line-height:1.4;padding-block:6px;flex-direction:column}
 .demo-ribbon a{min-height:28px;display:inline-flex;align-items:center}
 .main-nav{min-height:72px;gap:8px}
 .main-nav .brand{max-width:205px}
 .main-nav .mobile-apply{padding:10px 12px;min-height:44px;font-size:14px}
 .main-nav .menu-toggle{width:44px;min-width:44px;min-height:44px;padding:10px;gap:0}
 .menu-toggle [data-menu-label]{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
 .primary-menu{padding-inline:20px}
 .page-heading{padding-block:28px 24px}
 .page-heading h1,.content-hero h1,.detail-heading h1{font-size:clamp(30px,8.6vw,40px);line-height:1.12}
 .page-heading p,.content-hero p,.subject-hero p:not(.eyebrow),.detail-heading p,.signin-intro .lead{font-size:16px;line-height:1.7}
 .page-heading .eyebrow{font-size:11px}
 .breadcrumbs{font-size:12px;column-gap:8px;row-gap:4px}
 .breadcrumbs>a{min-height:28px}
 .breadcrumbs>a:after{margin-left:8px}
 .content-hero{padding-top:12px;padding-bottom:0;gap:24px}
 .content-hero img,.subject-hero img,.detail-heading>img{height:auto;aspect-ratio:3/2;max-height:280px}
 .section-space{margin-block:32px}
 .form-shell.section-space{margin-top:0;margin-bottom:40px}
 .form-shell .form-card{margin-bottom:0}
 .form-card,.summary-panel,.facts,.course-summary{padding:22px 20px;border-radius:18px}
 .form-card h2,.summary-panel h2,.feature-card h2,.content-card h2{font-size:26px;line-height:1.2}
 .form-grid{gap:20px}
 .field label,label{font-size:14px;line-height:1.5}
 input:not([type=checkbox]):not([type=radio]),select,textarea,.filters input,.filters select{font-size:16px;min-height:48px;line-height:1.5;padding:12px;max-width:100%}
 input[type=date]{min-width:0;width:100%}
 input[type=checkbox],input[type=radio]{width:22px;height:22px;flex-shrink:0}
 .button,.btn,button[type=submit],.button-small,.course-actions .button,.detail-heading .button,.form-actions .button{min-height:48px;font-size:14px;padding:13px 20px;line-height:1.5}
 .save-button,[data-save-course]{min-height:44px;font-size:13px}
 .text-link{font-size:14px;line-height:1.6;min-height:44px}
 .notice,.form-card .small,.summary-panel .small,.field small,.field .hint{font-size:13px;line-height:1.7}
 .notice{padding:16px;margin-block:20px}
 .lead,.prose,.rich-text,.editorial-body{font-size:16px;line-height:1.8}
 .prose h2,.rich-text h2{font-size:28px;line-height:1.2}
 .prose h3,.rich-text h3{font-size:23px}
 .content-outline{padding:14px 18px;margin-bottom:28px}
 .content-outline summary{min-height:28px;font-size:15px}
 .content-outline a{font-size:14px;min-height:36px;padding-block:6px}
 .content-outline li{margin-bottom:4px}
 .content-accordion{padding-block:20px}
 .content-accordion summary{font-size:20px;min-height:28px}
 .section-nav{gap:4px 16px;padding-bottom:14px;margin-bottom:24px;font-size:13px}
 .section-nav a{min-height:40px}
 .course-summary dl{grid-template-columns:1fr 1fr;gap:6px 16px}
 .course-summary dt,.summary-panel dt{font-size:12px}
 .course-summary dd,.summary-panel dd{font-size:15px}
 .course-summary .muted,.course-summary .rich-text{font-size:13px}
 .detail-heading .button-row{display:grid;grid-template-columns:1fr}
 .detail-heading .button-row>*{width:100%}
 .course-row{padding:20px;display:grid;grid-template-columns:minmax(0,1fr);gap:0}
 .course-row>.course-image{display:none}
 .course-info h2{font-size:22px;line-height:1.3;margin-block:14px}
 .course-facts{font-size:13px;gap:7px 12px}
 .course-facts>span+span:before{margin-right:12px}
 .course-row small{font-size:12px}
 .course-actions{flex-direction:row;justify-content:space-between;align-items:center;gap:10px;padding-top:16px;border-top:1px solid var(--line);margin-top:18px}
 .course-actions>a{min-height:44px;display:inline-flex;align-items:center;gap:8px}
 .tag,.badge{font-size:12px;line-height:1.5;padding:5px 10px}
 .event-filters.filter-grid{grid-template-columns:1fr}
 .event-filters .field:last-child .button,.document-filters .button{width:100%;font-size:14px}
 .document-filters{grid-template-columns:1fr}
 .event-feature h2{line-height:1.2}
 .event-detail-grid .summary-panel{margin-bottom:0}
 .hero-actions{align-items:stretch;gap:12px}
 .hero-actions>.button{width:100%}
 .hero-actions>.text-link{min-height:44px;display:inline-flex;align-items:center}
 .section-space>.event-feature{padding:20px;gap:24px}
 .section-space>.event-feature .event-date{font-size:14px}
 .choice-grid .form-card>.button,.choice-grid .form-card>form,.choice-grid .form-card>form>.button{width:100%}
 .choice-grid{gap:20px}
 .payment-price{font-size:36px}
 .reference{font-size:21px;letter-spacing:0}
 .staff-signin{padding-top:24px;gap:20px}
 .signin-intro>.text-link{margin-bottom:18px}
 .signin-intro h1{font-size:34px;margin-bottom:0}
 .signin-intro .lead{display:none}
 .help-strip{padding:26px 24px;gap:20px;margin-block:44px}
 .help-strip p{font-size:14px}
 .help-strip .button,.callout>.button{width:100%}
 .callout.container{padding:24px}
 .callout h2{font-size:28px}
 .footer-grid{grid-template-columns:1fr;gap:0;padding-bottom:30px}
 .footer-brand{margin-bottom:30px}
 .footer-group{border-top:1px solid var(--line)}
 .footer-group:last-child{border-bottom:1px solid var(--line)}
 .footer-group summary{display:flex;align-items:center;justify-content:space-between;font-size:16px;min-height:58px;margin:0;padding-block:16px}
 .footer-group summary:after{content:'+';font-size:23px;line-height:1}
 .footer-group[open] summary:after{content:'−'}
 .footer-group>div{padding-bottom:18px}
 .footer-grid h2{font-size:16px;margin-bottom:12px}
 .footer-grid a:not(.footer-brand a){font-size:13px;line-height:1.6;min-height:44px;display:flex;align-items:center;margin:0;padding-block:9px}
 .footer-grid p{font-size:13px;line-height:1.7}
 .footer-brand>p{font-size:28px;line-height:1.2}
 .footer-socials .social-link{width:44px;height:44px;min-height:44px}
 .footer-grid .footer-campus h3>a,.footer-grid .footer-campus .footer-directions{min-height:44px}
 .footer-campus address{font-size:14px;margin-block:0 6px}
 .footer-campuses{gap:16px}
 .footer-bottom{font-size:11px;gap:16px;padding-top:20px}
 .footer-bottom nav{gap:20px;flex-wrap:wrap}
 .footer-bottom a{min-height:36px;display:inline-flex;align-items:center}
 .campaign-bar{font-size:12px;line-height:1.6;padding:10px 16px}
 .campaign-bar strong{display:block;margin:2px 0 0}
 .home-hero{padding-top:28px}
 .hero-copy h1{font-size:clamp(37px,11.5vw,49px);line-height:1.08}
 .hero-intro{font-size:15px;line-height:1.7}
 .hero-copy .eyebrow{font-size:10px}
 .hero-quicklinks{font-size:12px;gap:16px;margin-block:10px 20px}
 .hero-quicklinks a{min-height:40px;display:inline-flex;align-items:center}
 .section-heading p,.audience-list p,.feature-course p,.campus-links p{font-size:14px;line-height:1.7}
 .audience-list h3{font-size:21px;line-height:1.25}
 .audience-number,.audience-symbol{min-width:58px;flex:0 0 58px;font-size:22px;white-space:nowrap}
 .audience-list>a>div{min-width:0;flex:1}
 .round-arrow{width:36px;height:36px}
 .subject-grid{grid-template-columns:1fr 1fr;grid-template-rows:210px 180px;gap:12px}
 .subject-card{padding:16px}
 .subject-card h3{font-size:clamp(17px,4.7vw,22px);letter-spacing:-.04em;overflow-wrap:normal}
 .subject-card span{font-size:12px;line-height:1.5;display:block}
 .subject-mark{display:none!important}
 .event-feature>p,.event-date span{font-size:15px;line-height:1.7}
 .event-feature{padding:26px}
 .video-frame>p{font-size:12px;text-align:center;padding-inline:16px}
 .staff-nav{gap:10px 18px}
 .staff-nav>a{min-height:44px;display:inline-flex;align-items:center;font-size:14px}
 .staff-nav form{margin-left:0}
 .staff-nav button{min-height:44px}
 .table-scroll-hint{font-size:12px;line-height:1.6}
 .data-table{font-size:13px}
 .data-table td,.data-table th{padding:14px 12px}
 .saved-feedback{bottom:max(16px,env(safe-area-inset-bottom));padding:18px 20px}
 .saved-feedback p,.saved-feedback a,.saved-feedback button{font-size:14px}
 .saved-feedback button{min-height:44px}
}
@media(max-width:360px){
 .subject-grid{grid-template-columns:1fr;grid-template-rows:repeat(4,190px)}
 .subject-card:first-child,.subject-card:nth-child(2),.subject-card:nth-child(3){grid-column:auto;grid-row:auto}
 .subject-card h3{font-size:25px}
 .subject-card span{font-size:14px}
 .footer-grid{grid-template-columns:1fr}
 .hero-quicklinks{gap:14px;font-size:11px}
}
@media print{
 html,html[data-theme=dark]{--ink:#102e40;--muted:#526873;--surface:#fff;--paper:#fff;--pale:#f0f4f6;--line:#c5d0d5;color-scheme:light}
 .content-outline{display:none!important}
 .detail-grid{display:block}
 .course-summary{position:static;margin-bottom:24px;break-inside:avoid}
 .course-content,.course-summary{grid-column:auto!important;grid-row:auto!important}
 .receipt,.receipt .facts{color:#102e40!important;background:white!important}
}

/* Decorative arrows are vector shapes, never platform-dependent emoji glyphs. */
.icon-arrow{display:inline-block;width:1em;height:1em;flex:0 0 1em;vertical-align:-.125em;background-color:currentColor;-webkit-mask:url('/images/arrow-right.svg') no-repeat center / contain;mask:url('/images/arrow-right.svg') no-repeat center / contain;forced-color-adjust:none}
.icon-arrow-ne{transform:rotate(-45deg)}
.icon-arrow-w{transform:rotate(180deg)}
.hero-quicklinks .icon-arrow,.campaign-bar .icon-arrow,.subject-card .icon-arrow{display:inline-block;font-size:inherit}
.hero-quicklinks>a{gap:6px;align-items:center}
.round-arrow>.icon-arrow{width:15px;height:15px}
.footer-grid a>.icon-arrow{margin-left:5px}

/* A quiet credit beneath the college ownership line. */
.footer-attribution{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:0}.footer-attribution>a{gap:8px;font-size:12px;font-weight:500;color:var(--ink)}
