/* Shared responsive refinements; loaded after the original branded styles. */
:root { --page-gutter: clamp(1rem, 3vw, 2.5rem); }
html { -webkit-text-size-adjust: 100%; }
body { font-size: 1rem; overflow-wrap: break-word; }
.wrap { width: min(80rem, calc(100% - var(--page-gutter) - var(--page-gutter))); }
main, .header > *, .hero > *, .about > *, .program-layout > *,
.agenda-row > *, .speakers-grid > *, .speaker-top > *, .venue-grid > *,
.registration > *, .footer-top > *, .footer-bottom > * { min-width: 0; }
h1, h2, h3, .topics span, .map-caption { overflow-wrap: anywhere; }
.button { max-width: 100%; gap: clamp(.5rem, 2vw, 1.75rem); font-size: 1rem; overflow-wrap: anywhere; }
.button span, .text-link span { flex: 0 0 auto; }
.button.small, .header .button { font-size: .875rem; min-height: 2.75rem; }
.text-link, .header nav a, .footer-legal a, .legal-nav a, .legal-header > a:last-child {
  display: inline-flex; align-items: center; min-height: 2.75rem;
}
.header { height: auto; min-height: 6.5rem; padding-block: 1rem; gap: clamp(1rem, 2vw, 2rem); }
.header nav { display: flex; flex-wrap: wrap; justify-content: center; gap: .25rem 1rem; font-size: .875rem; }
.header nav a { padding: .25rem; }
.header > .button { flex-shrink: 0; }
.hero { grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr); }
.hero-copy { padding: clamp(1.5rem, 3.75vw, 3rem); }
.hero h1 { font-size: clamp(3rem, 6.6vw, 5.875rem); }
.hero-subtitle { font-size: clamp(1rem, 1.75vw, 1.3125rem); }
.eyebrow { font-size: .75rem; }
.audience { font-size: 1rem; }
.hero-actions { gap: 1rem 1.5rem; }
.hero-facts { grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr) auto; padding: 1.5rem clamp(1.5rem, 3.75vw, 3rem); }
.hero-facts > div { grid-template-columns: minmax(0, 1fr); }
.hero-facts > div + div { padding-left: clamp(1rem, 3vw, 2.5rem); }
.hero-facts strong { font-size: 1rem; }
.hero-facts div > span:last-child, .fact-label { font-size: .875rem; }
.organizers { flex-wrap: wrap; gap: 1.5rem; padding: 2rem .5rem; }
.organizers p { font-size: .875rem; }
.section { padding-block: clamp(3rem, 6vw, 6rem); }
h2 { font-size: clamp(1.875rem, 3.4vw, 2.875rem); }
.about { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(2rem, 5vw, 5rem); }
.about-copy > p { font-size: 1rem; }
.section-heading { flex-wrap: wrap; gap: 1rem 2rem; margin-bottom: clamp(2rem, 4vw, 3.5rem); }
.section-aside, .topics span, .agenda-time, .agenda-person, .agenda-note,
.speaker-place, .speaker-topic, .venue-time, .contact-block span, .footer-bottom, .footer-legal { font-size: .875rem; }
.program-layout { grid-template-columns: minmax(0, 15rem) minmax(0, 1fr); gap: clamp(2rem, 5vw, 4rem); }
.program-aside .button { min-width: 0; max-width: 100%; }
.agenda-row { grid-template-columns: 6.625rem minmax(0, 1fr) 3.75rem; }
.agenda-row h3 { font-size: 1.125rem; }
.agenda-row.break h3 { font-size: 1rem; }
.speakers-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem clamp(1.25rem, 3vw, 2.5rem); }
.speaker h3 { font-size: 1rem; min-height: 0; }
.speaker-role { font-size: 1rem; min-height: 0; }
.speaker-place { min-height: 0; }
.venue-grid { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(2rem, 5vw, 4.5rem); }
.venue-title { font-size: clamp(1.25rem, 2vw, 1.4375rem); }
address { font-size: 1rem; }
.map-panel { height: clamp(18rem, 35vw, 28.125rem); }
.map-caption { flex-wrap: wrap; gap: .5rem 1rem; font-size: .875rem; }
.map-caption strong { font-size: 1rem; }
.registration-external { grid-template-columns: minmax(0, 1fr); }
.registration h2 { font-size: clamp(2rem, 4vw, 3.375rem); }
.contact-block { margin-top: 1.5rem; }
.contact-block a { font-size: clamp(1.25rem, 3vw, 1.5625rem); }
.footer-top, .footer-bottom { flex-wrap: wrap; gap: 1.5rem; }
.footer-phone { font-size: clamp(1.125rem, 3vw, 1.375rem); white-space: normal; }
.footer-bottom span { white-space: normal; }
.footer-legal { gap: .5rem 1.5rem; }
.legal-header { flex-wrap: wrap; }
.legal-main { max-width: 53.75rem; }
.legal-nav a, .legal-header > a:last-child { font-size: .875rem; }

