/* =====================================================================
   Superstars Bell Tent Hire — Hotel Booking skin
   Values taken from the staging site's Elementor kit (post-87.css)
   and homepage (post-13.css), October 2026:
     colours   primary #5B3F99 · sun #FBCD21 · accent #8D74E0
               ink #2A1E4A · cream #FFF6DC · lavender #F4EEFF
     type      Fredoka 700 headings · Nunito Sans 500 body (1.05rem)
               buttons Nunito Sans 900, uppercase, 20px / 18px mobile
     shape     cards 28px radius, 4px ink border, 1px 8px 1px ink shadow
               pills 50px radius · small chips 12px
   ===================================================================== */

:root{
  --sbth-primary:#5B3F99;
  --sbth-sun:#FBCD21;
  --sbth-sun-deep:#EBB107;
  --sbth-accent:#8D74E0;
  --sbth-ink:#2A1E4A;
  --sbth-cream:#FFF6DC;
  --sbth-lavender:#F4EEFF;
  --sbth-lilac-line:#917CB2;
  --sbth-grey:#555555;
  --sbth-line:#E5E5E5;
  --sbth-white:#FFFFFF;

  --sbth-font-display:"Fredoka","Arial Rounded MT Bold",sans-serif;
  --sbth-font-body:"Nunito Sans","Segoe UI",system-ui,sans-serif;

  --sbth-radius-card:28px;
  --sbth-radius-pill:50px;
  --sbth-radius-sm:12px;

  --sbth-shadow-card:1px 8px 1px 0 var(--sbth-ink);
  --sbth-shadow-sm:1px 2px 1px 0 var(--sbth-ink);
  --sbth-shadow-btn:0 4px 0 4px var(--sbth-ink);
  --sbth-shadow-btn-press:0 1px 0 4px var(--sbth-ink);
}

/* ============ SHARED TYPE ============ */
.mphb_sc_search-wrapper,
.mphb_widget_search-form,
.mphb_sc_search_results-wrapper,
.mphb_sc_rooms-wrapper,
.mphb_sc_room-wrapper,
.mphb_sc_availability-wrapper,
.mphb_sc_checkout-wrapper,
.mphb_sc_booking_confirmation,
.mphb_sc_services-wrapper,
.single-mphb_room_type .mphb-single-room-type-attributes,
.single-mphb_room_type .mphb-calendar,
.single-mphb_room_type .mphb-booking-form{
  font-family:var(--sbth-font-body);
  font-weight:500;
  font-size:1.05rem;
  line-height:1.65;
  color:var(--sbth-ink);
}

.mphb_sc_search_results-wrapper h2,.mphb_sc_search_results-wrapper h3,
.mphb_sc_rooms-wrapper h2,.mphb_sc_rooms-wrapper h3,
.mphb_sc_checkout-wrapper h2,.mphb_sc_checkout-wrapper h3,.mphb_sc_checkout-wrapper h4,
.mphb_sc_booking_confirmation h2,.mphb_sc_booking_confirmation h3,
.mphb_sc_availability-wrapper h2,.mphb_sc_availability-wrapper h3,
.single-mphb_room_type .mphb-booking-form h2,
.single-mphb_room_type .mphb-booking-form h3{
  font-family:var(--sbth-font-display);
  font-weight:700;
  color:var(--sbth-ink);
  line-height:1.3;
  margin:0 0 16px;
}

/* ============ FORM FIELDS (every booking form) ============ */
.mphb_sc_search-form label,
.mphb_widget_search-form label,
.mphb-booking-form label,
.mphb_sc_checkout-form label{
  display:block;
  font-weight:700;
  font-size:.95rem;
  color:var(--sbth-ink);
  margin-bottom:6px;
}

.mphb_sc_search-form input[type="text"],
.mphb_sc_search-form select,
.mphb_widget_search-form input[type="text"],
.mphb_widget_search-form select,
.mphb-booking-form input[type="text"],
.mphb-booking-form select,
.mphb_sc_checkout-form input[type="text"],
.mphb_sc_checkout-form input[type="email"],
.mphb_sc_checkout-form input[type="tel"],
.mphb_sc_checkout-form input[type="number"],
.mphb_sc_checkout-form select,
.mphb_sc_checkout-form textarea,
.mphb-reserve-room-section select{
  box-sizing:border-box;
  width:100%;
  min-height:48px;
  font-family:var(--sbth-font-body);
  font-size:1rem;
  font-weight:600;
  color:var(--sbth-ink);
  background:var(--sbth-white);
  border:2px solid var(--sbth-ink);
  border-radius:var(--sbth-radius-sm);
  box-shadow:var(--sbth-shadow-sm);
  padding:10px 14px;
  transition:border-color .15s,box-shadow .15s;
}
.mphb_sc_checkout-form textarea{min-height:120px;line-height:1.5}

.mphb_sc_search-form input:focus-visible,
.mphb_sc_search-form select:focus-visible,
.mphb_widget_search-form input:focus-visible,
.mphb_widget_search-form select:focus-visible,
.mphb-booking-form input:focus-visible,
.mphb-booking-form select:focus-visible,
.mphb_sc_checkout-form input:focus-visible,
.mphb_sc_checkout-form select:focus-visible,
.mphb_sc_checkout-form textarea:focus-visible,
.mphb-reserve-room-section select:focus-visible{
  outline:3px solid var(--sbth-accent);
  outline-offset:2px;
  border-color:var(--sbth-primary);
}

