:root {
  --brown: #463a2c;
  --dark: #1d1a13;
  --gold: #bf995a;
  --gold-soft: #ead9b9;
  --paper: #fffaf2;
  --paper-soft: #f5eee3;
  --white: #fff;
  --text: #17130f;
  --muted: #625a51;
  --green: #2f6b4d;
  --red: #a43c34;
  --border: rgba(42, 38, 29, .16);
  --shadow: 0 16px 38px rgba(42, 32, 18, .13);
  --title: "Raleway", Arial, sans-serif;
  --body: "Open Sans", Arial, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { min-width: 320px; min-height: 100%; background: var(--gold); }
body {
  min-width: 320px;
  min-height: 100%;
  margin: 0;
  color: var(--text);
  background: radial-gradient(circle at 50% 0, rgba(255,255,255,.17), transparent 30%), var(--gold);
  font-family: var(--body);
  font-size: 17px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}
button, input, select, textarea { font: inherit; }
button, a, label, summary { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
[hidden] { display: none !important; }
h1, h2, h3, h4 { margin: 0; font-family: var(--title); text-transform: uppercase; text-wrap: balance; }
p { text-wrap: pretty; }

.kc-header {
  min-height: 76px;
  padding: 8px clamp(14px, 4vw, 42px);
  display: grid;
  grid-template-columns: 90px 1fr 90px;
  align-items: center;
  color: var(--white);
  background: var(--dark);
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.kc-header__logo { justify-self: center; }
.kc-header__logo img { width: 126px; }
.kc-header__back, .kc-header__help {
  min-height: 40px;
  padding: 0 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: rgba(255,255,255,.82);
  border: 1px solid rgba(255,255,255,.22);
  font: 700 10px var(--title);
  letter-spacing: .05em;
}
.kc-header__back { justify-self: start; }
.kc-header__help { justify-self: end; }

.kc-main { width: min(920px, calc(100% - 28px)); margin: 0 auto; padding: 22px 0 52px; }
.kc-intro, .kc-section, .kc-code-view, .kc-success, .kc-error-view { background: var(--paper); box-shadow: var(--shadow); }

.kc-intro {
  padding: clamp(24px, 5vw, 42px);
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 24px;
  border-left: 6px solid var(--dark);
}
.kc-kicker, .kc-section__heading span, .kc-selected-details small, .kc-summary > small {
  color: var(--brown);
  font: 700 11px var(--title);
  letter-spacing: .12em;
}
.kc-intro h1, .kc-code-view h1 {
  margin-top: 7px;
  font-size: clamp(31px, 4.5vw, 46px);
  line-height: 1;
  letter-spacing: -.04em;
}
.kc-intro p { max-width: 650px; margin: 12px 0 0; color: var(--muted); font-size: 16px; }
.kc-time-promise {
  width: 120px;
  height: 120px;
  display: grid;
  place-content: center;
  text-align: center;
  color: var(--gold);
  background: var(--dark);
  border-radius: 50%;
}
.kc-time-promise strong { font: 800 42px/1 var(--title); }
.kc-time-promise span { margin-top: 4px; font: 700 8px/1.3 var(--title); letter-spacing: .08em; }

.kc-guide {
  margin: 12px 0;
  padding: 14px 20px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  color: var(--white);
  background: var(--dark);
}
.kc-guide > div { min-height: 45px; display: flex; align-items: center; justify-content: center; gap: 10px; border-right: 1px solid rgba(255,255,255,.1); }
.kc-guide > div:last-child { border-right: 0; }
.kc-guide strong { width: 30px; height: 30px; display: grid; place-items: center; color: var(--dark); background: var(--gold); border-radius: 50%; font: 800 11px var(--title); }
.kc-guide span { font: 700 11px/1.25 var(--title); text-transform: uppercase; }

.kc-section { margin-top: 12px; padding: clamp(24px, 5vw, 42px); scroll-margin-top: 14px; }
.kc-section__heading { margin-bottom: 24px; display: grid; grid-template-columns: 48px 1fr; gap: 14px; align-items: start; }
.kc-section__heading > strong { width: 48px; height: 48px; display: grid; place-items: center; color: var(--dark); background: var(--gold); border-radius: 50%; font: 800 16px var(--title); }
.kc-section__heading h2 { margin-top: 3px; font-size: clamp(25px, 4vw, 37px); line-height: 1.05; letter-spacing: -.03em; }
.kc-section__heading p { margin: 6px 0 0; color: var(--muted); font-size: 16px; }

.kc-choice-list { display: grid; gap: 18px; }
.kc-choice-list.is-chosen .kc-choice-card:not(.is-selected) { display: none; }
.kc-choice-card {
  width: 100%;
  padding: 24px;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
  color: var(--text);
  background: var(--white);
  border: 2px solid var(--border);
  border-radius: 6px;
  text-align: left;
  transition: border-color .18s ease, background .18s ease, transform .18s ease;
}
.kc-choice-card:hover { border-color: var(--gold); transform: translateY(-1px); }
.kc-choice-card.is-selected { border-color: var(--gold); background: #fffdf8; box-shadow: 0 0 0 3px rgba(191,153,90,.13); }
.kc-choice-card__top { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.kc-choice-card__number { padding: 7px 10px; color: var(--brown); background: var(--gold-soft); border-radius: 3px; font: 800 11px var(--title); letter-spacing: .08em; }
.kc-choice-card__text { display: block; margin-top: 16px; }
.kc-choice-card__text h3 { font-size: clamp(21px, 3vw, 27px); line-height: 1.12; }
.kc-choice-card__text p { margin: 7px 0 0; color: var(--muted); font-size: 15px; line-height: 1.5; }
.kc-choice-card__included { margin-top: 18px; padding: 16px; display: grid; gap: 8px; background: var(--paper-soft); border-left: 4px solid var(--gold); }
.kc-choice-card__included > strong { margin-bottom: 2px; color: var(--brown); font: 800 12px var(--title); letter-spacing: .06em; }
.kc-choice-card__included-item { padding-left: 23px; position: relative; color: var(--text); font-size: 14px; line-height: 1.45; }
.kc-choice-card__included-item::before { content: "✓"; position: absolute; left: 0; color: var(--green); font-weight: 800; }
.kc-choice-card__meta { margin-top: 16px; display: flex; flex-wrap: wrap; gap: 8px 20px; color: var(--brown); font: 800 13px var(--title); }
.kc-choice-card__action { min-height: 52px; margin-top: 18px; display: grid; place-items: center; color: var(--white); background: var(--dark); border: 2px solid var(--dark); border-radius: 3px; font: 800 13px var(--title); letter-spacing: .04em; text-align: center; }
.kc-choice-card:hover .kc-choice-card__action { color: var(--gold); border-color: var(--gold); }
.kc-choice-card.is-selected .kc-choice-card__action { color: var(--white); background: var(--green); border-color: var(--green); }
.kc-choice-card__radio { width: 27px; height: 27px; flex: 0 0 27px; position: relative; border: 2px solid var(--gold); border-radius: 50%; }
.kc-choice-card.is-selected .kc-choice-card__radio::after { content: ""; position: absolute; inset: 4px; background: var(--gold); border-radius: 50%; }

.kc-loading { min-height: 100px; display: flex; align-items: center; justify-content: center; gap: 12px; color: var(--muted); background: var(--paper-soft); border: 1px solid var(--border); }
.kc-loading i, .kc-modal__spinner { width: 27px; height: 27px; border: 3px solid rgba(191,153,90,.25); border-top-color: var(--gold); border-radius: 50%; animation: spin .75s linear infinite; }
.kc-loading--small { min-height: 60px; justify-content: flex-start; padding: 10px 0; background: transparent; border: 0; }
@keyframes spin { to { transform: rotate(360deg); } }

.kc-selected-details { margin-top: 20px; padding: 24px; background: var(--paper-soft); border: 1px solid var(--gold); }
.kc-selected-details__top { display: flex; align-items: flex-start; justify-content: space-between; gap: 15px; }
.kc-selected-details__top h3 { margin-top: 3px; font-size: 24px; }
.kc-selected-details__top button { min-height: 38px; padding: 0 11px; color: var(--brown); background: transparent; border: 1px solid var(--brown); font: 700 9px var(--title); }
.kc-selected-details > p { margin: 12px 0 18px; color: var(--muted); }
.kc-selected-details__columns { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
.kc-selected-details h4, .kc-options h4 { margin-bottom: 10px; color: var(--brown); font-size: 11px; letter-spacing: .1em; }
.kc-inclusions { margin: 0; padding: 0; list-style: none; }
.kc-inclusions li { padding: 7px 0 7px 25px; position: relative; border-bottom: 1px solid var(--border); font-size: 14px; }
.kc-inclusions li::before { content: "✓"; position: absolute; left: 1px; color: var(--green); font-weight: 800; }
.kc-inclusions li small { display: block; color: var(--muted); }
.kc-option-group + .kc-option-group { margin-top: 18px; }
.kc-option-group > p { margin: -4px 0 9px; color: var(--muted); font-size: 13px; }
.kc-option {
  min-height: 56px;
  margin-top: 8px;
  padding: 11px 13px;
  display: grid;
  grid-template-columns: 22px 1fr;
  align-items: center;
  gap: 10px;
  background: var(--white);
  border: 2px solid var(--border);
  cursor: pointer;
}
.kc-option:has(input:checked) { border-color: var(--gold); }
.kc-option input { width: 19px; height: 19px; margin: 0; accent-color: var(--brown); }
.kc-option strong { display: block; font: 700 13px var(--title); }
.kc-option small { display: block; margin-top: 2px; color: var(--muted); font-size: 11px; }
.kc-next-instruction { margin: 16px 0 0 !important; padding: 12px; color: var(--dark) !important; background: var(--gold-soft); border-left: 4px solid var(--gold); font-weight: 700; }

.kc-schedule-simple { display: grid; grid-template-columns: minmax(230px,.7fr) minmax(0,1.3fr); gap: 24px; }
.kc-date-field, .kc-time-field { padding: 22px; background: var(--paper-soft); border: 1px solid var(--border); }
.kc-date-field label, .kc-time-field label, .kc-field label { display: block; margin-bottom: 8px; color: var(--brown); font: 700 11px var(--title); letter-spacing: .08em; }
.kc-date-field input, .kc-field input, .kc-field select, .kc-optional-note textarea {
  width: 100%; min-height: 56px; padding: 12px 14px; color: var(--text); background: var(--white); border: 2px solid var(--border); border-radius: 3px; outline: none;
}
.kc-date-field input { font-size: 17px; font-weight: 600; }
.kc-date-field input:focus, .kc-field input:focus, .kc-field select:focus, .kc-optional-note textarea:focus { border-color: var(--gold); box-shadow: 0 0 0 3px rgba(191,153,90,.14); }
.kc-date-field small { display: block; margin-top: 8px; color: var(--muted); }

.kc-calendar-picker { width: 100%; position: relative; }
.kc-calendar-trigger {
  width: 100%; min-height: 76px; padding: 12px 14px; position: relative; display: grid;
  grid-template-columns: 44px minmax(0,1fr) 28px; align-items: center; gap: 12px;
  color: var(--text); background: linear-gradient(135deg,#fff 0%,#fffaf2 60%,#f8efe1 100%);
  border: 2px solid var(--border); border-radius: 3px; text-align: left;
  box-shadow: 0 8px 20px rgba(42,32,18,.06); transition: border-color .2s ease, box-shadow .2s ease;
}
.kc-calendar-trigger::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 4px; background: var(--gold); }
.kc-calendar-trigger:hover, .kc-calendar-trigger.is-open { border-color: var(--gold); box-shadow: 0 0 0 4px rgba(191,153,90,.1); }
.kc-calendar-trigger__icon { width: 44px; height: 44px; display: grid; place-items: center; color: var(--gold); background: rgba(191,153,90,.09); border: 1px solid rgba(191,153,90,.38); }
.kc-calendar-trigger__icon svg { width: 23px; height: 23px; }
.kc-calendar-trigger__content { min-width: 0; display: block; }
.kc-calendar-trigger__content small { margin: 0 0 3px; color: var(--brown); font: 800 10px var(--title); letter-spacing: .08em; }
.kc-calendar-trigger__content strong { display: block; overflow: hidden; font-size: 15px; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; text-transform: capitalize; }
.kc-calendar-trigger__arrow { justify-self: end; color: var(--brown); font-size: 25px; transition: transform .2s ease; }
.kc-calendar-trigger.is-open .kc-calendar-trigger__arrow { transform: rotate(180deg); }
.kc-calendar-panel {
  width: min(390px,calc(100vw - 48px)); padding: 18px; position: absolute; z-index: 80;
  top: calc(100% + 8px); left: 0; color: var(--text); background: linear-gradient(180deg,#fffdf9,#fff8ed);
  border: 1px solid rgba(191,153,90,.52); border-top: 4px solid var(--gold); border-radius: 3px;
  box-shadow: 0 28px 70px rgba(29,20,10,.27); animation: calendarIn .18s ease both;
}
@keyframes calendarIn { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: translateY(0); } }
.kc-calendar-header { min-height: 56px; padding-bottom: 14px; display: grid; grid-template-columns: 42px minmax(0,1fr) 42px; align-items: center; gap: 9px; border-bottom: 1px solid var(--border); }
.kc-calendar-current { min-width: 0; text-align: center; }
.kc-calendar-current small { margin: 0 0 4px; color: var(--brown); font: 800 9px var(--title); letter-spacing: .08em; }
.kc-calendar-current strong { display: block; font: 800 17px var(--title); }
.kc-calendar-nav { width: 42px; height: 42px; padding: 0; display: grid; place-items: center; color: var(--text); background: transparent; border: 1px solid var(--border); border-radius: 3px; font-size: 23px; }
.kc-calendar-nav:hover:not(:disabled) { background: var(--gold); border-color: var(--gold); }
.kc-calendar-nav:disabled { opacity: .24; cursor: not-allowed; }
.kc-calendar-weekdays, .kc-calendar-grid { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 4px; }
.kc-calendar-weekdays { margin-top: 13px; }
.kc-calendar-weekdays span { min-height: 28px; display: grid; place-items: center; color: var(--brown); font: 800 10px var(--title); }
.kc-calendar-grid { margin-top: 4px; }
.kc-calendar-day { aspect-ratio: 1; min-width: 0; padding: 0; position: relative; display: grid; place-items: center; color: var(--text); background: transparent; border: 1px solid transparent; border-radius: 50%; font-size: 14px; font-weight: 600; }
.kc-calendar-day:hover:not(:disabled) { background: #f3e4c7; border-color: rgba(191,153,90,.42); }
.kc-calendar-day.is-today:not(.is-selected) { color: var(--brown); border-color: var(--gold); font-weight: 800; }
.kc-calendar-day.is-today:not(.is-selected)::after { content: ""; width: 4px; height: 4px; position: absolute; bottom: 4px; background: var(--gold); border-radius: 50%; }
.kc-calendar-day.is-selected { color: var(--dark); background: linear-gradient(145deg,#d5ad6a,var(--gold)); border-color: var(--gold); font-weight: 800; box-shadow: 0 7px 16px rgba(191,153,90,.3); }
.kc-calendar-day.is-disabled, .kc-calendar-day:disabled { color: rgba(42,38,29,.25); background: transparent; cursor: not-allowed; box-shadow: none; }
.kc-calendar-day--empty { pointer-events: none; }
.kc-calendar-footer { margin-top: 15px; padding-top: 13px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border-top: 1px solid var(--border); }
.kc-calendar-footer span { display: inline-flex; align-items: center; gap: 7px; color: var(--muted); font-size: 11px; }
.kc-calendar-legend__dot { width: 8px; height: 8px; flex: 0 0 auto; display: inline-block; background: var(--gold); border-radius: 50%; }
.kc-calendar-footer button { padding: 0; color: var(--brown); background: transparent; border: 0; font: 800 10px var(--title); letter-spacing: .06em; }
.kc-calendar-footer button:hover { color: var(--gold); }
.kc-time-field > p { margin: 0 0 13px; color: var(--muted); font-size: 14px; }
.kc-slots { display: grid; grid-template-columns: repeat(3, 1fr); gap: 9px; }
.kc-slot { min-height: 52px; color: var(--text); background: var(--white); border: 2px solid var(--border); border-radius: 3px; font: 700 13px var(--title); }
.kc-slot:hover, .kc-slot.is-selected { color: var(--white); background: var(--dark); border-color: var(--gold); }

.kc-final-layout {
  display: grid;
  grid-template-columns: minmax(0,1.1fr) minmax(300px,.72fr);
  align-items: stretch;
  gap: 22px;
}
.kc-guest-form {
  min-width: 0;
  height: 100%;
  padding: 24px;
  background: var(--paper-soft);
  border: 1px solid var(--border);
}
.kc-field + .kc-field, .kc-phone-row, .kc-optional-note, .kc-consent { margin-top: 18px; }
.kc-phone-row { display: grid; grid-template-columns: minmax(180px,.72fr) minmax(0,1.28fr); gap: 12px; }
.kc-phone-row > .kc-field { min-width: 0; }
.kc-optional-note summary { color: var(--brown); font-size: 13px; font-weight: 700; cursor: pointer; }
.kc-optional-note textarea { min-height: 90px; margin-top: 10px; resize: vertical; }
.kc-consent { display: flex; align-items: center; gap: 9px; color: var(--muted); font-size: 13px; cursor: pointer; }
.kc-consent input { width: 20px; height: 20px; margin: 0; accent-color: var(--brown); }
.kc-summary {
  min-width: 0;
  height: 100%;
  padding: 25px;
  color: var(--white);
  background: var(--dark);
  border-top: 5px solid var(--gold);
}
.kc-summary h3 { margin: 5px 0 15px; font-size: 24px; }
.kc-summary > div { padding: 10px 0; color: var(--gold-soft); border-top: 1px solid rgba(255,255,255,.12); font-size: 13px; }
.kc-summary > div span { display: block; }
.kc-summary dl { margin: 0; }
.kc-summary dl > div {
  padding: 11px 0;
  display: grid;
  grid-template-columns: 72px minmax(0,1fr);
  align-items: start;
  gap: 12px;
  border-top: 1px solid rgba(255,255,255,.12);
}
.kc-summary dt { color: rgba(255,255,255,.55); font: 700 9px var(--title); letter-spacing: .08em; }
.kc-summary dd { min-width: 0; margin: 0; text-align: right; overflow-wrap: anywhere; font-weight: 700; line-height: 1.35; }
.kc-form-message { min-height: 22px; margin-top: 12px; color: var(--red); font-size: 14px; font-weight: 700; }
.kc-confirm { width: 100%; min-height: 62px; color: var(--white); background: var(--dark); border: 2px solid var(--dark); font: 800 14px var(--title); letter-spacing: .05em; }
.kc-confirm:hover:not(:disabled) { color: var(--gold); border-color: var(--gold); }
.kc-confirm:disabled { opacity: .38; cursor: not-allowed; }
.kc-help-line { margin: 15px 0 0; text-align: center; color: var(--muted); font-size: 13px; }
.kc-help-line a { color: var(--brown); font-weight: 700; text-decoration: underline; }

.kc-code-view, .kc-success, .kc-error-view { max-width: 680px; margin: 50px auto; padding: clamp(30px,6vw,60px); text-align: center; }
.kc-code-view > p, .kc-error-view p { color: var(--muted); }
.kc-code-form { margin-top: 26px; text-align: left; }
.kc-code-form label { display: block; margin-bottom: 7px; color: var(--brown); font: 700 10px var(--title); }
.kc-code-form input { width: 100%; min-height: 58px; padding: 13px; border: 2px solid var(--border); }
.kc-code-form button, .kc-error-view a { width: 100%; min-height: 56px; margin-top: 10px; display: inline-flex; align-items: center; justify-content: center; color: var(--white); background: var(--dark); border: 0; font: 700 12px var(--title); }
.kc-success__check { width: 70px; height: 70px; margin: 0 auto 20px; display: grid; place-items: center; color: var(--white); background: var(--green); border-radius: 50%; font: 800 29px var(--title); }
.kc-success h2 { margin-top: 7px; font-size: clamp(32px,5vw,48px); }
.kc-success > p { color: var(--muted); }
.kc-success__ticket { max-width: 480px; margin: 26px auto; padding: 22px; display: grid; gap: 5px; color: var(--white); background: var(--dark); border-top: 4px solid var(--gold); }
.kc-success__ticket small { color: rgba(255,255,255,.55); font: 700 9px var(--title); }
.kc-success__ticket strong { color: var(--gold); font: 800 29px var(--title); }
.kc-success__actions { display: flex; justify-content: center; gap: 9px; flex-wrap: wrap; }
.kc-success__actions a { min-height: 48px; padding: 0 16px; display: inline-flex; align-items: center; color: var(--white); background: var(--dark); font: 700 10px var(--title); }

.kc-footer { min-height: 70px; padding: 16px 25px; display: flex; align-items: center; justify-content: space-between; gap: 15px; color: rgba(255,255,255,.65); background: var(--dark); font-size: 10px; letter-spacing: .08em; }
.kc-modal { position: fixed; z-index: 100; inset: 0; display: none; place-items: center; padding: 20px; }
.kc-modal.is-open { display: grid; }
.kc-modal__backdrop { position: absolute; inset: 0; background: rgba(16,20,21,.82); }
.kc-modal__card { width: min(420px,100%); padding: 35px; position: relative; z-index: 1; text-align: center; background: var(--paper); box-shadow: 0 30px 70px rgba(0,0,0,.35); }
.kc-modal__spinner { margin: 0 auto 18px; }
.kc-modal__card h3 { font-size: 21px; }
.kc-modal__card p { margin: 8px 0 0; color: var(--muted); }

@media (max-width: 700px) {
  body { font-size: 16px; }
  .kc-header { min-height: 70px; grid-template-columns: 66px 1fr 66px; padding-inline: 9px; }
  .kc-header__logo img { width: 108px; }
  .kc-header__back, .kc-header__help { min-height: 38px; padding: 0 7px; font-size: 9px; }
  .kc-main { width: calc(100% - 18px); padding-top: 12px; }
  .kc-intro { padding: 24px 20px; grid-template-columns: 1fr; }
  .kc-intro h1 { font-size: 30px; }
  .kc-intro p { font-size: 16px; line-height: 1.55; }
  .kc-time-promise { display: none; }
  .kc-guide { padding: 13px 6px; }
  .kc-guide > div { gap: 6px; }
  .kc-guide strong { width: 29px; height: 29px; flex: 0 0 29px; }
  .kc-guide span { font-size: 9px; }
  .kc-section { padding: 22px 16px; }
  .kc-section__heading { grid-template-columns: 40px 1fr; gap: 10px; margin-bottom: 18px; }
  .kc-section__heading > strong { width: 40px; height: 40px; }
  .kc-section__heading h2 { font-size: 22px; }
  .kc-section__heading p { font-size: 15px; }
  .kc-choice-card { padding: 20px 16px; }
  .kc-choice-card__number { padding: 7px 9px; font-size: 10px; }
  .kc-choice-card__text { margin-top: 14px; }
  .kc-choice-card__text h3 { font-size: 21px; }
  .kc-choice-card__text p { font-size: 15px; line-height: 1.45; }
  .kc-choice-card__included { margin-top: 16px; padding: 14px 12px; gap: 8px; }
  .kc-choice-card__included > strong { font-size: 11px; }
  .kc-choice-card__included-item { font-size: 14px; }
  .kc-choice-card__meta { font-size: 13px; gap: 7px 16px; }
  .kc-choice-card__action { min-height: 54px; font-size: 13px; }
  .kc-selected-details { padding: 18px 14px; }
  .kc-selected-details__columns, .kc-schedule-simple, .kc-final-layout { grid-template-columns: 1fr; }
  .kc-selected-details__columns { gap: 22px; }
  .kc-date-field, .kc-time-field, .kc-guest-form { padding: 18px 14px; }
  .kc-calendar-trigger { min-height: 74px; padding: 11px 12px; grid-template-columns: 42px minmax(0,1fr) 26px; gap: 10px; }
  .kc-calendar-trigger__icon { width: 42px; height: 42px; }
  .kc-calendar-trigger__content strong { font-size: 15px; }
  .kc-calendar-panel { width: 100%; margin-top: 8px; padding: 15px 11px 13px; position: relative; top: auto; left: auto; border-top-width: 3px; box-shadow: 0 15px 32px rgba(29,20,10,.15); }
  .kc-calendar-header { grid-template-columns: 40px minmax(0,1fr) 40px; }
  .kc-calendar-nav { width: 40px; height: 40px; }
  .kc-calendar-current strong { font-size: 16px; }
  .kc-calendar-weekdays, .kc-calendar-grid { gap: 3px; }
  .kc-calendar-footer { align-items: flex-start; flex-direction: column; }
  .kc-slots { grid-template-columns: repeat(2, 1fr); }
  .kc-phone-row { grid-template-columns: 1fr; gap: 16px; }
  .kc-phone-row .kc-field { margin-top: 0; }
  .kc-summary { height: auto; padding: 22px 20px; }
  .kc-summary h3 { font-size: 21px; }
  .kc-summary dl > div { grid-template-columns: 68px minmax(0,1fr); }
  .kc-confirm { min-height: 60px; font-size: 13px; }
  .kc-footer { flex-direction: column; justify-content: center; text-align: center; }
}

@media (max-width: 380px) {
  .kc-guide span { font-size: 8px; }
  .kc-summary dl > div { grid-template-columns: 62px minmax(0,1fr); }
}

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