/* ============================================================
   Accurate Education Society — design tokens
   ============================================================ */
:root{
  --ink:        #182338;
  --ink-soft:   #3E4A61;
  --ink-mute:   #6B7488;
  --paper:      #F6F3EC;
  --paper-deep: #EFEADC;
  --white:      #FFFFFF;
  --marigold:   #E1972F;
  --marigold-deep: #B8781C;
  --teal:       #1B6E67;
  --teal-deep:  #124D48;
  --line:       #E1DBC8;
  --line-dark:  rgba(246,243,236,0.18);

  --serif: "Source Serif 4", Georgia, "Times New Roman", serif;
  --sans:  "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

  --container: 1120px;
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--paper);
  color:var(--ink-soft);
  font-family:var(--sans);
  font-size:17px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
a:focus-visible, button:focus-visible{ outline:2px solid var(--marigold-deep); outline-offset:3px; }

.container{
  max-width:var(--container);
  margin:0 auto;
  padding:0 28px;
}

h1,h2,h3,h4{
  font-family:var(--serif);
  color:var(--ink);
  line-height:1.15;
  margin:0 0 .5em;
  font-weight:600;
}
h1{ font-size:clamp(2.1rem, 4.2vw, 3.2rem); }
h2{ font-size:clamp(1.5rem, 2.6vw, 2rem); }
h3{ font-size:1.2rem; }
p{ margin:0 0 1.1em; max-width:66ch; }
.lede{ font-size:1.15rem; color:var(--ink-soft); }

/* ---------- header ---------- */
.site-header{
  border-bottom:1px solid var(--line);
  background:var(--paper);
  position:sticky; top:0; z-index:40;
}
.site-header .container{
  display:flex; align-items:center; justify-content:space-between;
  padding-top:18px; padding-bottom:18px;
}
.wordmark{
  font-family:var(--serif);
  font-size:1.3rem;
  font-weight:600;
  color:var(--ink);
  display:flex; flex-direction:column; line-height:1.1;
}
.wordmark span{
  font-family:var(--sans);
  font-size:.66rem;
  font-weight:500;
  letter-spacing:.04em;
  color:var(--marigold-deep);
  margin-top:3px;
}
nav.primary-nav ul{
  list-style:none; display:flex; gap:2rem; margin:0; padding:0;
}
nav.primary-nav a{
  font-size:.95rem; font-weight:500; color:var(--ink-soft);
  padding:.3rem 0; border-bottom:2px solid transparent;
}
nav.primary-nav a:hover{ color:var(--ink); }
nav.primary-nav li.active a{ color:var(--ink); border-bottom-color:var(--marigold); }

.nav-toggle{
  display:none; background:none; border:1px solid var(--line);
  border-radius:6px; width:40px; height:36px; cursor:pointer;
  align-items:center; justify-content:center; gap:4px; flex-direction:column;
}
.nav-toggle span{ width:18px; height:2px; background:var(--ink); display:block; }

@media (max-width:800px){
  .nav-toggle{ display:flex; }
  nav.primary-nav{
    display:none; position:absolute; left:0; right:0; top:100%;
    background:var(--white); border-bottom:1px solid var(--line);
  }
  nav.primary-nav.open{ display:block; }
  nav.primary-nav ul{ flex-direction:column; gap:0; padding:8px 28px 18px; }
  nav.primary-nav a{ display:block; padding:.7rem 0; border-bottom:1px solid var(--line); }
  nav.primary-nav li.active a{ border-bottom-color:var(--line); }
}

/* ---------- hero ---------- */
.hero{ padding:64px 0 48px; }
.hero .kicker{
  color:var(--marigold-deep); font-weight:600; font-size:.85rem;
  margin-bottom:.6em; display:block;
}
.hero-rule{
  width:64px; height:3px; background:var(--marigold); border:0; margin:22px 0 0;
}

/* ---------- sections ---------- */
section{ padding:56px 0; }
section.on-paper-deep{ background:var(--paper-deep); }
.section-head{ max-width:640px; margin-bottom:2.2rem; }

