@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Space+Grotesk:wght@500;600;700&display=swap');

:root { --black:#050505; --ink:#101114; --muted:#666a73; --line:#e5e7eb; --soft:#f5f5f7; --white:#fff; --red:#ed1c24; --red-dark:#b90f16; --success:#177245; --radius:28px; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--white); color:var(--ink); font-family:Inter,system-ui,sans-serif; font-style:normal; -webkit-font-smoothing:antialiased; }
button,input,select,textarea { font:inherit; }
a { color:inherit; text-decoration:none; }
img { display:block; max-width:100%; height:auto; }
.skip-link { position:fixed; z-index:100; left:16px; top:-60px; background:#fff; padding:12px 16px; border-radius:10px; box-shadow:0 8px 30px #0003; }
.skip-link:focus { top:16px; }
.site-header { height:82px; max-width:1440px; margin:auto; padding:0 5vw; display:flex; align-items:center; justify-content:space-between; gap:32px; background:#fff; }
.brand { display:flex; align-items:center; gap:12px; min-width:max-content; }
.brand img { width:112px; height:48px; object-fit:contain; }
.brand-name { font-family:"Space Grotesk",sans-serif; font-weight:700; font-size:17px; letter-spacing:-.02em; border-left:1px solid #ccc; padding-left:12px; }
.desktop-nav { display:flex; gap:32px; font-size:14px; font-weight:600; }
.desktop-nav a { position:relative; }
.desktop-nav a::after { content:""; position:absolute; height:2px; background:var(--red); left:0; right:100%; bottom:-8px; transition:.25s; }
.desktop-nav a:hover::after,.desktop-nav a:focus-visible::after { right:0; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:14px; min-height:54px; padding:0 24px; border:0; border-radius:999px; font-weight:700; cursor:pointer; transition:transform .2s,box-shadow .2s,background .2s; }
.button:hover { transform:translateY(-2px); }
.button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible { outline:3px solid #6aa9ff; outline-offset:3px; }
.button-primary { background:var(--red); color:#fff; box-shadow:0 12px 32px #ed1c2430; }
.button-primary:hover { background:var(--red-dark); box-shadow:0 16px 38px #ed1c2445; }
.button-dark { background:var(--black); color:#fff; }
.button-light { background:#fff; color:var(--ink); border:1px solid var(--line); }
.button-small { min-height:42px; padding:0 18px; font-size:13px; }
.button-full { width:100%; }
.button:disabled { opacity:.6; cursor:wait; }
.hero { min-height:740px; position:relative; overflow:hidden; display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:6vw; padding:72px max(6vw,calc((100vw - 1320px)/2)); background:linear-gradient(145deg,#fff 0%,#f8f8fa 62%,#eee 100%); }
.hero-glow { position:absolute; width:540px; height:540px; border-radius:50%; background:#ef1c2420; filter:blur(80px); right:-120px; top:-180px; }
.hero-copy { position:relative; z-index:1; max-width:670px; }
.eyebrow { margin:0 0 18px; color:#767a83; font-size:12px; line-height:1.3; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }
.status-dot { display:inline-block; width:8px; height:8px; margin-right:8px; border-radius:50%; background:var(--red); box-shadow:0 0 0 5px #ed1c2415; }
h1,h2,h3 { font-family:"Space Grotesk",Inter,sans-serif; letter-spacing:-.045em; margin:0; }
.hero h1 { font-size:clamp(62px,7.6vw,122px); line-height:.86; font-weight:700; }
.hero h1 span { color:var(--red); }
.hero-text { max-width:640px; margin:32px 0; color:#555a64; font-size:clamp(18px,1.5vw,23px); line-height:1.55; }
.hero-actions { display:flex; align-items:center; gap:28px; }
.text-link { font-weight:700; font-size:14px; border-bottom:1px solid #aeb1b8; padding-bottom:5px; }
.trust-row { display:flex; flex-wrap:wrap; gap:24px; margin-top:40px; color:#666a73; font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; }
.trust-row span::before { content:"✓"; color:var(--red); margin-right:8px; }
.hero-visual { position:relative; z-index:1; max-width:610px; justify-self:end; }
.device-frame { position:relative; overflow:hidden; border:10px solid #0a0a0a; border-radius:26px; background:#111; box-shadow:0 42px 100px #0003; transform:perspective(1100px) rotateY(-5deg) rotateX(2deg); }

.device-frame img { width:100%; aspect-ratio:4/3; object-fit:cover; object-position:center; }
.device-overlay { position:absolute; left:18px; right:18px; bottom:18px; padding:22px; border:1px solid #ffffff38; border-radius:20px; color:#fff; background:#080808c5; backdrop-filter:blur(14px); }
.device-overlay span { display:block; font-size:11px; text-transform:uppercase; letter-spacing:.14em; color:#ff9ca0; margin-bottom:7px; }
.device-overlay strong { font-family:"Space Grotesk"; font-size:22px; }
.signal-card { position:absolute; left:-58px; top:20%; display:flex; gap:13px; align-items:center; padding:16px 20px; border:1px solid #ffffff90; border-radius:18px; background:#ffffffd9; backdrop-filter:blur(16px); box-shadow:0 18px 45px #0002; }
.signal-icon { color:var(--red); font-size:22px; }
.signal-card small,.signal-card strong { display:block; }
.signal-card small { color:#777; font-size:10px; text-transform:uppercase; letter-spacing:.12em; }
.signal-card strong { margin-top:3px; font-size:13px; }
.xfinity-band { min-height:170px; display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:24px; padding:36px 5vw; background:#050505; color:#fff; text-align:center; }
.xfinity-band p { margin:0; color:#c7c8cc; }
.xfinity-wordmark { font-family:Inter,sans-serif; font-size:clamp(32px,4vw,56px); font-weight:700; letter-spacing:-.08em; }
.section { padding:120px max(6vw,calc((100vw - 1320px)/2)); }
.section-heading { max-width:680px; margin-bottom:64px; }
.section-heading h2,.local-copy h2,.signup-intro h2 { font-size:clamp(46px,5.6vw,82px); line-height:.98; }
.section-heading > p:last-child,.local-copy > p { max-width:580px; color:var(--muted); font-size:18px; line-height:1.7; }
.service-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.service-card { min-height:390px; display:flex; flex-direction:column; padding:32px; border:1px solid var(--line); border-radius:var(--radius); background:#fff; box-shadow:0 15px 45px #1111110a; transition:transform .3s,box-shadow .3s,border-color .3s; }
.service-card:hover { transform:translateY(-8px); border-color:#c5c7cc; box-shadow:0 28px 65px #11111114; }
.service-icon { width:52px; height:52px; display:grid; place-items:center; margin-bottom:54px; border-radius:16px; background:#0a0a0a; color:#fff; font-size:24px; }
.service-card h3 { font-size:28px; margin-bottom:14px; }
.service-card > p:not(.eyebrow) { margin:0; color:var(--muted); line-height:1.65; }
.service-card a { margin-top:auto; padding-top:28px; color:var(--red); font-weight:800; font-size:14px; }
.loading-card { min-height:390px; background:linear-gradient(100deg,#fafafa 30%,#f0f0f0 50%,#fafafa 70%); background-size:400%; animation:loading 1.5s infinite; }
.local-section { display:grid; grid-template-columns:1.05fr .95fr; align-items:center; gap:10vw; background:#f6f6f8; }
.photo-stack { position:relative; padding-bottom:10%; }
.photo-main { width:76%; aspect-ratio:1/1; object-fit:cover; object-position:center 40%; border-radius:24px; box-shadow:0 34px 80px #0002; }
.photo-float { position:absolute; right:0; bottom:0; width:40%; aspect-ratio:3/4; object-fit:cover; border:8px solid #f6f6f8; border-radius:20px; box-shadow:0 28px 65px #0002; }
.location-details { display:grid; grid-template-columns:1fr 1fr; gap:30px; margin-top:42px; padding-top:30px; border-top:1px solid #d8dade; }
.location-details dt { margin-bottom:8px; color:#888c95; font-size:11px; text-transform:uppercase; letter-spacing:.13em; font-weight:800; }
.location-details dd { margin:0; line-height:1.65; font-weight:600; }
.student-band { background:#0a0b0d; color:#fff; }
.student-band-copy { max-width:640px; }
.student-band .eyebrow { color:#c8f04a; }
.student-band h2 { font-size:clamp(40px,4.6vw,66px); line-height:1; }
.student-band p:not(.eyebrow) { margin:24px 0 34px; color:#a9adb6; font-size:18px; line-height:1.65; }
.process-section { background:#fff; }
.centered { margin-left:auto; margin-right:auto; text-align:center; }
.process-grid { list-style:none; display:grid; grid-template-columns:repeat(3,1fr); gap:22px; padding:0; margin:0; }
.process-grid li { padding:34px 32px 40px; border-top:1px solid #bfc2c8; }
.process-grid span { color:var(--red); font-family:"Space Grotesk"; font-size:13px; font-weight:800; }
.process-grid h3 { font-size:25px; margin:46px 0 12px; }
.process-grid p { margin:0; color:var(--muted); line-height:1.65; }
.signup-section { display:grid; grid-template-columns:.9fr 1.1fr; gap:10vw; padding:120px max(6vw,calc((100vw - 1320px)/2)); background:#070707; color:#fff; }
.signup-intro { align-self:start; position:sticky; top:40px; }
.eyebrow.light { color:#ff8e92; }
.signup-intro > p:not(.eyebrow) { color:#aeb0b7; font-size:17px; line-height:1.7; }
.secure-note { margin-top:42px; display:flex; align-items:center; gap:12px; color:#d7d8dc; font-size:13px; }
.secure-note span { display:grid; place-items:center; width:28px; height:28px; border-radius:50%; color:#fff; background:var(--red); }
.signup-form,.login-card { padding:40px; border:1px solid #28282b; border-radius:30px; background:#111114; }
label { display:block; color:#d5d6db; font-size:12px; font-weight:700; letter-spacing:.02em; }
label > span { color:#777b84; font-weight:500; }
input,select,textarea { width:100%; margin-top:9px; padding:15px 16px; border:1px solid #343438; border-radius:12px; background:#19191c; color:#fff; }
textarea { resize:vertical; }
select { min-height:50px; }
.signup-form > label,.signup-form > .form-row { margin-bottom:20px; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.consent { display:flex; gap:12px; align-items:flex-start; line-height:1.5; }
.consent input { width:18px; height:18px; margin:1px 0 0; accent-color:var(--red); }
.form-status { min-height:20px; margin:14px 0 0; color:#b9bbc1; font-size:13px; line-height:1.5; }
.form-status.success { color:#7ee3ad; }
.form-status.error { color:#ff8c91; }
footer { display:grid; grid-template-columns:1.4fr repeat(3,1fr); gap:54px; padding:70px max(6vw,calc((100vw - 1320px)/2)) 32px; background:#f4f4f6; color:#555963; font-size:13px; }
footer .footer-brand img { width:160px; }
footer strong,footer a { display:block; margin-bottom:12px; color:var(--ink); }
footer p { line-height:1.7; margin:8px 0; }
.disclosure { grid-column:1/-1; padding-top:30px; border-top:1px solid #d9dadd; font-size:11px; color:#7e8188; }
.reveal { opacity:0; transform:translateY(24px); transition:opacity .8s ease,transform .8s ease; transition-delay:var(--delay,0ms); }
.reveal.visible { opacity:1; transform:none; }
.delay-one { --delay:120ms; }.delay-two { --delay:240ms; }
.hidden { display:none !important; }
.load-error { color:var(--red); }
@keyframes loading { to { background-position:-400% 0; } }

/* Admin */
.admin-body { min-height:100vh; background:#f2f3f5; }
.admin-shell { max-width:1280px; margin:auto; padding:42px; }
.admin-login { min-height:85vh; display:grid; place-content:center; gap:34px; }
.admin-login > .brand { justify-content:center; }
.login-card { width:min(470px,90vw); background:#fff; border-color:var(--line); box-shadow:0 28px 90px #00000012; }
.login-card h1 { font-size:44px; }
.login-card > p:not(.eyebrow) { color:var(--muted); line-height:1.6; }
.login-card label { color:var(--ink); margin:30px 0 20px; }
.login-card input { background:#f7f7f8; color:var(--ink); border-color:#dddfe3; }
.admin-header { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:34px; }
.admin-header h1 { font-size:48px; }
.admin-actions { display:flex; gap:10px; }
.metric-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.metric-grid article { padding:24px; background:#fff; border:1px solid var(--line); border-radius:20px; }
.metric-grid span { display:block; color:var(--muted); font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; }
.metric-grid strong { display:block; margin-top:16px; font-family:"Space Grotesk"; font-size:38px; }
.admin-tabs { display:flex; gap:30px; margin:44px 0 0; border-bottom:1px solid #d7d9dd; }
.admin-tabs button { padding:0 0 16px; border:0; border-bottom:3px solid transparent; background:transparent; color:#727680; font-weight:700; cursor:pointer; }
.admin-tabs button.active { color:var(--ink); border-bottom-color:var(--red); }
.admin-panel { padding-top:36px; }
.panel-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:20px; margin-bottom:20px; }
.panel-heading h2 { font-size:34px; }
.panel-heading select,.lead-card select { width:auto; margin:0; background:#fff; color:var(--ink); border-color:#d9dade; }
.lead-list,.service-editor-list { display:grid; gap:14px; }
.lead-card,.service-editor-card { padding:25px; border:1px solid var(--line); border-radius:20px; background:#fff; }
.lead-top,.service-editor-card { display:flex; justify-content:space-between; gap:24px; }
.lead-top h3,.service-editor-card h3 { margin:8px 0 6px; font-size:22px; }
.lead-top p,.service-editor-card p { margin:0; color:var(--muted); }
.lead-details { display:flex; flex-wrap:wrap; gap:18px; margin-top:20px; padding-top:18px; border-top:1px solid #eceef0; color:#555963; font-size:13px; }
.lead-details a { color:#135cbe; font-weight:600; }
.lead-note { margin:18px 0 0; padding:15px; border-radius:12px; background:#f6f6f8; color:#444851; line-height:1.55; }
.status-pill { display:inline-flex; padding:6px 9px; border-radius:999px; background:#eef0f2; color:#575b64; font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.07em; }
.status-pill.new,.status-pill.active { background:#e8f8ef; color:#147341; }.status-pill.contacted { background:#e9f2ff; color:#175ca8; }.status-pill.scheduled { background:#fff3dd; color:#8c5707; }.status-pill.closed,.status-pill.inactive { background:#eff0f2; color:#666a73; }
.status-pill.source-students { margin-left:6px; background:#f0f7dd; color:#4a5f10; }
.status-pill.ready { margin-left:6px; background:#fdeaea; color:#a3121a; }
.lead-student { color:var(--ink); }
.lead-student b { color:#888c95; font-size:11px; text-transform:uppercase; letter-spacing:.1em; margin-right:6px; }
.panel-heading > select + select { margin-left:10px; }
.service-editor-card { align-items:center; }
.service-editor-card > div { max-width:760px; }
.empty-state { padding:70px; text-align:center; border:1px dashed #c9cbd0; border-radius:20px; color:var(--muted); }
.empty-state strong { color:var(--ink); font-size:18px; }
dialog { width:min(720px,calc(100vw - 30px)); padding:0; border:0; border-radius:26px; box-shadow:0 40px 120px #0005; }
dialog::backdrop { background:#0008; backdrop-filter:blur(5px); }
dialog form { padding:34px; }
dialog label { color:var(--ink); margin-bottom:18px; }
dialog input,dialog textarea { background:#f7f7f8; color:var(--ink); border-color:#dddfe3; }
.dialog-heading { display:flex; justify-content:space-between; margin-bottom:28px; }
.dialog-heading h2 { font-size:34px; }
.icon-button { width:40px; height:40px; border:0; border-radius:50%; background:#f0f1f3; font-size:24px; cursor:pointer; }
.toggle-label { display:flex; align-items:center; gap:10px; padding-top:28px; }
.toggle-label input { width:20px; height:20px; margin:0; accent-color:var(--red); }

@media (max-width:1000px) {
  .hero { grid-template-columns:1fr; padding-top:90px; }
  .hero-visual { justify-self:center; max-width:580px; }
  .service-grid { grid-template-columns:1fr 1fr; }
  .local-section,.signup-section { grid-template-columns:1fr; }
  .signup-intro { position:static; }
  .photo-stack { max-width:720px; }
  footer { grid-template-columns:1fr 1fr; }
  .metric-grid { grid-template-columns:1fr 1fr; }
}
@media (max-width:680px) {
  .site-header { height:70px; padding:0 18px; }
  .brand img { width:88px; }
  .brand-name,.desktop-nav { display:none; }
  .site-header .button { padding:0 14px; font-size:11px; }
  .hero { min-height:auto; padding:74px 20px 80px; gap:58px; }
  .hero h1 { font-size:clamp(58px,18vw,84px); }
  .hero-actions { align-items:flex-start; flex-direction:column; }
  .hero-visual { width:100%; }
  .signal-card { left:-4px; top:-22px; }
  .device-frame { border-width:8px; border-radius:30px; }
  .xfinity-band { flex-direction:column; gap:9px; }
  .section,.signup-section { padding:84px 20px; }
  .service-grid,.process-grid,.form-row,.location-details { grid-template-columns:1fr; }
  .service-card { min-height:330px; }
  .service-icon { margin-bottom:42px; }
  .photo-stack { padding-bottom:18%; }
  .photo-main { width:86%; }
  .photo-float { width:50%; }
  .signup-form { padding:25px 20px; }
  footer { grid-template-columns:1fr; padding:60px 20px 28px; }
  .disclosure { grid-column:auto; }
  .admin-shell { padding:24px 16px; }
  .admin-header,.panel-heading,.lead-top,.service-editor-card { align-items:flex-start; flex-direction:column; }
  .admin-header h1 { font-size:38px; }
  .admin-actions { width:100%; }
  .admin-actions .button { flex:1; }
  .metric-grid { grid-template-columns:1fr 1fr; }
  .panel-heading select,.lead-card select { width:100%; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition:none !important; animation:none !important; } .reveal { opacity:1; transform:none; } }
.pricing-warn { max-width:70ch; margin:0 0 26px; padding:14px 18px; border-left:3px solid var(--red); background:#fff6f6; border-radius:0 8px 8px 0; color:#6a2126; font-size:14px; line-height:1.55; }
.pricing-meta { max-width:820px; margin-bottom:34px; padding:24px; border:1px solid var(--line); border-radius:20px; background:#fff; }
.pricing-meta label { color:var(--ink); margin-bottom:16px; }
.pricing-meta .form-row { margin-bottom:6px; }
.plan-editor { display:block; }
.plan-editor label { color:var(--ink); margin-bottom:16px; }
.plan-editor input, .plan-editor textarea { background:#f7f7f8; color:var(--ink); border-color:#dddfe3; }
.plan-editor-head { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:20px; }
.plan-editor-head h3 { margin:0; }
