/* Shared spacing and typography for the complete eKasi website. */
:root {
  --space-1: 8px; --space-2: 16px; --space-3: 24px; --space-4: 32px;
  --space-5: 48px; --space-6: 64px;
  --section-space: clamp(56px, 6vw, 96px);
  --layout-gap: clamp(32px, 4vw, 64px);
  --card-space: clamp(20px, 2vw, 32px);
  --grid-gap: 24px;
}
body { min-width: 0; line-height: 1.75; }
main :is(h1,h2,h3,h4,p,a,article,form,figure,div) { min-width: 0; }
main :is(h1,h2,h3,h4) { overflow-wrap: break-word; }
.section-space, .home-section, .profile-section, .lineage, .giving-section { padding: var(--section-space) var(--gutter); }
.page-hero { min-height: 0; padding: var(--section-space) var(--gutter); gap: var(--layout-gap); grid-template-columns: minmax(0,1.15fr) minmax(0,.85fr); }
.page-hero-copy { max-width: 780px; }
.page-hero-copy h1 { max-width: 100%; margin: 0 0 var(--space-3); font-size: clamp(2.8rem, 5.4vw, 6rem); line-height: 1.04; letter-spacing: -.05em; }
.page-hero-copy > p:last-child { max-width: 540px; }
.page-hero-aside { padding: var(--space-3) 0 0; }
.page-hero-aside p { max-width: 420px; line-height: 1.2; letter-spacing: -.04em; }
.page-hero-aside > span { color: #a5231a; }
.page-hero-mentors .page-hero-aside > span, .support-hero .page-hero-aside > span, .contact-hero .page-hero-aside > span, .papers-hero .page-hero-aside > span { color: #7bdda3; }
.gallery-hero .page-hero-aside > span { color: var(--ink); }
.display-heading, .home-page h2, .giving-copy h2, .lineage h2, .interventions-heading h2 { font-size: clamp(2.2rem, 4.1vw, 4.5rem); line-height: 1.08; letter-spacing: -.045em; }
.eyebrow, .section-kicker, .section-label { margin: 0 0 var(--space-2); line-height: 1.5; }
.home-manifesto-grid { margin-top: var(--space-4); gap: var(--layout-gap); }
.home-section-heading, .profile-header, .history-title-row, .reading-room-header, .library-header, .gallery-intro, .work-showcase-header, .support-intro, .supporters-heading, .faq-header, .critical-lenses-heading { gap: var(--layout-gap); margin-bottom: var(--space-5); }
.home-section-heading > p, .profile-header p, .history-title-row p, .reading-room-header p, .library-header p, .gallery-intro > p, .work-showcase-header > div:last-child > p, .support-intro > p, .supporters-heading > p, .faq-header > p, .critical-lenses-heading > p { font-size: 15px; line-height: 1.75; margin-bottom: 0; }
.profile-grid, .mentor-grid, .resource-grid, .support-options, .supporter-grid, .archive-records, .interventions { gap: var(--grid-gap); }
.profile-card, .mentor-profile, .resource-card, .support-option, .intervention-card, .critical-lens, .development-step { padding: var(--card-space); }
.profile-card h3 { margin: 0 0 12px; font-size: clamp(1.6rem, 2.2vw, 2.2rem); line-height: 1.12; letter-spacing: -.045em; }
.profile-photo-placeholder { margin-bottom: var(--space-3); }
.profile-role { font-size: 11px; margin-bottom: var(--space-3); line-height: 1.6; }
.profile-card > .profile-role:last-child { margin-bottom: 0; }
.profile-record { font-size: 14px; line-height: 1.75; margin-top: auto; }
.profile-record span { color: inherit; opacity: .75; font-size: 10px; }
.mentor-profile h3 { margin: 0 0 var(--space-2); font-size: clamp(1.8rem, 2.6vw, 2.8rem); line-height: 1.12; letter-spacing: -.045em; }
.mentor-profile > p:not(.mentor-profile-note) { font-size: 15px; line-height: 1.75; margin-bottom: var(--space-3); }
.mentor-dates { font-size: 11px !important; line-height: 1.7; color: #ff978a; }
.mentor-profile:nth-child(even) .mentor-dates { color: var(--ink); }
.mentor-profile-note { margin-top: auto; line-height: 1.7; }
.mentor-profile-note span { color: inherit; }
.mentor-profile .profile-photo-placeholder { max-width: 210px; }
.lineage-inner, .contact-section, .giving-section { gap: var(--layout-gap); }
.genealogy-timeline { margin-top: var(--space-4); }
.genealogy-timeline article { padding-bottom: var(--space-4); }
.genealogy-timeline h3 { line-height: 1.2; letter-spacing: -.035em; }
.genealogy-timeline p { font-size: 14px; line-height: 1.75; }
.genealogy-timeline article:focus-visible { outline: 2px solid currentColor; outline-offset: 6px; }
.history-story { columns: 1; max-width: 740px; }
.history-story p { font-size: 15px; line-height: 1.8; margin-bottom: var(--space-3); }
.history-story .story-lead { font-size: 18px; line-height: 1.75; }
.history-narrative { gap: var(--layout-gap); margin-bottom: var(--space-6); }
.history-pullquote { top: calc(var(--header-height) + 24px); }
.development-intro { margin-bottom: var(--space-4); }
.development-intro h3 { font-size: clamp(1.7rem, 2.7vw, 2.8rem); line-height: 1.15; letter-spacing: -.04em; margin-bottom: var(--space-2); }
.development-intro p:last-child, .development-step p, .timeline-detail p, .intervention-card p, .critical-lens p, .support-option p, .archive-record-copy > p:last-child, .archive-record > p:not(.record-meta):not(.record-note) { font-size: 14px; line-height: 1.75; }
.development-map { margin-bottom: var(--space-6); }
.development-step h3, .timeline-detail h3 { font-size: clamp(1.2rem, 1.7vw, 1.7rem); line-height: 1.2; letter-spacing: -.035em; }
.timeline-item { padding-block: var(--space-4); gap: var(--space-3); }
.timeline-detail { gap: var(--space-4); }
.interventions, .archive-records { margin-bottom: 0; }
.interventions-heading { padding: 0; }
.intervention-card h3, .support-option h3, .critical-lens h3, .resource-card h3, .archive-record h3 { max-width: 100%; font-size: clamp(1.45rem, 2.1vw, 2.25rem); line-height: 1.15; letter-spacing: -.04em; margin-bottom: var(--space-2); }
.critical-lens h3 { margin-top: var(--space-4); overflow-wrap: anywhere; }
.critical-lens p { color: #d0d5cb; }
.critical-lens:hover p { color: var(--ink); }
.support-option { min-height: 280px; }
.support-option:hover, .resource-card:hover { transform: translateY(-3px); box-shadow: none; }
.resource-card { min-height: 300px; }
.resource-card p { font-size: 15px; line-height: 1.75; }
.resource-card p strong { font: inherit; font-weight: 800; text-transform: none; padding: 0; }
.resource-card a { font-size: 11px; min-height: 44px; padding-top: var(--space-3); }
.resource-card-substack:hover p { color: var(--ink); }
.archive-record-photo > img { aspect-ratio: auto; height: auto; object-fit: contain; filter: none; }
.archive-record-photo:hover > img { transform: none; filter: none; }
.archive-record-copy { padding: var(--space-3); }
.archive-record-wide { grid-template-columns: minmax(0,1fr) minmax(0,1fr); }
.archive-record-wide > img { height: 100%; object-fit: contain; }
.archive-record-wide .archive-record-copy { padding: var(--card-space); }
.record-meta { font-size: 11px; line-height: 1.65; }
.supporter-card { min-height: 180px; padding: var(--space-3); }
.supporter-logo { height: 130px; }
.giving-copy { padding-top: 0; }
.giving-copy h2 { margin-bottom: var(--space-3); }
.giving-note { margin-top: var(--space-4); font-size: 12px; line-height: 1.75; }
.contact-intro { padding-top: 0; }
.contact-intro > p:not(.contact-email) { margin-top: var(--space-3); font-size: 15px; line-height: 1.75; }
.contact-email { margin-top: var(--space-4); overflow-wrap: anywhere; }
.giving-form, .contact-form { padding: clamp(24px, 3vw, 40px); max-width: none; border: 1px solid var(--line); }
.form-heading { margin-bottom: var(--space-3); padding-bottom: var(--space-2); font-size: 11px; }
.form-field { margin-top: var(--space-3); font-size: 11px; line-height: 1.5; }
.form-field input, .form-field select, .form-field textarea { margin-top: var(--space-1); min-height: 48px; padding: 12px 14px; font-size: 16px; line-height: 1.5; }
.form-field textarea { min-height: 150px; }
.form-two-col { gap: var(--space-3); }
.form-check { margin: var(--space-3) 0; font-size: 13px; line-height: 1.65; gap: 12px; }
.form-check input { width: 18px; height: 18px; margin-top: 2px; }
.form-footnote { margin-top: var(--space-2); font-size: 11px; line-height: 1.7; color: #4b5048; }
.amount-options span { min-height: 48px; font-size: 12px; }
.giving-form legend { font-size: clamp(1.4rem, 2vw, 1.9rem); line-height: 1.2; letter-spacing: -.035em; }
.enquiry-status:empty { display: none; }
.copy-enquiry { min-height: 44px; margin-top: var(--space-2); }
.faq-item summary { padding-block: var(--space-3); font-size: clamp(1.15rem, 1.7vw, 1.65rem); line-height: 1.3; letter-spacing: -.035em; }
.faq-item > p { max-width: 800px; padding: 0 32px 24px 0; font-size: 15px; line-height: 1.8; }
.support-closing .display-heading { max-width: 1100px; margin-bottom: var(--space-4); }
.paper { grid-template-columns: minmax(0,1fr) auto; gap: 8px 20px; padding-block: var(--space-3); }
.paper-no { display: none; }
.paper-list .paper h3 { grid-column: 1; grid-row: 1; max-width: 100%; line-height: 1.4 !important; }
.paper-list .paper p { display: block; grid-column: 1; grid-row: 2; margin: 0; font-size: 13px; line-height: 1.6; color: #b8c2b3; }
.paper-tag { grid-column: 2; grid-row: 1 / span 2; font-size: 9px; border-radius: 0; white-space: normal; max-width: 175px; }
.practice-steps h3 { margin: 0 0 var(--space-2); }
.critical-lens h3 { margin-top: 0; }
.paper-modal-panel { width: min(100%,800px); max-height: calc(100svh - 48px); padding: clamp(24px,4vw,48px); }
.paper-modal-panel h2 { max-width: 100%; font-size: clamp(1.7rem,3vw,2.8rem); line-height: 1.15; letter-spacing: -.04em; }
.modal-dialog-header { position: sticky; top: -1px; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-bottom: 16px; margin-bottom: 16px; background: var(--paper); z-index: 1; }
.modal-dialog-header .section-kicker { margin: 0; }
.modal-close { position: static; flex: 0 0 40px; display: grid; place-items: center; width: 40px; height: 40px; }
.modal-author { margin-bottom: var(--space-3); font-size: 12px; line-height: 1.7; color: #ad231b; }
.modal-copy p { grid-template-columns: 100px minmax(0,1fr); gap: var(--space-3); padding-block: var(--space-3); font-size: 15px; line-height: 1.8; }
.modal-copy strong { font-size: 10px; line-height: 1.7; }
.copy-status { font-size: 12px; line-height: 1.75; color: #ad231b; }
.home-community { gap: var(--layout-gap); }
.home-kasi { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(0,1fr); align-items: start; gap: var(--layout-gap); background: var(--ink); color: var(--paper); }
.home-kasi .eyebrow, .home-kasi h2 em { color: #63ca88; }
.home-kasi h2 { max-width: 12ch; }
.home-kasi-copy { max-width: 560px; }
.home-kasi-copy p { margin: 0 0 var(--space-3); font-size: 15px; line-height: 1.75; color: #cfd3c9; }
.home-kasi-copy .kasi-definition { font-size: clamp(19px,1.6vw,23px); line-height: 1.5; letter-spacing: -.025em; font-weight: 700; color: var(--paper); }
.home-kasi-copy .kasi-definition em { font-style: normal; }
.home-kasi-copy .kasi-sources { font-size: 11px; line-height: 1.8; color: #aeb9aa; }
.kasi-sources a { color: inherit; text-decoration: underline; text-underline-offset: 4px; }
.home-kasi-copy > :last-child { margin-bottom: 0; }
.home-community h2 { font-size: clamp(2.2rem,4.1vw,4.5rem); }
.home-community div > p:not(.eyebrow) { max-width: 460px; margin: var(--space-3) 0; }
.home-join h2 { font-size: clamp(2.6rem,6vw,6rem); }
.home-join > div { margin-top: var(--space-4); }
.site-footer { padding: var(--space-5) var(--gutter) var(--space-3); gap: var(--space-4); }
.site-footer .footer-heading { font-size: 11px !important; line-height: 1.5; color: #b6bdb0; }
.footer-links a { min-height: 32px; display: flex; align-items: center; }
.back-to-top { min-height: 40px; display: inline-flex; align-items: center; }
.button { line-height: 1.5; }
.button-dark span, .button-light span { color: #78d19b; }
.hero-slider .hero-slide-title { font-size: clamp(2.8rem,5.4vw,6rem); line-height: 1.04; min-height: 2.08em; }
.hero-slide-copy { width: min(100%,960px); max-width: 960px; }
.hero-slide-description { min-height: 5.25em; }
.hero-slide-copy > .eyebrow { margin-bottom: var(--space-3); }
.hero-slide-actions { margin-top: var(--space-4); }
@media(max-width: 1100px) {
  :root { --grid-gap: 20px; }
  .page-hero { grid-template-columns: 1fr; gap: var(--space-4); }
  .page-hero-copy { max-width: 850px; }
  .page-hero-aside { max-width: 600px; }
  .page-hero-copy h1 { font-size: clamp(2.8rem,7vw,5.4rem); }
  .supporter-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .critical-lenses-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .resource-card h3 { font-size: clamp(1.45rem,2.6vw,2rem); }
}
@media(max-width: 900px) {
  .history-narrative, .lineage-inner, .giving-section, .contact-section { grid-template-columns: 1fr; }
  .history-pullquote { position: static; max-width: 600px; }
  .history-pullquote p { max-width: 560px; }
  .history-story { max-width: 100%; }
  .development-map, .profile-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .mentor-grid { grid-template-columns: 1fr; }
  .mentor-profile .profile-photo-placeholder { max-width: 250px; }
  .archive-records { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .archive-record-wide { grid-column: span 2; }
  .support-intro, .supporters-heading, .reading-room-header, .library-header, .profile-header, .gallery-intro, .work-showcase-header, .faq-header, .history-title-row, .critical-lenses-heading { grid-template-columns: 1fr; gap: var(--space-3); }
  .interventions { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .interventions-heading { grid-column: 1 / -1; }
}
@media(max-width: 600px) {
  :root { --section-space: 56px; --layout-gap: 32px; --grid-gap: 20px; }
  .page-hero-copy h1 { font-size: clamp(2.4rem,9vw,3.4rem); }
  .display-heading, .home-page h2, .giving-copy h2, .lineage h2, .interventions-heading h2 { font-size: clamp(1.9rem,7.5vw,2.7rem); }
  .home-section-heading, .profile-header, .history-title-row, .reading-room-header, .library-header, .gallery-intro, .work-showcase-header, .support-intro, .supporters-heading, .faq-header, .critical-lenses-heading { margin-bottom: var(--space-4); }
  .profile-grid, .support-options, .resource-grid, .critical-lenses-grid, .development-map, .interventions, .archive-records { grid-template-columns: 1fr; }
  .profile-card, .mentor-profile, .support-option, .resource-card, .intervention-card { min-height: 0; }
  .profile-photo-placeholder { aspect-ratio: 1.35; }
  .supporter-grid { gap: 12px; }
  .supporter-card { min-height: 120px; padding: 12px; }
  .supporter-logo { height: 95px; }
  .archive-record-wide { grid-column: auto; display: flex; flex-direction: column; }
  .archive-record-wide > img { width: 100%; height: auto; }
  .form-two-col { grid-template-columns: 1fr; gap: 0; }
  .timeline-item, .timeline-detail { grid-template-columns: 1fr; gap: var(--space-2); }
  .critical-lens { min-height: 0; }
  .critical-lens h3 { margin-top: 0; }
  .paper { grid-template-columns: minmax(0,1fr); gap: 8px; }
  .paper-tag { grid-column: 1; grid-row: 3; justify-self: start; max-width: none; }
  .paper-list .paper h3 { font-size: 18px !important; }
  .paper-modal { padding: 12px; }
  .paper-modal-panel { max-height: calc(100svh - 24px); }
  .modal-copy p { grid-template-columns: 1fr; gap: var(--space-1); }
  .home-join h2 { font-size: clamp(2.2rem,9vw,3.4rem); }
  .home-themes { line-height: 1.6; }
  .hero-slider .hero-slide-title { font-size: clamp(1.85rem,8vw,3.3rem); min-height: 3.12em; }
  .hero-slide-description { min-height: 6.8em; }
  .hero-slide-copy > .eyebrow { margin-bottom: var(--space-2); }
  .hero-slide-actions { margin-top: var(--space-3); }
}
@media(max-width: 760px) {
  .home-kasi { grid-template-columns: minmax(0,1fr); gap: var(--space-4); }
  .home-kasi-copy { max-width: 100%; }
}
