/* Obsah podstránek (texty převzaté z původního webu v Text modulech, třída opo-text na modulu) */
.opo-text {
	color: var(--c-text);
}
.opo-text h1,
.opo-text h2,
.opo-text h3,
.opo-text h4 {
	margin: 1.4em 0 .55em;
}
.opo-text > .et_pb_text_inner > :first-child,
.opo-text > .et_pb_text_inner > :first-child > :first-child {
	margin-top: 0;
}
.opo-text ul,
.opo-text ol {
	margin: 0 0 1.2em;
	padding-left: 1.4em !important;
}
.opo-text li {
	margin: 0 0 .4em;
	line-height: 1.65;
}
.opo-text ul li {
	list-style: disc;
}
.opo-text ol li {
	list-style: decimal;
}
.opo-text a {
	text-decoration: underline;
	text-underline-offset: 2px;
}
.opo-text em {
	font-style: normal;
}
.opo-text iframe {
	max-width: 100%;
	border: 0;
}

/* obrázky v textu */
.opo-text img.alignleft,
.opo-text .alignleft {
	float: left;
	margin: .3em 1.6em 1em 0;
	max-width: 45%;
	border-radius: var(--radius);
}
.opo-text img.alignright,
.opo-text .alignright {
	float: right;
	margin: .3em 0 1em 1.6em;
	max-width: 45%;
	border-radius: var(--radius);
}
.opo-text img.aligncenter,
.opo-text .aligncenter {
	display: block;
	margin: 1em auto;
	border-radius: var(--radius);
}
.opo-text img.alignnone {
	border-radius: var(--radius);
}
/* fotky mimo mřížku: jednotná velikost (původní obsah má každou jinak velkou) */
.opo-text img:not(.opo-gallery-grid img) {
	max-width: min(420px, 100%);
	height: auto;
	border-radius: var(--radius);
}
.opo-text img:not(.opo-gallery-grid img):not(.alignleft):not(.alignright) {
	display: block;
	margin: 14px 0;
}
.opo-text img.alignleft:not(.opo-gallery-grid img),
.opo-text img.alignright:not(.opo-gallery-grid img) {
	max-width: min(320px, 42%);
}
.opo-text::after {
	content: "";
	display: table;
	clear: both;
}

/* tabulka (ceník) */
.opo-text table {
	width: 100%;
	max-width: 760px;
	border-collapse: collapse;
	margin: 0 0 2em;
	border: 0;
	font-size: var(--fs-body);
}
.opo-text table td,
.opo-text table th {
	border: 0;
	border-bottom: 1px solid var(--c-border);
	padding: 12px 14px;
	text-align: center;
	vertical-align: middle;
}
.opo-text table tr:first-child td:empty {
	display: none;
}
.opo-text table td:first-child {
	text-align: left;
	font-weight: 600;
}
.opo-text table h1 {
	font-size: var(--fs-h3);
	margin: 0;
}
.opo-text table tr:nth-child(even) td {
	background: var(--c-bg-soft);
}
/* rámeček tabulky stejnou barvou jako čáry mezi řádky (6. 11.: v tmavé variantě chyběl spodní okraj) */
.opo-text table,
.et_pb_text .opo-text table,
.opo-text.et_pb_text table {
	border: 1px solid var(--c-border) !important;
}
/* záhlaví tabulky (první řádek, seed z něj dělá th) */
.opo-text table th {
	background: var(--c-bg-soft);
	border-bottom: 2px solid var(--c-border);
	font-weight: 700;
	color: var(--c-heading);
}
.opo-text table th:first-child {
	text-align: left;
}
.opo-text table th :is(h1, h2, h3, h4, h5, h6),
.opo-text table th strong {
	margin: 0 !important;
	padding: 0 !important;
	font-size: inherit !important;
	font-weight: 700;
	line-height: 1.4;
	color: inherit;
}

/* fotogalerie: obrázky v mřížce, kliknutím se otevřou ve větší velikosti */
.opo-gallery-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(240px, 100%), 1fr));
	gap: 12px;
	margin: 0 0 2em;
}
.opo-text .opo-gallery-grid a {
	text-decoration: none;
}
/* tipy na výlety: více fotek za sebou vedle sebe */
.opo-text .opo-gallery-grid img {
	width: 100%;
	height: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: var(--radius);
	margin: 0 !important;
	float: none !important;
	max-width: none !important;
}
.opo-text tr:not(:has(:is(td, th):not(:empty))) {
	display: none;
}
a[href^="tel:"] {
	white-space: nowrap;
}
.opo-gallery img {
	width: 100%;
	height: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: var(--radius);
	display: block;
	margin: 0 !important;
	float: none !important;
	max-width: none !important;
}
.opo-gallery a {
	display: block;
	overflow: hidden;
	border-radius: var(--radius);
}
.opo-gallery a img {
	transition: transform .35s ease;
}
.opo-gallery a:hover img {
	transform: scale(1.04);
}
.opo-gallery ul {
	padding-left: 0 !important;
	margin: 1.6em 0 .8em;
}
.opo-gallery ul li {
	list-style: none;
}
.opo-gallery h1,
.opo-gallery h2,
.opo-gallery h3 {
	font-size: var(--fs-h3);
	letter-spacing: .06em;
	text-transform: uppercase;
}

/* obsazenost: kalendáře e-chalupy přes celou šířku */
.opo-occupancy iframe {
	width: 100% !important;
	min-height: 520px;
}

/* lightbox (assets/js/lightbox.js) */
.opo-lightbox {
	position: fixed;
	inset: 0;
	z-index: 100030;
	background: rgba(12, 10, 9, .93);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 52px 64px;
}
.opo-lightbox[hidden] {
	display: none !important;
}
.opo-lightbox img {
	max-width: 100%;
	max-height: calc(100vh - 120px);
	object-fit: contain;
	border-radius: 2px;
}
.opo-lightbox__count {
	position: absolute;
	bottom: 16px;
	left: 0;
	right: 0;
	text-align: center;
	color: #ddd;
	font-size: 13px;
}
.opo-lightbox button {
	position: absolute;
	background: transparent;
	border: 0;
	color: #fff;
	font-size: 46px;
	line-height: 1;
	padding: 8px 14px;
	cursor: pointer;
}
.opo-lightbox__close { top: 8px; right: 12px; font-size: 38px !important; }
.opo-lightbox__prev { left: 6px; top: 50%; transform: translateY(-50%); }
.opo-lightbox__next { right: 6px; top: 50%; transform: translateY(-50%); }
body.opo-lightbox-open { overflow: hidden; }
