@import url('./fonts.css');
:root{--tf-navy:#112b46;--tf-blue:#0758ac;--tf-ink:#1c344b;--tf-muted:#516476;--tf-line:#dce4ec;--tf-paper:#f3f6f9;--tf-white:#fff;--tf-serif:'Lora',Georgia,serif;--tf-sans:'Plus Jakarta Sans',Arial,sans-serif;--tf-radius:12px;--tf-width:1200px;--tf-space:clamp(56px,7vw,100px)}
.tf-header,.tf-footer,.tf-home{font-family:var(--tf-sans);font-size:15px;line-height:1.7;color:var(--tf-ink);text-align:left}
.tf-header *,.tf-footer *,.tf-home *{box-sizing:border-box}
.tf-header a,.tf-footer a,.tf-home a{text-decoration:none}
.tf-header button,.tf-home button{font:inherit;cursor:pointer}
.tf-header svg,.tf-footer svg,.tf-home svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.tf-wrap{width:min(var(--tf-width),calc(100% - 64px));margin-inline:auto}
.tf-home h1,.tf-home h2,.tf-home h3,.tf-home p,.tf-home figure{margin:0}
.tf-home h1,.tf-home h2{font-family:var(--tf-serif);font-weight:500;letter-spacing:-.035em;line-height:1.17;color:var(--tf-navy)}
.tf-home h1{font-size:clamp(40px,4.7vw,66px)}
.tf-home h2{font-size:clamp(30px,3.1vw,43px)}
.tf-home h3{font-size:20px;line-height:1.4;font-weight:600;letter-spacing:-.02em}
.tf-home p{color:var(--tf-muted)}
.tf-eyebrow{font-size:11px!important;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--tf-blue)!important;margin-bottom:16px!important;display:block}
.tf-button{display:inline-flex;align-items:center;justify-content:center;gap:14px;min-height:48px;padding:12px 22px;border:1px solid transparent;border-radius:5px;font-weight:600;font-size:13px;line-height:1.5;background:var(--tf-blue);color:white!important;transition:background .18s,transform .18s}
.tf-button:hover{background:#064887;transform:translateY(-2px)}
.tf-button--outline{color:var(--tf-navy)!important;border-color:#bac9d8;background:transparent}
.tf-button--outline:hover{background:#eaf0f6}
.tf-link{display:inline-flex;gap:12px;align-items:center;color:var(--tf-blue);font-size:13px;font-weight:700;min-height:44px}
.tf-link:hover{text-decoration:underline!important;text-underline-offset:5px}
.tf-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.tf-home a:focus-visible,.tf-header a:focus-visible,.tf-header button:focus-visible,.tf-header summary:focus-visible,.tf-footer a:focus-visible{outline:3px solid #2787e7;outline-offset:5px;border-radius:3px}
.tf-skip{position:fixed;top:8px;left:16px;transform:translateY(-160%);z-index:10000;background:white;color:var(--tf-navy);padding:12px 20px;font:600 14px var(--tf-sans)}
.tf-skip:focus{transform:none;outline:3px solid var(--tf-blue)}
.tf-header{background:#fff;border-bottom:1px solid var(--tf-line);position:relative;z-index:700}
/* Prevent legacy page-level nav rules from changing shared desktop/mobile chrome. */
.tf-header nav{position:static;inset:auto;z-index:auto;background:transparent;backdrop-filter:none;border:0;padding:0;height:auto;min-height:0;box-shadow:none;transition:none;align-items:normal;justify-content:normal}
.tf-header .tf-nav{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:86px}
.tf-header .tf-brand,.tf-footer .tf-brand{display:inline-flex;align-items:center;flex-shrink:0}
.tf-header .tf-brand img,.tf-footer .tf-brand img{display:block;width:250px;height:96px;object-fit:contain;border-radius:0;background:transparent}
.tf-desktop{display:flex;align-items:center;gap:24px}
.tf-desktop>a,.tf-dropdown summary{font-size:13px;font-weight:600;color:var(--tf-ink);min-height:44px;display:flex;align-items:center;gap:5px;cursor:pointer}
.tf-desktop a[aria-current=page]{color:var(--tf-blue)}
.tf-desktop>a:hover,.tf-dropdown summary:hover{color:var(--tf-blue)}
.tf-dropdown{position:relative}
.tf-dropdown.active>summary{color:var(--tf-blue)}
.tf-dropdown-resources .tf-drop-panel{width:280px;max-height:min(70vh,430px);overflow-y:auto}
.tf-dropdown summary{list-style:none}
.tf-dropdown summary::-webkit-details-marker{display:none}
.tf-dropdown summary svg{width:14px;height:14px}
.tf-dropdown[open] summary svg{transform:rotate(180deg)}
.tf-drop-panel{position:absolute;top:calc(100% + 10px);left:-20px;width:255px;background:white;border:1px solid var(--tf-line);padding:8px;border-radius:8px;box-shadow:0 16px 40px #112b461a}
.tf-drop-panel a{display:block;padding:10px 12px;color:var(--tf-ink);font-size:13px;border-radius:4px}
.tf-drop-panel a:hover{background:var(--tf-paper);color:var(--tf-blue)}
.tf-menu-toggle,.tf-menu-close{display:none;background:transparent;border:1px solid var(--tf-line);border-radius:5px;min-width:44px;min-height:44px;color:var(--tf-navy)}
.tf-mobile{border:0;margin:0 0 0 auto;padding:24px;inset:0;width:min(380px,100%);max-width:100%;height:100dvh;max-height:100dvh;background:white;color:var(--tf-navy);overflow:auto}
.tf-mobile::backdrop{background:#0a2038aa}
.tf-mobile-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;font-weight:700}
.tf-menu-close{display:inline-flex;align-items:center;justify-content:center}
.tf-mobile-links{display:grid;gap:4px}
.tf-mobile-links a{color:var(--tf-ink);padding:9px 4px;min-height:44px;display:flex;align-items:center;font-size:14px}
.tf-mobile-links .tf-mobile-label{margin-top:12px;padding-top:12px;border-top:1px solid var(--tf-line);font-size:10px;color:var(--tf-muted);text-transform:uppercase;letter-spacing:.14em}
.tf-footer{background:var(--tf-navy);color:#fff;padding:48px 0 24px}
.tf-footer-grid{display:grid;grid-template-columns:1.3fr .8fr .8fr 1.4fr;gap:40px}
.tf-footer p{color:#c7d4e0;font-size:13px;line-height:1.85;margin:12px 0}
.tf-footer h2{font:600 13px var(--tf-sans);letter-spacing:.03em;color:white;margin:26px 0 18px}
.tf-footer a{color:#d8e3ed;font-size:13px}
.tf-footer a:hover{color:white;text-decoration:underline}
.tf-footer ul{list-style:none;padding:0;margin:0;display:grid;gap:6px}
.tf-footer li a{display:inline-flex;align-items:center;min-height:34px}
.tf-footer address{font-style:normal;font-size:13px;color:#c7d4e0;line-height:1.9}
.tf-socials{display:flex;gap:16px;margin-top:18px}
.tf-socials a{min-height:40px;display:flex;align-items:center}
.tf-footer-bottom{border-top:1px solid #ffffff29;margin-top:40px;padding-top:24px;display:flex;gap:20px;justify-content:space-between;font-size:11px;color:#c7d4e0}
@media(max-width:1100px){.tf-desktop{gap:15px}.tf-header .tf-brand img{width:210px;height:82px}.tf-footer .tf-brand img{width:230px;height:88px}.tf-header .tf-nav{min-height:75px}.tf-footer-grid{gap:24px}}
@media(max-width:950px){.tf-desktop{display:none}.tf-menu-toggle{display:inline-flex;align-items:center;justify-content:center}.tf-footer-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.tf-wrap{width:calc(100% - 40px)}.tf-header .tf-brand img{width:175px;height:68px}.tf-footer .tf-brand img{width:210px;height:80px}.tf-header .tf-nav{min-height:64px}.tf-footer-grid{grid-template-columns:1fr 1fr;gap:16px}.tf-footer-intro,.tf-footer-contact{grid-column:1/-1}.tf-footer-bottom{flex-direction:column;gap:10px}.tf-home h1{font-size:40px}.tf-button{padding:12px 18px}}
@media(prefers-reduced-motion:reduce){.tf-home *,.tf-header *,.tf-footer *{animation:none!important;transition:none!important;scroll-behavior:auto!important}.tf-button:hover{transform:none}}

/* Local course navigation is separate from the common site header. */
.tf-page-back{padding-block:14px;font:500 13px/1.6 var(--tf-sans)}
.tf-page-back-link{display:inline-flex;align-items:center;min-height:36px;color:var(--tf-blue);text-decoration:none}
.tf-page-back-link:hover{text-decoration:underline}
.tf-page-back-link:focus-visible{outline:3px solid #2787e7;outline-offset:4px}

/* Pull only the SVG’s transparent outer space into the header gaps; preserve its rendered size. */
.tf-header .tf-brand img{margin-block:-12px}
.tf-header .tf-account-greeting{max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:1100px){.tf-header .tf-brand img{margin-block:-10px}}
@media(max-width:600px){.tf-header .tf-brand img{margin-block:-8px}}
/* Shared service navigation, with all existing detail pages retained. */
.tf-header .tf-nav{position:relative}.tf-mega{position:static}.tf-mega-panel{left:0;right:0;top:100%;width:auto;padding:24px;max-height:calc(100dvh - 110px);overflow:auto}.tf-mega-columns{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:28px}.tf-mega-columns h2{font:600 18px var(--tf-sans);color:var(--tf-navy);margin:12px 0}.tf-mega-columns a{font-size:12px;padding:8px 0;line-height:1.6}.tf-mega-panel .tf-directory-link{display:flex;align-items:center;gap:12px;color:var(--tf-blue);border-bottom:1px solid var(--tf-line);padding:0 0 16px}.tf-mobile-group{border-top:1px solid var(--tf-line);padding:8px 0}.tf-mobile-group summary{cursor:pointer;font-weight:600;padding:12px 4px;min-height:44px}.tf-mobile-group .tf-mobile-group{margin-left:12px}.tf-mobile-group a{font-size:13px;padding-left:12px}
.tf-standard-banner{min-height:650px!important;height:650px!important}
.tf-standard-banner :is(.tf-button,.btn-teal,.btn-ghost,.btn-pr){min-height:50px;padding:14px 24px;border-radius:2px;font-size:14px;line-height:1.4;display:inline-flex;align-items:center;justify-content:center}
.tf-standard-banner .tf-button-light,.tf-standard-banner .btn-teal{background:#fff;color:#103857;border-color:#fff}
.tf-standard-banner .tf-button--outline,.tf-standard-banner .btn-ghost{background:transparent;color:#fff;border-color:#a4b9cb}
@media(max-width:800px){.tf-standard-banner{min-height:610px!important;height:610px!important}}
@media(max-width:600px){.tf-standard-banner{min-height:650px!important;height:650px!important}.tf-standard-banner :is(.tf-button,.btn-teal,.btn-ghost,.btn-pr){padding:12px 18px}}

/* One CTA system across banners, sections, cards and the shared CTA card. */
html body :is(.tf-button,.btn-teal,.btn-ghost,.btn-pr,.btn-ol,.cta-btn,.cta-btn-w,.cta-btn-o,.tf-cta-button){box-sizing:border-box;min-height:50px!important;padding:14px 24px!important;border-radius:2px!important;font-size:14px!important;font-weight:700;line-height:1.4;display:inline-flex;align-items:center;justify-content:center;gap:14px;text-decoration:none}
html body :is(.tf-button,.btn-teal,.btn-pr,.cta-btn-w,.tf-cta-button){background:#fff;color:#103857!important;border:1px solid #fff}
html body :is(.tf-button--outline,.btn-ghost,.btn-ol,.cta-btn-o){background:transparent;color:#fff!important;border:1px solid #a4b9cb}
html body :is(.tf-button,.btn-teal,.btn-ghost,.btn-pr,.btn-ol,.cta-btn,.cta-btn-w,.cta-btn-o,.tf-cta-button) svg{width:22px;height:22px;flex:0 0 auto}
html body :is(.tf-button,.btn-teal,.btn-ghost,.btn-pr,.btn-ol,.cta-btn,.cta-btn-w,.cta-btn-o,.tf-cta-button):hover{transform:translateY(-2px)}
@media(max-width:600px){html body :is(.tf-button,.btn-teal,.btn-ghost,.btn-pr,.btn-ol,.cta-btn,.cta-btn-w,.cta-btn-o,.tf-cta-button){min-height:48px!important;padding:12px 18px!important}}
html body .tf-header .tf-button{background:var(--tf-blue);color:#fff!important;border-color:var(--tf-blue)}
