/* ==========================================================================
   Behomu Apartments — MotoPress Hotel Booking in the theme's look
   (search form, booking form, rates, calendars, search results, checkout).
   Uses the tokens from style.css.
   ========================================================================== */

/* ---------- Shared form controls ---------- */
.mphb-panel .mphb-required-fields-tip,
.mphb_sc_checkout-wrapper .mphb-required-fields-tip { display: none; }

[class*="mphb_sc_"] label,
.mphb-booking-form label {
  display: inline-block;
  font-size: var(--fs-xs);
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--c-charcoal);
}
[class*="mphb_sc_"] label + br,
.mphb-booking-form label + br { display: none; }
[class*="mphb_sc_"] abbr[title],
.mphb-booking-form abbr[title] { color: var(--c-danger); text-decoration: none; border: 0; }

[class*="mphb_sc_"] input[type="text"],
[class*="mphb_sc_"] input[type="email"],
[class*="mphb_sc_"] input[type="tel"],
[class*="mphb_sc_"] input[type="number"],
[class*="mphb_sc_"] select,
[class*="mphb_sc_"] textarea,
.mphb-booking-form input[type="text"],
.mphb-booking-form select {
  width: 100%;
  min-height: 48px;
  margin-top: 0.4rem;
  padding: 0.7rem 0.9rem;
  border: 1px solid var(--c-border);
  border-radius: var(--radius-sm);
  background-color: var(--c-white);
  color: var(--c-text);
  font-size: var(--fs-base);
  transition: border-color var(--t-fast), box-shadow var(--t-fast);
}
[class*="mphb_sc_"] select,
.mphb-booking-form select {
  appearance: none;
  padding-right: 2.5rem;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%2325302b' stroke-width='1.6'%3E%3Cpath d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.9rem center;
}
[class*="mphb_sc_"] textarea { min-height: 130px; resize: vertical; }
[class*="mphb_sc_"] input:focus,
[class*="mphb_sc_"] select:focus,
[class*="mphb_sc_"] textarea:focus,
.mphb-booking-form input:focus,
.mphb-booking-form select:focus {
  outline: none;
  border-color: var(--c-forest);
  box-shadow: 0 0 0 3px rgba(180, 83, 8, 0.15);
}
[class*="mphb_sc_"] input[type="checkbox"],
[class*="mphb_sc_"] input[type="radio"] { width: 18px; height: 18px; accent-color: var(--c-forest); vertical-align: -3px; }

/* Buttons: MotoPress uses .button / input[type=submit]. */
[class*="mphb_sc_"] .button,
[class*="mphb_sc_"] button[type="submit"],
[class*="mphb_sc_"] input[type="submit"],
.mphb-booking-form .button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0.75rem 1.5rem;
  border: 1px solid var(--c-forest);
  border-radius: var(--radius-pill);
  background: var(--c-forest);
  color: var(--c-white);
  font-size: var(--fs-sm);
  font-weight: 600;
  letter-spacing: 0.02em;
  text-decoration: none;
  cursor: pointer;
  transition: background var(--t-fast) var(--ease), transform var(--t-fast) var(--ease), box-shadow var(--t) var(--ease);
}
[class*="mphb_sc_"] .button:hover,
[class*="mphb_sc_"] button[type="submit"]:hover,
[class*="mphb_sc_"] input[type="submit"]:hover,
.mphb-booking-form .button:hover {
  background: var(--c-forest-700);
  border-color: var(--c-forest-700);
  color: var(--c-white);
  transform: translateY(-1px);
  box-shadow: 0 8px 20px rgba(180, 83, 8, 0.22);
}
[class*="mphb_sc_"] .button:disabled,
[class*="mphb_sc_"] input[type="submit"]:disabled { opacity: 0.55; transform: none; box-shadow: none; cursor: not-allowed; }

.mphb-price { font-weight: 600; color: var(--c-charcoal); }
.mphb-errors-wrapper,
.mphb-errors-wrapper p { color: var(--c-danger); font-size: var(--fs-sm); }

/* ---------- Availability search (archive + booking page) ---------- */
.mphb_sc_search-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--sp-3);
  align-items: end;
}
.mphb_sc_search-form > p { margin: 0; }
.mphb_sc_search-submit-button-wrapper { grid-column: 1 / -1; }
.mphb_sc_search-submit-button-wrapper .button { width: 100%; }
@media (min-width: 768px) {
  .mphb_sc_search-form { grid-template-columns: repeat(4, minmax(0, 1fr)) auto; }
  .mphb_sc_search-submit-button-wrapper { grid-column: auto; }
  .mphb_sc_search-submit-button-wrapper .button { width: auto; }
}

