/* Measured reference: lightshiprv.com/ae-1, 19 Sep 2026.
   F37 Bolton is licensed separately. The approved temporary face is Helvetica
   Neue; replace --spa-font-sans after supplying a licensed webfont.
   Only type and vertical rhythm change here. Existing inline gutters, widths,
   photo crops, navigation heights and user-saved !important edits stay intact. */
:root{
  --spa-font-sans:"Helvetica Neue",Helvetica,Arial,sans-serif;
  --font:var(--spa-font-sans);
  --spa-type-unit:1rem;
  --spa-type-display:clamp(calc(2.375 * var(--spa-type-unit)),calc(1.7679 * var(--spa-type-unit) + 3.0357vw),calc(4.5 * var(--spa-type-unit)));
  --spa-type-section:var(--spa-type-display);
  --spa-type-subheading:clamp(calc(1.5 * var(--spa-type-unit)),calc(1.3214 * var(--spa-type-unit) + .8929vw),calc(2.125 * var(--spa-type-unit)));
  --spa-type-card:clamp(calc(1.375 * var(--spa-type-unit)),calc(1.3393 * var(--spa-type-unit) + .1786vw),calc(1.5 * var(--spa-type-unit)));
  --spa-type-body:clamp(calc(1.125 * var(--spa-type-unit)),calc(1.0536 * var(--spa-type-unit) + .3571vw),calc(1.375 * var(--spa-type-unit)));
  --spa-type-lead:var(--spa-type-body);
  --spa-type-small:clamp(.875rem,calc(.8393 * var(--spa-type-unit) + .1786vw),calc(1 * var(--spa-type-unit)));
  /* Keep UI labels at least 14px, slightly above the reference's mobile 12px. */
  --spa-type-label:max(.875rem,calc(.875 * var(--spa-type-unit)));
  --spa-type-nav:clamp(.8125rem,calc(.8125 * var(--spa-type-unit)),.875rem);
  --spa-space-section:clamp(calc(6.25 * var(--spa-type-unit)),calc(5.3571 * var(--spa-type-unit) + 4.4643vw),calc(9.375 * var(--spa-type-unit)));
  --spa-space-content:clamp(calc(5 * var(--spa-type-unit)),calc(4.6429 * var(--spa-type-unit) + 1.7857vw),calc(6.25 * var(--spa-type-unit)));
  --spa-space-lg:clamp(calc(3.25 * var(--spa-type-unit)),calc(2.75 * var(--spa-type-unit) + 2.5vw),calc(5 * var(--spa-type-unit)));
  --spa-space-stack:calc(2.5 * var(--spa-type-unit));
}
/* Scale text on wide screens without scaling the site's rem-based geometry. */
@media(min-width:1441px){:root{--spa-type-unit:clamp(1rem,calc(.6604rem + .3774vw),1.25rem)}}
body{font-family:var(--font);font-weight:400;letter-spacing:0;line-height:1.25}

