/*
Theme Name: Kemp Vysocina FSE
Theme URI: https://example.local/kemp-vysocina-fse
Author: Jan Polzer
Author URI: https://www.polzer.cz
Description: Block theme pro kemp podle Figma navrhu (Full Site Editing + theme.json).
Requires at least: 6.5
Tested up to: 6.8
Requires PHP: 7.4
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: kemp-vysocina-fse
Tags: full-site-editing, block-patterns, custom-colors
*/

.kemp-hero-overlay {
	background: linear-gradient(102deg, rgba(14, 17, 10, 0.72) 7%, rgba(35, 42, 23, 0) 88%);
}

/* Homepage hero (Figma node 23:3). */
.home .wp-block-post-content > .wp-block-cover.alignfull:first-child {
	min-height: 682px !important;
	align-items: stretch;
}

.home .wp-block-post-content > .wp-block-cover.alignfull:first-child .wp-block-cover__image-background {
	object-position: center 43%;
}

.home .wp-block-post-content > .wp-block-cover.alignfull:first-child .wp-block-cover__background {
	background: linear-gradient(101.95deg, rgba(14, 17, 10, 0.7) 6.19%, rgba(35, 42, 23, 0) 88.35%);
	opacity: 1;
}

.home .wp-block-post-content > .wp-block-cover.alignfull:first-child > .wp-block-cover__inner-container {
	display: flex;
	align-items: center;
	min-height: inherit;
}

.home .wp-block-post-content > .wp-block-cover.alignfull:first-child .wp-block-group.alignwide {
	width: min(var(--wp--style--global--wide-size, 1480px), 100%);
	max-width: var(--wp--style--global--wide-size, 1480px);
	padding-top: 0 !important;
	padding-bottom: 0 !important;
	padding-left: clamp(0px, 4.4vw, 66px);
	margin-inline: auto;
}

.home .wp-block-post-content > .wp-block-cover.alignfull:first-child .wp-block-heading {
	max-width: 760px;
	margin-bottom: 26px;
	color: #ffffff;
	font-size: clamp(2rem, 3.2vw, 3rem);
	line-height: 1.08;
	font-weight: 700;
	text-wrap: balance;
}

.home .wp-block-post-content > .wp-block-cover.alignfull:first-child .wp-block-buttons {
	margin-top: 0;
}

.home .wp-block-post-content > .wp-block-cover.alignfull:first-child .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48.66px;
	padding: 0.72rem 1.7rem;
	border: 1.5px solid rgba(75, 142, 0, 0.6);
	border-radius: 30px;
	background: rgba(75, 142, 0, 0.5) !important;
	color: #ffffff !important;
	font-size: 18px;
	font-weight: 700;
	line-height: 1.2;
}

/* Pattern base classes (replacing removed inline styles). */
.kemp-pattern.wp-block-group:not(.alignfull) {
	padding-right: max(24px, 5vw);
	padding-left: max(24px, 5vw);
}

.kemp-pattern--about-accommodation-details,
.kemp-pattern--contact-content,
.kemp-pattern--reservation-embed,
.kemp-pattern--service-grid,
.kemp-pattern--services-cyclists,
.kemp-pattern--trips-tips-grid {
	padding-top: var(--wp--preset--spacing--40);
	padding-bottom: var(--wp--preset--spacing--60);
}

.kemp-pattern--access-map,
.kemp-pattern--local-trips,
.kemp-pattern--services-aquapark,
.kemp-pattern--services-food {
	padding-top: var(--wp--preset--spacing--40);
	padding-bottom: var(--wp--preset--spacing--40);
}

.kemp-pattern--about-camp-types,
.kemp-pattern--reason-split,
.kemp-pattern--services-central-camp {
	padding-top: var(--wp--preset--spacing--60);
	padding-bottom: var(--wp--preset--spacing--40);
}

.kemp-pattern--entertainment-gallery {
	padding-top: var(--wp--preset--spacing--50);
	padding-bottom: var(--wp--preset--spacing--40);
}

.kemp-pattern--entertainment-season-columns {
	padding-top: var(--wp--preset--spacing--20);
	padding-bottom: var(--wp--preset--spacing--60);
}

