/*
 * Lachevre content — hero, karty, sidebar, sloupce, komponenty obsahu.
 */

/* ===== Hero banner stránek ===== */

.page-hero {
	position: relative;
	background-size: cover;
	background-position: top center;
	padding: 70px 25px 55px;
	text-align: center;
}
.page-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, .2);
}
.page-hero-inner { position: relative; max-width: 800px; margin: 0 auto; }
.page-hero h1 {
	color: #fff;
	font-size: 40px;
	font-weight: 400;
	margin: 0 0 8px;
}
.page-hero-sub { color: #fff; font-size: 15px; margin: 0; }

.divider {
	border: 0;
	border-top: 1px solid rgba(0, 0, 0, .15);
	width: 20%;
	margin: 30px auto;
	position: relative;
	overflow: visible;
}
.divider::after {
	content: "···";
	position: absolute;
	left: 50%;
	top: -14px;
	transform: translateX(-50%);
	background: transparent;
	color: inherit;
	font-size: 18px;
	letter-spacing: 3px;
	padding: 0 8px;
}
.divider-light { border-top-color: rgba(255, 255, 255, .76); color: #fff; }

/* ===== Layout stránky s kartou + sidebar ===== */

.page-layout {
	display: grid;
	grid-template-columns: 2fr 1fr;
	gap: 30px;
	padding-top: 0;
	padding-bottom: 60px;
}
.page-card {
	background: #fff;
	border: 1px solid #e1e1e1;
	padding: 30px;
	margin-top: -60px;
	position: relative;
	z-index: 5;
}
/* stránky bez sidebaru — karta přes celou šířku */
.page-layout-full { grid-template-columns: 1fr; }

/* stránky bez hero (blog výpis) — karta bez záporného marginu */
.page-layout > .post-list { margin-top: 40px; }
.single-layout .page-card { margin-top: 40px; }

.page-plain { padding-top: 50px; padding-bottom: 60px; }
.page-plain-header { position: relative; margin-bottom: 25px; }
.page-plain-title {
	display: inline-block;
	background: var(--c-bg-page);
	padding-right: 20px;
	font-size: 40px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 1px;
	margin: 0;
	position: relative;
	z-index: 2;
}
.page-plain-header::after {
	content: "";
	position: absolute;
	right: 0;
	left: 0;
	top: 50%;
	border-top: 1px solid #e1e1e1;
	z-index: 1;
}

/* ===== Sidebar ===== */

/* šedý podklad celého sloupce jako na živém webu, zarovnaný s bílou kartou */
.page-layout .widget-area {
	background: #F0F0F0;
	padding: 30px;
	margin-top: -60px;
	position: relative;
	z-index: 5;
}

.widget { margin-bottom: 40px; }
.widget-title {
	font-size: 16px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 1px;
	margin: 0 0 15px;
}
.widget img { max-width: 100%; height: auto; display: block; border: 1px solid #e1e1e1; }
.search-form { display: flex; }
.search-form input[type="search"] {
	flex: 1;
	border: 1px solid #e1e1e1;
	padding: 10px 12px;
	font: inherit;
	background: #fff;
}
.search-form button {
	background: var(--c-peach);
	color: #fff;
	border: 0;
	padding: 0 16px;
	cursor: pointer;
}

/* ===== Obsah ===== */

.entry-content { font-size: 15px; }
.entry-content img { max-width: 100%; height: auto; }
.entry-content a { color: var(--c-peach); }
.entry-content a:hover { color: var(--c-teal); }
.entry-content h2, .entry-content h3 { margin: 1.4em 0 .6em; font-weight: 600; }
/* h3 s linkou vpravo, h2 centrovaný — vzory nadpisů z Enfoldu */
.entry-content h3 { display: flex; align-items: center; gap: 16px; }
.entry-content h3::after { content: ""; flex: 1; border-top: 1px solid #e1e1e1; }
.entry-content > h2 { text-align: center; }
.entry-content .subheading { color: #777; margin-top: -.5em; }

.av-image { margin: 1em 0; }
.av-image img { max-height: 640px; width: auto; max-width: 100%; }
.av-image.align-center { text-align: center; }
.av-image.align-left { text-align: left; }
.av-image.align-right { text-align: right; }

/* sloupce z konverze */
.col { float: left; margin-left: 6%; min-height: 1px; }
.col.first { margin-left: 0; clear: both; }
.col-1-2 { width: 47%; }
.col-1-3 { width: 29.333%; }
.col-2-3 { width: 64.666%; }
.col-1-4 { width: 20.5%; }
.col-3-4 { width: 73.5%; }
.col-1-5 { width: 15.2%; }
.col-2-5 { width: 36.4%; }
.col-3-5 { width: 57.6%; }
.col-4-5 { width: 78.8%; }
.col-full { width: 100%; margin-left: 0; clear: both; }
.entry-content::after, .grid-row::after { content: ""; display: table; clear: both; }

.grid-row { display: flex; flex-wrap: wrap; gap: 0; border-bottom: 1px solid #e1e1e1; }
.grid-cell { flex: 1; padding: 10px 14px; min-width: 120px; }

/* accordion (FAQ) */
.accordion details {
	border: 1px solid #e1e1e1;
	background: #fff;
	margin-bottom: 3px;
}
.accordion summary {
	cursor: pointer;
	padding: 13px 16px;
	font-weight: 600;
	list-style: none;
	position: relative;
	padding-left: 38px;
}
.accordion summary::before {
	content: "+";
	position: absolute;
	left: 14px;
	color: var(--c-peach);
	font-weight: 700;
}
.accordion details[open] summary::before { content: "–"; }
.accordion-body { padding: 0 16px 14px 38px; }

/* tlačítka */
.btn {
	display: inline-block;
	background: var(--c-peach);
	color: #fff !important;
	padding: 12px 24px;
	border-radius: 3px;
	font-weight: 600;
}
.btn:hover { opacity: .85; }
.btn-big {
	background: var(--c-olive-btn);
	font-size: 22.5px;
	font-weight: 400;
	padding: 20px 60px;
}

/* logo grid (partneři) */
.logo-grid { display: flex; flex-wrap: wrap; gap: 20px; align-items: center; margin: 1em 0; }
.logo-item img { max-height: 90px; width: auto; }

/* fotogalerie ve 3 sloupcích (kontraktační výroba) */
.logo-grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); align-items: stretch; }
.logo-grid-3 .logo-item img { max-height: none; width: 100%; height: 100%; object-fit: cover; }

/* větší centrovaný h2 v obsahu (blockquote styl Enfoldu) */
.entry-content > h2 { font-size: 30px; font-weight: 400; }

/* mapa */
.map-embed iframe, iframe[src*="google.com/maps"] {
	width: 100%;
	height: 400px;
	border: 0;
	display: block;
	margin: 1em 0;
}

/* full-bleed mapa přes celou šířku okna (kamenná prodejna) */
.map-embed-full { width: 100vw; margin-left: calc(50% - 50vw); }
.map-embed-full iframe { height: 420px; margin: 0; }

/* karty přes mapu / samostatně (šablona Karty) */
.entry-content-karty .kontakty-layout-overlap {
	margin-top: -120px;
	position: relative;
	z-index: 5;
	padding-top: 0;
	padding-bottom: 60px;
}
.entry-content-karty .kontakty-layout-pad { padding-top: 60px; }
.entry-content-karty .kontakty-card-white h3 { margin-top: 1.6em; }

/* ===== Grid výpis článků (média, studie) ===== */

.posts-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 28px;
	margin: 1em 0;
}
.posts-grid-thumb { display: block; margin-bottom: 12px; }
.posts-grid-thumb img { display: block; width: 100%; height: auto; aspect-ratio: 495/400; object-fit: cover; }
.entry-content .posts-grid h3.posts-grid-title { margin: 0 0 2px; font-size: 16px; font-weight: 700; line-height: 1.35; display: block; text-transform: none; }
.entry-content .posts-grid h3.posts-grid-title::after { display: none; }
.posts-grid-title a { color: var(--c-heading); }
.posts-grid-title a:hover { color: var(--c-peach); }
.posts-grid-excerpt { font-size: 13.5px; }

@media (max-width: 767px) {
	.posts-grid { grid-template-columns: 1fr; }
}

/* ===== Blog — úzký centrovaný výpis (živý web) ===== */

.blog-list-narrow {
	max-width: 520px;
	margin: 0 auto;
	padding: 45px 25px 60px;
}
.blog-item { margin-bottom: 55px; }
.blog-item-thumb { display: block; margin-bottom: 18px; }
.blog-item-thumb img { display: block; width: 100%; height: auto; }
.blog-item-title { margin: 0 0 4px; font-size: 16px; font-weight: 700; line-height: 1.4; }
.blog-item-title a { color: var(--c-heading); }
.blog-item-title a:hover { color: var(--c-peach); }
.blog-item-excerpt { text-align: justify; font-size: 13.5px; }
.blog-item-excerpt p { margin: 0 0 10px; }

/* ===== Detail článku — centrovaný, bez karty ===== */

.single-narrow {
	max-width: 780px;
	margin: 0 auto;
	padding: 40px 25px 60px;
}
.single-post .entry-title {
	font-size: 26px;
	font-weight: 600;
	text-transform: uppercase;
	text-align: center;
	line-height: 1.35;
	margin: 0 0 22px;
}
/* oranžové mezititulky (samostatný strong v odstavci) — jako na živém webu */
.single-post .entry-content p > strong:only-child { color: var(--c-peach); }

/* ===== Blog výpis ===== */

.post-list { min-width: 0; }
.post-item {
	background: #fff;
	border: 1px solid #e1e1e1;
	padding: 25px 30px;
	margin-bottom: 25px;
}
.post-item-title { margin: 0 0 4px; font-size: 17px; font-weight: 700; }
.post-item-title a { color: var(--c-heading); }
.post-item-title a:hover { color: var(--c-peach); }
.post-item-date { color: #999; font-size: 12px; margin: 0 0 12px; }
.more-link { color: var(--c-peach); font-weight: 600; }

.blog-banner img, .home-banner img { display: block; width: 100%; height: auto; }

.single-post .entry-title { font-size: 28px; font-weight: 600; margin: 0 0 4px; }
.single-nav { display: flex; justify-content: space-between; gap: 20px; margin-top: 30px; }

.pagination { margin: 20px 0; }
.pagination .page-numbers {
	display: inline-block;
	border: 1px solid #e1e1e1;
	background: #fff;
	padding: 6px 12px;
	margin-right: 4px;
}
.pagination .page-numbers.current { background: var(--c-peach); color: #fff; }

/* ===== Home ===== */

.home-hero {
	background: var(--c-peach) url(../images/floral-dark.png);
	padding: 55px 0;
}
.home-hero-inner {
	display: grid;
	grid-template-columns: 3fr 2fr;
	gap: 40px;
	align-items: center;
}
.home-hero-title {
	color: #ECF2E1;
	font-size: 28px;
	font-weight: 400;
	margin: 0;
	line-height: 1.35;
}
.home-hero-btn { text-align: center; }
.home-promo { padding: 30px 0 40px; background: var(--c-bg-page); }
.home-promo img { display: block; width: 100%; height: auto; border: 1px solid #e1e1e1; }

/* ===== Kontakty ===== */

.kontakty-layout {
	display: grid;
	grid-template-columns: 1fr 1fr;
	padding-top: 60px;
	padding-bottom: 80px;
}
.kontakty-card { padding: 45px 40px; }
.kontakty-card-white { background: #fff; border: 1px solid #e1e1e1; border-right: 0; }
.kontakty-card-teal { background: var(--c-teal); color: #fff; }
.kontakty-heading { font-size: 30px; font-weight: 400; text-align: center; margin: 0 0 4px; }
.kontakty-card-teal .kontakty-heading { color: #fff; }
.kontakty-sub { text-align: center; margin: 0; font-weight: 600; font-size: 13px; }
.kontakty-body strong { color: var(--c-peach); }
.kontakty-body a { color: var(--c-teal); word-break: break-all; }
.kontakty-card-white .kontakty-body a:hover { color: var(--c-peach); }

/* ===== Kontaktní formulář ===== */

.lachevre-contact { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 25px; }
.cf-field { flex: 1 1 100%; }
.cf-field.cf-half { flex: 1 1 calc(50% - 7px); }
.lachevre-contact input[type="text"],
.lachevre-contact input[type="email"],
.lachevre-contact textarea {
	width: 100%;
	background: transparent;
	border: 2px solid #fff;
	color: #fff;
	padding: 12px 14px;
	font: inherit;
	text-align: center;
}
.lachevre-contact ::placeholder { color: #fff; opacity: 1; }
.lachevre-contact textarea { text-align: left; }
.cf-submit {
	background: transparent;
	border: 2px solid #fff;
	color: #fff;
	padding: 12px 40px;
	margin: 0 auto;
	cursor: pointer;
	font: inherit;
}
.cf-submit:hover { background: rgba(255, 255, 255, .15); }
.hp-field { position: absolute; left: -9999px; }
.form-sent { background: #fff; color: var(--c-teal); padding: 10px 14px; text-align: center; flex: 1 1 100%; }

/* formulář na bílém pozadí (stránky mimo kontakty) */
.page-card .lachevre-contact input,
.page-card .lachevre-contact textarea {
	border-color: #e1e1e1;
	color: var(--c-text);
	text-align: left;
}
.page-card .lachevre-contact ::placeholder { color: #999; }
.page-card .cf-submit {
	background: var(--c-teal);
	border-color: var(--c-teal);
	color: #fff;
}
.page-card .form-sent { background: var(--c-teal); color: #fff; }

/* ===== Mobil ===== */

@media (max-width: 767px) {
	.page-layout, .kontakty-layout, .home-hero-inner { grid-template-columns: 1fr; }
	.kontakty-card-white { border-right: 1px solid #e1e1e1; }
	.page-hero h1, .page-plain-title { font-size: 28px; }
	.col, .col-1-2, .col-1-3, .col-2-3, .col-1-4, .col-3-4,
	.col-1-5, .col-2-5, .col-3-5, .col-4-5 {
		float: none;
		width: 100%;
		margin-left: 0;
	}
	.page-card { margin-top: -30px; }
}
