@import url('https://fonts.googleapis.com/css2?family=Quicksand:wght@300..700&display=swap');

/* ───────────────────────────────────────
   VARIABILI
─────────────────────────────────────── */
:root {
	--color-main:         #3d70b2;
	--color-main-dark:    #2d5a96;
	--color-main-light:   #edf2fb;

	--color-text:         #1a1a1a;
	--color-text-mid:     #555250;
	--color-text-muted:   #6a6864;
	--color-text-hover:   #2e2e2e;

	--color-success:      #236b23;
	--color-error:        #c0392b;

	--color-avail-text:   #236b23;
	--color-avail-bg:     #eef7ee;
	--color-avail-border: #b8ddb8;

	--color-nd-bg:        #f2f1ef;
	--color-nd-text:      #999590;
	--color-nd-border:    #dddad6;

	--color-req-bg:       #edf2fb;
	--color-req-text:     #2d5ba3;
	--color-req-border:   #b8cef0;

	--color-light:        #ffffff;
	--color-dark:         #000000;

	--color-bg:           #f5faff;
	--color-surface:      #ffffff;
	--color-border:       #e0ddd9;
	--color-border-mid:   #ccc9c4;

	--color-price:        #236b23;

	--font-body:          'Quicksand', Arial, sans-serif;
	--font-display:       'Quicksand', Georgia, serif;

	--space-xs:  4px;
	--space-sm:  8px;
	--space-md:  16px;
	--space-lg:  24px;
	--space-xl:  40px;

	--radius-sm: 3px;
	--radius-md: 6px;
	--radius-lg: 10px;

	--shadow-sm: 0 1px 4px rgba(0, 0, 0, 0.07);
	--shadow-md: 0 4px 14px rgba(0, 0, 0, 0.09);
	--shadow-lg: 0 8px 28px rgba(0, 0, 0, 0.12);

	--ease:      0.16s ease;
	--ease-slow: 0.3s ease;
}

/* ───────────────────────────────────────
   SCROLLBAR
─────────────────────────────────────── */
::-webkit-scrollbar       { width: 6px; }
::-webkit-scrollbar-thumb { background: var(--color-border-mid); border-radius: 99px; }
::-webkit-scrollbar-track { background: var(--color-bg); }

/* ───────────────────────────────────────
   RESET / BASE
─────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }

html, body { padding: 0; margin: 0; height: 100%; }

body {
	font-family: var(--font-body);
	background-color: var(--color-bg);
	color: var(--color-text);
	font-size: 14px;
	font-weight: 400;
	-webkit-font-smoothing: antialiased;
}

a { color: var(--color-text-mid); transition: color var(--ease); }
a:hover { color: var(--color-dark); }

/* ───────────────────────────────────────
   ACCESSIBILITÀ
─────────────────────────────────────── */
.sr-only {
	position: absolute;
	width: 1px; height: 1px;
	margin: -1px; padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	border: 0;
}

.skip-link {
	position: absolute;
	top: -40px; left: 0;
	background: var(--color-dark);
	color: var(--color-light);
	padding: var(--space-sm);
	z-index: 1000;
	transition: top var(--ease);
}
.skip-link:focus { top: 0; }

/* ───────────────────────────────────────
   OVERLAY
─────────────────────────────────────── */
#overlay {
	position: absolute;
	inset: 0;
	background: rgba(245, 244, 242, 0.88);
	z-index: 9999;
	display: flex;
	align-items: center;
	justify-content: center;
}

/* ───────────────────────────────────────
   WRAPPER
─────────────────────────────────────── */
.wrapper {
	margin: 1vh 4vw 0.2vh;
	padding: 0.5vh 1vw;
	position: fixed;
	top: 0; left: 0;
	width: 92vw;
	background-color: var(--color-bg);
	box-shadow: var(--shadow-lg);
	border-radius: var(--radius-lg);
	height: calc(100% - 1.2vh - 32px);
}

/* ───────────────────────────────────────
   HEADER
─────────────────────────────────────── */
.top {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	height: 100px;
	position: relative;
	border-radius: var(--radius-lg) var(--radius-lg) 0 0;
	padding: 0 var(--space-lg);
}

.logo_hotel_top {
	height: 95px;
	object-fit: cover;
	border-radius: var(--radius-sm);
	opacity: 0.85;
}

.info_hotel {
	width: 100%;
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: center;
	margin: 0;
	padding: 0;
	font-size: 12px;
	font-weight: 300;
	line-height: 1.5;
	gap: var(--space-md);
}
.info_hotel p {
    margin: 0.2% 1%;
	width: 98%;
}
.info_hotel span {
	display: block;
	color: var(--color-text);
}
.info_hotel .hotel_name {
	font-family: var(--font-display);
	font-weight: 500;
	font-size: 20px;
	letter-spacing: 0.04em;
	color: var(--color-text);
	text-transform: uppercase;
}

.info_hotel a { color: var(--color-text); text-decoration: none; }
.info_hotel a:hover { color: var(--color-text-hover); }

.sel_lang {
	display: flex;
	flex-flow: row nowrap;
	align-items: center;
	gap: var(--space-md);
	position: absolute;
	top: var(--space-md); right: var(--space-md);
}

.sel_lang .back-website-home a {
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	color: var(--color-text);
	text-decoration: none;
	transition: color var(--ease);
}
.sel_lang .back-website-home a:hover { color: var(--color-text-hover); }
.sel_lang a:hover { color: var(--color-text-hover); text-decoration: none; }

.select-lang-container { position: relative; display: inline-block; max-width: 200px; }

.ui-selectmenu-button.ui-button {
	padding: 0;
	display: flex;
	align-items: center;
	flex-direction: row-reverse;
	justify-content: space-around;
	border-radius: var(--radius-sm);
	background: none !important;
	border: 0 !important;
}
.ui-selectmenu-button.ui-button:hover { background: none !important; border: 0 !important; }

span.ui-selectmenu-text {
	margin-right: 5px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	color: var(--color-light);
}

.ui-selectmenu-menu .ui-menu.customicons .ui-menu-item-wrapper span[class^="flag_"],
.ui-selectmenu-button span[class^="flag_"] {
	display: inline-block;
	width: 32px; height: 24px;
	background-size: cover;
	background-repeat: no-repeat;
	margin-right: 5px;
}

.ui-menu-item-wrapper { display: flex; align-items: center; justify-content: flex-start; }

.flag_it { background: url('../images/it.png') 0 0 no-repeat; }
.flag_en { background: url('../images/en.png') 0 0 no-repeat; }
.flag_fr { background: url('../images/fr.png') 0 0 no-repeat; }
.flag_de { background: url('../images/de.png') 0 0 no-repeat; }
.flag_es { background: url('../images/es.png') 0 0 no-repeat; }
.flag_pt { background: url('../images/pt.png') 0 0 no-repeat; }

