/* Italian Way Properties — Frontend Styles
   Mobile-first, no external dependencies.
   Colors and typography match hello.customcode.it/case-e-chalet/ */

:root {
	/* Brand colors (from Elementor kit-6) */
	--iw-primary:        #006EB5;
	--iw-primary-light:  #dbeafe;
	--iw-primary-dark:   #005a94;
	--iw-secondary:      #54595F;   /* heading / icon color */
	--iw-accent:         #71ABD3;
	--iw-success:        #16a34a;
	--iw-success-light:  #dcfce7;
	--iw-danger:         #dc2626;
	--iw-danger-light:   #fee2e2;
	--iw-neutral:        #9DA5AE;
	--iw-neutral-light:  #F6F6F6;
	--iw-bg:             #ffffff;
	--iw-border:         #e0e0e0;
	--iw-text:           #54595F;   /* matches e-global-color-secondary */
	--iw-text-muted:     #7A7A7A;   /* matches e-global-color-text */
	--iw-radius:         6px;       /* matches card border-radius */
	--iw-radius-sm:      4px;
	--iw-shadow:         0 0 10px 0 rgba(0,0,0,.16);   /* exact card shadow */
	--iw-shadow-md:      0 0 20px 0 rgba(0,0,0,.22);
	--iw-transition:     .2s ease;
	/* Card font stack */
	--iw-font-main:      "Open Sans", sans-serif;
	--iw-font-meta:      "Roboto", sans-serif;
}

/* ============================================================
   Utility / shared
   ============================================================ */

.iw-error {
	color: var(--iw-danger);
	padding: 8px 12px;
	background: var(--iw-danger-light);
	border-radius: var(--iw-radius-sm);
	font-size: .9em;
}

.iw-empty-state {
	text-align: center;
	color: var(--iw-text-muted);
	padding: 32px 0;
}

/* Buttons — matches Elementor global button style */
.iw-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	padding: 10px 24px;
	font-family: var(--iw-font-main);
	font-size: .85rem;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: .04em;
	text-transform: uppercase;
	border-style: solid;
	border-width: 1px;
	border-radius: 10px;
	cursor: pointer;
	transition: background var(--iw-transition), color var(--iw-transition), border-color var(--iw-transition);
	text-decoration: none;
}

