/*
 * CAS Premium Responsive Theme v1.5.2
 * Final public-interface hardening layer.
 * Loaded last to remove legacy cascade conflicts and keep every public page
 * fluid from 320px phones to wide desktop screens.
 */

/* ---------- Document / intrinsic-size safety ---------- */
html{width:100%;max-width:100%;overflow-x:hidden}
body.final-cas-site{width:100%;max-width:100%;min-width:320px;overflow-x:hidden;background:#f7f9fc}
.final-cas-site *,
.final-cas-site *::before,
.final-cas-site *::after{box-sizing:border-box}
.final-cas-site :where(main,section,article,aside,header,footer,nav,div,form,fieldset,label){min-width:0}
.final-cas-site :where(img,svg,video,canvas,iframe){max-width:100%;height:auto}
.final-cas-site :where(input,select,textarea,button){max-width:100%;min-width:0}
.final-cas-site :where(p,h1,h2,h3,h4,h5,h6,a,span,strong,small,li,dd,dt){overflow-wrap:break-word;word-break:normal}
.final-cas-site main{width:100%;max-width:100%;overflow:clip}
.final-cas-site .container,
.final-cas-site .container-wide{
  width:min(1280px,calc(100% - clamp(28px,5vw,72px)))!important;
  max-width:1280px!important;
  margin-inline:auto!important;
}
.final-cas-site .narrow{width:min(820px,100%)!important;max-width:100%!important}

/* ---------- Header / navigation ---------- */
.final-announcement{min-height:36px;padding:8px clamp(14px,3vw,28px);line-height:1.35}
.final-top-strip .top-strip-inner{
  min-height:38px!important;
  padding-block:6px!important;
  align-items:center;
  justify-content:space-between!important;
}
.final-top-strip .top-strip-contact,
.final-top-strip .top-strip-links{min-width:0;flex-wrap:wrap}
.final-top-strip .top-strip-links{justify-content:flex-end}

.cas-theme-public .final-public-header{
  height:auto!important;
  min-height:78px!important;
  position:sticky!important;
  top:0!important;
  z-index:500!important;
}
.cas-theme-public .final-public-header .nav-shell{
  height:78px!important;
  min-height:78px!important;
  gap:18px!important;
}
.final-public-header .public-brand{flex:0 0 auto!important;min-width:0!important}
.final-public-header .brand-logo{
  display:block!important;
  width:auto!important;
  height:auto!important;
  max-height:58px!important;
  max-width:205px!important;
  object-fit:contain!important;
}
.cas-theme-public .final-public-nav{
  margin-left:auto!important;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:3px!important;
  min-width:0;
}
.final-public-nav>a:not(.button){
  padding:9px 7px!important;
  font-size:.80rem!important;
  line-height:1.2!important;
  white-space:nowrap!important;
}
.final-public-nav .button{
  min-height:38px!important;
  padding:9px 12px!important;
  font-size:.78rem!important;
  white-space:nowrap!important;
}
.cas-theme-public .mobile-nav-toggle{flex:0 0 44px;width:44px;height:44px;border-radius:12px}

/* ---------- Shared vertical rhythm ---------- */
.final-cas-site .section{padding:clamp(58px,6vw,92px) 0!important}
.final-content-section{padding-top:clamp(52px,5vw,76px)!important}
.final-cas-site .final-heading{gap:20px;margin-bottom:30px}
.final-heading h2{font-size:clamp(2rem,3.2vw,3.25rem)!important;line-height:1.08!important}

/* ---------- Hero system ---------- */
.final-home-hero,
.final-page-hero{overflow:clip!important}
.final-home-hero-grid{
  grid-template-columns:minmax(0,1.55fr) minmax(300px,.65fr)!important;
  gap:clamp(34px,5vw,72px)!important;
  padding:clamp(72px,7vw,104px) 0 clamp(68px,7vw,94px)!important;
}
.final-page-hero-grid{
  grid-template-columns:minmax(0,1.5fr) minmax(300px,.7fr)!important;
  gap:clamp(32px,5vw,64px)!important;
  padding:clamp(62px,6vw,88px) 0!important;
}
.final-home-copy,
.final-page-hero-grid>div{min-width:0}
.final-page-hero h1,
.final-home-hero h1{
  max-width:900px!important;
  font-size:clamp(2.7rem,5vw,5rem)!important;
  line-height:1.01!important;
  letter-spacing:-.05em!important;
  text-wrap:balance;
}
.final-page-hero h1{font-size:clamp(2.45rem,4.4vw,4.45rem)!important}
.final-page-hero p,
.final-home-hero p{font-size:clamp(.98rem,1.25vw,1.08rem)!important;line-height:1.72!important}
.final-home-card,
.final-trust-panel{width:100%;max-width:100%;padding:clamp(24px,3vw,32px)!important}
.final-home-card h2{font-size:clamp(1.35rem,2vw,1.7rem)!important}
.final-proof-row{row-gap:8px!important}
.final-proof-row span{line-height:1.25}
.final-hero-actions .button{max-width:100%}

/* ---------- Home trust / programs / content cards ---------- */
.final-trust-strip-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}
.final-trust-strip article{min-width:0;padding:22px 18px!important}
.final-trust-strip p{font-size:.79rem!important}