/* ───────────────────────────────────────
   STEP BAR
─────────────────────────────────────── */
.step_bar {
	display: flex;
	justify-content: space-around;
	align-items: center;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	padding: 0;
	margin: var(--space-md) 0;
	height: 40px;
	background: var(--color-surface);
	border-bottom: 1px solid var(--color-border);
	box-shadow: var(--shadow-sm);
	color: var(--color-text-muted);
	border-radius: var(--radius-lg);
}

.step_bar > div {
	opacity: 1;
	padding: 0 var(--space-md);
	height: 100%;
	display: flex;
	align-items: center;
	border-bottom: 2px solid transparent;
	margin-bottom: -1px;
	transition: color var(--ease), border-color var(--ease);
	gap: var(--space-sm);
}

.step_bar a { text-decoration: none; color: inherit; }

.step_bar .number {
	width: 20px; height: 20px;
	background: var(--color-border);
	border-radius: 50%;
	color: var(--color-text-muted);
	font-size: 10px;
	font-weight: 700;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	transition: background var(--ease), color var(--ease);
}

.step_bar .active {
	color: var(--color-main);
	border-bottom-color: var(--color-main);
	font-weight: 700;
	opacity: 1;
}

.step_bar .active .number {
	background: var(--color-main);
	color: var(--color-light);
}

/* ───────────────────────────────────────
   LAYOUT
─────────────────────────────────────── */
.content {
	display: flex;
	justify-content: space-between;
	height: calc(100% - 100px - 40px - 32px);
	overflow-y: hidden;
}

.col_sx  { width: 27vw; overflow-y: auto; height: 100%; padding-right: 0.5em; }
.col_dx  { width: 65vw; overflow-y: auto; height: 100%; padding-top: var(--space-md); }
.col_unic { width: 92vw; overflow-y: auto; height: 100%; }

.no-results { font-size: 1.3em; font-weight: 600; padding: 1em; color: var(--color-error); }

/* ───────────────────────────────────────
   FOOTER
─────────────────────────────────────── */
.bottom {
	display: flex;
	flex-flow: row wrap;
	width: 92vw;
	padding: 0 var(--space-sm);
	margin: 0 4vw;
	position: fixed;
	left: 0; bottom: 0;
	height: 32px;
	font-size: 11px;
	justify-content: space-between;
	align-items: center;
	color: var(--color-text-muted);
}

.bottom a { color: var(--color-text-muted); text-decoration: none; }
.bottom a:hover { color: var(--color-dark); }
.bottom img { margin: 0; }
.hotel_bottom { width: 100%; }

/* ───────────────────────────────────────
   FORM RICERCA
─────────────────────────────────────── */
.search             { display: block; }
.show_toggle_search { display: none; }
.hide_toggle_search { display: none; }
.fa-info            { cursor: help; }
.tooltip_templates  { display: none; }

#formBook {
	padding: var(--space-sm);
	width: calc(100% - 1em);
	background: var(--color-main);
	display: inline-block;
	border-radius: 0 var(--radius-lg) var(--radius-lg);
}

#formBook label {
	color: var(--color-light);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.09em;
	text-transform: uppercase;
}

#formBook input[type='text'],
#formBook select,
#form_cal input[type='text'],
#form_cal select,
#cal_select_night,
select.data_suppl {
	text-align: left;
	white-space: nowrap;
	border-radius: var(--radius-sm);
	border: 1px solid var(--color-border);
	background: var(--color-surface);
	font-weight: 400;
	font-family: var(--font-body);
	color: var(--color-text);
	padding: 0 10px;
	transition: border-color var(--ease), box-shadow var(--ease);
	-webkit-appearance: none;
	appearance: none;
}

#formBook input[type='text']:focus,
#formBook select:focus {
	outline: none;
	border-color: var(--color-text-mid);
	box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.15);
}

select.data_suppl { width: 100%; height: 2em; }
#dataIn, #dataOut { width: 100%; }
.search_trt select { width: 100%; height: 2em; }

.search_date,
.search_pax,
.search_trt_spc {
	display: flex;
	flex-wrap: nowrap;
	justify-content: space-between;
	align-items: center;
	margin: var(--space-md);
}

.search_pax .search_adulti,
.search_pax .search_ragazzi,
.search_pax .search_bambini,
.search_pax .search_infanti { flex-grow: 1; min-width: 25%; }

.select-custom {
	position: relative;
	overflow: hidden;
	display: inline-block;
	max-width: 200px;
	width: 100%;
	transition: background-color var(--ease-slow);
	height: 30px;
}

.search_adulti .select-custom,
.search_ragazzi .select-custom,
.search_bambini .select-custom,
.search_infanti .select-custom { max-width: 75px; }

.select-custom::after {
	content: '';
	display: block;
	position: absolute;
	right: 15%; top: 33%;
	width: 0; height: 0;
	border-top: 5px solid var(--color-main);
	border-left: 5px solid transparent;
	border-right: 5px solid transparent;
	pointer-events: none;
}

.select-trattamento::after,
.sel_suppl .select-custom::after { right: 5%; }

.select-custom select { -webkit-appearance: none; appearance: none; padding: 0 7px; }

.search_pax .search_adulti label,
.search_pax .search_ragazzi label,
.search_pax .search_bambini label,
.search_pax .search_infanti label { display: block; }

.search_pax .search_adulti select,
.search_pax .search_ragazzi select,
.search_pax .search_bambini select,
.search_pax .search_infanti select { width: 90%; height: 2em; }

.search_trt,
.search_spcode { display: flex; justify-content: space-between; flex-flow: column wrap; flex-grow: 1; }

#specialCode { width: 80%; height: 1.8em; margin-top: -8px; position: absolute; margin-left: 5%; }
#specialCode::placeholder { color: var(--color-border-mid); font-size: 12px; }

.search_date input { height: 1.8em; }

.search_date_in,
.search_date_out,
.search_date_nights { display: flex; flex-flow: column wrap; align-self: flex-start; }

.search_date_in,
.search_date_out { width: 35%; margin-right: 5%; justify-content: flex-start; }

.search_date_nights { text-align: center; }
.search_spcode { width: 35%; position: relative; }

.search_start {
	justify-content: space-between;
	text-transform: uppercase;
	font-weight: 600;
	align-items: center;
	display: flex;
	margin: 0.3em 0;
	flex-wrap: nowrap;
	flex-direction: column-reverse;
}

#loadingSearch { margin: 0 auto; }

#numNights {
	font-weight: 600;
	margin-top: 0.2em;
	font-size: 1.4em;
	color: var(--color-light);
}

#subSearch {
	position: relative;
	height: 3em;
	width: 65%;
	margin: 0 auto;
	padding: 0.1em;
	font-family: var(--font-body);
	font-weight: 700;
	font-size: 1.15em;
	letter-spacing: 1px;
	color: var(--color-light);
	border: 2px solid rgba(255, 255, 255, 0.8);
	border-radius: var(--radius-sm);
	text-transform: uppercase;
	outline: 0;
	overflow: hidden;
	background: transparent;
	z-index: 1;
	cursor: pointer;
	transition: color var(--ease);
}