/* ---------- Apartment page: booking card ---------- */
.book-widget__title { font-size: var(--fs-lg); margin-bottom: var(--sp-4); }
.mphb-room-rates-list { list-style: none; display: grid; gap: 0.45rem; margin: 0 0 var(--sp-4); }
.mphb-room-rates-list li {
  padding: 0.6rem 0.8rem;
  border: 1.5px solid var(--c-border);
  border-radius: var(--radius);
  font-size: var(--fs-sm);
  line-height: 1.45;
  color: var(--c-muted);
}
.mphb-room-rates-list li br { display: block; content: ""; margin-bottom: 0.15rem; }
.mphb-room-rates-list .mphb-price { color: var(--c-forest); }
.mphb-room-rates-list .mphb-price-period { color: var(--c-muted); }
.mphb-booking-form { display: grid; grid-template-columns: 1fr 1fr; gap: var(--sp-3); }
.mphb-booking-form > p,
.mphb-booking-form > div { margin: 0; }
.mphb-booking-form .mphb-check-in-date-wrapper,
.mphb-booking-form .mphb-check-out-date-wrapper,
.mphb-booking-form .mphb-reserve-btn-wrapper,
.mphb-booking-form .mphb-errors-wrapper,
.mphb-booking-form .mphb-reserve-rooms-details { grid-column: 1 / -1; }
.mphb-booking-form .mphb-reserve-btn { width: 100%; }
.mphb-booking-form .mphb-reserve-room-section { grid-column: 1 / -1; font-size: var(--fs-sm); }
.mphb-booking-form .mphb-period-price { font-weight: 600; color: var(--c-charcoal); }

