/*
Theme Name: Alloggio Child
Theme URI: https://alloggio.qodeinteractive.com
Description: A child theme of Alloggio
Author: Edge Themes
Author URI: https://qodeinteractive.com
Version: 1.0.0
Text Domain: alloggio
Template: alloggio
*/

/* Hide original price span and currency (JS still updates them for booking/quote) */
.qodef-m-price .qodef-m-price-currency,
.qodef-m-price .qodef-m-price-value {
	display: none;
}

/* =====================
   Price breakdown
   ===================== */
.qodef-m-price-exceptions-note {
	margin-top: 8px;
}

.qodef-m-price-breakdown {
	display: flex;
	flex-direction: column;
	gap: 3px;
}

/* Single night row */
.qodef-m-price-breakdown .qodef-m-price-night {
	display: flex;
	align-items: baseline;
	gap: 6px;
}

.qodef-m-price-breakdown .qodef-m-night-label {
	width: 70px;
	flex-shrink: 0;
	font-size: 12px;
	line-height: 1.4;
	color: #555;
}

.qodef-m-price-breakdown .qodef-m-night-original {
	font-size: 10px;
	line-height: 1.4;
	color: #c33;
}

.qodef-m-price-breakdown .qodef-m-night-original s {
	text-decoration: line-through;
}

.qodef-m-price-breakdown .qodef-m-night-original sup {
	font-size: 8px;
	vertical-align: super;
	margin-left: 1px;
}

/* Night price — always right-aligned */
.qodef-m-price-breakdown .qodef-m-night-price {
	margin-left: auto;
	font-size: 16px;
	line-height: 1.4;
	font-weight: 400;
	color: #333;
}

/* Total row */
.qodef-m-price-breakdown .qodef-m-price-total {
	border-top: 1px solid #ddd;
	margin-top: 4px;
	padding-top: 6px;
}

.qodef-m-price-breakdown .qodef-m-price-total .qodef-m-night-label {
	font-size: 14px;
	font-weight: 700;
	color: #333;
}

.qodef-m-price-breakdown .qodef-m-price-total .qodef-m-night-price {
	font-size: 20px;
}

/* Exceptions legend */
.qodef-m-price-breakdown .qodef-m-price-exceptions-legend {
	margin-top: 8px;
}

.qodef-m-price-breakdown .qodef-m-price-exceptions-legend .qodef-m-exceptions-label {
	font-size: 11px;
	line-height: 1.4;
	color: #888;
	margin: 0 0 3px;
}

.qodef-m-price-breakdown .qodef-m-price-exceptions-legend .qodef-m-exception-ref {
	font-size: 11px;
	line-height: 1.4;
	color: #666;
	font-style: italic;
	margin: 0 0 1px;
}

.qodef-m-price-breakdown .qodef-m-price-exceptions-legend .qodef-m-exception-ref sup {
	font-size: 8px;
	vertical-align: super;
	margin-right: 2px;
}

/* =====================
   Rate plan dropdown
   ===================== */
.qodef-m-field.qodef--rate-plan {
	position: relative;
}
.qodef-m-field.qodef--rate-plan .qodef-m-field-input-wrapper {
	cursor: pointer;
}
.qodef-m-field-rate-plans {
	position: absolute;
	top: 100%;
	left: 0;
	width: 100%;
	display: block;
	padding: 20px;
	background-color: #faf9f5;
	border: 1px solid rgba(0, 0, 0, 0.18);
	border-top-width: 0;
	visibility: hidden;
	z-index: -1;
	opacity: 0;
	transition: 0.35s ease-out;
	box-sizing: border-box;
}
.qodef-m-field-rate-plans.qodef--opened {
	visibility: visible;
	opacity: 1;
	z-index: 999;
}
.qodef-m-field-rate-plans.qodef--above {
	top: auto;
	bottom: calc(100% - 24px);
	border-top-width: 1px;
	border-bottom-width: 0;
}
.qodef-m-field-rate-plan-option {
	display: block;
	padding: 10px 0;
	cursor: pointer;
	border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}