#subSearch:hover { color: var(--color-main); }

#subSearch::before {
	content: '';
	position: absolute;
	inset: 0 100% 0 0;
	background: var(--color-light);
	z-index: -1;
	transition: right var(--ease-slow);
}
#subSearch:hover::before { right: 0; }

.search_info {
	font-size: 11px;
	color: rgba(255, 255, 255, 0.75);
	border-radius: var(--radius-sm);
	padding: 0.3em;
	font-style: italic;
	line-height: 1.7;
}

.search_submit { flex-direction: column; text-align: center; width: 100%; margin-bottom: 7px; }
.search_pax select { width: 4em; }
#errorSearch { color: var(--color-light); }

.btnStepCCO {
	display: flex;
	justify-content: flex-start;
	flex-flow: row nowrap;
	background: var(--color-bg);
}

.btnStepCCO div {
	padding: 0;
	border: 0;
	border-radius: var(--radius-lg) var(--radius-lg) 0 0;
	margin-right: 5px;
	background: var(--color-surface);
	transition: background var(--ease);
}

.btnStepCCO div.active { background: var(--color-main); color: var(--color-light); }

.btnStepCCO div a {
	text-decoration: none;
	font-weight: 600;
	font-size: 11px;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	line-height: 3;
	padding: 0.5em 1em;
	color: var(--color-text-mid);
	display: block;
}

.btnStepCCO div.active a { color: var(--color-light); }

/* ───────────────────────────────────────
   CALENDARIO
─────────────────────────────────────── */
.swiper-slide { text-align: center; }

.calendar {
	background: var(--color-surface);
	padding: 0 0 0.5em;
	margin: 0 0 1em;
	box-shadow: var(--shadow-md);
	border-radius: var(--radius-lg);
}

.calendar_search { background: var(--color-main); }
.calendar_search i,
.calendar_search a { color: var(--color-light); }

/* ───────────────────────────────────────
   CARD CAMERE
─────────────────────────────────────── */
.cam_result {
	padding: var(--space-md);
	display: flex;
	background: var(--color-surface);
	margin: 0 1.5em 1em;
	flex-flow: row wrap;
	box-shadow: var(--shadow-md);
	border-top: 2px solid var(--color-border);
	border-radius: var(--radius-lg);
	transition: transform 160ms ease-out, box-shadow 160ms ease-out, border-color 160ms ease-out;
}

.cam_result:hover {
	transform: scale(1.005);
	box-shadow: var(--shadow-lg);
	border-top-color: var(--color-main);
}

.cam_result:last-child { margin-bottom: 25px; }

.cam_gen { display: flex; flex-flow: row nowrap; }

.cam_img_princ,
.cam_img_princ img {
	width: 26vw; height: 18vw;
	object-fit: cover;
	cursor: zoom-in;
	border-radius: var(--radius-sm);
	transition: filter var(--ease-slow);
}
.cam_result:hover .cam_img_princ img { filter: brightness(1.03); }

.cam_info {
	margin: 0 0.5em;
	padding: 0.5em;
	display: flex;
	flex-flow: row wrap;
	justify-content: space-between;
	align-items: flex-start;
}

.cam_name {
	font-family: var(--font-display);
	font-weight: 500;
	font-size: 1.5em;
	color: var(--color-dark);
	letter-spacing: 0.02em;
	width: 100%;
	text-transform: uppercase;
	display: flex;
	flex-flow: row nowrap;
	align-items: baseline;
	gap: var(--space-xs);
}

.cam_name span { font-size: 11px; }
.cam_name i    { opacity: 0.45; padding-left: 0.35em; font-size: 13px; }

.cam_name_modal {
	font-family: var(--font-display);
	font-weight: 500;
	padding-top: 1vh;
	font-size: 1.4em;
	color: var(--color-dark);
	width: 100%;
	text-transform: uppercase;
	letter-spacing: 0.02em;
}

.more_info {
	font-size: 12px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase;
	color: var(--color-text-muted); cursor: pointer; transition: color var(--ease);
}
.more_info:hover { color: var(--color-dark); }

.more_info_off {
	font-size: 10px; font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase;
	color: var(--color-text-muted); cursor: pointer; transition: color var(--ease);
}
.more_info_off:hover { color: var(--color-dark); }

.cam_modal_info .swiper-big { width: 60vw; margin: 0; padding: 0; height: 40vw; }
.cam_modal_info .swiper-big img { object-fit: contain; height: 40vw; }
.info_cam_big { width: 28vw; padding: 2vw 3vw; overflow-y: auto; }
.cam_modal_info { display: flex; justify-content: space-between; flex-flow: row nowrap; }

.cam_descr       { width: 100%; font-size: 13px; color: var(--color-text-mid); line-height: 1.65; }
.cam_descr_modal { width: 100%; margin-top: 1em; font-size: 13px; color: var(--color-text-mid); line-height: 1.65; }

.cam_serv,
.cam_serv_modal { width: 100%; line-height: 1.6; display: flex; }
.cam_serv       { margin-top: 1em; flex-flow: row wrap; font-size: 1.1em; }
.cam_serv_modal { margin-top: 2em; flex-flow: column wrap; font-size: 1.1em; }
.cam_serv span,
.cam_serv_modal span { margin-right: 1em; }
.cam_serv i,
.cam_serv_modal i { color: var(--color-text-muted); margin-right: 0.45em; }

.cam_price_info { text-align: right; display: flex; justify-content: flex-end; flex-flow: column wrap; }

.cam_price_info button {
	position: relative;
	height: 3em; margin: 0 auto; padding: 0.1em 0.65em;
	font-family: var(--font-body); font-weight: 700; font-size: 1.1em; letter-spacing: 1px;
	color: var(--color-main);
	border: 2px solid var(--color-main);
	border-radius: var(--radius-sm);
	text-transform: uppercase; outline: 0; overflow: hidden;
	background: transparent; z-index: 1; cursor: pointer;
	transition: color var(--ease);
}

.cam_price_info button:hover { color: var(--color-light); }

.cam_price_info button::before {
	content: '';
	position: absolute;
	inset: 0 100% 0 0;
	background: var(--color-main);
	z-index: -1;
	transition: right var(--ease-slow);
}
.cam_price_info button:hover::before { right: 0; }

.special_off_mess {
	font-weight: 600; display: flex;
	color: var(--color-main); font-size: 1.2em;
	justify-content: space-between; align-items: center;
}

.cam_dispo {
	font-size: 10px; font-weight: 700; letter-spacing: 0.07em;
	text-transform: uppercase; font-style: normal;
	padding: 4px 10px;
	border-radius: var(--radius-sm);
	border: 1px solid transparent;
	display: inline-block; margin-top: 10px;
}

