.jlc-booking,
.jlc-booking *,
.jlc-booking *::before,
.jlc-booking *::after { box-sizing: border-box !important; }

.jlc-booking {
  --jlc-ink: #15171c;
  --jlc-muted: #6a707a;
  --jlc-line: #e8dfd2;
  --jlc-soft: #f7f3ec;
  --jlc-card: #ffffff;
  --jlc-accent: #c9a35b;
  --jlc-accent-dark: #8b6b2d;
  color: var(--jlc-ink) !important;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  font-size: 16px !important;
  line-height: 1.5 !important;
  margin: 32px auto !important;
  max-width: 1120px !important;
  width: min(1120px, calc(100vw - 32px)) !important;
}

.jlc-booking :where(h1,h2,h3,h4,h5,h6,p,dl,dt,dd,ol,ul,figure) { margin: 0 !important; padding: 0 !important; }
.jlc-booking :where(button,input,select,textarea) { font: inherit !important; letter-spacing: 0 !important; }
.jlc-booking button { appearance: none !important; -webkit-appearance: none !important; text-transform: none !important; }

.jlc-booking__shell {
  background: var(--jlc-card) !important;
  border: 1px solid var(--jlc-line) !important;
  border-radius: 20px !important;
  box-shadow: 0 24px 70px rgba(25, 24, 21, 0.12) !important;
  display: grid !important;
  grid-template-columns: 340px minmax(0, 1fr) !important;
  min-height: 660px !important;
  overflow: hidden !important;
  width: 100% !important;
}

.jlc-booking__brand {
  align-items: center !important;
  background: #17191f !important;
  color: #fff !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  min-width: 0 !important;
  padding: 42px 36px !important;
  text-align: center !important;
}

.jlc-booking__logo {
  background: rgba(255, 255, 255, 0.96) !important;
  border: 0 !important;
  border-radius: 14px !important;
  display: block !important;
  height: auto !important;
  margin: 0 auto 34px !important;
  max-width: 190px !important;
  padding: 12px !important;
  width: 190px !important;
}

.jlc-booking__eyebrow,
.jlc-step-label {
  color: var(--jlc-accent) !important;
  display: block !important;
  font-family: inherit !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  letter-spacing: 0.08em !important;
  line-height: 1.25 !important;
  margin: 0 0 10px !important;
  text-transform: uppercase !important;
}

.jlc-booking__brand h2 {
  color: #fff !important;
  font-family: Georgia, "Times New Roman", serif !important;
  font-size: 34px !important;
  font-weight: 400 !important;
  letter-spacing: 0 !important;
  line-height: 1.1 !important;
  margin: 0 auto 16px !important;
  max-width: 300px !important;
  text-align: center !important;
  width: 100% !important;
}

.jlc-booking__brand p:not(.jlc-booking__eyebrow) {
  color: rgba(255, 255, 255, 0.78) !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  line-height: 1.65 !important;
  margin: 0 auto !important;
  max-width: 300px !important;
  text-align: center !important;
}

.jlc-booking__panel { min-width: 0 !important; overflow: hidden !important; padding: 34px !important; position: relative !important; width: 100% !important; }
.jlc-booking__timezone { color: var(--jlc-muted) !important; font-size: 12px !important; font-weight: 600 !important; line-height: 1.2 !important; position: absolute !important; right: 28px !important; top: 18px !important; z-index: 2 !important; }

.jlc-booking__loading,
.jlc-booking__error,
.jlc-calendar-skeleton,
.jlc-side-empty {
  align-items: center !important;
  background: var(--jlc-soft) !important;
  border: 1px solid var(--jlc-line) !important;
  border-radius: 16px !important;
  color: var(--jlc-muted) !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  min-height: 210px !important;
  padding: 24px !important;
  text-align: center !important;
}

