/* OOTB registration form - one design system, feedback 49.
   Every control shares ONE style block: same height, border, radius, padding,
   type size and label spacing. Fields are never styled one at a time, which is
   what let the Grade select and the Student Email input drift apart. */
.ootb-reg{
  --navy:#0B3D57;
  --green:#23A455;          /* the site's own primary green */
  --deep:#1B8244;           /* hover / pressed */
  --ink:#1E313C;          /* feedback 50: the typed text was too light */
  --mute:#54697A;
  --line:#BDC9D3;           /* form control border */
  --line-hover:#9FADB9;
  --card-line:#E2E9EE;      /* cards sit BEHIND the controls */
  --tint:#F7F9FB;
  --ring:rgba(35,164,85,.12);
  --ctl:50px;
  max-width:940px;margin:0 auto;color:var(--ink);
  font-size:16.5px;line-height:1.5}
.ootb-reg *{box-sizing:border-box}
.ootb-reg h1,.ootb-reg h2,.ootb-reg h3,.ootb-reg h4,.ootb-reg h5{color:var(--navy);margin:0}

/* ---------------------------------------------------------- typography */
.ootb-head{margin:0 0 6px}
.ootb-reg .ootb-head h1{font-size:35px;font-weight:800;line-height:1.14;
  letter-spacing:-.4px}
.ootb-kicker{margin:10px 0 0;color:var(--mute);font-size:17px;line-height:1.5}
.ootb-reg h2.ootb-sub{font-size:25px !important;font-weight:700 !important;
  color:var(--navy) !important;line-height:1.25;margin:0 0 6px !important}
.ootb-lede{margin:0 0 20px;color:var(--mute);font-size:16.5px;line-height:1.5}
.ootb-help{margin:16px 0 0;color:var(--mute);font-size:15.5px;line-height:1.5}
.ootb-hint{margin:9px 0 0;font-size:15.5px;color:var(--mute);line-height:1.5}
.ootb-muted{color:var(--mute);font-size:14.5px;margin:0 0 12px}

/* ---------------------------------------------------------- stepper */
.ootb-steps{display:flex;gap:14px;list-style:none;margin:20px 0 26px;padding:0 0 18px;
  border-bottom:1px solid var(--card-line);counter-reset:none;flex-wrap:wrap}
.ootb-steps li::before,.ootb-steps li::marker{content:none !important;display:none}
.ootb-steps li{display:flex;align-items:center;gap:9px;font-size:14.5px;
  font-weight:600;color:#7E91A0;background:none !important;border:0 !important;
  box-shadow:none !important;padding:0 !important;margin:0 !important;
  list-style:none !important;min-height:0}
.ootb-steps li span{font-size:15.5px;font-weight:600;line-height:1.4}
.ootb-steps li i{width:24px;height:24px;border-radius:50%;background:#DDE5EB;
  color:#fff;font-style:normal;font-size:12.5px;font-weight:700;display:flex;
  align-items:center;justify-content:center;flex:none}
.ootb-steps li:nth-child(1) i::after{content:"1"}
.ootb-steps li:nth-child(2) i::after{content:"2"}
.ootb-steps li:nth-child(3) i::after{content:"3"}
.ootb-steps li.on{color:var(--navy)}
.ootb-steps li.on i{background:var(--green)}
.ootb-steps li.done{color:var(--deep)}
.ootb-steps li.done i{background:var(--deep)}
.ootb-steps li.done i::after{content:"\2713" !important}

.ootb-step{border:0;padding:0;margin:0 0 22px}
.ootb-js .ootb-step{display:none;margin:0}
.ootb-js .ootb-step.on{display:block}

/* ---------------------------------------------------------- cards */
.ootb-card{background:var(--tint);border:1px solid var(--card-line);
  border-radius:14px;padding:20px 24px;margin:0 0 16px}
.ootb-reg .ootb-card h3{font-size:17.5px;font-weight:700;margin:0 0 15px}
.ootb-card h5{font-size:14px;text-transform:uppercase;letter-spacing:1px;
  color:var(--mute);font-weight:700;margin:0 0 9px}
