/**
 * Theme CSS - h2ospodar.cz
 * Custom styles that cannot be defined in theme.json
 * Includes: animations, hover effects, pseudo-elements, complex selectors
 */

/* Section overlap with footer */
.section-overlap {
	position: relative;
	z-index: 2;
}

/* Custom button style: Link only */
.wp-block-button.is-style-link-only .wp-block-button__link {
	padding: 0;
	border: none;
	background: transparent !important;
	color: var(--wp--preset--color--primary-dark-blue) !important;
	text-decoration: underline;
}
.wp-block-button.is-style-link-only .wp-block-button__link:hover {
	box-shadow: none !important;
	transform: none !important;
    text-decoration: none;
	color: var(--wp--preset--color--primary-blue) !important;
}

/* Navigation button and submenu */
.wp-block-navigation-item.navi-button > a.wp-block-navigation-item__content {
    background-color: var(--wp--preset--color--primary-dark-blue);
    color: var(--wp--preset--color--white) !important;
    border-radius: 9999px;
    padding-top: 12px;
    padding-right: 24px;
    padding-bottom: 12px;
    padding-left: 24px;
	text-decoration: none;
	margin-left: 1rem;
	margin-right: 1rem;
	font-weight: 600;
}
.wp-block-navigation-item.navi-button > a.wp-block-navigation-item__content:hover {
    background-color: var(--wp--preset--color--primary-blue);
    color: var(--wp--preset--color--white) !important;
	text-decoration: none;
}
ul.wp-block-navigation__submenu-container.wp-block-navigation-submenu {
	border: 1px solid var(--wp--preset--color--primary-dark-blue) !important;
	border-radius: 12px !important;
	overflow: hidden !important;
	min-width: 300px !important;
}

/* Text color bug fix */
/* .has-background .has-text-color, */
footer .has-text-color {
    color: unset !important;
}
.wp-block-group.has-white-color.has-text-color.has-background > p.has-text-color,
.has-white-color.has-text-color {
    color: white !important;
}

/* ============================================
   WORDPRESS BLOCK ENHANCEMENTS
   ============================================ */

/* Cover Block - Hero sections with wave background */
/*
.wp-block-cover {
	position: relative;
	min-height: 500px;
}
.wp-block-cover::after {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background-image: url('./svg/wave-abstract-1.svg');
	background-size: cover;
	background-position: center;
	opacity: 0.15;
	pointer-events: none;
	z-index: 0;
}
.wp-block-cover__inner-container {
	position: relative;
	z-index: 1;
} */

/* Button hover effects and transitions */
.wp-block-button__link {
	transition: all 300ms cubic-bezier(0.4, 0.0, 0.2, 1);
	text-decoration: none;
}

.wp-block-button:not(.is-style-outline) .wp-block-button__link:hover {
	transform: translateY(-2px);
	box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
}

.wp-block-button.is-style-outline .wp-block-button__link {
	background-color: transparent !important;
	border: 2px solid var(--wp--preset--color--primary-blue) !important;
	color: var(--wp--preset--color--primary-blue) !important;
}

.wp-block-button.is-style-outline .wp-block-button__link:hover {
	background-color: var(--wp--preset--color--primary-light-blue) !important;
	border-color: var(--wp--preset--color--primary-dark-blue) !important;
	color: var(--wp--preset--color--primary-dark-blue) !important;
}

/* Featured images with hover zoom */
.wp-block-post-featured-image, .wp-block-image.zoom {
	overflow: hidden;
	border-radius: 16px;
}
.wp-block-post-featured-image img, .wp-block-image.zoom img {
	transition: transform 300ms cubic-bezier(0.4, 0.0, 0.2, 1);
	display: block;
	width: 100%;
	height: auto;
}
.wp-block-post:hover .wp-block-post-featured-image img, .wp-block-image.zoom:hover img {
	transform: scale(1.05);
}

/* Navigation hover effects */
.wp-block-navigation-item a {
	transition: color 150ms cubic-bezier(0.4, 0.0, 0.2, 1);
}

/* Footer - with wave background */
.wp-site-blocks>footer,
.wp-block-template-part[data-area="footer"] {
	background-color: var(--wp--preset--color--primary-dark-blue);
	color: white;
	padding: 64px 0 32px;
	position: relative;
	overflow: hidden;
}

