@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700&family=Montserrat+Alternates:wght@500;600;700&display=swap');

:root{
  --evergreen:#2c3a32;
  --parchment:#f2eadf;
  --mossbank:#2c5c47;
  --mulberry:#5a1f2e;
  --terracotta:#c65c39;
  --harbour:#5193cf;
  --camellia:#f286b1;
  --sagebrush:#b0cf9e;

  --paper:#fffdf8;
  --hairline:rgba(44,58,50,0.14);
  --text:var(--evergreen);
  --text-muted:rgba(44,58,50,0.68);
  --link:var(--terracotta);

  --content-width:700px;
  --radius:14px;
}

*{box-sizing:border-box;}

html{scroll-behavior:smooth;}

body{
  --accent:var(--doc-accent, var(--mossbank));
  margin:0;
  background:var(--parchment);
  color:var(--text);
  font-family:'Montserrat',-apple-system,BlinkMacSystemFont,sans-serif;
  font-size:16px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}

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

a{color:var(--link);}
a:focus-visible,
button:focus-visible,
summary:focus-visible{
  outline:2px solid var(--accent);
  outline-offset:2px;
  border-radius:4px;
}

/* ---------- header ---------- */

.site-header{
  position:sticky;
  top:0;
  z-index:10;
  background:rgba(242,234,223,0.92);
  backdrop-filter:blur(6px);
  border-bottom:1px solid var(--hairline);
}

.site-header__inner{
  max-width:calc(var(--content-width) + 48px);
  margin:0 auto;
  padding:16px 24px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}

.wordmark{
  display:inline-flex;
  align-items:center;
  line-height:0;
}

.wordmark-logo{
  height:30px;
  width:auto;
  display:block;
  transition:opacity 0.15s ease;
}

.wordmark:hover .wordmark-logo{opacity:0.8;}

.header-badge{
  font-family:'Montserrat',sans-serif;
  font-weight:600;
  font-size:0.72rem;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--accent);
  border:1px solid var(--accent);
  border-radius:999px;
  padding:5px 12px;
  white-space:nowrap;
}

/* ---------- page shell ---------- */

.page{
  max-width:calc(var(--content-width) + 48px);
  margin:0 auto;
  padding:48px 24px 96px;
}

.page-intro{
  margin-bottom:32px;
}

.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-family:'Montserrat',sans-serif;
  font-weight:600;
  font-size:0.78rem;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:var(--accent);
  margin:0 0 14px;
}

.eyebrow::before{
  content:"";
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--accent);
  display:inline-block;
}

h1{
  font-family:'Montserrat Alternates',sans-serif;
  font-weight:700;
  font-size:2.15rem;
  line-height:1.2;
  margin:0 0 12px;
  color:var(--evergreen);
}

.updated{
  font-size:0.9rem;
  color:var(--text-muted);
  margin:0 0 20px;
}

.lede{
  font-size:1.05rem;
  color:var(--text);
  max-width:58ch;
  margin:0;
}

/* ---------- table of contents ---------- */

.toc{
  background:var(--paper);
  border:1px solid var(--hairline);
  border-radius:var(--radius);
  padding:8px 20px;
  margin:28px 0 40px;
}

.toc summary{
  cursor:pointer;
  list-style:none;
  padding:12px 0;
  font-family:'Montserrat Alternates',sans-serif;
  font-weight:600;
  font-size:0.95rem;
  color:var(--evergreen);
  display:flex;
  align-items:center;
  justify-content:space-between;
}

.toc summary::-webkit-details-marker{display:none;}

.toc summary::after{
  content:"+";
  font-size:1.1rem;
  color:var(--accent);
  font-weight:700;
  transition:transform 0.15s ease;
}

.toc[open] summary::after{transform:rotate(45deg);}

.toc-list{
  columns:2;
  column-gap:24px;
  margin:0 0 16px;
  padding:12px 0 0;
  border-top:1px solid var(--hairline);
  list-style:none;
}

.toc-list li{
  break-inside:avoid;
  margin-bottom:8px;
}

.toc-list a{
  text-decoration:none;
  font-size:0.92rem;
  color:var(--text);
}

.toc-list a:hover{color:var(--accent);}

