/* U Haliny — design system przeniesiony z Claude Design (hi-fi prototyp) */

:root {
	--uh-green: #4B6B4A;
	--uh-green-dark: #345239;
	--uh-brown: #4A3B2F;
	--uh-text: #241C16;
	--uh-sand: #E4DCC8;
	--uh-cream: #F6F1E7;
	--uh-offwhite: #FBF9F4;
	--uh-accent: #C9A13B;
}

body.uh-body {
	background: var( --uh-offwhite );
	font-family: 'Work Sans', sans-serif;
	color: var( --uh-text );
	-webkit-font-smoothing: antialiased;
}

.uh-body a {
	color: var( --uh-green-dark );
	text-decoration: none;
}

.uh-body a:hover {
	color: var( --uh-green );
}

.uh-body h1,
.uh-body h2,
.uh-body h3 {
	font-family: 'Lora', serif;
	font-weight: 500;
}

@keyframes uhFadeInUp {
	from { opacity: 0; transform: translateY( 14px ); }
	to { opacity: 1; transform: translateY( 0 ); }
}

@keyframes uhHeroZoom {
	from { transform: scale( 1.15 ) translate3d( 1%, -1%, 0 ); }
	to { transform: scale( 1 ) translate3d( 0, 0, 0 ); }
}

.uh-page,
body.uh-body #main > * {
	animation: uhFadeInUp .5s ease both;
}

.uh-container {
	max-width: 1180px;
	margin: 0 auto;
	padding: 0 40px;
}

@media ( max-width: 640px ) {
	.uh-container { padding: 0 20px; }
}

.uh-eyebrow {
	font-size: 13px;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var( --uh-green );
	margin-bottom: 10px;
}

/* Heading block used as an eyebrow label (real wp:heading, styled small) */
.uh-eyebrow-heading {
	font-family: 'Work Sans', sans-serif !important;
	font-size: 13px !important;
	font-weight: 500 !important;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var( --uh-green );
	margin: 0 0 10px !important;
}

.uh-text-link-wrap {
	margin: 0 !important;
}

/* Reusable aspect-ratio treatments for wp:image blocks used in our sections */
.uh-block-img-45 img {
	aspect-ratio: 4/5;
	object-fit: cover;
	width: 100%;
}

.uh-block-img-43 img {
	aspect-ratio: 4/3;
	object-fit: cover;
	width: 100%;
}

.uh-block-img-169 img {
	aspect-ratio: 16/10;
	object-fit: cover;
	width: 100%;
}

.uh-eyebrow--light {
	color: var( --uh-sand );
}

/* ---------- Header ---------- */

.uh-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: var( --uh-green-dark );
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 16px 40px;
	box-shadow: 0 2px 16px rgba( 36, 28, 22, .15 );
}

.uh-logo {
	display: flex;
	align-items: center;
	gap: 10px;
	text-decoration: none !important;
}

.uh-logo-badge {
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: var( --uh-sand );
	position: relative;
	overflow: hidden;
	flex: none;
}

.uh-logo-badge::before {
	content: "";
	position: absolute;
	top: 7px;
	right: 8px;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var( --uh-accent );
}

.uh-logo-badge::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: -3px;
	width: 27px;
	height: 20px;
	background: var( --uh-green-dark );
	clip-path: polygon( 50% 0%, 0% 100%, 100% 100% );
}

.uh-logo-badge span {
	position: absolute;
	bottom: 0;
	right: -5px;
	width: 21px;
	height: 15px;
	background: var( --uh-green );
	clip-path: polygon( 50% 0%, 0% 100%, 100% 100% );
	display: block;
}

/* Site logo (Wygląd → Dostosuj → Tożsamość strony) */
.uh-logo-img {
	display: block;
	flex: none;
	height: auto;
	border-radius: 50%;
}

.uh-logo-img--header {
	width: 52px;
	margin: -6px 0;
	box-shadow: 0 2px 10px rgba( 0, 0, 0, .25 );
}

.uh-logo-img--footer {
	width: 130px;
}

.uh-logo-text {
	font-family: 'Lora', serif;
	font-size: 19px;
	color: var( --uh-offwhite );
	letter-spacing: .02em;
	white-space: nowrap;
}

.uh-nav-right {
	display: flex;
	align-items: center;
	gap: 28px;
	flex-wrap: wrap;
}

.uh-nav-links {
	display: flex;
	align-items: center;
	gap: 28px;
	flex-wrap: wrap;
	list-style: none;
	margin: 0;
	padding: 0;
}

.uh-nav-links a {
	cursor: pointer;
	font-size: 14.5px;
	letter-spacing: .02em;
	padding-bottom: 3px;
	color: var( --uh-cream ) !important;
}

.uh-nav-links a:hover,
.uh-nav-links .current-menu-item a {
	color: var( --uh-sand ) !important;
}

.uh-nav-cta {
	background: var( --uh-sand );
	color: var( --uh-green-dark ) !important;
	border: none;
	padding: 10px 20px;
	font-size: 13.5px;
	font-family: 'Work Sans', sans-serif;
	font-weight: 600;
	letter-spacing: .03em;
	cursor: pointer;
	display: inline-block;
}

.uh-nav-cta:hover {
	background: var( --uh-offwhite ) !important;
	color: var( --uh-green-dark ) !important;
}

.uh-mobile-toggle {
	display: none;
	background: none;
	border: none;
	color: var( --uh-offwhite );
	font-size: 26px;
	cursor: pointer;
}

@media ( max-width: 900px ) {
	.uh-nav-right { display: none; }
	.uh-nav-right.uh-nav-open {
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		background: var( --uh-green-dark );
		padding: 20px 40px 28px;
		gap: 16px;
	}
	.uh-mobile-toggle { display: block; }
}

/* ---------- Buttons ---------- */

.uh-btn {
	display: inline-block;
	border: none;
	padding: 15px 30px;
	font-size: 14.5px;
	font-weight: 600;
	letter-spacing: .03em;
	cursor: pointer;
	font-family: 'Work Sans', sans-serif;
}

.uh-btn--primary {
	background: var( --uh-green );
	color: var( --uh-offwhite ) !important;
}

.uh-btn--primary:hover {
	background: var( --uh-green-dark );
	color: var( --uh-offwhite ) !important;
}

