/* ============ St. Nicholas Enhancements ============ */
:root{
  --stncs-navy:#001540; --stncs-navy2:#002647; --stncs-gold:#F2B800; --stncs-gold-d:#C7960A;
  --stncs-ink:#2B3648; --stncs-line:#cdd6e3;
}

/* ---------- WCAG: skip link ---------- */
.stncs-skip-link{position:fixed;top:-60px;left:12px;z-index:100020;background:var(--stncs-navy);color:#fff;
  padding:12px 18px;border-radius:0 0 8px 8px;font-weight:700;text-decoration:none;transition:top .15s ease;}
.stncs-skip-link:focus{top:0;outline:3px solid var(--stncs-gold);outline-offset:2px;}

/* ---------- WCAG: visible keyboard focus everywhere ---------- */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,
[tabindex]:focus-visible,.et_pb_button:focus-visible{
  outline:3px solid var(--stncs-gold) !important;outline-offset:2px !important;border-radius:3px;}

/* ---------- Floating action buttons ---------- */
.stncs-fab{position:fixed;bottom:22px;z-index:100000;border:0;cursor:pointer;
  background:var(--stncs-navy);color:#fff;box-shadow:0 8px 26px rgba(0,21,64,.32);
  display:inline-flex;align-items:center;justify-content:center;transition:transform .15s ease,background .15s ease;}
