:root {
    --field: #8dc63f;
    --field-dark: #5f8c28;
    --field-rgb: 141,198,63;
    --field-light: #eef7e2;
    --field-soft: #f2f7eb;
    --field-contrast: #18230f;
    --accent: #414642;
    --accent-rgb: 65,70,66;
    --accent-light: #ecefed;
    --accent-contrast: #ffffff;
    --soft: #f4f6f2;
    --soft-rgb: 244,246,242;
    --surface: #ffffff;
    --theme-border: #cdd9c4;
    --line: #d8e0d3;
    --ink: #252a26;
    --muted: #687069;
    --rockland-green: #8dc63f;
    --rockland-green-dark: #5f8c28;
    --rockland-graphite: #414642;
    --rockland-background: #f4f6f2;
}

.public-booking-body {
    background: var(--rockland-background);
    color: var(--ink);
}

.public-booking-body .site-shell {
    background: linear-gradient(180deg, #fbfcfa 0%, var(--rockland-background) 100%);
}

.public-booking-body .hero-band {
    color: var(--rockland-graphite);
}

.public-booking-body .hero-title {
    color: #292e2a;
}

.public-booking-body .hero-address {
    color: #537729;
}

.public-booking-body .turf-hero-logo {
    background: #fff;
    box-shadow: 0 0 0 1px rgba(var(--accent-rgb), .14), 0 16px 34px rgba(var(--accent-rgb), .16);
}

.public-booking-body .public-booking-guide-button {
    background: var(--rockland-graphite);
    border-color: var(--rockland-graphite);
    box-shadow: 0 10px 24px rgba(var(--accent-rgb), .18);
    color: #fff;
}

.public-booking-body .public-booking-guide-button:hover,
.public-booking-body .public-booking-guide-button:focus-visible {
    background: #2f3430;
    border-color: #2f3430;
    box-shadow: 0 12px 28px rgba(var(--accent-rgb), .24);
    color: #fff;
}

.public-booking-body .public-booking-guide-icon {
    background: var(--rockland-green);
    color: var(--field-contrast);
}

.public-booking-body .public-hero-language-switcher,
.public-booking-body .hero-phone-link {
    background: rgba(255,255,255,.94);
    border-color: rgba(var(--accent-rgb), .16);
    box-shadow: 0 10px 24px rgba(var(--accent-rgb), .10);
}

.public-booking-body .public-hero-language-switcher a {
    color: var(--rockland-graphite);
}

.public-booking-body .public-hero-language-switcher a.active {
    background: var(--rockland-graphite);
    color: #fff;
}

.public-booking-body .hero-phone-link,
.public-booking-body .hero-phone-number {
    color: var(--rockland-graphite);
}

.public-booking-body .hero-phone-link:hover {
    border-color: var(--rockland-green);
    color: #2d4920;
}

.public-booking-body .hero-phone-icon {
    background: var(--field-light);
    color: var(--rockland-green-dark);
}

.public-booking-body .hero-map-link {
    background: var(--rockland-green);
    border-color: var(--rockland-green);
    color: var(--field-contrast);
}

.public-booking-body .hero-map-link:hover,
.public-booking-body .hero-map-link:focus {
    background: var(--rockland-graphite);
    border-color: var(--rockland-graphite);
    color: #fff;
}

.public-booking-body .public-booking-tabs-section,
.public-booking-body .booking-panel,
.public-booking-body .booking-selection-summary,
.public-booking-body .capacity-stage,
.public-booking-body .package-booking-panel {
    background: rgba(255,255,255,.97);
    border-color: rgba(var(--accent-rgb), .13);
    box-shadow: 0 18px 46px rgba(var(--accent-rgb), .10);
}

.public-booking-body .public-booking-tabs-section {
    border-top: 3px solid var(--rockland-green);
}

.public-booking-body .public-booking-main-tab {
    background: #eef1ee;
    border-color: #dce2dc;
    color: var(--rockland-graphite);
}

.public-booking-body .public-booking-main-tab:hover {
    background: var(--field-light);
    border-color: rgba(var(--field-rgb), .54);
    color: #34551b;
}

.public-booking-body .public-booking-main-tab.active {
    background: var(--rockland-graphite);
    border-color: var(--rockland-graphite);
    box-shadow: 0 12px 26px rgba(var(--accent-rgb), .22);
    color: #fff;
}

.public-booking-body .public-booking-main-tab.active::after {
    background: var(--rockland-green);
}

.public-booking-body .public-booking-main-tab strong {
    background: var(--rockland-green);
    color: var(--field-contrast);
}

.public-booking-body .public-booking-main-tab:hover strong,
.public-booking-body .public-booking-main-tab.active strong {
    background: var(--rockland-green);
    border-color: rgba(var(--field-rgb), .7);
    color: var(--field-contrast);
}

.public-booking-body .public-booking-resource-row {
    background: #f2f5f0;
    border-color: #dce4d7;
}

.public-booking-body .public-booking-resource-row::before {
    background: var(--rockland-green);
}

.public-booking-body .public-resource-tab {
    background: #fff;
    border-color: #d9e0d5;
    color: var(--rockland-graphite);
}

.public-booking-body .public-resource-tab:hover {
    background: var(--field-light);
    border-color: rgba(var(--field-rgb), .6);
    color: #34551b;
}

.public-booking-body .public-resource-tab.active {
    background: var(--rockland-green);
    border-color: var(--rockland-green-dark);
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.38), 0 8px 18px rgba(var(--field-rgb), .22);
    color: var(--field-contrast);
}

