.wpcf7 .screen-reader-response {
	position: absolute;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	width: 1px;
	margin: -1px;
	padding: 0;
	border: 0;
	word-wrap: normal !important;
}

.wpcf7 .hidden-fields-container {
	display: none;
}

.wpcf7 form .wpcf7-response-output {
	margin: 2em 0.5em 1em;
	padding: 0.2em 1em;
	border: 2px solid #00a0d2; /* Blue */
}

.wpcf7 form.init .wpcf7-response-output,
.wpcf7 form.resetting .wpcf7-response-output,
.wpcf7 form.submitting .wpcf7-response-output {
	display: none;
}

.wpcf7 form.sent .wpcf7-response-output {
	border-color: #46b450; /* Green */
}

.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.aborted .wpcf7-response-output {
	border-color: #dc3232; /* Red */
}

.wpcf7 form.spam .wpcf7-response-output {
	border-color: #f56e28; /* Orange */
}

.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output {
	border-color: #ffb900; /* Yellow */
}

.wpcf7-form-control-wrap {
	position: relative;
}

.wpcf7-not-valid-tip {
	color: #dc3232; /* Red */
	font-size: 1em;
	font-weight: normal;
	display: block;
}

.use-floating-validation-tip .wpcf7-not-valid-tip {
	position: relative;
	top: -2ex;
	left: 1em;
	z-index: 100;
	border: 1px solid #dc3232;
	background: #fff;
	padding: .2em .8em;
	width: 24em;
}

.wpcf7-list-item {
	display: inline-block;
	margin: 0 0 0 1em;
}

.wpcf7-list-item-label::before,
.wpcf7-list-item-label::after {
	content: " ";
}

.wpcf7-spinner {
	visibility: hidden;
	display: inline-block;
	background-color: #23282d; /* Dark Gray 800 */
	opacity: 0.75;
	width: 24px;
	height: 24px;
	border: none;
	border-radius: 100%;
	padding: 0;
	margin: 0 24px;
	position: relative;
}

form.submitting .wpcf7-spinner {
	visibility: visible;
}

.wpcf7-spinner::before {
	content: '';
	position: absolute;
	background-color: #fbfbfc; /* Light Gray 100 */
	top: 4px;
	left: 4px;
	width: 6px;
	height: 6px;
	border: none;
	border-radius: 100%;
	transform-origin: 8px 8px;
	animation-name: spin;
	animation-duration: 1000ms;
	animation-timing-function: linear;
	animation-iteration-count: infinite;
}

@media (prefers-reduced-motion: reduce) {
	.wpcf7-spinner::before {
		animation-name: blink;
		animation-duration: 2000ms;
	}
}

@keyframes spin {
	from {
		transform: rotate(0deg);
	}

	to {
		transform: rotate(360deg);
	}
}

@keyframes blink {
	from {
		opacity: 0;
	}

	50% {
		opacity: 1;
	}

	to {
		opacity: 0;
	}
}

.wpcf7 [inert] {
	opacity: 0.5;
}

.wpcf7 input[type="file"] {
	cursor: pointer;
}

.wpcf7 input[type="file"]:disabled {
	cursor: default;
}

.wpcf7 .wpcf7-submit:disabled {
	cursor: not-allowed;
}

.wpcf7 input[type="url"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"] {
	direction: ltr;
}

.wpcf7-reflection > output {
	display: list-item;
	list-style: none;
}

