/* ============================================================
   Schools Geek: schoolsgeek.com design system
   Airbnb-inspired: Lexend, warm red #E31C5F, pill geometry,
   hairline borders, generous whitespace, zero shadows on cards.
============================================================ */
:root{
  --pink-1:#FFD6DF; --pink-2:#FFAFC2;
  --g800:#3A3A3A; --field-line:#949494; --g200:#E9E9E9;
  --green:#171717; --blue:#3B78C4; --amber:#717171;
  --r-lg:22px; --r-md:16px; --r-sm:12px;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
/* overflow-x:hidden must live on html ONLY. On body it either becomes a
   scroll container (killing sticky descendants) or propagates clip to the
   viewport (killing page scroll). On html, the viewport itself clips
   horizontally while remaining the vertical scroller sticky relies on. */
html{overflow-x:hidden;}
html,body{margin:0;padding:0;}
body{color:var(--ink);-webkit-font-smoothing:antialiased;line-height:1.5;}
h1,h2,h3,h4{font-weight:600;letter-spacing:-.4px;line-height:1.22;margin:0;}
p{margin:0;}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;cursor:pointer;}
img{display:block;max-width:100%;}
::selection{background:var(--pink-1);color:var(--ink);}
:focus-visible{outline:2px solid var(--ink);outline-offset:2px;border-radius:6px;}
::-webkit-scrollbar{height:6px;width:6px;}
::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:#d4d4d4;border-radius:99px;}
::-webkit-scrollbar-thumb:hover{background:var(--red);}
.no-scrollbar{scrollbar-width:none;}
.no-scrollbar::-webkit-scrollbar{display:none;}

/* width systems */
.wrap{max-width:1180px;margin:0 auto;padding:0 32px;}
.wrap-wide{max-width:1560px;margin:0 auto;padding:0 40px;}
.wrap-full{max-width:none;margin:0;padding:0 40px;}
@media(max-width:1100px){.wrap-wide,.wrap-full{padding:0 24px;}}
@media(max-width:860px){.wrap{padding:0 20px;}.wrap-wide,.wrap-full{padding:0 20px;}}
@media(max-width:640px){.wrap{padding:0 16px;}.wrap-wide,.wrap-full{padding:0 16px;}}

/* reveal on scroll */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .6s var(--ease),transform .6s var(--ease);}
.reveal.in{opacity:1;transform:none;}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none;}}