.qodef-m-field-rate-plan-option:last-child {
	border-bottom: none;
	padding-bottom: 0;
}
.qodef-m-field-rate-plan-option:first-child {
	padding-top: 0;
}
.qodef-m-field-rate-plan-option input[type="radio"] {
	display: none;
}
.qodef-m-field-rate-plan-option .qodef-e-label-text {
	font-size: 15px;
	line-height: 1.4;
}
.qodef-m-field-rate-plan-option.qodef--selected .qodef-e-label-text {
	font-weight: 600;
}
.qodef-m-field-rate-plan-option:hover .qodef-e-label-text {
	color: #000;
}
.qodef-m-field-rate-plan-option .qodef-e-rp-desc,
.qodef-m-field-rate-plan-option .qodef-e-cancel-policy {
	display: none;
}
.qodef-m-field-rate-plans.qodef--opened .qodef-e-rp-desc {
	display: block;
	margin: 4px 0 0;
	font-size: 12px;
	line-height: 1.4;
	letter-spacing: 0;
	color: #555;
}
.qodef-m-field-rate-plans.qodef--opened .qodef-e-rp-desc p {
	margin: 2px 0;
}
.qodef-m-field-rate-plans.qodef--opened .qodef-e-cancel-policy {
	display: block;
	margin: 3px 0 0;
	font-size: 10px;
	line-height: 1.3;
	letter-spacing: 0;
	color: #999;
}
.qodef-m-field-rate-plans.qodef--opened .qodef-e-cancel-policy p {
	margin: 2px 0;
}
.qodef-m-field-rate-plans.qodef--opened .qodef-e-cancel-policy ul {
	margin: 2px 0;
	padding-left: 16px;
}
.qodef-m-field-rate-plans.qodef--opened .qodef-e-cancel-policy li {
	margin: 1px 0;
}

/* =====================
   Cart: 3-column layout (thumb | details | prices)
   ===================== */

/* Cart page: tighter top, breathing room at bottom */
body.woocommerce-cart #qodef-page-inner,
body.woocommerce-checkout #qodef-page-inner {
	padding: 30px 0 100px;
}

/* Checkout form inputs */
body.woocommerce-checkout .woocommerce-checkout input[type="text"],
body.woocommerce-checkout .woocommerce-checkout input[type="email"],
body.woocommerce-checkout .woocommerce-checkout input[type="tel"],
body.woocommerce-checkout .woocommerce-checkout textarea,
body.woocommerce-checkout .woocommerce-checkout select {
	position: relative;
	display: inline-block;
	width: 100%;
	vertical-align: top;
	margin: 0 0 10px;
	padding: 8px 12px;
	font-family: inherit;
	font-size: 16px;
	line-height: 25px;
	font-weight: inherit;
	color: #4d4d4d;
	background-color: transparent;
	border: 1px solid rgba(0, 0, 0, 0.18);
	border-radius: 0;
	outline: 0;
	cursor: pointer;
	-webkit-appearance: none;
	transition: color 0.25s ease-out, background-color 0.25s ease-out, border-color 0.25s ease-out;
}
body.woocommerce-checkout .woocommerce-checkout textarea {
	box-sizing: border-box;
	max-width: 100%;
}
body.woocommerce-checkout .woocommerce-checkout label {
	font-size: 12px;
	margin-bottom: 0.15em;
}

/* WooCommerce notices */
body.woocommerce-cart .woocommerce-message {
	padding: 5px 10px 10px 15px !important;
}

/* Checkout order review: align prices to the right */
body.woocommerce-checkout .woocommerce-checkout-review-order-table .product-total,
body.woocommerce-checkout .woocommerce-checkout-review-order-table .cart-subtotal td,
body.woocommerce-checkout .woocommerce-checkout-review-order-table .fee td,
body.woocommerce-checkout .woocommerce-checkout-review-order-table .order-total td {
	text-align: right !important;
}

