/* Restore a centered content frame. Backgrounds stay full width; content shares
   one inset, including the header, dropdowns, cards and footer CTA. */
@media screen and (min-width:768px){
  :root{--container:1120px;--gutter:clamp(2rem,8vw,10rem)}
  .container,.ccs-footer>.container{width:min(100% - 2 * var(--gutter),var(--container));margin-inline:auto}
  .hero-editorial,.page-hero__grid,.split,.grid-2,.grid-3,.grid-4,.application-choice-grid{min-width:0}
  .container>*,.application-choice-grid>*,.bento>*{min-width:0}
  .application-choice{padding:1.125rem 1.25rem}
  .application-choice h3{font-size:clamp(1.4rem,2vw,1.65rem);margin-bottom:.65rem}
  .application-choice p{font-size:1rem;line-height:1.5;margin-bottom:1rem}
  .application-choice .btn-row{gap:.65rem 1rem}
  .application-choice-grid{gap:1rem;align-items:stretch}
  .portal-layout{gap:1.5rem}
  .portal-main .panel{padding:1.25rem 1.5rem}
  .portal-aside .glance,.portal-extra,.app-card,.review-section{padding:1.125rem}
}

/* Larger menu lettering needs a drawer at tablet/small-laptop widths inside
   the restored frame. The script uses the same 1200px boundary. */
