/* CampusOne — shared site styles (landing, features, 404) */
@font-face{font-family:"CO Serif";src:url("fonts/co-serif-bold.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"CO Serif";src:url("fonts/co-serif-black.woff2") format("woff2");font-weight:900;font-style:normal;font-display:swap}
@font-face{font-family:"Sora";src:url("fonts/sora.woff2") format("woff2");font-weight:400 700;font-style:normal;font-display:swap}

:root{
  --paper:#FAFBF9; --surface:#FFFFFF; --mint:#EAF4F1; --mint-2:#DDEEE9;
  --ink:#10302E; --ink-2:#2E4B48; --muted:#5B716D; --faint:#88A09B;
  --line:#D8E5E0; --line-2:#E7EFEC;
  --teal:#0B6F6A; --teal-hover:#095A56; --teal-deep:#0E3B39; --teal-bright:#7FD3C8;
  --amber:#E8A33D; --amber-deep:#9A6412; --amber-soft:#FCF1DE;
  --sans:-apple-system,BlinkMacSystemFont,"PingFang SC","HarmonyOS Sans SC","MiSans","Microsoft YaHei","Noto Sans SC","Helvetica Neue",Arial,sans-serif;
  --serif:"CO Serif","Songti SC","Noto Serif SC","STSong",serif;
  --latin:"Sora",-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;
  --r:14px; --r-sm:10px;
  --shadow:0 1px 2px rgba(16,48,46,.05),0 12px 32px -12px rgba(16,48,46,.18);
  color-scheme:light;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.75;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:var(--teal);text-decoration:none}
a:hover{color:var(--teal-hover)}
:focus-visible{outline:3px solid #8FC9C0;outline-offset:3px;border-radius:6px}
h1,h2,h3{font-family:var(--serif);font-weight:700;letter-spacing:.01em;text-wrap:balance;margin:0}
p{margin:0}
.latin{font-family:var(--latin)}
.wrap{max-width:1180px;margin:0 auto;padding-inline:24px}
@media (max-width:560px){.wrap{padding-inline:18px}}

/* header */
.site-header{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:rgba(250,251,249,.86);backdrop-filter:saturate(1.4) blur(12px);-webkit-backdrop-filter:saturate(1.4) blur(12px);border-bottom:1px solid transparent;transition:border-color .2s}
.site-header.scrolled{border-bottom-color:var(--line)}
.site-header .wrap{display:flex;align-items:center;gap:28px;height:68px}
.brand{display:flex;align-items:center;flex-shrink:0}
.brand img{height:30px;width:auto}
.nav{display:flex;gap:26px;font-size:15px}
.nav a{color:var(--ink-2)}
.nav a:hover{color:var(--teal)}
.header-cta{margin-left:auto;display:flex;gap:10px;align-items:center}
@media (max-width:960px){.nav{display:none}}
@media (max-width:480px){.header-cta .btn-ghost{display:none}.brand img{height:26px}}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:46px;padding:0 22px;border-radius:999px;font-size:15.5px;font-weight:600;white-space:nowrap;border:1px solid transparent;transition:background .15s,border-color .15s,color .15s,transform .15s}
.btn:active{transform:translateY(1px)}
.btn-primary{background:var(--teal);color:#fff}
.btn-primary:hover{background:var(--teal-hover);color:#fff}
.btn-secondary{background:var(--surface);color:var(--ink);border-color:var(--line)}
.btn-secondary:hover{border-color:var(--teal);color:var(--teal)}
.btn-ghost{height:40px;padding:0 14px;color:var(--ink-2);font-weight:500}
.btn-ghost:hover{color:var(--teal)}
.btn-sm{height:38px;padding:0 16px;font-size:14.5px}
.btn .arr{font-family:var(--latin);transition:transform .15s}
.btn:hover .arr{transform:translateX(2px)}

/* footer */
.site-footer{background:var(--teal-deep);color:#C9DEDA;padding-block:56px 36px;margin-top:0}
.site-footer .grid{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:32px}
.site-footer img{height:30px;width:auto;margin-bottom:14px}
.site-footer p{font-size:14px;color:#9DBDB7;max-width:30ch}
.site-footer h4{margin:0 0 12px;font-size:13px;letter-spacing:.12em;color:#F4FAF8;font-weight:600}
.site-footer ul{list-style:none;margin:0;padding:0;display:grid;gap:8px;font-size:14px}
.site-footer a{color:#C9DEDA}
.site-footer a:hover{color:#fff}
.site-footer .fine{margin-top:40px;padding-top:20px;border-top:1px solid rgba(255,255,255,.1);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:12.5px;color:#86A6A0}
@media (max-width:820px){.site-footer .grid{grid-template-columns:1fr 1fr}}
@media (max-width:480px){.site-footer .grid{grid-template-columns:1fr}}
