/* Two entrances, one connected access hub. */
.resource-hub [hidden] { display: none; }
.resource-hub { padding: 42px 0 32px; }
.access-hub { overflow: hidden; background: #fff; border: 1px solid #d8e1e7; border-radius: 16px; box-shadow: 0 16px 50px #142c400a; }
.hub-heading { display: flex; align-items: center; justify-content: space-between; gap: 28px; padding: 27px 30px 23px; }
.hub-heading .eyebrow { margin: 0 0 8px; font-size: 9px; letter-spacing: 2px; }
.hub-heading h2 { margin: 0; font: 750 31px/1.25 Manrope,Arial,sans-serif; letter-spacing: -1.1px; }
.hub-heading p:not(.eyebrow) { margin: 7px 0 0; font-size: 13px; color: #617585; }
.hub-search { display: flex; align-items: center; gap: 10px; padding: 11px 13px; width: 275px; flex-shrink: 0; background: #f6f8fa; border: 1px solid #d8e2e9; border-radius: 8px; }
.hub-search>svg { width: 18px; height: 18px; color: #4b6b83; }
.hub-search input { width: 100%; min-width: 0; border: 0; outline: 0; background: transparent; font: 12px/1.5 'DM Sans',Arial,sans-serif; color: var(--ink); }
.hub-search input::-webkit-search-cancel-button { display: none; }
.hub-search:focus-within { outline: 2px solid var(--orange); outline-offset: 2px; }
.hub-search input:focus-visible { outline: 0; }
.hub-search button { display: grid; place-items: center; padding: 2px; border: 0; background: none; border-radius: 3px; }
.hub-search button[hidden] { display: none; }
.hub-search button svg { width: 16px; height: 16px; }
.hub-entrances { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; padding: 0 30px 23px; }
.hub-entrances>button { position: relative; display: flex; align-items: center; gap: 14px; padding: 16px 20px; text-align: left; border: 1px solid #e8cbb1; border-radius: 9px; background: #fff3e8; transition: background .18s, border-color .18s; }
.entrance-icon { display: grid; place-items: center; flex-shrink: 0; width: 38px; height: 38px; background: var(--orange); border-radius: 50%; color: #fff; }
.entrance-icon svg { width: 21px; height: 21px; }
.hub-entrances strong { display: block; font: 750 17px/1.4 Manrope,Arial,sans-serif; letter-spacing: -.3px; }
.hub-entrances small { display: block; font-size: 11px; color: #617585; margin-top: 3px; }
.entrance-check { display: grid; place-items: center; margin-left: auto; flex-shrink: 0; border: 1px solid #bfd0dd; width: 23px; height: 23px; border-radius: 50%; }
.entrance-check svg { width: 14px; height: 14px; opacity: 0; }
.hub-entrances>button:hover { border-color: #7c9ab1; }
.hub-entrances>button[aria-selected=true] { color: #fff; border-color: #303030; box-shadow: inset 4px 0 var(--orange); }
.hub-entrances>button[aria-selected=true] small { color: #e3e3e3; }
.hub-entrances>button[aria-selected=true] .entrance-icon { color: #fff; background: var(--orange); }
.hub-entrances>button[aria-selected=true] .entrance-check { background: var(--orange); border-color: var(--orange); color: #102537; }
.hub-entrances>button[aria-selected=true] .entrance-check svg { opacity: 1; }
.hub-workspace { display: grid; grid-template-columns: minmax(0,1.65fr) minmax(320px,1fr); border-top: 1px solid #e1e8ed; border-bottom: 1px solid #e1e8ed; }
.hub-workspace:focus-visible { outline: 2px solid var(--orange); outline-offset: -3px; }
.hub-map-area { min-width: 0; padding: 19px 20px 17px; background-color: #f0f5f8; background-image: radial-gradient(#b6c9d555 .8px,transparent .8px), radial-gradient(ellipse at center,#e3edf3,transparent 66%); background-size: 14px 14px,100% 100%; }
.hub-map-caption { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 0 3px; font-size: 10px; }
.hub-map-caption>span:first-child { padding: 5px 10px; color: #2b5c7f; background: #ffffffc9; border: 1px solid #d6e3eb; border-radius: 20px; font-weight: 700; }
.hub-map-caption>span:last-child { color: #647c8e; display: flex; align-items: center; gap: 7px; }
.hub-map-caption svg { width: 13px; height: 13px; }
.hub-map { position: relative; height: 460px; isolation: isolate; }
.hub-connections { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; z-index: -1; pointer-events: none; }
.hub-orbit { stroke: #b4cad8; stroke-dasharray: 2 7; stroke-width: 1; }
.hub-orbit-inner { stroke: #c6d6e0; stroke-width: 1; }
.hub-wire { stroke: #a7bfce; stroke-width: 1.4; transition: stroke .2s,stroke-width .2s; }
.hub-wire.active { stroke: #e9852d; stroke-width: 2.5; }
.hub-core { position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); width: 180px; height: 180px; border-radius: 50%; background: transparent; box-shadow: 0 0 0 7px #fff9,0 0 0 8px #c1d1dc,0 12px 28px #193b5426; display: grid; place-items: center; }
.hub-core { background: transparent; box-shadow: 0 12px 25px -12px #0c294b80; isolation:isolate; }
.hub-core:before { content:'';position:absolute;width:84%;height:13%;bottom:-6%;left:8%;border-radius:50%;background:#173b5238;filter:blur(7px);z-index:-1; }
.hub-globe,.hub-globe-fallback { display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:contain; }
.hub-globe[hidden],.hub-globe-fallback[hidden] { display:none; }
.hub-spoke { position: absolute; transform: translate(-50%,-50%); width: 156px; min-height: 92px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; padding: 11px 8px; border: 1px solid #bfd0dc; background: #fff; border-radius: 11px; box-shadow: 0 4px 10px #173b5210; transition: box-shadow .18s,border-color .18s,background .18s; }
.hub-spoke strong { font: 750 12px/1.3 Manrope,Arial,sans-serif; letter-spacing: -.15px; }
.hub-spoke small { font-size: 9px; color: #718696; }
.spoke-icon { color: #2d658d; display: grid; place-items: center; margin-bottom: 3px; }
.spoke-icon svg { width: 22px; height: 22px; }
.hub-spoke:hover { border-color: #df8c40; box-shadow: 0 5px 17px #173b5220; background: #fffaf5; }
.hub-spoke[aria-pressed=true] { border: 2px solid #e98830; background: #fff8f0; box-shadow: 0 0 0 4px #ee9b4220,0 5px 12px #173b5212; }
.hub-spoke[aria-pressed=true] .spoke-icon { color: #b65d13; }
.hub-spoke[aria-pressed=true] strong { color: #753b0d; }
.hub-selection-check { display: none; place-items: center; flex-shrink: 0; width: 17px; height: 17px; border-radius: 50%; background: var(--orange); color: var(--ink); }
.hub-selection-check svg { width: 12px; height: 12px; stroke-width: 2.3; }
.hub-tool.is-selected>.hub-selection-check { display: grid; }
.hub-spoke.hub-match { border-color: #2e709b; box-shadow: 0 0 0 3px #337ca21a; }
.spoke-0 { left: 50%; top: 12%; }
.spoke-1 { left: 82%; top: 30%; }
.spoke-2 { left: 82%; top: 70%; }
.spoke-3 { left: 50%; top: 88%; }
.spoke-4 { left: 18%; top: 70%; }
.spoke-5 { left: 18%; top: 30%; }
.hub-map-note { margin: 5px auto 0; text-align: center; max-width: 480px; font-size: 11px; line-height: 1.65; color: #5c768a; }
.hub-directory { display: flex; flex-direction: column; min-width: 0; padding: 28px 25px 18px; border-left: 1px solid #dce5ec; background: #fff; }
.hub-directory-kicker { display: flex; align-items: center; gap: 10px; font-size: 8px; letter-spacing: 1.6px; color: #53758e; font-weight: 700; margin-bottom: 14px; }
.hub-directory-kicker svg { width: 25px; height: 25px; color: #cc7528; }
.hub-directory h3 { margin: 0; font: 750 25px/1.25 Manrope,Arial,sans-serif; letter-spacing: -.8px; }
#hub-directory-heading>p { margin: 10px 0 23px; font-size: 12px; line-height: 1.7; color: #617585; }
.hub-tool-list { display: flex; flex-direction: column; gap: 9px; }
.hub-tool { display: flex; align-items: center; gap: 11px; width: 100%; min-height: 70px; padding: 12px; text-align: left; border: 1px solid #dbe5ed; border-radius: 8px; background: #f7fafb; transition: background .16s,border-color .16s; }
.hub-tool:hover { background: #fff7ed; border-color: #e5a36b; }
.hub-tool.is-selected { background: #fffaf5; border-color: var(--orange); box-shadow: inset 0 0 0 1px var(--orange); }
.hub-tool.is-selected .hub-tool-icon { color: #b65d13; }
.hub-tool.is-selected>.hub-selection-check { margin-left: auto; }
.hub-tool.is-selected>.hub-tool-arrow { margin-left: 0; }
.hub-tool-icon { display: grid; place-items: center; flex-shrink: 0; width: 28px; color: #326b91; }
.hub-tool-icon svg { width: 22px; height: 22px; }
.hub-tool-copy { min-width: 0; }
.hub-tool-copy strong { display: block; font: 700 12px/1.45 Manrope,Arial,sans-serif; letter-spacing: -.1px; }
.hub-tool-copy small { display: block; font-size: 10px; line-height: 1.5; margin-top: 4px; color: #617585; }
.hub-tool-arrow { display: grid; place-items: center; margin-left: auto; flex-shrink: 0; color: #7d94a5; }
.hub-tool-arrow svg { width: 15px; height: 15px; }
.hub-tool:hover .hub-tool-arrow { color: #a25414; }
.hub-directory-footer { padding-top: 18px; margin-top: auto; font-size: 9px; color: #6d8292; }
#hub-result-count { display: block; margin-bottom: 8px; font-weight: 700; color: #3f627b; }
.hub-directory-footer>span:last-child { display: flex; align-items: center; gap: 6px; }
.hub-directory-footer svg { width: 11px; height: 11px; }
.hub-directory.is-searching .hub-tool-list { max-height: 370px; overflow-y: auto; padding: 4px 7px 4px 4px; margin: -4px -7px -4px -4px; }
.hub-empty { text-align: center; background: #f4f8fb; border: 1px dashed #becfdb; border-radius: 8px; padding: 22px 18px; }
.hub-empty>svg { display: block; color: #61849c; margin: 0 auto 12px; }
.hub-empty strong { font-size: 13px; }
.hub-empty p { font-size: 12px; color: #617585; line-height: 1.6; }
.hub-empty button { border: 1px solid #b9cbd7; border-radius: 5px; background: #fff; font-size: 12px; padding: 8px 13px; }
.hub-bottom { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 16px 28px; font-size: 11px; background: #fcfdfd; }
.hub-bottom>span,.hub-bottom>a { display: flex; align-items: center; gap: 10px; }
.hub-bottom>span { color: #657d8e; }
.hub-bottom svg { width: 17px; height: 17px; }
.hub-bottom>a { font-weight: 700; color: #275e86; }
.hub-bottom>a:hover { text-decoration: underline; }
.hub-community-anchor { display: block; height: 0; }
/* Match the outer hub and selected parent entrance to the charcoal banners. */
.topbar,.site-header,.resource-hub,.hub-entrances>button[aria-selected=true] {
 background-color: #303030;
 background-image: linear-gradient(90deg,rgba(45,45,45,.96),rgba(51,51,51,.93),rgba(43,43,43,.96));
}
.topbar,.site-header { color: #fff; }
.topbar { border-bottom: 1px solid #ffffff0a; }
.site-header { border-bottom: 1px solid #ffffff14; }
.hero:after {
 background: linear-gradient(180deg,rgba(45,45,45,.94),rgba(45,45,45,.35) 16%,rgba(45,45,45,0) 34%),linear-gradient(90deg,rgba(22,22,22,.86),rgba(22,22,22,.75) 33%,rgba(22,22,22,.42) 67%,rgba(22,22,22,.42));
}
.page-hero:after {
 background: linear-gradient(180deg,rgba(45,45,45,.94),rgba(45,45,45,0) 48%),linear-gradient(90deg,rgba(22,22,22,.88),rgba(22,22,22,.77) 42%,rgba(22,22,22,.46));
}
.brand img { background: transparent; }
.brand strong { color: #fff; }
.brand small { color: #c5cbd0; }
.nav a:not(.button) { color: #fff; }
.nav a:not(.button):hover { color: #ff9e43; }
.nav .button.navy { color: #12171c; background: var(--orange); border-color: var(--orange); }
.nav .button.navy:hover { background: #ff9e43; border-color: #ff9e43; }
.mobile-toggle { color: #fff; }
@media(max-width:1100px) {
 .hub-heading { padding: 24px; }
 .hub-entrances { padding: 0 24px 22px; }
 .hub-workspace { grid-template-columns: minmax(0,1.55fr) minmax(300px,1fr); }
 .hub-map-area { padding-left: 10px; padding-right: 10px; }
 .hub-map { height: 440px; }
 .hub-spoke { width: 134px; min-height: 90px; }
 .hub-spoke strong { font-size: 11px; }
 .hub-core { width: 154px; height: 154px; }
 .hub-directory { padding: 24px 20px 18px; }
}
@media(max-width:900px) and (min-width:701px) {
 .hub-workspace { grid-template-columns: minmax(0,1.35fr) minmax(280px,1fr); }
 .hub-map-caption>span:last-child { display: none; }
 .hub-map { height: 470px; }
 .hub-spoke { width: 116px; min-height: 88px; }
 .hub-core { width: 126px; height: 126px; }
 .hub-directory h3 { font-size: 23px; }
 .hub-directory { padding: 24px 16px 18px; }
 .hub-tool { padding: 10px; gap: 7px; }
 .hub-tool-icon { width: 23px; }
 .hub-tool-copy strong { font-size: 11px; }
}
@media(max-width:800px) { .nav { background: #303030; border-top-color: #ffffff14; } }
@media(max-width:700px) {
 .resource-hub { padding: 25px 0; }
 .access-hub { border-radius: 12px; }
 .hub-heading { display: block; padding: 23px 20px 18px; }
 .hub-heading h2 { font-size: 28px; }
 .hub-heading p:not(.eyebrow) { font-size: 12px; }
 .hub-search { width: 100%; margin-top: 18px; }
 .hub-search input { font-size: 16px; }
 .hub-entrances { gap: 8px; padding: 0 20px 20px; }
 .hub-entrances>button { padding: 13px 12px; gap: 8px; align-items: flex-start; }
 .hub-entrances strong { font-size: 14px; }
 .hub-entrances small { font-size: 10px; line-height: 1.45; }
 .entrance-icon { display: none; }
 .entrance-check { width: 16px; height: 16px; margin-top: 3px; }
 .entrance-check svg { width: 11px; height: 11px; }
 .hub-workspace { display: block; }
 .hub-map-area { padding: 15px 12px 17px; }
 .hub-map-caption { font-size: 9px; }
 .hub-map-caption>span:last-child { font-size: 9px; gap: 4px; }
 .hub-map { height: 380px; max-width: 520px; margin: auto; }
 .hub-spoke { width: 119px; min-height: 82px; padding: 8px 6px; border-radius: 9px; }
 .hub-spoke strong { font-size: 11px; }
 .hub-spoke small { font-size: 8px; }
 .spoke-icon { margin-bottom: 1px; }
 .spoke-icon svg { width: 20px; height: 20px; }
 .hub-core { width: 134px; height: 134px; }
 .hub-map-note { font-size: 10px; max-width: 360px; margin: 10px auto 0; }
 .hub-directory { border-left: 0; border-top: 1px solid #dce5ec; padding: 24px 20px 20px; scroll-margin-top: 95px; }
 #hub-directory-heading>p { margin-bottom: 18px; }
 .hub-tool { min-height: 70px; }
 .hub-tool-copy strong { font-size: 12px; }
 .hub-tool-copy small { font-size: 11px; }
 .hub-directory-footer { padding-top: 20px; font-size: 10px; }
 .hub-bottom { padding: 16px 20px; flex-direction: column; align-items: flex-start; gap: 11px; font-size: 10px; }
 .hub-bottom>span { font-size: 9px; }
}
@media(max-width:430px) {
 .hub-heading { padding-left: 17px; padding-right: 17px; }
 .hub-heading h2 { font-size: 25px; }
 .hub-entrances { padding-left: 17px; padding-right: 17px; }
 .hub-entrances>button { padding: 12px 9px; }
 .hub-entrances strong { font-size: 12px; }
 .hub-entrances small { font-size: 9px; }
 .hub-map-area { padding-left: 7px; padding-right: 7px; }
 .hub-map-caption { padding: 0 6px; }
 .hub-map-caption>span:last-child { font-size: 8px; }
 .hub-map { height: 365px; }
 .hub-spoke { width: 97px; min-height: 80px; padding: 7px 5px; }
 .hub-spoke strong { font-size: 10px; line-height: 1.3; }
 .hub-spoke small { font-size: 8px; }
 .spoke-icon svg { width: 19px; height: 19px; }
 .hub-core { width: 112px; height: 112px; box-shadow: 0 0 0 4px #fff9,0 0 0 5px #c1d1dc,0 8px 20px #193b5426; }
 .hub-map-note { padding: 0 12px; }
}
@media(prefers-reduced-motion:reduce) { .hub-spoke,.hub-wire,.hub-tool,.hub-entrances>button { transition: none; } }

@media(max-width:570px) {
 .hero:after { background: linear-gradient(180deg,rgba(45,45,45,.95),rgba(28,28,28,.80) 18%,rgba(22,22,22,.77) 48%,rgba(22,22,22,.52) 78%,rgba(22,22,22,.66)); }
 .page-hero:after { background: linear-gradient(180deg,rgba(45,45,45,.94),rgba(45,45,45,0) 48%),linear-gradient(90deg,rgba(22,22,22,.88),rgba(22,22,22,.74)); }
}

/* The logo globe is rendered as a sphere in logo-globe.js. */
.new-parent-dialog { max-width: min(92vw,530px); padding: 34px; }
.new-parent-dialog .eyebrow { font-size: 9px; margin-bottom: 14px; padding-right: 24px; }
.new-parent-dialog h2 { font-size: 29px; letter-spacing: -.8px; }
.new-parent-dialog form { margin-top: 23px; }
.new-parent-dialog label { display: block; font-size: 12px; font-weight: 700; margin: 0 0 15px; }
.new-parent-dialog input { display: block; width: 100%; min-width: 0; margin-top: 6px; padding: 11px 12px; border: 1px solid #cbd6de; border-radius: 5px; background: #f8fafb; font: 16px/1.4 'DM Sans',Arial,sans-serif; color: var(--ink); }
.parent-name-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }
#parent-phone-help { display: block; font-size: 11px; line-height: 1.5; color: #617585; margin: -7px 0 20px; }
.new-parent-dialog .button { width: 100%; }
.new-parent-dialog .button:disabled { opacity: .65; transform: none; }
.new-parent-dialog .parent-privacy { margin: 12px 0 0; font-size: 10px; line-height: 1.6; text-align: center; }
.new-parent-dialog .parent-form-error { color: #9b3117; font-size: 12px; }
.hub-heading .contact-saved-note { color: #246241; font-weight: 600; }
@media(max-width:480px) { .new-parent-dialog { padding: 28px 20px; } .parent-name-fields { grid-template-columns: 1fr; gap: 0; } .new-parent-dialog h2 { font-size: 26px; } }
/* Enrolled-parent sign-in uses the existing O.B.S.E.R.V.E. hosted login. */
.enrolled-parent-dialog{width:500px;max-width:92vw;text-align:center;padding:36px}
.enrolled-signin-logo{display:block;margin:0 auto 18px;width:88px;height:88px;object-fit:contain}
.enrolled-parent-dialog .eyebrow{font-size:11px;letter-spacing:1.5px;margin-bottom:10px}
.enrolled-parent-dialog h2{font-size:34px;line-height:1.15;margin:0 0 14px}
.enrolled-parent-dialog #enrolled-parent-intro{line-height:1.65;margin:0 0 22px;color:#596471}
.enrolled-parent-dialog .button{width:100%;justify-content:center;font-size:15px;white-space:normal}
.enrolled-parent-dialog .parent-privacy{font-size:13px;line-height:1.6;color:#67717c;margin:20px 0 10px}
.observe-password-note{font-size:12px;color:#6b7480;margin:0}
.observe-hub-continue{display:block;width:100%;margin-top:12px;border:1px solid #d6dde3;border-radius:8px;padding:12px;background:#fff;color:#303030;font-weight:700;cursor:pointer}
.observe-direct-link{display:block;margin:12px 0 0;font-size:13px;color:#82501d;text-decoration:underline}
.observe-status{font-size:14px;line-height:1.5;padding:12px 14px;border-radius:10px;background:#fff8f0;color:#71451f;margin:16px 0 0}
.observe-switch-account{border:0;background:none;color:#935719;text-decoration:underline;cursor:pointer;padding:12px 0}
.observe-account{display:flex;align-items:center;justify-content:flex-end;gap:16px;margin:-4px 0 14px;color:#526171;font-size:13px}
.observe-account button{border:1px solid #d5dbe1;background:white;color:#303030;border-radius:8px;padding:7px 11px;cursor:pointer}
.observe-account[hidden],.observe-status[hidden],.observe-switch-account[hidden]{display:none}
.observe-callback{max-width:500px;margin:10vh auto;padding:32px;text-align:center;background:#fff;border-radius:20px}
.observe-callback img{margin:auto}.observe-callback h1{font-size:28px;color:#303030}.observe-callback p{margin:20px 0}.observe-callback a{color:#9a591d;text-decoration:underline}
@media(max-width:520px){.enrolled-parent-dialog{padding:30px 22px}.enrolled-parent-dialog h2{font-size:30px}.observe-account{justify-content:space-between}}

/* Email verification stays in the Academy popup. */
.enrolled-parent-dialog form{text-align:left;margin-top:22px}
.enrolled-parent-dialog form[hidden],.enrolled-parent-dialog [hidden]{display:none}
.enrolled-parent-dialog form>label{display:block;font-size:12px;font-weight:700;margin:0 0 18px}
.enrolled-parent-dialog input:not([type=checkbox]){display:block;width:100%;min-width:0;padding:12px 14px;margin-top:7px;background:#f8fafb;border:1px solid #cbd6de;border-radius:6px;font:16px/1.4 'DM Sans',Arial,sans-serif;color:var(--ink)}
.enrolled-parent-dialog label.enrolled-remember{display:flex;align-items:flex-start;gap:11px;font-size:13px;font-weight:600;line-height:1.5;margin:20px 0 23px;cursor:pointer}
.enrolled-remember input{width:18px;height:18px;flex-shrink:0;margin:2px 0 0;accent-color:#de7618}
.enrolled-remember small{display:block;font-size:11px;font-weight:400;color:#67717c;margin-top:3px}
.enrolled-parent-dialog .button:disabled{opacity:.6;transform:none;cursor:default}
.enrolled-parent-dialog #enrolled-code{font-size:28px;letter-spacing:.45em;text-align:center}
.enrolled-code-actions{display:flex;justify-content:space-between;gap:16px;margin-top:17px}
.enrolled-code-actions button{font-size:12px;border:0;background:none;color:#83501d;text-decoration:underline;padding:4px 0}
.enrolled-code-actions button:disabled{color:#6c7480;text-decoration:none}
.enrolled-parent-dialog .enrolled-error{color:#982b1c;background:#fff3ef;border-radius:7px;padding:11px;font-size:13px}

/* Optional call booking stays within the parent form introduction. */
.new-parent-dialog .parent-free-call-link{color:#b65300;font-weight:750;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}
.new-parent-dialog .parent-free-call-link:hover{color:#873d00}