.final-program-grid,
.final-program-grid-wide{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:18px!important}
.final-program-grid-wide{grid-template-columns:repeat(3,minmax(0,1fr))!important}
.final-program-card{min-width:0;min-height:255px!important;padding:25px!important;border-radius:22px!important}
.final-program-card h3{font-size:1.06rem;line-height:1.3}
.final-program-card p{line-height:1.65}
.final-program-card b{margin-top:auto;padding-top:14px}

.final-proof-grid{grid-template-columns:minmax(260px,.8fr) minmax(0,1.2fr)!important;gap:clamp(34px,5vw,70px)!important}
.final-proof-cards{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:16px!important}
.final-proof-cards article{min-width:0}
.final-three-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:18px!important}
.final-three-grid>a{min-width:0;padding:29px!important;border-radius:22px!important}
.final-motivation-grid{grid-template-columns:minmax(0,1fr) minmax(0,.92fr)!important;gap:clamp(34px,5vw,66px)!important}
.final-quote-stack blockquote{min-width:0}

/* ---------- Generic document pages ---------- */
.final-content-layout{grid-template-columns:minmax(190px,230px) minmax(0,1fr)!important;gap:clamp(26px,4vw,44px)!important}
.final-page-nav{width:100%;max-width:100%}
.final-section-card{grid-template-columns:54px minmax(0,1fr)!important;padding:clamp(24px,3vw,34px)!important}
.final-section-copy{min-width:0}
.final-section-copy :where(p,a,strong){max-width:100%}
.final-inline-faqs summary,
.final-faq-list summary{align-items:flex-start}
.final-inline-faqs summary>span,
.final-faq-list summary>span{flex:0 0 auto}

/* ---------- Admissions / contact / forms ---------- */
.final-admissions-grid{grid-template-columns:minmax(0,1fr) minmax(285px,340px)!important;gap:28px!important}
.final-admission-main,
.final-admission-aside,
.final-contact-info,
.final-contact-form{min-width:0;width:100%}
.final-steps>div{grid-template-columns:42px minmax(0,1fr)!important}

.final-contact-grid{grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr)!important;gap:28px!important}
.form-layout{grid-template-columns:minmax(0,1fr) minmax(270px,320px)!important;gap:30px!important}
.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.form-grid>*{min-width:0}
.form-grid .span-two{grid-column:1/-1}
.premium-form :where(input,select,textarea),
.search-panel :where(input,select,textarea),
.final-callback-form :where(input,select,textarea){
  display:block;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
}
.premium-form textarea{resize:vertical}

/* The screenshot issue: the callback form used intrinsic input widths inside
   fractional tracks. Every track is now minmax(0,1fr), and the form uses a
   deliberate two-column layout instead of squeezing 4 controls into one row. */
.final-callback-grid{
  grid-template-columns:minmax(260px,.72fr) minmax(0,1.28fr)!important;
  gap:clamp(30px,4vw,52px)!important;
  align-items:center!important;
}
.final-callback-form{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:14px!important;
  padding:20px!important;
  overflow:hidden;
}
.final-callback-form label{min-width:0!important;width:100%!important}
.final-callback-form label:nth-of-type(3){grid-column:1/-1}
.final-callback-form .button{grid-column:1/-1!important;width:100%!important;min-width:0!important}
.final-search-form{grid-template-columns:minmax(0,1fr) auto!important;margin-bottom:28px!important}
.final-search-form label{min-width:0!important}