.kemp-pattern--gallery-sections {
	padding-top: var(--wp--preset--spacing--40);
	padding-bottom: var(--wp--preset--spacing--20);
}

.kemp-pattern--pricing-table-camp {
	padding-top: var(--wp--preset--spacing--60);
	padding-bottom: var(--wp--preset--spacing--60);
}

.kemp-pattern--cta-reservation {
	padding-top: 0;
	padding-bottom: var(--wp--preset--spacing--60);
}

.kemp-pattern--feature-cards,
.kemp-pattern--about-camp-intro-strip,
.kemp-pattern--entertainment-intro-strip {
	padding-right: max(24px, 5vw);
	padding-left: max(24px, 5vw);
}

.kemp-pattern--feature-cards {
	padding-top: var(--wp--preset--spacing--50);
	padding-bottom: var(--wp--preset--spacing--50);
}

.kemp-pattern--about-camp-intro-strip,
.kemp-pattern--entertainment-intro-strip {
	padding-top: 38px;
	padding-bottom: 38px;
}

.kemp-pattern--hero-intro {
	min-height: 620px;
}

.kemp-pattern--about-camp-hero {
	min-height: 330px;
}

.kemp-pattern--contact-hero,
.kemp-pattern--entertainment-hero,
.kemp-pattern--gallery-hero,
.kemp-pattern--services-hero,
.kemp-pattern--trips-tips-hero {
	min-height: 328px;
}

.kemp-pattern--pricing-hero,
.kemp-pattern--reservation-hero {
	min-height: 324px;
}

.kemp-pattern--access-map > .wp-block-columns > .wp-block-column:first-child {
	flex-basis: 46%;
}

.kemp-pattern--access-map > .wp-block-columns > .wp-block-column:last-child {
	flex-basis: 54%;
}

.kemp-pattern--services-food > .wp-block-columns > .wp-block-column:first-child,
.kemp-pattern--services-central-camp > .wp-block-columns > .wp-block-column:first-child {
	flex-basis: 52%;
}

.kemp-pattern--services-food > .wp-block-columns > .wp-block-column:last-child,
.kemp-pattern--services-central-camp > .wp-block-columns > .wp-block-column:last-child {
	flex-basis: 48%;
}

.kemp-pattern--services-aquapark > .wp-block-columns > .wp-block-column {
	flex-basis: 50%;
}

.kemp-pattern--local-trips > .wp-block-columns > .wp-block-column:first-child,
.kemp-pattern--services-cyclists > .wp-block-columns > .wp-block-column:first-child {
	flex-basis: 42%;
}

.kemp-pattern--local-trips > .wp-block-columns > .wp-block-column:last-child,
.kemp-pattern--services-cyclists > .wp-block-columns > .wp-block-column:last-child {
	flex-basis: 58%;
}

/* Inner component polish after inline-style cleanup. */
.kemp-pattern--feature-cards .wp-block-columns {
	gap: var(--wp--preset--spacing--40);
}

.kemp-pattern--feature-cards .kemp-feature-card {
	padding: 22px;
	border-radius: 16px;
}

.kemp-pattern--feature-cards .wp-block-image {
	margin-bottom: 10px;
}

.kemp-pattern--feature-cards .wp-block-image img {
	width: 54px;
	height: 54px;
}

.kemp-pattern--cta-reservation > .wp-block-group {
	padding: var(--wp--preset--spacing--50);
	border-radius: 20px;
}

.kemp-pattern--reason-split > .wp-block-columns,
.kemp-pattern--access-map > .wp-block-columns,
.kemp-pattern--services-central-camp > .wp-block-columns,
.kemp-pattern--services-aquapark > .wp-block-columns,
.kemp-pattern--services-food > .wp-block-columns {
	gap: var(--wp--preset--spacing--50);
}

.kemp-pattern--about-camp-types .wp-block-columns,
.kemp-pattern--about-accommodation-details .wp-block-columns,
.kemp-pattern--service-grid .wp-block-columns,
.kemp-pattern--contact-content .wp-block-columns {
	gap: var(--wp--preset--spacing--40);
}

.kemp-pattern--entertainment-gallery .wp-block-columns {
	gap: var(--wp--preset--spacing--30);
}