@media (max-width: 64rem) {
  .header { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .75rem 1rem; }
  .header > .button { grid-column: 2; grid-row: 1; justify-self: end; }
  .header nav { grid-column: 1 / -1; grid-row: 2; justify-content: flex-start; gap: .25rem .75rem; }
  .program-layout { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
  .program-aside { display: flex; position: static; flex-wrap: wrap; align-items: center; gap: 1rem; }
  .program-aside .day-number { display: none; }
  .program-aside > p { margin: 0; }
  .program-aside .button { margin-inline-start: auto; }
  .speakers-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hero-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hero-facts > a { display: none; }
}

@media (max-width: 60rem) {
  .hero { grid-template-columns: minmax(0, 1fr); }
  .hero h1 { font-size: clamp(3rem, 10vw, 5.375rem); }
  .hero-subtitle { font-size: 1.125rem; }
  .desktop { display: none; }
  .hero-visual { height: clamp(18rem, 48vw, 27rem); margin: 0; }
  .hero-visual > img { height: 100%; width: 100%; left: 0; bottom: 0; object-fit: contain; object-position: center bottom; }
  .hero-visual:before { inset: 3rem -2rem -8rem 2rem; }
  .date-stamp { right: 1rem; bottom: 1rem; padding: .75rem 1rem; }
  .date-stamp strong { font-size: 2.75rem; }
  .date-stamp span { font-size: .875rem; }
  .about, .venue-grid { grid-template-columns: minmax(0, 1fr); gap: 2rem; }
  .map-panel { height: clamp(16rem, 48vw, 26rem); }
}

@media (max-width: 45rem) {
  .header nav { display: flex; }
  .hero-actions .button { font-size: 1rem; }
  .hero-facts { grid-template-columns: minmax(0, 1fr); }
  .hero-facts > div + div { border-left: 0; border-top: 1px solid #ffffff30; padding: 1rem 0 0; }
  .section-heading { display: flex; align-items: flex-start; }
  .section-aside { margin: 0; }
  .agenda-row { grid-template-columns: 5.5rem minmax(0, 1fr); gap: .75rem; padding-block: 1.5rem; }
  .agenda-portraits, .break-mark { display: none; }
  .agenda-row h3 { font-size: 1rem; }
  .speaker-top { display: flex; flex-direction: column; align-items: flex-start; gap: 1rem; }
  .speaker-top .portrait { margin-bottom: 0; }
  .speaker h3 { line-height: 1.5; min-height: 0; }
  .map-caption { inset-inline: .75rem; bottom: .75rem; padding: .875rem; }
  .footer-top { flex-direction: row; align-items: center; }
  .footer-bottom { flex-direction: column; align-items: flex-start; }
}

@media (max-width: 30rem) {
  .header .brand { width: 5.5rem; height: auto; }
  .header > .button { padding: .625rem .75rem; gap: .5rem; }
  .header nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; }
  .header nav a { padding: .375rem 0; }
  .hero-copy { padding: 1.5rem 1.25rem; }
  .hero h1 { font-size: clamp(2.75rem, 14vw, 4.5rem); }
  .hero-actions { align-items: stretch; flex-direction: column; }
  .hero-actions .button, .registration-external > div > .button { width: 100%; }
  .hero-actions .text-link { justify-content: center; }
  .hero-facts { padding: 1.25rem; }
  .organizers p { flex-basis: 100%; text-align: center; margin: 0; }
  .agenda-row { grid-template-columns: minmax(0, 1fr); gap: .5rem; }
  .agenda-people { margin-top: .75rem; }
  .program-aside > p { display: none; }
  .program-aside .button { width: 100%; margin: 0; }
  .speakers-grid { grid-template-columns: minmax(0, 1fr); }
  .speaker-top { flex-direction: row; align-items: center; }
  .speaker-top .portrait { width: 5rem; height: 5rem; border-radius: .875rem; }
  .speaker-role { margin-top: 1rem; }
  .legal-header { gap: 1rem; }
  .legal-main { margin-block: 2rem 3rem; padding-inline: var(--page-gutter); }
  .legal-main h1 { font-size: clamp(1.625rem, 8vw, 2rem); }
}

@media (max-width: 24rem) {
  .speaker-top { flex-direction: column; align-items: flex-start; }
  .legal-header > a:last-child { max-width: none; text-align: left; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .button { transition: none; }
  .button:hover { transform: none; }
}
