/* Only layout and interaction states are supplied; the WordPress theme owns appearance. */
.easydojo-booking { font:inherit; color:inherit; width:100%; min-width:0; max-width:48rem; margin-block:1.5em; margin-inline:auto; }
.easydojo-booking *, .easydojo-booking *::before, .easydojo-booking *::after { box-sizing:border-box; }
.easydojo-booking button, .easydojo-booking input, .easydojo-booking select { font:inherit; }
.easydojo-booking form { display:grid; grid-template-columns:minmax(0,1fr); gap:1em; width:100%; max-width:100%; min-width:0; }
.easydojo-booking label { display:grid; grid-template-columns:minmax(0,1fr); gap:.35em; margin-block:.7em; min-width:0; max-width:100%; overflow-wrap:anywhere; }
.easydojo-booking input, .easydojo-booking select { width:100%; max-width:100%; }
.easydojo-booking button { cursor:pointer; margin:.2em; }
.easydojo-booking button:disabled { opacity:.4; cursor:default; }
.easydojo-booking button:focus-visible, .easydojo-booking input:focus-visible, .easydojo-booking select:focus-visible { outline:2px solid currentColor; outline-offset:3px; }
.easydojo-booking .ed-month { display:flex; gap:.5em; align-items:center; justify-content:space-between; flex-wrap:wrap; margin-block:1em; }
.easydojo-booking .ed-calendar { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:.3em; }
.easydojo-booking .ed-calendar button { min-height:2.8em; min-width:0; padding:.4em; margin:0; }
.easydojo-booking .ed-calendar button[aria-pressed=true] { outline:3px solid currentColor; outline-offset:2px; font-weight:bold; }
.easydojo-booking .ed-weekday { text-align:center; font-size:.85em; }
.easydojo-booking .ed-times { display:flex; flex-wrap:wrap; gap:.5em; margin-block:1em; }
.easydojo-booking .ed-times h4 { flex-basis:100%; }
.easydojo-booking .ed-trap { position:absolute; left:-10000px; width:1px; height:1px; }
.easydojo-booking [role=alert]:empty, .easydojo-booking [role=status]:empty { display:none; }
@media(max-width:400px) { .easydojo-booking .ed-calendar { gap:.15em; } .easydojo-booking .ed-calendar button { font-size:.9em; } }

.easydojo-booking input[type=checkbox] { width:auto; justify-self:start; }