.iw-btn-primary {
	background-image: linear-gradient(180deg, var(--iw-primary) 0%, var(--iw-primary) 100%);
	color: #fff;
	border-color: var(--iw-primary);
}
.iw-btn-primary:hover,
.iw-btn-primary:focus-visible {
	background-image: linear-gradient(180deg, #fff 0%, #fff 100%);
	color: var(--iw-primary);
	border-color: var(--iw-primary);
	outline: none;
}

.iw-btn-secondary {
	background-image: linear-gradient(180deg, #fff 0%, #fff 100%);
	color: var(--iw-primary);
	border-color: var(--iw-primary);
}
.iw-btn-secondary:hover,
.iw-btn-secondary:focus-visible {
	background-image: linear-gradient(180deg, var(--iw-primary) 0%, var(--iw-primary) 100%);
	color: #fff;
	outline: none;
}

.iw-btn-nav {
	background: var(--iw-bg);
	border-color: var(--iw-border);
	color: var(--iw-text);
	padding: 6px 12px;
	border-radius: var(--iw-radius-sm);
	text-transform: none;
	letter-spacing: 0;
}
.iw-btn-nav:hover {
	background: var(--iw-neutral-light);
}

/* Icons */
.iw-icon {
	width: 14px;
	height: 14px;
	flex-shrink: 0;
	vertical-align: middle;
}

/* Loader / spinner */
.iw-loader {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 24px 0;
	color: var(--iw-text-muted);
	font-size: .9rem;
}

.iw-spinner {
	display: inline-block;
	width: 20px;
	height: 20px;
	border: 2px solid var(--iw-border);
	border-top-color: var(--iw-primary);
	border-radius: 50%;
	animation: iw-spin .65s linear infinite;
	flex-shrink: 0;
}

@keyframes iw-spin {
	to { transform: rotate(360deg); }
}

/* ============================================================
   Booking widget ([iw_calendar] shortcode)
   ============================================================ */

.iw-booking-widget {
	font-family: var(--iw-font-main);
	color: var(--iw-text);
	background: #f7f8fa;
	border-radius: var(--iw-radius);
	padding: 20px;
}

/* Inside modal: no background wrapper */
.iw-modal-body .iw-booking-widget {
	background: transparent;
	padding: 0;
}

/* Property name heading */
.iw-widget-title {
	font-family: var(--iw-font-main);
	font-size: 1.15rem;
	font-weight: 600;
	color: var(--iw-secondary);
	margin: 0 0 16px;
	padding: 0;
	line-height: 1.3;
}

/* Inside modal the name is already in the header */
.iw-modal-body .iw-widget-title { display: none; }

/* Form fields row */
.iw-booking-fields {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	align-items: flex-end;
}

.iw-field-group {
	display: flex;
	flex-direction: column;
	gap: 6px;
	flex: 1;
	min-width: 130px;
}

.iw-field-submit {
	flex: 0 0 100%;
	min-width: auto;
	margin-top: 4px;
}

/* Labels */
.iw-field-label {
	display: block;
	font-size: .72rem;
	font-weight: 600;
	color: var(--iw-text);
	text-transform: uppercase;
	letter-spacing: .06em;
}

/* Date inputs */
.iw-booking-widget .iw-field-date,
.iw-mobile-sheet-body .iw-field-date {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid #dde1e7 !important;
	border-radius: var(--iw-radius-sm);
	font-family: var(--iw-font-main);
	font-size: .9rem;
	color: var(--iw-text);
	background: #fff;
	transition: border-color var(--iw-transition);
	box-sizing: border-box;
	height: 40px;
	appearance: none;
	-webkit-appearance: none;
	outline: none;
}
.iw-booking-widget .iw-field-date:focus,
.iw-mobile-sheet-body .iw-field-date:focus {
	outline: none;
	border-color: var(--iw-primary) !important;
	box-shadow: 0 0 0 3px rgba(0,110,181,.15);
}

/* Counter widget */
.iw-counter {
	display: flex;
	align-items: stretch;
	border: 1px solid var(--iw-border);
	border-radius: var(--iw-radius-sm);
	overflow: visible;
	height: 40px;
	background: var(--iw-bg);
}

.iw-counter-btn {
	background: var(--iw-neutral-light);
	border: none;
	width: 36px;
	font-size: 1.15rem;
	line-height: 1;
	cursor: pointer;
	color: var(--iw-secondary);
	transition: background var(--iw-transition), color var(--iw-transition);
	flex-shrink: 0;
	padding: 0;
	display: flex;
	align-items: center;
	justify-content: center;
}
.iw-counter-btn:hover:not(:disabled) {
	background: var(--iw-primary);
	color: #fff;
}
.iw-counter-btn:disabled { opacity: .4; cursor: not-allowed; }
.iw-counter-btn:first-child { border-radius: var(--iw-radius-sm) 0 0 var(--iw-radius-sm); }
.iw-counter-btn:last-child  { border-radius: 0 var(--iw-radius-sm) var(--iw-radius-sm) 0; }

.iw-counter-val {
	flex: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: .95rem;
	font-weight: 600;
	color: var(--iw-text);
	min-width: 36px;
	user-select: none;
}

/* Submit button aligned with fields */
.iw-field-submit .iw-btn {
	width: 100%;
	height: 40px;
	white-space: nowrap;
	padding-left: 20px;
	padding-right: 20px;
}

/* Loader inside widget */
.iw-booking-widget .iw-loader {
	margin-top: 16px;
}

/* Result card */
.iw-result-card {
	margin-top: 20px;
	border-radius: var(--iw-radius);
	overflow: hidden;
	box-shadow: var(--iw-shadow);
}

.iw-result-header {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 13px 16px;
	font-weight: 600;
	font-size: .95rem;
}

.iw-result-icon {
	width: 22px;
	height: 22px;
	flex-shrink: 0;
}

.iw-result-available .iw-result-header {
	background: var(--iw-success-light);
	color: var(--iw-success);
}

.iw-result-unavailable .iw-result-header {
	background: var(--iw-danger-light);
	color: var(--iw-danger);
}

.iw-result-rows {
	background: var(--iw-bg);
	border-top: 1px solid var(--iw-border);
	padding: 4px 0;
}

.iw-result-row {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 9px 16px;
	font-size: .9rem;
	border-bottom: 1px solid var(--iw-neutral-light);
}
.iw-result-row:last-child { border-bottom: none; }
.iw-result-row span  { color: var(--iw-text-muted); }
.iw-result-row strong { color: var(--iw-text); font-weight: 600; }

.iw-result-price span   { color: var(--iw-text); font-weight: 600; }
.iw-result-price strong { color: var(--iw-primary); font-size: 1.05rem; }

/* Rates / payment options */
.iw-rates {
	margin-top: 16px;
	padding: 0 16px 4px;
}

.iw-rates-title {
	font-size: .8rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .05em;
	color: var(--iw-text-muted);
	margin: 0 0 10px;
}

.iw-rate-card {
	border: 1px solid var(--iw-border);
	border-radius: var(--iw-radius-sm);
	margin-bottom: 10px;
	overflow: hidden;
}

.iw-rate-name {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 8px 12px;
	font-weight: 600;
	font-size: .9rem;
	background: var(--iw-neutral-light);
	color: var(--iw-text);
}

.iw-rate-rows {
	padding: 2px 0;
}

.iw-rate-rows .iw-result-row {
	padding: 7px 12px;
	font-size: .85rem;
}

.iw-rate-penalty {
	font-size: .78rem;
	color: var(--iw-danger);
	padding: 4px 12px 6px;
}

.iw-rate-badge {
	font-size: .7rem;
	font-weight: 600;
	padding: 2px 6px;
	border-radius: 3px;
}

.iw-rate-badge--nr {
	background: var(--iw-danger-light);
	color: var(--iw-danger);
}

/* Price section — visually separated from booking info rows */
.iw-price-section {
	margin-top: 10px;
	border-top: 2px solid var(--iw-border);
	padding-top: 6px;
}
.iw-price-section .iw-result-row {
	font-size: .9rem;
}
.iw-price-section .iw-result-price strong {
	font-size: 1.05rem;
	color: var(--iw-primary);
}

/* Continua button per rate plan — sits inside the rate card */
.iw-rate-book-btn {
	display: block;
	margin: 6px 12px 10px;
	text-align: center;
	font-size: .85rem;
}

/* Continua button — full width, attached to card bottom */
.iw-btn-book {
	display: block;
	border-radius: 0 0 var(--iw-radius) var(--iw-radius);
	border-top: 1px solid rgba(0,110,181,.25);
	padding: 14px 24px;
	text-align: center;
	font-size: .9rem;
	color: #fff !important;
}
.iw-btn-book:hover,
.iw-btn-book:focus-visible {
	color: var(--iw-primary) !important;
}

/* Error inside widget */
.iw-booking-widget .iw-booking-error {
	margin-top: 14px;
}

/* Responsive — booking widget */
@media (max-width: 767px) {
	.iw-booking-fields { flex-direction: column; }
	.iw-field-group { min-width: 100%; flex: none; }
	.iw-field-submit { min-width: 100%; }
}

/* ============================================================
   Mobile booking bar & bottom sheet ([iw_calendar] mobile)
   ============================================================ */

.iw-mobile-bar   { display: none; }
.iw-mobile-sheet { display: none; }

@media (max-width: 767px) {

	body.iw-has-mobile-bar { padding-bottom: 72px; }

	/* Fixed bar */
	.iw-mobile-bar {
		display: flex;
		justify-content: center;
		position: fixed;
		bottom: 0;
		left: 0;
		right: 0;
		z-index: 9998;
		padding: 12px 16px calc(12px + env(safe-area-inset-bottom, 0px));
		background: #fff;
		box-shadow: 0 -2px 12px rgba(0,0,0,.10);
		border-top: 1px solid var(--iw-border);
	}

	.iw-mobile-bar-btn {
		width: auto;
		min-width: 220px;
	}

	/* Sheet */
	.iw-mobile-sheet {
		display: block;
		position: fixed;
		inset: 0;
		z-index: 9999;
		pointer-events: none;
	}

	.iw-mobile-sheet.is-open { pointer-events: auto; }

	.iw-mobile-sheet-overlay {
		position: absolute;
		inset: 0;
		background: rgba(0,0,0,.45);
		opacity: 0;
		transition: opacity .3s ease;
	}

	.iw-mobile-sheet.is-open .iw-mobile-sheet-overlay { opacity: 1; }

	.iw-mobile-sheet-inner {
		position: absolute;
		bottom: 0;
		left: 0;
		right: 0;
		background: #fff;
		border-radius: 16px 16px 0 0;
		box-shadow: 0 -4px 24px rgba(0,0,0,.15);
		max-height: 90vh;
		overflow: hidden;
		display: flex;
		flex-direction: column;
		transform: translateY(100%);
		transition: transform .35s cubic-bezier(.32,.72,0,1);
	}

	.iw-mobile-sheet.is-open .iw-mobile-sheet-inner { transform: translateY(0); }

	.iw-mobile-sheet-handle {
		width: 36px;
		height: 4px;
		border-radius: 2px;
		background: #d0d5dd;
		margin: 10px auto 6px;
		flex-shrink: 0;
	}

	.iw-mobile-sheet-header {
		display: flex;
		align-items: center;
		justify-content: space-between;
		padding: 4px 16px 12px;
		flex-shrink: 0;
		border-bottom: 1px solid var(--iw-border);
	}

	.iw-mobile-sheet-title {
		font-family: var(--iw-font-main);
		font-size: 1rem;
		font-weight: 600;
		color: var(--iw-text);
	}

	.iw-mobile-sheet-close {
		background: none;
		border: none;
		font-size: 1.3rem;
		color: var(--iw-text-muted);
		cursor: pointer;
		padding: 4px 8px;
		border-radius: var(--iw-radius-sm);
		transition: color var(--iw-transition);
		line-height: 1;
	}
	.iw-mobile-sheet-close:hover { color: var(--iw-text); }

	.iw-mobile-sheet-body {
		padding: 16px;
		overflow-y: auto;
		flex: 1;
		-webkit-overflow-scrolling: touch;
	}

	/* Inside sheet: full-width stacked fields */
	.iw-mobile-sheet-body .iw-booking-fields { flex-direction: column; }
	.iw-mobile-sheet-body .iw-field-group,
	.iw-mobile-sheet-body .iw-field-submit   { min-width: 100%; flex: none; }
	.iw-mobile-sheet-body .iw-field-submit .iw-btn { width: 100%; }

	/* Result card inside sheet: no extra top margin */
	.iw-mobile-sheet-body .iw-result-card { margin-top: 16px; }
}

/* ============================================================
   Properties grid
   ============================================================ */

.iw-properties-wrapper {
	font-family: var(--iw-font-main);
}

/* Filters */
.iw-filters {
	display: flex;
	gap: 12px;
	margin-bottom: 24px;
	flex-wrap: wrap;
}

.iw-filter-name,
.iw-filter-city {
	padding: 8px 12px;
	border: 1px solid var(--iw-border);
	border-radius: var(--iw-radius-sm);
	font-family: var(--iw-font-main);
	font-size: .9rem;
	background: var(--iw-bg);
	color: var(--iw-text);
	transition: border-color var(--iw-transition);
	min-width: 180px;
}
.iw-filter-name:focus,
.iw-filter-city:focus {
	outline: none;
	border-color: var(--iw-primary);
	box-shadow: 0 0 0 3px rgba(0,110,181,.15);
}

/* Grid */
.iw-properties-grid {
	display: grid;
	grid-template-columns: repeat(var(--iw-columns, 3), 1fr);
	gap: 24px;
}

@media (max-width: 1024px) {
	.iw-properties-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 767px) {
	.iw-properties-grid { grid-template-columns: 1fr; }
}

/* -------- Card container -------- */
/* Matches: border-radius:6px, box-shadow:0 0 10px rgba(0,0,0,.16), overflow:hidden */
.iw-property-card {
	background: var(--iw-bg);
	border-radius: var(--iw-radius);
	box-shadow: var(--iw-shadow);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	transition: box-shadow var(--iw-transition);
}
.iw-property-card:hover {
	box-shadow: var(--iw-shadow-md);
}

/* -------- Image area -------- */
/* min-height: 250px + hover scale 1.03 only on the image */
.iw-card-image {
	min-height: 250px;
	overflow: hidden;
	background: var(--iw-neutral-light);
	position: relative;
}
.iw-card-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	display: block;
	transition: transform .3s ease;
}
.iw-property-card:hover .iw-card-image img {
	transform: scale(1.03);
}

.iw-card-placeholder {
	width: 100%;
	min-height: 250px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--iw-neutral);
	background: var(--iw-neutral-light);
}
.iw-card-placeholder svg { width: 48px; height: 48px; opacity: .35; }

