/* SchoolApp — inner page styles (built on core.css tokens) */

/* ── Page hero ── */
.page-hero{background:var(--surface);border-bottom:1px solid var(--line);padding:132px 0 62px;position:relative;overflow:hidden}
.page-hero::before{content:"";position:absolute;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle,rgba(56,79,190,.10),transparent 68%);top:-260px;right:-90px;pointer-events:none}
.page-hero .wrap{position:relative;z-index:1}
.page-hero h1{font-size:clamp(32px,4.4vw,54px);max-width:15ch}
.page-hero p{font-size:var(--fs-lead,17px);color:var(--text);max-width:60ch;margin-top:16px}
.crumb{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);margin-bottom:20px}
.crumb a{color:var(--muted)}
.crumb a:hover{color:var(--brand)}
.crumb span{opacity:.5}

/* ── Generic page section ── */
.page-section{padding:74px 0}
.page-section+.page-section{padding-top:0}
.page-section h2{font-size:clamp(24px,2.8vw,34px);margin-bottom:10px}
.page-section>.wrap>p{max-width:68ch}
.lede{font-size:17px;color:var(--text);margin-bottom:34px;max-width:66ch}

/* ── Card grids ── */
.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(268px,1fr));gap:20px;margin-top:30px}
.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:26px;transition:transform .45s var(--ease),box-shadow .45s var(--ease),border-color .45s}
.card:hover{transform:translateY(-5px);box-shadow:var(--shadow-md);border-color:transparent}
.card h3{font-size:18px;margin-bottom:8px}
.card p{font-size:14px;color:var(--text)}
.card-ico{width:42px;height:42px;border-radius:11px;background:var(--brand-muted);color:var(--brand);display:flex;align-items:center;justify-content:center;margin-bottom:16px}
.card-link{display:inline-flex;align-items:center;gap:6px;margin-top:14px;font-size:14px;color:var(--brand)}
.card-count{font-size:12px;color:var(--muted);margin-top:12px;display:block}

/* ── Accordion (help / FAQ) ── */
.acc{border-top:1px solid var(--line);margin-top:28px}
.acc details{border-bottom:1px solid var(--line)}
.acc summary{cursor:pointer;padding:20px 44px 20px 0;font-size:16px;color:var(--ink);position:relative;list-style:none;font-weight:400}
.acc summary::-webkit-details-marker{display:none}
.acc summary::after{content:"";position:absolute;right:8px;top:50%;width:9px;height:9px;border-right:1.5px solid var(--muted);border-bottom:1.5px solid var(--muted);transform:translateY(-70%) rotate(45deg);transition:transform .35s var(--ease)}
.acc details[open] summary::after{transform:translateY(-30%) rotate(225deg)}
.acc details[open] summary{color:var(--brand)}
.acc p{padding:0 44px 22px 0;font-size:15px;color:var(--text);max-width:70ch}

