.page-header{position:relative;background:var(--ivory);border-bottom:1px solid var(--hairline)}
/* .header-nav styling is defined once in styles.css and applies here too. */
.library-hero{padding-top:clamp(7rem,12vw,10rem);padding-bottom:clamp(4rem,8vw,6.5rem);text-align:center;background:radial-gradient(100% 80% at 50% 115%,rgba(169,184,167,.32),transparent 58%),var(--ivory)}
.library-hero h1{font-family:var(--display);font-weight:300;font-size:clamp(2.4rem,5.5vw,4.5rem);line-height:1.08;color:var(--forest);max-width:15ch;margin:1rem auto 1.5rem}
.library-hero .sub{max-width:58ch;margin:0 auto;font-size:clamp(1rem,1.4vw,1.18rem)}
.library-intro-note{max-width:44rem;margin:2.2rem auto 0;padding:1.2rem 1.4rem;border:1px solid var(--hairline);background:rgba(255,255,255,.58)}
.library-signup{background:var(--stone);padding-top:clamp(4rem,8vw,6rem);padding-bottom:clamp(4rem,8vw,6rem)}
.library-signup-inner{max-width:42rem;margin:0 auto;text-align:center}
.library-signup h2,.library-heading h2,.library-safety h2{font-family:var(--display);font-weight:300;color:var(--forest);font-size:clamp(1.9rem,3.6vw,2.9rem);line-height:1.2;margin:1rem auto 1rem}
.library-signup p{margin:0 auto 2rem;max-width:54ch}.library-signup .quiet-note{font-size:.8rem;color:var(--moss);margin-top:1rem;margin-bottom:0}
.library{background:var(--ivory)}
.library-heading{text-align:center;max-width:46rem;margin:0 auto 3.5rem}.library-heading p:last-child{color:var(--moss)}
.resource-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.15rem;max-width:74rem;margin:0 auto}
.resource-card{position:relative;display:flex;flex-direction:column;min-height:21rem;padding:2rem;border:1px solid var(--hairline);background:#fff;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.resource-card:hover{transform:translateY(-3px);box-shadow:0 14px 35px rgba(31,58,50,.08);border-color:rgba(31,58,50,.34)}
.resource-number{font-family:var(--display);font-size:1rem;color:var(--sage);margin-bottom:1.1rem}.resource-tag{position:absolute;top:2rem;right:2rem;font-size:.67rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--moss)}
.resource-card h3{font-family:var(--display);font-weight:400;font-size:clamp(1.35rem,2.4vw,1.75rem);line-height:1.18;color:var(--forest);max-width:22ch;margin-bottom:1rem}
.resource-card p{font-size:.98rem;margin-bottom:1.8rem}.download-btn{margin-top:auto;align-self:flex-start;font-size:.76rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;color:var(--ivory);background:var(--forest);padding:.85rem 1.15rem;border:1px solid var(--forest);transition:background .2s ease}.download-btn:hover{background:#2A4A40}
.library-boundary{background:var(--forest);text-align:center}.boundary-inner{max-width:46rem;margin:0 auto}.library-boundary h2{font-family:var(--display);font-weight:300;color:var(--ivory);font-size:clamp(2rem,4vw,3.1rem);line-height:1.18;margin:1rem auto 1.4rem}.library-boundary p{color:var(--stone);margin-bottom:2rem}.light-link{display:inline-block;color:var(--ivory);text-decoration:none;border-bottom:1px solid var(--sage);padding-bottom:.2rem;font-weight:600}
.library-safety{background:var(--stone);text-align:center;padding-top:4.5rem;padding-bottom:4.5rem}.safety-inner{max-width:48rem;margin:0 auto}.library-safety p{font-size:.95rem;color:rgba(43,43,40,.78)}
@media(max-width:760px){.page-header{position:relative}.resource-grid{grid-template-columns:1fr}.resource-card{min-height:0}.resource-tag{position:static;display:block;margin:-.9rem 0 1rem}.library-hero{padding-top:3rem}}
.library-request{background:var(--ivory);text-align:center;padding-top:clamp(4.5rem,8vw,6.5rem);padding-bottom:clamp(4.5rem,8vw,6.5rem);border-top:1px solid var(--hairline)}
.request-inner{max-width:48rem;margin:0 auto}
.library-request h2{font-family:var(--display);font-weight:300;color:var(--forest);font-size:clamp(2rem,4vw,3.1rem);line-height:1.18;margin:1rem auto 1.25rem}
.library-request p{max-width:62ch;margin:0 auto 1rem}
.request-btn{display:inline-block;margin-top:1.2rem;padding:.9rem 1.25rem;background:var(--forest);border:1px solid var(--forest);color:var(--ivory);font-size:.76rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;transition:background .2s ease,transform .2s ease}
.request-btn:hover{background:#2A4A40;transform:translateY(-1px)}
.library-request .request-note{margin-top:1.25rem;font-size:.82rem;line-height:1.55;color:var(--moss)}


/* ═══ LIBRARY HEADER NAVIGATION — AUTHORITATIVE BLOCK ═══════════════
   One block owns every link state. Explicit :link and :visited so
   browser defaults (blue/purple, underline) can never surface. */
.library-header-nav{
  display:flex;
  align-items:center;
  justify-content:center;
  flex-direction:row;
  white-space:nowrap;
}
.library-header-nav a,
.library-header-nav a:link,
.library-header-nav a:visited{
  display:inline-block;
  font-family:inherit;
  font-size:0.78rem;
  font-weight:600;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:#506b5b;
  text-decoration:none;
  border:0;
  border-bottom:1px solid transparent;
  padding-bottom:2px;
  background:none;
  transition:color .25s ease, border-color .25s ease;
}
.library-header-nav a:hover,
.library-header-nav a:focus-visible{
  color:#173f37;
  text-decoration:none;
  border-bottom-color:#173f37;
}
.library-nav-divider{
  display:block;
  width:1px;
  height:14px;
  margin:0 18px;
  flex:0 0 1px;
  background-color:#2f4f46;
}

/* ═══ LIBRARY GROUPS + CATEGORY NAV (50-resource structure) ═════════
   Additions only. Cards, tags and buttons keep their existing rules. */
.group-nav{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:.55rem .6rem;
  max-width:44rem;
  margin:2.2rem auto 0;
  padding:0 var(--pad-x);
}
.group-nav a{
  font-family:var(--body);
  font-size:.72rem;
  font-weight:600;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--moss);
  text-decoration:none;
  border:1px solid var(--hairline);
  border-radius:2px;
  padding:.55rem .85rem;
  background:#fff;
  transition:color .25s ease, border-color .25s ease;
}
.group-nav a:hover,
.group-nav a:focus-visible{
  color:var(--forest);
  border-color:var(--forest);
}
.library-group{
  margin-top:clamp(3.2rem,6vw,4.6rem);
  scroll-margin-top:5.5rem;
}
.group-heading{
  text-align:center;
  max-width:44rem;
  margin:0 auto 1.9rem;
}
.group-heading h2{
  font-family:var(--display);
  font-weight:300;
  font-size:clamp(1.45rem,2.6vw,1.9rem);
  line-height:1.25;
  color:var(--forest);
}
.group-heading p{
  margin-top:.45rem;
  font-size:.95rem;
  color:var(--moss);
}
