:root {
	--icb-primary: #2c5f4f;
	--icb-accent: #c4a35a;
	--icb-ink: #1c1c1c;
	--icb-muted: #5c635f;
	--icb-bg: #f7f5f1;
	--icb-surface: #ffffff;
	--icb-radius: 4px;
	--icb-font: "Segoe UI", "Helvetica Neue", Arial, sans-serif;
}

.icb-search-hero,
.icb-rooms-listing,
.icb-results,
.icb-room-detail,
.icb-single-wrap {
	font-family: var(--icb-font);
	color: var(--icb-ink);
	box-sizing: border-box;
}
.icb-search-hero *,
.icb-rooms-listing *,
.icb-results *,
.icb-room-detail *,
.icb-single-wrap * {
	box-sizing: border-box;
}

.icb-search-hero {
	background:
		linear-gradient(120deg, rgba(44, 95, 79, 0.92), rgba(28, 48, 42, 0.88)),
		url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.05'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
	padding: 48px 20px;
	margin-bottom: 32px;
}

.icb-search-form {
	max-width: 1100px;
	margin: 0 auto;
	background: var(--icb-surface);
	padding: 20px;
	border-radius: var(--icb-radius);
	box-shadow: 0 18px 40px rgba(0, 0, 0, 0.18);
}

.icb-search-fields {
	display: grid;
	grid-template-columns: repeat(4, 1fr) auto;
	gap: 12px;
	align-items: end;
}

.icb-search-fields label,
.icb-book-form label {
	display: flex;
	flex-direction: column;
	gap: 6px;
	font-size: 13px;
	font-weight: 600;
	color: var(--icb-muted);
}

.icb-search-fields input,
.icb-book-form input[type="date"],
.icb-book-form input[type="number"] {
	border: 1px solid #d8d5cf;
	border-radius: var(--icb-radius);
	padding: 10px 12px;
	font-size: 15px;
	color: var(--icb-ink);
	background: #fff;
}