.uh-btn--outline-light {
	background: transparent;
	color: var( --uh-offwhite ) !important;
	border: 1px solid rgba( 251, 249, 244, .6 );
}

.uh-btn--outline-light:hover {
	border-color: var( --uh-offwhite );
	background: rgba( 251, 249, 244, .08 );
}

.uh-btn--sand {
	background: var( --uh-sand );
	color: var( --uh-green-dark ) !important;
}

.uh-btn--sand:hover {
	background: var( --uh-offwhite );
}

.uh-btn--dark {
	background: var( --uh-green-dark );
	color: var( --uh-offwhite ) !important;
}

.uh-btn--dark:hover {
	background: var( --uh-green );
}

/* Gutenberg Button blocks. The editor strips custom classes from the inner
   link on save, so variants live on the block wrapper (block className,
   "Dodatkowe klasy CSS"): default = green, uh-btn-sand-wrap, uh-btn-dark-wrap. */
.uh-body .wp-block-button .wp-block-button__link {
	background: var( --uh-green );
	color: var( --uh-offwhite );
	border: none;
	border-radius: 0;
	padding: 15px 30px;
	font-family: 'Work Sans', sans-serif;
	font-size: 14.5px;
	font-weight: 600;
	letter-spacing: .03em;
	transition: background .2s ease;
}

.uh-body .wp-block-button .wp-block-button__link:hover {
	background: var( --uh-green-dark );
	color: var( --uh-offwhite );
}

.uh-body .wp-block-button.uh-btn-sand-wrap .wp-block-button__link {
	background: var( --uh-sand );
	color: var( --uh-green-dark );
}

.uh-body .wp-block-button.uh-btn-sand-wrap .wp-block-button__link:hover {
	background: var( --uh-offwhite );
	color: var( --uh-green-dark );
}

.uh-body .wp-block-button.uh-btn-dark-wrap .wp-block-button__link {
	background: var( --uh-green-dark );
}

.uh-body .wp-block-button.uh-btn-dark-wrap .wp-block-button__link:hover {
	background: var( --uh-green );
}

.uh-btn-row {
	display: flex;
	gap: 16px;
	flex-wrap: wrap;
}

.uh-text-link {
	cursor: pointer;
	font-size: 14.5px;
	font-weight: 600;
	color: var( --uh-green-dark ) !important;
	border-bottom: 1px solid var( --uh-green-dark );
	padding-bottom: 2px;
}

/* ---------- Hero ---------- */

.uh-hero {
	position: relative;
	overflow: hidden;
	width: 100vw;
	margin-left: calc( 50% - 50vw );
}

.uh-hero--full { height: 88vh; min-height: 560px; }
.uh-hero--medium { height: 50vh; min-height: 340px; }
.uh-hero--small { height: 44vh; min-height: 300px; }

.uh-hero-slides {
	position: absolute;
	inset: 0;
}

.uh-hero-slide {
	position: absolute;
	inset: 0;
	opacity: 0;
	transition: opacity 1.2s ease;
}

.uh-hero-slide--active {
	opacity: 1;
	z-index: 1;
}

.uh-hero-slide img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	animation: uhHeroZoom 20s ease-in-out infinite alternate;
}

.uh-hero-gradient {
	position: absolute;
	inset: 0;
	z-index: 2;
	background: linear-gradient( 180deg, rgba( 36, 28, 22, .25 ) 0%, rgba( 36, 28, 22, .15 ) 45%, rgba( 36, 28, 22, .65 ) 100% );
}

.uh-hero--medium .uh-hero-gradient,
.uh-hero--small .uh-hero-gradient {
	background: rgba( 36, 28, 22, .4 );
}

.uh-hero-content {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 3;
	padding: 0 48px 72px;
	color: var( --uh-offwhite );
	max-width: 760px;
}

.uh-hero--medium .uh-hero-content,
.uh-hero--small .uh-hero-content {
	left: 48px;
	right: auto;
	bottom: 44px;
	padding: 0;
}

.uh-hero-content h1 {
	font-size: clamp( 40px, 6vw, 72px );
	line-height: 1.05;
	margin: 0 0 20px;
	color: var( --uh-offwhite );
}

.uh-hero--medium .uh-hero-content h1,
.uh-hero--small .uh-hero-content h1 {
	font-size: 48px;
	margin: 0;
}

.uh-hero-content p {
	font-size: 18px;
	line-height: 1.6;
	color: var( --uh-cream );
	max-width: 520px;
	margin: 0 0 32px;
}

@media ( max-width: 640px ) {
	.uh-hero-content, .uh-hero--medium .uh-hero-content, .uh-hero--small .uh-hero-content { padding-left: 24px; padding-right: 24px; left:0; }
}

/* ---------- Sections ---------- */

.uh-section {
	padding: 96px 40px;
	max-width: 1180px;
	margin: 0 auto;
}

.uh-section--cream { background: var( --uh-cream ); padding: 80px 40px 96px; }
.uh-section--cream > .uh-container { padding: 0; max-width: 1180px; }

.uh-section-head {
	text-align: center;
	margin-bottom: 56px;
}

.uh-section-head h2 { font-size: 36px; margin: 0; }

.uh-section-head-row {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	margin-bottom: 44px;
	flex-wrap: wrap;
	gap: 16px;
}

.uh-section-head-row h2 { font-size: 36px; margin: 0; }

.uh-quote-wrap {
	max-width: 760px;
	margin: 0 auto;
	padding: 96px 32px 72px;
	text-align: center;
}

.uh-quote {
	font-family: 'Lora', serif;
	font-style: italic;
	font-size: 24px;
	line-height: 1.6;
	color: var( --uh-green-dark );
	margin: 0;
}

/* ---------- Amenities ---------- */

.uh-amenities-grid {
	display: grid;
	grid-template-columns: repeat( 3, 1fr );
	gap: 28px;
}

.uh-amenity-card {
	background: var( --uh-offwhite );
	padding: 32px 24px;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 14px;
	border: 1px solid rgba( 36, 28, 22, .06 );
	transition: box-shadow .2s ease, transform .2s ease;
}