@media screen and (max-width:1199px){
  .site-header .utility{display:none}
  .site-header .header-main{min-height:76px;gap:.75rem;flex-wrap:wrap}
  .site-header .brand{flex:1 1 8rem;min-width:0;max-width:168px}
  .site-header .menu-toggle{display:inline-flex;margin-left:auto;flex-shrink:0}
  .site-header .nav{position:fixed;inset:var(--nav-top,76px) 0 0;margin:0;background:#fff;overflow-y:auto;overscroll-behavior:contain;padding:.5rem var(--gutter) 3rem;border-top:1px solid var(--line);display:none;z-index:55}
  .site-header .nav.is-open{display:block}
  .site-header .nav__list{flex-direction:column;align-items:stretch;gap:0}
  .site-header .nav__list>li{border-bottom:1px solid var(--line)}
  .site-header .nav__link{width:100%;justify-content:space-between;min-height:56px;font-size:var(--menu-size);border-radius:0;white-space:normal}
  .site-header .nav__link[aria-current="page"],.site-header .nav__link.is-current{box-shadow:inset 3px 0 0 var(--brand-red)}
  .site-header .mega{position:static;box-shadow:none;border:0;padding:0 0 1rem}
  .site-header .mega__inner.container{display:block;width:100%;max-width:none;margin:0}
  .site-header .mega__intro{display:none}
  .site-header .mega__grid{grid-template-columns:minmax(0,1fr)}
  .site-header .mega__grid a{padding:.65rem .5rem}
  .site-header .nav__mobile-extra{display:block;padding:1.25rem 0}
  .site-header .nav__mobile-extra .btn-row{display:flex;flex-wrap:wrap;gap:.75rem}
  .site-header .nav__mobile-extra .btn{flex:1 1 10rem;min-height:48px;white-space:normal}
  body.nav-open{overflow:hidden}
}
@media screen and (min-width:1200px){
  .site-header .menu-toggle,.site-header .nav__mobile-extra{display:none}
  .site-header .header-main{gap:1rem;flex-wrap:wrap}
  .site-header .brand{flex:0 0 148px;width:148px}
  .site-header .nav{flex:0 1 auto;min-width:0}
  .site-header .nav__list{gap:.1rem;flex-wrap:wrap}
  .site-header .nav__link{padding-inline:.6rem;font-size:var(--menu-size)}
  .site-header .header-ctas{margin-left:0}
  .site-header .header-ctas .btn{padding-inline:1rem;font-size:var(--menu-size)}
  :root{--section-pad:clamp(1.75rem,4vh,2.5rem)}
  .page-hero{padding-block:clamp(1.75rem,4vh,2.5rem)}
  .section-head{margin-bottom:1.125rem}
  .section-head>h2::before,.section-head>div>h2::before{margin-bottom:.65rem}
  .ccs-home .hero--editorial{padding-block:1.5rem}
  .ccs-home .hero-editorial{gap:2rem;align-items:center}
  .ccs-home .hero-editorial h1{font-size:clamp(2.65rem,3.65vw,3.3rem);line-height:1.18}
  .ccs-home .hero-editorial h1>span{white-space:normal}
  .ccs-home .hero-editorial__photo{min-height:0;max-height:none;aspect-ratio:4/3;align-self:center}
  .ccs-home .enrollment-section .enroll{padding:1.25rem;gap:1.5rem}
  .ccs-home .enroll .mini-timeline{margin-top:1rem}
  .ccs-home .awards{padding-block:1.75rem}
  .ccs-home .awards .podium{gap:1.5rem;margin-block:1rem}
  .ccs-home .awards .podium>li{--pw:9rem}
  .ccs-home .awards .podium>li:nth-child(2){--pw:10.5rem}
  .ccs-home .awards .podium+.honor-roll{margin-top:1.25rem}
  .ccs-home .numbers-section{padding-block:1.75rem}
  .ccs-home .numbers-head{margin-bottom:1rem;gap:.65rem 1.25rem;flex-wrap:wrap}
  .ccs-home .numbers-head h2{margin-bottom:.5rem}
  .ccs-home .numbers-section .bento{grid-template-columns:minmax(0,1fr) minmax(0,1.35fr) minmax(0,1fr);gap:.75rem}
  .ccs-home .numbers-section .stat-card{padding:.875rem;gap:.5rem}
  .ccs-home .numbers-section .stat-card__head{gap:.5rem;margin-bottom:0}
  .ccs-home .numbers-section .stat-card__sub,.ccs-home .numbers-section .stat-caption{font-size:.875rem;line-height:1.5;margin-block:0}
  .ccs-home .numbers-section .ladder{gap:.25rem}
  .ccs-home .numbers-section .ladder li .rank{padding-block:.25rem}
  .ccs-home .numbers-section .ladder-head .big-num{font-size:3.25rem}
  .ccs-home .numbers-section .stat-card__foot{gap:.35rem .5rem}
  .ccs-home .numbers-section .minis{gap:.75rem}
  .ccs-home .numbers-section .mini{padding:.75rem;gap:.5rem}
  .ccs-home .numbers-section .mini .big-num{font-size:1.85rem}
  .ccs-home .numbers-section .mini p{font-size:.875rem;line-height:1.5;margin-block:.25rem}
  .ccs-home .numbers-section .numbers-more{margin-top:.75rem}
  .ccs-home .numbers-section .result-honor-card .honor-inline .plaque{--pw:9rem}
  .ccs-home .method-section .type-tile{min-height:11.5rem;padding:2.5rem 1.125rem 1rem;gap:.5rem}
  .ccs-home .method-section .trio__copy{padding:1.125rem}
  .ccs-home .method-section .type-tile blockquote{font-size:1.25rem;line-height:1.4}
  .ccs-home .ready-honor{padding:.75rem}
  .ccs-home .credit-panel{padding:1.125rem}
  .ccs-home .voices-section .voice{min-height:18rem}
  .ccs-home .voices-section .voice__body{padding:1.125rem}
  .ccs-home .schools-section .campus-cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:.875rem}
  .ccs-home .schools-section .campus-card__body{padding:.875rem;gap:.5rem}
  .ccs-home .schools-section .campus-card__media{aspect-ratio:16/9}
  .ccs-home .news-card__copy{padding:1rem}
  .ccs-home .news-card__media{aspect-ratio:16/7}
  .ccs-home .facts-section .glance dl>.fact-card{padding:.875rem}
  .ccs-footer .footer-reference{grid-template-columns:minmax(0,1.65fr) minmax(0,1.1fr) minmax(0,1.05fr) minmax(0,.95fr);gap:1rem}
}

