:root {
    --house-red: #e2001a;
    --house-red-dark: #b40015;
    --house-ink: #24272b;
    --house-copy: #555b62;
    --house-muted: #7f8790;
    --house-canvas: #f7f4f1;
    --house-paper: #fff;
    --house-line: rgba(36, 39, 43, .14);
    --house-success: #16784b;
    --house-danger-bg: #fff0f1;
    --house-radius: 10px;
}

@font-face { font-family: DinPro; src: url('../../../nuevo-ddm/assets/font/dinpro.otf'); font-weight: 400; }
@font-face { font-family: DinPro; src: url('../../../nuevo-ddm/assets/font/dinpro_medium.otf'); font-weight: 600; }
@font-face { font-family: DinPro; src: url('../../../nuevo-ddm/assets/font/dinpro_bold.otf'); font-weight: 700; }

* { box-sizing: border-box; }
body { margin: 0; background: var(--house-canvas); color: var(--house-ink); font-family: DinPro, Arial, sans-serif; font-size: 17px; line-height: 1.45; }
a { color: var(--house-red); }
.house-header { background: var(--house-paper); border-bottom: 1px solid var(--house-line); }
.house-header__inner { width: min(1100px, calc(100% - 32px)); min-height: 88px; margin: auto; display: flex; align-items: center; justify-content: center; gap: 24px; text-align: center; }
.house-header img { display: block; width: 188px; height: auto; margin: 0 auto; }
.house-header__tag { color: var(--house-muted); font-size: 14px; letter-spacing: .04em; text-transform: uppercase; }
.house-intro-banner, .house-intro-banner img { display: block; width: 100%; }
.house-intro-banner img { height: auto; }
.house-main { width: min(880px, calc(100% - 32px)); margin: 48px auto 80px; }
.house-main--registration { margin-top: 24px; }
.house-hero { margin-bottom: 32px; }
.house-kicker { margin: 0 0 8px; color: var(--house-red); font-size: 14px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
h1 { margin: 0 0 12px; font-size: clamp(36px, 6vw, 64px); line-height: 1; letter-spacing: -.035em; }
h2 { margin: 0 0 20px; font-size: 26px; line-height: 1.1; }
h3 { margin: 0 0 16px; font-size: 20px; }
.house-lead { max-width: 700px; margin: 0; color: var(--house-copy); font-size: 20px; }
.house-event-notice { margin-top: 22px; padding: 15px 18px; color: var(--house-ink); background: #fff; border: 1px solid rgba(226,0,26,.28); border-radius: 8px; font-style: normal; }
.house-event-notice strong { color: var(--house-red); }
.house-card { margin: 24px 0; padding: 28px; background: var(--house-paper); border: 1px solid var(--house-line); border-radius: var(--house-radius); }
.house-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.house-field { display: flex; flex-direction: column; gap: 7px; }
.house-field--full { grid-column: 1 / -1; }
.house-field label, .house-label { color: var(--house-copy); font-size: 14px; font-weight: 600; }
.house-field input, .house-field select { width: 100%; min-height: 48px; padding: 10px 12px; color: var(--house-ink); background: #fbfaf9; border: 1px solid rgba(36,39,43,.24); border-radius: 6px; font: inherit; }
.house-field input:focus, .house-field select:focus { outline: 3px solid rgba(226,0,26,.15); border-color: var(--house-red); }
.house-field small { color: var(--house-muted); }
.house-field--schedule { margin-top: 22px; }
.house-day-picker { margin: 0; padding: 0; border: 0; }
.house-day-picker legend { margin-bottom: 10px; color: var(--house-copy); font-size: 14px; font-weight: 600; }
.house-day-picker__options { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px; }
.house-day { position: relative; cursor: pointer; }
.house-day input { position: absolute; opacity: 0; pointer-events: none; }
.house-day span { display: grid; grid-template-columns: 1fr auto; gap: 2px 12px; min-height: 104px; padding: 16px; background: #fbfaf9; border: 1px solid rgba(36,39,43,.2); border-radius: 8px; transition: border-color .15s ease, background .15s ease; }
.house-day small { color: var(--house-red); font-size: 13px; font-style: normal; font-weight: 700; text-transform: uppercase; }
.house-day strong { grid-row: span 2; font-size: 28px; line-height: 1; }
.house-day em { align-self: end; color: var(--house-muted); font-size: 13px; font-style: normal; }
.house-day:hover span { border-color: rgba(226,0,26,.5); }
.house-day input:focus-visible + span { outline: 3px solid rgba(226,0,26,.15); border-color: var(--house-red); }
.house-day input:checked + span { background: #fff0f1; border-color: var(--house-red); box-shadow: inset 0 0 0 1px var(--house-red), 0 4px 12px rgba(226,0,26,.12); }
.house-day input:checked + span small, .house-day input:checked + span strong { color: var(--house-red); }
.house-repeat { margin-top: 16px; padding: 20px; background: #faf8f6; border: 1px solid var(--house-line); border-radius: 8px; }
.house-repeat__head { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 16px; }
.house-repeat__head h3 { margin: 0; }
.house-check { display: flex; align-items: center; gap: 10px; min-height: 48px; }
.house-check input { flex: 0 0 20px; width: 20px; height: 20px; accent-color: var(--house-red); }
.house-check > span { font-size: calc(1em - 2px); }
.house-check + .house-check { margin-top: 8px; }
.house-check em { color: var(--house-muted); font-size: 13px; }
.house-legals > h2 { font-size: 24px; }
.house-legals > h2 + p { font-size: calc(1em - 2px); }
.house-legal-group { margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--house-line); }
.house-legal-group > .house-label { margin: 0 0 10px; }
.house-legal-group > .house-note { margin: 12px 0 6px; }
.house-legal-copy { margin: 20px 0 0; color: var(--house-muted); font-size: 13px; line-height: 1.5; }
.house-event-legal { margin: 0 0 32px; }
.house-legal-consent { margin-top: 18px; }
.house-minor-notice { padding: 14px 16px; color: #8e101e; background: var(--house-danger-bg); border: 1px solid rgba(226,0,26,.2); border-radius: 8px; font-size: 14px; }
.house-owner-question { margin-top: 20px; padding-top: 20px; border-top: 1px solid var(--house-line); }
.house-owner-question > .house-label { margin: 0 0 4px; font-size: 18px; color: var(--house-ink); }
.house-owner-question > .house-note { margin: 0 0 12px; }
.house-adult-email { max-width: calc(50% - 9px); margin-bottom: 18px; }
.house-choice-row { display: flex; flex-wrap: wrap; gap: 10px; }
.house-choice { cursor: pointer; }
.house-choice input { position: absolute; opacity: 0; pointer-events: none; }
.house-choice span { display: block; min-width: 76px; padding: 10px 18px; text-align: center; background: #fbfaf9; border: 1px solid rgba(36,39,43,.2); border-radius: 6px; }
.house-choice input:checked + span { color: var(--house-red); background: rgba(226,0,26,.045); border-color: var(--house-red); font-weight: 700; }
.house-choice input:focus-visible + span { outline: 3px solid rgba(226,0,26,.15); border-color: var(--house-red); }
.house-pet-fields { margin-top: 12px; padding: 18px; background: var(--house-paper); border: 1px solid var(--house-line); border-radius: 8px; }
.house-button { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 10px 22px; border: 1px solid var(--house-red); border-radius: 6px; background: var(--house-red); color: #fff; cursor: pointer; font: inherit; font-weight: 700; text-decoration: none; }
.house-button:hover { background: var(--house-red-dark); }
.house-button:disabled { opacity: .62; cursor: wait; }
.house-button--ghost { background: transparent; color: var(--house-red); }
.house-button--ghost:hover { background: rgba(226,0,26,.06); }
.house-button--small { min-height: 38px; padding: 6px 12px; font-size: 14px; }
.house-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 24px; }
.house-actions--submit { justify-content: flex-end; }
.house-alert { margin: 20px 0; padding: 16px 18px; border-radius: 8px; background: var(--house-danger-bg); color: #8e101e; border: 1px solid rgba(226,0,26,.2); }
.house-alert--success { background: #edf8f2; color: var(--house-success); border-color: rgba(22,120,75,.2); }
.house-ticket { display: grid; grid-template-columns: minmax(0, 1fr) 290px; gap: 28px; align-items: center; }
.house-ticket__qr { width: 100%; max-width: 290px; background: #fff; border: 1px solid var(--house-line); }
.house-list { margin: 12px 0; padding-left: 20px; }
.house-note { color: var(--house-muted); font-size: 14px; }
.house-remove { border: 0; background: transparent; color: var(--house-red); cursor: pointer; font: inherit; font-size: 14px; }
.is-hidden { display: none !important; }

@media (max-width: 680px) {
    body { font-size: 16px; }
    .house-header__inner { min-height: 72px; }
    .house-header img { width: 150px; }
    .house-header__tag { display: none; }
    .house-main { margin-top: 32px; }
    .house-card { padding: 20px; }
    .house-grid, .house-ticket { grid-template-columns: 1fr; }
    .house-ticket__qr { margin: auto; }
    .house-button { width: 100%; }
    .house-button--small { width: auto; }
    .house-adult-email { max-width: none; }
}
