/* Odemykáme: main stylesheet. Směr A Noční výjezd: černá #0B0B0C, oranžová #FF9A1F (maják), bílá.
   Dark site by design ("moderní tech firma, ne pohřební služba"); contrast checked for WCAG AA:
   text #F2F2F0 on #0B0B0C 17.5:1, muted #A3A39E on #1A1A1D 6.9:1, black on orange 9.3:1.
   Never white text on orange (2.1:1).

   Design rules agreed by Marek on the home page (26. and 29. 10. 2026), valid for the whole site:
   - sections alternate two FLAT tones (--odm-bg / --odm-tone) with a sharp edge and big spacing (--odm-section);
   - NO gradients, glows, decorative lines or borders on surfaces: cards, notes, chips, forms, tables and FAQ
     differ by background only (in tone sections the card tokens are lifted one step so they stay visible);
   - photos in a frame, never as a page background; headings never hyphenated. */

@font-face {
	font-family: "Archivo";
	src: url("../fonts/archivo-latin-ext.woff2") format("woff2");
	font-weight: 100 900;
	font-stretch: 62% 125%;
	font-style: normal;
	font-display: swap;
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: "Archivo";
	src: url("../fonts/archivo-latin.woff2") format("woff2");
	font-weight: 100 900;
	font-stretch: 62% 125%;
	font-style: normal;
	font-display: swap;
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
	color-scheme: dark;
	--odm-bg: #0B0B0C;
	--odm-bg2: #111113;
	--odm-tone: #16161A;
	--odm-card: #1A1A1D;
	--odm-card2: #232327;
	--odm-card3: #2C2C31;
	--odm-line: #2A2A2E;
	--odm-line2: #3A3A3F;
	--odm-text: #F2F2F0;
	--odm-soft: #D6D6D2;
	--odm-muted: #A3A39E;
	--odm-accent: #FF9A1F;
	--odm-accent-hover: #FFB04F;
	--odm-on-accent: #0B0B0C;
	--odm-success: #5FD08A;
	--odm-online: #2BD96B;
	--odm-error: #FF7B72;

	--odm-font: "Archivo", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
	--odm-h-stretch: 72%;

	--odm-r-sm: 2px;
	--odm-r-md: 4px;
	--odm-r-lg: 6px;
	--odm-r-btn: 999px;  /* pill buttons like the big phone in the final call (Marek 30. 10.) */

	--odm-wrap: 1200px;
	--odm-text-w: 640px;   /* ~65 to 72 characters at 17px */
	--odm-faq-w: 860px;
	--odm-gutter: clamp(16px, 4vw, 40px);
	--odm-section: clamp(76px, 9.5vw, 132px);
	--odm-gap-head: clamp(28px, 3.5vw, 48px);   /* space between a section heading block and its content */

	--odm-fs-xs: 0.8125rem;
	--odm-fs-sm: 0.9375rem;
	--odm-fs-md: 1.0625rem;
	--odm-fs-lg: clamp(1.125rem, 1.05rem + 0.35vw, 1.25rem);
	--odm-fs-h3: clamp(1.375rem, 1.25rem + 0.6vw, 1.75rem);
	--odm-fs-h2: clamp(2.125rem, 1.6rem + 2.6vw, 3.5rem);
	--odm-fs-h1: clamp(2.5rem, 1.8rem + 3.4vw, 4.5rem);
	--odm-fs-claim: clamp(2.875rem, 1.9rem + 5vw, 5.75rem);

	--odm-ease: cubic-bezier(0.2, 0.7, 0.2, 1);
	--odm-header-h: 72px;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 96px; background: var(--odm-bg); }
html.odm-lock { overflow: hidden; }
body {
	margin: 0;
	font-family: var(--odm-font);
	font-size: var(--odm-fs-md);
	line-height: 1.6;
	color: var(--odm-text);
	background: var(--odm-bg);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}
img, svg, video { max-width: 100%; height: auto; display: block; }
.odm-icon { display: inline-block; vertical-align: -0.15em; flex: 0 0 auto; }
a { color: var(--odm-accent); text-underline-offset: 0.18em; text-decoration-thickness: 1px; }
a:hover { color: var(--odm-accent-hover); }
:focus-visible { outline: 3px solid var(--odm-accent); outline-offset: 3px; border-radius: 2px; }
h1, h2, h3, h4 {
	color: var(--odm-text); font-weight: 900; font-stretch: var(--odm-h-stretch); text-transform: uppercase;
	line-height: 0.98; letter-spacing: -0.005em; margin: 0 0 0.5em; text-wrap: balance;
}
h2 { font-size: var(--odm-fs-h2); }
h3 { font-size: var(--odm-fs-h3); line-height: 1.08; }
h4 { font-size: var(--odm-fs-lg); }
p { margin: 0 0 1em; text-wrap: pretty; }
em { font-style: normal; color: var(--odm-accent); }
strong { font-weight: 700; color: var(--odm-text); }
::selection { background: var(--odm-accent); color: var(--odm-on-accent); }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }
.odm-skip { position: absolute; left: -9999px; top: 8px; z-index: 100; background: var(--odm-accent); color: var(--odm-on-accent); padding: 10px 16px; }
.odm-skip:focus { left: 8px; }