/* Checkout order review: compact template (no CSS grid, fits inside td) */
.crmb-checkout-info {
	margin-top: 8px;
	font-size: 13px;
	line-height: 1.5;
	color: #555;
}
.crmb-co-row {
	margin-bottom: 2px;
}
.crmb-co-price {
	font-weight: 600;
	color: #333;
	margin-left: 6px;
}
.crmb-co-services {
	margin-top: 4px;
}
.crmb-co-services-title {
	display: block;
	font-size: 11px;
	text-transform: uppercase;
	color: #999;
	letter-spacing: 0.5px;
	margin-bottom: 2px;
}
.crmb-co-svc {
	margin-bottom: 1px;
}
.crmb-co-svc-method {
	display: block;
	font-size: 10px;
	line-height: 1.3;
	color: #888;
	margin-top: 1px;
}
.crmb-co-included {
	color: #999;
	font-style: italic;
	margin-left: 6px;
}
.crmb-co-subtotal {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	margin-top: 6px;
	padding: 6px 10px;
	background: rgba(0, 0, 0, 0.03);
}
.crmb-co-subtotal-label {
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	color: #999;
}
.crmb-co-subtotal-price {
	font-size: 15px;
	font-weight: 700;
	color: #333;
}

/* Card container */
.crmb-cart-items {
	margin-bottom: 32px;
}

/* Single card: flex row [remove] [thumb] [body], wraps for rate section */
.crmb-cart-item {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 24px;
	padding: 24px 0;
	position: relative;
}
.crmb-cart-item:first-child {
	padding-top: 0;
}

/* Thumbnail */
.crmb-cart-item-thumb {
	flex: 0 0 250px;
	position: relative;
}
.crmb-cart-item-thumb a,
.crmb-cart-item-thumb img {
	display: block;
	width: 100%;
	height: auto;
}

/* Remove button: overlay on thumbnail */
.crmb-cart-item-thumb .crmb-cart-item-remove {
	position: absolute;
	top: 6px;
	right: 6px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	background: rgba(0, 0, 0, 0.5);
	border: none;
	border-radius: 50%;
	font-size: 0;
	line-height: 1;
	color: #fff !important;
	text-decoration: none;
	opacity: 1;
	z-index: 1;
}
.crmb-cart-item-thumb .crmb-cart-item-remove::before,
.crmb-cart-item-thumb .crmb-cart-item-remove::after {
	content: none;
}
.crmb-cart-item-thumb .crmb-cart-item-remove::before {
	content: "\00D7";
	font-size: 18px;
	font-family: Arial, sans-serif;
	display: block;
}
.crmb-cart-item-thumb .crmb-cart-item-remove:hover {
	background: rgba(204, 0, 0, 0.8);
	color: #fff !important;
}

/* Body: CSS Grid with 2 implicit columns (labels | prices) */
.crmb-cart-item-body {
	flex: 1 1 0;
	min-width: 0;
	display: grid;
	grid-template-columns: 1fr auto;
	row-gap: 1px;
	column-gap: 24px;
	align-items: baseline;
}

/* Title (grid col 1, row 1) */
.crmb-cart-item-title {
	grid-column: 1;
	font-family: Cormorant, serif;
	font-size: 25px;
	font-weight: 500;
	line-height: 1.2;
	color: #333;
	text-decoration: none;
	padding-bottom: 6px;
}
.crmb-cart-item-title:hover {
	color: #000;
}

/* reservation-info wrapper: display:contents so children join parent grid.
   High specificity to beat alloggio-core .woocommerce-page div.woocommerce ... (0,2,1) */
.woocommerce-page div.woocommerce .crmb-cart-item-body > .qodef-reservation-info {
	display: contents;
}

/* --- Grid row helpers --- */

/* Full-width rows (dates, guests, section titles) */
.crmb-row-full {
	grid-column: 1 / -1;
	font-size: 14px;
	line-height: 1.5;
	color: #555;
}

/* Label in col 1 (service names) */
.crmb-row-label {
	grid-column: 1;
	font-size: 14px;
	line-height: 1.2;
	color: #555;
	padding: 0;
	margin: 0;
}

/* Price in col 2 */
.crmb-row-price {
	grid-column: 2;
	text-align: right;
	white-space: nowrap;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.2;
	color: #333;
	padding: 0;
	margin: 0;
}

/* Room price: aligned with title row */
.crmb-row--room-price {
	font-size: 18px;
}

/* Service price: normal weight for "Incluso" */
.crmb-row-price--included {
	font-weight: 400;
	font-style: italic;
	color: #777;
}

/* Service method label (cart) */
.crmb-row-svc-method {
	display: block;
	font-size: 11px;
	line-height: 1.3;
	color: #888;
	margin-top: 1px;
}

