
#bookings-carousel .error.visited:not(:focus),
#bookings-carousel .error.visited:not(:focus) + .select2-container > .selection > .select2-selection { background: var(--field-error-background-color) !important; }
#bookings-carousel .select2-container.error { background: none !important; }
#bookings-carousel .select2-container.error .select2-selection--single { background: transparent; }

#booking-details-section { width: 550px; max-width: 90vw; margin: 30px auto; }
#booking-details-section img { object-fit: cover; max-width: 100%; height: 100%; }
#booking-details-section #resort-details p { color: #949494; font-size: 16px; font-weight: 300; margin-bottom: 0; }
#booking-details-section #resort-details p#guests-p,
#booking-details-section #resort-details p#dates-p { color: #575757; font-size: 18px; font-weight: 500; display: flex; height: 36px; }
#booking-details-section #resort-details p#dates-p > span:first-child { padding: 8px 0; height: 40px; line-height: 1; }
#booking-details-section #resort-details p#guests-p > span:first-child { padding: 8px 0; height: auto; line-height: 1; }
#booking-details-section #resort-details #choices-0-property-id + .select2-container { margin-bottom: 4px; }
#booking-details-section #guests-row { margin-top: 30px; font-size: 18px; font-weight: 300; color: #575757; letter-spacing: 0.03em; }
#booking-details-section #dates-row { margin-top: 8px; margin-bottom: 18px; font-size: 18px; font-weight: 300; color: #575757; }
#booking-details-section #dates { width: 250px; letter-spacing: -0.02em; padding: 0; font-weight: 500; text-align: center; background: transparent; border-color: transparent; outline-color: transparent; border-radius: 8px; }
#booking-details-section #guests,
#booking-details-section #dates { float: right; }
#booking-details-section #average-cost-per-night-row { margin-top: 4px; font-size: 18px; font-weight: 300; color: #575757; }
#booking-details-section #point-price-row { margin-top: 4px; margin-bottom: 8px; font-size: 18px; font-weight: 300; color: #575757; }
#booking-details-section #guests-row span#guests,
#booking-details-section #dates-row span#dates { font-weight: 550; margin-right: 0; letter-spacing: 0; }
#booking-details-section #average-cost-per-night-row #average-cost-per-night,
#booking-details-section #point-price-row #point-price { font-weight: 550; letter-spacing: 0; }
#booking-details-section a.edit { text-transform: uppercase; text-underline-offset: 3px; font-size: 14px; font-weight: 600; color: #949494; letter-spacing: 0.02em; }
#booking-details-section #price-details-row h4 { border-top: 1px solid #777; font-size: 22px; color: #575757; padding-top: 16px; margin-top: 18px; }
#booking-details-section #total-price-top-border { border-top: 1px solid #777; }
#booking-details-section #total-price-row { font-size: 21px; color: #575757; margin-top: 8px; font-weight: 300; }
#booking-details-section #total-price { font-size: 30px; font-weight: 550; letter-spacing: 0.05em; }
#booking-details-section i.bi-info-circle { color: #8E4199; font-size: 18px; }
#booking-details-section i.bi-info-circle::before { font-weight: 700 !important; }

#booking-details-section #choices-0-property-id + .select2-container { font-size: 1.5rem; font-weight: 500; }
#booking-details-section #choices-0-property-id + .select2-container .select2-selection--single .select2-selection__rendered { overflow: visible; text-overflow: unset; white-space: normal; }
#booking-details-section #choices-0-property-id + .select2-container--dvcrequest-transparent .select2-selection--single { height: auto; }

#booking-details-section #choices-0-room-view + .select2-container { font-weight: 300; }

#booking-details-section #adults + .select2-container   { width: 110px !important; height: 40px; margin-left: 0; margin-right: 0; margin-top: -5px; }
#booking-details-section #adults + .select2-container--dvcrequest-transparent .select2-selection--single { padding-top: 6px; padding-bottom: 6px; height: 40px; }
#booking-details-section #adults + .select2-container--dvcrequest-transparent .select2-selection--single .select2-selection__arrow { height: 40px; }
#select2-adults-results .select2-results__option { padding: 8px 12px; }
#booking-details-section #children + .select2-container { width: auto !important; height: 40px; margin-left: 0; margin-right: -8px; margin-top: -5px; }
#booking-details-section #children + .select2-container--dvcrequest-transparent .select2-selection--single { padding-top: 6px; padding-bottom: 6px; height: 40px; }
#booking-details-section #children + .select2-container--dvcrequest-transparent .select2-selection--single .select2-selection__arrow { height: 40px; }
#select2-children-results .select2-results__option { padding: 8px 12px; }