.mphb_sc_checkout-form input[type="checkbox"],
.mphb_sc_checkout-form input[type="radio"]{
  accent-color:var(--sbth-primary);
  width:20px;height:20px;
  vertical-align:middle;
  margin-right:8px;
}

.mphb-required-fields-tip,
.mphb_sc_checkout-form .mphb-required-fields-tip small{
  font-size:.9rem;
  color:var(--sbth-grey);
}
.mphb-booking-form abbr,.mphb_sc_search-form abbr,.mphb_widget_search-form abbr,
abbr.required,.mphb_sc_checkout-form abbr{color:var(--sbth-primary);text-decoration:none;border:0;cursor:help}

/* Every boxed element sizes from its border, so 100%-wide fields can't overflow */
.mphb_sc_search-form,.mphb_widget_search-form,.mphb-booking-form,.mphb_sc_checkout-form,
.mphb_sc_search-form *,.mphb_widget_search-form *,.mphb-booking-form *,.mphb_sc_checkout-form *,
.mphb-room-type,.mphb-room-type *,.mphb-single-room-type-attributes,
.mphb-reservation-cart,.mphb_sc_booking_confirmation{box-sizing:border-box}

/* ============ BUTTONS (match the site's Elementor buttons) ============ */
.mphb_sc_search-form input[type="submit"],
.mphb_widget_search-form input[type="submit"],
.mphb-booking-form input[type="submit"],
.mphb-booking-form button[type="submit"],
.mphb-reserve-btn,
.mphb_sc_checkout-form input[type="submit"],
.mphb_sc_checkout-form button[type="submit"],
.mphb-reserve-room-section .mphb-book-button,
.mphb-reserve-room-section input[type="submit"],
.mphb-confirm-reservation,
.mphb-view-details-button,
.mphb_sc_rooms-wrapper .button,
.mphb_sc_search_results-wrapper .button{
  display:inline-block;
  font-family:var(--sbth-font-body) !important;
  font-size:20px !important;
  font-weight:900 !important;
  line-height:32px !important;
  text-transform:uppercase;
  text-decoration:none !important;
  color:var(--sbth-white) !important;
  background:var(--sbth-primary) !important;
  border:0 !important;
  border-radius:var(--sbth-radius-pill) !important;
  box-shadow:var(--sbth-shadow-btn) !important;
  padding:14px 36px !important;
  margin:4px 4px 12px 0;
  cursor:pointer;
  transition:background .15s,box-shadow .1s,transform .1s;
}
.mphb_sc_search-form input[type="submit"]:hover,
.mphb_widget_search-form input[type="submit"]:hover,
.mphb-booking-form input[type="submit"]:hover,
.mphb-booking-form button[type="submit"]:hover,
.mphb-reserve-btn:hover,
.mphb_sc_checkout-form input[type="submit"]:hover,
.mphb_sc_checkout-form button[type="submit"]:hover,
.mphb-reserve-room-section .mphb-book-button:hover,
.mphb-reserve-room-section input[type="submit"]:hover,
.mphb-confirm-reservation:hover,
.mphb-view-details-button:hover,
.mphb_sc_rooms-wrapper .button:hover,
.mphb_sc_search_results-wrapper .button:hover{
  background:var(--sbth-accent) !important;
  box-shadow:var(--sbth-shadow-btn-press) !important;
  transform:translateY(3px);
}
.mphb_sc_search-form input[type="submit"]:focus-visible,
.mphb-booking-form input[type="submit"]:focus-visible,
.mphb-reserve-btn:focus-visible,
.mphb_sc_checkout-form input[type="submit"]:focus-visible,
.mphb-reserve-room-section .mphb-book-button:focus-visible,
.mphb-confirm-reservation:focus-visible,
.mphb-view-details-button:focus-visible{
  outline:3px solid var(--sbth-sun);
  outline-offset:4px;
}

/* "View details" is the secondary action — outline style */
.mphb-view-details-button{
  color:var(--sbth-primary) !important;
  background:var(--sbth-white) !important;
  box-shadow:0 4px 0 0 var(--sbth-ink),inset 0 0 0 3px var(--sbth-primary) !important;
}
.mphb-view-details-button:hover{
  color:var(--sbth-white) !important;
  background:var(--sbth-primary) !important;
}

/* ============ SEARCH FORM ============ */
.mphb_sc_search-form,
.mphb_widget_search-form{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-end;
  gap:16px 20px;
  background:var(--sbth-cream);
  border:4px solid var(--sbth-ink);
  border-radius:var(--sbth-radius-card);
  box-shadow:var(--sbth-shadow-card);
  padding:28px;
}
.mphb_sc_search-form > p,
.mphb_widget_search-form > p{flex:1 1 180px;margin:0}
.mphb_sc_search-form .mphb_sc_search-submit-button-wrapper,
.mphb_widget_search-form .mphb_widget_search-submit-button-wrapper{flex:0 0 auto}
.mphb_sc_search-form .mphb-required-fields-tip,
.mphb_widget_search-form .mphb-required-fields-tip{flex:1 1 100%}

/* ============ ACCOMMODATION CARDS (search results + [mphb_rooms]) ============ */
.mphb_sc_search_results-wrapper .mphb-room-type,
.mphb_sc_rooms-wrapper .mphb-room-type{
  background:var(--sbth-white);
  border:4px solid var(--sbth-ink);
  border-radius:var(--sbth-radius-card);
  box-shadow:var(--sbth-shadow-card);
  padding:28px;
  margin:0 0 32px;
  overflow:hidden;
}

