/* AVA HOME — BOOKING BAR DESKTOP E MOBILE */

body .ava-booking-custom,
		body .ava-booking-custom *{
			box-sizing:border-box;
			font-family:inherit !important;
		}

		body .ava-booking-custom{
			width:100%;
			color:#222;
		}


		/* ==================================================
		   DESKTOP
		   ================================================== */

		body .ava-booking-custom
		.ava-booking-desktop-card{
			width:100%;
			padding:22px;
			border:1px solid #e5e5e5;
			border-radius:16px;
			background:#fff;
			box-shadow:0 6px 22px rgba(0,0,0,.07);
		}

		body .ava-booking-custom
		.ava-booking-heading{
			margin-bottom:16px;
			text-align:center;
		}

		body .ava-booking-custom
		.ava-booking-heading h3{
			margin:0 0 4px !important;
			font-size:26px !important;
			line-height:1.15 !important;
			font-weight:750 !important;
			letter-spacing:-.4px;
		}

		body .ava-booking-custom
		.ava-booking-heading p{
			margin:0 !important;
			font-size:13px;
			line-height:1.4;
			color:#666;
		}


		/* DATE */

		body .ava-booking-custom
		.ava-booking-date-trigger{
			display:grid;
			grid-template-columns:1fr 1px 1fr;
			width:100%;
			min-height:66px;
			padding:0;
			border:1px solid #d8d8d8;
			border-radius:12px;
			background:#fff;
			color:#222;
			text-align:left;
			cursor:pointer;
		}

		body .ava-booking-custom
		.ava-booking-date-cell{
			display:flex;
			flex-direction:column;
			justify-content:center;
			gap:5px;
			padding:12px 14px;
		}

		body .ava-booking-custom
		.ava-booking-date-divider{
			width:1px;
			margin:9px 0;
			background:#dedede;
		}

		body .ava-booking-custom
		.ava-booking-date-label{
			font-size:10px;
			font-weight:700;
			letter-spacing:.2px;
			color:#555;
		}

		body .ava-booking-custom
		.ava-booking-date-value{
			font-size:13px;
			font-weight:500;
			white-space:nowrap;
		}


		/* OPTIONS */

		body .ava-booking-custom
		.ava-booking-options{
			margin-top:16px;
			border:1px solid #ededed;
			border-radius:14px;
			overflow:hidden;
		}

		body .ava-booking-custom
		.ava-booking-option{
			display:flex;
			align-items:center;
			justify-content:space-between;
			gap:12px;
			padding:16px;
			border-bottom:1px solid #ededed;
		}

		body .ava-booking-custom
		.ava-booking-option > div:first-child{
			display:flex;
			flex-direction:column;
			gap:2px;
		}

		body .ava-booking-custom
		.ava-booking-option strong,
		body .ava-booking-custom
		.ava-booking-pets strong{
			font-size:14px;
			font-weight:650;
		}

		body .ava-booking-custom
		.ava-booking-option span{
			font-size:11px;
			color:#777;
		}

		body .ava-booking-custom
		.ava-booking-counter{
			display:grid;
			grid-template-columns:32px 28px 32px;
			align-items:center;
			justify-items:center;
		}

		body .ava-booking-custom
		.ava-booking-counter button,
		body .ava-booking-custom
		.ava-booking-pets-counter button{
			display:flex;
			align-items:center;
			justify-content:center;
			width:32px;
			height:32px;
			padding:0;
			border:1px solid #c9c9c9;
			border-radius:50%;
			background:#fff;
			color:#333;
			font-size:18px;
			line-height:1;
			cursor:pointer;
		}

		body .ava-booking-custom
		.ava-booking-counter button:disabled{
			opacity:.28;
			cursor:not-allowed;
		}

		body .ava-booking-custom
		.ava-booking-counter > span{
			font-size:14px;
			font-weight:500;
			color:#222;
		}

		body .ava-booking-custom
		.ava-booking-pets{
			padding:16px;
			text-align:center;
		}

		body .ava-booking-custom
		.ava-booking-pets-counter{
			display:grid;
			grid-template-columns:32px 1fr 32px;
			align-items:center;
			gap:12px;
			margin-top:12px;
		}

		body .ava-booking-custom
		.ava-booking-pets-counter > span{
			display:flex;
			align-items:center;
			justify-content:center;
			min-height:44px;
			border:1px solid #ededed;
			border-radius:10px;
			font-size:14px;
			font-weight:500;
		}


		/* SUMMARY */

		body .ava-booking-custom
		.ava-booking-summary{
			display:flex;
			flex-direction:column;
			gap:13px;
			margin-top:16px;
		}

		body .ava-booking-custom
		.ava-booking-summary-placeholder{
			font-size:12px;
			line-height:1.4;
			color:#666;
		}

		body .ava-booking-custom
		.ava-booking-total-row{
			display:flex;
			align-items:center;
			justify-content:space-between;
			gap:16px;
			font-size:14px;
		}

		body .ava-booking-custom
		.ava-booking-total-row strong{
			font-size:21px;
			font-weight:750;
		}

		body .ava-booking-custom
		.ava-booking-nightly{
			margin-top:4px;
			font-size:11px;
			color:#777;
		}

		body .ava-booking-custom
		.ava-booking-breakdown{
			display:flex;
			flex-direction:column;
			gap:4px;
			margin-top:6px;
		}

		body .ava-booking-custom
		.ava-booking-breakdown-line{
			display:flex;
			align-items:flex-start;
			justify-content:space-between;
			gap:12px;
			font-size:11px;
			line-height:1.35;
			color:#686868;
		}

		body .ava-booking-custom
		.ava-booking-breakdown-line.is-discount{
			color:#26734d;
		}

		body .ava-booking-custom
		.ava-booking-warning{
			margin-top:7px;
			padding:9px 10px;
			border-radius:8px;
			background:#fff4e8;
			font-size:11px;
			line-height:1.4;
			color:#8a4d11;
		}

		body .ava-booking-custom
		.ava-booking-cta,
		body .ava-booking-custom
		.ava-booking-mobile-cta{
			width:100%;
			min-height:48px;
			padding:12px 18px;
			border:0;
			border-radius:9px;
			background:#16383d;
			color:#fff;
			font-size:15px;
			font-weight:700;
			cursor:pointer;
		}

		body .ava-booking-custom
		.ava-booking-cta:disabled{
			opacity:.42;
			cursor:not-allowed;
		}


		/* ==================================================
		   MOBILE BAR / SHEET
		   ================================================== */

		body .ava-booking-custom
		.ava-booking-mobile-bar,
		body .ava-booking-custom
		.ava-booking-sheet,
		body .ava-booking-custom
		.ava-booking-sheet-backdrop{
			display:none;
		}


		/* ==================================================
		   CALENDAR
		   ================================================== */

		body .ava-booking-custom
		.ava-booking-calendar-backdrop{
			position:fixed;
			inset:0;
			z-index:999998;
			display:none;
			background:rgba(0,0,0,.42);
		}

		body .ava-booking-custom
		.ava-booking-calendar-modal{
			position:fixed;
			inset:0;
			z-index:999999;
			display:none;
			align-items:center;
			justify-content:center;
			padding:24px;
			pointer-events:none;
		}

		body .ava-booking-custom.is-calendar-open
		.ava-booking-calendar-backdrop,
		body .ava-booking-custom.is-calendar-open
		.ava-booking-calendar-modal{
			display:flex;
		}

		body .ava-booking-custom
		.ava-booking-calendar-panel{
			width:min(880px, calc(100vw - 48px));
			max-height:calc(100dvh - 48px);
			overflow:auto;
			padding:24px;
			border:1px solid #e8e8e8;
			border-radius:20px;
			background:#fff;
			box-shadow:0 18px 55px rgba(0,0,0,.16);
			pointer-events:auto;
		}

		body .ava-booking-custom
		.ava-booking-calendar-top{
			display:flex;
			align-items:flex-start;
			justify-content:space-between;
			gap:18px;
			margin-bottom:16px;
		}

		body .ava-booking-custom
		.ava-booking-calendar-top > div{
			display:flex;
			flex-direction:column;
			gap:4px;
		}

		body .ava-booking-custom
		.ava-booking-calendar-top strong{
			font-size:20px;
			font-weight:750;
		}

		body .ava-booking-custom
		.ava-booking-calendar-top span{
			font-size:12px;
			color:#6f6f6f;
		}

		body .ava-booking-custom
		.ava-booking-calendar-top button,
		body .ava-booking-custom
		.ava-booking-sheet-head button{
			display:flex;
			align-items:center;
			justify-content:center;
			width:34px;
			height:34px;
			padding:0;
			border:1px solid #ddd;
			border-radius:50%;
			background:#fff;
			color:#222;
			font-size:20px;
			cursor:pointer;
		}

		body .ava-booking-custom
		.ava-booking-calendar-selected{
			display:grid;
			grid-template-columns:1fr 1fr;
			gap:10px;
			margin-bottom:18px;
		}

		body .ava-booking-custom
		.ava-booking-calendar-selected > div{
			display:flex;
			flex-direction:column;
			gap:5px;
			min-height:54px;
			padding:10px 12px;
			border:1px solid #ddd;
			border-radius:10px;
		}

		body .ava-booking-custom
		.ava-booking-calendar-selected span{
			font-size:9px;
			font-weight:700;
			color:#666;
		}

		body .ava-booking-custom
		.ava-booking-calendar-selected strong{
			font-size:13px;
			font-weight:500;
		}

		body .ava-booking-custom
		.ava-booking-calendar-loader{
			padding:40px 0;
			text-align:center;
			font-size:13px;
			color:#777;
		}

		body .ava-booking-custom
		.ava-booking-calendar-months{
			display:grid;
			grid-template-columns:1fr 1fr;
			gap:26px;
		}

		body .ava-booking-custom
		.ava-cal-month{
			min-width:0;
		}

		body .ava-booking-custom
		.ava-cal-month-head{
			display:flex;
			align-items:center;
			justify-content:space-between;
			margin-bottom:12px;
		}

		body .ava-booking-custom
		.ava-cal-month-title{
			font-size:15px;
			font-weight:700;
			text-align:center;
		}

		body .ava-booking-custom
		.ava-cal-nav{
			display:flex;
			align-items:center;
			justify-content:center;
			width:32px;
			height:32px;
			padding:0;
			border:0;
			border-radius:50%;
			background:transparent;
			font-size:22px;
			cursor:pointer;
		}

		body .ava-booking-custom
		.ava-cal-weekdays,
		body .ava-booking-custom
		.ava-cal-grid{
			display:grid;
			grid-template-columns:repeat(7,1fr);
		}

		body .ava-booking-custom
		.ava-cal-weekdays{
			margin-bottom:4px;
		}

		body .ava-booking-custom
		.ava-cal-weekdays span{
			padding:6px 0;
			text-align:center;
			font-size:10px;
			color:#727272;
		}

		body .ava-booking-custom
		.ava-cal-day{
			position:relative;
			display:flex;
			flex-direction:column;
			align-items:center;
			justify-content:center;
			min-height:58px;
			margin:1px;
			padding:6px 3px;
			border:1px solid transparent;
			border-radius:12px;
			background:transparent;
			color:#222;
			cursor:pointer;
			transition:
				background .14s ease,
				border-color .14s ease,
				color .14s ease;
		}

		body .ava-booking-custom
		.ava-cal-day-number{
			display:flex;
			align-items:center;
			justify-content:center;
			min-height:20px;
			font-size:13px;
			line-height:1;
			font-weight:500;
		}

		body .ava-booking-custom
		.ava-cal-day-price{
			margin-top:5px;
			font-size:8.5px;
			line-height:1;
			font-weight:500;
			color:#626262;
			white-space:nowrap;
		}

		body .ava-booking-custom
		.ava-cal-day:hover:not(:disabled){
			border-color:#222;
			background:#fff;
		}

		body .ava-booking-custom
		.ava-cal-day.is-selected{
			z-index:2;
			border-color:#222;
			background:#222;
			color:#fff;
		}

		body .ava-booking-custom
		.ava-cal-day.is-selected
		.ava-cal-day-price{
			color:#fff;
		}

		body .ava-booking-custom
		.ava-cal-day.is-range{
			border-radius:8px;
			background:#edf3f2;
		}

		body .ava-booking-custom
		.ava-cal-day.is-range
		.ava-cal-day-price{
			color:#465a56;
		}

		body .ava-booking-custom
		.ava-cal-day:disabled{
			border-color:transparent;
			background:transparent;
			color:#c7c7c7;
			cursor:not-allowed;
		}

		body .ava-booking-custom
		.ava-cal-day:disabled
		.ava-cal-day-number{
			text-decoration:line-through;
		}

		body .ava-booking-custom
		.ava-cal-day:disabled
		.ava-cal-day-price{
			display:none;
		}


		/*
		 * Giorno occupato ma utilizzabile come CHECK-OUT:
		 * rimane non disponibile come check-in/notte,
		 * ma diventa selezionabile come uscita.
		 */
		body .ava-booking-custom
		.ava-cal-day.is-checkout-only{
			border:1px dashed #8b9a9d;
			border-radius:50%;
			background:#fff;
			color:#5c6668;
			cursor:pointer;
		}

		body .ava-booking-custom
		.ava-cal-day.is-checkout-only:hover{
			border-color:#26383c;
			background:#f7f9f9;
		}

		body .ava-booking-custom
		.ava-cal-day.is-checkout-only
		.ava-cal-day-price{
			display:none;
		}

		body .ava-booking-custom
		.ava-cal-day.is-checkout-only
		.ava-cal-day-number{
			text-decoration:none;
		}

		body .ava-booking-custom
		.ava-booking-calendar-footer{
			display:flex;
			align-items:center;
			justify-content:space-between;
			gap:16px;
			margin-top:18px;
			padding-top:16px;
			border-top:1px solid #e7e7e7;
		}

		body .ava-booking-custom
		.ava-booking-calendar-clear{
			padding:8px 0;
			border:0;
			background:transparent;
			color:#222;
			font-size:12px;
			text-decoration:underline;
			cursor:pointer;
		}

		body .ava-booking-custom
		.ava-booking-calendar-confirm{
			min-height:40px;
			padding:9px 18px;
			border:0;
			border-radius:8px;
			background:#222;
			color:#fff;
			font-size:13px;
			font-weight:650;
			cursor:pointer;
		}

		body .ava-booking-custom
		.ava-booking-calendar-confirm:disabled{
			opacity:.35;
			cursor:not-allowed;
		}


		/* ==================================================
		   MOBILE
		   ================================================== */

		@media (max-width:767px){

			body .ava-booking-custom
			.ava-booking-desktop-card{
				display:none;
			}

			body{
				padding-bottom:calc(94px + env(safe-area-inset-bottom)) !important;
			}

			body .ava-booking-custom
			.ava-booking-mobile-bar{
				position:fixed;
				left:0;
				right:0;
				bottom:0;
				z-index:99990;
				display:grid;
				grid-template-columns:minmax(0,1fr) auto;
				align-items:center;
				gap:14px;
				min-height:88px;
				padding:12px 18px calc(12px + env(safe-area-inset-bottom));
				border-top:1px solid #e7e7e7;
				background:rgba(255,255,255,.98);
				box-shadow:0 -5px 22px rgba(0,0,0,.07);
				backdrop-filter:blur(12px);
			}

			body .ava-booking-custom
			.ava-booking-mobile-price{
				display:flex;
				flex-direction:column;
				gap:3px;
				min-width:0;
				padding:4px 0;
				border:0;
				background:transparent;
				text-align:left;
				cursor:pointer;
			}

			body .ava-booking-custom
			.ava-booking-mobile-price strong{
				overflow:hidden;
				font-size:15px;
				line-height:1.1;
				font-weight:750;
				white-space:nowrap;
				text-overflow:ellipsis;
			}

			body .ava-booking-custom
			.ava-booking-mobile-price span{
				overflow:hidden;
				font-size:10px;
				line-height:1.2;
				color:#666;
				white-space:nowrap;
				text-overflow:ellipsis;
			}

			body .ava-booking-custom
			.ava-booking-mobile-cta{
				width:auto;
				min-width:156px;
				min-height:48px;
				border-radius:999px;
				font-size:13px;
			}

			body .ava-booking-custom
			.ava-booking-sheet-backdrop{
				position:fixed;
				inset:0;
				z-index:99991;
				display:block;
				background:rgba(0,0,0,.34);
				opacity:0;
				pointer-events:none;
				transition:opacity .2s ease;
			}

			body .ava-booking-custom
			.ava-booking-sheet{
				position:fixed;
				left:0;
				right:0;
				bottom:0;
				z-index:99992;
				display:flex;
				flex-direction:column;
				max-height:82dvh;
				padding:10px 18px calc(18px + env(safe-area-inset-bottom));
				border-radius:24px 24px 0 0;
				background:#fff;
				box-shadow:0 -14px 50px rgba(0,0,0,.18);
				transform:translateY(105%);
				transition:transform .25s cubic-bezier(.2,.8,.2,1);
				overflow:auto;
			}

			body .ava-booking-custom.is-sheet-open
			.ava-booking-sheet-backdrop{
				opacity:1;
				pointer-events:auto;
			}

			body .ava-booking-custom.is-sheet-open
			.ava-booking-sheet{
				transform:translateY(0);
			}

			body .ava-booking-custom
			.ava-booking-sheet-handle{
				width:40px;
				height:4px;
				margin:2px auto 12px;
				border-radius:999px;
				background:#d7d7d7;
			}

			body .ava-booking-custom
			.ava-booking-sheet-head{
				display:flex;
				align-items:center;
				justify-content:space-between;
				gap:14px;
				margin-bottom:15px;
			}

			body .ava-booking-custom
			.ava-booking-sheet-head > strong{
				font-size:21px;
				font-weight:750;
			}

			body .ava-booking-custom
			.ava-booking-sheet-slot{
				display:flex;
				flex-direction:column;
				gap:16px;
			}


			/* Calendar mobile bottom sheet */

			body .ava-booking-custom
			.ava-booking-calendar-modal{
				align-items:flex-end;
				padding:0;
			}

			body .ava-booking-custom
			.ava-booking-calendar-panel{
				width:100%;
				max-height:92dvh;
				padding:18px 16px calc(18px + env(safe-area-inset-bottom));
				border-radius:24px 24px 0 0;
			}

			body .ava-booking-custom
			.ava-booking-calendar-months{
				display:block;
			}

			body .ava-booking-custom
			.ava-booking-calendar-months
			.ava-cal-month:nth-child(2){
				display:none;
			}

			body .ava-booking-custom
			.ava-cal-day{
				min-height:54px;
				margin:1px 0;
				padding:5px 1px;
				border-radius:10px;
			}

			body .ava-booking-custom
			.ava-cal-day-number{
				font-size:12px;
			}

			body .ava-booking-custom
			.ava-cal-day-price{
				margin-top:4px;
				font-size:7.8px;
			}

			body .ava-booking-custom
			.ava-booking-calendar-footer{
				position:sticky;
				bottom:-18px;
				z-index:5;
				margin-left:-16px;
				margin-right:-16px;
				margin-bottom:-18px;
				padding:12px 16px calc(12px + env(safe-area-inset-bottom));
				background:#fff;
			}
		}

		

		/* AVA BOOKING MOBILE — CTA SEMPRE VISIBILE */
		@media (max-width:767px){
			body .ava-booking-custom .ava-booking-sheet-slot > .ava-booking-cta{
				position:sticky!important;
				bottom:0!important;
				z-index:6!important;
				flex:0 0 auto!important;
				width:100%!important;
				margin-top:0!important;
				box-shadow:0 -12px 18px rgba(255,255,255,.96);
			}
		}