/* Availability links: private manager and isolated public booking page. */
:root {
  --org-booking-ink: #173b30;
  --org-booking-green: #477c68;
  --org-booking-line: rgba(62, 104, 82, .24);
  --org-booking-paper: #f5faef;
  --org-booking-soft: #e9f3e2;
  --org-booking-danger: #a44236;
}

body.org-booking-manager-open { overflow: hidden; }
.org-booking-manager-layer { position: fixed; inset: 0; z-index: 100000; display: grid; place-items: center; padding: 18px; background: rgba(8, 30, 23, .62); backdrop-filter: blur(12px); }
.org-booking-manager { width: min(1060px, calc(100vw - 36px)); max-height: min(900px, calc(100dvh - 36px)); margin: auto; padding: 0; overflow: auto; color: var(--org-booking-ink); background: rgba(244, 249, 238, .97); border: 1px solid rgba(255,255,255,.75); border-radius: 26px; box-shadow: 0 30px 90px rgba(5, 28, 20, .4); }
.org-booking-manager::backdrop { background: transparent; }
.org-booking-manager button, .org-booking-manager input, .org-booking-manager select, .org-booking-manager textarea { font: inherit; }
.org-booking-manager button, .org-booking-manager a { -webkit-tap-highlight-color: transparent; }
.org-booking-manager-head, .org-booking-form > header { position: sticky; top: 0; z-index: 3; display: flex; gap: 22px; align-items: flex-start; padding: 25px 28px; color: #f8fbf3; background: linear-gradient(115deg, #103b2e, #235847 62%, #39715d); }
.org-booking-manager-head > div, .org-booking-form > header > div { flex: 1; }
.org-booking-manager-head small, .org-booking-form > header small { display: block; margin-bottom: 4px; font-size: 11px; font-weight: 800; letter-spacing: .14em; opacity: .72; }
.org-booking-manager-head h2, .org-booking-form > header h2 { margin: 0 0 4px; color: inherit; font: 800 clamp(24px, 3vw, 34px)/1.08 Georgia, serif; }
.org-booking-manager-head p, .org-booking-form > header p { max-width: 700px; margin: 0; color: inherit; opacity: .82; }
.org-booking-manager-head > button, .org-booking-form > header > button:last-child { width: 42px; height: 42px; flex: 0 0 42px; border: 0; border-radius: 14px; color: var(--org-booking-ink); background: rgba(249, 252, 245, .9); font-size: 24px; cursor: pointer; }
.org-booking-form > header > [data-booking-back] { align-self: center; padding: 10px 14px; border: 1px solid rgba(255,255,255,.35); border-radius: 13px; color: white; background: rgba(255,255,255,.1); cursor: pointer; }
.org-booking-toolbar { display: flex; align-items: center; gap: 18px; padding: 20px 28px; border-bottom: 1px solid var(--org-booking-line); }
.org-booking-toolbar > div { display: grid; flex: 1; }
.org-booking-toolbar span { color: #607b70; font-size: 13px; }
.org-booking-manager .org-primary, .org-booking-open { min-height: 42px; padding: 10px 16px; border: 1px solid #477c68; border-radius: 13px; color: #fff; background: linear-gradient(135deg, #4e866f, #396e5a); box-shadow: 0 7px 15px rgba(39, 91, 69, .2); cursor: pointer; }
.org-booking-manager button:disabled { opacity: .55; cursor: wait; }
.org-booking-status { margin: 14px 28px 0; padding: 11px 13px; border: 1px solid #b7d3b1; border-radius: 12px; color: #2f634f; background: #edf7e7; }
.org-booking-status.is-error { color: #81352c; border-color: #e1aaa1; background: #fff0ec; }
.org-booking-list { display: grid; gap: 14px; padding: 20px 28px 28px; }
.org-booking-card { display: grid; grid-template-columns: 52px minmax(0, 1fr) auto; gap: 16px; align-items: center; padding: 17px; border: 1px solid var(--org-booking-line); border-radius: 18px; background: rgba(255,255,255,.66); box-shadow: 0 7px 20px rgba(27, 66, 51, .07); }
.org-booking-card.is-paused { opacity: .72; background: rgba(236, 239, 232, .72); }
.org-booking-card-icon { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 16px; color: #2b624d; background: #e1efda; font-size: 20px; }
.org-booking-card-copy { min-width: 0; }
.org-booking-card-copy > div { display: flex; gap: 10px; align-items: center; }
.org-booking-card-copy h3 { margin: 5px 0 3px; color: var(--org-booking-ink); font: 800 18px/1.2 Georgia, serif; }
.org-booking-card-copy p { margin: 0 0 6px; color: #526e62; }
.org-booking-card-copy code { display: block; max-width: 100%; overflow: hidden; color: #365c4d; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.org-booking-card-copy > small { color: #789086; }
.org-booking-state { padding: 3px 8px; border-radius: 999px; color: #f7fff8; background: #4b8069; font-size: 10px; font-weight: 800; text-transform: uppercase; }
.is-paused .org-booking-state { background: #75817b; }
.org-booking-card-actions { display: grid; grid-template-columns: repeat(5, minmax(54px, 1fr)); gap: 6px; }
.org-booking-card-actions button, .org-booking-card-actions a { display: grid; place-items: center; gap: 4px; min-width: 58px; min-height: 54px; padding: 7px; border: 1px solid var(--org-booking-line); border-radius: 12px; color: #315848; background: #f8fcf5; font-size: 11px; text-decoration: none; cursor: pointer; }
.org-booking-card-actions i { font-size: 15px; }
.org-booking-card-actions .is-danger { color: var(--org-booking-danger); border-color: rgba(190, 86, 71, .35); background: #fff5f1; }
.org-booking-manager-foot { display: flex; gap: 12px; align-items: center; padding: 16px 28px; border-top: 1px solid var(--org-booking-line); color: #4f6d60; background: rgba(224, 237, 218, .65); font-size: 13px; }
.org-booking-empty, .org-booking-loading { display: grid; justify-items: center; gap: 9px; padding: 64px 24px; text-align: center; }
.org-booking-empty > i, .org-booking-loading > i { color: #4d816a; font-size: 36px; }
.org-booking-empty h2, .org-booking-empty h3, .org-booking-loading h2 { margin: 0; color: var(--org-booking-ink); }
.org-booking-empty p, .org-booking-loading p { max-width: 520px; margin: 0 0 8px; color: #587267; }

.org-booking-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; padding: 24px 28px 10px; }
.org-booking-form label, .org-booking-advanced label { display: grid; align-content: start; gap: 6px; color: #315548; font-weight: 700; }
.org-booking-form label.is-wide, .org-booking-advanced label.is-wide { grid-column: 1 / -1; }
.org-booking-form label small, .org-booking-advanced label small { color: #6d8379; font-size: 12px; font-weight: 400; }
.org-booking-form input:not([type="checkbox"]), .org-booking-form select, .org-booking-form textarea { width: 100%; min-height: 44px; box-sizing: border-box; padding: 10px 12px; border: 1px solid #bdd0ba; border-radius: 12px; color: #183b30; background: rgba(255,255,255,.82); outline: 0; }
.org-booking-form textarea { resize: vertical; }
.org-booking-form input:focus, .org-booking-form select:focus, .org-booking-form textarea:focus { border-color: #39715d; box-shadow: 0 0 0 3px rgba(57,113,93,.14); }
.org-booking-week { margin: 12px 28px; padding: 17px; border: 1px solid var(--org-booking-line); border-radius: 18px; background: rgba(232, 242, 225, .64); }
.org-booking-week > header { margin-bottom: 10px; }
.org-booking-week > header div { display: grid; }
.org-booking-week > header span { color: #668076; font-size: 12px; }
.org-booking-day { display: grid; grid-template-columns: minmax(140px, 1fr) minmax(105px, .55fr) auto minmax(105px, .55fr); gap: 10px; align-items: center; padding: 8px 0; border-top: 1px solid rgba(61,104,82,.12); }
.org-booking-day label { display: flex; gap: 9px; align-items: center; }
.org-booking-day input[type="checkbox"], .org-booking-enabled input, .org-booking-consent input { width: 20px; height: 20px; accent-color: #3d745e; }
.org-booking-day > span { color: #789086; }
.org-booking-advanced { margin: 14px 28px; border: 1px solid var(--org-booking-line); border-radius: 15px; background: rgba(255,255,255,.5); }
.org-booking-advanced summary { padding: 14px 16px; color: #315548; font-weight: 800; cursor: pointer; }
.org-booking-advanced > div { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; padding: 0 16px 16px; }
.org-booking-enabled { display: flex !important; gap: 12px !important; align-items: center !important; margin: 16px 28px; padding: 15px; border: 1px solid #b9d1b5; border-radius: 15px; background: #edf7e7; }
.org-booking-enabled > span { display: grid; }
.org-booking-form > footer { position: sticky; bottom: 0; z-index: 3; display: flex; justify-content: flex-end; gap: 10px; padding: 17px 28px; border-top: 1px solid var(--org-booking-line); background: rgba(244,249,238,.96); backdrop-filter: blur(10px); }
.org-booking-form > footer button:not(.org-primary) { padding: 10px 16px; border: 1px solid var(--org-booking-line); border-radius: 12px; color: #315548; background: #f8fcf5; cursor: pointer; }

body.org-booking-public-page { min-height: 100vh; margin: 0; color: var(--org-booking-ink); background: linear-gradient(rgba(15, 47, 37, .76), rgba(18, 52, 41, .68)), url("images/visuals/calendar-week-background-v1.webp") center / cover fixed, #153d31; font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.org-booking-public-page *, .org-booking-public-page *::before, .org-booking-public-page *::after { box-sizing: border-box; }
.org-booking-public { width: min(1120px, calc(100% - 32px)); margin: 0 auto; padding: clamp(22px, 5vw, 58px) 0 28px; }
.org-booking-public-shell { display: grid; grid-template-columns: minmax(280px, .78fr) minmax(0, 1.45fr); overflow: hidden; border: 1px solid rgba(255,255,255,.72); border-radius: 28px; background: rgba(246, 250, 241, .96); box-shadow: 0 30px 90px rgba(3, 23, 16, .44); backdrop-filter: blur(18px); }
.org-booking-public-head { min-height: 650px; padding: clamp(26px, 4vw, 46px); color: #f8fcf5; background: radial-gradient(circle at 100% 0, rgba(117,167,131,.35), transparent 34%), linear-gradient(150deg, #0e3529, #245744 70%, #396d58); }
.org-booking-public-brand { display: flex; gap: 10px; align-items: center; margin-bottom: clamp(50px, 8vw, 100px); font-size: 11px; font-weight: 900; letter-spacing: .16em; }
.org-booking-public-brand i { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 12px; color: #1f5945; background: #e9f6e2; font-size: 17px; }
.org-booking-public-head > div:nth-child(2) small { font-size: 11px; font-weight: 800; letter-spacing: .13em; opacity: .68; text-transform: uppercase; }
.org-booking-public-head h1 { margin: 8px 0 9px; color: inherit; font: 800 clamp(32px, 5vw, 52px)/1 Georgia, serif; }
.org-booking-public-head p { margin: 0; color: inherit; font-size: 17px; opacity: .82; }
.org-booking-public-head dl { display: grid; gap: 0; margin: 48px 0 0; }
.org-booking-public-head dl div { display: grid; gap: 4px; padding: 15px 0; border-top: 1px solid rgba(255,255,255,.18); }
.org-booking-public-head dt { font-size: 12px; opacity: .65; }
.org-booking-public-head dt i { width: 20px; }
.org-booking-public-head dd { margin: 0; font-weight: 750; }
.org-booking-public-calendar, .org-booking-public-form { min-width: 0; padding: clamp(24px, 4vw, 42px); background: rgba(247,251,242,.96); }
.org-booking-public-calendar > header { display: flex; gap: 20px; align-items: end; margin-bottom: 26px; }
.org-booking-public-calendar > header > div { flex: 1; }
.org-booking-public-calendar small, .org-booking-public-form > header > small, .org-booking-public-success > small { color: #618174; font-size: 10px; font-weight: 900; letter-spacing: .14em; }
.org-booking-public-calendar h2, .org-booking-public-form h2 { margin: 4px 0; color: var(--org-booking-ink); font: 800 27px/1.1 Georgia, serif; }
.org-booking-public-calendar p { margin: 0; color: #607a70; }
.org-booking-public-calendar > header label { display: grid; gap: 5px; min-width: 160px; color: #315548; font-size: 12px; font-weight: 700; }
.org-booking-public-calendar input, .org-booking-public-form input:not([type="checkbox"]), .org-booking-public-form textarea { width: 100%; min-height: 46px; padding: 10px 12px; border: 1px solid #b9cfb5; border-radius: 12px; color: var(--org-booking-ink); background: white; font: inherit; outline: none; }
.org-booking-public-calendar input:focus, .org-booking-public-form input:focus, .org-booking-public-form textarea:focus { border-color: #39715d; box-shadow: 0 0 0 3px rgba(57,113,93,.14); }
.org-booking-public-days { display: grid; gap: 12px; }
.org-booking-public-day { overflow: hidden; border: 1px solid var(--org-booking-line); border-radius: 15px; background: rgba(255,255,255,.7); }
.org-booking-public-day > header { display: flex; justify-content: space-between; gap: 12px; padding: 11px 14px; color: #315548; background: #edf5e7; }
.org-booking-public-day time { font-weight: 800; text-transform: capitalize; }
.org-booking-public-day > header span { color: #71877e; font-size: 12px; }
.org-booking-public-day > div { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; padding: 12px; }
.org-booking-public-day button { display: grid; grid-template-columns: auto auto; justify-content: center; gap: 0 7px; align-items: center; min-height: 50px; border: 1px solid #a9c5a7; border-radius: 12px; color: #245240; background: #f9fcf6; cursor: pointer; }
.org-booking-public-day button i { grid-row: 1 / span 2; }
.org-booking-public-day button span { font-weight: 850; }
.org-booking-public-day button small { color: #71877e; font-size: 9px; letter-spacing: 0; }
.org-booking-public-day button:hover, .org-booking-public-day button:focus-visible, .org-booking-public-day button.is-selected { color: #fff; border-color: #39715d; background: #477c68; transform: translateY(-1px); }
.org-booking-public-day button:hover small, .org-booking-public-day button:focus-visible small { color: white; }
.org-booking-public-day.is-empty > div { display: none; }
.org-booking-time-note { display: flex; gap: 9px; margin-top: 18px !important; padding: 12px; border-radius: 12px; background: #edf5e7; font-size: 12px; }
.org-booking-no-slots { display: grid; justify-items: center; gap: 6px; padding: 34px; color: #5d766c; text-align: center; }
.org-booking-no-slots i { font-size: 28px; }
.org-booking-public-form > header > button { margin: -8px 0 25px; padding: 8px 0; border: 0; color: #376753; background: transparent; font: inherit; font-weight: 750; cursor: pointer; }
.org-booking-chosen { display: flex; gap: 14px; align-items: center; margin: 20px 0 25px; padding: 15px; border: 1px solid #b7d1b2; border-radius: 15px; background: #ebf5e4; }
.org-booking-chosen > i { display: grid; place-items: center; width: 44px; height: 44px; flex: 0 0 44px; border-radius: 14px; color: white; background: #477c68; }
.org-booking-chosen > div { display: grid; gap: 2px; }
.org-booking-chosen strong { text-transform: capitalize; }
.org-booking-chosen span, .org-booking-chosen small { color: #526f63; }
.org-booking-public-form form { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.org-booking-public-form label { display: grid; gap: 6px; color: #315548; font-size: 13px; font-weight: 750; }
.org-booking-public-form label.is-wide, .org-booking-public-form [data-booking-error], .org-booking-confirm { grid-column: 1 / -1; }
.org-booking-public-form label small { color: #71877e; font-weight: 400; }
.org-booking-public-form textarea { resize: vertical; }
.org-booking-consent { display: flex !important; flex-direction: row; align-items: flex-start; gap: 10px !important; padding: 12px; border-radius: 12px; background: #edf5e7; font-weight: 500 !important; }
.org-booking-consent input { flex: 0 0 20px; }
.org-booking-honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.org-booking-public-form [data-booking-error] { margin: 0; padding: 12px; border: 1px solid #e0aaa1; border-radius: 12px; color: #83382d; background: #fff0ec; }
.org-booking-confirm { min-height: 50px; border: 0; border-radius: 14px; color: white; background: linear-gradient(135deg, #4e866f, #356854); box-shadow: 0 9px 19px rgba(41, 91, 69, .23); font: inherit; font-weight: 800; cursor: pointer; }
.org-booking-confirm:disabled { opacity: .65; cursor: wait; }
.org-booking-public-form > footer { display: flex; gap: 10px; margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--org-booking-line); color: #617b70; font-size: 12px; }
.org-booking-public-footer { padding: 15px; color: rgba(255,255,255,.75); font-size: 12px; text-align: center; }
.org-booking-public-loading, .org-booking-public-failure, .org-booking-public-success { display: grid; justify-items: center; width: min(620px, 100%); margin: 8vh auto; padding: clamp(36px, 7vw, 70px); border: 1px solid rgba(255,255,255,.7); border-radius: 26px; color: var(--org-booking-ink); background: rgba(247,251,242,.96); box-shadow: 0 25px 70px rgba(3,23,16,.4); text-align: center; }
.org-booking-public-loading > i, .org-booking-public-failure > i, .org-booking-public-success > i { margin-bottom: 12px; color: #477c68; font-size: 44px; }
.org-booking-public-loading h1, .org-booking-public-failure h1, .org-booking-public-success h1 { margin: 0 0 9px; font: 800 clamp(28px, 5vw, 43px)/1.05 Georgia, serif; }
.org-booking-public-loading p, .org-booking-public-failure p, .org-booking-public-success p { color: #587267; }
.org-booking-public-failure button, .org-booking-public-success a { padding: 12px 18px; border: 0; border-radius: 13px; color: white; background: #477c68; font: inherit; font-weight: 800; text-decoration: none; cursor: pointer; }
.org-booking-public-success > div { display: grid; gap: 5px; width: 100%; margin: 16px 0 22px; padding: 18px; border: 1px solid #b8d0b3; border-radius: 15px; background: #ebf5e4; }
.org-booking-public-success > div span { text-transform: capitalize; }
.org-booking-public-success > div strong { font-size: 24px; }
.org-booking-public-success > small:last-child { margin-top: 18px; letter-spacing: 0; }
.org-booking-public-conflict { width: min(1120px, 100%); margin: 0 auto 14px; padding: 13px; border: 1px solid #e0aaa1; border-radius: 12px; color: #733228; background: #fff0ec; }

@media (max-width: 880px) {
  .org-booking-card { grid-template-columns: 46px minmax(0, 1fr); }
  .org-booking-card-actions { grid-column: 1 / -1; }
  .org-booking-public-shell { grid-template-columns: 1fr; }
  .org-booking-public-head { min-height: auto; }
  .org-booking-public-brand { margin-bottom: 44px; }
  .org-booking-public-head dl { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; margin-top: 35px; }
  .org-booking-public-day > div { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 620px) {
  .org-booking-manager-layer { padding: 0; }
  .org-booking-manager { width: 100vw; max-height: 100dvh; border-radius: 0; }
  .org-booking-manager-head, .org-booking-form > header { padding: 19px 17px; }
  .org-booking-form > header { display: grid; grid-template-columns: 1fr auto; }
  .org-booking-form > header > [data-booking-back] { grid-column: 1 / -1; justify-self: start; }
  .org-booking-toolbar, .org-booking-list, .org-booking-form-grid { padding-right: 16px; padding-left: 16px; }
  .org-booking-toolbar { align-items: stretch; }
  .org-booking-toolbar .org-primary { font-size: 0; }
  .org-booking-toolbar .org-primary i { font-size: 16px; }
  .org-booking-card { grid-template-columns: 1fr; }
  .org-booking-card-icon { display: none; }
  .org-booking-card-actions { grid-template-columns: repeat(5, 1fr); }
  .org-booking-card-actions button, .org-booking-card-actions a { min-width: 0; }
  .org-booking-card-actions span { display: none; }
  .org-booking-form-grid, .org-booking-advanced > div { grid-template-columns: 1fr; }
  .org-booking-form label.is-wide, .org-booking-advanced label.is-wide { grid-column: auto; }
  .org-booking-week, .org-booking-advanced, .org-booking-enabled { margin-right: 16px; margin-left: 16px; }
  .org-booking-day { grid-template-columns: 1fr 1fr; }
  .org-booking-day > span { display: none; }
  .org-booking-day label { grid-column: 1 / -1; }
  .org-booking-public { width: min(100% - 16px, 1120px); padding-top: 8px; }
  .org-booking-public-shell { border-radius: 20px; }
  .org-booking-public-head, .org-booking-public-calendar, .org-booking-public-form { padding: 24px 19px; }
  .org-booking-public-head dl { grid-template-columns: 1fr; }
  .org-booking-public-calendar > header { display: grid; }
  .org-booking-public-day > div { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .org-booking-public-form form { grid-template-columns: 1fr; }
  .org-booking-public-form label.is-wide, .org-booking-public-form [data-booking-error], .org-booking-confirm { grid-column: auto; }
}

@media (prefers-reduced-motion: reduce) {
  .org-booking-manager *, .org-booking-public * { scroll-behavior: auto !important; transition: none !important; animation-duration: .01ms !important; }
}