.wp-site-blocks>footer::before,
.wp-block-template-part[data-area="footer"]::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background-image: url('./svg/shapes.svg');
	background-size: cover;
	background-position: center;
	opacity: 0.1;
	pointer-events: none;
}

.wp-site-blocks>footer *,
.wp-block-template-part[data-area="footer"] * {
	position: relative;
	z-index: 1;
}

footer img.custom-logo {
	filter: brightness(100);
}

.wp-site-blocks>footer h1,
.wp-site-blocks>footer h2,
.wp-site-blocks>footer h3,
.wp-site-blocks>footer h4,
.wp-site-blocks>footer h5,
.wp-site-blocks>footer h6,
.wp-block-template-part[data-area="footer"] h1,
.wp-block-template-part[data-area="footer"] h2,
.wp-block-template-part[data-area="footer"] h3,
.wp-block-template-part[data-area="footer"] h4,
.wp-block-template-part[data-area="footer"] h5,
.wp-block-template-part[data-area="footer"] h6 {
	color: white !important;
}

.wp-site-blocks>footer a,
.wp-block-template-part[data-area="footer"] a {
	color: var(--wp--preset--color--primary-light-blue) !important;
	font-weight: 400;
	transition: color 150ms;
}

/* ============================================
   CUSTOM POST TYPES STYLING
   ============================================ */

/* Services (Sluzby) */
.post-type-archive-sluzby .wp-block-post {
	border-left-color: var(--wp--preset--color--primary-blue);
}

/* References */
.post-type-archive-reference .wp-block-post {
	border-left-color: var(--wp--preset--color--secondary-purple);
}

/* Team */
.post-type-archive-tym .wp-block-post {
	text-align: center;
	border-left: none;
}

.post-type-archive-tym .wp-block-post:hover {
	transform: scale(1.05);
}

/* Partners */
.post-type-archive-partneri .wp-block-post {
	border-left: none;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 120px;
	padding: 16px;
}

/* ============================================
   ANIMATIONS & SCROLL EFFECTS
   ============================================ */

/* Fade in animation */
@keyframes fadeIn {
	from {
		opacity: 0;
		transform: translateY(20px);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}

/* Scroll reveal elements */
.reveal {
	opacity: 0;
	transform: translateY(30px);
	transition: all 800ms cubic-bezier(0.0, 0.0, 0.2, 1);
}

.reveal.active {
	opacity: 1;
	transform: translateY(0);
}

/* Wave animation (optional) */
@keyframes waveFloat {

	0%,
	100% {
		transform: translateY(0) translateX(0);
	}

	25% {
		transform: translateY(-10px) translateX(5px);
	}

	50% {
		transform: translateY(0) translateX(10px);
	}

	75% {
		transform: translateY(10px) translateX(5px);
	}
}

.wave-animated {
	animation: waveFloat 6s ease-in-out infinite;
}

/* ============================================
   CUSTOM SECTIONS
   ============================================ */

/* Colorful query loop */
.wp-block-query.colors > ul > li.wp-block-post:nth-of-type(1) > div.wp-block-group {
	background-color: var(--wp--preset--color--secondary-light-purple) !important;
}
.wp-block-query.colors > ul > li.wp-block-post:nth-of-type(2) > div.wp-block-group {
	background-color: var(--wp--preset--color--secondary-turquoise) !important;
}
.wp-block-query.colors > ul > li.wp-block-post:nth-of-type(3) > div.wp-block-group {
	background-color: var(--wp--preset--color--secondary-purple) !important;
}

/* Carousel color tuning for dark backgrounds */
.wp-block-cb-carousel-v2.dark-bg {
	--wp--custom--carousel-block--navigation-color: var(--wp--preset--color--primary-light-blue);
	--wp--custom--carousel-block--navigation-hover-color: var(--wp--preset--color--primary-light-blue);
}

/* Section with wave decoration */
.section-with-waves,
.cta-section {
	position: relative;
	overflow: hidden;
}
.section-with-waves::before,
.cta-section::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background-image: url(./svg/shape-3.svg);
    background-size: cover;
    background-position: top;
    opacity: 0.2;
    pointer-events: none;
    background-repeat: no-repeat;
}
.section-with-waves>*,
.cta-section>* {
	position: relative;
	z-index: 1;
}

/* CTA section styling */
.cta-section::before {
	background-image: url('./svg/shape-2.svg');
	background-size: cover;
	background-position: center;
	opacity: 1;
}