.bg_avail { background: var(--color-avail-bg); color: var(--color-avail-text); border-color: var(--color-avail-border); }
.bg_nd    { background: var(--color-nd-bg);    color: var(--color-nd-text);    border-color: var(--color-nd-border); }
.bg_req   { background: var(--color-req-bg);   color: var(--color-req-text);   border-color: var(--color-req-border); }

.cam_best_pi {
	display: flex; justify-content: space-between;
	width: 100%; align-items: center; align-self: flex-end;
}

.cam_best_price      { text-align: center; font-weight: 600; width: 40%; font-size: 1.1em; }
.cam_best_price_info { width: 60%; text-align: right; }

.str_price_bp {
	font-size: 1.8em;
	color: var(--color-price);
}

.cont_cam_info_price { display: none; width: 100%; }

.cam_info_price {
	width: 100%; margin-top: 1em; font-size: 1.1em;
	display: flex; justify-content: space-between;
	flex-flow: row wrap; margin-bottom: 0.5em;
	border-bottom: 1px solid var(--color-border);
	padding-bottom: 0.5em;
}

.cam_str_info      { width: 60%; margin-bottom: 5px; }
.cam_price_trt_sel { width: 40%; }
.cam_price_btn     { text-align: right; }
.cam_price_btn span { font-weight: 600; color: var(--color-price); }

.cam_price_type {
	text-transform: uppercase; font-weight: 600; font-size: 1em;
	color: var(--color-main); margin-bottom: 5px;
}

#show_all_off { cursor: pointer; }
.mess_pers_hotel { font-weight: 600; margin: 1em 0.5em; font-size: 1.1em; }
.cam_str_tot_night { text-align: center; font-weight: 600; }