/* ---------- Buttons (primary = orange, secondary = flat grey; no outlines) ---------- */
.odm-btn,
.wp-block-button__link {
	display: inline-flex; align-items: center; justify-content: center; gap: 10px;
	min-height: 52px; padding: 13px 25px;
	font: inherit; font-weight: 800; font-size: var(--odm-fs-md); line-height: 1.2;
	text-decoration: none; border-radius: var(--odm-r-btn);
	border: 0; background: var(--odm-accent); color: var(--odm-on-accent);
	transition: background-color 0.18s var(--odm-ease), color 0.18s var(--odm-ease), transform 0.18s var(--odm-ease);
	cursor: pointer;
}
.odm-btn:hover,
.wp-block-button__link:hover { background: var(--odm-accent-hover); color: var(--odm-on-accent); transform: translateY(-1px); }
.odm-btn--secondary,
.is-style-outline > .wp-block-button__link,
.wp-block-button.is-style-outline .wp-block-button__link { background: var(--odm-card3); color: var(--odm-text); font-weight: 700; }
.odm-btn--secondary:hover,
.is-style-outline > .wp-block-button__link:hover,
.wp-block-button.is-style-outline .wp-block-button__link:hover { background: #3A3A40; color: var(--odm-text); }
/* Core gives outline buttons "border: 2px solid currentColor"; we have no outlines anywhere. */
.wp-block-button.is-style-outline > .wp-block-button__link:not(.has-text-color):not(.has-background),
.wp-block-button .wp-block-button__link.is-style-outline:not(.has-text-color):not(.has-background) { border: 0 !important; padding: 13px 25px !important; color: var(--odm-text); }
.odm-btn--call .odm-icon { width: 20px; height: 20px; }
.wp-block-buttons { gap: 12px; margin: 1.5em 0 0; }

/* ---------- Header ---------- */
/* Solid header, no backdrop-filter: a filter on the header would make it the containing block of the fixed
   mobile menu (.odm-nav), which then got 48px high and hid every item but the first (found 29. 10. 2026). */
.odm-header {
	position: sticky; top: 0; z-index: 50;
	background: var(--odm-bg);
}
.odm-header.is-scrolled { box-shadow: 0 8px 24px rgba(0, 0, 0, 0.45); }
.odm-header__inner { max-width: calc(var(--odm-wrap) + 2 * var(--odm-gutter)); margin: 0 auto; padding: 0 var(--odm-gutter); min-height: var(--odm-header-h); display: flex; align-items: center; gap: 24px; }
.odm-header__logo { flex: 0 0 auto; display: block; }
.odm-header__logo img { width: 190px; height: auto; }
.odm-header__toggle { display: none; margin-left: auto; background: none; border: 0; color: var(--odm-text); padding: 10px; cursor: pointer; min-width: 44px; min-height: 44px; }
.odm-header__toggle-close { display: none; }
.odm-nav { flex: 1; display: flex; align-items: center; gap: 20px; }
.odm-nav__list { list-style: none; margin: 0 auto 0 12px; padding: 0; display: flex; gap: 2px; align-items: center; }
.odm-nav__list > li { position: relative; display: flex; align-items: center; }
.odm-nav__list a { display: block; padding: 10px 11px; color: var(--odm-soft); font-weight: 600; font-size: var(--odm-fs-sm); text-decoration: none; white-space: nowrap; }
.odm-nav__list a:hover,
.odm-nav__list .current-menu-item > a,
.odm-nav__list .current-menu-ancestor > a { color: var(--odm-accent); }
.odm-nav__sub-toggle { background: none; border: 0; padding: 6px 4px; margin-left: -8px; color: var(--odm-muted); cursor: pointer; }
.odm-nav .sub-menu {
	list-style: none; margin: 0; padding: 10px;
	position: absolute; top: 100%; left: 0; min-width: 300px;
	background: var(--odm-card2); border-radius: var(--odm-r-md); box-shadow: 0 16px 40px rgba(0, 0, 0, 0.5);
	opacity: 0; visibility: hidden; transform: translateY(6px);
	transition: opacity 0.16s, transform 0.16s, visibility 0.16s;
}
.odm-nav .sub-menu a { white-space: normal; padding: 11px 14px; border-radius: var(--odm-r-sm); }
.odm-nav .sub-menu a:hover { background: var(--odm-card3); }
.odm-nav__list > li:hover > .sub-menu,
.odm-nav__list > li:focus-within > .sub-menu,
.odm-nav__list > li.is-open > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.odm-nav__actions { display: flex; align-items: center; gap: 14px; }
.odm-nav__actions .odm-btn { min-height: 40px; padding: 8px 17px; font-size: var(--odm-fs-sm); white-space: nowrap; }
/* "Nonstop" with a green live dot (we are online). Flat pill, no outline. */
.odm-live { display: inline-flex; align-items: center; gap: 9px; padding: 7px 13px 7px 11px; border-radius: 999px; background: color-mix(in srgb, var(--odm-online) 14%, transparent); font-size: var(--odm-fs-xs); font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; color: var(--odm-text); white-space: nowrap; line-height: 1; }
.odm-live__dot { position: relative; flex: 0 0 auto; width: 9px; height: 9px; border-radius: 50%; background: var(--odm-online); }
.odm-live__dot::after { content: ""; position: absolute; inset: 0; border-radius: 50%; background: var(--odm-online); animation: odm-ping 1.8s cubic-bezier(0, 0, 0.2, 1) infinite; }
@keyframes odm-ping { 0% { transform: scale(1); opacity: 0.8; } 75%, 100% { transform: scale(2.8); opacity: 0; } }
/* Desktop: next to the phone button on the right. Narrow screens: in the bar right before the menu button. */
.odm-live--bar { display: none; }
@media (max-width: 1120px) {
	.odm-live--bar { display: inline-flex; margin-left: auto; }
	.odm-live--bar + .odm-header__toggle { margin-left: 0; }
	.odm-nav__actions .odm-live { display: none; }
}

@media (max-width: 1120px) {
	.odm-header__toggle { display: inline-flex; }
	.odm-header.is-open .odm-header__toggle-open { display: none; }
	.odm-header.is-open .odm-header__toggle-close { display: inline; }
	.odm-nav {
		position: fixed; inset: var(--odm-header-h) 0 0 0; background: var(--odm-bg); flex-direction: column; align-items: stretch; gap: 0;
		padding: 16px var(--odm-gutter) calc(110px + env(safe-area-inset-bottom)); overflow-y: auto; /* room above the sticky call bar */
		opacity: 0; visibility: hidden; transform: translateY(-8px); transition: opacity 0.18s, transform 0.18s, visibility 0.18s;
	}
	.odm-header.is-open .odm-nav { opacity: 1; visibility: visible; transform: none; }
	.odm-nav__list { flex-direction: column; align-items: stretch; margin: 0; gap: 4px; }
	.odm-nav__list > li { flex-wrap: wrap; }
	.odm-nav__list > li > a { flex: 1; padding: 14px 4px; font-size: var(--odm-fs-lg); color: var(--odm-text); }
	.odm-nav__sub-toggle { padding: 12px; margin: 0; }
	.odm-nav .sub-menu { position: static; display: none; min-width: 0; width: 100%; opacity: 1; visibility: visible; transform: none; box-shadow: none; background: var(--odm-card); border-radius: var(--odm-r-md); padding: 6px 8px; margin: 2px 0 10px; }
	.odm-nav .sub-menu a { padding: 11px 10px; }
	.odm-nav__list > li.is-open > .sub-menu { display: block; }
	.odm-nav__list > li:hover > .sub-menu { display: none; }
	.odm-nav__list > li.is-open:hover > .sub-menu { display: block; }
	.odm-nav__actions { flex-direction: column; align-items: stretch; margin-top: 24px; }
	.odm-nav__actions .odm-btn { width: 100%; min-height: 52px; font-size: var(--odm-fs-md); }
}

/* ---------- Layout ---------- */
.odm-wrap { max-width: calc(var(--odm-wrap) + 2 * var(--odm-gutter)); margin-left: auto; margin-right: auto; padding-left: var(--odm-gutter); padding-right: var(--odm-gutter); }
.odm-content > * { max-width: calc(var(--odm-wrap) + 2 * var(--odm-gutter)); margin-left: auto; margin-right: auto; padding-left: var(--odm-gutter); padding-right: var(--odm-gutter); }
.odm-content > .alignfull { max-width: none; }
.odm-content--article > * { max-width: calc(var(--odm-text-w) + 2 * var(--odm-gutter)); }
.odm-content--article { padding-bottom: var(--odm-section); }
.odm-content--article > h2 { margin-top: 1.6em; font-size: clamp(1.75rem, 1.4rem + 1.4vw, 2.5rem); }

/* Section groups: full width bands, inner content constrained. Every section has the full padding, also right
   under the hero and when two sections follow each other (the tone edge separates them). */
.wp-block-group.is-style-odm-section,
.wp-block-group.is-style-odm-band,
.wp-block-group.is-style-odm-accent,
.wp-block-group.is-style-odm-cta { padding-top: var(--odm-section); padding-bottom: var(--odm-section); margin: 0 auto; }
.wp-block-group.is-style-odm-band,
.wp-block-group.is-style-odm-accent,
.wp-block-group.is-style-odm-cta { max-width: none; }
.wp-block-group.is-style-odm-band > *,
.wp-block-group.is-style-odm-accent > *,
.wp-block-group.is-style-odm-cta > * { max-width: var(--odm-wrap); margin-left: auto; margin-right: auto; }
.wp-block-group.is-style-odm-band { background: var(--odm-tone); }
/* Page rhythm: sections and bands alternate two flat tones. The hero sits on --odm-bg, so the FIRST section is the
   lighter tone (sharp edge right under the hero), the second is dark again, and so on. Inside the lighter tone the
   card tokens step up one level so cards stay visible without any border. */
.odm-content > .wp-block-group.is-style-odm-section,
.odm-content > .wp-block-group.is-style-odm-band { position: relative; max-width: none; background: var(--odm-bg); }
.odm-content > .wp-block-group.is-style-odm-section > * { max-width: var(--odm-wrap); margin-left: auto; margin-right: auto; }
.odm-content > .wp-block-group:is(.is-style-odm-section, .is-style-odm-band):nth-child(odd of .wp-block-group:is(.is-style-odm-section, .is-style-odm-band)),
.wp-block-group.is-style-odm-cta,
.odm-tone { background: var(--odm-tone); --odm-card: #222226; --odm-card2: #2C2C31; --odm-card3: #36363C; }
.wp-block-group.is-style-odm-accent { background: var(--odm-accent); color: var(--odm-on-accent); text-align: center; }
.wp-block-group.is-style-odm-accent h2,
.wp-block-group.is-style-odm-accent h3,
.wp-block-group.is-style-odm-accent strong,
.wp-block-group.is-style-odm-accent em,
.wp-block-group.is-style-odm-accent a:not(.wp-block-button__link) { color: var(--odm-on-accent); }
.wp-block-group.is-style-odm-accent h2 { font-size: clamp(2.375rem, 1.6rem + 4vw, 4.75rem); }
.wp-block-group.is-style-odm-accent .is-style-odm-eyebrow { color: var(--odm-on-accent); justify-content: center; }
.wp-block-group.is-style-odm-accent p { margin-left: auto !important; margin-right: auto !important; font-weight: 600; }
.wp-block-group.is-style-odm-accent .wp-block-buttons { justify-content: center; }
.wp-block-group.is-style-odm-accent .wp-block-button__link { background: var(--odm-on-accent); color: var(--odm-text); }
.wp-block-group.is-style-odm-cta { text-align: center; }
.wp-block-group.is-style-odm-cta > * { max-width: 820px; }
.wp-block-group.is-style-odm-cta .wp-block-buttons { justify-content: center; }
.wp-block-group.is-style-odm-cta .is-style-odm-eyebrow { justify-content: center; }
.wp-block-group.is-style-odm-panel { background: var(--odm-card); border-radius: var(--odm-r-md); padding: clamp(20px, 3vw, 36px); }

/* Readable width text (about 65 to 72 characters). WP constrained layout centres every child (margin auto
   !important); text starts at the left edge of the 1200px content box instead, so it lines up with headings and
   grids. Specificity beats the band rule ".wp-block-group.is-style-odm-band > *" (text in bands used to run 1200px). */
.odm-content .wp-block-group.is-layout-constrained > p,
.odm-content .wp-block-group.is-layout-constrained > .wp-block-list,
.odm-content .wp-block-group.is-layout-constrained > .is-style-odm-note,
.odm-content .is-layout-constrained > p,
.odm-content .is-layout-constrained > .wp-block-list { max-width: var(--odm-text-w); }
.odm-content .wp-block-group.is-layout-constrained > .wp-block-details { max-width: var(--odm-faq-w); }
.odm-content .is-layout-constrained > p,
.odm-content .is-layout-constrained > .wp-block-list,
.odm-content .is-layout-constrained > .wp-block-details,
.odm-content .is-layout-constrained > .odm-form-wrap,
.odm-content .is-layout-constrained > .odm-contact-card,
.odm-content .is-layout-constrained > .odm-insurers--full {
	margin-left: max(0px, calc((100% - var(--odm-wrap)) / 2)) !important;
	margin-right: auto !important;
}
.odm-content .wp-block-group.is-style-odm-cta.is-layout-constrained > p,
.odm-content .wp-block-group.is-style-odm-accent.is-layout-constrained > p { margin-left: auto !important; }
.odm-content .wp-block-columns p,
.odm-content .wp-block-columns .wp-block-list { max-width: none; }
/* Rhythm inside a section: heading block (eyebrow, h2, lead) then a clear gap before the content. */
.odm-content .wp-block-group > h2 + :not(p),
.odm-content .wp-block-group > .is-style-odm-lead + * { margin-top: var(--odm-gap-head) !important; }
/* Text-only pages (privacy): a section with several h2 is an article, all its h2 smaller, with air above, tight below. */
.odm-content .wp-block-group:has(> h2 ~ h2) > h2 { font-size: clamp(1.75rem, 1.4rem + 1.4vw, 2.5rem); margin-top: 1.6em; }
.odm-content .wp-block-group:has(> h2 ~ h2) > h2:first-child { margin-top: 0; }
.odm-content .wp-block-group:has(> h2 ~ h2) > h2 + * { margin-top: 0 !important; }
.odm-eyebrow,
.is-style-odm-eyebrow {
	display: flex; align-items: center; gap: 10px;
	font-size: var(--odm-fs-xs) !important; font-weight: 800; letter-spacing: 0.22em; text-transform: uppercase;
	color: var(--odm-accent); margin: 0 0 14px;
}
.is-style-odm-eyebrow::before { content: ""; width: 8px; height: 8px; background: currentColor; flex: 0 0 auto; }
.is-style-odm-lead { font-size: var(--odm-fs-lg); color: var(--odm-soft); }
.is-style-odm-note { font-size: var(--odm-fs-sm); color: var(--odm-soft); background: var(--odm-card); padding: 18px 22px; border-radius: var(--odm-r-md); }
.is-style-odm-price { font-weight: 800; font-size: var(--odm-fs-lg); color: var(--odm-accent); letter-spacing: 0.01em; }

/* ---------- Hero (flat dark, photo in its own frame) ---------- */
.odm-hero { position: relative; background: var(--odm-bg); }
.odm-hero__inner { position: relative; z-index: 1; max-width: calc(var(--odm-wrap) + 2 * var(--odm-gutter)); margin: 0 auto; padding: clamp(28px, 4vw, 64px) var(--odm-gutter) clamp(56px, 7vw, 104px); display: grid; gap: clamp(28px, 5vw, 64px); grid-template-columns: minmax(0, 1fr); align-items: center; }
.odm-hero--split .odm-hero__inner { grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); }
.odm-hero__title { font-size: var(--odm-fs-h1); margin-bottom: 0.35em; }
.odm-hero__perex { font-size: var(--odm-fs-lg); max-width: 600px; color: var(--odm-soft); }
.odm-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.odm-hero__media { margin: 0; position: relative; }
.odm-hero__media img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--odm-r-md); }
.odm-hero--split .odm-hero__media { max-width: 520px; justify-self: end; width: 100%; }
.odm-hero--wide .odm-hero__media img { aspect-ratio: 21 / 9; }
.odm-hero--plain .odm-hero__text { max-width: 820px; }

/* Home: big claim, atmosphere background (approved 26. 10.: drifting blurred lights + beacon sweep). */
.odm-hero--home { min-height: min(86vh, 760px); display: flex; align-items: center; overflow: hidden; }
.odm-hero--home .odm-hero__inner { width: 100%; padding-top: clamp(56px, 8vw, 96px); padding-bottom: clamp(56px, 8vw, 96px); }
.odm-hero--home .odm-hero__inner { grid-template-columns: minmax(0, 1.25fr) minmax(0, 0.75fr); align-items: center; }
.odm-hero--home .odm-hero__text { max-width: 700px; }

/* Photo in its own frame (no cropping surprises across devices). */
.odm-hero__photo { position: relative; margin: 0; justify-self: end; width: 100%; max-width: 460px; }
.odm-hero__photo img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--odm-r-md); }