/* -------- Card body -------- */
/* padding: 6px 12px 0 12px, space-between, flex-grow:1 */
.iw-card-body {
	padding: 6px 12px 0 12px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	flex: 1;
}

/* Top section: title + address */
.iw-card-top {
	display: flex;
	flex-direction: column;
}

/* Title — h5, Open Sans 600, color #54595F */
.iw-card-title {
	font-family: var(--iw-font-main);
	font-size: 1rem;
	font-weight: 600;
	margin: 0;
	padding: 0;
	color: var(--iw-secondary);
	line-height: 1.35;
}

/* Address/description — Open Sans 500, color #7A7A7A, padding 6px 0 */
.iw-card-address {
	font-family: var(--iw-font-main);
	font-size: .875rem;
	font-weight: 500;
	color: var(--iw-text-muted);
	margin: 0;
	padding: 6px 0;
	line-height: 1.4;
}

/* -------- Divider -------- */
.iw-card-divider {
	height: 1px;
	background: var(--iw-border);
	border: none;
	margin: 0;
}

/* -------- Meta grid 2×2 -------- */
/* Matches: grid-template-columns:repeat(2,1fr), padding:15px 0, gap:0 */
.iw-card-meta-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 0;
	padding: 15px 0;
}

.iw-meta-cell {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 10px;
	padding: 4px 0;
}