.public-booking-body .public-tournament-date-row,
.public-booking-body .booking-date-area {
    background: #f4f7f1;
    border-color: #d9e3d2;
}

.public-booking-body .date-picker-shell,
.public-booking-body .date-stepper .btn {
    background: #fff;
    border-color: #d2dbcd;
}

.public-booking-body .date-display-text,
.public-booking-body .date-stepper .btn {
    color: var(--rockland-graphite);
}

.public-booking-body .date-picker-shell:focus-within,
.public-booking-body .date-stepper .btn:hover,
.public-booking-body .date-stepper .btn:focus {
    border-color: var(--rockland-green-dark);
    box-shadow: 0 0 0 .2rem rgba(var(--field-rgb), .16);
}

.public-booking-body .slot-card {
    background: #fff;
    border-color: #d9e0d5;
    box-shadow: 0 8px 20px rgba(var(--accent-rgb), .07);
}

.public-booking-body .slot-card:not(:disabled):hover,
.public-booking-body .slot-card.active {
    background: #fbfef7;
    border-color: var(--rockland-green-dark);
    box-shadow: 0 12px 26px rgba(var(--field-rgb), .18);
}

.public-booking-body .slot-card.active {
    box-shadow: inset 4px 0 0 var(--rockland-green), 0 12px 26px rgba(var(--field-rgb), .18);
}

.public-booking-body .slot-price,
.public-booking-body .slot-state-available,
.public-booking-body .slot-card .text-success,
.public-booking-body .slot-special-rate-label {
    color: #527d24 !important;
}

.public-booking-body .slot-card.slot-card-state-booked:disabled {
    background: #fffafa;
    border-color: #d84b4b;
    box-shadow: 0 0 0 2px rgba(216,75,75,.12);
}

.public-booking-body .booking-sidebar,
.public-booking-body #selectedBookingBox,
.public-booking-body .summary-box,
.public-booking-body .payment-instruction-box,
.public-booking-body .public-sidebar-payment-card,
.public-booking-body .public-tournament-payment-card,
.public-booking-body .package-payment-panel,
.public-booking-body .package-payment-summary {
    background: #f8faf7;
    border-color: #d9e3d2;
    box-shadow: inset 4px 0 0 var(--rockland-green);
}

.public-booking-body .booking-sidebar {
    box-shadow: none;
}