.stncs-fab:hover{transform:translateY(-2px);background:var(--stncs-navy2);}
.stncs-fab--left{left:22px;width:56px;height:56px;border-radius:50%;color:var(--stncs-gold);}
.stncs-fab--left:hover{color:#fff;}
.stncs-fab--right{right:22px;height:56px;border-radius:30px;padding:0 22px 0 18px;gap:9px;}
.stncs-fab--right .stncs-chat-label{font-weight:700;font-size:15px;letter-spacing:.3px;white-space:nowrap;}
.stncs-fab--right svg{color:var(--stncs-gold);}
.stncs-fab[aria-expanded="true"]{background:var(--stncs-gold);color:var(--stncs-navy);}
.stncs-fab[aria-expanded="true"] svg{color:var(--stncs-navy);}

/* ---------- Panels ---------- */
.stncs-panel{position:fixed;bottom:90px;z-index:100001;width:380px;max-width:calc(100vw - 32px);
  background:#fff;border-radius:16px;box-shadow:0 20px 60px rgba(0,21,64,.35);overflow:hidden;
  border:1px solid #e6ebf3;animation:stncs-pop .18s ease;}
.stncs-panel--right{right:22px;}
.stncs-panel--left{left:22px;width:320px;}
@keyframes stncs-pop{from{opacity:0;transform:translateY(12px) scale(.98);}to{opacity:1;transform:none;}}
.stncs-panel[hidden]{display:none;}
.stncs-panel__head{display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:14px 16px;background:#f3f6fb;border-bottom:1px solid #e6ebf3;font-size:16px;color:var(--stncs-navy2);font-weight:700;}
.stncs-panel__head--brand{background:var(--stncs-navy);color:#fff;}
.stncs-panel__head--brand strong{display:block;font-size:17px;}
.stncs-panel__sub{display:block;font-weight:400;font-size:12.5px;color:#c6d2e6;margin-top:2px;}
.stncs-panel__close{background:transparent;border:0;color:inherit;font-size:26px;line-height:1;cursor:pointer;padding:0 4px;opacity:.8;}
.stncs-panel__close:hover{opacity:1;}
.stncs-panel__body{padding:16px;max-height:min(70vh,560px);overflow-y:auto;}

/* ---------- Accessibility panel ---------- */
.stncs-a11y__hint{font-size:12.5px;color:#6A7587;margin:0 0 12px;line-height:1.5;}
.stncs-a11y__grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;}
.stncs-a11y__item{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;
  padding:12px 8px;border:1.5px solid #e2e8f2;border-radius:11px;background:#fff;color:var(--stncs-navy2);
  cursor:pointer;font:inherit;transition:all .12s ease;min-height:74px;justify-content:center;}
.stncs-a11y__item:hover{border-color:var(--stncs-gold);background:#fffdf3;}
.stncs-a11y__item[aria-pressed="true"]{border-color:var(--stncs-navy);background:var(--stncs-navy);color:#fff;}
.stncs-a11y__item[aria-pressed="true"] .stncs-a11y__ico{color:var(--stncs-gold);}
.stncs-a11y__ico{font-size:20px;line-height:1;color:var(--stncs-gold-d);font-weight:700;}
.stncs-a11y__lbl{font-size:11.5px;font-weight:600;line-height:1.25;}
.stncs-a11y__reset{margin-top:12px;width:100%;border:0;border-radius:9px;padding:11px;background:#eef2f8;
  color:var(--stncs-navy2);font-weight:700;cursor:pointer;}
.stncs-a11y__reset:hover{background:#e1e8f3;}

/* ---------- Reading guide + mask (ADHD/focus) ---------- */
.stncs-readbar{position:fixed;left:0;width:100%;height:0;z-index:99990;pointer-events:none;display:none;
  border-top:3px solid rgba(0,21,64,.85);border-bottom:3px solid rgba(0,21,64,.85);
  background:rgba(242,184,0,.16);height:40px;margin-top:-20px;}
html.stncs-guide .stncs-readbar{display:block;}
.stncs-mask{position:fixed;left:0;width:100%;background:rgba(0,10,30,.62);z-index:99989;pointer-events:none;display:none;}
.stncs-mask--top{top:0;} .stncs-mask--bottom{bottom:0;}
html.stncs-mask-on .stncs-mask{display:block;}

/* ============ Accessibility state classes (applied to <html>) ============ */
/* Filters target #page-container so the toolbars themselves stay readable */
html.stncs-invert #page-container{filter:invert(1) hue-rotate(180deg);}
html.stncs-invert #page-container img,html.stncs-invert #page-container video,html.stncs-invert #page-container iframe{filter:invert(1) hue-rotate(180deg);}
html.stncs-contrast #page-container{filter:contrast(1.4) saturate(1.35);}

/* Text scaling */
html.stncs-text1 p,html.stncs-text1 li,html.stncs-text1 a,html.stncs-text1 h1,html.stncs-text1 h2,html.stncs-text1 h3,html.stncs-text1 h4,html.stncs-text1 h5,html.stncs-text1 h6,html.stncs-text1 blockquote,html.stncs-text1 label,html.stncs-text1 figcaption{font-size:1.12em !important;}
html.stncs-text2 p,html.stncs-text2 li,html.stncs-text2 a,html.stncs-text2 h1,html.stncs-text2 h2,html.stncs-text2 h3,html.stncs-text2 h4,html.stncs-text2 h5,html.stncs-text2 h6,html.stncs-text2 blockquote,html.stncs-text2 label,html.stncs-text2 figcaption{font-size:1.26em !important;}
html.stncs-text3 p,html.stncs-text3 li,html.stncs-text3 a,html.stncs-text3 h1,html.stncs-text3 h2,html.stncs-text3 h3,html.stncs-text3 h4,html.stncs-text3 h5,html.stncs-text3 h6,html.stncs-text3 blockquote,html.stncs-text3 label,html.stncs-text3 figcaption{font-size:1.42em !important;}

/* Readable / dyslexia-friendly font */
html.stncs-readable #page-container,html.stncs-readable #page-container p,html.stncs-readable #page-container li,
html.stncs-readable #page-container a,html.stncs-readable #page-container span,html.stncs-readable #page-container div,
html.stncs-readable #page-container h1,html.stncs-readable #page-container h2,html.stncs-readable #page-container h3,
html.stncs-readable #page-container h4,html.stncs-readable #page-container h5,html.stncs-readable #page-container h6{
  font-family:"Atkinson Hyperlegible",Verdana,Tahoma,Arial,sans-serif !important;letter-spacing:.012em !important;}

/* Spacing */
html.stncs-spacing p,html.stncs-spacing li,html.stncs-spacing a,html.stncs-spacing h1,html.stncs-spacing h2,html.stncs-spacing h3,html.stncs-spacing h4,html.stncs-spacing h5,html.stncs-spacing h6{
  letter-spacing:.07em !important;word-spacing:.16em !important;line-height:1.9 !important;}

/* Highlight links */
html.stncs-links #page-container a{text-decoration:underline !important;text-underline-offset:2px;
  outline:2px solid var(--stncs-gold) !important;outline-offset:1px;background:rgba(242,184,0,.16) !important;}

/* Highlight headings */
html.stncs-headings #page-container h1,html.stncs-headings #page-container h2,html.stncs-headings #page-container h3,
html.stncs-headings #page-container h4,html.stncs-headings #page-container h5,html.stncs-headings #page-container h6{
  outline:2px dashed var(--stncs-gold-d) !important;outline-offset:3px;background:rgba(0,21,64,.04) !important;}

/* Big cursor */
html.stncs-cursor,html.stncs-cursor *{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 48 48'%3E%3Cpath d='M8 4l28 17-13 3 8 14-5 3-8-14-10 9z' fill='%23001540' stroke='%23F2B800' stroke-width='2'/%3E%3C/svg%3E") 6 4,auto !important;}

/* Pause animations */
html.stncs-pause *,html.stncs-pause *::before,html.stncs-pause *::after{
  animation-duration:0s !important;animation-delay:0s !important;transition:none !important;scroll-behavior:auto !important;}

/* Respect OS reduced-motion for our own UI */
@media (prefers-reduced-motion:reduce){.stncs-panel{animation:none;}.stncs-fab{transition:none;}}

/* ============ Gravity Forms — clean, no gaps, brand styled ============ */
.stncs-chat__body .gform_wrapper,.stncs-contact .gform_wrapper{margin:0 !important;}
.stncs-chat__body .gform_heading,.stncs-contact .gform_heading{display:none !important;}
.stncs-chat__body .gform_fields,.stncs-contact .gform_fields{
  display:grid !important;grid-template-columns:1fr !important;grid-gap:14px !important;gap:14px !important;row-gap:14px !important;}
.stncs-chat__body .gfield,.stncs-contact .gfield{margin:0 !important;padding:0 !important;}
.stncs-chat__body .gfield_label,.stncs-contact .gfield_label{
  font-weight:700 !important;color:var(--stncs-navy2) !important;font-size:13.5px !important;margin:0 0 5px !important;display:block;}
.stncs-chat__body .ginput_container,.stncs-contact .ginput_container{margin:0 !important;}
.stncs-chat__body input[type=text],.stncs-chat__body input[type=email],.stncs-chat__body input[type=tel],
.stncs-chat__body textarea,.stncs-chat__body select,
.stncs-contact input[type=text],.stncs-contact input[type=email],.stncs-contact input[type=tel],
.stncs-contact textarea,.stncs-contact select{
  width:100% !important;box-sizing:border-box !important;margin:0 !important;
  padding:11px 13px !important;border:1px solid var(--stncs-line) !important;border-radius:8px !important;
  font-size:15px !important;line-height:1.4 !important;background:#fff !important;color:var(--stncs-ink) !important;}
.stncs-chat__body textarea,.stncs-contact textarea{min-height:104px !important;resize:vertical;}
/* Dropdown: kill orbital-theme clipping, vertically center text, custom chevron */
.stncs-chat__body select,.stncs-contact select{
  -webkit-appearance:none !important;-moz-appearance:none !important;appearance:none !important;
  height:auto !important;min-height:48px !important;line-height:1.4 !important;
  padding:11px 40px 11px 13px !important;text-align:left !important;text-overflow:ellipsis;
  background-color:#fff !important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%23002647' stroke-width='2' d='M1 1l5 5 5-5'/%3E%3C/svg%3E") !important;
  background-repeat:no-repeat !important;background-position:right 15px center !important;background-size:12px 8px !important;}
.stncs-chat__body select::-ms-expand,.stncs-contact select::-ms-expand{display:none;}
.stncs-chat__body input:focus,.stncs-chat__body textarea:focus,.stncs-chat__body select:focus,
.stncs-contact input:focus,.stncs-contact textarea:focus,.stncs-contact select:focus{
  border-color:var(--stncs-gold) !important;box-shadow:0 0 0 3px rgba(242,184,0,.25) !important;outline:none !important;}
.stncs-chat__body .gfield_description,.stncs-contact .gfield_description{padding:4px 0 0 !important;margin:0 !important;font-size:12px !important;}
.stncs-chat__body .gform_footer,.stncs-contact .gform_footer{margin:16px 0 0 !important;padding:0 !important;}
.stncs-chat__body .gform_button,.stncs-contact .gform_button{
  width:100% !important;background:var(--stncs-gold) !important;color:var(--stncs-navy) !important;border:0 !important;
  border-radius:8px !important;padding:14px 26px !important;font-weight:700 !important;font-size:15px !important;
  text-transform:uppercase;letter-spacing:.5px;cursor:pointer;transition:filter .12s ease;}
.stncs-chat__body .gform_button:hover,.stncs-contact .gform_button:hover{filter:brightness(.94);}
.stncs-chat__body .gform_required_legend,.stncs-contact .gform_required_legend{display:none !important;}
.stncs-chat__body .gform_confirmation_message,.stncs-contact .gform_confirmation_message{
  padding:18px;background:#f3f6fb;border:1px solid #e6ebf3;border-left:4px solid var(--stncs-gold);
  border-radius:10px;color:var(--stncs-navy2);font-size:15px;line-height:1.6;}
.stncs-chat__body .gfield_required{color:#c0392b !important;}
.stncs-chat__body .validation_message,.stncs-contact .validation_message{
  color:#c0392b !important;font-size:12.5px !important;margin-top:4px !important;background:none !important;border:0 !important;padding:0 !important;}
.stncs-chat__body .gfield_error input,.stncs-chat__body .gfield_error textarea,.stncs-chat__body .gfield_error select{border-color:#c0392b !important;}
.stncs-chat__call{margin:14px 0 0;padding-top:13px;border-top:1px solid #eef2f8;text-align:center;font-size:14px;color:#6A7587;}
.stncs-chat__call a{color:var(--stncs-navy2);font-weight:700;text-decoration:none;}
.stncs-chat__call a:hover{color:var(--stncs-gold-d);}

/* ---------- "Call Us" menu item (a real Divi menu item with class `nav-call`) ---------- */
/* Gold pill styling for the phone link in both the desktop nav and the mobile dropdown. */
.et_pb_menu .et-menu-nav li.nav-call{ display:flex !important; align-items:center !important; }
.et_pb_menu .et-menu-nav li.nav-call > a,
.et_pb_menu .et_mobile_menu li.nav-call > a{
  background:var(--stncs-gold) !important; color:var(--stncs-navy) !important;
  font-weight:700 !important; border-radius:30px !important; padding:6px 17px !important;
  opacity:1 !important; line-height:1 !important; display:inline-flex; align-items:center;
  align-self:center !important; height:auto !important;
}
.et_pb_menu .et-menu-nav li.nav-call > a:hover,
.et_pb_menu .et_mobile_menu li.nav-call > a:hover{ filter:brightness(.93); color:var(--stncs-navy) !important; }
/* phone glyph before the number */
.et_pb_menu li.nav-call > a::before{
  content:""; display:inline-block; width:13px; height:13px; margin-right:7px; vertical-align:-1px;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23001540' d='M6.6 10.8c1.4 2.8 3.8 5.1 6.6 6.6l2.2-2.2c.3-.3.7-.4 1-.2 1.1.4 2.3.6 3.6.6.6 0 1 .4 1 1V20c0 .6-.4 1-1 1C10.6 21 3 13.4 3 4c0-.6.4-1 1-1h3.5c.6 0 1 .4 1 1 0 1.2.2 2.4.6 3.6.1.4 0 .8-.3 1l-2.2 2.2z'/%3E%3C/svg%3E") no-repeat center/contain;
}
/* In the mobile dropdown, show it inline-block so it sits like a button row */
.et_pb_menu .et_mobile_menu li.nav-call{ text-align:center; padding:10px 0; }
.et_pb_menu .et_mobile_menu li.nav-call > a{ display:inline-flex; }

/* ---------- Navy dropdowns + mega menu polish ---------- */
.et_pb_menu .et-menu-nav li ul.sub-menu,
.et_pb_menu .et-menu-nav li.mega-menu > ul{
  border-top:3px solid var(--stncs-gold) !important;
  border-radius:0 0 10px 10px !important;
  box-shadow:0 16px 34px rgba(0,21,64,.38) !important;
  padding-top:8px !important; padding-bottom:10px !important;
}
.et_pb_menu .et-menu-nav li ul.sub-menu li a:hover,
.et_pb_menu .et-menu-nav li.mega-menu li a:hover{
  color:var(--stncs-gold) !important; background:rgba(255,255,255,.07) !important;
}
/* A touch wider so longer labels (e.g. "Simple Tuition Solutions Income Guidelines") don't wrap oddly */
.et_pb_menu .et-menu-nav li ul.sub-menu{ min-width:255px !important; }
.et_pb_menu .et-menu-nav li ul.sub-menu li a{ padding-top:9px !important; padding-bottom:9px !important; line-height:1.3 !important; }
.et_pb_menu .et-menu-nav li ul.sub-menu li{ border-bottom:1px solid rgba(242,184,0,.28); }
.et_pb_menu .et-menu-nav li ul.sub-menu li:last-child{ border-bottom:0; }

/* The 8 menu items + Call Us pill need ~1280px to sit on one line. Below that,
   switch to Divi's hamburger early so nothing wraps (this is the one place CSS is
   required — Divi has no native setting for the menu's collapse breakpoint). */
@media (min-width:981px) and (max-width:1279px){
  .et_pb_menu .et_pb_menu__menu{ display:none !important; }
  .et_pb_menu .et_mobile_nav_menu{ display:block !important; }
}

/* ---------- Collapsible mobile submenus (keeps the hamburger menu short) ---------- */
/* Divi only removes list bullets/positions the mobile menu at <=980px; this hamburger can
   also appear up to 1280px, so re-apply those bits across the whole hamburger range. */
.et_mobile_menu, .et_mobile_menu li, .et_mobile_menu ul{ list-style:none !important; }
.et_mobile_menu{ padding:14px 5% !important; border-top:3px solid var(--stncs-gold) !important; }
/* Navy mobile dropdown polish — gold divider lines */
.et_mobile_menu li a{ color:#fff !important; border-bottom:1px solid rgba(242,184,0,.30) !important; }
.et_mobile_menu .menu-item-has-children > a{ background:rgba(255,255,255,.05) !important; }
.et_mobile_menu li a:hover{ background:rgba(255,255,255,.08) !important; color:var(--stncs-gold) !important; }
/* Collapse via max-height (beats Divi's display:block !important on the submenu). */
.et_mobile_menu .menu-item-has-children > ul{ max-height:0 !important; overflow:hidden !important; min-height:0 !important; padding-top:0 !important; padding-bottom:0 !important; border:0 !important; transition:max-height .25s ease; }
.et_mobile_menu .menu-item-has-children.stncs-exp > ul{ max-height:1600px !important; }
.et_mobile_menu .menu-item-has-children{ position:relative; }
.et_mobile_menu .stncs-mtoggle{
  position:absolute; top:0; right:0; width:54px; height:45px; z-index:5; padding:0;
  background:transparent; border:0; cursor:pointer; display:flex; align-items:center; justify-content:center;
}
.et_mobile_menu .stncs-mtoggle::before{
  content:""; width:9px; height:9px; border-right:2px solid var(--stncs-gold); border-bottom:2px solid var(--stncs-gold);
  transform:rotate(45deg); transition:transform .15s ease; margin-top:-3px; opacity:1;
}
.et_mobile_menu .menu-item-has-children.stncs-exp > .stncs-mtoggle::before{ transform:rotate(-135deg); margin-top:3px; }
.et_mobile_menu .menu-item-has-children > ul a{ padding-left:26px !important; }

/* ---------- Mobile ---------- */
@media (max-width:600px){
  .stncs-fab--right .stncs-chat-label{display:none;}
  .stncs-fab--right{width:56px;padding:0;border-radius:50%;justify-content:center;}
  .stncs-panel--right,.stncs-panel--left{left:12px;right:12px;width:auto;bottom:84px;}
}