.uh-amenity-card:hover {
	box-shadow: 0 10px 28px rgba( 36, 28, 22, .08 );
	transform: translateY( -2px );
}

.uh-amenity-row {
	gap: 28px;
	margin-bottom: 28px;
}

.uh-amenity-row:last-of-type {
	margin-bottom: 0;
}

.uh-amenity-icon {
	width: 52px;
	min-height: 52px;
	margin: 0;
	border-radius: 50%;
	overflow: hidden;
	background: rgba( 36, 28, 22, .04 );
}

.uh-amenity-icon img {
	width: 52px;
	height: 52px;
	border-radius: 50%;
	object-fit: cover;
	display: block;
}

/*
 * Spectra icon blocks (uagb/icon), used inside the amenity cards: force our
 * theme color reliably. Spectra's own per-post CSS cache doesn't always
 * regenerate on save, which otherwise leaves icons stuck on the plugin's
 * default blue - !important guarantees our color always wins.
 */
.uh-amenity-card .uagb-icon-wrapper svg {
	fill: var( --uh-green ) !important;
}

.uh-amenity-card .uagb-icon-wrapper .uagb-svg-wrapper:hover svg,
.uh-amenity-card .uagb-icon-wrapper .uagb-svg-wrapper:focus-visible svg {
	fill: var( --uh-green-dark ) !important;
}

.uh-mono {
	width: 52px;
	height: 52px;
	border-radius: 50%;
	border: 1.5px solid rgba( 52, 82, 57, .35 );
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: 'Lora', serif;
	color: var( --uh-green-dark );
	font-size: 14px;
	font-weight: 600;
	flex: none;
}

.uh-amenity-card .uh-amenity-title { font-size: 16.5px; font-weight: 500; }
.uh-amenity-card .uh-amenity-desc { font-size: 14px; line-height: 1.55; color: rgba( 36, 28, 22, .65 ); }

.uh-amenities-list {
	display: grid;
	grid-template-columns: repeat( 3, 1fr );
	gap: 20px 40px;
}

.uh-amenities-list-item {
	display: flex;
	gap: 16px;
	align-items: flex-start;
	padding: 18px 0;
	border-bottom: 1px solid rgba( 36, 28, 22, .08 );
}

.uh-mono--small {
	width: 40px;
	height: 40px;
	font-size: 12px;
}

.uh-amenities-list-item .uh-amenity-title { font-size: 15.5px; font-weight: 500; margin-bottom: 3px; }
.uh-amenities-list-item .uh-amenity-desc { font-size: 13.5px; line-height: 1.5; color: rgba( 36, 28, 22, .6 ); }

@media ( max-width: 900px ) {
	.uh-amenities-grid, .uh-amenities-list { grid-template-columns: repeat( 2, 1fr ); }
}
@media ( max-width: 600px ) {
	.uh-amenities-grid, .uh-amenities-list { grid-template-columns: 1fr; }
}

/* ---------- Room types (2-os / 3-os) ---------- */

.uh-room-types-intro {
	max-width: 640px;
	font-size: 15.5px;
	line-height: 1.7;
	color: rgba( 36, 28, 22, .7 );
	margin: -20px 0 40px !important;
}

.uh-room-types {
	gap: 32px !important;
}

.uh-room-type-card {
	background: var( --uh-offwhite );
	border: 1px solid rgba( 36, 28, 22, .08 );
	padding-bottom: 28px;
}

.uh-room-type-card > :not( .wp-block-gallery ) {
	padding-left: 28px;
	padding-right: 28px;
}

.uh-room-type-card > .wp-block-gallery {
	margin: 0 0 22px !important;
}

.uh-room-type-card h3 {
	font-size: 26px;
	margin: 0 0 10px;
}

.uh-room-type-card p {
	font-size: 15px;
	line-height: 1.65;
	color: rgba( 36, 28, 22, .75 );
	margin: 0 0 14px;
}

.uh-room-type-card .uh-room-type-meta {
	font-size: 12.5px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var( --uh-green );
	margin-bottom: 8px;
}

.uh-room-type-card .uh-room-type-price {
	font-weight: 600;
	color: var( --uh-green-dark );
	margin-bottom: 20px;
}

/* Pokoje page: one row per room type, image + text, every other row mirrored */
.uh-room-type-row {
	gap: 56px !important;
	margin-bottom: 80px !important;
}

.uh-room-type-row:last-of-type {
	margin-bottom: 0 !important;
}

@media ( min-width: 782px ) {
	.uh-room-type-row--reverse {
		flex-direction: row-reverse;
	}
}

.uh-room-type-text h2 {
	font-size: 32px;
	margin: 0 0 14px;
}

.uh-room-type-text p {
	font-size: 15.5px;
	line-height: 1.7;
	color: rgba( 36, 28, 22, .75 );
}

.uh-room-type-text .uh-room-type-meta {
	font-size: 12.5px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var( --uh-green );
	margin-bottom: 8px;
}

.uh-room-type-text .uh-room-type-price {
	font-weight: 600;
	font-size: 17px;
	color: var( --uh-green-dark );
	margin: 20px 0;
}

.uh-check-list {
	list-style: none;
	padding: 0 !important;
	margin: 18px 0 0;
}

.uh-check-list li {
	position: relative;
	padding: 7px 0 7px 28px;
	font-size: 15px;
	border-bottom: 1px solid rgba( 36, 28, 22, .08 );
}

.uh-check-list li:last-child {
	border-bottom: none;
}

.uh-check-list li::before {
	content: "";
	position: absolute;
	left: 2px;
	top: 13px;
	width: 12px;
	height: 6px;
	border-left: 2px solid var( --uh-green );
	border-bottom: 2px solid var( --uh-green );
	transform: rotate( -45deg );
}

.uh-narrow-text {
	max-width: 640px;
	margin-left: auto !important;
	margin-right: auto !important;
	font-size: 15.5px;
	line-height: 1.7;
	color: rgba( 36, 28, 22, .75 );
}

/* Cennik: core Table block styled like the design's price table */
.uh-price-table-block {
	margin: 0 0 32px !important;
}

.uh-price-table-block table {
	border-collapse: collapse;
	width: 100%;
	border: 1px solid rgba( 36, 28, 22, .1 );
}

.uh-price-table-block thead {
	border-bottom: none !important;
}

