:root{--bg:#f6f8fc;--surface:#fff;--text:#0f1420;--muted:#697180;--line:#e5e9f0;--primary:#2557ff;--primary2:#6847ff;--accent:#d8ff58;--dark:#0e131d;--good:#138a53;--shadow:0 22px 65px rgba(20,34,70,.12)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,system-ui,sans-serif;color:var(--text);background:#fff}a{text-decoration:none;color:inherit}button,input,select,textarea{font:inherit}button{cursor:pointer}.container{width:min(1200px,calc(100% - 38px));margin:auto}header{position:sticky;top:0;z-index:80;background:rgba(255,255,255,.94);backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}.nav{height:72px;display:flex;align-items:center;gap:28px}.brand{display:flex;align-items:center;gap:10px;font-size:20px;font-weight:900}.brand-mark{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:linear-gradient(135deg,var(--primary),var(--primary2));color:#fff}.nav nav{display:flex;gap:24px;margin-left:auto;font-size:14px;font-weight:750;color:#4a5260}.btn{border:0;border-radius:14px;padding:13px 18px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn-primary{background:var(--primary);color:#fff}.btn-dark{background:var(--dark);color:#fff}.btn-ghost{background:#f1f4f8;color:#202631}.btn-light{background:#fff;color:#16204a}.hero{padding:82px 0 70px;overflow:hidden;background:radial-gradient(circle at 82% 12%,rgba(37,87,255,.17),transparent 31%),radial-gradient(circle at 13% 5%,rgba(216,255,88,.20),transparent 27%),linear-gradient(180deg,#fbfcff,#fff)}.hero-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:64px;align-items:center}.eyebrow{display:inline-block;color:var(--primary);font-size:11px;letter-spacing:.15em;text-transform:uppercase;font-weight:900;margin-bottom:14px}.light{color:var(--accent)}h1{font-size:clamp(52px,7vw,82px);line-height:.95;letter-spacing:-.055em;margin:0}h1 span{color:var(--primary)}.hero p{font-size:19px;line-height:1.6;color:#59616f}.searchbar{margin-top:28px;padding:12px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);border-radius:20px;display:grid;grid-template-columns:1fr .65fr auto;gap:9px}.field,.filter{background:#f8f9fb;border-radius:13px;padding:10px 13px}.field label,.filter label{display:block;font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:#8a919e;font-weight:900;margin-bottom:5px}.field input,.field select,.filter input,.filter select{width:100%;border:0;background:transparent;outline:0;font-weight:800}.trust{display:flex;flex-wrap:wrap;gap:18px;margin-top:17px;font-size:12px;font-weight:800;color:#6a7280}.hero-panel{background:#10151e;color:#fff;border-radius:32px;padding:26px;box-shadow:0 34px 90px rgba(15,20,32,.25)}.hero-panel h3{font-size:28px;margin:0}.hero-panel p{font-size:14px;color:#aeb6c5}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:20px}.stats div{padding:16px;background:#1b222e;border-radius:17px}.stats strong{display:block;font-size:24px}.stats span{font-size:10px;color:#aeb6c5}.hero-price{margin-top:12px;padding:18px;border-radius:18px;background:linear-gradient(135deg,var(--primary),var(--primary2))}.hero-price strong{display:block;font-size:28px}.hero-price small{color:#dae2ff}.section{padding:84px 0}.muted{background:var(--bg)}.section-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:28px}.section-head h2{font-size:clamp(34px,4vw,50px);letter-spacing:-.04em;line-height:1.05;margin:0}.section-head p{max-width:650px;color:var(--muted);line-height:1.6}.filters{display:grid;grid-template-columns:1.4fr .8fr .8fr .75fr;gap:10px;margin-bottom:16px}.filter{background:#fff;border:1px solid var(--line)}.toolbar{display:flex;justify-content:space-between;color:var(--muted);font-size:13px;margin-bottom:20px}.school-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.card{background:#fff;border:1px solid var(--line);border-radius:22px;overflow:hidden;box-shadow:0 10px 35px rgba(30,40,70,.04)}.cover{height:122px;background:linear-gradient(135deg,#13214a,#2659ff);padding:16px;display:flex;justify-content:space-between;align-items:flex-start}.badge{font-size:10px;font-weight:900;padding:7px 9px;border-radius:999px;background:rgba(255,255,255,.94)}.card-body{padding:20px}.title-row{display:flex;justify-content:space-between;gap:12px}.title-row h3{font-size:19px;line-height:1.25;margin:0 0 5px}.rating{white-space:nowrap;font-size:12px;font-weight:900}.meta{color:var(--muted);font-size:12px;line-height:1.5;margin-bottom:13px}.tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}.tag{font-size:10px;background:#f2f4f7;border-radius:999px;padding:6px 8px;font-weight:850}.pricebox{background:#f8f9fb;border-radius:14px;padding:13px;margin-bottom:15px}.status{font-size:9px;text-transform:uppercase;letter-spacing:.08em;font-weight:900;color:var(--good)}.status.request{color:#8c6a19}.price-row{display:flex;justify-content:space-between;gap:10px;margin-top:7px;font-size:13px}.actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.actions .btn{padding:10px}.map-layout{display:grid;grid-template-columns:390px 1fr;gap:16px}.map-list{max-height:570px;overflow:auto;display:grid;gap:10px}.map-item{border:1px solid var(--line);border-radius:15px;padding:14px;background:#fff;cursor:pointer}.map-item strong{display:block;font-size:14px;margin-bottom:4px}.map-item span{font-size:11px;color:var(--muted)}#map{height:570px;border-radius:22px;border:1px solid var(--line);overflow:hidden;background:#eef1f5}.map-fallback{height:100%;display:grid;place-items:center;color:var(--muted)}.compare-wrap{overflow:auto;border:1px solid var(--line);border-radius:20px;background:#fff}.compare{width:100%;border-collapse:collapse;min-width:900px}.compare th,.compare td{text-align:left;padding:15px 17px;border-bottom:1px solid var(--line);font-size:13px}.compare th{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:#858c99;background:#fafbfc}.verified{color:var(--good);font-weight:900}.unknown{color:#8c6a19;font-weight:800}.cta{padding:45px;border-radius:30px;background:linear-gradient(135deg,var(--primary),var(--primary2));color:#fff;display:flex;justify-content:space-between;align-items:center;gap:28px}.cta h2{font-size:clamp(32px,4vw,48px);line-height:1.05;letter-spacing:-.04em;margin:0}.cta p{color:#dbe2ff;max-width:650px}footer{background:#0d1118;color:#fff;padding:60px 0}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:38px}.footer-grid>div{display:flex;flex-direction:column;gap:10px}.footer-grid a,.footer-grid p{color:#9da5b3;font-size:12px}.modal-backdrop{position:fixed;inset:0;background:rgba(9,13,22,.62);display:none;align-items:center;justify-content:center;padding:20px;z-index:200}.modal-backdrop.open{display:flex}.modal{width:min(620px,100%);background:#fff;border-radius:24px;padding:25px}.modal-head{display:flex;justify-content:space-between;align-items:start}.modal-head h3{font-size:25px;margin:0}.close{border:0;background:#f2f4f7;width:36px;height:36px;border-radius:50%;font-size:18px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px}.form-field{display:grid;gap:6px}.form-field.full{grid-column:1/-1}.form-field label{font-size:11px;font-weight:850}.form-field input,.form-field select,.form-field textarea{width:100%;border:1px solid var(--line);border-radius:12px;padding:12px}.form-field textarea{min-height:100px}.form-note{font-size:11px;color:var(--muted)}.toast{position:fixed;left:50%;bottom:25px;transform:translate(-50%,20px);opacity:0;background:#11161f;color:#fff;padding:12px 17px;border-radius:999px;z-index:300;font-size:12px;font-weight:800;transition:.25s}.toast.show{opacity:1;transform:translate(-50%,0)}@media(max-width:1000px){.hero-grid{grid-template-columns:1fr}.school-grid{grid-template-columns:1fr 1fr}.filters{grid-template-columns:1fr 1fr}.map-layout{grid-template-columns:1fr}.map-list{max-height:260px}}@media(max-width:760px){.nav nav,.nav>.btn{display:none}.container{width:min(100% - 28px,1200px)}.hero{padding:54px 0}.searchbar{grid-template-columns:1fr}.section{padding:62px 0}.section-head{align-items:flex-start;flex-direction:column}.filters{grid-template-columns:1fr}.school-grid{grid-template-columns:1fr}.map-layout{grid-template-columns:1fr}#map{height:440px}.cta{padding:31px 24px;flex-direction:column;align-items:flex-start}.footer-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.form-field.full{grid-column:auto}}


/* Inquiry hardening / status */
.hp-field{
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  padding:0 !important;
  margin:-1px !important;
  overflow:hidden !important;
  clip:rect(0,0,0,0) !important;
  white-space:nowrap !important;
  border:0 !important;
}
.form-status{
  min-height:1.4em;
  margin:8px 0 0;
  font-size:12px;
  color:var(--muted);
}
.form-status.is-success{color:#137a4a;font-weight:800}
.form-status.is-error{color:#a23b32;font-weight:800}
.btn[disabled]{opacity:.62;cursor:wait;transform:none}


/* Master 1.3 – school profile links */
.actions.actions-three{
  grid-template-columns:repeat(3,minmax(0,1fr));
}
.actions.actions-three .btn{
  min-width:0;
  padding-inline:8px;
  font-size:12px;
}
@media(max-width:420px){
  .actions.actions-three{
    grid-template-columns:1fr;
  }
}


/* ACCESS-001 – keyboard focus */
:focus-visible{
  outline:3px solid #92400e;
  outline-offset:4px;
}

/* Override the existing input outline reset with equal specificity. */
.field input:focus-visible,
.field select:focus-visible,
.filter input:focus-visible,
.filter select:focus-visible{
  outline:3px solid #92400e;
  outline-offset:4px;
}

#schools,
#mapSection,
#compare{
  scroll-margin-top:88px;
}


/* ACCESS-001 – one responsive primary navigation */
.nav .mobile-menu-toggle{
  display:none;
}

@media(max-width:760px){
  .nav{
    position:relative;
    justify-content:space-between;
    gap:16px;
  }

  .nav .mobile-menu-toggle{
    display:inline-flex;
    min-width:44px;
    min-height:44px;
    margin-left:auto;
  }

  .nav #primaryNavigation{
    display:none;
    position:absolute;
    top:100%;
    left:0;
    right:0;
    margin:0;
    padding:12px;
    gap:4px;
    flex-direction:column;
    background:#fff;
    border:1px solid var(--line);
    border-radius:0 0 18px 18px;
    box-shadow:var(--shadow);
    max-height:calc(100vh - 88px);
    max-height:calc(100dvh - 88px);
    overflow-y:auto;
    overscroll-behavior:contain;
  }

  .nav #primaryNavigation.is-open{
    display:flex;
  }

  .nav #primaryNavigation a{
    display:flex;
    align-items:center;
    min-height:44px;
    padding:12px;
    border-radius:10px;
  }

  .nav #primaryNavigation a:hover{
    background:#f1f4f8;
  }
}