/* Section titles (Servizi) */
.crmb-section-title {
	font-size: 13px;
	font-weight: 600;
	text-transform: uppercase;
	color: #999;
	margin: 5px 0 10px 0;
	border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

/* Dates row */
.crmb-row--dates {
	color: #333;
}

/* Rate plan inline label */
.crmb-row--rate {
	font-size: 14px;
	color: #333;
}

/* Subtotal section: full-width (JS moves it to card level) */
.crmb-subtotal-section {
	flex: 0 0 100%;
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	padding: 10px 16px;
	background: rgba(0, 0, 0, 0.03);
	border-top: 1px solid rgba(0, 0, 0, 0.08);
}
.crmb-subtotal-label {
	font-size: 13px;
	font-weight: 600;
	text-transform: uppercase;
	color: #999;
}
.crmb-subtotal-price {
	font-size: 18px;
	font-weight: 700;
	color: #333;
}

/* Deposit info - cart (JS moves to card level, like subtotal) */
.crmb-deposit-section {
	flex: 0 0 100%;
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	padding: 8px 16px;
	background: rgba(232, 163, 51, 0.08);
	border-top: 1px solid rgba(232, 163, 51, 0.2);
}
/* Collapse gap only inside cart cards (parent has gap:24px) */
.crmb-cart-item > .crmb-deposit-section {
	margin-top: -24px;
}
.crmb-deposit-label {
	font-size: 13px;
	font-weight: 600;
	color: #b57e1a;
}
.crmb-deposit-price {
	font-size: 16px;
	font-weight: 700;
	color: #b57e1a;
}

/* Deposit info - checkout */
.crmb-co-deposit {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	margin-top: 6px;
	padding: 6px 10px;
	background: rgba(232, 163, 51, 0.08);
}
.crmb-co-deposit-label {
	font-size: 11px;
	font-weight: 600;
	color: #b57e1a;
}
.crmb-co-deposit-price {
	font-size: 15px;
	font-weight: 700;
	color: #b57e1a;
}

/* Deposit info - room reservation + combination */
.qodef-m-deposit-info {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	padding: 8px 0;
	margin-top: 6px;
	border-top: 1px solid rgba(232, 163, 51, 0.25);
}
.qodef-m-deposit-label {
	font-size: 13px;
	font-weight: 600;
	color: #b57e1a;
}
.qodef-m-deposit-amount {
	font-size: 16px;
	font-weight: 700;
	color: #b57e1a;
}

/* Deposit info - preventivo summary */
.crmb-quote-deposit-row {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	padding: 8px 0;
	border-top: 1px solid rgba(232, 163, 51, 0.25);
}
.crmb-quote-deposit-row span:first-child {
	font-size: 14px;
	font-weight: 600;
	color: #b57e1a;
}
.crmb-quote-deposit-row span:last-child {
	font-size: 16px;
	font-weight: 700;
	color: #b57e1a;
}
.crmb-quote-deposit-note {
	font-size: 12px;
	color: #b57e1a;
	font-style: italic;
	margin-top: 4px;
}

/* Rate plan collapse toggle */
.crmb-rate-toggle {
	display: inline-block;
	margin-left: 6px;
	font-size: 14px;
	color: #999;
	cursor: pointer;
	vertical-align: middle;
}
.crmb-rate-toggle::after {
	content: "\25B8";
	display: inline-block;
	transition: transform 0.2s ease;
}
.crmb-rate-toggle.crmb--open::after {
	transform: rotate(90deg);
}

/* Rate plan collapsible details */
.crmb-rate-detail {
	display: none;
	grid-column: 1 / -1;
	font-size: 0.85em;
	line-height: 1.35;
	letter-spacing: 0;
	color: #555;
	margin-top: 4px;
}
.crmb-rate-detail.crmb--visible {
	display: block;
}
.crmb-rate-detail p {
	margin: 2px 0;
}
.crmb-rate-detail ul {
	margin: 2px 0;
	padding-left: 18px;
}
.crmb-rate-detail li {
	margin: 1px 0;
}
.crmb-rate-detail--policy {
	font-size: 0.75em;
	color: #888;
}

/* Cart actions */
.crmb-cart-actions {
	padding: 16px 0;
	text-align: right;
}

/* Cart totals: align everything right */
.woocommerce-page .cart_totals {
	text-align: right;
}
.woocommerce-page .cart_totals h2,
#qodef-woo-page.qodef--cart .cart_totals > h2 {
	text-align: right !important;
	margin: 0 0 10px !important;
}
.woocommerce-page .cart_totals .shop_table th,
.woocommerce-page div.woocommerce .cart_totals .shop_table th {
	text-align: right !important;
	width: 80% !important;
	padding: 10px 0 10px 5px !important;
}
.woocommerce-page .cart_totals .shop_table td,
.woocommerce-page .cart_totals .shop_table tr.fee td,
.woocommerce-page .cart_totals .shop_table tr.fee th {
	text-align: right !important;
}
.woocommerce-page .cart_totals .wc-proceed-to-checkout,
#qodef-woo-page.qodef--cart .wc-proceed-to-checkout {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	float: right;
	margin-top: 5px !important;
}
/* Subtotale piu' piccolo, totale enfatizzato */
.woocommerce-page .cart_totals .cart-subtotal th,
.woocommerce-page .cart_totals .cart-subtotal td {
	font-size: 14px !important;
}
.woocommerce-page .cart_totals .order-total th,
.woocommerce-page .cart_totals .order-total td {
	font-size: 20px;
}
.crmb-cart-actions .button {
	font-size: 13px;
}

