/* Responsive fixes verified against the imported templates. */
.show-focus[hidden], .repertoire-empty[hidden] { display: none !important; }
.repertoire-empty { grid-column: 1 / -1; padding: 28px; border: 1px solid var(--line-light); }
@media (max-width: 820px) {
  .materials-section, .organizer-venue, .journey-panel-header { grid-template-columns: minmax(0, 1fr); }
  .materials-section > *, .organizer-venue > *, .journey-panel-header > * { min-width: 0; }
  .materials-heading h2, .organizer-venue h2, .journey-panel h2 { overflow-wrap: anywhere; }
  .journey-context-main > .button { max-width: 100%; white-space: normal; text-align: center; }
}

.tk-generic-spectacle .story-copy{grid-column:2 / -1;max-width:900px}
.tk-generic-spectacle .spectacle-hero h1{font-size:clamp(2.5rem,5vw,5rem);line-height:1.02;letter-spacing:-.045em;overflow-wrap:anywhere}
@media(max-width:720px){.tk-generic-spectacle .story-copy{grid-column:auto}}

/* Shared action controls: complete frames for buttons, straight rules for links. */
.button, .nav-cta, .text-button, .path-action, .panel-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  width: fit-content;
  max-width: 100%;
  min-width: 0;
  min-height: 50px;
  padding: 13px 22px;
  border: 1px solid currentColor;
  border-radius: 8px;
  font-size: 1rem;
  line-height: 1.3;
  text-align: center;
  text-decoration: none;
  white-space: normal;
  cursor: pointer;
  transition: background-color .16s ease, color .16s ease, border-color .16s ease;
}
.button-gold, .text-button { color: var(--ink); background: var(--gold); border-color: var(--gold); }
.button-gold:hover, .text-button:hover { color: var(--ink); background: #ffda69; border-color: #ffda69; }
.button-ink { color: white; background: var(--ink); border-color: var(--ink); }
.button-ink:hover { color: white; background: var(--violet-dark); border-color: var(--violet-dark); }
.button-outline, .nav-cta, .path-action, .panel-link { background: transparent; }
.button-outline { color: white; border-color: rgba(255,255,255,.65); }
.button-outline:hover, .nav-cta:hover { color: var(--ink); background: var(--gold); border-color: var(--gold); }
.panel-link { margin-top: 30px; }
.text-link { gap: 10px; border-radius: 0; padding-bottom: 5px; line-height: 1.35; }
.text-link span, .text-button span, .panel-link span, .path-action span { flex: 0 0 auto; margin: 0; }
.phone-action { max-width: 100%; border-radius: 8px; overflow: hidden; }
.phone-action .button { border-radius: 0; }
.button:focus-visible, .nav-cta:focus-visible, .text-button:focus-visible, .text-link:focus-visible, .panel-link:focus-visible, .path-action:focus-visible {
  outline: 3px solid var(--orange);
  outline-offset: 4px;
}
.site-footer { flex-wrap: wrap; }
@media (max-width: 720px) {
  .button, .nav-cta, .text-button, .path-action, .panel-link { padding: 12px 18px; font-size: .95rem; }
  .hero-actions { align-items: flex-start; }
  .phone-action .button { padding-inline: 14px; font-size: .9rem; }
}
@media (prefers-reduced-motion: reduce) {
  .button, .nav-cta, .text-button, .path-action, .panel-link { transition: none; }
}
.button[hidden], .text-button[hidden], .path-action[hidden], .panel-link[hidden] { display: none !important; }
.ensemble-lead > .button:hover { color: var(--ink); background: var(--gold); border-color: var(--gold); }
@media (max-width: 820px) {
  .about-hero { grid-template-columns: minmax(0, 1fr); }
  .about-hero-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .about-hero-facts > div { min-width: 0; padding-inline: 18px; }
  .about-hero-facts dd { overflow-wrap: anywhere; }
}
.button[href^="tel:"] { white-space: normal; }

/* Audit 2026-11-07: readable secondary text and one clear phone action. */
.repertoire > .section-intro .kicker,
.production-preview > .section-intro .kicker,
.craft .section-intro .kicker,
.organizer-included .kicker,
.organizer-process .kicker,
.organizer-funding .kicker,
.organizer-faq .kicker,
.about-work .kicker,
.journey-compact-heading .kicker { color: #835300; }
.organizer-cta .kicker, .about-next .kicker { color: var(--gold); }
.ensemble-facts dd { color: rgba(255,255,255,.86); }
.technical-team-compact > header small,
.partner-proof > header small,
.partner-mark small { color: rgba(255,255,255,.72); font-size: .75rem; }
.performance-data-note { color: rgba(255,255,255,.8); }
.journey-show-card small { color: rgba(13,10,16,.7); font-size: .75rem; }
.journey-show-card:has(input:checked) small { color: rgba(255,255,255,.88); }
.journey-field > span small { color: rgba(13,10,16,.7); font-size: .72rem; }
.journey-submit-note { color: rgba(13,10,16,.72); }

.journey-context-footer { color: rgba(255,255,255,.76); font-size: .75rem; }

@media (max-width: 760px) {
  .production-preview-card { grid-template-columns: minmax(0,1fr); }
  .production-preview-card > * { min-width: 0; }
  .production-preview-copy h3 { overflow-wrap: anywhere; }
}

/* Generic cards have a separate header so navigation cannot cover poster lettering. */
.tk-generic-spectacle .site-header { position: relative; background: var(--ink); }

/* Generic-card contact heading must fit narrow screens. */
.tk-generic-spectacle .schedule-section > div { min-width: 0; }
@media (max-width: 760px) {
  .tk-generic-spectacle .schedule-section { grid-template-columns: minmax(0,1fr); }
  .tk-generic-spectacle .schedule-section h2 { font-size: clamp(2.1rem,9vw,3rem); overflow-wrap: anywhere; }
}

/* Compact navigation from the active poster, selected title and upcoming teaser. */
.hero-show-link { position: relative; z-index: 8; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 24px; width: min(540px,100%); margin-top: 24px; color: white; }
.hero-show-link > span { margin: 0; }
.hero-show-link > span:first-child { font-family: Fraunces,Georgia,serif; font-size: 1.35rem; }
.hero-show-link > span:last-child { font-size: .9rem; white-space: nowrap; }
.hero-show-link[hidden] { display: none; }
.journey-selected-show { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 20px; border: 1px solid var(--line-light); border-radius: 8px; }
.journey-selected-show > div { min-width: 0; }
.journey-selected-show strong, .journey-selected-show small { display: block; }
.journey-selected-show strong { font-family: Fraunces,Georgia,serif; font-size: 1.5rem; line-height: 1.15; }
.journey-selected-show small { margin-top: 8px; color: #514a56; font-size: .85rem; }
.journey-change-show { flex-shrink: 0; min-height: 44px; padding: 10px 16px; color: var(--ink); background: transparent; border: 1px solid currentColor; border-radius: 8px; font: inherit; cursor: pointer; }
.journey-change-show:hover { background: var(--ink); color: white; }
.journey-show-picker { margin-top: 16px; }
.journey-show-picker label { display: block; margin-bottom: 8px; font-weight: 700; }
.journey-show-picker select { width: 100%; min-width: 0; min-height: 48px; padding: 12px; border: 1px solid #756d7b; border-radius: 6px; background: white; color: var(--ink); font: inherit; }
.journey-change-show:focus-visible, .journey-show-picker select:focus-visible { outline: 3px solid var(--orange); outline-offset: 4px; }
.production-preview-card { grid-template-columns: minmax(280px,400px) minmax(0,1fr); max-width: 1060px; }
.production-preview-card figure { min-height: 0; aspect-ratio: 865 / 1209; }
.production-preview-card img { object-fit: contain; }
.production-preview-copy { padding: clamp(24px,4vw,56px); }
.production-preview-copy h2 { margin: 24px 0 0; font-family: Fraunces,Georgia,serif; font-size: clamp(1.8rem,3.3vw,3.6rem); font-weight: 560; line-height: 1.02; letter-spacing: -.035em; overflow-wrap: anywhere; }
.production-preview-copy h2 span { color: var(--gold); }
.production-preview-copy .kicker { margin: 20px 0 0; }
@media(max-width:820px) {
 .production-preview-card { grid-template-columns: minmax(0,1fr); }
 .production-preview-card figure { width: min(100%,400px); justify-self: center; }
}
@media(max-width:600px) {
 .production-preview-card { grid-template-columns: minmax(0,1fr); }
 .production-preview-card figure { width: min(100%,400px); justify-self: center; }
 .production-preview-copy { padding: 24px; }
 .journey-selected-show { padding: 16px; gap: 12px; }
 .journey-selected-show strong { font-size: 1.25rem; }
}

/* Reader feedback: headings and card copy start at the same line. */
.organizer-included > header { grid-template-columns: minmax(0,1.4fr) minmax(0,.7fr); }
.organizer-included > header > .kicker { grid-column: 1 / -1; margin: 0; }
.organizer-included > header h2 { font-size: clamp(2.5rem,4.8vw,5.5rem); line-height: 1.02; }
.organizer-included article { display: flex; flex-direction: column; justify-content: flex-start; gap: 0; min-height: 300px; }
.organizer-included h3 { margin: 28px 0 18px; min-height: 2.3em; overflow-wrap: anywhere; line-height: 1.08; font-size: clamp(1.7rem,2.6vw,3rem); }
.organizer-included article p { align-self: start; color: #514a56; }
/* Names come first; no tall empty portrait placeholder or administrative table. */
.profile-person { display: block; max-width: 1120px; min-height: 0; padding: clamp(28px,6vw,80px); border: 0; border-radius: 16px; }
.profile-identity { display: flex; align-items: flex-start; gap: clamp(20px,4vw,56px); }
.profile-identity > div:last-child { min-width: 0; }
.profile-monogram { flex: 0 0 auto; width: 108px; height: 108px; display: grid; place-items: center; border-radius: 50%; background: var(--violet); color: var(--gold); font-family: Fraunces,Georgia,serif; font-size: 2.8rem; line-height: 1; }
.profile-identity h1 { font-family: Fraunces,Georgia,serif; font-size: clamp(2.5rem,6vw,6rem); font-weight: 560; line-height: 1.02; letter-spacing: -.045em; margin: 0; overflow-wrap: anywhere; }
.profile-identity .kicker { margin: 0 0 16px; color: var(--gold); }
.profile-role { margin: 20px 0 0; font-size: 1.1rem; color: rgba(255,255,255,.85); }
.profile-biography { max-width: 760px; margin: 40px 0 0; font-size: clamp(1.1rem,2vw,1.4rem); color: rgba(255,255,255,.88); }
.profile-photo { max-width: 580px; margin: 32px 0 0; }
.profile-photo img { display: block; width: 100%; height: auto; border-radius: 12px; }
.profile-person .actor-page-nav { margin-top: 56px; }
.profile-person .actor-page-nav span { color: var(--gold); }
.profile-person .actor-page-nav a:hover span { color: var(--ink); }
.profile-shows { margin-top: 40px; }
.profile-shows h2 { font: 560 2rem/1.1 Fraunces,Georgia,serif; }
.profile-shows ul { padding: 0; list-style: none; }
.profile-shows a { display: flex; justify-content: space-between; gap: 24px; padding: 16px 0; color: white; text-decoration: none; border-bottom: 1px solid var(--line-dark); }
.actor-page-footer, .actor-page-back { color: rgba(255,255,255,.8); }
.actor-page-nav a:focus-visible, .profile-shows a:focus-visible, .actor-page-back:focus-visible { outline: 3px solid var(--gold); outline-offset: 4px; }
@media(max-width:820px) {
 .organizer-included > header { grid-template-columns: minmax(0,1fr); }
 .profile-person { padding: 32px 22px; }
 .profile-identity { flex-direction: column; gap: 24px; }
 .profile-monogram { width: 76px; height: 76px; font-size: 2rem; }
}
@media(max-width:600px) {
 .organizer-included article { min-height: 0; }
 .profile-person { border-radius: 0; }
}

/* PageSpeed 2026-11-08: small labels need 4.5:1 contrast. */
.show-number, .craft-lines article > span { color: #835300; }
.show-row:hover .show-number, .show-row.is-active .show-number { color: var(--gold); }
.performance-stat-total > span { color: rgba(255,255,255,.86); }
