/* Computer Friendly V1.1.0 | Approved mock-up alignment and usability refinements.
   Deliberately uses original Computer Friendly blue/orange, not generic template styling. */
:root{--deep:#133b60;--nav:#14639f;--blue:#1664a0;--brand:#2479b9;--mist:#eaf5fe;--orange:#f68a1e;--line:#d9e6ed;--container:1190px}
html{scroll-padding-top:82px}
body{overflow-x:clip;background:white}
.container{width:min(calc(100% - 52px),1190px)}
a:focus-visible,button:focus-visible{outline:3px solid #f68a1e;outline-offset:3px}
img{max-width:100%}
/* Authentic Computer Friendly masthead and simple blue navigation. */
.info-bar{background:#14598f;color:white}
.info-bar .container{min-height:34px}
.info-left{font-size:12px}
.brandbar{background:linear-gradient(100deg,#d6ecfd 0%,#eaf7ff 54%,#f7fbff 100%)}
.brandbar .container{min-height:108px}
.brandbar .smile{width:78px;height:69px;margin:0;mix-blend-mode:normal}
.branding{gap:14px;min-width:0}
.brand-title{font-size:clamp(27px,3vw,38px);font-weight:750;letter-spacing:-.045em;line-height:1.08;color:#206aa5}
.brand-sub{font-size:clamp(10px,1.1vw,14px);font-weight:650;line-height:1.35;margin-top:4px;color:#226fa9}
.brand-award{width:100px;height:76px;max-width:100px;mix-blend-mode:normal}
.brandbar .brand-contact{display:none}
.nav-shell{background:#165d96;z-index:100;box-shadow:none}
.nav-row{min-height:54px;align-items:stretch;gap:10px}
.nav-row>.primary-nav{display:flex;align-items:stretch;flex:1;min-width:0;gap:0}
.primary-nav>.menu-item{position:relative;display:flex;align-items:center;flex-shrink:0}
.nav-link,.primary-nav .nav-link{min-height:54px;border-top:0;border-bottom:3px solid transparent;color:#fff;background:none;font-weight:700;font-size:12px;letter-spacing:.005em;text-transform:none;padding:0 15px;white-space:nowrap}
.nav-link:hover,.nav-link.active,.primary-nav .nav-link:hover,.primary-nav .nav-link.active{color:#fff;background:#105385;border-bottom-color:#f68a1e}
.nav-cta{display:inline-flex;align-items:center;justify-content:center;align-self:center;margin:0 0 0 auto;background:#f68a1e;color:#092f4e!important;text-decoration:none;min-height:39px;padding:9px 19px;white-space:nowrap;font-weight:750;font-size:12.5px;letter-spacing:.005em;border-radius:2px}
.nav-cta:hover{background:#ff9a34;color:#092f4e}
.admin-bar .nav-shell{top:32px}
.primary-nav .cf-submenu{min-width:235px;background:#145b91;box-shadow:0 14px 26px #06264333;z-index:110}
.primary-nav>.menu-item:hover>.cf-submenu,.primary-nav>.menu-item:focus-within>.cf-submenu,.primary-nav>.menu-item.submenu-open>.cf-submenu{display:block}
.primary-nav .cf-submenu .nav-link{min-height:43px;padding:10px 17px;line-height:1.3;white-space:normal}
.cf-submenu-toggle{border:0;background:none;color:#fff;cursor:pointer;align-self:center;padding:12px 6px 12px 1px;font-size:17px}
.primary-nav>.menu-item.has-children>.nav-link{padding-right:5px}
.cf-submenu-toggle:hover{color:#ffd3a7}
/* TheBuilt-style photograph-first hero, with approved LIGHT brand treatment. */
.cf-hero-home,.cf-hero-home .container{min-height:405px}
.cf-hero-home{background:linear-gradient(100deg,#e2f2fd 0%,#d6ecfc 50%,#c5e1f5 100%);isolation:isolate}
.cf-hero-home .hero-image{position:absolute;z-index:-2;inset:0 0 0 auto;width:57%;height:100%;object-fit:cover;object-position:52% 42%}
.cf-hero-home:before{content:'';display:block;position:absolute;z-index:-1;inset:0;background:linear-gradient(90deg,#e5f4ff 0%,#e0f2ff 30%,#dcefff 46%,#dfedfae8 54%,#dceaf820 75%,transparent 88%)}
.cf-hero-home .hero-content{max-width:555px;padding:40px 0 45px}
.cf-hero-kicker{display:flex;gap:10px;align-items:center;margin:0 0 15px;color:#1b6399;font-size:12px;text-transform:uppercase;font-weight:750;letter-spacing:.085em}
.cf-hero-kicker:before,.cf-section-kicker:before{content:"";display:inline-block;width:29px;height:3px;flex:none;background:var(--orange)}
.cf-hero-home h1{color:#174d7d;max-width:570px;font-size:clamp(33px,3.4vw,49px);line-height:1.12;font-weight:750;letter-spacing:-.028em;margin:0 0 13px}
.cf-hero-home .lead{color:#243e51;font-size:18px;line-height:1.55;max-width:450px;margin:0 0 22px;font-weight:500}
.cf-hero-home .button-row{display:flex;flex-wrap:wrap;gap:12px}
.cf-hero-home .button{min-height:47px;font-size:13px;border-radius:3px;font-weight:750;padding:12px 19px}
.cf-hero-home .button.outline{color:#155b95;border:2px solid #1e6ca7;background:#ffffffde}
.cf-hero-home .button.outline:hover{background:#d9efff}
/* Editorial composition from reference, not repetitive tiles. */
.section{padding-top:65px;padding-bottom:65px}
.cf-intro{padding-top:54px;padding-bottom:54px}
.cf-intro-grid{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:50px;align-items:center}
.cf-intro-media{position:relative;overflow:hidden}
.cf-intro-media img{display:block;width:100%;height:230px;object-fit:cover;object-position:center}
.cf-intro-media:after{content:"";position:absolute;bottom:0;right:0;height:5px;width:95px;background:var(--orange)}
.cf-intro-copy{max-width:620px}
.cf-section-kicker{display:flex;gap:10px;align-items:center;color:#246a9f;font-size:12px;font-family:Montserrat,Arial,sans-serif;font-weight:750;text-transform:uppercase;letter-spacing:.045em;margin:0 0 12px}
.cf-intro-copy h2{color:#184e7e;font-weight:750;font-size:clamp(26px,2.9vw,36px);margin:0 0 12px;line-height:1.18}
.cf-intro-copy p{color:#334a5b;max-width:660px;font-size:16px;line-height:1.65;margin:0 0 16px}
.cf-text-link{font-weight:750;color:#165f97;font-size:14px;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}
.cf-quicklinks{background:linear-gradient(90deg,#e1f1fd,#d5ebfa);border-top:1px solid #d0e9fb;border-bottom:1px solid #d0e9fb}
.cf-quicklinks .container{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.cf-quicklinks a{display:flex;align-items:center;gap:12px;color:#164d7d;text-decoration:none;font-weight:750;font-family:Montserrat,Arial,sans-serif;font-size:13px;padding:21px 17px;border-right:1px solid #aecde2;min-height:75px;transition:background .2s ease}
.cf-quicklinks a:first-child{border-left:1px solid #aecde2}
.cf-quicklinks a:hover{background:#c9e4f8}
.cf-quicklinks span{color:#e87913;font-weight:800;font-size:18px;letter-spacing:-.02em}
.cf-courses-home{background:#fff}
.cf-home-section-top{display:flex;align-items:end;justify-content:space-between;gap:25px;margin-bottom:25px}
.cf-home-section-top h2{font-size:clamp(27px,3vw,37px);font-weight:750;color:#174d7e;margin:0}
.cf-home-lower{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(290px,.8fr);gap:34px;align-items:stretch}
.cf-home-course-list{border-top:1px solid #d7e6ee}
.cf-course-spotlight{display:grid;grid-template-columns:135px 1fr 32px;gap:22px;align-items:center;padding:12px 3px;border-bottom:1px solid #d7e6ee;text-decoration:none;color:#163956;min-height:105px}
.cf-course-spotlight:hover{background:#f4faff}
.cf-course-spotlight img{width:135px;height:83px;object-fit:cover}
.cf-course-spotlight strong{display:block;font-family:Montserrat,Arial,sans-serif;font-weight:750;color:#195582;font-size:17px;line-height:1.3;margin-bottom:5px}
.cf-course-spotlight small{display:block;font-size:13px;line-height:1.5;color:#4c6272}
.cf-course-mark{font-size:30px;color:#ed7f18;line-height:1}
.cf-course-view-all{display:inline-block;margin-top:16px;font-weight:750;color:#165b92;font-size:14px}
.cf-dropin-feature{padding:36px 30px;background:linear-gradient(145deg,#eff8ff,#e1f0fb);border:1px solid #cde4f4;border-top:5px solid #f68a1e;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}
.cf-dropin-feature h3{font-size:29px;font-weight:750;line-height:1.16;color:#184e7e;margin:4px 0 15px}
.cf-dropin-feature p{color:#344c61;font-size:15px;line-height:1.65}
.cf-dropin-feature .button{margin-top:9px}
.cf-home-original{padding-top:46px;background:#f7fbff}
.cf-home-original .cf-source-content{max-width:970px}
.cf-home-original .cf-source-content>img:first-child{max-height:230px;object-fit:contain}
.cf-latest-home{background:#f7fafc}
.cf-news-grid{gap:20px}
.cf-news-item{box-shadow:none;border:1px solid #dbe8ef;border-top:3px solid #f68a1e;padding:23px}
.cf-bottom-cta{background:#dceefa;padding:30px 0;border-top:1px solid #bbdbef}
.cf-bottom-cta .container{display:flex;align-items:center;justify-content:space-between;gap:30px}
.cf-bottom-cta h2{font-size:27px;color:#174d7c;margin:0}
/* Internal pages: restore the approved pale-blue image-led masthead. */
.cf-page-banner{background:#e5f3fd;position:relative;overflow:hidden;border-bottom:1px solid #cce4f6}
.cf-page-banner-grid{display:grid;grid-template-columns:1fr .62fr;align-items:stretch;min-height:210px;position:relative}
.cf-page-banner-copy{padding:36px 38px 36px 0;align-self:center;position:relative;z-index:1}
.cf-page-banner .breadcrumb{font-size:13px;color:#3e6681;padding:0;margin:0 0 18px}
.cf-page-banner .breadcrumb a{color:#195b8e;text-decoration:underline;text-underline-offset:3px}
.cf-page-banner h1{color:#174c7c;font-size:clamp(30px,3.2vw,45px);line-height:1.17;letter-spacing:-.025em;font-weight:750;margin:0;max-width:700px}
.cf-page-banner-image{overflow:hidden;position:relative;min-height:210px}
.cf-page-banner-image:before{content:"";z-index:1;position:absolute;inset:0;background:linear-gradient(90deg,#e5f3fd 0%,#e5f3fdb0 16%,transparent 65%)}
.cf-page-banner-image img{width:100%;height:100%;object-fit:cover;object-position:center 40%;display:block;position:absolute;inset:0}
.cf-page-section{padding:47px 0 68px}
.cf-page-layout{gap:45px}
.cf-source-content{font-size:16px;line-height:1.75;color:#2d4353;overflow-wrap:break-word}
.cf-page-layout:not(:has(.cf-page-aside)) .cf-source-content{max-width:1010px}
.cf-source-content :is(h1,h2,h3,h4){color:#1a527f;font-weight:750;line-height:1.3;letter-spacing:-.014em;overflow-wrap:anywhere}
.cf-source-content h1{font-size:clamp(25px,2.4vw,33px)!important}
.cf-source-content h2{font-size:clamp(23px,2.3vw,30px)}
.cf-source-content h3{font-size:clamp(20px,1.9vw,25px)}
.cf-source-content p{margin:0 0 17px;line-height:1.72}
.cf-source-content table{max-width:100%;font-size:14.5px;line-height:1.55}
.cf-source-content th,.cf-source-content td{overflow-wrap:break-word}
.cf-page-aside{background:#f0f8fd;border-top:4px solid #f68a1e;padding:23px}
.cf-page-aside h2{font-size:22px;color:#184e7c}
/* Footer stays brand-led; Fifteen Fold credit is deliberately quiet. */
.site-footer{background:#143e60;padding-top:42px}
.footer-grid{gap:40px}
.site-footer h3{font-weight:750;font-size:16px}
.footer-brand strong{font-size:19px}
.footer-bottom{color:#bad0df;padding-block:14px;font-size:12px}
.cf-design-credit{font-size:11px;letter-spacing:.005em;color:#9db4c4}
.cf-design-credit a{font-size:11px!important;color:#bdd1de!important;text-decoration:none;border-bottom:1px solid #68839a}
.cf-design-credit a:hover{color:#fff!important;border-bottom-color:#fff}
/* Animations from the editorial TheBuilt interaction language: discreet and optional. */
@media(prefers-reduced-motion:no-preference){
 .cf-hero-home .hero-content{animation:cfHeroIn .72s cubic-bezier(.2,.65,.2,1) both}
 .cf-hero-home .hero-image{animation:cfPhotoIn 1s cubic-bezier(.2,.6,.2,1) both}
 .cf-quicklinks a:hover{transform:translateY(-2px)}
 .cf-course-spotlight img{transition:transform .35s ease}
 .cf-course-spotlight:hover img{transform:scale(1.025)}
 .cf-reveal-ready [data-reveal]{opacity:0;transform:translateY(20px);transition:opacity .6s ease,transform .6s cubic-bezier(.2,.65,.2,1)}
 .cf-reveal-ready [data-reveal].is-visible{opacity:1;transform:none}
 @keyframes cfHeroIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
 @keyframes cfPhotoIn{from{opacity:.6;transform:scale(1.035)}to{opacity:1;transform:none}}
}
@media(max-width:1170px){
 .nav-link,.primary-nav .nav-link{padding-inline:10px;font-size:11.4px}
 .primary-nav>.menu-item.has-children>.nav-link{padding-right:4px}
 .nav-cta{padding-inline:12px;font-size:12px}
}
@media(max-width:980px){
 .cf-quicklinks .container{grid-template-columns:repeat(2,minmax(0,1fr))}
 .cf-quicklinks a{border-bottom:1px solid #bbd7e8}
 .cf-intro-grid{grid-template-columns:.9fr 1.1fr;gap:26px}
 .cf-home-lower{gap:20px}
 .cf-page-banner-grid{grid-template-columns:1fr .55fr}
}
/* Tablet and mobile: native, predictable menu with accessible submenus. */
@media(max-width:900px){
 .container{width:min(calc(100% - 36px),1190px)}
 .brandbar .container{min-height:90px}
 .brandbar .smile{width:65px;height:61px}
 .brand-title{font-size:clamp(25px,3.6vw,32px)}
 .brand-sub{font-size:11px}
 .brand-award{width:81px;height:65px}
 .nav-shell{position:sticky;top:0}
 .admin-bar .nav-shell{top:32px}
 .menu-toggle{display:flex;border:0;padding:10px 12px 10px 0;min-height:52px}
 .nav-row{position:relative;min-height:52px;align-items:center;gap:10px}
 .nav-row>.primary-nav{display:none;position:absolute;top:100%;left:-18px;right:-18px;flex-direction:column;background:#155a90;max-height:min(calc(100dvh - 112px),650px);overflow:auto;overscroll-behaviour:contain;padding:8px 18px 17px;box-shadow:0 15px 24px #133a5d42}
 .nav-row>.primary-nav.open{display:flex}
 .primary-nav>.menu-item{display:flex;flex-wrap:wrap;align-items:center;width:100%;border-bottom:1px solid #5087af}
 .primary-nav .nav-link,.nav-row>.primary-nav>.nav-link{display:flex;flex:1;font-size:15px;min-height:49px;white-space:normal;border:0;background:transparent;padding:11px 9px}
 .primary-nav .nav-link.active{border:0;color:#fff1e3;box-shadow:inset 4px 0 0 var(--orange)}
 .primary-nav .cf-submenu,.primary-nav>.menu-item:hover>.cf-submenu,.primary-nav>.menu-item:focus-within>.cf-submenu{display:none;position:static;box-shadow:none;flex-basis:100%;min-width:0;background:#104d7d;margin:0 0 8px 0;padding:0 0 4px 14px}
 .primary-nav>.menu-item.submenu-open>.cf-submenu{display:block}
 .primary-nav .cf-submenu .nav-link{min-height:44px;padding:9px 14px;font-size:14px}
 .cf-submenu-toggle{display:block;flex:none;min-width:48px;min-height:48px;padding:10px;color:white}
 .cf-submenu-toggle[aria-expanded=true] span{display:inline-block;transform:rotate(180deg)}
 .nav-cta{min-height:39px;padding:10px 18px;font-size:13px}
 .cf-hero-home,.cf-hero-home .container{min-height:390px}
 .cf-hero-home .hero-content{max-width:480px}
 .cf-hero-home h1{font-size:clamp(31px,4.3vw,43px)}
 .cf-hero-home .hero-image{width:61%}
 .cf-hero-home:before{background:linear-gradient(90deg,#e5f4ff 0%,#e0f2ff 40%,#e0f2ffeb 54%,#dceaf86b 83%,transparent)}
 .cf-home-lower{grid-template-columns:1fr}
 .cf-dropin-feature{padding:26px 30px}
}
@media(max-width:600px){
 html{scroll-padding-top:70px}
 .container{width:calc(100% - 32px)}
 .info-bar .container{min-height:32px}
 .info-bar .info-right{justify-content:center;gap:18px;font-size:11px}
 .info-bar .info-left{display:none}
 .brandbar .container{min-height:75px;gap:8px}
 .brandbar .branding{gap:8px}
 .brandbar .smile{width:54px;height:50px;flex:none}
 .brand-title{font-size:clamp(21px,6vw,28px);letter-spacing:-.05em;white-space:normal}
 .brand-sub{font-size:9.5px;line-height:1.15;margin-top:3px}
 .brand-award{width:55px;height:47px;min-width:45px}
 .nav-row>.primary-nav{left:-16px;right:-16px;max-height:calc(100dvh - 125px)}
 .admin-bar .nav-shell{top:46px}
 .menu-toggle{min-height:53px}
 .nav-cta{font-size:12px;min-height:41px}
 .cf-hero-home{display:flex;flex-direction:column;min-height:0;background:#e7f5ff}
 .cf-hero-home:before{display:none}
 .cf-hero-home .container{order:1;min-height:0;display:block;padding:0}
 .cf-hero-home .hero-content{padding:29px 0 29px;max-width:100%}
 .cf-hero-home .hero-image{position:relative;order:2;display:block;width:100%;height:216px;object-position:center 37%;z-index:auto}
 .cf-hero-home h1{font-size:clamp(28px,7.8vw,37px);font-weight:750;line-height:1.14;letter-spacing:-.028em;max-width:530px;margin-bottom:13px}
 .cf-hero-kicker{font-size:10.5px;letter-spacing:.035em;margin-bottom:11px}
 .cf-hero-home .lead{font-size:15px;margin:0 0 20px;line-height:1.5}
 .cf-hero-home .button-row{gap:8px}
 .cf-hero-home .button{min-height:44px;padding:10px 13px;font-size:12px}
 .cf-intro{padding-block:34px}
 .cf-intro-grid{grid-template-columns:1fr;gap:20px}
 .cf-intro-media img{height:196px}
 .cf-intro-copy h2{font-size:27px}
 .cf-quicklinks .container{grid-template-columns:1fr 1fr;width:100%}
 .cf-quicklinks a{font-size:12px;line-height:1.3;padding:14px 11px;min-height:66px;gap:7px;border-left:0!important}
 .cf-quicklinks span{font-size:16px}
 .section{padding-block:40px}
 .cf-home-section-top{align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:18px}
 .cf-home-section-top h2{font-size:26px}
 .cf-home-lower{gap:18px}
 .cf-course-spotlight{grid-template-columns:90px minmax(0,1fr) 16px;gap:11px;min-height:93px;padding:12px 0}
 .cf-course-spotlight img{width:90px;height:70px}
 .cf-course-spotlight strong{font-size:14.5px;margin-bottom:3px}
 .cf-course-spotlight small{font-size:12px;line-height:1.4}
 .cf-course-mark{font-size:24px}
 .cf-dropin-feature{padding:24px 20px}
 .cf-dropin-feature h3{font-size:25px}
 .cf-bottom-cta .container{align-items:stretch;flex-direction:column;gap:15px}
 .cf-bottom-cta h2{font-size:25px}
 .cf-bottom-cta .button{width:100%}
 .cf-page-banner-grid{grid-template-columns:minmax(0,1fr);min-height:0}
 .cf-page-banner-copy{padding:28px 0 30px}
 .cf-page-banner h1{font-size:clamp(28px,7.4vw,37px);line-height:1.18}
 .cf-page-banner .breadcrumb{font-size:12px;margin-bottom:11px}
 .cf-page-banner-image{display:none}
 .cf-page-section{padding:30px 0 42px}
 .cf-source-content{font-size:16px;line-height:1.7}
 .cf-source-content h1{font-size:25px!important}
 .cf-source-content h2{font-size:23px}
 .cf-source-content h3{font-size:20px}
 .cf-source-content p{line-height:1.7}
 .cf-news-grid{grid-template-columns:1fr}
 .cf-news-item{padding:19px}
 .footer-grid{grid-template-columns:1fr;gap:24px}
 .site-footer{padding-top:34px}
 .footer-bottom{gap:8px}
}
@media(max-width:365px){
 .brand-award{display:none}
 .brandbar .smile{width:49px;height:45px}
 .brand-title{font-size:23px}
 .cf-hero-home .button-row{flex-direction:column;align-items:stretch}
 .cf-hero-home .button{width:100%}
 .cf-hero-home h1{font-size:29px}
 .nav-cta{font-size:11px}
}
@media(prefers-reduced-motion:reduce){
 *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behaviour:auto!important}
 [data-reveal]{opacity:1!important;transform:none!important}
}
/* Final QA fixes: prior prototype's mobile container background must not override the approved light hero. */
@media(max-width:600px){.cf-hero-home .container{background:#e7f5ff!important}}
@media(prefers-reduced-motion:no-preference){
 .cf-reveal-ready [data-reveal]{opacity:1;transform:translateY(8px)}
 .cf-reveal-ready [data-reveal].is-visible{opacity:1;transform:none}
}

@media(max-width:600px){.cf-source-content table:not(.cf-smart-table){display:block;overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch}}