/* ── Steps (getting started) ── */
.steps{counter-reset:s;margin-top:34px;display:grid;gap:18px}
.step{counter-increment:s;position:relative;background:#fff;border:1px solid var(--line);border-radius:14px;padding:26px 26px 26px 82px}
.step::before{content:counter(s);position:absolute;left:26px;top:26px;width:36px;height:36px;border-radius:50%;background:var(--brand);color:#fff;display:grid;place-items:center;font-size:15px;font-weight:500}
.step h3{font-size:17px;margin-bottom:6px}
.step p{font-size:14.5px;color:var(--text)}
.step-meta{display:inline-block;margin-top:12px;font-size:12px;color:var(--brand);background:var(--brand-muted);padding:4px 11px;border-radius:var(--r-pill)}

/* ── Status page ── */
.status-banner{display:flex;align-items:center;gap:14px;background:var(--success-bg);border:1px solid rgba(47,169,107,.28);border-radius:14px;padding:20px 24px;margin-bottom:34px}
.status-dot{width:11px;height:11px;border-radius:50%;background:var(--success);flex-shrink:0;position:relative}
.status-dot::after{content:"";position:absolute;inset:-5px;border-radius:50%;border:1px solid var(--success);opacity:.5;animation:pulse 2.2s ease-out infinite}
@keyframes pulse{0%{transform:scale(.7);opacity:.6}100%{transform:scale(1.5);opacity:0}}
.status-banner b{font-weight:500;color:#1d6b45;font-size:16px}
.status-banner span{font-size:13px;color:#2b7a55;display:block;margin-top:2px}
.status-list{border:1px solid var(--line);border-radius:14px;overflow:hidden}
.status-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:17px 22px;border-bottom:1px solid var(--line);background:#fff}
.status-row:last-child{border-bottom:none}
.status-row b{font-weight:400;font-size:15px;color:var(--ink)}
.status-row small{display:block;color:var(--muted);font-size:12.5px;margin-top:2px}
.pill{font-size:12px;padding:5px 13px;border-radius:var(--r-pill);white-space:nowrap}
.pill-ok{background:var(--success-bg);color:#1d6b45}
.pill-warn{background:#FDF3E2;color:#96650f}
.pill-down{background:var(--danger-bg);color:var(--danger)}
.uptime{display:flex;gap:3px;margin-top:10px}
.uptime i{flex:1;height:26px;border-radius:2px;background:var(--success);opacity:.8}
.uptime i.w{background:var(--warning)}
.uptime i.d{background:var(--danger)}
.hist{margin-top:38px}
.hist-item{padding:20px 0;border-bottom:1px solid var(--line)}
.hist-item:last-child{border-bottom:none}
.hist-item time{font-size:12.5px;color:var(--muted)}
.hist-item h3{font-size:16px;margin:6px 0 6px}
.hist-item p{font-size:14.5px;color:var(--text);max-width:72ch}

/* ── Blog ── */
.post-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:26px;margin-top:32px}
.post{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;display:flex;flex-direction:column;transition:transform .45s var(--ease),box-shadow .45s var(--ease)}
.post:hover{transform:translateY(-5px);box-shadow:var(--shadow-md)}
.post-thumb{height:168px;background:var(--brand-muted);position:relative;overflow:hidden;display:grid;place-items:center;color:var(--brand);opacity:.9}
.post-thumb.v2{background:#efe4fb;color:var(--teal)}
.post-thumb.v3{background:#e2f2ea;color:var(--success)}
.post-body{padding:22px;flex:1;display:flex;flex-direction:column}
.post-tag{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--brand);margin-bottom:10px}
.post h3{font-size:17px;line-height:1.3;margin-bottom:8px}
.post p{font-size:14px;color:var(--text);flex:1}
.post-meta{display:flex;align-items:center;gap:9px;margin-top:16px;font-size:12.5px;color:var(--muted)}
.post-meta i{width:3px;height:3px;border-radius:50%;background:var(--muted);display:block}
.featured{display:grid;grid-template-columns:1.15fr 1fr;gap:0;border:1px solid var(--line);border-radius:16px;overflow:hidden;margin-top:32px;background:#fff}
.featured-img{background:linear-gradient(140deg,var(--brand),#5a6fd4);display:grid;place-items:center;color:#fff;min-height:280px}
.featured-body{padding:40px}
.featured-body h2{font-size:clamp(22px,2.4vw,30px);margin-bottom:12px}

/* ── Careers ── */
.job{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px;background:#fff;border:1px solid var(--line);border-radius:14px;margin-bottom:14px;transition:border-color .45s,transform .45s var(--ease)}
.job:hover{border-color:var(--brand);transform:translateX(4px)}
.job h3{font-size:17px;margin-bottom:7px}
.job-tags{display:flex;flex-wrap:wrap;gap:8px}
.job-tags span{font-size:12px;color:var(--muted);background:var(--surface);padding:4px 11px;border-radius:var(--r-pill)}
.dept{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:34px 0 14px}
.perks{display:grid;grid-template-columns:repeat(auto-fit,minmax(212px,1fr));gap:18px;margin-top:28px}
.perk{padding:22px;background:var(--surface);border-radius:14px}
.perk b{display:block;font-weight:500;color:var(--ink);margin-bottom:6px;font-size:15px}
.perk p{font-size:13.5px;color:var(--text)}

/* ── About ── */
.stat-band{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:20px;margin-top:36px;padding:34px;background:var(--surface);border-radius:16px}
.stat-band div{text-align:center}
.stat-band b{display:block;font-size:clamp(28px,3.4vw,40px);font-weight:300;letter-spacing:-.03em;color:var(--brand);line-height:1.1}
.stat-band span{font-size:13px;color:var(--muted)}
.timeline{margin-top:34px;border-left:1px solid var(--line);padding-left:30px}
.tl-item{position:relative;padding-bottom:32px}
.tl-item:last-child{padding-bottom:0}
.tl-item::before{content:"";position:absolute;left:-36px;top:5px;width:11px;height:11px;border-radius:50%;background:var(--brand);border:2.5px solid #fff;box-shadow:0 0 0 1px var(--line)}
.tl-item b{display:block;font-weight:500;color:var(--brand);font-size:13px;margin-bottom:4px}
.tl-item h3{font-size:16px;margin-bottom:5px}
.tl-item p{font-size:14.5px;color:var(--text);max-width:64ch}
.team{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:22px;margin-top:30px}
.member{text-align:center}
.avatar{width:84px;height:84px;border-radius:50%;margin:0 auto 14px;background:linear-gradient(140deg,var(--brand),#7d8de0);display:grid;place-items:center;color:#fff;font-size:26px;font-weight:300}
.member b{display:block;font-weight:500;color:var(--ink);font-size:15px}
.member span{font-size:13px;color:var(--muted)}

/* ── Contact ── */
.contact-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:52px;align-items:start}
.contact-ways{display:grid;gap:16px;margin-top:26px}
.way{display:flex;gap:15px;padding:20px;background:#fff;border:1px solid var(--line);border-radius:14px}
.way-ico{width:40px;height:40px;border-radius:11px;background:var(--brand-muted);color:var(--brand);display:grid;place-items:center;flex-shrink:0}
.way b{display:block;font-weight:500;color:var(--ink);font-size:15px;margin-bottom:3px}
.way p{font-size:13.5px;color:var(--text)}
.way a{color:var(--brand)}
.form-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:34px;box-shadow:var(--shadow-md)}
.office{padding:22px;border:1px solid var(--line);border-radius:14px;background:#fff}
.office b{display:block;font-weight:500;color:var(--ink);margin-bottom:8px}
.office p{font-size:14px;color:var(--text);line-height:1.7}

/* ── Legal (privacy / terms) ── */
.legal{display:grid;grid-template-columns:232px 1fr;gap:52px;align-items:start}
.toc{position:sticky;top:96px;border-left:1px solid var(--line);padding-left:20px}
.toc b{display:block;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:14px}
.toc a{display:block;padding:6px 0;font-size:14px;color:var(--text)}
.toc a:hover{color:var(--brand)}
.prose h2{font-size:22px;margin:42px 0 12px;scroll-margin-top:100px}
.prose h2:first-child{margin-top:0}
.prose h3{font-size:16px;margin:24px 0 8px}
.prose p{font-size:15px;color:var(--text);margin-bottom:14px;max-width:74ch}
.prose ul{margin:0 0 16px 20px}
.prose li{font-size:15px;color:var(--text);margin-bottom:8px;max-width:72ch}
.updated{display:inline-block;font-size:13px;color:var(--muted);background:var(--surface);padding:8px 16px;border-radius:var(--r-pill);margin-bottom:8px}
.callout{background:var(--surface);border-left:2px solid var(--brand);border-radius:0 12px 12px 0;padding:20px 24px;margin:22px 0}
.callout p{margin:0;font-size:14.5px}

/* ── Demo page ── */
.demo-split{display:grid;grid-template-columns:1fr 1.1fr;gap:56px;align-items:start}
.check-list{display:grid;gap:14px;margin-top:26px}
.check{display:flex;gap:12px;align-items:flex-start;font-size:15px;color:var(--text)}
.check svg{flex-shrink:0;margin-top:3px;color:var(--success)}

/* ── Responsive ── */
@media(max-width:980px){
  .page-hero{padding:112px 0 50px}
  .contact-grid,.legal,.demo-split,.featured{grid-template-columns:1fr;gap:34px}
  .toc{position:static;border-left:none;padding-left:0;border-bottom:1px solid var(--line);padding-bottom:18px}
  .toc a{display:inline-block;margin-right:16px}
  .featured-img{min-height:200px}
}
@media(max-width:560px){
  .page-section{padding:52px 0}
  .job{flex-direction:column;align-items:flex-start;gap:16px}
  .form-card,.featured-body{padding:24px}
  .step{padding:22px 22px 22px 70px}
  .step::before{left:20px;top:22px}
  .status-row{flex-direction:column;align-items:flex-start;gap:10px}
}
