/* Reservation form owns its layout; general activity-form overrides do not apply here. */
.crafty-event-form { --form-ink:#352b38; --form-muted:#655669; color:var(--form-ink); font:400 16px/1.6 Nunito,sans-serif; width:100%; }
.crafty-event-form [hidden] { display:none!important; } /* Required because theme layouts assign display to all form rows. */
.crafty-event-form .crafty-event-summary { display:none; } /* Event is presented in the page heading; read-only field is kept for CF7. */
body.page .crafty-event-form .crafty-event-summary { display:block; padding:20px; margin-bottom:28px; background:#f4effa; border:0; border-radius:20px; }
.crafty-event-form .crafty-event-summary span,.crafty-event-form .crafty-event-summary strong { display:block; }
.crafty-event-form .crafty-event-summary-label { color:#753580; font-size:13px; }
.crafty-event-form .crafty-event-summary-name { font-size:20px; font-weight:700; line-height:1.4; margin:4px 0 8px; color:#352b38; }
.crafty-event-form .crafty-event-summary-meta { font-size:14px; line-height:1.6; color:#655669; }
.crafty-event-form .crafty-form-step { border:0; margin:0 0 28px; padding:0 0 28px; min-width:0; border-bottom:1px solid #e9dfec; }
.crafty-event-form .crafty-form-step.crafty-form-last { border:0; margin:0; padding:0; }
.crafty-event-form .crafty-form-step legend { float:none; display:flex; align-items:center; gap:12px; width:100%; margin:0 0 20px; padding:0; font:700 20px/1.4 Nunito,sans-serif; color:#352b38; text-transform:none; letter-spacing:0; }
.crafty-event-form legend > span { display:inline-flex; flex:0 0 32px; height:32px; align-items:center; justify-content:center; border-radius:50%; background:#f0e6f7; color:#753580; font-size:16px; }
.crafty-event-form .crafty-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px 16px; }
.crafty-event-form .crafty-form-wide { grid-column:1/-1; }
.crafty-event-form .crafty-form-field { min-width:0; }
.crafty-event-form .crafty-form-field p { margin:0; padding:0; }
.crafty-event-form label { display:block; margin:0; font:600 14px/1.5 Nunito,sans-serif; color:#352b38; text-align:left; }
.crafty-event-form .crafty-required { color:#b9134d; }
.crafty-event-form .crafty-optional { font-weight:400; color:#655669; }
.crafty-event-form .wpcf7-form-control-wrap { display:block; width:100%; margin-top:8px; }
.crafty-event-form input:not([type=submit]):not([type=hidden]), .crafty-event-form textarea, .crafty-event-form select,
.crafty-event-form .select2-container .select2-selection--single {
 width:100%; min-width:0; max-width:100%; height:50px; min-height:50px; margin:0; padding:12px 14px;
 border:1px solid #b9afc1; border-radius:12px; background:#fff; color:#352b38;
 font:400 16px/1.5 Nunito,sans-serif; box-shadow:none; text-align:left; appearance:auto;
 transition:border-color .15s,background-color .15s;
}
.crafty-event-form .select2-container { width:100%!important; } /* Select2 writes a pixel width inline; it must follow the responsive grid. */
.crafty-event-form .select2-container .select2-selection--single { display:flex; align-items:center; padding:0 36px 0 14px; }
/* Parent base.css forces transparent, square Select2 controls with !important. */
.crafty-event-form .select2-container.select2-container--default .select2-selection--single {
 border:1px solid; border-color:#b9afc1!important; background:#fff!important; border-radius:12px!important; height:50px!important;
}
.crafty-event-form .select2-container .select2-selection--single .select2-selection__rendered { padding:0; color:#352b38; font:400 16px/1.5 Nunito,sans-serif; }
.crafty-event-form .select2-container--default .select2-selection--single .select2-selection__arrow { width:30px; height:48px; right:4px; top:0; }
.crafty-event-form .select2-selection__arrow b { border-width:5px 4px 0; border-color:#655669 transparent transparent; }
.crafty-event-form textarea { height:100px; min-height:100px; resize:vertical; }
.crafty-event-form input[readonly] { background:#f5f2f8; color:#655669; }
.crafty-event-form input:focus,.crafty-event-form textarea:focus,.crafty-event-form select:focus,
.crafty-event-form .select2-selection:focus-visible { outline:2px solid #753580; outline-offset:2px; border-color:#753580; box-shadow:none; }
.crafty-event-form input::placeholder,.crafty-event-form textarea::placeholder { color:#756a7e; opacity:1; }
#tribe-events-content .crafty-event-form .crafty-form-help,.crafty-event-form .crafty-form-help { font-size:13px; color:#655669; line-height:1.55; margin:12px 0 0; }
#tribe-events-content .crafty-event-form .crafty-session-help,.crafty-event-form .crafty-session-help {
 font-size:14px; font-weight:600; color:#493055; line-height:1.6; text-align:left;
 margin:16px 0 0; padding:14px 16px; border-left:3px solid #8c4098; border-radius:0 12px 12px 0; background:#f3edf8;
}
.crafty-event-form label:has([name="children-count"]) { color:#753580; font-weight:700; }
.crafty-event-form [data-name="children-count"] .select2-selection__rendered { font-weight:700; }
.crafty-event-form .crafty-form-help { margin:0 0 16px; }
.crafty-event-form .crafty-event-children { margin:24px 0 0; }
.crafty-event-form .crafty-event-child { padding:20px; margin-top:16px; border:1px solid #d8e9f1; border-radius:18px; background:#f1f9fc; }
#tribe-events-content .crafty-event-form .crafty-event-child h4,.crafty-event-form .crafty-event-child h4 {
 margin:0 0 20px; padding:10px 16px; border-radius:10px; background:#317899; color:#fff;
 font:700 18px/1.4 Nunito,sans-serif; text-align:left;
}
.crafty-event-form .crafty-payment-required { padding:20px 0; margin:20px 0 0; border-top:1px solid #e9dfec; border-radius:0; background:none; text-align:left; }
.crafty-event-form .crafty-payment-label { font-size:13px; color:#655669; }
#tribe-events-content .crafty-event-form .crafty-reservation-review,.crafty-event-form .crafty-reservation-review { margin:4px 0 16px; font-size:14px; line-height:1.55; }
.crafty-event-form .crafty-payment-total { display:flex; justify-content:space-between; gap:16px; margin-bottom:12px; color:#352b38; }
.crafty-event-form .crafty-payment-total > p { display:flex; justify-content:space-between; align-items:center; gap:16px; width:100%; margin:0; }
.crafty-event-form .crafty-payment-total strong { font-size:18px; font-weight:700; }
.crafty-event-form .crafty-payment-total strong:last-child { font-size:26px; line-height:1.25; color:#b9134d; }
#tribe-events-content .crafty-event-form .crafty-payment-required > p:last-child,.crafty-event-form .crafty-payment-required > p:last-child { font-size:13px; line-height:1.6; margin:0; color:#655669; }
.crafty-event-form .crafty-form-submit p { margin:0; }
.crafty-event-form input[type=submit],.crafty-event-form .crafty-payment-retry {
 display:inline-block; width:100%; max-width:100%; min-height:52px; height:auto; margin:0; padding:14px 18px;
 border:2px solid #e0185f; border-radius:28px; background:#e0185f; color:#fff;
 font:700 16px/1.35 Nunito,sans-serif; white-space:normal; cursor:pointer;
 box-shadow:none; transform:none; transition:background-color .15s,border-color .15s;
}
.crafty-event-form input[type=submit]:hover,.crafty-event-form .crafty-payment-retry:hover { background:#b9134d; border-color:#b9134d; transform:none; box-shadow:none; }
.crafty-event-form input[type=submit]:focus-visible,.crafty-event-form .crafty-payment-retry:focus-visible { outline:3px solid #753580; outline-offset:4px; transform:none; box-shadow:none; }
.crafty-event-form input[type=submit]:disabled { opacity:.55; cursor:wait; }
#tribe-events-content .crafty-event-form .crafty-payment-security,.crafty-event-form .crafty-payment-security { text-align:center; font-size:12px; color:#655669; margin:10px 0 0; }
.crafty-event-form .wpcf7-spinner { display:none; }
form.submitting .crafty-event-form .wpcf7-spinner { display:block; margin:12px auto; }
.wpcf7 .crafty-event-form .wpcf7-not-valid-tip {
 display:block; position:static; transform:none; margin:8px 0 0; padding:0;
 font:400 13px/1.5 Nunito,sans-serif; color:#b9134d; text-align:left;
}
.crafty-event-form .crafty-booking-status { margin:0 0 20px; padding:16px; background:#f0f8fc; border:1px solid #b4d5e2; border-radius:12px; }
.crafty-event-form .crafty-booking-status.error { background:#fff0f3; border-color:#d99aaa; color:#8a2243; }
.crafty-event-form .crafty-payment-retry { margin:0 0 20px; }
.crafty-event-reservation .wpcf7-response-output { margin:20px 0 0; padding:14px; font-size:14px; border-radius:12px; }
@media(max-width:600px) {
 .crafty-event-form .crafty-form-grid { grid-template-columns:1fr; gap:16px; }
 .crafty-event-form .crafty-form-step legend { font-size:18px; }
 .crafty-event-form .crafty-event-child { padding:16px; }
}