.uh-price-table-block th {
	background: var( --uh-green-dark );
	color: var( --uh-cream );
	font-size: 13px;
	font-weight: 500;
	letter-spacing: .04em;
	text-transform: uppercase;
	text-align: left;
	padding: 18px 28px;
	border: none !important;
}

.uh-price-table-block td {
	padding: 20px 28px;
	font-size: 14.5px;
	border: none !important;
	border-bottom: 1px solid rgba( 36, 28, 22, .08 ) !important;
	color: rgba( 36, 28, 22, .7 );
}

.uh-price-table-block td:first-child {
	font-family: 'Lora', serif;
	font-size: 16.5px;
	color: var( --uh-text );
}

.uh-price-table-block td:last-child {
	font-weight: 600;
	color: var( --uh-green-dark );
}

.uh-price-notes {
	max-width: 640px;
	margin-bottom: 32px !important;
}

@media ( max-width: 560px ) {
	.uh-price-table-block th,
	.uh-price-table-block td {
		padding: 14px 12px;
	}
}

/* Gallery inside a room-type card = swipeable slider (front end only, so the
   editor keeps the normal gallery UI for adding/removing photos). */
body.uh-body .wp-block-gallery.uh-room-type-slider {
	display: flex !important;
	flex-wrap: nowrap !important;
	gap: 0 !important;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	scrollbar-width: none;
	aspect-ratio: 4/3;
}

body.uh-body .wp-block-gallery.uh-room-type-slider::-webkit-scrollbar {
	display: none;
}

body.uh-body .wp-block-gallery.uh-room-type-slider > figure.wp-block-image {
	flex: 0 0 100% !important;
	width: 100% !important;
	margin: 0 !important;
	scroll-snap-align: start;
}

body.uh-body .wp-block-gallery.uh-room-type-slider > figure.wp-block-image img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
}

/* Empty gallery (no photos picked yet) - show a tidy placeholder instead of nothing */
body.uh-body .wp-block-gallery.uh-room-type-slider:not( :has( img ) ) {
	background: repeating-linear-gradient( 135deg, var( --uh-sand ), var( --uh-sand ) 12px, #DED2B4 12px, #DED2B4 24px );
	align-items: center;
	justify-content: center;
}

body.uh-body .wp-block-gallery.uh-room-type-slider:not( :has( img ) )::after {
	content: "Zdjęcia pokoi wkrótce";
	font-family: ui-monospace, monospace;
	font-size: 12.5px;
	color: rgba( 36, 28, 22, .5 );
}

.uh-slider-wrap {
	position: relative;
	margin-bottom: 22px;
}

.uh-room-type-card .uh-slider-wrap {
	padding: 0 !important;
}

.uh-slider-wrap > .wp-block-gallery {
	margin: 0 !important;
}

.uh-slider-btn {
	position: absolute;
	top: 50%;
	transform: translateY( -50% );
	width: 40px;
	height: 40px;
	border-radius: 50%;
	border: none;
	background: rgba( 251, 249, 244, .9 );
	color: var( --uh-text );
	font-size: 17px;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 2;
	transition: background .2s ease;
}

.uh-slider-btn:hover {
	background: var( --uh-offwhite );
}

.uh-slider-prev { left: 12px; }
.uh-slider-next { right: 12px; }

.uh-slider-count {
	position: absolute;
	right: 12px;
	bottom: 12px;
	background: rgba( 36, 28, 22, .65 );
	color: var( --uh-cream );
	font-size: 12px;
	padding: 4px 9px;
	z-index: 2;
}

/* ---------- Dark section (Okolica teaser) ---------- */

.uh-section-dark {
	background: var( --uh-green-dark );
	padding: 96px 40px;
}

.uh-section-dark-inner {
	max-width: 1180px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1.1fr 1fr;
	gap: 56px;
	align-items: center;
}

.uh-section-dark img { width: 100%; aspect-ratio: 4/3; object-fit: cover; }

.uh-section-dark-text { color: var( --uh-cream ); }
.uh-section-dark-text h2 { color: var( --uh-offwhite ); font-size: 32px; margin: 0 0 18px; }
.uh-section-dark-text p { font-size: 15.5px; line-height: 1.7; color: rgba( 246, 241, 231, .85 ); margin: 0 0 28px; }

@media ( max-width: 900px ) {
	.uh-section-dark-inner { grid-template-columns: 1fr; }
}

/* ---------- Gallery (core Gallery blocks with .uh-gallery-block) ---------- */

.uh-gallery-heading {
	font-size: 26px !important;
	margin: 56px 0 20px !important;
}

.wp-block-gallery.uh-gallery-block {
	gap: 16px !important;
}

.wp-block-gallery.uh-gallery-block .wp-block-image {
	aspect-ratio: 1/1;
	overflow: hidden;
	margin: 0 !important;
}

.wp-block-gallery.uh-gallery-block .wp-block-image img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	transition: transform .5s;
}

.wp-block-gallery.uh-gallery-block .wp-block-image:hover img {
	transform: scale( 1.06 );
}

@media ( max-width: 781px ) {
	.wp-block-gallery.uh-gallery-block.has-nested-images figure.wp-block-image:not( #individual-image ) {
		width: calc( 50% - 8px ) !important;
	}
}
/* ---------- CTA ---------- */

.uh-cta {
	background: var( --uh-cream );
	padding: 96px 40px;
	text-align: center;
}

.uh-cta-inner { max-width: 640px; margin: 0 auto; }
.uh-cta-inner h2 { font-size: 34px; margin: 0 0 18px; }
.uh-cta-inner p { font-size: 15.5px; line-height: 1.7; color: rgba( 36, 28, 22, .7 ); margin: 0 0 32px; }

/* ---------- Two-column generic ---------- */

.uh-two-col {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 64px;
	align-items: center;
}

.uh-two-col img { width: 100%; aspect-ratio: 4/5; object-fit: cover; }
.uh-two-col.uh-two-col--4-3 img { aspect-ratio: 4/3; }

@media ( max-width: 900px ) {
	.uh-two-col { grid-template-columns: 1fr; gap: 32px; }
}

/* ---------- Nasz dom (O nas 3-col) ---------- */

