/* Compact homepage rhythm and clear section surfaces. */
:root { --gutter: clamp(24px, 4vw, 64px); }
.section-space { padding-block: 52px; }
.site-header { height: 78px; }
.section-heading { margin-bottom: 24px; gap: 28px; }
.section-heading h2 { margin-top: 10px; font-size: 36px; }
.section-aside { font-size: 15px; }
.eyebrow { letter-spacing: .13em; }

.campaign-layout { padding-block: 28px 20px; gap: 20px 40px; }
.campaign-english { font-size: clamp(60px, 5vw, 72px); margin: 18px 0 16px; }
.campaign-copy h2 { font-size: 29px; }
.campaign-intro { margin-top: 12px; line-height: 1.7; }
.campaign-date { padding-top: 12px; margin-top: 15px; }
.campaign-date strong { font-size: 23px; }
.campaign-actions { margin-top: 16px; }
.campaign-notice { margin-top: 8px; }
.hero-rider-photo { padding: 10px 10px 0; }
.hero-rider-photo img { height: 260px; }
.hero-riders { gap: 16px; }
.hero-riders figcaption { padding: 12px 17px 14px; }
.hero-riders figcaption > strong { font-size: 27px; margin-top: 2px; }
.hero-riders figcaption > p { margin-top: 6px; }
.campaign-talks { padding-top: 12px; gap: 5px 20px; }
.carousel-toolbar { padding-block: 8px; }
.hero--brand { min-height: 570px; }
.hero--brand .hero-inner { padding-block: 38px 62px; }
.hero--brand .hero-english { font-size: clamp(70px, 7vw, 96px); margin: 22px 0; }
.hero--brand h2 { font-size: 35px; }
.craft-feature { min-height: 570px; padding-block: 36px; gap: 40px; }
.craft-english { font-size: 68px; margin-block: 21px; }