.icb-btn {
	appearance: none;
	border: 0;
	background: var(--icb-primary);
	color: #fff;
	padding: 12px 20px;
	border-radius: var(--icb-radius);
	font-weight: 650;
	font-size: 14px;
	letter-spacing: 0.02em;
	cursor: pointer;
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: transform 0.15s ease, background 0.15s ease;
}
.icb-btn:hover { background: #234c40; color: #fff; transform: translateY(-1px); }
.icb-btn-outline {
	background: transparent;
	color: var(--icb-primary);
	border: 1.5px solid var(--icb-primary);
}
.icb-btn-outline:hover { background: var(--icb-primary); color: #fff; }
.icb-btn-accent { background: var(--icb-accent); color: #1c1c1c; }
.icb-btn-accent:hover { background: #b08d45; color: #1c1c1c; }
.icb-btn-block { width: 100%; margin-top: 8px; }
.icb-btn:disabled { opacity: 0.5; cursor: not-allowed; transform: none; }

.icb-section-title {
	font-size: 1.6rem;
	margin: 0 0 20px;
	font-weight: 650;
}

.icb-rooms-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: 24px;
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 16px 40px;
}

.icb-room-card {
	background: var(--icb-surface);
	border-radius: var(--icb-radius);
	overflow: hidden;
	border: 1px solid #ebe7df;
	display: flex;
	flex-direction: column;
	transition: box-shadow 0.2s ease, transform 0.2s ease;
}
.icb-room-card:hover {
	box-shadow: 0 14px 30px rgba(44, 95, 79, 0.12);
	transform: translateY(-3px);
}

.icb-room-card-media {
	display: block;
	aspect-ratio: 4 / 3;
	background: linear-gradient(135deg, #dfe8e4, #c5d2cc);
	overflow: hidden;
}
.icb-room-card-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.35s ease;
}
.icb-room-card:hover .icb-room-card-media img { transform: scale(1.04); }

.icb-room-card-body {
	padding: 18px 18px 20px;
	display: flex;
	flex-direction: column;
	gap: 8px;
	flex: 1;
}
.icb-room-card-body h3 {
	margin: 0;
	font-size: 1.2rem;
}
.icb-room-card-body h3 a {
	color: var(--icb-ink);
	text-decoration: none;
}
.icb-meta { color: var(--icb-muted); font-size: 0.9rem; margin: 0; }
.icb-excerpt { color: #3d433f; font-size: 0.95rem; margin: 0; line-height: 1.45; flex: 1; }

.icb-room-card-foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-top: 8px;
	padding-top: 12px;
	border-top: 1px solid #efebe4;
}
.icb-price strong { font-size: 1.15rem; color: var(--icb-primary); }
.icb-price-label { color: var(--icb-muted); font-size: 0.85rem; }

.icb-single-wrap {
	max-width: 1180px;
	margin: 0 auto;
	padding: 24px 16px 64px;
}

.icb-room-title {
	font-size: clamp(1.8rem, 3vw, 2.6rem);
	margin: 0 0 8px;
	font-weight: 700;
	letter-spacing: -0.02em;
}

.icb-gallery-main { margin: 20px 0 28px; }
.icb-gallery-hero {
	width: 100%;
	max-height: 520px;
	object-fit: cover;
	border-radius: var(--icb-radius);
	display: block;
}
.icb-gallery-thumbs {
	display: flex;
	gap: 8px;
	margin-top: 10px;
	overflow-x: auto;
}
.icb-thumb {
	border: 2px solid transparent;
	padding: 0;
	width: 84px;
	height: 64px;
	border-radius: 3px;
	overflow: hidden;
	cursor: pointer;
	background: #e8ece9;
}
.icb-thumb.is-active { border-color: var(--icb-primary); }
.icb-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }

.icb-room-layout {
	display: grid;
	grid-template-columns: 1.5fr 0.9fr;
	gap: 28px;
	align-items: start;
}

.icb-prose { line-height: 1.7; color: #333; }
.icb-amenities {
	list-style: none;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 8px 16px;
}
.icb-amenities li::before {
	content: "✓";
	color: var(--icb-primary);
	margin-right: 8px;
	font-weight: 700;
}

/* Service icons (amenities) */
.icb-svc {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 16px 12px;
	align-items: start;
	justify-items: center;
}
.icb-svc__item {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-start;
	gap: 8px;
	width: 100%;
	max-width: 110px;
	text-align: center;
}
.icb-svc__icon {
	display: grid;
	place-items: center;
	width: 32px;
	height: 32px;
	line-height: 0;
	flex-shrink: 0;
}
.icb-svc__icon svg {
	display: block;
	width: 28px;
	height: 28px;
}
.icb-svc__label {
	font-size: 0.78rem;
	line-height: 1.25;
	font-weight: 500;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	min-height: 2.5em;
}

.icb-svc--card {
	margin-top: 16px;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	color: #3a3a3a;
}
.icb-svc--card .icb-svc__icon { color: #D4B46C; }
.icb-svc--card .icb-svc__label { color: #555; }

.icb-svc--detail {
	margin-top: 20px;
	padding: 22px 24px;
	background: #4a3728;
	color: #fff;
	grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
	gap: 20px 16px;
}
.icb-svc--detail .icb-svc__icon { color: #fff; }
.icb-svc--detail .icb-svc__label {
	color: #fff;
	font-size: 0.85rem;
	font-weight: 400;
	min-height: 0;
}

@media (max-width: 980px) {
	.icb-svc--card {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}
@media (max-width: 640px) {
	.icb-svc--card {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.icb-svc--detail {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 18px 12px;
		padding: 18px 14px;
	}
}

.icb-booking-box {
	background: var(--icb-bg);
	border: 1px solid #e4dfd6;
	border-radius: var(--icb-radius);
	padding: 20px;
	position: sticky;
	top: 24px;
}
.icb-booking-box h3 { margin: 0 0 14px; }
.icb-book-form { display: flex; flex-direction: column; gap: 12px; }
.icb-guests-row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.icb-optionals {
	border: 0;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.icb-optionals legend { font-weight: 650; margin-bottom: 4px; }
.icb-optional-row {
	display: grid !important;
	grid-template-columns: auto 1fr auto;
	gap: 8px;
	align-items: center;
	background: #fff;
	padding: 8px 10px;
	border-radius: 3px;
	border: 1px solid #e4dfd6;
	font-weight: 500 !important;
}
.icb-optional-row em { font-style: normal; color: var(--icb-muted); font-size: 0.85rem; }

.icb-quote {
	background: #fff;
	border-radius: 3px;
	padding: 12px;
	border: 1px solid #e4dfd6;
}
.icb-quote-row {
	display: flex;
	justify-content: space-between;
	margin-bottom: 6px;
}
.icb-form-msg {
	padding: 10px;
	border-radius: 3px;
	background: #fde8e8;
	color: #8a1f1f;
	margin: 0;
}
.icb-form-msg.is-ok {
	background: #e7f4ef;
	color: #1e5a45;
}
.icb-empty { text-align: center; color: var(--icb-muted); padding: 24px; }

@media (max-width: 900px) {
	.icb-search-fields { grid-template-columns: 1fr 1fr; }
	.icb-room-layout { grid-template-columns: 1fr; }
	.icb-booking-box { position: static; }
}
@media (max-width: 560px) {
	.icb-search-fields { grid-template-columns: 1fr; }
}

/* Booklium-style rooms listing */
.icb-rooms-booklium {
	--icb-teal: #D4B46C;
	--icb-teal-dark: #D4B46C;
	background: #f3f3f3;
	padding: 40px 0 64px;
}
.icb-rooms-booklium .icb-rooms-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 28px;
	max-width: 1180px;
	margin: 0 auto;
	padding: 0 20px;
}
.icb-accom-card {
	background: #fff;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	display: flex;
	flex-direction: column;
	overflow: hidden;
}
.icb-accom-gallery {
	position: relative;
	aspect-ratio: 16 / 11;
	background: #dfe6e4;
	overflow: hidden;
}
.icb-accom-slides {
	position: relative;
	width: 100%;
	height: 100%;
}
.icb-accom-slide {
	position: absolute;
	inset: 0;
	opacity: 0;
	transition: opacity 0.35s ease;
	pointer-events: none;
}
.icb-accom-slide.is-active {
	opacity: 1;
	pointer-events: auto;
	z-index: 1;
}
.icb-accom-slide img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.icb-accom-slide--empty {
	background: linear-gradient(135deg, #c9ddd8, #a8c7c2);
}
.icb-accom-nav {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 2;
	width: 36px;
	height: 36px;
	border: 0;
	background: #D4B46C;
	color: #fff;
	font-size: 16px;
	line-height: 1;
	cursor: pointer;
	display: grid;
	place-items: center;
	padding: 0;
	transition: none;
}
.icb-accom-nav:hover,
.icb-accom-nav:focus,
.icb-accom-nav:active {
	background: #D4B46C;
	color: #fff;
	outline: none;
}
.icb-accom-prev { left: 10px; }
.icb-accom-next { right: 10px; }

.icb-accom-body {
	padding: 22px 22px 8px;
	flex: 1;
}
.icb-accom-title {
	margin: 0 0 12px;
	font-size: 1.35rem;
	font-weight: 700;
	line-height: 1.25;
}
.icb-accom-title a {
	color: #111;
	text-decoration: none;
}
.icb-accom-title a:hover { color: #D4B46C; }
.icb-accom-desc {
	margin: 0;
	color: #6b7280;
	font-size: 0.95rem;
	line-height: 1.55;
}

.icb-accom-foot {
	margin-top: auto;
	padding: 16px 22px 22px;
	border-top: 1px solid #e8e8e8;
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 16px;
}
.icb-accom-price {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}
.icb-accom-price-label,
.icb-accom-price-note {
	font-size: 0.8rem;
	color: #8b9199;
}
.icb-accom-price strong {
	font-size: 1.05rem;
	font-weight: 700;
	color: #111;
	line-height: 1.3;
}
.icb-accom-book {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 110px;
	padding: 12px 22px;
	background: #D4B46C;
	color: #fff !important;
	text-decoration: none !important;
	font-weight: 700;
	font-size: 0.95rem;
	border-radius: 0;
	transition: none;
}
.icb-accom-book:hover,
.icb-accom-book:focus,
.icb-accom-book:active {
	background: #D4B46C !important;
	color: #fff !important;
}

@media (max-width: 980px) {
	.icb-rooms-booklium .icb-rooms-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
@media (max-width: 640px) {
	.icb-rooms-booklium .icb-rooms-grid {
		grid-template-columns: 1fr;
	}
	.icb-accom-foot {
		flex-direction: column;
		align-items: stretch;
	}
	.icb-accom-book { width: 100%; }
}

/* WooCommerce checkout /pagamento/ */
body.woocommerce-checkout #place_order,
body.woocommerce-checkout button#place_order,
body.woocommerce-checkout .woocommerce-checkout-payment button#place_order,
body.woocommerce-checkout #payment #place_order {
	background: #D4B46C !important;
	background-color: #D4B46C !important;
	background-image: none !important;
	border-color: #D4B46C !important;
	color: #fff !important;
	box-shadow: none !important;
}
body.woocommerce-checkout #place_order:hover,
body.woocommerce-checkout #place_order:focus,
body.woocommerce-checkout #place_order:active,
body.woocommerce-checkout button#place_order:hover,
body.woocommerce-checkout button#place_order:focus,
body.woocommerce-checkout button#place_order:active,
body.woocommerce-checkout .woocommerce-checkout-payment button#place_order:hover,
body.woocommerce-checkout .woocommerce-checkout-payment button#place_order:focus,
body.woocommerce-checkout .woocommerce-checkout-payment button#place_order:active,
body.woocommerce-checkout #payment #place_order:hover,
body.woocommerce-checkout #payment #place_order:focus,
body.woocommerce-checkout #payment #place_order:active {
	background: #D4B46C !important;
	background-color: #D4B46C !important;
	background-image: none !important;
	border-color: #D4B46C !important;
	color: #fff !important;
}

/* Products / ceste listing */
.icb-products-listing {
	--icb-teal: #D4B46C;
	--icb-teal-dark: #D4B46C;
}
.icb-products-hero {
	max-width: 1180px;
	margin: 0 auto;
	padding: 8px 20px 28px;
	text-align: center;
}
.icb-products-eyebrow {
	margin: 0 0 8px;
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: #D4B46C;
}
.icb-products-title {
	margin: 0 0 12px;
	font-size: clamp(1.5rem, 2.5vw, 2rem);
	font-weight: 700;
	line-height: 1.25;
	color: #111;
}
.icb-products-lead {
	margin: 0 auto;
	max-width: 540px;
	color: #6b7280;
	font-size: 1rem;
	line-height: 1.55;
}
.icb-product-placeholder {
	background: linear-gradient(135deg, #e8d9b0, #D4B46C) !important;
	display: grid;
	place-items: center;
}
.icb-product-placeholder span {
	font-weight: 700;
	font-size: 1.1rem;
	color: #fff;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}
.icb-product-cart-form {
	margin: 0;
}
.icb-product-cart-form .icb-accom-book {
	cursor: pointer;
	border: 0;
	font-family: inherit;
}
.icb-product-card .icb-accom-foot {
	flex-wrap: wrap;
}
@media (max-width: 980px) {
	.icb-products-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
@media (max-width: 640px) {
	.icb-products-grid {
		grid-template-columns: 1fr;
	}
}