@media (max-width:560px){
  .toc-list{columns:1;}
}

/* ---------- document body ---------- */

.doc-body section{
  padding-top:36px;
  scroll-margin-top:88px;
}

.doc-body section:first-of-type{
  padding-top:0;
}

.doc-body section + section{
  border-top:1px solid var(--hairline);
}

.doc-body h2{
  font-family:'Montserrat Alternates',sans-serif;
  font-weight:600;
  font-size:1.3rem;
  color:var(--evergreen);
  margin:0 0 14px;
}

.doc-body h3{
  font-family:'Montserrat Alternates',sans-serif;
  font-weight:600;
  font-size:1.06rem;
  color:var(--accent);
  margin:26px 0 10px;
}

.doc-body p{
  margin:0 0 16px;
  max-width:64ch;
}

.doc-body ul{
  margin:0 0 16px;
  padding-left:1.3em;
  max-width:60ch;
}

.doc-body li{
  margin-bottom:8px;
}

.doc-body strong{color:var(--evergreen);}

.doc-body a{
  color:var(--link);
  text-decoration-thickness:1px;
  text-underline-offset:2px;
}

.callout{
  background:var(--paper);
  border-left:3px solid var(--accent);
  border-radius:8px;
  padding:16px 20px;
  margin:0 0 16px;
  max-width:60ch;
}

.callout p:last-child{margin-bottom:0;}

/* ---------- footer ---------- */

.site-footer{
  max-width:calc(var(--content-width) + 48px);
  margin:0 auto;
  padding:40px 24px 64px;
  border-top:1px solid var(--hairline);
}

.footer-links{
  display:flex;
  flex-wrap:wrap;
  gap:8px 20px;
  padding:0;
  margin:0 0 20px;
  list-style:none;
}

.footer-links a{
  font-size:0.92rem;
  text-decoration:none;
  color:var(--text);
  font-weight:500;
}

.footer-links a[aria-current="page"]{
  color:var(--accent);
  font-weight:600;
}

.footer-links a:hover{color:var(--accent);}

.footer-meta{
  font-size:0.85rem;
  color:var(--text-muted);
  margin:0;
}

.footer-meta a{color:var(--text-muted);}
.footer-meta a:hover{color:var(--accent);}

/* ---------- legal hub ---------- */

.hub-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
  margin:36px 0 8px;
}

@media (max-width:640px){
  .hub-grid{grid-template-columns:1fr;}
}

.hub-card{
  position:relative;
  display:block;
  background:var(--paper);
  border:1px solid var(--hairline);
  border-radius:var(--radius);
  padding:22px 22px 20px;
  text-decoration:none;
  color:inherit;
  transition:border-color 0.15s ease, transform 0.15s ease;
}

.hub-card:hover{
  border-color:var(--card-accent);
  transform:translateY(-2px);
}

.hub-card:focus-visible{
  outline:2px solid var(--card-accent);
  outline-offset:3px;
}

.hub-card__dot{
  width:10px;
  height:10px;
  border-radius:50%;
  background:var(--card-accent);
  display:inline-block;
  margin-bottom:14px;
}

.hub-card h2{
  font-family:'Montserrat Alternates',sans-serif;
  font-weight:600;
  font-size:1.1rem;
  color:var(--evergreen);
  margin:0 0 8px;
}

.hub-card p{
  font-size:0.92rem;
  color:var(--text-muted);
  margin:0 0 16px;
  max-width:none;
}

.hub-card__link{
  font-size:0.85rem;
  font-weight:600;
  color:var(--card-accent);
}

.hub-contact{
  margin-top:44px;
  padding-top:28px;
  border-top:1px solid var(--hairline);
}

.hub-contact p{
  font-size:0.92rem;
  color:var(--text-muted);
  margin:0;
}

.hub-contact a{color:var(--link);}

/* ---------- back to top ---------- */

.back-to-top{
  display:inline-block;
  margin-top:40px;
  font-size:0.85rem;
  font-weight:600;
  color:var(--accent);
  text-decoration:none;
}

@media (max-width:640px){
  h1{font-size:1.7rem;}
  .page{padding:36px 18px 72px;}
}