/* Atmosphere: blurred drifting lights (like Lokafi blobs) + slow beacon sweep, brand colours. */
.odm-hero__fx { position: absolute; inset: 0; overflow: hidden; pointer-events: none; background: radial-gradient(120% 90% at 80% 10%, #1a1208 0%, var(--odm-bg) 60%); }
.odm-fx { position: absolute; border-radius: 50%; filter: blur(70px); opacity: 0.55; will-change: transform; }
.odm-fx--a { width: 46vw; height: 46vw; max-width: 640px; max-height: 640px; right: -6%; top: -18%; background: radial-gradient(circle, #FF9A1F 0%, rgba(255, 154, 31, 0) 70%); animation: odm-blob-a 18s ease-in-out infinite; }
.odm-fx--b { width: 38vw; height: 38vw; max-width: 520px; max-height: 520px; left: 28%; bottom: -30%; background: radial-gradient(circle, #E2561B 0%, rgba(226, 86, 27, 0) 70%); opacity: 0.38; animation: odm-blob-b 22s ease-in-out infinite; }
.odm-fx--c { width: 26vw; height: 26vw; max-width: 360px; max-height: 360px; left: -8%; top: 8%; background: radial-gradient(circle, #FFC46B 0%, rgba(255, 196, 107, 0) 70%); opacity: 0.18; animation: odm-blob-a 26s ease-in-out -8s infinite reverse; }
.odm-fx-beacon { position: absolute; right: 18%; top: 45%; width: 160vmax; height: 160vmax; margin: -80vmax 0 0 -80vmax; background: conic-gradient(from 0deg, rgba(255, 154, 31, 0) 0deg, rgba(255, 154, 31, 0.10) 14deg, rgba(255, 154, 31, 0) 32deg, rgba(255, 154, 31, 0) 180deg, rgba(255, 154, 31, 0.07) 194deg, rgba(255, 154, 31, 0) 212deg); animation: odm-beacon 14s linear infinite; mix-blend-mode: screen; }
.odm-fx-grain { position: absolute; inset: 0; opacity: 0.35; background-image: radial-gradient(rgba(255, 255, 255, 0.05) 1px, transparent 1px); background-size: 4px 4px; }
.odm-hero__fx::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, var(--odm-bg) 0%, color-mix(in srgb, var(--odm-bg) 70%, transparent) 40%, transparent 75%); }
@keyframes odm-blob-a { 0%, 100% { transform: translate(0, 0) scale(1); } 33% { transform: translate(-60px, 40px) scale(1.15); } 66% { transform: translate(40px, -30px) scale(0.9); } }
@keyframes odm-blob-b { 0%, 100% { transform: translate(0, 0) scale(1); } 33% { transform: translate(50px, -40px) scale(0.9); } 66% { transform: translate(-40px, 30px) scale(1.18); } }
@keyframes odm-beacon { to { transform: rotate(360deg); } }
.odm-hero__claim { font-size: var(--odm-fs-claim); line-height: 0.92; font-weight: 900; font-stretch: var(--odm-h-stretch); text-transform: uppercase; color: var(--odm-text); margin: 0 0 24px; text-wrap: balance; }
.odm-hero--home .odm-hero__seo { margin-bottom: 18px; }
.odm-badge { display: inline-block; font-size: var(--odm-fs-xs); font-weight: 800; letter-spacing: 0.16em; text-transform: uppercase; color: var(--odm-on-accent); background: var(--odm-accent); padding: 8px 12px; margin: 0 0 22px; border-radius: var(--odm-r-sm); }
@media (max-width: 900px) {
	.odm-hero--split .odm-hero__inner, .odm-hero--home .odm-hero__inner { grid-template-columns: minmax(0, 1fr); }
	.odm-hero__photo { justify-self: stretch; max-width: none; }
	.odm-hero__photo img { aspect-ratio: 16 / 10; }
	.odm-fx { filter: blur(50px); }
	.odm-hero__fx::after { background: linear-gradient(180deg, transparent 0%, color-mix(in srgb, var(--odm-bg) 50%, transparent) 100%); }
	.odm-hero--split .odm-hero__media { justify-self: stretch; max-width: none; }
	.odm-hero__media img { aspect-ratio: 4 / 3.4; }
}
@media (max-width: 560px) {
	.odm-hero__actions .odm-btn { flex: 1 1 100%; }
}

/* Trust strip under the home hero: part of the hero zone (same dark tone, no lines), big numbers only. */
.odm-trust { margin: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 24px clamp(24px, 3vw, 48px); background: var(--odm-bg); padding: clamp(40px, 5vw, 72px) max(var(--odm-gutter), calc((100% - var(--odm-wrap)) / 2)) clamp(28px, 3vw, 40px); }
.odm-trust__item { display: flex; flex-direction: column; gap: 4px; }
.odm-trust dt { font-weight: 900; font-stretch: var(--odm-h-stretch); text-transform: uppercase; font-size: 1.875rem; line-height: 1.05; color: var(--odm-text); }
.odm-trust dd { margin: 0; color: var(--odm-muted); font-size: var(--odm-fs-sm); }

/* Breadcrumbs */
.odm-crumbs ol { list-style: none; margin: 0 0 18px; padding: 0; display: flex; flex-wrap: wrap; gap: 4px; font-size: var(--odm-fs-xs); color: var(--odm-muted); }
.odm-crumbs li + li::before { content: "/"; margin: 0 6px 0 2px; color: var(--odm-accent); }
.odm-crumbs a { color: var(--odm-muted); text-decoration: none; }
.odm-crumbs a:hover { color: var(--odm-accent); text-decoration: underline; }

/* Facts under the subpage title (flat tiles). */
.odm-facts { display: flex; flex-wrap: wrap; gap: 10px; margin: 24px 0 0; padding: 0; }
.odm-facts__item { background: var(--odm-card); border-radius: var(--odm-r-md); padding: 10px 16px; min-width: 130px; }
.odm-facts dt { font-size: var(--odm-fs-xs); color: var(--odm-muted); font-weight: 600; }
.odm-facts dd { margin: 0; font-weight: 800; color: var(--odm-text); font-size: var(--odm-fs-lg); line-height: 1.3; }
.odm-facts__item:first-child { background: var(--odm-accent); }
.odm-facts__item:first-child dt,
.odm-facts__item:first-child dd { color: var(--odm-on-accent); }

/* ---------- Columns: cards, situations, steps, split, people, stats ---------- */
.wp-block-columns { gap: clamp(14px, 2vw, 24px); margin: 2em 0 0; }
.wp-block-columns.is-style-odm-cards,
.wp-block-columns.is-style-odm-situations,
.wp-block-columns.is-style-odm-people,
.wp-block-columns.is-style-odm-steps { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); }
/* Steps: 3 to 5 in one row on desktop (5 used to break into 4 + 1 orphan). */
.wp-block-columns.is-style-odm-steps { grid-template-columns: repeat(auto-fit, minmax(min(100%, 210px), 1fr)); }
.wp-block-columns.is-style-odm-people { grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 340px)); }
.wp-block-columns.is-style-odm-cards > .wp-block-column,
.wp-block-columns.is-style-odm-situations > .wp-block-column,
.wp-block-columns.is-style-odm-people > .wp-block-column,
.wp-block-columns.is-style-odm-steps > .wp-block-column { margin: 0 !important; flex-basis: auto !important; }
.is-style-odm-cards > .wp-block-column,
.is-style-odm-situations > .wp-block-column {
	position: relative; background: var(--odm-card); border-radius: var(--odm-r-md);
	padding: 28px; display: flex; flex-direction: column;
	transition: background-color 0.2s, transform 0.2s var(--odm-ease);
}
.is-style-odm-cards > .wp-block-column > :last-child,
.is-style-odm-situations > .wp-block-column > :last-child { margin-bottom: 0; }
.is-style-odm-cards > .wp-block-column:has(> .is-style-odm-review) { padding: 0; background: none; }
.is-style-odm-cards h3,
.is-style-odm-situations h3 { font-size: clamp(1.25rem, 1.15rem + 0.5vw, 1.5rem); margin-bottom: 0.4em; }
.is-style-odm-cards h3 a,
.is-style-odm-situations h3 a { color: inherit; text-decoration: none; }
.is-style-odm-cards p,
.is-style-odm-situations p { color: var(--odm-muted); font-size: var(--odm-fs-sm); }
.odm-link-card:hover { background: var(--odm-card2) !important; transform: translateY(-2px); }
.odm-stretch::after { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: inherit; }
.odm-card-icon { display: block; color: var(--odm-accent); margin-bottom: 14px; }
.is-style-odm-situations > .wp-block-column { min-height: 190px; }
.is-style-odm-cards .wp-block-image { margin: -28px -28px 20px; }
.is-style-odm-cards .wp-block-image img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--odm-r-md) var(--odm-r-md) 0 0; }
/* Team cards (tym_karty): portrait 4:5 on top of the card. */
.is-style-odm-cards .wp-block-image.size-odm-portrait img { aspect-ratio: 4 / 5; }
.is-style-odm-cards .is-style-odm-price,
.is-style-odm-situations .is-style-odm-price { margin-top: auto !important; padding-top: 10px; }

/* Steps: flat tiles with 01, 02, 03 */
.wp-block-columns.is-style-odm-steps { counter-reset: odm-step; }
.is-style-odm-steps > .wp-block-column { counter-increment: odm-step; position: relative; padding: 28px 26px; background: var(--odm-card); border-radius: var(--odm-r-md); }
.is-style-odm-steps > .wp-block-column::before { content: "0" counter(odm-step); display: block; font-weight: 800; font-size: var(--odm-fs-sm); color: var(--odm-accent); letter-spacing: 0.16em; margin-bottom: 12px; }
.is-style-odm-steps h3 { font-size: clamp(1.25rem, 1.15rem + 0.5vw, 1.5rem); }
.is-style-odm-steps p { color: var(--odm-soft); font-size: var(--odm-fs-sm); }
.is-style-odm-steps .wp-block-image img { border-radius: var(--odm-r-md); aspect-ratio: 4 / 3; object-fit: cover; width: 100%; }

/* Split: service row, photo + text (add class odm-split--rev to swap). */
.wp-block-columns.is-style-odm-split { display: grid !important; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 0; border-radius: var(--odm-r-md); overflow: hidden; background: var(--odm-card); margin-bottom: 18px; }
.is-style-odm-split > .wp-block-column { margin: 0 !important; flex-basis: auto !important; }
.is-style-odm-split > .wp-block-column:first-child { position: relative; min-height: 340px; }
.is-style-odm-split > .wp-block-column:first-child .wp-block-image { position: absolute; inset: 0; margin: 0; }
.is-style-odm-split > .wp-block-column:first-child .wp-block-image img { width: 100%; height: 100%; object-fit: cover; }
.is-style-odm-split > .wp-block-column:last-child { padding: clamp(26px, 4vw, 48px); display: flex; flex-direction: column; justify-content: center; }
.is-style-odm-split > .wp-block-column:last-child > :last-child { margin-bottom: 0; }
.is-style-odm-split.odm-split--rev > .wp-block-column:first-child { order: 2; }
.is-style-odm-split .wp-block-buttons { margin-top: 0.5em; }
@media (max-width: 820px) {
	.wp-block-columns.is-style-odm-split { grid-template-columns: 1fr; }
	.is-style-odm-split.odm-split--rev > .wp-block-column:first-child { order: 0; }
	.is-style-odm-split > .wp-block-column:first-child { min-height: 240px; }
}

/* People (team): portrait 4:5, name, role */
.is-style-odm-people .wp-block-image { margin: 0; }
.is-style-odm-people .wp-block-image img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--odm-r-md); filter: grayscale(0.15); }
.is-style-odm-people h3 { margin: 16px 0 2px; font-size: var(--odm-fs-h3); }
.is-style-odm-people h3 + p { font-size: var(--odm-fs-xs); font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; color: var(--odm-accent); margin-bottom: 8px; }
.is-style-odm-people p { font-size: var(--odm-fs-sm); color: var(--odm-soft); }
/* Phones: portraits two in a row instead of three full-width 450px photos. */
@media (max-width: 720px) {
	.wp-block-columns.is-style-odm-people,
	.wp-block-columns.is-style-odm-cards:has(.size-odm-portrait) { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
	.is-style-odm-cards:has(.size-odm-portrait) > .wp-block-column { padding: 18px; }
	.is-style-odm-cards:has(.size-odm-portrait) .wp-block-image { margin: -18px -18px 14px; }
	.is-style-odm-cards:has(.size-odm-portrait) h3 { font-size: 1.125rem; }
}

/* Stats */
.wp-block-columns.is-style-odm-stats { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); }
.is-style-odm-stats > .wp-block-column { margin: 0 !important; }
.is-style-odm-stats p:first-child { font-size: clamp(2.25rem, 1.8rem + 2vw, 3.25rem); font-weight: 900; font-stretch: var(--odm-h-stretch); color: var(--odm-accent); line-height: 1; margin-bottom: 8px; }
.is-style-odm-stats p { color: var(--odm-muted); }