/* ---------- Calendars (inline + date pickers) ---------- */
.mphb-panel--calendar {
  padding: var(--sp-4);
  background: var(--c-white);
  border: 1px solid var(--c-border);
  border-radius: var(--radius-lg);
  overflow-x: auto;
}
.mphb-calendar {
  --mphb-available-date-bg: var(--c-forest-50);
  --mphb-available-date-color: var(--c-charcoal);
  --mphb-booked-date-bg: #f1e3df;
  --mphb-booked-date-color: var(--c-danger);
  --mphb-not-available-date-bg: var(--c-sand);
  --mphb-not-available-date-color: var(--c-muted);
  --mphb-out-of-season-date-bg: var(--c-sand);
  --mphb-out-of-season-date-color: var(--c-muted);
  --mphb-selected-date-bg: var(--c-forest);
  --mphb-selected-date-color: var(--c-white);
}
.mphb-calendar .datepick { width: 100% !important; height: auto !important; }
.mphb-calendar .datepick-month,
.mphb-calendar .datepick-month-row { height: auto !important; }
.mphb-calendar .datepick-month table { width: 100%; height: auto; }
.mphb-calendar .datepick-month th,
.mphb-calendar .datepick-month td { border: 1px solid var(--c-border); }
.mphb-calendar .datepick-month td > span { display: block; padding: 0.35rem 0; text-align: center; }
.mphb-calendar .datepick-month-row { flex-wrap: nowrap; }
@media (max-width: 768px) {
  .mphb-calendar .datepick-month-row { flex-direction: column; }
  .mphb-calendar .datepick-month { width: 100% !important; }
  /* Date-picker popup: fit the screen and show one full-width month (Prev/Next to move). */
  .datepick-popup { left: 12px !important; right: 12px; width: auto !important; z-index: 1000; }
  .datepick-popup .datepick { width: 100% !important; padding: 0.75rem; }
  .datepick-popup .datepick-month-row { flex-direction: column; }
  .datepick-popup .datepick-month { width: 100% !important; }
  .datepick-popup .datepick-month + .datepick-month { display: none; }
  .datepick-popup .datepick-month table { width: 100%; }
  .datepick-popup .datepick-month td > a,
  .datepick-popup .datepick-month td > span { padding: 0.55rem 0; }
}
.mphb-calendar .datepick,
.datepick-popup .datepick {
  max-width: 100%;
  border: 0;
  border-radius: var(--radius);
  background: var(--c-white);
  font-family: var(--f-sans);
  color: var(--c-text);
}
.datepick-popup .datepick { box-shadow: var(--shadow-lg); border: 1px solid var(--c-border); }
.datepick-month-row { display: flex; flex-wrap: wrap; gap: var(--sp-4); }
.datepick-month { border: 0; }
[class*="mphb_sc_"] .datepick-month-header select,
.datepick-month-header select {
  width: auto;
  min-height: 0;
  margin: 0 0.15rem;
  padding: 0.1rem 1.4rem 0.1rem 0.3rem;
  border: 0;
  background-position: right 0.3rem center;
  box-shadow: none;
}
.datepick-month-header,
.datepick-month-header select {
  background: transparent;
  color: var(--c-charcoal);
  font-family: var(--f-serif);
  font-size: 1.15rem;
  font-weight: 600;
}
/* Prev / Today / Next: pill buttons instead of the plugin's grey hover blocks. */
.datepick-nav,
.datepick-ctrl {
  float: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--sp-2);
  width: 100%;
  margin-bottom: var(--sp-3);
  background: transparent;
  color: var(--c-charcoal);
  border: 0;
}
.datepick-nav .datepick-cmd,
.datepick-ctrl .datepick-cmd {
  float: none;
  width: auto;
  padding: 0.4rem 0.9rem;
  border: 1px solid var(--c-border);
  border-radius: var(--radius-pill);
  background: var(--c-white);
  color: var(--c-charcoal);
  font-size: var(--fs-xs);
  font-weight: 600;
  letter-spacing: 0.04em;
  line-height: 1.4;
  text-align: center;
  text-decoration: none;
  transition: background var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease);
}
.datepick-nav .datepick-cmd:hover,
.datepick-nav .datepick-cmd:focus-visible,
.datepick-ctrl .datepick-cmd:hover {
  background: var(--c-forest-50);
  border-color: var(--c-forest);
  color: var(--c-forest-700);
}
.datepick-nav .datepick-cmd-today { color: var(--c-forest); }
.datepick-nav .datepick-cmd.datepick-disabled,
.datepick-nav .datepick-cmd.datepick-disabled:hover {
  background: transparent;
  border-color: transparent;
  color: var(--c-border);
  cursor: default;
}
.datepick-ctrl .mphb-calendar__selected-dates { font-size: var(--fs-sm); color: var(--c-muted); }
.datepick-month th,
.datepick-month th a { color: var(--c-muted); background: transparent; font-size: var(--fs-xs); font-weight: 600; text-transform: uppercase; letter-spacing: 0.06em; }
.datepick-month td { border-radius: 6px; }
.datepick-month td a,
.datepick-month td span { border-radius: 6px; }
.datepick-month td a { color: inherit; text-decoration: none; cursor: pointer; transition: background var(--t-fast) var(--ease), color var(--t-fast) var(--ease); }
.datepick-month td .datepick-highlight,
.datepick-month td a:hover { background: var(--c-forest-700) !important; color: var(--c-white) !important; }
.datepick-month a.datepick-selected { background: var(--c-forest) !important; color: var(--c-white) !important; }
.datepick-popup .datepick-month .datepick-today { background: var(--c-gold-50); }
.mphb-calendar td .mphb-booked-date { text-decoration: line-through; }
.mphb-calendar td .mphb-past-date { color: #595f5b; }
.datepick-nav .datepick-cmd.datepick-disabled { color: var(--c-muted) !important; }
.mphb-calendar td .datepick-today { font-weight: 700; box-shadow: inset 0 0 0 1.5px var(--c-gold); }
/* Cells carry no colour of their own (the plugin theme paints them #eee); only real days are tinted. */
.mphb-calendar .datepick-month td,
.datepick-popup .datepick-month td { background: transparent; }
/* Days of the neighbouring months: blank, not grey "unavailable" blocks. */
.mphb-calendar td .datepick-other-month,
.datepick-popup td .datepick-other-month { background: transparent !important; color: transparent !important; box-shadow: none; }
/* Chosen stay inside the calendar (check-in → check-out). */
.mphb-calendar td .mphb-selected-date,
.mphb-calendar td .mphb-selected-date--check-in,
.mphb-calendar td .mphb-selected-date--check-out { font-weight: 700; }
.mphb-calendar .datepick-ctrl { margin: var(--sp-3) 0 0; padding: 0.4rem 0.6rem; border-radius: var(--radius-pill); background: var(--c-sand); }

/* ---------- Search results ---------- */
.mphb_sc_search_results-wrapper .mphb_sc_search_results-info { margin-bottom: var(--sp-5); color: var(--c-muted); }
.mphb_sc_search_results-wrapper .mphb-room-type {
  display: grid;
  gap: var(--sp-4);
  margin-bottom: var(--sp-5);
  padding: var(--sp-5);
  background: var(--c-white);
  border: 1px solid var(--c-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
}
.mphb_sc_search_results-wrapper .mphb-room-type-title { margin: 0; font-family: var(--f-serif); font-size: var(--fs-xl); font-weight: 500; }
.mphb_sc_search_results-wrapper .mphb-room-type-title a { color: var(--c-charcoal); text-decoration: none; }
.mphb_sc_search_results-wrapper .mphb-room-type-title a:hover { color: var(--c-forest); }
.mphb_sc_search_results-wrapper .mphb-loop-room-type-attributes { list-style: none; display: flex; flex-wrap: wrap; gap: 0.4rem 1.25rem; font-size: var(--fs-sm); color: var(--c-muted); }
.mphb_sc_search_results-wrapper .mphb-regular-price { font-size: var(--fs-md); }
.mphb_sc_search_results-wrapper .mphb-view-details-button { --btn-bg: transparent; background: transparent; color: var(--c-charcoal); border-color: rgba(32, 40, 35, 0.25); }
.mphb_sc_search_results-wrapper .mphb-view-details-button:hover { background: var(--c-charcoal); border-color: var(--c-charcoal); color: var(--c-white); }
.mphb-reservation-cart {
  position: sticky;
  bottom: var(--sp-4);
  z-index: 5;
  margin-top: var(--sp-6);
  padding: var(--sp-4) var(--sp-5);
  background: var(--c-white);
  border: 1px solid var(--c-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lg);
}
.mphb-empty-cart-message,
.mphb-cart-message { margin: 0 0 var(--sp-3); font-size: var(--fs-sm); }

/* ---------- Checkout & confirmations ---------- */
.mphb_sc_checkout-wrapper,
.mphb_sc_booking_confirmation,
.mphb_sc_booking_cancellation { display: grid; gap: var(--sp-5); }
.mphb_sc_checkout-wrapper section,
.mphb_sc_checkout-form > section,
.mphb-checkout-section {
  padding: var(--sp-5);
  background: var(--c-white);
  border: 1px solid var(--c-border);
  border-radius: var(--radius-lg);
}
.mphb_sc_checkout-wrapper h3,
.mphb_sc_checkout-wrapper h4 { font-family: var(--f-serif); font-weight: 500; }
.mphb_sc_checkout-wrapper .mphb-customer-details p,
.mphb_sc_checkout-form p { margin: 0 0 var(--sp-4); }
.mphb_sc_checkout-wrapper table,
.mphb_sc_booking_confirmation table { width: 100%; border-collapse: collapse; font-size: var(--fs-sm); }
.mphb_sc_checkout-wrapper th,
.mphb_sc_checkout-wrapper td,
.mphb_sc_booking_confirmation th,
.mphb_sc_booking_confirmation td { padding: 0.6rem 0.5rem; border-bottom: 1px solid var(--c-border); text-align: left; vertical-align: top; }
.mphb_sc_checkout-wrapper .mphb-price-breakdown-total th,
.mphb_sc_checkout-wrapper .mphb-price-breakdown-total td { font-weight: 600; color: var(--c-charcoal); border-bottom: 0; }
.mphb_sc_checkout-wrapper .mphb_sc_checkout-submit-wrapper { margin-top: var(--sp-6); }
.mphb_sc_checkout-wrapper .mphb_sc_checkout-submit-wrapper .button { width: 100%; }
@media (min-width: 768px) {
  .mphb_sc_checkout-wrapper .mphb_sc_checkout-submit-wrapper .button { width: auto; }
}
.mphb_sc_checkout-wrapper .mphb-rate-chooser { display: grid; gap: 0.45rem; }
.mphb_sc_checkout-wrapper .mphb-rate-chooser label {
  display: flex;
  gap: 0.6rem;
  align-items: flex-start;
  padding: 0.6rem 0.8rem;
  border: 1.5px solid var(--c-border);
  border-radius: var(--radius);
  font-size: var(--fs-sm);
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
}
.mphb_sc_checkout-wrapper .mphb-rate-chooser label:has(input:checked) { border-color: var(--c-forest); background: var(--c-forest-50); }