/* Main titles use the reference's heading-xl, with smaller card-level headings. */
body.home-floating-nav .hero .hero-line,
.intro h2.intro-title,
.exchange-heading h2,
.awards .awards-copy h2,
#news .news-heading h2,
.upcoming-events .upcoming-events-heading h2,
#contact-us.contact-banner h2,
.interior-page:is(.content-page,.why-spa-page) main :is(h1,h2),
.why-spa-page .why-section-panels .section-heading,
.committee-page .committee-archive .record-heading h2,
.legal-page main h1{
  font-size:var(--spa-type-section);font-weight:400;line-height:1;letter-spacing:-.05em;
}
.intro-card h3,
#news .news-card h3,
.upcoming-event .upcoming-event-name,
.exchange-photo h3,
.interior-page:is(.content-page,.why-spa-page) main h3,
.legal-page main h2{
  font-size:var(--spa-type-card);font-weight:400;line-height:1.25;letter-spacing:-.03em;
}
.upcoming-event-body h3,
.interior-page:is(.content-page,.why-spa-page) main :is(.news-feature h2,.resource-panel h2,.section-copy h2,.contact-copy h2,.contact-form h2,.directory-heading h2,.resource-priority h2){
  font-size:var(--spa-type-subheading);line-height:1.2;letter-spacing:-.05em;
}
.intro-description,
.intro-card-copy p,
.exchange-description,
.awards-detail>p,
#contact-us.contact-banner .contact-banner-copy p,
.interior-page:is(.content-page,.why-spa-page) main :is(p,li),
.legal-page main :is(p,li){
  font-size:var(--spa-type-body);font-weight:400;line-height:1.25;letter-spacing:0;
}
.interior-page:is(.content-page,.why-spa-page) main :is(.page-hero-intro,.section-copy .lead){font-size:var(--spa-type-body);font-weight:400;line-height:1.25;letter-spacing:0}
.upcoming-event-body p,
.hero .hero-notice-description,
.exchange-photo figcaption p,
.interior-page:is(.content-page,.why-spa-page) main :is(figcaption,.story-status,.work-boundary,.member-meta),
.footer-address,.footer-nav,.footer-nav .footer-nav-title,.footer-legal{
  font-size:var(--spa-type-small);line-height:1.25;letter-spacing:0;
}
.intro .intro-kicker,.exchange-eyebrow,.awards-eyebrow,
.interior-page:is(.content-page,.why-spa-page) main :is(.page-kicker,.section-number,.item-index){font-size:var(--spa-type-label);font-weight:700;line-height:1.25;letter-spacing:0}
.site-header .desktop-nav a,.site-header .language-trigger,
.hero .hero-notice-label,.hero .hero-notice-title,
#news .news-story-meta,.upcoming-event-date,.upcoming-event-date time{font-size:var(--spa-type-label);line-height:1.25;letter-spacing:0}
.interior-page:is(.content-page,.why-spa-page) main :is(.archive-news-meta,.page-hero-index,.news-toolbar-label,.news-result-count,.news-lead-label,.news-feed-heading>span,.pending,.item-index,.section-number,.journal-card .cover-mark){font-size:var(--spa-type-label);line-height:1.25;letter-spacing:0}
.committee-page .committee-person.committee-president h2,
.committee-page .committee-president p.president-message-draft,
.interior-page:is(.content-page,.why-spa-page) main :is(.officer-role,.sample-profile,.profile-example-note){font-size:var(--spa-type-label);line-height:1.25;letter-spacing:0}
.committee-page .committee-president p.president-message-lead{font-size:var(--spa-type-subheading);line-height:1.2;letter-spacing:-.05em}
.interior-page:is(.content-page,.why-spa-page) main :is(.news-feed-heading h2,.committee-person:not(.committee-president) h2){font-size:var(--spa-type-card);line-height:1.25;letter-spacing:-.03em}
.hero .hero-cta,.intro-action,.exchange-link,#news .all-news-link,.awards-links a,.upcoming-event-details,.whatsapp-button,.footer-contact,.primary-link,.outline-action{font-size:var(--spa-type-small);line-height:1.25;letter-spacing:0}

/* Section breathing room changes only along the vertical axis. */
.intro{--spa-intro-top-gap:var(--spa-space-section)}
.intro .intro-scene-stage{padding-bottom:calc(var(--spa-space-section) / 2)}
.intro .intro-cards{margin-top:var(--spa-space-content)}
.industry-exchange,.awards{padding-block:calc(var(--spa-space-section) / 2)}
#news .news-inner{padding-block:calc(var(--spa-space-section) / 2)}
.upcoming-events-inner{padding-bottom:var(--spa-space-section)}
.interior-page:is(.content-page,.why-spa-page) :is(.interior-section,.resource-panels,.archive-section,.editorial-feature,.record-section,.people-section,.join-intro,.application-facts,.application-process,.application-cta,.member-profiles,.committee-officers,.committee-intro,.committee-archive,.category-section,.journal-feature,.contact-layout,.resource-priority){padding-block:calc(var(--spa-space-section) / 2)}
.legal-page .legal-section{padding-block:var(--spa-space-lg)}
.news-page.content-page .archive-section{padding-top:0}
.interior-page:is(.content-page,.why-spa-page) .page-hero{padding-block:var(--spa-space-section)}
.intro .intro-kicker{margin-bottom:24px}
.intro-description{padding-top:24px}
.exchange-intro,.awards-heading,#news .news-heading,.upcoming-events-heading{margin-bottom:var(--spa-space-content)}
.interior-page:is(.content-page,.why-spa-page) :is(.section-grid,.resource-panel-head,.archive-heading){row-gap:var(--spa-space-stack)}
.interior-page:is(.content-page,.why-spa-page) :is(.section-copy,.item-detail,.statement,.news-detail-content) p{margin-block:0 1em}
.interior-page:is(.content-page,.why-spa-page) :is(.section-copy,.item-detail) li+li{margin-top:.5em}
#news .news-card-body{margin-top:24px}
#news .news-card h3{margin-top:16px}
.intro-card-copy p{margin:0}
/* Preserve compact navigation fit and the intentionally short-window Hero. */
@media(min-width:901px) and (max-width:1100px){.site-header .desktop-nav a,.site-header .language-trigger{font-size:13px}}
/* A smaller top-level navigation scale; leave dropdowns and body type alone. */
@media(min-width:901px){.site-header .desktop-nav>a,.site-header .desktop-nav .nav-trigger,.site-header .language-trigger{font-size:var(--spa-type-nav)}}
@media(min-width:761px) and (max-height:700px){body.home-floating-nav .hero .hero-line{font-size:clamp(1.75rem,6svh,2.625rem)}}