#contact-information-section { width: 650px; max-width: 90vw; margin: 40px auto; background: #fff; border-radius: 8px; padding: 28px 50px; box-shadow: 0 10px 20px rgba(0,0,0,0.05); }
#contact-information-section h5 { font-size: 22px; color: #575757; margin-bottom: 8px; text-align: center; }
#contact-information-section .row .col-12 { margin-bottom: 12px; }
#contact-information-section .row:last-child .col-12 { margin-bottom: 0; }
#contact-information-section input { background: #f5f5f5; border-radius: 6px; border: 0; width: 100%; padding: 12px 16px; }

#alternates-section { width: 880px; max-width: 90vw; margin: 50px auto 30px; }
#alternates-section label { font-weight: 600; font-size: 18px; color: #575757; display: block; width: 100%; max-width: 500px; margin: 0 auto; }
#alternates-section .alternate { position: relative; background: #fff; border-radius: 8px; width: 100%; max-width: 500px; margin: 0 auto 50px; height: auto; box-shadow: 0px 10px 40px 0px #0000001A; padding: 25px; }
#alternates-section .alternate .btn-close { position: absolute; width: 0.5em; height: 0.5em; top: 0; right: 0; margin: 5px; }
#alternates-section label.disabled,
#alternates-section .alternate.disabled { opacity: 0.3; }
#alternates-section .alternate select,
#alternates-section .alternate .select2-container { width: 100% !important; }
#alternates-section .alternate input.check-in-out { width: 100%; border: 1px solid #e9e9e9; border-radius: 8px; padding: 12px 20px; }
#alternates-section .alternate .select2-container--dvcrequest { margin-bottom: 15px; }
#alternates-section .alternate .select2-container--dvcrequest.select2-container--disabled .select2-selection__arrow { display: none; }
#alternates-section .alternate .select2-container--dvcrequest.select2-container--disabled .select2-selection--single { background-color: #f4f4f4; border: 1px solid #ddd; }
#alternates-section .alternate .select2-container--dvcrequest .select2-selection--single .select2-selection__placeholder { color: #999; }
#alternates-section .alternate input.check-in-out::placeholder { color: #999; }
#alternates-section .alternate input[disabled] { background-color: #f4f4f4; border-color: #dddddd; cursor: not-allowed; }
#alternates-section .alternate input[disabled]::placeholder { color: #999; }
#alternates-section .alternate .alternate-details { position: relative; border: 1px solid #e9e9e9; border-radius: 8px; padding: 12px 20px; }
#alternates-section .alternate .alternate-details .row :first-child { font-weight: 300; }
#alternates-section .alternate .alternate-details .point-price .points,
#alternates-section .alternate .alternate-details .average-cost-per-night { font-weight: 600; }
#alternates-section .alternate .alternate-details .total-price-row { font-size: 20px; border-top: 1px solid #e9e9e9; margin-top: 6px; padding-top: 6px; }
#alternates-section .alternate .alternate-details .total-price { font-weight: 600; }
#alternates-section .alternate .alternate-details .spinner-border { display: none; width: 5rem; height: 5rem; position: absolute; left: calc(50% - 2.5rem); }

#guests-section { width: 625px; max-width: 90vw; margin: 30px auto; }

#guests-section #guest-counts-row { margin-bottom: 30px; padding: 0 60px; }
#guests-section #guest-counts-row .col { text-align: center; }
#guests-section #guest-counts-row label { display: block; }