/* Reflow the smaller frame before three/four columns become too narrow. */
@media screen and (min-width:768px) and (max-width:1199px){
  :root{--section-pad:2.5rem}
  .ccs-home .numbers-section .bento{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"left right" "top bottom" "under under"}
  .ccs-home .numbers-section .minis{grid-template-columns:repeat(3,minmax(0,1fr))}
  .ccs-home .schools-section .campus-cards,.ccs-home .voices-section .voices,.ccs-home .news-section .news{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ccs-home .method-section .trio{grid-template-columns:minmax(0,1fr)}
  .ccs-home .method-section .trio__item{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr)}
  .ccs-home .method-section .type-tile{min-height:0;padding:2.75rem 1.125rem 1.125rem}
  .ccs-home .method-section .trio__copy{padding:1.125rem}
  .ccs-home .hero-editorial{grid-template-columns:minmax(0,1fr)}
  .ccs-home .hero-editorial__photo{min-height:0;aspect-ratio:16/8;max-height:none}
  .ccs-home .enrollment-section .enroll,.ccs-home .readiness-section>.split,.ccs-home .facts-section>.split{grid-template-columns:minmax(0,1fr);gap:1.5rem}
  .ccs-home .enrollment-section .enroll{padding:1.25rem}
  .ccs-home .enrollment-section .oe-cal{max-width:22rem;justify-self:center}
  .ccs-footer .footer-reference{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:1.5rem}
  .ccs-footer .footer-reference__identity{grid-column:1;grid-row:1}
  .ccs-footer .footer-reference__interest{grid-column:2;grid-row:1}
  .ccs-footer .footer-reference__links{grid-column:1;grid-row:2}
  .ccs-footer .footer-reference__honor{grid-column:2;grid-row:2}
}
@media screen and (min-width:768px) and (max-width:899px){
  .ccs-home .numbers-section .minis{grid-template-columns:minmax(0,1fr)}
  .application-choice-grid,.ccs-home .voices-section .voices,.ccs-home .news-section .news{grid-template-columns:minmax(0,1fr)}
}
@media screen and (min-width:1200px) and (max-height:800px){
  :root{--section-pad:1.5rem}
  .ccs-home .awards,.ccs-home .numbers-section{padding-block:1.25rem}
  .ccs-home .hero--editorial{padding-block:1.125rem}
  .ccs-home .method-section .type-tile{min-height:10.25rem}
  .ccs-home .voices-section .voice{min-height:16rem}
}
@media screen and (max-width:639px){
  .site-header .header-main{min-height:68px;gap:.35rem}
  .site-header .brand{width:100px;flex:0 0 100px;max-width:100px;min-height:62px;height:62px}
}

/* Content stays in normal flow at text enlargement. Focus and long labels must
   never be cropped merely to make a section fit a particular screen. */
.ccs-home .method-section,.ccs-home .voices-section,.ccs-home .life-section{overflow:visible}
.ccs-home .method-section::after,.ccs-home .voices-section::after{right:0}
.site-header .brand img{max-width:100%}
.site-header .mega__grid a{overflow-wrap:anywhere}
.heading-level-two{font-size:var(--fs-h3)}
.campus-card .heading-level-two{font-size:1.25rem}
.news-card .heading-level-two{font-size:1.3rem}
.contact-card .heading-level-two{font-size:1.125rem;margin-bottom:.65rem}
.event-card .heading-level-two{font-size:1.25rem}
.parent-doc-group .heading-level-three{font-size:1rem;letter-spacing:0;margin-bottom:.7rem}
.ccs-home .campus-card:focus-within,.ccs-home .voice:focus-within,.ccs-home .trio__item:focus-within{outline:3px solid #1a5fd1;outline-offset:3px}
@media(forced-colors:active){.ccs-home .campus-card:focus-within,.ccs-home .voice:focus-within,.ccs-home .trio__item:focus-within{outline-color:Highlight}}