.add_to_cart,
.cal_proc_btn {
	background: var(--color-price);
	cursor: pointer;
	border: 2px solid var(--color-light);
	padding: 0.3em 1.1em 0.3em 0.9em;
	border-radius: var(--radius-sm);
	color: var(--color-light) !important;
	font-family: var(--font-body);
	font-weight: 600;
	height: 35px;
	text-decoration: none;
	transition: background var(--ease);
}
.add_to_cart:hover,
.cal_proc_btn:hover { background: #3a963a; }

.tooltip { display: inline-block; font-size: 11px; font-weight: 500; padding-bottom: 4px; text-decoration: underline; }
.tooltip.tooltipstered { display: inline-block; }

.off_modal_info,
.off_modal_info_cal { display: flex; justify-content: flex-start; flex-flow: row wrap; }

.off_modal_info_dx_tit { font-weight: 600; margin-bottom: 0.5em; color: var(--color-text); }
.off_modal_info img,
.off_modal_info_cal img { max-width: 100%; }
.off_modal_canc_policy { padding: 1em 0.5em; font-size: 13px; color: var(--color-text-mid); line-height: 1.6; }

/* ───────────────────────────────────────
   CART / RIEPILOGO
─────────────────────────────────────── */
#riep_cart,
.cond_hotel { padding-top: 0.8em; }

#riep_cart .cart_tot_prz { padding-bottom: 1em; }

.riep_cart_tit,
.cond_hotel_tit {
	font-size: 1.25em;
	text-transform: uppercase;
	font-weight: 900;
	letter-spacing: 0.75px;
	color: var(--color-main);
	padding-bottom: 3px;
}

.cond_hotel_tit { width: 100% !important; }

.cond_hotel_div { display: flex; justify-content: flex-start; margin: 0.3em 0; }
.cond_hotel_subtit { font-weight: 600; margin-right: 0.2em; flex: 1; color: var(--color-text-mid); }
.cond_hotel_no_desk { display: none; }
.cond_hotel_desc { flex: 2; word-break: break-all; color: var(--color-text-muted); }

.cart_info_sel {
	display: flex; justify-content: space-between; flex-flow: row nowrap;
	align-content: center; padding: 0.85em;
	background: var(--color-surface);
	border-radius: var(--radius-lg);
	margin-top: 1em;
	box-shadow: var(--shadow-sm);
	border: 1px solid var(--color-border);
}

.cart_info_qt i { font-size: 0.8em; }
.cart_info_cam  { width: 70%; text-align: left; align-self: center; }

.cart_info_cam_tc {
	font-weight: 600; font-size: 1.2em;
	letter-spacing: 1px; padding-bottom: 5px;
	color: var(--color-price);
}

.cart_summary { padding-top: 5px; line-height: 1.35; font-size: 12px; color: var(--color-text-mid); }

.cart_info_prz {
	font-weight: 600; width: 25%;
	text-align: right; align-self: center;
	font-size: 1.1em; color: var(--color-price);
}

.cart_del_cam {
	font-size: 1em; width: 5%; cursor: pointer;
	align-self: center; text-align: center; margin: 0.3em;
	color: var(--color-text-muted); transition: color var(--ease);
}
.cart_del_cam:hover { color: var(--color-error); }

.cart_date_dan   { display: flex; justify-content: flex-start; align-items: center; }
.cart_date_inout { flex-shrink: 0; }
.cart_num_nights { margin-left: 1em; flex-shrink: 1; min-width: 80px; }

.cart_tot_prz {
	font-weight: 600; text-align: right;
	font-size: 1.3em; padding: 0.2em 2em 2em;
	color: var(--color-main);
	border-top: 2px solid var(--color-main);
}

/* ───────────────────────────────────────
   BOTTONI NAVIGAZIONE
─────────────────────────────────────── */
.gotoNextStep {
	position: relative;
	display: inline-block;
	text-align: center;
	height: 3em; line-height: 3;
	padding: 0 0.5em; min-width: 170px;
	font-family: var(--font-body);
	font-weight: 700; font-size: 1.15em; letter-spacing: 1px;
	text-transform: uppercase; text-decoration: none;
	color: var(--color-light);
	background: var(--color-price);
	border: 2px solid var(--color-price);
	border-radius: var(--radius-sm);
	outline: 0; overflow: hidden; cursor: pointer; z-index: 1;
	transition: color var(--ease);
}

.gotoNextStep::before {
	content: '';
	position: absolute;
	inset: 0 100% 0 0;
	background: var(--color-light);
	z-index: -1;
	transition: right var(--ease-slow);
}
.gotoNextStep:hover { color: var(--color-price); }
.gotoNextStep:hover::before { right: 0; }

#gotoStep2, #gotoStep3, #gotoStep4 { max-width: 200px; }

.div_info_step { text-align: center; display: flex; flex-flow: column nowrap; }
.div_info_step div { margin-left: auto; width: 65%; }

.fixed_btn_goto {
	position: fixed; top: 0; z-index: 10;
	width: calc(100% - var(--space-md));
	background: var(--color-bg);
}

.btn_goto_step { display: flex; flex-flow: column; align-items: flex-end; padding: 0.5em 1em; }

.cart_i_btn {
	text-align: center; display: flex;
	flex-flow: row nowrap; justify-content: space-between; width: 100%;
}

.btn_goto_step i { visibility: hidden; align-self: center; margin-left: 2%; }

.str_sel_new_cam { font-weight: 600; font-size: 1.1em; }
.str_proc_con    { font-weight: 600; font-size: 1.1em; }

.avviso_solo_req { font-size: 1em; font-style: italic; padding: 10px; color: var(--color-text-mid); }
.avviso_solo_req .fas { font-weight: 900; padding: 0 3px; }

.show_cal_tc { width: 100%; }

.span_show_cal_tc {
	display: flex; flex-flow: row nowrap; align-items: center;
	font-size: 11px; font-weight: 600; letter-spacing: 0.07em; text-transform: uppercase;
	color: var(--color-text-muted); cursor: pointer; padding-top: 0.5em;
	gap: var(--space-xs); transition: color var(--ease);
}
.span_show_cal_tc:hover { color: var(--color-main); }
.span_show_cal_tc i { margin-right: 0.3em; }

.info_off_modal_cal { cursor: help; display: flex; justify-content: flex-start; }
.cal_tc { display: none; }

/* ───────────────────────────────────────
   SUPPLEMENTI ED EXTRA
─────────────────────────────────────── */
.suppl_tit_page { font-weight: 500; font-size: 1.8em; color: var(--color-main); padding: 0 0.55em; }
.suppl_desc_page { padding: 0.2em 1em; line-height: 1.5; color: var(--color-text-mid); }

#accordion_suppl { margin: 1em 0 3em; padding: 0 1em; }

.cont_suppl {
	font-family: var(--font-body);
	display: flex; justify-content: space-between; flex-flow: row wrap;
	color: var(--color-text-mid); padding: 10px 0;
	border-bottom: 1px solid var(--color-border);
}

.info_suppl { display: flex; justify-content: flex-start; flex-flow: row wrap; }
.desc_suppl { max-width: 600px; }

.img_suppl { margin-right: 0.5em; border-radius: var(--radius-md); overflow: hidden; }
.img_suppl img { width: 250px; height: 250px; object-fit: cover; border-radius: var(--radius-md); }

.ui-accordion .ui-accordion-header { border-radius: var(--radius-lg) var(--radius-lg) 0 0; }

.sel_suppl     { text-align: right; display: flex; justify-content: flex-end; align-items: center; flex-flow: column wrap; }
.sel_suppl_cart { text-align: right; display: flex; justify-content: flex-end; align-items: center; flex-flow: row wrap; }

select.data_suppl { background: var(--color-surface); border: 1px solid var(--color-main); }

.costo_suppl { font-weight: 600; font-size: 1.5em; color: var(--color-price); }
.desc_costo_suppl { font-size: 0.9em; font-style: italic; color: var(--color-text-muted); }

.div_add_suppl,
.info_price_suppl { align-self: center; margin-right: 3%; }
.info_price_suppl { min-width: 80px; }

.add_suppl {
	background: var(--color-surface);
	cursor: pointer;
	border: 1px solid var(--color-price);
	padding: 0.3em 0.6em;
	border-radius: var(--radius-sm);
	color: var(--color-price);
	font-family: var(--font-body);
	font-weight: 600;
	transition: background var(--ease), color var(--ease);
}
.add_suppl:hover { background: var(--color-price); color: var(--color-light); }

.suppl_cart_container { box-shadow: var(--shadow-sm); }

.suppl_cart {
	display: flex; justify-content: space-between; flex-flow: row nowrap;
	padding: 0.3em 1em 0.3em 1.5em;
	background: var(--color-surface);
	font-weight: 500; font-size: 10.5px;
}
.suppl_cart:last-child { padding-bottom: 0.85em; }

.supple_cart_prz_del { display: flex; justify-content: space-between; flex-flow: row nowrap; }

.suppl_cart_prz { font-weight: 600; margin: 0 0.5em; width: 65px; text-align: right; align-self: center; }
.tit_suppl { font-weight: 600; }
.suppl_cart_del { cursor: pointer; align-self: center; color: var(--color-text-muted); transition: color var(--ease); }
.suppl_cart_del:hover { color: var(--color-error); }

/* ───────────────────────────────────────
   MODAL OFFERTE
─────────────────────────────────────── */
.ui-dialog .ui-dialog-content.off_modal_info,
.ui-dialog .ui-dialog-content.off_modal_info_cal { max-width: 50vw; display: flex; justify-content: flex-start; }

.ui-dialog .ui-dialog-content.off_modal_info .off_modal_info_sx,
.off_modal_info_cal .off_modal_info_sx { width: 45%; padding: 0.5em; }

.ui-dialog .ui-dialog-content.off_modal_info .off_modal_info_dx,
.off_modal_info_cal .off_modal_info_dx { width: 40%; padding: 1em 3em 0.5em 0.5em; }

.off_modal_info_sx .info span { color: var(--color-main); font-weight: 600; }

/* ───────────────────────────────────────
   FORM ANAGRAFICA
─────────────────────────────────────── */
.da_tit_page { font-weight: 500; font-size: 1.8em; padding: 0 1em; color: var(--color-main); }

#form_dc {
	background: var(--color-surface);
	padding: 2em 2em 3em;
	margin: 1.7em 1.5em 3em;
	box-shadow: var(--shadow-lg);
	border-radius: var(--radius-lg);
}
#form_dc .btn_goto_step { background: transparent; }

.form_da { display: flex; justify-content: flex-start; flex-flow: row wrap; }

.form_da label { display: block; font-weight: 600; font-size: 1.1em; margin-bottom: 3px; color: var(--color-text-mid); }

.form_da input {
	width: 20vw; height: 25px; padding: 0 5px;
	border-radius: var(--radius-sm);
	-webkit-appearance: none; appearance: none;
	border: 1px solid var(--color-border);
	font-family: var(--font-body);
	transition: border-color var(--ease);
}

.form_da textarea {
	width: 20vw;
	border-radius: var(--radius-sm);
	border: 1px solid var(--color-border);
	font-family: var(--font-body);
	transition: border-color var(--ease);
}

.form_da input:focus,
.form_da textarea:focus {
	outline: none;
	border-color: var(--color-main);
	box-shadow: 0 0 0 2px var(--color-main-light);
}

.dati_obbl,
.dati_facolt { width: 50%; }
.dati_div_fields { margin-bottom: 1em; }
.dati_div_fields .two_fields { width: calc(20vw + 12px); display: flex; justify-content: space-between; }

#prefisso { width: 6vw; }
#telefono { width: 12vw; }

.dati_cc_field_form { display: inline-block; position: relative; }
.dati_cc_field_form img { position: absolute; right: 0; top: 0; width: 60px; }