.mphb-room-type .mphb-room-type-images,
.mphb-room-type .post-thumbnail,
.mphb-room-type .mphb-flexslider{
  border-radius:calc(var(--sbth-radius-card) - 12px);
  overflow:hidden;
  margin-bottom:20px;
}
.mphb-room-type img{display:block;width:100%;height:auto;border-radius:inherit}

.mphb-room-type-title,
.mphb-room-type-title a{
  font-family:var(--sbth-font-display) !important;
  font-weight:700 !important;
  font-size:clamp(1.2rem,2.2vw,1.55rem) !important;
  line-height:1.3 !important;
  color:var(--sbth-ink) !important;
  text-decoration:none !important;
  margin:0 0 10px !important;
}
.mphb-room-type-title a:hover{color:var(--sbth-primary) !important}

/* Attribute list (Categories, Amenities, Guests, Size…) */
.mphb-loop-room-type-attributes,
.mphb-single-room-type-attributes{
  list-style:none;
  padding:0;
  margin:0 0 18px;
}
.mphb-loop-room-type-attributes li,
.mphb-single-room-type-attributes li{
  padding:6px 0;
  border-bottom:1px dashed var(--sbth-lilac-line);
  font-size:.98rem;
}
.mphb-loop-room-type-attributes li:last-child,
.mphb-single-room-type-attributes li:last-child{border-bottom:0}
.mphb-attribute-title{font-weight:800;color:var(--sbth-primary)}
.mphb-room-type-details-title{
  font-family:var(--sbth-font-display) !important;
  font-size:1.15rem !important;
  color:var(--sbth-ink) !important;
  margin:8px 0 6px !important;
}

/* Price — sun-yellow sticker, like the site's price chips */
.mphb-regular-price{
  display:inline-flex;
  align-items:baseline;
  gap:6px;
  flex-wrap:wrap;
  margin:4px 0 18px !important;
  font-size:.98rem;
  color:var(--sbth-ink);
}
.mphb-regular-price .mphb-price,
.mphb-room-type .mphb-price{
  display:inline-block;
  font-family:var(--sbth-font-display);
  font-weight:700;
  font-size:1.35rem;
  line-height:1.2;
  color:var(--sbth-ink);
  background:var(--sbth-sun);
  border:2px solid var(--sbth-ink);
  border-radius:var(--sbth-radius-sm);
  box-shadow:var(--sbth-shadow-sm);
  padding:4px 12px;
}
.mphb-price-period{font-size:.9rem;color:var(--sbth-grey);font-weight:600}

/* Reserve row on search results: quantity + Book */
.mphb-reserve-room-section{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:12px 16px;
  margin-top:8px;
  padding-top:20px;
  border-top:2px dashed var(--sbth-lilac-line);
}
.mphb-reserve-room-section select{width:auto;min-width:80px}
.mphb-reserve-room-section .mphb-book-button,
.mphb-reserve-room-section input[type="submit"]{margin:0 0 0 auto}

/* Reservation summary bar ("You've reserved…" + Confirm) */
.mphb-reservation-cart{
  background:var(--sbth-lavender);
  border:4px solid var(--sbth-ink);
  border-radius:var(--sbth-radius-card);
  box-shadow:var(--sbth-shadow-card);
  padding:20px 24px;
  margin:0 0 32px;
}
.mphb-reservation-cart .mphb-empty-cart-message,
.mphb-reservation-cart .mphb-cart-message{
  font-weight:700;
  color:var(--sbth-ink);
  margin:0 0 12px;
}
.mphb-reservation-cart .mphb-cart-total-price{
  font-family:var(--sbth-font-display);
  font-weight:700;
  font-size:1.3rem;
}

/* Results heading line ("2 accommodations found from…") */
.mphb_sc_search_results-info{
  background:var(--sbth-cream);
  border:2px solid var(--sbth-ink);
  border-radius:var(--sbth-radius-sm);
  box-shadow:var(--sbth-shadow-sm);
  padding:12px 16px;
  margin:0 0 24px;
  font-weight:700;
}

/* ============ SINGLE ACCOMMODATION PAGE (/accommodation/<tent>/) ============ */
.single-mphb_room_type .site-main{
  font-family:var(--sbth-font-body);font-weight:500;font-size:1.05rem;
  line-height:1.65;color:var(--sbth-ink);
}
.single-mphb_room_type .site-main .entry-title{
  font-family:var(--sbth-font-display);font-weight:700;
  font-size:clamp(2rem,4.6vw,3.4rem);line-height:1.06;letter-spacing:.01em;
  text-transform:uppercase;color:var(--sbth-ink);margin:24px 0 16px;
}
.single-mphb_room_type .page-content > p{font-size:clamp(1rem,1.6vw,1.2rem);line-height:1.65;margin:0 0 32px}
.single-mphb_room_type .mphb-details-title,
.single-mphb_room_type .mphb-calendar-title,
.single-mphb_room_type .mphb-reservation-form-title{
  font-family:var(--sbth-font-display);font-weight:700;font-size:28px;line-height:1.25;
  color:var(--sbth-ink);margin:0 0 16px;
}

