/* Shared accessibility repairs. Keep the established page design and content. */
/* Each news card has one native link with a full-card pointer target. */
.news-card{position:relative}
.news-card h3 a::after{content:"";position:absolute;inset:0}
.news-card:focus-within{outline:3px solid #1a5fd1;outline-offset:4px}
.news-card:first-child:focus-within{outline-color:#b18c32}
.video-dialog__bar{flex-wrap:wrap}
.video-dialog__bar>span{min-width:0;max-width:100%;overflow-wrap:anywhere}
.video-dialog__bar>span:last-child{display:flex;align-items:center;flex-wrap:wrap;gap:.75rem}
.video-dialog__bar a{display:inline-flex;align-items:center;min-height:32px;min-width:24px;padding:.25rem 0}
/* Expanded sources flow within their card on narrow screens so they do not
   cover nearby campus choices or require a precise touch to dismiss. */
@media(max-width:1023px){.source:has(.source-chip[aria-expanded="true"]){display:block;min-width:0;width:100%;max-width:100%;flex-basis:100%}.source-pop{position:static;width:auto;max-width:100%;margin-top:.65rem;overflow-wrap:anywhere}}
html{scroll-padding-top:calc(var(--sticky-offset,var(--header-h,76px)) + 32px)}
[hidden]{display:none!important}
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid #1a5fd1;outline-offset:4px;box-shadow:0 0 0 2px #fff}
:where(a,button,input,select,textarea,summary,[tabindex]){scroll-margin-block:calc(var(--sticky-offset,var(--header-h,76px)) + 32px) 100px}
.skip-link:focus{z-index:10000}
input:not([type=checkbox]):not([type=radio]),select,textarea{border-color:#738097}
input::placeholder,textarea::placeholder{color:#626d80;opacity:1}
input[type=checkbox],input[type=radio]{accent-color:var(--brand-navy);min-width:20px;min-height:20px}
.chip:focus-within,.choice:focus-within,.check:focus-within{outline:3px solid #1a5fd1;outline-offset:3px}
.chip,.choice,.check{min-height:32px}
.oe-bar__close,.modal__close,.video-dialog__close,.source-chip,.ics-btn,.strip-nav button{min-width:28px;min-height:28px}
.field legend,.field label{line-height:1.5}
.field .req{white-space:normal}
.error-summary{overflow-wrap:anywhere}
.error-summary a,.error-text{color:#9e2019}
.table-wrap{max-width:100%;overflow:auto}
.table-wrap:focus-visible{outline-offset:-3px}
.admin-main .table-wrap{position:relative}
th[scope=row]{text-align:left}
.portal-extra,.portal-grid>*{min-width:0}
.panel .btn-row,.form-nav,.staff-actions{flex-wrap:wrap}
.panel .btn,.portal-extra .btn,.staff-console .btn{white-space:normal;overflow-wrap:anywhere}
.panel .row-2>*,.panel .row-3>*,.staff-role-row>*{min-width:0}
.panel input,.panel select,.panel textarea{max-width:100%;font-size:max(1rem,1em)}
.a11y-status{margin-block:1rem;color:var(--ink)}
.document-content{overflow-wrap:anywhere}
.document-content table{font-size:1rem}
.document-content td,.document-content th{vertical-align:top}
.document-content pre{font:inherit;white-space:pre-wrap}
.joy-note{margin-block:1rem;max-width:70ch}
.campus-hero__leader b{color:#fff}
.law h2.law__name{font-family:var(--font-ui);font-size:inherit;line-height:inherit;letter-spacing:inherit;font-weight:700;margin:0 0 1rem}
@media(max-width:639px){.panel .row-2,.panel .row-3{grid-template-columns:minmax(0,1fr)}.panel .dob{grid-template-columns:repeat(3,minmax(0,1fr))}.portal-layout,.portal-grid{grid-template-columns:minmax(0,1fr)}.staff-role-row{grid-template-columns:minmax(0,1fr)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.reveal{opacity:1!important;transform:none!important}.mf-cursor{display:none!important}.honor-roll__list{transform:none!important}}
@media(forced-colors:active){:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid Highlight;box-shadow:none}.btn,input,select,textarea,.chip,.choice{border:1px solid ButtonText}.bar,.bar-row__fill,.score-bar__fill{background:Highlight!important}.mf-cursor{display:none!important}}
@media print{.site-header,.sticky-cta,.preview-tools,.oe-bar,.mf-cursor,.skip-link,.form-nav,.portal-extra form,.site-footer{display:none!important}.panel,.portal-extra{break-inside:avoid;box-shadow:none}.panel h1{color:#112c56}.status-chip{border:1px solid #112c56}}

@media(max-width:639px){.contact-grid,.contact-cards{grid-template-columns:minmax(0,1fr)}.contact-card{min-width:0;overflow-wrap:anywhere}}

.toast .link-quiet{color:#fff;border:1px solid currentColor;background:transparent;padding:.3rem .6rem;margin-left:.7rem;min-height:32px}.toast{bottom:max(1.25rem,env(safe-area-inset-bottom));overflow-wrap:anywhere}

.admin-side .hint{color:#d1dceb}

@media(max-width:639px){.section-index__inner{flex-wrap:wrap;overflow:visible;white-space:normal;justify-content:flex-start;gap:.3rem}.section-index__inner a{white-space:normal;min-height:28px}.transcript__credit{white-space:normal;max-width:100%;overflow-wrap:anywhere}}

@media(max-width:639px){.switcher{flex-wrap:wrap;overflow:visible;white-space:normal}.switcher button{flex:0 1 auto;white-space:normal}}

.modal__form .form-status.is-err,.site-footer .form-status.is-err{color:#ffe2de}
.file-list li{display:flex;flex-wrap:wrap;gap:.4rem;min-width:0}.file-list a{overflow-wrap:anywhere;min-width:0;max-width:100%}.portal-extra input[type=file]{width:100%;min-width:0;max-width:100%}.portal-extra form{min-width:0}

.site-footer .error-text{color:#ffe2de}.site-footer .form-status.is-ok,.modal__form .form-status.is-ok{color:#ddfce8}

/* Keep chart values readable before scroll animations initialize. */
.js .reveal:not(.is-seen) .bar-row__value{opacity:1}.bar-row__value{transition:none}
/* Allow enlarged text and campus actions to wrap instead of leaving the viewport. */
.campus-card__links{flex-wrap:wrap;min-width:0}
.podium{flex-wrap:wrap;max-width:100%}.podium>li{max-width:100%}
@media(max-width:1023px){.header-main{flex-wrap:wrap}.brand{flex:1 1 15rem;min-width:0;max-width:100%}.brand__name{min-width:0;overflow-wrap:anywhere}.brand img{flex-shrink:0}.header-ctas{margin-left:auto;max-width:100%}.header-ctas .btn{white-space:normal}.hero-editorial h1{overflow-wrap:anywhere}}

.switcher{flex-wrap:wrap;overflow:visible;white-space:normal}.switcher button{flex:0 1 auto;white-space:normal}
.section-index__inner{flex-wrap:wrap;white-space:normal}.section-index__inner a{white-space:normal}
.transcript__credit{white-space:normal;max-width:100%;overflow-wrap:anywhere}

.contact-card{min-width:0;overflow-wrap:anywhere}.contact-grid,.contact-cards{grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr))}

@media(max-width:1023px){
  .hero-editorial{grid-template-columns:repeat(auto-fit,minmax(min(100%,20rem),1fr))}
  .hero-editorial h1>span,.nobr{white-space:normal!important}
  .ccs-home .mini-timeline{grid-template-columns:repeat(auto-fit,minmax(min(100%,12rem),1fr))}
  .method-section .trio{grid-template-columns:repeat(auto-fit,minmax(min(100%,20rem),1fr))}
  .facts-section .glance dl{grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr))}
  .credit-panel .transcript li{grid-template-columns:30px minmax(0,1fr)}
  .credit-panel .transcript__n{grid-row:1/3}
  .credit-panel .transcript__credit{grid-column:2;justify-self:start}
  .admissions-banner{grid-template-columns:minmax(0,1fr)}
  .admissions-banner__actions{padding-left:0;border-left:0}
  .podium>li:nth-child(2)::before{max-width:140%}
  .method-section::after,.voices-section::after,.admissions-banner::after{right:0}
  .type-tile,.fact-card,.voice__body{overflow-wrap:anywhere;min-width:0}
}

:where(p,li,dt,dd,h1,h2,h3,h4,label,legend,.btn){overflow-wrap:anywhere}
@media(max-width:1023px){.schools-section .campus-cards,.schools-section .event-list,.voices-section .voices,.news-section .news{grid-template-columns:repeat(auto-fit,minmax(min(100%,20rem),1fr))}.news-section .news-card:first-child{display:flex;grid-template-columns:minmax(0,1fr)}.method-section .trio__item{display:flex}}

/* Document reading editions and external video help. */
.video-dialog [data-video-accessibility]{margin:0;padding:.8rem .9rem;background:#0b1422;color:#fff;font-size:.9rem;line-height:1.5}
.video-dialog [data-video-accessibility] a{color:#fff}
.video-dialog__bar{flex-wrap:wrap;min-width:0}
.document-content{overflow-wrap:anywhere;min-width:0}
.document-content table{width:100%;border-collapse:collapse}
.document-content .table-wrap table{min-width:28rem}
.document-content th,.document-content td{padding:.5rem .6rem;border:1px solid #a8b4c4;vertical-align:top}
.document-content th{background:#edf2f8;color:#112c56;text-align:left}
.document-content caption{text-align:left;font-weight:700;padding:.7rem 0}
.document-content .table-wrap{max-width:100%;overflow:auto;margin:1rem 0}
.document-content li>div{display:inline}
.document-content .document-list-label{margin-right:.35em}
.document-content .document-question{margin-top:1.5rem}
.document-content figure{margin:1rem 0;padding:.8rem;border-left:3px solid #526b91;background:#f3f6fa}
.document-content .document-form-row{border-bottom:1px solid #a8b4c4;padding:.5rem 0}
.document-content .document-image-note{border-left:3px solid #526b91;padding:.5rem .8rem}

/* Keep a conflict comparison readable for long names and contact addresses. */
#conflict-comparison dt{font-weight:700;overflow-wrap:anywhere}
#conflict-comparison dd{margin:0 0 1rem;overflow-wrap:anywhere}

/* Text enlargement repairs across the shared templates. Photo captions keep
   white text directly over the existing image gradients, without backing boxes. */
.voice .voice__body{background:transparent;color:#fff;position:relative;z-index:1}
.voice .voice__body .voice__line,.voice .voice__body .voice__who{color:#fff}
.voices-section .voice:not(.voice--quote){max-height:none;aspect-ratio:auto}
.strip__tile .strip__word{color:#fff;background:transparent;padding:0;max-width:100%;overflow-wrap:anywhere;line-height:1.3}
/* Preserve the light study card's own text colors, including its numbered list. */
.type-tile li span{color:var(--gold-hi)}
.type-tile--mist li span{color:var(--brand-navy)}
/* Data distinctions need a visible edge even where their decorative fill is pale. */
.yearbar .off,.yearbar .summer{stroke:#738097;stroke-width:1}
.score-bar__fill{border:1px solid var(--brand-navy)}
.yearbar-legend i{border:1px solid #738097}
/* Native field boundaries and focused controls remain visible on white and
   dark surfaces. Specificity is intentional: the earlier design layer styles
   field focus, while some dialogs and sidebars sit on navy backgrounds. */
.field input:not([type=radio]):not([type=checkbox]),.field select,.field textarea{border-color:#738097}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--focus);outline:3px solid var(--focus);outline-offset:2px;box-shadow:0 0 0 1px #fff}
.modal__form .field input:focus,.modal__form .field select:focus,.modal__form .field textarea:focus{outline-color:#fff;box-shadow:0 0 0 2px var(--navy-deep)}
.admin-side :focus-visible,.campus-hero :focus-visible,.page-hero :focus-visible,.method-section :focus-visible,.voices-section :focus-visible,.life-section :focus-visible,.ready-honor :focus-visible{outline-color:#fff;box-shadow:0 0 0 2px var(--navy-deep)}
/* The headings/status area remains a clear programmatic focus destination. */
.error-summary:focus{outline:3px solid var(--focus);outline-offset:4px}
.source-pop :focus-visible{outline-color:var(--focus);box-shadow:0 0 0 2px #fff}
/* Remove clipping from text-bearing cards, retaining their separate photo crops. */
.campus-card:focus-within,.news-card:focus-within,.trio__item:focus-within,.voice:focus-within{overflow:visible}
.campus-card__body,.trio__copy,.voice__body,.news-card__copy{min-width:0;overflow-wrap:anywhere}
.doc-list a{min-width:0;grid-template-columns:minmax(0,1fr) auto}
.doc-list a>span,.doc-list a>strong{min-width:0;overflow-wrap:anywhere}
@media(max-width:639px){
 .doc-list a{display:flex;flex-wrap:wrap;align-items:flex-start}
 .doc-list .tag{white-space:normal;max-width:100%}
 .transcript-head,.review-section__head,.score-explorer__top,.glance__head{flex-wrap:wrap;min-width:0}
 .score-explorer__chart{gap:3px;padding-inline:0;margin-bottom:3.5rem}
 .score-bar__year{white-space:normal;max-width:100%;overflow-wrap:anywhere}
 .form-stage-nav{flex-wrap:wrap;overflow:visible}
 .form-stage-nav a{white-space:normal;min-height:32px}
 .portal-aside{position:static}
}
@media(forced-colors:active){
 .voice .voice__body,.strip__tile .strip__word{background:Canvas;color:CanvasText;border:1px solid CanvasText}
 .voice .voice__body .voice__line,.voice .voice__body .voice__who,.strip__tile .strip__word{color:CanvasText}
 .field input:focus,.field select:focus,.field textarea:focus,.modal__form .field input:focus,.modal__form .field select:focus,.modal__form .field textarea:focus,.error-summary:focus,.admin-side :focus-visible,.campus-hero :focus-visible,.page-hero :focus-visible,.method-section :focus-visible,.voices-section :focus-visible,.life-section :focus-visible,.ready-honor :focus-visible{outline-color:Highlight;box-shadow:none}
 .field input:not([type=radio]):not([type=checkbox]),.field select,.field textarea{border-color:ButtonText}
 .yearbar .off,.yearbar .summer{stroke:CanvasText}
 .yearbar-legend i{border-color:CanvasText}
 .score-bar__fill{border-color:CanvasText}
}
