.schedule-shell { padding: clamp(48px, 6vw, 88px) var(--pad) clamp(80px, 9vw, 125px); background: var(--gray-1); }
.schedule-summary { margin: 0 0 30px; color: #666; font-size: 14px; }
.schedule-month { margin-top: 48px; }
.schedule-month:first-of-type { margin-top: 0; }
.schedule-month > h2 { margin: 0 0 15px; font-size: clamp(28px, 3.2vw, 46px); line-height: 1; letter-spacing: -.04em; text-transform: uppercase; }
.schedule-list { border-top: 2px solid var(--black); }
.schedule-row { min-height: 102px; display: grid; grid-template-columns: 110px minmax(210px, 1.15fr) minmax(220px, 1fr) 145px 190px; align-items: center; border-bottom: 1px solid #ccc; background: white; }
.schedule-date { height: 100%; padding: 15px; display: grid; place-content: center; border-right: 1px solid var(--gray-2); text-align: center; }
.schedule-date strong { font-size: 28px; line-height: 1; }
.schedule-date span, .schedule-artist span, .schedule-place span, .schedule-price span { color: #777; font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.schedule-artist, .schedule-place, .schedule-price { padding: 18px 22px; }
.schedule-artist a { display: block; margin-top: 6px; font-size: clamp(18px, 1.7vw, 25px); font-weight: 800; line-height: 1; text-transform: uppercase; }
.schedule-artist a:hover { text-decoration: underline; text-underline-offset: 4px; }
.schedule-place strong, .schedule-price strong { display: block; margin-top: 5px; font-size: 15px; }
.schedule-place small { display: block; margin-top: 4px; color: #666; font-size: 12px; }
.schedule-ticket { align-self: stretch; padding: 0 20px; display: flex; align-items: center; justify-content: space-between; gap: 12px; background: var(--black); color: white; font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.schedule-ticket:hover { background: #333; }
.schedule-ticket.is-disabled { background: #777; }

.content-hero-compact { padding-top: clamp(48px, 6vw, 78px); padding-bottom: clamp(36px, 4vw, 54px); }
.content-hero-compact h1 { font-size: clamp(46px, 5.5vw, 76px); }
.contact-layout { padding: clamp(40px, 5vw, 70px) var(--pad); display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, .65fr); gap: clamp(38px, 6vw, 84px); }
.contact-main h2, .contact-aside h2 { margin: 0 0 15px; font-size: clamp(27px, 3vw, 40px); line-height: 1; letter-spacing: -.04em; text-transform: uppercase; }
.contact-main > p { max-width: 620px; margin: 0 0 23px; color: #444; font-size: clamp(15px, 1.3vw, 18px); line-height: 1.5; }
.contact-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.contact-actions a { padding: 16px 19px; border: 1px solid var(--black); font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.contact-actions a:first-child { background: var(--black); color: white; }
.contact-aside { padding-top: 5px; }
.contact-block { padding: 22px 0; border-top: 1px solid var(--gray-2); }
.contact-block:last-child { border-bottom: 1px solid var(--gray-2); }
.contact-block h3 { margin: 0 0 10px; color: #777; font-size: 10px; letter-spacing: .1em; text-transform: uppercase; }
.contact-block p, .contact-block address { margin: 0; font-size: 15px; font-style: normal; line-height: 1.65; }
.contact-block a { text-decoration: underline; text-underline-offset: 3px; }
.contact-form { max-width: 700px; margin: 24px 0 20px; }
.contact-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.contact-form label { display: grid; gap: 7px; margin-bottom: 13px; color: #555; font-size: 9px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.contact-form input, .contact-form textarea { width: 100%; border: 1px solid var(--gray-2); border-radius: 0; padding: 12px; background: white; color: var(--black); font-size: 15px; font-weight: 400; letter-spacing: normal; text-transform: none; }
.contact-form textarea { resize: vertical; min-height: 116px; }
.contact-form input:focus, .contact-form textarea:focus { outline: 1px solid var(--black); border-color: var(--black); }
.contact-form button { padding: 14px 18px; border: 1px solid var(--black); background: var(--black); color: white; cursor: pointer; font-size: 10px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.contact-form button span { margin-left: 26px; font-size: 17px; }
.contact-form-status { margin: 12px 0 0; color: #777; font-size: 10px; line-height: 1.5; }
.contact-form-status a { text-decoration: underline; }
.contact-form-status.is-success { color: #176b3a; font-weight: 700; }
.contact-form-status.is-error { color: #a31c1c; font-weight: 700; }
.website-field { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

@media (max-width: 980px) {
  .schedule-row { grid-template-columns: 90px minmax(210px, 1fr) minmax(200px, 1fr) 165px; }
  .schedule-price { display: none; }
}

@media (max-width: 720px) {
  .schedule-shell { padding-top: 38px; }
  .schedule-month { margin-top: 38px; }
  .schedule-row { grid-template-columns: 78px 1fr; align-items: stretch; }
  .schedule-date { grid-row: 1 / 3; }
  .schedule-artist { padding: 16px 17px 8px; }
  .schedule-place { padding: 5px 17px 16px; }
  .schedule-ticket { grid-column: 1 / 3; min-height: 54px; }
  .contact-layout { grid-template-columns: 1fr; }
  .contact-form-grid { grid-template-columns: 1fr; gap: 0; }
}