/* Lists */
.wp-block-list.is-style-odm-checks { list-style: none; padding: 0; }
.is-style-odm-checks li { position: relative; padding-left: 30px; margin: 0 0 10px; color: var(--odm-soft); }
.is-style-odm-checks li::before {
	content: ""; position: absolute; left: 0; top: 0.3em; width: 18px; height: 18px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FF9A1F' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / 18px no-repeat;
}
/* Chips and towns: flat tiles, towns with their own page lifted a step and with an arrow. */
.wp-block-list.is-style-odm-chips,
.odm-towns { list-style: none; padding: 0; margin: 1.5em 0 0; display: flex; flex-wrap: wrap; gap: 10px; max-width: none !important; }
.is-style-odm-chips li,
.odm-towns li { margin: 0; }
.is-style-odm-chips li,
.odm-towns li > span,
.odm-towns a { display: inline-flex; align-items: center; min-height: 44px; padding: 10px 18px; background: var(--odm-card); border-radius: var(--odm-r-btn); font-weight: 600; font-size: var(--odm-fs-sm); color: var(--odm-soft); text-decoration: none; transition: background-color 0.15s, color 0.15s; }
.is-style-odm-chips a { color: inherit; text-decoration: none; }
.odm-towns a:hover,
.is-style-odm-chips li:hover { background: var(--odm-card2); color: var(--odm-accent); }
.odm-map { margin: 24px 0 0; border-radius: var(--odm-r-md); overflow: hidden; background: var(--odm-card); }
.odm-map__canvas { height: clamp(360px, 48vw, 520px); background: var(--odm-card); z-index: 0; }
.odm-map__legend { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; padding: 14px 18px; font-size: var(--odm-fs-sm); color: var(--odm-soft); background: var(--odm-card); }
.odm-map__item { display: inline-flex; align-items: baseline; gap: 8px; }
.odm-map__key { display: inline-block; width: 14px; height: 14px; flex: 0 0 auto; transform: translateY(2px); }
.odm-map__key--area { background: color-mix(in srgb, var(--odm-accent) 30%, transparent); border: 2px solid var(--odm-accent); }
.odm-map__key--town { width: 11px; height: 11px; border-radius: 50%; background: #fff; border: 2px solid #0B0B0C; box-shadow: 0 0 0 1px var(--odm-line2); }
.odm-map .leaflet-tooltip.odm-map__label { background: none; border: 0; box-shadow: none; padding: 0; font-family: var(--odm-font); font-weight: 900; font-stretch: var(--odm-h-stretch); font-size: 15px; letter-spacing: 0.04em; text-transform: uppercase; color: #0B0B0C; text-shadow: 0 0 3px #fff, 0 0 6px #fff, 0 0 10px #fff; }
.odm-map .leaflet-tooltip.odm-map__town { font-family: var(--odm-font); font-weight: 700; font-size: 13px; color: #0B0B0C; border-radius: 3px; }
.odm-map .is-link { cursor: pointer; }
.odm-map__mapy { display: block; line-height: 0; }
.odm-map__mapy img { width: 90px; height: auto; }
.odm-map .leaflet-control-attribution { font-size: 11px; }

/* ---------- Review slider + profile badges ---------- */
.odm-reviews { margin-top: 8px; }
.odm-reviews__track { display: flex; gap: 20px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding: 2px 0 4px; }
.odm-reviews__track::-webkit-scrollbar { display: none; }
.odm-reviews__track > .wp-block-quote.is-style-odm-review { flex: 0 0 calc((100% - 40px) / 3); scroll-snap-align: start; height: auto; margin: 0; }
@media (max-width: 960px) { .odm-reviews__track > .wp-block-quote.is-style-odm-review { flex-basis: calc((100% - 20px) / 2); } }
@media (max-width: 640px) {
	.odm-reviews__track > .wp-block-quote.is-style-odm-review { flex-basis: 86%; }
}
.odm-reviews:not(.is-slider) { display: flex; gap: 20px; overflow-x: auto; }
.odm-reviews:not(.is-slider) > .wp-block-quote { flex: 0 0 min(86%, 380px); }
.odm-reviews__nav { display: flex; align-items: center; justify-content: center; gap: 16px; margin-top: 22px; }
.odm-reviews__btn { width: 46px; height: 46px; border-radius: 50%; border: 0; background: var(--odm-card); color: var(--odm-text); font-size: 20px; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; transition: background-color 0.15s, color 0.15s; }
.odm-reviews__btn:hover { background: var(--odm-card2); color: var(--odm-accent); }
.odm-reviews__dots { display: flex; gap: 2px; flex-wrap: wrap; justify-content: center; }
.odm-reviews__dot { width: 24px; height: 24px; padding: 0; border: 0; background: none; cursor: pointer; position: relative; }
.odm-reviews__dot::after { content: ""; position: absolute; inset: 8px; border-radius: 50%; background: var(--odm-line2); transition: background 0.2s, transform 0.2s; }
.odm-reviews__dot.is-on::after { background: var(--odm-accent); transform: scale(1.3); }
.odm-profiles { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; margin-top: 28px; }
.odm-profile { display: inline-flex; align-items: center; gap: 14px; min-width: 260px; padding: 14px 18px; background: var(--odm-card); border-radius: var(--odm-r-md); color: var(--odm-text); text-decoration: none; transition: background-color 0.15s; }
a.odm-profile:hover { background: var(--odm-card2); color: var(--odm-text); }
.odm-profile > svg:last-child { margin-left: auto; color: var(--odm-accent); }
.odm-profile__text { display: flex; flex-direction: column; line-height: 1.25; }
.odm-profile__text strong { font-size: var(--odm-fs-md); }
.odm-profile__stars { color: #FBBC04; letter-spacing: 2px; font-size: 14px; }
.odm-profile__meta { font-size: var(--odm-fs-xs); color: var(--odm-muted); }
.odm-profile__logo { width: 32px; height: auto; flex: 0 0 auto; }
@media (max-width: 640px) {
	.odm-reviews__nav { gap: 8px; }
	.odm-reviews__dots { flex-wrap: nowrap; gap: 0; }
	.odm-reviews__dot { width: 18px; }
	.odm-reviews__dot::after { inset: 6px; }
	.odm-profile { min-width: 0; width: 100%; }
}

/* ---------- Tables (price list): flat zebra rows, no rules ---------- */
.wp-block-table { margin: 1.5em 0 0; overflow-x: auto; }
.wp-block-table table { width: 100%; border-collapse: separate; border-spacing: 0 6px; font-size: var(--odm-fs-md); margin-top: -6px; }
.wp-block-table th, .wp-block-table td { border: 0; padding: 16px 20px; text-align: left; vertical-align: top; color: var(--odm-soft); }
.wp-block-table tbody td { background: var(--odm-card); }
.wp-block-table tbody td:first-child { border-radius: var(--odm-r-md) 0 0 var(--odm-r-md); }
.wp-block-table tbody td:last-child { border-radius: 0 var(--odm-r-md) var(--odm-r-md) 0; }
.wp-block-table thead th { padding-top: 0; padding-bottom: 6px; font-size: var(--odm-fs-xs); text-transform: uppercase; letter-spacing: 0.14em; color: var(--odm-accent); font-weight: 800; }
/* Price column hugs its content (table-layout auto beats core's fixed 50/50), the service column takes the rest. */
.wp-block-table.is-style-odm-pricelist table.has-fixed-layout { table-layout: auto; }
.wp-block-table.is-style-odm-pricelist td:last-child,
.wp-block-table.is-style-odm-pricelist th:last-child { text-align: right; white-space: nowrap; width: 1%; font-weight: 800; color: var(--odm-text); }
.wp-block-table.is-style-odm-pricelist th:last-child { color: var(--odm-accent); }
.wp-block-table.is-style-odm-pricelist td:first-child strong { display: block; color: var(--odm-text); }
.wp-block-table figcaption { font-size: var(--odm-fs-sm); color: var(--odm-muted); margin-top: 14px; max-width: var(--odm-text-w); }
@media (max-width: 560px) {
	.wp-block-table th, .wp-block-table td { padding: 12px 14px; }
}

/* ---------- FAQ (core/details → FAQPage): flat tiles ---------- */
.wp-block-details { background: var(--odm-card); border-radius: var(--odm-r-md); padding: 0 22px; margin: 0 0 8px; max-width: var(--odm-faq-w); }
.wp-block-details summary { list-style: none; cursor: pointer; padding: 20px 48px 20px 0; position: relative; font-weight: 700; color: var(--odm-text); font-size: var(--odm-fs-lg); }
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after { content: "+"; position: absolute; right: 2px; top: 50%; transform: translateY(-52%); font-size: 30px; font-weight: 400; line-height: 1; color: var(--odm-accent); }
.wp-block-details[open] summary::after { content: "\2212"; }
.wp-block-details summary:hover { color: var(--odm-accent); }
.wp-block-details > :not(summary) { padding-right: 48px; color: var(--odm-soft); }
.wp-block-details > summary + * { margin-top: 0 !important; }  /* anotace 57: menší odsazení odpovědi pod otázkou */
.wp-block-details[open] > :last-child { padding-bottom: 18px; }
.odm-content .wp-block-details + .wp-block-details { margin-top: 0 !important; }

/* ---------- Reviews (visual only, never in JSON-LD) ---------- */
.wp-block-quote.is-style-odm-review { margin: 0; background: var(--odm-card); border: 0; border-radius: var(--odm-r-md); padding: 28px; position: relative; height: 100%; display: flex; flex-direction: column; }
.wp-block-quote.is-style-odm-review::before { content: "★★★★★"; display: block; color: var(--odm-accent); letter-spacing: 3px; margin-bottom: 14px; font-size: 18px; }
.wp-block-quote.is-style-odm-review p { font-size: var(--odm-fs-md); color: var(--odm-soft); }
.wp-block-quote.is-style-odm-review cite { font-style: normal; font-weight: 700; color: var(--odm-text); font-size: var(--odm-fs-sm); margin-top: auto; }
.wp-block-quote.is-style-odm-review .odm-review-source { font-size: var(--odm-fs-xs); color: var(--odm-muted); text-transform: uppercase; letter-spacing: 0.12em; margin: 0 0 6px; order: 9; }
.wp-block-quote.is-style-odm-review cite { order: 8; }

/* ---------- Insurance assistance strip ---------- */
.odm-insurers { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 28px; }
.odm-insurers__title { display: flex; align-items: center; gap: 10px; margin: 0 !important; font-weight: 700; color: var(--odm-text); max-width: none !important; }
.odm-insurers__title .odm-icon { color: var(--odm-accent); }
.odm-insurers__list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.odm-insurers__item img { height: 40px; width: auto; filter: grayscale(1) brightness(1.6); opacity: 0.9; }
.odm-insurers__ph,
.odm-insurers__name { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 16px; background: var(--odm-card2); border-radius: var(--odm-r-sm); color: var(--odm-soft); font-weight: 800; font-stretch: 85%; text-transform: uppercase; letter-spacing: 0.04em; font-size: var(--odm-fs-sm); }
.odm-insurers--names .odm-insurers__name { font-stretch: 100%; text-transform: none; letter-spacing: 0; font-weight: 600; }
/* Thin strip right under the hero (service pages): reads as the tail of the hero, same dark tone, no lines. */
.odm-content > .odm-insurers--strip,
.odm-insurers--strip { max-width: none; background: var(--odm-bg); padding: 0 max(var(--odm-gutter), calc((100% - var(--odm-wrap)) / 2)) clamp(40px, 5vw, 64px); }
.odm-insurers--full { flex-direction: column; align-items: flex-start; padding: clamp(24px, 3vw, 36px); background: var(--odm-card); border-radius: var(--odm-r-md); margin-top: 2em; }
.odm-insurers--full .odm-insurers__title { font-size: var(--odm-fs-lg); }
/* Mode "bez jmen": the card holds a single sentence, so it hugs its content instead of an empty 1200px box. */
.odm-insurers--full.odm-insurers--text { width: fit-content; max-width: 100%; }

/* ---------- Big phone + contact card ---------- */
.odm-bigphone { text-align: center; margin: 24px auto 0; }
.odm-bigphone__num { display: inline-block; font-weight: 900; font-stretch: var(--odm-h-stretch); font-size: clamp(2.75rem, 1.6rem + 6vw, 5.5rem); line-height: 1; text-decoration: none; color: inherit; letter-spacing: 0.01em; }
.is-style-odm-accent .odm-bigphone__num { color: var(--odm-on-accent); }
.odm-bigphone__num:hover { text-decoration: underline; text-decoration-thickness: 3px; }
.odm-bigphone__note { margin: 14px auto 0 !important; font-weight: 600; }
.odm-contact-card { background: var(--odm-card); border-radius: var(--odm-r-md); padding: clamp(24px, 3vw, 36px); max-width: 720px; margin-top: 1.5em; }
.odm-contact-card__phone { display: inline-flex; align-items: center; gap: 12px; font-weight: 900; font-stretch: var(--odm-h-stretch); font-size: clamp(2rem, 1.5rem + 2.4vw, 3rem); color: var(--odm-text); text-decoration: none; line-height: 1.05; }
.odm-contact-card__phone .odm-icon { color: var(--odm-accent); }
.odm-contact-card__list { list-style: none; margin: 18px 0 0; padding: 0; display: grid; gap: 8px; color: var(--odm-soft); }
.odm-contact-card__list li { display: flex; gap: 10px; align-items: flex-start; }
.odm-contact-card__list .odm-icon { color: var(--odm-accent); margin-top: 3px; }
.odm-contact-card__small { margin: 16px 0 0; font-size: var(--odm-fs-xs); color: var(--odm-muted); }

/* ---------- Images ---------- */
.wp-block-image { margin: 0 0 1em; position: relative; }
.wp-block-image.is-style-odm-photo img { border-radius: var(--odm-r-md); }
.wp-block-image figcaption { font-size: var(--odm-fs-xs); color: var(--odm-muted); text-align: left; margin-top: 8px; }
.wp-block-columns:not([class*="is-style-odm-"]) { align-items: center; }
.wp-block-columns:not([class*="is-style-odm-"]) .wp-block-image.is-style-odm-photo img { width: 100%; aspect-ratio: 4 / 3.4; object-fit: cover; }
.odm-sketch { position: absolute; right: 12px; bottom: 12px; z-index: 2; font-size: 11px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--odm-muted); background: color-mix(in srgb, var(--odm-bg) 82%, transparent); padding: 4px 8px; border-radius: 2px; pointer-events: none; }

/* ---------- Blog (Poradna) ---------- */
.odm-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 28px; }
.odm-chips a { padding: 10px 16px; min-height: 44px; display: inline-flex; align-items: center; background: var(--odm-card); border-radius: var(--odm-r-sm); text-decoration: none; font-weight: 600; font-size: var(--odm-fs-sm); color: var(--odm-soft); }
.odm-chips a:hover, .odm-chips a[aria-current] { background: var(--odm-accent); color: var(--odm-on-accent); }
.odm-posts { display: grid; gap: 20px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); margin-top: 2em; }
.odm-post-card { position: relative; border-radius: var(--odm-r-md); overflow: hidden; background: var(--odm-card); transition: transform 0.18s var(--odm-ease), background-color 0.18s; }
.odm-post-card:hover { transform: translateY(-2px); background: var(--odm-card2); }
.odm-post-card__img img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.odm-post-card__body { padding: 20px 22px 24px; }
.odm-post-card__body p { color: var(--odm-muted); font-size: var(--odm-fs-sm); margin: 0; }
.odm-post-card__meta { font-size: var(--odm-fs-xs); color: var(--odm-muted); margin: 0 0 6px; }
.odm-post-card__title { font-size: clamp(1.25rem, 1.15rem + 0.5vw, 1.5rem); margin-bottom: 8px; }
.odm-post-card__title a { color: var(--odm-text); text-decoration: none; }
.odm-post-card:hover .odm-post-card__title a { color: var(--odm-accent); }
.odm-article__img img { border-radius: var(--odm-r-md); margin: 32px 0 28px; width: 100%; }
.odm-article__cta { margin-top: 48px; padding: 28px; background: var(--odm-card); border-radius: var(--odm-r-md); }
.odm-article__cta-title { font-size: var(--odm-fs-h3); font-weight: 900; font-stretch: var(--odm-h-stretch); text-transform: uppercase; color: var(--odm-text); margin-bottom: 6px; }
.odm-article__cta .odm-btn { margin: 8px 10px 0 0; }
.odm-empty { color: var(--odm-muted); }
.nav-links { display: flex; gap: 8px; margin-top: 32px; }
.nav-links .page-numbers { padding: 8px 14px; background: var(--odm-card); border-radius: var(--odm-r-sm); text-decoration: none; color: var(--odm-soft); }
.nav-links .current { background: var(--odm-accent); color: var(--odm-on-accent); }

/* ---------- Forms (Odemykáme Správa renders the markup): flat card, fields differ by background ---------- */
.odm-form { display: grid; gap: 16px; max-width: 760px; background: var(--odm-card); border-radius: var(--odm-r-md); padding: clamp(22px, 3vw, 40px); }
.odm-form__row { display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); }
.odm-form label { display: block; font-weight: 700; font-size: var(--odm-fs-sm); color: var(--odm-text); margin-bottom: 6px; }
.odm-form .odm-form__opt { font-weight: 500; color: var(--odm-muted); }
.odm-form input[type="text"], .odm-form input[type="email"], .odm-form input[type="tel"], .odm-form input[type="number"], .odm-form select, .odm-form textarea {
	width: 100%; font: inherit; font-size: 16px; color: var(--odm-text); background: var(--odm-bg);
	border: 0; border-radius: var(--odm-r-sm); padding: 13px 15px; min-height: 50px;
	transition: box-shadow 0.15s;
}
.odm-form select { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FF9A1F' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 14px center; background-size: 16px; padding-right: 40px; }
.odm-form textarea { min-height: 120px; resize: vertical; }
.odm-form input::placeholder, .odm-form textarea::placeholder { color: #7D7D79; }
.odm-form input:focus, .odm-form select:focus, .odm-form textarea:focus { outline: none; box-shadow: 0 0 0 3px color-mix(in srgb, var(--odm-accent) 45%, transparent); }
.odm-form__check { display: flex !important; gap: 10px; align-items: flex-start; font-weight: 500 !important; color: var(--odm-soft) !important; }
.odm-form__check input { width: 20px; height: 20px; margin-top: 2px; accent-color: var(--odm-accent); flex: 0 0 auto; }
.odm-form__hint { font-size: var(--odm-fs-xs); color: var(--odm-muted); margin: 0; }
.odm-form__hp { position: absolute !important; left: -9999px !important; }
.odm-form .odm-btn { justify-self: start; }
.odm-form__msg { padding: 14px 18px; border-radius: var(--odm-r-sm); font-weight: 600; }
.odm-form__msg--ok { background: color-mix(in srgb, var(--odm-success) 16%, var(--odm-card)); color: var(--odm-success); }
.odm-form__msg--err { background: color-mix(in srgb, var(--odm-error) 16%, var(--odm-card)); color: var(--odm-error); }
.odm-form fieldset { border: 0; padding: 0; margin: 0; }
.odm-form legend { font-weight: 800; color: var(--odm-text); margin-bottom: 8px; }
.odm-choice { display: grid; gap: 10px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); }
.odm-choice label { display: flex; gap: 10px; align-items: center; background: var(--odm-bg); border-radius: var(--odm-r-sm); padding: 12px 14px; font-weight: 600; margin: 0; cursor: pointer; min-height: 48px; }
.odm-choice input { accent-color: var(--odm-accent); width: 18px; height: 18px; }
.odm-choice label:has(input:checked) { background: color-mix(in srgb, var(--odm-accent) 16%, var(--odm-bg)); color: var(--odm-text); }

/* ---------- Footer (darkest tone, no rules; logo with the claim) ---------- */
.odm-footer { background: #070708; color: var(--odm-muted); font-size: var(--odm-fs-sm); }
.odm-footer a { color: var(--odm-soft); text-decoration: none; }
.odm-footer a:hover { color: var(--odm-accent); text-decoration: underline; }
.odm-footer__inner { max-width: calc(var(--odm-wrap) + 2 * var(--odm-gutter)); margin: 0 auto; padding: clamp(56px, 7vw, 88px) var(--odm-gutter) 40px; display: grid; gap: 40px 36px; grid-template-columns: 1.4fr 1fr 1.2fr 1.1fr; }
.odm-footer__brand img { width: 280px; height: auto; margin-bottom: 24px; }
.odm-footer__title { color: var(--odm-text); font-weight: 800; font-size: var(--odm-fs-sm); letter-spacing: 0.14em; text-transform: uppercase; margin-bottom: 14px; }
.odm-footer__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.odm-footer__list--towns { grid-template-columns: 1fr 1fr; gap: 6px 14px; }
.odm-footer__col p { display: flex; gap: 8px; align-items: flex-start; margin-bottom: 10px; }
.odm-footer__col p a { display: inline-flex; gap: 8px; align-items: flex-start; }
.odm-footer__col .odm-icon { flex: 0 0 auto; margin-top: 3px; color: var(--odm-accent); }
.odm-footer__small { color: var(--odm-muted); }
.odm-footer__bottom { margin: 0 max(var(--odm-gutter), calc((100% - var(--odm-wrap)) / 2)); padding: 24px 0; border-top: 1px solid rgba(255, 255, 255, 0.1); border-bottom: 1px solid rgba(255, 255, 255, 0.1); display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; font-size: var(--odm-fs-xs); }
.odm-footer__bottom p { margin: 0; }
.odm-footer__credit { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.odm-footer__credit:hover { color: var(--odm-accent); }
.odm-footer__bottom { align-items: center; }
/* Footer lines are an explicit request (Marek 30. 10., like maklerzhor.cz), the only lines on the site. */
.odm-footer__badge { display: flex; justify-content: center; padding: 28px var(--odm-gutter) 0; }
.odm-footer__lokafi { display: inline-flex; opacity: 0.7; transition: opacity 0.2s; }
.odm-footer__lokafi:hover { opacity: 1; }
.odm-footer__lokafi img { height: 31px; width: auto; display: block; }  /* anotace 60: o 15 % menší */
.odm-footer__legal { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 18px; }
@media (max-width: 960px) { .odm-footer__inner { grid-template-columns: 1fr 1fr; } }
@media (max-width: 420px) {
	.odm-header__inner { gap: 12px; }
	.odm-header__logo img { width: 150px; }
	.odm-live { padding: 5px 9px 5px 8px; letter-spacing: 0.1em; }
}
@media (max-width: 560px) { .odm-footer__inner { grid-template-columns: 1fr; gap: 32px; } .odm-footer__brand img { width: 220px; } }

/* ---------- Sticky insurance badge + popup ---------- */
.odm-ins-float { position: fixed; right: 20px; bottom: 20px; z-index: 70; display: inline-flex; align-items: center; gap: 10px; padding: 12px 20px 12px 12px; border: 0; border-radius: 999px; background: var(--odm-accent); color: var(--odm-on-accent); font: 800 var(--odm-fs-sm)/1 var(--odm-font); box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5), 0 0 0 0 rgba(255, 154, 31, 0.6); cursor: pointer; transition: background 0.2s, transform 0.15s; animation: odm-ins-pulse 3s ease-out infinite; }
.odm-ins-float__icon { display: inline-flex; width: 30px; height: 30px; align-items: center; justify-content: center; border-radius: 50%; background: var(--odm-on-accent); color: var(--odm-accent); }
.odm-ins-float:hover { background: var(--odm-accent-hover); transform: translateY(-2px); }
.odm-ins-float:focus-visible { outline: 3px solid var(--odm-text); outline-offset: 3px; }
@keyframes odm-ins-pulse { 0%, 60% { box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5), 0 0 0 0 rgba(255, 154, 31, 0.55); } 100% { box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5), 0 0 0 14px rgba(255, 154, 31, 0); } }
/* Room under the footer so the badge never covers the legal links. */
@media (min-width: 721px) { .odm-footer { padding-bottom: 28px; } }
.odm-ins-pop { width: min(560px, calc(100vw - 32px)); max-height: 90dvh; padding: 40px 32px 32px; border: 0; border-radius: var(--odm-r-md); background: var(--odm-card2); color: var(--odm-text); box-shadow: 0 30px 90px rgba(0, 0, 0, 0.7); }
.odm-ins-pop::backdrop { background: rgba(0, 0, 0, 0.7); backdrop-filter: blur(3px); }
.odm-ins-pop__close { position: absolute; top: 10px; right: 10px; width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; background: none; border: 0; color: var(--odm-muted); cursor: pointer; }
.odm-ins-pop__close:hover { color: var(--odm-text); }
.odm-ins-pop__head { display: flex; flex-direction: row-reverse; justify-content: space-between; align-items: center; gap: 18px; margin: 0 0 14px; padding-right: 28px; }  /* kolečko vpravo (Marek 5. 11.), odsazení kvůli křížku */
.odm-ins-pop__head .odm-eyebrow { margin-bottom: 6px; }
.odm-ins-pop__stat { flex: none; width: 104px; height: 104px; display: flex; flex-direction: column; align-items: center; justify-content: center; background: var(--odm-accent); color: var(--odm-on-accent); border-radius: 50%; text-align: center; line-height: 1.05; }
.odm-ins-pop__stat b { font-size: 2rem; font-weight: 900; font-stretch: var(--odm-h-stretch); }
.odm-ins-pop__stat span { font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; }
.odm-ins-pop__title { font-size: clamp(1.5rem, 1.25rem + 1vw, 1.9rem); line-height: 1.02; margin: 0; }
.odm-ins-pop__lead { color: var(--odm-soft); font-size: var(--odm-fs-md); margin: 0 0 18px; }
.odm-ins-pop__steps { list-style: none; counter-reset: odmstep; display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 0 0 14px; padding: 0; }
.odm-ins-pop__steps li { counter-increment: odmstep; position: relative; display: flex; flex-direction: column; gap: 4px; background: var(--odm-card3); border-radius: var(--odm-r-sm); padding: 16px 14px 14px; font-size: var(--odm-fs-xs); color: var(--odm-muted); line-height: 1.35; }
.odm-ins-pop__steps li::before { content: counter(odmstep); position: absolute; top: 10px; right: 12px; font-weight: 900; font-size: 1.4rem; color: var(--odm-line2); line-height: 1; }
.odm-ins-pop__steps strong { color: var(--odm-text); font-size: var(--odm-fs-sm); }
.odm-ins-pop__ico { color: var(--odm-accent); margin-bottom: 4px; display: inline-flex; }
.odm-ins-pop__chips { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 14px; padding: 0; }
.odm-ins-pop__chips li { display: inline-flex; align-items: center; gap: 6px; background: var(--odm-bg); border-radius: var(--odm-r-btn); padding: 6px 12px; font-size: var(--odm-fs-xs); font-weight: 700; color: var(--odm-text); }
.odm-ins-pop__chips svg { color: var(--odm-success); }
.odm-ins-pop__note { font-size: var(--odm-fs-xs); color: var(--odm-muted); margin: 0; }
.odm-ins-pop__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.odm-ins-pop__actions .odm-btn { flex: 1 1 200px; justify-content: center; }
@media (max-width: 720px) { .odm-ins-pop { padding: 36px 20px 22px; } .odm-ins-pop__steps { grid-template-columns: 1fr; } .odm-ins-pop__steps li { flex-direction: row; flex-wrap: wrap; align-items: center; column-gap: 10px; padding: 12px 40px 12px 14px; } .odm-ins-pop__steps li > span:last-child { flex-basis: 100%; padding-left: 32px; } .odm-ins-pop__ico { margin: 0; } .odm-ins-pop__head { padding-right: 46px; gap: 12px; } .odm-ins-pop__stat { width: 86px; height: 86px; } .odm-ins-pop__stat b { font-size: 1.6rem; } .odm-ins-pop__stat span { font-size: 0.6rem; letter-spacing: .01em; } }