/* Cards with arrow */
.cards h3 > a {
    font-family: 'GT Maru' !important;
    text-decoration: none;
}
.cards .wp-block-cover {
	position: relative;
	cursor: pointer;
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.cards .wp-block-cover:hover {
	transform: translateY(-2px);
	box-shadow: 0 10px 30px rgba(0,0,0,0.15);
}
.cards .wp-block-cover__background,
.cards .wp-block-cover__image-background,
.cards .wp-block-cover__video-background {
	pointer-events: none;
}
.cards .wp-block-cover__inner-container > * {
	position: relative;
	z-index: 2;
}
.cards .wp-block-cover::after {
	content: "→";
	font-family: 'GT Maru' !important;
	position: absolute;
	left: 45px;
	bottom: 40px;
	font-size: 64px;
	line-height: 1;
	color: #fff;
	z-index: 3;
	pointer-events: none;
	transition: transform 0.2s ease, opacity 0.2s ease;
}
.cards .wp-block-cover:hover::after {
	transform: translateX(6px);
	color: var(--wp--preset--primary-light-blue);
}

/* ============================================
   ACCESSIBILITY AND RESPONSIVE ADJUSTMENTS
   ============================================ */

*:focus-visible {
	outline: 2px solid var(--wp--preset--color--primary-blue);
	outline-offset: 2px;
}

/* Reduced motion support */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
	}
}

@media (max-width: 768px) {
	.wp-block-cover {
		min-height: 400px;
	}
	.wp-block-post {
		padding: 24px;
	}
	.cta-section {
		padding: 64px 0;
	}
}

/* H2Ospodar.cz – globalni styly pro vsechny formulare Contact Form 7.
 * Nevyzaduji zadnou vlastni tridu ani upravu HTML.
 * Rozlozeni poli zustava plne v rezii sablony formulare CF7.
 */