/* ACCESS-001 – scrollable modal with a reachable close action */
.modal-backdrop[hidden]{
  display:none !important;
}

body.inquiry-open{
  overflow:hidden;
}

.modal-backdrop{
  padding:16px;
  overflow-y:auto;
  overscroll-behavior:contain;
}

.modal{
  min-width:0;
  min-height:0;
  max-height:calc(100vh - 32px);
  max-height:calc(100dvh - 32px);
  padding:0;
  overflow-y:auto;
  overscroll-behavior:contain;
  scroll-padding-top:120px;
  scroll-padding-bottom:24px;
}

.modal-head{
  position:sticky;
  top:0;
  z-index:1;
  gap:16px;
  padding:20px 25px;
  background:#fff;
  border-radius:24px 24px 0 0;
}

.modal-head > div{
  min-width:0;
}

.modal-head h3{
  overflow-wrap:anywhere;
}

.modal .close{
  flex:0 0 44px;
  width:44px;
  height:44px;
}

#inquiryForm{
  padding:0 25px 25px;
}

.form-field{
  min-width:0;
}

.form-field input,
.form-field select,
.form-field textarea{
  min-width:0;
  scroll-margin-top:120px;
  scroll-margin-bottom:24px;
}

@media(max-width:760px){
  .modal-backdrop{
    padding:8px;
  }

  .modal{
    max-height:calc(100vh - 16px);
    max-height:calc(100dvh - 16px);
  }

  .modal-head{
    padding:16px;
  }

  .modal-head h3{
    font-size:21px;
  }

  #inquiryForm{
    padding:0 16px 20px;
  }

  .form-field input,
  .form-field select,
  .form-field textarea{
    font-size:16px;
  }
}

@media(prefers-reduced-motion:reduce){
  html{
    scroll-behavior:auto;
  }

  .toast{
    transition:none;
  }
}