.wpcf7-reflection > output[hidden] {
	display: none;
}
.cmplz-video.cmplz-iframe-styles{background-color:transparent}.cmplz-video.cmplz-hidden{visibility:hidden !important}.cmplz-blocked-content-notice{display:none}.cmplz-placeholder-parent{height:inherit}.cmplz-optin .cmplz-blocked-content-container .cmplz-blocked-content-notice,.cmplz-optin .cmplz-wp-video .cmplz-blocked-content-notice,.cmplz-optout .cmplz-blocked-content-container .cmplz-blocked-content-notice,.cmplz-optout .cmplz-wp-video .cmplz-blocked-content-notice{display:block}.cmplz-blocked-content-container,.cmplz-wp-video{animation-name:cmplz-fadein;animation-duration:600ms;background:#FFF;border:0;border-radius:3px;box-shadow:0 0 1px 0 rgba(0,0,0,0.5),0 1px 10px 0 rgba(0,0,0,0.15);display:flex;justify-content:center;align-items:center;background-repeat:no-repeat !important;background-size:cover !important;height:inherit;position:relative}.cmplz-blocked-content-container.gmw-map-cover,.cmplz-wp-video.gmw-map-cover{max-height:100%;position:absolute}.cmplz-blocked-content-container.cmplz-video-placeholder,.cmplz-wp-video.cmplz-video-placeholder{padding-bottom:initial}.cmplz-blocked-content-container iframe,.cmplz-wp-video iframe{visibility:hidden;max-height:100%;border:0 !important}.cmplz-blocked-content-container .cmplz-custom-accept-btn,.cmplz-wp-video .cmplz-custom-accept-btn{white-space:normal;text-transform:initial;cursor:pointer;position:absolute !important;width:100%;top:50%;left:50%;transform:translate(-50%,-50%);max-width:200px;font-size:14px;padding:10px;background-color:rgba(0,0,0,0.5);color:#fff;text-align:center;z-index:98;line-height:23px}.cmplz-blocked-content-container .cmplz-custom-accept-btn:focus,.cmplz-wp-video .cmplz-custom-accept-btn:focus{border:1px dotted #cecece}.cmplz-blocked-content-container .cmplz-blocked-content-notice,.cmplz-wp-video .cmplz-blocked-content-notice{white-space:normal;text-transform:initial;position:absolute !important;width:100%;top:50%;left:50%;transform:translate(-50%,-50%);max-width:300px;font-size:14px;padding:10px;background-color:rgba(0,0,0,0.5);color:#fff;text-align:center;z-index:98;line-height:23px}.cmplz-blocked-content-container .cmplz-blocked-content-notice .cmplz-links,.cmplz-wp-video .cmplz-blocked-content-notice .cmplz-links{display:block;margin-bottom:10px}.cmplz-blocked-content-container .cmplz-blocked-content-notice .cmplz-links a,.cmplz-wp-video .cmplz-blocked-content-notice .cmplz-links a{color:#fff}.cmplz-blocked-content-container .cmplz-blocked-content-notice .cmplz-blocked-content-notice-body,.cmplz-wp-video .cmplz-blocked-content-notice .cmplz-blocked-content-notice-body{display:block}.cmplz-blocked-content-container div div{display:none}.cmplz-wp-video .cmplz-placeholder-element{width:100%;height:inherit}@keyframes cmplz-fadein{from{opacity:0}to{opacity:1}}/* ============================================
   ALQUILER VACACIONAL – Frontend CSS
   ============================================ */

:root {
  --av-primary:    #2563eb;
  --av-primary-hov:#1d4ed8;
  --av-success:    #16a34a;
  --av-danger:     #dc2626;
  --av-warning:    #d97706;
  --av-gray-50:    #f9fafb;
  --av-gray-100:   #f3f4f6;
  --av-gray-200:   #e5e7eb;
  --av-gray-600:   #4b5563;
  --av-gray-900:   #111827;
  --av-radius:     12px;
  --av-shadow:     0 4px 24px rgba(0,0,0,.10);
}

/* Wrapper */
.av-booking-wrapper {
  max-width: 620px;
  margin: 0 auto;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  color: var(--av-gray-900);
}

.av-booking-box {
  background: #fff;
  border-radius: var(--av-radius);
  box-shadow: var(--av-shadow);
  padding: 2rem;
  position: relative;
}

/* Trust badges */
.av-trust-badges {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin-bottom: 1.5rem;
}
.av-trust-badges span {
  background: var(--av-gray-100);
  border-radius: 20px;
  font-size: .75rem;
  padding: .3rem .8rem;
  color: var(--av-gray-600);
  font-weight: 500;
}

/* Steps */
.av-step h3 {
  margin-top: 0;
  font-size: 1.2rem;
  margin-bottom: 1.25rem;
}

/* Form */
/* .av-form-row removed — single date range field used instead */
.av-form-group {
  display: flex;
  flex-direction: column;
  gap: .35rem;
}
.av-form-group label {
  font-size: .85rem;
  font-weight: 600;
  color: var(--av-gray-600);
}
.av-form-group input,
.av-form-group select,
.av-form-group .flatpickr-input {
  border: 1.5px solid var(--av-gray-200);
  border-radius: 8px;
  padding: .65rem .9rem;
  font-size: .85rem;
  transition: border-color .2s;
  width: 100%;
  box-sizing: border-box;
}
.av-form-group input:focus,
.av-form-group select:focus {
  outline: none;
  border-color: var(--av-primary);
}

/* Price summary */
.av-price-summary {
  background: var(--av-gray-50);
  border-radius: 10px;
  padding: 1rem 1.2rem;
  margin: 1.25rem 0;
}
.av-price-row {
  display: flex !important;
  justify-content: space-between !important;
  align-items: baseline !important;
  padding: .6rem 0 !important;
  border-bottom: 1px solid var(--av-gray-100) !important;
  font-size: .9rem !important;
  gap: 1rem !important;
}
.av-price-row span:first-child {
  flex: 1 !important;
  min-width: 0 !important;
}
.av-price-row span:last-child {
  flex-shrink: 0 !important;
  white-space: nowrap !important;
  text-align: right !important;
}
.av-price-row:last-child { border-bottom: none; }
.av-total-row { font-size: 1.05rem; padding-top: .6rem; margin-top: .3rem; }
.av-green { color: var(--av-success); font-weight: 600; }
.av-gbp   { color: var(--av-gray-600); font-size: .88rem; }
.av-mejor-precio { text-align: center; font-size: .85rem; color: var(--av-gray-600); margin: .5rem 0 0; }

/* Rate selector */
/* ================================================================
   VISUAL DATE PICKER CALENDAR
   ================================================================ */

/* Date bar at top */
.av-booking-wrapper .av-datebar {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  border: 1.5px solid var(--av-gray-200);
  border-radius: 10px;
  overflow: hidden;
  margin-bottom: 1rem;
  background: #fff;
}
.av-booking-wrapper .av-datebar-field {
  padding: .75rem 1rem;
  cursor: pointer;
  transition: background .15s;
  display: flex;
  flex-direction: column;
  gap: .2rem;
}
.av-booking-wrapper .av-datebar-field:hover { background: var(--av-gray-50); }
.av-booking-wrapper .av-datebar-active {
  background: var(--av-gray-50) !important;
  outline: 2px solid var(--av-primary);
  outline-offset: -2px;
  border-radius: 8px;
}
.av-booking-wrapper .av-datebar-divider {
  width: 1px;
  background: var(--av-gray-200);
  align-self: stretch;
}
.av-booking-wrapper .av-datebar-label {
  font-size: .68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--av-gray-900);
}
.av-booking-wrapper .av-datebar-val {
  font-size: .9rem;
  color: var(--av-gray-500);
}
.av-booking-wrapper .av-datebar-val:not(:empty):not([data-empty]) {
  color: var(--av-gray-900);
  font-weight: 500;
}