/* tooltips */
@media(hover:hover){
  [data-tip]{position:relative;}
  [data-tip]::after{content:attr(data-tip);position:absolute;bottom:calc(100% + 9px);left:50%;transform:translateX(-50%) translateY(3px);background:rgba(20,20,20,.95);color:#fff;font-size:11px;font-weight:700;padding:6px 11px;border-radius:8px;white-space:nowrap;opacity:0;pointer-events:none;transition:all .18s ease;z-index:250;}
  [data-tip]:hover::after{opacity:1;transform:translateX(-50%) translateY(0);}
}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:999px;font-weight:800;border:none;transition:all .2s var(--ease);white-space:nowrap;cursor:pointer;}
.btn:active{transform:scale(.96);}
.btn-red{background:var(--red);color:#fff;padding:14px 26px;font-size:14.5px;}
.btn-red:hover{background:var(--red-dark);}
.btn-ink{background:var(--ink);color:#fff;padding:14px 26px;font-size:14.5px;}
.btn-ink:hover{background:#000;}
.btn-line{background:#fff;color:var(--ink);border:1.5px solid var(--g400);padding:13px 24px;font-size:14px;}
.btn-line:hover{border-color:var(--ink);background:var(--g100);}
.btn-soft{background:var(--red-soft);color:var(--red-dark);padding:12px 22px;font-size:13.5px;}
.btn-soft:hover{background:var(--pink-1);}
.btn.sm{padding:10px 18px;font-size:13px;}
.btn.lg{padding:16px 32px;font-size:15.5px;}
.btn.wide{width:100%;}
@media(max-width:420px){
  .btn{white-space:normal;text-align:center;}
  .page-hero .ctas .btn,.cta-band .btns .btn{width:100%;justify-content:center;}
}

/* ============================================================
   Search panel (header dropdown, hero inline, mobile sheet)
============================================================ */
.search-panel-host{display:none;}
.search-panel-host.open{display:block;}
#headPanelHost.open{position:absolute;left:0;right:0;top:100%;background:rgba(255,255,255,.99);border-bottom:1px solid var(--line);box-shadow:var(--shadow-md);padding:8px 40px 22px;max-height:calc(100vh - var(--headH));overflow-y:auto;}
#heroPanelHost.open{margin-top:12px;}
@media(max-width:1100px){#headPanelHost.open{padding:8px 24px 20px;}}
.search-panel{max-width:1060px;margin:0 auto;background:#fff;border:1px solid var(--g200);border-radius:24px;padding:20px 22px;animation:ddIn .2s ease;}
#headPanelHost .search-panel{border:none;padding:14px 0 0;}
.spp{margin-bottom:22px;}
.spp:last-child{margin-bottom:0;}
.spp-h{display:flex;align-items:baseline;justify-content:space-between;gap:14px;margin-bottom:11px;}
.spp-h h4{font-size:15.5px;}
.spp-a{display:flex;gap:16px;}
.spp-a button,.spp-a a{border:none;background:none;font-family:inherit;font-size:11.5px;font-weight:700;color:var(--g500);text-decoration:underline;cursor:pointer;}
.spp-a button:hover,.spp-a a:hover{color:var(--red);}
.spp-rail{display:flex;gap:10px;overflow-x:auto;padding:2px 2px 6px;scrollbar-width:none;scroll-snap-type:x proximity;}
.spp-rail::-webkit-scrollbar{display:none;}
.spp-empty{font-size:12.5px;color:var(--g500);font-weight:600;padding:14px 2px;}
.rec-card,.loc-card,.sch-row{display:flex;align-items:center;gap:11px;border:1px solid var(--g200);background:#fff;border-radius:16px;padding:8px 16px 8px 8px;text-align:left;transition:all .18s var(--ease);flex:0 0 auto;scroll-snap-align:start;font-family:inherit;}
.rec-card:hover,.loc-card:hover,.sch-row:hover{border-color:var(--ink);}
.rec-card img,.loc-card img,.sch-row img{width:52px;height:44px;border-radius:11px;object-fit:cover;flex:0 0 auto;}
.rec-card .rec-ic{width:52px;height:44px;border-radius:11px;background:var(--g100);color:var(--g500);display:flex;align-items:center;justify-content:center;font-size:15px;flex:0 0 auto;}
.rec-card strong,.loc-card strong,.sch-row strong{display:block;font-size:13.5px;white-space:nowrap;}
.rec-card span span,.sch-row span span{font-size:11.5px;color:var(--g500);font-weight:600;white-space:nowrap;}
/* verified badge: red circle, white tick, subtle ring */
.vrf{color:var(--red);font-size:13px;position:relative;top:.5px;filter:drop-shadow(0 1px 1px rgba(255,56,92,.25));}
.loc-card .near{font-style:normal;background:var(--red-soft);color:var(--red);border-radius:999px;padding:2px 8px;font-size:9.5px;font-weight:800;margin-left:5px;vertical-align:1px;}
.bdots{display:flex;align-items:center;gap:-4px;margin-top:4px;}
.bdots .bd{width:20px;height:20px;border-radius:50%;background:#171717;color:#fff;font-size:8.5px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;border:1.5px solid #fff;margin-right:-6px;}
.bdots .bd.more{background:var(--ink);margin-right:0;padding:0 4px;width:auto;min-width:22px;}
.spp-split{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
@media(max-width:820px){.spp-split{grid-template-columns:1fr;}}
.spp-list{display:flex;flex-direction:column;gap:8px;}
.spp-list .sch-row{flex:none;width:100%;}
.spp-map{position:relative;border-radius:18px;overflow:hidden;border:1px solid var(--g200);min-height:230px;background:#EFEFEF;}
.spp-map iframe{width:100%;height:100%;min-height:230px;border:0;display:block;}
.spp-map .map-cta{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);padding:12px 24px;font-size:13.5px;box-shadow:var(--shadow-md);}
/* mobile full-screen sheet */
.search-sheet{position:fixed;inset:0;background:#fff;z-index:330;display:none;flex-direction:column;overflow-y:auto;}
.search-sheet.show{display:flex;animation:ddIn .2s ease;}
.ss-head{display:flex;align-items:center;gap:10px;padding:14px 16px calc(14px);border-bottom:1px solid var(--g100);position:sticky;top:0;background:#fff;z-index:2;}
.ss-field{flex:1;display:flex;align-items:center;gap:10px;border:1.5px solid var(--g300);border-radius:999px;padding:12px 18px;}
.ss-field i{color:var(--red);font-size:13px;}
.ss-field input{border:none;outline:none;font-family:inherit;font-weight:600;font-size:14.5px;width:100%;background:none;}
.search-sheet .search-panel{border:none;padding:16px;}

/* ============================================================
   Hero
============================================================ */
.hero{padding:44px 0 48px;text-align:center;position:relative;}
@media(max-width:640px){.hero{padding:34px 0 26px;}}
.hero-eyebrow{display:inline-flex;align-items:center;gap:8px;background:var(--red-soft);color:var(--red);border-radius:999px;padding:8px 18px;font-weight:800;font-size:12px;letter-spacing:.4px;margin-bottom:18px;}
/* Fluid headline: 4.9vw is the largest ratio that still fits the longest
   headline on ONE line (measured at ~18.7px of width per 1px of type),
   so it stays unbroken from desktop down to ~600px, then wraps on phones
   where a 30px floor keeps it readable. em-based tracking scales with it. */
.hero h1,.hero .h1{font-size:clamp(30px,4.9vw,56px);max-width:1120px;margin:0 auto 16px;letter-spacing:-.032em;font-weight:600;line-height:1.16;}
.hero h1 em,.hero .h1 em{font-style:normal;color:var(--red);}
.hero .sub{font-size:17px;color:var(--g600);font-weight:500;max-width:600px;margin:0 auto 30px;line-height:1.6;}
@media(max-width:640px){.hero .sub{font-size:14.5px;margin-bottom:22px;}}
.hero-switch{display:inline-flex;background:#fff;border:1px solid var(--g200);border-radius:999px;padding:5px;margin-bottom:32px;max-width:100%;}
.hero-switch button{border:none;background:none;border-radius:999px;padding:12px 26px;font-weight:800;font-size:13.5px;color:var(--g600);display:flex;align-items:center;gap:8px;transition:all .22s var(--ease);white-space:nowrap;}
.hero-switch button.on{background:var(--ink);color:#fff;}
.hero-switch button i{font-size:12px;}
@media(max-width:480px){.hero-switch button{padding:11px 13px;font-size:11.5px;gap:6px;}.hero-switch button i{display:none;}}
/* hero search field */
.search-shell{max-width:860px;margin:0 auto;position:relative;}
.hero-search{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--g300);border-radius:999px;padding:8px 8px 8px 26px;box-shadow:0 3px 12px rgba(20,20,20,.07);transition:box-shadow .25s var(--ease),border-color .2s ease;cursor:text;}
.hero-search:hover{box-shadow:0 4px 16px rgba(20,20,20,.12);}
.hero-search:focus-within{border-color:var(--ink);box-shadow:0 4px 16px rgba(20,20,20,.14);}
.hero-search input{flex:1;border:none;outline:none;background:none;font-family:inherit;font-size:16px;font-weight:600;color:var(--ink);min-width:0;padding:14px 0;}
.hero-search input::placeholder{color:var(--g500);font-weight:500;}
.hero-search .hs-go{flex:0 0 auto;background:var(--red);color:#fff;border:none;border-radius:999px;padding:14px 28px;font-weight:800;font-size:14.5px;display:flex;align-items:center;gap:9px;transition:all .2s ease;}
.hero-search .hs-go:hover{filter:brightness(1.06);}
@media(max-width:560px){
  .hero-search{padding:7px 7px 7px 18px;}
  .hero-search input{font-size:14.5px;padding:12px 0;}
  .hero-search .hs-go{padding:12px 16px;font-size:13px;}
  .hero-search .hs-go span{display:none;}
}
/* quick city chips */
.city-chips{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin-top:18px;}
.city-chips button{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--g200);background:#fff;border-radius:999px;padding:8px 15px 8px 8px;font-weight:700;font-size:12.5px;color:var(--ink-2);transition:all .18s var(--ease);}
.city-chips button:hover{border-color:var(--ink);}
.city-chips .fl{width:26px;height:26px;border-radius:50%;background:var(--g100);display:inline-flex;align-items:center;justify-content:center;font-size:13px;}
/* owner banner strip */
.owner-strip{display:inline-flex;align-items:center;gap:12px;margin-top:24px;background:#fff;border:1px solid var(--g200);border-radius:999px;padding:7px 8px 7px 20px;font-weight:600;font-size:13.5px;color:var(--g600);max-width:100%;flex-wrap:wrap;justify-content:center;}
.owner-strip b{color:var(--ink);font-weight:800;}
.owner-strip button{border:none;background:var(--ink);color:#fff;border-radius:999px;padding:10px 18px;font-weight:800;font-size:12.5px;display:inline-flex;align-items:center;gap:8px;transition:all .2s ease;}
.owner-strip button:hover{background:var(--red);}
@media(max-width:560px){.owner-strip{padding:12px;flex-direction:column;gap:10px;border-radius:20px;}.owner-strip button{width:100%;justify-content:center;}}
/* owner mode panel */
.owner-panel{max-width:600px;margin:0 auto;}
.op-paths{display:flex;flex-direction:column;gap:10px;}
.op-path{display:flex;align-items:center;gap:14px;border:1.5px solid var(--g200);background:#fff;border-radius:18px;padding:16px 18px;text-align:left;font-family:inherit;transition:all .22s var(--ease);width:100%;}
.op-path:hover{transform:translateY(-2px);border-color:var(--ink);box-shadow:var(--shadow);}
.op-path.hot{border-color:var(--red);background:linear-gradient(135deg,#FFF8F6,#fff);}
.op-path .op-ic{width:46px;height:46px;border-radius:14px;background:var(--red-soft);color:var(--red);display:flex;align-items:center;justify-content:center;font-size:17px;flex:0 0 auto;}
.op-path .op-body{flex:1;min-width:0;}
.op-path .op-body strong{display:block;font-size:15px;color:var(--ink);}
.op-path .op-body span{font-size:12.5px;color:var(--g600);font-weight:500;line-height:1.45;display:block;margin-top:2px;}
.op-path .op-go{color:var(--g500);font-size:13px;transition:transform .2s ease;flex:0 0 auto;}
.op-path:hover .op-go{transform:translateX(3px);color:var(--red);}

/* trust stats */
.trustbar{padding:26px 0 6px;}
.tb-card{border:1px solid var(--g200);border-radius:var(--r-lg);background:linear-gradient(180deg,#FCFCFC,#fff);padding:26px 20px;}
.tb-label{font-size:13px;font-weight:700;color:var(--g600);text-align:center;margin-bottom:20px;}
.tb-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;}
@media(max-width:640px){.tb-stats{grid-template-columns:1fr 1fr;gap:20px 14px;}}
.tb-stat{text-align:center;position:relative;}
.tb-stat+.tb-stat::before{content:'';position:absolute;left:-7px;top:12%;height:76%;width:1px;background:var(--g200);}
@media(max-width:640px){.tb-stat:nth-child(odd)::before{display:none;}}
.tb-stat strong{display:block;font-size:32px;font-weight:800;letter-spacing:-1px;line-height:1;background:linear-gradient(135deg,var(--ink),#4A4A4A);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;}
.tb-stat span{display:block;font-size:12px;color:var(--g500);font-weight:700;margin-top:7px;}