.wpcf7 {
  --h2o-form-primary: var(--wp--preset--color--primary-dark-blue, #212199);
  --h2o-form-focus: var(--wp--preset--color--primary-blue, #265dee);
  --h2o-form-border: var(--wp--preset--color--secondary-purple, #8f93ec);
  --h2o-form-surface: var(--wp--preset--color--white, #fff);
  --h2o-form-text: var(--wp--preset--color--text, #333);
  --h2o-form-error: #b42318;
  --h2o-form-error-bg: #fff4f2;
  --h2o-form-success: #18794e;
  --h2o-form-success-bg: #ecfdf3;
  width: 100%;
}

.wpcf7 form.wpcf7-form {
  width: 100%;
  margin: 0;
  color: var(--h2o-form-text);
  font-family: var(--wp--preset--font-family--body, inherit);
  font-size: var(--wp--preset--font-size--text-regular, 18px);
  line-height: 1.5;
}

.wpcf7 form.wpcf7-form fieldset:not(.hidden-fields-container) {
  min-inline-size: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

/* Nazev formulare zustava dostupny cteckam, vizualni nadpis je v obsahu stranky. */
.wpcf7 form.wpcf7-form fieldset:not(.hidden-fields-container) > legend {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.wpcf7 form.wpcf7-form p {
  margin-top: 0;
  margin-bottom: var(--wp--preset--spacing--md, 1rem);
}

.wpcf7 form.wpcf7-form label {
  display: block;
  color: var(--h2o-form-primary);
  font-weight: 600;
}

.wpcf7 form.wpcf7-form .wpcf7-form-control-wrap {
  display: block;
  margin-top: 0.5rem;
}

.wpcf7 form.wpcf7-form input.wpcf7-text,
.wpcf7 form.wpcf7-form input.wpcf7-email,
.wpcf7 form.wpcf7-form input.wpcf7-tel,
.wpcf7 form.wpcf7-form input.wpcf7-number,
.wpcf7 form.wpcf7-form input.wpcf7-date,
.wpcf7 form.wpcf7-form textarea.wpcf7-textarea,
.wpcf7 form.wpcf7-form select.wpcf7-select {
  box-sizing: border-box;
  width: 100%;
  max-width: none;
  min-height: 54px;
  margin: 0;
  padding: 0.75rem 1rem;
  border: 2px solid #afb2ed;
  border-color: color-mix(in srgb, var(--h2o-form-border) 65%, white);
  border-radius: 12px;
  outline: none;
  background: var(--h2o-form-surface);
  color: var(--h2o-form-text);
  font: inherit;
  line-height: 1.4;
  box-shadow: none;
  transition: border-color 150ms ease, box-shadow 150ms ease, background-color 150ms ease;
}

.wpcf7 form.wpcf7-form textarea.wpcf7-textarea {
  min-height: 160px;
  resize: vertical;
}

.wpcf7 form.wpcf7-form input::placeholder,
.wpcf7 form.wpcf7-form textarea::placeholder {
  color: #6b7280;
  opacity: 1;
}

.wpcf7 form.wpcf7-form input.wpcf7-text:focus,
.wpcf7 form.wpcf7-form input.wpcf7-email:focus,
.wpcf7 form.wpcf7-form input.wpcf7-tel:focus,
.wpcf7 form.wpcf7-form input.wpcf7-number:focus,
.wpcf7 form.wpcf7-form input.wpcf7-date:focus,
.wpcf7 form.wpcf7-form textarea.wpcf7-textarea:focus,
.wpcf7 form.wpcf7-form select.wpcf7-select:focus {
  border-color: var(--h2o-form-focus);
  box-shadow: 0 0 0 4px rgba(38, 93, 238, 0.18);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--h2o-form-focus) 18%, transparent);
}

.wpcf7 form.wpcf7-form .wpcf7-form-control[aria-invalid="true"] {
  border-color: var(--h2o-form-error);
  background-color: var(--h2o-form-error-bg);
}

.wpcf7 form.wpcf7-form .wpcf7-not-valid-tip {
  display: block;
  margin-top: 0.4rem;
  color: var(--h2o-form-error);
  font-size: var(--wp--preset--font-size--text-small, 16px);
  font-weight: 600;
}

.wpcf7 form.wpcf7-form input.wpcf7-submit {
  box-sizing: border-box;
  min-height: 52px;
  padding: 0.8rem 1.75rem;
  border: 2px solid var(--h2o-form-primary);
  border-radius: 9999px;
  background: var(--h2o-form-primary);
  color: var(--wp--preset--color--white, #fff);
  font: inherit;
  font-weight: 700;
  line-height: 1.2;
  cursor: pointer;
  appearance: none;
  transition: background-color 150ms ease, border-color 150ms ease, transform 150ms ease, box-shadow 150ms ease;
}

.wpcf7 form.wpcf7-form input.wpcf7-submit:hover {
  border-color: var(--h2o-form-focus);
  background: var(--h2o-form-focus);
  transform: translateY(-2px);
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.12);
}

.wpcf7 form.wpcf7-form input.wpcf7-submit:focus-visible {
  outline: 3px solid var(--h2o-form-focus);
  outline-offset: 3px;
}

.wpcf7 form.wpcf7-form.submitting input.wpcf7-submit,
.wpcf7 form.wpcf7-form input.wpcf7-submit:disabled {
  opacity: 0.65;
  cursor: wait;
  transform: none;
}

.wpcf7 form.wpcf7-form .wpcf7-spinner {
  margin: 0 0 0 0.75rem;
  background-color: var(--h2o-form-primary);
  vertical-align: middle;
}

.wpcf7 form.wpcf7-form .wpcf7-response-output {
  margin: var(--wp--preset--spacing--md, 1rem) 0 0 !important;
  padding: 0.85rem 1rem !important;
  border: 0 !important;
  border-radius: 12px;
  background: var(--h2o-form-error-bg);
  color: var(--h2o-form-error);
  font-weight: 600;
}

.wpcf7 form.wpcf7-form.sent .wpcf7-response-output {
  background: var(--h2o-form-success-bg);
  color: var(--h2o-form-success);
}

.wpcf7 form.wpcf7-form.init .wpcf7-response-output:empty {
  display: none;
}

.wpcf7 form.wpcf7-form .wpcf7-list-item {
	display: block;
	margin: 0 1rem 0.5rem 0;
}

.wpcf7 form.wpcf7-form .wpcf7-list-item label {
  display: inline-flex;
  gap: 0.5rem;
  align-items: flex-start;
  color: var(--h2o-form-text);
  font-weight: 400;
  cursor: pointer;
}

.wpcf7 form.wpcf7-form input[type="checkbox"],
.wpcf7 form.wpcf7-form input[type="radio"] {
  width: 1.2rem;
  height: 1.2rem;
  margin: 0.15rem 0 0;
  accent-color: var(--h2o-form-primary);
}

@media (prefers-reduced-motion: reduce) {
  .wpcf7 form.wpcf7-form .wpcf7-form-control {
    transition: none;
  }
}