/* Calendar container */
.av-booking-wrapper .av-cal-picker {
  background: #fff;
  border: 1.5px solid var(--av-gray-200);
  border-radius: 10px;
  padding: 1rem;
  margin-bottom: .75rem;
}

/* Calendar header */
.av-booking-wrapper .av-cal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: .85rem;
}
.av-booking-wrapper .av-cal-month-label {
  font-size: 1rem;
  font-weight: 700;
  color: var(--av-gray-900);
}
.av-booking-wrapper .av-cal-nav-btn {
  background: var(--av-gray-100) !important;
  border: none !important;
  border-radius: 6px !important;
  width: 32px; height: 32px;
  font-size: .85rem;
  cursor: pointer;
  color: var(--av-gray-700) !important;
  display: flex !important;
  align-items: center;
  justify-content: center;
  padding: 0 !important;
  transition: background .15s;
}
.av-booking-wrapper .av-cal-nav-btn:hover:not(:disabled) {
  background: var(--av-gray-200) !important;
}
.av-booking-wrapper .av-cal-nav-btn:disabled {
  opacity: .3 !important;
  cursor: not-allowed !important;
}

/* Calendar grid */
.av-booking-wrapper .av-cal-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 2px;
}
.av-booking-wrapper .av-cal-dow {
  font-size: .72rem;
  font-weight: 700;
  text-align: center;
  color: var(--av-gray-400);
  padding-bottom: .4rem;
  text-transform: uppercase;
}
.av-booking-wrapper .av-cal-day {
  aspect-ratio: 1;
  display: flex !important;
  align-items: center;
  justify-content: center;
  font-size: .85rem;
  border-radius: 6px;
  border: none !important;
  background: transparent !important;
  cursor: pointer;
  padding: 0 !important;
  color: var(--av-gray-900) !important;
  transition: background .1s, color .1s;
  font-weight: 400 !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
}
.av-booking-wrapper .av-cal-empty {
  background: transparent !important;
  cursor: default;
}
.av-booking-wrapper .av-cal-available:hover {
  background: var(--av-gray-100) !important;
}
.av-booking-wrapper .av-cal-blocked {
  background: #fee2e2 !important;
  color: #fca5a5 !important;
  text-decoration: line-through;
  cursor: not-allowed !important;
}
.av-booking-wrapper .av-cal-past {
  color: var(--av-gray-300) !important;
  cursor: not-allowed !important;
}
.av-booking-wrapper .av-cal-selected {
  background: var(--av-primary) !important;
  color: #fff !important;
  font-weight: 700 !important;
  border-radius: 50% !important;
}
.av-booking-wrapper .av-cal-inrange {
  background: #dbeafe !important;
  color: var(--av-primary) !important;
  border-radius: 0 !important;
}
.av-booking-wrapper .av-cal-checkin {
  border-radius: 50% 0 0 50% !important;
}
.av-booking-wrapper .av-cal-checkout {
  border-radius: 0 50% 50% 0 !important;
}

