/* FERA interface system: shared across institutional pages and admissions. */
:root {
  --surface: #f6f4ee;
  --surface-raised: #fffefa;
  --text-primary: #10273e;
  --text-secondary: #526371;
  --border-subtle: #d4dad9;
  --radius-control: 8px;
  --radius-surface: 12px;
  --space-1: 8px;
  --space-2: 16px;
  --space-3: 24px;
  --space-4: 32px;
  --space-5: 48px;
  --space-6: 72px;
  --motion-fast: 160ms;
  --motion-standard: 240ms;
  --ease-ui: cubic-bezier(.2,.7,.2,1);
}
html { scroll-padding-top: 116px; }
body { text-rendering: optimizeLegibility; }
h1,h2,h3 { text-wrap: balance; }
p { text-wrap: pretty; }
button,input,select,textarea { font: inherit; }
button,a,input,select,summary { touch-action: manipulation; }
a,button,input,select,summary,[tabindex] { scroll-margin-block: 120px 32px; }
:focus-visible { outline: 3px solid #9b6400; outline-offset: 4px; }
.header :focus-visible,.hero :focus-visible,.method :focus-visible,.digital-section :focus-visible,footer :focus-visible { outline-color: #ffd05a; }
.skip:focus { z-index: 1000; border-radius: 6px; color: #081d36; }
.button { min-height: 48px; gap: 16px; border-radius: var(--radius-control); font-size: 15px; line-height: 1.4; padding: 15px 22px; transition: background var(--motion-fast),transform var(--motion-standard) var(--ease-ui); }
.button:active:not(:disabled) { transform: translateY(0); }
.button:disabled { cursor: not-allowed; }
.text-link { min-height: 44px; font-size: 14px; align-items: center; }
.section { padding-block: clamp(64px,7vw,96px); }
.section-heading,.results-heading { gap: 32px; }
.section-note,.data-note,.hero-location,.pillar-tag { font-size: 12px; line-height: 1.6; }
.eyebrow { line-height: 1.6; }
.header { background: rgba(7,27,47,.91)!important; box-shadow: none; }
.header .nav-row { height: 84px; }
.header .nav-dropdown { background: rgba(8,29,50,.88)!important; }
/* Visibility changes immediately so ArrowDown can focus the first link on opening. */
.header #navigation .nav-dropdown { transition-property: opacity,transform; }
.header #navigation .nav-dropdown a { min-height: 46px; }
.header #navigation .nav-cta,.header #navigation .nav-cta.is-current { background: var(--yellow); color: var(--navy); }
.hero-editorial .hero-grid { min-height: 590px; padding-block: 52px 40px; }
.hero-editorial .hero-copy h1 { font-size: clamp(48px,5.9vw,80px); }
.hero-editorial .hero-description { max-width: 570px; }
.hero-photo-dots button,.hero-photo-arrows button,#hero-rotation-toggle { min-height: 44px; }
.hero-photo-arrows button { min-width: 44px; }
.hero-editorial .hero-foot .wrap { min-height: 62px; }
.explore-strip { background: var(--surface-raised); border-bottom: 1px solid var(--border-subtle); }
.explore-strip .wrap { display: grid; grid-template-columns: 1fr repeat(3,1.05fr); gap: 0; padding-block: 30px; }
.explore-intro { display: flex; flex-direction: column; justify-content: center; gap: 5px; padding-right: 24px; }
.explore-intro span { font-size: 11px; letter-spacing: 1.7px; color: var(--text-secondary); }
.explore-intro strong { font: italic 24px/1.25 Georgia,serif; font-weight: 400; }
.explore-strip a { display: flex; flex-direction: column; justify-content: center; gap: 5px; border-left: 1px solid var(--border-subtle); padding: 12px 24px; position: relative; }
.explore-strip a:after { content: '↗'; position: absolute; right: 18px; top: 14px; font-size: 18px; color: #8b6208; transition: transform var(--motion-standard); }
.explore-strip a:hover:after { transform: translate(2px,-2px); }
.explore-strip a strong { font-size: 17px; padding-right: 15px; }
.explore-strip a span { font-size: 13px; color: var(--text-secondary); }
.gallery-more-row { display: flex; justify-content: space-between; align-items: center; gap: 24px; margin-top: 32px; padding-top: 24px; border-top: 1px solid var(--border-subtle); }
.gallery-more-row p { font-size: 14px; color: var(--text-secondary); }
.gallery-more-row button { background: transparent; border-color: #8a9ba3; flex-shrink: 0; }
.gallery-more-row button:hover { background: #e8ece8; }
.community-gallery .photo-button { border-radius: var(--radius-surface); }
.community-gallery figcaption { padding-top: 14px; }
.approval-card a,.approval-feed-bottom a { min-height: 44px; display: inline-flex; align-items: center; font-size: 13px; }
.approval-controls .approval-motion { font-size: 13px; }
.approval-feed-bottom { padding-top: 10px; align-items: center; }
.page-hero-copy h1 { font-size: clamp(40px,4.6vw,64px); }
.page-hero-photo { border-radius: var(--radius-surface); height: 470px; }
.page-articles p,.page-articles li { max-width: 68ch; }
.page-aside { background: #eeefe9; border-radius: var(--radius-surface); }
.page-articles h2 { line-height: 1.25; }
.admission-wayfinding { display: flex; flex-wrap: wrap; gap: 12px 24px; margin-top: 30px; }
.admission-wayfinding a { min-height: 44px; display: inline-flex; align-items: center; gap: 9px; color: #e2ebf2; font-size: 14px; border-bottom: 1px solid #ffffff38; }
.admission-wayfinding span { font: 12px monospace; color: #ffd15a; }
.form-card { border-radius: var(--radius-surface); border-color: var(--border-subtle); box-shadow: 0 12px 40px #081d3606; }
.form-card fieldset { border-top: 1px solid var(--border-subtle); padding-top: 8px; }
.form-card legend { padding: 0 12px 0 0; font-size: 16px; color: var(--text-primary); }
.form-card input:not([type=checkbox]),.form-card select { min-height: 54px; border-radius: var(--radius-control); border-color: #7b8a94; }
.form-card input:focus-visible,.form-card select:focus-visible,.admin-filters input:focus-visible,.admin-filters select:focus-visible { outline: 3px solid #9b6400; outline-offset: 3px; }
.form-card input[aria-invalid=true],.form-card select[aria-invalid=true] { border-color: #a33c25; }
.form-card .check { padding: 16px; background: #f6f7f3; border-radius: 8px; }
.field-error { color: #8b301d; font-size: 14px; margin-top: 8px; }
.field-error:empty { display: none; }
.form-card [aria-busy=true] { cursor: progress; }
.form-message { border-left: 3px solid #497356; }
.form-message.error { border-left-color: #b84b2a; }
.form-context { font-size: 14px!important; line-height: 1.7; padding: 14px 0; border-block: 1px solid var(--border-subtle); margin: 22px 0; }
.form-context a { text-decoration: underline; text-underline-offset: 3px; }
.admissions-admin .admin-tools { gap: 12px; padding-block: 18px; border-block: 1px solid var(--border-subtle); }
.admissions-admin .entry { border-radius: var(--radius-surface); border-left: 3px solid #e8ba45; }
.admissions-admin .entry h2 { font-size: 25px; line-height: 1.25; }
.admissions-admin .admin-filters { background: #e9ece6; padding: 24px; border-radius: var(--radius-surface); }
.admissions-admin .admin-header { min-height: 84px; }
.admissions-admin .form-card { margin-block: 30px; }
.admissions-admin .button:disabled { cursor: wait; }
.admissions-admin .entry details { border-top: 1px solid var(--border-subtle); }
@media(max-width:900px) {
  .explore-strip .wrap { grid-template-columns: repeat(3,1fr); }
  .explore-intro { grid-column: 1/-1; padding: 0 0 18px; flex-direction: row; justify-content: space-between; align-items: center; }
  .explore-strip a { padding: 12px 20px; }
  .explore-strip a:nth-child(2) { border-left: 0; padding-left: 0; }
  .header #navigation.open { background: rgba(7,28,49,.94)!important; }
  .page-hero-photo { height: 420px; }
}
@media(max-width:600px) {
  .header .nav-row { height: 76px; }
  .hero-editorial .hero-grid { min-height: 560px; padding-block: 44px 30px; }
  .hero-editorial .hero-copy h1 { font-size: clamp(42px,11.6vw,62px); }
  .hero-editorial .hero-actions { align-items: stretch; flex-direction: column; gap: 10px; max-width: 310px; }
  .hero-actions .text-link { align-self: flex-start; }
  .hero-photo-controls { flex-wrap: wrap; gap: 10px 14px; }
  #hero-photo-status { max-width: none; flex: 1; font-size: 11px; }
  #hero-rotation-toggle { margin-left: 0; }
  .hero-photo-arrows { margin-left: auto!important; }
  .explore-strip .wrap { grid-template-columns: 1fr; padding-block: 24px; }
  .explore-intro { align-items: start; gap: 8px; flex-direction: column; }
  .explore-strip a,.explore-strip a:nth-child(2) { border-left: 0; border-top: 1px solid var(--border-subtle); padding: 18px 34px 18px 0; }
  .explore-strip a:after { top: 20px; right: 2px; }
  .gallery-more-row { flex-direction: column; align-items: stretch; gap: 16px; }
  .gallery-more-row button { justify-content: center; }
  .fera-stories-grid article { display: grid; grid-template-columns: 112px minmax(0,1fr); border: 0; border-radius: 0; background: transparent; padding-bottom: 26px; border-bottom: 1px solid var(--border-subtle); gap: 20px; }
  .fera-stories-grid .photo-button { height: 150px; aspect-ratio: auto; border-radius: 8px; }
  .fera-story-copy { padding: 0; }
  .fera-story-copy h3 { font-size: 23px; margin: 12px 0; }
  .fera-story-copy>p:not(.eyebrow) { font-size: 14px; line-height: 1.7; }
  .fera-story-copy>a { font-size: 13px; margin-top: 12px; }
  .community-gallery { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 28px 16px; }
  .community-gallery figure { grid-column: auto!important; }
  .community-gallery .photo-button { aspect-ratio: 3/4!important; }
  .community-gallery figcaption strong { font-size: 15px; line-height: 1.4; }
  .community-gallery figcaption span { font-size: 10px; letter-spacing: .7px; }
  .page-hero-photo { height: auto; }
  .page-hero-copy h1 { font-size: clamp(36px,9.7vw,50px); }
  .page-breadcrumb { flex-wrap: wrap; gap: 8px; }
  .numbers { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .numbers article,.page-metrics .numbers article { min-width: 0; padding-inline: 8px; }
  .numbers p { font-size: 13px; }
  .page-aside { padding: 22px; }
  .admission-intro h1 { font-size: clamp(36px,10vw,44px); }
  .admission-wayfinding { gap: 8px 20px; }
  .form-card .check { padding: 14px 12px; }
  .admissions-admin .admin-filters { padding: 18px; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior: auto; }
  *,*::before,*::after { scroll-behavior: auto!important; animation-duration: .01ms!important; animation-iteration-count: 1!important; transition-duration: .01ms!important; }
  .explore-strip a:hover:after { transform: none; }
}