.ink-band{
  background:var(--ink); color:var(--paper);
}
.ink-band h2, .ink-band h3{ color:var(--white); }
.ink-band p{ color:rgba(246,243,236,0.86); }
.ink-band .hero-rule{ background:var(--marigold); }

.teal-band{ background:var(--teal); color:#EAF4F2; }
.teal-band h2, .teal-band h3{ color:var(--white); }
.teal-band p{ color:rgba(234,244,242,0.9); }
.teal-band .hero-rule{ background:#EAF4F2; }

/* ---------- pillars / plain list (no card sameness) ---------- */
.pillars{
  display:grid; grid-template-columns:repeat(3,1fr); gap:0;
  border-top:1px solid var(--line);
}
.pillars > div{
  padding:28px 26px 28px 0; border-bottom:1px solid var(--line);
}
.pillars > div:not(:last-child){ border-right:1px solid var(--line); padding-right:26px; }
.pillar-icon{ width:34px; height:34px; margin-bottom:14px; color:var(--marigold-deep); }
@media (max-width:760px){
  .pillars{ grid-template-columns:1fr; }
  .pillars > div:not(:last-child){ border-right:none; }
}

/* ---------- news / catalog rows ---------- */
.row-list{ border-top:1px solid var(--line); }
.row-list > article{
  display:grid; grid-template-columns:140px 1fr; gap:28px;
  padding:26px 0; border-bottom:1px solid var(--line);
}
.row-list time{
  font-size:.82rem; color:var(--ink-mute); font-weight:500; padding-top:.2em;
}
@media (max-width:640px){
  .row-list > article{ grid-template-columns:1fr; gap:6px; }
}

/* course catalog */
.catalog > article{
  border-top:1px solid var(--line);
  padding:30px 0;
  display:grid; grid-template-columns:220px 1fr; gap:32px;
}
.catalog > article:last-child{ border-bottom:1px solid var(--line); }
.catalog .course-tag{
  font-size:.78rem; font-weight:600; letter-spacing:.02em;
  color:var(--teal-deep); background:#E4EFEC; display:inline-block;
  padding:.25em .6em; border-radius:3px; margin-bottom:.6em;
}
@media (max-width:700px){
  .catalog > article{ grid-template-columns:1fr; gap:10px; }
}

/* two-col editorial (about) */
.editorial{
  display:grid; grid-template-columns:1.1fr .9fr; gap:56px; align-items:start;
}
.pull{
  font-family:var(--serif); font-size:1.5rem; color:var(--ink);
  line-height:1.4; border-left:3px solid var(--marigold); padding-left:22px;
  margin:0 0 1.4em;
}
.signature{ margin-top:1.8rem; }
.signature .name{ font-family:var(--serif); font-weight:600; color:var(--ink); font-size:1.05rem; }
.signature .role{ font-size:.85rem; color:var(--ink-mute); }
@media (max-width:820px){ .editorial{ grid-template-columns:1fr; } }

/* practical info blocks (admissions) */
.info-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.info-grid .chip{
  border:1px solid var(--line); border-radius:8px; padding:20px 20px 18px;
  background:var(--white);
}
.info-grid .chip h3{ margin-bottom:.3em; font-size:1.05rem; }
.info-grid .chip p{ margin:0; font-size:.92rem; color:var(--ink-mute); }
@media (max-width:700px){ .info-grid{ grid-template-columns:1fr; } }

/* people / directory */
.people-grid{
  display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:22px 18px;
}
.person{ text-align:left; }
.avatar{
  width:64px; height:64px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-family:var(--serif); font-weight:600; font-size:1.1rem; color:var(--white);
  margin-bottom:10px;
}
.person .p-name{ font-size:.92rem; font-weight:600; color:var(--ink); }
.person .p-role{ font-size:.78rem; color:var(--ink-mute); }

.supporters{
  display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:22px 26px;
  border-top:1px solid var(--line-dark); padding-top:28px; margin-top:8px;
}
.supporters .s-name{ font-weight:600; color:var(--white); font-size:.98rem; }
.supporters .s-role{ font-size:.85rem; color:rgba(246,243,236,0.72); }
.supporters .s-loc{
  font-size:.74rem; font-weight:600; letter-spacing:.03em; color:var(--marigold);
  margin-top:.3em; display:inline-block;
}

.member-bio{ border-top:1px solid var(--line); padding:26px 0; display:grid; grid-template-columns:78px 1fr; gap:22px; }
.member-bio:last-child{ border-bottom:1px solid var(--line); }
.member-bio .avatar{ width:56px; height:56px; font-size:.95rem; }
.member-bio blockquote{ margin:.6em 0 0; font-style:italic; color:var(--ink-soft); font-size:.96rem; border-left:2px solid var(--line); padding-left:14px; }
@media (max-width:600px){ .member-bio{ grid-template-columns:1fr; } .member-bio .avatar{ margin-bottom:6px; } }

/* contact */
.contact-cards{ display:grid; grid-template-columns:1fr 1fr; gap:32px; }
.contact-card{ border:1px solid var(--line); border-radius:8px; padding:26px 28px; background:var(--white); }
.contact-card h3{ margin-bottom:.9em; }
.contact-card dl{ margin:0; }
.contact-card dt{ font-size:.76rem; text-transform:uppercase; letter-spacing:.05em; color:var(--ink-mute); margin-top:.9em; }
.contact-card dt:first-child{ margin-top:0; }
.contact-card dd{ margin:.15em 0 0; color:var(--ink); }
.contact-card a{ color:var(--teal-deep); font-weight:600; }
@media (max-width:700px){ .contact-cards{ grid-template-columns:1fr; } }

/* buttons */
.btn{
  display:inline-block; background:var(--marigold); color:var(--ink);
  font-weight:600; padding:.75em 1.5em; border-radius:6px; font-size:.95rem;
}
.btn:hover{ background:var(--marigold-deep); color:var(--white); }
.btn-ghost{ border:1px solid var(--line-dark); color:var(--white); background:transparent; }
.btn-ghost:hover{ border-color:var(--marigold); color:var(--marigold); background:transparent; }

/* ---------- footer ---------- */
footer.site-footer{ background:var(--ink); color:rgba(246,243,236,0.85); padding:52px 0 26px; }
footer.site-footer h4{ color:var(--white); font-family:var(--sans); font-size:.78rem; text-transform:uppercase; letter-spacing:.06em; margin-bottom:1em; }
.footer-grid{ display:grid; grid-template-columns:1.3fr 1fr 1fr 1fr; gap:32px; }
footer.site-footer p, footer.site-footer address{ font-size:.92rem; font-style:normal; margin:0 0 .3em; color:rgba(246,243,236,0.78); }
footer.site-footer a:hover{ color:var(--marigold); }
footer.site-footer ul{ list-style:none; margin:0; padding:0; }
footer.site-footer ul li{ margin-bottom:.5em; font-size:.92rem; }
.social-row{ display:flex; gap:10px; margin-top:.4em; }
.social-row a{
  width:34px; height:34px; border:1px solid var(--line-dark); border-radius:50%;
  display:flex; align-items:center; justify-content:center;
}
.social-row a:hover{ border-color:var(--marigold); }
.footer-base{ border-top:1px solid var(--line-dark); margin-top:36px; padding-top:20px; font-size:.82rem; color:rgba(246,243,236,0.55); }
@media (max-width:800px){ .footer-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:500px){ .footer-grid{ grid-template-columns:1fr; } }

.skip-link{
  position:absolute; left:-999px; top:0; background:var(--marigold); color:var(--ink);
  padding:10px 16px; z-index:100;
}
.skip-link:focus{ left:12px; top:12px; }

@media (prefers-reduced-motion:reduce){ html{ scroll-behavior:auto; } }