/* =====================
   Order details table (order-received / view-order)
   First <td> shows only: rate plan, dates, guests.
   Prices (room, services, subtotal, deposit) hidden — already in product-total / tfoot.
   ===================== */
.order_details .qodef-reservation-info {
	display: block;
	margin-top: 8px;
	font-size: 13px;
	line-height: 1.6;
	color: #555;
}
/* Hide prices, services, rate plan — only dates + guests remain */
.order_details .crmb-row--room-price,
.order_details .crmb-subtotal-section,
.order_details .crmb-deposit-section,
.order_details .crmb-section-title,
.order_details .crmb-row--svc,
.order_details .crmb-row--svc + .crmb-row-price,
.order_details .crmb-row-label.crmb-row--rate,
.order_details .crmb-rate-detail,
.order_details .crmb-rate-toggle {
	display: none !important;
}
/* Header + cell "Totale" column: align right */
.order_details th.product-total,
.order_details td.product-total {
	text-align: right !important;
}
/* tfoot: align right */
.order_details tfoot th,
.order_details tfoot td {
	text-align: right !important;
}
/* Order overview list spacing */
.woocommerce-order-received .woocommerce-order .woocommerce-order-overview li {
	padding: 5px 0;
}
/* BACS bank details: colon after heading, account name smaller */
.woocommerce-bacs-bank-details h2.wc-bacs-bank-details-heading::after {
	content: ":";
}
.woocommerce-bacs-bank-details h3.wc-bacs-bank-details-account-name {
	font-size: 25px;
}

/* Override theme hiding reservation-info at 480px */
@media only screen and (max-width: 480px) {
	.woocommerce-page div.woocommerce .woocommerce-cart-form .qodef-reservation-info {
		display: contents !important;
	}
}

/* Mobile layout */
@media only screen and (max-width: 680px) {
	.crmb-cart-item {
		flex-wrap: wrap;
		gap: 12px;
	}
	.crmb-cart-item > .crmb-deposit-section {
		margin-top: -12px;
	}
	/* Remove always visible on touch devices */
	.crmb-cart-item-remove {
		opacity: 1;
	}
	.crmb-cart-item-thumb {
		flex: 0 0 100%;
		order: -1;
	}
	.crmb-cart-item-body {
		flex: 0 0 100%;
	}
}

/* Kill letter-spacing on room reservation labels */
#qodef-room-reservation-form .qodef-m-field label {
	letter-spacing: 0;
}

/* =====================
   Extra services: price_pack label
   ===================== */