/* Confirm dates button */
.av-booking-wrapper .av-btn-confirm {
  display: block !important;
  width: 100% !important;
  margin-top: .85rem !important;
  background: var(--av-primary) !important;
  color: #fff !important;
  border: none !important;
  border-radius: 8px !important;
  padding: .75rem !important;
  font-size: .95rem !important;
  font-weight: 700 !important;
  cursor: pointer !important;
  transition: background .15s, opacity .15s !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
}
.av-booking-wrapper .av-btn-confirm:hover:not(:disabled) {
  background: var(--av-primary-hov) !important;
}
.av-booking-wrapper .av-btn-confirm:disabled {
  opacity: .4 !important;
  cursor: not-allowed !important;
}

/* Dates summary in step 2 */
.av-booking-wrapper .av-booking-dates-summary {
  background: var(--av-gray-50);
  border: 1px solid var(--av-gray-200);
  border-radius: 8px;
  padding: .7rem 1rem;
  font-size: .87rem;
  color: var(--av-gray-700);
  margin-bottom: 1rem;
  font-weight: 500;
}

/* Rate selector — vertical cards */
.av-booking-wrapper .av-rate-selector {
  display: flex !important;
  flex-direction: column !important;
  gap: .6rem !important;
  margin: 1.25rem 0 !important;
}
.av-booking-wrapper label.av-rate-option {
  display: flex !important;
  flex-direction: row !important;
  align-items: flex-start !important;
  gap: .75rem !important;
  padding: .9rem 1rem !important;
  border: 1.5px solid var(--av-gray-200) !important;
  border-radius: 10px !important;
  background: var(--av-gray-50) !important;
  cursor: pointer !important;
  font-weight: 400 !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  font-size: .9rem !important;
  margin: 0 !important;
  width: 100% !important;
  box-sizing: border-box !important;
  transition: border-color .15s, background .15s !important;
}
.av-booking-wrapper label.av-rate-option:has(input:checked) {
  border-color: var(--av-primary) !important;
  background: #eff6ff !important;
}
.av-booking-wrapper label.av-rate-option > span {
  display: flex !important;
  flex-direction: column !important;
  gap: .2rem !important;
  flex: 1 !important;
}
.av-booking-wrapper label.av-rate-option strong {
  display: block !important;
  font-size: .9rem !important;
  font-weight: 700 !important;
  color: var(--av-gray-900) !important;
  text-transform: none !important;
}
.av-booking-wrapper label.av-rate-option small {
  display: block !important;
  font-size: .78rem !important;
  color: var(--av-gray-500) !important;
  font-weight: 400 !important;
  line-height: 1.4 !important;
}
.av-booking-wrapper label.av-rate-option input[type="radio"] {
  margin-top: 3px !important;
  flex-shrink: 0 !important;
  accent-color: var(--av-primary) !important;
  width: 16px !important;
  height: 16px !important;
}

