.cg-trial-booking { max-width: 920px; margin: 1.5rem auto; font-size: 16px; }
.cg-booking-head h3 { margin-bottom: .25rem; }
.cg-booking-head p { margin-top: 0; opacity: .78; }
.cg-customer-calendar { border: 1px solid #ddd; border-radius: 12px; padding: 1rem; background: #fff; }
.cg-calendar-nav { display: grid; grid-template-columns: 48px 1fr 48px; align-items: center; gap: .5rem; margin-bottom: .75rem; }
.cg-calendar-nav strong { text-align: center; font-size: 1.12rem; text-transform: capitalize; }
.cg-calendar-nav button { min-height: 44px; border: 1px solid #ccc; border-radius: 8px; background: #fff; cursor: pointer; font-size: 1.2rem; }
.cg-calendar-nav button:disabled { opacity: .3; cursor: default; }
.cg-weekdays, .cg-month-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; }
.cg-weekdays span { text-align: center; font-size: .78rem; font-weight: 700; opacity: .65; padding: .25rem 0; }
.cg-day { min-height: 48px; border: 1px solid transparent; border-radius: 8px; background: #f4f4f4; color: inherit; font: inherit; cursor: default; }
.cg-day.is-open { background: #fff; border-color: #bbb; cursor: pointer; font-weight: 700; }
.cg-day.is-open:hover, .cg-day.is-open:focus-visible { border-color: currentColor; outline: 2px solid currentColor; outline-offset: 1px; }
.cg-day.is-selected { background: #222; color: #fff; border-color: #222; }
.cg-day.is-closed { opacity: .34; }
.cg-day-empty { background: transparent; min-height: 48px; }
.cg-calendar-legend { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: .75rem; font-size: .85rem; opacity: .75; }
.cg-calendar-legend span { display: inline-flex; align-items: center; gap: .35rem; }
.cg-dot { width: .65rem; height: .65rem; border-radius: 50%; display: inline-block; border: 1px solid #888; }
.cg-dot-open { background: #fff; }
.cg-dot-closed { background: #bbb; opacity: .55; }
.cg-selected-date { margin: 1.2rem 0 .4rem; font-size: 1.15rem; font-weight: 700; text-transform: capitalize; }
.cg-status { margin: 1rem 0; padding: .8rem 1rem; border-radius: 8px; background: #f1f1f1; }
.cg-status[hidden] { display: none; }
.cg-status.is-success { background: #edf7ed; }
.cg-status.is-error { background: #fdecec; }
.cg-status.is-info { background: #f3f5f7; }
.cg-studios { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1rem; }
.cg-studio-card { border: 1px solid #ddd; border-radius: 10px; padding: 1rem; background: #fff; }
.cg-studio-card h4 { margin: 0 0 .35rem; font-size: 1.05rem; }
.cg-address { margin-bottom: .8rem; font-size: .92rem; opacity: .78; white-space: pre-line; }
.cg-slots { display: flex; flex-wrap: wrap; gap: .5rem; }
.cg-slots button, .cg-booking-form button { min-height: 44px; padding: .65rem 1rem; cursor: pointer; border-radius: 8px; border: 1px solid #bbb; background: #fff; font: inherit; }
.cg-slots button { font-weight: 700; }
.cg-booking-form { border: 1px solid #ddd; border-radius: 10px; padding: 1rem; background: #fff; }
.cg-summary { font-weight: 700; margin-bottom: 1rem; padding: .8rem; background: #f5f5f5; border-radius: 8px; }
.cg-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; }
.cg-field { margin: 0 0 .8rem; }
.cg-field label { display: block; font-weight: 600; }
.cg-field input { box-sizing: border-box; width: 100%; min-height: 44px; padding: .65rem; margin-top: .3rem; border: 1px solid #bbb; border-radius: 7px; font-size: 16px; }
.cg-consent { display: flex; align-items: flex-start; gap: .55rem; margin: .5rem 0 1rem; font-size: .9rem; }
.cg-consent input { margin-top: .25rem; }
.cg-actions { display: flex; flex-wrap: wrap; gap: .6rem; }
.cg-actions .cg-primary { background: #222; color: #fff; border-color: #222; font-weight: 700; }
.cg-booking-form[hidden] { display: none !important; }
.cg-booking-form .wpcf7 label { display: block; font-weight: 600; margin-bottom: .8rem; }
.cg-booking-form .wpcf7 input[type="text"], .cg-booking-form .wpcf7 input[type="email"], .cg-booking-form .wpcf7 input[type="tel"] { box-sizing: border-box; width: 100%; min-height: 44px; padding: .65rem; margin-top: .3rem; border: 1px solid #bbb; border-radius: 7px; font-size: 16px; font-weight: 400; }
.cg-booking-form .wpcf7-acceptance label { font-weight: 400; font-size: .9rem; }
.cg-booking-form .wpcf7-submit { min-height: 44px; padding: .65rem 1.2rem; border-radius: 8px; background: #222; color: #fff; border: 1px solid #222; font: inherit; font-weight: 700; cursor: pointer; }
.cg-booking-form .cg-actions { margin-top: .6rem; }
@media (max-width: 600px) {
.cg-trial-booking { font-size: 15px; }
.cg-customer-calendar { padding: .75rem; }
.cg-weekdays, .cg-month-grid { gap: 4px; }
.cg-day, .cg-day-empty { min-height: 44px; }
.cg-form-grid { grid-template-columns: 1fr; }
.cg-studios { grid-template-columns: 1fr; }
}