/* Icons — 21px, color #54595F (secondary) */
.iw-meta-cell .iw-icon {
	width: 21px;
	height: 21px;
	flex-shrink: 0;
	color: var(--iw-secondary);
	fill: var(--iw-secondary);
}

/* Meta text — Roboto 15px 400, color #7A7A7A */
.iw-meta-text {
	font-family: var(--iw-font-meta);
	font-size: 15px;
	font-weight: 400;
	color: var(--iw-text-muted);
	line-height: 1.3;
}

/* Price badge */
.iw-meta-price {
	grid-column: 1 / -1;
	font-family: var(--iw-font-meta);
	font-size: 14px;
	font-weight: 600;
	color: var(--iw-primary);
	padding: 4px 0 0;
}

/* -------- CTA button -------- */
.iw-card-footer {
	padding: 0 0 14px;
}

.iw-card-footer .iw-btn {
	width: 100%;
}

/* ============================================================
   Modal
   ============================================================ */

.iw-modal {
	position: fixed;
	inset: 0;
	z-index: 99990;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 16px;
}

.iw-modal-overlay {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, .55);
	cursor: pointer;
}

.iw-modal-content {
	position: relative;
	z-index: 1;
	background: var(--iw-bg);
	border-radius: var(--iw-radius);
	box-shadow: 0 20px 60px rgba(0,0,0,.25);
	max-width: min(720px, 96vw);
	max-height: 90vh;
	overflow-y: auto;
	width: 100%;
	animation: iw-modal-in .18s ease;
}

