.lki-booking {
  --booking-ink: var(--fg, #171717);
  --booking-muted: #64615b;
  --booking-paper: var(--bg, #f3efe6);
  --booking-panel: #fff;
  --booking-line: #d8d3c8;
  --booking-accent: var(--cta, #dd4b2f);
  --booking-accent-dark: #a92f1c;
  --booking-success: #17633b;
  --booking-danger: #a12b20;
  box-sizing: border-box;
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(420px, 1.1fr);
  gap: clamp(32px, 7vw, 112px);
  width: min(100% - 32px, 1180px);
  margin: 0 auto;
  padding: clamp(64px, 9vw, 132px) 0;
  color: var(--booking-ink);
}

.lki-booking *, .lki-booking *::before, .lki-booking *::after { box-sizing: border-box; }
.lki-booking h1, .lki-booking h2, .lki-booking p { margin-top: 0; }
.lki-booking h1 { max-width: 12ch; margin-bottom: 24px; font-size: clamp(2.6rem, 5.4vw, 5.75rem); line-height: .94; letter-spacing: -.055em; }
.lki-booking h2 { margin-bottom: 18px; font-size: clamp(2rem, 4vw, 3.3rem); line-height: 1; letter-spacing: -.04em; }
.lki-booking__eyebrow { display: inline-flex; margin-bottom: 22px; padding: 7px 12px; border-radius: 999px; background: var(--booking-accent); color: #fff; font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.lki-booking__lede { max-width: 48ch; margin-bottom: 42px; color: var(--booking-muted); font-size: clamp(1.05rem, 1.5vw, 1.28rem); line-height: 1.55; }
.lki-booking__host { display: flex; align-items: center; gap: 17px; margin: -6px 0 34px; }
.lki-booking__host-photo { width: clamp(88px, 8vw, 112px); aspect-ratio: 1; overflow: hidden; flex: 0 0 auto; border: 4px solid #fff; border-radius: 50%; outline: 1px solid var(--booking-line); box-shadow: 0 12px 30px rgba(29, 25, 18, .12); }
.lki-booking__host-photo img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 29%; transform: scale(1.55); transform-origin: 50% 32%; }
.lki-booking__host p { display: grid; gap: 3px; margin: 0; }
.lki-booking__host p > span { color: var(--booking-muted); font-size: .75rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.lki-booking__host strong { font-size: 1.05rem; }
.lki-booking__facts { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--booking-line); }
.lki-booking__facts li { display: grid; grid-template-columns: minmax(130px, .7fr) 1.3fr; gap: 24px; padding: 20px 0; border-bottom: 1px solid var(--booking-line); }
.lki-booking__facts strong { font-size: .9rem; }
.lki-booking__facts span { color: var(--booking-muted); font-size: .9rem; line-height: 1.5; }

.lki-booking__panel { position: relative; align-self: start; min-height: 520px; padding: clamp(24px, 4vw, 48px); border: 1px solid var(--booking-line); border-radius: 24px; background: var(--booking-panel); box-shadow: 0 24px 70px rgba(29, 25, 18, .08); }
.lki-booking__status { margin-bottom: 24px; padding: 13px 16px; border-radius: 12px; background: #f4f1eb; color: var(--booking-muted); font-size: .92rem; line-height: 1.45; }
.lki-booking__status[data-kind="error"] { background: #fff0ee; color: var(--booking-danger); }
.lki-booking__status[data-kind="loading"] { animation: lki-booking-pulse 1.3s ease-in-out infinite; }
.lki-booking__step + .lki-booking__step, .lki-booking__form { margin-top: 34px; }
.lki-booking__step-label { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; color: var(--booking-muted); font-size: .82rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.lki-booking__step-label > span { color: var(--booking-ink); }
.lki-booking__dates { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; }
.lki-booking__date, .lki-booking__time { appearance: none; min-height: 48px; border: 1px solid var(--booking-line); border-radius: 12px; background: #fff; color: var(--booking-ink); font: inherit; font-size: .9rem; font-weight: 650; cursor: pointer; transition: border-color .16s ease, background .16s ease, color .16s ease, transform .16s ease; }
.lki-booking__date:hover, .lki-booking__time:hover { border-color: var(--booking-ink); transform: translateY(-1px); }
.lki-booking__date[aria-pressed="true"], .lki-booking__time[aria-pressed="true"] { border-color: var(--booking-ink); background: var(--booking-ink); color: #fff; }
.lki-booking__date:focus-visible, .lki-booking__time:focus-visible, .lki-booking__button:focus-visible, .lki-booking__text-button:focus-visible, .lki-booking input:focus-visible, .lki-booking textarea:focus-visible, .lki-booking a:focus-visible { outline: 3px solid color-mix(in srgb, var(--booking-accent) 48%, transparent); outline-offset: 3px; }
.lki-booking__times { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; }
.lki-booking__selection { margin-bottom: 22px; padding: 14px 16px; border-left: 3px solid var(--booking-accent); background: #f7f5f0; font-weight: 700; }
.lki-booking__field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.lki-booking__field { display: grid; gap: 7px; margin-bottom: 16px; color: var(--booking-ink); font-size: .84rem; font-weight: 700; }
.lki-booking__field small { color: var(--booking-muted); font-weight: 400; }
.lki-booking__field input, .lki-booking__field textarea { width: 100%; min-height: 48px; padding: 12px 14px; border: 1px solid var(--booking-line); border-radius: 10px; background: #fff; color: var(--booking-ink); font: inherit; font-weight: 400; }
.lki-booking__field textarea { min-height: 110px; resize: vertical; }
.lki-booking__button { display: inline-flex; align-items: center; justify-content: space-between; gap: 22px; min-height: 52px; padding: 12px 17px 12px 22px; border: 1px solid var(--booking-accent); border-radius: 999px; background: var(--booking-accent); color: #fff; font: inherit; font-size: .92rem; font-weight: 750; text-decoration: none; cursor: pointer; transition: background .16s ease, border-color .16s ease, transform .16s ease; }
.lki-booking__button:hover { border-color: var(--booking-accent-dark); background: var(--booking-accent-dark); color: #fff; transform: translateY(-1px); }
.lki-booking__button:disabled, .lki-booking button:disabled { cursor: wait; opacity: .6; }
.lki-booking__button--secondary { border-color: var(--booking-ink); background: var(--booking-ink); }
.lki-booking__privacy { margin: 13px 0 0; color: var(--booking-muted); font-size: .76rem; }
.lki-booking__honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.lki-booking__confirmation, .lki-booking__manage { padding-top: 14px; }
.lki-booking__confirmation p, .lki-booking__manage p { color: var(--booking-muted); line-height: 1.55; }
.lki-booking__text-link { display: inline-flex; gap: 9px; margin-top: 14px; color: var(--booking-ink); font-weight: 750; text-decoration: none; }
.lki-booking__text-link:hover { color: var(--booking-accent-dark); }
.lki-booking__manage-time { margin-bottom: 28px; padding: 18px 0; border-top: 1px solid var(--booking-line); border-bottom: 1px solid var(--booking-line); color: var(--booking-ink) !important; font-size: 1.05rem; font-weight: 750; }
.lki-booking__manage-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 20px; }
.lki-booking__text-button { appearance: none; padding: 4px 0; border: 0; border-bottom: 1px solid currentColor; background: transparent; color: var(--booking-ink); font: inherit; font-size: .88rem; font-weight: 700; cursor: pointer; }
.lki-booking__text-button--danger { color: var(--booking-danger); }
.lki-booking__empty { grid-column: 1 / -1; color: var(--booking-muted); line-height: 1.5; }
[data-manage-reschedule-panel] { width: 100%; margin-top: 34px; padding-top: 28px; border-top: 1px solid var(--booking-line); }
[data-reschedule-times] { margin-top: 14px; }

@keyframes lki-booking-pulse { 0%, 100% { opacity: 1; } 50% { opacity: .58; } }

@media (max-width: 900px) {
  .lki-booking { grid-template-columns: 1fr; }
  .lki-booking h1 { max-width: 14ch; }
  .lki-booking__panel { min-height: 0; }
}

@media (max-width: 560px) {
  .lki-booking { width: min(100% - 22px, 1180px); padding: 50px 0; }
  .lki-booking__host { margin-bottom: 28px; }
  .lki-booking__host-photo { width: 88px; }
  .lki-booking__facts li { grid-template-columns: 1fr; gap: 7px; }
  .lki-booking__panel { padding: 22px 16px; border-radius: 18px; }
  .lki-booking__dates { grid-template-columns: 1fr; }
  .lki-booking__times { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lki-booking__field-row { grid-template-columns: 1fr; gap: 0; }
  .lki-booking__button { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .lki-booking *, .lki-booking *::before, .lki-booking *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}
