/* Contact form date range picker, shared by every language. */
html.pz-calendar-open,
html.pz-calendar-open body { overflow: hidden !important; }

body.pz-redesign-body .pz-booking-form .pz-date-trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
  min-width: 0;
  min-height: 60px;
  margin: 0;
  padding: 16px;
  color: #62756b !important;
  background: #fff !important;
  border: 1px solid #c8d2c9;
  border-color: #c8d2c9 !important;
  border-radius: 14px;
  box-shadow: inset 0 1px 2px rgba(23, 59, 47, 0.03) !important;
  font-family: inherit;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0;
  text-align: left;
  text-transform: none;
  cursor: pointer;
}

body.pz-redesign-body .pz-booking-form .pz-date-trigger:hover,
body.pz-redesign-body .pz-booking-form .pz-date-trigger[aria-expanded="true"] {
  color: #173b2f !important;
  background: #f7faf5 !important;
  border-color: #55755f !important;
}

body.pz-redesign-body .pz-booking-form .pz-date-trigger.has-value { color: #173b2f !important; font-weight: 700; }
body.pz-redesign-body .pz-booking-form .pz-date-trigger__value { min-width: 0; overflow-wrap: anywhere; }
body.pz-redesign-body .pz-booking-form .pz-date-trigger svg {
  flex: 0 0 22px;
  width: 22px;
  height: 22px;
  fill: none;
  stroke: #47664f;
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}

dialog.pz-calendar {
  position: fixed;
  inset: 0;
  width: min(760px, calc(100vw - 32px));
  max-width: none;
  max-height: calc(100vh - 32px);
  max-height: calc(100dvh - 32px);
  margin: auto;
  padding: 0;
  overflow: hidden;
  color: #173b2f;
  background: #fcfbf6;
  border: 1px solid #d8dfd4;
  border-radius: 26px;
  box-shadow: 0 28px 100px rgba(11, 32, 24, 0.3);
  font-family: "Manrope", "Segoe UI", sans-serif;
  font-size: 15px;
  line-height: 1.5;
  text-align: left;
}

dialog.pz-calendar:not([open]) { display: none; }
dialog.pz-calendar::backdrop { background: rgba(15, 34, 27, 0.57); backdrop-filter: blur(4px); }
/* The site's global motion rules must not animate calendar geometry on resize. */
dialog.pz-calendar, dialog.pz-calendar * { transition-property: none; }
.pz-calendar *, .pz-calendar *::before, .pz-calendar *::after { box-sizing: border-box; }
.pz-calendar__shell { display: flex; flex-direction: column; max-height: calc(100vh - 34px); max-height: calc(100dvh - 34px); }
.pz-calendar button { font: inherit; cursor: pointer; touch-action: manipulation; }
.pz-calendar button:disabled { cursor: default; }
.pz-calendar button:focus-visible,
body.pz-redesign-body .pz-booking-form .pz-date-trigger:focus-visible { outline: 3px solid #a77635; outline-offset: 3px; }
.pz-calendar__header { display: flex; flex: 0 0 auto; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 26px 28px 20px; }
.pz-calendar__header > div { min-width: 0; }
.pz-calendar__eyebrow { display: block; margin-bottom: 7px; color: #956528; font-size: 10px; font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; }
.pz-calendar__header h2 { margin: 0; color: #173b2f; font-family: inherit; font-size: 25px; font-weight: 750; line-height: 1.25; letter-spacing: -0.035em; overflow-wrap: anywhere; }
.pz-calendar__close,
.pz-calendar__navigation button { display: inline-flex; flex: 0 0 42px; align-items: center; justify-content: center; width: 42px; height: 42px; padding: 10px; background: #fff; color: #264d3b; border: 1px solid #d9e1d6; border-radius: 13px; }
.pz-calendar__close svg,
.pz-calendar__navigation svg { display: block; width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.pz-calendar__close:hover,
.pz-calendar__navigation button:hover:not(:disabled) { background: #eaf0e5; border-color: #a8bca8; }
.pz-calendar__content { min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 0 28px 20px; scroll-padding-top: 80px; scroll-padding-bottom: 12px; scrollbar-width: thin; }
.pz-calendar__selection { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.pz-calendar__selection button { display: block; min-width: 0; padding: 13px 16px; text-align: left; background: #fff; color: #173b2f; border: 1px solid #d7dfd2; border-radius: 14px; }
.pz-calendar__selection button.is-active { background: #eaf1e7; border-color: #436b50; box-shadow: inset 0 0 0 1px #436b50; }
.pz-calendar__selection span { display: block; color: #617566; font-size: 10px; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
.pz-calendar__selection strong { display: block; margin-top: 3px; font-size: 16px; line-height: 1.4; font-weight: 700; overflow-wrap: anywhere; }
.pz-calendar .pz-calendar__help { min-height: 40px; margin: 14px 0 10px; color: #5b6f61; font-size: 13px; line-height: 1.55; }
.pz-calendar .pz-calendar__dates { position: relative; margin: 0; }
.pz-calendar__navigation { position: sticky; top: 0; height: 0; z-index: 3; display: flex; justify-content: space-between; pointer-events: none; }
.pz-calendar__navigation button { pointer-events: auto; }
.pz-calendar__navigation button[data-move="1"] svg { transform: rotate(180deg); }
.pz-calendar__navigation button:disabled { opacity: 0.35; }
.pz-calendar__months { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
.pz-calendar__month { min-width: 0; }
.pz-calendar__month h3 { position: sticky; top: 0; z-index: 2; min-height: 42px; margin: 0 0 14px; padding: 10px 42px; color: #244b37; background: #fcfbf6; font-family: inherit; font-size: 16px; font-weight: 750; line-height: 1.4; letter-spacing: -0.02em; text-align: center; text-transform: capitalize; }
.pz-calendar table { width: 100%; margin: 0; table-layout: fixed; border-collapse: separate; border-spacing: 2px 4px; }
.pz-calendar thead { position: sticky; top: 42px; z-index: 1; background: #fcfbf6; }
.pz-calendar th { padding: 0 0 8px; color: #708274; font-size: 11px; font-weight: 700; text-align: center; text-transform: capitalize; }
.pz-calendar td { padding: 0; height: 40px; text-align: center; border: 0; }
.pz-calendar__day { display: block; width: 100%; min-height: 40px; padding: 7px 0; color: #244b37; background: transparent; border: 1px solid transparent; border-radius: 10px; font-size: 14px !important; font-weight: 650 !important; line-height: 1.5 !important; }
.pz-calendar__day:hover:not(:disabled) { background: #e5eddc; border-color: #bdcdb7; }
.pz-calendar__day.is-today { border-color: #b1813f; }
.pz-calendar__day.is-between { background: #e8efdf; }
.pz-calendar__day.is-selected,
.pz-calendar__day.is-selected:hover { color: #fff; background: #244c38; border-color: #244c38; box-shadow: 0 3px 7px rgba(36, 76, 56, 0.13); }
.pz-calendar__day:disabled { color: #a3ada2; background: transparent; }
.pz-calendar__day.is-selected:disabled { color: #fff; background: #244c38; }
.pz-calendar__summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 42px; margin-top: 10px; }
.pz-calendar__nights { color: #31563b; font-size: 14px; font-weight: 750; }
.pz-calendar__reset { min-height: 42px; padding: 8px 2px; background: transparent; color: #6b624a; border: 0; font-size: 13px !important; text-decoration: underline; text-underline-offset: 4px; }
.pz-calendar__footer { display: grid; flex: 0 0 auto; grid-template-columns: minmax(max-content, 0.65fr) minmax(0, 1.35fr); gap: 12px; padding: 18px 28px; background: #f0f2e9; border-top: 1px solid #dbe2d3; }
.pz-calendar__footer button { display: flex; align-items: center; justify-content: center; gap: 14px; min-width: 0; min-height: 50px; padding: 12px 16px; border-radius: 12px; font-size: 14px; font-weight: 750; line-height: 1.35; }
.pz-calendar__cancel { color: #375644; background: #fff; border: 1px solid #ccd7c5; white-space: nowrap; }
.pz-calendar__apply { color: #fff; background: #244c38; border: 1px solid #244c38; }
.pz-calendar__apply:hover:not(:disabled) { background: #183b2a; }
.pz-calendar__apply:disabled { color: #778572; background: #dce3d6; border-color: #dce3d6; }
.pz-calendar__apply span { font-size: 20px; line-height: 1; }

@media (max-width: 639px) {
  dialog.pz-calendar { width: calc(100vw - 20px); max-height: calc(100vh - 20px); max-height: calc(100dvh - 20px); border-radius: 20px; }
  .pz-calendar__shell { max-height: calc(100vh - 22px); max-height: calc(100dvh - 22px); }
  .pz-calendar__header { gap: 12px; padding: 20px 18px 16px; }
  .pz-calendar__header h2 { font-size: 21px; }
  .pz-calendar__content { padding: 0 16px 10px; }
  .pz-calendar__selection { gap: 8px; }
  .pz-calendar__selection button { padding: 11px 12px; }
  .pz-calendar__selection strong { font-size: 14px; }
  .pz-calendar__months { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .pz-calendar__month h3 { margin-bottom: 8px; }
  .pz-calendar__footer { gap: 8px; padding: 14px 16px; }
  .pz-calendar__footer button { padding: 12px 10px; font-size: 13px; }
}

@media (max-height: 500px) {
  .pz-calendar__header { padding-top: 12px; padding-bottom: 12px; }
  .pz-calendar__eyebrow { display: none; }
  .pz-calendar__header h2 { font-size: 20px; }
  .pz-calendar__selection button { padding-top: 7px; padding-bottom: 7px; }
  .pz-calendar__selection strong { font-size: 14px; }
  .pz-calendar .pz-calendar__help { min-height: 0; margin-top: 8px; margin-bottom: 8px; font-size: 12px; }
  .pz-calendar__footer { padding-top: 10px; padding-bottom: 10px; }
}

@media print { dialog.pz-calendar { display: none !important; } }
