.hor-events { --hor-brown:#816950; --hor-ink:#28221c; --hor-muted:#6e685f; --hor-bg:#faf7f3; color:var(--hor-ink); font-family:inherit; width:100%; max-width:1080px; margin:0 auto; padding:20px 12px 48px; box-sizing:border-box; overflow:visible; }
.hor-events *, .hor-events *::before, .hor-events *::after { box-sizing:border-box; }
.hor-events .hor-card { padding:28px; border:1px solid #e8ded5; border-radius:22px; background:var(--hor-bg); display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:24px; margin:0 0 20px; }
.hor-events h2, .hor-events h3 { font-family:Georgia,'Times New Roman',serif; font-weight:normal; line-height:1.15; color:var(--hor-ink); }
.hor-events .hor-card h3 { font-size:clamp(25px,4vw,38px); margin:10px 0 12px; }
.hor-events .hor-card p { margin:8px 0; color:var(--hor-muted); }
.hor-events .hor-eyebrow { font:700 12px/1.4 system-ui,sans-serif; letter-spacing:.2em; color:var(--hor-brown); }
.hor-events .hor-button { background:var(--hor-brown); border:0; border-radius:50px; text-decoration:none!important; padding:17px 24px; color:white!important; display:inline-block; font:600 15px/1.25 system-ui,sans-serif; cursor:pointer; text-align:center; transition:opacity .15s; }
.hor-events .hor-button:hover { opacity:.9; }
.hor-events .hor-button:disabled { opacity:.55; cursor:wait; }
.hor-events .hor-soldout { color:var(--hor-muted); font-weight:700; }
.hor-events .hor-checkout { max-width:840px; margin:0 auto; padding:clamp(20px,4vw,38px); border:1px solid #e8ded5; border-radius:22px; background:var(--hor-bg); overflow:visible; }
.hor-events .hor-checkout h2 { font-size:clamp(34px,6vw,62px); margin:10px 0 18px; }
.hor-events .hor-back { display:block; width:max-content; color:var(--hor-brown); margin:0 0 28px; }
.hor-events .hor-event-info { color:var(--hor-muted); }
.hor-events .hor-form { margin-top:28px; overflow:visible; }
.hor-events .hor-form h3 { font-size:26px; margin:30px 0 14px; }
.hor-events .hor-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.hor-events .hor-field { min-width:0; margin:0 0 16px; }
.hor-events .hor-field label { display:block; margin:0 0 8px; font-weight:600; font-size:14px; }
.hor-events .hor-field input, .hor-events .hor-field select { display:block; appearance:auto; width:100%; min-width:0; min-height:50px; padding:12px 14px; color:var(--hor-ink); background:#fff; border:1px solid #c9bdb2; border-radius:12px; box-shadow:none; font:16px system-ui,sans-serif; }
.hor-events .hor-field input:focus-visible, .hor-events .hor-field select:focus-visible { outline:2px solid var(--hor-brown); outline-offset:2px; }
.hor-events .hor-quantity { max-width:230px; }
.hor-events .hor-attendee { border:1px solid #e0d7cf; border-radius:14px; margin:0 0 16px; padding:15px 16px 0; min-width:0; }
.hor-events .hor-attendee legend { font-weight:700; padding:0 8px; }
.hor-events .hor-total { border-top:1px solid #dcd0c4; margin:24px 0 18px; padding:20px 0 0; display:flex; justify-content:space-between; font-size:21px; }
.hor-events .hor-pay { display:block; width:100%; min-height:55px; }
.hor-events .hor-small { color:var(--hor-muted); font-size:13px; line-height:1.6; margin-top:16px; }
.hor-events .hor-error { background:#fff0ef; color:#831c20; border:1px solid #df9393; padding:12px; margin:15px 0; border-radius:10px; }
.hor-events .hor-error[hidden] { display:none; }
.hor-events .hor-message { border:1px solid #d5c6b8; background:var(--hor-bg); padding:18px; border-radius:12px; margin:0 0 22px; }
@media(max-width:600px) {
  .hor-events { width:100%; padding:8px 8px 40px; }
  .hor-events .hor-card { padding:20px; }
  .hor-events .hor-card .hor-button { width:100%; }
  .hor-events .hor-checkout { padding:20px 15px 45px; border-radius:16px; }
  .hor-events .hor-grid { grid-template-columns:minmax(0,1fr); gap:0; }
  .hor-events .hor-attendee { padding:12px 12px 0; }
  .hor-events .hor-form { padding-bottom:60px; }
  .hor-events .hor-pay { position:relative; bottom:auto; z-index:auto; box-shadow:none; }
}

/* Fixed mobile ticket checkout CTA; the regular form still validates fields. */
.hor-fixed-ticket-bar { display:none; }
@media (max-width: 600px) {
  .hor-events { padding-bottom: 148px; }
  .hor-events .hor-form { padding-bottom: 95px; }
  .hor-fixed-ticket-bar {
    box-sizing: border-box;
    position: fixed;
    z-index: 99997;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 10px 16px calc(12px + env(safe-area-inset-bottom, 0px));
    border-top: 1px solid #e5d9ce;
    background: #faf7f3;
    box-shadow: 0 -8px 30px rgba(24, 17, 10, .13);
    display: flex;
    gap: 12px;
    align-items: center;
    justify-content: space-between;
  }
  .hor-fixed-ticket-total { color: #28221c; font: 700 15px system-ui, sans-serif; white-space: nowrap; }
  .hor-fixed-ticket-bar .hor-button {
    flex: 1;
    min-height: 54px;
    max-width: 400px;
    font-size: 14px;
    padding: 13px 11px;
  }
}
