/* ============================================================
   COLLEGE MONEY MAP — style.css
   Warm, bright, hopeful — a caring counselor, not a bank.
   Palette: sunshine #FFC93C | grass #2FAE60 | sky #2C7FBF
            indigo-ink #22305B | cream #FFFCF3 | coral #FF7A66
   Type: Fredoka (friendly headings) + Nunito Sans (body)
   ============================================================ */
:root{
  --sun:#FFC93C; --sun-dk:#EDB016;
  --grass:#2FAE60; --grass-dk:#1F8F4B;
  --sky:#2C7FBF; --sky-dk:#1F6399;
  --coral:#FF7A66; --coral-dk:#E85C48;
  --violet:#6C5CE7;
  --ink:#22305B; --ink-2:#33427A; --ink-soft:#5C6B92;
  --cream:#FFFCF3; --cream-2:#FFF4D8; --line:#EDE6D3; --white:#fff;
  --radius:18px; --radius-sm:12px; --shadow:0 8px 26px rgba(34,48,91,.12);
  --map-accent:#2C7FBF;
  --head:"Fredoka",-apple-system,"Segoe UI",sans-serif;
  --body:"Nunito Sans",-apple-system,"Segoe UI",sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
html{scroll-behavior:smooth;}
body{font-family:var(--body);background:var(--cream);color:var(--ink);line-height:1.6;font-size:17px;}
img{max-width:100%;}
a{color:var(--sky-dk);}
.wrap{max-width:1140px;margin:0 auto;padding:0 20px;}
.skip-link{position:absolute;left:-9999px;background:var(--sun);color:var(--ink);padding:10px 16px;z-index:100;font-weight:800;border-radius:8px;}
.skip-link:focus{left:10px;top:10px;}

/* ---------- top help bar ---------- */
.help-bar{background:var(--ink);color:#EAF0FF;text-align:center;padding:9px 16px;font-size:.92rem;font-weight:700;}
.help-bar strong{color:var(--sun);} .help-bar a{color:#fff;text-decoration:underline;}

/* ---------- header ---------- */
.hdr{background:var(--cream);border-bottom:2px solid var(--line);position:sticky;top:0;z-index:40;}
.hdr-inner{max-width:1140px;margin:0 auto;padding:12px 20px;display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);font-family:var(--head);font-weight:700;font-size:1.3rem;}
.brand .mark{width:38px;height:38px;border-radius:12px;background:var(--sun);color:var(--ink);display:inline-flex;align-items:center;justify-content:center;font-size:1.2rem;box-shadow:inset 0 -3px 0 rgba(0,0,0,.1);}
.brand .p2{color:var(--grass);}
.nav{display:flex;gap:2px;flex-wrap:wrap;align-items:center;}
.nav a{color:var(--ink);text-decoration:none;font-weight:700;font-size:.88rem;padding:9px 11px;border-radius:999px;transition:background .15s;}
.nav a:hover,.nav a.on{background:var(--cream-2);}
.nav a.cta{background:var(--grass);color:#fff;}
.nav a.cta:hover{background:var(--grass-dk);}

/* ---------- buttons ---------- */
.btn{display:inline-block;font-family:var(--head);font-weight:600;font-size:1rem;padding:12px 24px;border-radius:999px;border:none;cursor:pointer;text-decoration:none;text-align:center;transition:all .15s;}
.btn:active{transform:translateY(1px);}
.btn-sun{background:var(--sun);color:var(--ink);} .btn-sun:hover{background:var(--sun-dk);}
.btn-grass{background:var(--grass);color:#fff;} .btn-grass:hover{background:var(--grass-dk);}
.btn-sky{background:var(--sky);color:#fff;} .btn-sky:hover{background:var(--sky-dk);}
.btn-coral{background:var(--coral);color:#fff;} .btn-coral:hover{background:var(--coral-dk);}
.btn-ink{background:var(--ink);color:#fff;} .btn-ink:hover{background:var(--ink-2);}
.btn-line{background:transparent;color:var(--ink);border:2px solid var(--ink);} .btn-line:hover{background:var(--ink);color:#fff;}
.btn-sm{padding:8px 15px;font-size:.88rem;} .btn-lg{padding:15px 30px;font-size:1.08rem;}

/* ---------- hero ---------- */
.hero{background:radial-gradient(circle at 88% 10%,rgba(255,201,60,.55),transparent 42%),radial-gradient(circle at 8% 92%,rgba(47,174,96,.28),transparent 46%),var(--sky);color:#fff;padding:56px 20px 64px;position:relative;overflow:hidden;}
.hero-inner{max-width:1140px;margin:0 auto;position:relative;}
.hero .eyebrow{display:inline-block;background:rgba(255,255,255,.2);padding:6px 15px;border-radius:999px;font-weight:800;font-size:.8rem;letter-spacing:.04em;margin-bottom:16px;}
.hero h1{font-family:var(--head);font-size:clamp(2.2rem,5.6vw,3.6rem);font-weight:700;line-height:1.05;letter-spacing:-.01em;max-width:820px;}
.hero h1 .u{color:var(--sun);}
.hero p.lede{margin-top:14px;font-size:1.16rem;max-width:640px;color:#EAF4FF;font-weight:600;}

/* ---------- solidarity / reassurance band ---------- */
.reassure{background:var(--sun);color:var(--ink);padding:28px 20px;text-align:center;}
.reassure .in{max-width:820px;margin:0 auto;}
.reassure h2{font-family:var(--head);font-size:clamp(1.4rem,3.2vw,2rem);font-weight:700;}
.reassure p{font-weight:700;margin-top:8px;font-size:1.04rem;}

/* ---------- search / questionnaire cards ---------- */
.card{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:22px;}
.card.on-hero{margin-top:24px;}
.card h2{font-family:var(--head);font-size:1.1rem;color:var(--ink);margin-bottom:14px;}
.s-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;}
.fld label{display:block;font-weight:800;font-size:.75rem;color:var(--ink-soft);margin-bottom:6px;text-transform:uppercase;letter-spacing:.05em;}
.fld input,.fld select{width:100%;padding:12px 14px;border:2px solid var(--line);border-radius:var(--radius-sm);font-family:var(--body);font-size:1rem;background:var(--cream);color:var(--ink);font-weight:600;}
.fld input:focus,.fld select:focus{outline:3px solid var(--sky);outline-offset:1px;border-color:var(--sky);}

/* ---------- quick paths ---------- */
.paths{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;}
.path{background:#fff;border:2px solid var(--line);border-radius:var(--radius);padding:22px 18px;text-decoration:none;color:var(--ink);transition:all .16s;border-left:8px solid var(--sky);}
.path:hover{transform:translateY(-4px);box-shadow:var(--shadow);}
.path .pi{font-size:1.9rem;display:block;margin-bottom:8px;}
.path h3{font-family:var(--head);font-weight:600;font-size:1.1rem;}
.path p{color:var(--ink-soft);font-weight:600;font-size:.88rem;}
.path.a2{border-left-color:var(--grass);} .path.a3{border-left-color:var(--sun);}
.path.a4{border-left-color:var(--coral);} .path.a5{border-left-color:var(--violet);} .path.a6{border-left-color:var(--ink);}

/* ---------- sections ---------- */
.section{padding:54px 0;} .section.alt{background:#fff;}
.sec-head{margin-bottom:26px;} .sec-head.center{text-align:center;}
.sec-head .k{color:var(--grass-dk);font-weight:800;letter-spacing:.08em;text-transform:uppercase;font-size:.8rem;}
.sec-head h2{font-family:var(--head);font-size:clamp(1.7rem,3.4vw,2.3rem);font-weight:700;margin-top:4px;}
.sec-head p{color:var(--ink-soft);max-width:660px;margin-top:6px;font-weight:600;}
.sec-head.center p{margin-left:auto;margin-right:auto;}

/* ---------- college cards ---------- */
.filters{background:#fff;border:2px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px;}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px;}
.chip{display:inline-flex;align-items:center;gap:7px;font-size:.85rem;font-weight:800;color:var(--ink);background:var(--cream);border:2px solid var(--line);border-radius:999px;padding:8px 14px;cursor:pointer;user-select:none;}
.chip input{accent-color:var(--sky);cursor:pointer;width:16px;height:16px;}
.chip:has(input:checked){background:var(--sky);border-color:var(--sky);color:#fff;}
.toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:16px 0;flex-wrap:wrap;}
.count{font-weight:800;color:var(--ink-soft);}
.col-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;}
.col-card{background:#fff;border:2px solid var(--line);border-radius:var(--radius);padding:18px;display:flex;flex-direction:column;gap:8px;transition:all .16s;}
.col-card:hover{box-shadow:var(--shadow);transform:translateY(-2px);}
.col-card h3{font-family:var(--head);font-weight:600;font-size:1.12rem;line-height:1.2;}
.col-card h3 a{color:var(--ink);text-decoration:none;} .col-card h3 a:hover{color:var(--sky-dk);}
.col-where{color:var(--ink-soft);font-weight:700;font-size:.86rem;}
.tags{display:flex;flex-wrap:wrap;gap:6px;}
.tag{font-size:.72rem;font-weight:800;padding:3px 9px;border-radius:999px;background:var(--cream-2);color:var(--ink-2);}
.tag.public{background:#DDF0E5;color:var(--grass-dk);} .tag.private{background:#DEEBF7;color:var(--sky-dk);}
.tag.forprofit{background:#F6E4DF;color:var(--coral-dk);}
.tag.cc{background:#FFF0CC;color:#9A7412;} .tag.hbcu{background:#EDE7FB;color:#5B45C7;} .tag.hsi{background:#EDE7FB;color:#5B45C7;}
.tag.online{background:#E4F0F7;color:var(--sky-dk);}
.col-foot{margin-top:auto;display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:.78rem;color:var(--ink-soft);font-weight:700;}
.load-more{display:block;margin:22px auto 0;}

/* ---------- college profile ---------- */
.p-hero{background:var(--ink);color:#fff;padding:44px 20px;}
.p-hero h1{font-family:var(--head);font-size:clamp(1.8rem,4.4vw,2.7rem);font-weight:700;line-height:1.1;}
.p-hero .where{color:#B9C6E8;font-weight:700;margin-top:6px;}
.p-grid{display:grid;grid-template-columns:1fr 330px;gap:26px;align-items:start;}
@media (max-width:880px){.p-grid{grid-template-columns:1fr;}}
.block{background:#fff;border:2px solid var(--line);border-radius:var(--radius);padding:22px;margin-bottom:18px;}
.block h2{font-family:var(--head);font-size:1.2rem;font-weight:600;margin-bottom:12px;color:var(--ink);}
.facts{list-style:none;}
.facts li{display:flex;justify-content:space-between;gap:14px;padding:10px 0;border-bottom:1px dashed var(--line);font-weight:600;}
.facts li:last-child{border-bottom:none;}
.facts .k{color:var(--ink-soft);font-weight:800;} .facts .v{text-align:right;}
.side{background:#fff;border:2px solid var(--line);border-top:6px solid var(--sky);border-radius:var(--radius);padding:22px;margin-bottom:18px;}
.side h3{font-family:var(--head);font-weight:600;margin-bottom:12px;color:var(--ink);}
.side .btn{width:100%;margin-bottom:9px;}
.mini{font-size:.83rem;color:var(--ink-soft);background:var(--cream);border-radius:10px;padding:11px 13px;font-weight:600;}

/* ---------- notices ---------- */
.notice{background:var(--cream-2);border-left:5px solid var(--sun);border-radius:10px;padding:15px 18px;font-weight:600;color:#7A5A10;margin:18px 0;}
.notice.sky{background:#E4F0F7;border-color:var(--sky);color:#154A73;}
.notice.grass{background:#DDF0E5;border-color:var(--grass);color:#1B5E38;}
.notice.coral{background:#FBE7E2;border-color:var(--coral);color:#A03A29;}
.badge{display:inline-block;font-size:.68rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;padding:2px 9px;border-radius:999px;}
.b-official{background:#DDF0E5;color:var(--grass-dk);} .b-college{background:#E4F0F7;color:var(--sky-dk);}
.b-review{background:#FFF0CC;color:#9A7412;} .b-expired{background:#EEE;color:#888;}

/* ---------- prose / checklist / timeline ---------- */
.prose{max-width:820px;}
.prose h2{font-family:var(--head);font-size:1.5rem;font-weight:700;color:var(--ink);margin:30px 0 10px;}
.prose h3{font-size:1.14rem;font-weight:800;margin:20px 0 8px;color:var(--ink);}
.prose p,.prose li{color:#3A456B;font-weight:600;margin-bottom:10px;}
.prose ul,.prose ol{padding-left:24px;margin-bottom:14px;}
.prose a{font-weight:800;}
.check-list{list-style:none;padding-left:0 !important;}
.check-list li{position:relative;padding:11px 0 11px 38px;border-bottom:1px solid var(--line);font-weight:600;}
.check-list li::before{content:"✓";position:absolute;left:4px;top:10px;width:24px;height:24px;background:#DDF0E5;color:var(--grass-dk);border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-weight:800;}
.timeline{display:grid;gap:16px;}
.tl{background:#fff;border:2px solid var(--line);border-radius:var(--radius);padding:22px;border-left:8px solid var(--sky);}
.tl .g{font-family:var(--head);font-weight:700;font-size:1.25rem;color:var(--sky-dk);}
.tl.g10{border-left-color:var(--grass);} .tl.g10 .g{color:var(--grass-dk);}
.tl.g11{border-left-color:var(--sun);} .tl.g11 .g{color:var(--sun-dk);}
.tl.g12{border-left-color:var(--coral);} .tl.g12 .g{color:var(--coral-dk);}
.script{background:var(--cream);border:2px solid var(--line);border-radius:12px;padding:14px 16px;margin:10px 0;font-weight:700;color:var(--ink);}
.script::before{content:"🗣️ ";}

/* ---------- steps / cats ---------- */
.cats{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:14px;}
.cat{background:#fff;border:2px solid var(--line);border-radius:var(--radius);padding:20px 16px;text-decoration:none;color:var(--ink);text-align:center;transition:all .16s;}
.cat:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:var(--sun);}
.cat .ci{font-size:1.9rem;display:block;margin-bottom:6px;}
.cat .ct{font-family:var(--head);font-weight:600;display:block;font-size:.98rem;}
.cat .cs{font-size:.8rem;color:var(--ink-soft);font-weight:600;}

/* ---------- forms / faq ---------- */
.form-card{background:#fff;border:2px solid var(--line);border-radius:var(--radius);padding:26px;max-width:720px;}
.frow{margin-bottom:15px;}
.frow label{display:block;font-weight:800;font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);margin-bottom:6px;}
.frow input,.frow select,.frow textarea{width:100%;padding:12px 14px;border:2px solid var(--line);border-radius:var(--radius-sm);font-family:var(--body);font-size:1rem;background:var(--cream);font-weight:600;}
.frow textarea{min-height:100px;resize:vertical;}
.faq{background:#fff;border:2px solid var(--line);border-radius:var(--radius-sm);margin-bottom:12px;overflow:hidden;}
.faq summary{cursor:pointer;padding:18px 22px;font-weight:800;color:var(--ink);list-style:none;position:relative;font-family:var(--head);}
.faq summary::after{content:"+";position:absolute;right:22px;color:var(--grass);font-size:1.4rem;}
.faq[open] summary::after{content:"–";}
.faq .a{padding:0 22px 18px;color:var(--ink-soft);font-weight:600;}

.empty{text-align:center;padding:44px 16px;color:var(--ink-soft);background:#fff;border:2px dashed var(--line);border-radius:var(--radius);font-weight:700;}
#map{height:62vh;min-height:420px;border-radius:16px;border:2px solid var(--line);z-index:1;}
.map-jumps{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0;}
.leaflet-popup-content{font-family:inherit;font-size:.92rem;line-height:1.5;}

.cta{background:var(--grass);color:#fff;padding:48px 20px;text-align:center;}
.cta h2{font-family:var(--head);font-size:clamp(1.5rem,3.5vw,2.2rem);font-weight:700;}
.cta p{max-width:560px;margin:10px auto 20px;font-weight:600;color:#E6F6EC;}

.ftr{background:var(--ink);color:#AAB6D8;padding:46px 20px 30px;font-size:.92rem;}
.ftr-grid{max-width:1140px;margin:0 auto;display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:28px;}
@media (max-width:760px){.ftr-grid{grid-template-columns:1fr 1fr;}}
.ftr h4{color:#fff;font-family:var(--head);font-weight:600;margin-bottom:12px;font-size:.98rem;}
.ftr a{color:#AAB6D8;text-decoration:none;display:block;padding:3px 0;font-weight:600;}
.ftr a:hover{color:var(--sun);}
.ftr-legal{max-width:1140px;margin:28px auto 0;padding-top:18px;border-top:1px solid var(--ink-2);font-size:.82rem;color:#8695C2;font-weight:600;}

.hidden{display:none !important;}
.mt-1{margin-top:8px;} .mt-2{margin-top:16px;} .mt-3{margin-top:28px;}
.center{text-align:center;}
@media (max-width:640px){ .hdr-inner{justify-content:center;} .nav{justify-content:center;} }

/* ---------- community board (Neighbor Notes engine) ---------- */
.note-card{background:#fff;border:2px solid var(--line);border-radius:var(--radius);padding:18px;display:flex;flex-direction:column;gap:8px;}
.note-card.mine{border-color:var(--sky);border-style:dashed;}
.note-card .n-text{font-weight:600;font-size:1rem;color:var(--ink);}
.note-card .n-meta{font-size:.82rem;color:var(--ink-soft);font-weight:700;}
.note-badge{display:inline-block;font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;padding:2px 9px;border-radius:999px;}
.note-badge.tip{background:#DDF0E5;color:var(--grass-dk);}
.note-badge.mine{background:#E4F0F7;color:var(--sky-dk);}
.side .btn{width:100%;margin-bottom:9px;}