/* ---------- Sticky call bar on phones ---------- */
.odm-callbar { display: none; }
@media (max-width: 720px) {
	.odm-callbar { display: block; position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); background: color-mix(in srgb, var(--odm-bg) 94%, transparent); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); box-shadow: 0 -8px 24px rgba(0, 0, 0, 0.35); }
	.odm-callbar .odm-btn { width: 100%; min-height: 54px; font-size: var(--odm-fs-lg); }
	.odm-callbar.has-ins { display: grid; grid-template-columns: auto 1fr; gap: 10px; }
	.odm-callbar__ins { display: inline-flex; align-items: center; gap: 8px; min-height: 54px; padding: 0 14px; border: 0; border-radius: var(--odm-r-btn); background: var(--odm-card2); color: var(--odm-text); font: 700 12px/1.15 var(--odm-font); text-align: left; cursor: pointer; }
	.odm-callbar__ins svg { color: var(--odm-accent); flex: 0 0 auto; }
	.odm-ins-float { display: none !important; }
	.odm-callbar.has-ins .odm-btn { font-size: var(--odm-fs-md); white-space: nowrap; padding-left: 12px; padding-right: 12px; }
	.odm-callbar__ins { padding: 0 12px; }
	body { padding-bottom: calc(76px + env(safe-area-inset-bottom)); }
}