@keyframes iw-modal-in {
	from { opacity: 0; transform: translateY(12px); }
	to   { opacity: 1; transform: translateY(0); }
}

.iw-modal-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 16px 20px;
	border-bottom: 1px solid var(--iw-border);
	position: sticky;
	top: 0;
	background: var(--iw-bg);
	z-index: 1;
}

.iw-modal-title {
	font-size: 1.1rem;
	font-weight: 600;
	margin: 0;
	color: var(--iw-text);
}

.iw-modal-close {
	background: none;
	border: none;
	font-size: 1.5rem;
	line-height: 1;
	color: var(--iw-text-muted);
	cursor: pointer;
	padding: 4px 8px;
	border-radius: var(--iw-radius-sm);
	transition: color var(--iw-transition);
}
.iw-modal-close:hover { color: var(--iw-text); }

.iw-modal-body {
	padding: 20px;
}

/* ============================================================
   Availability Search ([iw_availability_search] shortcode)
   Stile identico al filtro hcs_filtro presente sul sito.
   ============================================================ */

/* CSS custom properties locali al form */
.iw-avail-search-wrapper {
	--iw-avail-h:        42px;
	--iw-avail-radius:   5px;
	--iw-avail-gap:      10px;
	--iw-avail-border:   #ddd;
	--iw-avail-color:    #333;
	--iw-avail-teal:     #38616b;
	--iw-avail-teal-dk:  #2e5059;
	--iw-avail-label-sz: .8rem;
	font-family: var(--iw-font-main);
	color: var(--iw-avail-color);
}

