.detail-info { min-width: 0; }
.detail-info h1, .detail-location { overflow-wrap: anywhere; }
.detail-price { flex-wrap: wrap; gap: 10px 14px; }
.detail-price > strong, .detail-price > del { white-space: nowrap; }
.offer-timing { margin: 22px 0; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; background: #fff; }
.offer-timing-row { padding: 12px 15px; }
.offer-timing-row + .offer-timing-row { border-top: 1px solid var(--line); }
.offer-timing dt { color: var(--muted); font-size: 10px; font-weight: 600; margin-bottom: 5px; }
.offer-timing dd { margin: 0; color: var(--navy); font-size: 12px; line-height: 1.6; overflow-wrap: anywhere; }
.offer-timing-validity { background: #f6f8ff; }
.offer-session-facts { list-style: none; margin: 0; padding: 0; }
.offer-session-facts li { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding: 3px 0; }
.offer-session-facts li span { color: var(--muted); font-size: 10px; flex-shrink: 0; }
.offer-conditions { margin: 22px 0; padding: 18px; border: 1px solid #e6e2d7; border-left: 3px solid var(--gold); border-radius: 12px; background: #fff; }
.offer-conditions h2 { font-family: Manrope,sans-serif; font-size: 16px; letter-spacing: -.3px; margin: 0 0 14px; }
.offer-conditions h3 { font-size: 12px; font-weight: 650; margin: 0 0 8px; }
.offer-conditions-fixed { list-style: none; padding: 0; margin: 0; display: grid; gap: 9px; }
.offer-conditions-fixed li { position: relative; padding-left: 15px; font-size: 13px; line-height: 1.75; color: #444e64; }
.offer-conditions-fixed li::before { content: ''; width: 4px; height: 4px; border-radius: 50%; position: absolute; left: 0; top: .74em; background: #b68b2f; }
.offer-conditions-extra { margin: 15px 0 0; padding-top: 13px; border-top: 1px solid var(--line); }
.offer-conditions-extra p { margin: 5px 0; color: #444e64; font-size: 13px; line-height: 1.75; white-space: pre-line; overflow-wrap: anywhere; }
.offer-event-choice { margin: 22px 0; padding: 0; border: 0; min-width: 0; }
.offer-event-choice legend { padding: 0; margin-bottom: 11px; color: var(--navy); font-weight: 650; font-size: 13px; }
.offer-event-options { display: grid; gap: 8px; }
.offer-event-option { display: flex; gap: 12px; align-items: center; position: relative; border: 1px solid #dce0e8; background: #fff; padding: 13px 15px; border-radius: 10px; cursor: pointer; }
.offer-event-option input { position: absolute; width: 1px; height: 1px; opacity: 0; margin: 0; }
.offer-event-option-copy { display: grid; gap: 5px; flex: 1; min-width: 0; }
.offer-event-option-copy strong { font-size: 13px; font-weight: 600; color: var(--navy); }
.offer-event-option-copy small { font-size: 11px; color: var(--muted); }
.offer-event-radio { width: 19px; height: 19px; border: 1px solid #c6ccda; border-radius: 50%; flex-shrink: 0; position: relative; }
.offer-event-option:has(input:checked) { background: #f4f6ff; border-color: var(--blue); }
.offer-event-option input:checked ~ .offer-event-radio { border-color: var(--blue); background: var(--blue); }
.offer-event-option input:checked ~ .offer-event-radio::after { content: ''; width: 7px; height: 7px; border-radius: 50%; position: absolute; background: #fff; inset: 5px; }
.offer-event-option:has(input:focus-visible) { outline: 3px solid var(--gold); outline-offset: 3px; }
.offer-event-option.is-unavailable { cursor: default; background: #f7f8fa; }
.offer-event-option.is-unavailable strong, .offer-event-option.is-unavailable small { color: #949aaa; }
.offer-event-choice > p, .offer-session-unavailable { color: var(--muted); font-size: 11px; line-height: 1.6; margin: 11px 0 0; }
@media(max-width:700px) {
  .offer-timing dd { font-size: 12px; }
  .offer-event-option { min-height: 66px; }
  .offer-conditions-fixed li, .detail-info .offer-conditions-extra p { font-size: 13px; }
}
@media(max-width:360px) {
  .offer-session-facts li { display: grid; gap: 1px; padding: 5px 0; }
}

.offer-event-choice > .form-error { color:#ae3933; }

.offer-description h2 { font-family: Manrope,sans-serif; font-size: 15px; letter-spacing: -.2px; margin: 0 0 8px; }
.offer-description p { white-space: pre-line; overflow-wrap: anywhere; margin-top: 0; }