.jlc-scheduler { display: grid !important; gap: 28px !important; grid-template-columns: minmax(0, 1fr) 300px !important; min-height: 560px !important; padding-top: 34px !important; }
.jlc-scheduler__calendar,
.jlc-scheduler__side { min-width: 0 !important; }
.jlc-scheduler__side { border-left: 1px solid var(--jlc-line) !important; padding-left: 28px !important; }
.jlc-scheduler__top { align-items: center !important; display: grid !important; grid-template-columns: 46px 1fr 46px !important; gap: 10px !important; margin-bottom: 22px !important; text-align: center !important; }
.jlc-scheduler__top h3,
.jlc-times h3,
.jlc-form h3,
.jlc-payment__summary h3,
.jlc-side-empty h3 { color: var(--jlc-ink) !important; font-family: Georgia, "Times New Roman", serif !important; font-size: 34px !important; font-weight: 400 !important; letter-spacing: 0 !important; line-height: 1.15 !important; }
.jlc-icon-button { align-items: center !important; background: #fff !important; border: 1px solid var(--jlc-line) !important; border-radius: 999px !important; color: var(--jlc-ink) !important; cursor: pointer !important; display: inline-flex !important; height: 44px !important; justify-content: center !important; width: 44px !important; }

.jlc-calendar { display: grid !important; gap: 10px !important; grid-template-columns: repeat(7, minmax(0, 1fr)) !important; }
.jlc-calendar__weekday { color: var(--jlc-muted) !important; font-size: 11px !important; font-weight: 800 !important; text-align: center !important; text-transform: uppercase !important; }
.jlc-calendar__day { background: #fff !important; border: 1px solid var(--jlc-line) !important; border-radius: 14px !important; color: var(--jlc-ink) !important; cursor: pointer !important; min-height: 78px !important; padding: 8px 4px !important; text-align: center !important; }
.jlc-calendar__day span { display: block !important; font-size: 24px !important; font-weight: 800 !important; line-height: 1.1 !important; }
.jlc-calendar__day small { color: var(--jlc-muted) !important; display: block !important; font-size: 11px !important; line-height: 1.2 !important; margin-top: 4px !important; }
.jlc-calendar__day.is-disabled { cursor: not-allowed !important; opacity: 0.38 !important; }
.jlc-calendar__day.is-available:hover,
.jlc-calendar__day.is-selected { background: #17191f !important; border-color: #17191f !important; color: #fff !important; }
.jlc-calendar__day.is-available:hover small,
.jlc-calendar__day.is-selected small { color: rgba(255,255,255,0.72) !important; }

.jlc-times__list { display: grid !important; gap: 10px !important; margin-top: 20px !important; }
.jlc-time { background: #fff !important; border: 1px solid var(--jlc-line) !important; border-radius: 999px !important; color: var(--jlc-ink) !important; cursor: pointer !important; font-weight: 800 !important; padding: 12px 14px !important; }
.jlc-time:hover { background: var(--jlc-soft) !important; border-color: var(--jlc-accent) !important; }

.jlc-form__head { margin-bottom: 20px !important; }
.jlc-form__head > p:not(.jlc-step-label) { color: var(--jlc-muted) !important; margin-top: 6px !important; }
.jlc-form__grid { display: grid !important; gap: 14px !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
.jlc-form label { color: var(--jlc-ink) !important; display: grid !important; font-size: 13px !important; font-weight: 800 !important; gap: 7px !important; }
.jlc-form__wide { grid-column: 1 / -1 !important; }
.jlc-form input,
.jlc-form select,
.jlc-form textarea { background: #fff !important; border: 1px solid var(--jlc-line) !important; border-radius: 12px !important; color: var(--jlc-ink) !important; min-height: 46px !important; padding: 11px 12px !important; width: 100% !important; }
.jlc-form textarea { min-height: 116px !important; resize: vertical !important; }
.jlc-form__actions { display: flex !important; gap: 12px !important; justify-content: space-between !important; margin-top: 18px !important; }
.jlc-button { background: #17191f !important; border: 1px solid #17191f !important; border-radius: 999px !important; color: #fff !important; cursor: pointer !important; font-weight: 800 !important; padding: 12px 20px !important; }
.jlc-button--ghost { background: #fff !important; border-color: var(--jlc-line) !important; color: var(--jlc-ink) !important; }
.jlc-form__status { color: var(--jlc-muted) !important; margin-top: 12px !important; }

.jlc-payment { display: grid !important; gap: 28px !important; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr) !important; padding-top: 34px !important; }
.jlc-payment__summary { background: var(--jlc-soft) !important; border: 1px solid var(--jlc-line) !important; border-radius: 16px !important; padding: 24px !important; }
.jlc-payment__summary p { color: var(--jlc-muted) !important; line-height: 1.65 !important; margin-top: 12px !important; }
.jlc-payment dl { display: grid !important; gap: 10px !important; margin-top: 18px !important; }
.jlc-payment dl div { border-bottom: 1px solid var(--jlc-line) !important; display: flex !important; justify-content: space-between !important; padding-bottom: 8px !important; }
.jlc-payment dt { color: var(--jlc-muted) !important; }
.jlc-payment dd { color: var(--jlc-ink) !important; font-weight: 800 !important; }
.jlc-payment__cards,
.jlc-bank-list { display: grid !important; gap: 12px !important; margin: 16px 0 24px !important; }
.jlc-payment__cards { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
.jlc-pay-card,
.jlc-bank { align-items: center !important; background: #fff !important; border: 1px solid var(--jlc-line) !important; border-radius: 14px !important; display: grid !important; gap: 14px !important; padding: 14px !important; text-decoration: none !important; }
.jlc-pay-card { justify-items: center !important; text-align: center !important; }
.jlc-pay-card img { max-height: 42px !important; max-width: 150px !important; object-fit: contain !important; }
.jlc-pay-card span { color: var(--jlc-ink) !important; font-weight: 800 !important; }
.jlc-pay-card small { color: var(--jlc-muted) !important; display: block !important; font-size: 11px !important; font-weight: 600 !important; line-height: 1.25 !important; margin-top: 3px !important; }
.jlc-bank { grid-template-columns: 74px minmax(0, 1fr) !important; }
.jlc-bank img { max-height: 46px !important; max-width: 74px !important; object-fit: contain !important; }
.jlc-bank h4 { color: var(--jlc-ink) !important; font-size: 15px !important; margin-bottom: 7px !important; }
.jlc-bank p { color: var(--jlc-muted) !important; font-size: 13px !important; line-height: 1.35 !important; margin: 2px 0 !important; }
.jlc-copy-bank { appearance: none !important; background: rgba(201, 163, 91, 0.08) !important; border: 1px solid rgba(201, 163, 91, 0.28) !important; border-radius: 999px !important; color: var(--jlc-accent-dark) !important; cursor: pointer !important; display: inline-flex !important; font-size: 11px !important; font-weight: 700 !important; line-height: 1 !important; margin-top: 10px !important; padding: 7px 11px !important; }
.jlc-copy-bank:hover,
.jlc-copy-bank:focus-visible { background: rgba(201, 163, 91, 0.16) !important; border-color: rgba(201, 163, 91, 0.48) !important; color: #151820 !important; }
.jlc-copy-bank.is-copied { background: rgba(47, 133, 90, 0.12) !important; border-color: rgba(47, 133, 90, 0.35) !important; color: #2f855a !important; }

@media (max-width: 980px) {
  .jlc-booking__shell,
  .jlc-scheduler,
  .jlc-payment { grid-template-columns: 1fr !important; }
  .jlc-scheduler__side { border-left: 0 !important; border-top: 1px solid var(--jlc-line) !important; padding: 24px 0 0 !important; }
}

@media (max-width: 620px) {
  .jlc-booking { margin: 18px auto !important; width: min(100%, calc(100vw - 16px)) !important; }
  .jlc-booking__shell { border-radius: 14px !important; }
  .jlc-booking__brand { align-items: center !important; justify-content: center !important; padding: 42px 24px 38px !important; text-align: center !important; }
  .jlc-booking__logo { margin: 0 auto 30px !important; max-width: min(250px, 78vw) !important; width: min(250px, 78vw) !important; }
  .jlc-booking__brand .jlc-booking__eyebrow,
  .jlc-booking__brand h2,
  .jlc-booking__brand p:not(.jlc-booking__eyebrow) { margin-left: auto !important; margin-right: auto !important; text-align: center !important; }
  .jlc-booking__brand h2 { font-size: 34px !important; max-width: 330px !important; }
  .jlc-booking__brand p:not(.jlc-booking__eyebrow) { max-width: 300px !important; }
  .jlc-booking__panel { padding: 30px 18px !important; }
  .jlc-booking__timezone { margin-bottom: 16px !important; position: static !important; text-align: right !important; }
  .jlc-calendar { gap: 6px !important; }
  .jlc-calendar__day { border-radius: 10px !important; min-height: 54px !important; padding: 5px 2px !important; }
  .jlc-calendar__day span { font-size: 16px !important; }
  .jlc-calendar__day small { font-size: 9px !important; }
  .jlc-form__grid,
  .jlc-payment__cards,
  .jlc-bank { grid-template-columns: 1fr !important; }
  .jlc-form__actions { flex-direction: column-reverse !important; }
  .jlc-button { width: 100% !important; }
}


.jlc-payment__methods > h3 {
  color: var(--jlc-accent-dark) !important;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  letter-spacing: 0.08em !important;
  line-height: 1.25 !important;
  margin: 2px 0 14px !important;
  text-transform: uppercase !important;
}

.jlc-payment__methods > h3:not(:first-child) {
  margin-top: 24px !important;
}

.jlc-form__status:not(:empty) {
  align-items: center !important;
  background: var(--jlc-soft) !important;
  border: 1px solid rgba(201, 163, 91, 0.28) !important;
  border-radius: 14px !important;
  color: var(--jlc-accent-dark) !important;
  display: flex !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  justify-content: center !important;
  line-height: 1.35 !important;
  margin-top: 14px !important;
  min-height: 46px !important;
  padding: 12px 14px !important;
  text-align: center !important;
}

.jlc-button:disabled {
  cursor: progress !important;
  opacity: 0.72 !important;
}


/* JLC Reservas 2.3.6 - refinamiento tipografico */
.jlc-booking .jlc-scheduler__top h3,
.jlc-booking .jlc-times h3,
.jlc-booking .jlc-form h3,
.jlc-booking .jlc-side-empty h3,
.jlc-booking .jlc-payment__summary h3 {
  color: var(--jlc-ink) !important;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  font-weight: 650 !important;
  letter-spacing: 0 !important;
  line-height: 1.18 !important;
}

.jlc-booking .jlc-scheduler__top h3 {
  font-size: 30px !important;
}

.jlc-booking .jlc-times h3,
.jlc-booking .jlc-form h3,
.jlc-booking .jlc-side-empty h3,
.jlc-booking .jlc-payment__summary h3 {
  font-size: 24px !important;
}

.jlc-booking .jlc-side-empty {
  padding: 26px 24px !important;
}

.jlc-booking .jlc-side-empty p:not(.jlc-step-label) {
  color: var(--jlc-muted) !important;
  font-size: 15px !important;
  font-weight: 400 !important;
  line-height: 1.55 !important;
  margin-top: 12px !important;
}

.jlc-booking .jlc-step-label,
.jlc-booking .jlc-booking__eyebrow,
.jlc-booking .jlc-payment__methods > h3 {
  font-size: 11px !important;
  font-weight: 750 !important;
  letter-spacing: 0.06em !important;
}

.jlc-booking .jlc-calendar__weekday {
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: 0.04em !important;
}

.jlc-booking .jlc-calendar__day span {
  font-size: 21px !important;
  font-weight: 700 !important;
}

.jlc-booking .jlc-calendar__day small {
  font-size: 10px !important;
  font-weight: 500 !important;
}

.jlc-booking .jlc-time {
  font-size: 15px !important;
  font-weight: 650 !important;
}

.jlc-booking .jlc-form label {
  font-size: 12px !important;
  font-weight: 650 !important;
  line-height: 1.35 !important;
}

.jlc-booking .jlc-form input,
.jlc-booking .jlc-form select,
.jlc-booking .jlc-form textarea {
  font-size: 14px !important;
  font-weight: 400 !important;
}

.jlc-booking .jlc-form textarea::placeholder,
.jlc-booking .jlc-form input::placeholder {
  color: #8a8f98 !important;
  font-weight: 400 !important;
}

.jlc-booking .jlc-form__status:not(:empty) {
  gap: 10px !important;
  font-size: 13px !important;
  font-weight: 650 !important;
}

.jlc-booking .jlc-form__status:not(:empty)::before {
  animation: jlcReservasSpin 900ms linear infinite !important;
  border: 2px solid rgba(139, 107, 45, 0.22) !important;
  border-top-color: var(--jlc-accent-dark) !important;
  border-radius: 999px !important;
  content: "" !important;
  display: inline-block !important;
  height: 14px !important;
  width: 14px !important;
}

@keyframes jlcReservasSpin {
  to { transform: rotate(360deg); }
}

@media (max-width: 620px) {
  .jlc-booking .jlc-scheduler__top h3 {
    font-size: 26px !important;
  }

  .jlc-booking .jlc-times h3,
  .jlc-booking .jlc-form h3,
  .jlc-booking .jlc-side-empty h3,
  .jlc-booking .jlc-payment__summary h3 {
    font-size: 22px !important;
  }

  .jlc-booking .jlc-calendar__day span {
    font-size: 17px !important;
  }

  .jlc-booking .jlc-calendar__day small {
    font-size: 9px !important;
  }
}
