/*
 * #Pads4Paps calendar theme
 * Scoped to the My Journey booking flow so the shared calendar include
 * keeps its default appearance everywhere else.
 */

.p4p-booking .cal-main {
  --cal-main-blue: var(--journey-teal);
  --cal-main-blue-dark: var(--journey-teal-dark);
  --cal-main-blue-soft: var(--journey-teal-soft);
  --cal-main-border: #d9e9e6;
  --cal-main-border-strong: #d992b3;
  --cal-main-card: #ffffff;
  --cal-main-dark: var(--journey-ink);
  --cal-main-muted: var(--journey-muted);
  --cal-main-slot-selected: var(--journey-rose-dark);
  --cal-main-radius: 22px;
  --cal-main-shadow: 0 18px 46px rgba(36,77,73,.1);
  color: var(--journey-ink);
  font-family: Inter, Arial, sans-serif;
  margin-bottom: 0;
}

.p4p-booking .cal-main *,
.p4p-booking .cal-main *::before,
.p4p-booking .cal-main *::after {
  font-family: inherit;
}

.p4p-booking .cal-main__shell {
  border-color: var(--journey-line);
  border-radius: 22px;
  box-shadow: var(--cal-main-shadow);
}

.p4p-booking .cal-main__date-panel {
  background: #ffffff;
}

.p4p-booking .cal-main__time-panel {
  background: linear-gradient(180deg,#ffffff 0%,#fffafd 100%);
  border-left-color: var(--journey-line);
}

.p4p-booking .cal-main__title,
.p4p-booking .cal-main__month-label,
.p4p-booking .cal-main__weekdays,
.p4p-booking .cal-main__timezone,
.p4p-booking .cal-main__date-heading {
  color: var(--journey-teal-dark);
}

.p4p-booking .cal-main__title {
  font-size: 1.42rem;
  letter-spacing: -.025em;
  margin-bottom: 1.55rem;
}

.p4p-booking .cal-main__month-label,
.p4p-booking .cal-main__weekdays,
.p4p-booking .cal-main__timezone strong,
.p4p-booking .cal-main__date-heading {
  font-weight: 800;
}

.p4p-booking .cal-main__nav-button {
  color: var(--journey-muted);
}

.p4p-booking .cal-main__nav-button:hover,
.p4p-booking .cal-main__nav-button:focus-visible,
.p4p-booking .cal-main__nav-button:last-child {
  background: var(--journey-teal-soft);
  color: var(--journey-teal-dark);
}

.p4p-booking .cal-main__day {
  color: #617276;
  font-weight: 650;
}

.p4p-booking .cal-main__day:hover,
.p4p-booking .cal-main__day:focus-visible {
  background: var(--journey-rose-soft);
  color: var(--journey-rose-dark);
}

.p4p-booking .cal-main__day--available {
  background: var(--journey-teal-soft);
  color: var(--journey-teal-dark);
  font-weight: 850;
}

.p4p-booking .cal-main__day--available:hover,
.p4p-booking .cal-main__day--available:focus-visible {
  background: #dff3ef;
  color: var(--journey-teal-dark);
}

.p4p-booking .cal-main__day--selected,
.p4p-booking .cal-main__day--selected:hover,
.p4p-booking .cal-main__day--selected:focus-visible {
  background: var(--journey-teal-dark);
  color: #ffffff;
}

.p4p-booking .cal-main__day--today::after {
  background: var(--journey-rose);
}

.p4p-booking .cal-main__day--selected::after {
  background: #ffffff;
}

.p4p-booking .cal-main__status {
  background: var(--journey-rose-soft);
  border-color: #efc3d5;
  border-radius: 14px;
  color: var(--journey-rose-dark);
  min-height: 40px;
}

.p4p-booking .cal-main__status--success {
  background: var(--journey-teal-soft);
  border-color: #c8e3df;
  color: var(--journey-teal-dark);
}

.p4p-booking .cal-main__status--loading {
  background: var(--journey-rose-soft);
  border-color: #efc3d5;
  color: var(--journey-rose-dark);
}

.p4p-booking .cal-main__status--error {
  background: #fff1f2;
  border-color: #fecdd3;
  color: var(--journey-danger);
}

.p4p-booking .cal-main__slot {
  background: #ffffff;
  border-color: #dfa4bf;
  border-radius: 13px;
  color: var(--journey-rose-dark);
  min-height: 52px;
}

.p4p-booking .cal-main__slot:hover,
.p4p-booking .cal-main__slot:focus-visible {
  background: var(--journey-rose-soft);
  border-color: var(--journey-rose);
  color: var(--journey-rose-dark);
}

.p4p-booking .cal-main__slot--selected,
.p4p-booking .cal-main__slot--selected:hover,
.p4p-booking .cal-main__slot--selected:focus-visible {
  background: var(--journey-rose-dark);
  border-color: var(--journey-rose-dark);
  color: #ffffff;
}

.p4p-booking .cal-main__actions {
  align-items: stretch;
  gap: .7rem;
  grid-template-columns: minmax(132px,.65fr) minmax(0,1.35fr);
}

.p4p-booking .cal-main__selected-time {
  background: var(--journey-rose-soft);
  border-color: #efc3d5;
  border-radius: 999px;
  color: var(--journey-rose-dark);
  font-size: .9rem;
  min-height: 50px;
  padding-inline: 1rem;
}

.p4p-booking .cal-main__selected-time::before {
  color: var(--journey-muted);
  content: 'Selected:';
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .02em;
  margin-right: .35rem;
  text-transform: uppercase;
}

.p4p-booking .cal-main__continue {
  background: var(--journey-rose);
  border-color: var(--journey-rose);
  border-radius: 999px;
  box-shadow: 0 10px 24px rgba(200,79,134,.16);
  min-height: 50px;
}

.p4p-booking .cal-main__continue:hover,
.p4p-booking .cal-main__continue:focus-visible {
  background: var(--journey-rose-dark);
  border-color: var(--journey-rose-dark);
  box-shadow: 0 12px 26px rgba(148,52,95,.22);
}

.p4p-booking .cal-main__continue:disabled {
  background: #eadde3;
  border-color: #eadde3;
  color: #9a8790;
  box-shadow: none;
}

.p4p-booking .cal-main__empty {
  background: #fffafd;
  border-color: #e6bdd0;
  color: var(--journey-muted);
}

@media (max-width: 780px) {
  .p4p-booking .cal-main__time-panel {
    border-left: 0;
    border-top-color: var(--journey-line);
  }
}

@media (max-width: 460px) {
  .p4p-booking .cal-main__actions {
    gap: .55rem;
    grid-template-columns: minmax(110px,.75fr) minmax(0,1.25fr);
  }

  .p4p-booking .cal-main__selected-time::before {
    display: none;
  }

  .p4p-booking .cal-main__selected-time,
  .p4p-booking .cal-main__continue {
    font-size: .9rem;
    padding-inline: .75rem;
  }
}