/* Details list → card */
.single-mphb_room_type .mphb-single-room-type-attributes{
  background:var(--sbth-white);
  border:4px solid var(--sbth-ink);
  border-radius:var(--sbth-radius-card);
  box-shadow:var(--sbth-shadow-card);
  padding:12px 28px;
  margin:0 0 40px;
}
.single-mphb_room_type .mphb-single-room-type-attributes li{padding:12px 0}
/* Amenities and category show as tags, not as links to empty archive pages */
.mphb-single-room-type-attributes .mphb-attribute-value a,
.mphb-loop-room-type-attributes .mphb-attribute-value a{
  color:var(--sbth-ink) !important;text-decoration:none !important;font-weight:700;
  pointer-events:none;cursor:default;
}
.mphb-room-type-facilities .mphb-attribute-value{display:inline}
.mphb-room-type-facilities .mphb-attribute-value > span{
  display:inline-block;background:var(--sbth-lavender);border:2px solid var(--sbth-ink);
  border-radius:var(--sbth-radius-pill);padding:2px 12px;margin:4px 2px;font-size:.92rem;
}
.mphb-attribute-title{margin-right:6px}

/* Reservation form → cream card */
.single-mphb_room_type .mphb-booking-form,
.single-mphb_room_type .mphb_sc_availability-wrapper{
  background:var(--sbth-cream);
  border:4px solid var(--sbth-ink);
  border-radius:var(--sbth-radius-card);
  box-shadow:var(--sbth-shadow-card);
  padding:28px;
  margin:0 0 40px;
  max-width:760px;
}
.single-mphb_room_type .mphb-booking-form p{margin:0 0 18px}
.single-mphb_room_type .mphb-booking-form p.mphb-reserve-btn-wrapper{margin:28px 0 8px}
.mphb-booking-form br,
.mphb_sc_search-form br,
.mphb_widget_search-form br,
.mphb_sc_checkout-form label + br{display:none}

/* After "Check Availability": price + Reserve area */
.mphb-booking-form .mphb-period-price,
.mphb-booking-form .mphb-reserve-room-section{margin:16px 0}
.mphb-booking-form .mphb-period-price .mphb-price{
  font-family:var(--sbth-font-display);font-weight:700;font-size:1.35rem;
  background:var(--sbth-sun);border:2px solid var(--sbth-ink);
  border-radius:var(--sbth-radius-sm);box-shadow:var(--sbth-shadow-sm);padding:3px 12px;
}

/* ============ ACCOMMODATION ARCHIVE (/accommodation/) ============ */
.post-type-archive-mphb_room_type .site-main .page-header .entry-title{
  font-family:var(--sbth-font-display);font-weight:700;
  font-size:clamp(2rem,4.6vw,3.4rem);line-height:1.06;text-transform:uppercase;
  color:var(--sbth-ink);margin:24px 0 24px;
}
.post-type-archive-mphb_room_type .page-content{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:28px;
  margin-bottom:40px;
}
.post-type-archive-mphb_room_type .page-content article.post{
  background:var(--sbth-white);border:4px solid var(--sbth-ink);
  border-radius:var(--sbth-radius-card);box-shadow:var(--sbth-shadow-card);
  padding:24px;margin:0;font-family:var(--sbth-font-body);color:var(--sbth-ink);
}
.post-type-archive-mphb_room_type article.post .entry-title{
  font-family:var(--sbth-font-display);font-weight:700;font-size:22px;line-height:1.3;margin:0 0 8px;
}
.post-type-archive-mphb_room_type article.post .entry-title a{color:var(--sbth-ink);text-decoration:none}
.post-type-archive-mphb_room_type article.post .entry-title a:hover{color:var(--sbth-primary)}
.post-type-archive-mphb_room_type article.post p{margin:0;color:var(--sbth-grey);line-height:1.6}
.post-type-archive-mphb_room_type .pagination a{color:var(--sbth-primary);font-weight:800}

/* ============ CALENDARS & DATE PICKER ============ */
/* Brand the plugin's own calendar colour variables */
.mphb-calendar,
.datepick-popup{
  --mphb-available-date-bg:var(--sbth-lavender);
  --mphb-available-date-color:var(--sbth-ink);
  --mphb-not-available-date-bg:var(--sbth-line);
  --mphb-not-available-date-color:#8A8A8A;
  --mphb-booked-date-bg:var(--sbth-line);
  --mphb-booked-date-color:#8A8A8A;
  --mphb-out-of-season-date-bg:var(--sbth-line);
  --mphb-out-of-season-date-color:#8A8A8A;
  --mphb-selected-date-bg:var(--sbth-primary);
  --mphb-selected-date-color:var(--sbth-white);
  --mphb-unselectable-date-color:#8A8A8A;
}

/* The outer wrapper stays invisible; only the calendar itself gets the box */
.mphb-calendar.mphb-datepick{
  border:0 !important;box-shadow:none !important;background:transparent !important;
  padding:0 !important;margin:0 0 40px !important;
}
.mphb-calendar .datepick,
.datepick-popup .datepick{
  font-family:var(--sbth-font-body) !important;
  border:4px solid var(--sbth-ink) !important;
  border-radius:var(--sbth-radius-sm) !important;
  box-shadow:var(--sbth-shadow-card) !important;
  background:var(--sbth-white) !important;
  overflow:hidden;
}
/* Inline calendar on a tent page: use the full width, months side by side */
.mphb-calendar .datepick{width:100% !important;max-width:760px;height:auto !important}
.mphb-calendar .datepick-month-row{display:flex;gap:0;height:auto !important}
.mphb-calendar .datepick-month{flex:1 1 0;width:auto !important;min-width:0;height:auto !important;
  border:0 !important;float:none !important}
