/*
 * v6 / 読みやすさの調整
 * 文字サイズはこのファイルで管理。本文 PC 18px / SP 17px、注意書き14px以上。
 * 1行指定のキャッチだけは画面幅に連動（320pxで約13px、390pxで約16px）。
 * 元ビジュアル内の文字は画像のまま保持します。
 */
:root {
  --font-body: 1.125rem;
  --font-note: .9375rem;
  --font-label: .75rem;
  --font-action: 1rem;
  --header-h: 92px;
}
body { font-size:var(--font-body); line-height:2; }
button, input { font-family:var(--sans); }
small { font-size:var(--font-note); }
.section-wrap, .footer-inner { width:min(1160px,calc(100% - 96px)); }
.section-pad { padding-block:108px; }
.section-kicker, .eyebrow { font-size:var(--font-label); }
.section-kicker { gap:15px; letter-spacing:.12em; }
.section-kicker>span { width:28px; height:28px; font-size:13px; }
.section-heading h2 { font-size:64px; }
.section-heading h2 small { font-size:18px; letter-spacing:.08em; margin-top:16px; }
.button { font-size:var(--font-action); min-height:64px; gap:16px; line-height:1.65; padding:18px 24px; }
.text-link { font-size:var(--font-note); line-height:1.8; gap:12px; }
/* Header: switch to the menu before larger labels start crowding each other. */
.site-header { padding-inline:30px; gap:28px; }
.brand>span { font-size:9px; letter-spacing:.13em; }
.desktop-nav { gap:24px; }
.desktop-nav a { font-size:12px; letter-spacing:.04em; }
.desktop-nav a small { font-size:13px; }
.header-actions { gap:18px; }
.header-ticket { font-size:15px; line-height:1.6; padding:13px 17px; min-height:50px; white-space:nowrap; }
.motion-toggle { font-size:12px; min-height:44px; }
.menu-toggle small { font-size:10px; }
/* Hero typography only: the actual poster is not cropped or modified. */
.hero-kicker { font-size:12px; letter-spacing:.12em; }
.hero-quote { font-size:34px; line-height:1.9; }
.hero-tagline { font-size:18px; letter-spacing:.05em; }
.hero-billing { flex-wrap:wrap; gap:12px; }
.hero-billing p>span { font-size:15px; }
.hero-billing strong { font-size:30px; }
.hero-tour>a { min-height:66px; gap:15px; }
.hero-tour__city { font-size:22px; gap:10px; }
.hero-tour__city small { font-size:10px; letter-spacing:.07em; min-width:0; }
.hero-tour__detail { gap:12px; }
.hero-tour__detail>span { font-size:21px; min-width:122px; }
.hero-tour__detail strong { font-size:15px; }
.hero-actions { flex-wrap:wrap; row-gap:12px; }
.hero-actions .button { font-size:16px; min-height:64px; }
.hero-movie-link { font-size:15px; }
.hero-date-note { font-size:14px; }
.hero-bottom, .hero-bottom>span, .scroll-cue { font-size:11px; letter-spacing:.1em; }
.visual-zoom { font-size:13px; min-height:44px; padding:11px 14px; }
/* Movie and news */
.movie .section-heading h2 { font-size:68px; }
.movie-caption { font-size:21px; text-align: center;}
.movie-note { font-size:15px; line-height:2; }
.movie-card__copy .eyebrow { font-size:12px; }
.movie-status { font-size:19px; }
.movie-card__copy>small { font-size:15px; line-height:1.8; }
.movie-card__corner { font-size:12px; }
.news .section-heading h2 { font-size:60px; }
.news-layout { grid-template-columns:225px minmax(0,1fr); gap:50px; }
.news-item summary { min-height:130px; grid-template-columns:126px minmax(0,1fr) 22px; gap:10px 22px; padding-block:22px; }
.news-item time { font-size:19px; }
.news-category { font-size:12px; }
.news-title { font-size:18px; line-height:1.9; letter-spacing:.03em; }
.news-item>p, .news-empty { font-size:17px; line-height:2.1; }
/* Introduction: replace the entire side column/door with one full-width line. */
.intro-lead { margin:45px 0 46px; }
.intro-lead .intro-catch { font-size:27px; line-height:1.9; letter-spacing:.04em; }
.intro-lead .intro-catch-main { font-size:37px; line-height:1.75; letter-spacing:.04em; }
.intro-lead__line { height:34px; margin-top:30px; }
.intro-grid { display:block; }
.intro-quote-heading { margin:0 0 38px; width:100%; text-align:center; }
.intro-quote {
  display:inline-block; width:auto; max-width:none;
  font-family:var(--serif); font-weight:500;
  font-size:clamp(.8125rem,4.18vw,2.25rem);
  line-height:1.9; letter-spacing:0;
  white-space:nowrap; writing-mode:horizontal-tb; color:var(--ink);
}
.intro-copy { width:min(100%,880px); margin-inline:auto; }
.intro-copy p, .intro-copy p:first-child { font-size:var(--font-body); font-weight:400; line-height:2.25; letter-spacing:.035em; margin-bottom:28px; }
.intro-copy p:last-child { margin-bottom:0; }
.intro-signature { flex-wrap:wrap; row-gap:15px; }
.intro-signature>span { font-size:30px; }
.intro-signature small { font-size:16px; }
/* Long passages retain generous line spacing and a sensible reading measure. */
.story.has-story>.section-wrap { grid-template-columns:minmax(215px,.5fr) minmax(0,1.5fr); gap:58px; }
.story-content.is-published p { font-size:var(--font-body); line-height:2.25; letter-spacing:.03em; margin-bottom:30px; }
.story-content.is-published p:first-child {
    font-size: 21px;
    line-height: 2.2;
    font-weight: bold;
}
/* Cast/staff — role labels remain smaller than the names, but are now legible. */
.cast-label { font-size:18px; }
.cast-lead-role { font-size:20px; }
.cast-lead { font-size:68px; }
.cast-group { font-size:13px; }
.cast-member__role, .cast-ensemble .cast-member__role { font-size:15px; letter-spacing:.04em; }
.cast-secondary { font-size:39px; }
.cast-ensemble { grid-template-columns:repeat(4,minmax(0,1fr)); font-size:28px; gap:36px 25px; max-width:1000px; }
.cast-additional { font-size:23px; }
.cast-writer { font-size:28px; }
.staff-grid { gap:25px 32px; max-width:1000px; }
.staff-grid>div { align-items:baseline; }
.staff-grid dt { font-size:14px; }
.staff-grid dd { font-size:21px; }
/* Performance information and booking */
.section-intro { font-size:17px; line-height:2; }
.city-nav>a { font-size:27px; min-height:86px; gap:10px; }
.city-nav>a>span { font-size:15px; }
.city-nav small { font-size:12px; }
.tour-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.tour-card__head h3, .fukuoka-card__top h3 { font-size:32px; }
.tour-card__head .eyebrow, .fukuoka-card__top .eyebrow { font-size:12px; }
.ticket-serial { font-size:11px; }
.tour-date { font-size:23px; }
.date-note { font-size:15px; }
.venue { font-size:40px; }
.tour-card__info h4 { font-size:18px; margin-top:23px; margin-bottom:10px; }
.pending-text { font-size:16px; line-height:2; }
.tour-card .button { font-size:16px; min-height:64px; }
.external-note { font-size:14px; line-height:1.85; }
.fukuoka-badge { font-size:14px; line-height:1.7; }
.fukuoka-year { font-size:30px; }
.fukuoka-date-display strong { font-size:72px; }
.fukuoka-date-display small { font-size:14px; width:28px; height:28px; }
.fukuoka-venue { font-size:43px; }
.fukuoka-shortcuts>a { font-size:16px; min-height:76px; gap:10px; }
.subheading { flex-wrap:wrap; gap:9px 20px; }
.subheading h4 { font-size:20px; }
.subheading>.eyebrow { font-size:12px; }
.show-subsection { padding-top:38px; }
.pending-panel p { font-size:16px; line-height:2; }
.session-table { font-size:17px; }
.session-table caption { font-size:15px; line-height:1.9; }
.session-table th, .session-table td { padding:14px 16px; }
.session-table thead th { font-size:16px; }
.session-time { font-size:18px; padding:4px 10px; }
.session-note, .schedule-note { font-size:14px; line-height:2; }
.schedule-matrix .session-table { min-width:940px; }
.schedule-matrix .session-table th, .schedule-matrix .session-table td { padding:16px 3px; }
.schedule-matrix .session-table thead th { font-size:21px; }
.schedule-matrix .session-table thead th:first-child { width:75px; font-size:15px; }
.schedule-matrix .session-table tbody th { font-size:18px; }
.schedule-matrix .session-table th small { font-size:14px; }
.schedule-matrix .session-table .matrix-rest { font-size:14px; }
.performance-mark { font-size:19px; }
[data-prices="fukuoka"] .price>span { font-size:20px; }
[data-prices="fukuoka"] .price>strong { font-size:36px; white-space:nowrap; overflow-wrap:normal; }
[data-prices="fukuoka"] .price>small { font-size:14px; }
.sale-calendar { padding:28px 30px; }
.sale-calendar>.eyebrow { font-size:12px; }
.sale-calendar .sale-notice { font-size:19px; line-height:1.9; font-weight:bold; }
.box-office-sale { font-size:17px; }
.sale-notes p { font-size:15px; line-height:2; }
.booking-number { font-size:12px; }
.booking-card h5 { font-size:20px; line-height:1.9; }
.booking-card p { font-size:16px; }
.booking-hours, .booking-pending { font-size:15px!important; }
.booking-phone { font-size:33px; }
.booking-card .button { font-size:16px; }
.playguides-label { font-size:18px; }
.playguide-list .is-pending>span { font-size:17px; }
.playguide-list .is-pending>small { font-size:14px; }
.access-box>.access-venue { font-size:23px; }
.access-details p { font-size:16px; }
.access-details .booking-phone { font-size:22px; }
.access-details .theatre-representative { font-size:15px; }
#fukuoka-notices p { font-size:15px; line-height:2.1; }
.seatmap-thumb>span { font-size:14px; }
/* Footer, flyer placeholders and utility dialogs */
.flyer-aside>.eyebrow { font-size:12px; }
.flyer-aside>p { font-size:31px; }
.flyer-aside>small, .flyer-placeholder__frame>p, .flyer-image-button>span { font-size:15px; line-height:2; }
.footer-brand>span { font-size:10px; }
.back-top { font-size:12px; }
.footer-nav { font-size:16px; }
.footer-cooperation { font-size:15px; }
.footer-cooperation>span:first-child { font-size:14px; }
.footer-bottom p { font-size:14px; }
.footer-bottom small { font-size:12px; }
.preview-strip, .preview-strip button { font-size:14px; }
.preview-strip b { font-size:11px; }
.dialog-top>h2 { font-size:21px; line-height:1.6; }
.menu-dialog nav>a { min-width:0; }
.menu-dialog nav>a>strong { font-size:30px; }
.menu-dialog nav>a>small { font-size:15px; }
.menu-dialog nav>a>span { font-size:14px; }
.ticket-dialog { width:600px; }
.ticket-dialog__body>p { font-size:16px; }
.ticket-choice { grid-template-columns:90px minmax(0,1fr) 22px; }
.ticket-choice__city { font-size:29px; }
.ticket-choice strong { font-size:25px; }
.ticket-choice small { font-size:17px; }
.ticket-choice__city>small { font-size:11px; }
.preview-dialog>p { font-size:16px; }
.preview-dialog>label { font-size:17px; }
.preview-dialog input { font-size:14px; }
.preview-dialog input::file-selector-button { font-size:14px; }
.preview-dialog>.preview-help { font-size:14px; }
.noscript-note { font-size:15px; }
/* Layout breaks intentionally happen earlier, instead of shrinking important text. */
@media(max-width:1279px) {
  .desktop-nav { display:none; }
  .header-actions { margin-left:auto; }
  .menu-toggle { display:block; }
  .hero-inner { grid-template-columns:minmax(0,1fr) minmax(0,1.08fr); gap:28px; }
  .hero-quote { font-size:30px; }
  .hero-tour__city small { display:none; }
  .hero-tour__detail { flex-wrap:wrap; gap:1px 12px; }
  .hero-tour__detail>span { font-size:20px; }
  .hero-tour__detail strong { font-size:15px; }
  .hero-billing strong { font-size:27px; }
  .hero-actions .button { width:100%; }
  .hero-date-note { font-size:14px; }
  [data-sessions="fukuoka"] .schedule-desktop { display:none; }
  [data-sessions="fukuoka"] .schedule-mobile { display:block; }
  .fukuoka-date-display strong { font-size:61px; }
  .fukuoka-main { flex-wrap:wrap; }
  .cast-ensemble { font-size:26px; }
}
@media(max-width:1023px) {
  .section-wrap, .footer-inner { width:calc(100% - 64px); }
  .section-heading h2 { font-size:54px; }
  .story.has-story>.section-wrap { grid-template-columns:1fr; gap:36px; }
  .story.has-story .section-heading { position:static; }
  .movie-layout { grid-template-columns:1fr 1.65fr; gap:32px; }
  .movie .section-heading h2 { font-size:58px; }
  .movie-caption { font-size:19px; }
  .movie-note { font-size:14px; }
  .hero-quote { font-size:27px; }
  .hero-billing { justify-content:flex-start; }
  .hero-billing strong { font-size:26px; }
  .hero-billing p>span { font-size:14px; }
  .hero-tagline { font-size:16px; }
  .hero-kicker { font-size:11px; }
  .hero-tour__city { font-size:20px; }
  .hero-actions .button { font-size:16px; padding-inline:16px; }
  .tour-grid { grid-template-columns:1fr; }
  .tour-card { padding:30px 34px; }
  .cast-ensemble { grid-template-columns:repeat(2,minmax(0,1fr)); max-width:740px; gap:32px; }
  .staff-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .booking-grid { grid-template-columns:1fr; }
  .fukuoka-secondary { grid-template-columns:1fr; gap:30px; }
  .access-box { border-top:1px solid var(--line); padding-top:28px; }
}
@media(max-width:767px) {
  :root { --font-body:1.0625rem; --font-note:.875rem; --header-h:72px; --dock-h:calc(76px + env(safe-area-inset-bottom,0px)); }
  .section-wrap, .footer-inner { width:calc(100% - 40px); }
  .section-pad { padding-block:68px; }
  .section-heading { margin-bottom:30px; }
  .section-heading h2, .news .section-heading h2 { font-size:44px; }
  .section-heading h2 small { font-size:16px; margin-top:12px; letter-spacing:.04em; }
  .section-kicker { font-size:11px; gap:10px; }
  .section-kicker>span { width:25px; height:25px; font-size:12px; }
  .site-header { padding-inline:16px; gap:12px; }
  .brand>span { font-size:8px; }
  .header-actions { gap:12px; }
  .header-ticket { display:none; }
  .motion-toggle { font-size:11px; }
  .button { min-height:62px; font-size:16px; padding:16px 20px; }
  .hero-inner { display:flex; width:100%; gap:0; }
  .hero-copy { padding:27px 20px 0; max-width:none; }
  .hero-tagline { font-size:17px; margin-bottom:8px; }
  .hero-billing { justify-content:center; gap:11px; padding-block:16px 22px; }
  .hero-billing strong { font-size:25px; }
  .hero-billing p>span { font-size:14px; }
  .billing-cross { padding:0; }
  .hero-tour { grid-template-columns:1fr; border:1px solid #b88c6055; }
  .hero-tour>a { display:grid; grid-template-columns:76px minmax(0,1fr) 20px; padding:14px 17px; gap:12px; min-height:68px; border:0; border-top:1px solid #b88c6040; }
  .hero-tour>a:first-child { border-top:0; }
  .hero-tour>a+a:before { display:none; }
  .hero-tour__city { flex-direction:column; align-items:flex-start; gap:0; font-size:21px; line-height:1.5; }
  .hero-tour__city small { display:block; font-size:9px; }
  .hero-tour__detail { flex-direction:row; flex-wrap:wrap; align-items:center; gap:3px 16px; }
  .hero-tour__detail>span { font-size:21px; min-width:0; }
  .hero-tour__detail strong { font-size:16px; }
  .hero-tour .icon { display:block; width:18px; height:18px; margin-left:0; }
  .hero-actions .button { font-size:16px; min-height:64px; justify-content:center; gap:12px; }
  .hero-date-note { font-size:14px; line-height:1.9; margin-top:14px; }
  .hero-movie-link { font-size:15px; }
  .visual-zoom { font-size:12px; padding:9px 12px; min-height:44px; }
  .hero-bottom { padding-inline:20px; }
  .movie-layout { display:block; }
  .movie .section-heading h2 { font-size:48px; }
  .movie-heading { display:block; margin-bottom:26px; }
  .movie-caption { font-size:18px; line-height:1.9; }
  .movie-line { display:none; }
  .movie-note { font-size:14px; margin-top:10px; }
  .movie-card { aspect-ratio:1.5; }
  .movie-card__copy { padding:18px 16px 32px; }
  .movie-card__copy .eyebrow { font-size:10px; }
  .movie-card__copy>img { margin-block:10px 14px; }
  .movie-status { font-size:16px; }
  .movie-card__copy>small { font-size:13px; margin-top:10px; letter-spacing:0; }
  .movie-card__corner { font-size:10px; right:15px; bottom:13px; }
  .news-layout { display:block; }
  .news-list { margin-top:28px; }
  .news-item summary { grid-template-columns:116px minmax(0,1fr) 20px; gap:9px 10px; min-height:120px; }
  .news-item time { font-size:18px; }
  .news-category { font-size:10px; letter-spacing:.03em; }
  .news-title, .news-item>p, .news-empty { font-size:16px; }
  .intro-lead { margin:32px 0 29px; }
  .intro-ornament { margin-bottom:19px; }
  .intro-lead .intro-catch { font-size:19px; letter-spacing:.01em; line-height:1.95; }
  .intro-lead .intro-catch-main { font-size:27px; line-height:1.9; letter-spacing:.015em; margin-top:15px; }
  .intro-lead__line { margin-top:22px; height:27px; }
  .intro-grid { display:block; }
  .intro-quote-heading { margin:0 -2px 27px; width:calc(100% + 4px); }
  .intro-quote { font-size:clamp(.8125rem,4.18vw,2.25rem); max-width:none; letter-spacing:0; }
  .intro-copy p, .intro-copy p:first-child { font-size:17px; line-height:2.15; letter-spacing:.025em; margin-bottom:25px; }
  .intro-signature { gap:12px 22px; margin-top:34px; padding-top:26px; }
  .intro-signature>span { font-size:27px; letter-spacing:.08em; }
  .intro-signature small { flex-basis:100%; font-size:14px; margin-left:0; text-align:center; }
  .story.has-story { padding-block:65px; }
  .story.has-story>.section-wrap { gap:28px; }
  .story-content.is-published p { font-size:17px; line-height:2.15; letter-spacing:.02em; }
  .story-content.is-published p:first-child { font-size:18px; line-height:2.15; }
  .cast-label { font-size:17px; }
  .cast-lead-role { font-size:18px; }
  .cast-lead { font-size:54px; }
  .cast-group { font-size:12px; }
  .cast-secondary { gap:24px; font-size:32px; }
  .cast-member__role, .cast-ensemble .cast-member__role { font-size:14px; }
  .cast-ensemble { grid-template-columns:repeat(2,minmax(0,1fr)); gap:30px 16px; font-size:26px; letter-spacing:.025em; }
  .cast-additional { font-size:20px; gap:18px; }
  .cast-writer { font-size:26px; }
  .staff-grid {
    gap: 24px 18px;
    max-width: 80%;
}
  .staff-grid dt { font-size:14px; }
  .staff-grid dd { font-size:19px; }
  .section-intro { font-size:16px; }
  .city-nav>a { font-size:23px; padding:15px 8px; min-height:86px; }
  .city-nav>a>span { font-size:13px; }
  .city-nav small { font-size:10px; }
  .tour-card { padding:26px 22px; }
  .tour-card__head h3, .fukuoka-card__top h3 { font-size:28px; }
  .tour-card__head .eyebrow, .fukuoka-card__top .eyebrow { font-size:11px; }
  .tour-date { font-size:20px; letter-spacing:0; }
  .date-note { font-size:14px; }
  .venue { font-size:36px; }
  .tour-card__info h4 { font-size:17px; }
  .tour-card .button { font-size:16px; padding:16px 18px; }
  .pending-text { font-size:15px; }
  .external-note { font-size:14px; }
  .fukuoka-card__top { flex-wrap:wrap; padding:27px 20px 0; gap:12px; }
  .fukuoka-badge { font-size:12px; padding:5px 8px; }
  .fukuoka-main { display:block; padding:23px 20px 30px; }
  .fukuoka-year { font-size:24px; }
  .fukuoka-date-display { gap:6px; }
  .fukuoka-date-display strong { font-size:56px; }
  .fukuoka-date-display small { font-size:12px; width:22px; height:22px; }
  .fukuoka-date-display i { font-size:22px; margin-inline:0; }
  .fukuoka-venue { font-size:36px; }
  .fukuoka-shortcuts { margin-inline:20px; }
  .fukuoka-shortcuts>a { font-size:14px; line-height:1.7; min-height:88px; gap:6px; letter-spacing:0; text-align:center; padding-inline:4px; }
  .fukuoka-body { padding:0 20px 32px; }
  .subheading h4 { font-size:18px; letter-spacing:.04em; }
  .subheading>.eyebrow { font-size:10px; }
  .show-subsection { padding-top:32px; }
  .session-table th, .session-table td { font-size:16px; padding:13px 9px; }
  .session-table thead th { font-size:15px; }
  .session-table caption { font-size:14px; }
  .session-time { font-size:17px; padding:3px 7px; }
  .session-times { gap:5px; }
  .session-note, .schedule-note { font-size:14px; }
  [data-prices="fukuoka"] .prices { grid-template-columns:1fr; gap:10px; }
  [data-prices="fukuoka"] .price { display:flex; align-items:baseline; gap:12px; padding:15px 17px; }
  [data-prices="fukuoka"] .price>span { font-size:18px; }
  [data-prices="fukuoka"] .price>strong { margin:0 0 0 auto; font-size:32px; }
  [data-prices="fukuoka"] .price>small { font-size:14px; }
  .sale-calendar { padding:22px 17px; }
  .sale-calendar>.eyebrow { font-size:11px; }
  .sale-calendar .sale-notice { font-size:21px; line-height:1.9; }
  .box-office-sale { font-size:16px; }
  .sale-notes p { font-size:14px; }
  .booking-card { padding:21px 18px; }
  .booking-card h5 { font-size:19px; line-height:1.85; }
  .booking-card p { font-size:15px; }
  .booking-hours, .booking-pending { font-size:14px!important; }
  .booking-phone { font-size:31px; }
  .booking-card .text-link { font-size:15px; }
  .booking-card .button { font-size:16px; }
  .playguides-label { font-size:17px; }
  .playguide-list .is-pending>span { font-size:16px; }
  .playguide-list .is-pending>small { font-size:14px; }
  .access-details p { font-size:15px; line-height:2; }
  .access-details .booking-phone { font-size:21px; }
  .access-details .theatre-representative { font-size:14px; }
  #fukuoka-notices p { font-size:14px; line-height:2; }
  .seatmap-box .text-link, .access-box .text-link { font-size:15px; }
  .pending-panel { padding:22px 12px; }
  .pending-panel p { font-size:15px; }
  .flyer-aside { flex-wrap:wrap; }
  .flyer-aside>.eyebrow { font-size:11px; }
  .flyer-aside>small, .flyer-placeholder__frame>p { font-size:14px; }
  .footer-brand>span { font-size:9px; letter-spacing:.06em; }
  .back-top { font-size:11px; }
  .footer-nav { font-size:15px; gap:10px 22px; }
  .footer-cooperation { font-size:14px; gap:14px 20px; }
  .footer-cooperation>span:first-child { font-size:13px; }
  .footer-bottom p { font-size:13px; }
  .footer-bottom small { font-size:11px; }
  .preview-strip button { font-size:14px; }
  .preview-strip b { font-size:10px; }
  .mobile-dock { grid-template-columns:83px minmax(0,1fr); }
  .mobile-dock>a { min-height:76px; font-size:12px; }
  .mobile-dock>a.mobile-dock__main { font-size:16px; gap:9px; letter-spacing:0; }
  .mobile-dock__main>.icon:last-child { display:none; }
  .dialog-top>h2 { font-size:19px; }
  .menu-dialog nav { padding-inline:20px; }
  .menu-dialog nav>a { grid-template-columns:20px minmax(0,1fr) 18px; gap:0 12px; }
  .menu-dialog nav>a>strong { font-size:26px; }
  .menu-dialog nav>a>small { font-size:14px; }
  .ticket-dialog { width:100%; }
  .ticket-dialog__body { padding:20px 20px 27px; }
  .ticket-dialog__body>p { font-size:15px; }
  .ticket-choice { grid-template-columns:64px minmax(0,1fr) 18px; padding:17px 15px; gap:13px; min-height:106px; }
  .ticket-choice__city { font-size:27px; }
  .ticket-choice strong { font-size:24px; }
  .ticket-choice small { font-size:16px; }
  .ticket-choice__city>small { font-size:10px; }
  .preview-dialog>p { font-size:15px; }
  .preview-dialog>label { font-size:16px; }
  .preview-dialog input { font-size:14px; }
  .preview-dialog>.preview-help { font-size:14px; }
  .preview-dialog>.button { font-size:16px; }
}
@media(max-width:374px) {
  .section-wrap, .footer-inner { width:calc(100% - 32px); }
  .site-header { padding-inline:12px; }
  .header-actions { gap:7px; }
  .hero-copy { padding-inline:16px; }
  .hero-billing { gap:8px; }
  .hero-billing strong { font-size:23px; }
  .hero-billing p>span { font-size:13px; }
  .hero-tour>a { padding-inline:14px; grid-template-columns: 66px minmax(0,1fr) 18px; }
  .section-heading h2 { font-size:40px; }
  .intro-lead .intro-catch { font-size:18px; }
  .intro-lead .intro-catch-main { font-size:25px; }
  .cast-secondary { gap:19px; font-size:29px; }
  .cast-ensemble { font-size:24px; gap:28px 14px; }
  .cast-member__role, .cast-ensemble .cast-member__role { font-size:13px; }
  .cast-lead { font-size:49px; }
  .staff-grid dd { font-size:18px; }
  .staff-grid dt { font-size:13px; }
  .tour-date { font-size:19px; }
  .tour-card { padding-inline:19px; }
  .tour-card .button { font-size:15px; padding-inline:15px; }
  .fukuoka-card__top, .fukuoka-main { padding-inline:16px; }
  .fukuoka-card__top h3 { font-size:27px; }
  .fukuoka-shortcuts { margin-inline:16px; }
  .fukuoka-body { padding-inline:16px; }
  .fukuoka-badge { font-size:11px; }
  .fukuoka-date-display strong { font-size:48px; }
  .fukuoka-date-display { gap:5px; }
  .fukuoka-date-display small { font-size:11px; width:20px; height:20px; }
  .fukuoka-date-display i { font-size:20px; }
  .fukuoka-shortcuts>a { font-size:13px; }
  .session-table th, .session-table td { padding:12px 7px; font-size:15px; }
  .session-time { font-size:16px; padding:3px 5px; }
  .session-times { gap:4px; }
  [data-prices="fukuoka"] .price { padding-inline:13px; gap:8px; }
  [data-prices="fukuoka"] .price>strong { font-size:29px; }
  .booking-card { padding-inline:15px; }
  .booking-phone { font-size:28px; letter-spacing:0; }
  .booking-card h5 { font-size:18px; }
  .mobile-dock { grid-template-columns:75px minmax(0,1fr); }
  .mobile-dock>a.mobile-dock__main { font-size:15px; gap:8px; }
  .ticket-choice { grid-template-columns:56px minmax(0,1fr) 18px; gap:10px; padding-inline:13px; }
  .ticket-choice strong { font-size:22px; }
  .ticket-choice small { font-size:15px; }
  .ticket-choice__city>small { font-size:9px; }
}
@media print {
  .intro-quote { white-space:normal; font-size:20pt; }
  .intro-quote-heading { display:block; }
  .intro-copy p, .story-content.is-published p { font-size:12pt; }
}
/* Keep meaningful phrases together rather than leaving a single-character last line. */
.intro-catch { text-wrap:wrap; }
.intro-catch-part { display:inline-block; }
.intro-tagline-part { display:inline-block; }
@media(min-width:768px) {
  .hero-art { align-self:start; padding-top:20px; }
  .hero-copy { padding-top:28px; }
  .hero-kicker { margin-bottom:20px; }
  .hero-quote { line-height:1.7; }
  .hero-billing { line-height:1.6; }
  .hero-tagline { line-height:1.6; }
  .hero-tour>a { line-height:1.6; }
  .hero-picture img { max-height:clamp(680px,calc(100svh - 116px),1000px); }
}
