:root{--ink:#2b2f36;--text:#333;--muted:#6b7280;--line:#e6e6e6;--soft:#f6f6f4;--accent:#f4b41a;--accent-d:#a8700a;--err:#b3261e;--ok:#2e6b4a}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#fff;color:var(--text);font:16px/1.65 "Lato",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;-webkit-font-smoothing:antialiased}
a{color:var(--accent-d);text-underline-offset:3px}
h1,h2,h3{font-weight:300;letter-spacing:-.005em;line-height:1.25;margin:0 0 .6em;color:var(--ink)}
h1{font-size:clamp(1.8rem,4vw,2.4rem)}h2{font-size:1.35rem;margin-top:1.8em}
header{position:sticky;top:0;z-index:5;background:rgba(255,255,255,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.bar{max-width:68rem;margin:0 auto;padding:.85rem 1.25rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.logo{font-weight:300;font-size:1.4rem;letter-spacing:.04em;color:var(--ink);text-decoration:none}
.logo b{font-weight:700}.logo i{display:inline-block;width:.42rem;height:.42rem;background:var(--accent);border-radius:50%;margin-left:.15rem}
nav{display:flex;flex-wrap:wrap;align-items:center;gap:.2rem 1.5rem;font-size:.95rem}
nav a{color:var(--muted);text-decoration:none;padding:.25rem 0;border-bottom:2px solid transparent}
nav a:hover{color:var(--ink);border-color:var(--accent)}
nav .cta{background:var(--accent);color:#1f2937;padding:.45rem 1.1rem;border-radius:6px;border:0;font-weight:700}
nav .cta:hover{background:#e9a70a}
form.inline{display:inline}form.inline button{width:auto;margin:0;padding:.4rem 1rem;background:none;color:var(--muted);border:1px solid var(--line);border-radius:6px;font-size:.88rem;font-weight:400}
form.inline button:hover{background:var(--soft);transform:none}
main{max-width:34rem;margin:2.5rem auto;padding:0 1.25rem;overflow-wrap:anywhere}main.wide{max-width:68rem}
.flash,.err{padding:.8rem 1rem;border-radius:6px;border:1px solid var(--line);margin:0 0 1.2rem}
.flash{background:#f1f8f4;border-color:#bfdccb}.err{background:#fdf1f0;border-color:#f0c4c0;color:var(--err)}
label{display:block;margin:1.1rem 0 .3rem;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:700}
label input[type=checkbox]{width:auto;margin-right:.5rem}
input,select,textarea{font:inherit;width:100%;padding:.7rem .85rem;background:#fff;color:var(--text);border:1px solid #d9d9d9;border-radius:6px;transition:border-color .15s,box-shadow .15s}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px rgba(244,180,26,.25)}
button,.btn{font:inherit;display:inline-block;width:100%;margin-top:1.4rem;padding:.8rem 1.4rem;background:var(--accent);color:#1f2937;border:0;border-radius:6px;cursor:pointer;text-align:center;text-decoration:none;font-weight:700;letter-spacing:.02em;transition:background .15s,transform .15s}
button:hover,.btn:hover{background:#e9a70a;transform:translateY(-1px)}
.btn{width:auto;margin-top:.4rem}.btn.ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1px #cfcfcf}.btn.ghost:hover{background:var(--soft)}
.danger{background:transparent;color:var(--err);box-shadow:inset 0 0 0 1px var(--err);width:auto}.danger:hover{background:#fdf1f0}
.row{display:flex;gap:.8rem;align-items:center}.row>*{min-width:0}.grow{flex:1}.row select{width:auto}
.card{display:block;background:#fff;border:1px solid var(--line);border-radius:8px;padding:1rem 1.15rem;margin:.7rem 0;transition:border-color .15s,box-shadow .15s}
.card::after{content:"";display:block;clear:both}
a.card{color:inherit;text-decoration:none}a.card:hover{border-color:var(--accent);box-shadow:0 8px 24px -14px rgba(0,0,0,.35)}
.muted{color:var(--muted);font-size:.9rem}.msg .muted{display:block}.msg.unread{border-left:4px solid var(--accent)}
.thumb{float:left;width:64px;height:64px;object-fit:cover;border-radius:50%;margin-right:1rem}
.avatar{max-width:200px;border-radius:8px;display:block}
.facts{border-collapse:collapse}.facts th{text-align:left;padding:.35rem 1.4rem .35rem 0;vertical-align:top;font-weight:400;color:var(--muted)}
.gal{max-width:calc(50% - .6rem);margin:.3rem;border-radius:6px}
.hp{position:absolute;left:-9999px}
footer{margin-top:5rem;background:var(--soft);border-top:1px solid var(--line);color:var(--muted);font-size:.92rem}
footer .in{max-width:68rem;margin:0 auto;padding:2.5rem 1.25rem;display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:2rem}
footer h4{margin:0 0 .7rem;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink)}footer a{display:block;color:var(--muted);text-decoration:none;padding:.15rem 0}footer a:hover{color:var(--ink)}
footer .copy{border-top:1px solid var(--line);text-align:center;padding:1rem;font-size:.82rem}
/* start page */
.hero{position:relative;overflow:hidden;min-height:34rem;background:linear-gradient(120deg,#2a2118,#5b4426 70%,#8a6a38) center/cover}
.hero::before{content:"";position:absolute;inset:0;background:url(hero.svg) center/cover no-repeat;opacity:.85}
.hero.photo::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,16,10,.55),rgba(20,16,10,.05))}
.hero .in{position:relative;z-index:1;max-width:68rem;margin:0 auto;padding:3.5rem 1.25rem;display:flex;gap:3rem;align-items:center;justify-content:space-between;flex-wrap:wrap}
.hero .claim{color:#fff;max-width:26rem}.hero .claim h1{color:#fff;font-weight:300;font-size:clamp(2rem,5vw,3.2rem);margin-bottom:.5rem}
.hero .claim p{font-size:1.1rem;color:#f0e6d3;margin:0}
.search-card{background:#fff;width:100%;max-width:22.5rem;padding:1.6rem 1.5rem 1.5rem;border-radius:6px;box-shadow:0 20px 50px -20px rgba(0,0,0,.6)}
.search-card h2{margin:0 0 1rem;text-align:center;font-size:1.5rem}.search-card h2::after,.sec-title::after{content:"";display:block;width:56px;height:2px;background:var(--accent);margin:.7rem auto 0}
.search-card label{margin:.8rem 0 .25rem}.seg{display:flex;gap:.5rem}.seg label{flex:1;margin:0;text-transform:none;letter-spacing:0;font-size:.95rem;font-weight:400;color:var(--text);border:1px solid #d9d9d9;border-radius:6px;padding:.55rem;text-align:center;cursor:pointer}
.seg input{position:absolute;opacity:0;width:0}.seg label:has(input:checked){border-color:var(--accent);background:#fff8e6;font-weight:700}
.sec{padding:4rem 0 0}.sec-title{text-align:center;font-size:clamp(1.5rem,3vw,2rem);margin-bottom:2.2rem}
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:2rem;text-align:center}
.steps .n{display:inline-grid;place-items:center;width:3rem;height:3rem;border-radius:50%;border:1px solid var(--accent);color:var(--accent-d);font-size:1.2rem;margin-bottom:.8rem}
.steps h3{font-size:1.1rem;font-weight:700;margin-bottom:.3rem}.steps p{color:var(--muted);margin:0}
.school-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:1.1rem}
.school-grid .card{padding:0;margin:0;overflow:hidden}.school-grid img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover;background:var(--soft)}
.school-grid .t{padding:.8rem 1rem 1rem}.school-grid strong{display:block;color:var(--ink)}
.band{margin-top:4rem;background:#fff8e6;border-block:1px solid #f3e1ad;text-align:center;padding:3rem 1.25rem}.band h2{margin:0 0 .3rem}.band p{margin:0 0 1rem;color:var(--muted)}
.quick{display:grid;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));gap:.9rem;margin:1.5rem 0}
@media(max-width:700px){footer .in{grid-template-columns:1fr}.hero .in{padding:2.5rem 1.25rem}.row{flex-wrap:wrap}.gal{max-width:100%}nav{gap:.3rem 1rem}}
/* search page: filters left, results right */
.search-layout{display:grid;grid-template-columns:19rem 1fr;gap:2rem;align-items:start}
.search-layout aside{position:sticky;top:5.2rem}
.filter-card{background:#fff;border:1px solid var(--line);border-radius:8px;padding:1.2rem 1.2rem 1.3rem}
.filter-card h2{font-size:1.2rem;margin:0 0 .9rem}.filter-card label{margin:.8rem 0 .25rem}.filter-card .seg label{margin:0}
.filter-card button{margin-top:1.1rem}
.filters summary{display:none;cursor:pointer;font-weight:700;padding:.7rem 1rem;border:1px solid var(--line);border-radius:6px;margin-bottom:.8rem;list-style:none}
.result-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(19rem,1fr));gap:.9rem}.result-grid .card{margin:0}
.person{display:flex;gap:1rem;align-items:center}.person .pic{flex:0 0 72px;width:72px;height:72px;border-radius:50%;object-fit:cover;background:var(--soft)}
.person .ph{display:grid;place-items:center;font-size:1.6rem;font-weight:300;color:var(--accent-d);background:#fff8e6}
.person .info{min-width:0}.person strong{display:block;color:var(--ink);font-size:1.05rem}.person .muted{display:block;margin-bottom:.35rem}
.chips{display:flex;flex-wrap:wrap;gap:.3rem}.chips i{font-style:normal;font-size:.78rem;background:var(--soft);border:1px solid var(--line);border-radius:999px;padding:.1rem .6rem;color:var(--muted)}
.empty{border:1px dashed #d9d9d9;border-radius:8px;padding:3rem 1.5rem;text-align:center}.empty h2{margin-top:0}
.pager{display:flex;gap:.6rem;margin-top:1.4rem}.pager .btn{margin:0}
@media(max-width:899px){.search-layout{grid-template-columns:1fr;gap:1rem}.search-layout aside{position:static}.filters summary{display:block}}
.person .act{margin:0 0 .4rem;font-size:.82rem}
.ad{margin:2.5rem 0 0;min-height:1px;text-align:center;overflow:hidden}
.crumbs{font-size:.85rem;color:var(--muted);margin-bottom:1rem}.crumbs a{color:var(--muted)}
.chips.big{display:flex;flex-wrap:wrap;gap:.4rem}.chips.big a{text-decoration:none}.chips.big i{font-size:.9rem;padding:.25rem .8rem;color:var(--ink)}.chips.big a:hover i{border-color:var(--accent);background:#fff8e6}
ul.plain{list-style:none;padding:0;margin:.5rem 0}ul.plain li{padding:.3rem 0;border-bottom:1px solid var(--line)}
.article{max-width:42rem}.article p,.article li{font-size:1.04rem}

.badge{display:inline-block;background:var(--accent);color:#1f2937;font-weight:700;font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;padding:.35rem .9rem;border-radius:999px;margin-bottom:1rem}
.notice{margin:1.6rem 0 0;padding:.9rem 1.1rem;background:#fff8e6;border:1px solid #f3e1ad;border-radius:8px;font-size:.98rem}
.free{display:flex;gap:2.5rem;align-items:center;flex-wrap:wrap;background:var(--soft);border:1px solid var(--line);border-radius:12px;padding:2.2rem;margin-top:3.5rem}
.free .zero{font-size:clamp(3.5rem,9vw,6rem);font-weight:300;line-height:1;color:var(--accent-d);letter-spacing:-.03em}
.free>div:last-child{flex:1;min-width:16rem}.free .sec-title.left{text-align:left;margin-bottom:.6rem}.free .sec-title.left::after{margin-left:0}.free p{margin:.2rem 0 1rem}
.ticks{list-style:none;padding:0;margin:0}.ticks li{padding:.35rem 0 .35rem 1.8rem;position:relative}.ticks li::before{content:"";position:absolute;left:0;top:.75rem;width:.9rem;height:.5rem;border-left:2px solid var(--accent-d);border-bottom:2px solid var(--accent-d);transform:rotate(-45deg)}
.free-note{background:#fff8e6;border:1px solid #f3e1ad;border-radius:6px;padding:.6rem .9rem;font-size:.95rem}

.topnotice{background:var(--accent);color:#1f2937;border-bottom:3px solid #d99a00}
.tn-in{max-width:68rem;margin:0 auto;padding:.85rem 1.25rem;display:flex;gap:1rem;align-items:center}
.tn-in p{margin:0;flex:1;font-size:1rem;line-height:1.5}.tn-in a{color:#1f2937;font-weight:700;text-underline-offset:3px}
.tn-tag{flex:none;background:#1f2937;color:#fff;font-weight:700;font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;padding:.3rem .7rem;border-radius:999px}
.tn-x{flex:none;width:2rem;height:2rem;margin:0;padding:0;background:rgba(0,0,0,.12);color:#1f2937;border-radius:50%;font-size:1.3rem;line-height:1}.tn-x:hover{background:rgba(0,0,0,.25);transform:none}
@media(max-width:700px){.tn-in{align-items:flex-start;padding:.8rem 1rem}.tn-tag{display:none}}
.free.top{margin:2rem 0 0}
.person .pic.sq{border-radius:10px;border:1px solid var(--line)}

@media(max-width:1100px){
.legal{max-width:44rem}.legal h2{font-size:1.15rem;font-weight:700;margin:2rem 0 .5rem}
.legal .imp{margin:1rem 0;padding:1.2rem 1.4rem}.legal .imp h2{margin:0 0 .4rem;font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.legal .imp p{margin:.2rem 0}
.legal p{color:#444}
.mng{display:flex;flex-wrap:wrap;gap:.8rem;margin-bottom:1rem}.mng .mi{width:8rem}.mng img{display:block;width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px}.mng .mi button{margin-top:.4rem;width:100%}
/* title and description inside link cards go on separate lines (start page quick links, guides) */
.quick .card strong,.result-grid>a.card>strong{display:block}
.quick .card .muted,.result-grid>a.card>.muted{display:block;margin-top:.15rem}
