/*
Theme Name: Machuca Homes
Theme URI: https://machucahomes.com/
Description: Machuca Homes child theme for Twenty Twenty-Five. Belongs to the Belong living infrastructure platform.
Author: Samuel Rotker
Author URI: https://machucahomes.com/

Version: 1.19.0

Template: twentytwentyfive

License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Text Domain: machucahomes
Requires at least: 6.4
Requires PHP: 7.4
*/

/* Table of Contents
- HTML5 Reset / Normalize
- Box Sizing / Float Clearing
- Defaults: Typography, Headings, Objects, Gallery, Forms, Tables, Screen Reader
- Common Classes: Avatar, Search Form, Titles, WordPress alignment
- Widgets / Featured Content
- Pages: Home, Our Fees, Legal, Affiliate, Photographers, Neighborhoods, 404
- Plugins
  - WP Booking Calendar (WPBC / booking_search_ajax_container)
  - BP Better Messages
  - WP User Frontend (WPUF)
  - Login / Register / Account
  - Site Reviews (GLSR)
- Site Header (TT25), Content Area, Sidebar, Footer
- AGREGADOS (custom)
  - Site header (TT25 overrides)
  - Home page
  - Single-rental page
    - Gallery (GLightbox)
    - Booking card tabs
    - Reviews section
    - Host section
  - FacetWP / listing cards
- Media Queries (old propio section)
- Print Styles
- Single-rental (full layout, Phase 5+)
  - GLightbox overrides
  - Reviews
  - Host section
- Header search overlay
  - Nav pill (ST / LT trigger)
  - Overlay / panel
  - LT form (desktop pill)
  - ST form (WPBC)
  - Mobile (≤767px stacked)

Note: Some EPL/Genesis selectors remain in the old "Media Queries (propio)" section
(lines ~3700–3900 area). They match no live elements and are harmless.
Dead sections extracted to style-css-cleanup-leftovers.css (2026-05-31).
*/


/* HTML5 Reset
---------------------------------------------------------------------------- */

/* normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css
---------------------------------------------------------------------------- */
/* stylelint-disable */
html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}
/* stylelint-enable */

/* Box Sizing
--------------------------------------------- */

html {
	box-sizing: border-box;
	scroll-behavior: smooth;
}

*,
*::before,
*::after {
	box-sizing: inherit;
}

*:focus,
*:focus-visible {
	outline: none !important;
}

/* Float Clearing
--------------------------------------------- */






.author-box::before,
.clearfix::before,
.entry::before,
.entry-content::before,
.pagination::before,
.widget::before {
	content: " ";
	display: table;
}

.author-box::after,
.clearfix::after,
.entry::after,
.entry-content::after,
.pagination::after,
.widget::after {
	clear: both;
	content: " ";
	display: table;
}


/* Defaults
---------------------------------------------------------------------------- */

/* Typographical Elements
--------------------------------------------- */

/* Sen Regular */
@font-face {
  font-family: "Sen";
  src: url("/wp-content/uploads/fonts/Sen-Regular.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

/* Sen ExtraBold */
@font-face {
  font-family: "Sen";
  src: url("/wp-content/uploads/fonts/Sen-ExtraBold.woff2") format("woff2");
  font-weight: 800;
  font-style: normal;
  font-display: swap;
}

/* Sen Bold */
@font-face {
  font-family: "Sen";
  src: url("/wp-content/uploads/fonts/Sen-Bold.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}



html {
	-moz-osx-font-smoothing: grayscale;
	-webkit-font-smoothing: antialiased;
}

body {
	background-color: #fff;
	color: #333;
	font-family: "Sen", "Source Sans Pro", sans-serif;
	font-size: 18px;
	font-weight: 400;
	line-height: 1.625;
	margin: 0;
	overflow-x: hidden;
}

button,
input:focus,
input[type="button"],
input[type="reset"],
input[type="submit"],
textarea:focus,
.button,
.gallery img {
	transition: all 0.2s ease-in-out;
}

a {
	color: var(--wp--preset--color--primary);
	text-decoration: underline;
	transition: color 0.2s ease-in-out, background-color 0.2s ease-in-out;
}

a:focus,
a:hover {
	color: var(--wp--preset--color--accent);
	text-decoration: none;
}

p {
	margin: 0 0 28px;
	padding: 0;
}

ol,
ul {
	margin: 0;
	padding: 0;
}

li {
	list-style-type: none;
}

hr {
	border: 0;
	border-collapse: collapse;
	border-bottom: 1px solid currentColor;
	clear: both;
	color: #eee;
	margin: 1.65em auto;
}

b,
strong {
	font-weight: 700;
}

blockquote,
cite,
em,
i {
	font-style: italic;
}

mark {
	background: #ddd;
	color: #333;
}

blockquote {
	margin: 30px;
}

/* Headings
--------------------------------------------- */

h1,
h2,
h3,
h4,
h5,
h6 {
	font-family: Sen, "Source Sans Pro", sans-serif;
	font-weight: 400;
	line-height: 1.2;
	margin: 0 0 20px;
}

h1 {
	font-size: 30px;
}

h2 {
	font-size: 27px;
}

h3 {
	font-size: 24px;
}

h4 {
	font-size: 20px;
}

.entry-content h3,
.entry-content h4 {
	font-weight: 600;
}

.entry-content h4 {
	margin-top: 40px;
}

h5 {
	font-size: 18px;
}

h6 {
	font-size: 16px;
}

/* Objects
--------------------------------------------- */

embed,
iframe,
img,
object,
video,
.wp-caption {
	max-width: 100%;
}

img {
	height: auto;
	vertical-align: top;
}

figure {
	margin: 0;
}

/* Gallery
--------------------------------------------- */

.gallery {
	overflow: visible;
}

.gallery img {
	border: 1px solid #eee;
	height: auto;
	padding: 4px;
}

.gallery img:focus,
.gallery img:hover {
	border: 1px solid #999;
	outline: none;
}

.gallery-columns-1 .gallery-item {
	width: 100%;
}

.gallery-columns-2 .gallery-item {
	width: 50%;
}

.gallery-columns-3 .gallery-item {
	width: 33%;
}

.gallery-columns-4 .gallery-item {
	width: 25%;
}

.gallery-columns-5 .gallery-item {
	width: 20%;
}

.gallery-columns-6 .gallery-item {
	width: 16.6666%;
}

.gallery-columns-7 .gallery-item {
	width: 14.2857%;
}

.gallery-columns-8 .gallery-item {
	width: 12.5%;
}

.gallery-columns-9 .gallery-item {
	width: 11.1111%;
}

.gallery-columns-2 .gallery-item:nth-child(2n+1),
.gallery-columns-3 .gallery-item:nth-child(3n+1),
.gallery-columns-4 .gallery-item:nth-child(4n+1),
.gallery-columns-5 .gallery-item:nth-child(5n+1),
.gallery-columns-6 .gallery-item:nth-child(6n+1),
.gallery-columns-7 .gallery-item:nth-child(7n+1),
.gallery-columns-8 .gallery-item:nth-child(8n+1),
.gallery-columns-9 .gallery-item:nth-child(9n+1) {
	clear: left;
}

.gallery-item {
	float: left;
	margin: 0 0 30px;
	text-align: center;
}

/* Forms
--------------------------------------------- */

input,
select,
textarea {
	background-color: #fff;
	border: 1px solid #ddd;
	color: #333;
	font-size: 18px;
	font-weight: 400;
	padding: 15px;
	width: 100%;
}

input:focus,
textarea:focus {
	border: 1px solid #999;
}

input[type="checkbox"],
input[type="image"],
input[type="radio"] {
	width: auto;
}

:-ms-input-placeholder {
	color: #333;
	opacity: 1;
}

::placeholder {
	color: #333;
	opacity: 1;
}

button,
input[type="button"],
input[type="reset"],
input[type="submit"],
div.wpforms-container-full .wpforms-form input[type="submit"],
div.wpforms-container-full .wpforms-form button[type="submit"],
.button {
	background-color: #333;
	border: 0;
	border-radius: 5px;
	color: #fff;
	cursor: pointer;
	font-size: 16px;
	font-weight: 700;
	padding: 15px 30px;
	text-align: center;
	text-decoration: none;
	white-space: normal;
	width: auto;
}

button:hover,
input[type="button"]:focus,
input[type="button"]:hover,
input[type="reset"]:focus,
input[type="reset"]:hover,
input[type="submit"]:focus,
input[type="submit"]:hover,
div.wpforms-container-full .wpforms-form input[type="submit"]:focus,
div.wpforms-container-full .wpforms-form input[type="submit"]:hover,
div.wpforms-container-full .wpforms-form button[type="submit"]:focus,
div.wpforms-container-full .wpforms-form button[type="submit"]:hover,
.button:focus,
.button:hover {
	/* El verde de hover de la marca es el CLARO (`primary-soft`), el mismo que el
	   tema ya usa como fondo de estado en theme.json. El oscuro se leía como un
	   botón apagándose en vez de encendiéndose.

	   Y no se toca el grosor del borde: ponerlo en cero hacía que cualquier botón
	   con borde se achicara 3px al pasarle el mouse, que es el "encogimiento" que
	   se veía en el botón de mensaje al anfitrión. Un botón que cambia de tamaño
	   en hover se lee como un salto, no como una respuesta. */
	background-color: var(--wp--preset--color--primary-soft, #1d5a44);
	color: #fff;
}

.entry-content .button:focus,
.entry-content .button:hover {
	color: #fff;
}


.button {
	display: inline-block;
}

button:disabled,
button:disabled:hover,
input:disabled,
input:disabled:hover,
input[type="button"]:disabled,
input[type="button"]:disabled:hover,
input[type="reset"]:disabled,
input[type="reset"]:disabled:hover,
input[type="submit"]:disabled,
input[type="submit"]:disabled:hover {
	background-color: #eee;
	border-width: 0;
	color: #777;
	cursor: not-allowed;
}

input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-results-button {
	display: none;
}

/* Tables
--------------------------------------------- */

table {
	border-collapse: collapse;
	border-spacing: 0;
	margin-bottom: 40px;
	width: 100%;
	word-break: break-all;
}

tbody {
	border-bottom: 1px solid #eee;
}

td,
th {
	line-height: 2;
	text-align: left;
	vertical-align: top;
}

td {
	padding: 0.5em;
}

tr {
	border-top: 1px solid #eee;
}

th {
	font-weight: 700;
	padding: 0.5em;
}

/* Screen Reader Text
--------------------------------------------- */

.screen-reader-shortcut,
.screen-reader-text,
.screen-reader-text span {
	border: 0;
	clip: rect(0, 0, 0, 0);
	height: 1px;
	overflow: hidden;
	position: absolute !important;
	width: 1px;
	word-wrap: normal !important;
}

.screen-reader-text:focus,
.screen-reader-shortcut:focus,
.widget_search input[type="submit"]:focus {
	background: #fff;
	box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
	clip: auto !important;
	color: #333;
	display: block;
	font-size: 1em;
	font-weight: 700;
	height: auto;
	padding: 15px 23px 14px;
	text-decoration: none;
	width: auto;
	z-index: 100000; /* Above WP toolbar. */
}

.more-link {
	display: inline-block;
	position: relative;
	margin-bottom: 30px;
}


/* Structure and Layout
---------------------------------------------------------------------------- */




/* Common Classes
---------------------------------------------------------------------------- */

/* Avatar
--------------------------------------------- */

.avatar {
	border-radius: 50%;
	float: left;
}

.author-box .avatar,
.alignleft .avatar {
	margin-right: 20px;
}

.alignright .avatar {
	margin-left: 20px;
}

.comment .avatar {
	margin: 0 15px 20px 0;
}

/* Search Form
--------------------------------------------- */

.search-form {
	overflow: hidden;
}

.entry-content .search-form {
	margin-bottom: 40px;
	width: 50%;
}

.post-password-form input[type="submit"],
.search-form input[type="submit"] {
	margin-top: 10px;
}

.widget_search input[type="submit"] {
	border: 0;
	clip: rect(0, 0, 0, 0);
	height: 1px;
	margin: -1px;
	padding: 0;
	position: absolute;
	width: 1px;
}

/* Titles
--------------------------------------------- */

.archive-description .entry-title,
.archive-title,
.author-box-title {
	font-size: 20px;
	font-weight: 600;
	margin-bottom: 10px;
}

.entry-title {
	font-size: 30px;
	margin-bottom: 10px;
}

.entry-title a,
.sidebar .widget-title a {
	color: #333;
	text-decoration: none;
}

.entry-title a:focus,
.entry-title a:hover {
	color: #0073e5;
}

.widget-title {
	font-size: 18px;
	font-weight: 700;
	margin-bottom: 20px;
}



/* WordPress
--------------------------------------------- */

a.aligncenter img {
	display: block;
	margin: 0 auto;
}

a.alignnone {
	display: inline-block;
}

.alignleft {
	float: left;
	text-align: left;
}

.alignright {
	float: right;
	text-align: right;
}

a.alignleft,
a.alignnone,
a.alignright {
	max-width: 100%;
}

img.centered,
.aligncenter,
.singular-image {
	display: block;
	margin: 0 auto 30px;
}

img.alignnone,
.alignnone {
	margin-bottom: 15px;
}

a.alignleft,
img.alignleft,
.wp-caption.alignleft {
	margin: 0 20px 20px 0;
}

a.alignright,
img.alignright,
.wp-caption.alignright {
	margin: 0 0 20px 20px;
}

figcaption,
.gallery-caption,
.wp-caption-text {
	font-size: 14px;
	font-weight: 700;
	margin-top: 0.5em;
	margin-bottom: 1em;
	padding-left: 10px;
	padding-right: 10px;
	text-align: center;
}

.entry-content p.wp-caption-text {
	margin-bottom: 0;
}

.entry-content .wp-audio-shortcode,
.entry-content .wp-playlist,
.entry-content .wp-video {
	margin: 0 0 30px;
}

/* Widgets
---------------------------------------------------------------------------- */

.widget {
	margin-bottom: 40px;
}

.widget p:last-child,
.widget ul > li:last-of-type {
	margin-bottom: 0;
}

.widget ul > li {
	margin-bottom: 10px;
}

.widget ul > li:last-of-type {
	padding-bottom: 0;
}

.widget ol > li {
	list-style-position: inside;
	list-style-type: decimal;
	padding-left: 20px;
	text-indent: -20px;
}

.widget li li {
	border: 0;
	margin: 0 0 0 30px;
	padding: 0;
}

.widget_calendar table {
	width: 100%;
}

.widget_calendar td,
.widget_calendar th {
	text-align: center;
}

/* Featured Content
--------------------------------------------- */

.featured-content .entry {
	border-bottom: 1px solid #eee;
	margin-bottom: 20px;
}

.featured-content .entry:last-of-type {
	border-bottom: none;
	margin-bottom: 0;
}

.featured-content .entry-title {
	font-size: 16px;
	margin-bottom: 5px;
	margin-top: 10px;
}

/* Pages
--------------------------------------------------------------------------- */

/* Home
-------------------------------------------------------------------- */	

.wp-block-buttons.is-content-justification-right {
    justify-content: flex-end;
}



.wp-block-cover .wp-block-cover__inner-container, .wp-block-cover-image .wp-block-cover__inner-container {
	max-width: 1080px;
}

.home .wp-block-cover.homecover .wp-block-button:not(.months-buttons) a, .home .wp-block-cover.homecover .wp-block-button:not(.months-buttons) a:hover {
	border-radius: 10px 10px 0 0!important;
	color: #444;
}

.home .wp-block-cover.homecover .wp-block-button.short-term-btn.active a, .home .wp-block-cover.homecover .wp-block-button.long-term-btn.active a {
	background-color: #fff;
}

.home .wp-block-cover.homecover .wp-block-button.short-term-btn.active a:focus, .home .wp-block-cover.homecover .wp-block-button.long-term-btn.active a:focus {
	color: #444;
}

.home .wp-block-cover.homecover .wp-block-button.short-term-btn a, .home .wp-block-cover.homecover .wp-block-button.long-term-btn a {
	background-color: #ffffffa3;
	display: block;
	padding-bottom: 5px;
}

/* Stay-type captions under the hero search tabs mirror the current booking
   ranges. Copy lives in CSS so the user-built button blocks stay untouched. */
.home .wp-block-cover.homecover .wp-block-button.short-term-btn a::after,
.home .wp-block-cover.homecover .wp-block-button.long-term-btn a::after {
	text-align: center;
	display: block;
	font-size: 10px;
	font-weight: 400;
	line-height: 1.2;
	margin-top: 3px;
	opacity: .75;
}

.home .wp-block-cover.homecover .wp-block-button.short-term-btn a::after {
	content: "2 to 30 nights";
}

.home .wp-block-cover.homecover .wp-block-button.long-term-btn a::after {
	content: "1 to 12 months";
}

body.home .wp-block-cover__image-background.has-parallax {
	  background-image: url("/pictures/2024/04/Machuca-Valley-living-cover.jpg")!important;
  background-image: -webkit-image-set(url("/pictures/2024/04/Machuca-Valley-living-cover-768x432.jpg") 1x,
    url("/pictures/2024/04/Machuca-Valley-living-cover.jpg") 2x)!important;
  background-image: image-set(
    url("/pictures/2024/04/Machuca-Valley-living-cover-768x432.jpg") 1x,
    url("/pictures/2024/04/Machuca-Valley-living-cover.jpg") 2x)!important;
  background-image: image-set(
    url("/pictures/2024/04/Machuca-Valley-living-cover-768x432.jpg") 750w,
    url("/pictures/2024/04/Machuca-Valley-living-cover.jpg") 2048w)!important;
}

/* ── BP Better Messages ──────────────────────────────────────────────────── */

/* Policy notice injected above every message thread via ::before */
body .bm-list-content:before {
	content: "The exchange of phone numbers, emails or any other form of off-platform contact such as requests to visit the home is prohibited until after the booking has been confirmed. We have a zero tolerance policy for off-platform contact.";
	display: block;
	margin: 0 10px 14px;
	font-weight: 600;
	font-size: 12px;
	color: var(--wp--preset--color--accent, #b9663d);
	position: sticky;
	top: 0;
	background-color: var(--wp--preset--color--background, #faf7f1);
	padding: 10px 12px;
	z-index: 9;
	border: 1px solid rgba(185, 102, 61, 0.4);
	border-radius: 6px;
}

/* Email notification hint on first date separator */
.bm-date-stack:before {
	content: 'An email notification will be sent to the user to let them know when they have new messages. It may take a few minutes or even a couple of hours for them to reply.';
	text-align: center;
	display: block;
	font-size: 10px;
	padding: 10px;
}

/* Back link injected by PHP above the chat widget */
.machuca-messages-back-wrap {
	margin-bottom: 0.75rem;
}

a.machuca-messages-back {
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
	font-family: var(--wp--preset--font-family--sans, 'Sen', sans-serif);
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--wp--preset--color--text-muted, #6b6b6b);
	text-decoration: none;
	outline: none;
	box-shadow: none;
	background: none;
	border: none;
}

a.machuca-messages-back:hover,
a.machuca-messages-back:focus,
a.machuca-messages-back:focus-visible {
	color: var(--wp--preset--color--primary, #013b28);
	text-decoration: none;
	box-shadow: none;
}

body #bp-better-messages-mini-mobile-container {
	z-index: 9999999;
}

body .bm-button-loading .bm-button-text {
	opacity: 1;
}

button.bm-lc-button, button.bm-lc-button:hover, button.bm-lc-button:focus {
	min-width: 200px;
	border-radius: 100px;
	text-align: center;
}

body button.bm-lc-button:hover {
	filter: brightness(1.8);
	background-color: #333;
}



/* Our fees
---------------------------------------------------------- */
.our-fees-table table {
	max-width: 720px;
    margin-left: auto;
    margin-right: auto;
}

.our-fees-table table thead {
	border-bottom-width: 2px;
}

.our-fees-table table tfoot {
	border-top-width: 2px;
}

.our-fees-table thead th, .our-fees-table td {
    line-height: 1.5;
    vertical-align: middle;
}

.our-fees-table thead tr {
	border: none;
}

.our-fees-table thead th:first-child {
    border: none;
}

.our-fees-table thead th:nth-child(2) {
    border-top: 2px solid #013b28;
    border-left: 2px solid #013b28;
}

.our-fees-table thead th:nth-child(2), .our-fees-table thead th:nth-child(3) {
    background-color: #013b28;
    color: white;
    border-right: 1px solid #646464;
}

.our-fees-table thead th:last-child, .our-fees-table thead th:nth-child(3) {
    border-top: 2px solid #013b28;
}

.our-fees-table thead th:last-child {
	max-width: 150px;
    line-height: 1.2;
    background-color: #ff395c;
    color: white;
}

.our-fees-table table {
    border-right: 2px solid #013b28;
    border-bottom: 2px solid #013b28;
}

.our-fees-table table tbody, .our-fees-table table tfoot {
	border-left: 2px solid #013b28;
}

.our-fees-table thead th strong:before {
    content: url(/pictures/2024/05/cropped-machuca-properties-favicon.png);
    zoom: 10%;
    display: block;
}

.our-fees-table thead th strong:after, .our-fees-table tbody tr td:after {
    display: block;
    font-size: x-small;
    font-weight: 100;
    word-break: normal;
}

.our-fees-table thead th:nth-child(2) strong:after {
    content: '(from the booking price, including discounts)';
}

.our-fees-table thead th:nth-child(3) strong:after {
    content: '(from the first two months of the booking)';
}

.our-fees-table thead th a {
	font-size: small;
    text-decoration: underline;
    font-weight: 500;
    color: white;
}

.our-fees-table tbody tr:first-child td:first-child:after {
    content: '(deducted from the booking price)';
}

.our-fees-table tbody tr:nth-child(2) td:first-child:after {
    content: '(added to the booking price)';
}

.our-fees-table tbody tr:nth-child(3) td:first-child:after {
    content: '(added to the booking price)';
}

.our-fees-table tbody tr:nth-child(2) td:nth-child(2), .our-fees-table tbody tr:nth-child(1) td:nth-child(2), .our-fees-table tbody tr:nth-child(3) td:nth-child(2), .our-fees-table tbody tr:nth-child(3) td:nth-child(2), .our-fees-table tbody tr:nth-child(2) td:nth-child(3), .our-fees-table tbody tr:nth-child(1) td:nth-child(3), .our-fees-table tbody tr:nth-child(3) td:nth-child(3), .our-fees-table tfoot tr td:nth-child(2), .our-fees-table tfoot tr td:nth-child(3), .erp-table tbody tr:nth-child(1) td:nth-child(2), .erp-table tbody tr:nth-child(2) td:nth-child(2) {
    background-color: #f5f9f7;
}

.our-fees-table table thead, .our-fees-table table tbody, .our-fees-table table tfoot, .our-fees-table table th, .our-fees-table table td, .our-fees-table table tr {
	border-top-color: #013b28;
	border-bottom-color: #013b28;
	border-left-color: #013b28;
	border-right-color: #013b28;
	word-break: normal;
}

.our-fees-table tfoot td {
	text-align: center;
}

.erp-table {
	max-width: 600px;
	margin: 0 auto;
}

.numberonly.price .wpuf-fields.fee-page {
	text-align: center;
	max-width: 360px;
	margin: 0 auto;
}

.numberonly.price .wpuf-fields.fee-page hr, .numberonly.price .wpuf-fields.fee-page input {
	max-width: 320px;
}

.numberonly.price .wpuf-fields.fee-page .sar-currency-symbol {
	position: absolute;
    margin-top: 12px;
    margin-left: 10px;
}

.numberonly.price .wpuf-fields.fee-page:before {
	content: '';
}

.numberonly.price .wpuf-fields.fee-page input {
	padding-left: 20px;
}


/* Legal Pages
-----------------------------------------------------------
 * Terms (755) and Privacy (2565) only. The FAQ (1954) was in this group
 * while its body was authored in the block editor; it is now code-owned
 * (machuca-faq.php) and brings its own stylesheet, and justified text on
 * a 38rem measure opened rivers through every answer. Do not re-add page
 * ids here — a page that needs type set has a stylesheet of its own.
 */
.page-id-2565 .entry-content a, .page-id-2565 .entry-content a:hover, .page-id-2565 .entry-content a:focus, .page-id-755 .entry-content a, .page-id-755 .entry-content a:hover, .page-id-755 .entry-content a:focus {
	text-decoration: underline;
}

.page-id-2565 .entry-content p, .page-id-755 .entry-content p {
	text-align: justify;
}

/* Affiliate Program
-------------------------------------------- */
.aff-tc-list li {
	margin-bottom: 20px;
}


/* How to page
------------------------------------ */
body.page-id-2660 .content img {
    box-shadow: 3px 7px 14px #ccc;
}

/* Photographers
------------------------------- */
body.single-ph .contact-ph-group {
	padding: 25px;
	border-radius: 0 0 10px 10px;
}

body.single-ph .contact-ph-group.mobile-only-782 {
	border-radius: 10px;
}

body.single-ph h1.wp-block-heading {
	margin-bottom: 10px;
}

body.single-ph .wp-block-image img {
	border-radius: 10px 10px 0 0;
}

body.single-ph .wp-image-2331 {
	aspect-ratio: 1;
	object-fit: cover;
}

body.single-ph .ph-profile-sticky, body.single-pm .ph-profile-sticky {
	position: sticky;
	top: 0;
}

body.single-ph .underline a {
	font-weight: 100;
	text-decoration: underline;
} 

/* About us
------------------------------------ */
body.about-us h1.entry-title {
	text-align: center;
	margin-top: 14px;
}

body.about-us p:not(.coverphoto-credit) {
	text-align: justify;
}

body.about-us .about-us-squares {
	max-width: 782px;
	margin: 0 auto;
}

.about-us-squares h2.wp-block-heading {
	background-size: cover;
} 

.about-us-squares h2.wp-block-heading a {
    padding: 150px 0;
    color: white;
    box-shadow: inset 0 0 0 2000px rgb(17 17 17 / 70%);
    transition: box-shadow .5s;
    display: block;
}

.about-us-squares h2.wp-block-heading, .about-us-squares h2.wp-block-heading a {
    border-radius: 20px;
}

.about-us-squares h2.wp-block-heading a:hover {
    box-shadow: inset 0 0 0 2000px rgb(17 17 17 / 40%);
}

.about-us-squares .about-machuca-homes {
	background-image: url(/pictures/2024/04/Machuca-Valley-living-cover.jpg);
}

.about-us-squares .who-we-are {
	background-image: url(/pictures/machuca-homes-about-us-oli-and-sam.jpg);
	background-position: 20% 50%;
}

.about-us-squares .about-the-valley {
	background-image: url(/pictures/About-the-machuca-valley-the-machuca-river.jpg);
}

.about-us-squares .values-and-vision {
	background-image: url(/pictures/Machuca-Homes-Our-values-and-vision.jpg);
}

body .media-text-no-padding-left .wp-block-media-text__content {
	padding-left: 0;
}

body .media-text-no-padding-right .wp-block-media-text__content {
	padding-right: 0;
}

body.about-us img, body.about-us .wp-block-cover {
	border-radius: 10px;
}

.photo-by-florian .wp-block-media-text__media:after {
    content: 'photo by Florian Kuster';
    display: block;
    font-size: small;
    position: relative;
    text-align: right;
    margin-top: 1px;
}

.photo-by-florian.left .wp-block-media-text__media:after {
    text-align: left;
}

/* Neighborhoods
------------------------------------- */
body.archive.tax-location.term-la-ecovilla .archive-description {
	background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url(/pictures/machuca-homes-ecovilla-domo-huerta-organica-comunitaria.jpg);
	background-position: 50% 54%;
}

body.archive.tax-location.term-alegria-village .archive-description {
	background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url(/pictures/Alegria-Village-2400px.jpg);
	background-position: 50% 35%;
}

body.archive.tax-location.term-surroundings .archive-description {
	background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url(/pictures/la-ecovilla-alegria-village-surroundings.jpg);
	background-position: 50% 50%;
}

body.archive.tax-location.term-atenas .archive-description {
	background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url(/pictures/Atenas-community-cover.jpg);
	background-position: 50% 70%;
}

body.archive.tax-location.term-maderal .archive-description {
	background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url(/pictures/Maderal-community-sunset-cover.jpg);
	background-position: 50% 50%;
}

body.archive.tax-location.term-san-mateo .archive-description {
	background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url(/pictures/San-Mateo-community-cover.jpg);
	background-position: 50% 70%;
}

body.archive.tax-location.term-tacotal .archive-description {
	background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url(/pictures/Tacotal-community-cover.jpg);
	background-position: 50% 46%;
}

body.archive.tax-location.term-turrubares .archive-description {
	background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url(/pictures/Turrubares-community-cover.jpg);
	background-position: 50% 20%;
}

body.archive.tax-location.term-surroundings .loop-title span:before {
    content: 'the';
}

body.archive.tax-location .loop-header p.backto-cat-btn {
	text-align: left;
	font-size: large;

}

body.archive.tax-location .loop-header ul {
	display: flex;
    width: 100%;
    max-width: 720px;
    flex-wrap: wrap;
    row-gap: 1em;
    column-gap: .2em;
    margin: 20px auto;
    justify-content: space-around;
}

body.archive.tax-location .loop-header ul:empty {
	display: none;
}


body.archive.tax-location .loop-header ul li a {
    font-weight: normal;
    border: 1px solid #ccc;
    border-radius: 100px;
    padding: 6px 20px;
    font-size: large;
}

body.archive.tax-location .archive-description {
    min-height: 300px;
    background-size: cover;
    text-align: center;
    margin: auto;
    color: white;
    display: flex;
    flex-direction: column;
    justify-content: center;
    border-radius: 10px;
}

body.archive.tax-location .archive-description h1 {
	font-size: 30px;
	font-weight: 400;
	max-width: 600px;
    margin: 0 auto;
}

body.archive.tax-location .archive-description p {
    max-width: 600px;
    margin: 0 auto;
}

body.archive.tax-location .content .loop-header {
    text-align: center;
    margin-top: 32px;
}

body.tax-location .loop, body.post-type-archive .loop {
	margin-bottom: 60px;
}


/* 404
------------------------ */
/* The 404 page styles itself, in mu-plugins/assets/machuca-404.css, loaded only
   on a 404. What stood here targeted `.content .entry` — Genesis markup that
   left with the theme change, so every rule had been dead since. */


/* ------------------------------ PLUGINS ------------------------------- */

/* WP Booking Calendar
-------------------------------------------------------------------- */
#booking_search_form .well.search_container {
	border-radius: 100px;
    background-color: #fff;
    padding: 17px 30px;
    border: none;
    box-shadow: none;
    align-items: center;
    flex-wrap: nowrap;
    gap: 6px;
    margin-bottom: 17px;
    display: flex;
}

/* [MACHUCA obsolete — old short-stay search form; replaced by the pill bar
   (.machuca-st-bar / .machuca-pill). Commented during the pill migration; delete
   once verified. These forced width:100% + border-radius:100px on every input and
   styled the old bullet search button, fighting the pill CSS. ]
#booking_search_form .search_container .search_row {
	flex-direction: column;
    text-align: left;
    padding: 0;
    margin:0;
    margin-top: -3px;
    display: flex;
    width: 100%;
}

#booking_search_form .search_container .search_row.search_button {
	max-width: 140px;
	margin-top: .5em;
}

#booking_search_form .search_container .search_row.search_button input {
		background: #013b28;
}

#booking_search_form .search_container label {
	font-size: .85em;
	font-weight: normal;
	width: 100%;
	text-align: left;
}

#booking_search_form .wpdevelop .search_container select, #booking_search_form .wpdevelop .search_container input, #booking_search_form .wpbc_container_search_form .wpdevelop .search_container input[type="button"] {
	border-radius: 100px;
    margin-left: 0!important;
    width: 100% !important;
    box-sizing: border-box;
    height: unset;
    line-height: 1.3;
    min-height: 2.1em;
    font-size: 18px;
}

.short-term-form .wpbc_container_search_form .wpbc__field>*, .short-term-form #booking_search_form .wpbc_container_search_form label, .short-term-form #booking_search_form .wpbc_container_search_form input, .short-term-form #booking_search_form .wpbc_container_search_form input[type=text], .short-term-form #booking_search_form .wpbc_container_search_form select {
	margin:0;
}

#booking_search_form .wpbc_container_search_form {
	margin-top:0;
	width: 100%;
}

#booking_search_form label {
	color: #616161;
}


#booking_search_form .wpdevelop select, #booking_search_form .wpdevelop input, #booking_search_form .wpdevelop input::placeholder {
	color: #595959;
}

#booking_search_form .wpdevelop .search_row .add-days {
	width: 100%;
	text-align: center;
	line-height: 1;
}

#booking_search_form .wpdevelop .search_row .add-days span {
	font-size: 16px;
}

#booking_search_form .form-inline input.search_booking.wpbc_button_light {
    border-radius: 100px;
    box-shadow: unset;
    font-size: 16px;
    color: #fff!important;
    font-weight: 700;
    padding: 14px 0px;
    width: 140px!important;
    max-width: 140px;
    border: none;
}

#booking_search_form .form-inline input.search_booking.wpbc_button_light:hover, #booking_search_form .form-inline input.search_booking.wpbc_button_light:focus {
	border: none;
	filter: brightness(2);
}
*/

.booking_search_ajax_container center, .booking_search_ajax_container .wp-block-group__inner-container center, #booking_search_results .booking_search_ajax_container .wpbc_search_avy_header, .booking_search_ajax_container .wpbc_search_avy_header {
	grid-column: 1 / -1;
    margin-bottom: -40px;
}

.booking_search_ajax_container .booking_search_result_item, .booking_search_ajax_container .wp-block-group__inner-container .booking_search_result_item {
	border: 0;
	margin-left: unset !important;
    margin-right: unset !important;
}

.booking_search_ajax_container .booking_search_result_item .search_results_container, .booking_search_ajax_container .wp-block-group__inner-container .booking_search_result_item .search_results_container, body.single-ph .booking_search_ajax_container .listing-item {
    border-radius: 10px;
    box-shadow: rgba(0, 0, 0, 0.16) 0px 1px 4px 0px;
    flex-direction: column;
    padding-bottom: .7em;
    text-align: center;
}

.booking_search_ajax_container .booking_search_result_item img.booking_featured_image, .booking_search_ajax_container .wp-block-group__inner-container .booking_search_result_item img.booking_featured_image, body.single-ph .booking_search_ajax_container .listing-item img {
	width: 100%!important;
	margin:0!important;
	padding:0;
	border: none;
	border-radius: 10px 10px 0 0;
}

.booking_search_ajax_container .booking_search_result_item .search_results_b:nth-child(2), .booking_search_ajax_container .wp-block-group__inner-container .booking_search_result_item .search_results_b:nth-child(2) {
	line-height: 0;
}

.booking_search_ajax_container .booking_search_result_item .search_results_b {
	float: left;
	position: relative;
}

.booking_search_ajax_container .booking_search_result_item .search_results_b:nth-child(3) {
    margin-top: 16px;
}

.booking_search_ajax_container .booking_search_result_item .booking_search_result_title, .booking_search_ajax_container .wp-block-group__inner-container .booking_search_result_item .booking_search_result_title {
	margin-bottom:0;
	margin-top: 24px;
	line-height: 0;
}

.booking_search_ajax_container .search_results_a, .booking_search_ajax_container .wp-block-group__inner-container .search_results_a {
	margin:0;
}

.booking_search_ajax_container .search_results_b a, .booking_search_ajax_container .wp-block-group__inner-container .search_results_b a {
	display: block;
	padding: 0;
}

.booking_search_ajax_container .search_results_b:not(:first-child), .booking_search_ajax_container .wp-block-group__inner-container .search_results_b:not(:first-child) {
	padding: 0 .5em;
	display: inline-block;
}

.booking_search_ajax_container .search_results_a2, .booking_search_ajax_container .wp-block-group__inner-container .search_results_a2 {
	margin-left: unset;
	width: 100%;
	padding: 0 .5em;
	float: left;
}

.booking_search_ajax_container .search_results_a2 .search_results_b2, .booking_search_ajax_container .wp-block-group__inner-container .search_results_a2 .search_results_b2 {
	text-align: left;
	padding: 0 .5em;
}

.booking_search_ajax_container .wp-block-group__inner-container .search_results_b.dates, .datos_personales_ocultos {
	display: none;
}

.booking_search_result_item a.wpbc_book_now_link, .booking_search_result_item a.wpbc_book_now_link:hover, .wpbc_book_now_link, .wpbc_book_now_link:hover {
	text-decoration: none;
	font-weight: inherit;
}

.booking_search_ajax_container .search_results_b:not(:first-child), .booking_search_ajax_container .wp-block-group__inner-container .search_results_b:not(:first-child) {
	width: 100%;
	text-align: center;
}

.booking_search_result_item .search_results_b .booking_search_result_info {
	margin:0;
}

.booking_search_ajax_container .search_results_a2 .search_results_b2, .booking_search_ajax_container .wp-block-group__inner-container .search_results_a2 .search_results_b2 {
	text-align: center; 
	width: 100%;
	display: block;
	border-top: 1px solid #ccc;
    padding-top: 10px;
    margin-top: 10px;
}

.booking_search_result_item img.booking_featured_image {
	aspect-ratio: 16 / 9;
	object-fit: cover;
}

.booking_search_result_item u {
	filter: brightness(1.5);
}

.short-term-form .wp-block-booking-booking .wpbc_container .wpbc_button_light,
.short-term-form .wp-block-booking-booking .wpbc_container.wpbc_container_booking_form .wpbc_button_light {
	width: 100%;
    border-radius: 100px;
    background-color: #013b28;
    color: white;
/*    line-height: unset;*/
    border: unset;
    margin-top: 14px;
    font-size: 16px;
    padding-left: 0;
    padding-right: 0;
}


.short-term-form .wp-block-booking-booking .wpbc_container .wpbc_button_light:focus,
.short-term-form .wp-block-booking-booking.wpbc_container.wpbc_container_booking_form .wpbc_button_light:focus,
.short-term-form .wp-block-booking-booking .wpbc_container .wpbc_button_light:hover,
.short-term-form .wp-block-booking-booking.wpbc_container.wpbc_container_booking_form .wpbc_button_light:hover {
	border: unset;
/*	font-weight: inherit;*/
	filter: brightness(1.6);
}

.short-term-form button.bm-lc-button, .lt-search-form button.bm-lc-button  {
	width: 100%;
    margin-top: 12px;
    position: relative;
    border: none;
    background-color: rgb(49 111 246);
    padding: 0;
    height: var(--wpbc_form-button-light-size-height);
    margin-bottom: 46px;
}

.location-la-ecovilla:not(.post-5555):not(.post-5550):not(.post-5410):not(.post-5407) .short-term-form button.bm-lc-button {
	margin-bottom: 55px;
}

body .lt-search-form button.bm-lc-button {
	margin-top:0;
	top: -16px;
}

.short-term-form button.bm-lc-button:hover, .lt-search-form button.bm-lc-button:hover {
    filter: brightness(1);
    background-color: rgb(49 111 246 / 90%) !important;
}

.short-term-form button.bm-lc-button:before, .lt-search-form button.bm-lc-button:before {
    content: 'Write to the host before booking to make sure that they will accept your reservation';
    display: block;
    position: absolute;
    color: #ff8502;
    font-size: small;
    text-align: justify;
    text-align-last: center;
    left: 0;
    font-weight: 100;
    border: 1px solid #ff8500;
    padding: 5px;
    border-radius: 3px;
/*    background-color: #9e1313;*/
    top: 50px;
    pointer-events: none;
    width: 100%;
}

.location-la-ecovilla:not(.post-5555):not(.post-5550):not(.post-5410):not(.post-5407) .short-term-form .wp-block-booking-booking .booking_form_div:before {
    content: 'The minimum stay at La Ecovilla is 7 nights';
    display: block;
/*    position: absolute;*/
    color: #9e1313;
    font-size: 11px;
    text-align: center;
    text-align-last: center;
    font-weight: 100;
/*    top: 98px;*/
    pointer-events: none;
    width: 100%;
}

body .short-term-form .wpbc_wizard_step.wpbc__form__div.wpbc_wizard_step2 {
	margin-top: 36px;
}

.lt-search-form form {
/*	top: 16px;*/
	position: relative;
}

.short-term-form .wp-block-booking-booking .wpbc_container_booking_form .wpbc__field:not(.wpbc__cal), .short-term-form .wp-block-booking-booking .wpbc_container_booking_form p {
	margin:0;
}

.wp-block-booking-booking.short-term-form hr {
	margin-top: 10px;
}

.wp-block-booking-booking.short-term-form .wpbc_container_booking_form .wpbc__field:not(.machuca-st-terms-field) .wpbc_wrap_checkbox {
	width: auto;
}

.sar-booking-group .short-term-form .wpbc_container_booking_form .wpbc__field.checkbox_field:not(.machuca-st-terms-field) .wpdev-form-control-wrap.wpbc_wrap_checkbox {
	width: fit-content;
	min-width: unset;
}

.wp-block-booking-booking.short-term-form .wpbc_container_booking_form .wpbc__field.checkbox_field:not(.machuca-st-terms-field) {
	display: flex;
	align-items: center; 
	flex-wrap: nowrap;
	gap: 4px;
	margin-top: 0;
}

.sar-booking-group .short-term-form .machuca-st-terms-field {
	flex: 0 0 100% !important;
	display: block !important;
	width: 100%;
	margin: 16px 0 0 !important;
}

.sar-booking-group .short-term-form .machuca-st-terms-field .machuca-st-terms-label {
	display: flex !important;
	align-items: center !important;
	flex-wrap: nowrap !important;
	gap: var(--wp--preset--spacing--10) !important;
	box-sizing: border-box;
	width: 100%;
	margin: 0 !important;
	padding: var(--wp--preset--spacing--40);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 8px;
	background: var(--wp--preset--color--background);
	cursor: pointer;
	transition: border-color 180ms ease-out, background-color 180ms ease-out;
}

.sar-booking-group .short-term-form .machuca-st-terms-field .machuca-st-terms-label:hover,
.sar-booking-group .short-term-form .machuca-st-terms-field .machuca-st-terms-label:focus-within {
	border-color: var(--wp--preset--color--border-strong);
	background: var(--wp--preset--color--primary-faint);
}

.sar-booking-group .short-term-form .machuca-st-terms-field .wpbc_wrap_checkbox {
	display: flex !important;
	flex: 0 0 18px;
	align-items: center;
	width: 18px !important;
	min-width: 18px !important;
}

.sar-booking-group .short-term-form .machuca-st-terms-field .wpdev-checkbox,
.sar-booking-group .short-term-form .machuca-st-terms-field .wpdev-list-item {
	display: flex;
	align-items: center;
}

.sar-booking-group .short-term-form .machuca-st-terms-field input[type="checkbox"] {
	flex: 0 0 18px;
	width: 18px !important;
	height: 18px !important;
	margin: 0 !important;
	cursor: pointer;
}

.sar-booking-group .short-term-form .machuca-st-terms-field .machuca-st-terms-copy {
	flex: 1 1 auto;
	min-width: 0;
	margin: 0 !important;
	color: var(--wp--preset--color--text);
	font-size: var(--wp--preset--font-size--sm) !important;
	font-weight: 500;
	line-height: 1.45;
	white-space: normal;
	cursor: pointer;
}

.machuca-st-identity-fields,
.short-term-form .machuca-st-identity-fields,
.sar-booking-group .short-term-form .machuca-st-identity-fields,
.wp-block-booking-booking.short-term-form .wpbc_container_booking_form .machuca-st-identity-fields {
	display: none !important;
}

.short-term-form .machuca-st-terms-link,
.wp-block-booking-booking.short-term-form .wpbc_container_booking_form .machuca-st-terms-link,
.sar-booking-group .wp-block-booking-booking.short-term-form .wpbc_container.wpbc_form.wpbc_container_booking_form .wpbc__field.checkbox_field a.machuca-st-terms-link {
	display: inline !important;
	margin: 0 !important;
	padding: 0 !important;
	/* Secondary, not a CTA. These sit inside checkout, a few centimetres from
	   "Send Booking Request", and in primary colour at 700 they read as a second
	   action competing with it. A legal/informational link only has to be
	   unmistakably a link: the underline does that, and inheriting the
	   surrounding text colour keeps the primary colour meaning "the button". */
	color: inherit;
	font-weight: inherit;
	text-decoration: underline;
	text-underline-offset: 2px;
	white-space: normal !important;
	cursor: pointer;
}

.short-term-form .machuca-st-terms-link:hover {
	color: var(--wp--preset--color--primary-soft);
}

.short-term-form .machuca-st-terms-link:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: 2px;
}

.sar-booking-group .short-term-form .machuca-st-terms-warning {
	flex: 0 0 100%;
	width: 100%;
	margin: var(--wp--preset--spacing--20) 0 0 !important;
}

.sar-booking-group .short-term-form .machuca-st-terms-warning .wpbc_front_end__message {
	margin: 0;
	padding: 0;
	color: var(--wp--preset--color--status-declined);
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 500;
	line-height: 1.45;
}

/* WPBC leaves each expired notice wrapper in the DOM after fading out its
   message. Collapse only those stale terms wrappers so their margins cannot
   create blank rows below the consent card. */
.sar-booking-group .short-term-form .machuca-st-terms-warning:has(.wpbc_front_end__message[style*="display: none"]) {
	display: none !important;
}

.wp-block-booking-booking.short-term-form .wpbc_container_booking_form .wpbc__field.wpbc_submit {
	justify-content: flex-start;
	align-items: flex-start;
	text-align: left;
}

.sar-booking-group .wp-block-booking-booking.short-term-form .wpbc_container.wpbc_form.wpbc_container_booking_form .wpbc__field.wpbc_submit {
	margin-bottom: 0 !important;
}

.wp-block-booking-booking.short-term-form .wpbc_container_booking_form .wpbc__field.wpbc_submit input[type="submit"] {
	width: 100%;
}

.wp-block-booking-booking.short-term-form .wpbc_container_booking_form .datos_reserva spacer,
.wp-block-booking-booking.short-term-form .wpbc_container_booking_form .machuca-st-reservation-fields spacer {
	display: block;
	height: 4px !important;
}

.wp-block-booking-booking.short-term-form .wpbc_container_booking_form .datos_reserva textarea,
.wp-block-booking-booking.short-term-form .wpbc_container_booking_form .machuca-st-reservation-fields textarea {
	margin-bottom: 2px;
}

.sar-booking-group .reservation-cost-msg {
	text-align: center;
}

/* A thank-you used to be injected here, on the booking card of both forms:
   "Thank you for recognizing the value of our platform". It sat on the listing
   page, so it thanked people for a decision they had not made yet — which is
   why it read as a plea rather than a courtesy, and it claimed something about
   us that is not true. The thank-you now lives on the booking requests page,
   where the booking has actually been made. */

.short-term-form .wp-block-booking-booking .wpbc_container_booking_form .wpbc__field:not(.machuca-st-terms-field) .wpdev-form-control-wrap.wpbc_wrap_checkbox {
	display: inline-flex;
	align-items: center;
	width: auto;
	min-width: unset;
	flex-wrap: nowrap;
    flex-direction: row;
}


.short-term-form .wp-block-booking-booking div.wpbc_container.wpbc_form input[type=checkbox] + label {
	font-size: 15px;
	white-space: nowrap;
}

.short-term-form .wp-block-booking-booking div.wpbc_container.wpbc_form .checkbox_field:not(.machuca-st-terms-field) a {
	display: inline-flex;
	align-items: center;
	white-space: nowrap;
	margin: 0 !important;
	padding: 0 !important;
}

.short-term-form .wp-block-booking-booking .wpbc_after_booking_thank_you_section .wpbc_ty__message {
	display: block;
	margin: 0 0 var(--wp--preset--spacing--30);
	color: var(--wp--preset--color--text);
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--base);
	font-weight: 600;
	line-height: 1.35;
	text-align: center;
}

.short-term-form .wp-block-booking-booking .wpbc_after_booking_thank_you_section .wpbc_ty__container .wpbc_ty__content .wpbc_ty__content_text .wpbc_ty__section_text_costs {
	padding: 0 1em;
}

.short-term-form .wp-block-booking-booking .wpbc_container.wpbc_container_booking_form .wpbc_button_light.wpbc_button_gw_stripe {
	padding-right: 0;
	padding-left: 1em;
	justify-content: center;
    align-items: flex-start;
    flex-flow: column;
    background-color: #013b28;
}

.short-term-form .wp-block-booking-booking .wpbc_after_booking_thank_you_section .wpbc_ty__container .wpbc_ty__content .wpbc_ty__content_text h4 {
	margin: 0;
}

.short-term-form .wp-block-booking-booking .wpbc_after_booking_thank_you_section .wpbc_ty__container .wpbc_ty__content .wpbc_ty__content_text:first-child {
	border: none;
}


/* TT25 fix: WP constrained layout caps direct children to contentSize (720px)
   via .is-layout-constrained > :where(...). Target the direct child container
   and inner form elements. Specificity (0,2,1) beats WP's (0,1,0). */
body .short-term-form > .wpbc_container,
body .short-term-form .wpbc_form,
body .short-term-form .wpbc_container_search_form {
	max-width: none;
	width: 100%;
	margin-top: 0;
	margin-left: 0;
	margin-right: 0;
	padding: 0;
}

.booking_search_ajax_container .wp-block-group__inner-container,
#booking_search_results .booking_search_ajax_container,
.booking_search_ajax_container {
	display: grid;
	grid-template-columns: repeat(auto-fill, 32%);
	justify-content: space-around;
	row-gap: 40px;
	margin-bottom: 60px;
}

/* Site Header
---------------------------------------------------------------------------- */




/* Content Area
---------------------------------------------------------------------------- */

body.page-template-default:not(.home) .wp-site-blocks > main.has-global-padding {
	box-sizing: border-box;
	padding-right: clamp(1rem, 4vw, 1.5rem) !important;
	padding-left: clamp(1rem, 4vw, 1.5rem) !important;
}

body:not(.login):not(.machuca-auth-flow-page):has(.wppb-user-forms.wppb-register-user) .wp-site-blocks > main.has-global-padding {
	min-height: calc(100vh - 84px);
	padding-top: clamp(42px, 8vh, 84px) !important;
	padding-bottom: clamp(42px, 8vh, 84px) !important;
	background:
		linear-gradient(180deg, rgba(248, 246, 241, 0.78), rgba(255, 255, 255, 0.98)),
		var(--wp--preset--color--surface);
}

body.machuca-auth-flow-page {
	background: var(--wp--preset--color--background);
}

body.machuca-auth-flow-page > .wp-site-blocks > header.wp-block-template-part,
body.machuca-auth-flow-page > .wp-site-blocks > footer.wp-block-template-part {
	display: none;
}

body.machuca-auth-flow-page .wp-site-blocks > main,
body.machuca-auth-flow-page .wp-site-blocks > main.has-global-padding {
	display: grid;
	align-items: stretch;
	min-height: 100svh;
	margin-top: 0 !important;
	margin-block-start: 0 !important;
	padding: 0 !important;
	padding-top: 0 !important;
	padding-block-start: 0 !important;
	padding-bottom: 0 !important;
	padding-block-end: 0 !important;
	padding-right: 0 !important;
	padding-inline-end: 0 !important;
	padding-left: 0 !important;
	padding-inline-start: 0 !important;
	background: var(--wp--preset--color--background);
}

body.machuca-auth-flow-page .wp-site-blocks > * {
	margin-block-start: 0 !important;
}

body.machuca-auth-flow-page .wp-site-blocks > main > .wp-block-group:has(.machuca-auth-page),
body.machuca-auth-flow-page .wp-site-blocks > main .wp-block-post-content:has(.machuca-auth-page),
body.machuca-auth-flow-page .wp-site-blocks > main .entry-content:has(.machuca-auth-page) {
	width: 100vw !important;
	max-width: none !important;
	margin-top: 0 !important;
	margin-block-start: 0 !important;
	margin-right: calc(50% - 50vw) !important;
	margin-left: calc(50% - 50vw) !important;
	padding: 0 !important;
	padding-block: 0 !important;
	padding-inline: 0 !important;
	background: var(--wp--preset--color--background) !important;
}

/* Entry Content
--------------------------------------------- */

.entry {
	margin-bottom: 40px;
}

.entry-content ol,
.entry-content ul {
	margin-bottom: 30px;
	padding-left: 40px;
}

.entry-content ol > li {
	list-style-type: decimal;
}

.entry-content ul > li {
	list-style-type: disc;
}

.entry-content ol ul > li,
.entry-content ul ul > li {
	list-style-type: circle;
}

.entry-content ol ol,
.entry-content ul ul {
	margin-bottom: 0;
}

.entry-content code {
	background-color: #f5f5f5;
}

.content .sticky {
	background-color: #f5f5f5;
	padding: 30px;
}

/* Entry Meta
--------------------------------------------- */

p.entry-meta {
	font-size: 16px;
	margin-bottom: 0;
}

.entry-header .entry-meta {
	margin-bottom: 20px;
}

.entry-footer .entry-meta {
	border-top: 1px solid #eee;
	padding-top: 20px;
}

.entry-categories,
.entry-tags {
	display: block;
}

.entry-comments-link::before {
	content: "\2014";
	margin: 0 6px 0 2px;
}

/* Pagination
--------------------------------------------- */

.pagination {
	clear: both;
	margin: 60px 0;
}

.adjacent-entry-pagination {
	margin-bottom: 0;
}

.archive-pagination li {
	display: inline;
}

.archive-pagination li a {
	background-color: #f5f5f5;
	color: #333;
	cursor: pointer;
	display: inline-block;
	font-size: 16px;
	font-weight: 700;
	margin-bottom: 4px;
	padding: 8px 12px;
	text-decoration: none;
}

.archive-pagination li a:focus,
.archive-pagination li a:hover,
.archive-pagination li.active a {
	background-color: #333;
	color: #fff;
}

/* Entry Comments
--------------------------------------------- */

.comment-respond,
.entry-comments,
.entry-pings {
	margin-bottom: 40px;
}

.comment-list li {
	padding: 40px 0 0 30px;
}

.comment-list .depth-1 {
	padding-left: 0;
}

.comment-header {
	margin-bottom: 30px;
}

.comment-content {
	clear: both;
}

.comment-content ul > li {
	list-style-type: disc;
}

.comment-respond input[type="email"],
.comment-respond input[type="text"],
.comment-respond input[type="url"] {
	width: 50%;
}

.comment-respond label {
	display: block;
	margin-right: 12px;
}

.comment-header p {
	margin-bottom: 0;
}

.entry-pings .reply {
	display: none;
}

.comment-form-cookies-consent label {
	display: inline;
	padding-left: 10px;
}

/* Sidebar
---------------------------------------------------------------------------- */

.sidebar {
	font-size: 16px;
	line-height: 1.5;
}

.sidebar .widget {
	margin-bottom: 40px;
}

.sidebar p {
	margin-bottom: 20px;
}

/* Footer Widgets
---------------------------------------------------------------------------- */




/* Site footer — styled via Site Editor (TT25 block footer) */

/* The middle row of the footer (About / FAQs / Fees) spreads across the width it
   has instead of clustering in the centre. This one setting cannot come from
   the Site Editor: the navigation block's justification control offers left,
   centre, right and space-between — space-around is not among them.

   The row is identified by the label the block already publishes to the
   accessibility tree, which is the same name it carries in the editor. That is a
   real handle, not a position: adding or reordering the other two rows cannot
   move it. Rename the menu in the editor and this stops matching — so if the
   name changes, change it here too.

   The <nav> is the flex container and the <ul> is its only child, sized to its
   contents; distributing the links means letting that list fill the row first,
   and then spacing inside it. */
.sar-footer-menu nav[aria-label="Footer menu 2"] > .wp-block-navigation__container {
	width: 100%;
	justify-content: space-around;
}


/* ---------------------------- AGREGADOS ---------------------------------- */

/* Top Bar
-------------------------------- */
#top_bar .widget {
	margin-bottom: 0;
	background:black; 
	padding: 5px;
}

#top_bar p {
	color:white; 
	text-align:center; 
	line-height:1;	
	padding: 2px 0 3px;
}

#top_bar p a {
	color:white; 
	text-decoration:underline;
	font-weight: 400;
}



.menu-account img {
	max-width: 36px;
    margin-top: -4px;
    float: right;
}

.menu-account:before {
	content: "\f228";
	font-family: 'dashicons';
	display: inline-block;
	margin-right: 10px;
}

.menu-account {
	border: 1px solid #ccc;
	padding: 10px;
	border-radius: 100px;
}


/* Todo el sitio
--------------------------------------- */
/* Site Header (TT25)
--------------------------------------------- */

.site-header {
	width: 100%;
	background-color: #fff;
	border-bottom: 1px solid #eaeaea;
	padding: 0;
	position: relative;
	z-index: 9999;
}

.site-header > .is-layout-constrained {
	position: relative;
	max-width: 1140px;
	margin: 0 auto;
	box-shadow: unset;
	padding: 0 30px;
}


a {
	text-decoration: none;
	font-weight: 700;
}

/* Text links only: this darkens the link and there is no outline left to show
   focus with (see the reset above), so :focus has to say something. Anything
   with a background of its own has to answer for :focus itself, or this colour
   will paint its label the same green it sits on - see the block-button rule. */
a:focus, a:hover {
	color: #013b28;
	font-weight: bold;
}



.hide {
	display: none!important;
}

.justify {
	text-align: justify;
}

body hr.wp-block-separator {
	color: #ccc;
}

/* Home 
------------------------- */
.home .site-header {
	border: none;
	box-shadow:none;
}
.home .wp-block-cover.homecover {
	height: 300px;
	min-height: unset;
	background-position: 50% -185px;
	background-size: auto;
}

.home .search-by-communities {
	padding: 0 20px;
}

.home .search-by-communities .wp-block-column {
	box-shadow: none;
}

.home .search-by-communities .wp-block-cover {
	max-height: 200px;
	border-radius: 10px;
	min-height: unset;
	padding: 0;
	aspect-ratio: 16 / 9;
	width: 100%;
	transition: box-shadow .2s ease-in-out;
	margin: 0 auto;
}

.home .search-by-communities .wp-block-cover .wp-block-cover__inner-container, .home .search-by-communities .wp-block-cover .wp-block-cover__inner-container h2, .home .search-by-communities .wp-block-cover .wp-block-cover__inner-container h2 a {
	width: 100%;
	height: 100%;
	display: block;
	align-content: center;
}

.home .search-by-communities .wp-block-cover:hover {
	box-shadow: #2e2e2e9e 2px 2px 5px;
}

.home .loop .loop-content .epl-listing-grid-view {
	width: 100%;
	display: inline-block;
}

.wp-block-image img {
	border-radius: 10px;
}

.content-sidebar-wrap .content, .sidebar-content .content {
	float: none;
	margin: 0 auto;
}

.archive .content-sidebar-wrap .content {
	float: left;
	width: 100%;
}

.loop-content .epl-listing-grid-view {
	width: 100%;
	max-width: 694px;
	float: none;
	margin: 0 auto;
	display: block;
}

.home .wp-block-column, .epl-property-blog .epl-property-blog-entry-wrapper {
	border-radius: 10px;
	box-shadow: rgba(0, 0, 0, 0.16) 0px 1px 4px 0px;
}

.home .wp-block-column h4 {
	margin-top:0;
	margin-bottom: 10px
}

.home .epl-archive-utility-wrapper {
	display: none;
}

.loop-content .epl-listing-grid-view { 
	margin-bottom: 20px;
}

body p.coverphoto-credit em {
	position: relative;
	bottom: 10px;
	right: 10px;
}


.short-term-form, .lt-search-form { 
	display: none;
}
/* Professional photographers
------------------------------------------------- */
.photographers-profile .wp-block-group {
    width: 300px;
    border: 1px solid #ccc;
    border-radius: 10px;
    padding: 0 0 20px;
    margin: 0 auto;
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);
    transition: box-shadow 0.3s ease-in-out, transform 0.3s ease-in-out;
}


.photographers-profile .wp-block-group:hover, .photographers-profile .wp-block-group:focus {
	box-shadow: 3px 11px 20px 14px rgba(0, 0, 0, 0.1);  
	transform: scale(1.02);  
}

.photographers-profile img {
	border-radius: 0px;
	aspect-ratio: 3 / 2;
	object-fit: cover;
	border-radius: 10px 10px 0 0;
}

.photographers-profile img.wp-image-2009 {
	object-position: top;
}

.photographers-profile .wp-block-button a {
	transition: color 0.3s ease-in-out, background-color 0.3s ease-in-out;
}

.photographers-profile .wp-block-button a.wp-block-button__link:hover, .photographers-profile .wp-block-button a.wp-block-button__link:focus {
	background-color: #548877;
	color: white!important;
}	

.photographers-profile .wp-block-heading {
	margin-bottom: 0;
	margin-top: 30px;
}

.photographers-profile .profile-subtitle {
	font-size: 16px;
}

body .wp-block-button .wp-block-button__link {
	font-family: "Sen", "Source Sans Pro", sans-serif;
}

/* Property Managers
---------------------------------------------------- */

body.agents-profile .photographers-profile img {
	aspect-ratio: 3 / 2;
}

.property-manager-pm {
	float: right;
}

/* Property Managers - Single 
---------------------------------------- */
body.single-ph .booking_search_ajax_container .listing-item img.attachment-medium.size-medium.wp-post-image {
	margin-bottom: 10px;
}

body.single-ph .wpcf7 .wpcf7-form label {
	color: white;
}

body.single-ph .wpcf7 .wpcf7-form p {
	margin-bottom: 10px;
}

body.single-ph .wpcf7 .wpcf7-form textarea {
	border-radius: 10px;
    margin-top: 10px;
    height: 100px;
}

body.single-ph .wpcf7 .wpcf7-form .wpcf7-submit {
	width: 100%;
    background: white;
    color: #111111;
    border-radius: 10px;
}

body.single-ph .wpcf7 .wpcf7-form .wpcf7-response-output {
	color: white;
}

/* Account host calendars
----------------------------------- */

.machuca-host-calendars {
	margin-top: 48px;
}

.machuca-host-calendar {
	padding-bottom: 48px;
	border-bottom: 1px solid #d8d8d8;
	margin-bottom: 48px;
}

.machuca-host-calendar-title {
	margin: 0 0 28px;
	font-size: clamp(1.5rem, 2vw, 2rem);
	font-weight: 500;
	line-height: 1.25;
}

.machuca-host-calendar-widget {
	margin-bottom: 28px;
}

.machuca-host-calendar-widget .calendar_loader_frame {
	width: 100% !important;
	max-width: 100% !important;
	height: clamp(220px, 28vw, 307px);
	border: 1px solid var(--wp--preset--color--border) !important;
	border-radius: 8px;
	box-shadow: none;
	background: var(--wp--preset--color--surface) !important;
	color: var(--wp--preset--color--text-muted) !important;
}

.machuca-host-calendar-widget .calendar_loader_text {
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 600;
	color: var(--wp--preset--color--text-muted);
}

.machuca-host-calendar-widget .calendar_loader_frame__progress_line_container {
	width: min(320px, 50%);
	background: var(--wp--preset--color--border);
}

.machuca-host-calendar-widget .calendar_loader_frame__progress_line {
	background: var(--wp--preset--color--primary);
}

.machuca-host-calendar-label {
	margin: 0 0 8px;
	font-weight: 600;
}

.machuca-calendar-copy {
	display: flex;
	max-width: 560px;
	border: 1px solid #222;
	border-radius: 4px;
	overflow: hidden;
	background: #fff;
}

.machuca-calendar-copy-input {
	flex: 1 1 auto;
	min-width: 0;
	border: 0;
	padding: 12px;
	font: inherit;
	color: #333;
	background: transparent;
}

.machuca-calendar-copy-button {
	flex: 0 0 auto;
	border: 0;
	border-left: 1px solid #222;
	padding: 0 20px;
	font: inherit;
	font-weight: 600;
	color: #fff;
	background: #111;
	cursor: pointer;
}

.machuca-calendar-copy-button:hover,
.machuca-calendar-copy-button:focus {
	background: #333;
}

.machuca-host-calendar-help {
	margin-top: 8px;
	font-size: 0.9rem;
	color: #555;
}

.machuca-host-calendars-empty {
	margin: 120px auto;
	max-width: 980px;
	text-align: center;
	font-size: 1.25rem;
}

.machuca-host-calendars-empty p {
	margin: 0 0 8px;
}

.machuca-host-calendars-empty a {
	font-weight: 700;
}

@media (max-width: 640px) {
	.machuca-calendar-copy {
		max-width: none;
	}

	.machuca-calendar-copy-button {
		padding: 0 14px;
	}
}


.sar-booking-group {
	position: sticky;
	top: 20px;
}

/* A booking card taller than the viewport returns to normal page flow: sticky
   would pin its top and leave its own bottom unreachable until the whole
   section had scrolled past. The state class is set by single-rental-tabs.js
   (syncBookingDesktopLayout) after preserving the card's viewport anchor.
   Capping the height and scrolling inside the card instead is not an option —
   the Dates/Guests panels are absolutely positioned OUTSIDE the card, and any
   overflow value other than visible would clip them. */
@media (min-width: 960px) {
	.sar-booking-group.machuca-booking-group--flow {
		position: static;
	}
}

/* Mobile-only chrome: the collapsed CTA bar and the sheet × close exist in the
   markup at all widths but only surface in the ≤959px sheet model. */
.sar-booking-bar,
.sar-sheet-close {
	display: none;
}
/* Page lock behind the open booking sheet (the sheet scrolls internally). */
body.sar-sheet-lock {
	overflow: hidden;
}

body.single-rental .sar-booking-column {
	flex-basis: 35%;
	order: 2;
	align-self: stretch;
}

/* Single-rental two-column layout */
.machuca-listing-body {
	display: flex;
	gap: 2.5rem;
}

.machuca-content-column {
	flex: 1;
	min-width: 0;
	order: 1;
	align-self: flex-start;
}

/* Booking card heading */
.sar-booking-title {
	font-size: 1.25rem;
	font-weight: 700;
	text-align: center;
	margin: 0 0 12px;
}

/* Booking card prices — side by side */
.sar-booking-box .sar-booking-prices {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(0, 1fr));
	gap: 8px;
	align-items: baseline;
	max-width: 480px;
	width: 100%;
	margin: 0 auto 16px;
}

.sar-booking-box .sar-booking-prices p {
	display: flex;
	align-items: center;
	flex-direction: column;
	gap: 2px;
	margin: 0;
	font-size: 1.1rem;
	text-align: center;
}

.sar-booking-box .sar-booking-prices .sar-price-unit {
	display: block;
	font-size: var(--wp--preset--font-size--xs);
	line-height: 1.2;
}

.sar-price-unit {
	font-weight: normal;
	font-size: 0.8em;
	color: #555;
}

/* Booking card tab navigation */
.sar-booking-tabs {
	display: flex;
	justify-content: center;
	gap: 8px;
	max-width: 480px;
	margin: 0 auto 4px;
}

.sar-tab-item {
	flex: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 4px;
}

.sar-tab-btn {
	width: 100%;
	max-width: 240px;
	padding: 11px 16px;
	border: 2px solid #ccc;
	border-radius: 50px;
	background: transparent;
	color: var(--wp--preset--color--contrast, #1a1a1a);
	cursor: pointer;
	font-size: 15px;
	font-weight: 600;
	font-family: inherit;
	transition: background 0.15s, color 0.15s, border-color 0.15s;
}

.sar-tab-btn.sar-tab-active {
	background: var(--wp--preset--color--primary, #2c5d3f);
	color: #fff;
	border-color: var(--wp--preset--color--primary, #2c5d3f);
}

.sar-tab-sub {
	font-size: 12px;
	color: #888;
	text-align: center;
}

/* Both-engines variant: the header-search pill track (.mcs-tabs look, sans
   magnifier) — muted rounded track, solid-primary active pill. Captions live
   in their own row below (inside the track they'd inflate it). */
.sar-booking-tabs--pills {
	width: 100%;
	max-width: 100%;
	gap: 4px;
	padding: 4px;
	margin: 0 auto 6px;
	background-color: var(--wp--preset--color--surface-muted, #f1efe9);
	border-radius: 999px;
}
/* Equal halves: both buttons the same size regardless of state, so the
   active pill never reads narrower than its unselected sibling. */
.sar-booking-tabs--pills .sar-tab-btn {
	flex: 1 1 0;
	width: auto;
	max-width: none;
	border: none !important;
	padding: 12px 22px;
	background: transparent;
	color: var(--wp--preset--color--primary);
	font-size: var(--wp--preset--font-size--sm, 14px);
	text-align: center;
}
@media (max-width: 959px) {
	.sar-booking-tabs--pills .sar-tab-btn {
		padding: 16px 22px;
	}
}
.sar-booking-tabs--pills .sar-tab-btn.sar-tab-active {
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--surface, #fff);
}
.sar-booking-tab-subs {
	display: flex;
	justify-content: space-between;
	gap: 4px;
	padding: 0 4px;
	margin: 0 auto 6px;
}
/* Each listing-specific duration caption sits under its own button: mirror
   the pill track's equal flex halves and 4px track padding. */
.sar-booking-tab-subs .sar-tab-sub {
	flex: 1 1 0;
	text-align: center;
}
@media (max-width: 959px) {
	/* The track is the one booking-card element wide enough to hit the screen
	   edges — cap it and keep 15px of air on sub-480px screens. */
	.sar-booking-tabs--pills,
	.sar-booking-tab-subs {
		max-width: 480px;
		width: calc(100% - 30px);
		margin-left: auto;
		margin-right: auto;
	}
	/* Captions align under their own button: mirror the track's flex halves
	   (each caption flex:1 centered, same 4px inner padding) instead of a
	   free-floating centered pair. */
}

.sar-booking-column .sar-booking-group .sar-booking-box .sar-booking-prices .wp-block-column p {
	line-height: 1.2;
}

.sar-booking-column .sar-booking-group .sar-booking-box .wp-block-buttons .wp-block-button a {
	padding-left: 0;
	padding-right: 0;
}

.sar-booking-box p {
	margin: 10px 0;
}

.sar-booking-box ~ p.has-text-align-right {
	margin-top:-12px;
	margin-right: 20px;
}

.sar-booking-group .sar-booking-box .booking-btn-footnote {
	gap: .5em;
}

.sar-booking-group .sar-booking-box .booking-btn-footnote p {
	color: #595959;
}


.sar-booking-group .booking-form-dates .wpbc__row {
	flex-wrap: nowrap;
}

.sar-booking-group .short-term-form .booking_form_div .booking-form-dates .wpbc__row .wpbc__field {	
	display: block;
	flex: none;
	flex-basis: 50%;
}

.sar-booking-group .short-term-form:not(.machuca-st-dates-ready) .booking-form-dates,
.sar-booking-group .short-term-form:not(.machuca-st-dates-ready) .wpbc_wizard_step1 hr,
.sar-booking-group .short-term-form:not(.machuca-st-dates-ready) .wpbc_wizard_step1 .booking-price-breakdown,
.sar-booking-group .short-term-form:not(.machuca-st-dates-ready) .wpbc_wizard_step1 #booking-form-discount,
.sar-booking-group .short-term-form:not(.machuca-st-dates-ready) .wpbc_wizard_step1 #booking-form-comfee,
.sar-booking-group .short-term-form:not(.machuca-st-dates-ready) .wpbc_wizard_step1 #booking-form-ourfee,
.sar-booking-group .short-term-form:not(.machuca-st-dates-ready) .wpbc_wizard_step1 #booking-form-payfee,
.sar-booking-group .short-term-form:not(.machuca-st-dates-ready) .wpbc_wizard_step1 #booking-form-cleaning-fee,
.sar-booking-group .short-term-form:not(.machuca-st-dates-ready) .machuca-st-price-details-toggle,
.sar-booking-group .short-term-form:not(.machuca-st-dates-ready) .machuca-st-price-details,
/* The box too, not only what is inside it. It carries the border and the fill,
   so with its contents hidden it stood on the card as an empty beige panel. */
.sar-booking-group .short-term-form:not(.machuca-st-dates-ready) .machuca-st-price-box,
.sar-booking-group .short-term-form:not(.machuca-st-dates-ready) .machuca-st-hold-note,
.sar-booking-group .short-term-form:not(.machuca-st-dates-ready) #booking-form-total {
	display: none !important;
}

.sar-booking-group .booking-form-dates .wpbc__row .wpbc__field:first-child {
	border-right: 1px solid #ccc;
}

.sar-booking-group .booking-form-dates .wpbc__row .wpbc__field:nth-child(2) {
	text-align: right;
}

/* No rules between the card's sections. Each block that needs an edge already
   carries its own — the price details box is bordered, the payment block is
   filled — so a line on top of that is a second boundary for one division, and
   the run of them chopped the card into slices. Space does the same work
   without the noise; the sections below declare it. */
.sar-booking-group .short-term-form hr {
	display: none !important;
}

.sar-booking-group .short-term-form hr.last-before-footnote {
	margin: 1em auto;
}

.sar-booking-group .short-term-form .wpbc__form__div div:not(.booking-form-dates) .wpbc__row {
	flex-wrap: nowrap;
	font-size: 13px;
	align-items: center;
	line-height: 1.3;
	margin-bottom: 2.5px;
	margin-top: 2.5px;
}

/* !important: the generic div:not(.booking-form-dates) nowrap rule above
   out-specifies this (extra element selector) and would keep the guest rows
   squeezed onto one line. */
.sar-booking-group .short-term-form .wpbc__form__div .datos_reserva .wpbc__row,
.sar-booking-group .short-term-form .wpbc__form__div .machuca-st-reservation-fields .wpbc__row {
	flex-wrap: wrap !important;
}

.sar-booking-group .short-term-form .wpbc__form__div .datos_reserva .wpbc__row .wpbc__field,
.sar-booking-group .short-term-form .wpbc__form__div .machuca-st-reservation-fields .wpbc__row .wpbc__field {
	flex-basis: 100%;
	justify-content: flex-start;
	text-align: left;
}

.sar-booking-group .wpbc__form__div .wpbc__row .wpbc__field:first-child {
	flex-basis: 70%;
}

.sar-booking-group .wpbc__form__div div:not(.booking-form-dates) .wpbc__row .wpbc__field:nth-child(2) {
	flex-basis: 30%;
    justify-content: flex-end;
    text-align: right;
    min-width: 76px;
}

/* First-step price details: let the fee labels grow so they don't wrap (same
   treatment as the review summary). These fee rows use WPBC's generic 70/30
   columns; target them by their stable IDs so date/guest rows — which share
   that layout — are left untouched. */
#booking-form-comfee .wpbc__field:first-child,
#booking-form-ourfee .wpbc__field:first-child,
#booking-form-cleaning-fee .wpbc__field:first-child {
	flex-basis: auto !important;
	flex-grow: 1 !important;
	min-width: 0 !important;
}
#booking-form-comfee .wpbc__field:nth-child(2),
#booking-form-ourfee .wpbc__field:nth-child(2),
#booking-form-cleaning-fee .wpbc__field:nth-child(2) {
	flex-basis: auto !important;
	flex-grow: 0 !important;
	min-width: 0 !important;
	white-space: nowrap !important;
}

/* One bordered box holds the heading, the +/- and the lines, matching the
   review step. The border used to live on the open panel alone, so the heading
   sat outside the thing it opened and the collapsed state had no edge. */
.sar-booking-group .short-term-form .machuca-st-price-box {
	margin: var(--wp--preset--spacing--30) 0 0;
	padding: var(--wp--preset--spacing--30);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 8px;
	background: var(--wp--preset--color--background);
}

.sar-booking-group .short-term-form .machuca-st-price-details-toggle {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--wp--preset--color--primary);
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 700;
	text-align: left;
	cursor: pointer;
}

.sar-booking-group .short-term-form .machuca-st-price-details-toggle:not(.machuca-st-price-details-ready),
.sar-booking-group .short-term-form .machuca-st-price-details:not(.machuca-st-price-details-ready) {
	display: none !important;
}

.sar-booking-group .short-term-form .machuca-st-price-details-toggle::after {
	content: "+";
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 999px;
	color: var(--wp--preset--color--text-muted);
	font-size: var(--wp--preset--font-size--sm);
	line-height: 1;
}

.sar-booking-group .short-term-form .machuca-st-price-details-toggle[aria-expanded="true"]::after {
	content: "-";
}

.sar-booking-group .short-term-form .machuca-st-price-details-toggle:hover,
.sar-booking-group .short-term-form .machuca-st-price-details-toggle:focus {
	color: var(--wp--preset--color--primary-soft);
	outline: none;
}

.sar-booking-group .short-term-form .machuca-st-price-details-toggle:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: 4px;
	border-radius: 8px;
}

/* The box above owns the border and the padding now. */
/* Transparent: the box above paints the surface. Keeping a fill here left the
   heading standing on the page's own white inside the border, with the beige
   starting only below it. */
.sar-booking-group .short-term-form .machuca-st-price-details {
	margin: var(--wp--preset--spacing--20) 0 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
}

.sar-booking-group .short-term-form .machuca-st-price-details[hidden] {
	display: none !important;
}

.sar-booking-group .short-term-form .machuca-st-review-flow .wpbc_wizard_step2 .booking-form-dates,
.sar-booking-group .short-term-form .machuca-st-review-flow .wpbc_wizard_step2 > hr,
.sar-booking-group .short-term-form .machuca-st-review-flow .wpbc_wizard_step2 > .booking-price-breakdown {
	display: none !important;
}

.sar-booking-group .short-term-form .machuca-st-review {
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--20);
	margin: 0 0 var(--wp--preset--spacing--20);
}

.sar-booking-group .short-term-form .machuca-st-review h3 {
	margin: 0;
	color: var(--wp--preset--color--text);
	font-family: var(--wp--preset--font-family--serif);
	font-size: 1.25rem;
	line-height: 1.2;
	text-align: center;
}

/* Listing name sits directly under the title (matches the LT summary), not as a
   labelled Home/value row. The inline "Edit stay" link mirrors the LT
   lt-summary-edit-row/lt-summary-edit pair (rendered by machuca-lt-payments.php)
   so both booking forms offer the same in-summary route back to step 1. */
.sar-booking-group .short-term-form .machuca-st-review-meta {
	display: grid;
	gap: 2px;
	margin: -10px 0 0;
}
.sar-booking-group .short-term-form .machuca-st-review-listing {
	margin: 0;
	color: var(--wp--preset--color--text-muted);
	font-size: 0.875rem;
	text-align: center;
}
.sar-booking-group .short-term-form .machuca-st-review-edit-row {
	display: flex;
	justify-content: flex-end;
}
.sar-booking-group .short-term-form button.machuca-st-review-edit-inline {
	display: inline-flex;
	width: auto;
	min-width: 0;
	height: auto;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	color: var(--wp--preset--color--primary);
	font-family: inherit;
	font-size: 0.75rem;
	font-weight: 600;
	line-height: 1.4;
	cursor: pointer;
}
.sar-booking-group .short-term-form button.machuca-st-review-edit-inline:hover {
	color: var(--wp--preset--color--primary-soft);
}
.sar-booking-group .short-term-form button.machuca-st-review-edit-inline:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: 3px;
}

.sar-booking-group .short-term-form .machuca-st-review-rows {
	display: flex;
	flex-direction: column;
	gap: 3px;
}

.sar-booking-group .machuca-booking-review-capacity-note {
	background: transparent;
	border-left: 2px solid var(--wp--preset--color--primary-soft, #8fa58b);
	border-radius: 0;
	color: var(--wp--preset--color--text-muted, #666);
	font-size: var(--wp--preset--font-size--xs, 13px);
	line-height: 1.4;
	margin: 3px 0 0;
	padding: 2px 0 2px 9px;
}

.sar-booking-group .short-term-form .machuca-st-review-row {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: var(--wp--preset--spacing--30);
	font-size: var(--wp--preset--font-size--xs);
	line-height: 1.3;
}

.sar-booking-group .short-term-form .machuca-st-review-row span {
	flex: 0 0 auto;
	color: var(--wp--preset--color--text-muted);
	font-weight: 500;
}

.sar-booking-group .short-term-form .machuca-st-review-row strong {
	color: var(--wp--preset--color--text);
	font-weight: 600;
	text-align: right;
	white-space: pre-wrap;
}

.sar-booking-group .short-term-form .machuca-st-review-row--message strong {
	text-align: left;
	white-space: normal;
}

.sar-booking-group .short-term-form .machuca-st-review-total {
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: space-between;
	gap: var(--wp--preset--spacing--30);
	padding: 8px 0;
	border-top: 1px solid var(--wp--preset--color--border);
	border-bottom: 1px solid var(--wp--preset--color--border);
	text-align: left;
}

.sar-booking-group .short-term-form .machuca-st-review-total span {
	color: var(--wp--preset--color--text);
	font-size: var(--wp--preset--font-size--base);
	font-weight: 700;
	text-transform: none !important;
	letter-spacing: 0;
}

.sar-booking-group .short-term-form .machuca-st-review-total strong {
	color: var(--wp--preset--color--text);
	font-size: var(--wp--preset--font-size--base);
	font-weight: 700;
	line-height: 1.1;
}

.sar-booking-group .short-term-form .machuca-st-review-message-toggle {
	display: inline;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--wp--preset--color--primary);
	font: inherit;
	font-weight: 700;
	line-height: inherit;
	text-decoration: underline;
	cursor: pointer;
}

.sar-booking-group .short-term-form .machuca-st-review-message-toggle:hover,
.sar-booking-group .short-term-form .machuca-st-review-message-toggle:focus {
	color: var(--wp--preset--color--primary-soft);
}

/* Now sits under the total, moved there by showST-rental.js. It keeps the note
   type it always had (see .machuca-st-review-deposit-note below) and gains a
   hairline above, so it reads as a note ABOUT the total rather than another
   line IN it — the deposit is a hold, not a charge, and the total has to stay
   equal to what is actually taken. It used to sit after the message field, in
   the run of small print, where two separate reviews reported the hold as
   undisclosed. */
/* The optional message, between the stay and the money. "Optional" is a badge
   next to the label rather than words inside it, so the field reads at a glance
   as something the guest may skip — it was moved out of step 1 so nothing
   blocked them reaching the review, and arriving unmarked here would undo that. */
.sar-booking-group .short-term-form .machuca-st-review-message-field {
	/* Room above so it reads as its own step after the booking summary, rather
	   than as a field hanging off the bottom of it. */
	margin: var(--wp--preset--spacing--40) 0 var(--wp--preset--spacing--20);
}

/* Label and placeholder at note scale. It is an optional aside between the
   stay and the money, so it should not carry the weight of the headings around
   it — at body size it read like another required section. */
.sar-booking-group .short-term-form .machuca-st-review-message-field label {
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 600;
}

.sar-booking-group .short-term-form .machuca-st-review-message-field textarea {
	font-size: var(--wp--preset--font-size--xs);
}

.sar-booking-group .short-term-form .machuca-st-review-message-field textarea::placeholder {
	font-size: var(--wp--preset--font-size--xs);
	opacity: 0.7;
}

/* Bracketed, lighter and quieter than the label it follows. Bare and at the
   label's own weight it read as a second word of the heading — "Message to the
   host Optional" — rather than as a note about it. Both stay types use it. */
.sar-booking-group .short-term-form .machuca-st-optional-badge,
.sar-booking-group .lt-booking-form .machuca-st-optional-badge {
	margin-left: 4px;
	color: var(--wp--preset--color--text-muted) !important;
	font-size: var(--wp--preset--font-size--xs) !important;
	font-weight: 400 !important;
	font-style: normal;
	opacity: 0.85;
	text-transform: none;
	letter-spacing: 0;
}

/* The money half of the review, once the message has been moved above it. */
.sar-booking-group .lt-booking-form .lt-summary-money {
	display: block;
	width: 100%;
	margin-top: 0;
}

/* Long stay's message field, which stays where Gravity Forms puts it. Same scale and
   spacing as short stay's, restated at Gravity Forms depth for the reason given
   beside .lt-page1-payment-plan. */
.sar-booking-group .lt-booking-form .gfield.lt-guest-message {
	margin: var(--wp--preset--spacing--30) 0 var(--wp--preset--spacing--40) !important;
}

.sar-booking-group .lt-booking-form .gfield.lt-guest-message .gfield_label,
.sar-booking-group .lt-booking-form .gfield.lt-guest-message label {
	font-size: var(--wp--preset--font-size--xs) !important;
	font-weight: 600 !important;
}

.sar-booking-group .lt-booking-form .gfield.lt-guest-message textarea,
.sar-booking-group .lt-booking-form .gfield.lt-guest-message textarea::placeholder {
	font-size: var(--wp--preset--font-size--xs) !important;
}

/* The deposit is disclosed ONCE, in the review step, where the dates exist and
   it can name a real amount. The paragraph is injected from a placeholder in
   the form markup, so without this it also showed on the booking card — the
   dateless policy sentence, before the guest has committed to anything, in the
   step whose job is choosing a stay. Hidden wherever it has not been placed in
   the review step, which also removes the flash before the script moves it. */
.sar-booking-group .short-term-form .machuca-st-review-after-cta {
	display: none;
}

.sar-booking-group .short-term-form .wpbc_wizard_step2 .machuca-st-review-after-cta {
	display: flex;
	flex-direction: column;
	gap: 8px;
	width: 100%;
	margin: 10px 0 var(--wp--preset--spacing--20);
	padding-top: 10px;
	border-top: 1px solid var(--wp--preset--color--border);
	text-align: left;
}

.sar-booking-group .short-term-form .machuca-st-review-deposit-note {
	margin: 0;
	color: var(--wp--preset--color--text-muted);
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 400;
	line-height: 1.45;
	text-align: left;
}

/* Own listing: the Review/submit buttons render disabled (ST via
   showST-rental.js, LT via gform_next_button) with this note directly
   below them — informational, not an error. */
.sar-booking-group .machuca-own-listing-note {
	margin: 0 !important;
	color: #92a69e !important;
	font-size: var(--wp--preset--font-size--sm) !important;
	line-height: 1.45 !important;
	text-align: center !important;
	width: 100%;
	border: 1px solid #92a69e !important;
	padding: 12px;
	border-radius: 8px;
}

/* LT only: .gform_page_footer is a flex column whose gap already spaces the
   footer contents — pull the own-listing note back toward the button. The ST
   note shares .wpbc__field with its button directly, so it takes no margin.
   The number tracks that gap: it cancels all but ~10px of it, so raising the
   gap to separate Back from the primary action has to be cancelled here too or
   this note drifts away from the button it belongs to. */
.sar-booking-group .lt-booking-form .machuca-own-listing-note {
	margin: -24px 0 0 !important;
}

.sar-booking-group .machuca-btn-locked {
	pointer-events: none !important;
	opacity: 0.45 !important;
	cursor: default !important;
}

.sar-booking-group .lt-booking-form .gform_page_footer input[disabled],
.sar-booking-group .lt-booking-form .gform_page_footer button[disabled],
.sar-booking-group .lt-booking-form .gform_footer input[disabled],
.sar-booking-group .lt-booking-form .gform_footer button[disabled] {
	opacity: 0.45 !important;
	cursor: default !important;
	pointer-events: none !important;
}

.sar-booking-group .short-term-form .machuca-st-review-snapshot-field {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	margin: -1px !important;
	padding: 0 !important;
	border: 0 !important;
	clip: rect(0 0 0 0) !important;
	clip-path: inset(50%) !important;
	overflow: hidden !important;
	white-space: nowrap !important;
}

.sar-booking-group .short-term-form #booking-form-total {
	margin-top: var(--wp--preset--spacing--20);
}

.sar-booking-group .short-term-form #booking-form-total .wpbc__row {
	font-size: var(--wp--preset--font-size--base);
	font-weight: 700;
}

/* WPBC's own cell margin left a gap between the total and the note captioning
   it — the two belong together. */
.sar-booking-group .short-term-form #booking-form-total .wpbc__field {
	margin-bottom: 0;
}

.sar-booking-group .short-term-form .machuca-st-lodging-total {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 1px;
	line-height: 1.25;
}

.sar-booking-group .short-term-form .machuca-st-lodging-price-line {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	justify-content: flex-end;
	white-space: nowrap;
}

.sar-booking-group .short-term-form .machuca-st-lodging-original {
	color: var(--wp--preset--color--text-muted);
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 600;
	text-decoration: line-through;
	text-decoration-thickness: 1.5px;
}

.sar-booking-group .short-term-form .machuca-st-lodging-current {
	color: var(--wp--preset--color--text);
	font-size: var(--wp--preset--font-size--base);
}

.sar-booking-group .short-term-form .machuca-st-lodging-discount-note {
	display: block;
	margin-top: 1px;
	margin-bottom: -3px;
	color: var(--wp--preset--color--text-muted);
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 500;
	line-height: 1.2;
	text-align: left;
	white-space: normal;
}

/* The rule name now runs on with the percentage instead of stacking under it —
   see the single-line render in showST-rental.js. Any span left inside stays
   inline so nothing re-introduces the break. */
.sar-booking-group .short-term-form .machuca-st-lodging-discount-note span {
	display: inline;
}

.sar-booking-group .short-term-form .machuca-st-discount-sep {
	margin: 0 5px;
	opacity: 0.55;
}

/* Two rules: percentage on its line, the names together on the next. Left
   inline they broke wherever the width ran out, which split the pair rather
   than the phrase. */
.sar-booking-group .short-term-form .machuca-st-lodging-discount-note.has-two-rules span {
	display: block;
}

.sar-booking-group .short-term-form .machuca-st-wpbc-total-source {
	display: none !important;
}

.sar-booking-group .short-term-form .machuca-st-total-display {
	display: inline-flex;
	justify-content: flex-end;
}

.sar-booking-group .short-term-form .machuca-st-total-price-stack {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	line-height: 1.2;
}

.sar-booking-group .short-term-form .machuca-st-total-original {
	color: var(--wp--preset--color--text-muted);
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 600;
	text-decoration: line-through;
	text-decoration-thickness: 1.5px;
}

.sar-booking-group .short-term-form .machuca-st-total-current {
	color: var(--wp--preset--color--text);
	font-size: var(--wp--preset--font-size--base);
}

/* The class is chained 6× to reach specificity (0,6,0). GF Orbital's button
   resets use !important AT HIGH SPECIFICITY — e.g. its button::after rule is
   (0,5,2) — so a low-specificity !important loses the tie. (0,6,x) out-specifies
   it. Chaining the icon's own class keeps this working in ST + the modal too
   (no dependency on GF's wrapper ancestry). */
.machuca-st-fee-help.machuca-st-fee-help.machuca-st-fee-help.machuca-st-fee-help.machuca-st-fee-help.machuca-st-fee-help {
	position: relative !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	flex: 0 0 auto !important;
	width: 17px !important;
	height: 17px !important;
	min-width: 0 !important;
	min-height: 17px !important;
	max-height: 17px !important;
	margin: 0 0 0 4px !important;
	padding: 0 !important;
	border: 1px solid var(--wp--preset--color--border-strong) !important;
	border-radius: 999px !important;
	background: var(--wp--preset--color--surface) !important;
	box-shadow: none !important;
	color: var(--wp--preset--color--text-muted) !important;
	font-family: var(--wp--preset--font-family--sans) !important;
	font-size: 11px !important;
	font-weight: 700 !important;
	line-height: 1 !important;
	vertical-align: middle !important;
	overflow: visible !important;
	cursor: help !important;
	transform: none !important;
	box-sizing: border-box !important;
	appearance: none !important;
	-webkit-appearance: none !important;
	font-style: normal !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	text-shadow: none !important;
	text-decoration: none !important;
	outline: none !important;
}

/* EVERY property is !important: GF Orbital resets button::after inside
   .gform_wrapper (content + box + typography), property-by-property. Anything
   left without !important — like the box background/border/shadow — gets wiped,
   which is why the tooltip showed text but no box. Lock the whole surface. */
.machuca-st-fee-help.machuca-st-fee-help.machuca-st-fee-help.machuca-st-fee-help.machuca-st-fee-help.machuca-st-fee-help::after {
	content: attr(data-tooltip) !important;
	display: block !important;
	position: absolute !important;
	z-index: 20 !important;
	left: 50% !important;
	right: auto !important;
	top: auto !important;
	bottom: calc(100% + 8px) !important;
	width: min(230px, 70vw) !important;
	max-width: none !important;
	height: auto !important;
	margin: 0 !important;
	padding: var(--wp--preset--spacing--30) !important;
	border: 1px solid var(--wp--preset--color--border) !important;
	border-radius: 8px !important;
	background: var(--wp--preset--color--surface) !important;
	box-shadow: 0 8px 32px rgba(31,31,31,0.12) !important;
	box-sizing: border-box !important;
	color: var(--wp--preset--color--text) !important;
	font-family: var(--wp--preset--font-family--sans) !important;
	font-size: var(--wp--preset--font-size--xs) !important;
	font-weight: 500 !important;
	font-style: normal !important;
	line-height: 1.35 !important;
	text-align: left !important;
	text-transform: none !important;
	text-shadow: none !important;
	white-space: normal !important;
	letter-spacing: normal !important;
	text-indent: 0 !important;
	opacity: 0 !important;
	pointer-events: none !important;
	transform: translate(-50%, 4px) !important;
	transition: opacity 180ms ease-out, transform 180ms ease-out !important;
}

/* ── Help bubbles owned by their block, not by the ? ────────────────────────
   Inside the booking card the ? sits near the right edge, and a 230px bubble
   centred on a 17px button hangs off the viewport: the page grows sideways and
   a white strip runs down the whole document. These bubbles are therefore
   drawn by the note paragraph / callout box itself (full width, centred on it,
   never wider than it), while the button keeps only its aria-label. Opening
   still follows the same two signals as the button's own bubble: hover, or the
   .machuca-help-open class the site-wide click toggle sets. */
/* !important because these notes also live inside Gravity Forms wrappers, whose
   framework reset (`all: unset`, single-class specificity, loaded last) would
   otherwise drop this back to static and leave the bubble anchored to some
   ancestor further up the page. */
.machuca-note-help {
	position: relative !important;
}

/* The trigger inside such a block must not draw a second (empty) bubble.
   Chained past the six-class specificity of the button's own ::after rule. */
.machuca-note-help .machuca-st-fee-help.machuca-st-fee-help.machuca-st-fee-help.machuca-st-fee-help.machuca-st-fee-help.machuca-st-fee-help::after {
	content: none !important;
	display: none !important;
}

.machuca-note-help[data-tooltip]::after {
	content: attr(data-tooltip);
	position: absolute;
	left: 50%;
	bottom: calc(100% + 8px);
	z-index: 20;
	width: min(230px, 100%);
	box-sizing: border-box;
	padding: var(--wp--preset--spacing--30);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 8px;
	background: var(--wp--preset--color--surface);
	box-shadow: 0 8px 32px rgba(31, 31, 31, 0.12);
	color: var(--wp--preset--color--text);
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 500;
	line-height: 1.35;
	text-align: left;
	white-space: normal;
	opacity: 0;
	pointer-events: none;
	transform: translate(-50%, 4px);
	transition: opacity 180ms ease-out, transform 180ms ease-out;
}

.machuca-note-help[data-tooltip]:has(.machuca-st-fee-help:hover)::after,
.machuca-note-help[data-tooltip]:has(.machuca-st-fee-help.machuca-help-open)::after {
	opacity: 1;
	transform: translate(-50%, 0);
}

/* Open on hover, on keyboard focus, OR on the click-toggled class
   (lt-search-form.js, site-wide).

   :focus-visible rather than plain :focus — that distinction is the whole
   reason the bubble used to stick open after a click. A mouse click focuses the
   button but does NOT match :focus-visible, so the toggle stays in charge for
   pointer and touch; a Tab lands on it and matches, so a keyboard user sees the
   explanation without having to guess that Enter opens something. Before this,
   hover and click both worked and the keyboard saw nothing at all. */
.machuca-st-fee-help.machuca-st-fee-help.machuca-st-fee-help.machuca-st-fee-help.machuca-st-fee-help.machuca-st-fee-help:hover::after,
.machuca-st-fee-help.machuca-st-fee-help.machuca-st-fee-help.machuca-st-fee-help.machuca-st-fee-help.machuca-st-fee-help:focus-visible::after,
.machuca-st-fee-help.machuca-st-fee-help.machuca-st-fee-help.machuca-st-fee-help.machuca-st-fee-help.machuca-st-fee-help.machuca-help-open::after {
	opacity: 1 !important;
	transform: translate(-50%, 0) !important;
}

.machuca-st-payment-summary {
	display: block;
	width: 100%;
	box-sizing: border-box;
	margin: var(--wp--preset--spacing--20) 0 var(--wp--preset--spacing--20);
	padding: 0 var(--wp--preset--spacing--30);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 8px;
	background: var(--wp--preset--color--background);
	color: var(--wp--preset--color--text);
}

.machuca-st-payment-summary summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--wp--preset--spacing--30);
	width: 100%;
	box-sizing: border-box;
	padding: 11px 0;
	color: var(--wp--preset--color--primary);
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 700;
	list-style: none;
	cursor: pointer;
}

.machuca-st-payment-summary summary::-webkit-details-marker {
	display: none;
}

.machuca-st-payment-summary summary::after {
	content: "+";
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	width: 19px;
	height: 19px;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 999px;
	color: var(--wp--preset--color--text-muted);
	font-size: var(--wp--preset--font-size--xs);
	line-height: 1;
}

.machuca-st-payment-summary[open] summary::after {
	content: "-";
}

.machuca-st-payment-summary__body {
	padding: 0 0 12px;
}

.machuca-st-payment-summary__row {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: var(--wp--preset--spacing--30);
	padding: 3px 0;
	font-size: 13px;
	line-height: 1.3;
}

/* Label takes the row width so it doesn't wrap; the amount sizes to its short
   value instead of a fixed 90px column (which forced a 50/50 split + mid gap).
   Shared by ST + LT + the modal. ":first-child" (not span) so it also covers
   ST's accommodation row, whose label is a <div>. */
.machuca-st-payment-summary__row > :first-child {
	flex: 1 1 auto;
	min-width: 0;
}

.machuca-st-payment-summary__row small,
.machuca-st-payment-summary__discount {
	color: var(--wp--preset--color--text-muted);
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 500;
}

.machuca-st-payment-summary__discount {
	display: flex;
	flex-direction: column;
	gap: 1px;
	margin: 0;
	line-height: 1.25;
}

.machuca-st-payment-summary__discount span {
	color: var(--wp--preset--color--text);
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 600;
}

.machuca-st-payment-summary__discount small {
	color: var(--wp--preset--color--text-muted);
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 500;
}

.machuca-st-payment-summary__amount {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	flex: 0 0 auto;
	min-width: 0;
	text-align: right;
	white-space: nowrap;
}
.machuca-st-payment-summary__row--included {
	color: #177d4f;
}

.machuca-st-payment-summary__original {
	color: var(--wp--preset--color--text-muted);
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 600;
	text-decoration: line-through;
	text-decoration-thickness: 1.5px;
}

.machuca-st-payment-summary__row--total {
	margin-top: 5px;
	padding-top: 7px;
	border-top: 1px solid var(--wp--preset--color--border);
	font-size: var(--wp--preset--font-size--base);
	font-weight: 700;
}

/* The contribution is included in the public price, so it is explained below
   the breakdown rather than rendered as a charge line inside it.
   The ? is pulled out of flow into the box's own corner (the LT card has done
   this since it was built): as a flex/inline item it competed for width and
   dropped onto a second line of its own on narrow screens. */
/* Long-stay restatements. See the note beside .lt-page1-payment-plan: inside a
   Gravity Forms wrapper a one-class rule is stripped by the framework reset, so
   anything the line needs has to be said again at this depth. */
.sar-booking-group .lt-booking-form .machuca-community-line,
.lt-summary-box .machuca-community-line,
.lt-schedule-dialog .machuca-community-line {
	display: flex !important;
	align-items: baseline !important;
	gap: 4px !important;
	margin: 8px 0 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
	color: #177d4f !important;
	font-size: 12px !important;
	font-weight: 600 !important;
	line-height: 1.35 !important;
	text-align: left !important;
}

.sar-booking-group .lt-booking-form .machuca-community-line > .machuca-community-line__text,
.lt-summary-box .machuca-community-line > .machuca-community-line__text,
.lt-schedule-dialog .machuca-community-line > .machuca-community-line__text {
	flex: 0 1 auto !important;
	font-size: 12px !important;
	font-weight: 600 !important;
	line-height: 1.35 !important;
}

.sar-booking-group .lt-booking-form .machuca-community-line strong,
.lt-summary-box .machuca-community-line strong,
.lt-schedule-dialog .machuca-community-line strong {
	font-size: 12px !important;
	font-weight: 800 !important;
}

.sar-booking-group .lt-booking-form .machuca-community-line[hidden],
.lt-summary-box .machuca-community-line[hidden] {
	display: none !important;
}

/* The Community Contribution, as the last LINE of the price breakdown.
   It used to be a bordered, centred callout sitting between the breakdown and
   the total, which gave money already counted above it the visual weight of a
   fourth charge arriving after the itemization had closed. Now it is a row like
   the ones above it — same alignment, same scale — carrying only the brand
   green so it is findable by anyone scanning what they are paying for. No box,
   no fill, and nothing that competes with the prices. */
.machuca-community-line {
	position: relative;
	display: flex;
	align-items: baseline;
	gap: 4px;
	/* Set apart from the priced rows above: it is the one line that names money
	   already inside them rather than a charge of its own. */
	margin: 12px 0 0;
	padding: 0;
	border: 0;
	background: transparent;
	color: #177d4f;
	font-size: 13px;
	font-weight: 600;
	line-height: 1.35;
	text-align: left;
}

/* NOT flex:1. Stretching the text pushed the ? out to the far right of the
   row, where it sat closer to the line above than to the words it explains and
   read as belonging to that one. It follows the text immediately, the way the
   cleaning-fee helper does. */
.machuca-community-line > .machuca-community-line__text {
	flex: 0 1 auto;
}

/* In flow, not absolutely positioned: the line is no longer a fixed-height box
   with room to hang a control in, and the ? belongs beside the words it
   explains. */
.machuca-community-line > .machuca-community-line__help {
	flex: 0 0 auto;
}

/* The display above would otherwise beat the hidden attribute the booking cards
   use to drop the line when there is nothing to contribute. */
.machuca-community-line[hidden] {
	display: none !important;
}

.machuca-community-line strong {
	font-weight: 800;
}

/* The total row has exactly two renderers — machuca-st-bridge.php's payment step
   and showST-rental.js's review step — and both are the same shape: a one-line
   label against an amount block that grows taller whenever a struck-through
   original sits with the final figure. flex-start pinned the label to the top of
   that taller block, so the two halves of one row stopped looking like one row.
   Centering is correct for both, and there is no third context to protect. */
/* Separated from the price details by space, not a rule: the details sit in
   their own bordered box, so a line under it drew the same boundary twice. */
.machuca-booking-price-total {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--wp--preset--spacing--30);
	margin-top: var(--wp--preset--spacing--30);
	padding-top: 0;
	border-top: 0;
	font-size: var(--wp--preset--font-size--base);
	font-weight: 700;
}

.machuca-booking-price-total .machuca-st-payment-summary__amount {
	margin-left: auto;
}

/* Caption of the Booking total directly above it — same treatment as the
   booking card's .machuca-st-hold-note, not a standalone warning line. */
.machuca-st-payment-primary-note {
	margin: 0 0 var(--wp--preset--spacing--20);
	color: var(--wp--preset--color--text-muted);
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 500;
	line-height: 1.45;
	text-align: center;
}

.machuca-st-payment-primary-note .machuca-st-fee-help {
	vertical-align: middle;
}

.machuca-st-payment-secondary-note {
	margin: var(--wp--preset--spacing--20) 0 0;
	padding-top: var(--wp--preset--spacing--20);
	border-top: 1px solid var(--wp--preset--color--border);
	color: var(--wp--preset--color--text);
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 400;
	line-height: 1.55;
	text-align: left;
}

.short-term-form.machuca-st-redirecting-to-stripe .wpbc_after_booking_thank_you_section .wpbc_ty__container,
.short-term-form .wpbc_after_booking_thank_you_section.machuca-st-redirecting-to-stripe .wpbc_ty__container {
	display: none !important;
}

.machuca-st-stripe-redirect-note {
	margin: var(--wp--preset--spacing--30) 0;
	color: var(--wp--preset--color--text);
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 600;
	line-height: 1.4;
	text-align: center;
}

.machuca-st-stripe-redirect-note--error {
	color: var(--wp--preset--color--accent);
}

.stripe_v3_div.wpbc-payment-form {
	width: 100%;
	box-sizing: border-box;
	text-align: center !important;
}

.stripe_v3_div.wpbc-payment-form .wpbc_button_gw_stripe {
	display: flex !important;
	flex-direction: row !important;
	align-items: center !important;
	justify-content: center !important;
	width: 100%;
	min-height: 52px;
	box-sizing: border-box;
	margin: var(--wp--preset--spacing--30) auto 0 !important;
	padding: 0 1em !important;
	transform: none !important;
}

.stripe_v3_div.wpbc-payment-form .wpbc_button_gw_stripe:hover,
.stripe_v3_div.wpbc-payment-form .wpbc_button_gw_stripe:focus {
	transform: none !important;
}


/* Long term booking form
----------------------------- */


.sar-booking-group .lt-booking-form .lt-price-breakdown p {
	margin-bottom:0;
	font-size: 15px;
}

.sar-booking-group .lt-booking-form .lt-price-breakdown input {
	font-size: 15px;
}

.sar-booking-group .lt-booking-form hr {
	margin: 1em auto;
}

.sar-booking-group .lt-booking-form .lt-search-form-footnote {
	text-align: justify;
}

.sar-booking-group .lt-booking-form .last-before-footnote {
	margin: 0 auto 1em;
}

.sar-booking-group .lt-booking-form .erp-optin {
	font-size: 13px !important;
    width: 100%;
}

.sar-booking-group .lt-booking-form .erp-optin a:not(:empty) {
	border: 1px solid;
    color: #008b5e;
    border-radius: 3px;
    width: 100%;
    display: block;
    padding: 5px;
}

.lt-booking-block {
	display: flex;	
	flex-wrap: wrap;
	justify-content: space-between;
}

.lt-booking-block p {
    margin-bottom: .5rem;
    flex-basis: 49%;
}

.lt-booking-block p:last-child {
    flex-basis: 100%;
}

.lt-booking-block p:first-child input {
	padding-right: 5%;
}

.lt-booking-block label, .credit_card_details label {
  display: block;
  font-weight: 700;
  color: #333;
  font-size: 1rem;
}


.lt-booking-block input[type="date"],
.lt-booking-block select,
.lt-booking-block textarea {
    width: 100%;
    padding: 0.75rem 0;
    border-radius: 10px;
    border-bottom: 1px solid #ccc;
    font-size: .9rem;
    background-color: white;
    transition: border-color 0.2s, box-shadow 0.2s;
    text-align: center;
    min-height: 42px;
}

.lt-booking-block input[type="date"]:focus,
.lt-booking-block select:focus,
.lt-booking-block textarea:focus {
  border-color: #333;
}

.lt-booking-block textarea {
    text-align: left;
    padding-left: .75rem;
    padding-right: .75rem;
}

.lt-booking-block select {
   	appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg%20fill='%23333'%20height='24'%20viewBox='0%200%2024%2024'%20width='24'%20xmlns='http://www.w3.org/2000/svg'%3E%3Cpath%20d='M7%2010l5%205%205-5z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right .3rem center;
    background-size: 1rem;
    padding-right: .3rem;
    cursor: pointer;
}

/* ── Single-rental: LT GF booking form ──────────────────────────────────────
   Scope: .sar-booking-group .lt-booking-form
   GF "orbital" theme is active — override its CSS variables first,
   then override specific properties with !important where needed.
   ────────────────────────────────────────────────────────────────────────── */

/* Override GF theme CSS variables at the wrapper so its own rules pick up our tokens.
   Also strip the orbital theme's card appearance (bg, radius, shadow, border). */
.sar-booking-group .lt-booking-form .gform_wrapper {
	--gf-color-primary:         #013b28;
	--gf-color-primary-rgb:     1, 59, 40;
	--gf-color-primary-contrast:#fff;
	--gf-radius:                8px;
	--gf-ctrl-border-color:     #e6e0d6;
	margin: 0 !important;
	padding: 0 !important;
	max-width: none !important;
	background: transparent !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	border: none !important;
}

/* Force form and body to simple block — overrides any GF orbital grid/flex */
.sar-booking-group .lt-booking-form form {
	display: block !important;
	position: static !important;
	background: transparent !important;
	border: none !important;
	padding: 0 !important;
	margin: 0 !important;
}
.sar-booking-group .lt-booking-form .gform-body,
.sar-booking-group .lt-booking-form .gform_body {
	display: block !important;
	position: static !important;
	width: 100% !important;
	padding: 0 !important;
	margin: 0 !important;
}

/* Hide the redundant form heading — context is clear from the tab + info bar */
.sar-booking-group .lt-booking-form .gform_heading { display: none !important; }

/* Field list: wrapping flex so GF half/third layout classes create row groupings */
.sar-booking-group .lt-booking-form .gform_fields {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 8px !important;
	padding: 0 !important;
	margin: 0 !important;
	list-style: none !important;
	align-items: stretch !important;
}

/* Each field: label above input. flex sizing so width variants below override correctly. */
.sar-booking-group .lt-booking-form .gfield {
	flex: 0 0 100% !important;
	max-width: 100% !important;
	display: flex !important;
	flex-direction: column !important;
	align-items: stretch !important;
	margin: 0 !important;
	padding: 0 !important;
	box-sizing: border-box !important;
}

/* ── Row layout: label left / control right ─────────────────────────────────
   Dates, months, adults, children and the price lines each form a full-width
   row (the form's half/third width variants are intentionally flattened). */
.sar-booking-group .lt-booking-form .gfield--width-half,
.sar-booking-group .lt-booking-form .gfield--width-third {
	flex: 0 0 100% !important;
	max-width: 100% !important;
}
.sar-booking-group .lt-booking-form .gfield.start-date,
.sar-booking-group .lt-booking-form .gfield.end-date,
.sar-booking-group .lt-booking-form .gfield.months,
.sar-booking-group .lt-booking-form .gfield[id$="_11"],
.sar-booking-group .lt-booking-form .gfield[id$="_12"],
.sar-booking-group .lt-booking-form .gfield.lt-adults,
.sar-booking-group .lt-booking-form .gfield.lt-children,
.sar-booking-group .lt-booking-form .gfield.lt-infants,
.sar-booking-group .lt-booking-form .gfield.lt-pet,
.sar-booking-group .lt-booking-form .gfield--type-product,
.sar-booking-group .lt-booking-form .gfield--type-total {
	flex-direction: row !important;
	align-items: center !important;
	justify-content: space-between !important;
	gap: 12px !important;
}
/* Row labels: fixed left column; un-clip GF's hidden_label (dates/months). */
.sar-booking-group .lt-booking-form .gfield.start-date .gfield_label,
.sar-booking-group .lt-booking-form .gfield.end-date .gfield_label,
.sar-booking-group .lt-booking-form .gfield.months .gfield_label,
.sar-booking-group .lt-booking-form .gfield[id$="_11"] .gfield_label,
.sar-booking-group .lt-booking-form .gfield[id$="_12"] .gfield_label,
.sar-booking-group .lt-booking-form .gfield.lt-adults .gfield_label,
.sar-booking-group .lt-booking-form .gfield.lt-children .gfield_label,
.sar-booking-group .lt-booking-form .gfield.lt-infants .gfield_label,
.sar-booking-group .lt-booking-form .gfield.lt-pet .gfield_label,
.sar-booking-group .lt-booking-form .gfield--type-product .gfield_label,
.sar-booking-group .lt-booking-form .gfield--type-total .gfield_label {
	flex: 0 0 50% !important;
	margin-bottom: 0 !important;
	position: static !important;
	width: auto !important;
	height: auto !important;
	clip: auto !important;
	clip-path: none !important;
	overflow: visible !important;
	line-height: 1.3 !important;
}
.sar-booking-group .lt-booking-form .gfield.start-date .ginput_container,
.sar-booking-group .lt-booking-form .gfield.end-date .ginput_container,
.sar-booking-group .lt-booking-form .gfield.months .ginput_container,
.sar-booking-group .lt-booking-form .gfield[id$="_11"] .ginput_container,
.sar-booking-group .lt-booking-form .gfield[id$="_12"] .ginput_container,
.sar-booking-group .lt-booking-form .gfield.lt-adults .ginput_container,
.sar-booking-group .lt-booking-form .gfield.lt-children .ginput_container,
.sar-booking-group .lt-booking-form .gfield.lt-infants .ginput_container,
.sar-booking-group .lt-booking-form .gfield.lt-pet .ginput_container {
	flex: 1 1 auto !important;
	margin: 0 !important;
	min-width: 0 !important;
}

/* ── Pet switch (pure CSS on the GF checkbox) ────────────────────────────────
   GF renders checkbox fields as <fieldset> + <legend>: a legend only joins
   normal (flex) layout when floated, and fieldsets default to
   min-inline-size:min-content — both undone here so the shared row rule
   above actually applies. And since browsers don't render pseudo-elements
   on <input>, the switch is drawn on the choice label: the native box is
   visually hidden but keeps focus + native toggling. */
.sar-booking-group .lt-booking-form .gfield.lt-pet {
	min-inline-size: 0 !important;
	border: none !important;
	/* 7px top+bottom evens the row out with its stepper neighbors (their ±
	   buttons force 38px rows; the switch alone is 24px). */
	padding: 7px 0 !important;
}
.sar-booking-group .lt-booking-form .gfield.lt-pet .gfield_label {
	float: left !important; /* releases the <legend> into the flex row */
}
.sar-booking-group .lt-booking-form .gfield.lt-pet .ginput_container_checkbox,
.sar-booking-group .lt-booking-form .gfield.lt-pet .gfield_checkbox,
.sar-booking-group .lt-booking-form .gfield.lt-pet .gchoice {
	display: flex !important;
	justify-content: flex-end !important;
	align-items: center !important;
	margin: 0 !important;
}
.sar-booking-group .lt-booking-form .gfield.lt-pet input[type="checkbox"] {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	margin: -1px !important;
	opacity: 0 !important;
	pointer-events: none !important;
}
/* The label IS the switch; its "Yes" text is collapsed via font-size 0. */
.sar-booking-group .lt-booking-form .gfield.lt-pet .gchoice label {
	position: relative !important;
	display: inline-block !important;
	width: 44px !important;
	min-width: 44px !important;
	max-width: 44px !important;
	height: 24px !important;
	margin: 0 !important;
	padding: 0 !important;
	font-size: 0 !important;
	line-height: 0 !important;
	border: 1px solid #e6e0d6 !important;
	border-radius: 99px !important;
	background: #efece6 !important;
	cursor: pointer !important;
	transition: background-color 0.15s ease, border-color 0.15s ease !important;
}
.sar-booking-group .lt-booking-form .gfield.lt-pet .gchoice label::before {
	content: '';
	position: absolute;
	top: 2px;
	left: 2px;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25);
	transition: left 0.15s ease;
}
.sar-booking-group .lt-booking-form .gfield.lt-pet input[type="checkbox"]:checked + label {
	background: var(--wp--preset--color--primary, #013b28) !important;
	border-color: var(--wp--preset--color--primary, #013b28) !important;
}
.sar-booking-group .lt-booking-form .gfield.lt-pet input[type="checkbox"]:checked + label::before {
	left: 22px;
}
.sar-booking-group .lt-booking-form .gfield.lt-pet input[type="checkbox"]:focus-visible + label {
	outline: 2px solid var(--wp--preset--color--primary, #013b28);
	outline-offset: 2px;
}

/* ── Steppers — LT: server-rendered by machuca_lt_render_steppers()
   (machuca-lt-form.php); ST: selects enhanced by enhanceStGuestControls()
   (showST-rental.js) — hidden select + .machuca-stepper-value span. ── */
/* Airbnb-style stepper: floating centered number, small circular ± buttons.
   Heavy !important needed — GF Orbital themes every <button> inside the form,
   and the site-wide `button` rule paints anything it lets go dark grey.

   Keyed on .lt-stepper alone. That class is ours and exists nowhere else
   (machuca_lt_render_steppers in PHP, stepperifyStSelect in showST-rental.js),
   so it identifies the component completely — while every ancestor these rules
   used to require (.sar-booking-group, .lt-booking-form, .short-term-form) was
   an assumption about WHERE the markup sits. The long-stay fields get moved
   into the Dates/Guests pills, Gravity Forms re-renders the form between
   pages, and the card turns into a sheet on mobile; each of those broke the
   styling for as long as the selector depended on the surroundings. */
.lt-stepper {
	position: relative !important;
	display: flex !important;
	align-items: center !important;
	justify-content: flex-end !important;
	gap: 4px !important;
	border: none !important;
	background: transparent !important;
}
/* The class is repeated to outrank the generic long-stay field rule
   (`.sar-booking-group .lt-booking-form .ginput_container input[type="number"]`,
   3 classes, later in the file), which would otherwise make the stepper's
   number a full-width 48px control. Repetition rather than ancestors: the
   number must look the same wherever the field is mounted. */
.lt-stepper.lt-stepper.lt-stepper.lt-stepper input[type="number"],
.lt-stepper.lt-stepper.lt-stepper.lt-stepper .machuca-stepper-value {
	flex: 0 0 44px !important;
	width: 44px !important;
	height: 32px !important;
	border: none !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	text-align: center !important;
	font-size: 1rem !important;
	font-weight: 600 !important;
	color: #1f1f1f !important;
	padding: 0 !important;
	margin: 0 !important;
	min-width: 0 !important;
	-webkit-appearance: none !important;
	appearance: none !important;
	-moz-appearance: textfield !important;
}
.lt-stepper input[readonly] {
	cursor: default !important;
}
.lt-stepper .machuca-stepper-value {
	line-height: 32px !important;
}
/* The enhanced select stays in the form as the submitted control, unseen. */
.lt-stepper select.machuca-stepper-select {
	display: none !important;
}
.lt-stepper input::-webkit-inner-spin-button,
.lt-stepper input::-webkit-outer-spin-button {
	-webkit-appearance: none !important;
	display: none !important;
	margin: 0 !important;
}
.lt-stepper .lt-step {
	flex: 0 0 30px !important;
	width: 30px !important;
	height: 30px !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	border: 1px solid #e6e0d6 !important;
	border-radius: 8px !important;
	background: transparent !important;
	color: var(--wp--preset--color--primary) !important;
	font-size: 1rem !important;
	font-weight: 400 !important;
	line-height: 1 !important;
	padding: 0 !important;
	margin: 0 !important;
	box-shadow: none !important;
	min-width: 0 !important;
	cursor: pointer !important;
	transition: background 0.15s, border-color 0.15s !important;
}
.lt-stepper .lt-step:hover {
	background: var(--wp--preset--color--primary-faint) !important;
	border-color: var(--wp--preset--color--primary) !important;
	color: var(--wp--preset--color--primary) !important;
}
.lt-stepper .lt-step.is-capacity-disabled {
	position: relative;
	background: transparent !important;
	border-color: #e6e0d6 !important;
	color: var(--wp--preset--color--text-muted, #666) !important;
	cursor: not-allowed !important;
}
.lt-stepper .machuca-capacity-tooltip {
	position: absolute;
	top: calc(100% + 8px);
	right: -8px;
	bottom: auto;
	z-index: 20;
	width: max-content;
	max-width: 220px;
	padding: 7px 9px;
	border-radius: 6px;
	background: #1f1f1f;
	color: #fff;
	font-family: var(--wp--preset--font-family--sans, 'Sen', sans-serif);
	font-size: 12px;
	font-weight: 400;
	line-height: 1.35;
	opacity: 0;
	pointer-events: none;
	text-align: left;
	transform: translateY(-3px);
	transition: opacity 0.15s, transform 0.15s;
}
.lt-stepper .lt-step.is-capacity-disabled:not(.is-tooltip-dismissed):hover + .machuca-capacity-tooltip,
.lt-stepper .lt-step.is-capacity-disabled:not(.is-tooltip-dismissed):focus-visible + .machuca-capacity-tooltip,
.lt-stepper .lt-step.is-capacity-disabled.is-tooltip-open + .machuca-capacity-tooltip {
	opacity: 1;
	transform: translateY(0);
}

/* ── ST guest rows (Adults / Children / Infants / Pet) ──────────────────────
   Cells tagged by showST-rental.js: one full-width row each, label left /
   control right — mirroring the LT form. */
.sar-booking-group .short-term-form .machuca-st-reservation-fields .wpbc__field.machuca-st-guest-row {
	flex-basis: 100% !important;
	max-width: 100% !important;
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	align-items: center !important;
	justify-content: space-between !important;
	gap: 12px !important;
	text-align: left !important;
	min-width: 0;
}
.sar-booking-group .short-term-form .machuca-st-guest-row > l {
	flex: 0 0 50%;
	margin: 0;
	font-size: 0.875rem;
	font-weight: 600;
	color: #1f1f1f;
	line-height: 1.3;
}
.sar-booking-group .short-term-form .machuca-st-guest-row br {
	display: none;
}
.sar-booking-group .short-term-form .machuca-st-guest-row .lt-stepper {
	flex: 1 1 auto !important;
}

/* ── ST pet switch — same pattern as the LT form: the checkbox is visually
   hidden but keeps focus + native toggling, the label draws track + thumb
   (pseudo-elements don't render on <input>). ── */
.sar-booking-group .short-term-form input.machuca-switch-box {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	margin: -1px !important;
	opacity: 0 !important;
	pointer-events: none !important;
}
.sar-booking-group .short-term-form label.machuca-switch {
	position: relative !important;
	display: inline-block !important;
	width: 44px !important;
	min-width: 44px !important;
	max-width: 44px !important;
	height: 24px !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 1px solid #e6e0d6 !important;
	border-radius: 99px !important;
	background: #efece6 !important;
	cursor: pointer !important;
	transition: background-color 0.15s ease, border-color 0.15s ease !important;
	flex: 0 0 auto !important;
}
.sar-booking-group .short-term-form label.machuca-switch::before {
	content: '';
	position: absolute;
	top: 2px;
	left: 2px;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25);
	transition: left 0.15s ease;
}
.sar-booking-group .short-term-form input.machuca-switch-box:checked + label.machuca-switch {
	background: var(--wp--preset--color--primary, #013b28) !important;
	border-color: var(--wp--preset--color--primary, #013b28) !important;
}
.sar-booking-group .short-term-form input.machuca-switch-box:checked + label.machuca-switch::before {
	left: 22px;
}
.sar-booking-group .short-term-form input.machuca-switch-box:focus-visible + label.machuca-switch {
	outline: 2px solid var(--wp--preset--color--primary, #013b28);
	outline-offset: 2px;
}
/* Even the switch row out with its 38px stepper neighbors (switch = 24px). */
.sar-booking-group .short-term-form .machuca-st-guest-row:has(> label.machuca-switch) {
	padding: 7px 0 !important;
}

/* ── Booking-card pills (Dates / Guests) ────────────────────────────────────
   Same visual language as the search pills (shared .machuca-pill-trigger /
   -label / -summary), but the booking card is always narrow, so the panel is
   an in-flow accordion in every viewport — never the search bar's fixed
   dropdown. Built by buildBookingPills() in showLT-rental.js; the real GF
   fields live inside the panels and keep their lt-booking-form row styling. */
.sar-booking-group .machuca-booking-pills {
	flex: 0 0 100% !important;
	max-width: 100% !important;
	border: 1px solid #dde4df;
	border-radius: 12px;
	background: #fff;
	margin: 0 0 4px;
}
.sar-booking-group .machuca-booking-pills .machuca-pill {
	display: block;
	position: relative;
	border-bottom: 1px solid #dde4df;
}
.sar-booking-group .machuca-booking-pills .machuca-pill:last-child {
	border-bottom: none;
}
.sar-booking-group .machuca-booking-pills .machuca-pill-trigger {
	border-radius: 0;
	width: 100% !important;
	max-width: none !important;
	padding: 14px 16px !important;
}
.sar-booking-group .machuca-booking-pills .machuca-pill:first-child .machuca-pill-trigger {
	border-radius: 12px 12px 0 0;
}
.sar-booking-group .machuca-booking-pills .machuca-pill:last-child:not(.is-open) .machuca-pill-trigger {
	border-radius: 0 0 12px 12px;
}
.sar-booking-group .machuca-booking-pills .machuca-pill-panel {
	position: static !important;
	display: none;
	width: 100% !important;
	min-width: 0 !important;
	max-width: none !important;
	border: none !important;
	border-top: 1px solid #dde4df !important;
	border-radius: 0 0 12px 12px !important;
	box-shadow: none !important;
	padding: 6px 14px 14px !important;
	background: #fff;
}
.sar-booking-group .machuca-booking-pills .machuca-pill.is-open .machuca-pill-panel {
	display: block;
	overflow-y: auto;
	/* El scroll muere acá: llegar al final de la lista no sigue empujando la página
	   por detrás, que es lo que hacía perder de vista el formulario. */
	overscroll-behavior: contain;
}
/* The per-pill sheet chrome (title + ×) is never used now — on mobile the
   pills are in-flow accordions INSIDE the booking sheet (which owns the one ×
   and title), mirroring how the search modal stacks all its pills with one
   expanded. Kept hidden; the pill trigger is its own header. */
.sar-booking-group .machuca-booking-pills .machuca-sheet-head {
	display: none !important;
}

/* ── Mobile: booking pills as stacked cards (search-modal parity) ────────────
   The search's full-screen sheet rules (`.machuca-pill.is-open > .pill-panel {
   position:fixed;inset:0 }` and its flex footer) are UNSCOPED, so on phones
   they hijack the booking pills and blow their panel full-screen. Override at
   higher specificity so the booking pills expand IN-FLOW, and render each pill
   as its own card (beige collapsed → white open) like the search modal. */
@media (max-width: 959px) {
	.sar-booking-group .machuca-booking-pills {
		border: none !important;
		border-radius: 0 !important;
		background: transparent !important;
		margin: 0 0 4px !important;
	}
	.sar-booking-group .machuca-booking-pills .machuca-pill {
		display: block !important;
		margin: 0 0 10px !important;
		border: 1px solid var(--wp--preset--color--border-strong, #c8d4cf) !important;
		border-radius: 12px !important;
		background: var(--wp--preset--color--surface-muted, #f1efe9);
		overflow: hidden;
	}
	.sar-booking-group .machuca-booking-pills .machuca-pill:last-child {
		margin-bottom: 0 !important;
	}
	.sar-booking-group .machuca-booking-pills .machuca-pill.is-open {
		background: #fff;
		border-color: var(--wp--preset--color--primary, #013b28) !important;
	}
	.sar-booking-group .machuca-booking-pills .machuca-pill .machuca-pill-trigger {
		border-radius: 12px !important;
		background: transparent !important;
	}
	.sar-booking-group .machuca-booking-pills .machuca-pill.is-open .machuca-pill-trigger {
		border-radius: 12px 12px 0 0 !important;
	}
	/* Kill the leaked full-screen/flex-footer search rules: expand IN-FLOW as an
	   accordion card (display:block also neutralises the footer's margin-top:auto,
	   which only pins in a flex column). */
	.sar-booking-group .machuca-booking-pills .machuca-pill.is-open > .machuca-pill-panel {
		position: static !important;
		inset: auto !important;
		top: auto !important;
		left: auto !important;
		right: auto !important;
		bottom: auto !important;
		width: 100% !important;
		min-width: 0 !important;
		max-width: none !important;
		height: auto !important;
		max-height: none !important;
		z-index: auto !important;
		display: block !important;
		border: none !important;
		border-top: 1px solid #ece7dd !important;
		border-radius: 0 0 12px 12px !important;
		box-shadow: none !important;
		background: #fff !important;
		padding: 8px 14px 14px !important;
		overflow: visible !important;
	}
}
/* Start/End rows are hidden value carriers behind the joint calendar. The
   bare .machuca-dates-hidden-field hide rule loses to the 3-class
   `.sar-booking-group .lt-booking-form .gfield` display:flex — repeat it at
   winning specificity. They stay hidden even when errored: resurrecting raw
   red fields "that were never there" reads as a glitch — buildBookingPills
   surfaces a single .machuca-panel-error note in the panel instead. */
.sar-booking-group .lt-booking-form .gfield.machuca-dates-hidden-field {
	display: none !important;
}
.sar-booking-group .machuca-booking-pills .machuca-panel-error {
	margin: 0 0 10px;
	padding: 10px 12px;
	border: 1px solid #e6c9c5;
	border-radius: 8px;
	background: #fdf3f2;
	color: #b3261e;
	font-size: 13px;
}
@media (min-width: 960px) {
	/* The fee-incentive slot owns the panel's top-right corner (absolute,
	   max-width 42%) — keep the error note out of its lane. */
	.sar-booking-group .machuca-booking-pills .machuca-pill--bkdates .machuca-pill-panel .machuca-panel-error {
		margin-right: 45%;
	}
}
/* Attention pulse: Review tapped without dates (ST) — brief, not an error. */
.sar-booking-group .machuca-booking-pills .machuca-pill--attention {
	outline: 2px solid #b3261e;
	outline-offset: -2px;
	border-radius: 12px;
}
.sar-booking-group .machuca-booking-pills .machuca-pill--attention .machuca-pill-summary {
	color: #b3261e !important;
}
/* ≤959px: single-month calendar fills the panel — the base .machuca-rangecal
   width is the search's two-month 664px and would run off-screen. Desktop
   (≥960px) renders two months and keeps the base sizing inside its wide
   popover. */
@media (max-width: 959px) {
	.sar-booking-group .machuca-booking-pills .machuca-rangecal,
	.sar-booking-group .machuca-booking-pills .machuca-rangecal .ui-datepicker,
	.sar-booking-group .machuca-booking-pills .machuca-rangecal .ui-datepicker-calendar {
		width: 100% !important;
	}
}

/* Triggers read left-aligned (GF orbital centers button content). */
.sar-booking-group .machuca-booking-pills .machuca-pill-trigger {
	align-items: flex-start !important;
	text-align: left !important;
}

/* Pill labels carry the reservations-table icons (calendar / guests) so each
   field reads at a glance. Same masked SVGs as .reservation-date-range /
   .reservation-party. */
.sar-booking-group .machuca-booking-pills .machuca-pill-label::before {
	display: inline-block;
	box-sizing: border-box;
	width: 14px;
	height: 14px;
	margin-right: 6px;
	vertical-align: -2px;
	border: 0;
	background-color: currentColor;
	content: "";
	mask-repeat: no-repeat;
	mask-size: 14px 14px;
	-webkit-mask-repeat: no-repeat;
	-webkit-mask-size: 14px 14px;
}
.sar-booking-group .machuca-booking-pills .machuca-pill--bkdates .machuca-pill-label::before {
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'/%3E%3Cline x1='16' y1='2' x2='16' y2='6'/%3E%3Cline x1='8' y1='2' x2='8' y2='6'/%3E%3Cline x1='3' y1='10' x2='21' y2='10'/%3E%3Cline x1='8' y1='14' x2='8.01' y2='14'/%3E%3Cline x1='12' y1='14' x2='12.01' y2='14'/%3E%3Cline x1='16' y1='14' x2='16.01' y2='14'/%3E%3Cline x1='8' y1='18' x2='8.01' y2='18'/%3E%3Cline x1='12' y1='18' x2='12.01' y2='18'/%3E%3C/svg%3E");
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'/%3E%3Cline x1='16' y1='2' x2='16' y2='6'/%3E%3Cline x1='8' y1='2' x2='8' y2='6'/%3E%3Cline x1='3' y1='10' x2='21' y2='10'/%3E%3Cline x1='8' y1='14' x2='8.01' y2='14'/%3E%3Cline x1='12' y1='14' x2='12.01' y2='14'/%3E%3Cline x1='16' y1='14' x2='16.01' y2='14'/%3E%3Cline x1='8' y1='18' x2='8.01' y2='18'/%3E%3Cline x1='12' y1='18' x2='12.01' y2='18'/%3E%3C/svg%3E");
}
.sar-booking-group .machuca-booking-pills .machuca-pill--bkguests .machuca-pill-label::before {
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M21.15 21v-2a4 4 0 0 0-3-3.87'/%3E%3Cpath d='M15.15 3.13a4 4 0 0 1 0 7.74'/%3E%3C/svg%3E");
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M21.15 21v-2a4 4 0 0 0-3-3.87'/%3E%3Cpath d='M15.15 3.13a4 4 0 0 1 0 7.74'/%3E%3C/svg%3E");
}

/* (No × clear on the booking pills — it read as a "close panel" control and
   a mis-tap would wipe chosen dates. The footer text-clears are the reset.) */

/* Months control: the search's .machuca-dates-length segmented pill — the
   booking-variant segment rules live NEXT TO the search's block (search for
   "Connected segmented pill" below) so the two surfaces change together. */

/* Plain-text clear (Airbnb-style) next to Done; caption keeps the left side. */
.sar-booking-group .machuca-booking-pills .machuca-dates-caption {
	flex: 1 1 auto;
}
.sar-booking-group .machuca-booking-pills .machuca-guest-capacity-note {
	color: var(--wp--preset--color--text-muted, #666);
	font-size: 13px;
	line-height: 1.45;
	margin: 12px 0 0;
	width: 100%;
}
.sar-booking-group .machuca-booking-pills .machuca-guest-capacity-note[hidden] {
	display: none;
}
.sar-booking-group .machuca-booking-pills .machuca-dates-clear {
	flex: 0 0 auto !important;
	width: auto !important;
	background: none !important;
	border: none !important;
	box-shadow: none !important;
	color: var(--wp--preset--color--text, #1f1f1f) !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	text-decoration: underline !important;
	padding: 10px 8px !important;
	cursor: pointer !important;
}
/* Vertical rhythm for the rows inside the panels: the fields left the
   .gform_fields flex container (its gap with them), so the stepper rows would
   otherwise touch. The ST guest rows (.wpbc__field) get the same rhythm. */
.sar-booking-group .machuca-booking-pills .machuca-pill-panel .gfield,
.sar-booking-group .machuca-booking-pills .machuca-pill-panel .wpbc__field.machuca-st-guest-row {
	margin: 10px 0 !important;
}
/* Done: the search's green pill look, out-specifying GF orbital's button theme. */
.sar-booking-group .machuca-booking-pills .machuca-dates-done {
	flex: 0 0 auto !important;
	width: auto !important;
	border: none !important;
	border-radius: 999px !important;
	background: var(--wp--preset--color--primary, #013b28) !important;
	color: #fff !important;
	font-weight: 600 !important;
	font-size: 14px !important;
	line-height: 1 !important;
	padding: 10px 24px !important;
	box-shadow: none !important;
	cursor: pointer !important;
}
.sar-booking-group .machuca-booking-pills .machuca-dates-done:hover {
	background: #1d5a44 !important;
}

/* Desktop (sidebar layout): the panels are Airbnb-style popovers overlaying
   the page below the pill instead of inflating the card — they may exceed the
   card's width to the left. ≤959px (bottom-sheet layouts) keeps the in-flow
   accordion above. */
@media (min-width: 960px) {
	.sar-booking-group .machuca-booking-pills .machuca-pill-panel {
		position: absolute !important;
		top: calc(100% + 8px);
		right: 0;
		left: auto;
		width: min(420px, calc(100vw - 24px)) !important;
		max-width: none !important;
		z-index: 10000;
		border: 1px solid #dde4df !important;
		border-radius: 16px !important;
		box-shadow: 0 10px 30px rgba(0, 0, 0, 0.12) !important;
		padding: 16px !important;
	}
	/* Dates and Guests: float to the LEFT of the pill (over the listing
	   description) instead of anchoring below it — a two-month calendar plus
	   Clear/Done anchored under the pill like a normal dropdown can push the
	   footer below the fold, since the sticky card only releases into page
	   flow by its OWN box height, and an absolutely-positioned popover sits
	   outside that (off the pill, not counted). This is still plain
	   `position: absolute` against `.machuca-pill` (position: relative) —
	   the SAME mechanism the original below-the-pill popover used, just a
	   different anchor. That matters: because it's normal CSS layout (not a
	   JS-computed `position: fixed` snapshot), the browser keeps it glued to
	   the pill through every scroll frame, sticky engage/disengage, and
	   layout change with zero lag and zero chance of drifting from it — the
	   properties on it are literally what places it, not something JS wrote
	   there once and hoped stayed valid. */
	.sar-booking-group .machuca-booking-pills .machuca-pill--bkdates .machuca-pill-panel,
	.sar-booking-group .machuca-booking-pills .machuca-pill--bkguests .machuca-pill-panel {
		position: absolute !important;
		top: 50% !important;
		left: auto !important;
		right: calc(100% + 18px) !important;
		transform: translateY(-50%);
		max-height: calc(100vh - 32px);
		overflow-y: auto;
	}
	.sar-booking-group .machuca-booking-pills .machuca-pill--bkdates .machuca-pill-panel {
		width: min(700px, calc(100vw - 24px)) !important;
	}
	.sar-booking-group .machuca-booking-pills .machuca-pill--bkguests .machuca-pill-panel {
		width: min(340px, calc(100vw - 24px)) !important;
		min-width: 0 !important;
	}
	/* Narrow-desktop fallback: not enough room to the left of the pill for a
	   700/340px panel — overlap the card instead of floating beside it,
	   shifted 67% of the pill's own width further left than flush (a
	   percentage, not a fixed px value, so it scales down safely with
	   however narrow the pill itself is in this range rather than risking
	   pushing a fixed offset past the viewport's left edge). Reduces how much
	   of the pill/card the panel buries without needing to know the exact
	   available room — the `width: min(700px, calc(100vw - 24px))` cap above
	   is still the real backstop against running off-screen. `.machuca-pill
	   --overlap` is toggled by single-rental-tabs.js (checkBkPanelFit) once
	   when the panel opens and again on resize — NOT on scroll, since
	   horizontal room next to the pill never changes just from scrolling the
	   page vertically. Only `right` changes here — `top: 50%` /
	   `transform: translateY(-50%)` and the `max-height` +
	   `overflow-y: auto` safety net stay inherited from the base rule above.
	   Anchoring below the pill instead (the original popover's spot) is
	   exactly the bug this whole redesign started from: a two-month calendar
	   taller than the sticky card's remaining viewport room, with no way to
	   scroll down to its Clear/Done footer. There's no width narrow enough
	   that that anchor is safe to bring back. */
	.sar-booking-group .machuca-booking-pills .machuca-pill--overlap .machuca-pill-panel {
		right: 67% !important;
	}

	/* Speech-bubble tail connecting the panel back to its pill: pseudo-
	   elements of the PILL itself, not the panel — the panel needs
	   `overflow-y: auto` for tall calendars, which would clip anything
	   poking outside its own box. Glued the same native way the panel is,
	   so it can never end up out of step with it. Classic two-triangle
	   border trick: ::after is the outer (bordered) triangle, ::before a
	   smaller one on top in the panel's own background, leaving a clearly
	   visible 3px border-colored rim everywhere except the tip. The tip sits
	   a few px short of the pill's own edge (not flush against it) so the
	   tail reads as pointing at the pill rather than merging into its border,
	   and is nudged a few px below true vertical center — an unadjusted
	   triangle optically reads as sitting above where it's actually centered.
	   No tail in the overlap fallback — pointing at a pill the panel is
	   already sitting on top of says nothing useful. */
	.sar-booking-group .machuca-booking-pills .machuca-pill--bkdates.is-open::after,
	.sar-booking-group .machuca-booking-pills .machuca-pill--bkguests.is-open::after {
		content: "";
		position: absolute;
		top: calc(50% + 3px);
		left: -18px;
		transform: translateY(-50%);
		width: 0;
		height: 0;
		border-top: 14px solid transparent;
		border-bottom: 14px solid transparent;
		border-left: 14px solid #dde4df;
		z-index: 10001;
		pointer-events: none;
	}
	.sar-booking-group .machuca-booking-pills .machuca-pill--bkdates.is-open::before,
	.sar-booking-group .machuca-booking-pills .machuca-pill--bkguests.is-open::before {
		content: "";
		position: absolute;
		top: calc(50% + 3px);
		left: -15px;
		transform: translateY(-50%);
		width: 0;
		height: 0;
		border-top: 11px solid transparent;
		border-bottom: 11px solid transparent;
		border-left: 11px solid #fff;
		z-index: 10002;
		pointer-events: none;
	}
	.sar-booking-group .machuca-booking-pills .machuca-pill--overlap.is-open::after,
	.sar-booking-group .machuca-booking-pills .machuca-pill--overlap.is-open::before {
		display: none;
	}
}

/* ── Page-1 price lines (Monthly rent / fees / Due today) ── */
.sar-booking-group .lt-booking-form .gfield--type-textarea {
	margin: 8px 0 12px !important;
}
.sar-booking-group .lt-booking-form .ginput_product_price_label { display: none !important; }
.sar-booking-group .lt-booking-form .gfield--type-product .ginput_container {
	flex: 1 1 auto !important;
	text-align: right !important;
	margin: 0 !important;
}
.sar-booking-group .lt-booking-form .ginput_product_price {
	font-size: 0.875rem !important;
	font-weight: 600 !important;
	color: #1f1f1f !important;
}
.sar-booking-group .lt-booking-form .gfield--type-total {
	border-top: 1px solid #e6e0d6 !important;
	padding-top: 12px !important;
	margin-top: 4px !important;
}
.sar-booking-group .lt-booking-form .gfield--type-total .gfield_label {
	font-size: 1rem !important;
	font-weight: 700 !important;
}
.sar-booking-group .lt-booking-form .gfield--type-total .ginput_container input.ginput_total {
	height: auto !important;
	border: none !important;
	background: transparent !important;
	box-shadow: none !important;
	text-align: right !important;
	font-size: 1rem !important;
	font-weight: 700 !important;
	color: #1f1f1f !important;
	padding: 0 !important;
}

/* Date control: ~50% of the row (label takes 38%), pushed right so the
   underline and value line up with the ± stepper rows below. */
.sar-booking-group .lt-booking-form .gfield.start-date .ginput_container,
.sar-booking-group .lt-booking-form .gfield.end-date .ginput_container {
	flex: 0 0 50% !important;
}
/* Date inputs: quiet underline style — bottom border only, no box.
   Value is right-aligned with 16px right padding; the trigger icon is hidden
   (the field still opens the datepicker on focus/click). */
.sar-booking-group .lt-booking-form .gfield.start-date .ginput_container input.datepicker,
.sar-booking-group .lt-booking-form .gfield.end-date .ginput_container input.datepicker {
	border: none !important;
	border-bottom: 1px solid #e6e0d6 !important;
	border-radius: 0 !important;
	background: transparent !important;
	height: 40px !important;
	padding: 0 16px 0 0 !important;
	text-align: right !important;
	box-shadow: none !important;
}
.sar-booking-group .lt-booking-form .gfield.start-date .ginput_container_date img.ui-datepicker-trigger,
.sar-booking-group .lt-booking-form .gfield.end-date .ginput_container_date img.ui-datepicker-trigger {
	display: none !important;
}
.sar-booking-group .lt-booking-form .gfield.start-date .ginput_container input.datepicker:focus,
.sar-booking-group .lt-booking-form .gfield.end-date .ginput_container input.datepicker:focus {
	border: none !important;
	border-bottom: 1px solid #b9663d !important;
	box-shadow: none !important;
}
/* Auto-prefilled dates look tentative until the guest actively picks one */
.sar-booking-group .lt-booking-form input.lt-prefilled {
	color: #9a9a9a !important;
}
/* Months row sits between the two underlined date rows — give it vertical
   breathing room so the date underlines don't visually outrank it. */
.sar-booking-group .lt-booking-form .gfield.months {
	margin: 10px 0 !important;
}
/* Guest counts: the end-date underline already separates this block, so no
   divider line here — just clear spacing from the dates above. */
.sar-booking-group .lt-booking-form .gfield[id$="_11"] {
	padding-top: 0 !important;
	margin-top: 22px !important;
}
.sar-booking-group .lt-booking-form .gfield.start-date .ginput_container_date img.ui-datepicker-trigger,
.sar-booking-group .lt-booking-form .gfield.end-date .ginput_container_date img.ui-datepicker-trigger {
	right: 10px !important;
}

/* Data-only hidden fields stay hidden (pass values to Stripe) */
.sar-booking-group .lt-booking-form .gfield--type-hidden {
	display: none !important;
}
/* HR dividers framing the payment block stay hidden */
#field_3_23,
#field_3_24 {
	display: none !important;
}

/* Labels and legend labels */
.sar-booking-group .lt-booking-form .gfield_label {
	font-size: 0.875rem !important;
	font-weight: 600 !important;
	color: #1f1f1f !important;
	margin-bottom: 8px !important;
	padding: 0 !important;
	display: block !important;
	float: none !important;
}

/* Text, number, and datepicker inputs */
.sar-booking-group .lt-booking-form .ginput_container input[type="text"],
.sar-booking-group .lt-booking-form .ginput_container input[type="number"],
.sar-booking-group .lt-booking-form .ginput_container input.datepicker,
.sar-booking-group .lt-booking-form .ginput_container input.hasDatepicker {
	height: 48px !important;
	border: none !important;
	border-radius: 8px !important;
	padding: 0 16px !important;
	font-size: 1rem !important;
	font-weight: 500 !important;
	color: #1f1f1f !important;
	background: #fff !important;
	box-shadow: none !important;
	width: 100% !important;
	box-sizing: border-box !important;
	margin: 0 !important;
	-webkit-appearance: none;
	appearance: none;
	line-height: 1 !important;
	outline: none !important;
}

/* Datepicker inputs need room for the trigger icon */
.sar-booking-group .lt-booking-form .ginput_container input.datepicker,
.sar-booking-group .lt-booking-form .ginput_container input.hasDatepicker {
	padding-right: 44px !important;
}

/* Position the datepicker trigger icon inside the input */
.sar-booking-group .lt-booking-form .ginput_container_date {
	position: relative;
}
.sar-booking-group .lt-booking-form .ginput_container_date img.ui-datepicker-trigger {
	position: absolute !important;
	right: 14px !important;
	top: 50% !important;
	transform: translateY(-50%) !important;
	width: 18px !important;
	height: 18px !important;
	opacity: 0.45;
	cursor: pointer;
	display: block !important;
	margin: 0 !important;
}

/* Focus state — accent border + soft glow */
.sar-booking-group .lt-booking-form .ginput_container input[type="text"]:focus,
.sar-booking-group .lt-booking-form .ginput_container input[type="number"]:focus,
.sar-booking-group .lt-booking-form .ginput_container input.datepicker:focus,
.sar-booking-group .lt-booking-form .ginput_container input.hasDatepicker:focus,
.sar-booking-group .lt-booking-form .ginput_container textarea:focus {
	border-color: #b9663d !important;
	box-shadow: 0 0 0 3px rgba(185, 102, 61, 0.12) !important;
	outline: none !important;
}
.sar-booking-group .lt-booking-form .gfield.lt-adults .lt-stepper input[readonly]:focus,
.sar-booking-group .lt-booking-form .gfield.lt-children .lt-stepper input[readonly]:focus,
.sar-booking-group .lt-booking-form .gfield.lt-infants .lt-stepper input[readonly]:focus {
	border: none !important;
	box-shadow: none !important;
	outline: none !important;
}

/* Textarea */
.sar-booking-group .lt-booking-form .ginput_container textarea {
	border: 1px solid #e6e0d6 !important;
	border-radius: 8px !important;
	padding: 12px 16px !important;
	font-size: 1rem !important;
	font-weight: 400 !important;
	color: #1f1f1f !important;
	background: #fff !important;
	box-shadow: none !important;
	width: 100% !important;
	height: 80px !important;
	box-sizing: border-box !important;
	margin: 0 !important;
	resize: vertical;
	line-height: 1.6 !important;
	font-family: inherit !important;
	outline: none !important;
}

/* Helper description text (e.g. "Within the available entry window") */
.sar-booking-group .lt-booking-form .gfield_description:not(.charleft):not(.instruction) {
	font-size: 0.75rem !important;
	color: #6b7a72 !important;
	margin: 6px 0 0 !important;
	line-height: 1.4 !important;
	padding: 0 !important;
}

/* Character counter */
.sar-booking-group .lt-booking-form .charleft.ginput_counter {
	font-size: 0.7rem !important;
	color: #9aaa9f !important;
	text-align: right !important;
	margin: 4px 0 0 !important;
	padding: 0 !important;
}

/* Hide "enter a number from X to Y" instruction — redundant */
.sar-booking-group .lt-booking-form .gfield_description.instruction {
	display: none !important;
}

/* Validation error — field highlight */
.sar-booking-group .lt-booking-form .gfield_error .ginput_container input,
.sar-booking-group .lt-booking-form .gfield_error .ginput_container textarea {
	border-color: #b9663d !important;
}
.sar-booking-group .lt-booking-form .gfield_error .gfield_label {
	color: #b9663d !important;
}
.sar-booking-group .lt-booking-form .validation_message {
	font-size: 0.75rem !important;
	color: #b9663d !important;
	margin: 6px 0 0 !important;
	padding: 0 !important;
	font-weight: 500 !important;
}
.sar-booking-group .lt-booking-form .gfield.lt-adults.gfield_error,
.sar-booking-group .lt-booking-form .gfield.lt-children.gfield_error {
	flex-wrap: wrap !important;
}
.sar-booking-group .lt-booking-form .gfield.lt-adults.gfield_error > .validation_message,
.sar-booking-group .lt-booking-form .gfield.lt-children.gfield_error > .validation_message {
	order: 3;
	flex: 0 0 100% !important;
	width: 100% !important;
	margin-top: 6px !important;
}


/* Host-acceptance reassurance: a caption on the amount, rendered as a real node
   next to #booking-form-total and in the review total (showST-rental.js, copy
   from machuca_st_payment_hold_notice via MachucaSTBooking.holdNotice). Muted
   on purpose — it answers "have I been charged yet?", it is not a warning. */
.machuca-st-hold-note {
	margin-top: 0 !important;
	margin-bottom: 0;
	color: var(--wp--preset--color--text-muted);
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 500;
	line-height: 1.45;
	/* Left, with the breakdown and the total it answers, rather than centred as
	   a standalone remark under them. */
	text-align: left;
}

/* The ? sits on the same line as the sentence it explains. */
.machuca-st-hold-note .machuca-st-fee-help {
	vertical-align: middle;
}

.booking-price-breakdown p {
	margin: 0;
}

.sar-booking-group .short-term-form .machuca-st-price-details .wpbc__field {
	margin: 0;
}

.booking-price-breakdown {
	margin-bottom: 10px;
}

p.machuca-st-payment-summary__discount {
	margin: 0;
}

body .short-term-form .wpbc_wizard_step.wpbc__form__div.wpbc_wizard_step2 {
	margin-top: 16px;
}




/* WP User Frontend
------------------------------ */
.entry-content ul.wpuf-form li {
	list-style-type: none;
}

.wpuf-form-add {
	margin-top: 30px;
}

body ul.wpuf-form li .wpuf-section-wrap h2.wpuf-section-title {
	text-align: left;
    font-weight: 600;
}

.wpuf-label:empty {
	width: 0;
}

body .entry-content ul.wpuf_packs, body ul.wpuf_packs {
	text-align: center;
}

body ul.wpuf_packs h3 {
	background: #013b28;
	border-bottom: 1px solid #cccccc;
}

body ul.wpuf_packs .wpuf-pricing-wrap, body ul.wpuf_packs .wpuf-sub-button a {
	background: #005a3d;
}

body ul.wpuf_packs .wpuf-pricing-wrap .wpuf-sub-amount {
	border-bottom: 1px solid #cccccc;
}

body ul.wpuf_packs .wpuf-sub-button a:hover {
	background: #005a3d;
	border-color: #005a3d;
	font-weight: unset;
	box-shadow: 0 1px 0 rgb(0 109 73) inset;
	filter: brightness(1.2);
}

body .wpuf-coupon-info-wrap .wpuf-pack-info h3 a {
	float: right;
	background: #005a3d;
}

body #wpuf-payment-gateway ul.wpuf-payment-gateways li {
	list-style-type: none;
}

form#wpuf-payment-gateway .wpuf-pack-info:after {
	content: 'All subscription are valid for a 6 months period.';
	display: block;
	font-size: 13px;
	font-weight: 100;
	margin-top: 10px;
}

body form#wpuf-payment-gateway .wpuf-pack-info {
	margin-bottom: 0px;
}

body .wpuf-payment-page-wrap.wpuf-pay-row .wpuf-bill-addr-wrap.wpuf-pay-col, .sar-gallery:has(li:nth-last-child(n + 5)) ~ li.custom_html_3, .wpuf-image-wrap input, .wpuf-image-wrap textarea:nth-of-type(2), body .property_description .wpuf_property_description_1311:not(.has-error) .tinymce-count {
	display: none;
}

body .wpuf-payment-page-wrap.wpuf-pay-row form#wpuf-payment-gateway {
	max-width: 665px;
	margin: 0 auto;
}

body .wpuf-payment-page-wrap.wpuf-pay-row form#wpuf-payment-gateway p:first-of-type {
	margin-top: 24px;
}

.wpuf-payment-page-wrap.wpuf-pay-row {
	margin-top: 20px;
}

body input.wpuf-btn {
	width: 100%;
    padding: 14px 0;
    border-radius: 100px !important;
	background: #005a3d!important;
}

body input.wpuf-btn:hover {
	filter: brightness(1.2);
}


.numberonly.price .wpuf-fields:before {
    content: '$';
    display: block;
    position: absolute;
    margin-top: 12px;
    margin-left: 5px;
}

.numberonly.discount .wpuf-fields:after {
    content: '%';
    display: block;
	margin-top: -70px;
    text-align: right;
    margin-right: 40px;
    margin-bottom: 45px;
}

.numberonly.min-nights .wpuf-fields .wpuf-wordlimit-message:before {
    content: 'nights';
    margin-top: -42px;
    left: 39px;
    position: absolute;
    font-size: large;
    font-style: normal;
}

#error{
  color:red;
  font-size: 15px;
  font-weight: bold;
  margin-top: -30px;
}

.wpuf-form li.custom_html_3 {
	margin: 0;
	height: 0;
}


body ul.wpuf-form li .wpuf-fields ul.wpuf-attachment-list li .wpuf-file-input-wrap textarea {
	width: 100%;
}

.wpuf-submit input[type="submit"] {
	background-color: #013b28;
    margin: 0 auto;
    border-radius: 100px;
    margin-top: 20px;
}

.wpuf-submit input[type="submit"]:hover {
	filter: brightness(1.2);
}

body.page-id-903 .wpuf-submit #wpuf-post-draft {
	display: none!important;
	pointer-events: none;
}

body.page-id-903 .wpuf-submit .property_status {
	display: none!important;
}

body.page-id-903 .property_status {
	display: none!important;
	pointer-events: none;
}

.wpuf-submit #wpuf-post-draft {
    border: 1px solid #333;
    border-radius: 5px;
	cursor: pointer;
	font-size: 16px;
    font-weight: 700;
    padding: 15px 30px;
    text-align: center;
    text-decoration: none;
    white-space: normal;
    width: auto;
}


body ul.wpuf-form.form-label-above li.crtrmvbtn .wpuf-fields.html_1311 {
	display: inline-block;
	text-align: right;
}

body ul.wpuf-form.form-label-above li.crtrmvbtn .wpuf-fields.html_1311 button {
	border-radius: 100px;
    padding: 10px 15px;
}

body ul.wpuf-form.form-label-above li.crtrmvbtn .wpuf-fields.html_1311 button#crtbtn {
	background:forestgreen;
}

body ul.wpuf-form.form-label-above li.crtrmvbtn .wpuf-fields.html_1311 button#rmvlast {
	background:darkred;
}

.entry-content ul.wpuf-form li.rental-type, .entry-content ul.wpuf-form li.specific-date-repeat {
	margin-bottom: 0;
	padding-bottom: 0;
}

 .entry-content ul.wpuf-form li.specific-date-repeat, .entry-content ul.wpuf-form li.crtrmvbtn {
	padding-top: 0;
}

.entry-content ul.wpuf-form li.crtrmvbtn {
	margin-top: -14px;
	margin-bottom: 0;
	padding-bottom: 0;
}

.entry-content ul.wpuf-form li.crtrmvbtn .column-1 {
	padding-right: 1%!important;
}



li.custom_html_8119148159 h5 {
	margin-bottom:0;
}

body ul.wpuf-form li.date_range_1_from .wpuf-label, body ul.wpuf-form li.date_range_1_to .wpuf-label, body ul.wpuf-form li.specific-date-repeat .wpuf-label {
	font-weight: 100;
}

.seasonal_availability {
	margin-top: 30px;
}

body ul.wpuf-form li.rental_type .wpuf-fields {
	display: flex;
	gap: 10%;
	line-height: 1.425;
	flex-wrap: wrap;
}

body ul.wpuf-form li.rental_type .wpuf-fields .wpuf-radio-inline {
	flex: 0 0 25%;
}

body ul.wpuf-form li.rental_type .wpuf-fields .wpuf-help {
	margin-top: 15px;
}

body ul.wpuf-form li.rental_type .wpuf-fields

.rental_type .wpuf-fields label.wpuf-radio-inline:first-child:after {
	content: 'From 2 nights to 1 month';
    display: block;
    width: 100%;
    font-size: small;
    margin-left: 18px;
}

.rental_type .wpuf-fields label.wpuf-radio-inline:nth-child(2):after {
	content: 'From 1 month to 1 year';
    display: block;
    width: 100%;
    font-size: small;
    margin-left: 18px;
}

.rental_type .wpuf-fields label.wpuf-radio-inline:nth-child(3):after {
	content: 'Accept short and long-term rentals';
    display: block;
    width: 100%;
    font-size: small;
    margin-left: 18px;
}

.requerido > .wpuf-label label:after {
	content:' *';
	color:red;
}

body ul.wpuf-form li.wpuf-el.specific-date-repeat .column-1 ul.wpuf-column-fields {
	border-top: 1px solid #ccc;
    padding-top: 10px;
}

body ul.wpuf-form .wpuf-field-columns {
	overflow: unset;
}

ul.wpuf-attachment-list.thumbnails.ui-sortable:has(+ .upload-item):before {
	content: 'Please wait while larger images upload (this is dependent on your internet speed).\AIn the meantime you can fill in your captions whilst you wait!';
	white-space: pre; 
	display: block;
}

body .property_description .wpuf_property_description_1311.has-error .tinymce-count {
	display: block;
	color: #666;
    margin: 0px 0 5px 0;
    font-size: 12px;
    font-style: italic;
    font-family: 'Sen';
}

body ul.wpuf-form li .wpuf-fields.wpuf_property_description_1311 .wpuf-wordlimit-message {
	margin: 2px 0 0px 0;
}


body ul.wpuf-form li .wpuf-fields .wpuf-help, body ul.wpuf-form li .wpuf-fields .wpuf-wordlimit-message {
	font-family: 'Sen';
}

li.wpuf-el.property_description {
	margin-bottom:0;
}


li.wpuf-el.custom_html_3 {
    padding-top: 0;
}

.restrict-recognize {
    float: left;
    color: #3f6485;
    font-size: 14px;
    display: block;
    width: 100%;
    padding: 0 10px;
}

li.wpuf-el.section_break_3 .wpuf-section-details {
	text-align: left;
}

body ul.wpuf-form .sync-cal .wpuf-field-columns.has-columns-2 .wpuf-column .column-1.wpuf-column-inner-fields {
	padding-top: 20px;
}

body ul.wpuf-form li.wpuf-el.section_break[data-label="Discounts"] {
	margin-top: 0;
}

body ul.wpuf-form li.wpuf-el.section_break[data-label="Discounts"] h2 {
	font-size: 18px;
}

.property_status .wpuf-fields {
	display: flex!important;
	margin-bottom: 0px;
	overflow: hidden;
    flex-wrap: wrap;
}

.property_status .wpuf-fields input {
	position: absolute !important;
	clip: rect(0, 0, 0, 0);
	height: 1px;
	width: 1px;
	border: 0;
	overflow: hidden;
}

.property_status .wpuf-fields label {
	background-color: #f6f6f6;
	color: rgba(0, 0, 0, 0.6);
	font-size: 16px;
	line-height: 1;
	text-align: center;
	padding: 8px 16px;
	margin-right: -1px;
	border: 1px solid rgba(0, 0, 0, 0.2);
	box-shadow: none;
	transition: all 0.1s ease-in-out;
	min-width: 90px;
    max-width: 104px;
	flex: 1 0 33%;
}

.property_status .wpuf-fields label:hover {
	cursor: pointer;
}

.property_status .wpuf-fields label:has(input:checked) {
    background-color: #dff0d8;
    box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.3), 0 1px rgba(255, 255, 255, 0.1);
}

.property_status .wpuf-fields label:first-of-type {
	border-radius: 4px 0 0 4px;
}

.property_status .wpuf-fields label:last-of-type {
	border-radius: 0 4px 4px 0;
}

body .property_status .wpuf-fields .wpuf-help {
	flex-basis: 100%;
    display: flex;
    margin: 0 0 30px;
}

.property_status .wpuf-fields .wpuf-help ul {
    padding-left: 20px;
}

.property_status .wpuf-fields .wpuf-help ul li {
	list-style-type: disc !important;
	padding: 0;
	margin: 0;
}


/* Login, join, register, account
----------------------------- */
body.login article.entry,
article.entry:has(.wppb-register-user),
body:not(.login) .entry-content:has(.wppb-register-user) {
	padding: clamp(28px, 3vw, 40px);
	max-width: 420px;
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 14px;
	margin-left: auto;
	margin-right: auto;
	box-shadow: 0 18px 44px rgba(31,31,31,0.08);
}

article.entry:has(.machuca-auth-page),
body:not(.login) .entry-content:has(.machuca-auth-page) {
	width: 100%;
	max-width: none;
	padding: 0;
	overflow: visible;
	background: transparent;
	border: 0;
	border-radius: 0;
	box-shadow: none;
}

body:not(.login) article.entry:has(.machuca-auth-page) {
	width: 100vw !important;
	margin-right: calc(50% - 50vw) !important;
	margin-left: calc(50% - 50vw) !important;
}

.machuca-auth-page {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(380px, 0.86fr);
	width: 100vw;
	max-width: none;
	min-height: 100svh;
	margin: 0;
	background: var(--wp--preset--color--background);
}

.machuca-auth-page__brand {
	position: absolute;
	top: clamp(24px, 4vw, 40px);
	left: clamp(24px, 4vw, 48px);
	z-index: 2;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	color: var(--wp--preset--color--surface);
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--md);
	font-weight: 800;
	letter-spacing: 0;
	text-decoration: none;
}

.machuca-auth-page__brand img {
	display: block;
	width: 36px;
	height: 36px;
	filter: brightness(0) invert(1);
}

.machuca-auth-page__back {
	position: absolute;
	bottom: clamp(24px, 4vw, 40px);
	left: clamp(24px, 4vw, 48px);
	z-index: 2;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: rgba(255,255,255,0.88);
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 700;
	letter-spacing: 0;
	text-decoration: none;
}

.machuca-auth-page__back:hover,
.machuca-auth-page__back:focus {
	color: var(--wp--preset--color--surface);
	text-decoration: none;
}

.machuca-auth-page__media {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 100svh;
	padding: clamp(32px, 5vw, 64px);
	padding-bottom: max(clamp(32px, 5vw, 64px), 13svh);
	background-image:
		linear-gradient(90deg, rgba(9, 35, 27, 0.56), rgba(9, 35, 27, 0.18)),
		url("/pictures/2024/04/Machuca-Valley-living-cover.jpg.webp");
	background-position: center;
	background-size: cover;
	color: var(--wp--preset--color--surface);
}

.machuca-auth-page__media-content {
	position: relative;
	z-index: 1;
	max-width: 430px;
}

.machuca-auth-page__title {
	margin: 0;
	color: inherit;
	font-family: var(--wp--preset--font-family--serif);
	font-size: clamp(2.6rem, 3.65vw, 3.85rem);
	line-height: 1.08;
}

.machuca-auth-page__credit {
	position: absolute;
	right: var(--wp--preset--spacing--50);
	bottom: var(--wp--preset--spacing--40);
	margin: 0;
	color: rgba(255,255,255,0.82);
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--xs);
	font-style: italic;
	line-height: 1.4;
}

.machuca-auth-page__form {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 100svh;
	box-sizing: border-box;
	background: var(--wp--preset--color--background);
	max-width: 360px;
	margin: 0 auto;
}

.machuca-auth-page__form > * {
	width: 100%;
	max-width: 360px;
	margin-right: auto;
	margin-left: auto;
}

.machuca-auth-page__form-header {
	margin-bottom: var(--wp--preset--spacing--40);
}

.machuca-auth-page__form-header h2 {
	margin: 0 0 var(--wp--preset--spacing--20);
	color: var(--wp--preset--color--text);
	font-family: var(--wp--preset--font-family--serif);
	font-size: clamp(2rem, 3.2vw, 2.5rem);
	line-height: 1.05;
}

.machuca-auth-page__form-header p {
	margin: 0;
	color: var(--wp--preset--color--text-muted);
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--sm);
	line-height: 1.45;
}

.machuca-welcome-panel {
	width: 100%;
	box-sizing: border-box;
	padding: var(--wp--preset--spacing--50);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 16px;
	background: var(--wp--preset--color--surface);
	box-shadow: 0 1px 2px rgba(31,31,31,0.04), 0 2px 8px rgba(31,31,31,0.04);
	color: var(--wp--preset--color--text);
	font-family: var(--wp--preset--font-family--sans);
	text-align: left;
}

.machuca-welcome-panel__mark {
	position: relative;
	width: 42px;
	height: 42px;
	margin-bottom: var(--wp--preset--spacing--40);
	border-radius: 999px;
	background: var(--wp--preset--color--primary-faint);
}

.machuca-welcome-panel__mark::after {
	content: "";
	position: absolute;
	top: 17px;
	left: 15px;
	width: 12px;
	height: 7px;
	border-bottom: 2px solid var(--wp--preset--color--primary);
	border-left: 2px solid var(--wp--preset--color--primary);
	transform: rotate(-45deg);
}

.machuca-welcome-panel h2 {
	margin: 0 0 var(--wp--preset--spacing--20);
	color: var(--wp--preset--color--text);
	font-family: var(--wp--preset--font-family--serif);
	font-size: clamp(2rem, 3.2vw, 2.5rem);
	line-height: 1.05;
}

.machuca-welcome-panel p {
	margin: 0;
	color: var(--wp--preset--color--text-muted);
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--sm);
	line-height: 1.45;
}

.machuca-welcome-panel__progress {
	overflow: hidden;
	width: 100%;
	height: 4px;
	margin: var(--wp--preset--spacing--50) 0 var(--wp--preset--spacing--40);
	border-radius: 999px;
	background: var(--wp--preset--color--primary-faint);
}

.machuca-welcome-panel__progress span {
	display: block;
	width: 100%;
	height: 100%;
	border-radius: inherit;
	background: var(--wp--preset--color--primary);
	transform-origin: left center;
	animation: machuca-welcome-progress 3s linear forwards;
}

.machuca-welcome-panel__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 42px;
	padding: 0 var(--wp--preset--spacing--40);
	border: 1px solid var(--wp--preset--color--primary);
	border-radius: 999px;
	color: var(--wp--preset--color--primary);
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 700;
	text-decoration: none;
}

.machuca-welcome-panel__link:hover,
.machuca-welcome-panel__link:focus {
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--surface);
	text-decoration: none;
}

.machuca-auth-page .machuca-welcome-panel__activation {
	margin-top: var(--wp--preset--spacing--40);
}

.machuca-auth-page .machuca-welcome-panel__activation .wppb-success {
	display: block;
	margin: 0 !important;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	color: var(--wp--preset--color--text);
	font-weight: 700;
}

/* The welcome panel already provides its own completion mark and heading. */
.machuca-auth-page .machuca-welcome-panel__activation .wppb-alert-title {
	display: none !important;
}

.machuca-auth-page .machuca-welcome-panel__activation .wppb-success::before,
.machuca-auth-page .machuca-welcome-panel__activation .wppb-success::after {
	display: none;
}

.machuca-auth-page .machuca-welcome-panel__activation .redirect_message {
	margin-top: var(--wp--preset--spacing--20);
	color: var(--wp--preset--color--text-muted);
	font-size: var(--wp--preset--font-size--xs);
	line-height: 1.45;
}

.machuca-auth-page .machuca-welcome-panel__activation .redirect_message a {
	color: var(--wp--preset--color--primary);
	font-weight: 700;
}

@keyframes machuca-welcome-progress {
	from {
		transform: scaleX(0);
	}
	to {
		transform: scaleX(1);
	}
}

body:not(.login):has(.machuca-auth-page) .wp-block-post-title {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

.machuca-auth-page #wppb-form-style-3-wrapper,
.machuca-auth-page .wppb-user-forms,
.machuca-auth-page #wppb-recover-password-container {
	width: 100%;
	max-width: 360px;
	margin: 0;
}

.machuca-auth-page #wppb-recover-password {
	width: 100%;
	font-family: var(--wp--preset--font-family--sans);
}

.machuca-auth-page #wppb-recover-password > p:first-child {
	margin: 0 0 var(--wp--preset--spacing--40);
	color: var(--wp--preset--color--text-muted);
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--sm);
	line-height: 1.45;
}

.machuca-auth-page #wppb-recover-password ul {
	display: grid;
	gap: var(--wp--preset--spacing--30);
	max-width: none;
	margin: 0;
	padding: 0;
	list-style: none;
}

.machuca-auth-page #wppb-recover-password li.wppb-form-field {
	margin: 0;
	padding: 0;
	min-height: 0;
	list-style: none;
}

.machuca-auth-page #wppb-recover-password li.wppb-form-field label {
	display: block;
	float: none;
	width: 100%;
	min-height: 0;
	margin: 0 0 6px;
	color: var(--wp--preset--color--text);
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--sm);
	font-style: normal;
	font-weight: 600;
	line-height: 1.3;
}

.machuca-auth-page #wppb-recover-password input[type="text"],
.machuca-auth-page #wppb-recover-password input[type="password"] {
	width: 100% !important;
	height: 48px;
	box-sizing: border-box;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 8px;
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--text);
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--base);
	font-weight: 500;
	padding: 0 var(--wp--preset--spacing--40);
}

.machuca-auth-page #wppb-recover-password .form-submit {
	margin: var(--wp--preset--spacing--40) 0 0;
	padding: 0;
	border: 0;
}

.machuca-auth-page #wppb-recover-password #wppb-recover-password-button {
	width: 100%;
	min-height: 48px;
	border: 0;
	border-radius: 999px;
	background-color: var(--wp--preset--color--primary) !important;
	color: var(--wp--preset--color--surface);
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--base);
	font-weight: 600;
}

.machuca-auth-page #wppb-recover-password #wppb-recover-password-button:hover,
.machuca-auth-page #wppb-recover-password #wppb-recover-password-button:focus {
	background-color: var(--wp--preset--color--primary-soft) !important;
	box-shadow: none;
}

.machuca-auth-page #wppb-recover-password input[type="text"]:focus,
.machuca-auth-page #wppb-recover-password input[type="password"]:focus {
	border-color: var(--wp--preset--color--primary) !important;
	outline: none;
}

body .entry-content #wppb-form-style-3-wrapper {
	width: 100%;
	margin: 0 auto;
}

body.login #wppb-form-style-3-wrapper,
article.entry:has(.wppb-register-user) #wppb-form-style-3-wrapper,
body:not(.login) .entry-content:has(.wppb-register-user) #wppb-form-style-3-wrapper {
	max-width: none;
	font-family: var(--wp--preset--font-family--sans);
}

body.login #wppb-form-style-3-wrapper form > ul,
article.entry:has(.wppb-register-user) #wppb-form-style-3-wrapper form > ul,
body:not(.login) .entry-content:has(.wppb-register-user) #wppb-form-style-3-wrapper form > ul {
	display: grid;
	gap: var(--wp--preset--spacing--30);
	max-width: none;
	margin: 0;
	padding: 0;
}

body.login #wppb-form-style-3-wrapper li.wppb-form-field,
article.entry:has(.wppb-register-user) #wppb-form-style-3-wrapper li.wppb-form-field,
body:not(.login) .entry-content:has(.wppb-register-user) #wppb-form-style-3-wrapper li.wppb-form-field {
	margin: 0;
	padding: 0;
	min-height: 0;
}

body.login #wppb-form-style-3-wrapper .wppb-form-text-field,
article.entry:has(.wppb-register-user) #wppb-form-style-3-wrapper .wppb-form-text-field,
body:not(.login) .entry-content:has(.wppb-register-user) #wppb-form-style-3-wrapper .wppb-form-text-field {
	min-height: 0;
	margin: 0;
}

body.login #wppb-form-style-3-wrapper .wppb-form-field label:not(.wppb-epaa-switch),
article.entry:has(.wppb-register-user) #wppb-form-style-3-wrapper .wppb-form-field label:not(.wppb-epaa-switch),
body:not(.login) .entry-content:has(.wppb-register-user) #wppb-form-style-3-wrapper .wppb-form-field label:not(.wppb-epaa-switch) {
	display: block;
	float: none;
	width: 100%;
	min-height: 0;
	margin: 0 0 6px;
	color: var(--wp--preset--color--text);
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--sm);
	font-style: normal;
	font-weight: 600;
	line-height: 1.3;
}

body.login #wppb-form-style-3-wrapper input[type="text"],
body.login #wppb-form-style-3-wrapper input[type="email"],
body.login #wppb-form-style-3-wrapper input[type="password"],
article.entry:has(.wppb-register-user) #wppb-form-style-3-wrapper input[type="text"],
article.entry:has(.wppb-register-user) #wppb-form-style-3-wrapper input[type="email"],
article.entry:has(.wppb-register-user) #wppb-form-style-3-wrapper input[type="password"],
body:not(.login) .entry-content:has(.wppb-register-user) #wppb-form-style-3-wrapper input[type="text"],
body:not(.login) .entry-content:has(.wppb-register-user) #wppb-form-style-3-wrapper input[type="email"],
body:not(.login) .entry-content:has(.wppb-register-user) #wppb-form-style-3-wrapper input[type="password"] {
	width: 100% !important;
	height: 48px;
	box-sizing: border-box;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 8px;
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--text);
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--base);
	font-weight: 500;
	padding: 0 var(--wp--preset--spacing--40);
}

body.login #wppb-form-style-3-wrapper .form-submit,
article.entry:has(.wppb-register-user) #wppb-form-style-3-wrapper .form-submit,
body:not(.login) .entry-content:has(.wppb-register-user) #wppb-form-style-3-wrapper .form-submit {
	margin-bottom: var(--wp--preset--spacing--40);
	padding: 0;
	border: 0;
}

body .wppb-form-field .wppb-password-field-container {
	position: relative;
	display: block;
	width: 100%;
}

.entry-content #wppb-form-style-3-wrapper .label-outside button.wppb-toggle-pw {
	position: absolute !important;
	top: 50% !important;
	right: var(--wp--preset--spacing--20) !important;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	margin: 0;
	padding: 0;
	transform: translateY(-50%) !important;
}

article.entry:has(.wppb-register-user) #wppb-form-style-3-wrapper .wppb-password-field-container input[type="password"],
article.entry:has(.wppb-register-user) #wppb-form-style-3-wrapper .wppb-password-field-container input[type="text"],
body:not(.login) .entry-content:has(.wppb-register-user) #wppb-form-style-3-wrapper .wppb-password-field-container input[type="password"],
body:not(.login) .entry-content:has(.wppb-register-user) #wppb-form-style-3-wrapper .wppb-password-field-container input[type="text"] {
	padding-right: 52px;
}

.wppb-user-forms {
	margin: 0 auto;
}

body.login .entry-title,
article.entry:has(.wppb-register-user) .entry-title,
body:not(.login):has(.wppb-register-user) h1.entry-title,
body:not(.login):has(.wppb-user-forms.wppb-register-user) .wp-block-post-title {
	text-align: center;
}

body:not(.login):has(.wppb-user-forms.wppb-register-user) .wp-block-post-title {
	margin-bottom: var(--wp--preset--spacing--40);
	color: var(--wp--preset--color--text);
	font-family: var(--wp--preset--font-family--serif);
	font-size: clamp(2rem, 4vw, 3rem);
	line-height: 1.05;
}

body.login .content .entry .entry-content hr.wp-block-separator {
	max-width: unset;
}

body.login #wppb-form-style-3-wrapper .wppb-checkbox-terms-and-conditions label {
	display: block;
	white-space: unset;
	width: 100%;
}

#wppb-form-style-3-wrapper input[type="button"].wppb-msf-next, #wppb-form-style-3-wrapper input[type="button"].wppb-msf-prev, #wppb-form-style-3-wrapper input[type="submit"], body.login #affwp-login-form input[type="submit"].button {
	min-height: 48px;
	border: 0;
	border-radius: 999px;
	background-color: var(--wp--preset--color--primary) !important;
	color: var(--wp--preset--color--surface);
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--base);
	font-weight: 600;
	width: 100%;
}

body.login #affwp-login-form input[type="submit"].button {
	border-radius: 100px;
	border: 1px solid #013b28;
}

body.login #affwp-login-form p:has(input[type="submit"].button) {
	overflow: visible;
  border-bottom: 1px solid #CFD4DE;
  padding-bottom: 30px;
  margin-bottom: 30px;
}

#wppb-form-style-3-wrapper .wppb-two-factor-authentication input[type="checkbox"]:checked, #wppb-form-style-3-wrapper .wppb-send-credentials-checkbox input[type="checkbox"]:checked, #wppb-form-style-3-wrapper .wppb-mailchimp-subscribe input[type="checkbox"]:checked, #wppb-form-style-3-wrapper .wppb-mailpoet-subscribe input[type="checkbox"]:checked, #wppb-form-style-3-wrapper .wppb-shipping-different-address input[type="checkbox"]:checked, #wppb-form-style-3-wrapper .pms-subscription-plan-auto-renew input[type="checkbox"]:checked, #wppb-form-style-3-wrapper .wppb-gdpr-checkbox input[type="checkbox"]:checked, #wppb-form-style-3-wrapper .wppb-checkbox-terms-and-conditions input[type="checkbox"]:checked, #wppb-form-style-3-wrapper .login-remember input[type="checkbox"]:checked, #wppb-form-style-3-wrapper .wppb-checkboxes input[type="checkbox"]:checked {
	background-color: #013b28!important;
}

#wppb-login-wrap p.login-register-lost-password a {
	color: #013b28!important;
}

#wppb-form-style-3-wrapper input[type="button"].wppb-msf-next:hover, #wppb-form-style-3-wrapper input[type="button"].wppb-msf-prev:hover, #wppb-form-style-3-wrapper .wppb-two-factor-authentication input[type=button]:hover, #wppb-form-style-3-wrapper .wppb-upload input[name^=simple_upload]:hover::file-selector-button, #wppb-form-style-3-wrapper .wppb-avatar input[name^=simple_upload]:hover::file-selector-button, #wppb-form-style-3-wrapper .wppb-upload .wppb_upload_button:hover, #wppb-form-style-3-wrapper .wppb-avatar .wppb_upload_button:hover, #wppb-form-style-3-wrapper input[type="submit"]:hover, #wppb-form-style-3-wrapper input[type="button"].wppb-msf-next:focus, #wppb-form-style-3-wrapper input[type="button"].wppb-msf-prev:focus, #wppb-form-style-3-wrapper .wppb-two-factor-authentication input[type=button]:focus, #wppb-form-style-3-wrapper .wppb-upload input[name^=simple_upload]:focus::file-selector-button, #wppb-form-style-3-wrapper .wppb-avatar input[name^=simple_upload]:focus::file-selector-button, #wppb-form-style-3-wrapper .wppb-upload .wppb_upload_button:focus, #wppb-form-style-3-wrapper .wppb-avatar .wppb_upload_button:focus, #wppb-form-style-3-wrapper input[type="submit"]:focus, body.login #affwp-login-form input[type="submit"].button:hover, body.login #affwp-login-form input[type="submit"].button:focus {
	background-color: var(--wp--preset--color--primary-soft) !important;
	box-shadow: none;
	border-color: var(--wp--preset--color--primary-soft) !important;
}

#wppb-form-style-3-wrapper .wppb-form-text-field input:focus, #wppb-form-style-3-wrapper .wppb-form-text-field textarea:focus, #wppb-form-style-3-wrapper .wppb-woocommerce-customer-billing-address .wppb_billing_state input:focus, #wppb-form-style-3-wrapper .wppb-woocommerce-customer-shipping-address .wppb_shipping_state input:focus, #wppb-form-style-3-wrapper .pms-field-section .pms-billing-state input:focus, #wppb-form-style-3-wrapper .wppb-subscription-plans .pms-group-name-field input:focus, #wppb-form-style-3-wrapper .wppb-subscription-plans .pms-group-description-field textarea:focus, #wppb-form-style-3-wrapper #pms-stripe-credit-card-details.StripeElement--focus, #wppb-form-style-3-wrapper #pms-subscription-plans-discount input#pms_subscription_plans_discount_code:focus {
	border-color: #013b28!important;
}

.entry-content p.wppb-front-end-logout {
    text-align: center;
    padding: 0;
    font-size: 18px;
		border: none;
	background-color: unset;
}

.entry-content p.wppb-front-end-logout .wppb-alert-title {
	display: none;
}

.entry-content p.wppb-front-end-logout a {
	color: #013b28; 
}

#wppb-form-style-3-wrapper .wppb-checkbox-terms-and-conditions label {
	display: block !important;
	box-sizing: border-box;
	min-height: 0;
	padding: 12px 14px;
	border-radius: 10px;
	background: rgba(255,255,255,0.42);
	color: var(--wp--preset--color--text-muted);
	font-family: var(--wp--preset--font-family--sans);
	font-size: 12.5px;
	font-weight: 400 !important;
	line-height: 1.42;
	margin: 0;
	white-space: normal;
	width: 100%;
}

#wppb-form-style-3-wrapper .wppb-checkbox-terms-and-conditions input[type="checkbox"] {
	-webkit-appearance: none !important;
	appearance: none !important;
	position: relative;
	float: left;
	display: inline-grid;
	place-items: center;
	width: 18px !important;
	height: 18px !important;
	margin: 0.08em 10px 0 0 !important;
	border: 1.5px solid rgba(1,59,40,0.36) !important;
	border-radius: 5px !important;
	background: var(--wp--preset--color--surface) !important;
	box-shadow: 0 1px 2px rgba(31,31,31,0.04);
	cursor: pointer;
	transition: background 0.16s ease, border-color 0.16s ease, box-shadow 0.16s ease;
}

#wppb-form-style-3-wrapper .wppb-checkbox-terms-and-conditions input[type="checkbox"]::before {
	content: "" !important;
	position: static !important;
	width: 9px !important;
	height: 5px !important;
	margin: 0 !important;
	border: 0 !important;
	border-bottom: 2px solid var(--wp--preset--color--surface) !important;
	border-left: 2px solid var(--wp--preset--color--surface) !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none;
	opacity: 0 !important;
	transform: translateY(-1px) rotate(-45deg) !important;
	transition: opacity 0.16s ease !important;
}

#wppb-form-style-3-wrapper .wppb-checkbox-terms-and-conditions input[type="checkbox"]:checked {
	background: var(--wp--preset--color--primary) !important;
	border-color: var(--wp--preset--color--primary) !important;
	box-shadow: 0 0 0 2px rgba(1,59,40,0.08);
}

#wppb-form-style-3-wrapper .wppb-checkbox-terms-and-conditions input[type="checkbox"]:checked::before {
	opacity: 1 !important;
}

#wppb-form-style-3-wrapper .wppb-checkbox-terms-and-conditions input[type="checkbox"]:focus-visible {
	outline: 2px solid var(--wp--preset--color--primary-soft);
	outline-offset: 3px;
}

#wppb-form-style-3-wrapper .wppb-checkbox-terms-and-conditions label strong,
#wppb-form-style-3-wrapper .wppb-checkbox-terms-and-conditions label b {
	font-weight: 400 !important;
}

#wppb-form-style-3-wrapper .wppb-checkbox-terms-and-conditions label a {
	font-family: var(--wp--preset--font-family--sans);
	font-weight: 600;
}

#wppb-form-style-3-wrapper .wppb-checkbox-terms-and-conditions .wppb-rc-value {
	color: var(--wp--preset--color--text-muted);
	font-size: 12.5px;
	font-weight: 400 !important;
	line-height: 1.3;
}

body.machuca-join-auth-page .entry-content:has(.wppb-register-user) #wppb-form-style-3-wrapper li.wppb-form-field.wppb-default-password {
	margin-bottom: var(--wp--preset--spacing--20);
}

body.machuca-join-auth-page .entry-content:has(.wppb-register-user) #wppb-form-style-3-wrapper li.wppb-form-field.wppb-checkbox-terms-and-conditions {
	margin: 15px 0;
}

body.machuca-join-auth-page .entry-content:has(.wppb-register-user) #wppb-form-style-3-wrapper p.form-submit {
	margin-top: 0;
}

#wppb-form-style-3-wrapper #pass-strength-result,
#wppb-form-style-3-wrapper .wppb-description-delimiter {
	display: none !important;
}

.machuca-account-form__switch,
.machuca-account-form__password-helper {
	color: var(--wp--preset--color--text-muted);
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--xs);
	line-height: 1.45;
	text-align: center;
}

.machuca-account-form__switch {
	margin: var(--wp--preset--spacing--30) 0 0;
}

.machuca-account-form__switch a {
	color: var(--wp--preset--color--primary);
	font-weight: 700;
}

.machuca-account-form__password-helper {
	margin: 6px 0 0;
	font-weight: 500;
	text-align: left;
}

.machuca-account-form__password-helper.is-ok {
	color: var(--wp--preset--color--status-accepted);
}

.machuca-auth-page:has(.machuca-auth-message-main) p.wppb-success,
.machuca-auth-page #wppb-form-style-3-wrapper p.wppb-warning,
.machuca-auth-page #wppb-form-style-3-wrapper p.wppb-epaa-warning {
	position: relative;
	display: grid;
	grid-template-columns: 38px minmax(0, 1fr);
	column-gap: var(--wp--preset--spacing--30);
	row-gap: 2px;
	box-sizing: border-box;
	width: 100%;
	margin: 0 !important;
	padding: var(--wp--preset--spacing--40);
	border: 1px solid var(--wp--preset--color--primary-soft);
	border-radius: 16px;
	background: var(--wp--preset--color--surface);
	box-shadow: 0 1px 2px rgba(31,31,31,0.04), 0 2px 8px rgba(31,31,31,0.04);
	color: var(--wp--preset--color--text-muted);
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--sm);
	line-height: 1.45;
	text-align: left;
}

/*
 * Profile Builder's form-design rule is ID-scoped and keeps a 100px left
 * inset. On Password Reset that separates the custom check from its circle.
 * Keep the correction on this page and custom success message only, so other
 * WPPB notices retain their own presentation.
 */
body.machuca-password-reset-auth-page #wppb-form-style-3-wrapper p.wppb-success:has(.machuca-auth-message-main) {
	padding: var(--wp--preset--spacing--40);
	border-radius: 16px;
}

.machuca-auth-page #wppb-form-style-3-wrapper *:not(.mce-ico) {
	font-family: var(--wp--preset--font-family--sans);
}

.machuca-auth-page #wppb-form-style-3-wrapper p.wppb-warning,
.machuca-auth-page #wppb-form-style-3-wrapper p.wppb-epaa-warning {
	border-color: var(--wp--preset--color--accent);
}

.machuca-auth-page:has(.machuca-auth-message-main) p.wppb-success::before,
.machuca-auth-page #wppb-form-style-3-wrapper p.wppb-warning::before,
.machuca-auth-page #wppb-form-style-3-wrapper p.wppb-epaa-warning::before {
	content: "";
	grid-row: 1 / span 3;
	display: block;
	width: 38px;
	height: 38px;
	border-radius: 999px;
	background: var(--wp--preset--color--primary-faint);
}

.machuca-auth-page #wppb-form-style-3-wrapper p.wppb-warning::before,
.machuca-auth-page #wppb-form-style-3-wrapper p.wppb-epaa-warning::before {
	content: "!";
	display: grid;
	place-items: center;
	align-self: start;
	background: var(--wp--preset--color--accent-faint);
	color: var(--wp--preset--color--accent);
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--base);
	font-weight: 800;
	line-height: 1;
}

.machuca-auth-page:has(.machuca-auth-message-main) p.wppb-success::after {
	content: "";
	position: absolute;
	top: 29px;
	left: 31px;
	width: 11px;
	height: 6px;
	border-bottom: 2px solid var(--wp--preset--color--primary);
	border-left: 2px solid var(--wp--preset--color--primary);
	transform: rotate(-45deg);
}

.machuca-auth-page #wppb-form-style-3-wrapper p.wppb-warning::after,
.machuca-auth-page #wppb-form-style-3-wrapper p.wppb-epaa-warning::after {
	content: none;
	display: none;
}

/*
 * Password recovery intentionally returns the same neutral response whether
 * an account exists or not. Profile Builder may wrap that copy in either a
 * success or warning paragraph, so the project-owned marker—not the vendor
 * class—defines its informational presentation.
 */
body.machuca-password-reset-auth-page .machuca-auth-page p:has(.machuca-auth-message-copy--info) {
	border-color: var(--wp--preset--color--status-pending);
}

body.machuca-password-reset-auth-page .machuca-auth-page p:has(.machuca-auth-message-copy--info)::before {
	content: "i";
	display: grid;
	place-items: center;
	align-self: start;
	background: color-mix(in srgb, var(--wp--preset--color--status-pending) 24%, var(--wp--preset--color--surface));
	color: var(--wp--preset--color--text);
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--base);
	font-style: normal;
	font-weight: 800;
	line-height: 1;
}

body.machuca-password-reset-auth-page .machuca-auth-page p:has(.machuca-auth-message-copy--info)::after {
	content: none;
	display: none;
}

/*
 * Profile Builder's form-design CSS hides both the generated alert title and
 * success-message <strong>. The join/reset filters replace the message body
 * with .machuca-auth-message-main/.machuca-auth-message-note, so only those
 * custom messages should suppress the generic WPPB title and restore the
 * recipient email. These rules anchor to the custom message marker rather
 * than assuming WPPB keeps the success paragraph inside its form wrapper.
 * Keeping this scoped prevents other WPPB success states (login, activation,
 * or future forms) from inheriting registration styling.
 */
.machuca-auth-page:has(.machuca-auth-message-main) .wppb-alert-title,
.machuca-auth-page #wppb-form-style-3-wrapper p.wppb-warning > .wppb-alert-title,
.machuca-auth-page #wppb-form-style-3-wrapper p.wppb-epaa-warning > .wppb-alert-title {
	display: none !important;
}

.machuca-auth-page .machuca-auth-message-main,
.machuca-auth-page .machuca-auth-message-note {
	grid-column: 2;
}

.machuca-auth-page .machuca-auth-message-copy {
	grid-column: 2;
}

.machuca-auth-page .machuca-auth-message-main {
	color: var(--wp--preset--color--text);
	font-weight: 700;
}

.machuca-auth-page .machuca-auth-message-note {
	color: var(--wp--preset--color--text-muted);
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 400;
}

.machuca-auth-page:has(.machuca-auth-message-main) p.wppb-success strong {
	display: inline !important;
	font-weight: 700;
}

.machuca-auth-page:has(.machuca-auth-message-main) p.wppb-success br {
	display: none;
}

.machuca-auth-page--join #wppb_form_general_message.wppb-error,
.machuca-auth-page--join #wppb_form_general_message.error,
.machuca-auth-page--join p.wppb-error,
.machuca-auth-page--join p.error {
	display: none !important;
}

.machuca-auth-page--join .wppb-success ~ p {
	display: none;
}

.machuca-auth-page #wppb-form-style-3-wrapper .wppb-form-field.wppb-field-error {
	margin-bottom: 0 !important;
}

.machuca-auth-page #wppb-form-style-3-wrapper .wppb-form-field.wppb-field-error .wppb-form-error {
	margin-top: var(--wp--preset--spacing--20);
	padding: 0;
	color: var(--wp--preset--color--accent);
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--xs);
	line-height: 1.45;
}

.machuca-auth-page #wppb-form-style-3-wrapper .wppb-form-field.wppb-field-error .wppb-form-error a,
.machuca-auth-page #wppb-form-style-3-wrapper p.wppb-warning a,
.machuca-auth-page #wppb-form-style-3-wrapper p.wppb-epaa-warning a {
	color: var(--wp--preset--color--primary);
	font-weight: 700;
}

body:not(.login):has(.wppb-user-forms.wppb-register-user) .entry-content > p:last-child {
	margin: var(--wp--preset--spacing--40) 0 0;
	color: var(--wp--preset--color--text-muted);
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--xs);
	line-height: 1.45;
	text-align: center;
}

body:not(.login):has(.wppb-user-forms.wppb-register-user) .entry-content > p:last-child a {
	color: var(--wp--preset--color--primary);
	font-weight: 700;
}

.entry-content #wppb-form-style-3-wrapper .wppb-radios, .entry-content #wppb-form-style-3-wrapper .wppb-checkboxes {
	column-count: unset;
	width: 100%;
}

.entry-content #wppb-form-style-3-wrapper .wppb-avatar > label {
	display: inline-block;
	margin-bottom: 10px;
}

.wppb-user-forms .wppb-form-field p {
	margin-top: 18px;
}

.wppb-user-forms .wppb-form-field p#p_simple_upload_profilepicture:after {
    content: 'Only real photos of yourself are allowed (family pictures are also welcome), any type of contact information is strictly forbidden.';
    font-size: 14px;
    color: #3f6485;
    font-style: normal;
}

#wppb-form-style-3-wrapper .tell-your-story .wppb-description-delimiter {
    color: #3f6485;
}

#wppb-form-style-3-wrapper .tell-your-story .wppb-description-delimiter .green-note, .restrict-recognize p.green-note {
	color: #008b5d;
}

#wppb-form-style-3-wrapper .submit-disabled {
	font-size: 14px;
    color: #C62828;
    display: none;
    text-align: center;
}

#wppb-form-style-3-wrapper .form-submit input[type="submit"]:disabled ~ .submit-disabled {
	display: block;
}

body.login .profile-register-property {
	margin-top: 60px;
	margin-bottom: 10px;
}

.agent-photo-ad {
	margin: 0 auto;
	gap: 8em;
	margin-bottom: 96px;
	justify-content: center;
}
.agent-photo-ad .wp-block-column {
	max-width: 480px;
	margin: 0 auto;
}
.agent-photo-ad .wp-block-column:has(.wppb-shortcode-restriction-message) {
	display: none;
}

.agent-photo-ad p:before {
	display: block;
	font-family: dashicons;
	font-size: 96px;
	margin-bottom: -20px;
}

.find-agent:before {
	content: "\f110";
}

.find-photo:before {
	content: "\f306";
}

body.register-properties #wppb-form-style-3-wrapper .wppb-form-select-field label:not(.wppb-epaa-switch) {
	margin-bottom: 20px;
}

body.register-properties #wppb-form-style-3-wrapper .wppb-form-select-field.label-outside select {
	max-width: 600px;
}

body.register-properties .wppb-heading {
	margin-top: 30px;
}

body.register-properties .entry-content #wppb-form-style-3-wrapper .form-submit {
	max-width: 600px;
	margin: 80px auto 40px;
	border: none;
}

body.register-properties .entry-content .underline {
	max-width: 900px;
	margin: 0 auto;
}

body .entry-content .take-a-moment {
	border: 1px solid #ccc;
    border-radius: 10px;
    padding: 20px;
}

body .entry-content .underline p {
	margin-bottom: 0;
}

body .entry-content .underline a {
	text-decoration: underline;
	font-weight: 100;

}

body #wppb-form-style-3-wrapper .wppb-checkboxes label.wppb-rc-value {
	display: block;
	width: 100%;
}

body .wppb-form-field:not(#select_user_to_edit_form .wppb-form-field) label {
    width: 100%;
}

.wppb-user-forms .wppb-avatar .file-thumb img {
	border-radius: 100px;
}

.wppb-user-forms.wppb-register-user .wppb-avatar .file-thumb {
	margin-top: -35px;
}

#upload_profilepicture_button {
	border: none;
	width: auto;
}

input#upload_profilepicture_button::-webkit-file-upload-button {
    display: block!important;
    background-color: #013b28!important;
    border: 1px solid #013b28!important;
    color: #fff!important;
    width: fit-content;
    padding: 14px 20px 27px;
    font-weight: 400;
    margin-bottom: 8px;
}

input#upload_profilepicture_button:hover::-webkit-file-upload-button {
	filter: brightness(1.2);
}

form#wppb-edit-user-edit-profile li.wppb-select-user-role {
	display: none;
}

form#wppb-edit-user-edit-profile input[name="phone"]::-webkit-outer-spin-button, form#wppb-edit-user-edit-profile input[name="phone"]::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

form#wppb-edit-user-edit-profile input[name="phone"][type=number] {
  -moz-appearance: textfield;
}

.machuca-profile-setup-page .wp-block-post-title {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

body.machuca-profile-setup-page {
	background: var(--wp--preset--color--background);
}

body.machuca-profile-setup-onboarding > .wp-site-blocks > header.wp-block-template-part,
body.machuca-profile-setup-onboarding > .wp-site-blocks > footer.wp-block-template-part {
	display: none;
}

body.machuca-profile-setup-page .wp-site-blocks > main,
body.machuca-profile-setup-page .wp-site-blocks > main.has-global-padding {
	min-height: 100svh;
	margin: 0 !important;
	margin-block-start: 0 !important;
	padding: 0 !important;
	padding-top: 0 !important;
	padding-block-start: 0 !important;
	padding-bottom: 0 !important;
	padding-block-end: 0 !important;
	padding-right: 0 !important;
	padding-inline-end: 0 !important;
	padding-left: 0 !important;
	padding-inline-start: 0 !important;
	background: var(--wp--preset--color--background);
}

body.machuca-profile-setup-page .wp-site-blocks > main > .wp-block-group.alignfull,
body.machuca-profile-setup-page .wp-site-blocks > main > .wp-block-group.has-global-padding,
body.machuca-profile-setup-page .wp-site-blocks > main > .wp-block-group:has(.machuca-profile-setup) {
	width: 100% !important;
	max-width: none !important;
	margin-top: 0 !important;
	margin-block-start: 0 !important;
	padding-top: 0 !important;
	padding-block-start: 0 !important;
	padding-bottom: 0 !important;
	padding-block-end: 0 !important;
	padding-right: 0 !important;
	padding-inline-end: 0 !important;
	padding-left: 0 !important;
	padding-inline-start: 0 !important;
	background: var(--wp--preset--color--background);
}

body.machuca-profile-setup-page .wp-site-blocks > main .entry-content:has(.machuca-profile-setup),
body.machuca-profile-setup-page .wp-site-blocks > main .wp-block-post-content:has(.machuca-profile-setup) {
	width: 100vw !important;
	max-width: none !important;
	margin-right: calc(50% - 50vw) !important;
	margin-left: calc(50% - 50vw) !important;
	padding: 0 !important;
}

.machuca-profile-setup {
	min-height: 100svh;
	background: var(--wp--preset--color--background);
	color: var(--wp--preset--color--text);
	font-family: var(--wp--preset--font-family--sans);
}

.machuca-profile-setup--account {
	min-height: auto;
	padding: var(--wp--preset--spacing--80) var(--wp--preset--spacing--50);
}

.machuca-profile-setup__topbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: min(100% - 48px, 1180px);
	margin: 0 auto;
	padding: var(--wp--preset--spacing--40) 0;
}

.machuca-profile-setup__brand,
.machuca-profile-setup__help,
.machuca-profile-setup__back {
	display: inline-flex;
	align-items: center;
	color: var(--wp--preset--color--primary);
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 700;
	text-decoration: none;
}

.machuca-profile-setup__brand {
	gap: var(--wp--preset--spacing--30);
	font-size: var(--wp--preset--font-size--md);
	font-weight: 800;
}

.machuca-profile-setup__brand img {
	display: block;
	width: 36px;
	height: 36px;
}

.machuca-profile-setup__help,
.machuca-profile-setup__back {
	border-bottom: 1px solid currentColor;
}

.machuca-profile-setup__help:hover,
.machuca-profile-setup__help:focus,
.machuca-profile-setup__back:hover,
.machuca-profile-setup__back:focus {
	color: var(--wp--preset--color--primary-soft);
	text-decoration: none;
}

.machuca-profile-setup__inner {
	display: grid;
	grid-template-columns: minmax(260px, 0.76fr) minmax(0, 1.24fr);
	gap: var(--wp--preset--spacing--70);
	align-items: start;
	width: min(100% - 48px, 1180px);
	margin: 0 auto;
	padding: var(--wp--preset--spacing--70) 0 var(--wp--preset--spacing--90);
}

.machuca-profile-setup--account .machuca-profile-setup__inner {
	padding: 0;
}

.machuca-profile-setup__intro {
	position: sticky;
	top: var(--wp--preset--spacing--60);
	padding-top: var(--wp--preset--spacing--40);
}

.machuca-profile-setup__eyebrow {
	margin: 0 0 var(--wp--preset--spacing--30);
	color: var(--wp--preset--color--accent);
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 800;
	letter-spacing: 0.08em;
	line-height: 1.2;
	text-transform: uppercase;
}

.machuca-profile-setup__intro h1 {
	margin: 0 0 var(--wp--preset--spacing--40);
	color: var(--wp--preset--color--text);
	font-family: var(--wp--preset--font-family--serif);
	font-size: 40px;
	line-height: 1.08;
}

.machuca-profile-setup__intro p {
	margin: 0;
	max-width: 32rem;
	color: var(--wp--preset--color--text-muted);
	font-size: var(--wp--preset--font-size--base);
	line-height: 1.6;
}

.machuca-profile-setup__checklist {
	display: grid;
	gap: var(--wp--preset--spacing--30);
	margin: var(--wp--preset--spacing--60) 0 0;
	padding: 0;
	list-style: none;
}

.machuca-profile-setup__checklist li {
	position: relative;
	margin: 0;
	padding-left: var(--wp--preset--spacing--40);
	color: var(--wp--preset--color--text);
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 700;
	line-height: 1.45;
	list-style: none !important;
}

.machuca-profile-setup__checklist li::before {
	content: "\2713";
	position: absolute;
	top: 0.1em;
	left: 0;
	width: 18px;
	height: 18px;
	border-radius: 999px;
	background: var(--wp--preset--color--primary-faint);
	color: var(--wp--preset--color--primary);
	font-size: 12px;
	font-weight: 800;
	line-height: 18px;
	text-align: center;
}

.machuca-profile-setup__back {
	margin-top: var(--wp--preset--spacing--60);
}

.machuca-profile-setup__card {
	width: 100%;
	box-sizing: border-box;
	padding: var(--wp--preset--spacing--60);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 16px;
	background: var(--wp--preset--color--surface);
	box-shadow: 0 1px 2px rgba(31,31,31,0.04), 0 2px 8px rgba(31,31,31,0.04);
}

.machuca-profile-setup__form-header {
	margin-bottom: var(--wp--preset--spacing--50);
	padding-bottom: var(--wp--preset--spacing--40);
	border-bottom: 1px solid var(--wp--preset--color--border);
}

.machuca-profile-setup__form-header h2 {
	margin: 0 0 var(--wp--preset--spacing--20);
	color: var(--wp--preset--color--text);
	font-family: var(--wp--preset--font-family--serif);
	font-size: var(--wp--preset--font-size--lg);
	line-height: 1.15;
}

.machuca-profile-setup__form-header p {
	margin: 0;
	color: var(--wp--preset--color--text-muted);
	font-size: var(--wp--preset--font-size--sm);
	line-height: 1.5;
}

.machuca-profile-setup #wppb-form-style-3-wrapper,
.machuca-profile-setup .wppb-user-forms {
	width: 100%;
	max-width: none;
	margin: 0;
	font-family: var(--wp--preset--font-family--sans);
}

.machuca-profile-setup .wppb-user-forms > ul {
	display: grid;
	gap: var(--wp--preset--spacing--40);
	width: 100%;
	margin: 0;
	padding: 0;
	list-style: none;
}

.machuca-profile-setup .wppb-form-field {
	margin: 0 !important;
	padding: 0 !important;
	list-style: none;
}

.machuca-profile-setup #wppb-form-style-3-wrapper .wppb-form-field > label:not(.wppb-epaa-switch),
.machuca-profile-setup .wppb-form-field label:not(.wppb-checkboxes label, .wppb-radios label, .login-remember label, .wppb-epaa-switch) {
	display: block !important;
	float: none !important;
	width: 100% !important;
	min-height: 0 !important;
	margin: 0 0 6px;
	color: var(--wp--preset--color--text);
	font-size: var(--wp--preset--font-size--sm);
	font-style: normal;
	font-weight: 700;
	line-height: 1.35;
	pointer-events: auto !important;
}

.machuca-profile-setup .wppb-required {
	color: var(--wp--preset--color--accent);
}

.machuca-profile-setup input[type="text"],
.machuca-profile-setup input[type="tel"],
.machuca-profile-setup input[type="email"],
.machuca-profile-setup .iti input[type="tel"],
.machuca-profile-setup textarea {
	width: 100% !important;
	float: none !important;
	max-width: 100%;
	box-sizing: border-box;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 8px;
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--text);
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--base);
	font-weight: 500;
}

.machuca-profile-setup input[type="text"],
.machuca-profile-setup input[type="tel"],
.machuca-profile-setup input[type="email"],
.machuca-profile-setup .iti input[type="tel"] {
	height: 48px;
	padding: 0 var(--wp--preset--spacing--40);
}

.machuca-profile-setup textarea {
	min-height: 116px;
	height: 116px !important;
	padding: var(--wp--preset--spacing--40) !important;
	line-height: 1.5;
	resize: vertical;
}

.machuca-profile-setup input[type="text"]:focus,
.machuca-profile-setup input[type="tel"]:focus,
.machuca-profile-setup input[type="email"]:focus,
.machuca-profile-setup textarea:focus {
	border-color: var(--wp--preset--color--primary) !important;
	outline: none;
}

.machuca-profile-setup .iti {
	display: block;
	width: 100%;
}

.machuca-profile-setup .iti__country-list {
	z-index: 10;
	font-family: var(--wp--preset--font-family--sans);
}

.machuca-profile-setup .wppb-description-delimiter,
.machuca-profile-setup .wppb-iti-error {
	display: block;
	float: none !important;
	width: 100% !important;
	max-width: 100%;
	margin-top: var(--wp--preset--spacing--20);
	color: var(--wp--preset--color--text-muted);
	font-size: var(--wp--preset--font-size--xs);
	line-height: 1.45;
}

.machuca-profile-setup .tell-your-story .wppb-description-delimiter {
	color: var(--wp--preset--color--text-muted);
}

.machuca-profile-setup .tell-your-story .wppb-description-delimiter .green-note {
	margin: var(--wp--preset--spacing--20) 0 0;
	color: var(--wp--preset--color--primary);
	font-weight: 700;
}

.machuca-profile-setup .wppb-default-about-yourself-heading {
	margin-top: 30px !important;
	padding-top: 0 !important;
}

.machuca-profile-setup .wppb-default-about-yourself-heading h4 {
	margin: 0 !important;
	color: var(--wp--preset--color--text);
	font-family: var(--wp--preset--font-family--serif);
	font-size: var(--wp--preset--font-size--md);
	line-height: 1.2;
}

.machuca-profile-setup #wppb-form-style-3-wrapper .wppb-avatar {
	display: grid !important;
	grid-template-columns: 88px minmax(0, 1fr);
	column-gap: var(--wp--preset--spacing--40);
	align-items: center;
	margin: 0 !important;
}

.machuca-profile-setup .machuca-profile-photo-preview {
	grid-row: 1 / span 4;
	display: grid;
	place-items: center;
	width: 88px;
	height: 88px;
	border: 2px solid var(--wp--preset--color--border);
	border-radius: 999px;
	background: var(--wp--preset--color--surface);
	overflow: hidden;
}

.machuca-profile-setup .machuca-profile-photo-preview span {
	width: 44px;
	height: 44px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='44' height='44' viewBox='0 0 24 24' fill='none' stroke='%237d8790' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 20c1.8-4 4.7-6 8-6s6.2 2 8 6'/%3E%3C/svg%3E") center / contain no-repeat;
	border: 0;
	border-radius: 0;
}

.machuca-profile-setup .machuca-profile-photo-preview img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.machuca-profile-setup #wppb-form-style-3-wrapper .wppb-avatar > label {
	grid-column: 2;
	grid-row: 1;
	padding: 0 !important;
	margin: 0 0 var(--wp--preset--spacing--20) !important;
	gap: 0 !important;
	position: static !important;
	z-index: auto !important;
}

.machuca-profile-setup #wppb-form-style-3-wrapper .wppb-avatar > label::before,
.machuca-profile-setup #wppb-form-style-3-wrapper .wppb-avatar > label::after {
	content: none !important;
	display: none !important;
}

.machuca-profile-setup #wppb-form-style-3-wrapper .wppb-avatar input[type="file"] {
	grid-column: 2;
	grid-row: 2;
	order: initial !important;
	width: 100%;
	max-width: 320px;
	margin: 0 !important;
	padding: 0 !important;
	float: none !important;
	border: 0;
	color: var(--wp--preset--color--text-muted);
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--xs);
}

.machuca-profile-setup #wppb-form-style-3-wrapper .wppb-avatar input[type="file"]::file-selector-button {
	min-height: 42px;
	margin-right: var(--wp--preset--spacing--30);
	padding: 0 var(--wp--preset--spacing--40);
	border: 1px solid var(--wp--preset--color--primary);
	border-radius: 999px;
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--surface);
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 700;
	cursor: pointer;
}

.machuca-profile-setup #wppb-form-style-3-wrapper .wppb-avatar input[type="file"]:hover::file-selector-button,
.machuca-profile-setup #wppb-form-style-3-wrapper .wppb-avatar input[type="file"]:focus::file-selector-button {
	background: var(--wp--preset--color--primary-soft);
	border-color: var(--wp--preset--color--primary-soft);
}

.machuca-profile-setup #wppb-form-style-3-wrapper .wppb-avatar p#p_simple_upload_profilepicture {
	grid-column: 2;
	grid-row: 3;
	order: initial !important;
	margin: var(--wp--preset--spacing--30) 0 0 !important;
	color: var(--wp--preset--color--text-muted);
	font-size: var(--wp--preset--font-size--xs);
	font-style: normal;
	font-weight: 500;
	line-height: 1.45;
}

.machuca-profile-setup #wppb-form-style-3-wrapper .wppb-avatar p#p_simple_upload_profilepicture::after {
	content: "Use a clear photo of yourself or your family. Do not include contact information.";
}

.machuca-profile-setup #wppb-form-style-3-wrapper .wppb-avatar .upload-field-details,
.machuca-profile-setup #wppb-form-style-3-wrapper .wppb-avatar .wppb-description-delimiter:not(.wppb-epaa-description),
.machuca-profile-setup #wppb-form-style-3-wrapper .wppb-avatar .wppb-avatar-nofile,
.machuca-profile-setup #wppb-form-style-3-wrapper .wppb-avatar .wppb-avatar-file,
.machuca-profile-setup #wppb-form-style-3-wrapper .wppb-avatar span.file-name,
.machuca-profile-setup #wppb-form-style-3-wrapper .wppb-avatar span.file-type,
.machuca-profile-setup #wppb-form-style-3-wrapper .wppb-avatar span.wppb-remove-upload {
	grid-column: 2;
	order: initial !important;
	margin-left: 0 !important;
}

.machuca-profile-setup #wppb-form-style-3-wrapper .wppb-avatar .file-thumb,
.machuca-profile-setup #wppb-form-style-3-wrapper .wppb-avatar div.file-thumb,
.machuca-profile-setup #wppb-form-style-3-wrapper .wppb-avatar > img,
.machuca-profile-setup #wppb-form-style-3-wrapper .wppb-avatar > .avatar,
.machuca-profile-setup #wppb-form-style-3-wrapper .wppb-avatar > svg {
	display: none !important;
}

.machuca-profile-setup form#wppb-edit-user-edit-profile li.wppb-select-user-role {
	display: none !important;
}

.machuca-profile-setup #wppb-form-style-3-wrapper .form-submit {
	margin: var(--wp--preset--spacing--50) 0 0 !important;
	padding: 0 !important;
	border: 0 !important;
}

.machuca-profile-setup input[type="submit"] {
	width: 100%;
	min-height: 48px;
	border: 0;
	border-radius: 999px;
	background: var(--wp--preset--color--primary) !important;
	color: var(--wp--preset--color--surface);
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--base);
	font-weight: 700;
	cursor: pointer;
}

.machuca-profile-setup input[type="submit"]:hover,
.machuca-profile-setup input[type="submit"]:focus {
	background: var(--wp--preset--color--primary-soft) !important;
	box-shadow: none;
}

.machuca-profile-setup .wppb-success,
.machuca-profile-setup .wppb-warning,
.machuca-profile-setup .wppb-error,
.machuca-profile-setup .error {
	margin: 0 0 var(--wp--preset--spacing--40) !important;
	padding: var(--wp--preset--spacing--40);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 16px;
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--text-muted);
	font-size: var(--wp--preset--font-size--sm);
	line-height: 1.45;
}

.machuca-profile-setup .wppb-error,
.machuca-profile-setup .error,
.machuca-profile-setup .wppb-iti-error {
	color: var(--wp--preset--color--accent);
}

.machuca-profile-setup .machuca-google-auth-block {
	margin-top: var(--wp--preset--spacing--50);
}

.machuca-profile-setup .machuca-google-auth-block__divider {
	display: flex;
	align-items: center;
	gap: var(--wp--preset--spacing--30);
	margin-bottom: var(--wp--preset--spacing--30);
	color: var(--wp--preset--color--text-muted);
	font-size: var(--wp--preset--font-size--xs);
	line-height: 1.2;
}

.machuca-profile-setup .machuca-google-auth-block__divider::before,
.machuca-profile-setup .machuca-google-auth-block__divider::after {
	content: "";
	flex: 1;
	height: 1px;
	background: var(--wp--preset--color--border);
}

.machuca-profile-setup__card > hr,
.machuca-profile-setup__card #wppb-form-style-3-wrapper + hr,
.machuca-profile-setup__card .wppb-edit-profile-form + hr {
	display: none;
}

@media only screen and (max-width: 900px) {
	.machuca-profile-setup--account {
		padding: var(--wp--preset--spacing--60) var(--wp--preset--spacing--30);
	}

	.machuca-profile-setup__topbar,
	.machuca-profile-setup__inner {
		width: min(100% - 32px, 680px);
	}

	.machuca-profile-setup__inner {
		grid-template-columns: 1fr;
		gap: var(--wp--preset--spacing--50);
		padding: var(--wp--preset--spacing--50) 0 var(--wp--preset--spacing--80);
	}

	.machuca-profile-setup__intro {
		position: static;
		padding-top: 0;
	}

	.machuca-profile-setup__intro h1 {
		font-size: 32px;
	}

	.machuca-profile-setup__card {
		padding: var(--wp--preset--spacing--50);
	}
}

@media only screen and (max-width: 600px) {
	.machuca-profile-setup__topbar {
		padding: var(--wp--preset--spacing--30) 0;
	}

	.machuca-profile-setup__brand {
		font-size: var(--wp--preset--font-size--base);
	}

	.machuca-profile-setup__inner {
		width: calc(100% - 32px);
		padding-top: var(--wp--preset--spacing--40);
	}

	.machuca-profile-setup__intro h1 {
		font-size: 28px;
	}

	.machuca-profile-setup__card {
		padding: var(--wp--preset--spacing--40);
	}

	.machuca-profile-setup #wppb-form-style-3-wrapper .wppb-avatar {
		grid-template-columns: 72px minmax(0, 1fr) !important;
		column-gap: var(--wp--preset--spacing--30);
	}

	.machuca-profile-setup .machuca-profile-photo-preview {
		width: 72px;
		height: 72px;
	}

	.machuca-profile-setup #wppb-form-style-3-wrapper .wppb-avatar input[type="file"] {
		max-width: 100%;
		margin: 0 !important;
	}

	.machuca-profile-setup #wppb-form-style-3-wrapper .wppb-avatar input[type="file"]::file-selector-button {
		width: 100%;
		margin: 0 0 var(--wp--preset--spacing--20);
	}
}

body #wppb-form-style-3-wrapper a:not(.wppb_upload_button), body #wppb-form-style-3-wrapper a:not(.wppb_upload_button):hover {
	color: #013b28;
}

.change-password-heading + .wppb-default-password label:before {
    content: 'New ';
}

body #wppb-loginform .wppb-form-field input, body.login #affwp-login-form input[type=text], body.login #affwp-login-form input[type=password] {
    width: 100%;
    height: 48px;
    border-radius: 8px;
}


input[type="date"] {
	position: relative;
	width: 100%;
}

input[type="date"]::-webkit-calendar-picker-indicator {
    background: transparent;
    bottom: 0;
    color: transparent;
    cursor: pointer;
    height: 100%;
    left: 0;
    position: absolute;
    right: 0;
    top: 0;
    width: auto;
    z-index: 999;
}

.wpcf7-form input[type="date"]:after, .wpuf-form input[type="date"]:after {
	content: '\f508';
	font-family: dashicons;
	position: absolute;
    right: 4%;
    top: 28%;
}
/* Restricted content 
--------------------------------------- */

body:not(.single-rental) p.sar-restricted {
	margin-top: 20vh;
}


.sar-booking-box p.sar-restricted {
	font-size: 15px;
	text-align: center;
}

p.sar-restricted {
	text-align: center;
}

/* Restricted content — Login/Join pill (Profile Builder restriction messages
   paste raw <ul class="genesis-nav-menu"> markup left over from the old
   Genesis theme; style it to match .auth-nav's pill instead of relying on
   Genesis or block-nav CSS that no longer applies to this markup) */
ul.genesis-nav-menu.sar-restricted {
	display: flex;
	align-items: center;
	justify-content: center;
	list-style: none;
	margin: 12px auto 20vh;
	padding: 0;
	width: 180px;
	border: 1px solid #013b28;
	border-radius: 100px;
	overflow: hidden;
}

ul.genesis-nav-menu.sar-restricted li {
	flex: 1;
	text-align: center;
	margin: 0;
	list-style-type: none;
}

ul.genesis-nav-menu.sar-restricted li a {
	display: block;
	padding: 8px 0;
	font-size: .9rem;
	text-decoration: none;
	color: inherit;
}

ul.genesis-nav-menu.sar-restricted li.sar-restricted-join a {
	background-color: #013b28;
	color: #fff;
	font-weight: 700;
}

/* Site Reviews 
--------------------------------------- */
.sar-property-rating {
	position: relative;
}

.sar-property-rating .glsr {
	position: absolute;
    right: 0px;
    top: 2px;
}

.booking_search_result_item .wpbc_search_result__search_result_reviews.booking_search_result_reviews {
	position: absolute;
    right: 8px;
    top: 12px;
}

.booking_search_result_item .search_results_b .wpbc_search_result__search_result_reviews.booking_search_result_reviews {
	position: absolute;
    right: 10px;
    top: 12px;
}

.sar-property-rating .glsr .glsr-summary-rating, .booking_search_result_reviews .glsr .glsr-summary-rating {
	font-size: 15px;
}

.sar-property-rating .glsr .glsr-summary-rating:before, .booking_search_result_reviews .glsr .glsr-summary-rating:before {
    content: "★";
    font-family: inherit;
    color: #feb903;
    font-size: 12px;
    margin-right: 2px;
    position: relative;
    top: 1px;
}

.glsr-review .glsr-stars .glsr-star {
	background-size: 14px;
    background-repeat: no-repeat;
    height: 14px;
    width: 14px;
}

.glsr-review .glsr-review-avatar img {
	border-radius: 100px;
}

/* The order of a review card is set by the template, not here.
 *
 * These parts used to carry explicit order numbers — avatar 1, name 2, stars 3,
 * date 4, text 5 — because GLSR's own template lays them out flat and in a
 * different sequence, and reordering in CSS was the only lever available.
 *
 * The theme's template now writes the card in the right order to begin with, and
 * it nests: the photo and the name live inside a header, the stars and the date
 * inside the name's column. Order numbers written for flat siblings then apply
 * *within* those boxes and scramble them — the photo jumped to the right of the
 * header, and the stars above the name, because the containers themselves have no
 * number and default to zero, which sorts ahead of all of them.
 *
 * Deleted rather than renumbered: a second opinion about sequence is exactly what
 * caused this, and the template is the one that should hold it. */

.glsr-review .glsr-review-date .glsr-tag-value {
	font-size: small;
    margin-left: -6px;
}


/* Otros
---------------------------------------- */
.center {
	text-align: center;
}

body:not(.home) .wp-block-button.long-term-btn .wp-block-button__link {
	background-color: #013b28;
    border-radius: 100px;
}

.wp-block-button.short-term-btn .wp-block-button__link {
	border-color: #013b28;
    border-radius: 100px;
}

/* Focus is not just a keyboard state: a click leaves it behind. The site-wide
   link rule paints :hover and :focus the same dark green as a filled button's
   own background, so a button that only answers for :hover loses its label the
   moment it is clicked. Every state a link can be left in is answered here. */
body .wp-block-button .wp-block-button__link:hover,
body .wp-block-button .wp-block-button__link:focus,
body .wp-block-button .wp-block-button__link:focus-visible,
body .wp-block-button .wp-block-button__link:active {
	box-shadow: unset;
	color: white;
}

/* Media Queries (propio)
------------------------------------------------ */
@media only screen and (min-width: 600px) {
	.wpuf-submit input[type="submit"] {
	    min-width: 480px;
	}
}

@media only screen and (min-width: 768px) {
	body ul.wpuf-form li.wpuf-el.section_break, body ul.wpuf-form li.wpuf-el.section_break_1 {
		width: 100%;
		float: left;
		margin-top: 40px;
	}

	ul.wpuf-column-fields li.wpuf-el.section_break, li.wpuf-el.section_break_1 {
		margin-top:0;
	}

	ul.wpuf-form li.wpuf-el.fiftypercent {
		width: 50%;
	}

	ul.wpuf-form li.wpuf-el.thirtysixpercent .wpuf-label, body ul.wpuf-form.form-label-above li.property_land_fully_fenced .wpuf-label {
		margin-bottom: 0;
	}

	ul.wpuf-form li.wpuf-el.fiftypercent.left, ul.wpuf-form li.wpuf-el.thirtysixpercent.left, ul.wpuf-form li.left {
		float: left;
	}

	ul.wpuf-form li.wpuf-el.fiftypercent.right, ul.wpuf-form li.wpuf-el.twentyfivepercent.right, ul.wpuf-form li.right {
		float: right;
	}

	ul.wpuf-form input::placeholder {
		color: #ccc;
	}

	ul.wpuf-form li.wpuf-el.twentyfivepercent.right .wpuf-label {
		display: none;
	}

	ul.wpuf-form li.wpuf-el.twentyfivepercent.right .wpuf-radio-block:first-child {
		margin: 0;
		line-height: 1.2;
	}

	.date_range_availability .wpuf-radio-block {
		margin-left: 12px;
	}

	.date_range_availability .wpuf-radio-block input {
		top: 1.5px;
		position: relative;
	}

	.wpuf-submit {
		display: flex;
    	flex-direction: row-reverse;
    	justify-content: flex-start;
    	gap: 1em;
	}

		body ul.wpuf-form > li.rental-type > .wpuf-field-columns > .wpuf-column-field-inner-columns > .wpuf-column > .wpuf-column-inner-fields.column-1,
		.specific-date-repeat .column-1,
		.crtrmvbtn .column-1 {
		width: 47.5%!important;
		margin-right: 5%;
		padding-right: 5%!important;
		border-right: 1px solid #ccc;
	}

	body ul.wpuf-form .sync-cal {
		padding-top: 0;
	}

	.sync-cal .column-1 .section_1311 .wpuf-section-details {
		text-align: left;
	}

	body ul.wpuf-form > li.rental-type > .wpuf-field-columns > .wpuf-column-field-inner-columns > .wpuf-column > .wpuf-column-inner-fields.column-2 {
		width: 47.5%!important;
	}

	body ul.wpuf-form li.wpuf-el.thirtythree {
		width: 33%;
	}

	body ul.wpuf-form li.wpuf-el.thirtythree.left {
		float: left;
	}

	body ul.wpuf-form li.wpuf-el.thirtythree.right {
		float: right;
	}

	body ul.wpuf-form li.wpuf-el.thirtythree.left.min-height {
		min-height: 181px;
	}

	body ul.wpuf-form li.wpuf-el.thirtythree.left.min-width .wpuf-fields {
		max-width: 240px;
	}

	body ul.wpuf-form li.wpuf-el.property_year_built {
		width: 100%;
		float: left;
	}

	body ul.wpuf-form li.wpuf-el.thirtythree.weekly_discount {
		margin-right: .5%;
	}

	.our-fees-table:not(.erp-table) tbody td:not(.has-text-align-center) {
		width: 210px;
	}	
}

@media only screen and (min-width: 782px) {
	.epl-section-description .epl-video-container { 
		margin-top: 60px;
	}

	.mobile-only-782 {
		display: none;
	}

	/* Professional photographers
	------------------------------------------------- */
	.photographers-profile .wp-block-column:first-child .wp-block-group {
		float: right;
		margin-right: 40px;
	}

	.photographers-profile .wp-block-column:nth-child(2) .wp-block-group {
		float: left;
		margin-left: 40px;
	}
}

@media only screen and (min-width: 960px) {
	.sar-booking-group {
		border: 1px solid #eaeaea;
	    border-radius: 12px;
	    padding: 20px 24px;
	    box-shadow: rgba(0, 0, 0, 0.18) 0px 8px 18px;
	/*	margin-right: 20px;*/
	}
}

@media only screen and (min-width: 782px) and (max-width: 879px) {
	.short-term-form button.bm-lc-button:before, .lt-search-form button.bm-lc-button:before {
		font-size: 10px;
	}

	.location-la-ecovilla:not(.post-5555):not(.post-5550):not(.post-5410):not(.post-5407) .short-term-form button.bm-lc-button:after {
		font-size: 9px;
	}
}

@media only screen and (min-width: 782px) and (max-width: 1080px) {
	.lt-booking-block p:first-child, .lt-booking-block p:nth-child(2) {
		flex-basis: 100%;
	}
}

@media only screen and (min-width: 880px) and (max-width: 966px) {
	.short-term-form button.bm-lc-button:before, .lt-search-form button.bm-lc-button:before {
		font-size: 11px;
	}
}


@media only screen and (min-width: 860px) {
	ul.wpuf-form li.wpuf-el.thirtysixpercent.left {
		margin-right: 1.5%;
	}
}




/* Cover header responsive, consolidated at the 768 boundary. The desktop layout
   (title left / tabs right) now starts at 768px, and below 768 the title + tabs
   center & stack. Previously the desktop layout was min-960 and the centering was
   max-959, so the 768–959 range fell into the centered/stacked layout — that's the
   range that looked broken. Both moved to 768 here; the centering rules were pulled
   out of the big ≤959 EPL block below. */
@media only screen and (min-width: 768px) {
	.home .wp-block-cover.homecover .wp-block-buttons {
		margin-right: 7%!important;
		margin-top: -70px;
	}
	.home .wp-block-cover.homecover .wp-block-heading {
		margin-left: 2%!important;
		max-width: 50%;
	}
}
/* Tightest desktop band (768–840): shrink the title + give it a touch more room so
   the title and the tabs still fit on one row. */
@media only screen and (min-width: 768px) and (max-width: 840px) {
	.home .wp-block-cover.homecover .wp-block-buttons {
		margin-right: 5% !important;
	}
	.home .wp-block-cover.homecover .wp-block-heading {
		margin-left: 2% !important;
		max-width: 53%;
		font-size: 25px !important;
	}
}
@media only screen and (max-width: 767px) {
	.home .wp-block-cover.homecover .wp-block-buttons {
		justify-content: center;
		flex-wrap: nowrap;
		gap: 0;
		text-align: center;
	}
	.home .wp-block-cover.homecover .wp-block-heading {
		text-align: center;
	}
	.home .wp-block-cover.homecover .wp-block-spacer {
		display: none;
	}
	.home .wp-block-cover.homecover .wp-block-buttons .wp-block-button {
		width: 50%;
	}
	.home .wp-block-cover.homecover .wp-block-button.short-term-btn a,
	.home .wp-block-cover.homecover .wp-block-button.long-term-btn a {
		width: 100%;
	}
	.home .wp-block-cover.homecover {
		height: unset;
		border-radius: 0px;
	}
}
@media only screen and (min-width: 960px) {
	.mobile-only {
		display: none;
	}
}

@media only screen and (min-width: 1200px) {
	ul.wpuf-form li.wpuf-el.thirtysixpercent {
		width: 36%;
	}

	ul.wpuf-form li.wpuf-el.twentyfivepercent.right {
		margin-top: 38px;
    	width: 25%;
    	font-size: 14px;
	}
}

@media only screen and (max-width: 1199px) {
	ul.wpuf-form li.wpuf-el.thirtysixpercent {
		width: 48%;
	}

	ul.wpuf-form li.wpuf-el.twentyfivepercent.right {
		top: 0;
		width: 100%;
		font-size: 16px;
	}

	ul.wpuf-form li.wpuf-el.twentyfivepercent.right .wpuf-fields .wpuf-radio-block {
		display: inline-block;
	}
}

@media only screen and (max-width: 1080px) {
	body.logged-in .sar-booking-column .sar-booking-group .sar-booking-box .wp-block-button {
		font-size: 12px!important;
	}

	.sar-booking-column .sar-booking-group .sar-booking-box .sar-booking-prices .wp-block-column p {
		font-size: 16px!important;
	}
}

@media only screen and (max-width: 959px) {

	body.home .wp-block-cover__image-background.has-parallax {
    	background-attachment: scroll !important;
    	transform: none !important;
	}


	.desktop-only {
		display: none;
	}

	body.page-id-2660 .content img {
		max-width: 460px;
		width: 100%;
	}

	/* (Cover header centering rules moved to a dedicated ≤767 block above, so 768–959
	   gets the desktop title-left / tabs-right layout. Only the EPL/search-bar rule
	   stays here.) */
	.epl-search-form, #booking_search_form .well.search_container {
		border-radius: 0 0 10px 10px;
		flex-wrap: wrap;
	}


    .home .loop.epl-shortcode .loop-content {
    	padding: 0 15px;
    }

    .epl-search-container .epl-search-form form {
		flex-wrap: wrap;
	}
    .epl-search-forms-wrapper .epl-search-form .epl-property_location, .epl-search-row.epl-property_bedrooms_min {
    	flex-basis: 100%;
    }
    .epl-search-form .epl-search-row.epl-property_price_from {
    	flex-basis: 48%;
    }
    .epl-search-form .epl-search-row.epl-property_price_to {
    	flex-basis: 49%;
    }
    .epl-search-form form .epl-search-submit-row, .epl-search-form form .epl-search-btn, .search_row.search_button {
    	flex-basis: 100%;
    	max-width: unset;
    }
	.epl-search-container .epl-search-form form .epl-search-submit-row input[type="submit"], .epl-search-container .epl-search-form form .epl-search-btn input[type="submit"], #booking_search_form .search_container .search_row.search_button {
		max-width: unset;
		width: 100%;
	}

	.epl-shortcode .epl-property-blog.epl-listing-grid-view, .epl-shortcode .epl-property-blog.epl-listing-grid-view-forced, .epl-shortcode .builder-module-content .epl-property-blog.hentry {
		max-width: unset;
	}



	#booking_search_form .search_container .search_row {
		margin-top: unset;
	}

	.booking_search_form .search_row:nth-child(1) {
		flex-basis: 100%;
	}

	.booking_search_form .search_row:not(.search_button):nth-child(2), .booking_search_form .search_row:not(.search_button):nth-child(3), .booking_search_form .search_row:not(.search_button):nth-child(4), .booking_search_form .search_row:not(.search_button):nth-child(5), .booking_search_form .search_row:not(.search_button):nth-child(6) {
		flex-basis: 48%;
	}

	#booking_search_form .form-inline input.search_booking.wpbc_button_light, .loop .loop-content .epl-property-blog.epl-listing-grid-view {
		max-width: unset;
	}
	
	#booking_search_form form .search_container {
		flex-direction: unset;
	}

	body #booking_search_form .form-inline input.search_booking.wpbc_button_light {
		width: 100%!important;
	}
}

@media only screen and (max-width: 859px) {
	ul.wpuf-form li.wpuf-el.thirtysixpercent {
		width: 100%;
	}

	.epl-section-description .epl-tab-content.tab-content {
		gap: 4%;
	}
}

@media only screen and (max-width: 823px) {
	.location-la-ecovilla:not(.post-5555):not(.post-5550):not(.post-5410):not(.post-5407) .short-term-form button.bm-lc-button:after {
		top: 102px;
	}
}

@media only screen and (max-width: 781px) {

	.home .search-by-communities {
		max-width: 430px;
		margin: 0 auto;
	}

	.epl-section-description .epl-tab-content.tab-content .property-description {
		flex-basis: 100%;
	}

	.machuca-listing-body {
		flex-direction: column;
	}

	.sar-booking-group {
	    position: fixed!important;
	    bottom: 0;
	    left: 0;
	    z-index: 999;
	    background: white;
	    margin-left: 0;
	    width: 100vw;
	    top: unset;
	    border-top: 1px solid #e9e9e9;
	   	max-height: 100%;
	   	overflow-y: scroll;
	}
	.sar-booking-box {
		padding: 12px 0 10px;
    	border: none;	
    	margin-right:0;
	    box-shadow: rgba(0, 0, 0, 0.18) 0px 4px 18px;
	}

	.sar-booking-group .sar-booking-box h3 {
		font-size: 18px;
	}

	.sar-booking-group .sar-booking-box .sar-booking-prices {
		gap: 8px;
	}

	.sar-booking-group .sar-booking-box p {
		margin:0;
	}

	.sar-booking-group .sar-booking-box .sar-booking-prices p {
		font-size: 15px !important;
	}

	.sar-booking-group .sar-booking-box .sar-restricted {
		font-size: 12px;
		margin: 5px 0;
	}
	.sar-booking-group .sar-booking-box .wp-block-buttons, .sar-booking-group .sar-booking-box .booking-btn-footnote {
		gap: 2%;
		padding: 0 1%;
		margin: 5px 0 0;
	}

	.sar-booking-group .sar-booking-box .wp-block-buttons {
		margin-top: 10px;
	}

	.sar-booking-group .sar-booking-box .wp-block-buttons .wp-block-button {
		text-align: center;
	}

	.sar-booking-group .sar-booking-box .wp-block-buttons .wp-block-button a {
		border-radius: 100px;
		padding: 10px 0;
		max-width: 200px;
}

	.sar-booking-group .sar-booking-box .wp-block-buttons .wp-block-button.long-term-btn a {
		border: 2px solid #013b28;
	}

	.sar-booking-group .wp-block-spacer {
		display: none;
	}

	.sar-booking-group .sar-booking-box .wp-block-group__inner-container.is-layout-constrained.wp-block-group-is-layout-constrained {
		max-width: 480px;
		margin: 0 auto;
	}

	body .short-term-form button.bm-lc-button {
		margin-top: 0;
		top: -16px;
	}

	.lt-search-form button.bm-lc-button {
		margin-bottom: 24px;
	}

	body .short-term-form .wpbc_wizard_step.wpbc__form__div.wpbc_wizard_step2 {
		margin-top: 42px;
	}


	.sar-booking-group .wpbc_no_custom_width.cal_month_num_1 {
		margin: 0 auto;
	}

	.wpbc_container_booking_form {
		margin-bottom: 1em;
	}

	.sar-booking-group .lt-booking-form, .sar-booking-group .short-term-form {
		padding: 15px;
		max-width: 480px;
		margin: 20px auto 0;
	}

	.sar-booking-group .is-layout-constrained > p {
		margin-bottom:10px;
	}

	.sar-booking-group .lt-booking-form p {
		font-size: 15px;
    	margin-bottom: 14px;
	}
	.sar-booking-group .lt-booking-form input, .sar-booking-group .lt-booking-form select, .sar-booking-group .lt-booking-form input, .sar-booking-group .lt-booking-form textarea {
    	font-size: 15px;
    	width: 100%;
	}

		body.single-rental .epl-video:has(.epl-video-container) {
		padding: 20px 0;
	}



	.single-rental .epl-author-tab-content.epl-author-current, .archive.author .epl-author-tab-content.epl-author-current {
		flex-wrap: wrap;
	}

	.single-rental .first-class-columns {
		display: block;
	}

	body .epl-author-box-container .epl-author-box-outer-wrapper {
		display: flex;
		flex-direction: column;
	}


	.wpuf-submit input[type="submit"], .wpuf-submit #wpuf-post-draft {
		width: 100%;
	}

	.wpuf-submit #wpuf-post-draft {
		display: block;
		margin-top: 10px;
		padding: 10px;
	}

	.agent-photo-ad {
		gap: 3em;
	}

	body.single-ph .wp-block-columns {
		max-width: 600px;
		margin: 0 auto;
	}

	body.single-ph	.ph-profile-sticky .pm-profile-img img {
		border-radius: 10px;
	}

	.desktop-only-782 {
		display: none;
	}

	.epl-author-box-container .epl-author-box.epl-author-image {
		display: flex;
		padding-right: 0;
		justify-content: center;
	}

	.epl-author-box-container .epl-author-box.epl-author-image.author-box .avatar {
		margin-right: 0;
	}

	.epl-author-box-container .epl-author-contact-details.author-contact-details h5 {
		text-align: center;
		margin-top: 15px;
	}

	.epl-author-box-container .epl-author-contact-details, .epl-author-box-container .epl-author-social-buttons.author-social-buttons {
        width: 100%;
        text-align: center;
    }

	body.about-us .about-us-squares {
		max-width: 360px;
	}

}

@media only screen and (max-width: 768px) {
	
	body .loop .loop-content, .booking_search_ajax_container .wp-block-group__inner-container, #booking_search_results .booking_search_ajax_container, .booking_search_ajax_container {
	    grid-template-columns: repeat(auto-fill, 45%);
	}

	body ul.wpuf-form.form-label-above li.field-size-medium .wpuf-fields {
		width: 100%;
	}

	body ul.wpuf-form .wpuf-field-columns.has-columns-3 .wpuf-column .wpuf-column-inner-fields, body ul.wpuf-form.form-label-above li.field-size-small .wpuf-fields {
		width: 100%!important;
	}


	body ul.wpuf-form li.rental_type .wpuf-fields {
		flex-direction: column;
		gap: 12px;
	}

		body ul.wpuf-form > li.rental-type > .wpuf-field-columns > .wpuf-column-field-inner-columns > .wpuf-column > .wpuf-column-inner-fields.column-1,
		body ul.wpuf-form > li.rental-type > .wpuf-field-columns > .wpuf-column-field-inner-columns > .wpuf-column > .wpuf-column-inner-fields.column-2,
		.specific-date-repeat .column-1,
		.crtrmvbtn .column-1 {
		width: 100%!important;
		margin-right: unset;
		padding-right: unset;
		border: unset;	
	}

	body ul.wpuf-form > li.rental-type > .wpuf-field-columns > .wpuf-column-field-inner-columns > .wpuf-column {
		display: flex;
	    flex-direction: column-reverse;
	    gap: 20px;
	}

	.our-fees-table th, .our-fees-table td, .our-fees-table tr {
		font-size: medium;
	}

	/* ---------------- Neighborhoods --------------- */
	
	body.archive.tax-location .loop-header ul {
	    justify-content: center;

	}

}

@media only screen and (max-width: 600px) {
	button.bm-lc-button, button.bm-lc-button:hover, button.bm-lc-button:focus {
		min-width: unset;
		width: 100%;
	}

	.our-fees-table th, .our-fees-table td, .our-fees-table tr {
		font-size: small;
	}

	.our-fees-table thead th a {
		font-size: x-small;
	}

	.our-fees-table thead th strong:before {
	    zoom: 7%;
	}

	/* ---------------- Neighborhoods --------------- */
		
	body.archive.tax-location .archive-description p {
		padding: 0 10px;
	}

}

@media only screen and (max-width: 900px) {
	body.machuca-auth-flow-page .wp-site-blocks > main,
	body.machuca-auth-flow-page .wp-site-blocks > main.has-global-padding {
		min-height: 100svh;
		padding: 0 !important;
	}

	.machuca-auth-page {
		grid-template-columns: 1fr;
		min-height: 100svh;
	}

	.machuca-auth-page__brand {
		top: var(--wp--preset--spacing--40);
		left: var(--wp--preset--spacing--30);
		color: var(--wp--preset--color--primary);
	}

	.machuca-auth-page__brand img {
		filter: none;
	}

	.machuca-auth-page__back {
		left: var(--wp--preset--spacing--30);
		bottom: var(--wp--preset--spacing--30);
		color: var(--wp--preset--color--primary);
	}

	.machuca-auth-page__back:hover,
	.machuca-auth-page__back:focus {
		color: var(--wp--preset--color--primary);
		text-decoration: none;
	}

	.machuca-auth-page__media {
		display: none;
	}

	.machuca-auth-page__form {
		min-height: 100svh;
		padding: var(--wp--preset--spacing--80) var(--wp--preset--spacing--30) var(--wp--preset--spacing--90);
	}
}

@media only screen and (max-width: 500px) {
	body .wppb-form-field.wppb-default-password button.wppb-toggle-pw, body .wppb-form-field.wppb-default-repeat-password button.wppb-toggle-pw, body #wppb-login-wrap .login-password button.wppb-toggle-pw {
    	top: 51px!important;
	}

	.machuca-auth-page .wppb-form-field.wppb-default-password button.wppb-toggle-pw,
	.machuca-auth-page .wppb-form-field.wppb-default-repeat-password button.wppb-toggle-pw {
		top: 50% !important;
	}
}

@media only screen and (max-width: 480px) {






	#booking_search_form .wpbc_container_search_form.wpbc_container_search_form #search_field__display_check_in.hasDatepick, #booking_search_form .wpbc_container_search_form.wpbc_container_search_form #search_field__display_check_out.hasDatepick {
		font-size: 14px;
    	padding: 8px 0 9px 10px;
	}

	body .loop .loop-content, .booking_search_ajax_container .wp-block-group__inner-container, #booking_search_results .booking_search_ajax_container, .booking_search_ajax_container {
	    grid-template-columns: repeat(auto-fill, 100%);
	}

	.loop .loop-content {
    	gap: 40px;
	}

	body.login article.entry,
	article.entry:has(.wppb-register-user),
	body:not(.login) .entry-content:has(.wppb-register-user) {
	border: unset;
	box-shadow: unset;
	}

	.our-fees-table thead th strong:after {
		content: ''!important;
	}

	.our-fees-table tbody tr td:after {
		font-size: 9px;
	}

	.our-fees-table thead th:nth-child(2), .our-fees-table thead th:nth-child(3) {
		min-width: 28vw;
	}
}

/* Media Queries
---------------------------------------------------------------------------- */

@media only screen and (min-width: 480px) {

	table {
		table-layout: auto;
		word-break: normal;
	}

}


/* Print Styles
---------------------------------------------------------------------------- */

@media print {

	*,
	*::before,
	*::after {
		background: transparent !important;
		box-shadow: none !important;
		color: #333 !important;
		text-shadow: none !important;
	}

	a,
	a:visited {
		text-decoration: underline;
	}

	a[href]::after {
		content: " (" attr(href) ")";
	}

	abbr[title]::after {
		content: " (" attr(title) ")";
	}

	a[href^="javascript:"]::after,
	a[href^="#"]::after,
	.site-title > a::after {
		content: "";
	}

	thead {
		display: table-header-group;
	}

	img,
	tr {
		page-break-inside: avoid;
	}

	img {
		max-width: 100% !important;
	}

	@page {
		margin: 2cm 0.5cm;
	}

	p,
	h2,
	h3 {
		orphans: 3;
		widows: 3;
	}

	blockquote,
	pre {
		border: 1px solid #999;
		page-break-inside: avoid;
	}

	.content,
	.content-sidebar {
		width: 100%;
	}

	button,
	input,
	select,
	textarea,
	.breadcrumb,
	.comment-edit-link,
	.comment-form,
	.comment-list .reply a,
	.comment-reply-title,
	.edit-link,
	.entry-comments-link,
	.entry-footer,
	.header-widget-area,
	.hidden-print,
	.home-top,
	.post-edit-link,
	.sidebar {
		display: none !important;
	}

	.author-box {
		margin-bottom: 0;
	}

	h1,
	h2,
	h3,
	h4,
	h5,
	h6 {
		orphans: 3;
		page-break-after: avoid;
		page-break-inside: avoid;
		widows: 3;
	}


	img {
		page-break-after: avoid;
		page-break-inside: avoid;
	}

	blockquote,
	pre,
	table {
		page-break-inside: avoid;
	}

	dl,
	ol,
	ul {
		page-break-before: avoid;
	}

}


/* Body text colour — set here instead of theme.json styles.color.text
   to avoid WordPress generating .has-text-color { color: text !important }
   which overrides editor-set block colours. */
body {
	color: var(--wp--preset--color--text);
}

/* ==========================================================================
   Colour class precedence fix
   WordPress's global-styles-inline generates .has-text-color last, so it
   overrides specific palette colours set in the editor. style.css loads
   after the inline block — .has-text-color is declared first here so every
   specific palette class that follows it wins via cascade order.
   ========================================================================== */
.has-text-color             { color: var(--wp--preset--color--text) !important; }
.has-primary-color          { color: var(--wp--preset--color--primary) !important; }
.has-primary-soft-color     { color: var(--wp--preset--color--primary-soft) !important; }
.has-primary-faint-color    { color: var(--wp--preset--color--primary-faint) !important; }
.has-accent-color           { color: var(--wp--preset--color--accent) !important; }
.has-accent-soft-color      { color: var(--wp--preset--color--accent-soft) !important; }
.has-accent-faint-color     { color: var(--wp--preset--color--accent-faint) !important; }
.has-background-color       { color: var(--wp--preset--color--background) !important; }
.has-surface-color          { color: var(--wp--preset--color--surface) !important; }
.has-text-muted-color       { color: var(--wp--preset--color--text-muted) !important; }
.has-text-subtle-color      { color: var(--wp--preset--color--text-subtle) !important; }
.has-border-color           { color: var(--wp--preset--color--border) !important; }
.has-border-strong-color    { color: var(--wp--preset--color--border-strong) !important; }
.has-status-pending-color   { color: var(--wp--preset--color--status-pending) !important; }
.has-status-accepted-color  { color: var(--wp--preset--color--status-accepted) !important; }
.has-status-declined-color  { color: var(--wp--preset--color--status-declined) !important; }
.has-status-canceled-color  { color: var(--wp--preset--color--status-canceled) !important; }
.has-status-expired-color   { color: var(--wp--preset--color--status-expired) !important; }
.has-status-awaiting-color  { color: var(--wp--preset--color--status-awaiting) !important; }


/* ==========================================================================
   Avatar dropdown menu
   ========================================================================== */

.machuca-avatar-menu {
	position: relative;
	display: inline-flex;
	align-items: center;
	/* The single source of spacing between bell, messages and avatar. It used to
	   come from two places at once — this gap AND a margin on each control — so
	   the narrow-phone rules zeroed the margins and left the three sitting 4px
	   apart, which is what made the cluster feel crowded. One owner, one number
	   per breakpoint. */
	gap: var(--wp--preset--spacing--20);
}

/* Trigger pill */
.machuca-avatar-trigger {
	display: inline-flex;
	align-items: center;
	gap: var(--wp--preset--spacing--20);
	background-color: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 999px;
	padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--30);
	cursor: pointer;
	transition: border-color 180ms ease-out;
	line-height: 1;
}

.machuca-avatar-trigger:hover,
.machuca-avatar-trigger:focus,
.machuca-avatar-trigger:focus-visible,
.machuca-avatar-trigger:active,
.machuca-avatar-trigger[aria-expanded="true"] {
	background-color: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--border);
	color: inherit;
}

.machuca-avatar-img {
	width: 32px;
	height: 32px;
	border-radius: 50%;
	object-fit: cover;
	display: block;
}

/* Now an inline SVG rather than the ☰ character (see machuca-nav.php), so it
   sizes off the box instead of off a font that may not carry the glyph. */
.machuca-avatar-burger {
	display: inline-flex;
	align-items: center;
	color: var(--wp--preset--color--text-muted);
	line-height: 1;
}

/* ── Why the header row wraps on narrow phones ────────────────────────────────
   It is a flexbox rule, not a shortage of space. A flex item defaults to
   `min-width: auto`, which refuses to shrink below its own content — so the
   site title holds the full width of "Machuca Homes" as one unbreakable demand,
   and the controls get pushed onto a second line rather than the title giving
   up a pixel.

   This half is the permission to shrink, and it is not sufficient on its own: a
   wrapping flex container decides its line breaks from items' base sizes, so
   the row still breaks before any shrinking happens. The other half — capping
   the title to `min-content` so it genuinely becomes two lines — is in the
   480px block below. Kept unconditional because it changes nothing at widths
   where there is room. */
.site-header .wp-block-site-title {
	min-width: 0;
	align-self: center;
}

.site-header .wp-block-site-title a {
	display: block;
	line-height: 1.1;
}

/* The logo and the three controls are fixed-size; the shrinking is the title's
   job alone, or the icons deform instead. */
.site-header .wp-block-site-logo,
.machuca-avatar-menu {
	flex-shrink: 0;
}

/* Header control order, left to right: bell, messages, avatar. All three are
   placed after the avatar button in the DOM (wpautop safety, see
   machuca-nav.php) and pulled back into reading order here — the bell carries
   order: -2 in the Notifications stylesheet, so messages sits at -1, between it
   and the avatar. */
.machuca-messages {
	position: relative;
	display: inline-flex;
	align-items: center;
	order: -1;
}

/* Deliberately the same pill as .bns-bell-trigger: two header controls that do
   the same kind of job must not look like two different decisions. */
.machuca-messages-trigger {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	background-color: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 999px;
	color: var(--wp--preset--color--text);
	cursor: pointer;
	transition: border-color 180ms ease-out;
	line-height: 1;
	padding: 0;
}

.machuca-messages-trigger:hover,
.machuca-messages-trigger:focus,
.machuca-messages-trigger:focus-visible,
.machuca-messages-trigger:active {
	background-color: var(--wp--preset--color--primary-faint);
	border-color: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--primary);
}

.machuca-messages-trigger:focus-visible {
	box-shadow: 0 0 0 3px var(--wp--preset--color--primary-faint);
	outline: 2px solid transparent;
	outline-offset: 2px;
}

/* The badge carries Better Messages' .bpbmuc class purely so its script keeps
   the number live. Its stylesheet loads on every page and sizes .bpbmuc as a
   15px circle in its own brand colour, so every property it sets is restated
   here — from a two-class selector, because relying on which stylesheet happens
   to load last is not a decision, it is a coin toss. */
.machuca-messages-trigger .machuca-messages-badge {
	position: absolute;
	top: -4px;
	right: -4px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: auto;
	min-width: 18px;
	height: 18px;
	padding: 0 5px;
	margin: 0;
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--surface);
	font-size: 11px;
	font-weight: 700;
	line-height: 1;
	border-radius: 999px;
	vertical-align: baseline;
}

/* Zero is not news. Better Messages rewrites data-count as threads are read,
   so the badge hides and reappears on its own. */
.machuca-messages-badge[data-count="0"] {
	display: none;
}

/* Dropdown panel */
.machuca-avatar-panel {
	position: absolute;
	top: calc(100% + 8px);
	right: 0;
	min-width: 200px;
	max-width: 280px;
	background-color: var(--wp--preset--color--surface);
	border-radius: 16px;
	box-shadow: 0 8px 32px rgba(31, 31, 31, 0.12);
	padding: var(--wp--preset--spacing--30);
	z-index: 300;
}

.machuca-avatar-panel[hidden] {
	display: none;
}

/* Menu list */
.machuca-profile-menu-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.machuca-profile-item {
	display: block;
}

.machuca-profile-item a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
	border-radius: 8px;
	color: var(--wp--preset--color--text);
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 500;
	text-decoration: none;
	transition: background-color 180ms ease-out, color 180ms ease-out;
}

.machuca-profile-item a:hover {
	background-color: var(--wp--preset--color--primary-faint);
	color: var(--wp--preset--color--primary);
}

.machuca-profile-item a:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: -2px;
	border-radius: 8px;
}

/* Unread badge */
.machuca-profile-badge {
	display: inline-flex;
	align-items: center;
	background-color: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--surface);
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 700;
	padding: var(--wp--preset--spacing--10) var(--wp--preset--spacing--20);
	border-radius: 999px;
	line-height: 1;
	margin-left: var(--wp--preset--spacing--30);
}

/* Logout separator item */
.machuca-profile-logout {
	border-top: 1px solid var(--wp--preset--color--border);
	margin-top: var(--wp--preset--spacing--20);
	padding-top: var(--wp--preset--spacing--20);
}


/* ==========================================================================
   Listing card + grid + pagination  (Phase 4)
   ========================================================================== */

/* Grid */
.machuca-listings-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(320px, 100%), 1fr));
	gap: var(--wp--preset--spacing--50);
	max-width: var(--wp--style--global--wide-size);
	margin-left: auto;
	margin-right: auto;
	padding: 0 var(--wp--preset--spacing--50);
}

@media (max-width: 600px) {
	.machuca-listings-grid { grid-template-columns: 1fr; }
}

/* "View all rentals" link under an embedded grid ([machuca_listings view_all="1"]) */
.machuca-listings-viewall {
	text-align: center;
	margin-top: var(--wp--preset--spacing--50);
}

.machuca-listings-viewall-btn {
	display: inline-block;
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 600;
	color: var(--wp--preset--color--surface);
	background-color: var(--wp--preset--color--primary);
	text-decoration: none;
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--50);
	border-radius: 999px;
	transition: background-color 160ms ease-out;
}

.machuca-listings-viewall-btn:hover, .machuca-listings-viewall-btn:focus {
	background-color: var(--wp--preset--color--primary-soft);
	color: var(--wp--preset--color--surface);
}

/* Card */
.machuca-listing-card {
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 16px;
	overflow: hidden;
	box-shadow: 0 1px 2px rgba(31,31,31,.04), 0 2px 8px rgba(31,31,31,.04);
	transition: box-shadow 200ms ease-out, transform 200ms ease-out;
}

.machuca-listing-card:hover {
	box-shadow: 0 2px 4px rgba(31,31,31,.05), 0 8px 24px rgba(31,31,31,.08);
	transform: translateY(-2px);
}

.machuca-card-link {
	display: flex;
	flex-direction: column;
	height: 100%;
	color: inherit;
	text-decoration: none;
}

/* Image */
.machuca-card-image {
	position: relative;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: var(--wp--preset--color--border);
}

.machuca-card-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 300ms ease-out;
}

.machuca-listing-card:hover .machuca-card-img {
	transform: scale(1.03);
}

.machuca-card-no-img {
	width: 100%;
	height: 100%;
	background: var(--wp--preset--color--primary-faint);
}

/* Rating (inline with title) */
.machuca-card-rating {
	position: absolute;
	top: var(--wp--preset--spacing--20);
	right: var(--wp--preset--spacing--40);
	display: inline-flex;
	align-items: center;
	gap: 2px;
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 700;
	color: var(--wp--preset--color--text-muted);
	white-space: nowrap;
}

.machuca-rating-star {
	color: var(--wp--preset--color--accent);
	font-size: 0.9em;
	line-height: 1;
}

/* Body */
.machuca-card-body {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	/* Breathing room under the in-body price (browse cards); zeroed below
	   when the ST stay-price footer follows the body instead. */
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--50) var(--wp--preset--spacing--20);
	flex: 1;
}

.machuca-listing-card:has(.machuca-card-footer) .machuca-card-body {
	padding-bottom: 0;
}

/* En el perfil del anfitrión y en el modal de sus alojamientos la tarjeta no lleva el
   pie de precio por estadía, así que el precio queda pegado al borde de abajo. Estas
   dos grillas le devuelven el aire; las tarjetas de búsqueda quedan como están. */
.machuca-profile-listings .machuca-listing-card:not(:has(.machuca-card-footer)) .machuca-card-body,
.machuca-listings-popup .machuca-listing-card:not(:has(.machuca-card-footer)) .machuca-card-body {
	padding-bottom: var(--wp--preset--spacing--40);
}

.machuca-card-title {
	font-family: var(--wp--preset--font-family--serif);
	font-size: calc(var(--wp--preset--font-size--base) + 2px);
	font-weight: 600;
	color: var(--wp--preset--color--text);
	margin: 6px 0 0;
	line-height: 1.25;
	transition: color 180ms ease-out;
}

.machuca-card-link:hover .machuca-card-title {
	color: var(--wp--preset--color--primary);
}

.machuca-card-location-pill {
	position: absolute;
	top: 12px;
	left: 12px;
	z-index: 1;
	display: inline-flex;
	align-items: center;
	gap: 5px;
	max-width: calc(100% - 24px);
	padding: 5px 10px 5px 8px;
	border: 1px solid rgba(255, 255, 255, 0.72);
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.9);
	box-shadow: 0 8px 18px rgba(26, 40, 32, 0.12);
	font-family: var(--wp--preset--font-family--sans);
	font-size: 12px;
	font-weight: 500;
	line-height: 1.2;
	color: var(--wp--preset--color--text, #1a2820);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

@supports ((-webkit-backdrop-filter: blur(8px)) or (backdrop-filter: blur(8px))) {
	.machuca-card-location-pill {
		background: rgba(255, 255, 255, 0.78);
		-webkit-backdrop-filter: blur(8px);
		backdrop-filter: blur(8px);
	}
}

.machuca-card-type {
	font-family: var(--wp--preset--font-family--sans);
	font-size: 13px;
	font-weight: 400;
	line-height: 1.25;
	color: var(--wp--preset--color--text-muted);
	margin: 0;
}

/* Meta */
.machuca-card-meta {
	display: flex;
	align-items: center;
	justify-content: space-evenly;
	flex-wrap: wrap;
	gap: 10px 14px;
	padding: 10px 0 12px;
	width: 100%;
	max-width: 300px;
	margin-inline: auto;
}

.machuca-meta-item {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 4px;
	min-width: 0;
	font-family: var(--wp--preset--font-family--sans);
	font-size: 14px;
	font-weight: 400;
	line-height: 1;
	color: #5a615b;
	white-space: nowrap;
}

.machuca-meta-item[data-tooltip]::after {
	content: attr(data-tooltip);
	position: absolute;
	left: 50%;
	top: calc(100% + 4px);
	z-index: 3;
	transform: translateX(-50%) translateY(3px);
	padding: 0;
	background: transparent;
	color: var(--wp--preset--color--text-muted, #6b6b6b);
	font-size: 11px;
	font-weight: 500;
	line-height: 1;
	opacity: 0;
	pointer-events: none;
	white-space: nowrap;
	transition: opacity 140ms ease, transform 140ms ease;
}

.machuca-meta-item[data-tooltip]::before {
	display: none;
}

.machuca-meta-item-pets[data-tooltip]::after {
	top: calc(100% - 4px);
}

@media (hover: hover) and (pointer: fine) {
	.machuca-meta-item[data-tooltip]:hover::after {
		opacity: 1;
		transform: translateX(-50%) translateY(0);
	}
}

@media (hover: none), (pointer: coarse) {
	.machuca-meta-item[data-tooltip]::before,
	.machuca-meta-item[data-tooltip]::after {
		display: none;
	}
}

.machuca-icon-sprite {
	position: absolute;
	width: 0;
	height: 0;
	overflow: hidden;
	visibility: hidden;
	pointer-events: none;
}

.machuca-meta-icon {
	display: block;
	flex-shrink: 0;
	color: currentColor;
}

.machuca-meta-icon-bedroom {
	width: 30px;
	height: 16px;
}

.machuca-meta-icon-bedplaces {
	width: 22px;
	height: 22px;
}

.machuca-meta-icon-bathroom {
	width: 20px;
	height: 20px;
}

.machuca-meta-icon-guests {
	--machuca-guest-primary: #6a706b;
	--machuca-guest-secondary: #8fa58b;
	width: 22px;
	height: 22px;
	margin-right: 0;
}

.machuca-meta-icon-pets {
	--machuca-pet-secondary: #8fa58b;
	width: 24px;
	height: 24px;
	padding: 1px;
	margin-top: 8px;
}

.machuca-meta-icon-location {
	width: 13px;
	height: 13px;
}

/* Pricing */
.machuca-card-pricing {
	display: flex;
	width: 100%;
	margin-top: auto;
}

.machuca-card-pricing.has-both {
	border-top: 1px solid var(--wp--preset--color--border);
}

.machuca-card-pricing.has-both .machuca-price-block {
	flex: 1;
	padding-top: var(--wp--preset--spacing--30);
}

.machuca-card-pricing.has-both .machuca-price-block:first-child {
	border-right: 1px solid var(--wp--preset--color--border);
	padding-right: var(--wp--preset--spacing--30);
}

.machuca-card-pricing.has-both .machuca-price-block:last-child {
	padding-left: var(--wp--preset--spacing--30);
}

/* Browse ST prices use the same clickable two-night receipt as search
   results, fitted into the existing one/two-column card price block. */
.machuca-card-pricing .machuca-st-stay-pricing {
	flex: 1;
	padding: 0;
}

.machuca-card-pricing.has-both .machuca-st-stay-pricing {
	padding-top: var(--wp--preset--spacing--30);
	padding-right: var(--wp--preset--spacing--30);
	border-right: 1px solid var(--wp--preset--color--border);
}

/* Las tarjetas mixtas ya no fuerzan su propia columna: desde que la duración
   ocupa la línea entera por sí sola (ver el final de este archivo), el importe
   arriba y la duración abajo salen igual en las tres tarjetas — corta, larga y
   mixta. Apilar en columna además separaba el tachado del descuento del importe
   al que corresponde, que es justo donde se compara. */
.machuca-card-pricing.has-both .machuca-st-price .machuca-price-line {
	align-items: center;
	gap: 2px;
}

.machuca-card-pricing .machuca-st-price {
	min-height: 0;
	padding: 0;
	border-top: 0;
}

.machuca-card-pricing .machuca-st-price:hover,
.machuca-card-pricing .machuca-st-price:focus,
.machuca-card-pricing .machuca-st-price:active {
	border-top: 0 !important;
}

.machuca-card-pricing.has-one {
	justify-content: center;
	padding-top: var(--wp--preset--spacing--30);
	border-top: 1px solid var(--wp--preset--color--border);
}

.machuca-price-block {
	display: flex;
	flex-direction: column;
	align-items: center;
}

.machuca-price-amount {
	font-family: var(--wp--preset--font-family--sans);
	font-size: calc(var(--wp--preset--font-size--base) + 2px); /* match card title */
	font-weight: 700;
	color: var(--wp--preset--color--text);
	line-height: 1.2;
}

.machuca-price-period {
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 500;
	color: var(--wp--preset--color--text);
}


/* Archive wrapper */
.machuca-archive {
	padding: 0;
}

.machuca-archive-header {
	text-align: center;
	padding: 0 var(--wp--preset--spacing--50);
	max-width: var(--wp--style--global--wide-size);
	margin: 0 auto;
}

.machuca-archive-title {
	font-family: var(--wp--preset--font-family--serif);
	font-size: var(--wp--preset--font-size--xl);
	font-weight: 700;
	color: var(--wp--preset--color--text);
	margin: 0 0 var(--wp--preset--spacing--50);
}

.machuca-archive-description {
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--md);
	color: var(--wp--preset--color--text-muted);
	max-width: 42rem;
	margin: 0 auto;
}

/* Place archive — hero (component spec 19) */
.machuca-place-hero-wrap {
	padding: 0;
	margin-top: 0;
}

.machuca-place-hero {
	position: relative;
	width: 100%;
	margin: 0;
	min-height: 300px;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	border-radius: 0;
	overflow: hidden;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}

/* Clean fallback when no community_hero_image is set */
.machuca-place-hero--fallback {
	background-image: linear-gradient(135deg, var(--wp--preset--color--primary) 0%, var(--wp--preset--color--primary-soft) 100%);
}

/* Even scrim so centered white text stays legible over any photo */
.machuca-place-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(31, 31, 31, 0.5);
}

.machuca-place-hero--fallback::after {
	display: none;
}

.machuca-place-hero-inner {
	position: relative;
	z-index: 1;
	max-width: 46rem;
	padding: var(--wp--preset--spacing--60) var(--wp--preset--spacing--50);
}

.machuca-place-hero-title {
	font-family: var(--wp--preset--font-family--serif);
	font-size: var(--wp--preset--font-size--xxl);
	font-weight: 700;
	line-height: 1.1;
	color: var(--wp--preset--color--surface);
	margin: 0;
	text-shadow: 0 1px 14px rgba(0, 0, 0, 0.35);
}

.machuca-place-hero-tagline {
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--md);
	color: var(--wp--preset--color--surface);
	margin: var(--wp--preset--spacing--30) auto 0;
	text-shadow: 0 1px 10px rgba(0, 0, 0, 0.35);
}

/* Back link */
.machuca-archive-back {
	max-width: var(--wp--style--global--wide-size);
	margin: 0 auto;
	padding: 0 var(--wp--preset--spacing--50);
}

.machuca-archive-back a {
	display: inline-flex;
	align-items: center;
	gap: var(--wp--preset--spacing--20);
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 600;
	color: var(--wp--preset--color--primary);
	text-decoration: none;
	transition: color 160ms ease-out;
}

.machuca-archive-back a:hover {
	color: var(--wp--preset--color--primary-soft);
}

/* Sub-place pills */
.machuca-subplace-pills {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--wp--preset--spacing--20);
	margin: 0;
	padding: 0;
}

.machuca-subplace-pill {
	display: inline-block;
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 500;
	color: var(--wp--preset--color--text);
	text-decoration: none;
	padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--40);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 999px;
	transition: background-color 160ms ease-out, border-color 160ms ease-out, color 160ms ease-out;
}

.machuca-subplace-pill:hover {
	background-color: var(--wp--preset--color--primary);
	border-color: transparent;
	color: var(--wp--preset--color--surface);
}

/* Empty state (component spec 9) */
.machuca-archive-empty {
	text-align: center;
	max-width: 38rem;
	margin: 0 auto;
	padding: var(--wp--preset--spacing--60) var(--wp--preset--spacing--50);
}

.machuca-archive-empty-title {
	font-family: var(--wp--preset--font-family--serif);
	font-size: var(--wp--preset--font-size--lg);
	font-weight: 700;
	color: var(--wp--preset--color--text);
	margin: 0 0 var(--wp--preset--spacing--30);
}

.machuca-archive-empty-text {
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--md);
	color: var(--wp--preset--color--text-muted);
	margin: 0 0 var(--wp--preset--spacing--50);
}

.machuca-archive-empty-btn {
	display: inline-block;
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 600;
	color: var(--wp--preset--color--surface);
	background-color: var(--wp--preset--color--primary);
	text-decoration: none;
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--50);
	border-radius: 999px;
	transition: background-color 160ms ease-out;
}

.machuca-archive-empty-btn:hover {
	background-color: var(--wp--preset--color--primary-soft);
}

/* ── Community contextual search module ──────────────────────────────────── */
.machuca-community-search {
	margin: var(--wp--preset--spacing--50) 0 var(--wp--preset--spacing--60);
}

.mcs-tabs {
	display: flex;
	width: fit-content;
	max-width: 100%;
	gap: 4px;
	padding: 4px;
	margin: 0 auto var(--wp--preset--spacing--40);
	background-color: var(--wp--preset--color--surface-muted, #f1efe9);
	border-radius: 999px;
}

.mcs-tab {
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 600;
	color: var(--wp--preset--color--primary);
	text-decoration: none;
	padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--50);
	border-radius: 999px;
	transition: background-color 160ms ease-out, color 160ms ease-out;
}

.mcs-tab:hover {
	background-color: var(--wp--preset--color--primary-faint, rgba(47, 74, 58, 0.08));
}

.mcs-tab.is-active {
	color: var(--wp--preset--color--surface);
	background-color: var(--wp--preset--color--primary);
}

/* Only one engine panel is ever shown — switching panels is not card filtering. */
.mcs-panel[hidden] {
	display: none;
}

.mcs-facets {
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--30);
	margin-bottom: var(--wp--preset--spacing--40);
}

.mcs-results {
	margin-top: var(--wp--preset--spacing--40);
}

/*
 * Hide the Short-stay neighborhood control completely. Its value is fixed to the
 * current community (the archive URL) and still submitted as the real WPBC search
 * field — this locks the search to this community and is NOT a CSS filter of
 * result cards. JS also hides it (community-search-tabs.js) for markup that has
 * no .search_row wrapper; this rule is the no-JS / first-paint fallback.
 */
.machuca-community-search .search_row:has([name="neighborhood"]),
.machuca-community-search [name="neighborhood"] {
	display: none !important;
}

/*
 * jQuery UI datepicker popup singleton (created at runtime by the GF "LT Search"
 * date fields, appended to <body>). Its resting state must be hidden — jQuery UI
 * reveals it with an inline display on field focus, which overrides this rule, so
 * the popup still works. Without this the populated calendar renders in the page
 * flow at the bottom of the document on every page carrying the LT search form.
 */
#ui-datepicker-div {
	display: none;
}

#datepick-div.datepick-inline {
	width: min(92vw, 340px) !important;
	max-width: min(92vw, 340px) !important;
	box-sizing: border-box;
}

#datepick-div.datepick-inline .datepick-one-month,
#datepick-div.datepick-inline table.datepick {
	width: 100% !important;
	table-layout: fixed;
	border-collapse: collapse;
}

#datepick-div.datepick-inline table.datepick th,
#datepick-div.datepick-inline table.datepick td {
	width: 14.285% !important;
	text-align: center;
	box-sizing: border-box;
}

@media (max-width: 600px) {
	.machuca-place-hero {
		min-height: 240px;
	}
	.machuca-place-hero-title {
		font-size: var(--wp--preset--font-size--xl);
	}
}

/* Pagination */
.machuca-archive-pagination {
	display: flex;
	justify-content: center;
	gap: var(--wp--preset--spacing--20);
	padding: var(--wp--preset--spacing--70) 0 0;
}

.machuca-archive-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 0 var(--wp--preset--spacing--30);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 8px;
	background-color: var(--wp--preset--color--surface);
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 600;
	color: var(--wp--preset--color--text);
	text-decoration: none;
	transition: background-color 180ms ease-out, border-color 180ms ease-out, color 180ms ease-out;
}

.machuca-archive-pagination .page-numbers:hover {
	background-color: var(--wp--preset--color--primary-faint);
	border-color: var(--wp--preset--color--primary-faint);
	color: var(--wp--preset--color--primary);
}

.machuca-archive-pagination .page-numbers.current {
	background-color: var(--wp--preset--color--primary);
	border-color: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--surface);
}

/* Search-by-communities hover effect */
.home .search-by-communities .wp-block-cover:hover a {
	text-shadow: 1px 1px 10px black;
}

.home .search-by-communities .wp-block-cover:hover .wp-block-cover__background {
	background-color: transparent !important;
}
.home .search-by-communities .wp-block-cover a:focus { color: white; }
:focus-visible { outline: none; }
:where(.wp-site-blocks :focus) { outline-style: none; }
.home .search-by-communities .wp-block-cover .wp-block-cover__background {
	transition: background-color .5s ease-in-out;
}


footer .footer-logo img {
	filter: brightness(0) invert(1);
}

/* Auth nav — Login / Join pill
--------------------------------------------- */
.auth-nav .wp-block-navigation__container {
	border: 1px solid #013b28;
	border-radius: 100px;
	width: 180px;
	align-items: center;
	overflow: hidden;
	gap: 0;
}

.auth-nav .wp-block-navigation-item {
	flex: 1;
	text-align: center;
}

.auth-nav .wp-block-navigation-item__content {
	padding-left: 0;
	padding-right: 0;
	justify-content: center;
}

.auth-nav li a {
    font-size: .9rem;
    width: 100%;
}

.auth-nav li.menu-join .wp-block-navigation-item__content {
	background-color: #013b28;
	color: white;
	border-radius: 0 100px 100px 0;
	padding: 8px 0;
	font-weight: 700;
}

.auth-nav li.menu-login .wp-block-navigation-item__content {
	border-radius: 100px 0 0 100px;
	padding: 8px 0;
}


/* ==========================================================================
   Booking requests
   ========================================================================== */

/* Type comes from the base h1, like every other page title: this rule used to
   set its own family, size and weight, which is why Booking Requests wore a
   title 10px larger than the screens beside it. Only its placement is special. */
body .wp-block-post-title:has(+ .entry-content .reservations-tabs) {
	max-width: var(--wp--style--global--wide-size);
	margin-left: auto;
	margin-right: auto;
	padding: 0 var(--wp--preset--spacing--50);
}

.entry-content .reservations-tabs {
	max-width: var(--wp--style--global--wide-size);
	margin: var(--wp--preset--spacing--40) auto 0;
	padding: 0 var(--wp--preset--spacing--50);
	font-family: var(--wp--preset--font-family--sans);
	color: var(--wp--preset--color--text);
}

/* Nothing on this screen inherits the page's column: the title and the tabs
   each set their own width and centre themselves inside a content area that
   runs the full window. The description line has to say the same thing, or it
   keeps the window's left edge while they keep the column's - which only shows
   once the window is wider than the column. */
.entry-content:has(.reservations-tabs) .machuca-account-subtitle {
	max-width: var(--wp--style--global--wide-size);
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--wp--preset--spacing--50);
	padding-right: var(--wp--preset--spacing--50);
}

/* Message box */
.success-message-box {
	display: none;
	max-width: var(--wp--style--global--wide-size);
	margin: 0 auto var(--wp--preset--spacing--40);
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
	border: 1px solid var(--wp--preset--color--primary-soft);
	border-radius: 12px;
	background: var(--wp--preset--color--primary-faint);
	color: var(--wp--preset--color--primary);
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 600;
}

/* The thank-you leads, and has to look like it does.
   
   The box sets everything at 600, so a <strong> at 700 was a difference nobody
   could see. The body drops to 400 instead of the heading climbing: the line
   that matters stays the weight it is and the sentence beneath it stops
   competing. The heart is back, filled and in the brand green — it was the one
   part of the old booking-card line worth keeping. */
.success-message-box .machuca-booking-thanks {
	display: block;
	margin-bottom: 4px;
	font-weight: 700;
}

.success-message-box .machuca-booking-thanks-heart {
	color: var(--wp--preset--color--primary);
	font-size: 0.9em;
}

.success-message-box .machuca-booking-thanks-body {
	display: block;
	font-weight: 400;
	line-height: 1.5;
}

.success-message-box.is-visible {
	display: block;
}

.success-message-box .message-text:empty {
	display: none;
}

.close-success-message {
	float: right;
	cursor: pointer;
	font-weight: 700;
	line-height: 1;
}

.close-success-message {
	float: right;
	cursor: pointer;
	font-weight: 700;
}

/* Tabs */
.reservations-tabs .tabs-menu {
	display: flex;
	align-items: flex-end;
	gap: 8px;
	width: fit-content;
	margin: 0 20px -1px auto;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	list-style: none;
	position: relative;
	z-index: 2;
}

.reservations-tabs .tabs-menu li {
	display: flex;
	list-style: none;
	margin: 0;
}

.reservations-tabs .tab-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 190px;
	min-height: 58px;
	padding: 12px var(--wp--preset--spacing--50);
	border: 1px solid transparent;
	border-bottom: 0;
	border-radius: 10px 10px 0 0;
	background: var(--wp--preset--color--border);
	color: var(--wp--preset--color--text-muted);
	font-size: var(--wp--preset--font-size--base);
	font-weight: 700;
	line-height: 1;
	cursor: pointer;
	transition: background-color 180ms ease-out, color 180ms ease-out;
}

.reservations-tabs .tab-link:hover {
	background: var(--wp--preset--color--primary-faint);
	color: var(--wp--preset--color--primary);
}

.reservations-tabs .tab-link:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: 2px;
}

.reservations-tabs .tab-link.current {
	border-color: var(--wp--preset--color--border);
	background: var(--wp--preset--color--background);
	color: var(--wp--preset--color--primary);
}

.reservations-tabs .tab-content {
	display: none;
}

.reservations-tabs .tab-content.current {
	display: block;
}

/* Booking-request table toolbar */
.reservations-table-shell {
	position: relative;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 8px;
	background: var(--wp--preset--color--surface);
}

.reservations-tabs:not(:has(.tabs-menu)) .reservations-table-shell {
	border-radius: 8px;
}


.reservations-filter {
	margin: 0 !important;
}

.reservations-toolbar {
	display: grid;
	grid-template-columns: 132px minmax(200px, 320px) minmax(0, 1fr);
	align-items: center;
	justify-content: start;
	column-gap: 8px;
	row-gap: var(--wp--preset--spacing--20);
	padding: var(--wp--preset--spacing--30);
	border-bottom: 1px solid var(--wp--preset--color--border);
	background: var(--wp--preset--color--background);
}

.reservations-toolbar label,
.reservations-filter-controls label {
	margin: 0 !important;
	color: var(--wp--preset--color--text-muted);
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 600;
}

.reservations-filter-controls {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	grid-column: 1 / -1;
	gap: var(--wp--preset--spacing--20);
	padding-top: var(--wp--preset--spacing--30);
	border-top: 1px solid var(--wp--preset--color--border);
}

.reservations-filter-controls[hidden] {
	display: none;
}

.reservations-filter-trigger {
	display: inline-flex;
}

.reservations-filter-controls select,
.reservations-filter-trigger,
.reservations-search {
	box-sizing: border-box;
	height: 48px;
	border: 1px solid var(--wp--preset--color--border-strong);
	border-radius: 6px;
	background-color: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--text);
}

.reservations-filter-controls select {
	width: 100%;
	min-width: 0;
	height: 48px;
	padding: 0 38px 0 14px;
	border: 1px solid var(--wp--preset--color--border-strong);
	border-radius: 6px;
	background-color: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--text);
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 600;
	line-height: 1;
	cursor: pointer;
}

.reservations-filter-trigger {
	justify-self: start;
	inline-size: 132px;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-width: 0;
	padding: 0 14px;
	font: inherit;
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 700;
	list-style: none;
	cursor: pointer;
}

.reservations-filter-trigger::-webkit-details-marker {
	display: none;
}

.reservations-filter-panel-head,
.reservations-filter-panel-close,
.reservations-filter-panel-footer {
	display: none;
}

.reservations-filter-panel-head {
	grid-column: 1 / -1;
}

.reservations-filter-trigger:hover,
.reservations-filter-trigger:focus {
	border-width: 1px;
	border-color: var(--wp--preset--color--primary);
	background: var(--wp--preset--color--primary-faint);
	color: var(--wp--preset--color--primary);
}

.reservations-filter-trigger-icon,
.reservations-search-icon {
	display: block;
	flex: 0 0 auto;
	width: 18px;
	height: 18px;
	background: currentColor;
	mask-position: center;
	mask-repeat: no-repeat;
	mask-size: contain;
}

.reservations-filter-trigger-icon {
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 4h16l-6.5 7.5V18l-3 2v-8.5z'/%3E%3C/svg%3E");
}

.reservations-filter-count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 22px;
	height: 22px;
	padding: 0 6px;
	border-radius: 999px;
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--surface);
	font-size: var(--wp--preset--font-size--xs);
	line-height: 1;
}

.reservations-search {
	display: flex;
	align-items: center;
	gap: 10px;
	width: 100%;
	max-width: 320px;
	min-width: 0;
	padding: 0 6px 0 12px;
}

.reservations-search-icon {
	color: var(--wp--preset--color--text-muted);
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-4-4'/%3E%3C/svg%3E");
}

.reservations-search input[type="search"] {
	width: 100%;
	min-width: 0;
	height: 40px;
	padding: 0;
	border: 0;
	outline: 0;
	background: transparent;
	color: var(--wp--preset--color--text);
	font-size: var(--wp--preset--font-size--sm);
}

.reservations-search input[type="search"]::placeholder {
	color: var(--wp--preset--color--text-muted);
}

.reservations-search:focus-within,
.reservations-filter-controls select:focus-visible,
.reservations-filter-trigger:focus-visible,
.reservations-search-clear:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: 2px;
}

.reservations-search-clear {
	display: inline-flex;
	flex: 0 0 28px;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border: 0;
	border-radius: 50%;
	background: var(--wp--preset--color--background);
	color: var(--wp--preset--color--text-muted);
	font-size: 18px;
	line-height: 1;
	text-decoration: none;
}

.reservations-search-clear:hover,
.reservations-search-clear:focus {
	border-width: 0;
	background: var(--wp--preset--color--background);
	color: var(--wp--preset--color--primary);
}

.reservations-search-clear[hidden],
.reservations-table[hidden],
.reservations-empty-search[hidden],
.reservations-filter-chips[hidden] {
	display: none;
}

.reservations-filter-clear:focus-visible,
.reservations-filter-chip:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: 2px;
}

.reservations-filter-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--30);
	border-bottom: 1px solid var(--wp--preset--color--border);
}

.reservations-filter-chip {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	min-height: 30px;
	padding: 4px 10px;
	border: 0;
	border-radius: 999px;
	background: var(--wp--preset--color--primary-faint);
	color: var(--wp--preset--color--primary);
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 600;
	line-height: 1;
	text-decoration: none;
	cursor: pointer;
}

.reservations-filter-chip:hover {
	background: var(--wp--preset--color--border);
	color: var(--wp--preset--color--primary);
}

.reservations-filter-clear {
	min-height: 30px;
	padding: 0;
	border: 0;
	border-bottom: 1px solid currentColor;
	border-radius: 0;
	background: transparent;
	color: var(--wp--preset--color--primary);
	font: inherit;
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 700;
	cursor: pointer;
}

.reservations-filter-clear:hover,
.reservations-filter-clear:focus {
	border-width: 0 0 1px;
	border-radius: 0;
	background: transparent;
	color: var(--wp--preset--color--primary);
}

.reservations-table-shell > .reservations-table {
	border: 0;
	border-radius: 0 0 8px 8px;
}

/* Guests, total and booking reference, behind a disclosure on each row.
   Printed in the open they were three more lines on every row of a list whose
   job is finding one booking; they are what you read once you have found it. */
.reservations-table .reservation-row-details {
	margin-top: 6px;
}

.reservations-table .reservation-row-details > summary {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	width: fit-content;
	padding: 0;
	border: 0;
	background: none;
	color: var(--wp--preset--color--primary);
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 600;
	cursor: pointer;
	list-style: none;
}

.reservations-table .reservation-row-details > summary::-webkit-details-marker {
	display: none;
}

.reservations-table .reservation-row-details > summary::after {
	content: "\203A";
	display: inline-block;
	transform: rotate(90deg);
	transition: transform 140ms ease-out;
}

.reservations-table .reservation-row-details[open] > summary::after {
	transform: rotate(-90deg);
}

.reservations-table .reservation-row-details-body {
	display: grid;
	gap: 2px;
	margin-top: 6px;
}

.reservations-table .reservation-row-detail {
	display: flex;
	gap: 6px;
	font-size: var(--wp--preset--font-size--xs);
	line-height: 1.4;
}

.reservations-table .reservation-row-detail-label {
	color: var(--wp--preset--color--text-muted);
}

.reservations-table .reservation-row-detail-value {
	color: var(--wp--preset--color--text);
	font-weight: 600;
}

/* The way into the receipt, on the row's Total line.
   Inline after the amount and not on a line of its own: it belongs to that
   number, and the disclosure is already a tight stack of label/value pairs.
   Muted and normal-weight so the total stays the thing being read — this is the
   answer to "why", not a second figure competing with the first.
   The hover rule resets background and border because the theme's global button
   styling would otherwise draw a box around it, the same override
   .reservation-message-link needs a few hundred lines down. */
.reservations-table .reservation-price-details-link {
	margin-left: 8px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--wp--preset--color--text-muted);
	font-family: inherit;
	font-size: inherit;
	font-weight: 400;
	text-decoration: underline;
	cursor: pointer;
}

.reservations-table .reservation-price-details-link:hover,
.reservations-table .reservation-price-details-link:focus {
	background: none;
	border-width: 0;
	color: var(--wp--preset--color--text);
}

/* The row a link pointed at.
   `reserva-destacada` is set by show_user_reservations() on the row whose
   reservation_uid matches the URL, and for a long time it was set and never
   styled — the markup promised a highlight and nothing drew one. Two flows
   still arrive this way and both are moments where the answer to "which one is
   mine" should not require reading: coming back from an ST payment, and coming
   back from leaving a review. (Notifications no longer send the uid; they
   filter the table to the one booking instead.)

   A tint and a rule down the leading edge, not an animation: the row may be
   below the fold on a long table, and a highlight that fades is a highlight the
   person scrolling never sees. */
.reservations-table tbody tr.reserva-destacada > * {
	/* NOT primary-faint: that is the table header's own background, so the
	   highlighted row read as a second header dropped into the middle of the
	   body rather than as the row being pointed at. A warmer tint separates
	   "this is the one" from "this is the heading". */
	background: var(--wp--preset--color--accent-faint, #fbf0e9);
}

.reservations-table tbody tr.reserva-destacada > *:first-child {
	box-shadow: inset 3px 0 0 var(--wp--preset--color--accent, #b9663d);
}

.reservations-empty-filtered {
	margin: 0 !important;
	padding: var(--wp--preset--spacing--60);
	color: var(--wp--preset--color--text-muted);
	text-align: center;
}

/* The promise and its aside read as one unit: the pill, then a short line under
   it. The aside stayed outside the pill on purpose — inside, it made a two-line
   badge that read as a paragraph in a bubble and lost the shape's whole point.
   Smaller and lighter here, so it supports the promise instead of arguing with
   it, and the pill's own bottom margin moves to the group. */
.machuca-price-promise {
	margin: 0 auto var(--wp--preset--spacing--40);
	text-align: center;
}

.machuca-price-promise .machuca-price-transparency {
	margin-bottom: 6px;
}

.machuca-price-promise__note {
	margin: 0;
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 500;
	line-height: 1.3;
	color: var(--wp--preset--color--text-muted, #6b6b6b);
}

.machuca-price-transparency {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	width: fit-content;
	max-width: calc(100% - 32px);
	margin: 0 auto var(--wp--preset--spacing--40);
	padding: 9px 16px 9px 10px;
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--status-accepted) 26%, transparent);
	border-radius: 999px;
	background: var(--wp--preset--color--primary-faint, #eef3f0);
	color: var(--wp--preset--color--primary);
	font-size: var(--wp--preset--font-size--base);
	font-weight: 650;
	line-height: 1.3;
	text-align: center;
}

/* Por debajo de ~400px la promesa se partía en dos renglones y la pastilla dejaba de
   leerse como una pastilla. Baja la letra y ajusta el aire lateral para que entre en
   una sola línea hasta el ancho mínimo que soportamos, 320px. */
@media (max-width: 480px) {
	.machuca-price-transparency {
		gap: 7px;
		padding: 8px 13px 8px 9px;
		font-size: 0.8125rem;
		max-width: calc(100% - 16px);
	}
	.machuca-price-promise__note {
		font-size: 0.75rem;
	}
}
@media (max-width: 360px) {
	.machuca-price-transparency {
		gap: 6px;
		padding: 7px 11px 7px 8px;
		font-size: 0.75rem;
	}
}

.machuca-price-transparency-mark {
	display: inline-flex;
	flex: 0 0 26px;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	border: 2px solid var(--wp--preset--color--status-accepted);
	border-radius: 50%;
	background: var(--wp--preset--color--status-accepted);
	color: var(--wp--preset--color--surface, #fff);
	box-shadow: 0 2px 8px color-mix(in srgb, var(--wp--preset--color--status-accepted) 24%, transparent);
	font-size: 15px;
	font-weight: 800;
	line-height: 1;
}

.machuca-price-original {
	color: var(--wp--preset--color--text-muted);
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 500;
}

/* Table */
.reservations-tabs table {
	width: 100%;
	margin: 0;
	table-layout: fixed;
	border-collapse: separate;
	border-spacing: 0;
	border: 0;
	background: transparent;
	box-shadow: none;
	overflow: visible;
	word-break: normal;
}

.reservations-tabs tbody {
	border: 0;
}

.reservations-tabs tr {
	position: relative;
	border: 0;
}

.reservations-tabs tr:has(.reservation-more-menu[open]) {
	z-index: 40;
}

.reservations-tabs tr.reservation-menu-open-row {
	z-index: 60;
}

.reservations-tabs th,
.reservations-tabs td {
	padding: 14px 12px;
	border-bottom: 1px solid var(--wp--preset--color--border);
	background: var(--wp--preset--color--surface);
	text-align: left;
	vertical-align: middle;
	line-height: 1.45;
	word-break: normal;
}

.reservations-tabs tr:last-child td {
	border-bottom: 0;
}

.reservations-tabs th {
	background: var(--wp--preset--color--primary-faint);
	color: var(--wp--preset--color--text);
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 700;
	letter-spacing: .02em;
	text-transform: uppercase;
}

.reservations-tabs th:nth-child(2),
.reservations-tabs td:nth-child(2) {
	border-left: 1px solid var(--wp--preset--color--border);
	padding-left: 14px;
}

.reservations-tabs th:last-child,
.reservations-tabs td:last-child {
	border-right: 1px solid var(--wp--preset--color--border);
}

.reservations-tabs th:nth-child(2),
.reservations-tabs td:nth-child(2) {
	width: 18%;
	text-align: center;
}

.reservations-tabs th:nth-child(3),
.reservations-tabs td:nth-child(3) {
	width: 14%;
	padding-right: 22px;
	text-align: center;
}

.reservations-tabs th:nth-child(4),
.reservations-tabs td:nth-child(4) {
	width: 29%;
	padding-left: 22px;
}

.reservations-tabs th:nth-child(5),
.reservations-tabs td:nth-child(5) {
	width: 16%;
}

.reservations-tabs th:nth-child(6),
.reservations-tabs td:nth-child(6) {
	width: 23%;
}

.reservations-tabs th:nth-child(5),
.reservations-tabs td:nth-child(5),
.reservations-tabs th:nth-child(6),
.reservations-tabs td:nth-child(6),
.reservations-tabs thead th:last-child {
	text-align: center;
}

.reservations-tabs td {
	color: var(--wp--preset--color--text);
	font-size: var(--wp--preset--font-size--xs);
}

.reservations-tabs td a {
	color: var(--wp--preset--color--primary);
	font-weight: 700;
	text-decoration: none;
}

.reservations-tabs td a:hover {
	color: var(--wp--preset--color--accent);
}

.reservation-listing-cell {
	min-width: 0;
	text-align: center !important;
}

.reservation-listing-link {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	max-width: 100%;
}

.reservation-listing-thumb {
	display: block;
	width: 64px;
	height: 48px;
	border-radius: 8px;
	background: var(--wp--preset--color--primary-faint);
	overflow: hidden;
}

.reservation-listing-thumb img,
.reservation-listing-thumb-img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.reservation-listing-thumb-empty {
	display: block;
	width: 100%;
	height: 100%;
	background: linear-gradient(135deg, var(--wp--preset--color--primary-faint), var(--wp--preset--color--border));
}

.reservation-listing-title {
	min-width: 0;
	color: var(--wp--preset--color--text);
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 700;
	line-height: 1.25;
	text-transform: none !important;
}

.reservation-booking-info {
	min-width: 0;
}

.reservation-booking-info > * {
	display: block;
}

.reservation-card-main {
	display: block;
}

.reservation-card-title {
	display: none;
}

.reservation-date-range {
	display: block;
	margin-top: 7px;
	color: var(--wp--preset--color--text);
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 600;
	white-space: nowrap;
}

.reservation-duration {
	margin-top: 2px;
	color: var(--wp--preset--color--text-muted);
	font-size: 12px;
	font-weight: 500;
}

/* The party line ("2 adults · 1 child · pet") — same quiet voice as duration. */
.reservation-party {
	display: block;
	margin-top: 2px;
	color: var(--wp--preset--color--text-muted);
	font-size: 12px;
	font-weight: 500;
}

/* Booking-info line icons — all breakpoints (previously mobile-only). Base =
   inline before the text (works with the centered desktop cells); the ≤820px
   card layout re-positions them absolute with left padding. */
.reservation-date-range::before,
.reservation-booking-ref::before,
.reservation-party::before {
	display: inline-block;
	box-sizing: border-box;
	width: 16px;
	height: 16px;
	margin-right: 6px;
	vertical-align: -3px;
	border: 0;
	background-color: currentColor;
	color: var(--wp--preset--color--text-muted);
	content: "";
	mask-repeat: no-repeat;
	mask-size: 16px 16px;
	-webkit-mask-repeat: no-repeat;
	-webkit-mask-size: 16px 16px;
}

.reservation-date-range::before {
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'/%3E%3Cline x1='16' y1='2' x2='16' y2='6'/%3E%3Cline x1='8' y1='2' x2='8' y2='6'/%3E%3Cline x1='3' y1='10' x2='21' y2='10'/%3E%3Cline x1='8' y1='14' x2='8.01' y2='14'/%3E%3Cline x1='12' y1='14' x2='12.01' y2='14'/%3E%3Cline x1='16' y1='14' x2='16.01' y2='14'/%3E%3Cline x1='8' y1='18' x2='8.01' y2='18'/%3E%3Cline x1='12' y1='18' x2='12.01' y2='18'/%3E%3C/svg%3E");
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'/%3E%3Cline x1='16' y1='2' x2='16' y2='6'/%3E%3Cline x1='8' y1='2' x2='8' y2='6'/%3E%3Cline x1='3' y1='10' x2='21' y2='10'/%3E%3Cline x1='8' y1='14' x2='8.01' y2='14'/%3E%3Cline x1='12' y1='14' x2='12.01' y2='14'/%3E%3Cline x1='16' y1='14' x2='16.01' y2='14'/%3E%3Cline x1='8' y1='18' x2='8.01' y2='18'/%3E%3Cline x1='12' y1='18' x2='12.01' y2='18'/%3E%3C/svg%3E");
}

.reservation-booking-ref::before {
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpolyline points='14 2 14 8 20 8'/%3E%3Cline x1='8' y1='13' x2='16' y2='13'/%3E%3Cline x1='8' y1='17' x2='16' y2='17'/%3E%3C/svg%3E");
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpolyline points='14 2 14 8 20 8'/%3E%3Cline x1='8' y1='13' x2='16' y2='13'/%3E%3Cline x1='8' y1='17' x2='16' y2='17'/%3E%3C/svg%3E");
}

/* Guests icon — same figure as the search-result guests meta icon. */
.reservation-party::before {
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M21.15 21v-2a4 4 0 0 0-3-3.87'/%3E%3Cpath d='M15.15 3.13a4 4 0 0 1 0 7.74'/%3E%3C/svg%3E");
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M21.15 21v-2a4 4 0 0 0-3-3.87'/%3E%3Cpath d='M15.15 3.13a4 4 0 0 1 0 7.74'/%3E%3C/svg%3E");
}

.reservation-booking-ref {
	margin-top: 3px;
	color: var(--wp--preset--color--text-muted);
	font-size: 11px;
}

.reservation-message-link {
	display: block;
	margin-top: 2px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--wp--preset--color--text-muted);
	font-size: 12px;
	font-weight: 500;
	font-family: inherit;
	text-align: left;
	text-decoration: underline;
	cursor: pointer;
}

.reservation-message-link:hover,
.reservation-message-link:focus {
	background: none;
	border-width: 0;
	color: var(--wp--preset--color--text-muted);
}

.reservation-message-link::before {
	display: inline-block;
	box-sizing: border-box;
	width: 16px;
	height: 16px;
	margin-right: 6px;
	vertical-align: -3px;
	border: 0;
	background-color: currentColor;
	content: "";
	mask-repeat: no-repeat;
	mask-size: 16px 16px;
	-webkit-mask-repeat: no-repeat;
	-webkit-mask-size: 16px 16px;
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z'/%3E%3C/svg%3E");
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z'/%3E%3C/svg%3E");
}

.machuca-guest-message-modal-content {
	max-height: 320px;
	margin-top: 4px;
	padding: 12px 14px;
	overflow-y: auto;
	border: 1px solid rgba(37,53,45,.18);
	border-radius: 6px;
	background: var(--wp--preset--color--background);
	color: var(--wp--preset--color--text);
	font-size: var(--wp--preset--font-size--sm);
	line-height: 1.5;
}

.machuca-guest-message-modal-content p {
	margin: 0 0 0.75em;
}

.machuca-guest-message-modal-content p:last-child {
	margin-bottom: 0;
}

.reservation-person-cell {
	min-width: 0;
	text-align: center !important;
}

.reservation-person-cell > * {
	display: block;
}

.reservation-person-avatar {
	display: block;
	width: fit-content;
	margin: 0 auto 7px;
}

.reservation-person-avatar img {
	display: block;
	width: 36px;
	height: 36px;
	border-radius: 999px;
}

.reservation-person-text {
	display: flex;
	width: 100%;
	min-width: 0;
	flex-direction: column;
	align-items: center;
	gap: 2px;
}

.reservation-person-text a {
	font-size: var(--wp--preset--font-size--xs);
	line-height: 1.25;
}

/* Scoped under `.reservations-tabs td` deliberately: the generic cell-link
   hover a few hundred lines up recolours every link in the table to accent, and
   it out-specifies a bare class. A person's name is not a call to action — it
   stays exactly as it looks at rest, and the tooltip says where it goes. */
.reservations-tabs td .reservation-person-avatar a:hover,
.reservations-tabs td .reservation-person-avatar a:focus,
.reservations-tabs td .reservation-person-name:hover,
.reservations-tabs td .reservation-person-name:focus {
	color: var(--wp--preset--color--primary);
	font-weight: 700;
	text-decoration: none;
}

.reservation-person-avatar a {
	display: block;
	border-radius: 999px;
}

.reservation-person-avatar a:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: 2px;
}

.reservation-contact-toggle,
.reservation-contact-toggle:hover,
.reservation-contact-toggle:focus {
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--wp--preset--color--text-muted);
	font-size: 12px;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: underline;
	text-underline-offset: 2px;
	cursor: pointer;
}

.reservation-contact-toggle:hover,
.reservation-contact-toggle:focus {
	color: var(--wp--preset--color--text);
}

.reservation-contact-wrap {
	position: relative;
	display: inline-block;
	width: fit-content;
}

.reservation-contact-popover {
	position: absolute;
	top: calc(100% + 8px);
	left: 50%;
	z-index: 30;
	padding: 14px;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 8px;
	background: var(--wp--preset--color--surface);
	box-shadow: 0 12px 32px rgba(31,31,31,.16);
	color: var(--wp--preset--color--text);
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--xs);
	text-align: center;
	transform: translateX(-50%);
	/* Was nowrap when the whole content was a phone number. It now holds a
	   sentence, so it needs a width and real wrapping. */
	width: 280px;
	max-width: calc(100vw - 32px);
	white-space: normal;
}

.reservation-contact-popover[hidden] {
	display: none !important;
}

.reservation-contact-heading {
	display: block;
	color: var(--wp--preset--color--text-muted);
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 600;
}

.reservation-contact-number {
	display: block;
	margin-top: 2px;
	color: var(--wp--preset--color--text);
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 700;
}

.reservation-contact-actions {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin-top: 6px;
}

.reservation-contact-sep {
	color: var(--wp--preset--color--text-muted);
}

.reservation-contact-call,
.reservation-contact-copy {
	box-sizing: border-box;
	display: inline-flex;
	align-items: center;
	gap: 5px;
	min-height: 0;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	color: var(--wp--preset--color--primary);
	font-family: inherit;
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
}

.reservation-contact-icon {
	flex: 0 0 auto;
}

/* Scoped under `.reservations-tabs td` for the same reason the person name is:
   the generic cell-link hover repaints every link in this table to accent, and
   it out-specifies a bare class. */
.reservations-tabs td .reservation-contact-call:hover,
.reservations-tabs td .reservation-contact-call:focus,
.reservations-tabs td .reservation-contact-copy:hover,
.reservations-tabs td .reservation-contact-copy:focus {
	background: transparent;
	color: var(--wp--preset--color--primary);
	font-weight: 700;
	text-decoration: none;
}

.reservations-tabs td .reservation-contact-call:hover .reservation-contact-label,
.reservations-tabs td .reservation-contact-call:focus .reservation-contact-label,
.reservations-tabs td .reservation-contact-copy:hover .reservation-contact-label,
.reservations-tabs td .reservation-contact-copy:focus .reservation-contact-label {
	text-decoration: underline;
	text-underline-offset: 2px;
}

/* Scoped to the popover, which is the only place it belongs.

   The block treatment — divider, padding, its own paragraph — is right for the
   footnote under a revealed phone number, and was wrong when the same class was
   reused for "why there is no phone number here": that put a bordered paragraph
   of explanation directly into the Host and Actions columns. The unavailable
   state now uses the inactive-control pattern instead, with the reason behind a
   helper, so this rule no longer has a second audience. */
.reservation-contact-popover .reservation-contact-note {
	display: block;
	margin-top: 10px;
	padding-top: 10px;
	border-top: 1px solid var(--wp--preset--color--border);
	color: var(--wp--preset--color--text-muted);
	font-size: var(--wp--preset--font-size--xs);
	line-height: 1.45;
	text-align: left;
}

.reservation-person-text .reservation-action-link--unavailable {
	min-height: 0;
	padding: 2px 0;
}

.reservation-person-message,
.reservation-person-message .better-messages-live-chat-button,
.reservation-person-message .machuca-pm-btn,
.reservation-person-message .machuca-pm-link,
.reservation-person-message a,
.reservation-person-message button,
.reservation-person-message a:hover,
.reservation-person-message a:focus,
.reservation-person-message button:hover,
.reservation-person-message button:focus,
body .reservation-person-message button.bm-lc-button:hover,
body .reservation-person-message button.bm-lc-button:focus {
	display: inline !important;
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
	color: var(--wp--preset--color--text-muted) !important;
	font-size: 12px !important;
	font-weight: 600 !important;
	line-height: 1.2 !important;
	text-decoration: none !important;
	box-shadow: none !important;
	filter: none !important;
}

.reservation-person-message a:hover,
.reservation-person-message a:focus,
.reservation-person-message button:hover,
.reservation-person-message button:focus,
body .reservation-person-message button.bm-lc-button:hover,
body .reservation-person-message button.bm-lc-button:focus {
	color: var(--wp--preset--color--text) !important;
}

/* Type badges */
.res-type-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 5px 10px;
	border-radius: 999px;
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 700;
	line-height: 1;
	white-space: nowrap;
}

.res-type-st {
	background: var(--wp--preset--color--border);
	color: var(--wp--preset--color--text-muted);
}

.res-type-lt {
	background: var(--wp--preset--color--border);
	color: var(--wp--preset--color--text-muted);
}

/* Status */
.estado-reserva {
	color: var(--wp--preset--color--text-muted);
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 600;
}

/* "Action needed" plus its 17px helper, on one line. The table uses fixed
   percentage columns, so a min-width on the cell cannot reserve space by
   itself; the Status/Actions proportions above own that distribution. */
.reservations-tabs td.estado-reserva {
	min-width: 0;
}

.reservations-tabs td.estado-reserva .reservation-status-pill {
	position: relative;
	display: inline-flex;
	width: auto;
	align-items: center;
	padding: 6px 12px;
	border: 1px solid #c9ddd4;
	border-radius: 999px;
	background: #eef7f3;
	color: var(--wp--preset--color--primary);
	font-size: 13px;
	font-weight: 700;
	line-height: 1;
	white-space: nowrap;
}

.reservations-tabs td.estado-reserva.status-pending .reservation-status-pill,
.reservations-tabs td.estado-reserva.status-awaitingpayment .reservation-status-pill {
	border-color: #ead8a7;
	background: #fbf3dd;
	color: #7d5f10;
}

.reservations-tabs td.estado-reserva.status-declined .reservation-status-pill,
.reservations-tabs td.estado-reserva.status-canceled .reservation-status-pill,
.reservations-tabs td.estado-reserva.status-withdrawn .reservation-status-pill,
.reservations-tabs td.estado-reserva.status-expired .reservation-status-pill {
	border-color: #e2d8d3;
	background: #f6f0ed;
	color: #8a5a44;
}

/* The warning treatment. Applied EITHER to the booking's own status pill (when
   a deposit needs the guest) OR to a separate "Payment issue" pill beside it —
   so this rule carries colour only. Stacking and the help cursor used to live
   here and became wrong the moment the modifier started landing on the primary
   pill: the whole status area showed a help cursor with no help behind it. */
.reservations-tabs td.estado-reserva .reservation-status-pill--warning {
	border-color: #ead8a7;
	background: #fbf3dd;
	color: #7d5f10;
}

/* Only a SECOND pill stacks, and only a pill that really carries a title
   explains itself on hover. */
.reservations-tabs td.estado-reserva .reservation-status-pill + .reservation-status-pill--warning {
	margin-top: 6px;
}

.reservations-tabs td.estado-reserva .reservation-status-pill--warning[title] {
	cursor: help;
}

/* The deposit condition: secondary text under the pill, never a second pill.

   Absolutely positioning the "?" solved the 1175px wrap and created a worse
   problem: an out-of-flow element cannot be contained by its cell, so below
   about 950px the helper sat on top of the Actions column. The right fix is to
   stop the column from being squeezed in the first place — the status cell is
   given enough room for "Action needed ?" on one line — and to keep the helper
   an ordinary in-flow flex item that the cell's own box contains at every
   width. Nothing here can escape the cell, because nothing here leaves the
   flow. */
.reservations-tabs td.estado-reserva .reservation-status-note {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	max-width: 100%;
	margin-top: 6px;
	color: var(--wp--preset--color--text-muted);
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 600;
	line-height: 1.3;
	white-space: nowrap;
}

.reservations-tabs td.estado-reserva .reservation-status-note .machuca-st-fee-help {
	flex: 0 0 auto;
	margin: 0 !important;
}

/* This helper is a short instruction, not body copy. Give only this instance
   enough room to remain one centred line; fee tooltips keep their normal size. */
.reservations-tabs td.estado-reserva .reservation-status-note .machuca-st-fee-help.machuca-st-fee-help.machuca-st-fee-help::after {
	width: min(260px, calc(100vw - 32px)) !important;
	text-align: center !important;
	white-space: nowrap !important;
}

/* Activity */
.actividad-reserva {
	width: 48px;
}

.noti-reciente-con-boton {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 6px;
}

.noti-reciente {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.noti-reciente br {
	display: none;
}

.noti-reciente strong {
	color: var(--wp--preset--color--text);
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 500;
	line-height: 1.35;
}

.noti-reciente small {
	display: block;
	margin-top: 0;
	color: var(--wp--preset--color--text-muted);
	font-size: var(--wp--preset--font-size--xs);
	line-height: 1.35;
}

/* Booking ref */
.booking-ref {
	color: var(--wp--preset--color--text-muted);
	font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
	font-size: 10px;
}

.reservation-more-heading,
.reservation-more-cell {
	position: relative;
	width: 0;
	min-width: 0;
	max-width: 0;
	padding-left: 0 !important;
	padding-right: 0 !important;
	border: 0 !important;
	background: transparent !important;
	text-align: center !important;
}

.reservation-more-heading {
	background: transparent !important;
}

.reservation-more-menu {
	position: absolute;
	top: 50%;
	left: -42px;
	transform: translateY(-50%);
	display: inline-block;
	z-index: 1;
}

.reservation-more-menu[open] {
	z-index: 80;
}

.reservation-more-menu > summary {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 999px;
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--text-muted);
	font-size: 16px;
	font-weight: 700;
	line-height: 1;
	list-style: none;
	cursor: pointer;
}

.reservation-more-menu > summary::-webkit-details-marker {
	display: none;
}

.reservation-more-menu > summary:hover,
.reservation-more-menu[open] > summary {
	border-color: var(--wp--preset--color--border);
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--primary);
}

.reservation-more-panel {
	position: absolute;
	left: 0;
	z-index: 20;
	width: max-content;
	min-width: 148px;
	max-width: min(180px, calc(100vw - 48px));
	margin-top: 4px;
	padding: 6px;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 8px;
	background: var(--wp--preset--color--surface);
	box-shadow: 0 16px 42px rgba(31,31,31,.16);
	text-align: left;
}

.reservation-menu-action,
.reservation-menu-status {
	box-sizing: border-box;
	display: block;
	width: 100%;
	padding: 8px 10px;
	border: 0;
	border-radius: 6px;
	background: transparent;
	color: var(--wp--preset--color--text);
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 600;
	line-height: 1.3;
	text-align: left;
	cursor: pointer;
}

.reservation-menu-action:hover,
.reservation-menu-action:focus {
	background: var(--wp--preset--color--background);
	color: var(--wp--preset--color--text);
}

.reservation-menu-status {
	color: var(--wp--preset--color--text-muted);
	cursor: default;
}

.reservation-menu-divider {
	display: block;
	height: 1px;
	margin: 6px 4px;
	background: var(--wp--preset--color--border);
}

.reservation-more-panel .reservation-menu-action--danger,
.reservation-more-panel .reservation-menu-action--danger.accion-reserva {
	color: var(--wp--preset--color--danger, #b3261e) !important;
}

.reservation-more-panel .reservation-menu-action--danger:hover,
.reservation-more-panel .reservation-menu-action--danger:focus {
	background: rgba(179,38,30,.08);
	color: var(--wp--preset--color--danger, #b3261e) !important;
	filter: none;
}

.machuca-problem-modal,
.machuca-activity-modal {
	position: fixed;
	inset: 0;
	display: flex;
	align-items: center;
	z-index: 9999;
	margin: 0;
	max-width: 100%;
	padding: 24px;
	overflow: auto;
	background: rgba(0,0,0,.45);
}

.machuca-problem-modal[hidden],
.machuca-activity-modal[hidden] {
	display: none !important;
}

.machuca-problem-dialog,
.machuca-activity-dialog {
	position: relative;
	width: 100%;
	max-width: 560px;
	margin: 0 auto;
	padding: 24px;
	border-radius: 8px;
	background: var(--wp--preset--color--surface);
	box-shadow: 0 20px 60px rgba(0,0,0,.25);
}

/* Price details can expand a lot once "See Payment Schedule details" is open
   (e.g. 12 monthly payments) — cap it below full viewport height and let the
   dialog itself scroll, instead of growing past the screen. */
#machuca-booking-details-modal .machuca-activity-dialog {
	max-height: 90vh;
	overflow-y: auto;
}

.machuca-problem-close,
.machuca-activity-close,
.machuca-booking-details-close,
.machuca-guest-message-close,
.machuca-booking-action-close,
.machuca-lt-schedule-close {
	position: absolute;
	top: 12px;
	right: 14px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border: 1px solid rgba(37,53,45,.18);
	border-radius: 999px;
	background: var(--wp--preset--color--background);
	color: var(--wp--preset--color--text);
	font-size: 26px;
	line-height: 1;
	cursor: pointer;
}

/* Unlike the other four dialogs sharing the rule above, this one's <dialog>
   is rendered inside a Gravity Forms field (.gform_wrapper) — GF's Theme
   Framework resets EVERY <button> in there to its own primary-button look
   (background/border/radius driven by --gf-ctrl-btn-* vars) via a compound
   selector several classes deep, which out-specifies the shared rule above.
   Same fight, same fix already established for .machuca-st-fee-help: chain
   the class for specificity and force every property with !important.
   z-index also needed: the button is a preceding sibling of
   .machuca-features-dialog-head, which is position:sticky at z-index:2 and
   spans the same top-right corner — without a higher z-index the sticky
   head paints over the button. */
.machuca-lt-schedule-close.machuca-lt-schedule-close.machuca-lt-schedule-close.machuca-lt-schedule-close.machuca-lt-schedule-close.machuca-lt-schedule-close {
	position: absolute !important;
	z-index: 999 !important;
	top: 12px !important;
	right: 14px !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 36px !important;
	height: 36px !important;
	min-width: 0 !important;
	min-height: 0 !important;
	max-height: none !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 1px solid rgba(37,53,45,.18) !important;
	border-radius: 999px !important;
	background: var(--wp--preset--color--background) !important;
	box-shadow: none !important;
	color: var(--wp--preset--color--text) !important;
	font-family: var(--wp--preset--font-family--sans) !important;
	font-size: 26px !important;
	font-weight: 400 !important;
	font-style: normal !important;
	line-height: 1 !important;
	letter-spacing: normal !important;
	text-align: center !important;
	text-transform: none !important;
	text-decoration: none !important;
	cursor: pointer !important;
	appearance: none !important;
	-webkit-appearance: none !important;
	box-sizing: border-box !important;
}

.machuca-booking-action-dialog {
	display: grid;
	grid-template-rows: auto minmax(0, 1fr) auto;
	width: min(720px, 100%);
	max-width: 720px;
	max-height: calc(100dvh - 32px);
	padding: 0;
	overflow: hidden;
	border-radius: 16px;
	box-shadow: 0 20px 60px rgba(31,31,31,.2);
}

#machuca-booking-action-modal {
	padding: 16px;
	overflow: hidden;
	overscroll-behavior: contain;
	background: rgba(31,31,31,.4);
}

#machuca-booking-action-modal.is-simple .machuca-booking-action-dialog {
	width: min(480px, 100%);
	max-width: 480px;
}

body.machuca-booking-action-open {
	overflow: hidden;
	overscroll-behavior: none;
}

.machuca-booking-action-header {
	padding: 20px 60px 14px 20px;
	background: var(--wp--preset--color--surface);
}

#machuca-booking-action-modal.has-body .machuca-booking-action-header {
	border-bottom: 1px solid var(--wp--preset--color--border);
}

.machuca-booking-action-header h2 {
	margin: 0;
	font-size: var(--wp--preset--font-size--lg);
}

.machuca-booking-action-header p {
	margin: 6px 0 0;
	color: var(--wp--preset--color--text-muted);
}

.machuca-booking-action-body {
	min-height: 0;
	padding: 16px 20px;
	overflow-y: auto;
	overscroll-behavior: contain;
	-webkit-overflow-scrolling: touch;
}

.machuca-booking-action-body[hidden] {
	display: none;
}

.machuca-lt-changes {
	margin-bottom: 14px;
	padding: 12px 14px;
	border-radius: 10px;
	background: var(--wp--preset--color--background);
}

.machuca-lt-changes ul {
	margin: 6px 0 0;
	padding-left: 20px;
}

.machuca-conflict-group {
	margin-top: 10px;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 10px;
	background: var(--wp--preset--color--surface);
}

.machuca-conflict-group > summary {
	padding: 11px 13px;
	font-weight: 600;
	cursor: pointer;
}

.machuca-conflict-group__items {
	display: grid;
	gap: 8px;
	padding: 0 10px 10px;
}

.machuca-conflict {
	padding: 12px;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 8px;
	background: var(--wp--preset--color--background);
}

.machuca-conflict--blocking {
	border-color: var(--wp--preset--color--danger, #b3261e);
}

.machuca-conflict--override,
.machuca-conflict--warning {
	border-color: #b7791f;
	background: #fffaf0;
}

.machuca-conflict__heading {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
}

.machuca-conflict__heading span,
.machuca-conflict__ref {
	color: var(--wp--preset--color--text-muted);
	font-size: var(--wp--preset--font-size--xs);
}

.machuca-conflict p {
	margin: 8px 0 0;
}

.machuca-conflict__dates {
	font-weight: 600;
}

.machuca-booking-action-confirmation {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin-top: 14px;
	padding: 12px;
	border: 1px solid #b7791f;
	border-radius: 8px;
	background: #fffaf0;
}

.machuca-booking-action-confirmation input {
	flex: 0 0 auto;
	margin-top: 3px;
}

.machuca-booking-action-feedback {
	min-height: 1.5em;
	margin: 12px 0 0;
	color: var(--wp--preset--color--danger, #b3261e);
}

.machuca-booking-action-feedback:empty {
	display: none;
}

.machuca-booking-action-actions {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 14px 20px;
	border-top: 1px solid var(--wp--preset--color--border);
	background: var(--wp--preset--color--surface);
}

.machuca-booking-action-cancel,
.machuca-booking-action-confirm {
	box-sizing: border-box;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	margin: 0;
	padding: 10px 20px;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 999px;
	box-shadow: none;
	font-family: inherit;
	font-size: var(--wp--preset--font-size--base);
	font-weight: 700;
	line-height: 1.2;
	cursor: pointer;
	transition: background-color 160ms ease-out, border-color 160ms ease-out, color 160ms ease-out;
}

.machuca-booking-action-cancel {
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--text);
}

.machuca-booking-action-cancel:focus {
	border: 1px solid var(--wp--preset--color--border);
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--text);
}

.machuca-booking-action-cancel:hover {
	border: 1px solid var(--wp--preset--color--border-strong);
	background: var(--wp--preset--color--background);
	color: var(--wp--preset--color--text);
}

.machuca-booking-action-cancel:focus-visible,
.machuca-booking-action-confirm:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: 2px;
}

.machuca-booking-action-cancel:active {
	border: 1px solid var(--wp--preset--color--border-strong);
	background: var(--wp--preset--color--border);
	color: var(--wp--preset--color--text);
}

#machuca-booking-action-modal.is-blocked .machuca-booking-action-cancel {
	margin-left: auto;
}

.machuca-booking-action-confirm {
	max-width: 430px;
	border: 1px solid var(--wp--preset--color--primary);
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--surface);
	white-space: normal;
}

.machuca-booking-action-confirm:focus {
	border: 1px solid var(--wp--preset--color--primary);
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--surface);
}

.machuca-booking-action-confirm:hover {
	border: 1px solid var(--wp--preset--color--primary-soft);
	background: var(--wp--preset--color--primary-soft);
	color: var(--wp--preset--color--surface);
	filter: none;
}

.machuca-booking-action-confirm:active {
	border: 1px solid var(--wp--preset--color--primary);
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--surface);
}

.machuca-booking-action-confirm:disabled,
.machuca-booking-action-confirm:disabled:hover {
	border: 1px solid var(--wp--preset--color--border);
	background: #eee;
	color: #777;
	filter: none;
	cursor: not-allowed;
}

#machuca-booking-action-modal.is-destructive .machuca-booking-action-confirm {
	border: 1px solid var(--wp--preset--color--status-declined);
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--status-declined);
}

#machuca-booking-action-modal.is-destructive .machuca-booking-action-confirm:focus {
	border: 1px solid var(--wp--preset--color--status-declined);
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--status-declined);
	filter: none;
}

#machuca-booking-action-modal.is-destructive .machuca-booking-action-confirm:hover {
	border: 1px solid var(--wp--preset--color--status-declined);
	background: rgba(179,38,30,.08);
	color: var(--wp--preset--color--status-declined);
	filter: none;
}

#machuca-booking-action-modal.is-destructive .machuca-booking-action-confirm:active {
	border: 1px solid var(--wp--preset--color--status-declined);
	background: rgba(179,38,30,.14);
	color: var(--wp--preset--color--status-declined);
}

#machuca-booking-action-modal.is-destructive .machuca-booking-action-confirm:disabled,
#machuca-booking-action-modal.is-destructive .machuca-booking-action-confirm:disabled:hover {
	border: 1px solid var(--wp--preset--color--border);
	background: #eee;
	color: #777;
}

.machuca-cancellation-preview {
	margin-top: 12px;
}

.machuca-cancellation-preview__item {
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 8px;
	background: #fffaf0;
}

.machuca-cancellation-preview__item > summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 10px 12px;
	cursor: pointer;
}

.machuca-cancellation-preview__item > summary > span:first-child {
	display: grid;
	gap: 2px;
}

.machuca-cancellation-preview__item small,
.machuca-cancellation-preview__view,
.machuca-cancellation-preview__explanation {
	color: var(--wp--preset--color--text-muted);
	font-size: var(--wp--preset--font-size--xs);
}

.machuca-cancellation-preview__detail {
	padding: 0 12px 12px;
}

.machuca-cancellation-preview dl {
	margin: 0;
}

.machuca-cancellation-preview dl div {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	padding: 5px 0;
}

.machuca-cancellation-preview dt,
.machuca-cancellation-preview dd {
	margin: 0;
}

.machuca-cancellation-preview dd {
	font-weight: 600;
	text-align: right;
}

.machuca-cancellation-preview__totals {
	padding: 10px 14px;
	border-radius: 10px;
	background: var(--wp--preset--color--background);
}

.machuca-cancellation-preview__note {
	color: var(--wp--preset--color--text-muted);
	font-size: var(--wp--preset--font-size--xs);
}

/* Cancel-a-booking dialog — the consequences, shown before the decision. */
.machuca-cancel-preview {
	margin-bottom: 20px;
	padding: 14px 16px;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 12px;
	background: var(--wp--preset--color--background);
}

.machuca-cancel-preview__tier {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 4px 16px;
	margin: 0 0 12px;
	font-size: var(--wp--preset--font-size--xs);
}

.machuca-cancel-preview__tier span {
	color: var(--wp--preset--color--text-muted);
}

.machuca-cancel-preview__lede {
	margin: 0 0 12px;
	font-size: var(--wp--preset--font-size--sm);
}

.machuca-cancel-preview__lines,
.machuca-cancel-preview__totals {
	margin: 0;
}

.machuca-cancel-preview__lines div,
.machuca-cancel-preview__totals div {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	padding: 6px 0;
	font-size: var(--wp--preset--font-size--sm);
}

.machuca-cancel-preview__lines dt,
.machuca-cancel-preview__lines dd,
.machuca-cancel-preview__totals dt,
.machuca-cancel-preview__totals dd {
	margin: 0;
}

.machuca-cancel-preview__lines dd,
.machuca-cancel-preview__totals dd {
	font-weight: 600;
	text-align: right;
	white-space: nowrap;
}

/* The one number that matters, weighted so it reads first. */
.machuca-cancel-preview__result {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 16px;
	margin: 10px 0 0;
	padding-top: 12px;
	border-top: 1px solid var(--wp--preset--color--border);
}

.machuca-cancel-preview__result strong {
	font-size: var(--wp--preset--font-size--lg);
}

.machuca-cancel-preview__note {
	margin: 12px 0 0;
	color: var(--wp--preset--color--text-muted);
	font-size: var(--wp--preset--font-size--xs);
	line-height: 1.5;
}

.machuca-cancel-loading {
	margin: 0;
	color: var(--wp--preset--color--text-muted);
	font-size: var(--wp--preset--font-size--sm);
}

/* The dialog owns its own scrolling. Letting the page scroll behind a modal
   reads as two documents fighting, and on a phone the confirm button ends up
   somewhere the guest has to hunt for. */
#machuca-cancel-modal {
	padding: 16px;
	overflow: hidden;
	overscroll-behavior: contain;
}

#machuca-cancel-modal .machuca-problem-dialog {
	display: flex;
	flex-direction: column;
	max-height: calc(100dvh - 32px);
	padding-bottom: 0;
}

#machuca-cancel-title {
	flex: 0 0 auto;
	margin: 0 40px 16px 0;
	font-size: var(--wp--preset--font-size--lg);
}

.machuca-cancel-body {
	min-height: 0;
	padding-bottom: 24px;
	overflow-y: auto;
	overscroll-behavior: contain;
	-webkit-overflow-scrolling: touch;
}

body.machuca-cancel-open {
	overflow: hidden;
	overscroll-behavior: none;
}

.machuca-cancel-preview__details {
	margin-top: 12px;
}

.machuca-cancel-preview__details summary {
	color: var(--wp--preset--color--text-muted);
	font-size: var(--wp--preset--font-size--xs);
	cursor: pointer;
}

.machuca-cancel-preview__details[open] summary {
	margin-bottom: 4px;
}

.machuca-cancel-support-route {
	margin: 0 0 16px;
	color: var(--wp--preset--color--text-muted);
	font-size: var(--wp--preset--font-size--xs);
	line-height: 1.5;
}

.machuca-cancel-support-route[hidden] {
	display: none;
}

.machuca-cancel-support-route button {
	padding: 0;
	border: 0;
	background: none;
	color: inherit;
	font: inherit;
	text-decoration: underline;
	cursor: pointer;
}

/* Footer actions. The confirm carries the same destructive treatment as
   Decline in the booking-action modal: an outlined pill in the declined colour.
   It has to be the obvious control — this dialog exists to do that one thing —
   without borrowing the cheerful primary green used for accepting. Keeping the
   booking is the quiet option, because doing nothing needs no encouragement. */
.machuca-cancel-actions {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin: 18px 0 0;
}

.machuca-cancel-submit {
	box-sizing: border-box;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	margin: 0;
	padding: 10px 24px;
	border: 1px solid var(--wp--preset--color--status-declined);
	border-radius: 999px;
	background: var(--wp--preset--color--surface);
	box-shadow: none;
	color: var(--wp--preset--color--status-declined);
	font-family: inherit;
	font-size: var(--wp--preset--font-size--base);
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 160ms ease-out;
}

.machuca-cancel-submit:hover,
.machuca-cancel-submit:focus {
	border-color: var(--wp--preset--color--status-declined);
	background: rgba(179,38,30,.08);
	color: var(--wp--preset--color--status-declined);
	filter: none;
}

.machuca-cancel-submit:active {
	background: rgba(179,38,30,.14);
}

.machuca-cancel-submit:disabled,
.machuca-cancel-submit:disabled:hover {
	border-color: var(--wp--preset--color--border);
	background: #eee;
	color: #777;
	cursor: not-allowed;
}

.machuca-cancel-keep {
	margin: 0;
	padding: 10px 0;
	border: 0;
	border-radius: 0;
	background: none;
	box-shadow: none;
	color: var(--wp--preset--color--text-muted);
	font-family: inherit;
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 600;
	line-height: 1.2;
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
}

.machuca-cancel-keep:hover,
.machuca-cancel-keep:focus {
	background: none;
	color: var(--wp--preset--color--text);
	filter: none;
}

.machuca-cancel-keep:focus-visible,
.machuca-cancel-submit:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: 2px;
}

@media (max-width: 600px) {
	.machuca-cancel-actions {
		flex-direction: column-reverse;
		align-items: stretch;
	}

	.machuca-cancel-submit {
		width: 100%;
	}
}

#machuca-problem-title {
	margin: 0 auto;
}

#machuca-problem-reason,
#machuca-problem-explanation {
	width: 100%;
}

.machuca-problem-submit-row {
	text-align: right;
}

.machuca-activity-dialog h2 {
	margin-top: 0;
	margin-bottom: 16px;
	font-size: var(--wp--preset--font-size--lg);
}

.reservation-activity-list {
	display: grid;
	gap: 12px;
}

.reservation-activity-item {
	padding-bottom: 12px;
	border-bottom: 1px solid var(--wp--preset--color--border);
}

.reservation-activity-item:last-child {
	padding-bottom: 0;
	border-bottom: 0;
}

.reservation-activity-item strong,
.reservation-activity-item small {
	display: block;
}

.reservation-activity-item strong {
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 600;
}

.reservation-activity-item small {
	margin-top: 3px;
	color: var(--wp--preset--color--text-muted);
	font-size: var(--wp--preset--font-size--xs);
}

.reservation-details-list {
	margin: 0;
}

.reservation-details-row {
	display: flex;
	justify-content: space-between;
	gap: 18px;
	padding: 10px 0;
	border-bottom: 1px solid var(--wp--preset--color--border);
}

.reservation-details-row:last-child {
	border-bottom: 0;
}

.reservation-details-row dt,
.reservation-details-row dd {
	margin: 0;
	font-size: var(--wp--preset--font-size--sm);
}

.reservation-details-row dt {
	color: var(--wp--preset--color--text-muted);
}

.reservation-details-row dd {
	font-weight: 700;
	text-align: right;
}

/* Price details modal — shared ST/LT breakdown from price_snapshot */
.reservation-price-details {
	margin: 0 0 14px;
}

.reservation-price-row {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 18px;
	padding: 9px 0;
	border-bottom: 1px solid var(--wp--preset--color--border);
	font-size: 13px;
}

.reservation-price-row:last-child {
	border-bottom: 0;
}

.reservation-price-label {
	color: var(--wp--preset--color--text-muted);
	min-width: 0;
	flex: 1 1 auto;
}

.reservation-price-label small {
	color: var(--wp--preset--color--text-muted);
}

.reservation-price-amount {
	flex: 0 0 auto;
	font-weight: 700;
	text-align: right;
	white-space: nowrap;
}

.reservation-price-original {
	margin-right: 6px;
	color: var(--wp--preset--color--text-muted);
	font-weight: 400;
	text-decoration: line-through;
}

.reservation-price-discount {
	display: block;
	margin-top: 2px;
	color: var(--wp--preset--color--primary);
	font-weight: 600;
}

.reservation-price-row--total,
.reservation-price-row--due {
	font-size: 14px;
	/* Totals close out a block rather than lead into another charge — a
	   divider (and the row's own bottom padding) just adds a gap before
	   whatever follows (a subtitle, or the schedule box right below it). The
	   14px on .reservation-price-details above is the deliberate breathing
	   room before the NEXT section instead. */
	padding-bottom: 0;
	border-bottom: 0;
}

.reservation-price-row--total .reservation-price-label,
.reservation-price-row--due .reservation-price-label {
	color: var(--wp--preset--color--text);
	font-weight: 700;
}

/* Subtitle of the total row above it (e.g. "Includes $X Community
   Contribution"), not a peer line item — no left/right split, sits tight
   underneath with no extra gap. */
.reservation-price-subtitle {
	margin-top: 0;
}

/* No divider/border here on purpose: for LT this box follows "Payment upon
   booking acceptance" directly, and the two should read as one continuous
   payment plan rather than separate, disconnected blocks. The 14px gap
   between them is set on .reservation-price-details above, not here. */
.reservation-price-schedule {
	margin-top: 0;
	padding-top: 0;
}

/* Two classes outspecify .entry-content h4 (margin-top: 40px). */
.reservation-price-schedule .reservation-price-schedule-title {
	margin: 6px 0 6px;
	font-size: 13px;
}

/* Host's own payout breakdown — set apart from the guest-facing charge
   breakdown above it so the two don't read as one repeated block. */
.reservation-price-schedule--host {
	margin-top: 16px;
	padding: 12px 12px 6px;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 8px;
	background: var(--wp--preset--color--surface-muted, #f1efe9);
}

.reservation-price-schedule--host .reservation-price-schedule-title {
	margin-top: 0;
}

/* The deductions and what they are deducted from are one calculation, so the
   rows sit together with no rules between them; the single divider belongs
   above the payout that closes them out. */
.reservation-price-row--host {
	padding: 5px 0 0;
	border-bottom: 0;
}

.reservation-price-schedule--host .reservation-price-row--total {
	margin-top: 6px;
	padding-top: 7px;
	border-top: 1px solid var(--wp--preset--color--border);
}

/* Long stays: the payout rows describe the first month, this line describes
   the stay. Right-aligned under the payout it qualifies. */
.reservation-price-caption--host {
	margin: 4px 0 2px;
	text-align: right;
}

.reservation-price-row--schedule {
	border-bottom: 0;
	padding: 5px 0 0;
}

.reservation-price-caption {
	margin: 0 0 6px;
	color: var(--wp--preset--color--text-muted);
	font-size: 12px;
	line-height: 1.4;
}

.reservation-price-hint {
	color: var(--wp--preset--color--text-muted);
	font-weight: 400;
	font-size: 12px;
}

/* Inline expand/collapse for the itemized schedule — deliberately not another
   modal on top of the Price details one. Bordered + tinted in the site's
   green so it reads as a distinct, optional drill-down from the always-visible
   summary rows above it. */
.reservation-price-schedule-more {
	margin-top: 8px;
	padding: 2px 10px;
	border: 1px solid var(--wp--preset--color--primary);
	border-radius: 8px;
	background: var(--wp--preset--color--primary-faint, #e8efeb);
}

.reservation-price-schedule-more > summary {
	display: flex;
	align-items: center;
	gap: 6px;
	padding: 8px 0;
	color: var(--wp--preset--color--primary);
	font-size: 12px;
	font-weight: 600;
	list-style: none;
	cursor: pointer;
}

.reservation-price-schedule-more > summary::-webkit-details-marker {
	display: none;
}

.reservation-price-schedule-more > summary::after {
	content: "+";
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	width: 16px;
	height: 16px;
	margin-left: auto;
	border: 1px solid var(--wp--preset--color--primary);
	border-radius: 999px;
	color: var(--wp--preset--color--primary);
	font-size: 11px;
	line-height: 1;
}

.reservation-price-schedule-more[open] > summary::after {
	content: "\2212";
}

.reservation-price-schedule-more[open] {
	padding-bottom: 6px;
}

.reservation-price-schedule-note,
.reservation-price-details .reservation-details-note,
.reservation-details-note {
	margin: 10px 0 0;
	color: var(--wp--preset--color--text-muted);
	font-size: 12px;
	line-height: 1.4;
}

.reservation-price-details--deposit {
	margin-top: 12px;
	padding-top: 10px;
	border-top: 1px solid var(--wp--preset--color--border);
}

.reservation-price-details--deposit .reservation-price-row {
	border-bottom: 0;
	padding: 0;
}

/* Actions */
.acciones-reserva {
	min-width: 130px;
}

.acciones-reserva em {
	color: var(--wp--preset--color--text-muted);
	font-size: var(--wp--preset--font-size--xs);
}

.reservations-tabs .acciones-reserva .reservation-payment-expiry {
	display: block;
	margin-top: 2px;
	color: var(--wp--preset--color--text-muted);
	font-size: var(--wp--preset--font-size--xs);
	line-height: 1.35;
}

.acciones-reserva .button,
.acciones-reserva button,
.accion-reserva {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 34px;
	margin: 0 0 6px;
	padding: 8px 14px;
	border: 1px solid var(--wp--preset--color--primary);
	border-radius: 999px;
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--surface) !important;
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 700;
	line-height: 1;
	text-decoration: none;
}

.acciones-reserva .button:not(:first-child),
.acciones-reserva button:not(:first-child),
.accion-reserva:not(:first-child) {
	margin-left: 6px;
}

/* The secondary row action: the same pill geometry as the primary above, drawn
   as an outline. Used for expected, welcome actions — Arrival & Departure
   Instructions — so they read unmistakably as controls without competing with a
   genuine primary CTA in the same cell. Replaces an underlined link wrapped in
   square brackets, which browser QA read as debug output rather than an action. */
.acciones-reserva .reservation-action-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 34px;
	margin: 0 0 6px;
	padding: 8px 14px;
	border: 1px solid var(--wp--preset--color--border-strong);
	border-radius: 999px;
	background: transparent;
	color: var(--wp--preset--color--text) !important;
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 600;
	line-height: 1;
	text-align: center;
	text-decoration: none;
}

/* Every box property is restated on hover and focus. The theme's global
   `a { text-decoration: underline }` plus a later `a:hover` rule were collapsing
   this control back into a plain underlined link the moment the pointer touched
   it — a button that stops looking like a button exactly when you reach for it.
   Restating geometry here keeps the component's identity across all states
   without adding another competing selector. */
.acciones-reserva .reservation-action-link:not(.reservation-action-link--unavailable):hover,
.acciones-reserva .reservation-action-link:not(.reservation-action-link--unavailable):focus-visible,
.acciones-reserva .reservation-action-link:not(.reservation-action-link--unavailable):active {
	display: inline-flex;
	min-height: 34px;
	padding: 8px 14px;
	border: 1px solid var(--wp--preset--color--primary);
	border-radius: 999px;
	background: transparent;
	color: var(--wp--preset--color--primary) !important;
	font-weight: 600;
	text-decoration: none;
}

/* An unavailable action keeps its name.

   Browser QA rejected replacing the label with the word "Unavailable": the
   guest loses the one piece of information that tells them what is missing, and
   two different blocked things then look identical. The label stays — "Contact
   info", "Arrival & Departure Instructions" — as subdued underlined text.

   Deliberately NOT a disabled element. A `disabled` button is removed from the
   tab order and cannot explain itself on touch or keyboard. This focusable,
   aria-disabled trigger does only one thing: expose the reason it is inactive. */
.acciones-reserva .reservation-action-link--unavailable,
.reservation-person-text .reservation-action-link--unavailable {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 0;
	margin: 0;
	padding: 2px 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: var(--wp--preset--color--text-subtle) !important;
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 500;
	line-height: 1.35;
	text-align: center;
	text-decoration: underline;
	text-decoration-color: var(--wp--preset--color--border-strong);
	text-underline-offset: 3px;
	cursor: not-allowed;
}

.reservation-unavailable-action {
	display: inline-flex;
	align-items: center;
	max-width: 100%;
}

/* The label itself owns the explanation: no second "?" target. The accessible
   name already includes the reason; this visible bubble is for pointer/touch. */
.reservation-action-link--unavailable[data-tooltip]::after {
	content: attr(data-tooltip);
	position: absolute;
	left: 50%;
	bottom: calc(100% + 8px);
	z-index: 30;
	width: min(280px, calc(100vw - 32px));
	box-sizing: border-box;
	padding: var(--wp--preset--spacing--30);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 8px;
	background: var(--wp--preset--color--surface);
	box-shadow: 0 8px 32px rgba(31, 31, 31, 0.12);
	color: var(--wp--preset--color--text);
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 500;
	font-style: normal;
	line-height: 1.35;
	text-align: center;
	text-decoration: none;
	white-space: normal;
	opacity: 0;
	pointer-events: none;
	transform: translate(-50%, 4px);
	transition: opacity 180ms ease-out, transform 180ms ease-out;
}

.reservation-action-link--unavailable[data-tooltip]:hover::after,
.reservation-action-link--unavailable[data-tooltip]:focus-visible::after,
.reservation-action-link--unavailable[data-tooltip].is-tooltip-open::after {
	opacity: 1;
	transform: translate(-50%, 0);
}

/* One vertical rhythm for everything in the Accepted actions cell.

   Replaces the `<br>` tags that used to separate these. A line break is not a
   layout: it cannot be given spacing, it cannot be reordered responsively, and
   it left the arrival note sitting horizontally beside a long message below the
   tablet breakpoint. This is the structure those breaks were standing in for. */
.acciones-reserva .reservation-action-stack {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
}

/* The pills carry their own bottom margin for the non-stacked callers; inside
   the stack the gap owns the spacing, so the margin would double it. */
.acciones-reserva .reservation-action-stack > .button,
.acciones-reserva .reservation-action-stack > button,
.acciones-reserva .reservation-action-stack > .reservation-action-link {
	margin-bottom: 0;
}

.acciones-reserva .button:hover,
.acciones-reserva button:hover,
.accion-reserva:hover,
.acciones-reserva .button:focus,
.acciones-reserva button:focus,
.accion-reserva:focus {
	background: var(--wp--preset--color--primary);
	border-color: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--surface) !important;
	filter: brightness(1.15);
}

/* The generic action hover above paints all buttons green. An unavailable
   disclosure stays visually unavailable in every state; hover changes only the
   visibility of its explanation. */
.acciones-reserva button.reservation-action-link--unavailable:hover,
.acciones-reserva button.reservation-action-link--unavailable:focus,
.acciones-reserva button.reservation-action-link--unavailable:active,
.reservation-person-text button.reservation-action-link--unavailable:hover,
.reservation-person-text button.reservation-action-link--unavailable:focus,
.reservation-person-text button.reservation-action-link--unavailable:active {
	border: 0;
	background: transparent;
	color: var(--wp--preset--color--text-subtle) !important;
	font-weight: 500;
	filter: none;
	text-decoration: underline;
	text-decoration-color: var(--wp--preset--color--border-strong);
	text-underline-offset: 3px;
}

.reservation-action-link--unavailable:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: 3px;
}

/* The only consequence this Accepted state currently enforces. The engine has
   no guest-facing cancellation deadline, so the row does not invent one. */
.reservation-deposit-action {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	gap: 2px;
	max-width: 210px;
}

.reservation-deposit-action .button {
	margin-bottom: 0;
}

.reservation-deposit-action-note {
	color: var(--wp--preset--color--text-muted);
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 500;
	line-height: 1.35;
	text-align: center;
}

/* Decline / Withdraw buttons */
.accion-reserva[data-estado="Declined"],
.accion-reserva[data-estado="Withdrawn"] {
	background: transparent;
	border-color: var(--wp--preset--color--border-strong);
	color: var(--wp--preset--color--text-muted) !important;
}

.accion-reserva[data-estado="Declined"]:hover,
.accion-reserva[data-estado="Withdrawn"]:hover,
.accion-reserva[data-estado="Declined"]:focus,
.accion-reserva[data-estado="Withdrawn"]:focus {
	border: 1px solid var(--wp--preset--color--border-strong);
	background: var(--wp--preset--color--border);
	color: var(--wp--preset--color--text) !important;
	filter: none;
}

.accion-reserva[data-estado="Declined"]:focus-visible,
.accion-reserva[data-estado="Withdrawn"]:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: 2px;
}

.reservation-more-panel .reservation-menu-action.accion-reserva {
	display: block;
	width: 100%;
	min-height: 0;
	margin: 0;
	padding: 8px 10px;
	border: 0;
	border-radius: 6px;
	background: transparent;
	color: var(--wp--preset--color--text) !important;
	font-weight: 600;
	line-height: 1.3;
	text-align: left;
}

.reservation-more-panel .reservation-menu-action.accion-reserva:hover,
.reservation-more-panel .reservation-menu-action.accion-reserva:focus {
	background: var(--wp--preset--color--background);
	color: var(--wp--preset--color--text) !important;
	filter: none;
}

/* Tablet keeps the desktop table shape; do not clip the outside action menu. */
@media (max-width: 1200px) {
	.reservations-tabs .tab-content {
		overflow-x: visible;
		padding-bottom: var(--wp--preset--spacing--20);
	}

	.reservations-tabs table {
		min-width: 0;
	}

	/* Keep the three-dot menu in the outside gutter until card layout begins. */
	.reservation-more-heading,
	.reservation-more-cell {
		width: 0;
		min-width: 0;
		max-width: 0;
		padding-left: 0 !important;
		padding-right: 0 !important;
	}

	.reservation-more-menu {
		position: absolute;
		left: -42px;
		transform: translateY(-50%);
	}
}

@media (max-width: 820px) {
	body.reservations-filter-sheet-open {
		overflow: hidden;
	}

	.machuca-booking-action-dialog {
		width: 100%;
		max-height: calc(100dvh - 16px);
		padding: 0;
		border-radius: 12px;
	}

	#machuca-booking-action-modal {
		padding: 8px;
	}

	.machuca-booking-action-header {
		padding: 16px 52px 12px 14px;
	}

	.machuca-booking-action-body {
		padding: 12px 14px;
	}

	.machuca-booking-action-actions {
		padding: 12px 14px;
		flex-direction: column-reverse;
		align-items: stretch;
	}

	.machuca-booking-action-cancel {
		align-self: flex-start;
	}

	.machuca-booking-action-confirm {
		width: 100%;
		max-width: none;
	}

	.machuca-cancellation-preview__item > summary,
	.machuca-conflict__heading {
		align-items: flex-start;
	}

	.machuca-cancellation-preview__view {
		white-space: nowrap;
	}

	.reservations-table-shell {
		border: 0;
		border-radius: 0;
		background: transparent;
	}

	/* Cards are a list at this breakpoint, so tabs become a page-level switcher
	   rather than raised table tabs. */
	.reservations-tabs .tabs-menu {
		width: 100%;
		margin: 0 0 var(--wp--preset--spacing--30);
		padding: 4px;
		gap: 0;
		border: 1px solid var(--wp--preset--color--border);
		border-radius: 8px;
		background: var(--wp--preset--color--background);
		z-index: auto;
	}

	.reservations-tabs .tabs-menu li {
		flex: 1 1 50%;
	}

	.reservations-tabs .tab-link {
		width: 100%;
		min-width: 0;
		min-height: 44px;
		padding: 10px var(--wp--preset--spacing--30);
		border: 0;
		border-radius: 5px;
		background: transparent;
		color: var(--wp--preset--color--text-muted);
		font-size: var(--wp--preset--font-size--sm);
	}

	.reservations-tabs .tab-link.current {
		border: 0;
		background: var(--wp--preset--color--surface);
		color: var(--wp--preset--color--primary);
		box-shadow: 0 1px 2px rgba(31, 31, 31, 0.08);
	}

	.reservations-toolbar {
		grid-template-columns: max-content minmax(0, 1fr);
		margin-bottom: var(--wp--preset--spacing--30);
		padding: var(--wp--preset--spacing--30);
		border: 1px solid var(--wp--preset--color--border-strong);
		border-radius: 8px;
		background: var(--wp--preset--color--background);
	}

	.reservations-filter-chips {
		margin-bottom: var(--wp--preset--spacing--30);
		padding-bottom: var(--wp--preset--spacing--30);
		border-bottom: 0;
	}

	.reservations-filter:has(+ .reservations-filter-chips:not([hidden])) .reservations-toolbar {
		margin-bottom: 0;
	}

	.reservations-filter-trigger {
		min-width: 106px;
	}

	.reservations-search {
		min-width: 0;
	}

	.reservations-search-clear {
		align-self: center;
	}

	.reservations-filter-controls:not([hidden]) {
		position: fixed;
		inset: 0;
		z-index: 100;
		display: grid;
		grid-template-columns: 1fr;
		align-content: start;
		gap: var(--wp--preset--spacing--30);
		padding: max(var(--wp--preset--spacing--50), env(safe-area-inset-top)) var(--wp--preset--spacing--40) max(var(--wp--preset--spacing--50), env(safe-area-inset-bottom));
		border: 0;
		background: var(--wp--preset--color--surface);
		overflow-y: auto;
	}

	.reservations-filter-panel-head {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: var(--wp--preset--spacing--30);
		padding-bottom: var(--wp--preset--spacing--30);
		border-bottom: 1px solid var(--wp--preset--color--border);
		font-family: var(--wp--preset--font-family--serif);
		font-size: var(--wp--preset--font-size--lg);
	}

	.reservations-filter-panel-close {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 40px;
		height: 40px;
		padding: 0;
		border: 1px solid var(--wp--preset--color--border);
		border-radius: 50%;
		background: var(--wp--preset--color--surface);
		color: var(--wp--preset--color--text);
		font: inherit;
		font-size: 24px;
		line-height: 1;
		cursor: pointer;
	}

	.reservations-filter-panel-close:hover,
	.reservations-filter-panel-close:focus {
		border-width: 1px;
		border-color: var(--wp--preset--color--primary);
		background: var(--wp--preset--color--surface);
		color: var(--wp--preset--color--primary);
	}

	.reservations-filter-panel-close:focus-visible {
		outline: 2px solid var(--wp--preset--color--accent);
		outline-offset: 2px;
	}

	.reservations-filter-panel-footer {
		position: sticky;
		bottom: 0;
		display: block;
		grid-column: 1 / -1;
		margin: var(--wp--preset--spacing--20) calc(-1 * var(--wp--preset--spacing--40)) calc(-1 * var(--wp--preset--spacing--50));
		padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40) max(var(--wp--preset--spacing--30), env(safe-area-inset-bottom));
		border-top: 1px solid var(--wp--preset--color--border);
		background: var(--wp--preset--color--surface);
	}

	.reservations-filter-panel-footer button {
		width: 100%;
		min-height: 48px;
		padding: 10px 16px;
		border: 1px solid var(--wp--preset--color--primary);
		border-radius: 6px;
		background: var(--wp--preset--color--primary);
		color: var(--wp--preset--color--surface);
		font: inherit;
		font-size: var(--wp--preset--font-size--sm);
		font-weight: 700;
		cursor: pointer;
	}

	.reservations-filter-panel-footer button:hover,
	.reservations-filter-panel-footer button:focus {
		border-width: 1px;
		background: var(--wp--preset--color--primary);
		color: var(--wp--preset--color--surface);
	}

	.reservations-tabs .tab-content {
		overflow-x: visible;
	}

	.reservations-tabs table,
	.reservations-tabs thead,
	.reservations-tabs tbody,
	.reservations-tabs tr,
	.reservations-tabs td {
		box-sizing: border-box;
		display: block;
		width: 100%;
		min-width: 0;
		max-width: none;
	}

	.reservations-tabs table {
		min-width: 0;
	}

	.reservations-tabs thead {
		display: none;
	}

	.reservations-tabs tbody tr {
		position: relative;
		display: grid;
		grid-template-columns: 150px minmax(0, 1fr) minmax(170px, 0.8fr);
		grid-template-areas:
			"listing booking person"
			"listing booking actions";
		column-gap: 20px;
		row-gap: 12px;
		margin-bottom: 18px;
		padding: 64px 22px 20px;
		border: 1px solid var(--wp--preset--color--border);
		border-radius: 10px;
		background: var(--wp--preset--color--surface);
		box-shadow: 0 1px 2px rgba(31,31,31,.04);
	}

	.reservations-tabs th,
	.reservations-tabs td,
	.reservations-tabs th:nth-child(2),
	.reservations-tabs td:nth-child(2),
	.reservations-tabs th:last-child,
	.reservations-tabs td:last-child {
		padding: 0;
		border: 0;
		background: transparent;
	}

	.reservations-tabs tbody tr:last-child td:nth-child(2),
	.reservations-tabs tbody tr:last-child td:last-child {
		border-radius: 0;
	}

	/* Anchored to the card's top-right corner.

	   The offsets come from the manual reference that read correctly in browser
	   QA (summary margin-top 11px, margin-right −14px against the previous
	   top:20px / right:22px), but they are applied to the cell rather than as
	   negative margins on the summary: a negative margin on the control itself
	   can push it outside the card's rounded corner and out of its own hit area,
	   while an offset on the positioned cell cannot. Clear of the status row,
	   which sits at the opposite corner. */
	.reservation-more-cell {
		position: absolute;
		top: 31px;
		right: 8px;
		z-index: 4;
		width: 34px !important;
		min-width: 0;
		max-width: 34px;
		padding: 0 !important;
	}

	.reservation-more-menu {
		float: right;
		position: static;
	}

	.reservation-more-panel {
		right: 0;
		left: auto;
	}

	.reservation-listing-cell,
	.reservation-person-cell,
	.reservation-booking-info,
	.estado-reserva,
	.acciones-reserva {
		box-sizing: border-box;
		width: 100% !important;
		margin-top: 0;
		text-align: left !important;
	}

	.reservation-listing-cell {
		grid-area: listing;
		min-height: 0;
		padding-right: 0 !important;
	}

	.reservation-listing-link {
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		gap: 10px;
		width: 100%;
		max-width: none;
	}

	.reservation-listing-thumb {
		position: relative;
		flex: 0 0 auto;
		width: 142px;
		height: 112px;
		aspect-ratio: auto;
		border-radius: 8px;
	}

	.reservation-listing-title {
		display: none;
	}

	.reservation-card-title {
		display: block;
		margin-bottom: 8px;
		color: var(--wp--preset--color--text);
		font-size: var(--wp--preset--font-size--md);
		font-weight: 700;
		line-height: 1.2;
	}

	.reservation-booking-info {
		grid-area: booking;
		width: 100% !important;
		padding-left: 0 !important;
		padding-bottom: 0 !important;
		border-bottom: 0 !important;
		border-right: 1px solid var(--wp--preset--color--border) !important;
	}

	.reservation-person-cell {
		display: flex !important;
		grid-area: person;
		width: 100% !important;
		align-items: center;
		align-self: flex-end;
		justify-content: center;
		gap: 14px;
		padding-bottom: 0 !important;
		padding-left: 28px !important;
		border-bottom: 0 !important;
		border-left: 0 !important;
	}

	.estado-reserva {
		position: absolute;
		top: 20px;
		left: 20px;
		z-index: 3;
		width: auto !important;
		margin-top: 0;
		padding: 0 !important;
		border: 0 !important;
		background: transparent;
		line-height: 1;
	}

	.reservations-tabs td.estado-reserva .reservation-status-pill {
		padding-top: 7px;
		padding-bottom: 7px;
		font-size: 14px;
	}

	/* Below the tablet breakpoint the card is already vertical, so stacking the
	   condition under the pill pushed it a long way from the status it
	   qualifies. On one line — "Accepted   Action needed ?" — the relationship
	   stays visible without turning the note into a second pill. */
	.reservations-tabs td.estado-reserva {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		gap: 8px;
		/* The desktop reservation for "Action needed ?" is a table-column
		   concern. In the card layout the status is absolutely positioned in
		   the corner and a minimum width there would only push the pill off
		   centre. */
		min-width: 0;
	}

	.reservations-tabs td.estado-reserva .reservation-status-note {
		margin-top: 0;
	}

	/* The Accepted check mark is removed. It appeared on green Accepted pills
	   only — not on the warning Accepted, not on Cancelled or Expired — so the
	   same status was decorated in one state and bare in another, and the
	   decoration read as a claim about the booking rather than as part of the
	   status vocabulary. Consistency is worth more than the tick. Specific to
	   this table; global status components are untouched. */

	.acciones-reserva {
		display: flex !important;
		grid-area: actions;
		align-items: center;
		justify-content: center;
		margin-top: 0;
		padding-top: 0 !important;
		border-top: 0 !important;
		text-align: right !important;
	}

	/* An Accepted booking's actions get their own vertical zone.

	   Centring works for the two short Accept/Decline buttons a Pending row
	   shows, and badly for an Accepted row, where a primary CTA, an unavailable
	   arrival action and a review link were being centred as a horizontal run
	   and reading as part of the Host block above them. Scoped by :has() to the
	   stack, so the Pending and AwaitingPayment rows keep the layout they
	   already had. */
	.acciones-reserva:has(.reservation-action-stack) {
		align-items: stretch;
		justify-content: flex-start;
		text-align: left !important;
	}

	.acciones-reserva .reservation-action-stack {
		width: 100%;
		align-items: stretch;
		gap: 8px;
	}

	/* The primary CTA keeps its own line and fills it, so it is unmistakably
	   the thing to press on a phone. */
	.acciones-reserva .reservation-action-stack > .button,
	.acciones-reserva .reservation-action-stack > .reservation-action-link,
	.acciones-reserva .reservation-action-stack > .reservation-unavailable-action,
	.acciones-reserva .reservation-action-stack > .reservation-deposit-action {
		width: 100%;
		justify-content: center;
	}

	.acciones-reserva .reservation-deposit-action {
		max-width: none;
	}

	.reservation-listing-link,
	.reservation-person-text {
		align-items: flex-start;
		text-align: left;
	}

	.reservation-person-avatar {
		flex: 0 0 auto;
		margin-left: 0;
		margin-right: 0;
	}

	.reservation-person-text {
		width: auto;
	}

	.reservation-date-range {
		display: block;
		position: relative;
		margin-top: 14px;
		padding-left: 26px;
		white-space: normal;
	}

	.reservation-duration {
		padding-left: 26px;
	}

	.reservation-date-range::before,
	.reservation-booking-ref::before,
	.reservation-party::before,
	.reservation-message-link::before {
		position: absolute;
		left: 0;
		box-sizing: border-box;
		width: 16px;
		height: 16px;
		margin-right: 0;
		border: 0;
		background-color: currentColor;
		content: "";
		mask-repeat: no-repeat;
		mask-size: 16px 16px;
		-webkit-mask-repeat: no-repeat;
		-webkit-mask-size: 16px 16px;
		color: var(--wp--preset--color--text-muted);
	}

	.reservation-party {
		position: relative;
		padding-left: 26px;
	}

	.reservation-party::before {
		top: 1px;
	}

	.reservation-message-link {
		position: relative;
		padding-left: 26px;
	}

	.reservation-message-link::before {
		top: 1px;
	}

	.reservation-date-range::before {
		top: 2px;
		mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'/%3E%3Cline x1='16' y1='2' x2='16' y2='6'/%3E%3Cline x1='8' y1='2' x2='8' y2='6'/%3E%3Cline x1='3' y1='10' x2='21' y2='10'/%3E%3Cline x1='8' y1='14' x2='8.01' y2='14'/%3E%3Cline x1='12' y1='14' x2='12.01' y2='14'/%3E%3Cline x1='16' y1='14' x2='16.01' y2='14'/%3E%3Cline x1='8' y1='18' x2='8.01' y2='18'/%3E%3Cline x1='12' y1='18' x2='12.01' y2='18'/%3E%3C/svg%3E");
		-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'/%3E%3Cline x1='16' y1='2' x2='16' y2='6'/%3E%3Cline x1='8' y1='2' x2='8' y2='6'/%3E%3Cline x1='3' y1='10' x2='21' y2='10'/%3E%3Cline x1='8' y1='14' x2='8.01' y2='14'/%3E%3Cline x1='12' y1='14' x2='12.01' y2='14'/%3E%3Cline x1='16' y1='14' x2='16.01' y2='14'/%3E%3Cline x1='8' y1='18' x2='8.01' y2='18'/%3E%3Cline x1='12' y1='18' x2='12.01' y2='18'/%3E%3C/svg%3E");
	}

	.reservation-booking-ref {
		position: relative;
		width: 100%;
		margin-top: 10px;
		padding-left: 26px;
	}

	.reservation-booking-ref::before {
		top: 1px;
		mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpolyline points='14 2 14 8 20 8'/%3E%3Cline x1='8' y1='13' x2='16' y2='13'/%3E%3Cline x1='8' y1='17' x2='16' y2='17'/%3E%3C/svg%3E");
		-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpolyline points='14 2 14 8 20 8'/%3E%3Cline x1='8' y1='13' x2='16' y2='13'/%3E%3Cline x1='8' y1='17' x2='16' y2='17'/%3E%3C/svg%3E");
	}

	button.bm-lc-button,
	button.bm-lc-button:hover,
	button.bm-lc-button:focus {
		min-width: unset;
	}

	.acciones-reserva .button,
	.acciones-reserva button,
	.accion-reserva {
		margin-bottom: 0;
	}
}

@media (max-width: 660px) {
	.reservations-tabs tbody tr {
		grid-template-columns: 128px minmax(0, 1fr);
		grid-template-areas:
			"listing booking"
			"ref ref"
			"person person"
			"actions actions";
		column-gap: 16px;
		row-gap: 14px;
		padding: 80px 20px 24px;
	}

	.reservation-booking-info {
		border: none !important;
	}

	.reservation-card-main {
		grid-area: booking;
		align-self: center;
	}

	.reservation-booking-info,
	.reservation-person-cell {
		width: 100% !important;
	}

	.reservation-person-cell {
		align-self: stretch;
		margin-top: 0;
		padding-left: 0 !important;
		padding-top: 18px !important;
		border-top: 1px solid var(--wp--preset--color--border) !important;
		border-right: 0 !important;
		border-left: 0 !important;
	}

	.reservation-listing-thumb {
		flex-basis: auto;
		width: 128px;
		height: 128px;
	}

	.reservation-booking-ref {
		grid-area: ref;
		margin-top: 0;
		padding-top: 2px;
	}

	.reservation-booking-info .reservation-booking-ref {
		display: block;
	}

	.acciones-reserva {
		padding-top: 0 !important;
		text-align: center !important;
	}

	.acciones-reserva .button,
	.acciones-reserva button,
	.accion-reserva {
		width: 100%;
		max-width: 360px;
	}
}

@media (max-width: 420px) {
	.reservation-booking-info {
		display: contents !important;
	}
}

@media (max-width: 380px) {
	.reservations-tabs tbody tr {
		grid-template-columns: 96px minmax(0, 1fr);
		column-gap: 14px;
		padding-left: 16px;
		padding-right: 16px;
	}

	.reservation-listing-thumb {
		width: 96px;
		height: 96px;
	}

	.reservation-card-title {
		font-size: var(--wp--preset--font-size--sm);
	}

	.reservation-date-range,
	.reservation-duration,
	.reservation-booking-ref,
	.reservation-message-link {
		padding-left: 22px;
	}
}

@media (max-width: 600px) {
	body .wp-block-post-title:has(+ .entry-content .reservations-tabs),
	.entry-content:has(.reservations-tabs) .machuca-account-subtitle,
	.entry-content .reservations-tabs {
		padding-left: var(--wp--preset--spacing--40);
		padding-right: var(--wp--preset--spacing--40);
	}

	.reservations-tabs .tabs-menu {
		gap: 0;
		width: 100%;
	}

	.reservations-tabs .tabs-menu li {
		flex-basis: 50%;
	}

	.reservations-tabs .tab-link {
		min-width: 0;
		width: 100%;
		padding-left: var(--wp--preset--spacing--20);
		padding-right: var(--wp--preset--spacing--20);
	}

}

.reservations-tabs table[hidden],
.reservations-tabs tr[hidden] {
	display: none;
}


/* ══════════════════════════════════════════════════════════════════════════════
   Single Rental Template — single-rental.php
   ══════════════════════════════════════════════════════════════════════════════ */

/* Outer article wrapper */
.machuca-single-rental {
	max-width: var(--wp--style--global--wide-size, 1140px);
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--wp--preset--spacing--60);
	padding-right: var(--wp--preset--spacing--60);
}

/* Gallery grid */
.machuca-gallery-wrap {
	position: relative;
	margin-bottom: var(--wp--preset--spacing--60);
}

.machuca-gallery-wrap .gallery {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 6px;
	border-radius: 10px;
	overflow: hidden;
	margin: 0;
	padding: 0;
}

.machuca-gallery-wrap .gallery-item {
	margin: 0;
	overflow: hidden;
	line-height: 0;
}

.machuca-gallery-wrap .gallery-item .gallery-icon {
	height: 100%;
}

.machuca-gallery-wrap .gallery-item .gallery-icon a {
	display: block;
	height: 100%;
}

.machuca-gallery-wrap .gallery-item img {
	width: 100%;
	height: 200px;
	object-fit: cover;
	display: block;
	padding: 0;
	border: none;
	transition: transform 0.3s ease;
}

.machuca-gallery-wrap .gallery-item:hover img {
	transform: scale(1.04);
}

/* Hero: first image spans 2 cols × 2 rows */
.machuca-gallery-wrap .gallery-item:first-child {
	grid-column: span 2;
	grid-row: span 2;
}

.machuca-gallery-wrap .gallery-item:first-child img {
	height: 100%;
	min-height: 320px;
	aspect-ratio: 4 / 3;
}

.machuca-gallery-wrap .gallery-item figcaption {
	display: none;
}

.machuca-gallery-wrap .gallery-item--overflow {
	display: none;
}

/* Show all photos button */
/* The corner owns the position; the buttons in it are just pills in a row.
   "Show all photos" used to be positioned individually — that moved up here when
   the video button joined it, so the two stay aligned by construction instead of
   by two sets of matching offsets. */
.machuca-gallery-actions {
	position: absolute;
	bottom: 16px;
	right: 16px;
	z-index: 10;
	display: flex;
	align-items: center;
	gap: 8px;
}

.machuca-gallery-action {
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--border-strong);
	border-radius: 8px;
	padding: 9px 16px;
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 600;
	color: var(--wp--preset--color--text);
	cursor: pointer;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
	transition: background 0.15s, box-shadow 0.15s;
	line-height: 1;
	white-space: nowrap;
}

/* The bare `button:hover` rule near the top of this file paints every button
   with the primary green, so these have to restate their own colours on hover.
   Two classes out-specify `button:hover`; no !important needed. */
.machuca-gallery-action:hover,
.machuca-gallery-action:focus {
	background: var(--wp--preset--color--surface);
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
	border-color: var(--wp--preset--color--border-strong);
	color: var(--wp--preset--color--text);
	border-width: 1px;
}

/* ── Video tour ───────────────────────────────────────────────────────────── */

/* The play glyph, drawn rather than shipped as an asset — it is a triangle. */
.machuca-video-tour-open {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

.machuca-video-tour-icon {
	width: 0;
	height: 0;
	flex: 0 0 auto;
	border-style: solid;
	border-width: 5px 0 5px 8px;
	border-color: transparent transparent transparent var(--wp--preset--color--text);
}

/* The dialog itself is invisible: a white field with the video on it. The
   rounding belongs to the video, which is the object being looked at, not to a
   panel around it — a rounded panel on a white ground is a card the visitor has
   no reason to see. */
.machuca-video-dialog {
	width: min(960px, calc(100vw - 32px));
	margin: auto;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--wp--preset--color--text);
	overflow: visible;
}

.machuca-video-dialog::backdrop {
	background: var(--wp--preset--color--surface);
}

.machuca-video-dialog-head {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 0 4px 12px;
}

.machuca-video-dialog-head h2 {
	margin: 0;
	margin-right: auto;
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 600;
	color: var(--wp--preset--color--text);
}

.machuca-video-dialog-note {
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--xs);
	color: var(--wp--preset--color--text-muted);
}

/* The photo viewer's close, in the video viewer: same glyph (GLightbox's own
   SVG, inlined in the template), same size, same corner, same hover. The two are
   one experience and now they close the same way.

   Written with the hover states in the selector because the global
   `button:hover` rule repaints every button; two classes out-specify it, so no
   !important is needed. */
.machuca-video-close,
.machuca-video-close:hover,
.machuca-video-close:focus {
	position: fixed;
	top: 14px;
	right: 18px;
	width: 48px;
	height: 48px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: none;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	padding: 0;
	cursor: pointer;
}

.machuca-video-close svg {
	width: 19px;
	height: 19px;
}

.machuca-video-close path {
	fill: var(--wp--preset--color--text);
	transition: fill 0.15s ease;
}

.machuca-video-close:hover path,
.machuca-video-close:focus path {
	fill: var(--wp--preset--color--primary);
}

.machuca-video-frame {
	aspect-ratio: 16 / 9;
	width: 100%;
	background: #000;
	border-radius: 10px;
	overflow: hidden;
	box-shadow: 0 10px 40px rgba(31, 31, 31, 0.14);
}

.machuca-video-frame iframe,
.machuca-video-frame video {
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
}

/* ── GLightbox overrides ──────────────────────────────────────────────────── */

/* Use dvh so iOS browser chrome doesn't cause the overlay to short-circuit */
.glightbox-container {
	height: 100dvh;
	z-index: 9999999 !important;
}
/* White field, not a dark overlay. The listing showing through behind a media
   viewer makes it read as an interruption of the page; an opaque white ground
   makes it read as its own place, and the photographs carry themselves without
   a dark surround. Applies to both media viewers — this one and the video
   dialog below, which share the control treatment further down. */
/* Specificity, not order: glightbox.min.css is enqueued after style.css (both on
   wp_enqueue_scripts at priority 10, registered later in functions.php), so a
   plain `.goverlay` here ties with the vendor's `.goverlay{background:#000}` and
   loses. The extra ancestor settles it without another !important. The rest of
   this section leans on !important for the same reason; fixing the enqueue order
   would let all of it drop, and that belongs in a deliberate pass, not here. */
.glightbox-container .goverlay {
	height: 100dvh;
	background: var(--wp--preset--color--surface);
}
body.glightbox-open {
	overflow: hidden !important;
}

/* Top breathing room above the image */
.glightbox-clean #glightbox-slider {
	padding-top: 64px;
	box-sizing: border-box;
}

/* Counter — quiet chip in the top strip */
.machuca-gallery-counter {
	position: fixed;
	top: 18px;
	left: 50%;
	transform: translateX(-50%);
	color: var(--wp--preset--color--text-muted);
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.95rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	z-index: 9999;
	pointer-events: none;
	background: transparent;
	padding: 4px 12px;
	border-radius: 20px;
}

/*
 * Media viewer controls — no chrome at all: the mark itself, sized generously,
 * on the white ground. Boxing them was the problem in both directions; a dark
 * pill fought the page and a white disc had no presence. The images are capped
 * short of the viewport edges, so the arrows sit on white margin and read
 * cleanly without anything behind them.
 *
 * !important throughout because the vendor styles these with the same
 * `.glightbox-clean .gX` specificity and loads afterwards — see the note on
 * .goverlay above.
 */
.glightbox-clean .gclose,
.glightbox-clean .gprev,
.glightbox-clean .gnext {
	background: transparent !important;
	background-color: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	opacity: 1;
	transition: transform 0.15s ease, opacity 0.15s ease;
}

.glightbox-clean .gclose path,
.glightbox-clean .gprev path,
.glightbox-clean .gnext path {
	fill: var(--wp--preset--color--text) !important;
	transition: fill 0.15s ease;
}

.glightbox-clean .gclose:hover path,
.glightbox-clean .gprev:hover path,
.glightbox-clean .gnext:hover path {
	fill: var(--wp--preset--color--primary) !important;
}

.glightbox-clean .gclose {
	width: 48px !important;
	height: 48px !important;
	top: 14px !important;
	right: 18px !important;
	padding: 0;
}
.glightbox-clean .gclose svg {
	width: 19px;
	height: 19px;
}

.glightbox-clean .gprev,
.glightbox-clean .gnext {
	width: 56px !important;
	height: 56px !important;
}
.glightbox-clean .gprev { left: 18px !important; }
.glightbox-clean .gnext { right: 18px !important; }
.glightbox-clean .gprev svg,
.glightbox-clean .gnext svg {
	width: 22px;
	height: 22px;
}
.glightbox-clean .gprev:hover { transform: translateX(-2px); }
.glightbox-clean .gnext:hover { transform: translateX(2px); }

/* Image — rounded on the container too, not only on the <img>. The corners of
   the flex wrapper used to show through behind the radius. */
.glightbox-clean .gslide-media {
	border-radius: 10px;
	overflow: hidden;
}

.glightbox-clean .gslide-image img {
	max-height: calc(100vh - 180px) !important;
	max-width: calc(100vw - 120px) !important;
	border-radius: 10px;
	/* GLightbox sets the grab cursor itself only while zoomable is on, and we
	   turn that off (see single-rental-tabs.js) because it fights this rule's
	   !important sizing. Dragging still changes slides, so the affordance has
	   to be stated here instead. */
	cursor: grab;
}

.glightbox-clean .gslide-image img:active {
	cursor: grabbing;
}

/* Caption — transparent bg, centered serif italic */
.glightbox-clean .gslide-description,
.glightbox-clean .gdesc-inner {
	background: transparent !important;
	padding: 12px 20px;
}
.glightbox-clean .gslider .gslide-desc,
.glightbox-clean .gslider .gslide-title {
	color: var(--wp--preset--color--text);
	text-align: center;
	font-family: 'Sen' !important;
	font-size: 1.2em;
	font-style: normal;
	font-weight: 400;
	margin: 0;
}

/* Mobile — tighter top strip, full-width image, caption always visible */
@media (max-width: 768px) {
	.glightbox-clean #glightbox-slider {
		padding-top: 54px;
	}

	.machuca-gallery-counter {
		top: 15px;
	}

	.glightbox-clean .gclose {
		top: 8px !important;
		right: 8px !important;
	}

	.glightbox-clean .gslide-media {
		border-radius: 8px;
	}

	.glightbox-clean .gslide-image img {
		max-height: calc(100dvh - 130px) !important;
		max-width: calc(100vw - 16px) !important;
		border-radius: 8px;
	}

	.glightbox-clean .gslide-description,
	.glightbox-clean .gdesc-inner {
		padding: 10px 16px 0;
	}

	.glightbox-clean .gslider .gslide-desc,
	.glightbox-clean .gslider .gslide-title {
		font-size: 0.9rem;
	}
}

/* Listing header */
.machuca-listing-header {
	margin-bottom: var(--wp--preset--spacing--50);
}

.machuca-listing-title-row {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: var(--wp--preset--spacing--60);
	margin-bottom: var(--wp--preset--spacing--40);
}

.machuca-listing-title {
	font-family: var(--wp--preset--font-family--serif);
	font-size: var(--wp--preset--font-size--xl);
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: 0;
	color: var(--wp--preset--color--text);
	margin: 0;
	max-width: 16em;
	text-transform: none !important;
}

.machuca-listing-availability {
	flex: 0 0 auto;
	max-width: 340px;
	display: flex;
	align-items: flex-start;
	justify-content: flex-end;
	gap: var(--wp--preset--spacing--30);
	text-align: right;
	font-family: var(--wp--preset--font-family--sans);
	line-height: 1.35;
	padding-top: 0.35rem;
}

.machuca-availability-cue {
	display: block;
}

.machuca-availability-cue + .machuca-availability-cue {
	padding-left: var(--wp--preset--spacing--30);
	border-left: 1px solid var(--wp--preset--color--border);
}

.machuca-availability-main {
	display: block;
	color: var(--wp--preset--color--primary);
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 500;
}

.machuca-availability-context {
	display: block;
	color: var(--wp--preset--color--text-muted);
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 400;
}

/* Listing overview */
.machuca-listing-context {
	padding-bottom: var(--wp--preset--spacing--60);
	margin-bottom: var(--wp--preset--spacing--70);
	border-bottom: 1px solid var(--wp--preset--color--border);
}

.machuca-listing-subtitle {
	margin: 0 0 var(--wp--preset--spacing--30);
	font-family: var(--wp--preset--font-family--serif);
	font-size: var(--wp--preset--font-size--lg);
	font-weight: 700;
	line-height: 1.25;
	color: var(--wp--preset--color--text);
}

.machuca-listing-highlights {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem;
}

.machuca-listing-highlight {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 500;
	color: var(--wp--preset--color--text);
	line-height: 1.2;
}

.machuca-listing-highlight + .machuca-listing-highlight::before {
	content: "\00b7";
	margin-right: 1px;
	color: var(--wp--preset--color--text-muted);
}

.machuca-listing-highlight .machuca-meta-icon {
	margin: 0;
}

/* Content sections */
.machuca-description,
.machuca-property-details,
.machuca-amenities,
.machuca-good-to-know {
	padding-bottom: var(--wp--preset--spacing--70);
	margin-bottom: var(--wp--preset--spacing--70);
	border-bottom: 1px solid var(--wp--preset--color--border);
}

.machuca-description {
	overflow-wrap: break-word;
	word-break: normal;
}

.machuca-description-content {
	position: relative;
}

.machuca-description-content.is-collapsible:not(.is-expanded) {
	max-height: 14em;
	overflow: hidden;
}

.machuca-description-content.is-collapsible:not(.is-expanded)::after {
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	height: 3.5em;
	background: linear-gradient(to bottom, rgba(255, 255, 255, 0), var(--wp--preset--color--surface) 88%);
	content: "";
	pointer-events: none;
}

.machuca-description:last-child,
.machuca-property-details:last-child,
.machuca-amenities:last-child,
.machuca-good-to-know:last-child {
	border-bottom: none;
	margin-bottom: 0;
}

.machuca-description h2,
.machuca-property-details h2,
.machuca-amenities h2,
.machuca-good-to-know h2 {
	font-family: var(--wp--preset--font-family--serif);
	font-size: var(--wp--preset--font-size--lg);
	font-weight: 700;
	line-height: 1.2;
	margin-top: 0;
	margin-bottom: var(--wp--preset--spacing--50);
}

.machuca-description p {
	line-height: 1.75;
	color: var(--wp--preset--color--text);
	margin-bottom: var(--wp--preset--spacing--40);
	text-align: justify;
	overflow-wrap: break-word;
	word-break: normal;
}

.machuca-description p:last-child {
	margin-bottom: 0;
}

.machuca-description-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	margin-top: var(--wp--preset--spacing--20);
	padding: 9px 16px;
	border: 1px solid var(--wp--preset--color--border-strong);
	border-radius: 8px;
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--text);
	font: inherit;
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 700;
	cursor: pointer;
}

.machuca-description-toggle:hover,
.machuca-description-toggle:focus,
.machuca-description-toggle:active {
	border-width: 1px;
	border-color: var(--wp--preset--color--primary);
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--primary);
}

.machuca-description-toggle:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: 3px;
}

.machuca-description-toggle[hidden] {
	display: none;
}

.machuca-amenities-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: var(--wp--preset--spacing--50);
	row-gap: var(--wp--preset--spacing--30);
}

.machuca-feature-highlights {
	margin-bottom: var(--wp--preset--spacing--50);
}

.machuca-features-open {
	min-height: 44px;
	padding: 9px 16px;
	border: 1px solid var(--wp--preset--color--border-strong);
	border-radius: 8px;
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--text);
	font: inherit;
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 700;
	cursor: pointer;
}

.machuca-features-open:hover {
	background: var(--wp--preset--color--surface);
	border-color: var(--wp--preset--color--primary);
	border-width: 1px;
	color: var(--wp--preset--color--primary);
}

.machuca-features-open:focus-visible,
.machuca-features-close:focus-visible,
.machuca-amenity-disclosure summary:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: 2px;
}

.machuca-features-dialog {
	width: min(720px, calc(100vw - 32px));
	max-height: min(82vh, 780px);
	margin: auto;
	padding: 0;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 8px;
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--text);
	box-shadow: 0 24px 70px rgba(31, 31, 31, 0.22);
}

.machuca-features-dialog::backdrop {
	background: rgba(31, 31, 31, 0.52);
}

body.machuca-modal-open {
	overflow: hidden;
}

.machuca-features-dialog-head {
	position: sticky;
	top: 0;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 15px;
	padding: 20px 24px;
	border-bottom: 1px solid var(--wp--preset--color--border);
	background: var(--wp--preset--color--surface);
}

.machuca-features-dialog-head h2 {
	margin: 0;
	font-family: var(--wp--preset--font-family--serif);
	font-size: var(--wp--preset--font-size--lg);
	line-height: 1.2;
}

.machuca-features-close {
	display: inline-flex;
	flex: 0 0 36px;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	padding: 0;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 50%;
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--text);
	font: inherit;
	font-size: 20px;
	line-height: 1;
	cursor: pointer;
}

.machuca-features-dialog-body {
	display: grid;
	gap: 0;
	padding: 0 24px 24px;
}

.machuca-features-dialog-section {
	padding: 24px 0;
	border-bottom: 1px solid var(--wp--preset--color--border);
}

.machuca-features-dialog-section:last-child {
	border-bottom: 0;
}

.machuca-features-dialog-section h3 {
	margin: 0 0 var(--wp--preset--spacing--40);
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--base);
	font-weight: 700;
}

.machuca-amenity-disclosure {
	margin-top: 4px;
	color: var(--wp--preset--color--text-muted);
	font-size: var(--wp--preset--font-size--xs);
}

.machuca-amenity-disclosure summary {
	width: fit-content;
	color: var(--wp--preset--color--primary);
	font-weight: 700;
	cursor: pointer;
}

.machuca-amenity-disclosure > span {
	display: block;
	margin-top: 4px;
}

.machuca-amenity {
	display: flex;
	align-items: flex-start;
	gap: var(--wp--preset--spacing--30);
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--base);
	line-height: 1.4;
	color: var(--wp--preset--color--text);
	padding: 0;
	background: transparent;
	border: none;
}

.machuca-amenity-icon {
	display: inline-block;
	flex: 0 0 24px;
	width: 24px;
	height: 24px;
	background: var(--wp--preset--color--primary);
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / contain no-repeat;
}

.machuca-amenity-property_wifi .machuca-amenity-icon {
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M5 12.6a11 11 0 0 1 14 0'/%3E%3Cpath d='M8.5 16a6 6 0 0 1 7 0'/%3E%3Cpath d='M2 9a16 16 0 0 1 20 0'/%3E%3Cpath d='M12 20h.01'/%3E%3C/svg%3E");
}

.machuca-amenity-property_smart_tv .machuca-amenity-icon,
.machuca-amenity-property_study2 .machuca-amenity-icon {
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Crect x='3' y='4' width='18' height='13' rx='2'/%3E%3Cpath d='M8 21h8M12 17v4'/%3E%3C/svg%3E");
}

.machuca-amenity-climate_control .machuca-amenity-icon,
.machuca-amenity-property_air_conditioning2 .machuca-amenity-icon,
.machuca-amenity-property_ducted_cooling2 .machuca-amenity-icon,
.machuca-amenity-property_split_system_aircon2 .machuca-amenity-icon,
.machuca-amenity-property_reverse_cycle_aircon2 .machuca-amenity-icon {
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M12 2v20M4.93 4.93l14.14 14.14M2 12h20M4.93 19.07 19.07 4.93'/%3E%3C/svg%3E");
}

.machuca-amenity-ceiling_fans .machuca-amenity-icon,
.machuca-amenity-floor_fans .machuca-amenity-icon {
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='2'/%3E%3Cpath d='M11 10c-2-2-1-6 1-7 2 2 2 5 0 7M14 11c2-2 6-1 7 1-2 2-5 2-7 0M13 14c2 2 1 6-1 7-2-2-2-5 0-7M10 13c-2 2-6 1-7-1 2-2 5-2 7 0'/%3E%3C/svg%3E");
}

.machuca-amenity-property_evaporative_cooling2 .machuca-amenity-icon,
.machuca-amenity-bioclimatic_cooling .machuca-amenity-icon {
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M4 8h10a3 3 0 1 0-3-3M4 12h15a3 3 0 1 1-3 3M4 16h7'/%3E%3Cpath d='M18 4s3 3 3 5a3 3 0 0 1-6 0c0-2 3-5 3-5Z'/%3E%3C/svg%3E");
}

.machuca-amenity-property_bathtub .machuca-amenity-icon,
.machuca-amenity-property_ensuite .machuca-amenity-icon {
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M4 12h16v4a4 4 0 0 1-4 4H8a4 4 0 0 1-4-4zM6 12V5a3 3 0 0 1 5.4-1.8'/%3E%3C/svg%3E");
}

.machuca-amenity-property_indoor_shower .machuca-amenity-icon,
.machuca-amenity-property_hot_shower .machuca-amenity-icon,
.machuca-amenity-property_outdoor_shower .machuca-amenity-icon,
.machuca-amenity-pool_shower .machuca-amenity-icon {
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M4 5a5 5 0 0 1 10 0v1M12 6h4M13 10v.01M17 10v.01M13 14v.01M17 14v.01M15 18v.01'/%3E%3C/svg%3E");
}

.machuca-amenity-property_toilet .machuca-amenity-icon {
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M6 3h8v8H6zM6 11h12a6 6 0 0 1-6 6H9a3 3 0 0 1-3-3zM10 17v4M15 17v4'/%3E%3C/svg%3E");
}

.machuca-amenity-property_gym2 .machuca-amenity-icon {
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M6 5v14M18 5v14M3 8v8M21 8v8M6 12h12'/%3E%3C/svg%3E");
}

.machuca-amenity-property_workshop2 .machuca-amenity-icon,
.machuca-amenity-property_study2 .machuca-amenity-icon {
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Crect x='3' y='7' width='18' height='13' rx='2'/%3E%3Cpath d='M8 7V5h8v2M3 12h18'/%3E%3C/svg%3E");
}

.machuca-amenity-property_pool2 .machuca-amenity-icon {
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M2 16c2-2 4-2 6 0s4 2 6 0 4-2 8 0M2 20c2-2 4-2 6 0s4 2 6 0 4-2 8 0M7 12V5a3 3 0 0 1 6 0'/%3E%3C/svg%3E");
}

.machuca-amenity-property_spa2 .machuca-amenity-icon,
.machuca-amenity-indoor_jacuzzi .machuca-amenity-icon,
.machuca-amenity-outdoor_jacuzzi .machuca-amenity-icon {
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M4 14h16v2a5 5 0 0 1-5 5H9a5 5 0 0 1-5-5zM8 14V9M16 14V9'/%3E%3Ccircle cx='8' cy='5' r='1'/%3E%3Ccircle cx='12' cy='8' r='1'/%3E%3Ccircle cx='16' cy='4' r='1'/%3E%3C/svg%3E");
}

.machuca-amenity-property_secure_parking2 .machuca-amenity-icon,
.machuca-amenity-property_garage .machuca-amenity-icon,
.machuca-amenity-property_car_spaces .machuca-amenity-icon {
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='m5 17-2-5 2-5h14l2 5-2 5z'/%3E%3Ccircle cx='7' cy='17' r='2'/%3E%3Ccircle cx='17' cy='17' r='2'/%3E%3C/svg%3E");
}

.machuca-amenity-property_remote_garage2 .machuca-amenity-icon {
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Crect x='7' y='3' width='10' height='18' rx='2'/%3E%3Ccircle cx='12' cy='9' r='2'/%3E%3Cpath d='M10 15h4M12 13v4'/%3E%3C/svg%3E");
}

.machuca-amenity-property_carport .machuca-amenity-icon {
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M3 9h18L18 4H6zM5 9v11M19 9v11M8 16h8l-1-4H9zM9 20v-4M15 20v-4'/%3E%3C/svg%3E");
}

.machuca-amenity-property_open_spaces .machuca-amenity-icon {
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='m8 3-4 18M16 3l4 18M12 4v3M12 10v4M12 17v3'/%3E%3C/svg%3E");
}

.machuca-amenity-primary_cooking_setup .machuca-amenity-icon,
[class*="machuca-amenity-kitchen_appliances_"] .machuca-amenity-icon {
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M4 10h16v9H4zM8 10V6M12 10V4M16 10V7'/%3E%3C/svg%3E");
}

.machuca-amenity-fridge .machuca-amenity-icon {
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Crect x='6' y='2' width='12' height='20' rx='2'/%3E%3Cpath d='M6 10h12M9 6v2M9 14v3'/%3E%3C/svg%3E");
}

.machuca-amenity-property_dishwasher2 .machuca-amenity-icon {
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Crect x='4' y='2' width='16' height='20' rx='2'/%3E%3Cpath d='M4 7h16M8 4h.01M12 4h.01'/%3E%3Ccircle cx='12' cy='14' r='4'/%3E%3C/svg%3E");
}

.machuca-amenity-washing_machine .machuca-amenity-icon {
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Crect x='4' y='2' width='16' height='20' rx='2'/%3E%3Ccircle cx='12' cy='14' r='5'/%3E%3Cpath d='M7 5h.01M10 5h3'/%3E%3C/svg%3E");
}

.machuca-amenity-dryer .machuca-amenity-icon {
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Crect x='4' y='2' width='16' height='20' rx='2'/%3E%3Ccircle cx='12' cy='14' r='5'/%3E%3Cpath d='M9 14c1-2 2 2 3 0s2 2 3 0'/%3E%3C/svg%3E");
}

.machuca-amenity-drinking_water_filter .machuca-amenity-icon {
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M4 7h11a3 3 0 0 1 3 3v1M8 7V4h6v3M3 11h16M17 15s3 3 3 5a3 3 0 0 1-6 0c0-2 3-5 3-5Z'/%3E%3C/svg%3E");
}

.machuca-amenity-kitchen_appliances_microwave .machuca-amenity-icon {
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Crect x='2' y='5' width='20' height='14' rx='2'/%3E%3Crect x='5' y='8' width='10' height='8' rx='1'/%3E%3Ccircle cx='19' cy='9' r='1'/%3E%3Cpath d='M18 14h2'/%3E%3C/svg%3E");
}

.machuca-amenity-kitchen_appliances_coffee_maker .machuca-amenity-icon {
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M5 9h12v7a4 4 0 0 1-4 4H9a4 4 0 0 1-4-4zM17 11h2a2 2 0 0 1 0 4h-2M8 4v2M12 3v3M16 4v2'/%3E%3C/svg%3E");
}

.machuca-amenity-kitchen_appliances_blender .machuca-amenity-icon {
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M7 3h10l-1 11H8zM9 14h6l2 7H7zM9 7h6'/%3E%3C/svg%3E");
}

.machuca-amenity-baby_crib .machuca-amenity-icon {
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M3 6v12M21 6v12M3 15h18M7 15V9h10v6M7 21v-3M17 21v-3'/%3E%3C/svg%3E");
}

.machuca-amenity-property_security_system2 .machuca-amenity-icon {
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M3 7h12v10H3zM15 10l6-3v10l-6-3zM7 17v3M4 20h6'/%3E%3Ccircle cx='9' cy='12' r='2'/%3E%3C/svg%3E");
}

.machuca-amenity-property_intercom2 .machuca-amenity-icon {
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Crect x='5' y='2' width='14' height='20' rx='2'/%3E%3Ccircle cx='12' cy='7' r='2'/%3E%3Cpath d='M9 13h6M9 17h6'/%3E%3C/svg%3E");
}

.machuca-amenity-property_built_in_robes2 .machuca-amenity-icon,
.machuca-amenity-property_shed2 .machuca-amenity-icon {
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Crect x='4' y='3' width='16' height='18' rx='1'/%3E%3Cpath d='M12 3v18M9 12h.01M15 12h.01'/%3E%3C/svg%3E");
}

.machuca-amenity-property_vacuum_system2 .machuca-amenity-icon {
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M14 3h3l2 12M9 7h6l2 13H7zM9 7l1-4h3M5 20h14'/%3E%3Ccircle cx='10' cy='17' r='1'/%3E%3C/svg%3E");
}

.machuca-amenity-property_balcony2 .machuca-amenity-icon {
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M5 4h14v9H5zM3 13h18M5 13v7M19 13v7M8 13v5M12 13v5M16 13v5'/%3E%3C/svg%3E");
}

.machuca-amenity-property_deck2 .machuca-amenity-icon {
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M3 8h18v10H3zM7 8v10M12 8v10M17 8v10M3 21h18'/%3E%3C/svg%3E");
}

.machuca-amenity-property_courtyard2 .machuca-amenity-icon {
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M3 20V7l5-3v16M21 20V7l-5-3v16M8 15h8M12 9v11'/%3E%3C/svg%3E");
}

.machuca-amenity-property_outdoor_entertaining2 .machuca-amenity-icon {
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M3 12h18M6 12v8M18 12v8M8 8h8l2 4H6zM12 8V4M9 4h6'/%3E%3C/svg%3E");
}

.machuca-amenity-property_tennis_court2 .machuca-amenity-icon {
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M5.6 5.6c3.8 3.8 3.8 9 0 12.8M18.4 5.6c-3.8 3.8-3.8 9 0 12.8'/%3E%3C/svg%3E");
}

.machuca-amenity-garden .machuca-amenity-icon {
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M12 21V10M12 14c-5 0-8-3-8-8 5 0 8 3 8 8ZM12 11c0-5 3-8 8-8 0 5-3 8-8 8Z'/%3E%3C/svg%3E");
}

.machuca-amenity-grill .machuca-amenity-icon {
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M5 10h14a7 7 0 0 1-14 0ZM8 17l-2 5M16 17l2 5M9 6c0-2 2-2 2-4M14 6c0-2 2-2 2-4'/%3E%3C/svg%3E");
}

.machuca-amenity-campfire_space .machuca-amenity-icon {
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M12 22c4 0 7-2.5 7-6 0-3-2-5-4-7 0 3-1 4-2 4-2 0-1-5-4-9 0 5-4 7-4 12 0 3.5 3 6 7 6Z'/%3E%3Cpath d='M9 18c0 2 1.5 3 3 3s3-1 3-3c0-1.5-1-2.5-2-3 .2 1.5-.5 2-1 2-1 0-.7-2-2-3 0 2-1 2.5-1 4Z'/%3E%3C/svg%3E");
}

.machuca-amenity-rancho .machuca-amenity-icon {
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='m3 10 9-6 9 6M5 10h14M7 10v10M17 10v10M4 20h16'/%3E%3C/svg%3E");
}

.machuca-amenity-property_year_built .machuca-amenity-icon {
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='m3 11 9-7 9 7M5 10v10h14V10M9 20v-6h6v6M16 5l3 3'/%3E%3C/svg%3E");
}

.machuca-amenity-property_furnished .machuca-amenity-icon {
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M4 12V9a3 3 0 0 1 3-3h10a3 3 0 0 1 3 3v3M3 12h18v7H3zM6 19v2M18 19v2M7 12V9M17 12V9'/%3E%3C/svg%3E");
}

.machuca-amenity-housing_type_entire_home .machuca-amenity-icon {
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m3 11 9-7 9 7M5 10v10h14V10M9 20v-6h6v6'/%3E%3C/svg%3E");
}

.machuca-amenity-housing_type_room .machuca-amenity-icon {
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 21V4h12v17M5 21h14M9 8h4v13M11 14h.01'/%3E%3C/svg%3E");
}

.machuca-amenity-property_land_fully_fenced2 .machuca-amenity-icon {
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M4 3v18M10 3v18M16 3v18M22 3v18M2 8h20M2 16h20'/%3E%3C/svg%3E");
}

.machuca-amenity-property_building_area .machuca-amenity-icon {
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='m3 11 9-7 9 7v9H3zM8 20v-6h8v6'/%3E%3Cpath d='M5 8h14'/%3E%3C/svg%3E");
}

.machuca-amenity-land_area__m__ .machuca-amenity-icon {
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='m3 6 6-3 6 3 6-3v15l-6 3-6-3-6 3zM9 3v15M15 6v15'/%3E%3C/svg%3E");
}

/* WiFi connectivity detail (type + speed shown inline after "WiFi"). The text
   wrapper has min-width:0 so the line wraps within its own grid column instead
   of overflowing into the next column; wrapped lines hang-indent past the check. */
.machuca-amenity-text {
	min-width: 0;
}

.machuca-amenity-detail {
	color: var(--wp--preset--color--text-muted);
}

@media (max-width: 600px) {
	.machuca-amenities-list {
		grid-template-columns: 1fr;
	}

	.machuca-features-dialog {
		width: calc(100vw - 20px);
		max-height: calc(100dvh - 20px);
	}

	.machuca-features-dialog-head,
	.machuca-features-dialog-body {
		padding-left: 16px;
		padding-right: 16px;
	}
}

/* Good to know — guest-party suitability + pet policy */
.machuca-good-to-know-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: var(--wp--preset--spacing--50);
	row-gap: var(--wp--preset--spacing--30);
}

.machuca-gtk {
	display: flex;
	align-items: flex-start;
	gap: var(--wp--preset--spacing--30);
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--base);
	line-height: 1.4;
	color: var(--wp--preset--color--text);
}

.machuca-gtk--no {
	color: var(--wp--preset--color--text-muted);
}

/* Yes = green check; No = red minus. Marks mirror the amenity check shape. */
.machuca-gtk-mark {
	flex-shrink: 0;
	margin-top: 0.1rem;
}

.machuca-gtk--yes .machuca-gtk-mark {
	display: inline-block;
	width: 0.55rem;
	height: 0.9rem;
	border-right: 2px solid var(--wp--preset--color--status-accepted);
	border-bottom: 2px solid var(--wp--preset--color--status-accepted);
	transform: rotate(45deg);
}

.machuca-gtk--no .machuca-gtk-mark {
	display: inline-block;
	width: 0.8rem;
	height: 0.9rem;
	border-bottom: 2px solid var(--wp--preset--color--status-declined);
	transform: translateY(-0.2rem);
}

@media (max-width: 600px) {
	.machuca-good-to-know-list {
		grid-template-columns: 1fr;
	}
}

/* Booking helper text (min stay, cleaning fee, entry window) */
.machuca-form-info-labels .machuca-st-min-stay,
.machuca-form-info-labels .machuca-st-cleaning-fee,
.machuca-form-info-labels .machuca-lt-window,
.machuca-form-info-labels .machuca-lt-min-stay {
	font-size: var(--wp--preset--font-size--xs);
	color: var(--wp--preset--color--text-muted);
	margin: 0;
	text-align: left;
	line-height: 1.4;
}

/* Inactive tab button: muted text + softer border */
.sar-tab-btn:not(.sar-tab-active) {
	color: var(--wp--preset--color--text-muted);
	border-color: var(--wp--preset--color--border-strong);
}

/* Tab button hover/focus — override global blue + shrink */
.sar-tab-btn:not(.sar-tab-active):hover,
.sar-tab-btn:not(.sar-tab-active):focus {
	background: var(--wp--preset--color--primary-faint) !important;
	color: var(--wp--preset--color--primary) !important;
	border-color: var(--wp--preset--color--primary) !important;
	border-width: 2px !important;
	transform: none !important;
	box-shadow: none;
	outline: none;
}

.sar-tab-btn.sar-tab-active:hover,
.sar-tab-btn.sar-tab-active:focus {
	background: var(--wp--preset--color--primary-soft) !important;
	color: var(--wp--preset--color--surface) !important;
	border-color: var(--wp--preset--color--primary-soft) !important;
	border-width: 2px !important;
	transform: none !important;
	outline: none;
}

.sar-tab-btn:active {
	transform: none !important;
}

/* Booking form disclosure rows */
.machuca-form-info-bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	border-top: 1px solid var(--wp--preset--color--border);
	margin: 0;
	padding: 12px 0;
}

.machuca-form-toggle-row {
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0;
	padding: 0;
}

.machuca-form-toggle-row.is-expanded {
	padding-bottom: 0;
}

.machuca-form-toggle-row[hidden] {
	display: none;
}

.machuca-form-info-labels[hidden] {
	display: none;
}

.machuca-form-info-labels {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}

.machuca-form-toggle {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: none !important;
	border-radius: 0;
	background: transparent;
	padding: 4px 10px;
	color: var(--wp--preset--color--primary);
	cursor: pointer;
}

.machuca-form-toggle:hover,
.machuca-form-toggle:focus {
	background: transparent !important;
	color: var(--wp--preset--color--primary) !important;
	border: none !important;
	outline: none;
	transform: none !important;
}

.machuca-form-toggle-icon {
	position: relative;
	display: block;
	width: 18px;
	height: 16px;
}

.machuca-form-toggle-icon::before,
.machuca-form-toggle-icon::after {
	content: "";
	position: absolute;
	left: 50%;
	width: 10px;
	height: 10px;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: translateX(-50%) rotate(45deg);
}

.machuca-form-toggle-icon::before {
	top: 0;
}

.machuca-form-toggle-icon::after {
	top: 6px;
}

.machuca-form-toggle[aria-expanded="true"] .machuca-form-toggle-icon::before,
.machuca-form-toggle[aria-expanded="true"] .machuca-form-toggle-icon::after {
	transform: translateX(-50%) rotate(225deg);
}

.machuca-form-toggle[aria-expanded="true"] .machuca-form-toggle-icon::before {
	top: 6px;
}

.machuca-form-toggle[aria-expanded="true"] .machuca-form-toggle-icon::after {
	top: 0;
}

/* WPBC calendar — remove default top margin so it sits flush below the info bar */
.sar-booking-group .short-term-form .wpbc__field .bk_calendar_frame,
.sar-booking-group .short-term-form .wpbc_container_booking_form .wpbc__field:not(.wpbc__cal) {
	margin-top: 0;
}

.sar-booking-group .short-term-form .wpbc__cal,
.sar-booking-group .short-term-form .wpbc_calendar_wraper,
.sar-booking-group .short-term-form .bk_calendar_frame {
	width: 100% !important;
	max-width: 100% !important;
}

.sar-booking-group .short-term-form .datepick-inline {
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 auto var(--wp--preset--spacing--30);
	padding: var(--wp--preset--spacing--30);
	padding-bottom: calc(var(--wp--preset--spacing--30) + 24px);
	border: 1px solid var(--wp--preset--color--border) !important;
	border-radius: 8px;
	background: var(--wp--preset--color--surface);
	box-shadow: none;
	box-sizing: border-box;
}

.sar-booking-group .short-term-form .datepick-inline .datepick-header,
.sar-booking-group .short-term-form .datepick-inline .calendar-links {
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--base);
	font-weight: 700;
	color: var(--wp--preset--color--text);
	text-align: center;
	text-shadow: none;
	background: transparent;
	border: none;
}

.sar-booking-group .short-term-form .datepick-inline .calendar-links {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 28px;
}

.sar-booking-group .short-term-form .datepick-inline .calendar-links a {
	color: var(--wp--preset--color--text-muted) !important;
	text-decoration: none;
	box-shadow: none;
}

.sar-booking-group .short-term-form .datepick-inline .calendar-links a:hover,
.sar-booking-group .short-term-form .datepick-inline .calendar-links a:focus {
	color: var(--wp--preset--color--text) !important;
	outline: none;
}

.sar-booking-group .short-term-form .datepick-inline table.datepick {
	width: 100%;
	margin: 0;
	border-collapse: separate;
	border-spacing: 4px;
	font-family: var(--wp--preset--font-family--sans);
}

.sar-booking-group .short-term-form .datepick-inline table.datepick th,
.sar-booking-group .short-term-form .datepick-inline table.datepick td {
	width: 14.285%;
	padding: 0 !important;
	border: none !important;
	text-align: center;
	background: transparent;
}

/* ── ST booking calendar — theme-owned skin (rangecal look) ─────────────────
   WPBC's own skin stylesheet is dequeued on rental singles
   (machuca_st_own_calendar_skin in machuca-st-bridge.php); only the plugin's
   STRUCTURAL calendar.css remains (cell boxes, aspect-ratio, month layout).
   Everything visual is owned here, against the real markup:
   td.datepick-days-cell > .wpbc-cell-box > (.wpbc-diagonal-el, hidden)
   + .date-cell-content > .date-content-top / a|span / .date-content-bottom.
   State classes on the td: date_available, date_user_unavailable,
   datepick-unselectable, datepick-other-month, datepick-today,
   datepick-current-day (every selected day), check_in_time / check_out_time
   (endpoints), datepick-days-cell-over (JS hover). */
.sar-booking-group .short-term-form .datepick-inline table.datepick th {
	color: var(--wp--preset--color--text-subtle);
	font-size: 12px;
	font-weight: 500;
	text-transform: none;
	background: transparent;
	border: none;
}

.sar-booking-group .short-term-form .datepick-inline td.datepick-days-cell {
	height: auto;
	padding: 2px 0;
	border: none;
	border-radius: 0;
	background: transparent;
	overflow: visible;
}

/* The cell box is the circle (calendar.css keeps it square via aspect-ratio). */
.sar-booking-group .short-term-form .datepick-inline td.datepick-days-cell .wpbc-cell-box {
	max-width: 40px;
	margin: 0 auto;
	border-radius: 50%;
	background: transparent;
	transition: background-color 0.12s ease;
}

.sar-booking-group .short-term-form .datepick-inline td.datepick-days-cell .date-cell-content a,
.sar-booking-group .short-term-form .datepick-inline td.datepick-days-cell .date-cell-content span {
	color: var(--wp--preset--color--text);
	font-size: 14px;
	font-weight: 500;
	text-decoration: none;
	text-shadow: none;
	box-shadow: none;
	background: transparent;
	border: none;
}

/* Hover — WPBC toggles datepick-days-cell-over via its mouseover handlers. */
.sar-booking-group .short-term-form .datepick-inline td.date_available:hover .wpbc-cell-box,
.sar-booking-group .short-term-form .datepick-inline td.datepick-days-cell-over.date_available .wpbc-cell-box {
	background: var(--wp--preset--color--primary-faint, #e9efe9);
}
.sar-booking-group .short-term-form .datepick-inline td.date_available:hover .date-cell-content a,
.sar-booking-group .short-term-form .datepick-inline td.datepick-days-cell-over.date_available .date-cell-content a {
	color: var(--wp--preset--color--primary, #013b28);
}

.sar-booking-group .short-term-form .datepick-inline td.date_available .date-cell-content a:focus-visible {
	border-radius: 50%;
	outline: 2px solid var(--wp--preset--color--accent, #b9663d);
	outline-offset: 2px;
}

/* Unavailable / blocked / past: quiet and clearly inert. */
.sar-booking-group .short-term-form .datepick-inline td.date_user_unavailable,
.sar-booking-group .short-term-form .datepick-inline td.datepick-unselectable {
	cursor: default;
}
.sar-booking-group .short-term-form .datepick-inline td.date_user_unavailable .date-cell-content span,
.sar-booking-group .short-term-form .datepick-inline td.date_user_unavailable .date-cell-content a,
.sar-booking-group .short-term-form .datepick-inline td.date_approved .date-cell-content span,
.sar-booking-group .short-term-form .datepick-inline td.date2approve .date-cell-content span,
.sar-booking-group .short-term-form .datepick-inline td.datepick-unselectable .date-cell-content span {
	color: var(--wp--preset--color--text-subtle, #9a9a9a);
	opacity: 0.4;
}

.sar-booking-group .short-term-form .datepick-inline td.datepick-today .wpbc-cell-box {
	outline: 1px solid var(--wp--preset--color--border-strong, #c8d4cf);
	outline-offset: -1px;
}

/* Selected range: light strip across every selected day (td background, no
   radius, so it reads continuous), solid green circles on the endpoints.
   REAL selection classes (wpbc_all.js wpbc__calendar__apply_css_to_days):
   every selected day = datepick-current-day; the endpoints additionally get
   selected_check_in / selected_check_out / selected_check_in_out. (The
   check_in_time/check_out_time classes are TIME-SLOT markers — wrong hook.)
   WPBC also dims the middle days with INLINE opacity after selection
   (wpbc_cal.js FixIn 10.3.0.9) — the !important opacity below overrides it. */
.sar-booking-group .short-term-form .datepick-inline td.datepick-current-day {
	background: var(--wp--preset--color--primary-faint, #e9efe9) !important;
	opacity: 1 !important;
}
.sar-booking-group .short-term-form .datepick-inline td.datepick-current-day .date-cell-content a,
.sar-booking-group .short-term-form .datepick-inline td.datepick-current-day .date-cell-content span {
	color: var(--wp--preset--color--text);
}
.sar-booking-group .short-term-form .datepick-inline td.selected_check_in .wpbc-cell-box,
.sar-booking-group .short-term-form .datepick-inline td.selected_check_out .wpbc-cell-box {
	background: var(--wp--preset--color--primary, #013b28) !important;
}
.sar-booking-group .short-term-form .datepick-inline td.selected_check_in .date-cell-content a,
.sar-booking-group .short-term-form .datepick-inline td.selected_check_out .date-cell-content a,
.sar-booking-group .short-term-form .datepick-inline td.selected_check_in .date-cell-content span,
.sar-booking-group .short-term-form .datepick-inline td.selected_check_out .date-cell-content span {
	color: var(--wp--preset--color--surface, #fff) !important;
}

/* Other-month filler cells: nothing to see. */
.sar-booking-group .short-term-form .datepick-inline td.datepick-other-month .wpbc-cell-box {
	background: transparent;
	visibility: hidden;
}

/* Change-over diagonals stay hidden (the dequeued skin was what revealed
   them); the top/bottom hint slots stay empty and collapsed. */
.sar-booking-group .short-term-form .datepick-inline .wpbc-cell-box .wpbc-diagonal-el {
	display: none !important;
}

/* The Check-in/Check-out hints row is redundant inside the Dates panel — the
   pill summary shows dates + nights. It stays in the DOM (hidden) because the
   summaries and the review step read their values. */
.sar-booking-group .machuca-booking-pills .booking-form-dates {
	display: none !important;
}

/* Inside the Dates pill panel the panel is the frame — flatten the calendar's
   own card chrome, and let two months sit side by side in the wide popover
   (one on the narrow accordion; the arrows still navigate). The calendar's
   own clear row is replaced by the footer's Clear dates. */
.sar-booking-group .machuca-booking-pills .datepick-inline {
	border: none !important;
	background: transparent;
	padding: 0 !important;
	margin: 0 !important;
	box-shadow: none !important;
}
.sar-booking-group .machuca-booking-pills .machuca-date-clear-row {
	display: none !important;
}
.sar-booking-group .machuca-booking-pills .datepick-inline .datepick-one-month {
	width: 50%;
	box-sizing: border-box;
	padding: 0 10px;
	float: left;
}
@media (max-width: 959px) {
	.sar-booking-group .machuca-booking-pills .datepick-inline .datepick-one-month {
		width: 100%;
		padding: 0;
		float: none;
	}
	.sar-booking-group .machuca-booking-pills .datepick-inline .datepick-one-month + .datepick-one-month {
		display: none;
	}
}

/* WPBC button_light spacing */
.sar-booking-group .short-term-form .wpbc_form.wpbc_container .wpbc_button_light,
.sar-booking-group .short-term-form .wpbc_form.wpbc_container.wpbc_container_booking_form .wpbc_button_light {
	margin-top: 25px;
	margin-bottom: 10px;
	padding-left: 0;
	padding-right: 0;
	width: 100% !important;
}

/* WPBC "Request Booking" submit button */
.sar-booking-group .short-term-form .wpbc_form input[type="submit"],
.sar-booking-group .short-term-form .wpbc_form .wpbc_wizard_step2 .wpbc_submit input,
.sar-booking-group .short-term-form .wpbc_form .wpbc_wizard_step2 .wpbc_submit button,
.sar-booking-group .short-term-form .wpbc_form .wpbc_wizard_step1 .wpbc__field > .wpbc_button_light,
.sar-booking-group .short-term-form .wpbc_form .wpbc_button_gw_stripe {
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: 100% !important;
	/* Room above the primary action, on the button itself. Set on its wrapping
	   field instead it lost to the rules already stacked here; this block
	   already owns the button's box, so the spacing belongs with the rest of it
	   rather than in a fourth competing place. */
	margin-top: var(--wp--preset--spacing--40) !important;
	min-height: 52px;
	border-radius: 999px !important;
	font-size: var(--wp--preset--font-size--base) !important;
	font-weight: 600 !important;
	background: var(--wp--preset--color--primary) !important;
	color: var(--wp--preset--color--surface) !important;
	border-color: var(--wp--preset--color--primary) !important;
	border-width: 2px !important;
	text-align: center;
}

.sar-booking-group .short-term-form .wpbc_form input[type="submit"]:hover,
.sar-booking-group .short-term-form .wpbc_form .wpbc_wizard_step2 .wpbc_submit input:hover,
.sar-booking-group .short-term-form .wpbc_form .wpbc_wizard_step2 .wpbc_submit button:hover,
.sar-booking-group .short-term-form .wpbc_form .wpbc_wizard_step1 .wpbc__field > .wpbc_button_light:hover,
.sar-booking-group .short-term-form .wpbc_form .wpbc_button_gw_stripe:hover {
	background: var(--wp--preset--color--primary-soft) !important;
	border-color: var(--wp--preset--color--primary-soft) !important;
	color: var(--wp--preset--color--surface) !important;
	border-width: 2px !important;
	transform: none !important;
}

.sar-booking-group .short-term-form .wpbc_form input[type="submit"]:focus,
.sar-booking-group .short-term-form .wpbc_form .wpbc_wizard_step2 .wpbc_submit input:focus,
.sar-booking-group .short-term-form .wpbc_form .wpbc_wizard_step2 .wpbc_submit button:focus,
.sar-booking-group .short-term-form .wpbc_form .wpbc_wizard_step1 .wpbc__field > .wpbc_button_light:focus,
.sar-booking-group .short-term-form .wpbc_form .wpbc_button_gw_stripe:focus,
.sar-booking-group .short-term-form .wpbc_form input[type="submit"]:active,
.sar-booking-group .short-term-form .wpbc_form .wpbc_wizard_step2 .wpbc_submit input:active,
.sar-booking-group .short-term-form .wpbc_form .wpbc_wizard_step2 .wpbc_submit button:active,
.sar-booking-group .short-term-form .wpbc_form .wpbc_wizard_step1 .wpbc__field > .wpbc_button_light:active,
.sar-booking-group .short-term-form .wpbc_form .wpbc_button_gw_stripe:active {
	/* The fill, restated. This block only killed the transform, so the moment
	   the button took focus — which is the moment it is pressed — it fell back
	   to whatever a later rule said, and a later rule says transparent. It went
	   unnoticed while the page redirected immediately after the press; it shows
	   now that the guest can stay here. */
	background: var(--wp--preset--color--primary) !important;
	border-color: var(--wp--preset--color--primary) !important;
	color: var(--wp--preset--color--surface) !important;
	transform: none !important;
}

.sar-booking-group .short-term-form .wpbc_form .wpbc_submit .wpbc_button_light {
	display: inline-flex !important;
	align-items: center;
	justify-content: flex-start;
	align-self: flex-start !important;
	width: auto !important;
	min-width: 0 !important;
	margin-top: 10px !important;
	margin-right: auto !important;
	margin-bottom: 0 !important;
	margin-left: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	color: var(--wp--preset--color--primary) !important;
	font-size: var(--wp--preset--font-size--sm) !important;
	font-weight: 600 !important;
	text-align: left;
	box-shadow: none !important;
	transform: none !important;
	transition: color 180ms ease-out !important;
}

.sar-booking-group .short-term-form .wpbc_form .wpbc_submit .wpbc_button_light.machuca-st-review-edit {
	margin-bottom: 0 !important;
}

.sar-booking-group .short-term-form .wpbc_form .wpbc_submit {
	margin-bottom: 0 !important;
}

.sar-booking-group .short-term-form .wpbc_form .wpbc_submit:has(.wpbc_button_light) {
	justify-content: flex-start !important;
	text-align: left !important;
}

/* The BACK link only. Unscoped it also matched the primary submit, which
   carries the same plugin class, and cleared its fill on focus. */
.sar-booking-group .short-term-form .wpbc_form .wpbc_submit .wpbc_button_light.machuca-st-review-edit:hover,
.sar-booking-group .short-term-form .wpbc_form .wpbc_submit .wpbc_button_light.machuca-st-review-edit:focus {
	background: transparent !important;
	color: var(--wp--preset--color--primary-soft) !important;
	filter: none !important;
	transform: none !important;
}

/* GF "Send Request" submit button — full-width primary pill */
.sar-booking-group .lt-booking-form .gform-footer,
.sar-booking-group .lt-booking-form .gform_footer,
/* The gap is what separates Back from the primary action. Raising it is safe
   across the whole form: a gap needs two in-flow children to show, page one has
   only its Review button, and the spinner is positioned absolutely (see the
   loader rule) so it never counts as one. Where there ARE two — Review and the
   payment step — both get the same separation, which is what we want. */
.sar-booking-group .lt-booking-form .gform_page_footer {
	position: static !important;
	float: none !important;
	display: flex !important;
	flex-direction: column !important;
	gap: 34px !important;
	width: 100% !important;
	padding: 24px 0 0 !important;
	margin: 0 !important;
	border: none !important;
	background: transparent !important;
}
/* Primary CTA pills: Review (next) and Request (submit). Previous is also
   type="submit" in GF Orbital, so target classes — never the type. */
.sar-booking-group .lt-booking-form .gform_button,
.sar-booking-group .lt-booking-form .gform_next_button {
	display: block !important;
	width: 100% !important;
	height: 56px !important;
	border-radius: 100px !important;
	border: none !important;
	padding: 0 !important;
	/* Room above the primary action, on top of the footer's own gap: agreeing
	   and paying are two decisions and the button was sitting in the checkbox's
	   own block of space. */
	margin: 10px 0 0 !important;
	box-sizing: border-box !important;
	background: var(--wp--preset--color--primary) !important;
	color: var(--wp--preset--color--surface) !important;
	font-size: var(--wp--preset--font-size--base) !important;
	font-weight: 600 !important;
	font-family: inherit !important;
	cursor: pointer !important;
	transition: background 0.15s !important;
	box-shadow: none !important;
}
.sar-booking-group .lt-booking-form .gform_button:hover,
.sar-booking-group .lt-booking-form .gform_next_button:hover {
	background: var(--wp--preset--color--primary-soft) !important;
	color: var(--wp--preset--color--surface) !important;
}
/* Previous → quiet "Back" link on the left, mirroring the ST review edit link
   (left-aligned, primary color, no underline). Label + arrow set in PHP. */
.sar-booking-group .lt-booking-form .gform_previous_button {
	order: 10 !important;
	align-self: flex-start !important;
	width: auto !important;
	min-width: 0 !important;
	height: auto !important;
	border: none !important;
	background: none !important;
	box-shadow: none !important;
	padding: 0 !important;
	margin: 0 !important;
	color: var(--wp--preset--color--primary) !important;
	font-size: var(--wp--preset--font-size--sm) !important;
	font-weight: 600 !important;
	text-align: left !important;
	text-decoration: none !important;
	cursor: pointer !important;
	transition: color 180ms ease-out !important;
}
.sar-booking-group .lt-booking-form .gform_previous_button:hover {
	color: var(--wp--preset--color--primary-soft) !important;
}

/* Host-acceptance reassurance — a caption of the amount above it, sitting
   tight underneath in the same small muted type as the schedule's own
   "Charged automatically…" notes. Never an amber warning. */
.sar-booking-group .lt-booking-form .lt-note-accept {
	display: block;
	margin: 2px 0 0 !important;
	font-size: 0.75rem !important;
	font-weight: 400;
	line-height: 1.35;
	color: var(--wp--preset--color--text-muted);
	/* Left, with the amount it answers, matching short stay. Centred it read as
	   a standalone remark under the block rather than part of it. */
	text-align: left;
}

.sar-booking-group .lt-booking-form .lt-note-accept .machuca-st-fee-help {
	vertical-align: middle;
}

/* ── Review booking summary (rendered by machuca-lt-payments.php) ── */
/* No blanket gap. 16px between every child spaced the title from the listing
   name, and the listing name from Edit stay, exactly as much as it spaced the
   summary from the price block — so the heading group floated apart while the
   real sections had no more room than the lines inside them. Sections declare
   their own space below; the heading group closes up, matching short stay. */
.sar-booking-group .lt-booking-form .lt-summary-box {
	display: flex;
	flex-direction: column;
	gap: 0;
	margin-top: 8px;
}

/* Title and listing name almost touching, as on short stay, where the pair
   reads as one heading rather than two lines that happen to be near each other.
   The step that matters is the one BELOW the group, not inside it. */
.sar-booking-group .lt-booking-form .lt-summary-heading {
	margin-bottom: 2px;
}

.sar-booking-group .lt-booking-form .lt-summary-rows {
	margin-bottom: 0;
}
.sar-booking-group .lt-booking-form .lt-summary-title {
	margin: 0 !important;
	font-family: var(--wp--preset--font-family--serif);
	font-size: 1.25rem !important;
	color: #1f1f1f;
	text-align: center;
}
.sar-booking-group .lt-booking-form .lt-summary-listing {
	margin: 0 !important;
	font-size: 0.875rem !important;
	color: var(--wp--preset--color--text-muted);
	text-align: center;
}
/* The negative margins here were cancelling the box's old blanket 16px gap —
   they existed only to undo it. With the gap gone they were subtracting from
   nothing, which is what pulled the listing name onto the title and the stay
   rows onto Edit stay. Real spacing now, declared once. */
.sar-booking-group .lt-booking-form .lt-summary-meta {
	display: grid;
	gap: 2px;
	margin: 0 0 var(--wp--preset--spacing--20);
}
.sar-booking-group .lt-booking-form .lt-summary-edit-row {
	display: flex;
	justify-content: flex-end;
}
.sar-booking-group .lt-booking-form .lt-summary-rows,
.sar-booking-group .lt-booking-form .lt-summary-rows tbody,
.sar-booking-group .lt-booking-form .lt-summary-rows tr,
.sar-booking-group .lt-booking-form .lt-summary-rows td {
	border: none !important;
	margin: 0 !important;
}
.sar-booking-group .lt-booking-form .lt-summary-rows {
	width: 100%;
	border-collapse: collapse;
}
.sar-booking-group .lt-booking-form .lt-summary-rows td {
	padding: 4px 0;
	font-size: var(--wp--preset--font-size--xs);
	color: #1f1f1f;
	line-height: 1.4;
}
.sar-booking-group .lt-booking-form .lt-summary-capacity-row td {
	padding-top: 2px;
}
.sar-booking-group .lt-booking-form .lt-summary-capacity-row .machuca-booking-review-capacity-note {
	margin-top: 0;
}
.sar-booking-group .lt-booking-form .lt-summary-amount {
	text-align: right;
	font-weight: 600;
	white-space: nowrap;
	vertical-align: top;
}
.sar-booking-group .lt-booking-form .lt-summary-heading {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 28px;
	box-sizing: border-box;
}
.sar-booking-group .lt-booking-form button.lt-summary-edit {
	display: inline-flex !important;
	width: auto !important;
	min-width: 0 !important;
	height: auto !important;
	/* Gravity Forms gives every control a min-height. height:auto alone left it
	   in place, so the row stayed as tall as a real button and the link sat in
	   a band of empty space above and below it. */
	min-height: 0 !important;
	align-self: center !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	color: var(--wp--preset--color--primary) !important;
	font-family: inherit !important;
	font-size: 0.75rem !important;
	font-weight: 600 !important;
	line-height: 1.4 !important;
	cursor: pointer;
}
.sar-booking-group .lt-booking-form button.lt-summary-edit:hover {
	color: var(--wp--preset--color--primary-soft) !important;
}
.sar-booking-group .lt-booking-form button.lt-summary-edit:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: 3px;
}
.sar-booking-group .lt-booking-form button.lt-summary-edit::before,
.sar-booking-group .lt-booking-form button.lt-summary-edit::after {
	display: none !important;
	content: none !important;
}

/* ── Final payment step: compact confirmation, then Payment Element ── */
.sar-booking-group .lt-booking-form .lt-payment-summary-box {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin: 0;
}
.sar-booking-group .lt-booking-form .lt-payment-summary-title {
	margin: 0 !important;
	font-family: var(--wp--preset--font-family--serif);
	font-size: 1.25rem !important;
	color: #1f1f1f;
	text-align: center;
}
.sar-booking-group .lt-booking-form .lt-payment-summary-listing {
	margin: 0 !important;
	font-size: 0.8125rem !important;
	color: var(--wp--preset--color--text-muted);
	text-align: center;
}
.sar-booking-group .lt-booking-form .lt-payment-summary-details {
	display: grid;
	gap: 6px;
	margin: 0;
	padding: 0 0 12px;
	border-bottom: 1px solid var(--wp--preset--color--border);
}
.sar-booking-group .lt-booking-form .lt-payment-summary-details > div {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 16px;
}
.sar-booking-group .lt-booking-form .lt-payment-summary-details dt,
.sar-booking-group .lt-booking-form .lt-payment-summary-details dd {
	margin: 0;
	font-size: var(--wp--preset--font-size--xs);
	line-height: 1.4;
}
.sar-booking-group .lt-booking-form .lt-payment-summary-details dt {
	color: var(--wp--preset--color--text-muted);
}
.sar-booking-group .lt-booking-form .lt-payment-summary-details dd {
	max-width: 72%;
	color: #1f1f1f;
	font-weight: 600;
	text-align: right;
}
.sar-booking-group .lt-booking-form .machuca-lt-zero-guest-fee {
	display: none !important;
}
.sar-booking-group .lt-booking-form .machuca-lt-internal-community-field {
	display: none !important;
}
.sar-booking-group .lt-booking-form .machuca-lt-internal-booking-field {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
	clip: rect(0 0 0 0) !important;
	clip-path: inset(50%) !important;
	white-space: nowrap !important;
}
.sar-booking-group .lt-booking-form .machuca-lt-internal-total-field {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
	clip: rect(0 0 0 0) !important;
	clip-path: inset(50%) !important;
	white-space: nowrap !important;
}
/* Amount, its note and the contribution read as one block, so the gaps between
   them stay small; the breathing room belongs above the group, not inside it. */
.sar-booking-group .lt-booking-form .lt-page1-pricing {
	width: 100% !important;
	box-sizing: border-box;
	margin: 8px 0 0;
}
/* The same soft block the review uses. On the card these three lines — the
   amount, what is included in it, and when it is charged — are one statement
   about money, and unboxed they read as three loose paragraphs stacked under
   the form. */
.sar-booking-group .lt-booking-form .lt-page1-due {
	margin: 0;
	padding: 10px 12px;
	border-radius: 8px;
	background: var(--wp--preset--color--primary-faint);
}
.sar-booking-group .lt-booking-form .lt-page1-pricing[hidden] {
	display: none !important;
}
.sar-booking-group .lt-booking-form .lt-page1-payment-plan {
	display: grid;
	gap: 8px;
	margin: 14px 0 4px;
	padding: 12px 0 0;
	color: var(--wp--preset--color--text-muted);
	font-size: 12px;
	line-height: 1.4;
}
.sar-booking-group .lt-booking-form .lt-page1-payment-plan__title {
	font-size: 0.8125rem;
	font-weight: 700;
	color: var(--wp--preset--color--text);
}
.sar-booking-group .lt-booking-form .lt-page1-payment-plan__item {
	display: grid;
	gap: 1px;
}
.sar-booking-group .lt-booking-form .lt-page1-payment-plan__item strong {
	font-weight: 700;
	color: var(--wp--preset--color--text);
}
/* Inside a Gravity Forms wrapper the base rule is not enough, and this is not
   redundancy: GF's framework reset —
   `.gform-theme--framework :where(…) { all: unset; display: revert; }` — is a
   single-class selector (`:where()` adds no specificity) that loads after the
   theme, so it beats every one-class rule of ours on any element in the form
   and strips it back to nothing. Anything structural for a long-stay element
   therefore has to be restated at this depth (3 classes) or carry !important.
   The same applies to the two spans below and to .machuca-note-help. */


/* Review (Booking Summary) sits outside .sar-booking-group but still inside the
   Gravity Forms wrapper, so it needs the same restatement as the card above. */

/* The callout's own [hidden] rule is now in the base block above. */
.sar-booking-group .lt-booking-form .lt-page1-payment-plan[hidden] {
	display: none !important;
}
.sar-booking-group .lt-booking-form .lt-page1-due-display {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	box-sizing: border-box;
	gap: 8px;
	padding: 0;
	color: var(--wp--preset--color--text);
}
.sar-booking-group .lt-booking-form .lt-page1-due-display > span {
	min-width: 0;
	font-size: 0.8125rem;
	font-weight: 700;
	white-space: nowrap;
}
.sar-booking-group .lt-booking-form .lt-page1-due-amount {
	flex: 0 0 auto;
	font-size: 0.9375rem;
	font-weight: 800;
	text-align: right;
	white-space: nowrap;
}
.sar-booking-group .lt-booking-form .lt-summary-due {
	margin: 0 !important;
	padding: 10px 12px;
	border-radius: 8px;
	background: var(--wp--preset--color--primary-faint);
	font-size: 0.8125rem;
	font-weight: 700;
	color: #1f1f1f;
}
.sar-booking-group .lt-booking-form .lt-summary-due-row {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 8px;
	min-width: 0;
}
.sar-booking-group .lt-booking-form .lt-summary-due-label {
	min-width: 0;
	white-space: nowrap;
}
.sar-booking-group .lt-booking-form .lt-summary-due-amount {
	flex: 0 0 auto;
	white-space: nowrap;
	font-size: 0.9375rem;
	font-weight: 800;
}
/* Payment timeline — server-rendered from the canonical LT breakdown. */
.sar-booking-group .lt-booking-form .lt-schedule {
	margin-top: 12px;
}
.sar-booking-group .lt-booking-form .lt-schedule-title {
	margin: 0 0 10px !important;
	font-size: 0.8125rem !important;
	font-weight: 700;
	color: #1f1f1f;
}
.sar-booking-group .lt-booking-form .lt-schedule-intro {
	margin: -4px 0 12px !important;
	font-size: 0.75rem !important;
	line-height: 1.45;
	color: var(--wp--preset--color--text-muted);
}
.sar-booking-group .lt-booking-form .lt-schedule-intro strong {
	color: var(--wp--preset--color--text);
}
.sar-booking-group .lt-booking-form .lt-schedule-total {
	margin: 2px 0 0 !important;
	padding-top: 12px;
	border-top: 1px solid var(--wp--preset--color--border);
	font-size: 0.8125rem !important;
	font-weight: 600;
	color: var(--wp--preset--color--text);
}
.sar-booking-group .lt-booking-form .lt-schedule-total strong {
	float: right;
	font-size: 0.9375rem;
}
.sar-booking-group .lt-booking-form .lt-schedule-timeline {
	display: grid;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none;
}
.sar-booking-group .lt-booking-form .lt-schedule-item {
	position: relative;
	display: grid;
	grid-template-columns: 14px minmax(0, 1fr) auto;
	gap: 10px;
	align-items: start;
	min-width: 0;
	padding: 0 0 16px;
	list-style: none;
}
.sar-booking-group .lt-booking-form .lt-schedule-item:not(:last-child)::before {
	content: "";
	position: absolute;
	top: 12px;
	bottom: -2px;
	left: 6px;
	width: 1px;
	background: var(--wp--preset--color--border, #e5e0d8);
}
.sar-booking-group .lt-booking-form .lt-schedule-marker {
	position: relative;
	z-index: 1;
	display: block;
	width: 13px;
	height: 13px;
	margin-top: 3px;
	border: 3px solid var(--wp--preset--color--surface, #fff);
	border-radius: 50%;
	background: var(--wp--preset--color--primary, #013b28);
	box-shadow: 0 0 0 1px var(--wp--preset--color--primary, #013b28);
}
.sar-booking-group .lt-booking-form .lt-schedule-content {
	display: grid;
	min-width: 0;
}
.sar-booking-group .lt-booking-form .lt-schedule-date {
	color: var(--wp--preset--color--text-muted);
	font-size: 0.75rem;
	line-height: 1.35;
}
/* One step down from the section title above it. At 0.875rem "Monthly payment"
   and "Final prorated payment" matched the heading of the list they were in and
   read as sub-headings rather than as its rows. */
.sar-booking-group .lt-booking-form .lt-schedule-label {
	color: var(--wp--preset--color--text);
	font-size: 0.8125rem;
	font-weight: 600;
	line-height: 1.35;
}
.sar-booking-group .lt-booking-form .lt-schedule-amount {
	padding-left: 6px;
	font-size: 0.8125rem;
	font-weight: 700;
	white-space: nowrap;
}
.sar-booking-group .lt-booking-form .lt-schedule-note {
	display: block;
	margin: 1px 0 0 !important;
	font-size: 0.75rem;
	font-weight: 400;
	line-height: 1.35;
	color: var(--wp--preset--color--text-muted);
}
.sar-booking-group .lt-booking-form .lt-schedule-more {
	display: flex;
	flex-direction: column;
	margin-top: -4px;
}
.sar-booking-group .lt-booking-form .lt-schedule-more > .lt-schedule-timeline {
	order: 1;
}
.sar-booking-group .lt-booking-form .lt-schedule-more > summary {
	order: 2;
	display: inline-flex;
	min-height: 36px;
	align-items: center;
	padding: 0 4px;
	color: var(--wp--preset--color--primary);
	cursor: pointer;
	font-size: 0.8125rem;
	font-weight: 700;
}
.sar-booking-group .lt-booking-form .lt-schedule-more > summary:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: 2px;
}
.sar-booking-group .lt-booking-form .lt-schedule-hide,
.sar-booking-group .lt-booking-form .lt-schedule-more[open] .lt-schedule-show {
	display: none;
}
.sar-booking-group .lt-booking-form .lt-schedule-more[open] .lt-schedule-hide {
	display: inline;
}
@media (max-width: 399px) {
	.sar-booking-group .lt-booking-form .lt-schedule-item {
		grid-template-columns: 14px minmax(0, 1fr);
	}
	.sar-booking-group .lt-booking-form .lt-schedule-amount {
		grid-column: 2;
		padding-left: 0;
	}
}
/* Payment Element: clear separation from the compact payment summary. */
.sar-booking-group .lt-booking-form .gfield--type-stripe_creditcard {
	margin-top: 18px !important;
	margin-bottom: 0 !important;
}
.sar-booking-group .lt-booking-form .gfield--type-stripe_creditcard .lt-payment-disclosures {
	display: grid;
	gap: 6px;
	margin-top: 12px;
	padding-top: 12px;
	border-top: 1px solid var(--wp--preset--color--border);
}
.sar-booking-group .lt-booking-form .gfield--type-stripe_creditcard .lt-payment-disclosures p {
	margin: 0 !important;
	color: var(--wp--preset--color--text-muted);
	font-size: 0.75rem !important;
	line-height: 1.45;
}
.sar-booking-group .lt-booking-form .gfield--type-stripe_creditcard .lt-payment-disclosures strong {
	color: #1f1f1f;
}
/* Consent checkbox: one generous click target, with the legal link remaining
   an independent action that does not interrupt the checkout page. */
.sar-booking-group .lt-booking-form .gfield.lt-consent {
	margin-top: 16px !important;
}
.sar-booking-group .lt-booking-form .gfield.lt-consent .ginput_container_checkbox,
.sar-booking-group .lt-booking-form .gfield.lt-consent .gfield_checkbox {
	width: 100%;
}
.sar-booking-group .lt-booking-form .gfield.lt-consent .gchoice {
	display: flex !important;
	align-items: center !important;
	gap: var(--wp--preset--spacing--30);
	box-sizing: border-box;
	width: 100%;
	margin: 0 !important;
	padding: var(--wp--preset--spacing--40);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 8px;
	background: var(--wp--preset--color--background);
	cursor: pointer;
	transition: border-color 180ms ease-out, background-color 180ms ease-out;
}
.sar-booking-group .lt-booking-form .gfield.lt-consent .gchoice:hover,
.sar-booking-group .lt-booking-form .gfield.lt-consent .gchoice:focus-within {
	border-color: var(--wp--preset--color--border-strong);
	background: var(--wp--preset--color--primary-faint);
}
.sar-booking-group .lt-booking-form .gfield.lt-consent .gchoice input[type="checkbox"] {
	flex: 0 0 18px;
	width: 18px !important;
	height: 18px !important;
	margin: 0 !important;
	cursor: pointer;
}
.sar-booking-group .lt-booking-form .gfield.lt-consent .gchoice label {
	flex: 1 1 auto;
	max-width: none !important;
	margin: 0 !important;
	color: var(--wp--preset--color--text);
	font-size: var(--wp--preset--font-size--sm) !important;
	font-weight: 500;
	line-height: 1.45;
	cursor: pointer;
}
/* Same reasoning as .machuca-st-terms-link: secondary legal link, not a CTA.
   The consent sentence carries both "Terms and Conditions" and the
   "Payment Schedule" opener; the deposit note below the payment step carries
   "Security Deposit Terms" and lives outside .lt-consent, so it is listed too. */
.sar-booking-group .lt-booking-form .gfield.lt-consent .machuca-lt-terms-link,
.lt-payment-disclosures .machuca-lt-terms-link {
	color: inherit;
	font-weight: inherit;
	text-decoration: underline;
	text-underline-offset: 2px;
	cursor: pointer;
}
.sar-booking-group .lt-booking-form .gfield.lt-consent .machuca-lt-terms-link:hover {
	color: var(--wp--preset--color--primary-soft);
}
.sar-booking-group .lt-booking-form .gfield.lt-consent .machuca-lt-terms-link:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: 2px;
}

/* HTML fields normally separate footer copy from the form. The two checkout
   summary anchors opt out because each starts its own GF page. */
.sar-booking-group .lt-booking-form .gfield_html {
	margin-top: var(--wp--preset--spacing--50);
}
.sar-booking-group .lt-booking-form .gfield.lt-summary,
.sar-booking-group .lt-booking-form .gfield.lt-payment-summary {
	margin-top: 0 !important;
}
.sar-booking-group .lt-booking-form .gfield.lt-summary + .gfield_html {
	margin-top: 16px !important;
}
.sar-booking-group .lt-booking-form .gfield.lt-summary + .gfield_html hr {
	margin: 0;
}

/* (the thank-you pseudo-element and its separator were removed — see above) */

/* Spacing below the two-column body */
.machuca-single-rental .machuca-listing-body {
	align-items: flex-start;
	margin-bottom: var(--wp--preset--spacing--80);
}

.machuca-single-rental .sar-booking-column {
	align-self: flex-start;
}

/* ── Responsive ─────────────────────────────────────────────────────────────── */

@media (max-width: 959px) {
	body.single-rental .machuca-listing-body {
		flex-direction: column;
	}

	body.single-rental .machuca-content-column,
	body.single-rental .sar-booking-column {
		width: 100%;
		flex-basis: auto;
	}

	/* ── Mobile booking: slim CTA bar (collapsed) ↔ full-screen sheet (open) ──
	   Collapsed = a thin fixed bottom bar (price/summary + CTA) instead of the
	   old tall pinned card with the confusing expand/collapse arrows. Tapping
	   the CTA adds .sar-sheet-open → the group becomes a full-screen sheet
	   holding the whole form; the × collapses it back. */
	body.single-rental .sar-booking-group {
		position: fixed !important;
		bottom: 0;
		left: 0;
		top: unset;
		z-index: 10000;
		width: 100vw;
		margin-left: 0;
		background: #fff;
		border-top: 1px solid #e9e9e9;
		box-shadow: 0 -4px 18px rgba(0, 0, 0, 0.10);
	}
	/* Collapsed: show only the bar; the card content is out of view. */
	body.single-rental .sar-booking-group .sar-booking-box {
		display: none;
	}
	body.single-rental .sar-booking-bar {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 12px;
		padding: 12px 16px calc(12px + env(safe-area-inset-bottom, 0px));
	}
	/* Keep each stay type on its own line throughout the tablet/mobile bar. */
	body.single-rental .sar-booking-bar-summary {
		display: flex;
		flex: 1 1 auto;
		flex-direction: column;
		flex-wrap: nowrap;
		align-items: flex-start;
		gap: 2px;
		min-width: 0;
		margin: 0;
		padding: 0;
		border: 0;
		background: transparent;
		font-family: inherit;
		font-size: 14px;
		line-height: 1.25;
		color: var(--wp--preset--color--text, #1f1f1f);
		text-align: left;
	}
	body.single-rental button.sar-booking-bar-summary {
		cursor: pointer;
		appearance: none;
	}
	body.single-rental button.sar-booking-bar-summary:focus-visible {
		outline: 2px solid var(--wp--preset--color--accent);
		outline-offset: 3px;
	}
	body.single-rental .sar-booking-bar-summary .sar-bar-price {
		white-space: nowrap;
	}
	body.single-rental .sar-booking-bar-summary .sar-bar-price strong {
		font-size: 15px;
	}
	body.single-rental .sar-booking-bar-cta {
		flex: 0 0 auto;
		border: none;
		border-radius: 999px;
		background: var(--wp--preset--color--primary, #013b28);
		color: #fff;
		font-weight: 600;
		font-size: 15px;
		padding: 12px 22px;
		cursor: pointer;
		text-decoration: none;
		white-space: nowrap;
	}

	/* Expanded: full-screen sheet. */
	body.single-rental .sar-booking-group.sar-sheet-open {
		top: 0;
		height: 100dvh;
		max-height: 100dvh;
		overflow-y: auto;
	}
	body.single-rental .sar-booking-group.sar-sheet-open .sar-booking-bar {
		display: none;
	}
	/* Full-height flex column so the content can breathe down the sheet
	   instead of clustering at the top. */
	body.single-rental .sar-booking-group.sar-sheet-open .sar-booking-box {
		display: flex;
		flex-direction: column;
		min-height: 100%;
		box-sizing: border-box;
		padding: 10px 18px calc(24px + env(safe-area-inset-bottom, 0px));
	}
	/* × close on its OWN row (align-self:flex-end), so the centered "Booking"
	   title below it is truly centered, not shoved by a floated button. */
	body.single-rental .sar-sheet-close {
		display: none;
	}
	body.single-rental .sar-booking-group.sar-sheet-open .sar-sheet-close {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		align-self: flex-end;
		position: sticky;
		top: 4px;
		width: 36px;
		height: 36px;
		box-sizing: border-box;
		margin: 0 0 2px;
		border: 1px solid #dde4df;
		border-radius: 50%;
		background: #fff;
		color: var(--wp--preset--color--text, #1f1f1f);
		font-size: 22px;
		line-height: 1;
		padding: 0;
		cursor: pointer;
		z-index: 3;
	}
	/* Let the active form take the remaining height (keeps display:block so the
	   WPBC/GF internals are untouched) — the sheet fills top-to-bottom instead
	   of clustering, and the accordion calendar has room to expand. */
	body.single-rental .sar-booking-group.sar-sheet-open .short-term-form,
	body.single-rental .sar-booking-group.sar-sheet-open .lt-booking-form {
		flex: 1 0 auto;
	}
	/* The old arrow expand/collapse row has no place in the sheet model. */
	body.single-rental .machuca-form-toggle-row {
		display: none !important;
	}

	body.admin-bar.single-rental .sar-booking-group.sar-sheet-open {
		height: calc(100dvh - 32px);
		max-height: calc(100dvh - 32px);
	}

	@media (max-width: 782px) {
		body.admin-bar.single-rental .sar-booking-group.sar-sheet-open {
			height: calc(100dvh - 46px);
			max-height: calc(100dvh - 46px);
		}
	}

	body.single-rental .sar-booking-box {
		padding: 8px 0;
		border: none;
		margin-right: 0;
		box-shadow: rgba(0, 0, 0, 0.18) 0px 4px 18px;
	}

	body.single-rental .sar-booking-group .sar-booking-box .sar-booking-prices {
		gap: 8px;
	}

	body.single-rental .sar-booking-group .sar-booking-box p {
		margin: 0;
	}

	body.single-rental .sar-booking-group .sar-booking-box .sar-booking-prices p {
		font-size: 15px !important;
	}

	body.single-rental .sar-booking-group .sar-restricted {
		font-size: 12px;
		margin: 5px 0;
	}


	body.single-rental .sar-booking-group .wpbc_no_custom_width.cal_month_num_1 {
		margin: 0 auto;
	}


	body.single-rental .sar-booking-group .lt-booking-form,
	body.single-rental .sar-booking-group .short-term-form {
		padding: 15px;
		max-width: 480px;
		margin: 20px auto 0;
	}

	body.single-rental .sar-booking-group .lt-booking-form p {
		font-size: 15px;
		margin-bottom: 14px;
	}
	/* The generic `.lt-booking-form p` rule above inflates the info-bar meta
	   labels (min-stay / cleaning fee), which are <p>. Keep them the compact,
	   marginless size they are on desktop. */
	body.single-rental .sar-booking-group .machuca-form-info-bar p {
		font-size: 13px !important;
		margin: 0 !important;
		line-height: 1.3 !important;
	}

	body.single-rental .sar-booking-group .lt-booking-form input,
	body.single-rental .sar-booking-group .lt-booking-form select,
	body.single-rental .sar-booking-group .lt-booking-form textarea {
		font-size: 15px;
		width: 100%;
	}
}

/* Between 601–900px: hero full-width top row (16/9), two thumbnails below. */
@media (min-width: 601px) and (max-width: 900px) {
	.machuca-gallery-wrap .gallery {
		grid-template-columns: 1fr 1fr;
	}

	.machuca-gallery-wrap .gallery-item:first-child {
		grid-column: 1 / -1;
		grid-row: 1;
	}

	.machuca-gallery-wrap .gallery-item:first-child img {
		height: auto;
		min-height: unset;
		aspect-ratio: 16 / 9;
	}

	.machuca-gallery-wrap .gallery-item:nth-child(n+4) {
		display: none;
	}
}

@media (max-width: 600px) {
	.machuca-single-rental {
		padding-left: var(--wp--preset--spacing--40);
		padding-right: var(--wp--preset--spacing--40);
	}

	.machuca-listing-title-row {
		flex-direction: column;
		gap: 10px;
		margin-bottom: var(--wp--preset--spacing--30);
	}

	.machuca-listing-title {
		font-size: var(--wp--preset--font-size--lg);
		max-width: none;
	}

	.machuca-listing-availability {
		max-width: none;
		display: flex;
		flex-wrap: wrap;
		justify-content: flex-start;
		gap: 6px var(--wp--preset--spacing--30);
		text-align: left;
		padding-top: 0;
	}

	.machuca-availability-cue {
		display: grid;
		grid-template-columns: auto auto;
		align-items: baseline;
		gap: 5px;
	}

	.machuca-availability-cue + .machuca-availability-cue {
		padding-left: 0;
		border-left: none;
	}

	.machuca-listing-context {
		padding-bottom: var(--wp--preset--spacing--50);
		margin-bottom: var(--wp--preset--spacing--60);
	}

	.machuca-listing-subtitle {
		font-size: var(--wp--preset--font-size--base);
	}

	/* Two pills have to share the width of a single 280px hero, so they lose the
	   padding they can afford on desktop rather than wrapping or overflowing. */
	.machuca-gallery-actions {
		bottom: 12px;
		right: 12px;
		left: 12px;
		gap: 6px;
		justify-content: flex-end;
	}

	.machuca-gallery-action {
		padding: 8px 12px;
		font-size: var(--wp--preset--font-size--xs);
		overflow: hidden;
		text-overflow: ellipsis;
	}

	/* Mobile: only show the hero image */
	.machuca-gallery-wrap .gallery {
		grid-template-columns: 1fr;
		gap: 0;
		border-radius: 8px;
	}

	.machuca-gallery-wrap .gallery-item:not(:first-child) {
		display: none;
	}

	.machuca-gallery-wrap .gallery-item:first-child {
		grid-column: span 1;
		grid-row: span 1;
	}

	.machuca-gallery-wrap .gallery-item:first-child img,
	.machuca-gallery-wrap .gallery-item img {
		height: 280px;
		min-height: unset;
	}

	.machuca-amenities-list {
		grid-template-columns: 1fr;
	}

	.sar-booking-group .short-term-form .datepick-inline {
		padding: var(--wp--preset--spacing--20);
	}

	.sar-booking-group .short-term-form .datepick-inline td.datepick-days-cell,
	.sar-booking-group .short-term-form .datepick-inline td.datepick-days-cell a,
	.sar-booking-group .short-term-form .datepick-inline td.datepick-days-cell span {
		height: 32px;
	}
}

/* ── Reviews section ─────────────────────────────────────────────────────── */

.machuca-reviews {
	--glsr-yellow: #e0a800;
	--glsr-review-star: 1em;
	border-top: 1px solid var(--wp--preset--color--border, #e5e0d8);
	padding-top: var(--wp--preset--spacing--60, 2.5rem);
	margin-top: var(--wp--preset--spacing--60, 2.5rem);
}

.machuca-reviews h3,
.machuca-host h3 {
	font-family: var(--wp--preset--font-family--serif, Georgia, serif);
	font-size: 1.5rem;
	font-weight: 600;
	margin-bottom: var(--wp--preset--spacing--10, .25rem);
}

/* Summary bar */
.machuca-reviews-summary {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin-bottom: var(--wp--preset--spacing--50, 1.5rem);
}

.machuca-reviews-avg {
	font-family: var(--wp--preset--font-family--serif, Georgia, serif);
	font-size: 2.5rem;
	font-weight: 700;
	line-height: 1;
	color: var(--wp--preset--color--primary, #013b28);
}

.machuca-reviews-stars {
	display: flex;
	align-items: center;
	gap: 2px;
}

.machuca-star--filled { color: #e0a800; }
.machuca-star--empty  { color: var(--wp--preset--color--border, #e5e0d8); }

.machuca-date-clear {
	font-family: var(--wp--preset--font-family--sans, sans-serif) !important;
	cursor: pointer !important;
	appearance: none !important;
	-webkit-appearance: none !important;
}

.machuca-date-clear[hidden] {
	display: none !important;
}

.machuca-date-clear:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent, #b9663d) !important;
	outline-offset: 2px !important;
}

.machuca-date-clear--text {
	position: static !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: auto !important;
	height: auto !important;
	min-width: 0 !important;
	min-height: 0 !important;
	margin: var(--wp--preset--spacing--20, 8px) auto 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	color: var(--wp--preset--color--primary, #013b28) !important;
	font-size: var(--wp--preset--font-size--sm, 14px) !important;
	font-weight: 600 !important;
	line-height: 1.2 !important;
	text-align: center !important;
	text-decoration: underline !important;
	text-underline-offset: 3px !important;
	transform: none !important;
}

.machuca-date-clear--text:hover,
.machuca-date-clear--text:focus {
	color: var(--wp--preset--color--accent, #b9663d) !important;
	background: transparent !important;
	text-decoration-thickness: 2px !important;
}

.machuca-date-clear-row {
	display: flex !important;
	justify-content: flex-end !important;
	width: 100% !important;
	margin-top: var(--wp--preset--spacing--20, 8px) !important;
}

.machuca-date-clear-row .machuca-date-clear--picker {
	margin: 0 !important;
}

.sar-booking-group .short-term-form .machuca-date-clear-row--st-booking {
	position: relative;
	z-index: 2;
	width: auto !important;
	margin: calc(-24px - var(--wp--preset--spacing--30, 12px)) var(--wp--preset--spacing--30, 12px) var(--wp--preset--spacing--30, 12px) auto !important;
}

.machuca-reviews-count {
	font-family: var(--wp--preset--font-family--sans, sans-serif);
	font-size: 0.875rem;
	color: #6b7280;
}

/* Review card grid — only when reviews exist */
.machuca-reviews.has-reviews .glsr-reviews-wrap > div {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: var(--wp--preset--spacing--50, 1.5rem);
}

/* Individual review card
   Override GLSR's own flex-wrap layout so our column template works correctly */
.machuca-reviews .glsr-review {
	background: var(--wp--preset--color--surface, #faf8f5);
	border: 1px solid var(--wp--preset--color--border, #e5e0d8);
	border-radius: 16px;
	padding: 1.25rem;
	box-shadow: 0 1px 4px rgba(0, 0, 0, .06);
	display: flex !important;
	flex-direction: column !important;
	flex-wrap: nowrap !important;
	/* Every row spans the card and starts at its left edge. It used to be `center`,
	   which centred each part that did not force its own width — so the stars, the
	   date, the photo and the name floated in the middle of a card whose text was
	   flush left underneath them. Nothing here is meant to be centred. */
	align-items: stretch !important;
	gap: 0.75rem !important;
}

/* Review header row: avatar + meta (name / stars+date) */
.machuca-reviews .machuca-review-header {
	display: flex;
	align-items: flex-start;
	gap: 12px;
}

/* Keep avatar from being resized by GLSR's own flex: 0 0 rule */
.machuca-reviews .glsr-review-avatar {
	flex: 0 0 auto !important;
	width: auto !important;
	height: auto !important;
}

.machuca-reviews .glsr-review-avatar img {
	width: 40px !important;
	height: 40px !important;
	border-radius: 50% !important;
	object-fit: cover !important;
	display: block !important;
}

/* Meta column */
.machuca-reviews .machuca-review-meta {
	display: flex;
	flex-direction: column;
	gap: 3px;
	flex: 1;
	min-width: 0;
}

/* Author name: ALL CAPS + bold */
.machuca-reviews .glsr-review-author .glsr-tag-value {
	font-family: var(--wp--preset--font-family--sans, sans-serif);
	font-size: 0.8125rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--wp--preset--color--primary, #013b28);
}

/* Rating + date on one row */
.machuca-reviews .machuca-review-rating-row {
	display: flex !important;
	align-items: center !important;
	gap: 0.5rem !important;
	flex-wrap: nowrap !important;
}

/* Prevent GLSR from blowing these out to full-width flex items */
.machuca-reviews .glsr-review-rating,
.machuca-reviews .glsr-review-date {
	flex: 0 0 auto !important;
	width: auto !important;
	display: inline-flex !important;
	align-items: center !important;
}

.machuca-reviews .glsr-review-date .glsr-tag-value {
	font-family: var(--wp--preset--font-family--sans, sans-serif);
	font-size: 0.8125rem;
	font-style: italic;
	color: #6b7280;
}

/* Review body — always full width */
.machuca-reviews .glsr-review-content {
	width: 100% !important;
}

.machuca-reviews .glsr-review-content .glsr-tag-value {
	font-size: 0.9375rem;
	line-height: 1.7;
	color: #374151;
}

/* The review text is cut in one place only, and it is not here.
 *
 * GLSR already shortens it to its excerpt length and closes the excerpt with its
 * own Show more, which opens the rest in place. A second cut used to sit on top of
 * that: five lines, in CSS, purely visual, with no control of its own — and it
 * swallowed GLSR's Show more along with the text, because that link lives at the
 * end of the very paragraph being clipped.
 *
 * It only bit some reviews, which is why it read as random. The clip applied to the
 * first paragraph, so a review opening with a short line kept its button (the
 * button sits in the second paragraph) while one written as a single block lost it.
 * Same rule, opposite outcomes, decided by where the author pressed Enter.
 *
 * Cutting is GLSR's job because GLSR is the one that can offer the way back. To
 * change how much shows, change the excerpt length in the plugin's settings — not
 * a line count here. */

/* Belt + suspenders: title hidden even if shortcode hide param misses it */
.machuca-reviews .glsr-review-title {
	display: none !important;
}

/* ── Host section ────────────────────────────────────────────────────────── */

.machuca-host {
	border-top: 1px solid var(--wp--preset--color--border, #e5e0d8);
	padding-top: var(--wp--preset--spacing--60, 2.5rem);
	margin-top: var(--wp--preset--spacing--60, 2.5rem);
}

/* ── Host card: two-zone layout ─────────────────────────────────────────── */

/* Outer card — layout only, no visible wrapper */
/* ============================================================
   Public member profile — /user/{id} (author-profile.php)
   Reuses .machuca-host-card / .machuca-reviews / .machuca-listings-grid;
   these rules only add the standalone-page container + spacing.
   ============================================================ */
.machuca-user-profile,
.machuca-user-profile--missing {
	max-width: 1040px;
	margin: 0 auto;
	padding: 2.5rem 1.25rem 4rem;
}
.machuca-user-profile--missing {
	text-align: center;
	padding: 4rem 1.25rem;
}
.machuca-user-profile > * + * {
	margin-top: 2.5rem;
}
.machuca-profile-name {
	margin: 0;
}
/* Team title, directly under the name on a founder's profile. Sized and spaced
   to sit where "Host since" would on a host profile, so the card keeps its
   shape whichever kind of member is being shown. */
.machuca-profile-team-title {
	margin: 0.25rem 0 0;
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--wp--preset--color--primary, #013b28);
	opacity: 0.75;
}
.machuca-profile-listings h2,
.machuca-profile-reviews h2 {
	margin-bottom: 1.25rem;
}
.machuca-host-bio-empty,
.machuca-profile-noreviews {
	color: var(--wp--preset--color--muted, #6b6357);
}

.machuca-host-card {
	display: grid;
	grid-template-columns: 260px 1fr;
	gap: 3rem;
	align-items: start;
	padding: 2rem 0;
}

/* ── Left: passport profile card ── */
.machuca-host-profile {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: .5rem;
	background: var(--wp--preset--color--surface, #faf8f5);
	border: 1px solid var(--wp--preset--color--border, #e5e0d8);
	border-radius: 16px;
	padding: 2rem 1.25rem 1.75rem;
	text-align: center;
}

/* Deliberately small identity photo (privacy) — 75px maps to the 150px served
   avatar at 2x. Shared by the profile page and the listing host card. */
.machuca-host-avatar {
	width: 75px;
	height: 75px;
	border-radius: 50%;
	object-fit: cover;
	display: block;
	box-shadow: 0 2px 14px rgba(0, 0, 0, .14);
}

/* Stats row: one or two stat blocks separated by a dot */
.machuca-host-profile-stats {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1rem;
	width: 100%;
}

.machuca-host-stat {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.2rem;
}

.machuca-host-stat-value {
	display: flex;
	align-items: center;
	gap: 0.25rem;
	font-family: var(--wp--preset--font-family--serif, Georgia, serif);
	font-size: 1.125rem;
	font-weight: 700;
	color: var(--wp--preset--color--primary, #013b28);
	line-height: 1;
}

.machuca-host-stat-label {
	font-family: var(--wp--preset--font-family--sans, sans-serif);
	font-size: 0.6875rem;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: #9ca3af;
}

/* Thin dot separator between rating stat and host-since stat */
.machuca-host-stat-sep {
	width: 4px;
	height: 4px;
	border-radius: 50%;
	background: var(--wp--preset--color--border, #e5e0d8);
	flex-shrink: 0;
}

/* ── Left: host name (inside profile card) ── */
.machuca-host-name {
	font-family: var(--wp--preset--font-family--serif, Georgia, serif);
	font-size: 1.125rem;
	font-weight: 600;
	color: var(--wp--preset--color--primary, #013b28);
	margin: 0.25rem 0 0;
	line-height: 1.25;
	text-align: center;
}

/* ── Right: content ── */
.machuca-host-content {
	display: flex;
	flex-direction: column;
	gap: 0.875rem;
	padding-top: 1rem;
	margin-left: 1rem;
}

.machuca-host-heading {
	font-family: var(--wp--preset--font-family--serif, Georgia, serif);
	font-size: 1.875rem;
	font-weight: 700;
	color: var(--wp--preset--color--primary, #013b28);
	margin: 0 0 0.125rem;
	line-height: 1.2;
}

.machuca-host-bio-text {
	font-size: 0.9375rem;
	line-height: 1.75;
	color: #374151;
	margin: 0;
	max-width: 87ch;
	text-align: justify;
}

/* Each bio span is its own block so its last line is recognized as "last"
   and stays left-aligned even with text-align: justify on the parent. */
.machuca-bio-short:not([hidden]),
.machuca-bio-full:not([hidden]) {
	display: block;
}

.machuca-read-more {
	display: inline;
	background: none;
	border: none;
	padding: 0;
	font-family: var(--wp--preset--font-family--sans, sans-serif);
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--wp--preset--color--primary, #013b28);
	text-decoration: underline;
	cursor: pointer;
	margin-left: 0.25rem;
}

/* The generic `button:hover` rule near the top of this file paints every button
   with the primary green and white text. It out-specifies the `background: none`
   above (0-1-1 beats 0-1-0 in the hover state), so this inline text button has
   to restate both properties here rather than only its opacity. */
.machuca-read-more:hover,
.machuca-read-more:focus {
	background: none;
	color: var(--wp--preset--color--primary, #013b28);
	opacity: 0.75;
}

/* Actions: PM button (filled primary) + listings link stacked */
.machuca-host-actions {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 1.5rem;
	margin-top: 0.5rem;
}

/* "See listings" trigger — underlined text link */
.machuca-listings-trigger {
	background: none;
	border: none;
	padding: 0;
	font-family: var(--wp--preset--font-family--sans, sans-serif);
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--wp--preset--color--primary, #013b28);
	text-decoration: underline;
	cursor: pointer;
}

/* El tema pinta CUALQUIER botón en hover con fondo verde y letra blanca
   (`button:hover`, arriba de todo). Esto es un botón que se ve como enlace, así que
   tiene que devolver esas dos propiedades a mano: cambiar sólo la opacidad dejaba
   ganar la regla de arriba y el enlace se llenaba de verde. */
.machuca-listings-trigger:hover,
.machuca-listings-trigger:focus,
.machuca-listings-trigger:focus-visible {
	background: none;
	color: var(--wp--preset--color--primary, #013b28);
	opacity: 0.75;
	text-decoration: underline;
}

/* PM button — filled primary pill */
.machuca-pm-btn,
a.bpbm-pm-button.machuca-pm-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 180px;
	padding: 0.625rem 1.5rem;
	border: 1.5px solid var(--wp--preset--color--primary, #013b28);
	border-radius: 9999px;
	background: var(--wp--preset--color--primary, #013b28);
	font-family: var(--wp--preset--font-family--sans, sans-serif);
	font-size: 0.9375rem;
	font-weight: 600;
	color: #fff;
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
	transition: background 0.15s, border-color 0.15s;
	text-align: center;
}

/* El plugin de mensajes carga su CSS DESPUÉS del tema, así que con la misma
   especificidad gana él: de ahí el gris y el encogimiento en hover, que son suyos.
   Se listan las tres formas que puede tomar el elemento (enlace, botón o el div del
   plugin) y se anulan también la transformación y el filtro, que es con lo que el
   plugin lo achica. */
.machuca-pm-btn:hover,
.machuca-pm-btn:focus,
.machuca-pm-btn:focus-visible,
a.bpbm-pm-button.machuca-pm-btn:hover,
button.machuca-pm-btn:hover,
.bpbm-pm-button.machuca-pm-btn:hover {
	background: var(--wp--preset--color--primary-soft, #1d5a44) !important;
	border-color: var(--wp--preset--color--primary-soft, #1d5a44) !important;
	border-width: 1.5px !important;
	color: #fff !important;
	transform: none !important;
	filter: none !important;
	opacity: 1 !important;
	font-size: 0.9375rem !important;
	padding: 0.625rem 1.5rem !important;
}

/* Restricted state */
.machuca-restricted {
	font-family: var(--wp--preset--font-family--sans, sans-serif);
	font-size: 0.875rem;
	font-style: italic;
	color: #6b7280;
}

.machuca-restricted a {
	color: var(--wp--preset--color--primary, #013b28);
	font-weight: 600;
}

/* ── Host listings popup ──────────────────────────────────────────────────── */

.machuca-listings-popup {
	position: fixed;
	inset: 0;
	z-index: 99999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1.25rem;
	background: rgba(0, 0, 0, 0.55);
	backdrop-filter: blur(3px);
	-webkit-backdrop-filter: blur(3px);
	overflow-y: auto;
}

.machuca-listings-popup[hidden] {
	display: none;
}

.machuca-listings-popup-inner {
	position: relative;
	background: #fff;
	border-radius: 20px;
	padding: 2rem;
	width: 100%;
	max-width: 880px;
	max-height: 90vh;
	overflow-y: auto;
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.25);
}

.machuca-listings-popup-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 1.5rem;
	padding-bottom: 1rem;
	border-bottom: 1px solid var(--wp--preset--color--border, #e5e0d8);
}

.machuca-listings-popup-title {
	font-family: var(--wp--preset--font-family--serif, Georgia, serif);
	font-size: 1.25rem;
	font-weight: 600;
	color: var(--wp--preset--color--primary, #013b28);
	margin: 0;
}

.machuca-listings-popup-close {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border: 1.5px solid var(--wp--preset--color--border, #e5e0d8);
	border-radius: 50%;
	background: transparent;
	font-size: 1rem;
	color: #374151;
	cursor: pointer;
	flex-shrink: 0;
	transition: background 0.15s, border-color 0.15s;
	padding: 0;
}

.machuca-listings-popup-close:hover {
	background: var(--wp--preset--color--primary-soft);
	border-color: var(--wp--preset--color--primary-soft);
}

.machuca-listings-popup-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: 1.25rem;
}

/* ── Responsive: reviews + host ──────────────────────────────────────────── */

@media (max-width: 700px) {
	.machuca-reviews .glsr-reviews-wrap > div {
		grid-template-columns: 1fr;
	}

	/* Host card: single column, profile card centered, PM full width */
	.machuca-host-card {
		grid-template-columns: 1fr;
		gap: 1.5rem;
	}

	.machuca-host-profile {
		max-width: 100%;
	}

	.machuca-host-content {
		padding-top: 0;
	}

	.machuca-host-actions {
		width: 100%;
	}

	.machuca-pm-btn,
	a.bpbm-pm-button.machuca-pm-btn {
		width: 100%;
		justify-content: center;
	}

	.machuca-listings-popup-grid {
		grid-template-columns: 1fr;
	}
}


/* ── Header search overlay ───────────────────────────────────────────────────
   Full-width white strip that drops directly below the site header.
   Panel is the first flex child; backdrop fills the space below.
   JS: header-search.js. PHP: machuca-nav.php (wp_footer hook).
   ────────────────────────────────────────────────────────────────────────── */

/* ── Main-nav: ST / LT trigger pill ─────────────────────────────────── */

/* Pill is absolutely centred in the constrained header wrapper.
   The wrapper already has position:relative (.site-header > .is-layout-constrained).
   Removing this element from the flex flow lets logo + avatar keep space-between
   while the pill sits at true 50% regardless of their widths. */
.main-nav {
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	width: 40%;
	max-width: 400px;
	flex: none;
	display: flex;
	justify-content: center;
	align-items: center;
	z-index: 1;
}

.main-nav .wp-block-navigation__container {
	border: 1px solid #ccc;
	border-radius: 100px;
	overflow: hidden;
	gap: 0;
	align-items: stretch;
	background: #fff;
	max-width: 400px;
	width: 100%;
}
.main-nav .wp-block-navigation-item {
	flex: 1;
	display: flex;    /* makes the <a> child stretchable */
	text-align: center;
}
.main-nav .wp-block-navigation-item__content {
	display: flex !important;
	align-items: center;
	justify-content: center;
	position: relative;   /* anchor for absolutely-positioned icons */
	width: 100%;          /* fill the full <li> width */
	height: 100%;         /* fill the full <li> height */
	box-sizing: border-box;
	padding: 8px 18px;
	font-size: 0.88rem;
	font-weight: 400; /* inactive = regular */
	color: #4a5a52;
	text-decoration: none !important;
	white-space: nowrap;
	transition: background 0.15s, color 0.15s, font-weight 0s;
}

/* Partial-height center divider on the <li>, not a full border-left */
.main-nav .wp-block-navigation-item + .wp-block-navigation-item {
	position: relative;
}
.main-nav .wp-block-navigation-item + .wp-block-navigation-item::before {
	content: '';
	position: absolute;
	left: 0;
	top: 15%;
	height: 70%;
	border-left: 1px solid #ccc;
	pointer-events: none;
}

/* Search icon — outer-left of Short term, absolutely pinned */
.main-nav .wp-block-navigation-item:first-child .wp-block-navigation-item__content::before {
	content: '';
	position: absolute;
	left: 14px;
	top: 50%;
	transform: translateY(-50%);
	width: 13px;
	height: 13px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='13' height='13' viewBox='0 0 24 24' fill='none' stroke='%234a5a52' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-size: contain;
}

/* Search icon — outer-right of Long term, absolutely pinned + handle mirrored */
.main-nav .wp-block-navigation-item:last-child .wp-block-navigation-item__content::after {
	content: '';
	position: absolute;
	right: 14px;
	top: 50%;
	transform: translateY(-50%) scaleX(-1);
	width: 13px;
	height: 13px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='13' height='13' viewBox='0 0 24 24' fill='none' stroke='%234a5a52' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-size: contain;
}

/* Shift label toward the icon to compensate for its visual weight.
   ST icon is at left → push label right; LT icon is at right → push label left. */
.main-nav .wp-block-navigation-item:first-child .wp-block-navigation-item__label {
	margin-left: 13px;
}
.main-nav .wp-block-navigation-item:last-child .wp-block-navigation-item__label {
	margin-right: 13px;
}

/* Stay-length captions under the pill labels — same copy as the hero tabs.
   Shown only while the search is open (body.machuca-search-open, set by
   header-search.js; always on for docked results pages) so the closed header
   keeps single-line pills. They live on the __label span: the __content
   ::before/::after already hold the search icons. Matched by href like
   header-search.js does, so the caption follows the link even if the pills
   are reordered. */
.main-nav .wp-block-navigation-item__content .wp-block-navigation-item__label::after {
	display: block;
	font-size: 10px;
	font-weight: 400; /* stays regular when the active pill goes bold */
	line-height: 1.2;
	opacity: .7;
}

.machuca-search-open .main-nav a[href*="/short-stay/"] .wp-block-navigation-item__label::after {
	content: "2 to 30 nights";
}

.machuca-search-open .main-nav a[href*="/long-stay/"] .wp-block-navigation-item__label::after {
	content: "1 to 12 months";
}

/* Active: subtle tint + bold — keeps our tint advantage over Genesis */
.main-nav .wp-block-navigation-item__content.machuca-search-active {
	background: rgba(1, 59, 40, 0.07);
	color: #013b28 !important;
	font-weight: 700;
}

/* ── Overlay: flush with header bottom ───────────────────────────────────────
   Two modes, and they position differently on purpose.

   Docked (/short-stay/, /long-stay/) stays fixed: there the search IS the page's
   own form and belongs pinned under the header.

   Everywhere else it is absolutely positioned, so it scrolls away with the page
   like any other block. It used to be fixed here too and stretched to the
   bottom of the viewport, which is what forced the body scroll lock: let the
   page move and the panel stayed welded to the screen over it. Anchoring it in
   the document instead removes the reason the lock existed. The dim stays put
   because the backdrop is its own fixed layer underneath (below). */
#machuca-header-search {
	position: fixed;
	top: 61px;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 9000;
	display: none; /* style.display='flex' set by JS */
	flex-direction: column;
}

#machuca-header-search:not(.machuca-search-docked) {
	position: absolute; /* top set in document coordinates by header-search.js */
	bottom: auto;
}

/* When search is open, hide the site-header bottom border so it doesn't
   create a visible dividing line between header and the search panel. */
.machuca-search-open .site-header {
	border-bottom-color: transparent;
}

#machuca-header-search-panel {
	position: relative;
	width: 100%;
	background: #fff;
	border-bottom: 1px solid rgba(1, 59, 40, 0.1);
	/* shadow only downward — upward bleed is hidden behind the header */
	box-shadow: 0 6px 20px -2px rgba(0, 0, 0, 0.08);
	padding: 20px 32px 24px;
	overflow-y: auto;
	max-height: 85vh;
}

/* The dim covers the viewport and stays there while the page scrolls beneath
   it, so the panel can travel with the document without the shade sliding off
   with it. It is a plain fixed layer with no scroll of its own, which is why
   wheel and touch pass straight through to the page — the reason nothing had to
   replace the old body scroll lock. Clicking it closes (header-search.js). */
#machuca-header-search-backdrop {
	position: fixed;
	inset: 0;
	z-index: 0;
	background: rgba(1, 20, 14, 0.4);
	cursor: pointer;
}

#machuca-header-search-panel {
	z-index: 1; /* above the backdrop's fixed sheet */
}


.machuca-search-panel { display: none; }

/* The page keeps scrolling while the search is open — the way it does on every
   site people compare us to. There used to be a `body { overflow: hidden }`
   lock here, and it was a patch for this overlay being stretched to the bottom
   of the viewport: scrolling moved the page under a panel welded to the screen,
   which read as broken, so the scroll was frozen instead. That left the guest
   with a dimmed page that refused to move and no obvious way out.

   Nothing needs to replace it. The panel caps itself at 85vh and scrolls
   internally, header-search.js re-anchors it to the header's real bottom edge
   on every scroll, and the backdrop closes the whole thing on click. The
   backdrop is a plain fixed layer with no scroll of its own, so wheel and touch
   pass straight through to the page beneath. */

/* Remove focus outline on nav pill links */
.main-nav .wp-block-navigation-item__content:focus,
.main-nav .wp-block-navigation-item__content.machuca-search-active:focus {
	outline: none;
}

/* ── Shared: labels ──────────────────────────────────────────────────── */
.machuca-search-pill .gfield_label,
.machuca-search-st label {
	display: block !important;
	font-size: 0.78rem;
	font-weight: 500;
	color: #5a6b62;
	margin-bottom: 4px;
	white-space: nowrap;
}

/* ── Shared: pill inputs ─────────────────────────────────────────────── */
.machuca-search-pill input[type="text"],
.machuca-search-pill input[type="number"],
.machuca-search-pill input[type="date"],
.machuca-search-pill select,
.machuca-search-pill .datepicker {
	width: 100%;
	border: 1px solid #ccd5cf !important;
	border-radius: 50px !important;
	padding: 0 18px !important;
	font-size: 0.92rem;
	color: #1a2820 !important;
	background: #fff !important;
	outline: none;
	box-sizing: border-box;
	-webkit-appearance: none;
	appearance: none;
	letter-spacing: normal !important;
	font-family: inherit !important;
	transition: border-color 0.15s;
}
.machuca-search-pill input[type="text"]:focus,
.machuca-search-pill input[type="date"]:focus,
.machuca-search-pill select:focus {
	border-color: #013b28 !important;
}
/* Custom select arrow — also re-states color to fix the "dots" rendering bug */
.machuca-search-pill select {
	color: #1a2820 !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23013b28' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right 16px center !important;
	padding-right: 38px !important;
}

/* ── Shared: submit buttons ──────────────────────────────────────────── */
.machuca-search-pill input[type="submit"],
.machuca-search-pill button[type="submit"],
.machuca-search-st [class*="search_btn"],
.machuca-search-st [class*="search-btn"] {
	background: #013b28 !important;
	color: #fff !important;
	border: none !important;
	border-radius: 100px !important;
	padding: 11px 28px !important;
	font-size: 0.95rem !important;
	font-weight: 600 !important;
	cursor: pointer !important;
	white-space: nowrap;
	transition: background 0.15s !important;
	text-decoration: none !important;
}
.machuca-search-pill input[type="submit"]:hover,
.machuca-search-pill button[type="submit"]:hover {
	background: #1d5a44 !important;
}

/* ── ST panel — WPBC search form as a pill ───────────────────────────── */

/* Reset outer WPBC wrappers */
.machuca-search-st #booking_search_form,
.machuca-search-st .wpbc_container_search_form,
.machuca-search-st .wpdevelop {
	padding: 0 !important;
	margin: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
}

/* Pill container */
.machuca-search-st .search_container {
	display: flex !important;
	flex-wrap: nowrap !important;
	align-items: stretch !important;
	border: 1.5px solid #c8d4cf !important;
	border-radius: 50px !important;
	overflow: hidden !important;
	background: #fff !important;
	min-height: 48px !important;
	max-width: 768px !important;
	width: 100% !important;
	margin: 0 auto !important;
	padding: 0 !important;
	gap: 0 !important;
	box-sizing: border-box !important;
	box-shadow: none !important;
}

/* Each field row: flex cell with right divider */
.machuca-search-st .search_row {
	display: flex !important;
	flex-direction: row !important;
	align-items: stretch !important;
	flex: 1 1 0 !important;
	min-width: 0 !important;
	border-right: 1px solid #dde4df !important;
	padding: 0 !important;
	margin: 0 !important;
	width: auto !important;
}

/* Field proportions */
.machuca-search-st .search_row:has([name="neighborhood"]) { flex: 1.5 1 0 !important; }
.machuca-search-st .search_row:has([name="price_range"])  { flex: 1.2 1 0 !important; }

/* Submit row: fixed-width green cap, no divider */
.machuca-search-st .search_row.search_button {
	flex: 0 0 60px !important;
	max-width: none !important;
	border-right: none !important;
}

/* Inputs and selects: transparent, borderless, fill the cell */
.machuca-search-st .search_container input[type="text"],
.machuca-search-st .search_container select {
	border: none !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	width: 100% !important;
	height: 100% !important;
	padding: 0 14px !important;
	margin: 0 !important;
	font-size: 0.92rem !important;
	color: #1a2820 !important;
	letter-spacing: normal !important;
	font-family: inherit !important;
	min-height: 0 !important;
	line-height: normal !important;
	-webkit-appearance: none;
	appearance: none;
}

/* Select chevron */
.machuca-search-st .search_container select {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23013b28' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right 12px center !important;
	padding-right: 32px !important;
}

/* Placeholder colour */
.machuca-search-st .search_container input::placeholder {
	color: #7a8c83 !important;
}

/* Submit: green icon-only right cap */
.machuca-search-st .search_row.search_button input[type="submit"] {
	background-color: #013b28 !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: center !important;
	background-size: 20px 20px !important;
	color: transparent !important;
	font-size: 0 !important;
	border: none !important;
	border-radius: 0 100px 100px 0 !important;
	width: 100% !important;
	height: 100% !important;
	padding: 0 !important;
	margin: 0 !important;
	cursor: pointer !important;
	transition: background-color 0.15s !important;
}
/* Preserve magnifying-glass icon on hover — the shared #machuca-header-search rule
   uses background shorthand which would reset background-image without this override. */
.machuca-search-st .search_row.search_button input[type="submit"]:hover {
	background-color: #1d5a44 !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: center !important;
	background-size: 20px 20px !important;
}

/* ── LT panel — GF form as a single pill ────────────────────────────── */

/* Labels hidden — placeholders used instead */
.machuca-search-lt .gfield_label { display: none !important; }

/* ginput_container fills its flex cell */
.machuca-search-lt .ginput_container {
	width: fit-content;
	height: 100%;
	display: flex !important;
	align-items: center;
	justify-content: center;
}

/* <form> is the outer pill: fields + submit button are its flex children */
.machuca-search-lt form {
	display: flex !important;
	align-items: stretch !important;
	border: 1.5px solid #c8d4cf;
	border-radius: 50px;
	overflow: hidden;
	background: #fff;
	min-height: 48px;
	width: 100%;
	max-width: 768px;
	margin: 0 auto;
	box-sizing: border-box;
}

.machuca-search-lt .gform-body {
	flex: 1 1 0 !important;
	min-width: 0;
	display: flex !important;
}

/* Fields list: horizontal stretch, no wrap, no gap */
form .gform-body #gform_fields_2,
.machuca-search-lt .gform-fields {
	display: flex !important;
	flex-wrap: nowrap !important;
	align-items: stretch !important;
	gap: 0 !important;
	list-style: none !important;
	padding: 0 !important;
	margin: 0 !important;
	flex: 1;
	min-width: 0;
}

/* Each field: equal-flex cell with a divider on the right */
.machuca-search-lt .gfield {
	display: flex !important;
	align-items: center !important;
	flex: 1 1 0 !important;
	min-width: 0;
	border-right: 1px solid #dde4df !important;
	padding: 0 !important;
}

/* Wider fields */
.machuca-search-lt .gfield.lt-location { flex: 1.5 1 0 !important; }
.machuca-search-lt .gfield.start-date,
.machuca-search-lt .gfield.end-date    { flex: 1 1 0 !important; }

/* No right-border on start-date or stepper — buttons provide their own borders */
.machuca-search-lt .gfield.start-date,
.machuca-search-lt .gfield.lt-months,
.machuca-search-lt .gfield.months-buttons.minus,
.machuca-search-lt .gfield.months-buttons.plus { border-right: none !important; }

/* Months stepper cells */
.machuca-search-lt .gfield.months-buttons.minus,
.machuca-search-lt .gfield.months-buttons.plus {
	flex: 0 0 52px !important;
	justify-content: center;
}
.machuca-search-lt .gfield .months-buttons {
	height: 100%;
}
.machuca-search-lt .gfield.lt-months {
	flex: 0 !important;
	min-width: 80px;
}

/* Guest steppers (Adults / Children / Infants): –  [n]  +  inside each cell.
   Enforced floors live in JS (lt-search-form.js); this is just presentation. */
.machuca-guest-stepper {
	display: flex !important;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: 100%;
	height: 100%;
}
.machuca-guest-step {
	flex: 0 0 auto;
	width: 28px;
	height: 28px;
	padding: 0;
	border-radius: 50%;
	/* Override GF's blue button fill */
	border: 1px solid var(--wp--preset--color--border-strong, #b9c4bd) !important;
	background: transparent !important;
	box-shadow: none !important;
	color: #1a2820 !important;
	font-size: 1.05rem;
	line-height: 1;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	-webkit-appearance: none !important;
	appearance: none !important;
	transition: border-color 0.15s ease, color 0.15s ease;
}
.machuca-guest-step:hover,
.machuca-guest-step:focus-visible {
	border-color: var(--wp--preset--color--primary, #1d5a44) !important;
	color: var(--wp--preset--color--primary, #1d5a44) !important;
}
.machuca-search-lt input.machuca-guest-input {
	border: none !important;
	background: transparent !important;
	box-shadow: none !important;
	width: 1.5em !important;
	min-width: 1.5em;
	padding: 0 !important;
	text-align: center !important;
	color: #1a2820 !important;
	font-size: 0.92rem;
	cursor: default;
	-moz-appearance: textfield;
	appearance: textfield;
}
.machuca-guest-input::-webkit-outer-spin-button,
.machuca-guest-input::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

/* ── 4b: Suburb (location) — elegant dropdown, no native arrow ── */
.machuca-search-lt .gfield.lt-location select,
.lt-search-form .gfield.lt-location select {
	-webkit-appearance: none !important;
	-moz-appearance: none !important;
	appearance: none !important;
	background-image: none !important;
	padding-right: 16px !important;
	cursor: pointer;
	color: var(--wp--preset--color--text-muted, #5b6b62) !important;
}
.machuca-search-lt .gfield.lt-location.has-value select,
.lt-search-form .gfield.lt-location.has-value select {
	color: #1a2820 !important;
	font-weight: 700;
}

/* ── 4c: Search pills (Dates; framework reused for others) ── */
.machuca-search-lt .machuca-pill {
	position: relative;
	flex: 1.2 1 0 !important;
	min-width: 0;
	display: flex;
	align-items: center;
	border-right: 1px solid #dde4df !important;
}
.machuca-pill-trigger {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 2px;
	width: 100%;
	height: 100%;
	/* Beat GF's "orbital" theme, which paints buttons primary-blue */
	background: transparent !important;
	border: none !important;
	box-shadow: none !important;
	color: #1a2820 !important;
	-webkit-appearance: none !important;
	appearance: none !important;
	padding: 10px 16px;
	cursor: pointer;
	text-align: left;
	font-family: inherit;
	border-radius: 999px;
}
.machuca-pill-trigger:hover,
.machuca-pill.is-open .machuca-pill-trigger {
	background: var(--wp--preset--color--primary-faint, #eef3f0);
}
.machuca-pill-label {
	font-weight: 700;
	font-size: 0.7rem;
	letter-spacing: 0.02em;
	color: #1a2820;
}
.machuca-pill-summary {
	font-size: 0.9rem;
	color: var(--wp--preset--color--text-muted, #5b6b62);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	max-width: 100%;
}
.machuca-pill.has-value .machuca-pill-summary {
	color: #1a2820;
}
.machuca-pill-panel {
	position: fixed;
	z-index: 100000;
	display: none;
	min-width: 300px;
	max-width: calc(100vw - 24px);
	background: #fff;
	border: 1px solid #dde4df;
	border-radius: 16px;
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.12);
	padding: 16px;
}
.machuca-pill.is-open .machuca-pill-panel {
	display: block;
}

/* GF fields relocated into a pill panel: stack, drop the search-row chrome */
.machuca-search-lt .machuca-pill-panel .gfield {
	display: block !important;
	flex: none !important;
	border-right: none !important;
	width: 100%;
	margin: 0 0 10px !important;
}
.machuca-search-lt .machuca-pill-panel .gfield:last-child {
	margin-bottom: 0 !important;
}
.machuca-search-lt .machuca-pill-panel .gfield_label {
	display: block !important;
	font-size: 0.7rem;
	font-weight: 700;
	margin-bottom: 4px;
	color: #1a2820;
}
.machuca-search-lt .machuca-pill-panel input[type="text"],
.machuca-search-lt .machuca-pill-panel input[type="date"] {
	text-align: left !important;
	border: 1px solid #dde4df !important;
	border-radius: 8px !important;
	padding: 8px 12px !important;
	height: auto !important;
}
/* Months stepper row inside the dates panel */
.machuca-search-lt .machuca-pill-panel .gfield.months-buttons.minus,
.machuca-search-lt .machuca-pill-panel .gfield.months-buttons.plus {
	display: inline-flex !important;
	width: auto;
	vertical-align: middle;
}
.machuca-search-lt .machuca-pill-panel .gfield.lt-months {
	display: inline-block !important;
	width: auto;
	min-width: 90px;
	vertical-align: middle;
}

/* Guests panel: stacked rows — label left, stepper/toggle right */
.machuca-pill--guests .machuca-pill-panel .gfield {
	display: flex !important;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	margin: 0 0 16px !important;
}
.machuca-pill--guests .machuca-pill-panel .gfield:last-child {
	margin-bottom: 0 !important;
}
.machuca-pill--guests .machuca-pill-panel .gfield_label {
	margin-bottom: 0 !important;
	font-size: 0.95rem;
	font-weight: 600;
}
.machuca-pill--guests .machuca-pill-panel .machuca-guest-stepper {
	width: auto !important;
	flex: 0 0 auto;
}
/* Pet row: the <legend> collapses inside a flex fieldset, so lay the row out via
   the choice itself — label on the left, checkbox on the right. */
.machuca-pill--guests .machuca-pill-panel .gfield.lt-pet {
	display: block !important;
}
.machuca-pill--guests .machuca-pill-panel .gfield.lt-pet > legend.gfield_label {
	display: none !important;
}
.machuca-pill--guests .machuca-pill-panel .gfield.lt-pet .gchoice {
	display: flex !important;
	flex-direction: row-reverse;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	margin: 0;
}
.machuca-pill--guests .machuca-pill-panel .gfield.lt-pet .gchoice label {
	display: inline-block !important;
	margin: 0 !important;
	font-size: 0.95rem;
	font-weight: 600;
	color: #1a2820;
}

/* Pet as a toggle switch */
.machuca-pill--guests .machuca-pill-panel .gfield.lt-pet input[type="checkbox"] {
	-webkit-appearance: none !important;
	appearance: none !important;
	flex: 0 0 auto;
	width: 44px !important;
	height: 24px !important;
	margin: 0 !important;
	border: none !important;
	border-radius: 999px !important;
	background: #d8d1c2 !important;
	position: relative;
	cursor: pointer;
	transition: background 0.2s ease;
}
.machuca-pill--guests .machuca-pill-panel .gfield.lt-pet input[type="checkbox"]::before {
	content: "" !important;
	position: absolute !important;
	top: 2px !important;
	left: 2px !important;
	right: auto !important;
	width: 20px !important;
	height: 20px !important;
	margin: 0 !important;
	border: none !important;
	border-radius: 50% !important;
	background: #fff !important;
	/* GF's orbital checkbox sets ::before opacity:0 — force the knob visible */
	opacity: 1 !important;
	transform: none !important;
	transition: transform 0.2s ease !important;
}
.machuca-pill--guests .machuca-pill-panel .gfield.lt-pet input[type="checkbox"]:checked {
	background: var(--wp--preset--color--primary, #1d5a44) !important;
}
.machuca-pill--guests .machuca-pill-panel .gfield.lt-pet input[type="checkbox"]:checked::before {
	transform: translateX(20px) !important;
	opacity: 1 !important;
}

/* Months +/- inside the dates panel: outline circles, not GF blue */
.machuca-pill-panel .gfield.months-buttons .wp-block-button__link {
	background: transparent !important;
	color: #1a2820 !important;
	border: 1px solid var(--wp--preset--color--border-strong, #b9c4bd) !important;
	border-radius: 50% !important;
	min-width: 0 !important;
	width: 28px;
	height: 28px;
	padding: 0 !important;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
}
.machuca-pill-panel .gfield.months-buttons .wp-block-button__link:hover {
	border-color: var(--wp--preset--color--primary, #1d5a44) !important;
	color: var(--wp--preset--color--primary, #1d5a44) !important;
}
/* Dates panel: start / months / end as tidy rows; months stepper inline */
.machuca-pill--dates .machuca-pill-panel .gfield {
	margin-bottom: 12px !important;
}
.machuca-pill--dates .machuca-pill-panel .gfield.months-buttons.minus,
.machuca-pill--dates .machuca-pill-panel .gfield.lt-months,
.machuca-pill--dates .machuca-pill-panel .gfield.months-buttons.plus {
	display: inline-flex !important;
	align-items: center;
	vertical-align: middle;
}
.machuca-pill--dates .machuca-pill-panel .gfield.lt-months input {
	text-align: center !important;
	border: none !important;
	min-width: 80px;
}

/* Pill-level × clear (dates only; shown when the pill has a value) */
.machuca-pill-clear {
	position: absolute;
	top: 50%;
	right: 10px;
	transform: translateY(-50%);
	width: 22px;
	height: 22px;
	border: none !important;
	border-radius: 999px !important;
	background: var(--wp--preset--color--background, #f1ede4) !important;
	color: var(--wp--preset--color--text-muted, #6b6b6b) !important;
	box-shadow: none !important;
	font-size: 14px;
	line-height: 1;
	cursor: pointer;
	display: none;
	align-items: center;
	justify-content: center;
	padding: 0 !important;
	z-index: 3;
	transition: background 180ms ease-out, color 180ms ease-out;
}
.machuca-pill--suburb.is-open.has-value .machuca-pill-clear,
.machuca-pill--dates.is-open.has-value .machuca-pill-clear {
	display: inline-flex;
}
.machuca-pill--suburb.has-value .machuca-pill-trigger,
.machuca-pill--dates.has-value .machuca-pill-trigger {
	padding-right: 40px;
}
.machuca-pill-clear:hover {
	background: var(--wp--preset--color--border-strong, #c8d4cf) !important;
	color: var(--wp--preset--color--text, #1f1f1f) !important;
}

/* Responsive: stack pills + full-width panels on small screens */
@media (max-width: 700px) {
	.machuca-search-lt .machuca-pill,
	.lt-search-form .machuca-pill {
		flex: 1 1 100% !important;
		border-right: none !important;
		border-bottom: 1px solid #dde4df !important;
	}
	.machuca-pill-panel {
		left: 12px !important;
		right: 12px;
		min-width: 0;
		max-width: none;
	}
}

/* ── Search pills — design pass (component-specs §7 search widget, §18 forms,
   §5 dropdown panel). Calm, modern, sans (Sen), forest-green accents. ─────── */

/* Segment trigger: label above value, soft primary-faint hover/open */
.machuca-pill-trigger {
	font-family: var(--wp--preset--font-family--sans, inherit) !important;
	gap: 3px;
	padding: 9px 18px;
	border-radius: 14px;
	transition: background 180ms ease-out;
}
.machuca-pill-trigger:hover,
.machuca-pill.is-open .machuca-pill-trigger {
	background: var(--wp--preset--color--primary-faint, #e9efe9) !important;
}
.machuca-pill-label {
	font-family: var(--wp--preset--font-family--sans, inherit);
	font-size: var(--wp--preset--font-size--xs, 12px);
	font-weight: 600;
	letter-spacing: 0.02em;
	color: var(--wp--preset--color--text, #1f1f1f);
}
.machuca-pill-summary {
	font-family: var(--wp--preset--font-family--sans, inherit);
	font-size: 13px;
	font-weight: 500;
	color: var(--wp--preset--color--text-subtle, #9a9a9a);
}
.machuca-pill.has-value .machuca-pill-summary {
	color: var(--wp--preset--color--text, #1f1f1f);
	font-weight: 600;
}

/* Dropdown panel: surface card, calm shadow, generous padding */
.machuca-pill .machuca-pill-panel {
	font-family: var(--wp--preset--font-family--sans, inherit);
	background: var(--wp--preset--color--surface, #fff);
	border: 1px solid var(--wp--preset--color--border, #e7e2d8);
	border-radius: 16px;
	box-shadow: 0 8px 32px rgba(31, 31, 31, 0.12);
	padding: 20px;
	min-width: 320px;
}

/* Date inputs in panel: real form inputs (8px radius, accent focus) */
.machuca-pill--dates .machuca-pill-panel input[type="text"] {
	font-family: var(--wp--preset--font-family--sans, inherit) !important;
	border: 1px solid var(--wp--preset--color--border, #e7e2d8) !important;
	border-radius: 8px !important;
	padding: 10px 14px !important;
	font-size: var(--wp--preset--font-size--sm, 14px) !important;
	color: var(--wp--preset--color--text, #1f1f1f) !important;
	background: var(--wp--preset--color--surface, #fff) !important;
	text-align: left !important;
	min-width: 0 !important;
}
.machuca-pill--dates .machuca-pill-panel input[type="text"]:focus {
	border-color: var(--wp--preset--color--accent, #b9663d) !important;
	border-width: 2px !important;
	outline: none !important;
}

/* Unified circular controls: guest steppers + months +/- */
.machuca-guest-step,
.machuca-pill-panel .gfield.months-buttons .wp-block-button__link {
	width: 30px !important;
	height: 30px !important;
	border-radius: 999px !important;
	border: 1px solid var(--wp--preset--color--border-strong, #c8d4cf) !important;
	background: var(--wp--preset--color--surface, #fff) !important;
	color: var(--wp--preset--color--text, #1f1f1f) !important;
	font-size: 1.1rem !important;
	line-height: 1 !important;
	transition: border-color 180ms ease-out, color 180ms ease-out;
}
.machuca-guest-step:hover,
.machuca-pill-panel .gfield.months-buttons .wp-block-button__link:hover {
	border-color: var(--wp--preset--color--primary, #013b28) !important;
	color: var(--wp--preset--color--primary, #013b28) !important;
}

/* Guests rows: sans labels, comfortable rhythm */
.machuca-pill--guests .machuca-pill-panel .gfield {
	margin: 0 0 18px !important;
}
.machuca-pill--guests .machuca-pill-panel .gfield:last-child {
	margin-bottom: 0 !important;
}
.machuca-pill--guests .machuca-pill-panel .gfield_label,
.machuca-pill--guests .machuca-pill-panel .gfield.lt-pet .gchoice label {
	font-family: var(--wp--preset--font-family--sans, inherit) !important;
	font-size: var(--wp--preset--font-size--sm, 14px) !important;
	font-weight: 600 !important;
	color: var(--wp--preset--color--text, #1f1f1f) !important;
}

/* Pet toggle: forest green when on */
.machuca-pill--guests .machuca-pill-panel .gfield.lt-pet input[type="checkbox"]:checked {
	background: var(--wp--preset--color--primary, #013b28) !important;
}

/* Suburb select: elegant, sans, muted placeholder → solid when chosen */
.machuca-search-lt .gfield.lt-location select,
.lt-search-form .gfield.lt-location select {
	font-family: var(--wp--preset--font-family--sans, inherit) !important;
	font-size: var(--wp--preset--font-size--sm, 14px) !important;
	color: var(--wp--preset--color--text-subtle, #9a9a9a) !important;
}
.machuca-search-lt .gfield.lt-location.has-value select,
.lt-search-form .gfield.lt-location.has-value select {
	color: var(--wp--preset--color--text, #1f1f1f) !important;
	font-weight: 600 !important;
}

/* Inputs: transparent, no border, fill the cell */
.machuca-search-lt input[type="text"],
.machuca-search-lt input[type="date"] {
	border: none !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	width: 100% !important;
	height: 100% !important;
	padding: 0 16px !important;
	font-size: 0.92rem;
	color: #1a2820 !important;
	letter-spacing: normal !important;
	font-family: inherit !important;
	text-align: center !important;
}
/* Selects: don't use height:100% — browsers top-align text when height > natural line-height.
   Let ginput_container's align-items:center do the vertical centering instead. */
.machuca-search-lt select {
	border: none !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	width: 100% !important;
	height: auto !important;
	padding: 0 30px 0 16px !important;
	font-size: 0.92rem;
	color: #1a2820 !important;
	letter-spacing: normal !important;
	font-family: inherit !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23013b28' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right 12px center !important;
}

/* Months display: centered, no individual border */
.machuca-search-lt .gfield.lt-months input {
	text-align: center !important;
	font-size: 0.7rem !important;
	font-weight: 600;
	color: #013b28 !important;
	cursor: default;
}

/* Months ± buttons: extend 1.5px past the form's content area top and bottom.
   overflow:hidden on the form clips the button border at that edge; the form's own
   border renders there instead — same colour, single seamless line. The D-arc is
   complete because border-width stays 1.5px on all sides. */
.machuca-search-lt .gfield.months-buttons .gfield_label { display: none !important; }
.machuca-search-lt .gfield.months-buttons a {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 100% !important;
	height: calc(100% + 3px) !important;
	margin-top: -1.5px;
	margin-bottom: -1.5px;
	border: 1.5px solid #c8d4cf !important;
	background: #fff !important;
	color: #013b28 !important;
	font-size: 1.1rem;
	line-height: 1;
	padding: 0 !important;
	text-decoration: none !important;
	box-sizing: border-box;
	transition: background 0.15s, color 0.15s;
}
.machuca-search-lt .gfield.months-buttons.minus a { border-radius: 100px 0 0 100px !important; }
.machuca-search-lt .gfield.months-buttons.plus a  { border-radius: 0 100px 100px 0 !important; }
.machuca-search-lt .gfield.months-buttons a:hover {
	background: #c7d4ce !important;
	color: #013b28 !important;
	border-color: #c7d4ce !important;
	filter: none;
}

/* Submit: right green cap with magnifying glass icon */
.machuca-search-lt .gform_footer,
.machuca-search-lt .gform_page_footer {
	flex: 0 0 auto !important;
	padding: 0 !important;
	margin: 0 !important;
	display: flex !important;
	align-items: stretch !important;
}
.machuca-search-lt input[type="submit"],
.machuca-search-lt button[type="submit"],
.machuca-search-st .search_row.search_button input[type="submit"] {
	background-color: #013b28 !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: center !important;
	background-size: 20px 20px !important;
	color: transparent !important;
	font-size: 0 !important;
	border: none !important;
	/* True circle (40×40), vertically centered — identical on both forms. */
	border-radius: 999px !important;
	width: 40px !important;
	height: 40px !important;
	max-height: 40px !important;
	align-self: center !important;
	margin: 4px 6px !important;
	padding: 0 !important;
	cursor: pointer !important;
	transition: background-color 0.15s !important;
}
.machuca-search-lt input[type="submit"]:hover {
	background-color: #1d5a44 !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: center !important;
	background-size: 24px 24px !important;
}

/* ── Tablet + mobile: pill moves below the header row ───────────────── */
@media (max-width: 959px) {
	/* Let the header flex row wrap so main-nav can drop to a second line.

	   Wrapping also turns the block-gap (16px, theme.json blockGap) into a
	   ROW gap, which only exists once there are two rows — so the top row ended
	   up with 16px beneath it and whatever the header group's own padding is
	   above it, and read as sitting low in its band. Both are set here, to the
	   same value, so the logo and the three controls are centred between the
	   header's top edge and the divider by construction rather than by the two
	   numbers happening to agree. 10px matches .main-nav's own padding below the
	   divider, so the rhythm above and below the line is the same.

	   !important on the padding because the group's padding is authored in the
	   editor and arrives as an inline style, which a stylesheet cannot outrank
	   otherwise. Scoped to this query: desktop keeps its single row untouched. */
	.site-header .is-layout-flex:has(.main-nav) {
		flex-wrap: wrap !important;
		row-gap: 10px !important;
		padding-top: 10px !important;
	}

	/* Pull pill out of absolute centering and into the flow as a second row */
	.main-nav {
		position: relative;
		transform: none;
		left: auto;
		top: auto;
		width: 100%;
		max-width: none;
		order: 10;
		padding: 10px 20px;
		background: #fff;
	}

	/* Full-viewport divider line — breaks out of the constrained wrapper's padding */
	.main-nav::before {
		content: '';
		position: absolute;
		top: 0;
		left: 50%;
		transform: translateX(-50%);
		width: 100vw;
		height: 1px;
		background: #eaeaea;
	}

	/* Pill can expand a bit wider on tablet */
	.main-nav .wp-block-navigation__container {
		max-width: 480px;
	}

	/* Overlay starts below header row + pill bar (~61px + ~52px) */
	#machuca-header-search { top: 125px; }
	#machuca-header-search-panel { padding: 16px 16px 20px; }
}

/* Narrow phones: pill fills edge-to-edge */
@media (max-width: 479px) {
	.main-nav {
		padding: 8px 8px;
	}
	.main-nav .wp-block-navigation__container {
		max-width: none;
		width: 100%;
	}
}

@media (max-width: 500px) {
	.site-header .wp-block-site-title {
		font-size: 18px !important;
		line-height: 1;
	}
}

/* Phones: three header controls instead of one. The row now carries bell,
   messages and avatar, so the tightening that used to start at 400px starts
   here — before the title has to wrap — and the 400px block below tightens it
   further from there. */
@media (max-width: 480px) {
	/* Two rows, deterministically. `max-width: min-content` sizes the box to the
	   title's longest word, so "Machuca Homes" has nowhere to put "Homes" but a
	   second line — and since an element's intrinsic contribution is clamped by
	   its own max-width, the left cluster stops demanding one-line width from the
	   header row at all. That demand is what pushed the three controls onto the
	   line below, and it is why `min-width: 0` alone did not fix it: a wrapping
	   flex container breaks its lines on items' base sizes, before any shrinking
	   is on the table. No magic number, and it follows the title if it changes.

	   The size stays where the 500px rule left it rather than shrinking further:
	   once the title is on two lines it is no longer competing for the row's
	   width, so making it smaller buys nothing and only costs legibility. */
	.site-header .wp-block-site-title {
		max-width: min-content;
		font-size: 18px !important;
		line-height: 1.15;
	}

	.machuca-avatar-menu {
		gap: 6px;
	}

	.bns-bell-trigger,
	.machuca-messages-trigger {
		width: 36px;
		height: 36px;
	}
}

/* Very narrow phones: reduce site-header side padding */
@media (max-width: 400px) {
	.site-header > .is-layout-constrained {
		padding-left: 12px !important;
		padding-right: 12px !important;
	}

	.site-header .wp-block-site-logo img {
		width: 38px;
		height: auto;
	}

	/* The avatar pill keeps real padding here. Squeezing it to 4px/6px saved
	   about ten pixels and cost the control its shape — it stopped reading as a
	   pill next to two round buttons and started reading as crowding. */
	.machuca-avatar-menu {
		gap: 6px;
	}

	.machuca-avatar-trigger {
		gap: 6px;
		padding: 5px 8px;
	}

	.machuca-avatar-img {
		width: 28px;
		height: 28px;
	}

	.bns-bell-trigger,
	.machuca-messages-trigger {
		width: 36px;
		height: 36px;
	}

	.auth-nav .wp-block-navigation__container {
		width: 148px;
	}

	.auth-nav li a {
		font-size: 0.8rem;
	}
}

@media (max-width: 340px) {
	.site-header > .is-layout-constrained {
		padding-left: 8px !important;
		padding-right: 8px !important;
	}

	.site-header .wp-block-site-logo img {
		width: 34px;
		min-width: 34px;
	}

	.auth-nav .wp-block-navigation__container {
		width: 136px;
	}
}

/* ── Tablet + mobile: card-style stacked layout (no labels, placeholders only)
   Shared by the header overlay AND the community module (both carry the
   .machuca-search-lt / .machuca-search-st classes). Stacks below 960px so the
   horizontal pills never get squished on tablet. ─────────────────────────── */
@media (max-width: 767px) {

	/* Center and cap the LT panel width */
	.machuca-search-lt {
		max-width: 480px !important;
		margin: 0 auto !important;
	}

	/* Dissolve the horizontal pill form */
	.machuca-search-lt form {
		display: block !important;
		border: none !important;
		border-radius: 0 !important;
		overflow: visible !important;
		background: transparent !important;
		min-height: 0 !important;
	}
	.machuca-search-lt .gform-body { display: block !important; flex: none !important; }

	/* Field list: vertical stack, no gap (handled per-field via margin-bottom).
	   GF renders the field list with id="gform_fields_{id}" but NOT class="gform-fields"
	   (it uses gform_fields underscore). Target by ID so the mobile flex-wrap override
	   actually matches and fields stack instead of staying in a single nowrap row. */
	/* Must out-specify the desktop base rule `form .gform-body #gform_fields_2`
	   (specificity 1,1,2). `.machuca-search-lt .gform-body #gform_fields_2` is
	   1,2,0, which wins, so the field list actually wraps into a stack. Without the
	   extra .gform-body class the desktop nowrap rule keeps the fields in one row. */
	.machuca-search-lt .gform-body #gform_fields_2,
	.machuca-search-lt .gform-fields {
		display: flex !important;
		flex-wrap: wrap !important;
		gap: 12px !important;   /* stack the pill cards with the same 12px as ST */
		align-items: stretch !important;
		padding: 0 !important;
		margin: 0 !important;
	}

	/* Base field: full-width card with border and rounded corners */
	.machuca-search-lt .gfield {
		flex: 0 0 100% !important;
		border: 1.5px solid #c8d4cf !important;
		border-radius: 10px !important;
		background: #fff !important;
		padding: 10px 14px !important;
		min-height: 0 !important;
		display: flex !important;
		flex-direction: column !important;
		justify-content: center !important;
		box-sizing: border-box !important;
		margin-bottom: 10px !important;
	}
	/* Desktop per-field flex ratios (.lt-location: 1.5, .start-date/.end-date: 1) have higher
	   specificity (2 classes) than the base rule above (1 class) — re-override them here. */
	.machuca-search-lt .gfield.lt-location,
	.machuca-search-lt .gfield.start-date,
	.machuca-search-lt .gfield.end-date { flex: 0 0 100% !important; }
	/* Restore start-date right border (desktop sets border-right:none for the pill) */
	.machuca-search-lt .gfield.start-date { border-right: 1.5px solid #c8d4cf !important; }
	.machuca-search-lt .gfield .ginput_container { flex: 1 !important; }
	.machuca-search-lt input[type="text"],
	.machuca-search-lt input[type="date"] {
		height: 36px !important;
		padding: 0 !important;
		width: 100% !important;
		background: transparent !important;
		border: none !important;
		border-radius: 0 !important;
		box-shadow: none !important;
		text-align: left !important;   /* override desktop center-alignment */
	}
	/* background-color only (not shorthand) so background-image chevron is preserved */
	.machuca-search-lt select {
		height: 36px !important;
		padding: 0 34px 0 0 !important;
		width: 100% !important;
		background-color: transparent !important;
		border: none !important;
		border-radius: 0 !important;
		box-shadow: none !important;
	}

	/* Months stepper: connected three-element bar.
	   Minus and plus keep a 1px inner border to visually separate the three cells. */
	.machuca-search-lt .gfield.months-buttons.minus {
		flex: 0 0 56px !important;
		padding: 0 !important;
		border-right: 1px solid #c8d4cf !important;
		border-radius: 100px 0 0 100px !important;
		margin-bottom: 10px !important;
		min-height: 53px !important;
		align-items: center !important;
	}
	.machuca-search-lt .gfield.lt-months {
		flex: 1 1 auto !important;
		padding: 0 !important;
		border-left: none !important;
		border-right: none !important;
		border-radius: 0 !important;
		margin-bottom: 10px !important;
		min-height: 53px !important;
		align-items: center !important;
	}
	.machuca-search-lt .gfield.lt-months input[type="text"] {
		text-align: center !important;
		font-size: 0.9rem !important;
		height: 53px !important;
	}
	.machuca-search-lt .gfield.months-buttons.plus {
		flex: 0 0 56px !important;
		padding: 0 !important;
		border-left: 1px solid #c8d4cf !important;
		border-right: 1.5px solid #c8d4cf !important;
		border-radius: 0 100px 100px 0 !important;
		margin-bottom: 10px !important;
		min-height: 53px !important;
		align-items: center !important;
	}
	.machuca-search-lt .gfield.months-buttons a {
		border: none !important;
		width: 56px !important;
		height: 56px !important;
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
		border-radius: 0 !important;
		background: transparent !important;
		padding: 0 !important;
	}
	.machuca-search-lt .gfield.months-buttons .gfield_label { display: none !important; }
	.machuca-search-lt .gfield.lt-months .gfield_label    { display: none !important; }

	/* Submit: full-width rounded rect with magnifying glass icon */
	.machuca-search-lt .gform_footer {
		display: block !important;
		padding: 0 !important;
		margin: 0 !important;
	}
	.machuca-search-lt input[type="submit"] {
		width: 100% !important;
		border-radius: 10px !important;
		height: 52px !important;
		background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3C/svg%3E") !important;
		background-repeat: no-repeat !important;
		background-position: center !important;
		background-size: 24px 24px !important;
		color: transparent !important;
		font-size: 0 !important;
		padding: 0 !important;
	}

	/* ST panel: dissolve pill, stack to cards */
	.machuca-search-st .search_container {
		display: flex !important;
		flex-wrap: wrap !important;
		border: none !important;
		border-radius: 0 !important;
		overflow: visible !important;
		background: transparent !important;
		min-height: 0 !important;
		max-width: 480px !important;
		margin: 0 auto !important;
		column-gap: 10px !important;
	}
	.machuca-search-st .search_row {
		flex: 0 0 100% !important;
		border: 1.5px solid #c8d4cf !important;
		border-right: 1.5px solid #c8d4cf !important;
		border-radius: 10px !important;
		background: #fff !important;
		padding: 10px 14px !important;
		margin-bottom: 10px !important;
		min-height: 52px !important;
	}
	.machuca-search-st .search_container input[type="text"],
	.machuca-search-st .search_container select {
		height: 36px !important;
		padding: 0 !important;
		text-align: left !important;
		padding-right: 32px !important;
	}
	.machuca-search-st .search_container select {
		background-position: right 0 center !important;
	}
	/* Community: always full width */
	.machuca-search-st .search_row:has([name="neighborhood"]) { flex: 0 0 100% !important; }
	/* Check-in + Check-out and Bedrooms + Price side by side on wider phones */
	@media (min-width: 481px) {
		.machuca-search-st .search_row:has([name="search_field__display_check_in"]),
		.machuca-search-st .search_row:has([name="search_field__display_check_out"]) {
			flex: 0 0 calc(50% - 5px) !important;
		}
		.machuca-search-st .search_row:has([name="bedrooms"]),
		.machuca-search-st .search_row:has([name="price_range"]) {
			flex: 0 0 calc(50% - 5px) !important;
		}
	}
	.machuca-search-st .search_row.search_button {
		flex: 0 0 100% !important;
		border: none !important;
		padding: 0 !important;
		min-height: 0 !important;
		margin-bottom: 0 !important;
	}
	.machuca-search-st .search_row.search_button input[type="submit"] {
		width: 100% !important;
		height: 52px !important;
		border-radius: 10px !important;
		background-size: 24px 24px !important;
	}
}

/* ── Homepage search forms ───────────────────────────────────────────────────
   ST: .short-term-form  →  WPBC [bookingsearch] pill
   LT: .lt-search-form   →  GF form 2 pill
   ────────────────────────────────────────────────────────────────────────── */

.home .wp-block-cover.homecover .short-term-btn a,
.home .homecover .wp-block-button.long-term-btn a { border: none; }

.home-cover-titles { max-width: 828px; }
/* Keep the cover at full width down to the LT stacking breakpoint, so the
   horizontal bar isn't squeezed at 768–959 (the old 480px cap kicked in at 959
   and clipped the search button). Below 768 the form stacks and 480 applies. */
@media (min-width: 768px) {
	.home-cover-titles { max-width: 828px; }
}

/* [MACHUCA] Old homepage ST bar CSS removed — it out-specified the new .machuca-st-bar pill CSS and made the homepage ST form fight the pills. Superseded by the pill CSS; restore from git 1ca33ede if needed. */

/* ── Homepage LT pill ────────────────────────────────────────────────────── */

/* Visual pill on the form wrapper */
.lt-search-form {
	border-radius: 100px;
	background-color: #fff;
	padding: 17px 30px;
	margin-block-start: 0;
}

/* Hide labels — placeholders used instead */
.lt-search-form .gfield_label { display: none !important; }

/* ginput_container fills its flex cell */
.lt-search-form .ginput_container {
	width: 100%;
	height: 100%;
	display: flex !important;
	align-items: center;
}

/* <form> is the outer pill */
.lt-search-form form {
	display: flex !important;
	align-items: stretch !important;
	border: 1.5px solid #c8d4cf;
	border-radius: 50px;
	overflow: hidden;
	background: #fff;
	min-height: 48px;
	width: 100%;
	max-width: 768px;
	margin: 0 auto;
	box-sizing: border-box;
}

.lt-search-form .gform-body {
	flex: 1 1 0 !important;
	min-width: 0;
	display: flex !important;
}

/* Fields list: horizontal, no wrap, no gap */
.lt-search-form .gform-fields,
.lt-search-form #gform_fields_2 {
	display: flex !important;
	flex-wrap: nowrap !important;
	align-items: stretch !important;
	gap: 0 !important;
	list-style: none !important;
	padding: 0 !important;
	margin: 0 !important;
	flex: 1;
	min-width: 0;
}

/* Each field: flex cell with right divider */
.lt-search-form .gfield {
	display: flex !important;
	align-items: center !important;
	flex: 1 1 0 !important;
	min-width: 0;
	border-right: 1px solid #dde4df !important;
	padding: 0 !important;
}

/* Field proportions */
.lt-search-form .gfield.lt-location                        { flex: 1.5 1 0 !important; }
.lt-search-form .gfield.start-date,
.lt-search-form .gfield.end-date                           { flex: 1 1 0 !important; }
.lt-search-form .gfield.lt-months                          { flex: 0 0 80px !important; }
.lt-search-form .gfield.months-buttons.minus,
.lt-search-form .gfield.months-buttons.plus                { flex: 0 0 52px !important; justify-content: center; }

/* No right-border where buttons provide visual separation */
.lt-search-form .gfield.start-date,
.lt-search-form .gfield.lt-months,
.lt-search-form .gfield.months-buttons.minus,
.lt-search-form .gfield.months-buttons.plus                { border-right: none !important; }

/* Months button wrapper fills height and width */
.lt-search-form .gfield .months-buttons { height: 100%; }
.months-buttons { width: 100%; }

/* Inputs: transparent, borderless, fill cell */
.lt-search-form input[type="text"],
.lt-search-form input[type="date"] {
	border: none !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	width: 100% !important;
	height: 100% !important;
	padding: 0 16px !important;
	font-size: 0.92rem;
	color: #1a2820 !important;
	letter-spacing: normal !important;
	font-family: inherit !important;
	text-align: center !important;
}

/* Selects: height:auto — let ginput_container centre vertically */
.lt-search-form select {
	border: none !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	width: 100% !important;
	height: auto !important;
	padding: 0 30px 0 16px !important;
	font-size: 0.92rem;
	color: #1a2820 !important;
	letter-spacing: normal !important;
	font-family: inherit !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23013b28' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right 12px center !important;
}

/* Months display: centred, small bold */
.lt-search-form .gfield.lt-months input {
	text-align: center !important;
	font-size: 0.7rem !important;
	font-weight: 600;
	color: #013b28 !important;
	cursor: default;
}

/* Months ± buttons: D-shaped, bleed past pill edges */
.lt-search-form .gfield.months-buttons .gfield_label { display: none !important; }
.lt-search-form .gfield.months-buttons a {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 100% !important;
	height: calc(100% + 3px) !important;
	margin-top: -1.5px;
	margin-bottom: -1.5px;
	border: 1.5px solid #c8d4cf !important;
	background: #fff !important;
	color: #013b28 !important;
	font-size: 1.1rem;
	line-height: 1;
	padding: 0 !important;
	text-decoration: none !important;
	box-sizing: border-box;
	transition: background 0.15s, color 0.15s;
}
.lt-search-form .gfield.months-buttons.minus a { border-radius: 100px 0 0 100px !important; }
.lt-search-form .gfield.months-buttons.plus a  { border-radius: 0 100px 100px 0 !important; }
.lt-search-form .gfield.months-buttons a:hover {
	background: #c7d4ce !important;
	color: #013b28 !important;
	border-color: #c7d4ce !important;
}

/* Submit: green right cap with magnifying glass */
.lt-search-form .gform_footer,
.lt-search-form .gform_page_footer {
	flex: 0 0 auto !important;
	padding: 0 !important;
	margin: 0 !important;
	display: flex !important;
	align-items: stretch !important;
}
.lt-search-form input[type="submit"],
.lt-search-form button[type="submit"] {
	background-color: #013b28 !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: center !important;
	background-size: 20px 20px !important;
	color: transparent !important;
	font-size: 0 !important;
	border: none !important;
	/* True circle (40×40), vertically centered — identical on both forms. */
	border-radius: 999px !important;
	width: 40px !important;
	height: 40px !important;
	max-height: 40px !important;
	align-self: center !important;
	margin: 4px 6px !important;
	padding: 0 !important;
	cursor: pointer !important;
	transition: background-color 0.15s !important;
}
.lt-search-form input[type="submit"]:hover {
	background-color: #1d5a44 !important;
	background-size: 24px 24px !important;
}

/* ── Homepage search forms — mobile (≤767px) ─────────────────────────────────
   Breakpoint is 767, NOT 959: the desktop horizontal bar now extends down to 768px
   (the mobile modal / LT dissolve only take over below it). At ≤959 this used to cap
   the cover to 480px and dissolve the bar, squeezing it in the 768–959 range. */
@media (max-width: 767px) {

	.home-cover-titles { max-width: 480px; }

	/* [MACHUCA] Old ST mobile dissolve removed — the new .machuca-st-bar stacking handles it; this forced padding-right:32px on inputs (hid the guest number) and card-ified the hidden rows. Restore from git 1ca33ede if needed. */

	/* LT: dissolve pill, stack to cards. */
	.lt-search-form {
		border-radius: 0 0 10px 10px !important;
		background-color: #fff !important;
		padding: 24px !important;   /* was 30px — match the ST form's tighter inset */
	}
	.lt-search-form form {
		display: block !important;
		border: none !important;
		border-radius: 0 !important;
		overflow: visible !important;
		background: transparent !important;
		min-height: 0 !important;
	}
	/* margin-bottom separates the stacked pills from the submit button (which sits in
	   the GF footer below), mirroring the 12px gap ST gets from its flex container. */
	.lt-search-form .gform-body { display: block !important; flex: none !important; margin-bottom: 12px !important; }
	/* (Deleted a duplicate #gform_fields_2 container rule here — the identical
	   `.machuca-search-lt .gform-body #gform_fields_2` block already stacks the fields;
	   this copy only re-asserted the gap:0 that fought the modal's gap.) */
	.lt-search-form .gfield {
		flex: 0 0 100% !important;
		border: 1.5px solid #c8d4cf !important;
		border-radius: 10px !important;
		background: #fff !important;
		padding: 10px 14px !important;
		min-height: 0 !important;
		display: flex !important;
		flex-direction: column !important;
		justify-content: center !important;
		box-sizing: border-box !important;
		margin-bottom: 10px !important;
	}
	.lt-search-form .gfield.lt-location,
	.lt-search-form .gfield.start-date,
	.lt-search-form .gfield.end-date { flex: 0 0 100% !important; }
	.lt-search-form .gfield.start-date { border-right: 1.5px solid #c8d4cf !important; }
	.lt-search-form .gfield .ginput_container { flex: 1 !important; }
	.lt-search-form input[type="text"],
	.lt-search-form input[type="date"] {
		height: 36px !important;
		padding: 0 !important;
		text-align: left !important;
	}
	.lt-search-form select {
		height: 36px !important;
		padding: 0 34px 0 0 !important;
	}

	/* Months stepper: connected pill bar */
	.lt-search-form .gfield.months-buttons.minus {
		flex: 0 0 56px !important;
		padding: 0 !important;
		border-right: 1px solid #c8d4cf !important;
		border-radius: 100px 0 0 100px !important;
		margin-bottom: 10px !important;
		min-height: 53px !important;
		align-items: center !important;
	}
	.lt-search-form .gfield.lt-months {
		flex: 1 1 auto !important;
		padding: 0 !important;
		border-left: none !important;
		border-right: none !important;
		border-radius: 0 !important;
		margin-bottom: 10px !important;
		min-height: 53px !important;
		align-items: center !important;
	}
	.lt-search-form .gfield.lt-months input[type="text"] {
		text-align: center !important;
		font-size: 0.9rem !important;
		height: 53px !important;
	}
	.lt-search-form .gfield.months-buttons.plus {
		flex: 0 0 56px !important;
		padding: 0 !important;
		border-left: 1px solid #c8d4cf !important;
		border-right: 1.5px solid #c8d4cf !important;
		border-radius: 0 100px 100px 0 !important;
		margin-bottom: 10px !important;
		min-height: 53px !important;
		align-items: center !important;
	}
	.lt-search-form .gfield.months-buttons a {
		border: none !important;
		width: 56px !important;
		height: 56px !important;
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
		border-radius: 0 !important;
		background: transparent !important;
		padding: 0 !important;
	}
	.lt-search-form .gfield.months-buttons .gfield_label,
	.lt-search-form .gfield.lt-months .gfield_label { display: none !important; }

	/* Submit: full-width card */
	.lt-search-form .gform_footer { display: block !important; padding: 0 !important; margin: 0 !important; }
	.lt-search-form input[type="submit"] {
		width: 100% !important;
		border-radius: 10px !important;
		height: 52px !important;
		background-size: 24px 24px !important;
	}

	/* Community stacked forms: capped width + side padding so they don't run
	   edge-to-edge on narrow phones (below the 480px cap the padding is what
	   keeps them off the screen edges). */
	.machuca-community-search {
		padding-left: 16px !important;
		padding-right: 16px !important;
	}
}

/* ════════════════════════════════════════════════════════════════════════
   Search pills — refinement round. Bar contexts: .machuca-search-lt (header
   overlay + community) and .lt-search-form (homepage). Pill internals unscoped.
   ════════════════════════════════════════════════════════════════════════ */

/* Whole pill cell is clickable: trigger fills width AND height */
.machuca-search-lt .machuca-pill,
.lt-search-form .machuca-pill {
	align-items: stretch !important;
}
.machuca-pill-trigger {
	height: 100% !important;
	justify-content: center;
}

/* Kill native number-input spinner arrows on the guest steppers */
.machuca-guest-input {
	-moz-appearance: textfield !important;
	appearance: textfield !important;
}
.machuca-guest-input::-webkit-outer-spin-button,
.machuca-guest-input::-webkit-inner-spin-button {
	-webkit-appearance: none !important;
	margin: 0 !important;
}

/* Guests panel: label + description left, stepper right, divider between rows */
.machuca-pill--guests .machuca-pill-panel .gfield {
	display: grid !important;
	grid-template-columns: 1fr auto;
	align-items: center;
	column-gap: 24px;
	row-gap: 0;
	padding: 14px 0 !important;
	margin: 0 !important;
	border-bottom: 1px solid var(--wp--preset--color--border, #e7e2d8);
}
.machuca-pill--guests .machuca-pill-panel .gfield:last-child {
	border-bottom: none;
}
.machuca-pill--guests .machuca-pill-panel .gfield_label {
	grid-column: 1;
	grid-row: 1;
	margin: 0 !important;
	font-size: var(--wp--preset--font-size--base, 16px) !important;
	font-weight: 600 !important;
	color: var(--wp--preset--color--text, #1f1f1f) !important;
}
.machuca-pill--guests .machuca-pill-panel .gfield_description,
.machuca-pill--guests .machuca-pill-panel .gform-field-description {
	grid-column: 1;
	grid-row: 2;
	margin: 2px 0 0 !important;
	padding: 0 !important;
	font-size: var(--wp--preset--font-size--xs, 12px) !important;
	color: var(--wp--preset--color--text-muted, #6b6b6b) !important;
	font-weight: 400 !important;
}
.machuca-pill--guests .machuca-pill-panel .ginput_container {
	grid-column: 2;
	grid-row: 1 / 3;
	width: auto !important;
	justify-self: end;
}

/* Pet row: same grid; toggle on the right; clean track both states */
.machuca-pill--guests .machuca-pill-panel .gfield.lt-pet {
	display: grid !important;
	grid-template-columns: 1fr auto;
	align-items: center;
}
.machuca-pill--guests .machuca-pill-panel .gfield.lt-pet > legend.gfield_label {
	display: block !important;
	grid-column: 1;
	grid-row: 1;
	float: none !important;
	width: auto !important;
	padding: 0 !important;
	margin: 0 !important;
	font-size: var(--wp--preset--font-size--base, 16px) !important;
	font-weight: 600 !important;
	color: var(--wp--preset--color--text, #1f1f1f) !important;
}
.machuca-pill--guests .machuca-pill-panel .gfield.lt-pet .ginput_container_checkbox {
	grid-column: 2;
	grid-row: 1;
	justify-self: end;
}
.machuca-pill--guests .machuca-pill-panel .gfield.lt-pet .gchoice {
	display: block !important;
	margin: 0 !important;
}
.machuca-pill--guests .machuca-pill-panel .gfield.lt-pet .gchoice label {
	display: none !important;
}
.machuca-pill--guests .machuca-pill-panel .gfield.lt-pet input[type="checkbox"] {
	background: var(--wp--preset--color--border-strong, #c8d4cf) !important;
}
.machuca-pill--guests .machuca-pill-panel .gfield.lt-pet input[type="checkbox"]:checked {
	background: var(--wp--preset--color--primary, #013b28) !important;
}

/* Suburb panel: our own list — green hover, roomy, larger text */
.machuca-suburb-list {
	display: flex;
	flex-direction: column;
}
/* Con la descripción debajo del nombre, 300px aprieta: la línea se corta a la mitad
   y deja de servir. Se ensancha sólo este panel, no todos. */
.machuca-pill--suburb .machuca-pill-panel {
	min-width: 420px;
	max-width: min(520px, calc(100vw - 24px));
}
.machuca-suburb-thumb {
	flex: 0 0 auto;
	width: 80px;
	height: 72px;
	border-radius: 10px;
	object-fit: cover;
}
.machuca-suburb-thumb--empty {
	background: var(--wp--preset--color--background, #f1ede4);
}
.machuca-suburb-text {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}
.machuca-suburb-name {
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
/* La línea de la comunidad. Hasta dos renglones: una sola es lo esperado, pero un
   nombre largo en pantalla angosta no debe cortar la frase a la mitad. */
.machuca-suburb-tagline {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	font-size: 0.8125rem;
	font-weight: 400;
	line-height: 1.35;
	color: var(--wp--preset--color--text-muted, #6b6b6b);
}
.machuca-suburb-option:hover .machuca-suburb-tagline,
.machuca-suburb-option:focus-visible .machuca-suburb-tagline {
	color: inherit;
}
.machuca-suburb-option {
	display: flex;
	align-items: center;
	gap: 18px;
	width: 100%;
	text-align: left;
	background: transparent !important;
	border: none !important;
	box-shadow: none !important;
	border-radius: 10px !important;
	padding: 8px 16px !important;
	font-family: var(--wp--preset--font-family--sans, inherit) !important;
	font-size: 1rem !important;
	font-weight: 500;
	color: var(--wp--preset--color--text, #1f1f1f) !important;
	cursor: pointer;
	transition: background 180ms ease-out, color 180ms ease-out;
	-webkit-appearance: none !important;
	appearance: none !important;
}
.machuca-suburb-option:hover,
.machuca-suburb-option:focus-visible {
	background: var(--wp--preset--color--primary-faint, #e9efe9) !important;
	color: var(--wp--preset--color--primary, #013b28) !important;
	outline: none;
}
.machuca-suburb-option.is-selected {
	color: var(--wp--preset--color--primary, #013b28) !important;
	font-weight: 700;
}
/* First option sits flush under the panel's own top padding (no doubled gap). */
.machuca-suburb-option:first-child {
	padding-top: 0 !important;
}

/* Dates panel: full-width inputs, centered months stepper between them */
.machuca-pill--dates .machuca-pill-panel {
	text-align: center;
}
.machuca-pill--dates .machuca-pill-panel .gfield.start-date,
.machuca-pill--dates .machuca-pill-panel .gfield.end-date {
	display: block !important;
	width: 100%;
	margin: 0 0 12px !important;
}
.machuca-pill--dates .machuca-pill-panel .gfield.start-date .ginput_container,
.machuca-pill--dates .machuca-pill-panel .gfield.end-date .ginput_container {
	width: 100% !important;
}
.machuca-pill--dates .machuca-pill-panel input[type="text"] {
	width: 100% !important;
}
.machuca-pill--dates .machuca-pill-panel .gfield.months-buttons.minus,
.machuca-pill--dates .machuca-pill-panel .gfield.lt-months,
.machuca-pill--dates .machuca-pill-panel .gfield.months-buttons.plus {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: auto !important;
	margin: 0 !important;
	vertical-align: middle;
}
.machuca-pill--dates .machuca-pill-panel .gfield.lt-months {
	min-width: 84px;
}
.machuca-pill--dates .machuca-pill-panel .gfield.lt-months input {
	border: none !important;
	background: transparent !important;
	text-align: center !important;
	font-weight: 600;
	padding: 0 !important;
}

/* Belt-and-suspenders: hide any GF loading spinner/loader on the search forms */
.machuca-search-lt .gform_ajax_spinner,
.machuca-search-lt .gform-loader,
.lt-search-form .gform_ajax_spinner,
.lt-search-form .gform-loader {
	display: none !important;
}

/* The booking form keeps its spinner — a submit with no feedback is worse — but
   takes it OUT OF FLOW.
   
   gformInitializeSpinner() inserts the loader as a SIBLING of the button it was
   given (`$spinnerTarget.after(...)`), and the long-stay page footer is a flex
   column with a 20px gap. So every click added a flex item AND a gap, and
   everything below moved — including, on Back, the button the guest had just
   pressed, which slid out from under their finger. Absolute positioning keeps
   the spinner visible and stops it being laid out at all. Both footers: the
   multi-page one carries Back/Review, the plain one the final submit. */
.sar-booking-group .lt-booking-form .gform_page_footer,
.sar-booking-group .lt-booking-form .gform_footer,
.lt-booking-form .gform_page_footer,
.lt-booking-form .gform_footer {
	position: relative;
}

/* Hidden, not repositioned. Out of flow it stopped shoving the footer down —
   but at top:100% it also landed below the card, so the guest pressed the
   button and watched nothing happen for several seconds on a form that
   authorizes a card. The button says it itself now (markSubmitPending in
   showLT-rental.js), which cannot move the layout, cannot be missed, and cannot
   be pressed twice; the spinner would only be a second, worse copy of that. */
.lt-booking-form .gform_page_footer > .gform-loader,
.lt-booking-form .gform_footer > .gform-loader,
.lt-booking-form .gform_page_footer > [id^="gform_ajax_spinner"],
.lt-booking-form .gform_footer > [id^="gform_ajax_spinner"],
.lt-booking-form .gform_page_footer > .gform_ajax_spinner,
.lt-booking-form .gform_footer > .gform_ajax_spinner {
	display: none !important;
}

/* Gravity Forms' validation banner inside the booking card. Its own stylesheet
   gives the wrapper and the heading each their own padding, which read as a box
   drawn inside another box with the space below far larger than the space
   above. One box, even margins. */
.sar-booking-group .lt-booking-form .gform_validation_errors {
	margin: 0 !important;
	padding: 12px 14px !important;
	border-radius: 10px !important;
	box-shadow: none !important;
}

/* The heading carries its own background, border and shadow in Gravity Forms'
   stylesheet — that is the second box, drawn inside the wrapper's. Flattened,
   so there is one panel with one edge. */
.sar-booking-group .lt-booking-form .gform_validation_errors > .gform_submission_error {
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
	box-shadow: none !important;
	font-size: var(--wp--preset--font-size--xs) !important;
	font-weight: 600 !important;
	line-height: 1.45 !important;
}

.sar-booking-group .lt-booking-form .gform_validation_errors > .gform_submission_error::before {
	content: none !important;
}

/* Shown on the review step when the host's price moved while the guest was
   booking. It informs; it does not obstruct — Continue to payment stays live,
   and by the time this appears the figures below it have been refreshed to the
   current price.
   
   Same shape and type as the long-stay banner (see .gform_validation_errors in
   the long-stay block): the two forms should not describe the same event in two
   different visual languages. */
.machuca-st-price-changed {
	margin: var(--wp--preset--spacing--40) 0 var(--wp--preset--spacing--30);
	padding: 12px 14px;
	border: 1px solid var(--wp--preset--color--status-declined, #b54848);
	border-radius: 10px;
	background: #fdf0f0;
	color: var(--wp--preset--color--text);
}

.machuca-st-price-changed__lede {
	margin: 0;
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 600;
	line-height: 1.45;
}



.lt-booking-form .machuca-btn-pending {
	opacity: 0.7;
	cursor: progress !important;
}

/* Suburb panel: hide the real <select> field (kept only for submission); our
   custom list is the UI. !important to beat the .gfield flex rule. */
.machuca-pill--suburb .machuca-pill-panel .gfield.lt-location {
	display: none !important;
}

/* Pet row: legends don't grid reliably — lay out via the checkbox's own label
   (label left, toggle right), matching the other guest rows. */
.machuca-pill--guests .machuca-pill-panel .gfield.lt-pet {
	display: flex !important;
	align-items: center;
}
.machuca-pill--guests .machuca-pill-panel .gfield.lt-pet > legend.gfield_label {
	display: none !important;
}
.machuca-pill--guests .machuca-pill-panel .gfield.lt-pet .ginput_container_checkbox {
	flex: 1 1 auto;
	width: 100%;
}
.machuca-pill--guests .machuca-pill-panel .gfield.lt-pet .gchoice {
	display: flex !important;
	flex-direction: row-reverse;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	margin: 0 !important;
}
.machuca-pill--guests .machuca-pill-panel .gfield.lt-pet .gchoice label {
	display: inline-block !important;
	margin: 0 !important;
	font-size: var(--wp--preset--font-size--base, 16px) !important;
	font-weight: 600 !important;
	color: var(--wp--preset--color--text, #1f1f1f) !important;
}

/* ── Structural fixes (extra parents + !important to beat GF orbital) ─────── */

/* Trigger fills the whole pill cell (clickable), label left-aligned. GF imposes
   align-items:center; out-specify it with the bar parent + the pill. */
.machuca-search-lt .machuca-pill,
.lt-search-form .machuca-pill {
	display: flex !important;
	align-items: stretch !important;
}
.machuca-search-lt .machuca-pill > .machuca-pill-trigger,
.lt-search-form .machuca-pill > .machuca-pill-trigger {
	flex: 1 1 auto !important;
	width: 100% !important;
	height: auto !important;
	align-self: stretch !important;
	align-items: flex-start !important;
	justify-content: center !important;
}

/* Kill the native number-input spinner arrows (extra specificity) */
.machuca-search-lt input.machuca-guest-input,
.lt-search-form input.machuca-guest-input,
.machuca-pill--guests .machuca-pill-panel input.machuca-guest-input {
	-moz-appearance: textfield !important;
	appearance: textfield !important;
}
.machuca-pill--guests .machuca-pill-panel input.machuca-guest-input::-webkit-outer-spin-button,
.machuca-pill--guests .machuca-pill-panel input.machuca-guest-input::-webkit-inner-spin-button {
	-webkit-appearance: none !important;
	appearance: none !important;
	margin: 0 !important;
}

/* Pet checkbox container should span the row so the toggle sits at the far right */
.machuca-pill--guests .machuca-pill-panel .gfield.lt-pet .ginput_container_checkbox,
.machuca-pill--guests .machuca-pill-panel .gfield.lt-pet .gfield_checkbox,
.machuca-pill--guests .machuca-pill-panel .gfield.lt-pet .gchoice {
	width: 100% !important;
}

/* Guest stepper value: readonly Single Line Text input (no native spinners).
   The guest fields are now type=text, so they'd inherit the panel's DATE-input
   border/size — override that out (transparent, borderless, narrow, centered). */
.machuca-search-lt .machuca-pill-panel input.machuca-guest-input,
.lt-search-form .machuca-pill-panel input.machuca-guest-input,
input.machuca-guest-input {
	width: 2.2em !important;
	min-width: 0 !important;
	max-width: 2.2em !important;
	height: auto !important;
	padding: 0 !important;
	border: none !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	text-align: center !important;
	font-family: var(--wp--preset--font-family--sans, inherit) !important;
	font-size: var(--wp--preset--font-size--base, 16px) !important;
	font-weight: 600 !important;
	color: var(--wp--preset--color--text, #1f1f1f) !important;
}

/* GF leftover: search button gained a stray margin once the orbital override
   went away — neutralize the form footer/button spacing. */
.machuca-search-lt .gform_footer,
.machuca-search-lt .gform-footer,
.lt-search-form .gform_footer,
.lt-search-form .gform-footer {
	margin: 0 !important;
	padding: 0 !important;
}
.machuca-search-lt input[type="submit"],
.lt-search-form input[type="submit"] {
	margin: 6px !important;
}

/* Dates panel — Start | Months | End in one horizontal row. FLEX only when open
   so the base .machuca-pill-panel { display:none } keeps it hidden when closed. */
/* Dates dropdown panel — a normal floating panel that frames the inline
   two-month range calendar (replaces the old connected-pill bar look). */
.machuca-pill--dates.is-open .machuca-pill-panel {
	display: block !important;
}
.machuca-pill--dates .machuca-pill-panel {
	padding: 16px !important;
	min-width: 0;
	width: auto;
	border: 1px solid var(--wp--preset--color--border, #e7e2d8) !important;
	border-radius: 16px !important;
	overflow: visible !important;
	background: var(--wp--preset--color--surface, #fff) !important;
	box-shadow: 0 8px 32px rgba(31, 31, 31, 0.12) !important;
	text-align: left !important;
}
/* Start / End are hidden value carriers now — keep them out of the layout even
   against the older segment rules. */
.machuca-pill--dates .machuca-pill-panel .machuca-dates-hidden-field {
	display: none !important;
}
/* The Months stepper sits in the length row, not as connected segments. */
.machuca-pill--dates .machuca-pill-panel .machuca-dates-length .gfield {
	display: flex !important;
	align-items: center !important;
	border: none !important;
	border-right: none !important;
	border-radius: 0 !important;
	min-height: 0 !important;
	flex: 0 0 auto !important;
	padding: 0 !important;
}
.machuca-pill--dates .machuca-pill-panel .machuca-dates-length .lt-months input {
	width: 18px !important;
	min-width: 0 !important;
	max-width: none !important;
	text-align: center !important;
	border: none !important;
	background: transparent !important;
	box-shadow: none !important;
	padding: 0 !important;
	font-size: 17px !important;
	font-weight: 600 !important;
	color: var(--wp--preset--color--text, #1f1f1f) !important;
}
/* No value yet → widen so the "months" placeholder fits, centered. */
.machuca-pill--dates .machuca-pill-panel .machuca-dates-length.is-empty .lt-months input {
	width: 58px !important;
	font-weight: 500 !important;
	color: var(--wp--preset--color--text-muted, #6b6b6b) !important;
}
/* Value present → the number hugs its unit.
   Centring a digit inside its own box leaves dead space on the right, and the
   "months" pseudo-element starts after that space rather than after the digit.
   In a control this narrow the word drifted far enough right to end up under
   the + button. Right-aligning the number closes the dead space, and one
   explicit 4px gap sets the distance on purpose instead of leaving it to
   whatever the digit's width happens to be — which is also why this survives
   two-digit values, where centring shifts the word again. */
.machuca-pill--dates .machuca-pill-panel .machuca-dates-length:not(.is-empty) .lt-months {
	gap: 4px;
}
/* Gravity Forms wraps every input in a .ginput_container, so the number is a
   grandchild here, not a child. Narrowing the input alone did nothing: the
   wrapper kept its own width and the "months" pseudo-element started after the
   WRAPPER, not after the digit — which is the whole gap, and why the word
   drifted until the + button covered it. The wrapper has to shrink to the
   number for any of the spacing above to mean anything. */
.machuca-pill--dates .machuca-pill-panel .machuca-dates-length .lt-months .ginput_container {
	width: auto !important;
	min-width: 0 !important;
	flex: 0 0 auto !important;
	margin: 0 !important;
	padding: 0 !important;
	display: flex !important;
	align-items: center !important;
}
.machuca-pill--dates .machuca-pill-panel .machuca-dates-length:not(.is-empty) .lt-months input {
	text-align: right !important;
}
.machuca-pill--dates .machuca-pill-panel .gfield.months-buttons .wp-block-button__link {
	border: none !important;
	border-radius: 0 !important;
	background: var(--wp--preset--color--primary-faint, #e9efe9) !important;
	color: var(--wp--preset--color--primary, #013b28) !important;
	width: 46px !important;
	height: 42px !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	display: flex !important;
	align-items: center;
	justify-content: center;
	font-size: 1.35rem !important;
	font-weight: 600 !important;
	line-height: 1 !important;
	transition: background 160ms ease-out, color 160ms ease-out;
}
.machuca-pill--dates .machuca-pill-panel .gfield.months-buttons .wp-block-button__link:hover {
	background: var(--wp--preset--color--primary, #013b28) !important;
	color: #fff !important;
}
.machuca-pill--dates .machuca-pill-panel .gfield.months-buttons .wp-block-button__link:active {
	background: var(--wp--preset--color--primary, #013b28) !important;
	color: #fff !important;
	filter: brightness( 0.92 );
}

/* LT search calendar (jQuery UI #ui-datepicker-div) — Airbnb-ish: available days
   clean + green hover, non-selectable days quietly greyed (no circle), and the
   confusing other-month numbers hidden. */
#ui-datepicker-div.ui-datepicker {
	background: var(--wp--preset--color--surface, #fff) !important;
	border: 1px solid var(--wp--preset--color--border, #e7e2d8) !important;
	border-radius: 16px !important;
	box-shadow: 0 8px 32px rgba(31, 31, 31, 0.12) !important;
	padding: 12px !important;
	font-family: var(--wp--preset--font-family--sans, inherit) !important;
	z-index: 100002 !important;
	width: auto;
}
#ui-datepicker-div .ui-datepicker-header {
	background: transparent !important;
	border: none !important;
	padding: 0 0 6px !important;
}
#ui-datepicker-div .ui-datepicker-title {
	font-weight: 600 !important;
	color: var(--wp--preset--color--text, #1f1f1f) !important;
}
#ui-datepicker-div .ui-datepicker-calendar th {
	color: var(--wp--preset--color--text-subtle, #9a9a9a) !important;
	font-size: var(--wp--preset--font-size--xs, 12px) !important;
	font-weight: 500 !important;
	padding: 6px 0 !important;
}
#ui-datepicker-div .ui-datepicker-calendar td {
	padding: 1px !important;
	text-align: center;
}
#ui-datepicker-div .ui-datepicker-calendar td a,
#ui-datepicker-div .ui-datepicker-calendar td span {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 36px;
	height: 36px;
	margin: 0 auto !important;
	padding: 0 !important;
	border: none !important;
	background: transparent !important;
	border-radius: 999px !important;
	font-size: var(--wp--preset--font-size--sm, 14px) !important;
	color: var(--wp--preset--color--text, #1f1f1f) !important;
	line-height: 1 !important;
}
#ui-datepicker-div .ui-datepicker-calendar td a:hover,
#ui-datepicker-div .ui-datepicker-calendar td a.ui-state-hover {
	background: var(--wp--preset--color--primary-faint, #e9efe9) !important;
	color: var(--wp--preset--color--primary, #013b28) !important;
}
#ui-datepicker-div .ui-datepicker-calendar td a.ui-state-active {
	background: var(--wp--preset--color--primary, #013b28) !important;
	color: var(--wp--preset--color--surface, #fff) !important;
}
#ui-datepicker-div .ui-datepicker-calendar td.ui-datepicker-unselectable span,
#ui-datepicker-div .ui-datepicker-calendar td.ui-state-disabled span {
	color: var(--wp--preset--color--text-subtle, #9a9a9a) !important;
	opacity: 0.45 !important;
	background: transparent !important;
	cursor: default;
}
#ui-datepicker-div .ui-datepicker-calendar td.ui-datepicker-other-month span,
#ui-datepicker-div .ui-datepicker-calendar td.ui-datepicker-other-month a {
	visibility: hidden !important;
}

/* Months group: dividers only around it (start|group and group|end), none inside —
   fixes the minus button's divider sitting on the wrong side. */
.machuca-pill--dates .machuca-pill-panel .gfield.months-buttons.minus,
.machuca-pill--dates .machuca-pill-panel .gfield.lt-months,
.machuca-pill--dates .machuca-pill-panel .gfield.months-buttons.plus {
	border-right: none !important;
}
.machuca-pill--dates .machuca-pill-panel .gfield.start-date {
	border-right: 1px solid var(--wp--preset--color--border, #e7e2d8) !important;
}
.machuca-pill--dates .machuca-pill-panel .gfield.end-date {
	border-left: 1px solid var(--wp--preset--color--border, #e7e2d8) !important;
	border-right: none !important;
}
/* Kill the leftover field margin (dead space at the bottom of the dates row) */
.machuca-pill--dates .machuca-pill-panel .gfield {
	margin: 0 !important;
}

/* Bar dividers: short + centered (not full height); isolate the open pill */
.machuca-search-lt .machuca-pill,
.lt-search-form .machuca-pill {
	border-right: none !important;
	position: relative;
}
.machuca-search-lt .machuca-pill:not(:last-child)::after,
.lt-search-form .machuca-pill:not(:last-child)::after {
	content: "";
	position: absolute;
	right: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 1px;
	height: 26px;
	background: var(--wp--preset--color--border, #e7e2d8);
	pointer-events: none;
}
.machuca-pill.is-open::after,
.machuca-search-lt .machuca-pill:has( + .machuca-pill.is-open )::after,
.lt-search-form .machuca-pill:has( + .machuca-pill.is-open )::after {
	opacity: 0 !important;
}
/* Same on hover: a hovered pill drops the dividers on both sides of it (its own
   right divider + the previous pill's right divider, which is its left edge). */
.machuca-pill:hover::after,
.machuca-search-lt .machuca-pill:has( + .machuca-pill:hover )::after,
.lt-search-form .machuca-pill:has( + .machuca-pill:hover )::after {
	opacity: 0 !important;
}
/* Selected (open) pill: the bar recedes to a neutral beige "ground" (NOT green —
   green reads as "selected" elsewhere on the site, e.g. the ST/LT toggle) and the
   active pill stays white, popping forward. No drop-shadow, so nothing clashes
   with the search button and it works inside the bar's overflow:hidden. */
/* Desktop only — the beige ground is for the horizontal bar; under 768 the pills
   are stacked cards that carry their own selected/unselected styling. */
@media (min-width: 768px) {
	.machuca-search-lt form:has( .machuca-pill.is-open ),
	.lt-search-form form:has( .machuca-pill.is-open ) {
		background: #f0ece2 !important;
		box-shadow: inset 0 1px 3px rgba( 31, 31, 31, 0.06 ) !important;
	}
}
.machuca-search-lt form:has( .machuca-pill.is-open ) .machuca-pill::after,
.lt-search-form form:has( .machuca-pill.is-open ) .machuca-pill::after {
	opacity: 0 !important;
}
.machuca-pill.is-open .machuca-pill-trigger {
	background: var(--wp--preset--color--surface, #fff) !important;
	border-radius: 999px !important;
	box-shadow: none !important;
}
/* When Guests (the last pill) is active, the white extends through the footer so
   the selected pill visually "comprehends" the search button as one unit. The
   pill's right edge goes flat so it flows into the white footer (no beige sliver).
   Desktop only — under 768 the pills are stacked cards, so a flat edge looks wrong. */
@media (min-width: 768px) {
	.machuca-search-lt form:has( .machuca-pill--guests.is-open ) .gform_footer,
	.lt-search-form form:has( .machuca-pill--guests.is-open ) .gform_footer,
	.machuca-search-lt form:has( .machuca-pill--guests.is-open ) .gform-footer,
	.lt-search-form form:has( .machuca-pill--guests.is-open ) .gform-footer {
		background: var(--wp--preset--color--surface, #fff) !important;
	}
	/* Guests integrates with the footer only when OPEN (stable, click-driven). The
	   hover integration was dropped — :has(:hover) evaluates a frame late, so the
	   pill and footer changed out of sync (a flicker on enter/leave). */
	.machuca-pill--guests.is-open .machuca-pill-trigger {
		border-top-right-radius: 0 !important;
		border-bottom-right-radius: 0 !important;
	}
}

/* The homepage wraps this form in .lt-search-form, which carries an OLDER
   responsive block that dissolves the bar at 481–959px and wraps the search
   button onto its own row. Re-assert the horizontal bar at 768+ (the new
   breakpoint); under 768 the new stacked-pill layout takes over. */
@media (min-width: 768px) {
	.lt-search-form form {
		display: flex !important;
		flex-wrap: nowrap !important;
	}
	.lt-search-form .gform-body {
		display: flex !important;
		flex: 1 1 0 !important;
		min-width: 0 !important;
	}
	.lt-search-form .gform_footer,
	.lt-search-form .gform-footer {
		display: flex !important;
		align-items: stretch !important;
		width: auto !important;
		padding: 0 !important;
		margin: 0 !important;
	}
}

/* × clear: a proper small circle (was rendering tall/narrow) */
.machuca-pill-clear {
	width: 24px !important;
	height: 24px !important;
	min-width: 24px !important;
	padding: 0 !important;
	line-height: 1 !important;
	font-size: 15px !important;
	border-radius: 999px !important;
	align-items: center !important;
	justify-content: center !important;
	box-sizing: border-box !important;
}
.machuca-pill--dates.is-open.has-value .machuca-pill-clear {
	display: inline-flex !important;
}

/* ───────────────────────────────────────────────────────────────────────────
   Dates panel — inline two-month range calendar (Airbnb-style)
   Click = move-in (start); the Months stepper drives the length; end is always
   start + N whole months, drawn as the highlighted range.
   ─────────────────────────────────────────────────────────────────────────── */
.machuca-dates-hidden-field,
.machuca-pill--dates .machuca-pill-panel .gfield.machuca-dates-hidden-field {
	display: none !important;
}
.machuca-pill--dates .machuca-pill-panel {
	width: auto !important;
	max-width: none !important;
	padding: 16px !important;
}

/* Strip the inline datepicker's chrome — the panel is its frame. */
.machuca-rangecal .ui-datepicker,
.machuca-rangecal .ui-datepicker.ui-datepicker-multi {
	background: transparent !important;
	border: none !important;
	box-shadow: none !important;
	padding: 0 !important;
	margin: 0 !important;
	width: auto !important;
	font-family: var(--wp--preset--font-family--sans, inherit) !important;
}
.machuca-rangecal {
	width: 664px;
}
.machuca-rangecal::after {
	content: "";
	display: block;
	clear: both;
}
.machuca-rangecal .ui-datepicker-group {
	float: left;
	width: 304px;
	box-sizing: border-box;
	padding: 0;
}
/* No divider between the two months — just a clean, generous gap (Airbnb-style). */
.machuca-rangecal .ui-datepicker-group-first {
	margin-right: 56px;
	border-right: none;
}
/* No grid lines anywhere in the calendar tables. */
.machuca-rangecal .ui-datepicker-calendar,
.machuca-rangecal .ui-datepicker-calendar tr,
.machuca-rangecal .ui-datepicker-calendar td,
.machuca-rangecal .ui-datepicker-calendar th {
	border: 0 !important;
}
/* Space between the calendar grid and the caption (replaces the default ~40px). */
.machuca-rangecal .ui-datepicker-calendar {
	margin: 0 0 20px !important;
}
.machuca-rangecal .ui-datepicker-row-break {
	clear: both;
	width: 100%;
	font-size: 0;
}

/* Header + shared month navigation (one prev on the left month, one next on the
   right month — they move both calendars together). */
.machuca-rangecal .ui-datepicker-header {
	background: transparent !important;
	border: none !important;
	padding: 0 0 8px !important;
	position: relative;
}
.machuca-rangecal .ui-datepicker-title {
	text-align: center;
	font-weight: 600 !important;
	color: var(--wp--preset--color--text, #1f1f1f) !important;
	font-size: 16px !important;
	line-height: 34px;
}
.machuca-rangecal .ui-datepicker-prev,
.machuca-rangecal .ui-datepicker-next {
	position: absolute;
	top: 0;
	width: 30px;
	height: 30px;
	cursor: pointer;
	border-radius: 50%;
	overflow: hidden;
	text-indent: -9999px;
	transition: background 180ms ease-out;
}
.machuca-rangecal .ui-datepicker-prev { left: 0; }
.machuca-rangecal .ui-datepicker-next { right: 0; }
.machuca-rangecal .ui-datepicker-prev:hover,
.machuca-rangecal .ui-datepicker-next:hover {
	background: var(--wp--preset--color--primary-faint, #e9efe9);
}
.machuca-rangecal .ui-datepicker-prev .ui-icon,
.machuca-rangecal .ui-datepicker-next .ui-icon {
	display: none !important;
}
.machuca-rangecal .ui-datepicker-prev::after,
.machuca-rangecal .ui-datepicker-next::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 8px;
	height: 8px;
	border-left: 1.6px solid var(--wp--preset--color--text, #1f1f1f);
	border-bottom: 1.6px solid var(--wp--preset--color--text, #1f1f1f);
	text-indent: 0;
}
.machuca-rangecal .ui-datepicker-prev::after {
	transform: translate(-30%, -50%) rotate(45deg);
}
.machuca-rangecal .ui-datepicker-next::after {
	transform: translate(-70%, -50%) rotate(-135deg);
}

/* Day grid */
.machuca-rangecal .ui-datepicker-calendar {
	width: 100%;
	border-collapse: collapse;
	/* Equal columns that shrink with the table (ignore the cells' intrinsic width),
	   so the calendar never forces a min-width wider than the card. */
	table-layout: fixed;
}
.machuca-rangecal .ui-datepicker-calendar th {
	color: var(--wp--preset--color--text-subtle, #9a9a9a) !important;
	font-size: 12px !important;
	font-weight: 500 !important;
	padding: 8px 0 !important;
	text-align: center !important;
}
.machuca-rangecal .ui-datepicker-calendar td {
	padding: 2px !important;
	text-align: center;
	border: none !important;
}
.machuca-rangecal .ui-datepicker-calendar td a,
.machuca-rangecal .ui-datepicker-calendar td span {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	/* Fluid + square: fill the (fixed-layout) cell but cap at 42px on wide screens, and
	   let height follow width via aspect-ratio so the calendar shrinks proportionally
	   (both axes) and stays inside the card. Font scales a touch to fit tiny cells. */
	width: 100%;
	max-width: 42px;
	height: auto !important;
	aspect-ratio: 1 / 1;
	box-sizing: border-box !important;
	margin: 0 auto !important;
	padding: 0 !important;
	border: none !important;
	background: transparent !important;
	border-radius: 50% !important;
	font-size: clamp( 12px, 3.4vw, 15px ) !important;
	color: var(--wp--preset--color--text, #1f1f1f) !important;
	line-height: 1 !important;
}
.machuca-rangecal .ui-datepicker-calendar td a:hover,
.machuca-rangecal .ui-datepicker-calendar td a.ui-state-hover {
	background: var(--wp--preset--color--primary-faint, #e9efe9) !important;
	color: var(--wp--preset--color--primary, #013b28) !important;
}
.machuca-rangecal .ui-datepicker-calendar td span {
	color: var(--wp--preset--color--text-subtle, #9a9a9a) !important;
	opacity: 0.4;
	cursor: default;
}

/* Range highlight: light fill across in-range days, solid endpoints, with a
   half-fill connector so the endpoints visually join the range. */
.machuca-rangecal .ui-datepicker-calendar td.rangecal-inrange,
.machuca-rangecal .ui-datepicker-calendar td.rangecal-hover {
	background: var(--wp--preset--color--primary-faint, #e9efe9);
}
.machuca-rangecal .ui-datepicker-calendar td.rangecal-start {
	background: linear-gradient(to right, transparent 50%, var(--wp--preset--color--primary-faint, #e9efe9) 50%);
}
.machuca-rangecal .ui-datepicker-calendar td.rangecal-end {
	background: linear-gradient(to left, transparent 50%, var(--wp--preset--color--primary-faint, #e9efe9) 50%);
}
/* `span` as well as `a`, and the disabled dimming undone.
   
   Once a check-in is chosen the check-out minimum moves past it, so the
   check-in itself becomes unselectable — and jQuery UI renders an unselectable
   day as a <span>, not an <a>. Every marker rule here targeted the anchor, so
   the date the guest had just picked lost its circle and read as though the
   click had not registered. It is correctly not clickable; it still has to look
   chosen, because it is the start of the range being built. */
.machuca-rangecal .ui-datepicker-calendar td.rangecal-start a,
.machuca-rangecal .ui-datepicker-calendar td.rangecal-end a,
.machuca-rangecal .ui-datepicker-calendar td.rangecal-solo a,
.machuca-rangecal .ui-datepicker-calendar td.rangecal-start span,
.machuca-rangecal .ui-datepicker-calendar td.rangecal-end span,
.machuca-rangecal .ui-datepicker-calendar td.rangecal-solo span,
.machuca-rangecal .ui-datepicker-calendar td.rangecal-start a.ui-state-active,
.machuca-rangecal .ui-datepicker-calendar td.rangecal-end a.ui-state-active,
.machuca-rangecal .ui-datepicker-calendar td.rangecal-solo a.ui-state-active {
	background: var(--wp--preset--color--primary, #013b28) !important;
	color: var(--wp--preset--color--surface, #fff) !important;
	opacity: 1 !important;
}

/* jQuery UI greys the whole cell out along with the day inside it. */
.machuca-rangecal .ui-datepicker-calendar td.rangecal-start,
.machuca-rangecal .ui-datepicker-calendar td.rangecal-end,
.machuca-rangecal .ui-datepicker-calendar td.rangecal-solo {
	opacity: 1 !important;
}
/* Check-in only (no range yet): a plain green circle, no half-fill connector.
   The cell keeps no background of its own — the circle lives on the day inside
   it — but it must not inherit the greying jQuery UI puts on a disabled cell,
   which is set above. */
.machuca-rangecal .ui-datepicker-calendar td.rangecal-solo {
	background: transparent !important;
}

/* Length control (– N months +) under the calendar */
/* Length stepper centered above the calendars; quiet help caption below them. */
.machuca-dates-header {
	display: flex;
	justify-content: center;
	margin-bottom: 14px;
}
.machuca-dates-footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-top: 16px;
}
.machuca-dates-caption {
	text-align: left;
	font-size: 13px;
	color: var(--wp--preset--color--text-subtle, #9a9a9a);
}
.machuca-dates-done {
	flex: 0 0 auto;
	border: none;
	border-radius: 999px;
	background: var(--wp--preset--color--primary, #013b28);
	color: #fff;
	font-weight: 600;
	font-size: 14px;
	padding: 10px 24px;
	cursor: pointer;
	transition: background 160ms ease-out;
}
.machuca-dates-done:hover {
	background: #1d5a44;
}
/* Connected segmented pill: ( – | N months | + ) — full-height segments with
   hairline dividers and round outer ends (our forest-green on hover). */
.machuca-dates-length {
	display: inline-flex;
	align-items: stretch;
	gap: 0;
	flex: 0 0 auto;
	border: 1px solid var(--wp--preset--color--border-strong, #c8d4cf);
	border-radius: 999px;
	overflow: hidden;
	background: var(--wp--preset--color--surface, #fff);
}
.machuca-pill--dates .machuca-pill-panel .machuca-dates-length .gfield {
	height: 42px !important;
	margin: 0 !important;
	border: none !important;
	min-height: 0 !important;
}
/* Middle segment holds the number + unit, divided from the buttons by hairlines. */
.machuca-dates-length .lt-months {
	border-left: 1px solid var(--wp--preset--color--border, #e7e2d8) !important;
	border-right: 1px solid var(--wp--preset--color--border, #e7e2d8) !important;
	padding: 0 18px !important;
	min-width: 0;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	line-height: 1 !important;
}
.machuca-dates-length .lt-months input,
.machuca-dates-length .lt-months::after {
	line-height: 1 !important;
}
.machuca-dates-length.is-empty .lt-months::after {
	display: none;
}
.machuca-dates-length .gfield {
	margin: 0 !important;
	padding: 0 !important;
	border: none !important;
	min-height: 0 !important;
	width: auto !important;
	flex: 0 0 auto !important;
	background: transparent !important;
}
.machuca-dates-length .gfield_label {
	display: none !important;
}
.machuca-dates-length .lt-months {
	display: flex !important;
	align-items: center;
}
.machuca-dates-length .lt-months input {
	width: 16px !important;
	min-height: 0 !important;
	text-align: center !important;
	border: none !important;
	background: transparent !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	padding: 0 !important;
	color: var(--wp--preset--color--text, #1f1f1f) !important;
}
.machuca-dates-length .lt-months::after {
	content: "months";
	color: var(--wp--preset--color--text-muted, #6b6b6b);
	font-size: 14px;
}
.machuca-dates-length.is-singular .lt-months::after {
	content: "month";
}

/* ── Booking-card variant of the same segmented pill ─────────────────────────
   The booking Dates panel (showLT-rental.js buildBookingPills) reuses
   .machuca-dates-length, but its segments come from the PHP-rendered
   .lt-stepper (− button | .lt-months-wrapped input | + button) instead of the
   search's HTML-block fields. Keep these rules in step with the block above —
   the two surfaces are one design. Selector weight matches the booking form's
   base stepper rules (5 classes), which these must override. */
.sar-booking-group .machuca-booking-pills .machuca-dates-length .gfield.months {
	flex: 0 0 auto !important;
	margin: 0 !important;
	gap: 0 !important;
	justify-content: center !important;
	border: none !important;
	min-height: 0 !important;
}
.sar-booking-group .machuca-booking-pills .machuca-dates-length .gfield.months .gfield_label {
	display: none !important;
}
.sar-booking-group .machuca-booking-pills .machuca-dates-length .gfield.months .ginput_container {
	flex: 0 0 auto !important;
	margin: 0 !important;
}
.sar-booking-group .machuca-booking-pills .machuca-dates-length .lt-stepper {
	display: flex !important;
	align-items: stretch !important;
	justify-content: center !important;
	gap: 0 !important;
	border: none !important;
	background: transparent !important;
}
.sar-booking-group .machuca-booking-pills .machuca-dates-length .lt-stepper .lt-step {
	flex: 0 0 42px !important;
	width: 42px !important;
	height: 40px !important;
	border: none !important;
	border-radius: 0 !important;
	background: transparent !important;
	margin: 0 !important;
	padding: 0 !important;
	box-shadow: none !important;
}
.sar-booking-group .machuca-booking-pills .machuca-dates-length .lt-stepper .lt-step:hover {
	background: var(--wp--preset--color--primary-faint, #e9efe9) !important;
	border-color: transparent !important;
}
.sar-booking-group .machuca-booking-pills .machuca-dates-length .lt-months {
	height: auto !important;
}
.sar-booking-group .machuca-booking-pills .machuca-dates-length .lt-months input[type="number"] {
	flex: 0 0 auto !important;
	width: 22px !important;
	height: auto !important;
	text-align: center !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	border: none !important;
	background: transparent !important;
	padding: 0 !important;
	margin: 0 !important;
}

/* Phone: panel spans the viewport and the calendar drops to a single month. */
@media (max-width: 767px) {
	/* Mobile: panel opens below the form (positionPanel sets top/left/width/max-height);
	   just let it scroll internally so the calendar's bottom is always reachable. */
	.machuca-pill.is-open .machuca-pill-panel {
		overflow-y: auto !important;
	}
	/* (Removed the old "unselected pills → beige" rule: in the new mobile design the
	   collapsed steps stay white pill cards, so painting them beige made them vanish
	   into the ground. The open pill's green ring is set in the modal block below.) */
	.machuca-search-lt .machuca-pill.is-open,
	.lt-search-form .machuca-pill.is-open {
		border-color: var(--wp--preset--color--primary, #013b28) !important;
	}
	/* Keep the months input compact — the dissolve's ginput_container flex:1 was
	   stretching it so it no longer shrank. */
	.machuca-search-lt .machuca-dates-length .lt-months .ginput_container {
		flex: 0 0 auto !important;
		width: auto !important;
	}
	/* Single-month calendar fills the full (form-width) panel. */
	.machuca-rangecal,
	.machuca-rangecal .ui-datepicker,
	.machuca-rangecal .ui-datepicker-group,
	.machuca-rangecal .ui-datepicker-calendar {
		width: 100% !important;
	}
	.machuca-rangecal .ui-datepicker-group {
		float: none;
		padding: 0;
		border-right: none !important;
	}
	/* Don't let the old mobile "card dissolve" bleed into panel fields — it was
	   boxing them AND stacking the dates stepper's number over its "months". */
	.machuca-search-lt .machuca-pill-panel .gfield {
		border: none !important;
		border-radius: 0 !important;
		background: transparent !important;
		padding: 0 !important;
		margin: 0 !important;
		min-height: 0 !important;
		flex-direction: row !important;
	}
	/* Guest rows keep vertical breathing room (the reset above zeroed it). */
	.machuca-search-lt .machuca-pill--guests .machuca-pill-panel .gfield {
		margin-bottom: 16px !important;
	}

	/* Stack the search pills as full-width cards, in one column. */
	.machuca-search-lt .machuca-pill,
	.lt-search-form .machuca-pill {
		flex: 0 0 100% !important;
		width: 100% !important;
		margin: 0 0 10px !important;
		border: 1.5px solid var(--wp--preset--color--border-strong, #c8d4cf) !important;
		border-radius: 12px !important;
		background: var(--wp--preset--color--surface, #fff) !important;
	}
	.machuca-search-lt .machuca-pill::after,
	.lt-search-form .machuca-pill::after {
		display: none !important; /* no dividers when stacked */
	}
	/* Full-width search button, sized down (it was too tall stretched). */
	.machuca-search-lt .gform_footer,
	.lt-search-form .gform_footer {
		width: 100% !important;
	}
	.machuca-search-lt input[type="submit"],
	.machuca-search-lt button[type="submit"],
	.lt-search-form input[type="submit"] {
		width: 100% !important;
		height: 56px !important;   /* match the pill-card height (was 48) */
		align-self: auto !important;
		border-radius: 12px !important;
		margin: 0 !important;
	}
}

/* ───────────────────────────────────────────────────────────────────────────
   Short-stay (WPBC) pill bar — reuse the LT pill/button styling, but the bar is
   the WPBC .search_container (not the <form>), so reset the form + WPBC chrome
   and make .search_container the flex pill bar.
   ─────────────────────────────────────────────────────────────────────────── */
.machuca-search-st #booking_search_form,
.machuca-search-st .wpbc_container,
.machuca-search-st .wpbc_container_search,
.machuca-search-st .wpdevelop {
	background: transparent !important;
	border: none !important;
	box-shadow: none !important;
	padding: 0 !important;
	margin: 0 !important;
	/* Full-width blocks so the bar (max-width + margin:auto) can center inside
	   them — WPBC's ID-selector margins otherwise left-align the whole form. */
	display: block !important;
	width: 100% !important;
	max-width: none !important;
	float: none !important;
}
/* The <form> itself must NOT become the LT pill bar (that styling is for GF) —
   the .search_container below is the bar. */
.machuca-search-st form {
	display: block !important;
	border: none !important;
	border-radius: 0 !important;
	overflow: visible !important;
	background: transparent !important;
	min-height: 0 !important;
	max-width: none !important;
	box-shadow: none !important;
}
.machuca-st-bar {
	display: flex !important;
	align-items: stretch !important;
	flex-wrap: nowrap !important;
	gap: 0 !important;
	border: 1.5px solid #c8d4cf !important;
	border-radius: 50px !important;
	overflow: hidden !important;
	background: #fff !important;
	min-height: 48px;
	width: 100%;
	max-width: 828px;
	margin: 0 auto !important;
	box-sizing: border-box;
	padding: 0 !important;
}
.machuca-st-bar .machuca-pill {
	flex: 1 1 0 !important;
	min-width: 0;
}
.machuca-st-bar .search_row {
	margin: 0 !important;
	padding: 0 !important;
}
.machuca-st-bar .search_row.search_button {
	flex: 0 0 auto !important;
	display: flex !important;
	align-items: stretch !important;
}
/* Hidden WPBC rows (check-in/out live in the Dates pill; bedrooms/price dropped).
   High specificity to beat WPBC's own !important .search_row display rules. */
.machuca-search-st .machuca-st-bar .search_row.machuca-st-hidden,
.machuca-st-bar .search_row.machuca-st-hidden,
.machuca-st-hidden {
	display: none !important;
}

/* Phone: stack the ST pills + button as full-width cards (mirror LT under 768). */
@media (max-width: 767px) {
	.machuca-st-bar {
		flex-wrap: wrap !important;
		border: none !important;
		border-radius: 0 !important;
		overflow: visible !important;
		background: transparent !important;
		min-height: 0 !important;
	}
	.machuca-st-bar .machuca-pill {
		flex: 0 0 100% !important;
		width: 100% !important;
	}
	.machuca-st-bar .search_row.search_button {
		flex: 0 0 100% !important;
		width: 100% !important;
	}
}

/* ST selected/ground state (desktop): the BAR recedes to beige (not the whole
   <form> — the generic ground rule targets the form, which for ST isn't the bar). */
@media (min-width: 768px) {
	.machuca-search-st form:has( .machuca-pill.is-open ) {
		background: transparent !important;
		box-shadow: none !important;
	}
	.machuca-st-bar:has( .machuca-pill.is-open ) {
		background: #f0ece2 !important;
		box-shadow: inset 0 1px 3px rgba( 31, 31, 31, 0.06 ) !important;
	}
	/* The bar itself carries the beige (above); unselected pill triggers stay
	   transparent so the ground is continuous (no white gaps between pills). The
	   open pill keeps its white rounded trigger. The button cell shows the bar
	   beige (transparent) too. */
	.machuca-st-bar:has( .machuca-pill.is-open ) .machuca-pill:not( .is-open ) .machuca-pill-trigger {
		background: transparent !important;
	}
	/* Guests active/hover → the button cell joins the pill: white when open, light
	   green on hover (matching the pill's own hover), so they read as one unit.
	   Same transition timing as the trigger so they change together (no layered
	   flicker where the button snaps green a frame after the pill fades). */
	.machuca-st-bar .search_row.search_button {
		transition: background 160ms ease-out !important;
	}
	.machuca-st-bar:has( .machuca-pill--guests.is-open ) .search_row.search_button {
		background: var(--wp--preset--color--surface, #fff) !important;
	}
	/* Guests is the last visible pill before the button → no right divider. */
	.machuca-pill--guests::after {
		display: none !important;
	}
}

/* Done button inside the ST (WPBC) form — force it visible + styled over WPBC's and
   Bootstrap's button rules (which hide/restyle it). DESKTOP ONLY: Done advances
   dates→guests in the dropdown; on mobile the per-pill "Next" replaces it and the modal
   hides Done, so forcing it visible at all widths (via this ID rule) made it show in the
   mobile modal alongside Next. Scoped to 768+ to fix that. */
@media (min-width: 768px) {
	#booking_search_form .machuca-dates-done,
	.machuca-search-st .machuca-dates-footer .machuca-dates-done {
		display: inline-block !important;
		visibility: visible !important;
		width: auto !important;
		height: auto !important;
		border: none !important;
		border-radius: 999px !important;
		background: var(--wp--preset--color--primary, #013b28) !important;
		color: #fff !important;
		font-weight: 600 !important;
		font-size: 14px !important;
		padding: 10px 24px !important;
		margin: 0 !important;
		background-image: none !important;
		cursor: pointer !important;
	}
}
/* Mobile: the WRAPPERS go full-width so the bar can center, but the BAR itself is
   capped (was stretching full-width because max-width:none hit the bar too). */
@media (max-width: 767px) {
	.machuca-search-st .wpdevelop,
	.machuca-search-st #booking_search_form,
	.machuca-search-st .wpbc_container,
	.machuca-search-st .wpbc_container_search {
		width: 100% !important;
		max-width: none !important;
		margin: 0 auto !important;
		box-sizing: border-box;
	}
	.machuca-st-bar {
		width: 100% !important;
		max-width: 480px !important;
		margin: 0 auto !important;
	}
}

/* ST pill triggers match LT's DESKTOP bar: a tight centered column (label over
   summary) filling the pill height. On mobile the trigger becomes a roomy row (label
   left / value right) owned solely by the mobile block further down — so ALL of this
   is desktop-only. (It used to be a higher-specificity all-widths rule that silently
   overrode the mobile padding/gap/justify; consolidated here to end that conflict.) */
@media (min-width: 768px) {
	.machuca-search-st .machuca-st-bar .machuca-pill > .machuca-pill-trigger {
		padding: 10px 18px !important;
		gap: 2px !important;
		height: 100% !important;
		justify-content: center !important;
		align-items: flex-start !important;
	}
}
.machuca-search-st .machuca-st-bar .machuca-pill-label {
	line-height: 1.2 !important;
}
.machuca-search-st .machuca-st-bar .machuca-pill-summary {
	line-height: 1.2 !important;
}

/* Desktop bar at 768+ (not 960+). The legacy EPL/WPBC ≤959 responsive wrapped the
   bar (`#booking_search_form .well.search_container { flex-wrap: wrap }`), squared its
   corners, and forced the search-button row to flex:0 0 100% — which is what made
   768–959 look broken. Re-assert the single nowrap horizontal row here (ID specificity
   so it beats those legacy rules) and keep the button auto-width inside it. */
@media (min-width: 768px) {
	#booking_search_form .search_container.machuca-st-bar {
		flex-direction: row !important;
		flex-wrap: nowrap !important;
		border-radius: 100px !important;
	}
	.short-term-form #booking_search_form .search_row.search_button,
	.machuca-search-st .machuca-st-bar .search_row.search_button {
		flex: 0 0 auto !important;
		width: auto !important;
	}
}

/* ST: when Guests is active, the white extends through the search button so the
   pill "comprehends" it as one unit (mirrors LT). The generic flat-right-radius
   rule on .machuca-pill--guests.is-open already applies. */
@media (min-width: 768px) {
	.machuca-st-bar:has( .machuca-pill--guests.is-open ) .search_row.search_button {
		background: var(--wp--preset--color--surface, #fff) !important;
	}
}

/* Guest stepper number was invisible in the ST form — WPBC/Bootstrap input rules
   (ID-level) hid/resized it. Force it visible with matching specificity. */
#booking_search_form input.machuca-guest-input,
.machuca-search-st .machuca-pill--guests .machuca-pill-panel input.machuca-guest-input {
	width: 2.2em !important;
	min-width: 0 !important;
	max-width: 2.2em !important;
	height: auto !important;
	padding: 0 !important;
	text-align: center !important;
	border: none !important;
	background: transparent !important;
	box-shadow: none !important;
	font-size: 15px !important;
	color: var(--wp--preset--color--text, #1f1f1f) !important;
	-webkit-text-fill-color: var(--wp--preset--color--text, #1f1f1f) !important;
	opacity: 1 !important;
}

/* Mobile: the panel is an in-flow accordion (see positionPanel) so it never lands
   off-screen — the page scrolls to it. */
@media (max-width: 767px) {
	/* .machuca-pill is display:flex on desktop (trigger fills the bar cell); on
	   mobile the panel is in-flow, so switch to block or the panel sits BESIDE the
	   trigger instead of below it. */
	.machuca-st-bar .machuca-pill,
	.machuca-search-lt .machuca-pill {
		display: block !important;
		overflow: visible !important;
	}
	/* Full-screen sheet: the open pill's panel covers the viewport as one step of the
	   suburb → dates → guests flow, instead of an in-flow accordion. Fixed + inset so
	   it escapes the bar and page layout entirely — this is what kills the giant-pill
	   and layout-jump bugs at the root. Header (title + ×) sticks to the top, the
	   action footer (Done / Search) sticks to the bottom, the middle scrolls. */
	.machuca-pill.is-open > .machuca-pill-panel {
		position: fixed !important;
		inset: 0 !important;
		top: 0 !important;
		left: 0 !important;
		right: 0 !important;
		bottom: 0 !important;
		width: 100% !important;
		min-width: 0 !important;
		max-width: none !important;
		height: 100% !important;
		height: 100dvh !important;
		max-height: none !important;
		margin: 0 !important;
		padding: 0 0 env( safe-area-inset-bottom, 0 ) !important;
		border: 0 !important;
		border-radius: 0 !important;
		box-shadow: none !important;
		background: #fff !important;
		z-index: 100001 !important;
		display: flex !important;
		flex-direction: column !important;
		overflow-y: auto !important;
		-webkit-overflow-scrolling: touch !important;
		box-sizing: border-box !important;
	}
	/* Sheet header: step title + close ×, pinned to the top of the scrolling sheet. */
	.machuca-sheet-head {
		display: flex !important;
		align-items: center !important;
		justify-content: space-between !important;
		position: sticky !important;
		top: 0 !important;
		z-index: 3 !important;
		background: #fff !important;
		padding: 14px 18px !important;
		border-bottom: 1px solid #ece7dd !important;
	}
	.machuca-sheet-title {
		font-weight: 700 !important;
		font-size: 1.05rem !important;
		color: #1a2820 !important;
	}
	.machuca-sheet-close {
		background: none !important;
		border: none !important;
		font-size: 1.7rem !important;
		line-height: 1 !important;
		color: #1a2820 !important;
		cursor: pointer !important;
		padding: 0 6px !important;
		-webkit-appearance: none !important;
		appearance: none !important;
	}
	/* (Removed the old sheet content-padding rules — they double-padded the calendar
	   on top of the modal panel's own padding, pushing it past the card under ~400px.
	   The modal panel padding is the single source now.) */
	.machuca-pill.is-open > .machuca-pill-panel > .machuca-rangecal {
		max-width: 100% !important;   /* safety: never exceed the panel */
	}
	/* Dates action bar pins to the bottom of the sheet. */
	.machuca-dates-footer {
		position: sticky !important;
		bottom: 0 !important;
		z-index: 3 !important;
		background: #fff !important;
		border-top: 1px solid #ece7dd !important;
		padding: 12px 18px calc( 12px + env( safe-area-inset-bottom, 0 ) ) !important;
		margin-top: auto !important;
	}
	/* Lock the page behind an open sheet so only the sheet scrolls. */
	html.machuca-sheet-lock,
	html.machuca-sheet-lock body {
		overflow: hidden !important;
	}
	/* The header search overlay is a z-index:9000 stacking context, below the
	   site header (9999) — by design, since it opens under the header bar. But
	   that traps the full-screen sheet/modal's z-index:100002 beneath the header,
	   hiding the sheet's top strip (the homepage forms aren't inside the overlay,
	   so they don't have this problem). While a sheet is open, lift the whole
	   overlay above the header. */
	html.machuca-sheet-lock #machuca-header-search {
		z-index: 100002;
	}
}

/* Sheet chrome is mobile-only; the desktop dropdown never shows the header. */
.machuca-sheet-head {
	display: none;
}

/* ── Mobile search: pill cards that expand to a full-screen accordion ──────────
   On <768px the Suburb / Dates / Guests pills stack as cards (bordered, rounded,
   soft shadow) with the label left and the value right. Tapping any pill sets
   .machuca-modal-open, expanding the bar to a full-screen accordion on the beige
   ground: the tapped pill stays a card and its panel (areas / calendar / guests)
   drops beneath the label inside that card; the other pills stay cards above and
   below by position. Close × (top-right), Clear all link (bottom-left), contextual
   Next → Search (bottom-right). Desktop + no-JS untouched — the modal chrome is
   display:none until .machuca-modal-open and none of this runs above 767px. */
.machuca-modal-head,
.machuca-modal-foot {
	display: none;
}
@media (max-width: 767px) {
	/* Stack the bar; each field keeps its pill-card look. NOTE: WPBC's own
	   `#booking_search_form .well.search_container` (an ID rule) hard-sets
	   gap/flex-direction/padding, so the container layout MUST be written at ID
	   specificity or it silently loses. The pill visuals below are plain classes
	   (no ID rule targets .machuca-pill). */
	#booking_search_form .search_container.machuca-st-bar {
		display: flex !important;
		flex-direction: column !important;
		gap: 12px !important;
		width: 100% !important;
		max-width: 480px !important;
		margin: 0 auto !important;
		padding: 0 !important;
		border: 0 !important;
		background: transparent !important;
		box-shadow: none !important;
		box-sizing: border-box !important;
	}
	.machuca-modalbar .machuca-pill {
		position: relative !important;
		display: block !important;
		width: 100% !important;
		flex: 0 0 auto !important;
		margin: 0 !important;
		overflow: hidden !important;
		border: 1.5px solid var(--wp--preset--color--border-strong, #c8d4cf) !important;
		border-radius: 16px !important;
		background: #fff !important;
		box-shadow: 0 2px 8px rgba( 0, 0, 0, 0.06 ) !important;
	}
	.machuca-modalbar .machuca-pill::after {
		display: none !important;   /* no desktop dividers */
	}
	/* Pill face: label left, value right, with roomy internal padding (matches LT). */
	.machuca-modalbar .machuca-pill > .machuca-pill-trigger {
		flex-direction: row !important;
		align-items: center !important;
		justify-content: space-between !important;
		gap: 12px !important;
		width: 100% !important;
		height: auto !important;
		padding: 18px 20px !important;
		border-radius: 16px !important;
		background: transparent !important;
	}
	.machuca-modalbar .machuca-pill-label {
		font-size: 0.95rem !important;
		font-weight: 700 !important;
	}
	.machuca-modalbar .machuca-pill-summary {
		max-width: 60% !important;
		font-size: 0.95rem !important;
		text-align: right !important;
	}
	/* Dates clear × sits next to the value on the right (as on the desktop pill).
	   Anchor it to the trigger row (top), not the pill's mid-height — otherwise in the
	   expanded card it would float over the calendar. */
	.machuca-modalbar .machuca-pill--suburb.has-value .machuca-pill-clear,
	.machuca-modalbar .machuca-pill--dates.has-value .machuca-pill-clear {
		display: inline-flex !important;
	}
	.machuca-modalbar .machuca-pill-clear {
		/* Absolute inside the pill, so top is measured from the pill's top. The trigger
		   (single content row, ~54px) sits at the pill top in both states, so this
		   centres the × on that row whether the card is collapsed or expanded. Bigger
		   glyph so it reads as a clear ×. */
		top: 14px !important;
		right: 12px !important;
		width: 26px !important;
		height: 26px !important;
		font-size: 19px !important;
		transform: none !important;
	}
	.machuca-modalbar .machuca-pill--suburb.has-value > .machuca-pill-trigger,
	.machuca-modalbar .machuca-pill--dates.has-value > .machuca-pill-trigger {
		padding-right: 50px !important;
	}
	/* Compact card's Search button (full-width, below the pills). */
	.machuca-st-bar .search_row.search_button {
		order: 99 !important;
		margin: 2px 0 0 !important;
	}

	/* ── Expanded: full-screen accordion on the beige ground ──
	   ID specificity again so flex-direction / gap / padding beat WPBC's container. */
	#booking_search_form .search_container.machuca-st-bar.machuca-modal-open {
		position: fixed !important;
		inset: 0 !important;
		top: 0 !important;
		left: 0 !important;
		right: 0 !important;
		bottom: 0 !important;
		width: 100% !important;
		max-width: none !important;
		height: 100% !important;
		height: 100dvh !important;
		margin: 0 !important;
		padding: 0 !important;
		flex-direction: column !important;
		flex-wrap: nowrap !important;   /* stack + scroll; never wrap into a 2nd column */
		gap: 12px !important;
		border: 0 !important;
		border-radius: 0 !important;
		background: #fff !important;
		z-index: 100002 !important;
		overflow-y: auto !important;
		-webkit-overflow-scrolling: touch !important;
	}
	/* Header: form type (top-left) + close × (top-right), pinned over the white ground. */
	.machuca-modal-open .machuca-modal-head {
		display: flex !important;
		align-items: center !important;
		justify-content: space-between !important;
		position: sticky !important;
		top: 0 !important;
		z-index: 5 !important;
		background: #fff !important;
		padding: 12px 16px 0 26px !important;
	}
	.machuca-modal-title {
		font-weight: 700 !important;
		font-size: 1.4rem !important;
		color: #1a2820 !important;
	}
	.machuca-modal-close {
		background: none !important;
		border: none !important;
		font-size: 1.7rem !important;
		line-height: 1 !important;
		color: #1a2820 !important;
		cursor: pointer !important;
		padding: 0 6px !important;
		-webkit-appearance: none !important;
		appearance: none !important;
	}
	/* Desktop-like experience on the white ground: each card is inset (space around it,
	   not edge-to-edge — width:auto so the 16px side margins actually shrink it rather
	   than overflowing the compact width:100%). Lighter border, leaning on shadow.
	   Collapsed steps sit on beige; the open one is white and lifts with more shadow. */
	.machuca-modalbar.machuca-modal-open .machuca-pill {
		/* Cap the width and centre it (instead of fixed side margins): on very narrow
		   screens a fixed margin-left is honoured while the card can't shrink, so it
		   spilled to the right. max-width + auto margins keeps it symmetric and forces
		   the content to shrink. NOTE: no `width: auto` — these pills are flex items in
		   the modal's column, where `width:auto` + auto side margins shrink them to
		   content (~200px). The compact `width:100%` (capped by max-width) is correct. */
		max-width: calc( 100% - 32px ) !important;
		margin-left: auto !important;
		margin-right: auto !important;
		box-sizing: border-box !important;
		overflow: visible !important;
		border: 1px solid #e6e0d4 !important;
		box-shadow: 0 4px 16px rgba( 0, 0, 0, 0.07 ) !important;
		scroll-margin-top: 60px !important;
	}
	.machuca-modalbar.machuca-modal-open .machuca-pill:not( .is-open ) {
		background: var(--wp--preset--color--background, #f1ede4) !important;
	}
	.machuca-modalbar.machuca-modal-open .machuca-pill.is-open {
		background: #fff !important;
		border-color: #e6e0d4 !important;
		box-shadow: 0 8px 26px rgba( 0, 0, 0, 0.12 ) !important;
	}
	.machuca-modal-open .machuca-pill.is-open > .machuca-pill-trigger {
		border-bottom: 1px solid #f0ece2 !important;
		border-radius: 16px 16px 0 0 !important;
	}
	/* Open step: the panel drops beneath the label, inside the same card (override
	   the standalone full-screen sheet layout). */
	.machuca-modal-open .machuca-pill.is-open > .machuca-pill-panel {
		position: static !important;
		inset: auto !important;
		top: auto !important;
		left: auto !important;
		right: auto !important;
		bottom: auto !important;
		width: 100% !important;
		max-width: none !important;
		height: auto !important;
		/* No inner scroll: the whole modal scrolls instead. Capping the panel made a
		   scroll-inside-scroll with no affordance (you couldn't tell the list continued)
		   and hid the calendar's caption. You still advance by re-tapping the open pill,
		   so the next pill being below the fold isn't a problem. */
		max-height: none !important;
		margin: 0 !important;
		padding: 14px 16px 16px !important;
		border: 0 !important;
		border-radius: 0 0 16px 16px !important;
		box-shadow: none !important;
		background: transparent !important;
		z-index: auto !important;
		display: block !important;
		overflow: visible !important;
	}
	/* The modal supplies its own chrome, so hide the per-panel sheet chrome, the
	   compact Search button and the dates panel's Next (the modal's own footer
	   carries Search, and the stacked pill cards are how you move between steps). */
	.machuca-modal-open .machuca-sheet-head,
	.machuca-modal-open .search_row.search_button,
	.machuca-modal-open .machuca-dates-done {
		display: none !important;
	}
	.machuca-modal-open .machuca-dates-footer {
		position: static !important;
		border-top: 0 !important;
		padding: 8px 0 0 !important;
	}
	/* Footer: Clear all (link) + contextual Next / Search, pinned to the bottom. */
	.machuca-modal-open .machuca-modal-foot {
		display: flex !important;
		align-items: center !important;
		justify-content: space-between !important;
		position: sticky !important;
		bottom: 0 !important;
		z-index: 5 !important;
		margin-top: auto !important;
		background: #fff !important;
		border-top: 1px solid #e6e0d4 !important;
		padding: 12px 16px calc( 12px + env( safe-area-inset-bottom, 0 ) ) !important;
	}
	.machuca-modal-clear {
		background: none !important;
		border: none !important;
		font-size: 0.95rem !important;
		font-weight: 600 !important;
		text-decoration: underline !important;
		color: #1a2820 !important;
		cursor: pointer !important;
		padding: 6px 2px !important;
		-webkit-appearance: none !important;
		appearance: none !important;
	}
	.machuca-modal-search {
		border: none !important;
		border-radius: 12px !important;
		background: var(--wp--preset--color--primary, #013b28) !important;
		color: #fff !important;
		font-weight: 700 !important;
		font-size: 1rem !important;
		padding: 13px 30px !important;
		cursor: pointer !important;
		-webkit-appearance: none !important;
		appearance: none !important;
	}
	/* LT (Gravity Forms) bar = the pills' field container (#gform_fields_2). It reuses
	   all the shared .machuca-modalbar pill + modal chrome above; only the container
	   layout is framework-specific. GF and the old ≤767 dissolve style #gform_fields_2,
	   so these need ID specificity (and sit after them to win the tie). The submit lives
	   in .gform_footer outside this container, so it's simply covered by the modal and
	   fired by the footer's Next → Search button. */
	#gform_fields_2.machuca-modalbar {
		display: flex !important;
		flex-direction: column !important;
		flex-wrap: nowrap !important;
		gap: 12px !important;
		width: 100% !important;
		max-width: 480px !important;
		margin: 0 auto !important;
		padding: 0 !important;
		background: transparent !important;
		box-sizing: border-box !important;
	}
	#gform_fields_2.machuca-modalbar.machuca-modal-open {
		position: fixed !important;
		inset: 0 !important;
		top: 0 !important;
		left: 0 !important;
		right: 0 !important;
		bottom: 0 !important;
		width: 100% !important;
		max-width: none !important;
		height: 100% !important;
		height: 100dvh !important;
		margin: 0 !important;
		padding: 0 !important;
		flex-direction: column !important;
		flex-wrap: nowrap !important;   /* stack + scroll; never wrap into a 2nd column */
		gap: 12px !important;
		background: #fff !important;
		z-index: 100002 !important;
		overflow-y: auto !important;
		-webkit-overflow-scrolling: touch !important;
	}
}

/* ST pet toggle — replicate the LT switch with ID specificity (WPBC's checkbox
   rules out-specify the class-based ones, so it rendered full-width). */
#booking_search_form .gfield.lt-pet input[type="checkbox"] {
	-webkit-appearance: none !important;
	appearance: none !important;
	flex: 0 0 auto !important;
	width: 44px !important;
	min-width: 44px !important;
	max-width: 44px !important;
	height: 24px !important;
	margin: 0 !important;
	border: none !important;
	border-radius: 999px !important;
	background: #d8d1c2 !important;
	position: relative !important;
	cursor: pointer !important;
	box-shadow: none !important;
	transition: background 0.2s ease !important;
}
#booking_search_form .gfield.lt-pet input[type="checkbox"]::before {
	content: "" !important;
	position: absolute !important;
	top: 2px !important;
	left: 2px !important;
	right: auto !important;
	width: 20px !important;
	height: 20px !important;
	margin: 0 !important;
	border: none !important;
	border-radius: 50% !important;
	background: #fff !important;
	opacity: 1 !important;
	transform: none !important;
	transition: transform 0.2s ease !important;
}
#booking_search_form .gfield.lt-pet input[type="checkbox"]:checked {
	background: var(--wp--preset--color--primary, #1d5a44) !important;
}
#booking_search_form .gfield.lt-pet input[type="checkbox"]:checked::before {
	transform: translateX(20px) !important;
}
/* Kill any native/GF checkmark glyph — the ::before knob is the only indicator. */
#booking_search_form .gfield.lt-pet input[type="checkbox"]::after {
	content: none !important;
	display: none !important;
}

/* Desktop bar only: the open pill stays a white rounded pill, Guests keeps its RIGHT
   corners flat so it joins the search button, and unselected triggers stay
   transparent over the continuous beige. On mobile the accordion owns the trigger
   shape (rounded card corners), so these MUST be desktop-scoped — at all widths they
   forced the mobile Guests card's corners to 999px + flat-right (wrong shape). */
@media (min-width: 768px) {
	#booking_search_form .machuca-pill.is-open > .machuca-pill-trigger {
		border-radius: 999px !important;
		background: var(--wp--preset--color--surface, #fff) !important;
	}
	#booking_search_form .machuca-pill--guests.is-open > .machuca-pill-trigger {
		border-top-right-radius: 0 !important;
		border-bottom-right-radius: 0 !important;
	}
	#booking_search_form .machuca-st-bar:has( .machuca-pill.is-open ) .machuca-pill:not( .is-open ) > .machuca-pill-trigger {
		background: transparent !important;
	}
}

/* Homepage ST white wrapper — parity with .lt-search-form (was removed with the
   old ST bar CSS). */
.short-term-form #booking_search_form {
	background: #fff;
	border-radius: 100px;
	padding: 17px 30px;
	margin-block-start: 0;
}
@media (max-width: 767px) {
	.short-term-form #booking_search_form {
		border-radius: 0 0 10px 10px;
		padding: 24px;
	}
}

/* Guests + search button feel selected TOGETHER on hover. A JS-toggled class on
   the shared ancestor (mouseenter/leave) flips both in the SAME frame — the old
   :has(:hover) approach evaluated a frame late and flickered on enter/leave. Only
   applies when Guests isn't open (open = white, and :has(.is-open) is hover-
   independent so it's stable). Desktop only. */
@media (min-width: 768px) {
	.machuca-st-bar .search_row.search_button,
	.machuca-search-lt .gform_footer,
	.lt-search-form .gform_footer,
	.machuca-search-lt .gform-footer,
	.lt-search-form .gform-footer {
		transition: background 160ms ease-out !important;
	}
	/* Base (un-hovered) Guests trigger: fade the background like the button, but
	   DELAY un-rounding the right corners by the full fade so the seam only reappears
	   after the green is gone. Direction-specific: the browser uses the transition of
	   the state being animated TO, so this delay applies on the way OUT only. */
	.machuca-search-lt .machuca-pill--guests > .machuca-pill-trigger,
	.machuca-st-bar .machuca-pill--guests > .machuca-pill-trigger {
		transition: background 160ms ease-out,
			border-top-right-radius 0ms linear 160ms,
			border-bottom-right-radius 0ms linear 160ms !important;
	}
	.machuca-guests-hover .machuca-pill--guests:not( .is-open ) > .machuca-pill-trigger {
		background: var(--wp--preset--color--primary-faint, #eef3f0) !important;
		border-top-right-radius: 0 !important;
		border-bottom-right-radius: 0 !important;
		/* On the way IN: flatten the corners immediately (no delay). */
		transition: background 160ms ease-out,
			border-top-right-radius 0ms linear 0ms,
			border-bottom-right-radius 0ms linear 0ms !important;
	}
	.machuca-st-bar.machuca-guests-hover:not( :has( .machuca-pill--guests.is-open ) ) .search_row.search_button {
		background: var(--wp--preset--color--primary-faint, #eef3f0) !important;
	}
	form.machuca-guests-hover:not( :has( .machuca-pill--guests.is-open ) ) .gform_footer,
	form.machuca-guests-hover:not( :has( .machuca-pill--guests.is-open ) ) .gform-footer {
		background: var(--wp--preset--color--primary-faint, #eef3f0) !important;
	}
}

/* ── ST search results v2 — stay pricing + price popover ──
   Cards come from the shared machuca-listing-card partial; these style the
   ST-only additions: the stay-price footer (fees-included total + "for N
   nights", struck-through rack total on discount, dotted-underline
   affordance) and the price-details popover that opens above the price row
   (its bottom-left corner over the price). No badge over the image — the
   struck-through price is the discount signal; names live in the popover. */
.machuca-listing-card {
	position: relative;
}

.machuca-card-footer {
	margin-top: auto; /* pin the stay price to the card bottom */
}

.machuca-st-stay-pricing {
	position: relative; /* popover anchor */
	display: flex;
	justify-content: center;
	padding: 0 16px 14px;
}

.machuca-st-price {
	display: flex;
	flex-direction: column;
	align-items: center;
	/* Centered within a fixed min-height: discounted cards fill it (price line
	   + pill), plain cards center their single price line in the same space —
	   equal price-block heights across the grid row, no reserved empty rows. */
	justify-content: center;
	gap: 4px;
	width: 100%;
	min-height: 60px;
	padding: 8px 14px 0;
	border: 0;
	border-top: 1px solid var(--wp--preset--color--border);
	border-radius: 0;
	background: none;
	cursor: pointer;
	font: inherit;
	-webkit-appearance: none;
	appearance: none;
	box-sizing: border-box;
}

/* It's a <button>, so global/theme button hover styles paint it green and
   wipe its borders — never let any background land on the price area, and
   keep the top divider through every state. */
.machuca-st-price:hover,
.machuca-st-price:focus,
.machuca-st-price:active {
	background: none !important;
	color: inherit !important;
	border: 0 !important;
	border-top: 1px solid var(--wp--preset--color--border) !important;
}

/* Discounted cards: bottom-align the two rows in the fixed-height button
   (plain cards keep their single line centered). */
.machuca-st-stay-pricing.has-discount .machuca-st-price {
	justify-content: flex-end;
}

/* Line 1: amount + "for N nights" — inline, baseline-aligned. */
.machuca-st-price .machuca-price-line {
	display: flex;
	align-items: baseline;
	justify-content: center;
	flex-wrap: wrap;
	gap: 4px 8px;
	max-width: 100%;
}

/* The amount matches the title size; dotted underline = "click for details". */
.machuca-st-price .machuca-price-amount {
	font-size: calc(var(--wp--preset--font-size--base) + 2px);
	text-decoration: underline dotted var(--wp--preset--color--text-muted);
	text-decoration-thickness: 1px;
	text-underline-offset: 4px;
}

/* Dated LT results are intentionally informational: no modal affordance and
   no dotted underline. The whole card remains the listing link. */
.machuca-lt-price-static {
	cursor: default;
}

.machuca-lt-price-static .machuca-price-amount {
	text-decoration: none;
}

/* Line 2: the discount pill alone (rendered only when discounted). */
.machuca-st-price .machuca-price-sub {
	display: flex;
	align-items: center;
	justify-content: center;
	max-width: 100%;
}

/* Applied-discounts pill — quiet forest text on the theme's faint green,
   hairline border. */
.machuca-st-price .machuca-price-discounts {
	max-width: 100%;
	padding: 2px 9px;
	border: 1px solid rgba(1, 59, 40, 0.16);
	border-radius: 999px;
	background: var(--wp--preset--color--primary-faint, #eef3f0);
	font-family: var(--wp--preset--font-family--sans);
	font-size: 11.5px;
	font-weight: 500;
	line-height: 1.3;
	color: rgba(1, 59, 40, 0.85);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	box-sizing: border-box;
}

/* Let the popover escape the card's overflow clip while open, and float the
   card above its grid neighbors. */
.machuca-listing-card:has(.machuca-price-popover:not([hidden])) {
	overflow: visible;
	z-index: 30;
}

.machuca-price-popover {
	position: absolute;
	left: 50%;
	bottom: calc(100% - 4px); /* bottom-left corner sits on the price */
	z-index: 20;
	width: min(280px, 70vw);
	padding: 12px 14px;
	background: #fff;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 14px;
	box-shadow: 0 16px 40px rgba(26, 40, 32, 0.18);
	text-align: left;
	cursor: default;
}

.machuca-popover-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 6px;
}

.machuca-popover-title {
	font-family: var(--wp--preset--font-family--sans);
	font-size: 13px;
	font-weight: 700;
	color: var(--wp--preset--color--text);
}

.machuca-popover-close {
	padding: 0 2px;
	border: 0;
	background: none;
	font-size: 18px;
	line-height: 1;
	color: var(--wp--preset--color--text-muted);
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
}

.machuca-popover-row {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 12px;
	padding: 3px 0;
	font-family: var(--wp--preset--font-family--sans);
	font-size: 13px;
	line-height: 1.35;
	color: var(--wp--preset--color--text);
}

/* Only the title and the Total row are bold. */
.machuca-popover-row:not(.machuca-popover-total) {
	font-weight: normal;
}

/* Good news in green: the discount's minus amount, and "Included" on the
   cleaning fee. Mid-tone success green — the brand forest (#013b28) reads
   as black at this size. */
.machuca-popover-discount span:last-child,
.machuca-popover-included,
.machuca-popover-informational {
	color: #177d4f;
}
.machuca-popover-included,
.machuca-popover-informational > span:last-child {
	white-space: nowrap;
}

.machuca-popover-total {
	margin-top: 6px;
	padding-top: 8px;
	border-top: 1px solid var(--wp--preset--color--border);
	font-weight: 700;
}

.machuca-search-unavailable {
	padding: 24px 16px;
	font-family: var(--wp--preset--font-family--sans);
	color: var(--wp--preset--color--text-muted);
	text-align: center;
}

/* Guests panel: quiet in-panel Clear, LEFT-aligned (away from the right-side
   CTAs to avoid misclicks; the pill's ×-corner belongs to the search button).
   !important throughout — WPBC's #booking_search_form ID rules out-specify
   any class selector on the ST form (the recurring specificity gotcha). */
.machuca-pill .machuca-guests-clear {
	display: block !important;
	width: auto !important;
	margin: 6px 0 0 !important;
	padding: 4px 0 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: none !important;
	box-shadow: none !important;
	font-family: var(--wp--preset--font-family--sans) !important;
	font-size: 12.5px !important;
	font-weight: 500 !important;
	line-height: 1.2 !important;
	color: var(--wp--preset--color--text-muted) !important;
	text-align: left !important;
	text-decoration: underline !important;
	text-underline-offset: 3px !important;
	cursor: pointer !important;
	-webkit-appearance: none !important;
	appearance: none !important;
}

.machuca-pill .machuca-guests-clear:hover,
.machuca-pill .machuca-guests-clear:focus {
	background: none !important;
	color: var(--wp--preset--color--text) !important;
}

.machuca-guests-footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--wp--preset--spacing--40);
	margin-top: var(--wp--preset--spacing--30);
}

.machuca-guests-footer .machuca-guests-clear,
.machuca-dates-footer .machuca-dates-clear {
	margin: 0 !important;
}

.machuca-dates-footer .machuca-dates-caption {
	margin-right: auto;
}

.machuca-guest-step:disabled {
	opacity: 0.35;
	cursor: not-allowed;
}

/* ── Docked search (/short-stay/ + /long-stay/) ──────────────────────────────
   The search is part of the page: the overlay wraps the panel only (no
   full-height hit area), the backdrop is gone, and the content below stays
   interactive. header-search.js offsets the page content by the panel height
   and anchors the bar to the header's real bottom edge. */
#machuca-header-search.machuca-search-docked {
	bottom: auto;
	height: auto;
}

#machuca-header-search.machuca-search-docked #machuca-header-search-backdrop {
	display: none;
}

/* The docked search used to need `overflow: visible` here to escape the
   overlay's body scroll lock. That lock is gone (see .machuca-search-panel
   above), so there is nothing left to override. */

/* ── Pill consistency across ST + LT bars (desktop) ──────────────────────────
   Both bars carry .machuca-modalbar; pin identical gap, trigger padding, and
   type metrics so WPBC's cascade can't make the ST pills drift from LT's. */
@media (min-width: 768px) {
	.machuca-modalbar {
		gap: 6px !important;
		padding: 0 !important; /* bar height = pill content on BOTH forms */
	}
	.machuca-modalbar .machuca-pill > .machuca-pill-trigger {
		padding: 10px 16px !important;
		gap: 2px !important;
	}
	.machuca-modalbar .machuca-pill-label {
		font-size: 0.7rem !important;
		line-height: 1.2 !important;
	}
	.machuca-modalbar .machuca-pill-summary {
		font-size: 0.9rem !important;
		line-height: 1.3 !important;
	}
}

/* ── Docked mobile: one-line search summary ──────────────────────────────────
   On the results pages below 768px the stacked pill cards are too tall to sit
   fixed over the content — the bar collapses to a single line: summary text
   ("Atenas · Aug 3 – 17 · 2 guests") that opens the modal at Suburb, plus an
   integrated circular search button that re-submits directly. !important
   throughout: the ST copy lives inside WPBC's #booking_search_form cascade
   (+ bootstrap-ish resets), which otherwise restyles the buttons. */
.machuca-compact-summary {
	display: none;
	align-items: center !important;
	gap: 8px !important;
	width: 100% !important;
	margin: 0 !important;
	padding: 5px 5px 5px 16px !important;
	border: 1px solid var(--wp--preset--color--border, #e7e2d8) !important;
	border-radius: 999px !important;
	background: #fff !important;
	box-shadow: 0 2px 10px rgba(26, 40, 32, 0.06) !important;
	box-sizing: border-box !important;
}

.machuca-compact-summary .machuca-compact-text {
	flex: 1 1 auto !important;
	min-width: 0 !important;
	width: auto !important;
	margin: 0 !important;
	padding: 6px 0 !important;
	border: 0 !important;
	background: none !important;
	box-shadow: none !important;
	font-family: var(--wp--preset--font-family--sans) !important;
	font-size: 14px !important;
	font-weight: 500 !important;
	line-height: 1.3 !important;
	color: #1a2820 !important;
	text-align: left !important;
	overflow: hidden !important;
	text-overflow: ellipsis !important;
	white-space: nowrap !important;
	cursor: pointer !important;
	-webkit-appearance: none !important;
	appearance: none !important;
}

.machuca-compact-summary .machuca-compact-search {
	flex: 0 0 auto !important;
	width: 40px !important;
	height: 40px !important;
	max-height: 40px !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 999px !important;
	background-color: #013b28 !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: center !important;
	background-size: 18px 18px !important;
	color: transparent !important;
	font-size: 0 !important;
	cursor: pointer !important;
	-webkit-appearance: none !important;
	appearance: none !important;
	box-shadow: none !important;
}

@media (max-width: 767px) {
	#machuca-header-search.machuca-search-docked .machuca-modalbar:not(.machuca-modal-open) > *:not(.machuca-compact-summary) {
		display: none !important;
	}
	#machuca-header-search.machuca-search-docked .machuca-modalbar:not(.machuca-modal-open) > .machuca-compact-summary {
		display: flex !important;
	}
	/* LT's real search button lives OUTSIDE the bar (GF footer) — hide it too
	   while the bar is collapsed, so both forms show only the summary line. */
	#machuca-header-search.machuca-search-docked form:has( .machuca-modalbar:not(.machuca-modal-open) ) .gform_footer,
	#machuca-header-search.machuca-search-docked form:has( .machuca-modalbar:not(.machuca-modal-open) ) .gform-footer {
		display: none !important;
	}
}

/* The expanded modal never shows the compact summary. */
.machuca-modalbar.machuca-modal-open > .machuca-compact-summary {
	display: none !important;
}

/* ── Booking forms: locked guest-fit fields ─────────────────────────────────
   Keep the normal stepper silhouette, but expose the reason from a focusable
   wrapper because native disabled buttons cannot receive keyboard focus. */
.machuca-guest-locked {
	display: flex !important;
	flex-direction: row !important;
	justify-content: space-between !important;
	align-items: center !important;
	gap: 12px;
	width: 100% !important;
}

.machuca-guest-locked .machuca-guest-locked-label {
	display: block !important;
	font-family: var(--wp--preset--font-family--sans);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--wp--preset--color--text);
}

/* Same metrics as a live stepper (.lt-step is 30px, its value cell 44px): an
   unavailable control should read as unavailable, not as a smaller widget.
   Layout is !important because this markup also renders inside the Gravity
   Forms wrapper, whose `all: unset` reset outranks any one-class rule of ours
   (it is only exempt once the field has been moved into the pills). */
.machuca-guest-locked-control {
	position: relative !important;
	display: grid !important;
	grid-template-columns: 30px 44px 30px !important;
	align-items: center;
	justify-items: center;
	gap: 4px !important;
	border-radius: 8px;
	cursor: not-allowed;
}

.machuca-guest-locked-control:focus-visible {
	outline: 2px solid var(--wp--preset--color--primary);
	outline-offset: 3px;
}

/* Not `:disabled` — the attribute is removable (and was being removed), and a
   locked control must not depend on it to keep its own look. */
.machuca-guest-locked-control .lt-step {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 30px !important;
	height: 30px !important;
	min-width: 30px !important;
	padding: 0 !important;
	border: 1px solid var(--wp--preset--color--border, #e6e0d6) !important;
	border-radius: 8px !important;
	background: var(--wp--preset--color--surface, #fff) !important;
	color: var(--wp--preset--color--text-muted, #7d8790) !important;
	opacity: 0.62;
	cursor: not-allowed !important;
}

.machuca-guest-locked-control .machuca-stepper-value {
	color: var(--wp--preset--color--text-muted, #7d8790);
	font-size: 14px;
	font-weight: 600;
}

/* Locked pet: the same 44×24 track and 18px thumb the live switch draws (ST
   label.machuca-switch / LT .gfield.lt-pet .gchoice label), in its off state
   and unmovable. Purely presentational — the reason comes from the wrapper. */
.machuca-guest-locked-control--switch {
	display: block;
}

.machuca-guest-locked-switch {
	position: relative !important;
	display: inline-block !important;
	width: 44px !important;
	height: 24px !important;
	border: 1px solid var(--wp--preset--color--border, #e6e0d6);
	border-radius: 99px;
	background: #efece6;
	opacity: 0.62;
	cursor: not-allowed;
}

.machuca-guest-locked-switch::before {
	content: '';
	position: absolute;
	top: 2px;
	left: 2px;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25);
}

.machuca-guest-locked .machuca-guest-locked-note {
	position: absolute !important;
	right: 0;
	top: calc(100% + 8px);
	z-index: 30;
	display: block !important;
	width: max-content;
	max-width: min(280px, calc(100vw - 32px));
	padding: 8px 10px;
	border: 1px solid var(--wp--preset--color--border, #e6e0d6);
	border-radius: 8px;
	background: var(--wp--preset--color--surface, #fff);
	box-shadow: 0 4px 16px rgba(31, 31, 31, 0.12);
	font-family: var(--wp--preset--font-family--sans);
	font-size: 13px;
	line-height: 1.45;
	color: var(--wp--preset--color--text, #1f1f1f) !important;
	text-align: left;
	opacity: 0;
	pointer-events: none;
	transform: translateY(-3px);
	transition: opacity 120ms ease-out, transform 120ms ease-out;
}

/* :focus-visible, never :focus — a tap focuses the wrapper and used to pin the
   tooltip open with nothing able to close it. Tap/click is handled explicitly
   by booking-tooltips.js through .is-tooltip-open, which also guarantees only
   one tooltip is ever open. Keyboard focus still reveals it. */
.machuca-guest-locked-control:not(.is-tooltip-dismissed):hover .machuca-guest-locked-note,
.machuca-guest-locked-control:not(.is-tooltip-dismissed):focus-visible .machuca-guest-locked-note,
.machuca-guest-locked-control.is-tooltip-open .machuca-guest-locked-note {
	opacity: 1;
	transform: translateY(0);
}

/* Live steppers keep their size at every width, so locked ones do too — only
   the row's own alignment changes on the narrowest screens. */
@media (max-width: 399px) {
	.machuca-guest-locked {
		align-items: flex-start !important;
	}
}

/* ── Long-stay search: the Search button on phones ───────────────────────────
   Both forms stack into the same card list below 768px, and the button was the
   one part that did not match. Its spacing still came from the DESKTOP rule —
   the green 40px circle that caps the horizontal bar — because the mobile block
   only re-declared width, height and radius and left `margin: 4px 6px` in
   place. So the long-stay button sat 4px under the Guests card (the short-stay
   one gets 14px: the bar's 12px gap plus 2px on the button row), stood 52px
   tall against the short stay's 56px, and its 6px side margins pushed a
   `width: 100%` button 12px wider than the cards above it.

   Written once for both long-stay contexts — the homepage pill
   (.lt-search-form) and the header/community panel (.machuca-search-lt) — and
   placed at the end of the sheet because it has to out-order the two mobile
   blocks it corrects, which are themselves !important.

   The homepage's own 12px gap moves onto the footer here too. With the spacing
   owned in one place the two forms cannot drift apart again, and the homepage
   stops stacking its gap on top of the button's margin.
   ────────────────────────────────────────────────────────────────────────── */
@media (max-width: 767px) {
	.machuca-search-lt .gform-body,
	.lt-search-form .gform-body {
		margin-bottom: 0 !important;
	}

	.machuca-search-lt .gform_footer,
	.machuca-search-lt .gform-footer,
	.lt-search-form .gform_footer,
	.lt-search-form .gform-footer {
		display: block !important;
		width: 100% !important;
		/* Same cap and centring as the pill container (#gform_fields_2), so the
		   button lines up with the cards rather than with the wrapper. */
		max-width: 480px !important;
		margin: 14px auto 0 !important;
		padding: 0 !important;
	}

	.machuca-search-lt input[type="submit"],
	.machuca-search-lt button[type="submit"],
	.lt-search-form input[type="submit"],
	.lt-search-form button[type="submit"] {
		width: 100% !important;
		height: 56px !important;
		max-height: none !important;
		border-radius: 12px !important;
		margin: 0 !important;
		padding: 0 !important;
		align-self: auto !important;
		background-size: 24px 24px !important;
	}
}

/* Puerta de acceso a una reseña. El botón se separa del texto y respira arriba y abajo
   como el resto de los botones del sitio: llegar desde un correo y encontrar un botón
   apretado contra el párrafo se lee como un formulario administrativo, no como una
   invitación.

   Va con !important y la clase repetida porque el tema de bloques fija el relleno del
   botón y el espaciado del contenedor desde sus propios estilos globales, que se imprimen
   después de esta hoja. Sin eso las tres declaraciones se pierden sin dejar rastro. */
.machuca-review-signin .wp-block-buttons.wp-block-buttons {
    display: flex !important;
    justify-content: flex-start !important;
    margin-top: 4.25rem !important;
}

.machuca-review-signin .wp-block-button .wp-block-button__link.wp-element-button {
    padding-top: 1.15em !important;
    padding-bottom: 1.15em !important;
    padding-left: 2em !important;
    padding-right: 2em !important;
}

/* La duración de una estadía corta, a su propia línea.
   El importe y "for 7 nights" viven en el mismo contenedor y salían pegados en una sola
   línea, mientras las tarjetas de estadía larga muestran el importe arriba y "per month"
   abajo. En una grilla mezclada esa diferencia se lee como un error de maquetación, y en
   una tarjeta angosta la duración empujaba el precio hasta partirlo.
   El contenedor ya envuelve, así que basta con que la duración ocupe el ancho entero: el
   tachado del descuento se queda junto al importe, que es donde se compara. */
.machuca-st-price .machuca-price-line .machuca-price-period {
	flex-basis: 100%;
	text-align: center;
}

/* El paso siguiente después de reseñar: presente pero secundario.
   Primero tiene que quedar que la reseña llegó; el destino viene después y con menos peso
   visual, o el agradecimiento se lee como la excusa para poner un botón. */
.machuca-review-done .machuca-review-next {
	margin-top: 1.75rem;
	justify-content: flex-start;
}

/* El encabezado de las portadas sin foto (todos los alojamientos, una característica)
   arrancaba pegado a la cabecera del sitio: su relleno era sólo lateral, `padding: 0 …`,
   sin una sola medida vertical. El de una comunidad NO entra acá — ése cuelga de la foto
   y ya trae su aire, por eso la separación va en una clase de estado y no en el bloque.
   El título, además, usaba el tamaño mayor de la escala: con un texto corto pasaba, con
   uno que ubica al que llega de un buscador pesa demasiado. Baja un escalón, y se acerca
   a su bajada porque ahora las dos son una sola unidad. */
.machuca-archive-header.has-no-hero {
	padding-top: var(--wp--preset--spacing--50);
	padding-bottom: var(--wp--preset--spacing--70);
}

h1.machuca-archive-title {
	font-size: var(--wp--preset--font-size--lg);
	margin-bottom: var(--wp--preset--spacing--30);
}

/* La bajada es una segunda línea del título, no un párrafo de la página: va un escalón
   por debajo del cuerpo del texto para que el par se lea como una sola unidad y el aire
   quede DEBAJO de los dos, no entre ellos. */
.machuca-archive-header.has-no-hero .machuca-archive-description {
	font-size: var(--wp--preset--font-size--base);
}