/* ---- Form container ---- */
.iw-avail-search-form {
	background: transparent;
}

/* ---- Fields row (inline — default) ---- */
.iw-avail-search-fields {
	display: flex;
	flex-wrap: wrap;
	gap: var(--iw-avail-gap);
	align-items: flex-end;
}

/* ---- Vertical layout ---- */
.iw-avail-search-wrapper[data-layout="vertical"] .iw-avail-search-fields {
	flex-direction: column;
	align-items: stretch;
	max-width: 480px;
}
.iw-avail-search-wrapper[data-layout="vertical"] .iw-avail-field,
.iw-avail-search-wrapper[data-layout="vertical"] .iw-avail-field-submit {
	flex: none;
	width: 100%;
}
.iw-avail-search-wrapper[data-layout="vertical"] .iw-avail-btn {
	width: 100%;
}

/* ---- Individual field group ---- */
.iw-avail-field {
	display: flex;
	flex-direction: column;
	gap: 5px;
	flex: 1;
	min-width: 130px;
}

/* Destination field: wider */
.iw-avail-field--destination { flex: 2; min-width: 190px; }

/* Submit: shrink-to-fit, aligned to bottom */
.iw-avail-field-submit {
	flex: 0 0 auto;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
}

/* ---- Labels ---- */
.iw-avail-label {
	display: block;
	font-size: var(--iw-avail-label-sz);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .05em;
	color: var(--iw-avail-color);
	line-height: 1;
}

/* ---- Inputs & date fields ---- */
.iw-avail-input {
	height: var(--iw-avail-h);
	padding: 0 10px;
	border: 1px solid var(--iw-avail-border);
	border-radius: var(--iw-avail-radius);
	font-family: var(--iw-font-main);
	font-size: .875rem;
	color: var(--iw-avail-color);
	background: #fff;
	box-sizing: border-box;
	width: 100%;
	transition: border-color .15s ease;
}
.iw-avail-input:focus {
	outline: none;
	border-color: var(--iw-avail-teal);
	box-shadow: 0 0 0 3px rgba(56,97,107,.15);
}

/* ---- Select (destinazione) ---- */
.iw-avail-select-wrap {
	position: relative;
}