/* the theme's table padding/borders make every row taller than the box — reset them */
.mphb-calendar .datepick-month table{height:auto !important;margin:0 !important;table-layout:fixed}
.mphb-calendar .datepick-month th,
.mphb-calendar .datepick-month td{padding:0 !important;line-height:1.2 !important;vertical-align:middle !important}
.mphb-calendar .datepick-month td > span{height:auto !important}
.mphb-calendar .datepick-month + .datepick-month{border-left:2px solid var(--sbth-ink) !important}
.mphb-calendar .datepick-month table{width:100%}
.mphb-calendar .datepick-month td a,
.mphb-calendar .datepick-month td span{
  display:flex;align-items:center;justify-content:center;
  min-height:38px;font-size:.95rem;
}
.mphb-calendar .datepick-month td{border:1px solid var(--sbth-white) !important}
.mphb-calendar .datepick-nav{display:flex;justify-content:space-between;padding:8px 14px}
@media (max-width:767px){
  .mphb-calendar .datepick-month-row{flex-direction:column}
  .mphb-calendar .datepick-month + .datepick-month{border-left:0 !important;
    border-top:2px solid var(--sbth-ink) !important}
}
.datepick-popup{z-index:9999}
.datepick-month-header,
.datepick-month-header select{
  font-family:var(--sbth-font-display) !important;
  font-weight:700 !important;
  background:var(--sbth-primary) !important;
  color:var(--sbth-white) !important;
  border:0 !important;
}
.datepick-nav,.datepick-ctrl{
  background:var(--sbth-lavender) !important;
  border:0 !important;
}
.datepick-nav a,.datepick-ctrl a{
  color:var(--sbth-primary) !important;
  font-weight:800 !important;
  text-decoration:none !important;
}
.datepick-month th,
.datepick-month th a{
  color:var(--sbth-grey) !important;
  background:transparent !important;
  font-weight:800 !important;
}
.datepick-month td a,
.datepick-month td span{
  border-radius:8px !important;
  font-weight:700;
}
.datepick-month td .datepick-selected,
.datepick-month td a.datepick-selected,
.datepick-month td .datepick-highlight{
  background:var(--sbth-primary) !important;
  color:var(--sbth-white) !important;
}
.datepick-month td a:hover{
  background:var(--sbth-sun) !important;
  color:var(--sbth-ink) !important;
}
.datepick-month td .datepick-today{
  box-shadow:inset 0 0 0 2px var(--sbth-sun-deep);
}

/* ============ CHECKOUT (/booking-confirmation/) ============ */
/* Page heading: the theme prints it in its default font */
.site-main:has([class*="mphb_sc_"]) .page-header .entry-title{
  font-family:var(--sbth-font-display);font-weight:700;
  font-size:clamp(2rem,4.6vw,3.4rem);line-height:1.06;letter-spacing:.01em;
  text-transform:uppercase;color:var(--sbth-ink);margin:24px 0 16px;
}
.mphb_sc_checkout-wrapper{max-width:820px}
.mphb_sc_checkout-wrapper a:not(.button){color:var(--sbth-primary);font-weight:700}

/* The form is a wrapping flex row so Total + Book Now can share one bar at the end */
.mphb_sc_checkout-form{display:flex;flex-wrap:wrap;align-items:stretch}
.mphb_sc_checkout-form > *{flex:1 1 100%;min-width:0}
.mphb_sc_checkout-form > .mphb-errors-wrapper{order:1}
.mphb_sc_checkout-form > .mphb-total-price{order:2}
.mphb_sc_checkout-form > .mphb_sc_checkout-submit-wrapper{order:3}
.mphb-errors-wrapper.mphb-hide{display:none !important}

/* Section cards */
.mphb_sc_checkout-form > section,
.mphb_sc_checkout-form .mphb-checkout-section,
.mphb_sc_checkout-form .mphb-gateways-list,
.mphb_sc_checkout-form .mphb-checkout-terms-wrapper{
  background:var(--sbth-white);
  border:4px solid var(--sbth-ink);
  border-radius:var(--sbth-radius-card);
  box-shadow:var(--sbth-shadow-card);
  padding:28px;
  margin:0 0 32px;
}
.mphb_sc_checkout-form section section{
  border:0;box-shadow:none;padding:0;margin:0 0 20px;background:transparent;
}
.mphb_sc_checkout-form .mphb-booking-details-title,
.mphb_sc_checkout-form .mphb-price-breakdown-title,
.mphb_sc_checkout-form .mphb-customer-details-title,
.mphb_sc_checkout-form .mphb-checkout-section > h3,
.mphb_sc_checkout-form .mphb-checkout-section > h4{
  font-family:var(--sbth-font-display);font-weight:700;font-size:22px;line-height:1.3;
  color:var(--sbth-ink);margin:0 0 18px;
}
.mphb_sc_checkout-form p{margin:0 0 18px}

/* Booking details: check-in / check-out as two tiles */
.mphb_sc_checkout-form .mphb-booking-details{display:flex;flex-wrap:wrap;gap:16px}
.mphb_sc_checkout-form .mphb-booking-details > *{flex:1 1 100%;margin:0}
.mphb_sc_checkout-form .mphb-booking-details > .mphb-check-in-date,
.mphb_sc_checkout-form .mphb-booking-details > .mphb-check-out-date{
  flex:1 1 220px;background:var(--sbth-cream);border:2px solid var(--sbth-ink);
  border-radius:var(--sbth-radius-sm);box-shadow:var(--sbth-shadow-sm);
  padding:12px 16px;font-weight:600;line-height:1.5;
}
.mphb-check-in-date > span:first-child,
.mphb-check-out-date > span:first-child{
  display:block;font-size:.85rem;font-weight:800;text-transform:uppercase;
  letter-spacing:.04em;color:var(--sbth-primary);
}
.mphb-check-in-date strong,.mphb-check-out-date strong{font-family:var(--sbth-font-display);font-size:1.15rem}