.easydojo-booking .ed-groups { display:grid; gap:1.25rem; margin-block:1rem; }
.easydojo-booking .ed-groups button { display:block; width:100%; margin:0; padding:1rem; font-size:1.2em; text-transform:none; }
.easydojo-booking .ed-groups button[aria-pressed=true] { outline:2px solid currentColor; outline-offset:3px; }
.easydojo-booking .ed-times h4 { text-transform:none; }
.easydojo-booking .ed-calendar-links { display:flex; gap:.65rem; flex-wrap:wrap; }
.easydojo-booking .ed-calendar-link { display:inline-flex; align-items:center; gap:.5rem; text-decoration:none; }
.easydojo-booking .ed-calendar-icon { display:inline-flex; align-items:center; justify-content:center; width:1.7rem; height:1.7rem; border-radius:3px; font:bold .85rem/1 system-ui; background:white; color:#222; flex-shrink:0; }
.easydojo-booking .ed-icon-google { color:#1a73e8; border:3px solid #4285f4; border-right-color:#34a853; border-bottom-color:#fbbc04; border-left-color:#ea4335; }
.easydojo-booking .ed-icon-apple { border-top:6px solid #e53935; }
.easydojo-booking .ed-icon-outlook { background:#0078d4; color:white; }

.easydojo-booking .ed-month { display:grid; grid-template-columns:auto 1fr auto; text-align:center; border-bottom:1px solid color-mix(in srgb,currentColor 20%,transparent); padding-bottom:.8rem; }
.easydojo-booking .ed-month strong { font-size:1.5em; }
.easydojo-booking .ed-month button { font-size:2em; line-height:1; padding:.1em .4em; }
.easydojo-booking .ed-calendar { gap:.2rem; }
.easydojo-booking .ed-calendar button { position:relative; box-shadow:none; text-shadow:none; }
.easydojo-booking .ed-calendar button.ed-day-empty { background:none; border-color:transparent; color:inherit; opacity:.6; cursor:default; }
.easydojo-booking .ed-calendar .ed-day-available { background:var(--wp--preset--color--primary,var(--wp--preset--color--vivid-cyan-blue,#0783ca)); color:white; border-color:transparent; border-radius:4px; }
.easydojo-booking .ed-calendar .ed-day-available[aria-pressed=true] { outline-color:var(--ed-button-blue); outline-offset:1px; }
.easydojo-booking .ed-slot-count { position:absolute; top:.25em; right:.35em; font-size:.55em; font-weight:700; line-height:1; }
.easydojo-booking .ed-weekday { padding-block:.5rem; border-bottom:1px solid color-mix(in srgb,currentColor 35%,transparent); }

.easydojo-booking .ed-times { justify-content:center; }

/* Grid items must be able to shrink below an input's intrinsic width on phones. */
.easydojo-booking > div, .easydojo-booking form > * { min-width:0; max-width:100%; }
.easydojo-booking form input:not([type=checkbox]):not(.ed-trap), .easydojo-booking form select { display:block; box-sizing:border-box; width:100%; max-width:100%; min-width:0; margin-inline:0; }
.easydojo-booking form button { max-width:100%; min-width:0; white-space:normal; overflow-wrap:anywhere; }

/* Bound the widget to the screen even when a page-builder column is oversized. */
.easydojo-booking { box-sizing:border-box; max-width:min(48rem,calc(100vw - 2rem)); }
.easydojo-booking form { display:block; width:100%; max-width:34rem; margin-inline:auto; }
.easydojo-booking form label { display:block; width:100%; margin-block:1rem; white-space:normal; }
.easydojo-booking form label input { margin-top:.35rem; }
.easydojo-booking form input:not([type=checkbox]):not(.ed-trap) { width:100%; max-width:100%; min-width:0; box-sizing:border-box; }
@media (max-width:600px) {
 .easydojo-booking form input:not([type=checkbox]):not(.ed-trap), .easydojo-booking form select { font-size:max(16px,1em); padding-inline:.75rem; }
 .easydojo-booking .ed-month { grid-template-columns:auto minmax(0,1fr) auto; gap:.25rem; }
 .easydojo-booking .ed-month strong { font-size:1.15em; overflow-wrap:anywhere; }
}

.easydojo-booking form input::placeholder { color:transparent; }
@media (max-width:600px) {
 .easydojo-booking .ed-field-label { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
 .easydojo-booking form input::placeholder { color:inherit; opacity:.65; }
 .easydojo-booking form label input { margin-top:0; }
}

/* One shared color for the booking actions and available calendar dates. */
.easydojo-booking { --ed-button-blue:var(--ed-school-primary,var(--wp--preset--color--primary,var(--wp--preset--color--vivid-cyan-blue,#0783ca))); }
.easydojo-booking button.wp-element-button, .easydojo-booking a.ed-calendar-link,
.easydojo-booking .ed-calendar button.ed-day-available { background:var(--ed-button-blue); border-color:var(--ed-button-blue); color:var(--ed-school-on-primary,#fff); background-image:none; text-shadow:none; box-shadow:none; }
.easydojo-booking button.wp-element-button:hover, .easydojo-booking a.ed-calendar-link:hover { background:var(--ed-button-blue); color:var(--ed-school-on-primary,#fff); filter:none; box-shadow:inset 0 0 0 2px currentColor; }
.easydojo-booking .ed-calendar button.ed-day-empty, .easydojo-booking .ed-calendar button.ed-day-empty:hover { background:none; border-color:transparent; color:inherit; filter:none; }
.easydojo-booking .ed-type-headline, .easydojo-booking .ed-type-subheadline { white-space:pre-line; overflow-wrap:anywhere; text-transform:none; }

/* Respond to the shortcode's actual available width, including narrow desktop columns. */
.easydojo-booking { container-type:inline-size; container-name:easydojo-booking; max-width:min(48rem,calc(100vw - 2rem)); }
.easydojo-booking .ed-calendar-layout { display:grid; grid-template-columns:minmax(0,1fr); gap:1.5rem; align-items:start; }
.easydojo-booking .ed-calendar-pane, .easydojo-booking .ed-calendar-layout .ed-times { min-width:0; }
.easydojo-booking .ed-calendar-layout .ed-times[hidden] { display:none; }
.easydojo-booking .ed-calendar-layout .ed-times { margin-block:1rem; animation:ed-times-reveal .22s ease-out; }
.easydojo-booking .ed-calendar-layout .ed-times h4 { margin-top:0; overflow-wrap:anywhere; }
.easydojo-booking .ed-calendar-layout .ed-times button { max-width:100%; min-width:0; white-space:normal; overflow-wrap:anywhere; }
@keyframes ed-times-reveal { from { opacity:0; transform:translateX(.75rem); } to { opacity:1; transform:translateX(0); } }
@media (prefers-reduced-motion:reduce) { .easydojo-booking .ed-calendar-layout .ed-times { animation:none; } }

.easydojo-booking .ed-calendar-layout .ed-times { display:block; text-align:center; }
.easydojo-booking .ed-time-type { width:100%; min-width:0; margin-block:1rem; }
.easydojo-booking .ed-time-type h5 { margin-block:0 .75rem; text-transform:none; overflow-wrap:anywhere; }
.easydojo-booking .ed-time-options { display:grid; grid-template-columns:minmax(0,1fr); gap:.65rem; }
.easydojo-booking .ed-time-options button.ed-time-button { width:100%; min-height:3rem; margin:0; padding:.7rem .5rem; background:#fff; color:#263238; border:1px solid #cbd0d5; border-radius:.45rem; filter:none; }
.easydojo-booking .ed-time-options button.ed-time-button:hover { background:#f5f7f9; color:#263238; border-color:var(--ed-button-blue); filter:none; }
@container easydojo-booking (min-width:18rem) {
 .easydojo-booking .ed-time-options { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .easydojo-booking .ed-time-options button:last-child:nth-child(2n+1) { grid-column:1 / -1; }
}
@container easydojo-booking (min-width:32rem) {
 .easydojo-booking .ed-time-options { grid-template-columns:repeat(3,minmax(0,1fr)); }
 .easydojo-booking .ed-time-options button:last-child:nth-child(2n+1) { grid-column:auto; }
 .easydojo-booking .ed-time-options button:last-child:nth-child(3n+1) { grid-column:1 / -1; }
}

.easydojo-booking .ed-appointment-summary { margin-block:1.75rem; overflow-wrap:anywhere; }
.easydojo-booking .ed-appointment-summary h3 { margin:0 0 .65rem; text-transform:none; }
.easydojo-booking .ed-appointment-summary p { margin:.25rem 0; }

.easydojo-booking .ed-calendar button.ed-day-available .ed-slot-count { color:inherit; }

/* Keep the chosen group visible through calendar, details and confirmation. */
.easydojo-booking .ed-groups { gap:.65rem; }
.easydojo-booking .ed-groups button { min-height:3rem; padding:.7rem .5rem; font-size:1em; border:1px solid #cbd0d5; border-radius:.45rem; background:#fff; color:#263238; filter:none; box-shadow:none; }
.easydojo-booking .ed-groups button:hover { background:#f5f7f9; color:#263238; border-color:var(--ed-button-blue); filter:none; box-shadow:none; }
.easydojo-booking .ed-groups button[aria-pressed=true], .easydojo-booking .ed-groups button[aria-pressed=true]:hover { background:var(--ed-button-blue); border-color:var(--ed-button-blue); color:var(--ed-school-on-primary,#fff); outline:none; }
.easydojo-booking .ed-groups button:disabled { opacity:1; cursor:default; }
.easydojo-booking .ed-groups button:focus-visible { outline:2px solid currentColor; outline-offset:3px; }

/* Secondary booking action retains a visible school-color outline. */
.easydojo-booking button.wp-element-button.ed-secondary-button { background:#fff; color:#263238; border:1px solid var(--ed-button-blue); border-radius:.45rem; padding:.7rem 1rem; min-height:3rem; max-width:100%; white-space:normal; background-image:none; box-shadow:none; text-transform:none; }
.easydojo-booking button.wp-element-button.ed-secondary-button:hover { background:var(--ed-button-blue); color:var(--ed-school-on-primary,#fff); border-color:var(--ed-button-blue); box-shadow:none; }

/* Calendar choices remain white in every pointer state, with equal-sized columns. */
.easydojo-booking .ed-calendar-links { display:grid; grid-template-columns:minmax(0,1fr); grid-auto-rows:1fr; gap:.65rem; }
.easydojo-booking .ed-calendar-links a.ed-calendar-link,
.easydojo-booking .ed-calendar-links a.ed-calendar-link:hover,
.easydojo-booking .ed-calendar-links a.ed-calendar-link:focus,
.easydojo-booking .ed-calendar-links a.ed-calendar-link:active,
.easydojo-booking .ed-calendar-links a.ed-calendar-link:visited { width:100%; min-width:0; min-height:3rem; margin:0; padding:.7rem .5rem; justify-content:center; background:#fff; background-image:none; color:#263238; border:1px solid var(--ed-button-blue); border-radius:.45rem; box-shadow:none; filter:none; transform:none; text-decoration:none; text-shadow:none; text-transform:none; white-space:normal; overflow-wrap:anywhere; }
.easydojo-booking .ed-calendar-links a.ed-calendar-link:focus-visible { outline:2px solid #263238; outline-offset:3px; }
@container easydojo-booking (min-width:28rem) { .easydojo-booking .ed-calendar-links { grid-template-columns:repeat(2,minmax(0,1fr)); } }