/* ---------- Motion ---------- */
.odm-reveal { opacity: 0; transform: translateY(18px); transition: opacity 0.6s var(--odm-ease), transform 0.6s var(--odm-ease); }
.odm-reveal.is-in { opacity: 1; transform: none; }
/* ---------- Animated pictograms in the home claim ---------- */
.odm-claim-word { white-space: nowrap; }
.odm-anim { display: inline-block; height: 0.74em; width: auto; margin-left: 0.14em; vertical-align: -0.02em; color: var(--odm-accent); overflow: visible; }
.odm-anim--car { height: 0.70em; margin-left: 0.16em; }
.odm-anim__line { fill: none; stroke: currentColor; stroke-width: 4; stroke-linecap: square; }
.odm-anim__thin { fill: none; stroke: currentColor; stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }
.odm-anim__panel { fill: var(--odm-bg); stroke: currentColor; stroke-width: 3.2; stroke-linejoin: round; }
.odm-anim__panel--thin { stroke-width: 2.5; }
.odm-anim__fill { fill: currentColor; }
.odm-anim__glow { fill: currentColor; opacity: 0; }
.odm-anim__light { fill: currentColor; opacity: 0.35; }
.odm-anim__leaf { transform-box: view-box; transform-origin: 8px 24px; animation: odm-door 4.2s var(--odm-ease) infinite; }
.odm-anim--door .odm-anim__glow { animation: odm-glow 4.2s var(--odm-ease) infinite; }
.odm-anim__cardoor { transform-box: view-box; transform-origin: 37.5px 21px; animation: odm-cardoor 4.2s var(--odm-ease) 0.6s infinite; }
.odm-anim--car .odm-anim__glow { animation: odm-glow 4.2s var(--odm-ease) 0.6s infinite; }
.odm-anim__light { animation: odm-blink 4.2s linear 0.6s infinite; }
@keyframes odm-door { 0%, 22% { transform: none; } 42%, 72% { transform: scaleX(0.3) skewY(-12deg); } 92%, 100% { transform: none; } }
@keyframes odm-cardoor { 0%, 22% { transform: none; } 42%, 72% { transform: translateX(3px) scaleX(0.22) skewY(22deg); } 92%, 100% { transform: none; } }
@keyframes odm-glow { 0%, 24% { opacity: 0; } 42%, 70% { opacity: 0.9; } 90%, 100% { opacity: 0; } }
@keyframes odm-blink { 0%, 4% { opacity: 0.35; } 6%, 10% { opacity: 1; } 12%, 16% { opacity: 0.35; } 18%, 22% { opacity: 1; } 24%, 100% { opacity: 0.35; } }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
	.odm-reveal { opacity: 1; transform: none; }
}

.odm-card-more { margin-top: auto !important; padding-top: 10px; font-weight: 700; font-size: var(--odm-fs-sm); color: var(--odm-accent) !important; }
.is-style-odm-cards .wp-block-column[class*="odm-i-"] { padding-top: 28px; }

/* Core table styles draw a currentColor line under thead; we have none. */
.wp-block-table thead { border-bottom: 0; }
.wp-block-table tfoot { border-top: 0; }
/* Tighter rhythm inside cards (WP flow layout adds a 24px block gap). */
.is-style-odm-situations > .wp-block-column > * + *,
.is-style-odm-cards > .wp-block-column > * + * { margin-block-start: 8px; }
.is-style-odm-situations > .wp-block-column > .odm-card-icon + *,
.is-style-odm-cards > .wp-block-column > .odm-card-icon + * { margin-block-start: 0; }
@media (max-width: 720px) {
	.odm-trust { grid-template-columns: 1fr 1fr; gap: 20px 16px; }
	.odm-trust dt { font-size: 1.5rem; }
}

/* ---------- Insurance strip: heading/text column, hero variant (home, right under the hero) ---------- */
.odm-insurers__head { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.odm-insurers__text { margin: 0 !important; color: var(--odm-soft); max-width: 640px !important; }
.odm-insurers__more { margin: 0 !important; font-weight: 700; }
.odm-insurers__more a { display: inline-flex; align-items: center; gap: 6px; text-decoration: none; }
.odm-insurers__note { flex-basis: 100%; font-size: var(--odm-fs-xs); color: var(--odm-muted); }
.odm-insurers--hero { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 20px 48px; align-items: center; max-width: none; background: var(--odm-bg); padding: clamp(40px, 5vw, 72px) max(var(--odm-gutter), calc((100% - var(--odm-wrap)) / 2)) clamp(28px, 3vw, 40px); }
.odm-insurers--hero .odm-insurers__title { font-size: var(--odm-fs-h3); font-weight: 900; font-stretch: var(--odm-h-stretch); text-transform: uppercase; line-height: 1.05; }
.odm-insurers--hero .odm-insurers__list { justify-content: flex-start; }
.odm-insurers--text.odm-insurers--hero { grid-template-columns: minmax(0, 1fr); }
.odm-insurers--strip .odm-insurers__head { flex: 1 1 320px; }
@media (max-width: 900px) {
	.odm-insurers--hero { grid-template-columns: minmax(0, 1fr); }
}
/* Inline phone link in text ([odm_telefon]). */
.odm-tel { font-weight: 800; white-space: nowrap; }
/* Text variants of the insurance switch are plain wrappers. */
.wp-block-group.odm-jen-jmena,
.wp-block-group.odm-bez-jmen { padding: 0; }
/* Towns with their own page stand out (lifted tile). */
.odm-towns a { background: var(--odm-card2); color: var(--odm-text); }
/* Long Czech words in big uppercase headings must not overflow on phones. */
.odm-hero__title, .odm-hero__claim, .odm-content h2 { overflow-wrap: break-word; }
/* No automatic hyphenation: Czech words split oddly in capitals ("ZÁ-SAH"). */
.odm-hero__title, .odm-hero__claim, .odm-content h2, .odm-content h3 { hyphens: manual; }
/* Home hero a bit lower so the first section starts above the fold on a 900px screen. */
.odm-hero--home { min-height: min(80vh, 690px); }
.odm-hero--home .odm-hero__inner { padding-top: clamp(40px, 6vw, 72px); padding-bottom: clamp(40px, 6vw, 72px); }

/* ---------- Section heads centred on every page (Marek 30. 10.). Only sections built from components (cards, steps,
   price list, FAQ, map); text sections (several h2, plain paragraphs or lists) stay left-aligned. ---------- */
.odm-content section.wp-block-group:not(:has(> h2 ~ h2)) > .is-style-odm-eyebrow:has(+ h2) { justify-content: center; margin-left: auto !important; margin-right: auto !important; }
.odm-content section.wp-block-group:not(:has(> h2 ~ h2)) > h2:first-of-type,
.odm-content section.wp-block-group:not(:has(> h2 ~ h2)) > h2:first-of-type + .is-style-odm-lead { text-align: center; margin-left: auto !important; margin-right: auto !important; }
.odm-content section.wp-block-group:not(:has(> h2 ~ h2)) > h2:first-of-type + .is-style-odm-lead { max-width: var(--odm-text-w); }

/* ---------- 30. 10. (2nd round of annotations) ---------- */
/* Orange call button block ([odm/volat]), always centred. */
.odm-callcta { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }
/* Service card price stands out in orange. */
.odm-link-card .is-style-odm-price { color: var(--odm-accent) !important; }
/* Review: avatar next to the name. */
.wp-block-quote.is-style-odm-review cite { display: flex; align-items: center; gap: 12px; }
.odm-review-avatar { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; flex: 0 0 auto; }
/* Buttons, captions, towns and FAQ in component sections sit in the middle too. */
.odm-content section.wp-block-group:not(:has(> h2 ~ h2)) > .wp-block-buttons { justify-content: center; }
.odm-content .wp-block-table figcaption { text-align: center; margin-left: auto; margin-right: auto; }
.odm-content .odm-towns { justify-content: center; }
.odm-content section.wp-block-group:not(:has(> h2 ~ h2)) > .wp-block-details { margin-left: auto !important; margin-right: auto !important; }

/* Trust row under the home hero: same space between the hero edge and the row as between the row and the next section
   (Marek 30. 10.; measure from the hero background edge, not from the photo). The first section starts 18px below
   the row, so the bottom padding is 18px smaller. */
.odm-hero--home { min-height: 0 !important; }
.odm-hero--home .odm-hero__inner { padding-bottom: clamp(32px, 4vw, 56px) !important; }
.odm-trust { padding-top: clamp(48px, 5vw, 72px); padding-bottom: calc(clamp(48px, 5vw, 72px) - 18px); }

/* Hero call button on phones (full width): the label itself sits in the middle, the phone icon hangs to its left (Marek 30. 10.).
   Icon 20px + gap 10px = 30px of extra room on the right balances it. */
@media (max-width: 560px) { .odm-hero__actions .odm-btn--call > span { margin-right: 30px; } }

/* Typing heading in the final call: blinking caret. */
.odm-typer.is-typing .odm-typer__text::after { content: ""; display: inline-block; width: 0.08em; height: 0.9em; margin-left: 0.06em; vertical-align: -0.08em; background: currentColor; animation: odm-caret 1s steps(1) infinite; }
@keyframes odm-caret { 50% { opacity: 0; } }
.odm-typer.is-typing { display: flex; align-items: center; justify-content: center; text-align: center; }

/* Big phone in the final call: dark pill with a pulsing ring, like the insurance badge (Marek 30. 10.). */
.odm-bigphone__num { display: inline-flex; align-items: center; gap: clamp(12px, 1.6vw, 20px); padding: clamp(10px, 1.2vw, 14px) clamp(24px, 3vw, 40px) clamp(10px, 1.2vw, 14px) clamp(10px, 1.2vw, 14px); border-radius: 999px; background: var(--odm-bg); font-size: clamp(2rem, 1.2rem + 4vw, 4.25rem); animation: odm-phone-pulse 2.6s ease-out infinite; transition: transform 0.15s, background-color 0.2s; }
.wp-block-group.is-style-odm-accent a.odm-bigphone__num, a.odm-bigphone__num { color: var(--odm-text); }
.odm-bigphone__num:hover { text-decoration: none; transform: translateY(-2px); background: #000; }
.odm-bigphone__icon { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; width: 1.25em; height: 1.25em; border-radius: 50%; background: var(--odm-accent); color: var(--odm-on-accent); }
.odm-bigphone__icon .odm-icon { width: 0.55em; height: 0.55em; }
@keyframes odm-phone-pulse { 0%, 55% { box-shadow: 0 0 0 0 rgba(11, 11, 12, 0.45); } 100% { box-shadow: 0 0 0 18px rgba(11, 11, 12, 0); } }
@media (max-width: 400px) { .odm-bigphone__num { font-size: 1.75rem; } }


/* Everything clickable is a pill (Marek 30. 10.). */
.odm-towns li > span, .odm-profile { border-radius: var(--odm-r-btn); }
.odm-profile { padding-left: 22px; padding-right: 22px; }

/* Final call band = hero atmosphere on the dark background (Marek 30. 10.): blobs, beacon, grain from .odm-hero__fx. */
.wp-block-group.is-style-odm-accent { position: relative; overflow: hidden; isolation: isolate; background: var(--odm-bg); color: var(--odm-text); }
.wp-block-group.is-style-odm-accent > .odm-hero__fx { z-index: -1; max-width: none; margin: 0; }
.odm-hero__fx--band::after { display: none; }
.odm-hero__fx--band .odm-fx--a { right: -10%; top: -40%; }
.wp-block-group.is-style-odm-accent h2,
.wp-block-group.is-style-odm-accent h3,
.wp-block-group.is-style-odm-accent strong,
.wp-block-group.is-style-odm-accent em,
.wp-block-group.is-style-odm-accent p,
.wp-block-group.is-style-odm-accent a:not(.wp-block-button__link):not(.odm-bigphone__num) { color: var(--odm-text); }
.wp-block-group.is-style-odm-accent .odm-bigphone__note { color: var(--odm-soft); }
/* Phone pill flips to orange on the dark band, the pulse ring is orange too. */
.wp-block-group.is-style-odm-accent a.odm-bigphone__num { background: var(--odm-accent); color: var(--odm-on-accent); animation-name: odm-phone-pulse-o; }
.wp-block-group.is-style-odm-accent a.odm-bigphone__num:hover { background: var(--odm-accent-hover); }
.wp-block-group.is-style-odm-accent .odm-bigphone__icon { background: var(--odm-on-accent); color: var(--odm-accent); }
@keyframes odm-phone-pulse-o { 0%, 55% { box-shadow: 0 0 0 0 rgba(255, 154, 31, 0.5); } 100% { box-shadow: 0 0 0 18px rgba(255, 154, 31, 0); } }
.wp-block-group.is-style-odm-accent .wp-block-button__link { background: var(--odm-accent); color: var(--odm-on-accent); }

/* Final band: orange warning lights like the light bar on the technicians' cars (Marek 30. 10.).
   Left and right lamps flash in turns (double flash), each with a fast rotating beam. */
.odm-hero__fx--band .odm-fx { opacity: 0.3; }
.odm-flash { position: absolute; top: -45%; width: 70vw; height: 70vw; max-width: 900px; max-height: 900px; border-radius: 50%; background: radial-gradient(circle, rgba(255, 160, 40, 0.95) 0%, rgba(255, 140, 20, 0.45) 30%, rgba(255, 120, 20, 0) 62%); filter: blur(16px); opacity: 0; animation: odm-flash 4.8s ease-in-out infinite; }
.odm-flash--l { left: -28%; }
.odm-flash--r { right: -28%; animation-delay: 2.4s; }
@keyframes odm-flash { 0%, 100% { opacity: 0; } 15% { opacity: 0.85; } 40% { opacity: 0; } }
.odm-hero__fx--band .odm-fx-beacon { display: none; top: 0; width: 220vmax; height: 220vmax; margin: -110vmax 0 0 -110vmax; mix-blend-mode: screen;
	background: conic-gradient(from 0deg, rgba(255, 154, 31, 0) 0deg, rgba(255, 154, 31, 0.22) 10deg, rgba(255, 154, 31, 0) 26deg, rgba(255, 154, 31, 0) 180deg, rgba(255, 154, 31, 0.16) 190deg, rgba(255, 154, 31, 0) 206deg); }
.odm-hero__fx--band .odm-fx-beacon--l { left: 8%; right: auto; animation: odm-beacon 3.6s linear infinite; }
.odm-hero__fx--band .odm-fx-beacon--r { left: 92%; right: auto; animation: odm-beacon 3.6s linear -1.8s infinite reverse; }

/* Footer: insurance line as a pill (Marek 30. 10.). */
.odm-footer p.odm-footer__ins { display: inline-flex; align-items: center; gap: 10px; padding: 10px 18px 10px 12px; margin: 4px 0 18px; border-radius: var(--odm-r-btn); background: var(--odm-card); color: var(--odm-text); font-weight: 600; line-height: 1.3; }
.odm-footer__ins .odm-icon { color: var(--odm-accent); flex: 0 0 auto; margin: 0; }
/* Final call phone pill: white phone icon (Marek 30. 10.). */
.wp-block-group.is-style-odm-accent .odm-bigphone__icon { color: #fff; }
@media (min-width: 961px) { .odm-footer p.odm-footer__ins { white-space: nowrap; font-size: 0.875rem; } }

/* ---------- Mega menu "Služby" (desktop), like the CJ Autoškola prototype (Marek 30. 10.) ---------- */
.odm-mega__intro-text, .odm-mega__intro-title { display: none; }
/* Phone menu: no photos, but the service name sits INSIDE the photo wrapper, so the wrapper must stay (5. 11.: hidden wrapper left the submenu empty). */
.odm-mega__photo { display: contents; }
.odm-mega__img { display: none; }
@media (min-width: 1121px) {
	.odm-nav__list > li.odm-mega { position: static; }
	.odm-nav .odm-mega > .sub-menu {
		left: 0; right: 0; top: 100%; min-width: 0; padding: 26px var(--odm-gutter) 30px; border-radius: 0 0 var(--odm-r-md) var(--odm-r-md);
		background: #141416; box-shadow: 0 30px 60px rgba(0, 0, 0, 0.6);
		display: grid; grid-template-columns: minmax(240px, 280px) repeat(3, minmax(0, 1fr)); grid-auto-rows: auto; gap: 16px;
	}
	/* Invisible bridge so the panel does not close while the mouse travels down from the menu item. */
	.odm-nav .odm-mega > .sub-menu::before { content: ""; position: absolute; left: 0; right: 0; top: -24px; height: 24px; }
	.odm-mega__intro { grid-row: span 2; }
	.odm-mega__intro-text, .odm-mega__intro-title, .odm-mega__photo { display: block; }
	.odm-nav .odm-mega .sub-menu a.odm-mega__intro-link,
	.odm-nav .odm-mega .sub-menu a.odm-mega__link { padding: 0; height: 100%; white-space: normal; background: none; border-radius: var(--odm-r-md); }
	.odm-nav .odm-mega .sub-menu a.odm-mega__intro-link { display: flex; flex-direction: column; gap: 12px; padding: 24px; background: var(--odm-card); }
	.odm-nav .odm-mega .sub-menu a.odm-mega__intro-link:hover { background: var(--odm-card2); }
	.odm-mega__intro-title { font-size: 1.75rem; font-weight: 900; font-stretch: var(--odm-h-stretch); text-transform: uppercase; color: var(--odm-text); line-height: 1; }
	.odm-mega__intro-text { color: var(--odm-soft); font-weight: 500; line-height: 1.5; }
	.odm-mega__intro-more { margin-top: auto; color: var(--odm-accent); font-weight: 800; }
	.odm-nav .odm-mega .sub-menu a.odm-mega__link { display: flex; flex-direction: column; gap: 10px; color: var(--odm-text); }
	.odm-mega__photo { position: relative; overflow: hidden; border-radius: var(--odm-r-md); aspect-ratio: 16 / 9; background: var(--odm-card); }
	.odm-mega__img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s ease; }
	.odm-mega__link:hover .odm-mega__img { transform: scale(1.05); }
	.odm-mega__title { font-weight: 800; line-height: 1.2; }
	.odm-mega__photo .odm-mega__title { position: absolute; left: 0; right: 0; bottom: 0; padding: 40px 16px 14px; font-size: 1.1875rem; color: #fff;
		background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.55) 45%, rgba(0, 0, 0, 0.88) 100%); text-shadow: 0 1px 2px rgba(0, 0, 0, 0.5); }
	.odm-nav .odm-mega .sub-menu a.odm-mega__link:hover .odm-mega__title { color: var(--odm-accent); }
}
@media (min-width: 1121px) and (min-width: 1300px) {
	.odm-nav .odm-mega > .sub-menu { padding-left: max(var(--odm-gutter), calc((100% - var(--odm-wrap)) / 2)); padding-right: max(var(--odm-gutter), calc((100% - var(--odm-wrap)) / 2)); }
}
/* Exactly two cards fill the row (auto-fill would leave an empty third track). */
.wp-block-columns.is-style-odm-cards:has(> .wp-block-column:nth-child(2):last-child) { grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); }