.uh-three-col {
	display: grid;
	grid-template-columns: repeat( 3, 1fr );
	gap: 24px;
}

.uh-three-col img { width: 100%; aspect-ratio: 4/3; object-fit: cover; margin-bottom: 16px; }
.uh-three-col .uh-col-title { font-size: 16.5px; font-weight: 500; margin-bottom: 6px; }
.uh-three-col .uh-col-desc { font-size: 14px; line-height: 1.6; color: rgba( 36, 28, 22, .65 ); }

@media ( max-width: 900px ) { .uh-three-col { grid-template-columns: 1fr; } }

/* ---------- Trails / narty ---------- */

.uh-trail-grid {
	display: grid;
	grid-template-columns: repeat( 3, 1fr );
	gap: 24px;
}

@media ( max-width: 900px ) { .uh-trail-grid { grid-template-columns: 1fr; } }

.uh-trail-card { background: var( --uh-offwhite ); padding: 28px; }
.uh-trail-card-head { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; }
.uh-trail-bar { width: 28px; height: 6px; }
.uh-trail-card-head span { font-size: 15.5px; font-weight: 600; }
.uh-trail-from { font-size: 13px; color: rgba( 36, 28, 22, .6 ); margin-bottom: 10px; }
.uh-trail-desc { font-size: 14px; line-height: 1.6; color: rgba( 36, 28, 22, .7 ); }

.uh-ski-list { display: flex; flex-direction: column; gap: 18px; }
.uh-ski-row { display: flex; justify-content: space-between; border-bottom: 1px solid rgba( 36, 28, 22, .1 ); padding-bottom: 14px; }
.uh-ski-row:last-child { border-bottom: none; }
.uh-ski-name { font-size: 15px; font-weight: 500; }
.uh-ski-dist { font-size: 14px; color: rgba( 36, 28, 22, .6 ); }

/* wp:columns version of the trail cards (Okolica page) */
.uh-trail-columns { gap: 24px; }
.uh-trail-col { background: var( --uh-offwhite ); padding: 28px; }
.uh-trail-col .uh-trail-bar { margin-bottom: 14px; }

/* wp:table version of the ski list (Okolica page) */
.uh-ski-table table { border-collapse: collapse; width: 100%; }
.uh-ski-table tr { border-bottom: 1px solid rgba( 36, 28, 22, .1 ); }
.uh-ski-table tr:last-child { border-bottom: none; }
.uh-ski-table td { border: none; padding: 12px 0; font-size: 15px; }
.uh-ski-table td:first-child { font-weight: 500; }
.uh-ski-table td:last-child { text-align: right; color: rgba( 36, 28, 22, .6 ); font-size: 14px; }

/* ---------- Mapa okolicy (block uhaliny/mapa-okolicy) ---------- */

.uh-mapa-filters {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px;
	margin-bottom: 24px;
}

.uh-mapa-filter {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 9px 18px;
	border: 1px solid rgba( 36, 28, 22, .18 );
	background: var( --uh-offwhite );
	color: var( --uh-text );
	font-family: 'Work Sans', sans-serif;
	font-size: 14px;
	cursor: pointer;
	transition: background .2s ease, border-color .2s ease, color .2s ease;
}

.uh-mapa-filter:hover {
	border-color: var( --uh-green );
}

.uh-mapa-filter.is-active {
	background: var( --uh-green-dark );
	border-color: var( --uh-green-dark );
	color: var( --uh-offwhite );
}

.uh-mapa-dot {
	display: inline-block;
	width: 10px;
	height: 10px;
	border-radius: 50%;
	flex: none;
}

.uh-mapa-filter.is-active .uh-mapa-dot {
	box-shadow: 0 0 0 2px var( --uh-offwhite );
}

.uh-mapa-layout {
	display: grid;
	grid-template-columns: 1fr 400px;
	height: 620px;
	border: 1px solid rgba( 36, 28, 22, .12 );
	background: var( --uh-offwhite );
}

/* own stacking context, so Leaflet's panes stay under the sticky header */
.uh-mapa-map {
	position: relative;
	z-index: 0;
	height: 100%;
	min-height: 0;
}

.uh-mapa-panel {
	overflow-y: auto;
	border-left: 1px solid rgba( 36, 28, 22, .12 );
	background: var( --uh-offwhite );
}

@media ( max-width: 900px ) {
	.uh-mapa-layout {
		grid-template-columns: 1fr;
		height: auto;
	}
	.uh-mapa-map {
		height: 58vh;
		min-height: 360px;
	}
	.uh-mapa-panel {
		border-left: none;
		border-top: 1px solid rgba( 36, 28, 22, .12 );
		max-height: none;
		scroll-margin-top: 90px;
	}
}

.uh-mapa-list-title {
	font-size: 12.5px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var( --uh-green );
	margin: 0;
	padding: 20px 22px 10px;
}

.uh-mapa-item {
	display: flex;
	align-items: center;
	gap: 14px;
	width: 100%;
	padding: 12px 22px;
	background: none;
	border: none;
	border-top: 1px solid rgba( 36, 28, 22, .07 );
	text-align: left;
	cursor: pointer;
	font-family: 'Work Sans', sans-serif;
	color: var( --uh-text );
	transition: background .15s ease;
}

.uh-mapa-item:hover {
	background: var( --uh-cream );
}

.uh-mapa-item img,
.uh-mapa-item-noimg {
	width: 56px;
	height: 56px;
	object-fit: cover;
	flex: none;
}

.uh-mapa-item-noimg {
	opacity: .25;
}

.uh-mapa-item-text {
	display: flex;
	flex-direction: column;
	gap: 3px;
}

.uh-mapa-item-name {
	font-family: 'Lora', serif;
	font-size: 17px;
}

.uh-mapa-item-meta {
	font-size: 13px;
	color: rgba( 36, 28, 22, .6 );
}

.uh-mapa-back {
	display: block;
	width: 100%;
	padding: 14px 22px;
	background: none;
	border: none;
	border-bottom: 1px solid rgba( 36, 28, 22, .08 );
	text-align: left;
	font-family: 'Work Sans', sans-serif;
	font-size: 14px;
	color: var( --uh-green-dark );
	cursor: pointer;
}