/* Parent: wrap rows + checkbox top-aligned */
#qodef-room-reservation-form .qodef--extra-services .qodef-m-field-item {
	flex-wrap: wrap;
	align-items: flex-start;
	overflow: hidden;
}
/* Label: flex-fill instead of theme width:100% so it shares row 1 with checkbox */
#qodef-room-reservation-form .qodef--extra-services .qodef-e-field-label {
	letter-spacing: 0;
	width: auto;
	flex: 1 1 0%;
	min-width: 0;
}
/* Dotted line: adjust vertical position for flex-start alignment */
#qodef-room-reservation-form .qodef--extra-services .qodef-e-field-label-line {
	bottom: 6px;
}
/* Method: full-width row 2, indented to align under name */
#qodef-room-reservation-form .qodef--extra-services .qodef-e-field-label-method {
	flex: 0 0 100%;
	padding-left: 35px;
	box-sizing: border-box;
	font-size: 12px;
	line-height: 1.3;
	letter-spacing: 0;
	color: #888;
	margin-top: -2px;
	margin-bottom: 2px;
}
/* Cycle-based service disabled (stay too short) */
#qodef-room-reservation-form .qodef--extra-services .qodef-m-field-item.qodef--cycle-short {
	opacity: 0.45;
	pointer-events: none;
}

/* =====================
   CTA buttons (shared reservation + combination)
   ===================== */
/* button[type=button] non ereditano stili base da main.css (solo type=submit li ha) */
button[type=button].qodef-button {
	position: relative;
	margin: 0;
	font-family: "Raleway", sans-serif;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.25em;
	text-transform: uppercase;
	line-height: 2em;
	border-radius: 0;
	outline: none;
	box-sizing: border-box;
	cursor: pointer;
}

.crmb-combo-quote-btn {
	display: block;
	width: 100%;
	padding: 10px 20px;
	text-align: center;
	font-size: 14px;
	font-weight: 500;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: #333;
	text-decoration: none;
	cursor: pointer;
	transition: opacity 0.2s;
}
.crmb-combo-quote-btn:hover {
	opacity: 0.7;
}

.qodef--quote > div {
	text-align: center;
	color: #999;
	font-size: 13px;
	margin: 10px 0;
}

/* Cart "Salva Preventivo" — centered under checkout button */
.wc-proceed-to-checkout .crmb-quote-separator {
	color: #999;
	font-size: 13px;
	margin: 8px 0;
}
.wc-proceed-to-checkout .crmb-cart-quote-btn {
	padding: 4px 0;
	font-size: 14px;
	font-weight: 500;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: #333;
	text-decoration: none;
	cursor: pointer;
	transition: opacity 0.2s;
}
.wc-proceed-to-checkout .crmb-cart-quote-btn:hover {
	opacity: 0.7;
}

/* =====================
   Response messages (reservation + combination)
   ===================== */
#qodef-room-reservation-form .qodef-m-response,
#crmb-combo-reservation .qodef-m-response {
	display: none;
	line-height: 1.4;
}
#qodef-room-reservation-form .qodef-m-response.qodef--show,
#crmb-combo-reservation .qodef-m-response.qodef--show {
	display: block;
	margin-top: 15px;
	padding: 12px 12px 12px 40px;
	border-radius: 3px;
	font-family: "Raleway", sans-serif;
	font-size: 13px;
	font-weight: 500;
	position: relative;
}
#qodef-room-reservation-form .qodef-m-response.qodef--show::before,
#crmb-combo-reservation .qodef-m-response.qodef--show::before {
	position: absolute;
	left: 12px;
	top: 12px;
	font-size: 16px;
	line-height: 1;
}
#qodef-room-reservation-form .qodef-m-response.qodef--error,
#crmb-combo-reservation .qodef-m-response.qodef--error {
	color: #922;
	background-color: #fef2f2;
	border: 1px solid #fecaca;
}
#qodef-room-reservation-form .qodef-m-response.qodef--error::before,
#crmb-combo-reservation .qodef-m-response.qodef--error::before {
	content: "\26A0";
}
#qodef-room-reservation-form .qodef-m-response.qodef--success,
#crmb-combo-reservation .qodef-m-response.qodef--success {
	color: #166534;
	background-color: #f0fdf4;
	border: 1px solid #bbf7d0;
}
#qodef-room-reservation-form .qodef-m-response.qodef--success::before,
#crmb-combo-reservation .qodef-m-response.qodef--success::before {
	content: "\2713";
}

/* =====================
   Tier price loading
   ===================== */
.qodef-m-field.qodef--price .qodef-m-price {
	transition: opacity 0.2s ease;
}
.qodef-m-field.qodef--price.qodef--loading .qodef-m-price {
	opacity: 0.35;
	pointer-events: none;
}

