@keyframes rhqr-bounce {
	0%, 80%, 100% { transform: translateY( 0 );    opacity: 0.3; }
	40%            { transform: translateY( -8px );  opacity: 1;   }
}

.reservation-flow__loading {
	display:         flex;
	justify-content: center;
	align-items:     center;
	gap:             0.25rem;
	padding:         4rem 0;
	font-size:       2rem;
	font-weight:     700;
	line-height:     1;
}

.reservation-flow__loading span {
	display:          inline-block;
	animation:        rhqr-bounce 1.2s ease-in-out infinite;
}

.reservation-flow__loading span:nth-child(2) { animation-delay: 0.2s; }
.reservation-flow__loading span:nth-child(3) { animation-delay: 0.4s; }

.reservation-header {
	position:      sticky;
	top:           0;
	z-index:       100;
	padding-left:  max( var( --wp--preset--spacing--24 ), calc( ( 100% - var( --wp--style--global--content-size ) ) / 2 ) ) !important;
	padding-right: max( var( --wp--preset--spacing--24 ), calc( ( 100% - var( --wp--style--global--content-size ) ) / 2 ) ) !important;
}
@media ( max-width: 768px ) {
	.reservation-header {
		flex-wrap: wrap !important;
	}
	.reservation-header__steps {
		order:       1;
		flex-basis:  100%;
		width:       100%;
	}
}
.reservation-steps {
	list-style: none;
	margin:     0;
	padding:    0;
	display:    flex;
	align-items: flex-start;
	gap:        1.5rem;
}
.reservation-steps__step {
	position:        relative;
	display:         flex;
	flex-direction:  column;
	align-items:     center;
	gap:             0.5rem;
}
.reservation-steps__step + .reservation-steps__step::before {
	content:       '';
	position:      absolute;
	top:           16px;
	transform:     translateY( -50% );
	right:         50%;
	width:         calc( 100% + 1.5rem );
	height:        1px;
	background:    #9a9a9a;
	border-radius: 2px;
	z-index:       0;
}
.reservation-steps__number {
	display:         flex;
	align-items:     center;
	justify-content: center;
	width:           32px;
	height:          32px;
	border-radius:   50%;
	box-sizing:      border-box;
	font-size:       var( --wp--preset--font-size--s );
	font-weight:     500;
	flex-shrink:     0;
	transition:      background 0.2s, color 0.2s, border-color 0.2s;
	border:          1px solid var( --wp--preset--color--black-40 );
	background:      var( --wp--preset--color--sand, #F8E15E );
	color:           var( --wp--preset--color--black );
	opacity:         1;
	position:        relative;
	z-index:         1;
}
.reservation-steps__label {
	font-size:   var( --wp--preset--font-size--s );
	font-weight: 500;
	text-align:  center;
	white-space: nowrap;
}
@media ( max-width: 768px ) {
	.reservation-steps__label {
		display: none;
	}
}
.reservation-steps__step.is-active .reservation-steps__number {
	border-color: var( --wp--preset--color--black );
	background:   var( --wp--preset--color--black );
	color:        var( --wp--preset--color--white );
}
.reservation-steps__step.is-completed {
	cursor: pointer;
}
.reservation-steps__step.is-completed .reservation-steps__number {
	background:   var( --wp--preset--color--black );
	border-color: var( --wp--preset--color--black );
	color:        var( --wp--preset--color--white );
}
.bisiesto-reservation-flow {
	display:        flex;
	flex-direction: column;
	align-items:    center;
	gap:            var( --wp--preset--spacing--24 );
	padding:        2rem var( --wp--preset--spacing--24 );
}
.reservation-flow__step {
	width:         100%;
	max-width:     var( --wp--style--global--content-size );
}
.reservation-flow__step-content {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 80px;
	height: 80px;
	border-radius: 50%;
	background: var(--wp--preset--color--sun-10);
}
.reservation-flow__step-number {
	margin: 0;
	font-size: var(--wp--preset--font-size--lg);
	font-weight: 700;
	line-height: 1;
}
.reservation-flow__actions {
	display: none;
}
.vehicle-card__class {
	align-self:      flex-start;
	background:      var( --wp--preset--color--sky-10 );
	padding:         0.25rem;
	font-size:       var( --wp--preset--font-size--xxxs );
	font-weight:     500;
	text-transform:  uppercase;
	border-radius: 0.25rem;
}
.vehicle-card__name {
	margin:      0;
	font-size:   var( --wp--preset--font-size--md );
	font-weight: 500;
	line-height: 1.2;
}
/* La descripción puede venir como HTML de bloque (<p>, <ul>): domamos márgenes. */
.vehicle-card__name :where( p, ul, ol ) {
	margin: 0;
}
.vehicle-card__name ul {
	padding-left: 1.1em;
}
.vehicle-card__specs {
	display:    flex;
	flex-wrap:  wrap;
	gap:        10px;
	margin-top: 0.25rem;
}
.vehicle-card__spec {
	display:     flex;
	align-items: center;
	gap:         0.25rem;
}
.vehicle-card__spec-icon {
	display:         flex;
	align-items:     center;
	justify-content: center;
	flex-shrink:     0;
	background:      var( --wp--preset--color--sun-10 );
	border-radius:   50%;
	padding:         0.35rem;
}
.vehicle-card__spec-icon svg {
	display: block;
}
.vehicle-card__spec-value {
	font-size:   var( --wp--preset--font-size--xs );
	font-weight: 400;
	line-height: 1;
}
.vehicle-card__details-title {
	margin:      0.5rem 0 0;
	font-size:   var( --wp--preset--font-size--xxxs );
	font-weight: 500;
	line-height: 128%;
}
.vehicle-card__details {
	display:               grid;
	grid-template-columns: 1fr 1fr;
	gap:                   6px;
}
.vehicle-card__detail {
	display:     flex;
	align-items: start;
	gap:         6px;
	font-size:   var( --wp--preset--font-size--xxxs );
	font-weight: 400;
	line-height: 125%;
}
.vehicle-card__detail svg {
	flex-shrink: 0;
	margin-top: 0.25rem;
}
.vehicle-card__details-more {
	align-self:    flex-start;
	margin-top:    0.5rem;
	padding:       0;
	background:    none;
	border:        none;
	border-bottom: 1px solid var( --wp--preset--color--sun );
	font-size:     var( --wp--preset--font-size--xxs );
	font-weight:   500;
	color:         var( --wp--preset--color--black );
	cursor:        pointer;
	line-height:   1.2;
	font-family:     var( --wp--preset--font-family--sans-serif );
}
/* ── Popup detalles de tarifa ─────────────────────── */
.rhqr-modal {
	position:        fixed;
	inset:           0;
	z-index:         1000;
	display:         flex;
	align-items:     center;
	justify-content: center;
	padding:         1rem;
	background:      rgba( 2, 2, 2, 0.40 );
}
.rhqr-modal[hidden] {
	display: none;
}
.rhqr-modal__dialog {
	position:      relative;
	box-sizing:    border-box;
	width:         100%;
	max-width:     1072px;
	max-height:    calc( 100vh - 2rem );
	overflow-y:    auto;
	padding:       2rem;
	background:    var( --wp--preset--color--white );
	border-radius: 1rem;
}
.rhqr-modal__close {
	position:    absolute;
	top:         2rem;
	right:       2rem;
	padding:     0;
	background:  none;
	border:      none;
	cursor:      pointer;
	line-height: 0;
}
.rhqr-modal__title {
	margin:        0 0 2.5rem;
	font-size:     var( --wp--preset--font-size--md );
	font-weight:   500;
	line-height:   112%;
}
body.rhqr-modal-open {
	overflow: hidden;
}
.results-bar {
	display:         flex;
	justify-content: space-between;
	align-items:     center;
	gap:             1.5rem;
	width:           100%;
	max-width:       1192px;
	margin-left:     auto;
	margin-right:    auto;
	margin-bottom:   1.5rem;
}
@media ( max-width: 768px ) {
	.results-bar {
		display: none;
	}
}
.results-bar__summary {
	display:          flex;
	align-items:      center;
	gap:              0.75rem;
	background:       var( --wp--preset--color--gray-light );
	border:           none;
	border-radius:    1rem;
	padding:          1rem 1.5rem;
	font-size:        var( --wp--preset--font-size--xs );
	font-weight:      500;
	cursor:           pointer;
	text-align:       left;
	transition:       background 0.15s ease;
	font-family:      var( --wp--preset--font-family--sans-serif );
}
.results-bar__summary:hover {
	background: var( --wp--preset--color--gray );
}
.results-bar__filters {
	display:     flex;
	align-items: center;
	flex-wrap:   wrap;
	gap:         0.5rem;
	flex-shrink: 0;
}
.results-bar__filter {
	padding:          0.75rem 2rem;
	border-radius:    1.5rem;
	background-color: var( --wp--preset--color--gray-light );
	color:            var( --wp--preset--color--black );
	font-size:        1rem;
	font-weight:      500;
	line-height:      137%;
	border:           none;
	cursor:           pointer;
	white-space:      nowrap;
	transition:       background-color 0.15s ease, color 0.15s ease;
	font-family:     var( --wp--preset--font-family--sans-serif );
}
.results-bar__filter.is-active {
	background-color: var( --wp--preset--color--black );
	color:            var( --wp--preset--color--white );
}
.search-panel__header {
	display: none;
}
.reservation-flow__step[data-step="1"].is-panel-open {
	position:        fixed;
	top:             0;
	left:            0;
	right:           0;
	z-index:         999;
	background:      var( --wp--preset--color--white );
	padding-top:     1.5rem;
	padding-bottom:  1.5rem;
	padding-left:    2rem;
	padding-right:   2rem;
	border-bottom:   1px solid var( --wp--preset--color--gray );
	max-width: calc(100% - 4rem);
}
.admin-bar .reservation-flow__step[data-step="1"].is-panel-open {
	top: 32px;
}

@media screen and ( max-width: 782px ) {
	.admin-bar .reservation-flow__step[data-step="1"].is-panel-open {
		top: 46px;
	}
}
.reservation-flow__step[data-step="1"].is-panel-open .rhqr-search-form {
	box-shadow:    none;
	padding:       0;
	border-radius: 0;
}
/* Al editar la búsqueda en escritorio: una sola línea como el formulario
   de la home (Pick-up · drop-off toggle · Pick-up date · Drop-off date · botón). */
@media ( min-width: 868px ) {
	.reservation-flow__step[data-step="1"].is-panel-open .rhqr-search-form {
		grid-template-columns: repeat( 4, 1fr ) auto;
		align-items:           end;
		max-width:             none;
	}
	.reservation-flow__step[data-step="1"].is-panel-open .rhqr-locations {
		display: contents;
	}
}
.reservation-flow__step[data-step="1"].is-panel-open .search-panel__header {
	display:         flex;
	align-items:     center;
	justify-content: space-between;
	margin-bottom:   1.5rem;
}
.search-panel__title {
	font-size:   var( --wp--preset--font-size--s );
	font-weight: 500;
}
.search-panel__close {
	display:         flex;
	align-items:     center;
	justify-content: center;
	background:      none;
	border:          none;
	cursor:          pointer;
	padding:         0.25rem;
	line-height:     0;
}
.bisiesto-vehicle-list--results {
	display:       flex;
	flex-direction: column;
	gap:           0.625rem;
	width:         100%;
	max-width:     1192px;
	margin-left:   auto;
	margin-right:  auto;
}
.bisiesto-vehicle-list--results .vehicle-card {
	display: grid;
	grid-template-columns: 38fr 38fr 24fr;
	align-items: center;
	gap: 1.5rem;
	padding: 0.75rem;
	overflow: hidden;
	border: 1px solid var( --wp--preset--color--gray );
	border-radius: 1rem;
	background: var( --wp--preset--color--white );
}
.bisiesto-vehicle-list--results .vehicle-card__image {
	position: relative;
	aspect-ratio: 16 / 9;
	width: 100%;
	border-radius: 0.5rem;
	overflow: hidden;
	align-self: stretch;
}
.bisiesto-vehicle-list--results .vehicle-card__image img {
	width: 100%;
	/*height: 100%;*/
	object-fit: cover;
	display: block;
}
.vehicle-card__discount {
	position: absolute;
	top: 0.5rem;
	right: 0.5rem;
	z-index: 1;
	padding: 4px 12px;
	border-radius: 999px;
	background: var( --wp--preset--color--ocean );
	color: var( --wp--preset--color--white );
	font-size: var( --wp--preset--font-size--xs );
	font-weight: 500;
	line-height: 1.2;
}
.bisiesto-vehicle-list--results .vehicle-card__body {
	display:        flex;
	flex-direction: column;
	gap:            0.5rem;
	padding:        0;
	align-self:     start;
}
.bisiesto-vehicle-list--results .vehicle-card__aside {
	display:        flex;
	flex-direction: column;
	align-items:    center;
	gap:            0.25rem;
	padding:        0;
	align-self:     center;
}
.vehicle-card__price-day {
	margin:      0;
	font-size:   var( --wp--preset--font-size--md );
	font-weight: 500;
	line-height: 1;
	text-align:  center;
}
.vehicle-card__price-total {
	margin:      0;
	font-size:   var( --wp--preset--font-size--s );
	font-weight: 500;
	text-align:  center;
	color:       var( --wp--preset--color--gray-dark );
}
.bisiesto-vehicle-list--results .vehicle-card .vehicle-card__price-total {
	margin-bottom: 2.5rem;
}
.vehicle-card__reserve {
	width:            100%;
	white-space:      nowrap;
	font-size:        var( --wp--preset--font-size--xs );
	font-weight:      500;
	background-color: var( --wp--preset--color--sun );
	color:            var( --wp--preset--color--black );
	border:           none;
	border-radius:    var( --wp--custom--radius--m, 8px );
	padding:          0.5rem 1.5rem;
	cursor:           pointer;
	transition:       background-color 0.25s ease;
}
.vehicle-card__reserve:hover {
	background-color: var( --wp--preset--color--sand );
}
.vehicle-card--unavailable {
	opacity: 0.65;
}
.vehicle-card--unavailable .vehicle-card__image img {
	filter: grayscale( 1 );
}
.vehicle-card__reserve:disabled,
.vehicle-card__reserve[disabled] {
	background-color: var( --wp--preset--color--gray, #cfcfcf );
	color:            var( --wp--preset--color--white, #fff );
	cursor:           not-allowed;
}
.vehicle-card__reserve:disabled:hover {
	background-color: var( --wp--preset--color--gray, #cfcfcf );
}
.vehicle-card__badge--soldout {
	display:          inline-block;
	align-self:       flex-start;
	font-size:        var( --wp--preset--font-size--xs );
	font-weight:      600;
	line-height:      1;
	padding:          0.25rem 0.6rem;
	border-radius:    999px;
	background-color: var( --wp--preset--color--gray, #e6e6e6 );
	color:            var( --wp--preset--color--black, #020202 );
}
.step3-layout {
	display:               grid;
	grid-template-columns: 1fr 400px;
	gap:                   2rem;
	width:                 100%;
	max-width:             1216px;
	margin-left:           auto;
	margin-right:          auto;
	align-items:           start;
}
.step3-summary {
	height: 100%;
}
@media ( max-width: 900px ) {
	.step3-layout {
		grid-template-columns: 1fr;
		padding-bottom:        12rem;
	}
}
.reservation-summary {
	position:      sticky;
	top:           1rem;
	background:    var( --wp--preset--color--white );
	border:        1px solid var( --wp--preset--color--gray );
	border-radius: 1rem;
	padding:       0.75rem;
	display:       flex;
	flex-direction: column;
	gap:           0.75rem;
}
.summary__handle {
	display: none;
}
.summary__close {
	display: none;
}
.summary__peek {
	display: none;
}
.summary-backdrop {
	display: none;
}
.summary-backdrop.is-visible {
	display:    block;
	position:   fixed;
	inset:      0;
	z-index:    199;
	background: rgba( 2, 2, 2, 0.20 );
}
@media ( max-width: 900px ) {
	:is( .step3-summary, .step4-summary ) .reservation-summary {
		position:      fixed;
		bottom:        0;
		left:          0;
		right:         0;
		top:           auto;
		z-index:       200;
		border:        none;
		border-top:    1px solid var( --wp--preset--color--gray );
		border-radius: 1rem 1rem 0 0;
		box-shadow:    0 -4px 24px rgba( 0, 0, 0, 0.12 );
		max-height:    85vh;
		overflow-y:    auto;
		padding-top:   0.5rem;
	}
	:is( .step3-summary, .step4-summary ) .summary__handle {
		display:       block;
		width:         2.5rem;
		height:        4px;
		border:        none;
		border-radius: 2px;
		background:    var( --wp--preset--color--gray );
		margin:        0 auto 0.25rem;
		padding:       0;
		cursor:        pointer;
		flex-shrink:   0;
	}
	:is( .step3-summary, .step4-summary ) .reservation-summary:not( .is-expanded ) > :not( .summary__handle ):not( .summary__peek ):not( .summary__next-btn ) {
		display: none;
	}
	:is( .step3-summary, .step4-summary ) .reservation-summary:not( .is-expanded ) .summary__peek {
		display: flex;
		flex-direction: column;
		gap: 0.25rem;
	}
	:is( .step3-summary, .step4-summary ) .reservation-summary.is-expanded .summary__peek {
		display: none;
	}
	:is( .step3-summary, .step4-summary ) .reservation-summary.is-expanded .summary__close {
		display:     flex;
		position:    absolute;
		top:         1rem;
		right:       1rem;
		background:  none;
		border:      none;
		padding:     0.25rem;
		cursor:      pointer;
		line-height: 0;
		z-index:     1;
	}
	.summary__peek-location {
		margin:      0;
		font-size:   var( --wp--preset--font-size--s );
		font-weight: 500;
	}
	.summary__peek-row {
		display:         flex;
		justify-content: space-between;
		align-items:     baseline;
		gap:             0.5rem;
	}
	.summary__peek-dates {
		font-size: var( --wp--preset--font-size--xxxs );
		color:     var( --wp--preset--color--gray-dark );
	}
	.summary__peek-total {
		font-size:   var( --wp--preset--font-size--s );
		font-weight: 500;
	}
	:is( .step3-summary, .step4-summary ) .summary__vehicle {
		flex-direction: column;
		align-items:    flex-start;
		gap:            0.5rem;
	}
	:is( .step3-summary, .step4-summary ) .summary__vehicle-img {
		max-width: none;
		width:     100%;
	}
}
.summary__vehicle {
	display:     flex;
	align-items: center;
	gap:         0.75rem;
}
.summary__vehicle-img {
	width:         auto;
	max-width:     144px;
	height:        auto;
	border-radius: 0.5rem;
	object-fit:    cover;
	flex-shrink:   0;
}
.summary__vehicle-name {
	margin:      0;
	font-size:   var( --wp--preset--font-size--s );
	font-weight: 500;
}
.summary__dates {
	position: relative;
	display:               grid;
	grid-template-columns: 1fr 1.3fr;
	gap:                   2rem;
	background:            var( --wp--preset--color--gray-light );
	border-radius:         0.5rem;
	padding:               0.5rem 0.75rem;
}
.summary__dates-col {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
}
.summary__dates-col:first-child {
	position: relative;
}
.summary__dates-col:first-child::after {
	content: '';
	position: absolute;
	right: -1rem;
	top: 0.5rem;
	bottom: 0.5rem;
	width: 1px;
	background: var( --wp--preset--color--gray );
}
.summary__dates-col > p,
.summary__dates-col .summary__dates-header > p{
	line-height: 128%;
}
.summary__dates-edit {
	position: absolute;
	top: 1rem;
	right: 1rem;
	display: flex;
	background: none;
	border: none;
	padding: 0;
	cursor: pointer;
}
.summary__dates .summary__dates-col:nth-child(2) .summary__value{
	padding-right: 2rem;
}
.summary__dates-edit:hover {
	opacity: 1;
}
.summary__dates .summary__value {
	font-size: var( --wp--preset--font-size--xxxs );
	font-weight: 500;
	color: var( --wp--preset--color--black );
}
.summary__extras-toggle {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	background: none;
	border: none;
	padding: 0;
	cursor: pointer;
	font-size: var( --wp--preset--font-size--xs );
	font-weight: 500;
	color: var( --wp--preset--color--black );
}
.summary__extras-toggle svg {
	transition: transform 0.2s ease;
	flex-shrink: 0;
}
.summary__extras.is-collapsed .summary__extras-toggle svg {
	transform: rotate( 180deg );
}
.summary__extras-content {
	display:        flex;
	flex-direction: column;
	gap:            0.25rem;
	margin-top:     0.5rem;
	font-size:      var( --wp--preset--font-size--xs );
	font-weight:    400;
}
.summary__extras.is-collapsed .summary__extras-content {
	display: none;
}
.summary__price-row {
	display:         flex;
	justify-content: space-between;
	align-items:     center;
	gap:             0.5rem;
	font-size:       var( --wp--preset--font-size--xs );
	font-weight:     500;
}
.summary__section {
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
}
.summary__label {
	margin:      0;
	font-size:   var( --wp--preset--font-size--xxxs );
	font-weight: 500;
	color:       var( --wp--preset--color--gray-dark );
}
.summary__value {
	margin: 0;
	font-size: 0.9rem;
	font-weight: 600;
}
.summary__meta {
	margin: 0;
	font-size: var( --wp--preset--font-size--xxxs );
	font-weight: 500;
}
.summary__line {
	display: flex;
	justify-content: space-between;
	gap: 0.5rem;
	font-size: var( --wp--preset--font-size--xs );
}
.summary__line--discount {
	color: #16a34a;
	font-weight: 600;
}
.summary__divider {
	height: 1px;
	background: var(--wp--preset--color--gray);
}
.summary__total {
	display: flex;
	justify-content: space-between;
	font-size: var( --wp--preset--font-size--s );
	font-weight: 500;
}
.summary__loading {
	display: inline-flex;
	gap: 0.12em;
	line-height: 1;
}
.summary__loading span {
	display: inline-block;
	animation: rhqr-bounce 1.2s ease-in-out infinite;
}
.summary__loading span:nth-child(2) { animation-delay: 0.2s; }
.summary__loading span:nth-child(3) { animation-delay: 0.4s; }
.summary__paynow {
	display: flex;
	justify-content: space-between;
	font-size: var( --wp--preset--font-size--s );
	font-weight: 500;
	color: var( --wp--preset--color--success );
	margin-top: 0.25rem;
}
.summary__next-btn {
	width: 100%;
	background-color: var( --wp--preset--color--sun );
	color: var( --wp--preset--color--black );
	border: none;
	border-radius:    var( --wp--custom--radius--m, 8px );
	padding: 0.5rem 1.5rem;
	font-size: var( --wp--preset--font-size--xs );
	font-weight: 500;
	cursor: pointer;
	transition: background-color 0.25s ease;
}
.summary__next-btn:hover {
	background-color: var( --wp--preset--color--sand );
}

.summary__prepaid {
	display: flex;
	justify-content: space-between;
	font-size: 0.9rem;
	font-weight: 600;
	color: #2563eb;
	margin-top: 0.25rem;
}
.reservation-extras {
	display: flex;
	flex-direction: column;
	gap:   2.5rem;
	width: 100%;
}
.extras-category__title {
	margin:      0 0 1rem;
	font-size:   var( --wp--preset--font-size--s );
	font-weight: 500;
	line-height: 125%;
	color:       var( --wp--preset--color--black );
}
.extras-category__items {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}
.extras-card {
	display:               grid;
	grid-template-columns: 1fr auto auto;
	align-items:           center;
	gap:                   1rem;
	padding:               0.75rem;
	border:                1px solid var( --wp--preset--color--gray );
	border-radius:         1rem;
	background:            var( --wp--preset--color--white );
	transition:            border-color 0.15s;
}

.extras-card__control {
	display:     flex;
	align-items: center;
}
.extras-card.is-selected {
	border-color: var(--wp--preset--color--black);
}
.extras-card__icon {
	font-size: 1.5rem;
	width: 2rem;
	text-align: center;
}
.extras-card__body {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
}
.extras-card__name {
	margin:      0;
	font-size:   var( --wp--preset--font-size--s );
	font-weight: 500;
}
.extras-card__badge {
	display:          inline-block;
	background-color: var( --wp--preset--color--sand );
	color:            var( --wp--preset--color--black );
	border-radius:    1rem;
	padding:          4px 12px;
	font-size:        var( --wp--preset--font-size--xs );
	font-weight:      500;
}
.extras-card__desc {
	font-size:   var( --wp--preset--font-size--xxxs );
	font-weight: 400;
	opacity:     0.7;
}
.extras-card__desc ul {
	margin: 0;
	padding-left: 1.2em;
}
.extras-card__aside {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 0.4rem;
	min-width: 110px;
}
.extras-card__price {
	margin:      0;
	font-size:   var( --wp--preset--font-size--s );
	font-weight: 500;
}
.extras-card__price-note {
	display: none;
	font-weight: 400;
	opacity:     0.6;
	white-space: nowrap;
}
.extras-card__total {
	margin: 0;
	font-size: 0.8rem;
	opacity: 0.6;
}
.extras-card__toggle {
	white-space: nowrap;
}

.extras-switch {
	display:       inline-flex;
	align-items:   center;
	width:         56px;
	height:        32px;
	border-radius: 1rem;
	background:    var( --wp--preset--color--gray );
	border:        none;
	padding:       0.25rem;
	cursor:        pointer;
	box-sizing:    border-box;
	transition:    background 0.3s cubic-bezier( 0.4, 0, 0.2, 1 );
	flex-shrink:   0;
}

.extras-switch[aria-checked="true"] {
	background: var( --wp--preset--color--black );
}

.extras-switch__thumb {
	width:         24px;
	height:        24px;
	border-radius: 50%;
	background:    var( --wp--preset--color--white );
	transform:     translateX( 0 );
	transition:    transform 0.3s cubic-bezier( 0.4, 0, 0.2, 1 );
	flex-shrink:   0;
}

.extras-switch[aria-checked="true"] .extras-switch__thumb {
	transform: translateX( 24px );
}
.extras-card__qty {
	display:       flex;
	align-items:   center;
	gap:           0.5rem;
	background:    var( --wp--preset--color--gray );
	border-radius: 1rem;
	padding:       0.25rem;
}
.extras-card__qty.is-active {
	background: var( --wp--preset--color--black );
}

.extras-card__qty-btn {
	display:         flex;
	align-items:     center;
	justify-content: center;
	width:           24px;
	height:          24px;
	border-radius:   50%;
	border:          none;
	cursor:          pointer;
	font-size:       1rem;
	line-height:     1;
	padding:         0;
	flex-shrink:     0;
	background:      transparent;
	color:           var( --wp--preset--color--white );
}

.extras-card__qty-btn[data-action="plus"] {
	background: var( --wp--preset--color--white );
	color:      var( --wp--preset--color--black );
}

.extras-card__qty-btn:disabled {
	opacity: 0.3;
	cursor:  not-allowed;
}

.extras-card__qty-value {
	min-width:   1rem;
	text-align:  center;
	font-weight: 500;
	color:       var( --wp--preset--color--white );
	font-size:   var( --wp--preset--font-size--s );
}
@media ( max-width: 640px ) {
	.extras-card {
		grid-template-columns: auto 1fr;
		grid-template-rows: auto auto;
	}
	.extras-card__aside {
		grid-column: 1 / -1;
		flex-direction: row;
		justify-content: space-between;
		align-items: center;
		min-width: unset;
	}
}
.step4-layout {
	display: grid;
	grid-template-columns: 1fr 400px;
	gap: 2rem;
	width: 100%;
	max-width:    1216px;
	margin-left:  auto;
	margin-right: auto;
	align-items: start;
}
/* El wrapper ocupa toda la altura de la fila para que el resumen
   (position: sticky) tenga recorrido y quede fijo al hacer scroll. */
.step4-summary {
	height: 100%;
}
@media ( max-width: 900px ) {
	.step4-layout {
		grid-template-columns: 1fr;
		padding-bottom:        12rem;
	}
}
.step4-form {
	display: flex;
	flex-direction: column;
	gap: 2rem;
}
.booking-section {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}
.booking-section__title {
	margin:      0;
	font-size:   var( --wp--preset--font-size--s );
	font-weight: 500;
	line-height: 125%;
}
.booking-returning__label {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	cursor: pointer;
	font-size: 0.95rem;
}
.booking-returning__check {
	width: 1rem;
	height: 1rem;
	cursor: pointer;
	flex-shrink: 0;
}
.booking-consents {
	display:        flex;
	flex-direction: column;
	gap:            0.75rem;
}
.booking-consents .booking-returning__label {
	font-size:   var( --wp--preset--font-size--xxxs );
	font-weight: 400;
}
.payment-options {
	display:        flex;
	flex-direction: column;
	gap:            0.75rem;
}
.payment-option {
	display:       flex;
	align-items:   center;
	gap:           0.5rem;
	width:         100%;
	cursor:        pointer;
	font-size:     var( --wp--preset--font-size--xs );
	font-weight:   500;
	border:        1px solid var( --wp--preset--color--gray );
	border-radius: 1rem;
	padding:       0.75rem;
	box-sizing:    border-box;
}
.payment-option input {
	appearance:         none;
	-webkit-appearance: none;
	width:              1.25rem;
	height:             1.25rem;
	margin:             0;
	cursor:             pointer;
	flex-shrink:        0;
	border:             1px solid var( --wp--preset--color--black );
	border-radius:      50%;
	padding:            4px;
	background-color:   transparent;
	background-clip:    content-box;
}
.payment-option input:checked {
	background-color: var( --wp--preset--color--sun );
}
.booking-fields {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem 1.5rem;
}
.booking-section__fields {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem 1.5rem;
}
.booking-field {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	grid-column: 1 / -1;
}
.booking-field--half {
	grid-column: span 1;
}
.booking-submit {
	width: 100%;
}
.coupon-row {
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
}
.coupon-input-group {
	display: flex;
	gap: 0.5rem;
}
.coupon-input-group .booking-field__input {
	flex: 1;
}
.coupon-apply {
	white-space: nowrap;
	flex-shrink: 0;
}
.coupon-feedback {
	font-size: 0.85rem;
	min-height: 1.2em;
}
.coupon-feedback--valid {
	color: #16a34a;
}
.coupon-feedback--invalid {
	color: #dc2626;
}
.coupon-feedback--notice {
	color: #b45309;
}
@media ( max-width: 640px ) {
	.booking-fields,
	.booking-section__fields {
		grid-template-columns: 1fr;
	}
	.booking-field--half {
		grid-column: 1 / -1;
	}
	.booking-submit {
		width: 100%;
	}
}
@media ( max-width: 640px ) {
	.bisiesto-reservation-flow {
		padding: 2rem 0;
	}

	.bisiesto-vehicle-list--results .vehicle-card {
		grid-template-columns: 1fr;
	}

	.bisiesto-vehicle-list--results .vehicle-card__image {
		aspect-ratio: 16 / 9;
		height: auto;
		border-radius: 0;
	}

	.bisiesto-vehicle-list--results .vehicle-card__body {
	}

	.bisiesto-vehicle-list--results .vehicle-card__aside {
		width: 100%;
		display: grid;
		grid-template-columns: auto auto 1fr;
		align-items: baseline;
		gap: 1rem;
	}

	.bisiesto-vehicle-list--results .vehicle-card__price-day {
		text-align: left;
	}

	.bisiesto-vehicle-list--results .vehicle-card__price-total {
		text-align: left;
	}

	.bisiesto-vehicle-list--results .vehicle-card .vehicle-card__price-total {
		margin-bottom: 0;
	}

	.bisiesto-vehicle-list--results .vehicle-card__reserve {
		grid-column: 1 / -1;
		width: 100%;
	}

	.extras-card__qty {
		padding: 0.25rem;
	}
}