.iw-avail-select {
	height: var(--iw-avail-h);
	padding: 0 32px 0 10px;
	border: 1px solid var(--iw-avail-border);
	border-radius: var(--iw-avail-radius);
	font-family: var(--iw-font-main);
	font-size: .875rem;
	color: var(--iw-avail-color);
	background: #fff;
	appearance: none;
	-webkit-appearance: none;
	cursor: pointer;
	box-sizing: border-box;
	width: 100%;
	transition: border-color .15s ease;
}
.iw-avail-select:focus {
	outline: none;
	border-color: var(--iw-avail-teal);
	box-shadow: 0 0 0 3px rgba(56,97,107,.15);
}
/* SVG arrow icon */
.iw-avail-select-arrow {
	position: absolute;
	right: 9px;
	top: 50%;
	transform: translateY(-50%);
	pointer-events: none;
	color: #999;
	display: flex;
}
.iw-avail-select-arrow svg { width: 16px; height: 16px; }

/* ---- Guests counter ---- */
/* Reuses .iw-counter but sized to match 42px height */
.iw-avail-search-wrapper .iw-counter {
	height: var(--iw-avail-h);
	border-color: var(--iw-avail-border);
	border-radius: var(--iw-avail-radius);
}
.iw-avail-search-wrapper .iw-counter:focus-within {
	border-color: var(--iw-avail-teal);
	box-shadow: 0 0 0 3px rgba(56,97,107,.15);
}
.iw-avail-search-wrapper .iw-counter-btn:hover:not(:disabled) {
	background: var(--iw-avail-teal);
}

/* ---- Submit button ---- */
.iw-avail-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	height: var(--iw-avail-h);
	padding: 0 24px;
	background: var(--iw-avail-teal);
	color: #fff;
	border: none;
	border-radius: var(--iw-avail-radius);
	font-family: var(--iw-font-main);
	font-size: .875rem;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	cursor: pointer;
	white-space: nowrap;
	transition: background .15s ease;
}
.iw-avail-btn:hover,
.iw-avail-btn:focus-visible {
	background: var(--iw-avail-teal-dk);
	outline: none;
}
.iw-avail-btn:disabled {
	opacity: .6;
	cursor: not-allowed;
}
.iw-avail-btn .iw-icon {
	width: 15px;
	height: 15px;
	flex-shrink: 0;
}

/* ---- Loader & error ---- */
.iw-avail-search-wrapper .iw-avail-loader { margin-top: 20px; }
.iw-avail-search-error                    { margin-top: 12px; }

/* ---- Results ---- */
.iw-avail-search-results { margin-top: 32px; }

.iw-avail-results-summary {
	font-size: .9rem;
	color: var(--iw-text-muted);
	margin-bottom: 20px;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--iw-border);
}
.iw-avail-results-summary strong {
	color: var(--iw-text);
	font-weight: 700;
}

.iw-avail-results-grid {
	display: grid;
	grid-template-columns: repeat(var(--iw-columns, 3), 1fr);
	gap: 24px;
}

/* Price block */
.iw-avail-card-price {
	display: flex;
	align-items: baseline;
	gap: 8px;
	padding: 8px 0 4px;
	flex-wrap: wrap;
}
.iw-avail-price-total {
	font-family: var(--iw-font-meta);
	font-size: 1rem;
	font-weight: 700;
	color: var(--iw-avail-teal);
}
.iw-avail-price-night {
	font-family: var(--iw-font-meta);
	font-size: .8rem;
	color: var(--iw-text-muted);
}

/* ---- Responsive ---- */
@media (max-width: 1024px) {
	.iw-avail-results-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 600px) {
	.iw-avail-search-fields {
		display: grid;
		grid-template-columns: 1fr 1fr;
		grid-template-areas:
			"dest  dest"
			"in    out"
			"guest submit";
	}
	.iw-avail-field--destination { grid-area: dest; }
	.iw-avail-field--checkin     { grid-area: in; }
	.iw-avail-field--checkout    { grid-area: out; }
	.iw-avail-field--guests      { grid-area: guest; }
	.iw-avail-field-submit       { grid-area: submit; align-self: flex-end; }
	.iw-avail-btn                { width: 100%; }

	.iw-avail-results-grid { grid-template-columns: 1fr; }
}