.ccv_scad { display: flex; justify-content: space-between; flex-flow: row nowrap; }

.dati_cc_subtit {
	width: calc(100% - 2em);
	margin: 0 0 0.5em 2em;
	font-size: 1.2em; font-weight: 600;
	color: var(--color-main);
}

#ccvcvv { width: 60px; }

.dati_cc { display: flex; justify-content: space-around; padding: 1em 3em; flex-flow: row wrap; margin: 0 auto; }
.dati_cc label { display: block; font-weight: 600; font-size: 1.1em; color: var(--color-text-mid); }

.dati_cc input[type='text'],
.dati_cc input[type='number'] {
	width: 20vw; height: 25px; padding: 0 5px;
	border-radius: var(--radius-sm);
	-webkit-appearance: none; appearance: none;
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	font-family: var(--font-body);
	transition: border-color var(--ease);
}
.dati_cc input:focus { outline: none; border-color: var(--color-main); }

.dati_cc select,
.dati_facolt select { height: 30px; }

.form_cc {
	background: var(--color-main-light);
	padding: 1em 3em; margin-bottom: 1em;
	border-radius: var(--radius-md);
}

.form_accept { padding: 0.2em 3em; }
.form_accept label { font-weight: 600; font-size: 1.1em; }
.dati_descr { font-size: 0.9em; font-style: italic; padding: 0.5% 0 0 3%; color: var(--color-text-muted); }

.da_subtit {
	font-weight: 600; text-transform: uppercase;
	font-size: 1.2em; color: var(--color-main);
	width: calc(100% - 2em); margin: 0 0 1em;
}

.dati_cc_info { line-height: 1.5; padding: 0 3em; flex: 2; min-width: 300px; color: var(--color-text-mid); font-size: 13px; }
.asktipoconf { font-size: 1.2em; padding: 1em 0 1.5em; line-height: 1.6; }

#form_dc label.error { color: var(--color-error); padding: 0; margin: 2px 0 0; font-size: 1.1em; width: 100%; }
#acconsentocanc { width: auto !important; }
.error { color: var(--color-error); padding: 0; margin: 5px 0; font-size: 1.2em; font-weight: 600; }
.close_modal { display: none; }

.cc_scad { width: 160px; display: flex; align-items: center; flex-wrap: wrap; margin-left: 1vw; }
.cc_scad label { width: 100%; }
.separator { padding: 0 5px; }

.select-container {
	position: relative; overflow: hidden;
	display: inline-block; max-width: 200px; width: 100%;
	transition: background-color var(--ease-slow);
	border-radius: var(--radius-sm);
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	min-height: 30px;
}

.date { max-width: 70px; }

.select-container::after {
	content: '';
	display: block; position: absolute;
	right: 5%; top: 43%;
	width: 0; height: 0;
	border-top: 4px solid var(--color-text-mid);
	border-left: 4px solid transparent;
	border-right: 4px solid transparent;
	pointer-events: none;
}

.select-container select {
	text-align: center; white-space: nowrap;
	border: none; font-weight: 400;
	color: var(--color-text);
	-webkit-appearance: none; appearance: none;
	width: 100%; padding: 0 15px 0 5px;
	background: var(--color-surface);
	font-family: var(--font-body);
}

.ui-dialog .ui-dialog-content { font-family: var(--font-body); }

/* ───────────────────────────────────────
   RIEPILOGO GENERALE
─────────────────────────────────────── */
.riep_gen {
	background: var(--color-surface);
	padding: 2em; margin: 1.7em 1.5em 1em;
	box-shadow: var(--shadow-lg);
	border-radius: var(--radius-lg);
}
.riep_gen .btn_goto_step { background: transparent; }

.riep_gen_tit { font-weight: 500; font-size: 1.8em; text-align: left; padding-bottom: 1em; color: var(--color-text); }
.sub_tit_step4 { font-size: 0.8em; text-align: left; font-weight: 400; color: var(--color-text-muted); }

.riep_gen_cart_sing { margin: 1em 2em; border-top: 1px solid var(--color-border); padding-top: 1em; }
.riep_gen_cart_sing:first-child { border: none; }
.riep_gen_cart_sing + .fontw_bold { margin: 0.5em 2em; }
.riep_gen_cart .suppl_cart { margin: 0 2em; }
.riep_gen_cont { font-size: 1.2em; line-height: 1.5; color: var(--color-text-mid); }
.riep_gen_cart { padding: 0 1em; }

.riep_gen_da {
	display: flex; justify-content: space-between;
	margin: 1em 3em; padding: 1.5em; flex-flow: row wrap;
	background: var(--color-bg);
	border-radius: var(--radius-md);
}

.riep_gen_da > div { width: 30%; }
.riep_gen_da .riep_gen_subtit { margin-top: 1em; }
.riep_gen_cam_prz { display: flex; justify-content: space-between; flex-flow: row nowrap; }
.fontw_bold { font-weight: 600; }
.riep_gen_canc_tit { font-weight: 600; }
.riep_gen_canc_desc { line-height: 1.5; font-size: 0.8em; margin-bottom: 1em; color: var(--color-text-muted); }
.fa-moon { margin-left: 10px; }

.riep_gen_subtit { font-size: 1.3em; text-transform: uppercase; font-weight: 600; color: var(--color-main); }
.riep_gen_dati { padding: 0.5em; }
.note_cli { line-height: 1em; }
.btn_conf_step4 { align-items: center; padding: 0.5em 0; margin-bottom: 2em; }

/* ───────────────────────────────────────
   PAGINA MAIL
─────────────────────────────────────── */
.page_mail {
	background: var(--color-surface);
	padding: 2em; margin: 1.7em 1.5em 1em;
	box-shadow: var(--shadow-lg);
	border-radius: var(--radius-lg);
}

/* ───────────────────────────────────────
   CALENDARIO PREZZI
─────────────────────────────────────── */
.calendar a { text-decoration: none; font-weight: 600; font-size: 1em; color: var(--color-text-mid); }

.calendar table { border-collapse: collapse; margin: 1em; width: calc(100% - 2em); }
.calendar table td { border: 1px solid var(--color-border); height: 30px; }

.calendar table td.nobord {
	border: 0; font-weight: 600; font-size: 1.15em;
	color: var(--color-main); letter-spacing: 1px; text-transform: uppercase;
}
.calendar table td.nobord span { font-size: 11px; }

.calendar .tc { font-weight: 500; display: flex; justify-content: flex-start; flex-flow: row nowrap; align-items: center; }
.tc i { padding-left: 0.5em; margin-right: 0.8em; }
.tc.std { font-style: italic; font-weight: 600; background: var(--color-bg); padding-left: 0.5em; }