.ootb-card-top{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.ootb-card-top h3,.ootb-card-top h4{margin:0 0 14px}

/* ---------------------------------------------------------- THE control */
.ootb-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}
.ootb-reg label{display:block;margin:0}
.ootb-grid > label,.ootb-course-pick,.ootb-email-card label{
  display:flex;flex-direction:column}
/* The two display rules above out-rank the browser's own [hidden] rule, which
   is how the Student Email label stayed on screen for Grades 1-8 even though
   the script had marked it hidden. Anything the script hides must disappear,
   whatever display value it was given. */
.ootb-reg [hidden]{display:none !important}
.ootb-fl{display:block;font-size:15.5px;font-weight:600;color:var(--navy);
  line-height:20px;min-height:20px;margin:0 0 7px}
.ootb-fl em,.ootb-reg label em{font-style:normal;font-weight:600;color:#7C8D9B;
  font-size:13.5px;margin-left:7px}
.ootb-lbl{display:block;font-size:15.5px;font-weight:600;color:var(--navy);
  line-height:20px;margin:0 0 7px;text-transform:none;letter-spacing:0}
.ootb-reg input[type=text],.ootb-reg input[type=email],.ootb-reg input[type=tel],
.ootb-reg input[type=date],.ootb-reg select,.ootb-reg textarea{
  width:100%;margin:0;height:var(--ctl);min-height:var(--ctl);
  padding:0 14px;border:1px solid var(--line);border-radius:10px;background:#fff;
  font-family:inherit;font-size:16.5px;font-weight:500;line-height:normal;color:var(--ink);
  -webkit-appearance:none;appearance:none;transition:border-color .15s,box-shadow .15s}
.ootb-reg textarea{height:auto;min-height:96px;padding:12px 14px;line-height:1.5;
  resize:vertical}
