/* Shared reading scale. All supporting copy has a 14px minimum in source CSS. */
:root{--type-body:18px;--type-ui:16px;--type-small:14px}
body{font-size:var(--type-body);line-height:1.8}

/* Keep headings expressive; make the information underneath comfortable to read. */
:root body :is(.section-heading>p,.about-copy p:not(.lead),.program-details div>p:last-child,.awards-copy>p,.award-info p:not(.vote-status),.award-attendance p,.event-table dd:not(.date-value),.join-heading>p:last-child,.join-card p,.faq summary,.faq details p,dialog p,dialog li,.simple-lead,.simple-heading>p:last-child:not(.simple-kicker),.commercial-benefits p,.simple-program-copy p,.commercial-video-copy>p,.simple-event-info dd,.simple-contact-box>p:not(.simple-kicker):not(.simple-note),.simple-admission span,.simple-contact-status p){font-size:var(--type-body);line-height:1.9}
:root body :is(.button,.text-link,.header-cta,.program-tabs button,.exhibitor-fixed-cta,.ex-index a,.commercial-archive-link,.simple-hero-cta){font-size:var(--type-ui)}
:root body :is(.micro,.pill,.simple-kicker,.ex-eyebrow){letter-spacing:.07em}
.section-caption{align-items:flex-start;flex-wrap:wrap;gap:8px 24px}
.section-caption>span:last-child{color:#b8c4d6}
.program-tabs button{padding-block:22px;line-height:1.6}
.program-tabs button span{font-size:14px}
.event-table dl>div{grid-template-columns:112px minmax(0,1fr)}
.event-table dd span{font-size:16px;line-height:1.8}
.event-date p small{font-size:14px}
.event-place p{font-size:18px;line-height:1.7}
.hero-copy{flex-wrap:wrap}
.hero-en{line-height:1.8}
.hero-footnote{gap:24px;align-items:flex-start;line-height:1.8}
.hero-footnote>a{white-space:normal;line-height:1.8}
.hero-kicker{line-height:1.8}
.hero{height:auto;min-height:100svh;max-height:none;display:flex;flex-direction:column}
.hero>.hero-content{padding-top:180px;padding-bottom:56px}
.hero-bottom{position:relative;inset:auto;margin-top:auto;padding-bottom:28px}
.event-strip{grid-template-columns:1fr 1fr auto;gap:28px}
.registration-button{white-space:normal;line-height:1.6;text-align:left}
.registration-button .registration-label{font:inherit;display:block;flex:1;min-width:0}
.registration-button .registration-free{font:inherit;display:inline-block;white-space:nowrap}
.join-card .button{min-height:60px}
.access-links{flex-wrap:wrap;gap:18px 26px}
.access-links .text-link{flex:1 1 180px}
.footer-bottom{gap:20px;line-height:1.8}
.footer-brand>span{max-width:none;line-height:1.8}
.commercial-video-label{letter-spacing:.05em;gap:12px;flex-wrap:wrap}
.commercial-benefit-result,.commercial-fields .simple-theme-grid p{line-height:1.8}
.simple-program-time{line-height:1.7}

/* Navigation stays 16px instead of shrinking to fit a narrower screen. */
.site-header{gap:24px;padding-inline:24px;height:104px}
.desktop-nav,.exhibitor-page .site-header .desktop-nav{gap:22px;flex-shrink:0}
.desktop-nav a,.exhibitor-page .desktop-nav a{font-size:16px;letter-spacing:.03em;white-space:nowrap;line-height:1.6;padding-block:14px}
.header-actions .header-cta{font-size:16px;min-height:52px;padding:12px 15px;gap:12px;line-height:1.6}
.header-actions .header-cta>span{flex-shrink:0}
.header-actions .header-registration .registration-label{font:inherit;display:block;flex-shrink:1;min-width:0}
.header-actions .header-registration .registration-free{font:inherit;display:inline-block;white-space:nowrap}
.site-header .brand{flex-shrink:0}
.header-short{display:none}
:root body .header-actions :is(.header-full,.header-short){font:inherit}
/* Scrolling keeps the navigation available without covering the content. */
.site-header.is-fixed{height:76px;padding-block:8px}
.site-header.is-fixed .brand-logo{width:116px}
.site-header.is-fixed .header-cta{min-height:44px;padding-block:8px}
.mobile-nav>a{font-size:16px;gap:18px;line-height:1.7}
.mobile-nav>a>span{font-size:14px}

@media(max-width:1399px){
  .desktop-nav{display:none}
  .menu-toggle{display:flex;flex:0 0 44px;flex-direction:column;align-items:center;justify-content:center;gap:6px;width:44px;height:44px;padding:10px;background:none;margin:0}
  .menu-toggle span{width:24px;height:1px;background:#fff;transition:transform .2s}
  .menu-toggle[aria-expanded=true] span:first-child{transform:translateY(3.5px) rotate(45deg)}
  .menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-3.5px) rotate(-45deg)}
  .mobile-nav:not([hidden]){display:flex;flex-direction:column;position:absolute;top:calc(100% + 10px);left:0;right:0;max-height:calc(100svh - 160px);overflow-y:auto;background:#081327f5;backdrop-filter:blur(30px);padding:16px 24px;border:1px solid #dcc79140;border-radius:3px;box-shadow:0 30px 50px #0005}
  .mobile-nav>a{display:flex;justify-content:space-between;padding:15px 0;border-bottom:1px solid #ffffff20;font-size:16px}
  .mobile-nav>a:last-child{border:0}
}
@media(max-width:1023px){
  :root{--type-body:16px}
  .event-strip{grid-template-columns:1fr 1fr}
  .event-strip .button{grid-column:1/-1}
  .hero>.hero-content{padding-bottom:40px}
}
@media(max-width:760px){
  html{scroll-padding-top:84px}
  .site-header{height:auto;padding:12px;gap:10px 12px}
  .site-header .brand-logo{width:120px}
  .site-header .menu-toggle{width:44px;height:44px}
  .site-header.is-fixed{height:auto;top:max(8px,env(safe-area-inset-top,0px));padding:6px 8px;gap:6px;grid-template-columns:76px minmax(0,1fr) 44px}
  .site-header.is-fixed .brand{grid-column:1;grid-row:1;min-height:44px}
  .site-header.is-fixed .brand-logo{width:76px}
  .site-header.is-fixed .header-actions{grid-column:2;grid-row:1;grid-template-columns:44px minmax(0,1fr);gap:6px}
  .site-header.is-fixed .menu-toggle{grid-column:3;grid-row:1}
  .site-header.is-fixed .header-full{display:none}
  .site-header.is-fixed .header-short{display:inline}
  :root body .site-header.is-fixed .header-actions .header-cta{min-height:44px;padding:3px 6px;line-height:1.3;letter-spacing:0}
  .site-header.is-fixed .header-registration .registration-label{text-align:center}
  .header-actions{grid-template-columns:1fr 1.65fr;gap:8px}
  :root body .header-actions .header-cta{white-space:normal;font-size:14px;min-height:52px;padding:8px 10px;gap:6px;justify-content:center}
  .header-actions .header-cta>[aria-hidden="true"]{display:none}
  .mobile-nav:not([hidden]){max-height:calc(100svh - 190px);padding:12px 18px}
  .site-header.is-fixed .mobile-nav:not([hidden]){max-height:calc(100svh - 96px - env(safe-area-inset-top,0px))}
  .mobile-nav>a{flex-wrap:wrap;gap:3px 16px}
  .hero>.hero-content{padding-top:208px;padding-bottom:38px}
  .hero-bottom{padding-bottom:26px}
  .hero-copy{gap:20px}
  .hero-copy-line{display:none}
  .hero-footnote{gap:16px}
  .hero-admission,.hero-admission strong{font-size:14px;line-height:1.8}
  .event-strip{gap:20px;padding:20px}
  .event-date{border:0;padding:0}
  .event-date p{font-size:24px;white-space:normal}
  .event-date p small{display:block;margin-left:0}
  .event-place p{font-size:16px}
  :root body .program-tabs button{font-size:14px;padding:16px 3px;letter-spacing:0;gap:5px}
  .section-caption>span:last-child{font-size:14px;text-align:left;letter-spacing:.035em}
  .section-heading>p br,.join-card p br{display:none}
  .event-table dl>div{grid-template-columns:1fr;gap:6px;padding:20px 0}
  .event-table dd.date-value{font-size:28px}
  .event-table dd span{font-size:14px}
  .event-table dt{letter-spacing:.08em}
  .join-card{padding:26px 22px}
  .join-card .button{padding:15px 16px;gap:14px;white-space:normal}
  .footer-brand{font-size:clamp(18px,4.8vw,25px)}
  .footer-bottom{padding-bottom:66px}
  .commercial-pr li{grid-template-columns:105px minmax(0,1fr)}
  .commercial-results p{max-width:none;flex:1}
  .commercial-results strong{font-size:34px;white-space:normal;flex-shrink:0}
  .commercial-results small{font-size:14px}
  .commercial-scale>div{grid-template-columns:100px minmax(0,1fr)}
  .commercial-scale strong{font-size:44px;gap:6px;flex-wrap:wrap}
  .ex-commercial-page .simple-hero{padding-top:196px}
}
@media(max-width:360px){
  .header-actions{grid-template-columns:1fr 1.5fr}
  :root body .header-actions .header-cta{padding-inline:6px}
  .header-actions .header-vote{white-space:nowrap}
  .event-strip{grid-template-columns:1fr}
  .commercial-results>div{align-items:flex-start;flex-direction:column;gap:4px}
  .commercial-scale>div{grid-template-columns:90px minmax(0,1fr)}
  .commercial-pr li{grid-template-columns:1fr;gap:4px}
}
@media print{.hero>.hero-content{padding-top:40px}.hero-bottom{padding-bottom:0}.footer-bottom{padding-bottom:0}}