/* Inside single-heading sections: component sections (cards, tables, FAQ, towns, forms) centre their short paragraphs;
   pure text sections keep a left-aligned reading column, but the column itself sits in the middle under the heading. */
.odm-content section.wp-block-group:not(:has(> h2 ~ h2)) > :is(p:not([class*="is-style-"]), ul, ol, .is-style-odm-note) { max-width: var(--odm-text-w); margin-left: auto !important; margin-right: auto !important; }
.odm-content section.wp-block-group:not(:has(> h2 ~ h2)):has(> .wp-block-columns, > figure.wp-block-table, > .wp-block-details, > .odm-towns-wrap, > .odm-form-wrap, > .wp-block-group, > .odm-profiles, > .odm-callcta) > p:not([class*="is-style-"]) { text-align: center; }
/* Insurance text variants are transparent wrappers: their paragraphs follow the same centring as direct children. */
.odm-content section.wp-block-group:not(:has(> h2 ~ h2)) > :is(.odm-jen-jmena, .odm-bez-jmen) > :is(p:not([class*="is-style-"]), ul, ol, .is-style-odm-note) { max-width: var(--odm-text-w); margin-left: auto !important; margin-right: auto !important; }
.odm-content section.wp-block-group:not(:has(> h2 ~ h2)) > :is(.odm-jen-jmena, .odm-bez-jmen) > p:not([class*="is-style-"]) { text-align: center; }

