/* Clearer association identity and comfortable reading across all public pages. */
:root { --muted: #3f526b; }
.site-header .nav-shell { min-height: 116px; height: auto; padding-block: 18px; gap: 24px; }
.brand { min-width: 0; }
.brand > .brand-copy { display: block; max-width: none; padding-left: 22px; font-size: 1rem; }
.brand-name { display: block; color: var(--navy); font-size: 1.15rem; font-weight: 650; line-height: 1.4; letter-spacing: -.025em; }
.brand-tagline { display: block; margin-top: 7px; color: var(--orange-dark); font-size: .82rem; font-weight: 600; line-height: 1.5; letter-spacing: 0; }
.site-header nav { gap: 24px; font-size: .94rem; }
.site-header nav .nav-contact { margin-left: 0; padding-left: 20px; gap: 10px; }
html { scroll-padding-top: 140px; }
.hero { grid-template-columns: 1.1fr 1fr; padding-top: 60px; min-height: 720px; }
.hero h1.association-heading { font-size: clamp(2.4rem, 3.55vw, 3.3rem); font-weight: 600; line-height: 1.18; letter-spacing: -.045em; }
.association-heading > span { display: block; color: var(--navy); }
.hero-tagline { margin-top: 27px; color: var(--orange-dark); font-size: clamp(1.65rem, 2.45vw, 2.3rem); font-weight: 500; line-height: 1.3; letter-spacing: -.035em; }
.hero-description { max-width: 490px; margin-top: 25px; font-size: 1.15rem; line-height: 1.85; }
.hero .eyebrow { color: #465b76; font-size: .8rem; letter-spacing: .07em; }
.about-copy > p:not(.eyebrow), .section-heading > p, .gallery-heading-right > p,
.service-card > p, .member-bio p, .membership-lead, .page-intro > p,
.benefit-grid p, .membership-steps p, .download-card p:not(.eyebrow) { font-size: 1.125rem; line-height: 1.85; }
.about-copy strong { color: var(--ink); font-weight: 600; }
.photo-caption, .service-foot, .about-stats div > span { font-size: .875rem; line-height: 1.7; }
.member-name > span { font-size: .9rem; }
.member-name strong { font-size: 1.15rem; }
.legal-content p { font-size: 1rem; }
.footer-main { flex-wrap: wrap; gap: 30px 40px; }
.footer-brand .brand-name { font-size: 1.25rem; }
.footer-brand .brand-tagline { font-size: .94rem; }
.footer-main > p, .footer-main > p > span { font-size: .875rem; line-height: 1.8; }
.footer-bottom, .footer-bottom p, .legal-document > summary { font-size: .85rem; }
.orbital-word, .globe-coordinate, .hero-bottom, .service-top > span,
.map-key small, .member-initials, .footer-main > p > span, .atlas-footer > span,
.file-type, .editor-help ol, address, .contact-email .phone { color: var(--muted); }
.orbital-word, .globe-coordinate, .service-top > span { font-size: .8125rem; }
.service-foot, .member-name > span, .gallery-item figcaption,
.photo-caption, .atlas-footer > span, .atlas-footer p, .atlas-metric > span,
.atlas-kicker, .strip-label, .download-meta, .library-meta, .library-meta p,
.category-tag, .file-type, .bulletin-card time, .library-filters button,
.pagination > span, .admin-row-meta, .auth-panel .auth-note, .archive-note,
.upload-zone span, .contact-label { font-size: .94rem; }
.continent-card p, .bulletin-card p, .editor-help > p { font-size: 1.065rem; }
.atlas-label { fill: #3f526b; }
.search-field input::placeholder, .editor-panel input::placeholder,
.editor-panel textarea::placeholder { color: #586880; opacity: 1; }
.category-tag { max-width: calc(100% - 35px); }
.bulletin-card-top { align-items: flex-start; }
.file-type { padding-top: 5px; }

/* A second navigation row gives the full name room on smaller laptops. */
@media (min-width: 761px) and (max-width: 1240px) {
  .site-header .nav-shell { flex-direction: column; align-items: flex-start; gap: 12px; padding-block: 16px 10px; }
  .site-header .brand-name { font-size: 1.2rem; }
  .site-header nav { width: 100%; justify-content: space-between; gap: 15px; }
  .site-header nav a { padding-block: 8px; }
  html { scroll-padding-top: 185px; }
  .hero { padding-top: 50px; min-height: 620px; }
  .hero .eyebrow { white-space: normal; max-width: none; line-height: 1.7; }
}
@media (max-width: 960px) and (min-width: 761px) {
  .hero h1.association-heading { font-size: 2.25rem; }
  .hero-tagline { font-size: 1.8rem; }
  .hero-description { font-size: 1.05rem; }
}
@media (max-width: 760px) {
  .site-header .nav-shell { min-height: 106px; padding-block: 14px; gap: 10px; }
  .site-header .brand { flex: 1; gap: 12px; }
  .site-header .brand img { width: 70px; flex-shrink: 0; }
  .site-header .brand > .brand-copy { display: block; padding-left: 12px; }
  .site-header .brand-name { font-size: .92rem; line-height: 1.4; }
  .site-header .brand-tagline { font-size: .75rem; line-height: 1.4; margin-top: 5px; }
  .site-header nav { gap: 0; max-height: calc(100dvh - 106px); }
  .site-header nav .nav-contact { padding-left: 0; }
  html { scroll-padding-top: 130px; }
  .hero { min-height: 0; padding-top: 39px; }
  .hero h1.association-heading { font-size: clamp(2rem, 6.65vw, 3rem); line-height: 1.2; letter-spacing: -.045em; }
  .hero .eyebrow { font-size: .8rem; letter-spacing: .025em; }
  .hero-tagline { font-size: clamp(1.6rem, 5.3vw, 2rem); margin-top: 22px; }
  .hero-description { font-size: 1.065rem; margin-top: 22px; max-width: 520px; }
  .about-copy > p:not(.eyebrow), .section-heading > p, .gallery-heading-right > p,
  .service-card > p, .member-bio p, .membership-lead, .page-intro > p,
  .benefit-grid p, .membership-steps p, .download-card p:not(.eyebrow) { font-size: 1.065rem; }
  .footer-brand { gap: 16px; }
  .footer-brand img { width: 80px; }
  .footer-brand > .brand-copy { padding-left: 16px; }
  .footer-brand .brand-name { font-size: 1rem; }
  .footer-brand .brand-tagline { font-size: .8rem; }
}
@media (max-width: 390px) {
  .site-header .brand { gap: 9px; }
  .site-header .brand img { width: 56px; }
  .site-header .brand > .brand-copy { padding-left: 9px; }
  .site-header .brand-name { font-size: .84rem; }
  .site-header .brand-tagline { font-size: .75rem; }
  .site-header .menu-toggle { width: 40px; height: 40px; }
  .footer-brand { gap: 10px; }
  .footer-brand img { width: 60px; }
  .footer-brand > .brand-copy { padding-left: 10px; }
}
@media print {
  .hero h1.association-heading { font-size: 36px; }
  .hero-tagline { font-size: 26px; }
}