.kemp-pattern--entertainment-season-columns > .wp-block-columns {
	gap: var(--wp--preset--spacing--50);
}

.kemp-pattern--trips-tips-grid > .wp-block-columns {
	gap: var(--wp--preset--spacing--30);
}

.kemp-pattern--gallery-sections .wp-block-columns {
	gap: 16px;
}

.kemp-pattern--local-trips > .wp-block-columns,
.kemp-pattern--services-cyclists > .wp-block-columns {
	gap: 0;
}

.kemp-pattern--local-trips .wp-block-column:first-child .wp-block-image img,
.kemp-pattern--services-cyclists .wp-block-column:first-child .wp-block-image img {
	border-radius: 20px 0 0 20px;
}

.kemp-pattern--local-trips .wp-block-column:last-child > .wp-block-group,
.kemp-pattern--services-cyclists .wp-block-column:last-child > .wp-block-group {
	min-height: 100%;
	padding: var(--wp--preset--spacing--50);
	border-radius: 0 20px 20px 0;
}

.kemp-pattern--services-cyclists .wp-block-list a {
	color: var(--wp--preset--color--surface-soft);
}

.kemp-pattern--services-aquapark .wp-block-column:last-child > .has-surface-soft-background-color {
	padding: 16px;
	border-radius: 12px;
}

.kemp-pattern--services-aquapark .wp-block-column:last-child > .is-layout-flex.has-surface-soft-background-color {
	margin-top: 18px;
	margin-bottom: 18px;
	padding: 14px;
}

.kemp-pattern--services-aquapark .wp-block-column:last-child .is-layout-flex .wp-block-image img {
	width: 72px;
	height: 72px;
}

.kemp-pattern--entertainment-season-columns .wp-block-column:last-child > .has-surface-soft-background-color {
	padding: 16px;
	border-radius: 14px;
}

.kemp-pattern--entertainment-season-columns .wp-block-column:last-child .wp-block-image img {
	width: 100px;
	height: auto;
	border-radius: 8px;
}

.kemp-pattern--trips-tips-grid .has-border-color {
	display: flex;
	gap: 16px;
	padding: 24px;
	border: 1px solid #a4d78a;
	border-radius: 20px;
}

.kemp-pattern--trips-tips-grid .wp-block-image {
	flex: 0 0 auto;
	margin: 0;
}

.kemp-pattern--trips-tips-grid .wp-block-image img {
	width: 80px;
	height: 80px;
	object-fit: cover;
	border-radius: 14px;
}

.kemp-pattern--gallery-sections .wp-block-image img {
	border-radius: 16px;
}

.kemp-pattern--entertainment-gallery .wp-block-image img {
	border-radius: 18px;
}

.kemp-pattern--contact-content .wp-block-group.alignwide > .has-surface-soft-background-color {
	padding: 18px 20px;
}

.kemp-pattern--contact-content .wp-block-button__link.has-primary-border-color {
	padding: 8px 20px;
	border-width: 1px;
	border-style: solid;
	border-radius: 30px;
	background-color: #ffffff;
}

.kemp-badge {
	display: inline-flex;
	gap: 0.35rem;
	align-items: center;
	padding: 0.35rem 0.8rem;
	border-radius: 999px;
	border: 1.5px solid var(--wp--preset--color--primary);
	color: var(--wp--preset--color--primary);
	font-size: 0.85rem;
	font-weight: 700;
	line-height: 1.2;
}

.kemp-section-line {
	width: 9rem;
	height: 4px;
	background: var(--wp--preset--color--line);
	border-radius: 999px;
}

.kemp-icon-bullet {
	color: var(--wp--preset--color--primary);
	font-weight: 700;
}

.kemp-feature-card {
	height: 100%;
}

.kemp-icon-placeholder {
	width: 62px;
	height: 62px;
	margin: 0 auto 10px;
	border: 1.5px dashed var(--wp--preset--color--primary);
	border-radius: 999px;
}

.kemp-booking-iframe-wrap {
	width: min(1249px, 100%);
	margin-inline: auto;
	border-radius: 20px;
	overflow: hidden;
	background: #ffffff;
	border: 1px solid #dce8d6;
}

