@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@500;600;700&display=swap');
body { color: #10264a; background: #f7fbff; }
h1,h2,h3,h4,h5,.h1,.h2,.h3 { font-family: 'Space Grotesk', sans-serif; font-weight: 700; letter-spacing: -.025em; }
.navbar.fixed-top { background: #fff !important; border-bottom: 1px solid #e7edf5; box-shadow: 0 8px 25px rgba(16,38,74,.05); }
.navbar-brand img.logo { max-height: 48px; width: auto; }
.primary-navigation .navigation .nav-link { font-weight: 700; color: #10264a; }
.primary-navigation .navigation .nav-link.active { color: #087f7a; border-color: #08a59e; }
#page.drawers .main-inner { background: #fff; border-radius: 24px; border: 1px solid #e7edf5; box-shadow: 0 12px 45px rgba(16,38,74,.04); }
.card,.block,.coursebox { border-radius: 22px; border-color: #e7edf5; }
.dashboard-card { overflow: hidden; box-shadow: 0 12px 35px rgba(16,38,74,.06); transition: box-shadow .2s; }
.dashboard-card:hover { box-shadow: 0 18px 45px rgba(16,38,74,.11); }
.dashboard-card .dashboard-card-img { min-height: 180px; }
.dashboard-card .coursename { font-size: 1.2rem; font-family: 'Space Grotesk'; font-weight: 700; }
.btn { border-radius: 13px; font-weight: 700; }
.btn-primary { background-color: #08a59e; border-color: #08a59e; box-shadow: 0 9px 22px rgba(8,165,158,.13); }
.btn-primary:hover,.btn-primary:focus { background-color: #087f7a; border-color: #087f7a; }
.drawer { background: #f0f8f8; }
.courseindex .courseindex-item.pageitem { background: #087f7a; border-radius: 12px; }
.activity-item { border-radius: 18px; }
.pagelayout-login { background-size: cover; background-position: center; background-attachment: fixed; }
.login-container { border: 1px solid #e7edf5; border-radius: 28px; background: rgba(255,255,255,.98); padding: 2.5rem; box-shadow: 0 20px 70px rgba(16,38,74,.1); }
.login-logo img { max-height: 115px; }
#page-footer { color: #10264a; }
.modal-content { border-radius: 24px; }
.form-control { border-radius: 12px; }
a:focus-visible,button:focus-visible { outline: 3px solid #2563eb; outline-offset: 3px; }
@media (max-width: 767.98px) { .login-container { padding: 1.5rem; } #page.drawers .main-inner { border-radius: 18px; } }
@media (prefers-reduced-motion: reduce) { .dashboard-card { transition: none; } }
/* Branded public portal, native login/signup forms and the shared academy footer. */
.ct-portal-page,.ct-auth-page { padding-top: 0; background: #fff; }
.ct-auth-page.pagelayout-login { background-image: none !important; }
.ct-container { width: 90%; max-width: 1280px; margin: 0 auto; }
.ct-portal,.ct-auth,.ct-nav,.ct-footer { font-family: 'DM Sans',sans-serif; color: #10264a; }
.ct-nav { background: #fff; border-bottom: 1px solid #e7edf5; padding: 18px 0; }
.ct-nav-inner { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.ct-brand img { width: 180px; height: auto; display: block; }
.ct-nav nav { display: flex; gap: 24px; align-items: center; }
.ct-nav nav a { color: #10264a; font-weight: 700; font-size: 14px; text-decoration: none; }
.ct-nav-actions { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.ct-nav-actions .ct-button { padding: 11px 17px; font-size: 13px; }
.ct-admin { font-size: 12px; font-weight: 700; }
.ct-button { display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 15px 23px; border-radius: 14px; font-size: 15px; font-weight: 700; border: 1.5px solid transparent; text-decoration: none !important; cursor: pointer; }
.ct-primary { color: #fff !important; background: #087f7a; border-color: #087f7a; box-shadow: 0 12px 25px #08b9b122; }
.ct-primary:hover { background: #066963; }
.ct-outline { color: #10264a !important; border-color: #b9c6d7; background: #fff; }
.ct-light { background: #fff; color: #10264a !important; }
.ct-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 30px; }
.ct-kicker { display: inline-block; background: #e8faf8; color: #087f7a; border-radius: 99px; padding: 8px 14px; font-size: 12px; font-weight: 700; }
.ct-split { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 65px; }
.ct-hero { padding: 80px 0 90px; background: linear-gradient(140deg,#f1fafb,#f5f6ff); }
.ct-hero h1 { font: 700 clamp(45px,5.2vw,76px)/1.02 'Space Grotesk',sans-serif; letter-spacing: -3px; margin: 23px 0; }
.ct-hero h1 em { color: #087f7a; font-style: normal; }
.ct-hero p { font-size: 18px; color: #53657d; }
.ct-hero-visual { position: relative; }
.ct-hero-visual>img { width: 100%; height: 510px; object-fit: cover; border-radius: 35px; box-shadow: 0 25px 65px #10264a18; }
.ct-photo-note { position: absolute; bottom: 22px; left: 22px; padding: 13px 19px; background: #fff; border-radius: 15px; font-weight: 700; }
.ct-section { padding: 90px 0; }
.ct-tint { background: #f7fbff; }
.ct-dark { background: #10264a; color: #fff; }
.ct-heading { margin-bottom: 30px; }
.ct-heading h2 { font: 700 clamp(34px,4.2vw,55px)/1.06 'Space Grotesk',sans-serif; letter-spacing: -1.7px; margin: 19px 0; max-width: 850px; }
.ct-heading p { color: #66758a; font-size: 17px; }
.ct-dark h2 { color: #fff; }
.ct-dark .ct-heading p { color: #c8d5e7; }
.ct-course-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 22px; }
.ct-course-card { background: #fff; border: 1px solid #e7edf5; border-radius: 24px; overflow: hidden; box-shadow: 0 12px 35px #10264a09; }
.ct-course-card>img { width: 100%; height: 205px; object-fit: cover; }
.ct-course-card>div { padding: 25px; }
.ct-course-card h3 { font: 700 24px/1.2 'Space Grotesk'; margin: 12px 0; }
.ct-course-card p { color: #66758a; font-size: 14px; }
.ct-eyebrow { text-transform: uppercase; color: #087f7a; font-size: 10px; letter-spacing: .8px; font-weight: 700; }
.ct-text-link { color: #087f7a; font-weight: 700; font-size: 14px; text-decoration: none; }
.ct-search { background: #fff; padding: 22px; border: 1px solid #e7edf5; border-radius: 20px; margin: 25px 0 20px; }
.ct-search label { display: block; font-size: 12px; font-weight: 700; margin-bottom: 10px; }
.ct-search>div { display: flex; gap: 14px; }
.ct-search input { min-width: 0; flex: 1; border: 1px solid #d8e3ed; border-radius: 12px; padding: 13px 16px; font: inherit; background: #f9fbff; }
.ct-search-status,.ct-empty { color: #66758a; font-size: 14px; margin-bottom: 25px; }
.ct-photo { display: block; width: 100%; height: 400px; object-fit: cover; border-radius: 30px; }
.ct-checks { padding: 0; list-style: none; margin: 25px 0; }
.ct-checks li { margin-bottom: 16px; }
.ct-checks li:before { content: '✓'; color: #087f7a; background: #e8faf8; border-radius: 99px; padding: 4px 8px; margin-right: 11px; }
.ct-fine { font-size: 12px !important; color: #66758a; margin-top: 25px; }
.ct-native-hidden { display: none; }
.ct-native-editing { padding: 40px 0; border-top: 1px solid #e7edf5; }
.ct-menu-toggle { display: none; background: #edf8f7; border: 0; color: #10264a; width: 45px; height: 45px; border-radius: 12px; font-size: 23px; }
.ct-mobile-nav { padding: 15px 5%; border-top: 1px solid #e7edf5; }
.ct-mobile-nav>a { display: block; padding: 12px 0; }
.ct-mobile-nav .ct-button { margin: 10px 0; padding: 14px; }
.ct-skip { position: absolute; top: -200px; left: 20px; padding: 12px; background: #fff; z-index: 500; }
.ct-skip:focus { top: 5px; }
.ct-auth { background: linear-gradient(145deg,#f2fafb,#f7f6ff); padding: 65px 0 80px; }
.ct-auth-grid { display: grid; grid-template-columns: .95fr 1.05fr; gap: 65px; align-items: start; }
.ct-auth-story { position: sticky; top: 30px; }
.ct-auth-story h1 { font: 700 clamp(40px,4.5vw,63px)/1.05 'Space Grotesk'; letter-spacing: -2px; margin: 22px 0; }
.ct-auth-story>p { font-size: 18px; color: #66758a; }
.ct-auth-story>img { width: 100%; height: 320px; object-fit: cover; border-radius: 28px; margin: 30px 0 22px; }
.ct-auth-note { background: #10264a; border-radius: 20px; color: #fff; padding: 23px; }
.ct-auth-note p { font-size: 14px; margin: 7px 0 0; color: #c8d5e7; }
.ct-auth-card { background: #fff; border: 1px solid #e7edf5; box-shadow: 0 15px 60px #10264a0b; border-radius: 30px; padding: 40px; }
.ct-auth-card>h2 { font: 700 36px/1.1 'Space Grotesk'; margin: 18px 0; }
.ct-auth-intro { color: #66758a; font-size: 14px; }
.ct-native-form { margin-top: 28px; }
.ct-native-form .loginform { max-width: none; }
.ct-native-form .login-logo,.ct-native-form .login-heading { display: none; }
.ct-native-form .mform .fitem { display: block; margin-left: 0; margin-right: 0; margin-bottom: 22px; }
.ct-native-form .mform .col-form-label,.ct-native-form .mform .felement { width: 100%; max-width: 100%; flex: 0 0 100%; padding-left: 0; padding-right: 0; }
.ct-native-form .mform .col-form-label { padding-top: 0; padding-bottom: 8px; font-size: 13px; font-weight: 700; }
.ct-native-form .form-control,.ct-native-form select { width: 100%; background: #f9fbff; border: 1px solid #d5e0ed; border-radius: 12px; min-height: 47px; font-size: 15px; }
.ct-native-form textarea { min-height: 100px; }
.ct-native-form .btn-primary { color: #fff; font-weight: 700; border-radius: 13px; background: #087f7a; border-color: #087f7a; padding: 13px 22px; }
.ct-native-form .mform .fdescription { margin-left: 0; }
.ct-native-form .mform fieldset { margin-top: 24px; border: 0; padding: 0; }
.ct-native-form .mform legend { width: 100%; margin-bottom: 18px; font: 700 20px 'Space Grotesk'; }
.ct-auth-links { border-top: 1px solid #e7edf5; padding-top: 23px; margin-top: 25px; font-size: 14px; }
.ct-auth-links a { color: #087f7a; font-weight: 700; }
.ct-footer { background: #091b37; color: #fff; padding: 55px 0 25px; margin-top: 0; }
.ct-footer-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 40px; align-items: start; }
.ct-footer .ct-brand { display: block; margin: 0 0 22px; }
.ct-footer .ct-brand img { width: 190px; }
.ct-footer h4 { color: #fff; font: 700 16px 'DM Sans'; margin: 0 0 18px; }
.ct-footer a,.ct-footer p { display: block; color: #aebdd1; font-size: 14px; margin: 0 0 12px; text-decoration: none; overflow-wrap: anywhere; }
.ct-footer-bottom { margin-top: 40px; padding-top: 20px; border-top: 1px solid #ffffff1a; font-size: 12px; color: #8495ad; }
.ct-portal [hidden],.ct-nav [hidden] { display: none !important; }
@media(min-width:995px) and (max-width:1150px) { .ct-nav nav { gap: 12px; } .ct-nav nav a { font-size: 12px; } .ct-brand img { width: 150px; } .ct-nav-actions { gap: 7px; } .ct-nav-actions .ct-button { padding: 10px; } }
@media(max-width:994.98px) { .ct-nav nav,.ct-nav-actions { display: none; } .ct-menu-toggle { display: block; } .ct-split,.ct-auth-grid { gap: 35px; } .ct-course-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } .ct-footer-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } .ct-auth-card { padding: 28px; } .ct-hero h1 { letter-spacing: -2px; } }
@media(max-width:800px) { .ct-split,.ct-auth-grid { grid-template-columns: 1fr; } .ct-hero { padding: 50px 0 65px; } .ct-hero-visual>img { height: 360px; } .ct-auth-story { position: static; } .ct-auth-story>img { height: 260px; } .ct-section { padding: 65px 0; } }
@media(max-width:520px) { .ct-course-grid,.ct-footer-grid { grid-template-columns: 1fr; } .ct-search>div { display: grid; } .ct-photo { height: 280px; } .ct-auth { padding: 35px 0; } .ct-auth-card { padding: 24px; } .ct-auth-card>h2 { font-size: 30px; } .ct-nav .ct-brand img { width: 155px; } }
@media(prefers-reduced-motion:reduce) { .ct-portal *,.ct-auth * { scroll-behavior: auto !important; transition: none !important; } }

/* CHAMPTOP_LOGIN_BUTTON_SPACING_20261016 */
.ct-auth-card .loginform .login-signup {
  margin: 20px 0 14px;
}
.ct-auth-card .loginform #guestlogin {
  margin: 0 0 14px;
}
.ct-auth-card .loginform > .d-flex:last-child {
  margin-top: 0;
}
.ct-auth-card .loginform .login-signup > .btn,
.ct-auth-card .loginform #loginguestbtn,
.ct-auth-card .loginform > .d-flex:last-child > .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  min-height: 44px;
  max-width: 100%;
  margin: 0;
  padding: 11px 18px;
  border: 1px solid #cbd8e6;
  border-radius: 10px;
  background: #f4f7fb;
  color: #16324f;
  font: inherit;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.4;
  text-align: center;
  text-decoration: none;
  white-space: normal;
  cursor: pointer;
}
.ct-auth-card .loginform .login-signup > .btn {
  border-color: #087f7b;
  background: #eef9f8;
  color: #066560;
}
.ct-auth-card .loginform .login-signup > .btn:hover,
.ct-auth-card .loginform #loginguestbtn:hover,
.ct-auth-card .loginform > .d-flex:last-child > .btn:hover {
  border-color: #087f7b;
  background: #e4f3f1;
  color: #064e4b;
}
.ct-auth-card .loginform .login-signup > .btn:focus-visible,
.ct-auth-card .loginform #loginguestbtn:focus-visible,
.ct-auth-card .loginform > .d-flex:last-child > .btn:focus-visible {
  outline: 3px solid #087f7b;
  outline-offset: 3px;
}
/* END_CHAMPTOP_LOGIN_BUTTON_SPACING_20261016 */


/* CHAMPTOP_NATIVE_GUEST_COURSE_20261016 */
.ct-native-guest{width:100%;max-width:100%;box-sizing:border-box;color:#18304f;font-size:15px;line-height:1.65;overflow-wrap:anywhere}
.ct-native-guest *{box-sizing:border-box;min-width:0}
.ct-native-guest-banner{padding:24px;border-radius:16px;background:linear-gradient(120deg,#ece6ff,#e9f8f5);margin:0 0 20px}
.ct-native-guest-banner>span{display:inline-block;background:#ffedab;color:#624c04;border-radius:20px;padding:5px 10px;font-size:11px;font-weight:700;letter-spacing:.06em}
.ct-native-guest-banner h2{font-size:26px!important;line-height:1.3!important;margin:14px 0 10px!important;letter-spacing:normal!important}
.ct-native-guest-banner p{margin:0;font-weight:600;color:#6840a8}
.ct-native-guest p{margin-bottom:16px}
.ct-native-guest-video{position:relative;width:100%;height:0;padding-top:56.25%;overflow:hidden;border-radius:14px;background:#132947;margin:20px 0 12px}
.ct-native-guest-video iframe{position:absolute;inset:0;display:block;width:100%;height:100%;border:0}
.ct-native-guest-small{font-size:12px;color:#54667d}
.ct-native-guest-actions{display:flex;flex-wrap:wrap;gap:14px;margin:24px 0 18px}
.ct-native-guest-action{display:flex;flex:1 1 230px;align-items:center;gap:14px;min-height:96px;padding:18px;border:1px solid #cbdcf4;border-radius:14px;background:#edf4ff;color:#18304f!important;text-decoration:none!important}
.ct-native-guest-action strong{display:block;font-size:16px;line-height:1.4}
.ct-native-guest-action small{display:block;font-size:12px;margin-top:5px;color:#52647a}
.ct-native-guest-pdf{background:#fff0f5;border-color:#f0cedb}
.ct-native-camera,.ct-native-pdf-icon{display:inline-flex;flex:0 0 44px;width:44px;height:44px;align-items:center;justify-content:center;border-radius:11px;background:#2d6ff2;color:white;font-size:25px;position:relative}
.ct-native-camera:before{content:'';display:block;position:absolute;width:19px;height:14px;background:white;border-radius:3px;left:9px;top:15px}
.ct-native-camera:after{content:'';display:block;position:absolute;width:0;height:0;border-top:7px solid transparent;border-bottom:7px solid transparent;border-right:8px solid white;right:7px;top:15px}
.ct-native-camera{font-size:0}
.ct-native-pdf-icon{background:#cc3c69;font-size:11px;font-weight:800;letter-spacing:.03em}
.ct-native-guest-action:hover{border-color:#087f7b;background:#e6f6f3}
.ct-native-guest-action:focus-visible{outline:3px solid #087f7b;outline-offset:3px}
.ct-native-guest-note{padding:14px 16px;background:#fff9df;border:1px solid #eedb97;border-radius:12px;font-size:13px}
/* END_CHAMPTOP_NATIVE_GUEST_COURSE_20261016 */

/* CHAMPTOP_NATIVE_FOOTER_FLOW_20261016 */
/* Native Boost content can grow taller than the viewport. Keep its wrapper in normal flow. */
body.uses-drawers #page-wrapper {
  height: auto !important;
  min-height: 100vh;
  overflow: visible;
}
body.uses-drawers #page.drawers {
  height: auto !important;
  max-height: none;
  flex: 1 0 auto;
}
body.uses-drawers > footer.ct-footer {
  position: relative;
  inset: auto;
  clear: both;
  box-sizing: border-box;
  width: 100%;
  flex-shrink: 0;
}
/* END_CHAMPTOP_NATIVE_FOOTER_FLOW_20261016 */