/* Each accommodation in the booking: a light inner panel, not a second big card */
.mphb_sc_checkout-form .mphb-reserve-rooms-details .mphb-room-details{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px;
  background:var(--sbth-lavender);border:2px solid var(--sbth-ink);
  border-radius:var(--sbth-radius-sm);box-shadow:var(--sbth-shadow-sm);
  padding:18px 20px 4px;margin:0 0 16px;
}
.mphb_sc_checkout-form .mphb-room-details > *{grid-column:1 / -1}
.mphb_sc_checkout-form .mphb-room-details > .mphb-adults-chooser,
.mphb_sc_checkout-form .mphb-room-details > .mphb-children-chooser,
.mphb_sc_checkout-form .mphb-room-details > .mphb-guest-name-wrapper{grid-column:auto}
.mphb_sc_checkout-form .mphb-room-number{
  font-family:var(--sbth-font-body);font-size:.85rem;font-weight:800;text-transform:uppercase;
  letter-spacing:.04em;color:var(--sbth-primary);margin:0 0 2px;
}
.mphb_sc_checkout-form .mphb-room-details .mphb-room-type-title{
  font-family:var(--sbth-font-display);font-weight:700;font-size:1.25rem;line-height:1.3;margin:0 0 14px;
}
.mphb_sc_checkout-form .mphb-room-details .mphb-room-type-title > span{display:none}
.mphb_sc_checkout-form .mphb-room-details .mphb-room-type-title a{color:var(--sbth-ink);text-decoration:none}

/* Price breakdown */
.mphb-price-breakdown,
.mphb_sc_checkout-form table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  border:2px solid var(--sbth-ink);
  border-radius:var(--sbth-radius-sm);
  overflow:hidden;
  margin:0;
  font-size:.98rem;
}
.mphb-price-breakdown th,
.mphb-price-breakdown td,
.mphb_sc_checkout-form table th,
.mphb_sc_checkout-form table td{
  padding:12px 16px;
  border:0;
  border-bottom:1px solid var(--sbth-line);
  text-align:left;
  background:var(--sbth-white);
  vertical-align:middle;
}
.mphb-price-breakdown .mphb-table-price-column{text-align:right;white-space:nowrap}
.mphb-price-breakdown thead th,
.mphb_sc_checkout-form table thead th{
  background:var(--sbth-lavender);
  font-weight:800;
  color:var(--sbth-ink);
}
.mphb-price-breakdown tfoot th,
.mphb-price-breakdown tfoot td,
.mphb-price-breakdown .mphb-price-breakdown-total th,
.mphb-price-breakdown .mphb-price-breakdown-total td{
  background:var(--sbth-cream);
  font-family:var(--sbth-font-display);
  font-weight:700;
  font-size:1.1rem;
  border-bottom:0;
}
.mphb-price-breakdown-expand{
  color:var(--sbth-ink) !important;
  font-weight:800;
  text-decoration:none !important;
}
.mphb-price-breakdown-expand:hover{color:var(--sbth-primary) !important}
.mphb-price-breakdown-expand .mphb-inner-icon{
  display:inline-grid;place-items:center;width:22px;height:22px;margin-right:8px;
  border:2px solid var(--sbth-ink);border-radius:6px;background:var(--sbth-sun);
  font-size:14px;line-height:1;color:var(--sbth-ink);
}
.mphb-price-breakdown-expand .mphb-inner-icon.mphb-hide{display:none}
.mphb-price-breakdown-rate{font-size:.9rem;color:var(--sbth-grey);margin:6px 0 0 30px}

/* Your information: fields in two columns, city / county / postcode in three */
.mphb_sc_checkout-form .mphb-customer-details{
  display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:0 18px;
}
.mphb_sc_checkout-form .mphb-customer-details > *{grid-column:1 / -1}
.mphb_sc_checkout-form .mphb-customer-details > .mphb-customer-name,
.mphb_sc_checkout-form .mphb-customer-details > .mphb-customer-last-name,
.mphb_sc_checkout-form .mphb-customer-details > .mphb-customer-email,
.mphb_sc_checkout-form .mphb-customer-details > .mphb-customer-phone{grid-column:span 3}
.mphb_sc_checkout-form .mphb-customer-details > .mphb-customer-city,
.mphb_sc_checkout-form .mphb-customer-details > .mphb-customer-state,
.mphb_sc_checkout-form .mphb-customer-details > .mphb-customer-zip{grid-column:span 2}
.mphb_sc_checkout-form .mphb-customer-details > .mphb-required-fields-tip{margin:-8px 0 18px}