.kemp-booking-iframe {
	display: block;
	width: 100%;
	height: 1563px;
	border: 0;
}

@media (max-width: 900px) {
	.home .wp-block-post-content > .wp-block-cover.alignfull:first-child {
		min-height: 560px !important;
	}

	.home .wp-block-post-content > .wp-block-cover.alignfull:first-child .wp-block-group.alignwide {
		padding-left: clamp(0px, 5vw, 32px);
	}

	.home .wp-block-post-content > .wp-block-cover.alignfull:first-child .wp-block-heading {
		max-width: 620px;
		font-size: clamp(1.9rem, 5vw, 2.5rem);
	}

	.home .wp-block-post-content > .wp-block-cover.alignfull:first-child .wp-block-button__link {
		font-size: 17px;
	}

	.kemp-pattern--hero-intro {
		min-height: 560px;
	}

	.kemp-pattern--local-trips .wp-block-column:last-child > .wp-block-group,
	.kemp-pattern--services-cyclists .wp-block-column:last-child > .wp-block-group {
		padding: var(--wp--preset--spacing--40);
	}

	.kemp-pattern--trips-tips-grid .has-border-color {
		padding: 20px;
	}

	.kemp-booking-iframe {
		height: 1750px;
	}
}

@media (max-width: 640px) {
	.home .wp-block-post-content > .wp-block-cover.alignfull:first-child {
		min-height: 480px !important;
	}

	.home .wp-block-post-content > .wp-block-cover.alignfull:first-child .wp-block-cover__background {
		background: linear-gradient(112deg, rgba(14, 17, 10, 0.76) 8%, rgba(35, 42, 23, 0.08) 95%);
	}

	.home .wp-block-post-content > .wp-block-cover.alignfull:first-child .wp-block-group.alignwide {
		padding-left: 0;
	}

	.home .wp-block-post-content > .wp-block-cover.alignfull:first-child .wp-block-heading {
		max-width: 100%;
		margin-bottom: 20px;
		font-size: clamp(1.55rem, 7.2vw, 2rem);
		line-height: 1.14;
		text-wrap: pretty;
	}

	.home .wp-block-post-content > .wp-block-cover.alignfull:first-child .wp-block-button__link {
		min-height: 44px;
		padding-inline: 1.35rem;
		font-size: 16px;
	}

	.kemp-pattern.wp-block-group:not(.alignfull),
	.kemp-pattern--feature-cards,
	.kemp-pattern--about-camp-intro-strip,
	.kemp-pattern--entertainment-intro-strip {
		padding-right: max(16px, 4vw);
		padding-left: max(16px, 4vw);
	}

	.kemp-pattern--hero-intro {
		min-height: 480px;
	}

	.kemp-pattern--feature-cards .wp-block-columns,
	.kemp-pattern--reason-split > .wp-block-columns,
	.kemp-pattern--access-map > .wp-block-columns,
	.kemp-pattern--services-central-camp > .wp-block-columns,
	.kemp-pattern--services-aquapark > .wp-block-columns,
	.kemp-pattern--services-food > .wp-block-columns,
	.kemp-pattern--services-cyclists > .wp-block-columns,
	.kemp-pattern--local-trips > .wp-block-columns,
	.kemp-pattern--entertainment-season-columns > .wp-block-columns,
	.kemp-pattern--trips-tips-grid > .wp-block-columns {
		gap: var(--wp--preset--spacing--30);
	}

	.kemp-pattern--local-trips .wp-block-column:first-child .wp-block-image img,
	.kemp-pattern--services-cyclists .wp-block-column:first-child .wp-block-image img {
		border-radius: 20px 20px 0 0;
	}

	.kemp-pattern--local-trips .wp-block-column:last-child > .wp-block-group,
	.kemp-pattern--services-cyclists .wp-block-column:last-child > .wp-block-group {
		border-radius: 0 0 20px 20px;
		padding: var(--wp--preset--spacing--30);
	}

	.kemp-pattern--trips-tips-grid .has-border-color {
		flex-wrap: wrap;
		padding: 16px;
	}

	.kemp-pattern--trips-tips-grid .wp-block-image img {
		width: 72px;
		height: 72px;
	}
}
