.imd-booking {
  --booking-red: var(--imd-brand-red, #d72a2b);
  --booking-red-dark: var(--imd-brand-red-strong, #b91f20);
  --booking-ink: var(--imd-brand-anthracite, #16191c);
  --booking-border: rgba(22, 25, 28, .13);
  width: 100%;
  color: var(--booking-ink);
  font-family: var(--imd-font-body, Aileron, Arial, sans-serif);
}

.imd-booking *, .imd-booking *::before, .imd-booking *::after { box-sizing: border-box; }
.imd-booking [hidden] { display: none !important; }
.imd-booking__intro { max-width: 760px; margin-bottom: 24px; }
.imd-booking__eyebrow { color: var(--booking-red-dark); font-size: .79rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.imd-booking__intro h2 { margin: 8px 0 10px; color: var(--booking-ink); font: 800 clamp(2rem, 4vw, 3.25rem)/1.06 var(--imd-font-heading, ODUDA, Aileron, Arial, sans-serif); }
.imd-booking__intro p { margin: 0; color: #52606a; font-size: 1.02rem; line-height: 1.65; }
.imd-booking__form { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 18px; }
.imd-booking__calendar-card, .imd-booking__slots-card, .imd-booking__contact { min-width: 0; padding: clamp(20px, 3vw, 30px); border: 1px solid var(--booking-border); border-radius: 24px; background: #fff; box-shadow: 0 15px 40px rgba(22, 25, 28, .06); }
.imd-booking__calendar-card h3, .imd-booking__slots-card h3, .imd-booking__contact h3 { margin: 0 0 16px; color: var(--booking-ink); font: 800 1.3rem/1.2 var(--imd-font-heading, ODUDA, Aileron, Arial, sans-serif); }
.imd-booking__contact { grid-column: 1 / -1; }
.imd-booking__timezone { margin: -7px 0 18px; color: #667078; font-size: .88rem; }
.imd-booking__month-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 0 0 14px; }
.imd-booking__month-header strong { color: var(--booking-ink); text-transform: capitalize; }
.imd-booking__month-header button { width: 38px; height: 38px; padding: 0; border: 1px solid var(--booking-border); border-radius: 50%; background: #fff; color: var(--booking-ink); font: 700 1.5rem/1 sans-serif; cursor: pointer; }
.imd-booking__month-header button:hover:not(:disabled) { color: var(--booking-red); border-color: var(--booking-red); }
.imd-booking__month-header button:disabled { opacity: .3; cursor: not-allowed; }
.imd-booking__month-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 5px; text-align: center; }
.imd-booking__weekday { padding: 6px 0; color: #6a747d; font-size: .75rem; font-weight: 800; }
.imd-booking__day { width: 100%; min-height: 43px; padding: 0; border: 1px solid transparent; border-radius: 13px; background: #fff; color: var(--booking-ink); font: 700 .95rem/1 var(--imd-font-body, Aileron, Arial, sans-serif); cursor: pointer; }
.imd-booking__day:hover:not(:disabled) { border-color: var(--booking-red); background: #fff2f2; }
.imd-booking__day.is-selected { background: var(--booking-red); color: #fff; box-shadow: 0 7px 16px rgba(215, 42, 43, .24); }
.imd-booking__day:disabled { color: #b6bdc2; cursor: not-allowed; }
.imd-booking__fallback-label { display: block; margin: 8px 0 5px; font-weight: 800; }
.imd-booking__calendar-card select { width: 100%; min-height: 46px; padding: 9px 12px; border: 1px solid var(--booking-border); border-radius: 12px; background: #fff; color: var(--booking-ink); }
.imd-booking__calendar.is-ready ~ select, .imd-booking__calendar.is-ready ~ .imd-booking__fallback-label { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.imd-booking__slots { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.imd-booking__slots > p { grid-column: 1 / -1; margin: 0; padding: 18px; border-radius: 14px; background: #f7f7f8; color: #52606a; line-height: 1.5; }
.imd-booking__slot { display: flex; flex-direction: column; gap: 3px; min-height: 64px; padding: 12px 14px; border: 1px solid var(--booking-border); border-radius: 14px; background: #fff; color: var(--booking-ink); cursor: pointer; }
.imd-booking__slot input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.imd-booking__slot span { font-weight: 800; }
.imd-booking__slot small { color: #667078; font-size: .74rem; }
.imd-booking__slot:has(input:checked) { border-color: var(--booking-red); background: #fff0f0; box-shadow: 0 0 0 2px rgba(215,42,43,.11); }
.imd-booking__slot:has(input:focus-visible), .imd-booking__day:focus-visible, .imd-booking__month-header button:focus-visible { outline: 3px solid #b91f20; outline-offset: 2px; }
.imd-booking__slot.is-unavailable { background: #f5f5f6; color: #8f969c; cursor: not-allowed; }
.imd-booking__slot.is-unavailable small { color: #9a9fa4; }
.imd-booking__fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; }
.imd-booking__fields label, .imd-booking__note { display: flex; flex-direction: column; gap: 7px; color: var(--booking-ink); font-size: .88rem; font-weight: 800; }
.imd-booking__fields input, .imd-booking__fields select, .imd-booking__note textarea { width: 100%; min-width: 0; min-height: 49px; padding: 11px 14px; border: 1px solid #d2d6d9; border-radius: 12px; background: #f9fafb; color: var(--booking-ink); font: 500 1rem/1.35 var(--imd-font-body, Aileron, Arial, sans-serif); }
.imd-booking__fields input:focus, .imd-booking__fields select:focus, .imd-booking__note textarea:focus { outline: 2px solid rgba(215,42,43,.35); border-color: var(--booking-red); }
.imd-booking__fields .imd-booking__same-phone { grid-column: 1 / -1; flex-direction: row; align-items: flex-start; gap: 9px; color: #52606a; font-size: .86rem; font-weight: 600; }
.imd-booking__same-phone input { flex: 0 0 auto; width: 18px; min-height: 18px; height: 18px; margin: 0; accent-color: var(--booking-red); }
.imd-booking__note { margin-top: 15px; }
.imd-booking__note textarea { resize: vertical; }
.imd-booking__consent { display: flex; align-items: flex-start; gap: 10px; max-width: 750px; margin: 18px 0; color: #4d5962; font-size: .88rem; line-height: 1.5; }
.imd-booking__consent input { flex: 0 0 auto; width: 19px; height: 19px; margin-top: 2px; accent-color: var(--booking-red); }
.imd-booking__consent a { color: var(--booking-red-dark); text-decoration: underline; }
.imd-booking__trap { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.imd-booking__submit { display: inline-flex; align-items: center; justify-content: center; gap: 18px; min-height: 53px; padding: 13px 24px; border: 0; border-radius: 999px; background: var(--booking-red); color: #fff; font: 800 1rem/1 var(--imd-font-body, Aileron, Arial, sans-serif); cursor: pointer; box-shadow: 0 12px 24px rgba(215,42,43,.22); }
.imd-booking__submit:hover, .imd-booking__submit:focus-visible { background: var(--booking-red-dark); color: #fff; }
.imd-booking__fineprint { margin: 11px 0 0; color: #667078; font-size: .82rem; }
.imd-booking__notice { margin: 0 0 18px; padding: 14px 18px; border: 1px solid #e8a3a6; border-radius: 14px; background: #fff6f6; color: #8a272d; line-height: 1.5; }
.imd-booking__notice.is-success { border-color: #a8d5b5; background: #f2fbf4; color: #175f31; }
@media (max-width: 760px) { .imd-booking__form { grid-template-columns: 1fr; } .imd-booking__contact { grid-column: 1; } }
@media (max-width: 520px) { .imd-booking__calendar-card, .imd-booking__slots-card, .imd-booking__contact { padding: 20px 16px; border-radius: 19px; } .imd-booking__fields { grid-template-columns: 1fr; } .imd-booking__slots { gap: 7px; } .imd-booking__slot { padding: 10px; } .imd-booking__day { min-height: 39px; } .imd-booking__submit { width: 100%; } }

/* The campaign is rendered inside a themed WordPress page. Keep native
 * controls and the custom calendar aligned with the page's active palette. */
.imd-campaign .imd-booking {
  --booking-ink: #172026;
  --booking-muted: #526069;
  --booking-surface: #fff;
  --booking-field: #f7f9fa;
  --booking-soft: #f2f5f6;
  --booking-border: #dce2e5;
  --booking-red: #c9222d;
  color-scheme: light;
  color: var(--booking-ink) !important;
}
.imd-campaign .imd-booking :is(.imd-booking__intro p,.imd-booking__timezone,.imd-booking__weekday,.imd-booking__fineprint,.imd-booking__fields .imd-booking__same-phone,.imd-booking__consent,.imd-booking__slot small) { color: var(--booking-muted) !important; }
.imd-campaign .imd-booking :is(.imd-booking__calendar-card,.imd-booking__slots-card,.imd-booking__contact,.imd-booking__month-header button,.imd-booking__day,.imd-booking__slot) { border-color: var(--booking-border); background: var(--booking-surface); color: var(--booking-ink); }
.imd-campaign .imd-booking :is(.imd-booking__intro h2,.imd-booking__calendar-card h3,.imd-booking__slots-card h3,.imd-booking__contact h3,.imd-booking__fields label,.imd-booking__note,.imd-booking__month-header strong) { color: var(--booking-ink) !important; }
.imd-campaign .imd-booking :is(input:not([type="checkbox"]):not([type="radio"]),select,textarea) { border-color: var(--booking-border) !important; background: var(--booking-field) !important; color: var(--booking-ink) !important; color-scheme: inherit; }
.imd-campaign .imd-booking :is(input:not([type="checkbox"]):not([type="radio"]),select,textarea):focus-visible { border-color: var(--booking-red) !important; outline: 2px solid var(--booking-red) !important; outline-offset: 2px; box-shadow: 0 0 0 4px rgba(215,42,43,.16) !important; }
.imd-campaign .imd-booking select option { background: var(--booking-field); color: var(--booking-ink); }
.imd-campaign .imd-booking :is(input,textarea)::placeholder { color: var(--booking-muted) !important; opacity: 1; }
.imd-campaign .imd-booking .imd-booking__slots > p { background: var(--booking-soft); color: var(--booking-muted) !important; }
.imd-campaign .imd-booking .imd-booking__slot:has(input:checked) { border-color: var(--booking-red); background: #fff0f0; }
.imd-campaign .imd-booking .imd-booking__day.is-selected { border-color: var(--booking-red) !important; background: var(--booking-red) !important; color: #fff !important; }
.imd-campaign .imd-booking .imd-booking__day:disabled { color: var(--booking-muted); opacity: .46; }
.imd-campaign .imd-booking .imd-booking__day.is-selected:disabled { color: #fff; opacity: 1; }
.imd-campaign .imd-booking .imd-booking__slot.is-unavailable { background: var(--booking-soft); color: var(--booking-muted); opacity: .65; }
.imd-campaign .imd-booking .imd-booking__notice { border-color: #d99ea2; background: #fff3f3; color: #82232b !important; }
.imd-campaign .imd-booking .imd-booking__notice.is-success { border-color: #a8d5b5; background: #f2fbf4; color: #175f31 !important; }
.imd-campaign .imd-booking .imd-booking__submit { background: var(--booking-red) !important; color: #fff !important; }
.imd-campaign .imd-booking .imd-booking__submit:hover { background: #a81924 !important; }

:is(html[data-theme="dark"],html[data-imd-color-scheme="dark"],html.inmudescuentos-site-dark,html.imh-site-dark,body.imd-dark-mode,body.dark-mode) .imd-campaign .imd-booking {
  --booking-ink: #f5f7f8;
  --booking-muted: #c6d0d5;
  --booking-surface: #262f34;
  --booking-field: #1c252a;
  --booking-soft: #303a40;
  --booking-border: #52616a;
  --booking-red: #c9222d;
  color-scheme: dark;
}
:is(html[data-theme="dark"],html[data-imd-color-scheme="dark"],html.inmudescuentos-site-dark,html.imh-site-dark,body.imd-dark-mode,body.dark-mode) .imd-campaign .imd-booking .imd-booking__slot:has(input:checked) { border-color: #ff727a; background: #4c2a31; }
:is(html[data-theme="dark"],html[data-imd-color-scheme="dark"],html.inmudescuentos-site-dark,html.imh-site-dark,body.imd-dark-mode,body.dark-mode) .imd-campaign .imd-booking .imd-booking__day:hover:not(:disabled) { border-color: #ff727a; background: #3d2d33; }
:is(html[data-theme="dark"],html[data-imd-color-scheme="dark"],html.inmudescuentos-site-dark,html.imh-site-dark,body.imd-dark-mode,body.dark-mode) .imd-campaign .imd-booking .imd-booking__notice { border-color: #925359; background: #452a30; color: #ffe3e5 !important; }
:is(html[data-theme="dark"],html[data-imd-color-scheme="dark"],html.inmudescuentos-site-dark,html.imh-site-dark,body.imd-dark-mode,body.dark-mode) .imd-campaign .imd-booking .imd-booking__notice.is-success { border-color: #43775c; background: #213d2e; color: #d8f8e2 !important; }

/* Compact, consistent form controls; the native selects remain as a no-JS fallback. */
.imd-booking { --booking-surface: #fff; --booking-field: #f7f9fa; --booking-muted: #526069; }
.imd-campaign .imd-booking__form { gap: 14px; }
.imd-campaign .imd-booking__calendar-card,
.imd-campaign .imd-booking__slots-card,
.imd-campaign .imd-booking__contact { padding: clamp(16px, 2.5vw, 26px); }
.imd-campaign .imd-booking__calendar-card h3,
.imd-campaign .imd-booking__slots-card h3,
.imd-campaign .imd-booking__contact h3,
.imd-campaign .imd-booking__timezone { text-align: center; }
.imd-booking__fields { gap: 13px 16px; }
.imd-booking__fields .imd-booking__select-field { display: flex; flex-direction: column; gap: 7px; min-width: 0; }
.imd-booking__select-field > label { color: var(--booking-ink); font-size: .88rem; font-weight: 800; }
.imd-booking__fields .imd-booking__same-phone { grid-column: auto; align-self: end; min-height: 49px; align-items: center; }
.imd-booking__fields .imd-booking__whatsapp-field,
.imd-booking__fields .imd-booking__team-size { grid-column: 1 / -1; }
.imd-booking__notes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px 16px; margin-top: 13px; }
.imd-booking__notes .imd-booking__note { min-width: 0; margin: 0; }
.imd-campaign .imd-booking :is(.imd-booking__fields input:not([type="checkbox"]),.imd-booking__fields select,.imd-booking__notes input) {
  width: 100%; min-width: 0; min-height: 49px; padding: 11px 15px; border: 1px solid var(--booking-border) !important;
  border-radius: 15px !important; background: var(--booking-field) !important; color: var(--booking-ink) !important;
  font-family: var(--imd-font-body, Aileron, Arial, sans-serif) !important; font-size: 1rem !important;
  font-style: normal !important; font-weight: 400 !important; line-height: 1.35 !important;
  box-shadow: none !important;
}
.imd-campaign .imd-booking :is(.imd-booking__fields input:not([type="checkbox"]),.imd-booking__fields select,.imd-booking__notes input):focus-visible {
  border-color: var(--booking-red) !important; outline: 2px solid var(--booking-red) !important;
  outline-offset: 2px; box-shadow: 0 0 0 4px rgba(215,42,43,.14) !important;
}
.imd-booking__native-select { position: relative; }
.imd-booking__native-select::after { position: absolute; right: 17px; top: 50%; width: 8px; height: 8px; border-right: 2px solid var(--booking-muted); border-bottom: 2px solid var(--booking-muted); content: ""; pointer-events: none; transform: translateY(-70%) rotate(45deg); }
.imd-booking__native-select select { appearance: none; -webkit-appearance: none; padding-right: 42px !important; }
.imd-booking__select-field.is-enhanced .imd-booking__native-select { display: none; }
.imd-booking__combo { position: relative; min-width: 0; }
.imd-campaign .imd-booking .imd-booking__combo-trigger {
  position: relative; display: flex; align-items: center; width: 100%; min-height: 49px; padding: 11px 42px 11px 15px;
  border: 1px solid var(--booking-border) !important; border-radius: 15px !important;
  background: var(--booking-field) !important; color: var(--booking-ink) !important;
  font: 400 1rem/1.35 var(--imd-font-body, Aileron, Arial, sans-serif) !important;
  text-align: left; box-shadow: none !important; cursor: pointer;
}
.imd-booking__combo-trigger::after { position: absolute; right: 17px; top: 50%; width: 8px; height: 8px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; content: ""; transform: translateY(-70%) rotate(45deg); }
.imd-booking__combo-trigger.is-placeholder { color: var(--booking-muted) !important; }
.imd-campaign .imd-booking .imd-booking__combo-trigger:is(:hover,:focus-visible),
.imd-campaign .imd-booking .imd-booking__combo-trigger[aria-invalid="true"] { border-color: var(--booking-red) !important; }
.imd-booking__combo-trigger:focus-visible,
.imd-booking__combo-option:focus-visible { outline: 2px solid var(--booking-red); outline-offset: 2px; }
.imd-booking__combo.is-open .imd-booking__combo-trigger::after { transform: translateY(-20%) rotate(225deg); }
.imd-booking__combo-list { position: absolute; z-index: 30; top: calc(100% + 5px); left: 0; right: 0; max-height: 240px; overflow-y: auto; padding: 5px; border: 1px solid var(--booking-border); border-radius: 15px; background: var(--booking-surface); box-shadow: 0 14px 34px rgba(11,18,26,.18); }
.imd-booking__combo-option { display: block; padding: 11px 12px; border-radius: 10px; color: var(--booking-ink); font-size: .96rem; font-weight: 400; line-height: 1.35; cursor: pointer; }
.imd-booking__combo-option:is(:hover,.is-active),
.imd-booking__combo-option[aria-selected="true"] { background: rgba(215,42,43,.11); color: var(--booking-ink); }
.imd-booking__combo-error { display: block; margin-top: 5px; color: var(--booking-red); font-size: .81rem; font-weight: 600; }
.imd-booking__combo-error[hidden] { display: none; }
.imd-campaign .imd-booking__consent { max-width: 800px; margin: 17px auto 0; }
.imd-campaign .imd-booking .imd-booking__submit.imd-button--primary {
  display: flex; width: fit-content; min-width: 285px; min-height: 52px; margin: 18px auto 0; padding: 12px 25px;
  border: 1px solid var(--booking-red) !important; border-radius: 999px !important;
  background: var(--booking-red) !important; color: #fff !important;
  font-size: .96rem !important; font-weight: 800 !important; line-height: 1.2 !important;
  box-shadow: 0 13px 28px rgba(215,42,43,.22) !important;
}
.imd-campaign .imd-booking .imd-booking__submit.imd-button--primary:hover { background: var(--booking-red-dark) !important; border-color: var(--booking-red-dark) !important; transform: translateY(-2px); }
.imd-campaign .imd-booking__fineprint { text-align: center; }
@media (max-width: 640px) {
  .imd-campaign .imd-booking__fields,
  .imd-campaign .imd-booking__notes { grid-template-columns: minmax(0, 1fr); }
  .imd-booking__fields .imd-booking__whatsapp-field,
  .imd-booking__fields .imd-booking__team-size { grid-column: auto; }
  .imd-booking__fields .imd-booking__same-phone { min-height: auto; }
  .imd-campaign .imd-booking__calendar-card,
  .imd-campaign .imd-booking__slots-card,
  .imd-campaign .imd-booking__contact { padding: 18px 15px; }
  .imd-campaign .imd-booking .imd-booking__submit.imd-button--primary { width: 100%; min-width: 0; }
}
:is(html[data-theme="dark"],html[data-imd-color-scheme="dark"],html.inmudescuentos-site-dark,html.imh-site-dark,body.imd-dark-mode,body.dark-mode) .imd-campaign .imd-booking__combo-option:is(:hover,.is-active),
:is(html[data-theme="dark"],html[data-imd-color-scheme="dark"],html.inmudescuentos-site-dark,html.imh-site-dark,body.imd-dark-mode,body.dark-mode) .imd-campaign .imd-booking__combo-option[aria-selected="true"] { background: #4b2b32; color: #fff; }