.calendar .date { font-weight: 600; color: var(--color-main); }
.calendar .dateWeekEnd { color: #bd3636; }

.colum_nomob1,
.colum_nomob2,
.colum_nomob3,
.colum_nomob4 { display: table-cell; }

.bgGreen  { background: #A5D6A7; color: var(--color-light); }
.bgRed    { background: #FFAB91; }
.bgBlue   { background: #B3E5FC; }
.bgOrange { background: #FFCC80; }

.calendar_legend { font-weight: 600; font-size: 0.95em; padding: 1em; }
.calendar_legend_dett { font-weight: 300; font-size: 0.9em; display: flex; justify-content: flex-start; flex-flow: row wrap; }
.calendar_legend_dett div { display: flex; align-items: center; margin: 0.5em 1em 0 0; justify-content: space-between; flex-flow: row nowrap; }
.calendar_legend span { width: 20px; height: 20px; margin-right: 0.3em; }

.calendar_search label { color: var(--color-light); font-weight: 600; display: block; text-align: left; }

.cal_search_date { margin-right: 1em; }
.cal_search_date a { align-self: center; }

.cal_search_pax { display: flex; flex-wrap: nowrap; justify-content: space-between; align-items: center; }
.cal_search_pax .search_adulti,
.cal_search_pax .search_ragazzi,
.cal_search_pax .search_bambini,
.cal_search_pax .search_infanti { flex-grow: 1; min-width: 25%; }

.cal_search_submit { display: block; align-self: center; }

.class_inc_date { display: flex; padding: 0 1em 1em; flex-flow: row nowrap; justify-content: space-between; }
.class_inc_date a { padding-right: 0.5em; }

#form_cal { text-align: center; padding: 1em 0; display: flex; justify-content: center; flex-flow: row wrap; margin-bottom: 1em; }
#form_cal a { margin: 0 0.2em; }
#dataIniCal { text-align: center; width: 110px; height: 1.8em; }
.cal_link { cursor: pointer; }

#sel_numdays { padding: 1em 1em 0; display: none; min-width: 6vw; }
#sel_numdays div { margin: 1em 0; }
#cal_dialog_info span { font-weight: 600; }

.cal_sel_night { display: flex; justify-content: space-between; flex-flow: row nowrap; flex-grow: 1; align-items: center; width: 100px; }
.cal_sel_night span { height: 30px; align-self: baseline; margin-right: 1em; }

select#cal_select_night,
select#trattamento_cal { width: 100%; height: 2em; }

select#adulti,
select#ragazzi,
select#bambini,
select#infanti { width: 90%; height: 2em; margin-right: 1em; min-width: 35px; }

.cal_search_pax span { margin: 0 0.5em; }
.cal_btn_proc { text-align: right; }
.cal_tc_denom { flex: 2; text-align: left; }
.cal_tc_pax   { flex: 1; text-align: right; }

td.cal_sep { height: 10px !important; border: 0 !important; }
.price_dec { font-size: 0.8em; }

/* ───────────────────────────────────────
   ANIMAZIONI
─────────────────────────────────────── */
@keyframes shake {
	0%   { transform: skewX(-20deg); }
	4%   { transform: skewX(20deg); }
	8%   { transform: skewX(-20deg); }
	12%  { transform: skewX(20deg); }
	16%  { transform: skewX(0deg); }
	100% { transform: skewX(0deg); }
}
.fa-shake { animation: shake 2.5s infinite alternate; }

/* ───────────────────────────────────────
   COOKIE BANNER
─────────────────────────────────────── */
.cookies-eu-banner {
	background: var(--color-main);
	color: var(--color-light);
	padding: 6px;
	font-size: 13px;
	text-align: center;
	position: fixed;
	bottom: 0; left: 0; width: 100%;
	z-index: 10;
}

.cookies-eu-banner button {
	position: relative;
	height: 2.2em; margin: 0 auto; padding: 0.1em 0.65em;
	font-family: var(--font-body);
	font-weight: 700; font-size: 1.1em; letter-spacing: 1px;
	text-transform: uppercase;
	color: var(--color-main);
	border: 2px solid var(--color-main);
	border-radius: var(--radius-sm);
	outline: 0; overflow: hidden;
	background: var(--color-light);
	z-index: 1; cursor: pointer;
	transition: color var(--ease);
}

.cookies-eu-banner button:hover {
	color: var(--color-light);
	border-color: var(--color-light);
}

.cookies-eu-banner button::before {
	content: '';
	position: absolute;
	inset: 0 100% 0 0;
	background: var(--color-main);
	z-index: -1;
	transition: right var(--ease-slow);
}
.cookies-eu-banner button:hover::before { right: 0; }

.hidden { display: none; }

/* ═══════════════════════════════════════
   RESPONSIVE
═══════════════════════════════════════ */

/* ── Tablet ── */
@media only screen and (min-width: 681px) and (max-width: 1024px) {
	.wrapper { padding: 0; width: 100vw; margin: 0; height: calc(100% - 32px); }
	.content { height: calc(100% - 110px - 40px - 32px); }
	.col_sx  { width: 33vw; padding-right: 0.2em; }
	.bottom  { width: calc(100vw - 60px); padding: 0; }
	.cam_result { margin: 0 0.5em 1em; padding: 1em 0; }

	.close_modal { display: flex; justify-content: flex-end; }
	.close_modal button {
		border: 1px solid var(--color-border-mid);
		border-radius: var(--radius-sm);
		background: var(--color-surface);
		padding: 10px; color: var(--color-text-muted);
		cursor: pointer;
	}
	.close_modal button::before { content: 'X'; display: inline-block; font-size: 10px; font-weight: 700; }

	.riep_gen { padding: 0.5em; }
	.riep_gen_da { margin: 1em; }
	.riep_gen_da > div { width: 100%; }
	.col_unic { width: 100vw; }
	.cart_tot_prz { margin-bottom: 1em; }
	.riep_gen_tit { font-size: 1.3em; padding: 1em; }
	.page_mail { max-width: 77vw; }
	.dati_cc_field_form { display: block; padding: 0 4vw 0 0; }
}

/* ── Mobile ── */
@media only screen and (max-width: 680px) {
	.wrapper { position: unset; padding: 0; margin: 0; width: 100vw; height: auto;}
	.top     { position: relative; padding: 0.2em; }

	.step_bar span.text { display: none; }
	.step_bar .active span.text { display: inline; }

	.bottom  { position: unset; width: calc(100vw - 60px); }
	.content { display: block; height: auto; width: calc(100vw - 8px); }
	.col_sx  { width: calc(100vw - 8px); height: auto; padding-right: 0; }
	.col_dx  { width: 100%; height: auto; padding: 0.8em 0; }

	.search             { display: none; }
	.show_search        { display: block; }
	.show_toggle_search { display: block; }
	.hide_toggle_search { display: none; }

	#formBook { padding: 0.5em; width: 100%; }

	#toggle_search { border: 1px solid var(--color-border); margin: 0.2em 0.4em; cursor: pointer; }

	.tit_riep_search { font-weight: 600; font-size: 1.2em; text-transform: uppercase; margin: 0 0.4em; color: var(--color-main); }
	.riep_search { display: flex; justify-content: space-between; margin: 0.2em 0.5em; color: var(--color-text-mid); }

	.cam_result { padding: 0.5em; margin: 0.5em 0.5em 1em; }
	.cart_info_cam_tc { font-weight: 600; font-size: 1.4em; }

	.cam_gen { display: flex; flex-flow: row wrap; justify-content: center; }
	.cam_descr { padding-bottom: 1em; }

	.cam_img_princ,
	.cam_img_princ img { width: calc(100vw - 3em); object-fit: cover; height: 50vw; }

	.cam_info { margin: 0.5em 0; width: 100%; }
	.info_cam_big { width: 90%; padding: 2vw 3vw; overflow-y: auto; }
	.cam_best_pi { margin-top: 1em; }

	.cam_modal_info { display: flex; justify-content: space-between; flex-flow: column wrap; }
	.cam_modal_info .swiper-big { width: 100%; margin: 0; }
	.cam_modal_info .swiper-big img { width: 100%; object-fit: cover; height: 50vw; }
	.cam_modal_info .swiper-big-thumbs { width: 10vw; }
	.cam_modal_info .swiper-big-thumbs img { width: 100%; object-fit: cover; }

	.cam_str_info    { width: 100%; margin-bottom: 5px; }
	.cam_price_trt_sel { width: 100%; }

	.off_modal_info img,
	.off_modal_info_cal img { width: 100%; }
	.ui-dialog .ui-dialog-content.off_modal_info,
	.ui-dialog .ui-dialog-content.off_modal_info_cal { max-width: 100%; }
	.ui-dialog .ui-dialog-content.off_modal_info .off_modal_info_sx,
	.off_modal_info_cal .off_modal_info_sx { width: 95%; }
	.ui-dialog .ui-dialog-content.off_modal_info .off_modal_info_dx,
	.off_modal_info_cal .off_modal_info_dx { width: 95%; }
	.off_modal_info_sx .info span { color: var(--color-main); font-weight: 600; }
	.off_modal_canc_policy { padding: 0.5em; }

	.form_da { padding: 0; display: block; }
	.cond_hotel_no_desk { display: block; }
	.cond_hotel_no_mob  { display: none; }
	.asktipoconf { font-size: 1.2em; padding: 1em 0; }

	.dati_cc { padding: 1em; display: block; width: calc(100% - 2em); }
	.dati_cc_info { padding: 0.5em 0; }
	.form_accept { padding: 0.2em 1em; }

	.dati_obbl,
	.dati_facolt { margin: 0 auto; width: 100%; }

	.form_da input,
	.form_da textarea {
		width: calc(100% - 12px);
		padding: 0 5px;
		background: var(--color-bg);
		border-radius: var(--radius-sm);
		-webkit-appearance: none; appearance: none;
		border: 1px solid var(--color-border);
	}

	.dati_div_fields .two_fields { width: 100%; }
	.dati_div_fields .two_fields div:first-child { width: calc(30% - 12px); }
	.dati_div_fields .two_fields div:last-child  { width: calc(70% - 12px); }
	#prefisso { width: calc(100% - 12px); }
	#telefono { width: calc(100% - 12px); }
	.form_cc { padding: 0 1em; }

	.dati_cc input[type='text'],
	.dati_cc input[type='number'] { width: 98%; height: 25px; }

	.img_suppl img { border-radius: var(--radius-md); }

	.cart_del_cam { font-size: 1.7em; width: 8%; margin: 0.3em; }

	.fixed_btn_goto {
		box-shadow: var(--shadow-md);
		width: calc(100% - var(--space-md));
	}
	.fixed_btn_goto .cart_tot_prz { padding-bottom: 0; margin-bottom: 0; border-top: none; text-align: right; padding-right: 10px; }

	.close_modal { display: flex; justify-content: flex-end; }
	.close_modal button {
		border: 1px solid var(--color-border-mid);
		border-radius: var(--radius-sm);
		background: var(--color-surface);
		color: var(--color-text-muted); padding: 10px; cursor: pointer;
	}
	.close_modal button::before { content: 'X'; display: inline-block; font-size: 10px; font-weight: 700; }

	.dati_cc_field_form { display: block; padding: 0 4vw 0 0; }
	.dati_cc_subtit { margin: 0 1em; font-size: 1.2em; }
	.col_unic { width: 97vw; }
	.riep_gen { padding: 0.5em; }
	.riep_gen_da { margin: 1em; }
	.riep_gen_da > div { width: 100%; }
	.cart_tot_prz { margin-bottom: 1em; }
	.riep_gen_tit { font-size: 1.3em; padding: 1em; }
	.page_mail { max-width: 64vw; }
}

/* ── Breakpoint colonne calendario ── */
@media only screen and (max-width: 400px) {
	.colum_nomob1, .colum_nomob2, .colum_nomob3, .colum_nomob4,
	.colum_nomob5, .colum_nomob6, .colum_nomob7, .colum_nomob8,
	.colum_nomob9 { display: none; }
	.top { height: unset; }
	.info_hotel { margin-top: 30px; }
}

@media only screen and (min-width: 401px) and (max-width: 490px) {
	#form_dc { padding: 1em 1em 2em; }
	.colum_nomob2, .colum_nomob3, .colum_nomob4,
	.colum_nomob5, .colum_nomob6, .colum_nomob7,
	.colum_nomob8, .colum_nomob9 { display: none; }
	.top { height: unset; }
	.info_hotel { margin-top: 30px; }
}

@media only screen and (min-width: 491px) and (max-width: 590px) {
	.colum_nomob3, .colum_nomob4, .colum_nomob5,
	.colum_nomob6, .colum_nomob7, .colum_nomob8, .colum_nomob9 { display: none; }
}

@media only screen and (min-width: 591px) and (max-width: 690px) {
	.colum_nomob4, .colum_nomob5, .colum_nomob6,
	.colum_nomob7, .colum_nomob8, .colum_nomob9 { display: none; }
}

@media only screen and (min-width: 691px) and (max-width: 790px) {
	.colum_nomob5, .colum_nomob6, .colum_nomob7,
	.colum_nomob8, .colum_nomob9 { display: none; }
}

@media only screen and (min-width: 791px) and (max-width: 890px) {
	.colum_nomob6, .colum_nomob7, .colum_nomob8, .colum_nomob9 { display: none; }
}

@media only screen and (min-width: 891px) and (max-width: 990px) {
	.colum_nomob7, .colum_nomob8, .colum_nomob9 { display: none; }
}

@media only screen and (min-width: 991px) and (max-width: 1090px) {
	.colum_nomob8, .colum_nomob9 { display: none; }
}

@media only screen and (min-width: 1091px) and (max-width: 1190px) {
	.colum_nomob9 { display: none; }
}