@font-face {
    font-family: "Cinzel";
    font-style: normal;
    font-weight: 400 900;
    font-display: swap;
    src: url("/assets/cinzel-latin.woff2") format("woff2");
}
@font-face {
    font-family: "Open Sans";
    font-style: normal;
    font-weight: 300 800;
    font-display: swap;
    src: url("/assets/open-sans-latin.woff2") format("woff2");
}
:root {
    --navy: #041e42;
    --red: #da291c;
    --paper: #f8f9fa;
    --ink: #26364c;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 24px; }
body { margin: 0; color: var(--ink); background: var(--navy); font: 400 16px/1.7 "Open Sans", Arial, sans-serif; }
a { color: inherit; text-decoration: none; }
a:focus-visible { outline: 3px solid var(--red); outline-offset: 7px; }
img { display: block; max-width: 100%; }
.skip-link { position: fixed; top: 12px; left: 12px; z-index: 10; padding: 10px 20px; color: var(--navy); background: white; transform: translateY(-160%); }
.skip-link:focus { transform: translateY(0); }
.site-header { position: absolute; z-index: 2; top: 0; left: 0; display: flex; align-items: center; justify-content: space-between; gap: 24px; width: 100%; padding: 26px 5%; color: white; animation: fade-in .7s both; }
.college-logo { display: block; width: 230px; flex-shrink: 0; }
.college-logo img { width: 100%; height: auto; }
.site-header nav { display: flex; gap: 34px; align-items: center; font-size: 14px; }
.site-header nav a { padding-block: 12px; }
.nav-contact { position: relative; }
.nav-contact::after { position: absolute; content: ""; bottom: 8px; left: 0; height: 1px; width: 100%; background: white; transform: scaleX(0); transform-origin: left; transition: transform .2s; }
.nav-contact:hover::after { transform: scaleX(1); }
.nav-visit { display: inline-flex; align-items: center; gap: 15px; }
.nav-visit span, .button span, .detail-link span, .site-footer a span { display: inline-block; transition: transform .2s; }
.nav-visit:hover span, .button:hover span, .detail-link:hover span, .site-footer a:hover span { transform: translate(3px, -3px); }
.hero { position: relative; display: grid; place-items: center; isolation: isolate; min-height: 760px; min-height: max(760px, 92svh); padding: 140px 24px 100px; overflow: hidden; color: white; text-align: center; }
.hero-photo, .hero-shade { position: absolute; z-index: -1; inset: 0; width: 100%; height: 100%; }
.hero-photo { object-fit: cover; object-position: center 48%; }
.hero-shade { background: linear-gradient(180deg, rgba(4, 30, 66, .68), rgba(4, 30, 66, .57) 35%, rgba(4, 30, 66, .83)); }
.hero-content { max-width: 1000px; }
.hero-crest { width: 96px; height: auto; margin: 0 auto 26px; animation: rise-in .8s .1s both; }
.eyebrow { margin: 0; font-size: 11px; font-weight: 600; letter-spacing: .18em; line-height: 1.7; text-transform: uppercase; }
.hero-location { margin-bottom: 20px; animation: rise-in .8s .15s both; }
h1 { margin: 0; font-family: "Cinzel", Georgia, serif; font-size: clamp(38px, 4.8vw, 68px); font-weight: 400; letter-spacing: -.025em; line-height: 1.18; animation: rise-in .8s .2s both; }
h1 span { font-size: .85em; }
.hero-rule { width: 48px; height: 3px; margin: 26px auto 22px; background: var(--red); animation: fade-in .8s .3s both; }
.trading-name { margin: 0; font-size: 18px; line-height: 1.6; animation: rise-in .8s .3s both; }
.trading-name strong { font-weight: 600; }
.hero-description { margin: 16px 0 28px; font-size: 14px; line-height: 1.8; color: #e3e8ef; animation: rise-in .8s .35s both; }
.button { display: inline-flex; justify-content: center; align-items: center; gap: 22px; min-height: 52px; padding: 14px 24px; border: 1px solid rgba(255, 255, 255, .8); border-radius: 4px; font-size: 12px; font-weight: 600; letter-spacing: .07em; text-transform: uppercase; transition: background .2s, border-color .2s; animation: rise-in .8s .4s both; }
.button:hover { background: var(--red); border-color: var(--red); }
.button span { font-size: 19px; line-height: 1; }
.hero-scroll { position: absolute; bottom: 27px; display: flex; align-items: center; gap: 14px; min-height: 44px; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; animation: fade-in .8s .55s both; }
.hero-scroll span { font-size: 22px; transition: transform .2s; }
.hero-scroll:hover span { transform: translateY(4px); }
.contact-section { background: var(--paper); padding: 84px 5% 90px; }
.contact-inner { max-width: 1296px; margin: 0 auto; }
.contact-intro .eyebrow { color: #6b7787; }
h2 { margin: 10px 0 10px; color: var(--navy); font-family: "Cinzel", Georgia, serif; font-size: clamp(30px, 3vw, 40px); font-weight: 400; letter-spacing: -.025em; line-height: 1.3; }
.contact-intro > p:last-child { margin: 0; color: #5b6676; font-size: 15px; }
.contact-details { display: grid; grid-template-columns: 1fr 1.1fr 1fr; margin: 38px 0 0; padding-top: 28px; border-top: 1px solid #d9dfe6; }
.contact-item { padding: 0 28px; border-left: 1px solid #d9dfe6; }
.contact-item:first-child { padding-left: 0; border-left: 0; }
.contact-item:last-child { padding-right: 0; }
dt { margin-bottom: 12px; color: #657182; font-size: 10px; font-weight: 600; line-height: 1.5; letter-spacing: .13em; text-transform: uppercase; }
dd { margin: 0; }
.detail-link { font-size: 17px; line-height: 1.8; color: var(--navy); text-decoration-thickness: 1px; text-underline-offset: 5px; }
.detail-link:hover { text-decoration: underline; }
.detail-link span { margin-left: 9px; color: var(--red); font-size: 17px; }
.site-footer { display: flex; justify-content: space-between; align-items: center; gap: 30px; padding: 34px 5%; color: #c4cedb; font-size: 11px; }
.site-footer p { margin: 0; }
.site-footer .footer-name { margin-bottom: 6px; color: white; font-size: 13px; }
.footer-divider { margin: 0 8px; }
.site-footer > a { padding: 10px 0; color: white; }
.site-footer a span { margin-left: 8px; }
.reveal { transition: opacity .7s, transform .7s; }
.reveal.pending { opacity: 0; transform: translateY(18px); }
@keyframes rise-in { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: translateY(0); } }
@keyframes fade-in { from { opacity: 0; } to { opacity: 1; } }
@media (min-width: 1800px) { .hero { min-height: 880px; } }
@media (max-width: 900px) {
    .contact-item { padding-inline: 20px; }
    .detail-link { font-size: 15px; }
    .site-footer { gap: 24px; }
}
@media (max-width: 640px) {
    .site-header { padding: 20px 22px; gap: 20px; }
    .college-logo { width: 168px; }
    .site-header nav { gap: 0; font-size: 12px; }
    .nav-contact { display: none; }
    .nav-visit { gap: 8px; }
    .hero { min-height: max(740px, 100svh); padding: 116px 22px 92px; }
    .hero-photo { object-position: 42% center; }
    .hero-shade { background: linear-gradient(180deg, rgba(4, 30, 66, .7), rgba(4, 30, 66, .64) 35%, rgba(4, 30, 66, .86)); }
    .hero-crest { width: 76px; margin-bottom: 24px; }
    .hero-location { max-width: 260px; margin: 0 auto 18px; font-size: 10px; }
    h1 { font-size: clamp(32px, 8.4vw, 49px); line-height: 1.25; }
    .hero-rule { margin: 24px auto 20px; }
    .trading-name { max-width: 360px; margin-inline: auto; font-size: 16px; }
    .hero-description { max-width: 330px; margin: 17px auto 24px; font-size: 13px; }
    .desktop-break { display: none; }
    .button { gap: 14px; width: 100%; max-width: 350px; padding: 14px 17px; font-size: 10px; letter-spacing: .045em; }
    .hero-scroll { bottom: 22px; font-size: 10px; }
    .contact-section { padding: 56px 26px 58px; }
    .contact-intro .eyebrow { font-size: 9px; letter-spacing: .14em; }
    h2 { margin-top: 14px; font-size: 30px; }
    .contact-intro > p:last-child { font-size: 14px; }
    .contact-details { grid-template-columns: 1fr; margin-top: 30px; padding-top: 0; }
    .contact-item, .contact-item:first-child, .contact-item:last-child { padding: 23px 0; border-left: 0; border-bottom: 1px solid #d9dfe6; }
    .contact-item:last-child { border-bottom: 0; padding-bottom: 0; }
    dt { margin-bottom: 8px; }
    .detail-link { font-size: 16px; }
    .site-footer { display: block; padding: 28px 26px; font-size: 10px; }
    .site-footer > a { display: inline-block; margin-top: 14px; }
    .footer-divider { display: block; visibility: hidden; height: 2px; }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { animation: none !important; transition: none !important; }
    .reveal.pending { opacity: 1; transform: none; }
}