/* Anotace 58 a 59 (5. 11.): velký telefon v oranžové sekci bílým písmem, kolečko bílé s černým telefonem */
.wp-block-group.is-style-odm-accent a.odm-bigphone__num { color: #fff; }
.wp-block-group.is-style-odm-accent .odm-bigphone__icon { background: #fff; color: var(--odm-on-accent); }

/* Větší mezery mezi slovy u zúžených nadpisů velkými písmeny, jinak slova splývají (Marek 5. 11.) */
h1, h2, h3, h4, .odm-hero__claim, .odm-trust dt, .odm-article__cta-title, .odm-insurers--hero .odm-insurers__title, .odm-mega__intro-title, .odm-bigphone__num, .odm-contact-card__phone { word-spacing: 0.14em; }

/* ---------- Z našich zakázek (inc/teren.php): skutečné fotky z výjezdů ---------- */
.odm-teren { text-align: center; }
.odm-teren .is-style-odm-eyebrow { justify-content: center; }
.odm-teren .is-style-odm-lead { margin: 0 auto var(--odm-gap-head) !important; max-width: var(--odm-text-w); }
.odm-content .odm-teren > .odm-teren__grid { list-style: none; margin: 0 auto !important; padding: 0; width: 100%; max-width: var(--odm-wrap) !important; display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; text-align: left; }
.odm-teren__item { margin: 0; position: relative; overflow: hidden; border-radius: var(--odm-r-md); background: var(--odm-card); }
.odm-teren__link { display: block; aspect-ratio: 4 / 5; }
.odm-teren__link img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.4s var(--odm-ease); }
.odm-teren__link:hover img { transform: scale(1.04); }
.odm-teren__cap { position: absolute; left: 0; right: 0; bottom: 0; margin: 0; padding: 36px 16px 14px; font-size: var(--odm-fs-sm); font-weight: 700; color: #fff; background: linear-gradient(to top, rgba(0, 0, 0, 0.82), rgba(0, 0, 0, 0)); pointer-events: none; }
@media (max-width: 720px) { .odm-content .odm-teren > .odm-teren__grid { grid-template-columns: repeat(2, 1fr); gap: 8px; } .odm-teren__cap { font-size: var(--odm-fs-xs); padding: 28px 10px 10px; } }
.odm-zoom { padding: 0; border: 0; background: transparent; max-width: min(92vw, 900px); max-height: 92dvh; }
.odm-zoom::backdrop { background: rgba(0, 0, 0, 0.88); }
.odm-zoom img { display: block; max-width: 100%; max-height: 84dvh; width: auto; height: auto; margin: 0 auto; border-radius: var(--odm-r-md); }
.odm-zoom p { color: #fff; text-align: center; margin: 12px 0 0; font-weight: 700; }
.odm-zoom__close { position: fixed; top: 12px; right: 12px; width: 48px; height: 48px; border: 0; border-radius: 50%; background: rgba(255, 255, 255, 0.12); color: #fff; font-size: 28px; line-height: 1; cursor: pointer; }

/* Anotace 61–65 (5. 11.) */
/* 61: tlačítka měst vedle textu (sloupec služby) zarovnaná vlevo, ne na střed */
.odm-content .is-style-odm-split .odm-towns { justify-content: flex-start; }
/* 62: interaktivní mapa místo fotky ve sloupci služby, přes celou výšku sloupce */
.is-style-odm-split > .wp-block-column:first-child > .odm-towns-wrap { position: absolute; inset: 0; }
.is-style-odm-split > .wp-block-column:first-child .odm-map { margin: 0; height: 100%; border-radius: 0; }
.is-style-odm-split > .wp-block-column:first-child .odm-map__canvas { height: 100%; min-height: 340px; }
@media (max-width: 820px) { .is-style-odm-split > .wp-block-column:first-child > .odm-towns-wrap { position: static; } }
/* 63: sekce jen s nadpisem a odstavcem (anglický odstavec) na střed */
.odm-content section.wp-block-group:not(:has(> h2 ~ h2)):not(:has(> :not(h2, p))) > p { text-align: center; margin-left: auto !important; margin-right: auto !important; max-width: var(--odm-text-w); }
/* 65: formulář poptávky na střed */
.odm-content .is-layout-constrained > .odm-form-wrap { margin-left: auto !important; margin-right: auto !important; max-width: 760px; }
.odm-content .odm-form-wrap .odm-form { margin-left: auto; margin-right: auto; }

/* Anotace 67 (5. 11.): trochu větší písmo menu */
@media (min-width: 1121px) { .odm-nav__list > li > a { font-size: 1rem; } }
/* Anotace 69, 70 (5. 11.): rychlé údaje v hlavičce podstránky na fotce vlevo dole */
.odm-facts--photo { position: absolute; left: 16px; bottom: 16px; right: 16px; margin: 0; gap: 8px; }
.odm-facts--photo .odm-facts__item { background: rgba(11, 11, 12, 0.82); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); min-width: 0; padding: 9px 14px; }
.odm-facts--photo .odm-facts__item:first-child { background: var(--odm-accent); }
@media (max-width: 560px) { .odm-facts--photo { left: 10px; bottom: 10px; right: 10px; } .odm-facts--photo dd { font-size: var(--odm-fs-md); } }

/* Anotace 72 (5. 11.): pruh pojišťoven pod hlavičkou podstránky jako samostatný panel, ať nesplývá s hlavičkou */
.odm-content > .odm-insurers--strip,
.odm-insurers--strip {
	width: calc(100% - 2 * var(--odm-gutter)); max-width: var(--odm-wrap); box-sizing: border-box;
	margin: 0 auto clamp(40px, 5vw, 64px); padding: clamp(20px, 2.6vw, 30px) clamp(20px, 3vw, 36px);
	background: var(--odm-card); border-radius: var(--odm-r-md); align-items: center; gap: 16px 32px;
}
.odm-insurers--strip .odm-insurers__title { font-size: var(--odm-fs-lg); gap: 14px; }
.odm-insurers--strip .odm-insurers__title .odm-icon { flex: none; box-sizing: content-box; width: 22px; height: 22px; padding: 11px; background: var(--odm-accent); color: var(--odm-on-accent); border-radius: 50%; }
.odm-insurers--strip .odm-insurers__text { padding-left: 58px; }
.odm-insurers--strip .odm-insurers__more { padding-left: 58px; }
@media (min-width: 900px) {
	.odm-insurers--strip.odm-insurers--text { display: grid; grid-template-columns: minmax(0, 1fr) auto; }
	.odm-insurers--strip.odm-insurers--text .odm-insurers__head { display: contents; }
	.odm-insurers--strip.odm-insurers--text .odm-insurers__title { grid-column: 1; }
	.odm-insurers--strip.odm-insurers--text .odm-insurers__text { grid-column: 1; margin-top: -8px !important; }
	.odm-insurers--strip.odm-insurers--text .odm-insurers__more { grid-column: 2; grid-row: 1 / span 2; padding-left: 0; }
	.odm-insurers--strip.odm-insurers--text .odm-insurers__more a { padding: 12px 22px; border-radius: var(--odm-r-btn); background: var(--odm-card3); color: var(--odm-text); white-space: nowrap; }
	.odm-insurers--strip.odm-insurers--text .odm-insurers__more a:hover { background: var(--odm-accent); color: var(--odm-on-accent); }
}
@media (max-width: 560px) { .odm-insurers--strip .odm-insurers__text, .odm-insurers--strip .odm-insurers__more { padding-left: 0; } }

/* Číslovaný postup v rámečku (Výměna zámku po vloupání, Marek 5. 11.): užší panel na střed, čísla v oranžových kolečkách */
.odm-content .is-layout-constrained > .is-style-odm-panel:has(> ol.wp-block-list:only-child) { max-width: var(--odm-faq-w); margin-left: auto !important; margin-right: auto !important; }
.is-style-odm-panel > ol.wp-block-list:only-child { list-style: none; counter-reset: odmol; margin: 0 !important; padding: 0; max-width: none !important; display: grid; gap: 14px; }
.is-style-odm-panel > ol.wp-block-list:only-child > li { counter-increment: odmol; position: relative; padding-left: 50px; min-height: 34px; display: flex; align-items: center; margin: 0; color: var(--odm-soft); }
.is-style-odm-panel > ol.wp-block-list:only-child > li::before { content: counter(odmol); position: absolute; left: 0; top: 50%; transform: translateY(-50%); width: 34px; height: 34px; border-radius: 50%; background: var(--odm-accent); color: var(--odm-on-accent); font-weight: 900; display: flex; align-items: center; justify-content: center; font-size: 0.95rem; }

/* Výběr ve formuláři jako u CJ (Marek 5. 11.): tlačítko místo systémového seznamu, volby v panelu přes celý formulář */
.odm-form { position: relative; }
.odm-select { position: relative; }
.odm-select > select { position: absolute !important; inset: 0; opacity: 0; pointer-events: none; }
.odm-select__btn {
	width: 100%; min-height: 50px; display: flex; align-items: center; text-align: left; font: inherit; font-size: 16px; font-weight: 600;
	color: var(--odm-text); background: var(--odm-bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FF9A1F' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 14px center / 16px;
	border: 0; border-radius: var(--odm-r-sm); padding: 13px 40px 13px 15px; cursor: pointer; transition: box-shadow 0.15s;
}
.odm-select__btn:focus-visible { outline: none; box-shadow: 0 0 0 3px color-mix(in srgb, var(--odm-accent) 45%, transparent); }
.odm-select.is-placeholder .odm-select__btn { color: #7D7D79; font-weight: 500; }
.odm-select__btn.is-invalid { box-shadow: 0 0 0 2px var(--odm-error); }
.odm-select__text { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.odm-select-panel { position: absolute; inset: 0; z-index: 5; display: flex; flex-direction: column; background: var(--odm-card); border-radius: inherit; padding: clamp(18px, 3vw, 32px); animation: odm-panel-in 0.18s var(--odm-ease); }
.odm-select-panel[hidden] { display: none; }
@keyframes odm-panel-in { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.odm-select-panel__head { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; }
.odm-select-panel__back { flex: none; width: 44px; height: 44px; border-radius: 50%; border: 0; background: var(--odm-card3); color: var(--odm-text); display: grid; place-items: center; cursor: pointer; }
.odm-select-panel__back:hover { background: var(--odm-accent); color: var(--odm-on-accent); }
.odm-select-panel__title { margin: 0 !important; font-weight: 800; font-size: var(--odm-fs-lg); color: var(--odm-text); }
.odm-select__list { list-style: none; margin: 0; padding: 2px; flex: 1 1 auto; overflow-y: auto; display: grid; gap: 8px; align-content: start; outline: none; }
.odm-select__list li { position: relative; padding: 14px 16px 14px 46px; background: var(--odm-bg); border-radius: var(--odm-r-sm); cursor: pointer; color: var(--odm-soft); font-weight: 600; line-height: 1.35; transition: background-color 0.12s, color 0.12s; }
.odm-select__list li::before { content: ""; position: absolute; left: 16px; top: 50%; width: 18px; height: 18px; margin-top: -9px; border-radius: 50%; box-shadow: inset 0 0 0 2px var(--odm-line2); }
.odm-select__list li.is-active { background: var(--odm-card3); color: var(--odm-text); }
.odm-select__list li[aria-selected="true"] { color: var(--odm-text); }
.odm-select__list li[aria-selected="true"]::before { box-shadow: inset 0 0 0 5px var(--odm-accent); }
.odm-form.has-panel { overflow: hidden; }
/* Marek 5. 11.: každý krok v samostatné dlaždici s mezerou, ne jeden společný rámeček */
.wp-block-group.is-style-odm-panel:has(> ol.wp-block-list:only-child) { background: none; padding: 0; }
.is-style-odm-panel > ol.wp-block-list:only-child { gap: 10px; }
.is-style-odm-panel > ol.wp-block-list:only-child > li { background: var(--odm-card); border-radius: var(--odm-r-md); padding: 16px 20px 16px 68px; min-height: 66px; color: var(--odm-text); }
.is-style-odm-panel > ol.wp-block-list:only-child > li::before { left: 18px; }

/* Obvody Ostravy s mapou (anotace 73, 5. 11.): tlačítka vlevo, mapa vpravo, navzájem se zvýrazňují */
.odm-content .is-layout-constrained > .odm-obvody { max-width: var(--odm-wrap); margin-left: auto !important; margin-right: auto !important; }
.odm-obvody { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: clamp(20px, 3vw, 40px); align-items: center; width: 100%; }
.odm-obvody__list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; align-content: center; max-width: none !important; }
.odm-obvody__list li { margin: 0; }
.odm-obvody__chip { display: inline-flex; align-items: center; min-height: 44px; padding: 10px 18px; background: var(--odm-card); border-radius: var(--odm-r-btn); font-weight: 600; font-size: var(--odm-fs-sm); color: var(--odm-soft); cursor: default; transition: background-color 0.15s, color 0.15s; outline: none; }
.odm-obvody__chip[data-zone] { cursor: pointer; }
.odm-obvody__chip.is-lit, .odm-obvody__chip:focus-visible { background: var(--odm-accent); color: var(--odm-on-accent); }
.odm-obvody__map { margin: 0; }
.odm-obvody__map .odm-map__canvas { height: clamp(340px, 40vw, 500px); }
.odm-map .leaflet-tooltip.odm-map__label--zone { background: #0B0B0C; color: #fff; border: 0; border-radius: 3px; box-shadow: none; padding: 4px 8px; font-family: var(--odm-font); font-weight: 700; font-size: 13px; text-shadow: none; }
.odm-map .leaflet-tooltip.odm-map__label--zone::before { display: none; }
@media (max-width: 860px) { .odm-obvody { grid-template-columns: 1fr; } .odm-obvody__map { order: -1; } }

/* Obvody Ostravy (Marek 5. 11.): mapa nahoře přes celou šířku, tlačítka pod ní */
.odm-obvody { grid-template-columns: minmax(0, 1fr); }
.odm-obvody__map { order: -1; }
.odm-obvody__list { justify-content: center; }
.odm-obvody__map .odm-map__canvas { height: clamp(340px, 42vw, 560px); }

/* Seznam s fajfkami v rámečku (Ceník „Platba a doklad“, Marek 5. 11.): každý řádek samostatná dlaždice s mezerou, užší na střed */
.odm-content .is-layout-constrained > .is-style-odm-panel:has(> ul.is-style-odm-checks:only-child) { max-width: var(--odm-faq-w); margin-left: auto !important; margin-right: auto !important; background: none; padding: 0; }
.is-style-odm-panel > ul.is-style-odm-checks:only-child { margin: 0 !important; max-width: none !important; display: grid; gap: 10px; }
.is-style-odm-panel > ul.is-style-odm-checks:only-child > li { margin: 0; background: var(--odm-card); border-radius: var(--odm-r-md); padding: 18px 20px 18px 58px; color: var(--odm-text); }
.is-style-odm-panel > ul.is-style-odm-checks:only-child > li::before { left: 20px; top: 50%; transform: translateY(-50%); width: 22px; height: 22px; background-size: 22px; }
/* Sekce s nadpisem, odstavcem a tlačítkem (Ceník „Kdy to zaplatí pojišťovna“): text i tlačítko na střed */
.odm-content section.wp-block-group:not(:has(> h2 ~ h2)):has(> .wp-block-buttons):not(:has(> .wp-block-columns, > .wp-block-list, > .wp-block-details, > figure, > .odm-form-wrap)) > p:not(.is-style-odm-eyebrow) { text-align: center; margin-left: auto !important; margin-right: auto !important; max-width: var(--odm-text-w); }
.odm-content section.wp-block-group:not(:has(> h2 ~ h2)):has(> .wp-block-buttons):not(:has(> .wp-block-columns, > .wp-block-list, > .wp-block-details, > figure, > .odm-form-wrap)) > .wp-block-buttons { justify-content: center; margin-left: auto !important; margin-right: auto !important; }
/* Odstavec pod mapou částí města (Okolí: …) na střed jako u ostatních sekcí s mapou */
.odm-content section.wp-block-group:not(:has(> h2 ~ h2)):has(> .odm-obvody) > p:not([class*="is-style-"]) { text-align: center; margin-left: auto !important; margin-right: auto !important; max-width: var(--odm-text-w); }

/* Anotace 74 (5. 11.): pruh pojišťoven uvnitř sekce (Pojišťovny pod kartami) s mezerou nad sebou */
.odm-content .wp-block-group > .odm-insurers--strip:not(:first-child) { margin-top: clamp(28px, 3.5vw, 44px) !important; margin-bottom: 0 !important; }
/* Anotace 77: odstavec v sekci s dlaždicovým seznamem na střed */
.odm-content section.wp-block-group:not(:has(> h2 ~ h2)):has(> .is-style-odm-panel) > p:not([class*="is-style-"]) { text-align: center; margin-left: auto !important; margin-right: auto !important; max-width: var(--odm-text-w); }

/* Anotace 82 (5. 11.): Pro firmy na Pojišťovnách v jednom sloupci, nahoře kontakt s telefonem, pod ním formulář (oba na střed, stejná šířka) */
.odm-content section.wp-block-group:has(> .odm-form-wrap) > .odm-contact-card { max-width: 760px; margin-left: auto !important; margin-right: auto !important; box-sizing: border-box; width: 100%; }
.odm-content section.wp-block-group:has(> .odm-contact-card) > .odm-form-wrap { margin-top: 16px !important; }

/* Anotace 83 (5. 11.): velký nadpis nad poli formuláře „Zavolejte 111 222 333 nebo nám napište“ */
.odm-form__title { margin: 0 0 4px !important; font-weight: 900; font-stretch: var(--odm-h-stretch); text-transform: uppercase; word-spacing: 0.14em; font-size: clamp(1.6rem, 1.2rem + 1.6vw, 2.4rem); line-height: 1.05; color: var(--odm-text); text-wrap: balance; }
.odm-form__title a { color: var(--odm-accent); text-decoration: none; white-space: nowrap; }
.odm-form__title a:hover { text-decoration: underline; text-decoration-thickness: 3px; }