.uh-mapa-photos {
	position: relative;
	aspect-ratio: 4/3;
	background: var( --uh-cream );
}

.uh-mapa-photos--empty {
	aspect-ratio: 16/5;
	background: repeating-linear-gradient( 135deg, var( --uh-sand ), var( --uh-sand ) 12px, #DED2B4 12px, #DED2B4 24px );
}

.uh-mapa-photos-track {
	display: flex;
	height: 100%;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
}

.uh-mapa-photos-track::-webkit-scrollbar {
	display: none;
}

.uh-mapa-photos-track img {
	flex: 0 0 100%;
	width: 100%;
	height: 100%;
	object-fit: cover;
	scroll-snap-align: start;
}

.uh-mapa-detail-body {
	padding: 22px 22px 28px;
}

.uh-mapa-cat {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 12.5px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: rgba( 36, 28, 22, .65 );
	margin: 0 0 8px;
}

.uh-mapa-name {
	font-size: 28px;
	margin: 0 0 6px;
}

.uh-mapa-info {
	font-size: 14px;
	color: rgba( 36, 28, 22, .7 );
	margin: 0 0 14px;
}

.uh-mapa-distance {
	display: inline-block;
	background: var( --uh-cream );
	padding: 6px 12px;
	font-size: 13.5px;
	margin: 0 0 16px;
}

.uh-mapa-distance strong {
	color: var( --uh-green-dark );
}

.uh-mapa-dojazd {
	border-left: 3px solid var( --uh-accent );
	padding: 4px 0 4px 14px;
	margin: 0 0 16px;
	font-size: 14.5px;
	line-height: 1.6;
}

.uh-mapa-dojazd span {
	display: block;
	font-size: 12px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: rgba( 36, 28, 22, .55 );
	margin-bottom: 2px;
}

.uh-mapa-desc {
	font-size: 15px;
	line-height: 1.7;
	color: rgba( 36, 28, 22, .78 );
}

.uh-mapa-desc p {
	margin: 0 0 12px;
}

.uh-mapa-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 18px;
	margin-top: 22px;
}

.uh-mapa-actions .uh-btn {
	padding: 12px 22px;
	font-size: 14px;
}

.uh-mapa-note {
	text-align: center;
	font-size: 13px;
	color: rgba( 36, 28, 22, .55 );
	margin: 14px 0 0;
}

/* Markers */
.uh-pin-wrap {
	background: none;
	border: none;
}

