.home-booking { padding: 28px 0 36px; }
.home-booking__inner { display: grid; grid-template-columns: auto 1fr auto; gap: 26px; align-items: center; padding: 30px 34px; border: 1px solid var(--line); border-radius: 20px; background: #fff; }
.home-booking__icon { width: 62px; height: 62px; display: grid; place-items: center; border-radius: 18px; background: var(--blue); color: var(--accent-dark); font: 36px var(--display); }
.home-booking h2 { margin: 7px 0 9px; font-size: clamp(22px, 2.2vw, 29px); }
.home-booking p { max-width: 650px; margin: 0; font-size: 15px; }
.home-booking .button { white-space: nowrap; }
.booking-page { padding: 58px 0 76px; }
.booking-intro { max-width: 760px; margin: 0 auto 36px; text-align: center; }
.booking-intro h1 { font-size: clamp(40px, 4.9vw, 64px); margin: 14px 0 18px; }
.booking-intro p { max-width: 560px; margin: 0 auto; font-size: 17px; }
[data-booking-app] { --ink: #17272b; --muted: #586769; --line: #dbe2dd; --accent: #5355cf; --accent-dark: #3033a5; --blue: #e8edff; --display: "Space Grotesk", Arial, sans-serif; color: var(--ink); font-family: "DM Sans", system-ui, sans-serif; font-size: 15px; line-height: 1.6; text-align: left; }
[data-booking-app], [data-booking-app] * { box-sizing: border-box; }
[data-booking-app] h2, [data-booking-app] h3 { color: var(--ink); font-family: var(--display); line-height: 1.2; letter-spacing: -.035em; margin-top: 0; }
[data-booking-app] p { color: var(--muted); line-height: 1.7; }
[data-booking-app] button, [data-booking-app] input, [data-booking-app] select, [data-booking-app] textarea { font-family: inherit; }
[data-booking-app] button { cursor: pointer; }
[data-booking-app] button:focus-visible, [data-booking-app] a:focus-visible, [data-booking-app] input:focus-visible, [data-booking-app] select:focus-visible, [data-booking-app] textarea:focus-visible { outline: 3px solid #b8bce7; outline-offset: 3px; }
[data-booking-app] .button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; border: 1px solid transparent; border-radius: 10px; padding: 14px 21px; font-size: 14px; font-weight: 600; line-height: 1.3; text-decoration: none; }
[data-booking-app] .button--ink { background: var(--ink); color: #fff; }
[data-booking-app] .button--outline { background: #fff; border-color: var(--line); color: var(--ink); }
[data-booking-app] .eyebrow { color: var(--accent-dark); font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
[data-booking-app] .booking-preview-label { margin: 0 0 20px; padding: 10px 13px; border: 1px solid #dadcf5; border-radius: 9px; background: #f3f3ff; color: var(--accent-dark); font-size: 12px; font-weight: 600; }
[data-booking-app].booking-shell { width: min(1070px, 100%); margin: 0 auto; display: grid; grid-template-columns: 310px minmax(0, 1fr); overflow: hidden; border: 1px solid var(--line); border-radius: 24px; background: #fff; box-shadow: 0 20px 75px #17272b09; }
[data-booking-app] .booking-aside { background: #f0f2fe; padding: 35px 30px; border-right: 1px solid #dfe3f2; }
[data-booking-app] .booking-host { display: flex; align-items: center; gap: 13px; margin-bottom: 40px; }
[data-booking-app] .booking-avatar { display: grid; width: 64px; height: 64px; place-items: center; background: #fff; border: 1px solid #e0e1fa; border-radius: 50%; flex-shrink: 0; }
[data-booking-app] .booking-host span:not(.booking-avatar) { display: block; font-size: 12px; color: var(--muted); }
[data-booking-app] .booking-host strong { display: block; font: 600 17px var(--display); overflow-wrap: anywhere; }
[data-booking-app] .booking-aside h2 { font-size: 31px; margin: 12px 0 15px; overflow-wrap: anywhere; }
[data-booking-app] .booking-aside p { font-size: 14px; }
[data-booking-app] .booking-aside__meta { display: grid; gap: 15px; margin: 25px 0 32px; font-size: 13px; }
[data-booking-app] .booking-aside__meta > span { display: flex; align-items: center; gap: 10px; }
[data-booking-app] .booking-aside__meta i { font-style: normal; width: 20px; font-size: 20px; color: var(--accent-dark); }
[data-booking-app] .booking-aside__note { padding-top: 22px; border-top: 1px solid #d8def0; }
[data-booking-app] .booking-aside .text-link { font-size: 12px; margin-top: 12px; }
[data-booking-app] .booking-workspace { min-width: 0; padding: 28px 32px 34px; min-height: 510px; }
[data-booking-app] .booking-feedback { font-size: 14px; margin: 0; }
[data-booking-app] .booking-feedback:not(:empty) { margin-bottom: 22px; padding: 13px 16px; border: 1px solid #d2dcf3; border-radius: 11px; background: #f2f5ff; color: #314161; }
[data-booking-app] .booking-feedback[data-state="error"]:not(:empty) { color: #8d2939; background: #fff1f1; border-color: #f0c3cb; }
[data-booking-app] .booking-step { display: block; font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--accent-dark); margin: 8px 0 11px; }
[data-booking-app] .booking-stage h2, [data-booking-app] .booking-confirmation h2, [data-booking-app] .booking-unavailable h2 { font-size: 29px; margin-bottom: 24px; }
[data-booking-app] .booking-picker { display: grid; grid-template-columns: minmax(0, 1.38fr) minmax(145px, 1fr); gap: 26px; }
[data-booking-app] .booking-calendar__heading { display: flex; align-items: center; justify-content: space-between; gap: 6px; margin: 2px 0 18px; }
[data-booking-app] .booking-calendar__heading h3 { margin: 0; font-size: 17px; letter-spacing: -.03em; }
[data-booking-app] .booking-month-arrow { width: 34px; height: 36px; border: 0; border-radius: 9px; background: #f3f5f1; color: var(--ink); font-size: 24px; }
[data-booking-app] .booking-month-arrow:hover:not(:disabled) { background: #e8edff; }
[data-booking-app] .booking-month-arrow:disabled { opacity: .35; cursor: default; }
[data-booking-app] .booking-calendar__grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 5px; }
[data-booking-app] .booking-weekday { text-align: center; font-size: 10px; color: var(--muted); padding-bottom: 7px; }
[data-booking-app] .booking-day { display: grid; place-items: center; aspect-ratio: 1; width: 100%; border: 0; border-radius: 50%; padding: 0; background: #f3f5fc; color: var(--accent-dark); font-size: 13px; font-weight: 600; position: relative; min-height: 32px; }
[data-booking-app] .booking-day:hover:not(:disabled) { background: #dfe4ff; }
[data-booking-app] .booking-day:disabled { background: transparent; color: #aeb6b8; cursor: default; font-weight: 400; }
[data-booking-app] .booking-day.is-selected { color: #fff; background: var(--accent); }
[data-booking-app] .booking-day.is-today::after { content: ""; position: absolute; bottom: 4px; width: 3px; height: 3px; border-radius: 50%; background: currentColor; }
[data-booking-app] .booking-timezone { margin-top: 28px; }
[data-booking-app] .booking-timezone label, [data-booking-app] .booking-type-field label, [data-booking-app] .booking-field label { display: block; font-size: 12px; font-weight: 700; margin: 0 0 7px; color: var(--ink); }
[data-booking-app] .booking-timezone select, [data-booking-app] .booking-type-field select, [data-booking-app] .booking-field input, [data-booking-app] .booking-field textarea { width: 100%; border: 1px solid var(--line); background: #fff; border-radius: 9px; padding: 11px; font-size: 14px; color: var(--ink); }
[data-booking-app] .booking-timezone select { font-size: 12px; }
[data-booking-app] .booking-timezone small, [data-booking-app] .booking-field small { display: block; color: var(--muted); font-size: 11px; line-height: 1.6; margin-top: 7px; }
[data-booking-app] .booking-type-field { margin: 0 0 26px; }
[data-booking-app] .booking-slots { min-width: 0; border-left: 1px solid #e7ece7; padding-left: 24px; }
[data-booking-app] .booking-slots h3 { font-size: 15px; letter-spacing: -.015em; margin: 11px 0 13px; line-height: 1.5; }
[data-booking-app] .booking-slots__note { font-size: 12px; margin: 0 0 14px; }
[data-booking-app] .booking-slot-list { display: grid; gap: 9px; max-height: 324px; overflow-y: auto; padding: 3px; scrollbar-width: thin; }
[data-booking-app] .booking-slot { width: 100%; min-height: 43px; border: 1px solid #b8bce7; border-radius: 9px; background: #fff; color: var(--accent-dark); font-size: 13px; font-weight: 600; }
[data-booking-app] .booking-slot:hover { background: var(--accent); border-color: var(--accent); color: #fff; }
[data-booking-app] .booking-empty { background: #f5f6f3; border: 1px dashed #d6ddd6; border-radius: 12px; padding: 20px 14px; font-size: 13px; color: var(--muted); margin: 16px 0 12px; }
[data-booking-app] .booking-inline-error { color: #8d2939; font-size: 13px; }
[data-booking-app] .booking-retry, [data-booking-app] .booking-copy { padding: 10px 13px; border-radius: 9px; border: 1px solid var(--line); background: #fff; font-size: 12px; font-weight: 600; }
[data-booking-app] .booking-text-button { border: 0; padding: 10px 0; background: none; color: var(--accent-dark); font-size: 12px; font-weight: 600; text-align: left; }
[data-booking-app] .booking-text-button:hover { text-decoration: underline; }
[data-booking-app] .booking-text-button--danger { color: #a03346; }
[data-booking-app] .booking-details > .booking-text-button { margin: -9px 0 17px; }
[data-booking-app] .booking-selected-time { display: grid; gap: 2px; background: #f0f3fd; border-radius: 12px; padding: 17px 19px; margin-bottom: 25px; }
[data-booking-app] .booking-selected-time strong { font-size: 14px; }
[data-booking-app] .booking-selected-time span { font-size: 14px; color: var(--accent-dark); }
[data-booking-app] .booking-selected-time small { color: var(--muted); font-size: 11px; }
[data-booking-app] .booking-form { display: grid; gap: 19px; }
[data-booking-app] .booking-field input, [data-booking-app] .booking-field textarea { min-height: 45px; }
[data-booking-app] .booking-field textarea { resize: vertical; }
[data-booking-app] .booking-privacy { font-size: 11px; line-height: 1.7; margin: 0; }
[data-booking-app] .booking-submit { width: 100%; justify-content: center; }
[data-booking-app] .booking-submit:disabled { opacity: .7; cursor: wait; }
[data-booking-app] .booking-confirmation { padding-top: 5px; }
[data-booking-app] .booking-confirmation__icon { display: grid; place-items: center; width: 54px; height: 54px; border-radius: 50%; background: #e6f3e6; color: #27644e; font-size: 27px; margin: 0 0 20px; }
[data-booking-app] .booking-confirmation.is-cancelled .booking-confirmation__icon { background: #fcecef; color: #a03346; }
[data-booking-app] .booking-confirmation h2 { margin-bottom: 13px; }
[data-booking-app] .booking-confirmation > p, [data-booking-app] .booking-unavailable > p { font-size: 14px; line-height: 1.7; overflow-wrap: anywhere; }
[data-booking-app] .booking-confirmation__summary { display: grid; gap: 5px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 20px 0; margin: 25px 0; }
[data-booking-app] .booking-confirmation__summary strong { font-size: 16px; }
[data-booking-app] .booking-confirmation__summary span { font-size: 13px; color: var(--muted); }
[data-booking-app] .booking-private-link { margin-top: 27px; padding: 18px; background: #f5f7f3; border-radius: 12px; }
[data-booking-app] .booking-private-link strong { font-size: 13px; }
[data-booking-app] .booking-private-link p { font-size: 11px; margin: 5px 0 13px; }
[data-booking-app] .booking-private-link__row { display: flex; gap: 8px; }
[data-booking-app] .booking-private-link input { min-width: 0; width: 100%; border: 1px solid var(--line); padding: 9px; border-radius: 8px; font-size: 11px; background: #fff; color: var(--muted); }
[data-booking-app] .booking-copy { flex-shrink: 0; }
[data-booking-app] .booking-manage-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 20px; margin-top: 28px; }
[data-booking-app] .booking-manage-actions .button, [data-booking-app] .booking-confirmation > .button { font-size: 13px; padding: 13px 19px; }
[data-booking-app] .booking-cancel-prompt { width: 100%; border: 1px solid #ecd0d6; border-radius: 12px; padding: 19px; background: #fff7f8; }
[data-booking-app] .booking-cancel-prompt p { font-size: 13px; margin: 7px 0 16px; }
[data-booking-app] .booking-cancel-prompt .booking-text-button { margin-left: 18px; }
[data-booking-app] .booking-loading { min-height: 430px; display: grid; place-content: center; justify-items: center; gap: 15px; }
[data-booking-app] .booking-loading p { font-size: 14px; }
[data-booking-app] .booking-spinner { width: 29px; height: 29px; border: 3px solid #e7e9f8; border-top-color: var(--accent); border-radius: 50%; animation: booking-spin .9s linear infinite; }
[data-booking-app] .booking-unavailable { padding: 75px 8px; }
[data-booking-app] .booking-unavailable .booking-text-button { margin-left: 18px; }
.booking-page__foot { text-align: center; font-size: 12px; max-width: 720px; margin: 25px auto 0; }
.booking-noscript { padding: 20px; margin: 20px auto; max-width: 1070px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
@keyframes booking-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { [data-booking-app] .booking-spinner { animation: none; } }
@media (max-width: 960px) {
  [data-booking-app].booking-shell { grid-template-columns: 260px minmax(0, 1fr); }
  [data-booking-app] .booking-aside { padding: 30px 24px; }
  [data-booking-app] .booking-workspace { padding: 27px 23px; }
  [data-booking-app] .booking-picker { gap: 17px; grid-template-columns: minmax(0, 1.35fr) minmax(130px, 1fr); }
  [data-booking-app] .booking-slots { padding-left: 15px; }
  .home-booking__inner { grid-template-columns: auto 1fr; }
  .home-booking .button { grid-column: 2; justify-self: start; }
}
@media (max-width: 760px) {
  .booking-page { padding: 35px 0 45px; }
  .booking-intro { text-align: left; margin-bottom: 27px; }
  .booking-intro h1 { font-size: 42px; }
  .booking-intro p { font-size: 15px; margin: 0; }
  [data-booking-app].booking-shell { grid-template-columns: 1fr; border-radius: 19px; }
  [data-booking-app] .booking-aside { padding: 24px; border-right: 0; border-bottom: 1px solid #dfe3f2; }
  [data-booking-app] .booking-host { margin-bottom: 20px; }
  [data-booking-app] .booking-avatar { width: 50px; height: 50px; }
  [data-booking-app] .booking-avatar img { width: 34px; height: 34px; }
  [data-booking-app] .booking-aside h2 { font-size: 26px; margin: 8px 0 10px; }
  [data-booking-app] .booking-aside p { margin-bottom: 0; }
  [data-booking-app] .booking-aside__meta { grid-template-columns: 1fr 1fr; gap: 9px; margin: 16px 0 0; font-size: 11px; }
  [data-booking-app] .booking-aside__meta > span:last-child { grid-column: 1 / -1; }
  [data-booking-app] .booking-aside__meta i { font-size: 17px; }
  [data-booking-app] .booking-aside__note, [data-booking-app] .booking-aside > .text-link { display: none; }
  [data-booking-app] .booking-workspace { padding: 24px; min-height: 460px; }
  [data-booking-app] .booking-stage h2, [data-booking-app] .booking-confirmation h2, [data-booking-app] .booking-unavailable h2 { font-size: 27px; }
  [data-booking-app] .booking-picker { grid-template-columns: minmax(0, 1.4fr) minmax(122px, 1fr); gap: 18px; }
  [data-booking-app] .booking-day { min-height: 31px; }
  [data-booking-app] .booking-slots { padding-left: 17px; }
  [data-booking-app] .booking-slot-list { max-height: 320px; }
  .booking-page__foot { font-size: 11px; }
  .home-booking { padding-top: 0; }
  .home-booking__inner { gap: 18px; padding: 24px; }
  .home-booking__icon { width: 47px; height: 47px; border-radius: 13px; font-size: 29px; }
  .home-booking h2 { font-size: 23px; }
}
@media (max-width: 480px) {
  .booking-page > .container { width: calc(100% - 28px); }
  .booking-intro { padding: 0 6px; }
  .booking-intro h1 { font-size: 38px; }
  [data-booking-app] .booking-workspace { padding: 23px 18px; }
  [data-booking-app] .booking-picker { grid-template-columns: 1fr; gap: 25px; }
  [data-booking-app] .booking-calendar__grid { gap: 7px; }
  [data-booking-app] .booking-day { max-height: 42px; font-size: 14px; }
  [data-booking-app] .booking-weekday { font-size: 11px; }
  [data-booking-app] .booking-calendar__heading h3 { font-size: 18px; }
  [data-booking-app] .booking-timezone { margin-top: 22px; }
  [data-booking-app] .booking-slots { border-left: 0; border-top: 1px solid var(--line); padding: 20px 0 0; }
  [data-booking-app] .booking-slots h3 { margin-top: 0; }
  [data-booking-app] .booking-slot-list { grid-template-columns: repeat(2, minmax(0, 1fr)); max-height: 285px; gap: 10px; }
  [data-booking-app] .booking-slot { min-height: 47px; }
  [data-booking-app] .booking-private-link { padding: 15px; }
  [data-booking-app] .booking-private-link__row { flex-direction: column; }
  [data-booking-app] .booking-copy { align-self: flex-start; }
  [data-booking-app] .booking-manage-actions { gap: 14px; }
  [data-booking-app] .booking-cancel-prompt .booking-text-button { display: block; margin: 12px 0 0; }
  .home-booking__inner { grid-template-columns: 1fr; padding: 24px; }
  .home-booking .button { grid-column: auto; }
}