.public-booking-body .booking-selection-summary.has-date,
.public-booking-body .booking-selection-summary.is-selected,
.public-booking-body #capacityStage,
.public-booking-body #packageCapacityStage,
.public-booking-body #trainingProgramStage {
    background: #f7fbf2;
    border-color: rgba(var(--field-rgb), .48);
    box-shadow: inset 4px 0 0 var(--rockland-green), 0 12px 28px rgba(var(--accent-rgb), .08);
}

.public-booking-body .booking-selected-total,
.public-booking-body #capacityRemaining,
.public-booking-body #programSeatsRemaining {
    background: var(--field-light);
    border-color: rgba(var(--field-rgb), .42);
    color: #3e641d;
}

.public-booking-body .public-package-card,
.public-booking-body .package-card,
.public-booking-body .public-tournament-card,
.public-booking-body .tournament-payment-mini-card,
.public-booking-body .public-program-card {
    background: #fff;
    border-color: #d9e0d5;
    box-shadow: 0 10px 24px rgba(var(--accent-rgb), .08);
}

.public-booking-body .public-package-card:not(:disabled):hover,
.public-booking-body .public-package-card.active,
.public-booking-body .package-card:hover,
.public-booking-body .package-card.active,
.public-booking-body .public-tournament-card:hover,
.public-booking-body .public-tournament-card.active,
.public-booking-body .public-program-card:hover,
.public-booking-body .public-program-card.active {
    border-color: var(--rockland-green-dark);
    box-shadow: inset 4px 0 0 var(--rockland-green), 0 14px 30px rgba(var(--field-rgb), .16);
}

.public-booking-body .form-stage,
.public-booking-body .booking-selected-row,
.public-booking-body .booking-selected-cost-row,
.public-booking-body .public-resource-info-strip,
.public-booking-body .public-resource-notice-strip,
.public-booking-body .booking-hold-timer,
.public-booking-body .next-step-hint,
.public-booking-body .stage-confirmation {
    background: #fff;
    border-color: #dce3d8;
}

.public-booking-body .form-control,
.public-booking-body .form-select,
.public-booking-body textarea.form-control {
    background: #fff;
    border-color: #cfd8ca;
    color: var(--ink);
}

.public-booking-body .form-control:focus,
.public-booking-body .form-select:focus,
.public-booking-body textarea.form-control:focus {
    border-color: var(--rockland-green-dark);
    box-shadow: 0 0 0 .2rem rgba(var(--field-rgb), .16);
}

.public-booking-body .btn-primary {
    background: var(--rockland-graphite);
    border-color: var(--rockland-graphite);
    color: #fff;
}

.public-booking-body .btn-primary:hover,
.public-booking-body .btn-primary:focus {
    background: #2f3430;
    border-color: #2f3430;
    color: #fff;
}

.public-booking-body #verifyOtpSubmit {
    --bs-btn-color: #fff;
    --bs-btn-hover-color: #fff;
    --bs-btn-active-color: #fff;
    --bs-btn-disabled-color: #fff;
    color: #fff;
}

.public-booking-body .btn-outline-primary {
    border-color: var(--rockland-green-dark);
    color: #4d7424;
}

.public-booking-body .btn-outline-primary:hover,
.public-booking-body .btn-outline-primary:focus,
.public-booking-body .btn-outline-primary.active {
    background: var(--rockland-green);
    border-color: var(--rockland-green-dark);
    color: var(--field-contrast);
}

.public-booking-body .public-resource-info-pill,
.public-booking-body .package-summary-chips span,
.public-booking-body .count-pill {
    background: var(--field-light);
    border-color: rgba(var(--field-rgb), .34);
    color: #456a21;
}

.public-booking-body .booking-toast {
    background: var(--rockland-graphite);
    border-color: rgba(var(--field-rgb), .52);
    color: #fff;
}

@media (max-width: 575.98px) {
    .public-booking-body .hero-band {
        padding-top: 22px;
    }

    .public-booking-body .public-booking-tabs-section,
    .public-booking-body .booking-panel {
        box-shadow: 0 12px 28px rgba(var(--accent-rgb), .09);
    }

    .public-booking-body .public-booking-main-tab {
        min-height: 42px;
    }
}