/* ================================================================
   BOTONES — máxima especificidad para ganar a cualquier tema
   ================================================================ */
.av-booking-wrapper button.av-btn,
.av-booking-wrapper a.av-btn {
  display: block !important;
  width: 100% !important;
  border: none !important;
  border-radius: 10px !important;
  cursor: pointer !important;
  font-size: .95rem !important;
  font-weight: 700 !important;
  padding: .82rem 1.25rem !important;
  text-align: center !important;
  transition: background .15s, opacity .15s !important;
  font-family: inherit !important;
  line-height: 1.4 !important;
  margin-top: .75rem !important;
  box-sizing: border-box !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  text-decoration: none !important;
}
.av-booking-wrapper button.av-btn:disabled {
  opacity: .38 !important;
  cursor: not-allowed !important;
}
.av-booking-wrapper button.av-btn-primary,
.av-booking-wrapper a.av-btn-primary {
  background: var(--av-primary) !important;
  color: #fff !important;
  box-shadow: 0 2px 8px rgba(37,99,235,.25) !important;
}
.av-booking-wrapper button.av-btn-primary:hover:not(:disabled) {
  background: var(--av-primary-hov) !important;
  color: #fff !important;
}
.av-booking-wrapper button.av-btn-secondary,
.av-booking-wrapper a.av-btn-secondary {
  background: #f1f5f9 !important;
  color: #334155 !important;
  border: 1.5px solid #e2e8f0 !important;
  margin-top: .4rem !important;
  box-shadow: none !important;
}
.av-booking-wrapper button.av-btn-secondary:hover:not(:disabled) {
  background: #e2e8f0 !important;
  color: #0f172a !important;
}
.av-booking-wrapper button.av-btn-pay {
  background: #16a34a !important;
  color: #fff !important;
  box-shadow: 0 2px 8px rgba(22,163,74,.25) !important;
}
.av-booking-wrapper button.av-btn-pay:hover:not(:disabled) {
  background: #15803d !important;
  color: #fff !important;
}
.av-booking-wrapper button.av-btn-confirm {
  background: var(--av-primary) !important;
  color: #fff !important;
  box-shadow: 0 2px 8px rgba(37,99,235,.25) !important;
}
.av-booking-wrapper button.av-btn-confirm:disabled {
  opacity: .38 !important;
  cursor: not-allowed !important;
  box-shadow: none !important;
}

/* ================================================================
   COLORES CALENDARIO — días disponibles/bloqueados/pasados
   ================================================================ */
.av-booking-wrapper .av-cal-available {
  color: var(--av-gray-900) !important;
  background: #dcfce7 !important;
}
.av-booking-wrapper .av-cal-available:hover {
  background: #bbf7d0 !important;
}
.av-booking-wrapper .av-cal-blocked {
  background: #fee2e2 !important;
  color: #fca5a5 !important;
  text-decoration: line-through;
  cursor: not-allowed !important;
}
.av-booking-wrapper .av-cal-past {
  color: var(--av-gray-300) !important;
  background: transparent !important;
  cursor: not-allowed !important;
}
.av-booking-wrapper .av-cal-empty {
  background: transparent !important;
  cursor: default !important;
}

/* Total row — destacada */
.av-booking-wrapper .av-price-row.av-total {
  border-top: 2px solid var(--av-gray-200) !important;
  border-bottom: 2px solid var(--av-gray-200) !important;
  margin: .25rem 0 !important;
  padding: .85rem 0 !important;
  background: #f8fafc;
  border-radius: 6px;
}
.av-booking-wrapper .av-price-row.av-total span:first-child {
  font-weight: 700 !important;
  font-size: 1rem !important;
  color: var(--av-gray-900) !important;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.av-booking-wrapper .av-price-row.av-total span:last-child {
  font-weight: 800 !important;
  font-size: 1.2rem !important;
  color: var(--av-primary) !important;
}
.av-booking-wrapper .av-step > label,
.av-booking-wrapper .av-min-stay {
  font-size: .85rem;
  font-weight: 600;
  color: var(--av-gray-600);
  display: block;
  margin-bottom: .4rem;
}