#guests-section .col.title { display: flex; padding-top: 10px; border-radius: 8px; margin-left: calc(0.5 * var(--bs-gutter-x)); margin-right: calc(0.5 * var(--bs-gutter-x)); margin-bottom: 12px; }
#guests-section .col.title label { flex: 1 1 auto !important; display: flex; align-items: center; margin-bottom: 12px; color: #575757; font-size: 15px; }
#guests-section .col.title .select2-container { margin: -12px -12px 0; width: calc(100% + 24px) !important; }
#guests-section input[type="radio"] { accent-color: #8E4199; width: 18px; height: 18px; margin-right: 5px; opacity: 0.8; }
#guests-section input[type="text"],
#guests-section input[type="number"] { background: #f5f5f5; border-radius: 8px; border: 0; width: 100%; margin-bottom: 12px; padding: 12px 15px; font-size: 15px; }
#guests-section div.btn-group.yesno { display: none; }
#guests-section input[type="checkbox"] { margin-right: 10px; accent-color: #A440BF; width: 18px; height: 18px; position: relative; top: 3px; }
#guests-section .control-group.checkbox { margin-top: 5px; margin-bottom: 16px; }
#guests-section .control-group.checkbox label { cursor: pointer; font-size: 14px; color: #575757; }

#guests-section .select2-container { width: 100% !important; margin-bottom: 12px; }
#guests-section .select2-container--dvcrequest-grey .select2-selection--single .select2-selection__placeholder { color: #717171; font-size: 15px; font-weight: 400; }
#guests-section .select2-container--dvcrequest-grey .select2-selection--single .select2-selection__rendered { line-height: 21.5px; }
.select2-container--dvcrequest-grey .select2-selection--single { border-radius: 8px; height: 46.5px; padding: 12px 15px; }
#guests-section .select2-container--dvcrequest-grey .select2-selection--single .select2-selection__arrow { height: 46.5px; }

#guests-section .accordion .accordion-item { border: 0; border-radius: 8px; margin-bottom: 40px; box-shadow: 0px 10px 40px 0px #0000001A; }
#guests-section .accordion .accordion-header { font-size: 20px; text-align: left; }
#guests-section .accordion .accordion-button { background: transparent; box-shadow: none; font-size: 20px; font-weight: 550; text-transform: uppercase; color: #777777; letter-spacing: 0.06em; align-items: center; padding: 24px 32px 24px 62px; }
#guests-section .accordion .accordion-button i { color: #8e4199; font-size: 18px; margin-left: 10px; }
#guests-section .accordion .accordion-header small { display: block; padding-left: 62px; font-size: 15px; color: #777; font-weight: 300; font-style: italic; letter-spacing: 0; line-height: 1.5; margin-top: -24px; transition: opacity 0.5s; }
#guests-section .accordion .accordion-header .accordion-button.collapsed + small { opacity: 0; }
#guests-section .accordion .accordion-body { padding: 10px 60px 20px; }