.home-shortcuts { background: #e4e7e6; border-block: 1px solid #bec5c5; }
.home-shortcuts > .wrap { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); }
.home-shortcuts a { display: grid; grid-template-columns: 31px 1fr; gap: 0 10px; padding: 15px 22px; border-right: 1px solid #bac4c5; }
.home-shortcuts a:first-child { padding-left: 0; }
.home-shortcuts a:last-child { border-right: 0; }
.home-shortcuts a > span { grid-row: 1/3; align-self: center; color: #9d5837; font-size: 14px; }
.home-shortcuts strong { font-size: 16px; line-height: 1.5; font-weight: 600; }
.home-shortcuts small { font-size: 12px; color: #5d686d; line-height: 1.7; }
.home-shortcuts a:hover { background: #d6dede; }

.news-section { background: #fff; padding-block: 38px 42px; }
.news-heading { border-bottom: 1px solid #cdd4d5; padding-bottom: 17px; margin-bottom: 22px; }
.news-heading h2 { font-size: 31px; }
.news-heading > div { border-left: 4px solid var(--orange); padding-left: 16px; }
.news-grid { gap: 22px; grid-template-columns: 1.65fr 1fr; }
.news-feature { box-shadow: 0 5px 16px #1721260a; grid-template-columns: 1.08fr 1fr; }
.news-feature figure { padding: 12px; background: #e6ebea; }
.news-feature-copy { padding: 20px 22px; }
.news-date { margin-top: 11px; }
.news-feature h3 { font-size: 24px; margin-bottom: 12px; }
.news-feature-copy > p:not(.news-category):not(.news-date) { margin-bottom: 16px; line-height: 1.7; }
.news-feature-copy > .text-link { margin-top: 12px; }
.news-program { padding: 20px 22px; background: #f0eeea; border: 1px solid #d2d3cd; border-top: 3px solid var(--wood); }
.news-program h3 { font-size: 23px; margin: 9px 0 16px; }
.news-program ol { margin-bottom: 16px; }
.news-program li { padding-block: 10px; gap: 13px; }

.about-section { display: block; background: #edf0f0; border-block: 1px solid #cbd3d5; }
.section-index { display: flex; flex-direction: row; justify-content: space-between; align-items: center; margin-bottom: 24px; }
.section-index .eyebrow { background: #2e3f46; color: #fff; padding: 5px 12px; }
.section-number { font-size: 25px; line-height: 1; letter-spacing: 0; color: #778992; }
.about-content { display: grid; grid-template-columns: 1.05fr 1fr; gap: 17px 36px; align-items: center; }
.about-words { grid-column: 1; grid-row: 1; }
.about-words h2 { margin-bottom: 20px; }
.about-content h2 { grid-column: 1; grid-row: 1; font-size: 36px; }
.about-copy { grid-column: 1; grid-row: 2; }
.about-copy p { margin-bottom: 11px; line-height: 1.75; }
.about-copy p:last-child { margin-bottom: 0; }
.about-copy p:first-child { font-size: 17px; }
.about-image { grid-column: 2; grid-row: 1; padding: 12px; background: #fff; border: 1px solid #c4ced2; align-self: center; }
.about-image img { width: 100%; height: auto; object-fit: contain; }
.about-image figcaption { color: #5c6970; font-size: 12px; margin-top: 8px; line-height: 1.7; }
.belief-line { grid-column: auto; margin-top: 24px; padding-top: 0; border: 0; gap: 12px; }
.belief-line > span { background: #fff; padding: 12px 17px; border-left: 3px solid #a88c70; font-size: 14px; }

.explore-section { background: #26363e; color: #f4f6f5; border-top: 4px solid #b89878; }
.explore-section .eyebrow { color: #e0c1a5; }
.explore-section .section-aside { color: #c2d0d6; }
.direction-tabs { border: 0; gap: 8px; }
.direction-tabs button { padding: 16px 18px; border: 1px solid #bac7cd; background: #edf2f2; font-size: 22px; }
.direction-tabs button:last-child { border-right: 1px solid #bac7cd; }
.direction-tabs button > span { margin-bottom: 8px; }
.direction-tabs button small { margin-top: 6px; }
.direction-tabs button[aria-selected=true] { background: #af4c2d; border-color: #d3825b; }
.direction-tabs button[aria-selected=true] > span { color: #f1d4c1; }
.direction-tabs button:hover:not([aria-selected=true]) { background: #d6e1e2; }
.direction-panel { min-height: 0; margin-top: 18px; padding: 24px; border: 1px solid #768991; background: #1c2930; gap: 36px; }
.direction-panel h3 { font-size: 32px; margin-top: 12px; }
.direction-copy > p { color: #d3dce0; }
.direction-copy ul { padding-block: 12px; gap: 0; }
.direction-copy li { font-size: 16px; padding-block: 7px; border-color: #526772; }
.direction-copy li:before { color: #e1b898; }
.direction-copy .planning-note { color: #b9c8cf; }

.craft-section { background: #fff; gap: 40px; border-bottom: 1px solid #ced5d7; }
.craft-copy h2 { font-size: 36px; margin: 12px 0 18px; }
.craft-copy > p:not(.eyebrow) { margin-top: 11px; line-height: 1.75; }
.craft-photo { padding: 8px; border: 1px solid #a7b4bb; box-shadow: 9px 9px 0 #e4e8e8; }
.craft-photo figcaption { padding: 7px 6px 0; }
.brand-roles { margin-top: 20px; padding-top: 17px; gap: 12px; }
.brand-roles > div { background: #edf0f0; padding: 12px 14px; border-left: 2px solid #a88d73; }

.opening-section { background: #172a34; border-top: 4px solid #b67348; }
.opening-section .section-heading { margin-bottom: 25px; }
.opening-section h2 { font-size: 72px; margin-top: 12px; }
.opening-date strong { font-size: 27px; }
.event-grid { gap: 35px; grid-template-columns: 1.12fr 1fr; }
.event-photo { padding: 8px; border: 1px solid #637985; }
.event-photo figcaption { padding: 7px 4px 0; }
.event-copy h3 { font-size: 24px; margin-bottom: 12px; }
.event-copy > p { line-height: 1.75; }
.event-topics { padding-block: 15px; }
.event-topics li { padding-block: 7px; }
.event-copy .event-notice { margin-bottom: 17px; }
.rider-row { margin-top: 26px; padding-block: 18px; gap: 24px; }
.rider { gap: 17px; }
.rider img { height: 95px; }
.opening-lectures { padding-top: 28px; }
.lecture-heading { border-left: 3px solid #d0a47f; padding-left: 17px; }
.lecture-heading h3 { font-size: 24px; margin-top: 7px; }
.lecture-heading > p:last-child { margin-top: 8px; }
.lecture-grid { grid-template-columns: repeat(4, minmax(0,1fr)); gap: 12px; margin-top: 20px; }
.lecture-grid article { padding: 20px 18px; background: #30424b; border: 1px solid #647983; border-top: 3px solid #bf9674; }
.lecture-grid h4 { font-size: 18px; margin: 9px 0; }
.lecture-grid article > p:last-child { line-height: 1.75; }
.program-link { margin-top: 20px; }

.visit-section { background: #e9eeef; border-bottom: 1px solid #c6d0d5; gap: 55px; }
.visit-intro h2 { font-size: 36px; margin-top: 12px; }
.visit-intro > p:not(.eyebrow) { margin-top: 15px; }
.location-box { padding-left: 17px; margin: 23px 0 19px; }
.faq { background: #fff; padding: 22px 25px; border: 1px solid #c7d0d4; }
.faq h3 { font-size: 23px; margin-bottom: 14px; }
.faq details { padding-block: 14px; }
.footer-top { padding-block: 25px; }
.footer-bottom { padding-block: 14px; }

@media(max-width:1150px) {
  .campaign-layout { gap: 18px 28px; }
  .campaign-english { font-size: 62px; }
  .hero-rider-photo img { height: 245px; }
  .hero-riders figcaption { padding: 11px 13px 13px; }
  .hero-riders figcaption > strong { font-size: 25px; }
  .news-grid { grid-template-columns: 1.6fr 1fr; }
  .news-feature { grid-template-columns: 1.02fr 1fr; }
  .news-feature figure { display: flex; }
  .about-content { gap: 14px 28px; }
  .about-content h2, .craft-copy h2 { font-size: 33px; }
  .lecture-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .direction-tabs button { padding: 15px 13px; font-size: 20px; }
}
@media(max-width:850px) {
  .section-space { padding-block: 42px; }
  .site-header { height: 76px; }
  .site-header nav { top: 76px; }
  .campaign-copy { column-gap: 25px; }
  .campaign-date { margin-top: 0; }
  .campaign-actions { margin-top: 0; gap: 14px; }
  .campaign-notice { margin-top: 8px; }
  .hero-riders { max-width: 100%; }
  .hero-rider-photo img { height: 225px; }
  .carousel-toolbar { padding-block: 8px; }
  .hero--brand { min-height: 590px; }
  .craft-feature { min-height: 0; gap: 25px; padding-block: 32px; }
  .home-shortcuts a { padding-inline: 12px; gap: 0 6px; grid-template-columns: 23px 1fr; }
  .home-shortcuts strong { font-size: 15px; }
  .home-shortcuts small { font-size: 12px; }
  .news-feature h3 { font-size: 25px; }
  .news-program { padding: 20px; }
  .about-content { grid-template-columns: 1fr 1fr; }
  .about-image { grid-row: 1; }
  .about-content h2 { grid-column: 1/-1; }
  .about-content h2 br { display: none; }
  .direction-tabs button { padding: 14px 11px; font-size: 17px; }
  .direction-panel { padding: 22px; gap: 24px; }
  .direction-panel h3 { font-size: 29px; }
  .craft-section { gap: 28px; }
  .event-grid { grid-template-columns: 1fr; gap: 24px; }
  .opening-section h2 { font-size: 66px; }
  .visit-section { gap: 28px; }
}
@media(max-width:600px) {
  :root { --gutter: 22px; }
  .section-space { padding-block: 34px; }
  .section-heading { margin-bottom: 20px; }
  .section-heading h2 { font-size: 29px; }
  .section-aside { margin-top: 13px; }
  .campaign-layout { padding-block: 22px 17px; gap: 18px; }
  .campaign-english { font-size: clamp(44px, 11.5vw, 62px); margin: 15px 0 11px; }
  .campaign-copy h2 { font-size: 22px; }
  .campaign-intro { font-size: 15px; margin-top: 9px; line-height: 1.65; }
  .campaign-date { margin-top: 12px; padding-top: 10px; }
  .campaign-date strong { font-size: 21px; }
  .campaign-actions { margin-top: 13px; flex-direction: row; gap: 15px; }
  .campaign-notice { margin-top: 8px; }
  .hero-riders { gap: 12px; }
  .hero-rider-photo { padding: 7px 7px 0; }
  .hero-rider-photo img { height: 175px; }
  .hero-riders figcaption { padding: 9px 11px 11px; }
  .hero-riders figcaption > strong { font-size: 24px; }
  .hero-riders figcaption > p { margin-top: 4px; font-size: 14px; }
  .campaign-talks { padding-top: 13px; gap: 6px; }
  .campaign-talks ul { display: flex; gap: 4px 10px; font-size: 14px; }
  .campaign-talks li:before { margin-right: 5px; }
  .carousel-toolbar { gap: 6px 5px; }
  .hero--brand { min-height: 0; }
  .hero--brand .hero-inner { padding-block: 25px; }
  .hero--brand .hero-english { font-size: 70px; margin: 18px 0; }
  .hero--brand h2 { font-size: 30px; }
  .craft-english { font-size: 54px; margin-block: 17px; }
  .craft-feature h2 { font-size: 27px; }
  .home-shortcuts > .wrap { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .home-shortcuts a { padding: 12px 10px; grid-template-columns: 25px 1fr; }
  .home-shortcuts a:first-child { padding-left: 10px; }
  .home-shortcuts a:nth-child(2) { border-right: 0; }
  .home-shortcuts a:nth-child(-n+2) { border-bottom: 1px solid #bac4c5; }
  .home-shortcuts strong { font-size: 15px; }
  .news-section { padding-block: 28px 32px; }
  .news-heading { padding-bottom: 15px; }
  .news-grid { grid-template-columns: 1fr; gap: 16px; }
  .news-feature { grid-template-columns: 1fr; }
  .news-feature figure { display: flex; padding: 10px; }
  .news-feature-copy { padding: 20px; }
  .news-feature h3 { font-size: 24px; }
  .news-program h3 { font-size: 23px; margin-top: 8px; }
  .news-program li { padding-block: 9px; }
  .section-index { margin-bottom: 18px; }
  .section-number { font-size: 22px; }
  .about-content { display: grid; grid-template-columns: 1fr; gap: 16px; }
  .about-words { grid-column: 1; grid-row: 1; }
  .about-words h2 { margin-bottom: 17px; }
  .about-content h2 { grid-column: 1; grid-row: 1; font-size: 29px; }
  .about-content h2 br { display: initial; }
  .about-copy { grid-column: 1; grid-row: 2; }
  .about-copy p { font-size: 16px; margin-bottom: 10px; }
  .about-copy p:first-child { font-size: 17px; }
  .about-image { grid-column: 1; grid-row: 2; padding: 8px; }
  .belief-line { grid-template-columns: 1fr; margin-top: 16px; gap: 7px; }
  .belief-line > span { padding: 9px 13px; }
  .direction-tabs { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; }
  .direction-tabs button { min-height: 83px; padding: 12px 14px; font-size: 20px; }
  .direction-tabs button > span { margin-bottom: 5px; }
  .direction-tabs button small { margin-top: 4px; font-size: 14px; }
  .direction-tabs button:last-child { min-height: 59px; }
  .direction-panel { grid-template-columns: 1fr; min-height: 0; padding: 20px 18px; margin-top: 14px; gap: 17px; }
  .direction-panel h3 { font-size: 28px; margin-top: 8px; }
  .direction-copy > p { font-size: 16px; }
  .direction-copy ul { padding-block: 10px; }
  .craft-copy h2 { font-size: 30px; margin-block: 9px 14px; }
  .craft-photo { box-shadow: 6px 6px 0 #e4e8e8; }
  .brand-roles { grid-template-columns: 1fr 1fr; gap: 9px; }
  .brand-roles > div { padding: 11px; }
  .brand-roles p { font-size: 14px; }
  .opening-section h2 { font-size: 60px; }
  .opening-date { margin-top: 17px; }
  .opening-date strong { font-size: 25px; }
  .event-grid { gap: 20px; }
  .event-copy h3 { font-size: 23px; }
  .event-topics { padding-block: 13px; }
  .rider-row { margin-top: 22px; gap: 18px; padding-block: 17px; }
  .rider-row .rider:first-child { padding-bottom: 18px; }
  .opening-lectures { padding-top: 24px; }
  .lecture-heading { padding-left: 13px; }
  .lecture-heading h3 { font-size: 23px; }
  .lecture-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin-top: 17px; }
  .lecture-grid article { padding: 15px 13px; }
  .lecture-grid h4 { font-size: 18px; line-height: 1.6; }
  .lecture-speaker { font-size: 12px; }
  .lecture-grid article > p:last-child { font-size: 15px; line-height: 1.8; }
  .visit-intro h2 { font-size: 30px; }
  .faq { padding: 19px; }
  .faq summary { font-size: 16px; }
}
@media(max-width:360px) {
  :root { --gutter: 20px; }
  .campaign-english { font-size: 42px; }
  .campaign-copy h2 { font-size: 20px; }
  .campaign-actions { gap: 11px; }
  .hero-riders { gap: 10px; }
  .hero-rider-photo img { height: 150px; }
  .hero-riders figcaption { padding-inline: 9px; }
  .hero-riders figcaption > strong { font-size: 22px; }
  .hero-riders figcaption > small { letter-spacing: 0; }
  .hero--brand .hero-english { font-size: 64px; }
  .home-shortcuts a { padding-inline: 8px; gap: 0 4px; }
  .direction-tabs button { font-size: 18px; }
  .direction-panel { padding-inline: 15px; }
  .direction-panel h3 { font-size: 26px; }
  .opening-section h2 { font-size: 54px; }
  .brand-roles { grid-template-columns: 1fr; }
  .lecture-grid { grid-template-columns: 1fr; }
  .lecture-grid article { padding: 17px; }
}
@media print {
  .home-shortcuts { display: none; }
  .section-space { padding-block: 25px; }
  .explore-section, .opening-section { background: #fff; color: #000; }
  .direction-copy > p, .direction-copy li, .direction-copy .planning-note { color: #333; }
  .direction-panel { background: #fff; }
  .lecture-grid { grid-template-columns: 1fr 1fr; }
  .lecture-grid article { background: #fff; }
}