/* =====================
   Bed composition (single room page)
   ===================== */
.qodef-room .qodef-e-bed-composition {
	position: relative;
	display: inline-block;
	width: 100%;
	vertical-align: top;
	margin-top: 46px;
	padding-top: 37px;
	border-top: 1px solid rgba(189, 140, 126, 0.22);
}
.qodef-e-bed-composition-title {
	margin: 0 0 24px;
}
.qodef-e-bed-composition-items {
	display: flex;
	flex-wrap: wrap;
	gap: 0;
	margin: 0 -10px;
}
.qodef-e-bed-composition-item {
	position: relative;
	display: flex;
	align-items: center;
	width: 100%;
	padding: 5px 10px;
	box-sizing: border-box;
}
.qodef-e-bed-comp-name {
	margin-right: 6px;
	white-space: nowrap;
}
.qodef-e-bed-comp-beds {
	color: #555;
}
/* =====================
   Seasonal pricing overrides
   ===================== */
.qodef-room .qodef-e-seasonal-items .qodef-ei-price-value {
	color: rgb(45,106,176);
}

.qodef-e-seasonal-conditions {
	margin: 8px 0 0;
	font-size: 13px;
	font-style: italic;
	color: #666;
	line-height: 1.5;
}

.qodef-room .qodef-e-seasonal-items .qodef-ei-price-best {
	margin-right: 8px;
}

.qodef-room .qodef-e-seasonal-items .qodef-ei-price-best s {
	color: #c33;
}

/* =====================
   Mobile: content grid wider
   ===================== */
@media only screen and (max-width: 800px) {
	.qodef-content-grid {
		width: 90%;
	}
	.qodef--boxed .qodef-content-grid {
		width: calc(90% + 60px);
	}
}

@media only screen and (max-width: 480px) {
	.qodef-content-grid {
		width: 90%;
	}
	.qodef--boxed .qodef-content-grid {
		width: calc(90% + 60px);
	}
}

.qodef-datepick-calendar {
	width: 100%;
}

.qodef-room .qodef-e-availability {
	margin-top: 50px;
	padding-top: 30px;
}

.qodef-room .qodef-e-calendar-wrapper {
	width: 100%;
}

/* =====================
   Search results: page title parallax height
   ===================== */
.alloggio-core-room-search .qodef-page-title {
	height: 300px;
}

/* =====================
   Order-pay: tfoot subtotale/totale
   ===================== */
.woocommerce-page #order_review .shop_table tfoot tr.cart_subtotal td,
.woocommerce-page #order_review .shop_table tfoot tr.order_total td {
	text-align: right !important;
}

.woocommerce-page #order_review .shop_table tfoot tr.cart_subtotal th,
.woocommerce-page #order_review .shop_table tfoot tr.cart_subtotal td {
	font-size: 14px !important;
	font-weight: 400 !important;
}

/* =====================
   Order-pay: payment methods
   (Alloggio scopes these under #qodef-woo-page.qodef--checkout
    which may not match on the order-pay endpoint)
   ===================== */
#order_review .wc_payment_methods {
	margin: 0;
	padding: 0;
	list-style: none;
}

#order_review .wc_payment_methods li {
	position: relative;
	margin: 0;
	padding: 15px 0 21px 25px;
	border-bottom: 1px solid rgba(0, 0, 0, 0.18);
}

#order_review .wc_payment_methods li p {
	margin: 0;
}

#order_review .wc_payment_methods .input-radio {
	position: absolute;
	top: 25px;
	left: 0;
	margin: 0;
}

#order_review .wc_payment_methods label {
	font-family: "Cormorant", serif;
	color: #000;
	font-size: 25px;
	line-height: 1.2em;
	font-weight: 500;
	margin: 0;
	cursor: pointer;
}

@media only screen and (max-width: 680px) {
	#order_review .wc_payment_methods label {
		font-size: 22px;
	}
}

#order_review .wc_payment_methods .payment_box {
	margin-top: 5px;
}

#order_review .woocommerce-checkout-payment .place-order {
	margin-top: 30px;
}

#order_review .woocommerce-checkout-payment .woocommerce-terms-and-conditions-wrapper {
	margin-bottom: 34px;
}