.ootb-reg select{padding-right:38px;cursor:pointer;
  background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%235F7383' d='M1.4 0 6 4.6 10.6 0 12 1.4 6 7.4 0 1.4z'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center}
.ootb-reg input:hover,.ootb-reg select:hover,.ootb-reg textarea:hover{
  border-color:var(--line-hover)}
.ootb-reg input:focus,.ootb-reg select:focus,.ootb-reg textarea:focus{
  outline:none;border-color:var(--green);box-shadow:0 0 0 3px var(--ring)}
.ootb-reg small{display:block;margin-top:7px;font-size:15px;font-weight:500;
  color:var(--mute);line-height:1.5}
.ootb-reg small.is-info{color:var(--deep)}
.ootb-bad,.ootb-bad input,.ootb-bad select{border-color:#C0483C !important}
.ootb-bad:focus{box-shadow:0 0 0 3px rgba(192,72,60,.12) !important}

/* ---------------------------------------------------------- secondary buttons */
.ootb-add{display:inline-flex;align-items:center;gap:7px;margin-top:16px;
  background:#fff;border:1px solid #C3D3C9;color:var(--deep);
  font-family:inherit;font-weight:700;font-size:15.5px;padding:12px 20px;
  border-radius:10px;cursor:pointer;transition:background .18s,border-color .18s,color .18s}
.ootb-add:hover,.ootb-add:focus-visible{background:rgba(35,164,85,.07);
  border-color:var(--green);color:#157A41;outline:none}
.ootb-add:focus-visible{box-shadow:0 0 0 3px var(--ring)}
.ootb-remove,.ootb-remove-student{background:none;border:0;color:#7C8D9B;
  font-family:inherit;font-size:14px;font-weight:600;cursor:pointer;padding:2px 0;
  text-decoration:underline;text-underline-offset:3px}
.ootb-remove:hover,.ootb-remove-student:hover{color:#B3402F}
.ootb-course-row{display:flex;gap:12px;align-items:flex-end;margin-top:16px}
.ootb-course-row label{flex:1}
.ootb-remove-course{flex:none;width:var(--ctl);height:var(--ctl);border-radius:10px;
  border:1px solid var(--line);background:#fff;color:#7C8D9B;font-size:20px;
  cursor:pointer;line-height:1;transition:border-color .15s,color .15s}
.ootb-remove-course:hover{border-color:#B3402F;color:#B3402F}

/* ---------------------------------------------------------- tutoring cards */
.ootb-stu-block{margin:0 0 28px}
.ootb-stu-head{display:flex;align-items:baseline;gap:12px;margin:0 0 14px;
  padding-bottom:11px;border-bottom:2px solid var(--card-line)}
.ootb-reg .ootb-stu-head h3{font-size:18px;font-weight:700;margin:0}
.ootb-stu-grade{color:var(--mute);font-size:14.5px;font-weight:600}
.ootb-course-card{background:#fff}
.ootb-q{font-size:16.5px;font-weight:600;color:var(--navy);margin:0 0 13px}
.ootb-choice{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.ootb-opt{display:flex;gap:11px;align-items:flex-start;background:#fff;
  border:1px solid var(--line);border-radius:12px;padding:15px 16px;cursor:pointer;
  transition:border-color .15s,background .15s,box-shadow .15s}
.ootb-opt:hover{border-color:var(--line-hover)}
.ootb-opt:has(input:checked){border-color:var(--green);background:rgba(35,164,85,.05);
  box-shadow:inset 0 0 0 1px var(--green)}
.ootb-opt:focus-within{box-shadow:0 0 0 3px var(--ring)}
.ootb-opt input{margin-top:3px;flex:none;width:18px;height:18px;accent-color:var(--green)}
.ootb-opt-body{display:block}
.ootb-opt-body strong{display:block;color:var(--navy);font-size:17px;font-weight:700}
.ootb-opt-price{display:block;color:var(--deep);font-weight:700;font-size:16px;
  margin-top:5px}
.ootb-opt-price2{display:block;color:var(--deep);font-weight:700;font-size:16px}
.ootb-opt-sub{display:block;color:var(--mute);font-size:15.5px;margin-top:6px;
  line-height:1.5}

/* ---------------------------------------------------------- detail panel */
.ootb-course-pick{margin-top:18px}
.ootb-detail{margin-top:18px;background:var(--tint);border:1px solid var(--card-line);
  border-radius:12px;padding:18px 20px}
.ootb-sched{background:#fff;border:1px solid var(--card-line);border-radius:11px;
  padding:14px 16px;margin-bottom:14px}
.ootb-sched-row{display:flex;justify-content:space-between;gap:16px;padding:7px 0;
  font-size:16px;align-items:baseline}
.ootb-sched-row .d{font-weight:700;color:var(--navy)}
.ootb-sched-row .t{color:var(--ink)}
.ootb-sched-row .m{color:var(--mute);font-size:14.5px;font-weight:600;
  white-space:nowrap;margin-left:auto;padding-left:14px}
.ootb-mode{margin:9px 0 0;font-size:14px;color:var(--mute);font-weight:600}
.ootb-addr{margin:11px 0 0;padding-top:11px;border-top:1px solid var(--card-line);
  font-size:13.5px;color:var(--mute);line-height:1.5}
.ootb-req{margin:13px 0 0;font-size:16.5px;font-weight:700;color:var(--navy)}
.ootb-points{margin:0;padding-left:20px}
.ootb-points li{font-size:15.5px;color:var(--ink);margin-bottom:9px;line-height:1.55}
.ootb-days-opts{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:13px}
.ootb-day-opt{display:flex;gap:11px;align-items:flex-start;border:1px solid var(--line);
  border-radius:11px;padding:12px 14px;cursor:pointer;background:#fff;
  transition:border-color .15s,background .15s}
.ootb-day-opt:hover{border-color:var(--line-hover)}
.ootb-day-opt:has(input:checked){border-color:var(--green);background:rgba(35,164,85,.05)}
.ootb-day-opt input{margin-top:3px;flex:none;accent-color:var(--green)}
.ootb-day-opt strong{display:block;color:var(--navy);font-size:16px;font-weight:700}
.ootb-days-note{margin:11px 0 0;font-size:15px;color:var(--mute);line-height:1.5}
.ootb-day-grid{display:flex;flex-wrap:wrap;gap:9px}
.ootb-chip{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);
  border-radius:999px;padding:11px 18px;cursor:pointer;background:#fff;
  font-size:15.5px;font-weight:600;color:var(--navy);transition:border-color .15s,background .15s}
.ootb-chip:hover{border-color:var(--line-hover)}
.ootb-chip:has(input:checked){border-color:var(--green);background:rgba(35,164,85,.06)}
.ootb-chip input{margin:0;accent-color:var(--green)}
.ootb-email-card{background:rgba(35,164,85,.05);border-color:#CFE6D9}

/* ---------------------------------------------------------- summaries */
.ootb-live{background:rgba(35,164,85,.05);border-color:#CFE6D9}
.ootb-reg .ootb-live h3{font-size:16px;margin:0 0 12px}
.ootb-reg .ootb-live h4{font-size:15px;margin:15px 0 4px}
.ootb-sum-row{display:flex;justify-content:space-between;gap:18px;padding:9px 0;
  border-top:1px solid #DCEAE2}
.ootb-sum-course{font-weight:700;color:var(--navy);font-size:16.5px}
.ootb-sum-meta{color:var(--mute);font-size:15px;margin-top:3px}
.ootb-sum-price{font-weight:600;color:var(--deep);white-space:nowrap;text-align:right;
  font-size:16.5px}
.ootb-sum-price div{font-size:15px}
.ootb-rev h3{font-size:19.5px;font-weight:700;margin:0 0 5px}
.ootb-rev-grade{margin:0 0 13px;color:var(--mute);font-size:15.5px}
.ootb-rev-row{display:flex;justify-content:space-between;gap:20px;padding:13px 0;
  border-top:1px solid var(--card-line)}
.ootb-rev-row:first-of-type{border-top:0;padding-top:0}
.ootb-rev-course{font-weight:700;color:var(--navy);font-size:17px}
.ootb-rev-prog{color:var(--mute);font-size:15.5px;margin-top:3px}
.ootb-rev-sched{display:flex;gap:10px;font-size:15.5px;margin-top:5px}
.ootb-rev-sched .d{font-weight:600;color:var(--navy);min-width:92px}
.ootb-rev-sched .m{color:var(--mute);font-size:13.5px}
.ootb-rev-note{font-size:15px;color:var(--mute);margin-top:5px}
.ootb-rev-price{font-weight:700;color:var(--deep);white-space:nowrap;font-size:17px}
.ootb-totals{background:#fff}
.ootb-tot-row{display:flex;justify-content:space-between;gap:16px;padding:10px 0;
  border-top:1px solid var(--card-line);font-size:17px;color:var(--navy)}
.ootb-tot-row:first-child{border-top:0}
.ootb-tot-row b{font-size:21px}
.ootb-contact{background:#fff}
.ootb-contact-row{display:flex;gap:14px;padding:8px 0;font-size:15.5px}
.ootb-contact-row .k{min-width:190px;color:var(--mute);font-weight:600}

/* ---------------------------------------------------------- agreement */
.ootb-terms{background:#fff;border:1px solid var(--card-line);border-radius:12px;
  padding:16px 18px;margin:0 0 16px}
.ootb-terms h5{margin:0 0 8px}
.ootb-terms ul{margin:0;padding-left:20px}
.ootb-terms li{font-size:15.5px;color:var(--ink);margin-bottom:7px;line-height:1.55}
.ootb-agree{background:rgba(35,164,85,.05);border-color:#CFE6D9}
.ootb-check{display:flex;gap:12px;align-items:flex-start;margin-bottom:16px;
  font-weight:600;color:var(--navy);line-height:1.5;font-size:16.5px}
.ootb-check input{margin-top:2px;width:20px;height:20px;flex:none;accent-color:var(--green)}
.ootb-check.ootb-bad span{color:#B3402F}
.ootb-link{background:none;border:0;padding:0;font:inherit;font-weight:700;
  color:var(--deep);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.ootb-link:hover{color:var(--green)}
.ootb-conf{font-size:16.5px;margin:18px 0 12px !important;padding-top:16px;
  border-top:1px solid #CFE6D9}

/* ---------------------------------------------------------- primary buttons */
.ootb-nav{display:flex;gap:12px;margin-top:24px;align-items:center}
.ootb-nav .ootb-next,.ootb-nav .ootb-submit{margin-left:auto}
.ootb-reg button.ootb-next,.ootb-reg button.ootb-submit,.ootb-reg button.ootb-back{
  font-family:inherit;font-weight:700;font-size:16.5px;padding:15px 32px;
  border-radius:999px;cursor:pointer;border:1px solid transparent;
  transition:background .15s,border-color .15s,color .15s}
.ootb-next,.ootb-submit{background:var(--green);color:#fff;border-color:var(--green)}
.ootb-next:hover,.ootb-submit:hover{background:var(--deep);border-color:var(--deep);
  color:#fff}
.ootb-next:focus-visible,.ootb-submit:focus-visible,.ootb-back:focus-visible{
  outline:none;box-shadow:0 0 0 3px var(--ring)}
.ootb-reg button.ootb-back{background:#fff !important;color:var(--navy) !important;
  border:1px solid #A9B8C4 !important}
.ootb-reg button.ootb-back:hover{border-color:var(--navy) !important;
  background:#F4F7F9 !important;color:var(--navy) !important}
.ootb-submit[disabled]{opacity:.75;cursor:progress}

/* ---------------------------------------------------------- modal + notes */
.ootb-hp{position:absolute !important;left:-9999px !important;width:1px !important;
  height:1px !important;overflow:hidden !important}
.ootb-note{border-radius:11px;padding:15px 18px;margin-bottom:18px;font-weight:600;
  font-size:16px;line-height:1.5}
.ootb-note-err{background:#FDF1EF;border:1px solid #EFD3CF;color:#8D3A30}
.ootb-modal{position:fixed;inset:0;background:rgba(11,61,87,.55);z-index:99999;
  display:flex;align-items:center;justify-content:center;padding:20px}
.ootb-modal[hidden]{display:none}
.ootb-modal-box{background:#fff;border-radius:16px;padding:28px 30px;max-width:660px;
  width:100%;max-height:84vh;overflow:auto;position:relative}
.ootb-modal-box h3{font-size:23px;margin-bottom:16px}
.ootb-modal-box h4{font-size:18px;margin:22px 0 4px}
.ootb-modal-box ul{margin:0;padding-left:20px}
.ootb-modal-box li{font-size:16px;margin-bottom:9px;line-height:1.6;color:var(--ink)}
.ootb-pol-price{color:var(--deep);font-weight:700;font-size:14.5px;margin:0 0 8px}
.ootb-modal-x{position:absolute;top:12px;right:14px;background:#fff;border:1px solid var(--card-line);
  width:36px;height:36px;border-radius:50%;font-size:22px;line-height:1;color:#5F7383;
  cursor:pointer;display:flex;align-items:center;justify-content:center}
.ootb-modal-x:hover{border-color:var(--line-hover);color:var(--navy)}

/* ---------------------------------------------------------- success */
.ootb-reg.ootb-done h1{font-size:33px;margin:0 0 10px;line-height:1.15;font-weight:800}
.ootb-pay{background:rgba(35,164,85,.05);border-color:#CFE6D9}
.ootb-reg .ootb-sum{background:#fff}
.ootb-reg .ootb-sum h3{font-size:16px;margin:16px 0 6px}
.ootb-reg .ootb-sum h3:first-child{margin-top:0}
.ootb-total{margin-top:14px;border-top:2px solid #CFE6D9;padding-top:13px}
.ootb-total div{display:flex;justify-content:space-between;gap:16px;font-size:17px;
  color:var(--navy);padding:5px 0}
.ootb-total b{font-size:21px}
.ootb-pay-note{margin:13px 0 0;font-size:14.5px;color:var(--mute)}

/* ---------------------------------------------------------- mobile */
@media (max-width:700px){
  .ootb-reg{font-size:16px}
  .ootb-grid,.ootb-choice,.ootb-days-opts{grid-template-columns:1fr}
  .ootb-reg .ootb-head h1,.ootb-reg.ootb-done h1{font-size:26px}
  .ootb-reg h2.ootb-sub{font-size:20px !important}
  .ootb-kicker{font-size:15.5px}
  .ootb-card{padding:17px 16px}
  /* 16px keeps mobile browsers from zooming when a field is focused */
  .ootb-reg input[type=text],.ootb-reg input[type=email],.ootb-reg input[type=tel],
  .ootb-reg input[type=date],.ootb-reg select,.ootb-reg textarea{font-size:16px}
  .ootb-nav{flex-direction:column-reverse;align-items:stretch}
  .ootb-nav button{width:100%}
  .ootb-nav .ootb-next,.ootb-nav .ootb-submit{margin-left:0}
  .ootb-rev-row,.ootb-sum-row{flex-direction:column;gap:6px}
  .ootb-rev-price,.ootb-sum-price{text-align:left}
  .ootb-contact-row{flex-direction:column;gap:2px}
  .ootb-contact-row .k{min-width:0}
  .ootb-stu-head{flex-direction:column;gap:3px;align-items:flex-start}
  .ootb-sched-row{flex-wrap:wrap}
  .ootb-sched-row .m{margin-left:0;padding-left:0;width:100%}
  .ootb-add{width:100%;justify-content:center}
}

/* ---------------------------------------------------------- focus mode */
/* The desktop menu was hidden, but the phone-width hamburger is a separate
   control and survived, so the full marketing navigation was still one tap
   away during registration. Hidden by what it IS, not by its Elementor id,
   which would break the next time the header is edited. */
body.ootb-focus .elementor-location-header .elementor-widget-nav-menu,
body.ootb-focus .elementor-menu-toggle,
body.ootb-focus .elementor-nav-menu--dropdown,
body.ootb-focus .ast-mobile-menu-trigger-fill,
body.ootb-focus .ast-mobile-menu-trigger-minimal,
body.ootb-focus .menu-toggle,
body.ootb-focus .elementor-nav-menu,
body.ootb-focus .ast-builder-menu,
body.ootb-focus .mystickyelements-fixed,
body.ootb-focus #mystickyelements,
body.ootb-focus .chaty-widget,
body.ootb-focus .float-menu-wrapper{display:none !important}
body.ootb-focus .elementor-location-header{box-shadow:0 1px 0 rgba(11,61,87,.08)}

/* ---------------------------------------------------------- focus page chrome */
/* The marketing footer, the trial-class prompts and any sticky sales widget
   step aside on the registration page; a four-line footer takes their place. */
body.ootb-focus .elementor-location-footer,
body.ootb-focus .ootb-postcta,
body.ootb-focus .ootb-herobtns,
body.ootb-focus .ootb-topbar,
body.ootb-focus .ootb-cta-band{display:none !important}
.ootb-minifoot{display:none}
body.ootb-focus .ootb-minifoot{display:block;background:#0B3D57;color:#CFE0EA;
  padding:26px 20px;margin-top:40px}
body.ootb-focus .ootb-minifoot-in{max-width:860px;margin:0 auto;display:flex;
  flex-wrap:wrap;gap:10px 26px;align-items:center;font-size:14.5px}
body.ootb-focus .ootb-minifoot .b{font-weight:700;color:#fff}
body.ootb-focus .ootb-minifoot a{color:#CFE0EA;text-decoration:none}
body.ootb-focus .ootb-minifoot a:hover{color:#fff;text-decoration:underline}
@media (max-width:700px){
  body.ootb-focus .ootb-minifoot-in{flex-direction:column;align-items:flex-start;gap:7px}
}

/* who each policy block applies to (feedback 50) */
.ootb-pol-who{margin:0 0 10px;font-size:14.5px;color:var(--mute);font-weight:600}

/* The Book a Trial Class button in the header is its own Elementor widget
   (element a07a91a), so hiding the nav did not remove it. Feedback 48 and 49
   both asked for it to go while a parent is registering. */
body.ootb-focus .elementor-element-a07a91a{display:none !important}