.search-panel{width:100%;max-width:100%;min-width:0;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr)) auto auto!important;align-items:end!important}
.search-panel label{min-width:0!important}
.status-result{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.verification-card{width:100%;max-width:100%}
.verification-card dl{grid-template-columns:minmax(120px,.7fr) minmax(0,1.3fr)!important}

/* ---------- Program detail / legacy public cards ---------- */
.detail-layout{grid-template-columns:minmax(0,1fr) minmax(280px,330px)!important;gap:30px!important}
.detail-layout>*{min-width:0}
.prose-card{min-width:0;max-width:100%}
.card-grid-three{grid-template-columns:repeat(3,minmax(0,1fr))!important}
.card-grid-four{grid-template-columns:repeat(4,minmax(0,1fr))!important}
.portal-card{min-width:0}

/* ---------- CTA ---------- */
.final-cta{min-width:0;padding:clamp(28px,4vw,42px)!important;gap:28px!important}
.final-cta>div{min-width:0}
.final-cta h2{max-width:820px;line-height:1.08!important}
.final-cta .button{flex:0 0 auto;max-width:100%}

/* ---------- Footer ---------- */
.cas-public-footer.final-footer{overflow:hidden!important;padding-top:54px!important}
.cas-public-footer .final-footer-grid{
  width:min(1280px,calc(100% - clamp(28px,5vw,72px)))!important;
  max-width:1280px!important;
  display:grid!important;
  grid-template-columns:minmax(230px,1.45fr) repeat(4,minmax(125px,1fr))!important;
  gap:clamp(20px,3vw,38px)!important;
  overflow:visible!important;
  padding:0!important;
}
.cas-public-footer .final-footer-grid>div{min-width:0!important;width:auto!important;max-width:none!important;margin:0!important}
.cas-public-footer .final-footer-grid a{width:fit-content;max-width:100%;overflow-wrap:anywhere}
.final-footer-brand .brand-logo{max-width:200px!important;max-height:60px!important}
.final-footer-contact,
.final-footer .footer-bottom{
  width:min(1280px,calc(100% - clamp(28px,5vw,72px)))!important;
  max-width:1280px!important;
}
.final-footer-contact{align-items:flex-start!important}
.final-footer-contact>*{min-width:0;overflow-wrap:anywhere}
.final-footer .footer-bottom{gap:20px!important}

/* ---------- Large tablet / small laptop ---------- */
@media (max-width:1120px){
  .cas-theme-public .final-public-header .nav-shell{height:72px!important;min-height:72px!important}
  .final-public-header .brand-logo{max-height:52px!important;max-width:185px!important}
  .cas-theme-public .mobile-nav-toggle{display:grid!important;place-items:center!important}
  .cas-theme-public .final-public-nav{
    position:absolute!important;
    top:calc(100% + 8px)!important;
    left:clamp(14px,3vw,28px)!important;
    right:clamp(14px,3vw,28px)!important;
    z-index:600!important;
    display:none!important;
    margin:0!important;
    padding:14px!important;
    border:1px solid #dce7ef!important;
    border-radius:18px!important;
    background:rgba(255,255,255,.985)!important;
    box-shadow:0 24px 60px rgba(5,34,55,.18)!important;
    flex-direction:column!important;
    align-items:stretch!important;
    gap:4px!important;
    max-height:calc(100dvh - 100px)!important;
    overflow-y:auto!important;
  }
  .cas-theme-public .final-public-nav.open{display:flex!important}
  .cas-theme-public .final-public-nav>a:not(.button){width:100%!important;padding:12px 13px!important;font-size:.94rem!important;text-align:left!important;white-space:normal!important}
  .cas-theme-public .final-public-nav .button{width:100%!important;min-height:44px!important;font-size:.88rem!important}

  .final-home-hero-grid,
  .final-page-hero-grid{grid-template-columns:minmax(0,1.35fr) minmax(270px,.65fr)!important;gap:34px!important}
  .final-program-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .final-program-grid-wide{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .final-callback-grid{grid-template-columns:minmax(230px,.68fr) minmax(0,1.32fr)!important;gap:30px!important}
  .cas-public-footer .final-footer-grid{grid-template-columns:minmax(220px,1.3fr) repeat(2,minmax(150px,1fr))!important}
}

/* ---------- Tablet ---------- */
@media (max-width:900px){
  .final-top-strip .top-strip-inner{justify-content:center!important}
  .final-top-strip .top-strip-contact{display:none!important}
  .final-top-strip .top-strip-links{justify-content:center!important}

  .final-home-hero-grid,
  .final-page-hero-grid,
  .final-proof-grid,
  .final-motivation-grid,
  .final-callback-grid,
  .final-contact-grid,
  .form-layout,
  .detail-layout,
  .final-admissions-grid{grid-template-columns:1fr!important}

  .final-home-card,
  .final-trust-panel{max-width:none!important}
  .final-page-hero h1,.final-home-hero h1{max-width:760px!important}
  .final-trust-strip-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .final-trust-strip article:nth-child(2n){border-right:0!important}
  .final-trust-strip article:nth-child(-n+2){border-bottom:1px solid #e8eef4!important}

  .final-program-grid,
  .final-program-grid-wide{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .final-three-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .final-three-grid>a:last-child{grid-column:1/-1}

  .final-content-layout{grid-template-columns:1fr!important}
  .final-page-nav{
    position:static!important;
    display:flex!important;
    gap:8px!important;
    width:100%!important;
    max-width:100%!important;
    overflow-x:auto!important;
    overscroll-behavior-x:contain;
    padding:12px!important;
    scroll-snap-type:x proximity;
  }
  .final-page-nav>span{display:none!important}
  .final-page-nav a{flex:0 0 auto!important;max-width:260px!important;border:1px solid #e2eaf0!important;background:#fff!important;scroll-snap-align:start}

  .final-admission-aside{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:0 20px!important}
  .form-aside,.detail-aside{position:static!important}
  .search-panel{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .search-panel .button{width:100%!important}

  .cas-public-footer .final-footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:28px 34px!important}
  .cas-public-footer .final-footer-brand{grid-column:1/-1!important}
  .final-footer-contact{flex-direction:column!important;gap:8px!important}
}

/* ---------- Mobile ---------- */
@media (max-width:640px){
  .final-cas-site .container,
  .final-cas-site .container-wide{
    width:calc(100% - 24px)!important;
    max-width:calc(100% - 24px)!important;
  }
  .final-announcement{min-height:34px;font-size:.7rem!important;padding:7px 12px!important}
  .final-top-strip{display:none!important}
  .cas-theme-public .final-public-header{min-height:66px!important}
  .cas-theme-public .final-public-header .nav-shell{height:66px!important;min-height:66px!important}
  .final-public-header .brand-logo{max-height:46px!important;max-width:160px!important}
  .cas-theme-public .mobile-nav-toggle{width:42px!important;height:42px!important;flex-basis:42px!important}
  .cas-theme-public .final-public-nav{left:12px!important;right:12px!important;top:calc(100% + 6px)!important;padding:11px!important;border-radius:16px!important}

  .final-home-hero-grid{padding:54px 0 52px!important;gap:28px!important}
  .final-page-hero-grid{padding:48px 0!important;gap:26px!important}
  .final-page-hero h1,
  .final-home-hero h1{font-size:clamp(2.25rem,11.5vw,3.45rem)!important;letter-spacing:-.045em!important}
  .final-kicker{font-size:.66rem!important;letter-spacing:.12em!important}
  .final-breadcrumb{gap:6px!important;font-size:.7rem!important}
  .final-hero-actions{display:grid!important;grid-template-columns:1fr!important;width:100%!important}
  .final-hero-actions .button{width:100%!important;white-space:normal!important;text-align:center!important}
  .final-proof-row span{font-size:.62rem!important;padding:6px 9px!important}

  .final-trust-strip-grid{grid-template-columns:1fr!important}
  .final-trust-strip article{border-right:0!important;border-bottom:1px solid #e8eef4!important;padding:18px 6px!important}
  .final-trust-strip article:last-child{border-bottom:0!important}

  .final-heading{align-items:flex-start!important;flex-direction:column!important;margin-bottom:22px!important}
  .final-heading h2{font-size:clamp(1.8rem,8.5vw,2.5rem)!important}
  .final-program-grid,
  .final-program-grid-wide,
  .final-three-grid,
  .final-proof-cards{grid-template-columns:1fr!important}
  .final-three-grid>a:last-child{grid-column:auto}
  .final-program-card{min-height:0!important;padding:22px!important}

  .final-section-card{grid-template-columns:1fr!important;gap:13px!important;padding:20px!important;border-radius:18px!important}
  .final-section-number{width:42px!important;height:42px!important}
  .final-section-copy h2{font-size:1.3rem!important}
  .final-inline-faqs summary,
  .final-faq-list summary{padding:15px!important;font-size:.9rem!important}
  .final-inline-faqs details p,
  .final-faq-list details p{padding:0 15px 16px!important;font-size:.88rem!important}

  .final-admission-main,
  .final-admission-aside,
  .final-contact-info,
  .final-contact-form,
  .form-layout>.premium-form,
  .form-aside,
  .prose-card,
  .detail-aside{padding:21px!important;border-radius:18px!important}
  .final-admission-aside{grid-template-columns:1fr!important}
  .final-steps>div{grid-template-columns:38px minmax(0,1fr)!important;padding:12px!important}
  .final-steps>div>span{width:36px!important;height:36px!important}

  .form-grid,
  .final-callback-form,
  .search-panel,
  .status-result{grid-template-columns:1fr!important}
  .form-grid .span-two{grid-column:auto!important}
  .final-callback-form{padding:15px!important;gap:12px!important;border-radius:16px!important}
  .final-callback-form label:nth-of-type(3),
  .final-callback-form .button{grid-column:auto!important}
  .final-search-form{grid-template-columns:1fr!important}
  .final-search-form .button{width:100%!important}
  .search-panel{padding:18px!important}
  .verification-card{padding:28px 20px!important}
  .verification-card dl{grid-template-columns:1fr!important}
  .verification-card dd{padding-top:0!important}

  .final-cta{align-items:stretch!important;flex-direction:column!important;padding:25px 21px!important;border-radius:20px!important}
  .final-cta .button{width:100%!important;white-space:normal!important;text-align:center!important}

  .cas-public-footer.final-footer{padding-top:40px!important}
  .cas-public-footer .final-footer-grid{
    width:calc(100% - 24px)!important;
    max-width:calc(100% - 24px)!important;
    grid-template-columns:1fr!important;
    gap:26px!important;
  }
  .cas-public-footer .final-footer-brand{grid-column:auto!important}
  .final-footer-contact,
  .final-footer .footer-bottom{
    width:calc(100% - 24px)!important;
    max-width:calc(100% - 24px)!important;
  }
  .final-footer .footer-bottom{display:grid!important;grid-template-columns:1fr!important;gap:6px!important;text-align:left!important}
}

/* ---------- Small phones ---------- */
@media (max-width:390px){
  body.final-cas-site{min-width:0}
  .final-cas-site .container,
  .final-cas-site .container-wide{width:calc(100% - 20px)!important;max-width:calc(100% - 20px)!important}
  .final-public-header .brand-logo{max-width:145px!important;max-height:43px!important}
  .final-page-hero h1,.final-home-hero h1{font-size:clamp(2rem,11vw,2.75rem)!important}
  .final-home-card,.final-trust-panel{padding:20px!important}
  .final-program-card,.final-three-grid>a{padding:20px!important}
  .final-footer-contact,.final-footer .footer-bottom,.cas-public-footer .final-footer-grid{width:calc(100% - 20px)!important;max-width:calc(100% - 20px)!important}
}

/* Reduced motion keeps the polished UI accessible. */
@media (prefers-reduced-motion:reduce){
  .final-cas-site *{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}
}

/* ---------- Legacy utility pages brought into the same premium system ---------- */
.final-cas-site .page-hero{
  position:relative;
  overflow:clip;
  padding:clamp(58px,6vw,84px) 0!important;
  background:radial-gradient(circle at 84% 16%,rgba(58,151,201,.22),transparent 29%),radial-gradient(circle at 10% 86%,rgba(216,170,69,.12),transparent 25%),linear-gradient(135deg,#061b2e 0%,#082e4d 50%,#0d4f78 100%)!important;
  color:#fff!important;
}
.final-cas-site .page-hero .eyebrow{color:#f2cc70!important}
.final-cas-site .page-hero h1{margin:12px 0 16px!important;font-size:clamp(2.45rem,4.5vw,4.5rem)!important;line-height:1.02!important;letter-spacing:-.045em!important;color:#fff!important}
.final-cas-site .page-hero p{max-width:780px!important;margin:0!important;color:#c7d7e4!important;font-size:1rem!important;line-height:1.72!important}
.final-cas-site .search-panel,
.final-cas-site .verification-card,
.final-cas-site .portal-card{border-color:#e0e9f0!important;box-shadow:0 16px 38px rgba(14,52,78,.065)!important}
.final-program-section{padding:clamp(58px,6vw,88px) 0!important}
.final-search-hero .final-home-card>strong{display:block;font-size:clamp(2.8rem,6vw,4.8rem);line-height:1;color:#fff;margin-bottom:8px}
.final-search-hero .final-home-card>span{display:block;color:#f2cc70;font-weight:850;letter-spacing:.06em;text-transform:uppercase}
.final-search-hero .final-home-card>small{display:block;margin-top:12px;color:#c8d8e4;line-height:1.5}

@media(max-width:640px){
  .final-cas-site .page-hero{padding:46px 0!important}
  .final-cas-site .page-hero h1{font-size:clamp(2.2rem,11vw,3.25rem)!important}
  .final-cas-site .card-grid-three,
  .final-cas-site .card-grid-four{grid-template-columns:1fr!important}
}
