/* =========================================================================
   PS Beton – nová úvodní stránka
   Vše je vázané na .psb-home, aby styly nezasahovaly do zbytku webu.
   ====================================================================== */

/* Písmo: Roboto – stejné jako zbytek webu (Elementor). */
.psb-home {
	--psb-brand: #103B87;
	--psb-brand-dark: #0A2454;
	--psb-ink: #0F1E33;
	--psb-muted: #55606B;
	--psb-accent: #F5B400;
	--psb-accent-ink: #6A5000;
	--psb-bg: #F4F3F0;
	--psb-card: #FFFFFF;
	--psb-line: #E2E0DB;
	--psb-on-dark: #FFFFFF;
	--psb-on-dark-muted: #D4E1EF;
	--psb-ok: #1F6B3A;
	--psb-radius: 12px;
	--psb-radius-lg: 16px;
	--psb-font: "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
	--psb-font-display: "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;

	font-family: var(--psb-font);
	font-size: 16px;
	line-height: 1.55;
	color: var(--psb-ink);
	-webkit-font-smoothing: antialiased;
	box-sizing: border-box;
}
.psb-home *, .psb-home *::before, .psb-home *::after { box-sizing: border-box; }

/* Pozadí stránky a roztažení sekcí přes celou šířku (i uvnitř kontejneru šablony) */
body.psb-home-page { background: #F4F3F0; overflow-x: clip; }
body.psb-home-page .psb-home + .psb-home { margin-top: 0; }
.psb-home.psb-full {
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}
.psb-home .psb-wrap { max-width: 1280px; margin: 0 auto; padding: 0 24px; }

/* Reset stylů šablony uvnitř sekcí */
.psb-home h1, .psb-home h2, .psb-home h3, .psb-home h4, .psb-home p, .psb-home ul { margin: 0; padding: 0; }
.psb-home ul { list-style: none; }
.psb-home a { color: inherit; text-decoration: none; box-shadow: none; }
.psb-home img { max-width: 100%; height: auto; display: block; border: 0; box-shadow: none; }
.psb-home .psb-icon { flex: none; }
.psb-home a:focus-visible, .psb-home button:focus-visible { outline: 3px solid var(--psb-accent); outline-offset: 2px; }

/* Typografie */
.psb-home .psb-h1 {
	font-family: var(--psb-font-display); font-weight: 700;
	font-size: clamp(36px, 5vw, 62px); line-height: 1.04; letter-spacing: -0.02em;
	color: inherit; text-transform: none;
}
.psb-home .psb-h2 {
	font-family: var(--psb-font-display); font-weight: 700;
	font-size: clamp(28px, 3.4vw, 44px); line-height: 1.1; letter-spacing: -0.01em;
	color: inherit; text-transform: none;
}
.psb-home .psb-h3 { font-family: var(--psb-font-display); font-weight: 700; font-size: 22px; line-height: 1.2; color: inherit; text-transform: none; }
.psb-home .psb-h4 { font-family: var(--psb-font); font-weight: 600; font-size: 18px; line-height: 1.35; color: inherit; text-transform: none; letter-spacing: 0; }
.psb-home .psb-lead { font-size: 18px; line-height: 1.6; color: var(--psb-on-dark-muted); max-width: 580px; }
.psb-home .psb-eyebrow { font-size: 13px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--psb-accent-ink); }
.psb-home .psb-dark .psb-eyebrow, .psb-home.psb-dark .psb-eyebrow { color: var(--psb-accent); }

