/* Relative sizes respect the reader's browser font and zoom preferences. */
:root {
  --muted: #526372;
  --body-size: 1.125rem;
  --note-size: 1rem;
}

body { font-size: var(--body-size); line-height: 1.9; }
h1, h2, h3, h4 { line-height: 1.5; }
h1 { font-size: clamp(2rem, 3.4vw, 2.5rem); }
h2 { font-size: clamp(1.75rem, 2.6vw, 2.125rem); }
h3 { font-size: 1.375rem; }
h4 { font-size: 1.1875rem; }
p { margin-bottom: 1.25rem; }
small, .subtle { font-size: var(--note-size); line-height: 1.85; color: var(--muted); }
.eyebrow { font-size: 1rem; line-height: 1.75; letter-spacing: .08em; color: #795b25; }
.eyebrow.dark { color: #215c83; }
.hero h1 { font-size: clamp(2rem, 3.8vw, 3rem); line-height: 1.5; }
.hero-lead { font-size: 1.1875rem; line-height: 1.95; color: #40596d; }
.hero-date { font-size: 1.125rem; line-height: 1.9; }
.hero-date span, .hero-meta { font-size: 1rem; color: #526372; }
.launch-note { font-size: 1rem; color: #775723; }
.hero-actions { flex-wrap: wrap; gap: 1rem 1.5rem; }
.hero-photo figcaption, .workflow-figure figcaption, .instructor-source-note {
  font-size: 1rem; line-height: 1.85; color: #526372; text-align: left;
  padding-left: 0; margin-top: 1rem;
}
.hero-photo { padding-bottom: 0; }
.photo-caption-chip { position: static; width: fit-content; max-width: 100%; margin: -1.5rem 1rem 0; transform: translateY(0); }
.photo-caption-chip strong { font-size: 1.125rem; }
.photo-caption-chip small { font-size: 1rem; line-height: 1.8; color: #526372; }
.photo-caption-chip>span { color: #89621e; }
.audience-strip { gap: 1rem 1.5rem; font-size: 1.0625rem; }
.audience-strip span { font-size: 1rem; }
.intro-grid p:not(.eyebrow) { color: #425a6d; }
.tag-row span, .instructor-card .tag-row span { font-size: 1rem; line-height: 1.75; color: #3c5a70; padding: .375rem .75rem; }
.section-heading>p { font-size: 1rem; line-height: 1.85; }
.section-heading { align-items: flex-start; gap: 1.25rem 2rem; }
.day-title span { font-size: 1rem; letter-spacing: .08em; }
.day-title h3 { font-size: 1.375rem; }
.schedule li { display: grid; grid-template-columns: minmax(0, 1fr); gap: .5rem; padding: 1.5rem 0; }
.schedule time { font-size: 1.0625rem; line-height: 1.8; color: #206465; padding-top: 0; }
.schedule h4 { font-size: 1.1875rem; line-height: 1.7; margin-bottom: .5rem; }
.schedule p { font-size: 1.0625rem; line-height: 1.9; color: #4c6070; }
.output-grid h3 { font-size: 1.375rem; }
.output-grid p { font-size: 1.0625rem; line-height: 1.9; }
.file-icon { font-size: 1rem; line-height: 1.6; letter-spacing: .035em; }
.check-list, .setup-card p { font-size: 1.125rem; color: #425b6e; }
.event-banner { padding: 1.5rem 1.75rem; gap: 1.75rem; align-items: start; }
.event-banner p, .event-banner p>span, .event-banner small { font-size: 1rem; line-height: 1.85; color: #4c6070; }
.event-banner small { letter-spacing: .06em; }
.event-banner strong { font-size: 1.125rem; line-height: 1.8; }
.instructor-card { padding: 2rem; }
.instructor-top { align-items: flex-start; gap: 1rem; }
.instructor-top h3 { font-size: 1.375rem; line-height: 1.55; overflow-wrap: normal; }
.instructor-label { font-size: 1rem; line-height: 1.8; color: #426277; }
.instructor-degree { font-size: 1rem; line-height: 1.9; color: #64553a; }
.instructor-summary { font-size: 1.125rem; line-height: 1.9; color: #40586b; }
.instructor-card ul { font-size: 1.0625rem; line-height: 1.95; color: #4c6070; padding-left: 1.25rem; }
.instructor-card li { margin: .875rem 0; }
.price-card>span, .price-card>p:last-of-type, .featured .price-tag { font-size: 1rem; line-height: 1.85; }
.price-card h3 { font-size: 1.375rem; }
.price { font-size: 2.5rem; }
.price small { font-size: 1.0625rem; }
.featured .price small, .featured>p:last-of-type { color: #d3e0e8; }
.event-info { font-size: 1.0625rem; line-height: 1.9; }
.faq-grid h3 { font-size: 1.25rem; }
.faq-grid p { font-size: 1.125rem; line-height: 1.9; }
.notice, .flash { font-size: 1.0625rem; line-height: 1.9; }
.notice { color: #6c5127; }
.site-footer, .site-footer>div:nth-child(2), .footer-note { font-size: 1rem; line-height: 1.9; }
.site-footer>div:nth-child(2) a { padding: .5rem 0; }
.footer-brand { font-size: 1rem; line-height: 1.8; }
.closing h2 { font-size: clamp(1.875rem, 3vw, 2.25rem); }
.closing .eyebrow { color: #efd398; }

.local-analysis-section { scroll-margin-top: 7rem; }
.local-analysis-lead { max-width: 900px; font-size: 1.125rem; color: #40596d; }
.local-analysis-flow { list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; padding: 0; margin: 2rem 0; }
.local-analysis-flow li { border-top: 3px solid #d5ad5c; background: #edf1f2; border-radius: 0 0 12px 12px; padding: 1.5rem; min-width: 0; }
.local-step { color: #215c83; font-size: 1rem; font-weight: 700; }
.local-analysis-flow h3 { margin: .75rem 0; font-size: 1.25rem; }
.local-analysis-flow p { font-size: 1.0625rem; line-height: 1.9; color: #40596d; margin-bottom: 0; }
.local-data-note { border-left: 4px solid #215c83; padding: 1.25rem 1.5rem; background: #f0f4f6; border-radius: 0 12px 12px 0; }
.local-data-note h3 { font-size: 1.125rem; margin: 0 0 .75rem; }
.local-data-note p { font-size: 1rem; line-height: 1.9; color: #40596d; margin-bottom: 0; }
@media(max-width:900px) { .local-analysis-flow { grid-template-columns: minmax(0, 1fr); } }

/* Navigation stays readable rather than squeezing more labels into a short row. */
.brand { font-size: 1rem; letter-spacing: .065em; flex-shrink: 0; }
.brand-sub { font-size: .875rem; line-height: 1.4; letter-spacing: .04em; }
.nav-wrap { gap: 1.25rem; }
.nav-wrap>nav { gap: 1.125rem; font-size: 1rem; }
.nav-wrap>nav>a { display: inline-flex; align-items: center; min-height: 44px; white-space: nowrap; }
.nav-actions { display: flex; align-items: center; gap: .75rem; position: relative; }
.mobile-nav { display: none; position: static; }
.mobile-nav summary { min-height: 48px; border: 1px solid #becbd5; border-radius: 7px; padding: .6rem .875rem; color: var(--navy); background: transparent; cursor: pointer; font-size: 1rem; list-style: none; white-space: nowrap; }
.mobile-nav summary::-webkit-details-marker { display: none; }
.mobile-nav summary>span { margin-left: .5rem; }
.mobile-nav nav { position: absolute; z-index: 12; top: calc(100% + .75rem); right: 0; width: min(320px, calc(100vw - 40px)); padding: .5rem; display: grid; gap: 0; background: #fff; border: 1px solid #ccd8df; border-radius: 10px; box-shadow: 0 12px 30px #112d4720; }
.mobile-nav nav a { display: flex; align-items: center; min-height: 48px; padding: .625rem .875rem; color: var(--navy); font-size: 1.125rem; border-radius: 6px; }
.mobile-nav nav a:hover { background: #edf3f6; }
.nav-wrap .mobile-nav nav>a { display: flex; }
.button, .hero-actions .button, .featured .button { min-height: 48px; font-size: 1.0625rem; line-height: 1.7; padding: .75rem 1.25rem; text-align: center; }
.button.small { min-height: 44px; font-size: 1rem; padding: .625rem .875rem; }
.quiet-link, .text-button { font-size: 1.0625rem; line-height: 1.8; }
.quiet-link { min-height: 44px; }
.text-button { padding: .5rem 0; }

/* Forms and organizer pages share the same readable baseline. */
.page-shell h1 { font-size: clamp(2rem, 3vw, 2.5rem); }
.panel h2, .access-card h2 { font-size: 1.5rem; }
label { font-size: 1.0625rem; line-height: 1.8; margin-bottom: 1.25rem; }
input, select, textarea, input[type=file] { font-size: 1.125rem; line-height: 1.7; padding: .75rem; }
input, select { min-height: 48px; }
input[type=checkbox] { width: 21px; height: 21px; min-height: 21px; margin-top: .3rem; }
.checkbox, .launch-controls .checkbox { font-size: 1rem; line-height: 1.9; gap: .75rem; }
.form-heading span { font-size: 1rem; }
.key-values, .access-card p, .bank-card p, .history li, .prose p, .launch-controls p { font-size: 1.0625rem; line-height: 1.9; }
.key-values>div { flex-wrap: wrap; gap: .375rem 1.5rem; }
.access-card strong { overflow-wrap: anywhere; }
.history time, .history p { font-size: 1rem; line-height: 1.85; }
.admin-bar { font-size: 1rem; line-height: 1.8; }
.status { font-size: 1rem; line-height: 1.75; white-space: normal; }
.stats-grid small { font-size: 1rem; }
table { font-size: 1.0625rem; line-height: 1.8; }
th, td small { font-size: 1rem; line-height: 1.8; }
th, td { padding: 1rem; min-width: 145px; }

@media(max-width:1180px) {
  .nav-wrap>nav { display: none; }
  .mobile-nav { display: block; }
  .section-heading { flex-wrap: wrap; }
}
@media(max-width:900px) {
  .event-banner { grid-template-columns: minmax(0, 1fr); }
  .instructor-grid { grid-template-columns: minmax(0, 1fr); }
  .instructor-card { padding: 1.75rem; }
  .intro-grid, .fit-section, .form-layout, .detail-grid { grid-template-columns: minmax(0, 1fr); }
  .price-grid { grid-template-columns: minmax(0, 1fr); max-width: 580px; margin-left: auto; margin-right: auto; }
}
@media(max-width:760px) {
  .hero h1 { font-size: clamp(2rem, 7.5vw, 2.5rem); }
  .hero-lead { font-size: 1.125rem; }
  .hero-photo figcaption, .workflow-figure figcaption { font-size: 1rem; }
  .photo-caption-chip { margin-left: .5rem; margin-right: .5rem; padding: 1rem; }
  .photo-caption-chip strong { font-size: 1.125rem; }
  .photo-caption-chip small { font-size: 1rem; }
  .event-banner strong { font-size: 1.125rem; }
  .event-banner p>span, .event-banner small { font-size: 1rem; }
  .schedule li { grid-template-columns: minmax(0, 1fr); }
  .instructor-top h3 { font-size: 1.375rem; }
  .section-heading h2 { font-size: 1.875rem; }
  .output-grid, .faq-grid { grid-template-columns: minmax(0, 1fr); }
  .instructor-card, .panel { padding: 1.5rem; }
  .form-heading { align-items: flex-start; }
  .site-footer>div:nth-child(2) { gap: .75rem 1.5rem; }
}
@media(max-width:540px) {
  .nav-wrap { padding: .875rem 1rem; gap: .75rem; flex-wrap: wrap; }
  .brand-sub { display: none; }
  .brand { font-size: .9375rem; gap: .625rem; }
  .brand-icon { width: 36px; height: 40px; }
  .nav-actions { gap: .5rem; margin-left: auto; }
  .nav-actions>.button { font-size: 1rem; padding: .625rem .75rem; gap: .5rem; }
  .mobile-nav summary { padding: .625rem .75rem; }
  .mobile-nav nav { right: 0; width: calc(100vw - 32px); max-width: 340px; }
  .hero-actions { align-items: flex-start; }
  .instructor-top { flex-wrap: wrap; }
  .instructor-monogram { width: 54px; height: 58px; }
  .key-values dd { text-align: left; }
}
@media(max-width:380px) {
  .nav-wrap { flex-wrap: wrap; }
  .nav-actions { width: 100%; justify-content: flex-end; }
  .mobile-nav nav { right: 0; max-width: calc(100vw - 32px); }
}