/* Total + Book Now: one cream bar, total on the left, button on the right */
.mphb_sc_checkout-form > .mphb-total-price,
.mphb_sc_checkout-form > .mphb_sc_checkout-submit-wrapper{
  display:flex;align-items:center;margin:0;
  background:var(--sbth-cream);border:4px solid var(--sbth-ink);
  box-shadow:var(--sbth-shadow-card);padding:20px 28px;
}
.mphb_sc_checkout-form > .mphb-total-price,
.mphb_sc_checkout-form > .mphb_sc_checkout-submit-wrapper{box-shadow:0 8px 0 0 var(--sbth-ink)}  /* no blur, so the two halves join without a seam */
.mphb_sc_checkout-form > .mphb-total-price{
  flex:1 1 auto;border-right:0;margin-right:-1px;border-radius:var(--sbth-radius-card) 0 0 var(--sbth-radius-card);
}
.mphb_sc_checkout-form > .mphb_sc_checkout-submit-wrapper{
  flex:0 0 auto;justify-content:flex-end;border-left:0;
  border-radius:0 var(--sbth-radius-card) var(--sbth-radius-card) 0;
}
.mphb-total-price output{
  display:flex;align-items:center;flex-wrap:wrap;gap:12px;
  font-family:var(--sbth-font-display);font-weight:700;font-size:1.3rem;color:var(--sbth-ink);
}
.mphb-total-price .mphb-total-price-field{font-weight:700}
.mphb-total-price .mphb-price{
  display:inline-block;
  font-family:var(--sbth-font-display);
  font-weight:700;
  font-size:1.6rem;
  line-height:1.2;
  background:var(--sbth-sun);
  border:2px solid var(--sbth-ink);
  border-radius:var(--sbth-radius-sm);
  box-shadow:var(--sbth-shadow-sm);
  padding:4px 14px;
}
.mphb_sc_checkout-submit-wrapper input[type="submit"]{margin:0 !important}

@media (max-width:767px){
  .mphb_sc_checkout-form .mphb-reserve-rooms-details .mphb-room-details,
  .mphb_sc_checkout-form .mphb-customer-details{grid-template-columns:1fr}
  .mphb_sc_checkout-form .mphb-customer-details > *,
  .mphb_sc_checkout-form .mphb-room-details > *{grid-column:1 / -1 !important}
  .mphb_sc_checkout-form > .mphb-total-price,
  .mphb_sc_checkout-form > .mphb_sc_checkout-submit-wrapper{flex:1 1 100%;padding:18px 20px}
  .mphb_sc_checkout-form > .mphb-total-price{
    border-right:4px solid var(--sbth-ink);border-bottom:0;box-shadow:none;margin-right:0;
    border-radius:var(--sbth-radius-card) var(--sbth-radius-card) 0 0;
  }
  .mphb_sc_checkout-form > .mphb_sc_checkout-submit-wrapper{
    border-left:4px solid var(--sbth-ink);border-top:0;justify-content:stretch;
    border-radius:0 0 var(--sbth-radius-card) var(--sbth-radius-card);
  }
  .mphb_sc_checkout-submit-wrapper input[type="submit"]{width:100%}
  .mphb_sc_checkout-form > section,
  .mphb_sc_checkout-form .mphb-checkout-section{margin-bottom:24px}
}

/* Payment method radio list */
.mphb-gateways-list ul{list-style:none;padding:0;margin:0}
.mphb-gateways-list li{
  border:2px solid var(--sbth-ink);
  border-radius:var(--sbth-radius-sm);
  padding:12px 16px;
  margin:0 0 12px;
  background:var(--sbth-white);
}
.mphb-gateways-list li:has(input:checked){
  background:var(--sbth-lavender);
  border-color:var(--sbth-primary);
}

/* Errors & notices */
.mphb-errors-wrapper,
.mphb-data-incorrect,
.mphb_sc_checkout-wrapper .mphb-errors{
  background:#FFF0F0;
  border:2px solid #B3261E;
  border-radius:var(--sbth-radius-sm);
  color:#7A1B14;
  padding:12px 16px;
  margin:0 0 20px;
  font-weight:700;
}

/* ============ CONFIRMATION PAGES ============ */
/* "Reservation submitted" (the checkout page after Book Now, when the form is gone)
   and the Booking Confirmed page share one success card. */
.mphb_sc_checkout-wrapper:not(:has(form)),
.mphb_sc_booking_confirmation{
  position:relative;
  max-width:820px;
  background:var(--sbth-cream);
  border:4px solid var(--sbth-ink);
  border-radius:var(--sbth-radius-card);
  box-shadow:var(--sbth-shadow-card);
  padding:32px 32px 32px 112px;
  margin:8px 0 48px;
  font-size:clamp(1rem,1.6vw,1.2rem);
  line-height:1.65;
}
.mphb_sc_checkout-wrapper:not(:has(form))::before,
.mphb_sc_booking_confirmation::before{
  content:"✓";
  position:absolute;left:32px;top:32px;
  display:grid;place-items:center;width:56px;height:56px;border-radius:50%;
  background:var(--sbth-sun);border:3px solid var(--sbth-ink);box-shadow:var(--sbth-shadow-sm);
  font-family:var(--sbth-font-display);font-weight:700;font-size:28px;line-height:1;color:var(--sbth-ink);
}
.mphb_sc_checkout-wrapper:not(:has(form)) :is(h2,h3,h4,h5),
.mphb_sc_checkout-wrapper:not(:has(form)) > strong,
.mphb_sc_checkout-wrapper:not(:has(form)) > p:first-child > strong:only-child,
.mphb_sc_booking_confirmation :is(h2,h3,h4,h5){
  display:block;font-family:var(--sbth-font-display);font-weight:700;font-size:28px;
  line-height:1.25;color:var(--sbth-ink);margin:4px 0 8px;
}
.mphb_sc_checkout-wrapper:not(:has(form)) p,
.mphb_sc_booking_confirmation p{margin:0 0 10px}
.mphb_sc_checkout-wrapper:not(:has(form)) p:last-child,
.mphb_sc_booking_confirmation p:last-child{margin-bottom:0}
@media (max-width:767px){
  .mphb_sc_checkout-wrapper:not(:has(form)),
  .mphb_sc_booking_confirmation{padding:96px 20px 24px}
  .mphb_sc_checkout-wrapper:not(:has(form))::before,
  .mphb_sc_booking_confirmation::before{left:20px;top:24px}
  .mphb_sc_checkout-wrapper:not(:has(form)) :is(h2,h3,h4,h5),
  .mphb_sc_booking_confirmation :is(h2,h3,h4,h5){font-size:24px}
}