.tooltip .tooltip-inner { background: #575757; font-size: 13px; line-height: 1.3; text-align: left; max-width: 300px; }
.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before, .bs-tooltip-end .tooltip-arrow::before { border-right-color: #575757; }


#accessibility-comments,
#travel-credit-details,
#split-stay-comments,
#additional-comments,
#referrer-section { width: 650px; max-width: 100%; margin: 0 auto; text-align: center; background: #fff; box-shadow: 0px 10px 40px 0px #0000000D; padding: 20px 60px; border-radius: 8px; }
#additional-comments,
#referrer-section { margin-top: 120px; }
#accessibility-comments label { color: #777777; font-size: 16px; padding-bottom: 20px; }
#split-stay-comments label { color: #777777; font-size: 16px; padding-bottom: 20px; text-align: left; }
#referrer-comments { margin-top: 20px; }
#accessibility-comments textarea,
#split-stay-comments textarea,
#additional-comments textarea,
#referrer-comments textarea { width: 100%; height: 200px; padding: 15px; border-radius: 8px; background: #f5f5f5; border: 0; }
#travel-credit-details input { width: 100%; padding: 12px 15px; border-radius: 8px; background: #f5f5f5; border: 0; margin-bottom: 12px; font-size: 15px; }
#travel-credit-details h3 { text-align: left; text-transform: uppercase; font-weight: 600; color: #777; letter-spacing: 0.06em; margin-bottom: 3px; }
#additional-comments h3 { text-align: left; text-transform: uppercase; font-weight: 600; color: #777; letter-spacing: 0.06em; margin-bottom: 10px; }
#travel-credit-details p { text-align: left; font-size: 15px; }
#referrer-section .select2-container { width: 300px !important; margin-bottom: 0; }


#disclosure-section,
#property-notices-section,
#terms-fields-section { width: 650px; max-width: 100%; margin: 80px auto 0; text-align: left; background: #fff; box-shadow: 0px 10px 40px 0px #0000000D; padding: 24px 60px; border-radius: 8px; }
#disclosure-section h5,
#property-notices-section h5,
#terms-fields-section h5 { font-size: 20px; font-weight: 550; text-transform: uppercase; color: #777777; letter-spacing: 0.06em; margin-bottom: 20px; }
#disclosure-section ul { padding-left: 20px; }
#disclosure-section ul li { padding-bottom: 1rem; line-height: 1.5; }
#disclosure-section ul li a { color: #8E4199; }
#disclosure-section table { margin-bottom: 2rem; }
#disclosure-section table tr {  }
#disclosure-section table tr th { text-align: center; color: #8e4199; line-height: 1.2; padding: 1rem 0; }
#disclosure-section table tr td { text-align: center; line-height: 1.2; padding: 1rem 0; border-top: 1px solid #777; }
#property-notices-section p.title { font-size: 17px; font-weight: 500; margin-bottom: 0.5rem; color: #575757; }
#property-notices-section p.description { font-size: 15px; margin-bottom: 2rem; }
#property-notices-section p.description a { color: #8e4199 !important; }

#terms-fields-section > label { display: block; padding: 6px 12px 0; border-radius: 10px 10px 0 0; }
#terms-fields-section > label + .radio-toggle { margin-top: 0; }
#terms-fields-section > label + .radio-toggle.error.visited { border-radius: 0 0 10px 10px; }

#referrer-section .select2-container--dvcrequest-grey .select2-selection--single .select2-selection__rendered { line-height: 20px; }
#referrer-section .select2-container--dvcrequest-grey .select2-selection--single .select2-selection__arrow { height: 44px; }

#booking-summary { background: #fff; border-radius: 12px; box-shadow: 0px 12.5px 50px 0px #0000001A; padding: 4px 56px 32px; font-size: 15px; line-height: 1.3; margin-top: 40px; margin-bottom: 20px; }
#booking-summary h5 { margin-top: 2rem; margin-bottom: 4px; text-transform: uppercase; font-weight: 550; letter-spacing: 0.06em; color: #777; }
#booking-summary .row .col { padding-top: 4px; padding-bottom: 4px; border-top: 1px solid #d7d7d7; color: #575757; }
#booking-summary .row .col:first-child { font-weight: 500; }

#terms-fields-section .g-recaptcha { max-width: 305px; margin: 50px auto 0; }

#payment-summary { padding: 4px 36px 12px; background: #FFFBF0; border-radius: 8px; box-shadow: 0px 12.5px 50px 0px #0000001A; font-size: 15px; color: #575757; line-height: 1.2; margin-bottom: 40px; margin-top: 40px; }
#payment-summary h5,
#payment-summary h6 { margin-bottom: 0; }
#payment-summary .row .col { display: flex; align-items: center; padding-top: 18px; padding-bottom: 18px; }
#payment-summary .row .col:first-child {  }
#payment-summary .row .col:last-child { line-height: 1; font-weight: 300; justify-content: end; }
#payment-summary .row + .row:not(.no-border) { border-top: 1px solid #D7D7D7; }
#payment-summary .row.no-border .col { padding-top: 0; }

#payment-methods { padding: 4px 36px 12px; background: #fff; border-radius: 8px; box-shadow: 0px 12.5px 50px 0px #0000001A; font-size: 15px; color: #575757; margin-bottom: 20px; }
#payment-methods .row .col { padding-top: 0; padding-bottom: 0; }
#payment-methods .row .col.method { display: flex; align-items: center; }
#payment-methods .row .col.method label { display: block; width: 100%; padding: 24px 0; }
#payment-methods .row .col.icon { line-height: 1; font-weight: 300; text-align: right; display: flex; align-items: center; justify-content: end; }
#payment-methods .row .col.icon img { height: 36px; }
#payment-methods .row .col.method input[type="checkbox"],
#payment-methods .row .col.method input[type="radio"] { width: 20px; height: 20px; margin-right: 6px; accent-color: #8e4199; position: relative; top: 4px; }
#payment-methods .row .col.fields { padding-left: 26px; position: relative; top: -10px; font-size: 14px; }
#payment-methods #payment-methods-accordion > .row { border-top: 1px solid #D7D7D7; }
#payment-methods #paypal-button,
#payment-methods #googlepay-button,
#payment-methods #applepay-button { margin-top: 20px; padding-left: 46px; padding-right: 46px; }
#payment-methods #applepay-button #btn-appl { padding-top: 3px; padding-bottom: 5px; width: 100%; border: 1px solid #333; border-radius: 20px; overflow: hidden; }
.gpay-button.white.long.en,
.gpay-card-info-container { width: 100%; }

#payment-methods #giftcard-number,
#payment-methods #giftcard-pin,
#payment-methods #giftcard-initial-amount,
#payment-methods #giftcard-balance-remaining,
#payment-methods #giftcard-amount { width: 100%; padding: 6px 8px; border: 0; background: #f5f5f5; border-radius: 6px; outline: 0; }
#payment-methods #giftcard-lookup-btn { width: 100%; padding: 5px 10px; height: 100%; }
#payment-methods #giftcard-lookup-collapse { border-top: 1px solid #d7d7d7; margin-top: 5px; padding-top: 5px; }
#payment-methods #giftcard-lookup-collapse .row { margin-bottom: 4px; }
#payment-methods #giftcard-lookup-collapse .row .col.label { display: flex; justify-content: end; align-items: center; }
#payment-methods #giftcard-lookup-collapse .row input { text-align: right; }
#payment-methods #giftcard-lookup-collapse button { width: 100%; height: 35px; padding: 4px 20px; }

#payment-methods #accordion-credit-card .card-field { background: #f5f5f5; border-radius: 6px; padding: 5px 10px; height: 33px; margin-bottom: 6px; }

#existing-booking-draft-modal .modal-body { padding-left: 30px; }

#dataConfirmModal .modal-body { padding: 16px 32px 16px 30px; }

body.fixed-form .form-nav ul li.next a.btn { padding-left: 0; padding-right: 0; justify-content: center; width: 110px; }

@media ( max-width: 991px ) {
	body.fixed-form #form-nav-mobile ul li[data-step="4"] a span br { display: none; }
	
	.radio-toggle, #additional-comments, #referrer-section { margin-top: 80px; }
}
@media ( max-width: 767px ) {
	body.fixed-form #form-nav-mobile ul li[data-step="4"] a span br { display: inline; }
	#guests-section #guest-counts-row { padding: 0; }
	.radio-toggle, #additional-comments, #referrer-section { margin-top: 60px; }
}
@media ( max-width: 575px ) {
	#booking-details-section #resort-details p#guests-p > span:first-child { width: 80px; }
	#booking-details-section #adults + .select2-container,
	#booking-details-section #children + .select2-container { width: calc(50% - 40px) !important; }

	#guests-section .accordion .accordion-body { padding: 10px 20px 20px; }
	#guests-section #guest-counts-row { padding: 0 20px; }
	#guests-section #title-mobile { width: 100%; margin-bottom: 12px; border: 0; height: 46.5px; padding-left: 20px; border-radius: 8px; background: #f5f5f5; }

	#accessibility-comments, #travel-credit-details, #split-stay-comments, #additional-comments, #referrer-section { padding-left: 40px; padding-right: 40px; }
	#disclosure-section, #property-notices-section, #terms-fields-section { padding-left: 40px; padding-right: 40px; }
	.radio-toggle, #additional-comments, #referrer-section { margin-top: 40px; }
	
	#payment-summary .row .col:last-child { justify-content: start;m }
}
@media ( max-width: 399px ) {
	#guests-section #guest-counts-row { padding: 0; }
}

