/*
Theme Name: Extended Stays CR
Author: www.bysasesorescr.com
Author URI: https://www.bysasesorescr.com
Description: Landing page de Extended Stays CR con reservas mediante MotoPress Hotel Booking.
Version: 1.13.5
Requires PHP: 8.0
Text Domain: extended-stays-cr
*/
html { scroll-behavior: smooth; max-width: 100%; overflow-x: hidden; overflow-x: clip; }
body { margin: 0; max-width: 100%; overflow-x: hidden; overflow-x: clip; }
.es-hero-price { min-width: 0; color: oklch(0.76 0.13 78); font-size: .875rem; line-height: 1.35; overflow-wrap: anywhere; }
.es-hero-price strong { font-weight: 600; }
section[id], div[id="contacto"] { scroll-margin-top: 5.5rem; }
.site-menu { display: none; }
.site-menu.is-open { display: flex; flex-direction: column; align-items: stretch; gap: 1rem; position: absolute; top: 100%; left: 0; right: 0; padding: 1.25rem; background: #fff; border-bottom: 1px solid #d9e2d9; box-shadow: 0 12px 24px rgb(0 0 0 / .12); }
@media (min-width: 1024px) {
  .site-menu { display: flex; width: 50%; align-items: center; justify-content: center; gap: clamp(.65rem, 1.15vw, 1.5rem); white-space: nowrap; }
  .site-menu.is-open { position: static; flex-direction: row; padding: 0; background: transparent; border: 0; box-shadow: none; }
}
#carousel { background: #315f46; }
.host-portrait { display: flex; align-items: center; justify-content: center; width: 150px; height: 150px; overflow: hidden; border: 5px solid #c69d50; border-radius: 50%; background: linear-gradient(145deg, #e8f1e8, #cbdccc); color: #315f46; box-shadow: 0 10px 28px rgb(49 95 70 / 16%); }
.host-portrait img { display: block; width: 100%; height: 100%; object-fit: cover; }
.host-portrait i { font-size: 4rem; }
.reviews-background { z-index: -2; }
.reviews-overlay { z-index: -1; background: linear-gradient(90deg, rgb(18 48 34 / 88%), rgb(18 48 34 / 58%) 55%, rgb(18 48 34 / 40%)); pointer-events: none; }
.review-slide[hidden] { display: none !important; }
.review-slide:not([hidden]) { animation: review-appear .45s ease-out; }
.review-control:hover, .review-control:focus-visible { background: #315f46; color: #fff; }
@keyframes review-appear { from { opacity: 0; transform: translateX(12px); } to { opacity: 1; transform: translateX(0); } }
@media (max-width: 767px) {
  .reviews-overlay { background: rgb(18 48 34 / 72%); }
}
@media (prefers-reduced-motion: reduce) {
  .review-slide:not([hidden]) { animation: none; }
}
.booking-panel { min-width: 0; overflow: hidden; }
.booking-panel .mphb-calendar,
.booking-panel .datepick,
.booking-panel .datepick-month { box-sizing: border-box; width: 100% !important; max-width: 100%; }
.booking-panel .datepick {
  --mphb-available-date-bg: #e5f2e8;
  --mphb-not-available-date-bg: #f6e9e6;
  --mphb-not-available-date-color: #775e59;
  --mphb-booked-date-bg: #f2dfd9;
  --mphb-booked-date-color: #775e59;
  border: 1px solid #d9e2d9;
  border-radius: 12px;
  overflow: hidden;
  color: #244435;
  background: #fff;
}
.booking-panel .datepick-nav,
.booking-panel .datepick-month-header { background: #315f46; color: #fff; }
.booking-panel .datepick-nav a,
.booking-panel .datepick-month-header,
.booking-panel .datepick-month-header select { color: #fff; }
.booking-panel .datepick-nav a:hover { background: #244b38; color: #e5c27d; }
.booking-panel .datepick-month table { width: 100%; table-layout: fixed; border-collapse: collapse; }
.booking-panel .datepick-month th,
.booking-panel .datepick-month td { box-sizing: border-box; width: 14.285%; text-align: center; }
.booking-panel .datepick-month th { color: #315f46; background: #f1f5ef; }
.booking-panel .datepick-month td { padding: 1px; }
.booking-panel .datepick-month td span,
.booking-panel .datepick-month td a { box-sizing: border-box; display: block; width: 100%; min-width: 0; border-radius: 5px; }
.booking-panel .datepick-month td .mphb-available-date:not(.mphb-date-check-out):not(.mphb-date-check-in) { background: #e5f2e8; color: #244435; }
.booking-panel .datepick-month td .mphb-booked-date:not(.mphb-date-check-out):not(.mphb-date-check-in),
.booking-panel .datepick-month td .mphb-not-available-date { background: #f2dfd9; color: #775e59; }
.booking-panel .datepick-month td .datepick-today { outline: 2px solid #c69d50; outline-offset: -2px; }
.booking-panel .mphb-calendar .mphb-calendar-legend { max-width: 100%; }
@media (max-width: 640px) {
  .booking-panel { padding: 12px; }
  .booking-panel .datepick-month th,
  .booking-panel .datepick-month td { font-size: clamp(10px, 2.8vw, 13px); padding: 1px; }
  .booking-panel .datepick-month td span,
  .booking-panel .datepick-month td a { height: auto; min-height: 32px; line-height: 32px; }
}

/* Accommodation details and secondary WordPress pages. */
.es-inner-page { background: #f9faf6; color: #244435; font-family: "DM Sans", system-ui, sans-serif; line-height: 1.65; }
.es-inner-page *, .es-inner-page *::before, .es-inner-page *::after { box-sizing: border-box; }
.es-inner-page a { color: #315f46; }
.es-inner-page h1, .es-inner-page h2, .es-inner-page h3, .es-brand { font-family: "Bricolage Grotesque", Georgia, serif; line-height: 1.15; }
.es-header { position: sticky; top: 0; z-index: 50; background: rgb(255 255 255 / 96%); border-bottom: 1px solid #d9e2d9; backdrop-filter: blur(12px); }
.es-header-inner, .es-footer-inner { max-width: 1240px; margin: auto; padding: 18px 28px; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.es-brand { color: #315f46; font-size: 1.25rem; font-weight: 700; text-decoration: none; white-space: nowrap; }
.es-brand span { color: #b47136; }
.es-nav { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 28px; }
.es-nav a { text-decoration: none; font-size: .93rem; font-weight: 500; }
.es-nav a:hover, .es-footer a:hover { text-decoration: underline; }
.es-property-main { max-width: 1240px; margin: 0 auto; padding: 48px 28px 96px; }
.es-back { display: inline-block; margin-bottom: 30px; text-decoration: none; font-size: .9rem; }
.es-back:hover { text-decoration: underline; }
.es-eyebrow { margin: 0 0 12px; color: #b47136; font-size: .78rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.es-lead { max-width: 880px; margin: 0 0 42px; color: #52685a; font-size: clamp(1.05rem, 2vw, 1.3rem); }
.es-property-hero { position: relative; display: flex; align-items: end; min-height: clamp(350px, 48vw, 590px); overflow: hidden; margin: 0 0 36px; border-radius: 22px; background: linear-gradient(135deg, #315f46, #173527); isolation: isolate; }
.es-property-hero::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, rgb(11 36 25 / 82%), rgb(11 36 25 / 12%) 72%); }
.es-property-hero > img { position: absolute; inset: 0; z-index: -2; display: block; width: 100%; height: 100%; object-fit: cover; }
.es-property-hero-copy { width: 100%; padding: clamp(26px, 5vw, 68px); }
.es-property-hero .es-eyebrow { color: #f0c785; text-shadow: 0 1px 8px rgb(0 0 0 / 35%); }
.es-property-hero h1 { max-width: 850px; margin: 0; color: #fff; font-size: clamp(2.7rem, 6.3vw, 5.6rem); text-shadow: 0 3px 20px rgb(0 0 0 / 45%); }
.es-property-grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(320px, .85fr); align-items: start; gap: clamp(32px, 5vw, 72px); }
.es-property-details, .es-property-booking { min-width: 0; }
.es-property-accordion > summary { display: block; list-style: none; }
.es-property-accordion > summary::-webkit-details-marker { display: none; }
.es-property-accordion > summary { pointer-events: none; }
.es-property-accordion > summary h2 { margin: 0 0 24px; font-size: clamp(1.65rem, 3vw, 2.2rem); }
.es-apartment-attributes { margin-top: 36px; }
.es-property-content { overflow-wrap: anywhere; }
.es-property-attributes { overflow-wrap: anywhere; }
.es-property-attributes .mphb-single-room-type-attributes { box-sizing: border-box; margin: 0; padding: 24px 26px 24px 46px; border: 1px solid #d9e2d9; border-radius: 20px; background: #fff; box-shadow: 0 18px 45px rgb(21 58 36 / 7%); }
.es-property-attributes .mphb-single-room-type-attributes a, .es-property-attributes .mphb-room-type-facilities a { color: inherit; text-decoration: none; pointer-events: none; }
.es-property-content img { max-width: 100%; height: auto; border-radius: 12px; }
.es-property-content .mphb-room-type-gallery-wrapper, .es-property-content .gallery { max-width: 100%; }
.es-property-content .mphb-single-room-type-gallery-wrapper { margin: 32px 0; }
.es-gallery-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 15px; }
.es-gallery-heading h3 { margin: 0; font-size: 1.45rem; }
.es-gallery-controls { display: flex; gap: 9px; }
.es-gallery-controls button { width: 42px; height: 42px; border: 1px solid #cad7c9; border-radius: 50%; background: #fff; color: #315f46; font: inherit; font-size: 1.45rem; line-height: 1; cursor: pointer; }
.es-gallery-controls button:hover, .es-gallery-controls button:focus-visible { background: #315f46; color: #fff; }
.es-property-content .mphb-single-room-type-gallery-wrapper .gallery { display: flex; gap: 15px; overflow-x: auto; padding: 0 0 12px; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-color: #c69d50 #ebf0e9; }
.es-property-content .mphb-single-room-type-gallery-wrapper .gallery-item { flex: 0 0 min(72%, 340px); float: none; width: min(72%, 340px) !important; max-width: none; margin: 0; scroll-snap-align: start; }
.es-property-content .mphb-single-room-type-gallery-wrapper .gallery > br { display: none; }
.es-property-content .mphb-single-room-type-gallery-wrapper .gallery-icon, .es-property-content .mphb-single-room-type-gallery-wrapper .gallery-item a { display: block; width: 100%; height: 100%; }
.es-property-content .mphb-single-room-type-gallery-wrapper .gallery img { display: block; width: 100%; height: 230px; max-width: none; object-fit: cover; border: 0 !important; border-radius: 14px; transition: transform .25s; }
.es-property-content .mphb-single-room-type-gallery-wrapper .gallery a:hover img { transform: scale(.98); }
.es-lightbox { max-width: none; max-height: none; width: 100vw; height: 100dvh; margin: 0; padding: 0; border: 0; background: rgb(10 24 17 / 96%); color: white; }
.es-lightbox::backdrop { background: rgb(0 0 0 / 85%); }
.es-lightbox-inner { display: grid; grid-template-columns: 54px minmax(0, 1fr) 54px; align-items: center; width: 100%; height: 100%; padding: 60px 12px 42px; gap: 10px; }
.es-lightbox figure { min-width: 0; margin: 0; text-align: center; }
.es-lightbox img { display: block; max-width: 100%; max-height: calc(100dvh - 140px); width: auto; height: auto; margin: auto; object-fit: contain; }
.es-lightbox figcaption { min-height: 26px; padding-top: 8px; font-size: .9rem; }
.es-lightbox button { border: 0; background: rgb(255 255 255 / 12%); color: white; cursor: pointer; }
.es-lightbox button:hover, .es-lightbox button:focus-visible { background: rgb(255 255 255 / 27%); }
.es-lightbox-close { position: absolute; top: 14px; right: 18px; width: 46px; height: 46px; border-radius: 50%; font-size: 1.8rem; }
.es-lightbox-prev, .es-lightbox-next { width: 48px; height: 54px; border-radius: 10px; font-size: 2rem; }
.es-property-booking { position: static; display: grid; gap: 22px; }
.es-booking-card { padding: 26px; border: 1px solid #d9e2d9; border-radius: 20px; background: #fff; box-shadow: 0 18px 45px rgb(21 58 36 / 9%); }
.es-booking-heading { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 8px 18px; margin-bottom: 20px; }
.es-booking-card h2 { margin: 0; font-size: 1.7rem; }
.es-booking-price { margin: 0; color: #52685a; font-size: .9rem; white-space: nowrap; }
.es-booking-price strong { color: #b47136; font-size: 1.15rem; }
.es-booking-card h3 { margin: 0 0 15px; font-size: 1.25rem; }
.es-reservation-form { margin-top: 28px; padding-top: 24px; border-top: 1px solid #d9e2d9; }
.es-reservation-form .mphb-booking-form { min-width: 0; }
.es-reservation-form .mphb-required-fields-tip { margin: 0 0 14px; color: #687a6d; font-size: .78rem; }
.es-date-fields, .es-guest-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.es-guest-fields-single { grid-template-columns: 1fr; }
.es-reservation-form .mphb-booking-form p { min-width: 0; }
.es-date-fields > p, .es-guest-fields > p { margin: 0; }
.es-reservation-form label { display: block; margin-bottom: 7px; color: #315f46; font-size: .85rem; font-weight: 700; }
.es-reservation-form label + br { display: none; }
.es-reservation-form input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="hidden"]), .es-reservation-form select { box-sizing: border-box; width: 100%; min-width: 0; max-width: 100%; min-height: 48px; padding: 10px 12px; border: 1px solid #c8d6c9; border-radius: 11px; background: #f7faf6; color: #244435; font: inherit; font-size: .9rem; box-shadow: 0 2px 4px rgb(21 58 36 / 3%); transition: border-color .2s, box-shadow .2s; }
.es-reservation-form input.mphb-datepick { cursor: pointer; }
.es-reservation-form select { padding-right: 22px; cursor: pointer; }
.es-reservation-form input:focus-visible, .es-reservation-form select:focus-visible { outline: none; border-color: #b47136; box-shadow: 0 0 0 3px rgb(180 113 54 / 15%); }
.es-guest-title { margin: 22px 0 12px; color: #315f46; font-size: 1rem; }
.es-reservation-form .mphb-reserve-btn-wrapper { margin: 22px 0 0; }
.es-reservation-form input[type="submit"], .es-reservation-form button { width: 100%; padding: 14px 20px; border: 0; border-radius: 11px; background: #b47136; color: white; font: inherit; font-weight: 700; cursor: pointer; transition: background .2s, transform .2s; }
.es-reservation-form input[type="submit"]:not(:disabled):hover, .es-reservation-form button:hover { background: #935625; transform: translateY(-1px); }
.es-reservation-form input[type="submit"]:disabled { opacity: .55; cursor: not-allowed; }
.es-property-contact, .es-property-location { min-width: 0; overflow: hidden; border: 1px solid #d9e2d9; border-radius: 20px; background: #fff; box-shadow: 0 18px 45px rgb(21 58 36 / 6%); }
.es-property-contact { padding: 26px; background: #f2f7f0; }
.es-property-contact h2, .es-property-location h2 { margin: 0; font-size: 1.55rem; }
.es-property-contact > p:not(.es-eyebrow) { margin: 12px 0 18px; color: #52685a; font-size: .95rem; }
.es-whatsapp-button { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 48px; padding: 10px 18px; border: 1px solid rgb(37 211 102 / 45%); border-radius: 11px; background: rgb(37 211 102 / 12%); color: #128c7e !important; font-size: .9rem; font-weight: 700; text-decoration: none; transition: background .2s; }
.es-whatsapp-button:hover, .es-whatsapp-button:focus-visible { background: rgb(37 211 102 / 23%); }
.es-whatsapp-button i { font-size: 1.45rem; }
.es-location-copy { padding: 22px 26px 18px; }
.es-property-location iframe { display: block; width: 100%; height: 275px; border: 0; }
.es-property-offers { margin-top: 38px; padding-top: 32px; border-top: 1px solid #d9e2d9; }
.es-property-offers > summary h2 { margin: 0; font-size: 1.55rem; }
.es-offers-list { display: grid; gap: 14px; margin-top: 20px; }
.es-offer { padding: 20px 22px; border: 1px solid #d9e2d9; border-radius: 15px; background: #fff; }
.es-offer h3 { margin: 0 0 7px; color: #315f46; font-size: 1.18rem; }
.es-offer p, .es-offers-empty { margin: 0; color: #52685a; font-size: .92rem; }
.es-offers-empty { margin-top: 15px; }
.es-offer-price { margin-top: 11px; color: #b47136; font-weight: 700; }
.es-property-brand { display: flex; align-items: center; justify-content: center; gap: 18px; min-width: 0; padding: 20px; border: 1px solid #d9e2d9; border-radius: 20px; background: #244b38; color: #fff; }
.es-property-brand img { display: block; width: 90px; height: 90px; flex: 0 0 90px; border-radius: 15px; object-fit: contain; }
.es-property-brand p { margin: 0; font-family: "Bricolage Grotesque", Georgia, serif; font-size: clamp(1.15rem, 2vw, 1.5rem); font-weight: 700; line-height: 1.15; }
.es-property-brand em { display: block; margin-top: 4px; color: #e7c486; font-weight: 400; }
.es-footer { background: #244b38; color: #fff; }
.es-footer-inner { align-items: baseline; flex-wrap: wrap; gap: 8px 24px; font-size: .85rem; }
.es-footer a { color: #e7c486; }
@media (max-width: 900px) {
  .es-property-grid { grid-template-columns: 1fr; }
}
@media (max-width: 767px) {
  .es-property-details > .es-property-accordion { overflow: hidden; margin: 0 0 14px; padding: 0; border: 1px solid #d9e2d9; border-radius: 15px; background: transparent; }
  .es-property-accordion > summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 60px; padding: 16px; background: #fff; cursor: pointer; pointer-events: auto; }
  .es-property-accordion > summary h2, .es-property-offers > summary h2 { margin: 0; font-size: 1.2rem; }
  .es-property-accordion > summary::after { content: "+"; flex: 0 0 auto; color: #b47136; font-family: "DM Sans", sans-serif; font-size: 1.7rem; font-weight: 400; line-height: 1; }
  .es-property-accordion[open] > summary::after { content: "−"; }
  .es-property-accordion > summary:focus-visible { outline: 3px solid #b47136; outline-offset: -3px; }
  .es-property-accordion .es-property-content, .es-property-accordion .es-property-attributes, .es-property-accordion .es-offers-content { padding: 16px; }
  .es-property-accordion .es-property-attributes .mphb-single-room-type-attributes { margin: 0; }
  .es-property-accordion .es-offers-list { margin-top: 0; }
  .es-property-accordion .es-offers-empty { margin-top: 0; }
}
@media (max-width: 640px) {
  .es-header-inner { align-items: flex-start; flex-direction: column; gap: 8px; padding: 12px 18px; }
  .es-nav { gap: 3px 16px; }
  .es-nav a { font-size: .82rem; }
  .es-property-main { padding: 28px 18px 64px; }
  .es-back { margin-bottom: 20px; }
  .es-property-hero { min-height: 420px; margin: 0 0 28px; border-radius: 14px; }
  .es-property-hero-copy { padding: 25px; }
  .es-booking-card { padding: 16px; }
  .es-property-attributes .mphb-single-room-type-attributes { padding: 18px 16px 18px 36px; border-radius: 15px; }
  .es-property-contact { padding: 20px 16px; }
  .es-location-copy { padding: 20px 16px 16px; }
  .es-property-location iframe { height: 220px; }
  .es-property-brand { gap: 12px; padding: 16px; }
  .es-property-brand img { width: 72px; height: 72px; flex-basis: 72px; }
  .es-property-content .mphb-single-room-type-gallery-wrapper .gallery-item { flex-basis: min(78%, 290px); width: min(78%, 290px) !important; }
  .es-property-content .mphb-single-room-type-gallery-wrapper .gallery img { height: 200px; }
  .es-lightbox-inner { grid-template-columns: 40px minmax(0, 1fr) 40px; gap: 4px; padding-left: 6px; padding-right: 6px; }
  .es-lightbox-prev, .es-lightbox-next { width: 38px; height: 46px; }
  .es-footer-inner { padding: 20px 18px; }
}
@media (max-width: 400px) {
  .es-date-fields { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .es-property-content .mphb-single-room-type-gallery-wrapper .gallery { scroll-behavior: auto; }
  .es-property-content .mphb-single-room-type-gallery-wrapper .gallery img { transition: none; }
}

/* Journal: posts page and individual articles. Scoped to avoid changing the landing page. */
.es-blog-main { min-height: 70vh; background: #f9faf6; }
.es-blog-container { width: min(100% - 48px, 1240px); margin-inline: auto; }
.es-blog-hero { position: relative; isolation: isolate; overflow: hidden; padding: clamp(74px, 10vw, 132px) 0 clamp(68px, 9vw, 110px); background: #244b38; color: #fff; }
.es-blog-hero::before { content: ""; position: absolute; z-index: -1; width: 52vw; height: 52vw; min-width: 430px; min-height: 430px; right: -10vw; top: -30%; border: 1px solid rgb(231 196 134 / 28%); border-radius: 50%; box-shadow: 0 0 0 90px rgb(231 196 134 / 5%), 0 0 0 180px rgb(231 196 134 / 4%); }
.es-blog-hero .es-eyebrow { color: #e7c486; }
.es-blog-hero h1 { max-width: 850px; margin: 0 0 18px; font-size: clamp(3.5rem, 8vw, 7rem); line-height: .98; letter-spacing: -.055em; overflow-wrap: anywhere; }
.es-blog-period { color: #e7c486; }
.es-blog-intro { max-width: 610px; margin: 0; color: #e6eee7; font-size: clamp(1.05rem, 2vw, 1.3rem); line-height: 1.55; }
.es-blog-layout { display: grid; grid-template-columns: minmax(0, 2fr) minmax(250px, .78fr); align-items: start; gap: clamp(32px, 5vw, 72px); padding-top: clamp(40px, 6vw, 80px); padding-bottom: 100px; }
.es-blog-feed { min-width: 0; }
.es-blog-article { overflow: hidden; margin-bottom: 40px; border: 1px solid #d9e2d9; border-radius: 22px; background: #fff; box-shadow: 0 18px 45px rgb(21 58 36 / 6%); }
.es-blog-cover { display: block; overflow: hidden; background: #e7eee5; }
.es-blog-cover img { display: block; width: 100%; aspect-ratio: 16 / 9; height: auto; object-fit: cover; transition: transform .3s ease; }
.es-blog-cover:hover img { transform: scale(1.025); }
.es-blog-article-body { padding: clamp(24px, 4vw, 44px); }
.es-blog-meta { display: flex; flex-wrap: wrap; gap: 7px; align-items: center; color: #6b786c; font-size: .85rem; }
.es-blog-meta a { color: #a0602f; font-weight: 700; text-decoration: none; }
.es-blog-article h2 { margin: 14px 0 20px; color: #244b38; font-size: clamp(1.8rem, 3vw, 2.7rem); letter-spacing: -.035em; }
.es-blog-article h2 a { color: inherit; text-decoration: none; }
.es-blog-article h2 a:hover, .es-blog-article h2 a:focus-visible { color: #a0602f; }
.es-blog-content, .es-blog-single-content { color: #3b5545; font-size: 1rem; line-height: 1.8; overflow-wrap: anywhere; }
.es-blog-content > :first-child, .es-blog-single-content > :first-child { margin-top: 0; }
.es-blog-content > :last-child, .es-blog-single-content > :last-child { margin-bottom: 0; }
.es-blog-content h2, .es-blog-single-content h2 { margin-top: 1.7em; font-size: 1.65rem; }
.es-blog-content h3, .es-blog-single-content h3 { margin-top: 1.5em; font-size: 1.3rem; }
.es-blog-content img, .es-blog-single-content img { max-width: 100%; height: auto; border-radius: 12px; }
.es-blog-content figure, .es-blog-single-content figure { max-width: 100%; margin-inline: 0; }
.es-blog-content iframe, .es-blog-single-content iframe { max-width: 100%; }
.es-blog-content a, .es-blog-single-content a { text-underline-offset: 3px; }
.es-blog-content blockquote, .es-blog-single-content blockquote { margin: 1.6em 0; padding: 8px 0 8px 20px; border-left: 3px solid #b47136; color: #315f46; font-size: 1.12em; }
.es-blog-content .more-link { display: inline-block; margin-top: 10px; color: #a0602f; font-weight: 700; }
.es-blog-article-end { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px 20px; margin-top: 30px; padding-top: 18px; border-top: 1px solid #e2e9df; color: #6b786c; font-size: .88rem; }
.es-blog-article-end a { color: #a0602f; font-weight: 700; text-decoration: none; }
.es-blog-aside { display: grid; gap: 34px; min-width: 0; }
.es-blog-aside-card { padding: 32px; border-radius: 20px; background: #eaf1e9; }
.es-blog-aside-card h2 { margin: 0 0 14px; color: #244b38; font-size: 2rem; letter-spacing: -.035em; }
.es-blog-aside-card > p:not(.es-eyebrow) { margin: 0 0 24px; color: #52685a; }
.es-blog-button { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 45px; padding: 10px 17px; border-radius: 10px; background: #315f46; color: #fff !important; font-size: .88rem; font-weight: 700; text-decoration: none; }
.es-blog-button:hover, .es-blog-button:focus-visible { background: #244b38; }
.es-blog-aside-recent h2 { margin: 0 0 15px; color: #244b38; font-size: 1.4rem; }
.es-blog-aside-recent ul { margin: 0; padding: 0; list-style: none; }
.es-blog-aside-recent li { padding: 15px 0; border-top: 1px solid #d9e2d9; }
.es-blog-aside-recent li a { display: block; color: #244b38; font-weight: 700; line-height: 1.35; text-decoration: none; }
.es-blog-aside-recent li a:hover { color: #a0602f; }
.es-blog-aside-recent li span { display: block; margin-top: 4px; color: #6b786c; font-size: .78rem; }
.es-blog-empty { padding: 48px; border: 1px solid #d9e2d9; border-radius: 20px; background: #fff; }
.es-blog-empty h2 { margin: 0 0 8px; }
.es-blog-empty .es-blog-button { margin-top: 12px; }
.es-blog-feed .navigation.pagination .nav-links { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.es-blog-feed .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 42px; min-height: 42px; padding: 8px 13px; border: 1px solid #d9e2d9; border-radius: 9px; background: #fff; color: #315f46; text-decoration: none; }
.es-blog-feed .page-numbers.current, .es-blog-feed a.page-numbers:hover { border-color: #315f46; background: #315f46; color: #fff; }
.es-blog-single { padding: clamp(38px, 6vw, 78px) 0 100px; }
.es-blog-single .es-blog-container { max-width: 1050px; }
.es-blog-back { display: inline-block; margin-bottom: 32px; color: #a0602f !important; font-size: .9rem; font-weight: 700; text-decoration: none; }
.es-blog-single-head { max-width: 850px; margin: 0 auto 36px; text-align: center; }
.es-blog-single-head h1 { margin: 0 0 22px; color: #244b38; font-size: clamp(2.5rem, 5vw, 4.8rem); letter-spacing: -.045em; overflow-wrap: anywhere; }
.es-blog-single-head .es-blog-meta { justify-content: center; }
.es-blog-single-cover { margin: 0 0 clamp(30px, 5vw, 60px); }
.es-blog-single-cover img { display: block; width: 100%; max-height: 590px; height: auto; aspect-ratio: 16 / 9; border-radius: 20px; object-fit: cover; }
.es-blog-single-content, .es-blog-tags, .es-blog-post-nav { max-width: 760px; margin-inline: auto; }
.es-blog-single-content { font-size: 1.08rem; }
.es-blog-tags { margin-top: 38px; padding-top: 18px; border-top: 1px solid #d9e2d9; color: #6b786c; font-size: .9rem; }
.es-blog-post-nav { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 15px; margin-top: 30px; }
.es-blog-post-nav a { max-width: 45%; color: #a0602f; font-weight: 700; text-decoration: none; }
.es-blog-page-links { margin-top: 24px; }
.es-blog-main :focus-visible { outline: 3px solid #b47136; outline-offset: 3px; }
@media (max-width: 880px) { .es-blog-layout { grid-template-columns: 1fr; } .es-blog-aside { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .es-blog-container { width: min(100% - 36px, 1240px); } .es-blog-hero { padding: 58px 0 65px; } .es-blog-layout { padding-bottom: 64px; } .es-blog-article { border-radius: 16px; } .es-blog-aside { grid-template-columns: 1fr; } .es-blog-aside-card { padding: 24px; } .es-blog-empty { padding: 26px; } .es-blog-single { padding-bottom: 64px; } .es-blog-single-cover img { border-radius: 14px; } }
@media (prefers-reduced-motion: reduce) { .es-blog-cover img { transition: none; } }

/* About Carlos. All selectors are scoped to the dedicated page. */
.es-about-main { background: #f9faf6; }
.es-about-container { width: min(100% - 48px, 1240px); margin-inline: auto; }
.es-about-hero { position: relative; overflow: hidden; background: #f0f4ed; }
.es-about-hero::before { content: ""; position: absolute; width: 550px; height: 550px; top: -300px; right: -230px; border: 1px solid rgb(180 113 54 / 16%); border-radius: 50%; box-shadow: 0 0 0 90px rgb(180 113 54 / 4%); pointer-events: none; }
.es-about-hero-grid { display: grid; grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr); align-items: center; gap: clamp(24px, 4vw, 44px); padding-block: clamp(24px, 3vw, 36px); }
.es-about-photo-wrap { position: relative; min-width: 0; padding: 0 22px 22px 0; }
.es-about-photo-wrap::after { content: ""; position: absolute; inset: 22px 0 0 22px; z-index: 0; border: 2px solid #c69d50; border-radius: 180px 180px 24px 24px; pointer-events: none; }
.es-about-photo, .es-about-photo-placeholder { position: relative; z-index: 1; display: block; width: 100%; height: clamp(400px, 46vw, 590px); border-radius: 180px 180px 24px 24px; object-fit: cover; object-position: center 25%; background: #dce8dc; box-shadow: 0 28px 55px rgb(27 66 42 / 13%); }
.es-about-photo-placeholder { display: grid; place-items: center; background: linear-gradient(145deg, #dbe9d8, #315f46); color: #f4e1b7; font-family: "Bricolage Grotesque", Georgia, serif; font-size: clamp(5rem, 12vw, 9rem); font-weight: 700; }
.es-about-photo-caption { position: absolute; z-index: 2; right: 2px; bottom: 45px; max-width: 220px; padding: 14px 18px; border-radius: 12px 0 0 12px; background: #244b38; color: #fff; font-size: .82rem; line-height: 1.35; box-shadow: 0 10px 25px rgb(0 0 0 / 15%); }
.es-about-hero-copy { position: relative; z-index: 1; padding: 0; }
.es-about-hero-copy .es-eyebrow { margin-bottom: 12px; }
.es-about-hero-copy h1 { margin: 0; color: #244b38; font-size: clamp(3.8rem, 7.8vw, 7rem); letter-spacing: -.065em; line-height: .98; }
.es-about-hero-copy h1 em, .es-about-story h2 em, .es-about-neighborhood h2 em { color: #a96b34; font-weight: 400; }
.es-about-role { margin: 16px 0; color: #a0602f; font-size: .87rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.es-about-role span { padding-inline: 5px; }
.es-about-lead { max-width: 590px; margin: 0; color: #365344; font-size: clamp(1.13rem, 2vw, 1.45rem); line-height: 1.6; }
.es-about-language { display: flex; align-items: center; gap: 10px; margin-top: 16px; color: #315f46; font-size: .93rem; font-weight: 700; }
.es-about-language-mark { color: #b47136; font-size: 1.25rem; }
.es-about-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 12px 20px; margin-top: 20px; }
.es-about-button { display: inline-flex; align-items: center; justify-content: center; gap: 15px; min-height: 50px; padding: 11px 22px; border-radius: 11px; font-size: .93rem; font-weight: 700; text-decoration: none; transition: background .2s, transform .2s; }
.es-about-button:hover { transform: translateY(-2px); }
.es-about-button-primary { background: #315f46; color: #fff !important; }
.es-about-button-primary:hover { background: #244b38; }
.es-about-text-link { color: #315f46; font-size: .9rem; font-weight: 700; text-decoration: none; }
.es-about-text-link:hover { text-decoration: underline; }
.es-about-story { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; padding-block: clamp(24px, 3vw, 36px); }
.es-about-story h2, .es-about-neighborhood h2 { margin: 0; color: #244b38; font-size: clamp(2.4rem, 4.5vw, 4.1rem); letter-spacing: -.05em; line-height: 1.08; }
.es-about-story-content { min-width: 0; color: #3b5545; font-size: 1.08rem; line-height: 1.85; overflow-wrap: anywhere; }
.es-about-story-content > :first-child { margin-top: 0; }
.es-about-story-content > :last-child { margin-bottom: 0; }
.es-about-story-content img { max-width: 100%; height: auto; border-radius: 12px; }
.es-about-story-content iframe { max-width: 100%; }
.es-about-story-content a { color: #a0602f; text-underline-offset: 3px; }
.es-about-story-content blockquote { margin: 1.7em 0; padding-left: 22px; border-left: 3px solid #b47136; font-size: 1.15em; }
.es-about-neighborhood { padding-block: clamp(28px, 3vw, 40px); background: #244b38; color: #e6eee7; }
.es-about-neighborhood-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .9fr); align-items: center; gap: clamp(24px, 4vw, 44px); }
.es-about-neighborhood .es-eyebrow { color: #e7c486; }
.es-about-neighborhood h2 { color: #fff; }
.es-about-neighborhood h2 em { color: #e7c486; }
.es-about-neighborhood-grid > div:nth-child(2) p { max-width: 490px; margin: 0 0 16px; font-size: 1.07rem; line-height: 1.7; }
.es-about-button-light { background: #e7c486; color: #244b38 !important; }
.es-about-button-light:hover { background: #f3d7a6; }
.es-about-main :focus-visible { outline: 3px solid #b47136; outline-offset: 3px; }
@media (max-width: 800px) { .es-about-hero-grid { grid-template-columns: 1fr; max-width: 680px; } .es-about-photo-wrap { max-width: 510px; margin-inline: auto; width: 100%; } .es-about-hero-copy { padding-bottom: 0; } .es-about-story, .es-about-neighborhood-grid { grid-template-columns: 1fr; gap: 16px; } }
@media (max-width: 600px) { .es-about-container { width: min(100% - 36px, 1240px); } .es-about-hero-grid { padding-block: 20px; gap: 20px; } .es-about-photo, .es-about-photo-placeholder { height: clamp(330px, 110vw, 470px); } .es-about-photo-caption { right: 2px; bottom: 40px; max-width: 175px; font-size: .75rem; } .es-about-hero-copy h1 { font-size: clamp(3.4rem, 15vw, 5rem); } .es-about-story { padding-block: 24px; } }
@media (prefers-reduced-motion: reduce) { .es-about-button { transition: none; } }

/* Dedicated contact page. */
.es-contact-main { min-height: 70vh; background: #f9faf6; }
.es-contact-container { width: min(100% - 48px, 1180px); margin-inline: auto; }
.es-contact-hero { position: relative; isolation: isolate; overflow: hidden; padding: clamp(75px, 9vw, 120px) 0 clamp(110px, 12vw, 170px); background: #244b38; color: #fff; }
.es-contact-hero::before { content: ""; position: absolute; z-index: -1; width: 560px; height: 560px; top: -290px; right: -120px; border: 1px solid rgb(231 196 134 / 23%); border-radius: 50%; box-shadow: 0 0 0 90px rgb(231 196 134 / 5%), 0 0 0 180px rgb(231 196 134 / 4%); }
.es-contact-hero .es-eyebrow { color: #e7c486; }
.es-contact-hero h1 { max-width: 850px; margin: 0 0 22px; font-size: clamp(3.2rem, 6.5vw, 6.4rem); line-height: 1.02; letter-spacing: -.055em; }
.es-contact-hero h1 em { color: #e7c486; font-weight: 400; }
.es-contact-hero p:last-child { max-width: 620px; margin: 0; color: #e4ede5; font-size: clamp(1.02rem, 2vw, 1.22rem); line-height: 1.6; }
.es-contact-layout { position: relative; display: grid; grid-template-columns: minmax(0, .94fr) minmax(0, 1.06fr); align-items: start; gap: clamp(26px, 4vw, 60px); margin-top: -65px; padding-bottom: 100px; }
.es-contact-options, .es-contact-form-card { min-width: 0; border: 1px solid #d9e2d9; border-radius: 22px; background: #fff; box-shadow: 0 20px 52px rgb(20 54 34 / 11%); }
.es-contact-options { padding: clamp(25px, 3.5vw, 44px); }
.es-contact-options h2, .es-contact-form-card h2 { margin: 0 0 14px; color: #244b38; font-size: clamp(1.8rem, 2.8vw, 2.45rem); letter-spacing: -.04em; }
.es-contact-person { margin: 0; color: #a0602f; font-size: .86rem; font-weight: 700; letter-spacing: .035em; text-transform: uppercase; }
.es-contact-person span { padding-inline: 4px; }
.es-contact-language { margin: 8px 0 32px; color: #52685a; font-size: .94rem; }
.es-contact-method { display: grid; grid-template-columns: 48px minmax(0, 1fr) auto; align-items: center; gap: 15px; min-height: 94px; margin-top: 13px; padding: 17px 20px; border: 1px solid #d9e2d9; border-radius: 15px; color: #315f46 !important; text-decoration: none; transition: border-color .2s, background .2s, transform .2s; }
.es-contact-method:hover { transform: translateY(-2px); border-color: #a8c0aa; background: #f5faf5; }
.es-contact-whatsapp { border-color: #b8dfc4; background: #edfaf0; color: #177349 !important; }
.es-contact-whatsapp:hover { border-color: #75c28f; background: #e4f6e9; }
.es-contact-method-icon { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; background: rgb(49 95 70 / 9%); }
.es-contact-whatsapp .es-contact-method-icon { background: rgb(37 165 84 / 12%); }
.es-contact-method-icon svg { width: 25px; height: 25px; }
.es-contact-method strong, .es-contact-method small { display: block; }
.es-contact-method strong { font-size: 1rem; line-height: 1.25; }
.es-contact-method small { margin-top: 5px; color: #607469; font-size: .83rem; line-height: 1.35; }
.es-contact-method-arrow { align-self: start; font-size: 1.25rem; line-height: 1; }
.es-contact-location { display: flex; gap: 10px; align-items: flex-start; margin-top: 30px; padding-top: 22px; border-top: 1px solid #e1e9df; color: #52685a; font-size: .9rem; }
.es-contact-location-mark { color: #a0602f; font-size: 1.35rem; line-height: 1; }
.es-contact-location strong { color: #315f46; }
.es-contact-form-card { padding: clamp(25px, 3.5vw, 44px); scroll-margin-top: 105px; }
.es-contact-form-card > p:not(.es-eyebrow):not(.es-contact-notice) { margin: 0 0 28px; color: #52685a; }
.es-contact-form-card form { display: grid; gap: 10px; }
.es-contact-form-card label { margin-top: 8px; color: #315f46; font-size: .9rem; font-weight: 700; }
.es-contact-form-card label span { color: #a0602f; }
.es-contact-form-card input[type="email"], .es-contact-form-card textarea { display: block; width: 100%; min-width: 0; padding: 14px 16px; border: 1px solid #cdd9ca; border-radius: 11px; background: #fbfcf9; color: #244435; font: inherit; font-size: .95rem; line-height: 1.5; }
.es-contact-form-card textarea { resize: vertical; min-height: 170px; }
.es-contact-form-card input::placeholder, .es-contact-form-card textarea::placeholder { color: #86968a; }
.es-contact-form-card button { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 52px; margin-top: 15px; padding: 12px 19px; border: 0; border-radius: 11px; background: #315f46; color: #fff; font: inherit; font-size: .94rem; font-weight: 700; cursor: pointer; transition: background .2s; }
.es-contact-form-card button:hover { background: #244b38; }
.es-contact-honeypot { position: absolute !important; left: -9999px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.es-contact-notice { margin: 20px 0 0; padding: 13px 15px; border-radius: 10px; font-size: .9rem; }
.es-contact-success { background: #e6f4e9; color: #245a36; }
.es-contact-error { background: #f9e8e5; color: #8e382a; }
.es-contact-extra { max-width: 850px; padding-bottom: 75px; color: #3b5545; overflow-wrap: anywhere; }
.es-contact-extra img { max-width: 100%; height: auto; }
.es-contact-main :focus-visible { outline: 3px solid #b47136; outline-offset: 3px; }
@media (max-width: 840px) { .es-contact-layout { grid-template-columns: 1fr; max-width: 680px; } }
@media (max-width: 600px) { .es-contact-container { width: min(100% - 36px, 1180px); } .es-contact-hero { padding: 65px 0 105px; } .es-contact-layout { margin-top: -52px; padding-bottom: 65px; } .es-contact-options, .es-contact-form-card { border-radius: 17px; } .es-contact-method { grid-template-columns: 42px minmax(0, 1fr) auto; gap: 11px; padding: 14px; } .es-contact-method-icon { width: 42px; height: 42px; } }
@media (prefers-reduced-motion: reduce) { .es-contact-method, .es-contact-form-card button { transition: none; } }

/* MotoPress apartment catalog at /accommodations/. */
.es-listings-main { min-height: 70vh; background: #f9faf6; }
.es-listings-container { width: min(100% - 48px, 1240px); margin-inline: auto; }
.es-listings-hero { position: relative; isolation: isolate; overflow: hidden; padding: 18px 0; background: #244b38; color: #fff; }
.es-listings-hero::before { content: ""; position: absolute; z-index: -1; width: 600px; height: 600px; top: -290px; right: -150px; border: 1px solid rgb(231 196 134 / 23%); border-radius: 50%; box-shadow: 0 0 0 90px rgb(231 196 134 / 5%), 0 0 0 180px rgb(231 196 134 / 4%); }
.es-listings-hero .es-eyebrow { color: #e7c486; }
.es-listings-hero h1 { max-width: none; margin: 0; font-size: clamp(2rem, 4vw, 3.6rem); line-height: 1.12; letter-spacing: -.055em; }
.es-listings-hero h1 em, .es-listings-contact h2 em { color: #e7c486; font-weight: 400; }
.es-listings-hero p:not(.es-eyebrow) { max-width: 655px; margin: 0; color: #e4ede5; font-size: clamp(1.05rem, 2vw, 1.3rem); line-height: 1.58; }
.es-listings-hero-facts { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 35px; }
.es-listings-hero-facts span { padding: 9px 15px; border: 1px solid rgb(231 196 134 / 38%); border-radius: 50px; color: #f0e6d3; font-size: .82rem; }
.es-listings-section { padding-block: 28px clamp(75px, 9vw, 118px); }
.es-listings-section-head { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 38px; }
.es-listings-section-head h2 { margin: 0; color: #244b38; font-size: clamp(2.5rem, 5vw, 4.4rem); letter-spacing: -.05em; }
.es-listings-section-head h2 span { color: #b47136; }
.es-listings-section-head > p { max-width: 350px; margin: 0 0 6px; color: #52685a; line-height: 1.6; }
.es-listings-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(22px, 3vw, 38px); }
.es-listings-card { display: flex; flex-direction: column; min-width: 0; overflow: hidden; border: 1px solid #d9e2d9; border-radius: 23px; background: #fff; box-shadow: 0 19px 48px rgb(21 58 36 / 8%); }
.es-listings-card-image { position: relative; display: block; overflow: hidden; min-height: 250px; background: #dce8dc; }
.es-listings-card-image img, .es-listings-image-placeholder { display: block; width: 100%; height: clamp(260px, 27vw, 360px); object-fit: cover; transition: transform .35s; }
.es-listings-card-image:hover img { transform: scale(1.025); }
.es-listings-image-placeholder { display: grid; place-items: center; padding: 30px; background: linear-gradient(135deg, #e4eee2, #315f46); color: #fff; font-family: "Bricolage Grotesque", Georgia, serif; font-size: 1.8rem; text-align: center; }
.es-listings-image-badge { position: absolute; bottom: 18px; left: 18px; padding: 9px 13px; border-radius: 9px; background: rgb(255 255 255 / 94%); color: #315f46; font-size: .8rem; font-weight: 700; }
.es-listings-card-body { display: flex; flex: 1; flex-direction: column; padding: clamp(25px, 3vw, 35px); }
.es-listings-card-body .es-eyebrow { margin-bottom: 12px; }
.es-listings-title-row { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px 15px; }
.es-listings-title-row h3 { margin: 0; color: #244b38; font-size: clamp(1.6rem, 2.5vw, 2.25rem); letter-spacing: -.04em; }
.es-listings-title-row h3 a { color: inherit; text-decoration: none; }
.es-listings-title-row h3 a:hover { color: #a0602f; }
.es-listings-price { display: flex; gap: 4px; align-items: baseline; margin: 0; color: #6b786c; font-size: .82rem; white-space: nowrap; }
.es-listings-price strong { color: #a0602f; font-size: 1.12rem; }
.es-listings-description { margin: 18px 0 0; color: #52685a; line-height: 1.68; overflow-wrap: anywhere; }
.es-listings-card-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 13px 20px; margin-top: auto; padding-top: 30px; }
.es-listings-button { display: inline-flex; align-items: center; justify-content: center; gap: 15px; min-height: 48px; padding: 10px 17px; border-radius: 10px; background: #315f46; color: #fff !important; font-size: .88rem; font-weight: 700; text-decoration: none; transition: background .2s; }
.es-listings-button:hover { background: #244b38; }
.es-listings-book { color: #a0602f; font-size: .88rem; font-weight: 700; text-decoration: none; }
.es-listings-book:hover { text-decoration: underline; }
.es-listings-empty { padding: 42px; border: 1px solid #d9e2d9; border-radius: 18px; background: #fff; }
.es-listings-empty h3 { margin: 0 0 8px; color: #244b38; }
.es-listings-empty p { color: #52685a; }
.es-listings-contact { padding-block: clamp(55px, 7vw, 85px); background: #244b38; color: #fff; }
.es-listings-contact-inner { display: flex; align-items: center; justify-content: space-between; gap: 25px 50px; }
.es-listings-contact .es-eyebrow { color: #e7c486; }
.es-listings-contact h2 { max-width: 690px; margin: 0 0 12px; font-size: clamp(2.1rem, 4vw, 3.8rem); letter-spacing: -.045em; }
.es-listings-contact p:last-child { max-width: 580px; margin: 0; color: #e4ede5; }
.es-listings-button-gold { flex: 0 0 auto; background: #e7c486; color: #244b38 !important; }
.es-listings-button-gold:hover { background: #f2d7a7; }
.es-listings-main :focus-visible { outline: 3px solid #b47136; outline-offset: 3px; }
@media (max-width: 850px) { .es-listings-grid { grid-template-columns: 1fr; max-width: 650px; margin-inline: auto; } .es-listings-contact-inner { align-items: flex-start; flex-direction: column; } }
@media (max-width: 600px) { .es-listings-container { width: min(100% - 36px, 1240px); } .es-listings-hero { padding: 14px 0; } .es-listings-section-head { align-items: flex-start; flex-direction: column; gap: 12px; } .es-listings-card { border-radius: 16px; } .es-listings-card-image img, .es-listings-image-placeholder { height: 255px; } .es-listings-card-actions { align-items: stretch; flex-direction: column; } .es-listings-book { padding: 8px 0; } .es-listings-empty { padding: 25px; } }
@media (prefers-reduced-motion: reduce) { .es-listings-card-image img, .es-listings-button { transition: none; } }

/* MotoPress availability results and reservation recommendation. */
.es-search-main { min-height: 70vh; background: #f9faf6; }
.es-search-container { width: min(100% - 48px, 1240px); margin-inline: auto; }
.es-search-hero { position: relative; isolation: isolate; overflow: hidden; padding: clamp(58px, 7vw, 95px) 0 clamp(65px, 8vw, 110px); background: #244b38; color: #fff; }
.es-search-hero::before { content: ""; position: absolute; z-index: -1; width: 540px; height: 540px; top: -290px; right: -130px; border: 1px solid rgb(231 196 134 / 24%); border-radius: 50%; box-shadow: 0 0 0 90px rgb(231 196 134 / 5%), 0 0 0 180px rgb(231 196 134 / 4%); }
.es-search-back { display: inline-block; margin-bottom: 27px; color: #e7c486 !important; font-size: .87rem; font-weight: 700; text-decoration: none; }
.es-search-back:hover { text-decoration: underline; }
.es-search-hero .es-eyebrow { color: #e7c486; }
.es-search-hero h1 { max-width: 870px; margin: 0 0 19px; font-size: clamp(3.2rem, 7vw, 6.6rem); line-height: 1.02; letter-spacing: -.055em; }
.es-search-hero h1 em { color: #e7c486; font-weight: 400; }
.es-search-hero p:last-child { max-width: 700px; margin: 0; color: #e3ede4; font-size: clamp(1.03rem, 2vw, 1.22rem); line-height: 1.6; }
.es-search-body { padding: clamp(45px, 6vw, 75px) 0 100px; }
.es-search-intro { display: flex; align-items: end; justify-content: space-between; gap: 28px 50px; margin-bottom: 32px; }
.es-search-intro h2 { margin: 0; color: #244b38; font-size: clamp(2rem, 4vw, 3.2rem); letter-spacing: -.045em; }
.es-search-intro > p { max-width: 470px; margin: 0 0 5px; color: #52685a; line-height: 1.6; }
.es-search-results { min-width: 0; }
.es-search-results .mphb_sc_search_results-wrapper { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 26px; }
.es-search-results .mphb_sc_search_results-info, .es-search-results .mphb-recommendation-title, .es-search-results #mphb-recommendation, .es-search-results #mphb-reservation-cart, .es-search-results .mphb-pagination, .es-search-results .mphb_sc_search_results-pagination, .es-search-results .mphb_sc_search_results-wrapper > form, .es-search-results .mphb_sc_search_results-wrapper > p:not(.mphb-room-type) { grid-column: 1 / -1; }
.es-search-results .mphb_sc_search_results-info { margin: 0; padding: 17px 22px; border: 1px solid #d9e2d9; border-radius: 12px; background: #fff; color: #52685a; font-size: .95rem; }
.es-search-results .mphb-recommendation-title { margin: 8px 0 -10px; color: #244b38; font-size: clamp(1.3rem, 2.2vw, 1.75rem); }
.es-search-results #mphb-recommendation { min-width: 0; margin: 0; padding: clamp(22px, 3vw, 34px); border: 1px solid #cbdccd; border-radius: 18px; background: #eef6ed; color: #244435; }
.es-search-results #mphb-recommendation ul { margin: 0; padding-left: 22px; }
.es-search-results #mphb-recommendation li { padding: 4px 0; }
.es-search-results #mphb-recommendation a { color: #315f46; font-weight: 700; text-underline-offset: 3px; }
.es-search-results #mphb-reservation-cart { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 12px 25px; min-width: 0; margin: -12px 0 15px; padding: 20px clamp(22px, 3vw, 34px); border: 1px solid #d9e2d9; border-radius: 16px; background: #fff; box-shadow: 0 14px 35px rgb(21 58 36 / 7%); }
.es-search-results #mphb-reservation-cart p { margin: 0; }
.es-search-results #mphb-reservation-cart .mphb-total-price { color: #244b38; font-size: 1.15rem; font-weight: 700; }
.es-search-results #mphb-reservation-cart button, .es-search-results #mphb-reservation-cart input[type="submit"], .es-search-results #mphb-reservation-cart .button { display: inline-flex; align-items: center; justify-content: center; min-width: 170px; min-height: 49px; padding: 11px 23px; border: 0; border-radius: 10px; background: #b47136; color: #fff; font: inherit; font-weight: 700; text-decoration: none; cursor: pointer; box-shadow: 0 6px 16px rgb(131 73 27 / 16%); }
.es-search-results #mphb-reservation-cart button:hover, .es-search-results #mphb-reservation-cart input[type="submit"]:hover, .es-search-results #mphb-reservation-cart .button:hover { background: #925523; }
.es-search-results .mphb-room-type { min-width: 0; height: 100%; margin: 0 !important; padding: 0 0 25px; overflow: hidden; border: 1px solid #d9e2d9; border-radius: 19px; background: #fff; box-shadow: 0 18px 45px rgb(21 58 36 / 7%); }
.es-search-results .mphb-room-type > :not(.mphb-room-type-images):not(.mphb-room-type-featured-image):not(figure) { margin-left: clamp(22px, 3vw, 30px); margin-right: clamp(22px, 3vw, 30px); }
.es-search-results .mphb-room-type img { display: block; width: 100%; max-width: 100%; height: clamp(240px, 26vw, 330px); object-fit: cover; }
.es-search-results .mphb-room-type .mphb-room-type-images, .es-search-results .mphb-room-type .mphb-room-type-featured-image, .es-search-results .mphb-room-type > figure { margin: 0 !important; overflow: hidden; background: #e4eee2; }
.es-search-results .mphb-room-type .mphb-room-type-title { margin-top: 25px; margin-bottom: 12px; color: #244b38; font-size: clamp(1.6rem, 2.5vw, 2.2rem); letter-spacing: -.035em; }
.es-search-results .mphb-room-type .mphb-room-type-title a { color: inherit; text-decoration: none; }
.es-search-results .mphb-room-type .mphb-room-type-title a:hover { color: #a0602f; }
.es-search-results .mphb-room-type .mphb-room-type-excerpt, .es-search-results .mphb-room-type p { color: #52685a; line-height: 1.65; }
.es-search-results .mphb-room-type .mphb-room-type-price { color: #a0602f; font-weight: 700; }
.es-search-results .mphb-room-type .mphb-view-details-button, .es-search-results .mphb-room-type .mphb-book-button, .es-search-results .mphb-room-type button, .es-search-results .mphb-room-type input[type="submit"] { display: inline-flex; align-items: center; justify-content: center; min-height: 45px; padding: 9px 18px; border: 1px solid #315f46; border-radius: 9px; background: #315f46; color: #fff !important; font: inherit; font-size: .88rem; font-weight: 700; text-decoration: none; cursor: pointer; }
.es-search-results .mphb-room-type .mphb-view-details-button:hover, .es-search-results .mphb-room-type .mphb-book-button:hover, .es-search-results .mphb-room-type button:hover { background: #244b38; }
.es-search-results .mphb-room-type .mphb-view-details-button { background: #fff; color: #315f46 !important; }
.es-search-results .mphb-room-type .mphb-view-details-button:hover { background: #eef5ec; }
.es-search-results .mphb-room-type select, .es-search-results .mphb-room-type input:not([type="submit"]):not([type="hidden"]) { max-width: 100%; min-height: 43px; padding: 8px 10px; border: 1px solid #cdd9ca; border-radius: 8px; background: #fbfcf9; color: #244435; font: inherit; }
.es-search-results .mphb-room-type .mphb-rooms-quantity-wrapper, .es-search-results .mphb-room-type .mphb-room-type-reserve-form { margin-top: 18px; }
.es-search-results .mphb-pagination { display: flex; justify-content: center; gap: 8px; }
.es-search-help { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 22px; margin-top: 60px; padding: clamp(25px, 4vw, 42px); border-radius: 18px; background: #eaf1e9; }
.es-search-help h2 { margin: 0 0 6px; color: #244b38; font-size: clamp(1.5rem, 3vw, 2.2rem); }
.es-search-help p:last-child { margin: 0; color: #52685a; }
.es-search-help a { display: inline-flex; align-items: center; gap: 15px; min-height: 48px; padding: 10px 18px; border-radius: 10px; background: #315f46; color: #fff; font-size: .88rem; font-weight: 700; text-decoration: none; }
.es-search-help a:hover { background: #244b38; }
.es-search-notice { grid-column: 1 / -1; padding: 35px; border: 1px solid #d9e2d9; border-radius: 15px; background: #fff; }
.es-search-main :focus-visible { outline: 3px solid #b47136; outline-offset: 3px; }
@media (max-width: 820px) { .es-search-results .mphb_sc_search_results-wrapper { grid-template-columns: 1fr; } .es-search-intro { align-items: flex-start; flex-direction: column; gap: 10px; } }
@media (max-width: 600px) { .es-search-container { width: min(100% - 36px, 1240px); } .es-search-hero { padding: 45px 0 65px; } .es-search-body { padding-bottom: 65px; } .es-search-results #mphb-reservation-cart { justify-content: stretch; } .es-search-results #mphb-reservation-cart button, .es-search-results #mphb-reservation-cart input[type="submit"] { width: 100%; } .es-search-results .mphb-room-type img { height: 245px; } .es-search-results .mphb-room-type { border-radius: 15px; } }


/* The MotoPress recommended stay summary and its own Reserve button. */
.es-search-results .mphb-recommendation-title { margin-bottom: -8px; }
.es-search-results #mphb-recommendation {
  position: relative;
  padding: clamp(22px, 3vw, 36px);
  border: 1px solid #c9dccb;
  border-top: 4px solid #b47136;
  border-radius: 18px;
  background: linear-gradient(145deg, #f1f8ef 0%, #eaf3e9 100%);
  box-shadow: 0 18px 42px rgb(27 66 42 / 9%);
}
.es-search-results #mphb-recommendation ul {
  list-style: none;
  margin: 0 0 18px;
  padding: 0;
}
.es-search-results #mphb-recommendation li {
  position: relative;
  min-height: 74px;
  margin: 0 0 10px;
  padding: 16px 19px;
  border: 1px solid #d9e5d6;
  border-radius: 12px;
  background: #fff;
  color: #315f46;
  box-shadow: 0 5px 15px rgb(27 66 42 / 4%);
}
.es-search-results #mphb-recommendation li:last-child { margin-bottom: 0; }
.es-search-results #mphb-recommendation li a { color: #244b38; font-weight: 700; text-underline-offset: 3px; }
.es-search-results #mphb-recommendation li small { display: block; margin-top: 3px; color: #617568; }
.es-search-results #mphb-recommendation .mphb-recommendation-total,
.es-search-results #mphb-recommendation .mphb-total-price {
  margin: 18px 0 10px;
  padding-top: 16px;
  border-top: 1px solid #cadcc9;
  color: #244b38;
  font-size: 1.25rem;
  font-weight: 700;
  text-align: right;
}
.es-search-results .mphb-recommendation-reserve-button {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-width: 205px;
  min-height: 55px;
  padding: 12px 25px !important;
  border: 1px solid #b47136 !important;
  border-radius: 11px !important;
  background: linear-gradient(135deg, #c98645, #b47136) !important;
  color: #fff !important;
  font: inherit;
  font-size: 1rem !important;
  font-weight: 700 !important;
  line-height: 1.25;
  text-align: center;
  text-decoration: none !important;
  cursor: pointer;
  box-shadow: 0 9px 22px rgb(142 78 31 / 25%);
  transition: background .2s, box-shadow .2s, transform .2s;
}
.es-search-results .mphb-recommendation-reserve-button:not(:disabled):hover {
  background: #925523 !important;
  box-shadow: 0 12px 25px rgb(142 78 31 / 30%);
  transform: translateY(-2px);
}
.es-search-results .mphb-recommendation-reserve-button:disabled { opacity: .55; cursor: not-allowed; box-shadow: none; }
@media (max-width: 600px) {
  .es-search-results .mphb-recommendation-reserve-button { width: 100%; }
  .es-search-results #mphb-recommendation .mphb-recommendation-total,
  .es-search-results #mphb-recommendation .mphb-total-price { text-align: left; }
}
@media (prefers-reduced-motion: reduce) {
  .es-search-results .mphb-recommendation-reserve-button { transition: none; }
}

/* MotoPress checkout at /booking-confirmation/. */
.es-checkout-main { min-height: 70vh; background: #f9faf6; color: #244435; }
.es-checkout-main *, .es-checkout-main *::before, .es-checkout-main *::after { box-sizing: border-box; }
.es-checkout-container { width: min(100% - 36px, 1240px); margin-inline: auto; }
.es-checkout-hero { position: relative; isolation: isolate; overflow: hidden; padding: clamp(53px, 7vw, 88px) 0 clamp(80px, 9vw, 120px); background: #244b38; color: #fff; }
.es-checkout-hero::before { content: ""; position: absolute; z-index: -1; width: 540px; height: 540px; top: -290px; right: -130px; border: 1px solid rgb(231 196 134 / 24%); border-radius: 50%; box-shadow: 0 0 0 90px rgb(231 196 134 / 5%), 0 0 0 180px rgb(231 196 134 / 4%); }
.es-checkout-back { display: inline-block; margin-bottom: 25px; color: #e7c486 !important; font-size: .87rem; font-weight: 700; text-decoration: none; }
.es-checkout-back:hover { text-decoration: underline; }
.es-checkout-hero .es-eyebrow { color: #e7c486; }
.es-checkout-hero h1 { max-width: 850px; margin: 0 0 20px; font-size: clamp(3.2rem, 7vw, 6.5rem); line-height: 1.02; letter-spacing: -.055em; }
.es-checkout-hero h1 em { color: #e7c486; font-weight: 400; }
.es-checkout-hero p:last-child { max-width: 665px; margin: 0; color: #e3ede4; font-size: clamp(1.03rem, 2vw, 1.22rem); line-height: 1.6; }
.es-checkout-body { padding: 8px 0 52px; }
.es-checkout-heading { display: flex; align-items: end; justify-content: space-between; gap: 16px 30px; margin-bottom: 22px; }
.es-checkout-heading h2 { margin: 0; color: #244b38; font-size: clamp(2rem, 4vw, 3.2rem); letter-spacing: -.045em; }
.es-checkout-heading > p { max-width: 430px; margin: 0 0 5px; color: #52685a; line-height: 1.6; }
.es-checkout-grid { display: grid; grid-template-columns: minmax(0, 1fr) 280px; align-items: start; gap: clamp(18px, 2.4vw, 30px); }
.es-checkout-content { min-width: 0; overflow-wrap: anywhere; }
.es-checkout-content .mphb_sc_checkout-wrapper { min-width: 0; }
.es-checkout-content .mphb_sc_checkout-form > .mphb-checkout-section,
.es-checkout-content .mphb_sc_checkout-form > .mphb-room-details,
.es-checkout-content .mphb_sc_checkout-form > .mphb-room-price-breakdown-wrapper,
.es-checkout-content .mphb_sc_checkout-form > .mphb-customer-details,
.es-checkout-content .mphb_sc_checkout-form > .mphb-payment-details,
.es-checkout-content .mphb_sc_checkout-form > .mphb-total-price,
.es-checkout-content .mphb_sc_checkout-form > .mphb-price-breakdown-wrapper { margin: 0 0 16px; padding: clamp(16px, 2vw, 24px); border: 1px solid #d9e2d9; border-radius: 18px; background: #fff; box-shadow: 0 14px 38px rgb(21 58 36 / 6%); }
.es-checkout-content .mphb_sc_checkout-form > .mphb-checkout-section:first-of-type { border-top: 4px solid #b47136; }
.es-checkout-content .mphb_sc_checkout-form h2, .es-checkout-content .mphb_sc_checkout-form h3,
.es-checkout-content .mphb_sc_checkout-form h4 { margin-top: 0; color: #244b38; line-height: 1.2; letter-spacing: -.025em; }
.es-checkout-content .mphb_sc_checkout-form h2 { font-size: clamp(1.5rem, 3vw, 2rem); }
.es-checkout-content .mphb_sc_checkout-form h3 { font-size: clamp(1.25rem, 2.4vw, 1.6rem); }
.es-checkout-content .mphb_sc_checkout-form p { line-height: 1.6; }
.es-checkout-content .mphb_sc_checkout-form a { color: #315f46; font-weight: 700; text-underline-offset: 3px; }
.es-checkout-content .mphb_sc_checkout-form label { color: #315f46; font-size: .92rem; font-weight: 700; }
.es-checkout-content .mphb_sc_checkout-form input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]),
.es-checkout-content .mphb_sc_checkout-form select,
.es-checkout-content .mphb_sc_checkout-form textarea { max-width: 100%; min-height: 47px; padding: 10px 13px; border: 1px solid #cbd9cc; border-radius: 9px; background: #fbfcf9; color: #244435; font: inherit; font-size: .94rem; }
.es-checkout-content .mphb_sc_checkout-form input[type="text"], .es-checkout-content .mphb_sc_checkout-form input[type="email"],
.es-checkout-content .mphb_sc_checkout-form input[type="tel"], .es-checkout-content .mphb_sc_checkout-form textarea { width: min(100%, 560px); }
.es-checkout-content .mphb_sc_checkout-form input[type="number"] { width: 95px; }
.es-checkout-content .mphb_sc_checkout-form textarea { min-height: 115px; resize: vertical; }
.es-checkout-content .mphb_sc_checkout-form input[type="checkbox"], .es-checkout-content .mphb_sc_checkout-form input[type="radio"] { accent-color: #315f46; }
.es-checkout-content .mphb_sc_checkout-form .mphb-room-type-title, .es-checkout-content .mphb_sc_checkout-form .mphb-room-type-title a { color: #244b38; }
.es-checkout-content .mphb_sc_checkout-form .mphb-room-details { min-width: 0; }
.es-checkout-content .mphb_sc_checkout-form .mphb-service-choose, .es-checkout-content .mphb_sc_checkout-form .mphb-service-details { line-height: 1.6; }
.es-checkout-content .mphb_sc_checkout-form .mphb-price-breakdown-wrapper { max-width: 100%; overflow-x: auto; }
.es-checkout-content .mphb_sc_checkout-form .mphb-price-breakdown { width: 100%; border-collapse: collapse; font-size: .92rem; }
.es-checkout-content .mphb_sc_checkout-form .mphb-price-breakdown th,
.es-checkout-content .mphb_sc_checkout-form .mphb-price-breakdown td { padding: 8px 10px; border-bottom: 1px solid #e1e8df; text-align: left; vertical-align: top; }
.es-checkout-content .mphb_sc_checkout-form .mphb-price-breakdown th { background: #eff5ed; color: #315f46; font-weight: 700; }
.es-checkout-content .mphb_sc_checkout-form .mphb-price-breakdown tr:last-child th,
.es-checkout-content .mphb_sc_checkout-form .mphb-price-breakdown tr:last-child td { color: #244b38; font-weight: 700; }
.es-checkout-content .mphb_sc_checkout-form .mphb-total-price { color: #244b38; font-size: 1.2rem; font-weight: 700; }
.es-checkout-content .mphb_sc_checkout-form .mphb-total-price .mphb-price { color: #a0602f; }
.es-checkout-content .mphb_sc_checkout-form .mphb_sc_checkout-submit-wrapper { margin: 18px 0 0; padding: 18px; border: 1px solid #d5e4d4; border-radius: 16px; background: #eef6ed; }
.es-checkout-content .mphb_sc_checkout-form .mphb_sc_checkout-submit-wrapper input[type="submit"],
.es-checkout-content .mphb_sc_checkout-form .mphb_sc_checkout-submit-wrapper button,
.es-checkout-content .mphb_sc_checkout-form .mphb_sc_checkout-submit-wrapper .button { display: inline-flex; align-items: center; justify-content: center; min-width: 220px; min-height: 55px; padding: 12px 25px; border: 1px solid #a65f29; border-radius: 11px; background: #b47136; color: #fff !important; font: inherit; font-size: 1rem; font-weight: 700; line-height: 1.3; text-align: center; text-decoration: none; cursor: pointer; box-shadow: 0 9px 22px rgb(142 78 31 / 24%); transition: background .2s, transform .2s, box-shadow .2s; }
.es-checkout-content .mphb_sc_checkout-form .mphb_sc_checkout-submit-wrapper input[type="submit"]:hover,
.es-checkout-content .mphb_sc_checkout-form .mphb_sc_checkout-submit-wrapper button:hover,
.es-checkout-content .mphb_sc_checkout-form .mphb_sc_checkout-submit-wrapper .button:hover { background: #925523; transform: translateY(-2px); box-shadow: 0 12px 25px rgb(142 78 31 / 28%); }
.es-checkout-content .mphb_sc_checkout-form .mphb_sc_checkout-submit-wrapper :disabled { opacity: .55; cursor: not-allowed; box-shadow: none; }
.es-checkout-content .mphb_sc_checkout-form .mphb-errors-wrapper, .es-checkout-content .mphb_sc_checkout-form .mphb-errors { padding: 12px 16px; border-radius: 9px; background: #fbece6; color: #8b3825; }
.es-checkout-help { position: sticky; top: 110px; padding: 20px; border: 1px solid #d9e2d9; border-radius: 18px; background: #eaf1e9; }
.es-checkout-help-icon { display: grid; place-items: center; width: 42px; height: 42px; margin-bottom: 16px; border-radius: 50%; background: #315f46; color: #fff; font-size: 1.5rem; }
.es-checkout-help h2 { margin: 0 0 12px; color: #244b38; font-size: 1.75rem; line-height: 1.15; letter-spacing: -.035em; }
.es-checkout-help p:not(.es-eyebrow) { margin: 0 0 16px; color: #52685a; line-height: 1.6; }
.es-checkout-help a { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 47px; padding: 10px 15px; border-radius: 9px; background: #315f46; color: #fff; font-size: .88rem; font-weight: 700; text-decoration: none; }
.es-checkout-help a:hover { background: #244b38; }
.es-checkout-help small { display: block; margin-top: 12px; color: #52685a; font-size: .79rem; }
.es-checkout-empty { padding: 22px; border: 1px solid #d9e2d9; border-radius: 17px; background: #fff; }
.es-checkout-main :focus-visible { outline: 3px solid #b47136; outline-offset: 3px; }
@media (max-width: 980px) { .es-checkout-grid { grid-template-columns: minmax(0, 1fr); } .es-checkout-aside { max-width: 100%; } .es-checkout-help { position: static; } }
@media (max-width: 680px) { .es-checkout-container { width: min(100% - 28px, 1240px); } .es-checkout-hero { padding: 44px 0 75px; } .es-checkout-body { padding-bottom: 36px; } .es-checkout-heading { align-items: flex-start; flex-direction: column; gap: 10px; } .es-checkout-content .mphb_sc_checkout-form > .mphb-checkout-section { border-radius: 14px; } .es-checkout-content .mphb_sc_checkout-form .mphb_sc_checkout-submit-wrapper input[type="submit"], .es-checkout-content .mphb_sc_checkout-form .mphb_sc_checkout-submit-wrapper button { width: 100%; min-width: 0; } }
@media (prefers-reduced-motion: reduce) { .es-checkout-content .mphb_sc_checkout-form .mphb_sc_checkout-submit-wrapper input[type="submit"], .es-checkout-content .mphb_sc_checkout-form .mphb_sc_checkout-submit-wrapper button { transition: none; } }


.es-checkout-heading .es-eyebrow, .es-checkout-help .es-eyebrow { margin: 0 0 8px; }
.es-checkout-content .mphb_sc_checkout-form p { margin-block: 10px; }
.es-checkout-content .mphb_sc_checkout-form h2, .es-checkout-content .mphb_sc_checkout-form h3, .es-checkout-content .mphb_sc_checkout-form h4 { margin-bottom: 14px; }

/* Apartment detail refinement: compact spacing and full-width photo carousel. */
.es-property-main { padding-top: 32px; padding-bottom: 64px; }
.es-property-main .es-back { margin-bottom: 20px; }
.es-property-main .es-property-hero { margin-bottom: 24px; }
.es-property-main .es-property-hero-copy { padding: clamp(26px, 4vw, 48px); }
.es-property-main .es-property-grid { gap: clamp(24px, 3.2vw, 40px); }
.es-property-main .es-property-accordion > summary h2 { margin-bottom: 16px; }
.es-property-main .es-apartment-attributes { margin-top: 24px; }
.es-property-main .es-property-offers { margin-top: 24px; padding-top: 22px; }
.es-property-main .es-property-offers > summary h2 { margin-bottom: 0; }
.es-property-main .es-property-content > :first-child { margin-top: 0; }
.es-property-main .es-property-content > :last-child { margin-bottom: 0; }
.es-property-main .es-property-booking { gap: 18px; }
.es-property-main .es-booking-card, .es-property-main .es-property-contact { padding: 22px; }
.es-property-main .es-reservation-form { margin-top: 20px; padding-top: 18px; }
.es-property-gallery { min-width: 0; margin: 0 0 28px; }
.es-property-gallery .es-gallery-heading { flex-wrap: wrap; margin-bottom: 14px; }
.es-property-gallery .es-gallery-heading h2 { margin: 0; font-size: clamp(1.3rem, 2.3vw, 1.65rem); }
.es-property-gallery .es-gallery-heading p { margin: 0 auto 0 0; color: #52685a; font-size: .85rem; }
.es-property-gallery .es-gallery-track { display: flex; gap: 16px; max-width: 100%; overflow-x: auto; margin: 0; padding: 3px 3px 12px; scroll-snap-type: x mandatory; scroll-behavior: smooth; scroll-padding-inline: 3px; overscroll-behavior-x: contain; scrollbar-width: thin; scrollbar-color: #b47136 #ebf0e9; }
.es-property-gallery .es-gallery-item { display: block; flex: 0 0 calc((100% - 32px) / 3); min-width: 0; overflow: hidden; border-radius: 14px; scroll-snap-align: start; cursor: zoom-in; background: #d9e2d9; }
.es-property-gallery .es-gallery-item img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; transition: transform .2s; }
.es-property-gallery .es-gallery-item:hover img { transform: scale(1.035); }
.es-property-gallery .es-gallery-item:focus-visible, .es-property-gallery .es-gallery-track:focus-visible { outline: 3px solid #b47136; outline-offset: 2px; }
.es-property-gallery .es-gallery-controls { margin-left: auto; }
.es-lightbox-inner { box-sizing: border-box; }
.es-lightbox button[hidden] { display: none; }
@media (max-width: 900px) {
  .es-property-gallery .es-gallery-item { flex-basis: 44%; }
}
@media (max-width: 767px) {
  .es-property-main .es-property-details > .es-property-accordion { margin: 0 0 14px; padding: 0; }
  .es-property-main .es-property-accordion > summary h2 { margin: 0; }
}
@media (max-width: 640px) {
  .es-property-main { padding: 22px 18px 44px; }
  .es-property-main .es-back { margin-bottom: 16px; }
  .es-property-main .es-property-hero { margin-bottom: 20px; }
  .es-property-main .es-booking-card, .es-property-main .es-property-contact { padding: 18px 16px; }
  .es-property-gallery { margin-bottom: 22px; }
  .es-property-gallery .es-gallery-heading { gap: 6px 12px; }
  .es-property-gallery .es-gallery-heading p { flex-basis: 100%; }
  .es-property-gallery .es-gallery-controls { display: none; }
  .es-property-gallery .es-gallery-item { flex-basis: 78%; }
}
@media (prefers-reduced-motion: reduce) {
  .es-property-gallery .es-gallery-track { scroll-behavior: auto; }
  .es-property-gallery .es-gallery-item img { transition: none; }
}

/* Native MotoPress Details heading now lives in the accordion summary. */
.es-property-main .es-apartment-attributes > summary > :is(h1,h2,h3,h4,h5,h6) { margin: 0 0 16px; color: inherit; font-size: clamp(1.65rem, 3vw, 2.2rem); }
@media (max-width: 767px) {
  .es-property-main .es-apartment-attributes > summary > :is(h1,h2,h3,h4,h5,h6) { margin: 0; font-size: 1.2rem; }
}

/* Apartment slideshow and title below the photos. */
.es-property-main .es-property-slideshow { display: block; cursor: zoom-in; }
.es-property-slideshow::after { display: none; }
.es-property-slideshow > .es-hero-slide { z-index: 0; opacity: 0; transition: opacity .7s ease; }
.es-property-slideshow > .es-hero-slide.is-active { opacity: 1; }
.es-hero-hint { position: absolute; right: 20px; bottom: 20px; z-index: 1; padding: 9px 15px; border-radius: 20px; color: #fff; background: rgb(10 24 17 / 70%); font-size: .85rem; }
.es-property-slideshow:focus-visible { outline: 3px solid #b47136; outline-offset: 4px; }
.es-property-title { margin-bottom: 30px; }
.es-property-title h1 { margin: 0; color: #244435; font-size: clamp(2rem, 5vw, 3.8rem); line-height: 1.1; }
@media (prefers-reduced-motion: reduce) { .es-property-slideshow > .es-hero-slide { transition: none; } }

.es-home-gallery { position: relative; display: block; height: 18rem; overflow: hidden; cursor: zoom-in; background: #d9e2d9; }
.es-home-gallery .es-home-slide { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity .7s ease; }
.es-home-gallery .es-home-slide.is-active { opacity: 1; }
.es-home-gallery:focus-visible { outline: 3px solid #b47136; outline-offset: -3px; }
@media (prefers-reduced-motion: reduce) { .es-home-gallery .es-home-slide { transition: none; } }

/* Omit the optional per-accommodation guest name in checkout. */
.es-checkout-main .mphb-guest-name-wrapper { display: none; }

/* Date pickers opened from booking inputs, separate from inline calendars. */
body .datepick-popup { z-index: 1000; max-width: calc(100vw - 24px); }
body .datepick-popup .datepick { box-sizing: border-box; width: 320px !important; max-width: calc(100vw - 24px); padding: 0; overflow: hidden; border: 1px solid #cad8cc; border-radius: 14px; background: #fff; color: #244435; box-shadow: 0 12px 36px rgb(21 58 36 / 20%); font-family: "DM Sans", system-ui, sans-serif; font-size: 14px; }
body .datepick-popup .datepick * { box-sizing: border-box; }
body .datepick-popup .datepick-nav { display: flex; align-items: center; justify-content: space-between; padding: 6px; background: #315f46; }
body .datepick-popup .datepick-nav a { float: none; width: auto; min-height: 36px; padding: 7px 10px; border-radius: 7px; color: #fff; font-size: 13px; line-height: 22px; text-decoration: none; }
body .datepick-popup .datepick-nav a:hover { background: #244b38; color: #f0c785; }
body .datepick-popup .datepick-nav .datepick-disabled { opacity: .45; cursor: default; }
body .datepick-popup .datepick-month-row { clear: both; width: 100%; }
body .datepick-popup .datepick-month { float: none; width: 100% !important; border: 0; padding: 0 10px 8px; }
body .datepick-popup .datepick-month-header { height: auto; min-height: 44px; padding: 9px 0; background: #fff; color: #244435; font-weight: 700; line-height: 26px; text-align: center; }
body .datepick-popup .datepick-month-header select { display: inline-block; width: auto; max-width: 60%; min-height: 30px; margin: 0 2px; padding: 2px 5px; border: 1px solid #d9e2d9; border-radius: 6px; background: #f1f5ef; color: #244435; font: inherit; }
body .datepick-popup .datepick-month table { width: 100%; margin: 0; border-collapse: separate; border-spacing: 2px; table-layout: fixed; }
body .datepick-popup .datepick-month th, body .datepick-popup .datepick-month td { width: 14.285%; padding: 0; border: 0; text-align: center; }
body .datepick-popup .datepick-month th { height: 30px; background: #f1f5ef; color: #52685a; font-size: 12px; font-weight: 600; }
body .datepick-popup .datepick-month td a, body .datepick-popup .datepick-month td span { display: block; width: 100%; height: 36px; padding: 0; border-radius: 7px; background: #fff; color: #244435; font-size: 13px; line-height: 36px; text-decoration: none; }
body .datepick-popup .datepick-month td span { color: #adb6af; }
body .datepick-popup .datepick-month td a:hover { background: #e5f2e8; }
body .datepick-popup .datepick-month td .datepick-today { outline: 1px solid #b47136; outline-offset: -2px; }
body .datepick-popup .datepick-month td .datepick-selected { background: #315f46; color: #fff; }
body .datepick-popup .datepick-month td .datepick-highlight { background: #e5f2e8; color: #244435; }
body .datepick-popup .datepick-month td .datepick-selected.datepick-highlight { background: #315f46; color: #fff; }
body .datepick-popup .datepick-month td .mphb-not-available-date, body .datepick-popup .datepick-month td .mphb-booked-date { background: #f6e9e6; color: #88776f; }
body .datepick-popup .datepick-ctrl { display: flex; justify-content: space-between; padding: 6px 10px; border-top: 1px solid #e1e8df; background: #f1f5ef; }
body .datepick-popup .datepick-ctrl a { float: none; width: auto; min-height: 36px; padding: 7px 10px; border-radius: 7px; color: #315f46; font-size: 13px; line-height: 22px; text-decoration: none; }
body .datepick-popup .datepick-ctrl a:hover { background: #e1ebdf; }
body .datepick-popup a:focus-visible, body .datepick-popup select:focus-visible { outline: 2px solid #b47136; outline-offset: -2px; }
/* Manual payment instructions on booking checkout. */
.es-payment-notice { margin-bottom: 16px; padding: 18px 20px; border: 1px solid #d5e2d8; border-radius: 16px; background: #f2f7f1; color: #244b38; }
.es-payment-notice h3 { margin: 0 0 10px; font-size: 1.2rem; }
.es-payment-notice p { margin: 8px 0; line-height: 1.6; }
.es-payment-notice details { border-top: 1px solid #d5e2d8; padding: 10px 0; }
.es-payment-notice summary { cursor: pointer; font-weight: 600; }
.es-payment-notice a { text-decoration: underline; }
/* Payment marks beneath the introductory guest reviews. */
.es-hero-payments { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; margin-top: 4px; }
.es-hero-payments > span { font-size: 12px; color: #526a5c; }
.es-hero-payment-logos { display: flex; align-items: center; gap: 22px; }
.es-hero-payment-logos img { display: block; flex: none; object-fit: contain; max-width: 100%; }