/* ============ FOOTER AT THE BOTTOM ON SHORT BOOKING PAGES ============ */
/* Only on pages built from a Hotel Booking shortcode (checkout, confirmed,
   cancellation…). The page fills the screen and the footer sits at the bottom. */
body:has(.site-main [class*="mphb_sc_"]){
  display:flex;flex-direction:column;min-height:100vh;min-height:100dvh;
}
body:has(.site-main [class*="mphb_sc_"]) > .site-main{flex:1 0 auto;width:100%}
/* breathing room above the footer (also keeps the last card's 8px shadow visible).
   Only theme-template pages (checkout, confirmed…); the Elementor booking page has its own. */
.site-main:has(> .page-content > [class*="mphb_sc_"]){padding-bottom:80px}
.single-mphb_room_type .site-main,
.post-type-archive-mphb_room_type .site-main{padding-bottom:64px}
@media (max-width:767px){
  .site-main:has(> .page-content > [class*="mphb_sc_"]),
  .single-mphb_room_type .site-main,
  .post-type-archive-mphb_room_type .site-main{padding-left:16px;padding-right:16px}
  .site-main:has(> .page-content > [class*="mphb_sc_"]){padding-bottom:56px}
  .single-mphb_room_type .site-main,
  .post-type-archive-mphb_room_type .site-main{padding-bottom:48px}
}
body:has(.site-main [class*="mphb_sc_"]) > header,
body:has(.site-main [class*="mphb_sc_"]) > footer{flex:none;width:100%}
/* let every section shrink to the screen, and never allow sideways scrolling */
body:has(.site-main [class*="mphb_sc_"]) > *{min-width:0}
body:has(.site-main [class*="mphb_sc_"]) > header,
body:has(.site-main [class*="mphb_sc_"]) > footer{max-width:100%}
body:has(.site-main [class*="mphb_sc_"]){overflow-x:clip}
.mphb_sc_checkout-wrapper,.mphb_sc_booking_confirmation{overflow-wrap:anywhere}
.mphb_sc_checkout-wrapper *,.mphb_sc_booking_confirmation *{max-width:100%}
/* the admin bar adds 32px (46px on mobile) when you're logged in */
body.admin-bar:has(.site-main [class*="mphb_sc_"]){min-height:calc(100vh - 32px);min-height:calc(100dvh - 32px)}
@media (max-width:782px){
  body.admin-bar:has(.site-main [class*="mphb_sc_"]){min-height:calc(100vh - 46px);min-height:calc(100dvh - 46px)}
}

/* ============ SERVICES LIST ============ */
.mphb_sc_services-wrapper .mphb-service{
  background:var(--sbth-white);
  border:4px solid var(--sbth-ink);
  border-radius:var(--sbth-radius-card);
  box-shadow:var(--sbth-shadow-card);
  padding:24px;
  margin:0 0 24px;
}

/* ============ MOBILE ============ */
@media (max-width:767px){
  .mphb_sc_search-form,
  .mphb_widget_search-form{padding:20px}
  .mphb_sc_search-form > p,
  .mphb_widget_search-form > p,
  .mphb_sc_search-form .mphb_sc_search-submit-button-wrapper,
  .mphb_widget_search-form .mphb_widget_search-submit-button-wrapper{flex:1 1 100%}

  .mphb_sc_search_results-wrapper .mphb-room-type,
  .mphb_sc_rooms-wrapper .mphb-room-type,
  .mphb_sc_checkout-form > section,
  .mphb_sc_checkout-form .mphb-checkout-section,
  .mphb_sc_checkout-form .mphb-booking-details,
  .mphb_sc_checkout-form .mphb-customer-details,
  .mphb_sc_checkout-form .mphb-room-details,
  .mphb_sc_checkout-form .mphb-gateways-list,
  .mphb_sc_booking_confirmation,
  .single-mphb_room_type .mphb-booking-form{padding:20px}

  .mphb_sc_search-form input[type="submit"],
  .mphb_widget_search-form input[type="submit"],
  .mphb-booking-form input[type="submit"],
  .mphb-reserve-btn,
  .mphb_sc_checkout-form input[type="submit"],
  .mphb_sc_checkout-form button[type="submit"],
  .mphb-reserve-room-section .mphb-book-button,
  .mphb-reserve-room-section input[type="submit"],
  .mphb-confirm-reservation,
  .mphb-view-details-button,
  .mphb_sc_rooms-wrapper .button,
  .mphb_sc_search_results-wrapper .button{
    width:100%;
    text-align:center;
    font-size:18px !important;
    line-height:26px !important;
    margin:4px 0 12px;
  }
  .mphb-reserve-room-section .mphb-book-button,
  .mphb-reserve-room-section input[type="submit"]{margin:0}
}

@media (prefers-reduced-motion:reduce){
  .mphb_sc_search-form *,
  .mphb-booking-form *,
  .mphb_sc_checkout-form *,
  .mphb-room-type *{transition:none !important;transform:none !important}
}