/* Tlačítka */
.psb-home .psb-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 10px;
	min-height: 44px; padding: 0 22px; border-radius: 8px; border: 1.5px solid transparent;
	font-family: var(--psb-font); font-weight: 600; font-size: 15px; line-height: 1.2;
	text-decoration: none; cursor: pointer; transition: background-color .15s, color .15s, border-color .15s, transform .15s;
	white-space: nowrap;
}
.psb-home .psb-btn--lg { min-height: 52px; padding: 0 28px; font-size: 16px; }
.psb-home .psb-btn--accent { background: var(--psb-accent); color: var(--psb-ink); }
.psb-home .psb-btn--accent:hover { background: #FFC61A; color: var(--psb-ink); }
.psb-home .psb-btn--ghost { border-color: rgba(255,255,255,.5); color: #FFFFFF; }
.psb-home .psb-btn--ghost:hover { border-color: #FFFFFF; background: rgba(255,255,255,.08); color: #FFFFFF; }
.psb-home .psb-btn--dark { background: var(--psb-brand); color: #FFFFFF; }
.psb-home .psb-btn--dark:hover { background: var(--psb-brand-dark); color: #FFFFFF; }
.psb-home .psb-btn--outline { border-color: var(--psb-brand); color: var(--psb-brand); background: transparent; }
.psb-home .psb-btn--outline:hover { background: var(--psb-brand); color: #FFFFFF; }
.psb-home .psb-btn.added::after { content: " ✓"; }
.psb-home .psb-btn.loading { opacity: .6; pointer-events: none; }

.psb-home .psb-badge {
	align-self: flex-start; display: inline-block; padding: 6px 12px; border-radius: 4px;
	background: var(--psb-accent); color: var(--psb-ink);
	font-size: 13px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase;
}
.psb-home .psb-link, .psb-home .psb-more { font-weight: 600; font-size: 15px; color: var(--psb-brand); }
.psb-home .psb-more:hover { text-decoration: underline; }
.psb-home.psb-dark .psb-more { color: #FFFFFF; }

/* Sekce */
.psb-home.psb-sec { padding: 88px 0; }
.psb-home.psb-sec--tight { padding-top: 8px; }
.psb-home .psb-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 36px; }
.psb-home .psb-head__text { display: flex; flex-direction: column; gap: 10px; }
.psb-home .psb-dark, .psb-home.psb-dark { background: var(--psb-brand); color: var(--psb-on-dark); }

.psb-home .psb-grid { display: grid; gap: 20px; }
.psb-home .psb-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.psb-home .psb-card { background: var(--psb-card); border: 1px solid var(--psb-line); border-radius: var(--psb-radius); overflow: hidden; }
.psb-home .psb-panel { background: var(--psb-card); border: 1px solid var(--psb-line); border-radius: var(--psb-radius-lg); }

/* HERO */
.psb-home.psb-hero { background: var(--psb-brand); color: #FFFFFF; }
.psb-home .psb-hero__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: 48px; align-items: center; padding-top: 72px; padding-bottom: 64px; }
.psb-home .psb-hero__text { display: flex; flex-direction: column; gap: 24px; }
.psb-home .psb-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 8px; }
.psb-home .psb-hero__media img { width: 100%; height: 440px; object-fit: cover; border-radius: var(--psb-radius); }
.psb-home .psb-trust { border-top: 1px solid rgba(255,255,255,.16); background: var(--psb-brand); }
.psb-home .psb-trust__list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; padding-top: 28px; padding-bottom: 28px; }
.psb-home .psb-trust__list li { display: flex; flex-direction: column; gap: 4px; }
.psb-home .psb-trust__list strong { font-family: var(--psb-font-display); font-weight: 700; font-size: 30px; line-height: 1.1; color: var(--psb-accent); }
.psb-home .psb-trust__list span { font-size: 14px; color: var(--psb-on-dark-muted); }

/* SORTIMENT */
.psb-home .psb-cat { display: flex; flex-direction: column; color: var(--psb-ink); transition: transform .2s, box-shadow .2s; }
.psb-home .psb-cat:hover { transform: translateY(-3px); box-shadow: 0 12px 28px rgba(15,30,51,.10); }
.psb-home .psb-cat__media { height: 200px; overflow: hidden; background: #FFFFFF; }
.psb-home .psb-cat__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.psb-home .psb-cat__media--contain img { object-fit: contain; }
.psb-home .psb-cat:hover .psb-cat__media img { transform: scale(1.04); }
.psb-home .psb-cat__body { padding: 22px; display: flex; flex-direction: column; gap: 8px; flex-grow: 1; }
.psb-home .psb-cat__body p { font-size: 14px; line-height: 1.5; color: var(--psb-muted); }
.psb-home .psb-cat__body .psb-link { margin-top: auto; padding-top: 6px; }

/* SLUŽBY */
.psb-home .psb-services { padding: 48px 40px; }
.psb-home .psb-services__list { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 32px 28px; }
.psb-home .psb-services__list li { display: flex; flex-direction: column; gap: 12px; }
.psb-home .psb-services__icon { width: 48px; height: 48px; border-radius: 10px; background: var(--psb-brand); color: var(--psb-accent); display: flex; align-items: center; justify-content: center; }
.psb-home .psb-services__list p { font-size: 14px; line-height: 1.55; color: var(--psb-muted); }
.psb-home .psb-services__list a:hover { color: var(--psb-brand); text-decoration: underline; }

/* REALIZACE */
.psb-home .psb-ref { display: flex; flex-direction: column; gap: 14px; color: #FFFFFF; }
.psb-home .psb-ref__media { height: 300px; border-radius: var(--psb-radius); overflow: hidden; background: rgba(255,255,255,.08); }
.psb-home .psb-ref__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.psb-home .psb-ref:hover .psb-ref__media img { transform: scale(1.04); }
.psb-home .psb-ref__label { font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: #BCD0E6; }
.psb-home .psb-ref:hover .psb-h4 { text-decoration: underline; }

/* AKČNÍ PRUH */
.psb-home.psb-promo { background: var(--psb-accent); color: var(--psb-ink); }
.psb-home .psb-promo__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 32px; padding-top: 30px; padding-bottom: 30px; }
.psb-home .psb-promo__text { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 18px; }
.psb-home .psb-promo__text strong { font-family: var(--psb-font-display); font-weight: 700; font-size: 44px; line-height: 1; }
.psb-home .psb-promo__text span { font-size: 20px; font-weight: 600; }

/* PRODUKTY */
.psb-home.psb-products--sale + .psb-home.psb-products--new { padding-top: 0; }

/* POPTÁVKA */
.psb-home.psb-inquiry { padding-top: 0; scroll-margin-top: 100px; }
.psb-home .psb-inquiry__box { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr); overflow: hidden; }
.psb-home .psb-inquiry__info { padding: 48px 40px; display: flex; flex-direction: column; gap: 22px; }
.psb-home .psb-inquiry__info .psb-h2 { font-size: clamp(26px, 2.8vw, 36px); }
.psb-home .psb-inquiry__info .psb-lead { font-size: 16px; }
.psb-home .psb-contact { display: flex; flex-direction: column; gap: 16px; margin-top: 8px; }
.psb-home .psb-contact li { display: flex; gap: 12px; align-items: flex-start; color: var(--psb-on-dark-muted); font-size: 15px; line-height: 1.5; }
.psb-home .psb-contact .psb-icon { color: var(--psb-accent); margin-top: 2px; }
.psb-home .psb-contact a { color: #FFFFFF; }
.psb-home .psb-contact a:hover { text-decoration: underline; }
.psb-home .psb-contact__phone a { font-family: var(--psb-font-display); font-weight: 700; font-size: 26px; line-height: 1.1; }
.psb-home .psb-inquiry__form { padding: 44px 40px; }

/* ---------- WPForms – sladění se vzhledem stránky ---------- */
.psb-home .psb-wpforms .wpforms-container {
	margin: 0 !important;
	/* moderní značkování WPForms (1.8+) */
	--wpforms-field-border-radius: 8px;
	--wpforms-field-border-color: #C9C6C0;
	--wpforms-field-background-color: #FAFAF8;
	--wpforms-field-text-color: #0F1E33;
	--wpforms-field-size-input-height: 48px;
	--wpforms-label-color: #0F1E33;
	--wpforms-label-sublabel-color: #55606B;
	--wpforms-label-error-color: #B42318;
	--wpforms-button-border-radius: 8px;
	--wpforms-button-background-color: #F5B400;
	--wpforms-button-text-color: #0F1E33;
	--wpforms-button-size-height: 52px;
	--wpforms-button-size-font-size: 16px;
	--wpforms-page-break-color: #103B87;
}
.psb-home .psb-wpforms .wpforms-form .wpforms-field { padding: 0 0 18px; }
.psb-home .psb-wpforms .wpforms-form .wpforms-field-label {
	font-family: var(--psb-font); font-size: 14px; font-weight: 600; color: var(--psb-ink); margin-bottom: 8px;
}
.psb-home .psb-wpforms .wpforms-form .wpforms-required-label { color: #B42318; }
.psb-home .psb-wpforms .wpforms-form input[type="text"],
.psb-home .psb-wpforms .wpforms-form input[type="email"],
.psb-home .psb-wpforms .wpforms-form input[type="tel"],
.psb-home .psb-wpforms .wpforms-form input[type="number"],
.psb-home .psb-wpforms .wpforms-form input[type="url"],
.psb-home .psb-wpforms .wpforms-form select,
.psb-home .psb-wpforms .wpforms-form textarea {
	width: 100%; max-width: 100%;
	min-height: 48px; padding: 10px 14px;
	font-family: var(--psb-font); font-size: 15px; color: var(--psb-ink);
	background: #FAFAF8; border: 1px solid #C9C6C0; border-radius: 8px; box-shadow: none;
	transition: border-color .15s, box-shadow .15s;
}
.psb-home .psb-wpforms .wpforms-form textarea { min-height: 120px; resize: vertical; }
.psb-home .psb-wpforms .wpforms-form input:focus,
.psb-home .psb-wpforms .wpforms-form select:focus,
.psb-home .psb-wpforms .wpforms-form textarea:focus {
	outline: none; border-color: #103B87; box-shadow: 0 0 0 3px rgba(16,59,135,.18); background: #FFFFFF;
}
.psb-home .psb-wpforms .wpforms-form .wpforms-field-sublabel,
.psb-home .psb-wpforms .wpforms-form .wpforms-field-description { font-size: 13px; color: var(--psb-muted); }
.psb-home .psb-wpforms .wpforms-form .wpforms-field-checkbox label,
.psb-home .psb-wpforms .wpforms-form .wpforms-field-gdpr-checkbox label { font-size: 14px; font-weight: 400; color: var(--psb-muted); }
.psb-home .psb-wpforms .wpforms-form .wpforms-field-gdpr-checkbox input,
.psb-home .psb-wpforms .wpforms-form .wpforms-field-checkbox input { accent-color: #103B87; }
.psb-home .psb-wpforms .wpforms-form .wpforms-submit-container { padding-top: 6px; }
.psb-home .psb-wpforms .wpforms-form button[type="submit"],
.psb-home .psb-wpforms .wpforms-form .wpforms-submit {
	min-height: 52px; height: auto; padding: 0 32px;
	font-family: var(--psb-font); font-size: 16px; font-weight: 600; line-height: 1.2;
	background: #F5B400 !important; color: #0F1E33 !important;
	border: 0 !important; border-radius: 8px; box-shadow: none; cursor: pointer;
	transition: background-color .15s;
}
.psb-home .psb-wpforms .wpforms-form button[type="submit"]:hover,
.psb-home .psb-wpforms .wpforms-form .wpforms-submit:hover { background: #FFC61A !important; }
.psb-home .psb-wpforms .wpforms-form label.wpforms-error,
.psb-home .psb-wpforms .wpforms-form em.wpforms-error { font-size: 13px; color: #B42318; }
.psb-home .psb-wpforms .wpforms-form input.wpforms-error,
.psb-home .psb-wpforms .wpforms-form textarea.wpforms-error,
.psb-home .psb-wpforms .wpforms-form select.wpforms-error { border-color: #B42318; }
.psb-home .psb-wpforms .wpforms-confirmation-container-full {
	background: #EAF4EC; border: 1px solid #B8D9BF; color: #1F6B3A; border-radius: 8px; padding: 20px 22px; font-size: 16px;
}
/* Pole vedle sebe na širších obrazovkách (třídy wpforms-one-half se nastavují ve formuláři) */
@media (min-width: 700px) {
	.psb-home .psb-wpforms .wpforms-field-container { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 20px; }
	.psb-home .psb-wpforms .wpforms-field-container > .wpforms-field { grid-column: 1 / -1; float: none; width: auto; margin-left: 0; }
	.psb-home .psb-wpforms .wpforms-field-container > .wpforms-field-name,
	.psb-home .psb-wpforms .wpforms-field-container > .wpforms-field-email,
	.psb-home .psb-wpforms .wpforms-field-container > .wpforms-field-phone,
	.psb-home .psb-wpforms .wpforms-field-container > .wpforms-field-select { grid-column: auto; }
}

/* ---------- Responzivita ---------- */
@media (max-width: 1100px) {
	.psb-home .psb-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.psb-home .psb-services__list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
	.psb-home .psb-hero__grid { grid-template-columns: minmax(0, 1fr); gap: 32px; padding-top: 48px; padding-bottom: 40px; }
	.psb-home .psb-hero__media img { height: 300px; }
	.psb-home .psb-trust__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.psb-home .psb-inquiry__box { grid-template-columns: minmax(0, 1fr); }
	.psb-home.psb-sec { padding: 64px 0; }
}
@media (max-width: 600px) {
	.psb-home .psb-wrap { padding: 0 16px; }
	.psb-home .psb-grid--4 { grid-template-columns: minmax(0, 1fr); }
	.psb-home .psb-services { padding: 32px 20px; }
	.psb-home .psb-services__list { grid-template-columns: minmax(0, 1fr); }
	.psb-home .psb-inquiry__info, .psb-home .psb-inquiry__form { padding: 32px 20px; }
	.psb-home .psb-ref__media { height: 240px; }
	.psb-home .psb-actions .psb-btn { width: 100%; }
	.psb-home .psb-trust__list strong { font-size: 24px; }
	.psb-home .psb-promo__text strong { font-size: 36px; }
	.psb-home .psb-promo__inner .psb-btn { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
	.psb-home * { transition: none !important; }
}

/* WPForms pole „Jméno“ (křestní + příjmení) vedle sebe */
.psb-home .psb-wpforms .wpforms-field-name .wpforms-field-row {
	display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px;
	width: 100% !important; max-width: none !important; margin: 0 !important;
}
.psb-home .psb-wpforms .wpforms-field-name .wpforms-field-row::before,
.psb-home .psb-wpforms .wpforms-field-name .wpforms-field-row::after { display: none !important; content: none !important; }
.psb-home .psb-wpforms .wpforms-field-name .wpforms-field-row-block {
	width: auto !important; max-width: none !important; float: none !important;
	margin: 0 !important; padding: 0 !important;
}
.psb-home .psb-wpforms .wpforms-field-name .wpforms-field-row-block input { width: 100% !important; max-width: none !important; }
.psb-home .psb-wpforms .wpforms-field-name .wpforms-field-sublabel { margin-top: 6px; }

/* =========================================================================
   Kolotoč obrázků v hero
   ====================================================================== */
.psb-home .psb-carousel { position: relative; height: 440px; border-radius: var(--psb-radius); overflow: hidden; background: #0A2454; }
.psb-home .psb-carousel__track { position: absolute; inset: 0; }
.psb-home .psb-carousel__slide { position: absolute; inset: 0; margin: 0; opacity: 0; visibility: hidden; transition: opacity .8s ease, visibility 0s linear .8s; }
.psb-home .psb-carousel__slide.is-active { opacity: 1; visibility: visible; transition: opacity .8s ease; z-index: 1; }
.psb-home .psb-carousel__slide img { width: 100%; height: 100%; object-fit: cover; border-radius: 0; transform: scale(1.04); transition: transform 6s ease-out; }
.psb-home .psb-carousel__slide.is-active img { transform: scale(1); }
.psb-home .psb-carousel__slide figcaption { position: absolute; left: 16px; bottom: 16px; z-index: 2; margin: 0; }
.psb-home .psb-carousel__tag {
	display: inline-flex; align-items: center; gap: 8px; padding: 9px 14px; border-radius: 8px;
	background: rgba(10, 36, 84, .88); color: #FFFFFF; font-size: 14px; font-weight: 600;
	backdrop-filter: blur(4px); transition: background-color .15s;
}
.psb-home .psb-carousel__tag:hover { background: var(--psb-accent); color: var(--psb-ink); }
.psb-home .psb-carousel__nav {
	position: absolute; top: 50%; z-index: 3; transform: translateY(-50%);
	display: inline-flex; align-items: center; justify-content: center;
	width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%;
	background: rgba(255, 255, 255, .9); color: var(--psb-brand); cursor: pointer;
	opacity: 0; transition: opacity .2s, background-color .15s;
	box-shadow: 0 4px 14px rgba(0, 0, 0, .2);
}
.psb-home .psb-carousel:hover .psb-carousel__nav,
.psb-home .psb-carousel__nav:focus-visible { opacity: 1; }
.psb-home .psb-carousel__nav:hover { background: #FFFFFF; }
.psb-home .psb-carousel__nav--prev { left: 14px; }
.psb-home .psb-carousel__nav--next { right: 14px; }
.psb-home .psb-carousel__dots { position: absolute; right: 16px; bottom: 22px; z-index: 3; display: flex; gap: 8px; }
.psb-home .psb-carousel__dot {
	width: 10px; height: 10px; padding: 0; border: 0; border-radius: 5px; cursor: pointer;
	background: rgba(255, 255, 255, .55); transition: width .3s, background-color .2s;
}
.psb-home .psb-carousel__dot:hover { background: #FFFFFF; }
.psb-home .psb-carousel__dot.is-active { width: 28px; background: var(--psb-accent); }
@media (max-width: 900px) {
	.psb-home .psb-carousel { height: 300px; }
	.psb-home .psb-carousel__nav { opacity: 1; width: 38px; height: 38px; }
	.psb-home .psb-carousel__tag { font-size: 13px; padding: 7px 11px; }
}
@media (prefers-reduced-motion: reduce) {
	.psb-home .psb-carousel__slide, .psb-home .psb-carousel__slide img { transition: none !important; transform: none !important; }
}