.uh-pin {
	display: block;
	width: 26px;
	height: 26px;
	margin: 2px 0 0 2px;
	background: var( --pin, #345239 );
	border: 3px solid var( --uh-offwhite );
	border-radius: 50% 50% 50% 0;
	transform: rotate( -45deg );
	box-shadow: 0 3px 10px rgba( 36, 28, 22, .35 );
	transition: transform .2s ease;
}

.uh-pin-wrap:hover .uh-pin,
.uh-pin-wrap.is-active .uh-pin {
	transform: rotate( -45deg ) scale( 1.25 );
}

.uh-pin-wrap.is-active {
	z-index: 900 !important;
}

.uh-pin-home {
	background: none;
	border: none;
}

.uh-pin-home-logo {
	display: block;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	box-shadow: 0 0 0 3px var( --uh-offwhite ), 0 3px 12px rgba( 36, 28, 22, .4 );
}

.uh-pin-home .uh-logo-badge {
	display: block;
	box-shadow: 0 0 0 3px var( --uh-offwhite ), 0 3px 12px rgba( 36, 28, 22, .4 );
}

.uh-mapa .leaflet-container {
	font-family: 'Work Sans', sans-serif;
	background: var( --uh-cream );
}

.uh-mapa .leaflet-control-attribution a {
	color: var( --uh-green-dark ) !important;
}

/* ---------- Kontakt ---------- */

.uh-kontakt-grid { display: grid; grid-template-columns: 1.2fr 1fr; gap: 64px; }
@media ( max-width: 900px ) { .uh-kontakt-grid { grid-template-columns: 1fr; } }

.uh-kontakt-info-card { background: var( --uh-cream ); padding: 32px; margin-bottom: 24px; }
.uh-kontakt-info-card .uh-kontakt-title { font-family: 'Lora', serif; font-size: 19px; margin-bottom: 18px; }

.uh-form-sent { background: var( --uh-cream ); padding: 40px; text-align: center; }
.uh-form-sent-title { font-family: 'Lora', serif; font-size: 22px; margin-bottom: 10px; color: var( --uh-green-dark ); }

.uh-form label { font-size: 13px; color: rgba( 36, 28, 22, .6 ); display: block; margin-bottom: 6px; }
.uh-form input[type="text"],
.uh-form input[type="email"],
.uh-form input[type="tel"],
.uh-form textarea {
	width: 100%;
	box-sizing: border-box;
	padding: 13px 14px;
	border: 1px solid rgba( 36, 28, 22, .2 );
	background: var( --uh-offwhite );
	font-size: 14.5px;
	font-family: 'Work Sans', sans-serif;
	border-radius: 0;
}

.uh-form p { margin: 0 0 20px; }
.uh-form .wpcf7-submit {
	background: var( --uh-green );
	color: var( --uh-offwhite );
	border: none;
	padding: 16px 30px;
	font-size: 14.5px;
	font-weight: 600;
	letter-spacing: .03em;
	cursor: pointer;
	font-family: 'Work Sans', sans-serif;
}
.uh-form .wpcf7-submit:hover { background: var( --uh-green-dark ); }

/* Formularz LV (wtyczka lv-formularz) w wyglądzie strony */
.uh-form .lvf { max-width: none; gap: 20px; --lvf-akcent: var( --uh-green ); }
.uh-form .lvf-rzad { gap: 20px; }
.uh-form .lvf-pole label { position: static; width: auto; height: auto; overflow: visible; clip: auto; white-space: normal; }
.uh-form .lvf input[type="text"],
.uh-form .lvf input[type="email"],
.uh-form .lvf input[type="tel"],
.uh-form .lvf textarea { padding: 13px 14px; border: 1px solid rgba( 36, 28, 22, .2 ); border-radius: 0; background: var( --uh-offwhite ); font-size: 14.5px; color: var( --uh-text ); }
.uh-form .lvf input:focus,
.uh-form .lvf textarea:focus { border-color: var( --uh-green ); box-shadow: 0 0 0 3px rgba( 75, 107, 74, .15 ); }
.uh-form .lvf-zgoda label { margin: 0; font-size: 13px; color: rgba( 36, 28, 22, .75 ); }
.uh-form .lvf-zgoda input { accent-color: var( --uh-green ); }
.uh-form .lvf-przycisk { background: var( --uh-green ); color: var( --uh-offwhite ); border-radius: 0; padding: 16px 30px; font-size: 14.5px; font-weight: 600; letter-spacing: .03em; font-family: 'Work Sans', sans-serif; }
.uh-form .lvf-przycisk:hover { background: var( --uh-green-dark ); filter: none; transform: none; }
.uh-form .lvf-info { border-radius: 0; }
.uh-form .lvf-info.lvf-ok { background: var( --uh-cream ); border-color: var( --uh-sand ); color: var( --uh-green-dark ); }

.uh-map-embed iframe { width: 100%; aspect-ratio: 4/3; border: 0; display: block; }

/* ---------- Footer ---------- */

.uh-footer {
	background: var( --uh-text );
	color: var( --uh-cream );
	padding: 64px 40px 32px;
}

.uh-footer-grid {
	max-width: 1180px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1.4fr 1fr 1fr;
	gap: 48px;
	margin-bottom: 48px;
}

@media ( max-width: 780px ) { .uh-footer-grid { grid-template-columns: 1fr; } }

.uh-footer-logo-row { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; }
.uh-footer-logo-badge { width: 46px; height: 46px; }
.uh-footer-logo-badge.uh-logo-badge::before { top: 9px; right: 10px; width: 7px; height: 7px; }
.uh-footer-logo-badge.uh-logo-badge::after { width: 33px; height: 24px; }
.uh-footer-logo-badge .uh-logo-badge-tri2 { width: 26px; height: 18px; right: -6px; }
.uh-footer-brand-name { font-family: 'Lora', serif; font-size: 22px; }
.uh-footer-desc { font-size: 14px; line-height: 1.7; color: rgba( 246, 241, 231, .6 ); max-width: 320px; }

.uh-footer-col-title {
	font-size: 13px;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: rgba( 246, 241, 231, .5 );
	margin-bottom: 16px;
}

.uh-footer-nav { display: flex; flex-direction: column; gap: 10px; list-style: none; margin: 0; padding: 0; }
.uh-footer-nav a { font-size: 14px; color: rgba( 246, 241, 231, .8 ) !important; }
.uh-footer-nav a:hover { color: var( --uh-sand ) !important; }

.uh-footer-contact { font-size: 14px; line-height: 1.9; color: rgba( 246, 241, 231, .8 ); }
.uh-footer-contact a { color: rgba( 246, 241, 231, .8 ) !important; }
.uh-footer-contact a:hover,
.uh-footer-social a:hover { color: var( --uh-sand ) !important; }
.uh-footer-social { display: flex; flex-wrap: wrap; gap: 8px 16px; margin-top: 14px; font-size: 13.5px; }
.uh-footer-social a { color: var( --uh-sand ) !important; border-bottom: 1px solid rgba( 228, 220, 200, .35 ); }

.uh-footer-bottom {
	max-width: 1180px;
	margin: 0 auto;
	border-top: 1px solid rgba( 246, 241, 231, .12 );
	padding-top: 24px;
	font-size: 12.5px;
	color: rgba( 246, 241, 231, .4 );
}

.uh-placeholder-note {
	display: inline-block;
	margin-top: 1em;
	padding: .6em 1em;
	background: #FBF3D9;
	border: 1px solid #E9DDA3;
	font-size: .9em;
	color: #5C4A1E;
}


/* ---------- Cennik (blok uhaliny/cennik) ---------- */

.uh-pricing-heading { font-size: 24px; margin: 48px 0 0; }
.uh-pricing-dates { display: block; font-size: 13px; font-weight: 400; color: rgba( 36, 28, 22, .6 ); margin-top: 2px; }

/* ---------- Rezerwacja (blok uhaliny/rezerwacja) ---------- */

.uh-body a[href^="tel:"] { white-space: nowrap; }

.uh-booking { margin-top: 32px; }
.uh-booking-grid { display: grid; grid-template-columns: minmax( 0, 1fr ) 360px; gap: 40px; align-items: start; }
@media ( max-width: 960px ) { .uh-booking-grid { grid-template-columns: 1fr; } }

.uh-booking-step { border: none; padding: 0; margin: 0 0 36px; min-width: 0; }
.uh-booking-step legend { font-family: 'Lora', serif; font-size: 22px; padding: 0; margin: 0 0 16px; }
.uh-booking-label { font-size: 13px; color: rgba( 36, 28, 22, .6 ); margin: 20px 0 8px; }
.uh-booking-hint { font-size: 14.5px; color: rgba( 36, 28, 22, .75 ); margin: 0 0 16px; }

.uh-booking-types { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
@media ( max-width: 560px ) { .uh-booking-types { grid-template-columns: 1fr; } }
.uh-booking-type { position: relative; display: block; padding: 18px 20px; background: var( --uh-cream ); border: 2px solid transparent; cursor: pointer; }
.uh-booking-type input { position: absolute; opacity: 0; pointer-events: none; }
.uh-booking-type:has( input:checked ) { border-color: var( --uh-green ); background: var( --uh-offwhite ); }
.uh-booking-type:has( input:focus-visible ) { outline: 2px solid var( --uh-accent ); outline-offset: 2px; }
.uh-booking-type-name { display: block; font-family: 'Lora', serif; font-size: 18px; }
.uh-booking-type-meta { display: block; font-size: 13.5px; color: rgba( 36, 28, 22, .65 ); margin-top: 4px; }

.uh-booking-pills { display: flex; flex-wrap: wrap; gap: 8px; }
.uh-booking-pill input { position: absolute; opacity: 0; pointer-events: none; }
.uh-booking-pill span { display: inline-block; padding: 9px 16px; border: 1px solid rgba( 36, 28, 22, .2 ); font-size: 14px; cursor: pointer; background: var( --uh-offwhite ); }
.uh-booking-pill input:checked + span { background: var( --uh-green ); border-color: var( --uh-green ); color: var( --uh-offwhite ); }
.uh-booking-pill input:focus-visible + span { outline: 2px solid var( --uh-accent ); outline-offset: 2px; }

/* Kalendarz */
.uh-cal { position: relative; }
.uh-cal-nav { position: absolute; top: -4px; left: 0; right: 0; display: flex; justify-content: space-between; pointer-events: none; }
.uh-cal-nav button { pointer-events: auto; width: 36px; height: 36px; border: 1px solid rgba( 36, 28, 22, .2 ); background: var( --uh-offwhite ); font-size: 20px; line-height: 1; cursor: pointer; color: var( --uh-text ); }
.uh-cal-nav button:disabled { opacity: .3; cursor: default; }
.uh-cal-months { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; transition: opacity .2s; }
.uh-cal-months.is-loading { opacity: .5; }
@media ( max-width: 700px ) { .uh-cal-months { grid-template-columns: 1fr; } .uh-cal-month + .uh-cal-month { display: none; } }
.uh-cal-title { text-align: center; font-family: 'Lora', serif; font-size: 17px; margin: 4px 0 14px; line-height: 28px; }
.uh-cal-grid { display: grid; grid-template-columns: repeat( 7, 1fr ); gap: 3px; }
.uh-cal-dow { text-align: center; font-size: 12px; color: rgba( 36, 28, 22, .5 ); padding-bottom: 4px; }
.uh-cal-day { position: relative; aspect-ratio: 1 / 1; border: none; background: var( --uh-cream ); font: inherit; font-size: 14px; color: var( --uh-text ); cursor: pointer; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 0; line-height: 1.1; }
.uh-cal-day small { font-size: 10px; color: rgba( 36, 28, 22, .55 ); margin-top: 2px; }
.uh-cal-day:hover:not( :disabled ) { background: var( --uh-sand ); }
.uh-cal-day:disabled { cursor: default; }
.uh-cal-day.is-past { background: transparent; color: rgba( 36, 28, 22, .25 ); }
.uh-cal-day.is-full { background: repeating-linear-gradient( 135deg, #EFE9DC, #EFE9DC 4px, #E6DFCF 4px, #E6DFCF 8px ); color: rgba( 36, 28, 22, .35 ); text-decoration: line-through; }
.uh-cal-day.is-full:not( :disabled ) { cursor: pointer; text-decoration: none; }
.uh-cal-day.is-range { background: #D5E0D0; }
.uh-cal-day.is-start, .uh-cal-day.is-end { background: var( --uh-green ) !important; color: var( --uh-offwhite ); text-decoration: none; }
.uh-cal-day.is-start small, .uh-cal-day.is-end small { color: rgba( 251, 249, 244, .8 ); }
.uh-cal-legend { display: flex; gap: 18px; flex-wrap: wrap; font-size: 13px; color: rgba( 36, 28, 22, .65 ); margin-top: 16px; }
.uh-cal-dot { display: inline-block; width: 12px; height: 12px; margin-right: 6px; vertical-align: -1px; }
.uh-cal-dot.is-free { background: var( --uh-cream ); border: 1px solid rgba( 36, 28, 22, .15 ); }
.uh-cal-dot.is-full { background: repeating-linear-gradient( 135deg, #EFE9DC, #EFE9DC 2px, #D9D1BE 2px, #D9D1BE 4px ); }
.uh-cal-dot.is-selected { background: var( --uh-green ); }

/* Podsumowanie i formularz */
.uh-booking-side { position: sticky; top: 100px; }
@media ( max-width: 960px ) { .uh-booking-side { position: static; } }
.uh-booking-summary { background: var( --uh-cream ); padding: 24px; margin-bottom: 24px; transition: opacity .2s; }
.uh-booking-summary.is-loading { opacity: .5; }
.uh-booking-summary p { margin: 0; }
.uh-booking-summary-empty { font-size: 14.5px; color: rgba( 36, 28, 22, .7 ); }
.uh-booking-summary-title { font-family: 'Lora', serif; font-size: 19px; }
.uh-booking-summary-dates { font-size: 14.5px; margin-top: 4px !important; }
.uh-booking-summary-nights { font-size: 13px; color: rgba( 36, 28, 22, .6 ); margin: 2px 0 14px !important; }
.uh-booking-lines { width: 100%; border-collapse: collapse; font-size: 14px; }
.uh-booking-lines td { padding: 6px 0; border: none; vertical-align: top; }
.uh-booking-lines td:last-child { text-align: right; white-space: nowrap; padding-left: 12px; }
.uh-booking-total td { border-top: 1px solid rgba( 36, 28, 22, .15 ); padding-top: 12px; font-weight: 600; font-size: 16px; }

.uh-booking-form select { width: 100%; height: auto; min-height: 48px; line-height: 1.4; padding: 12px 14px; border: 1px solid rgba( 36, 28, 22, .2 ); background: var( --uh-offwhite ); font: inherit; font-size: 14.5px; border-radius: 0; }
.uh-booking-form p { margin: 0 0 16px; }
.uh-booking-checks label, .uh-booking-consent label { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; color: var( --uh-text ); margin-bottom: 8px; }
.uh-booking-checks input, .uh-booking-consent input { margin-top: 3px; accent-color: var( --uh-green ); }
.uh-booking-consent label { font-size: 13px; color: rgba( 36, 28, 22, .7 ); }
.uh-booking-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.uh-booking-form .uh-btn { width: 100%; }
.uh-booking-form .uh-btn:disabled { opacity: .45; cursor: not-allowed; }
.uh-booking-note { font-size: 12.5px; color: rgba( 36, 28, 22, .6 ); margin: 10px 0 0 !important; text-align: center; }
.uh-booking-message { padding: 12px 14px; background: var( --uh-cream ); font-size: 14px; }
.uh-booking-message.is-error { background: #F7E6DF; color: #7A2E17; }
.uh-booking-done { background: var( --uh-cream ); padding: 48px 32px; text-align: center; max-width: 640px; margin: 0 auto; }
.uh-booking-done-title { font-family: 'Lora', serif; font-size: 26px; color: var( --uh-green-dark ); margin: 0 0 12px; }
