/*!
 * TOPČISTO — dizajnový systém.
 * Tmavá zelená + oranžová, Manrope na nadpisy, Inter na text.
 * Načíta sa za Diviho štýlmi (functions.php), takže nepotrebuje !important
 * všade — len tam, kde Divi tlačí vlastné pravidlá.
 */

/* ================================================================== tokeny */
:root {
	--tpc-dark:    #0E3B36;
	--tpc-dark-2:  #092A26;
	--tpc-dark-3:  #16564E;
	/* Oranžová v dvoch odtieňoch: tmavšia na svetlom pozadí (biely text na nej
	   má 5,2:1), svetlejšia na tmavozelenom (5,4:1). Pôvodná #F2731F mala na
	   bielej aj pod bielym textom len 2,9:1 — pod hranicou WCAG AA. */
	--tpc-acc:     #C2410C;
	--tpc-acc-l:   #FF8C42;
	--tpc-acc-btn: #C2410C;
	--tpc-acc-d:   #9A3C06;
	/* Druhý akcent — svieža zelenkavá; na bielej 5,1:1, na tmavej sa prepína
	   na svetlejší odtieň rovnako ako oranžová. */
	--tpc-acc2:    #0E7C63;
	--tpc-acc2-l:  #3FD1AC;
	--tpc-mint:    #E8F3EE;
	--tpc-mint-2:  #F4F9F6;
	--tpc-ink:     #16241F;
	--tpc-mut:     #5A6B66;
	--tpc-line:    #DCE6E1;
	--tpc-white:   #FFFFFF;
	--tpc-max:     1240px;
	--tpc-gut:     clamp(18px, 4vw, 48px);
	--tpc-r:       18px;
	--tpc-r-s:     12px;
	--tpc-head:    'Manrope', 'Segoe UI', system-ui, sans-serif;
	--tpc-body:    'Inter', 'Segoe UI', system-ui, sans-serif;
	--tpc-tien:    0 2px 4px rgba(14, 59, 54, .04), 0 12px 32px rgba(14, 59, 54, .08);
	--tpc-tien-h:  0 8px 16px rgba(14, 59, 54, .08), 0 24px 48px rgba(14, 59, 54, .14);
	--tpc-sek:     clamp(56px, 7vw, 96px);
}

@font-face {
	font-family: 'Manrope';
	src: url('fonts/manrope-latin-ext.woff2') format('woff2');
	font-weight: 400 800;
	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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: 'Manrope';
	src: url('fonts/manrope-latin.woff2') format('woff2');
	font-weight: 400 800;
	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;
}
@font-face {
	font-family: 'Inter';
	src: url('fonts/inter-latin-ext.woff2') format('woff2');
	font-weight: 400 700;
	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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: 'Inter';
	src: url('fonts/inter-latin.woff2') format('woff2');
	font-weight: 400 700;
	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;
}

/* ============================================================ Diviho škrupina */
body.tpc #page-container { background: var(--tpc-white); padding-top: 0 !important; }
body.tpc #main-header,
body.tpc #top-header,
body.tpc #main-footer { display: none !important; }
body.tpc #et-main-area { overflow: clip; }
body.tpc .et_pb_section { background: transparent; padding: 0; }
body.tpc .et_pb_row { width: 100%; max-width: none; padding: 0; margin: 0; }
body.tpc .et_pb_column { width: 100% !important; margin: 0 !important; float: none; }
body.tpc .et_pb_text_inner > p:empty { display: none; }
/* Divi 5 ponecháva waypointy neviditeľné — animácie tu nepoužívame. */
body.tpc .et-waypoint,
body.tpc .et_pb_animation_off { opacity: 1 !important; }

/* ================================================================== základ */
body.tpc {
	font-family: var(--tpc-body);
	font-size: 17px;
	line-height: 1.7;
	color: var(--tpc-ink);
	background: var(--tpc-white);
	-webkit-font-smoothing: antialiased;
}
/* Základné pravidlá pre značky sú v :where(), takže majú nulovú váhu tela —
   ktorákoľvek trieda komponentu ich prebije. Bez toho by „body.tpc p" (0,1,2)
   vyhralo nad „.tpc-hero__lead" (0,1,0) a odsadenia by sa ticho rozpadli. */
:where(body.tpc) h1, :where(body.tpc) h2, :where(body.tpc) h3,
:where(body.tpc) h4, :where(body.tpc) h5 {
	font-family: var(--tpc-head);
	color: var(--tpc-dark);
	line-height: 1.15;
	letter-spacing: -.02em;
	font-weight: 800;
	padding: 0;
}
:where(body.tpc) h1 { font-size: clamp(32px, 5vw, 54px); }
:where(body.tpc) h2 { font-size: clamp(27px, 3.5vw, 40px); }
:where(body.tpc) h3 { font-size: clamp(20px, 2.2vw, 25px); }
:where(body.tpc) h4 { font-size: clamp(17px, 1.8vw, 20px); }
:where(body.tpc) p  { margin: 0 0 1em; padding-bottom: 0; }
:where(body.tpc) a  { text-decoration: none; color: var(--tpc-dark-3); }
:where(body.tpc) a:hover { color: var(--tpc-acc); }
:where(body.tpc) img { max-width: 100%; height: auto; display: block; }
:where(body.tpc) strong { font-weight: 700; }
:where(body.tpc) ul, :where(body.tpc) ol { padding: 0; margin: 0; }
/* Divi tlačí vlastné odsadenie odstavcov cez #page-container. */
body.tpc #page-container p { padding-bottom: 0; }

.tpc-in {
	max-width: var(--tpc-max);
	margin: 0 auto;
	padding-left: var(--tpc-gut);
	padding-right: var(--tpc-gut);
}
.tpc-sek { padding: var(--tpc-sek) 0; }
.tpc-sek--uzka { padding: clamp(40px, 5vw, 64px) 0; }
.tpc-sek--mint { background: var(--tpc-mint-2); }
.tpc-sek--dark { background: var(--tpc-dark); color: rgba(255, 255, 255, .88); }
.tpc-sek--dark h2, .tpc-sek--dark h3, .tpc-sek--dark h4 { color: #fff; }

.tpc-ico { width: 1.25em; height: 1.25em; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; flex: none; }

.tpc-skip {
	position: absolute; left: -9999px; top: 0; z-index: 999;
	background: var(--tpc-acc-btn); color: #fff; padding: 10px 18px; border-radius: 0 0 8px 0;
}
.tpc-skip:focus { left: 0; color: #fff; }

/* ================================================================ tlačidlá */
.tpc-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 9px;
	font-family: var(--tpc-head); font-weight: 700; font-size: 16px; line-height: 1;
	padding: 17px 28px; border-radius: 999px; border: 2px solid transparent;
	cursor: pointer; transition: transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease;
	text-align: center;
}
.tpc-btn--acc { background: var(--tpc-acc-btn); color: #fff; box-shadow: 0 8px 20px rgba(194, 65, 12, .26); }
.tpc-btn--acc:hover { background: var(--tpc-acc-d); color: #fff; transform: translateY(-2px); box-shadow: 0 12px 26px rgba(154, 60, 6, .32); }
.tpc-btn--dark { background: var(--tpc-dark); color: #fff; }
.tpc-btn--dark:hover { background: var(--tpc-dark-3); color: #fff; transform: translateY(-2px); }
.tpc-btn--ghost { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .45); }
.tpc-btn--ghost:hover { background: rgba(255, 255, 255, .12); color: #fff; border-color: #fff; }
.tpc-btn--linka { background: #fff; color: var(--tpc-dark); border-color: var(--tpc-line); }
.tpc-btn--linka:hover { border-color: var(--tpc-dark); color: var(--tpc-dark); transform: translateY(-2px); }
.tpc-btn .tpc-ico { width: 18px; height: 18px; }

/* ================================================================ hlavička */
.tpc-top { background: var(--tpc-mint); color: var(--tpc-dark); font-size: 13.5px; border-bottom: 1px solid rgba(14, 59, 54, .07); }
.tpc-top__in {
	max-width: var(--tpc-max); margin: 0 auto; padding: 9px var(--tpc-gut);
	display: flex; align-items: center; gap: 22px; flex-wrap: wrap;
}
.tpc-top__i { display: inline-flex; align-items: center; gap: 7px; color: var(--tpc-dark); }
.tpc-top__i:hover { color: var(--tpc-acc); }
.tpc-top__i .tpc-ico { width: 15px; height: 15px; color: var(--tpc-acc); }
.tpc-top__sp { flex: 1; }

.tpc-head {
	/* Vyššie než prekrytie mobilného menu (125): hlavička je sticky, takže
	   vytvára vlastný stohovací kontext — z-index navigácie vnútri nej sa
	   s prekrytím neporovnáva a odkazy v menu by sa nedali kliknúť. */
	position: sticky; top: 0; z-index: 140; background: #fff;
	border-bottom: 1px solid var(--tpc-line);
	transition: box-shadow .2s ease;
}
.tpc-head.je-prilepena { box-shadow: 0 6px 24px rgba(14, 59, 54, .1); }
.tpc-head__in {
	max-width: var(--tpc-max); margin: 0 auto; padding: 0 var(--tpc-gut);
	display: flex; align-items: center; gap: 24px; min-height: 84px;
}
.tpc-head__logo { flex: none; }

.tpc-logo { display: inline-flex; align-items: center; gap: 12px; color: var(--tpc-dark); }
.tpc-logo__mark { width: 44px; height: 44px; flex: none; color: var(--tpc-acc); }
.tpc-logo__mark svg { width: 100%; height: 100%; display: block; }
.tpc-logo__txt { display: flex; flex-direction: column; line-height: 1.05; }
.tpc-logo__txt strong { font-family: var(--tpc-head); font-weight: 800; font-size: 25px; letter-spacing: -.03em; color: inherit; }
.tpc-logo__txt em { font-style: normal; font-size: 11.5px; letter-spacing: .13em; text-transform: uppercase; color: var(--tpc-mut); margin-top: 3px; }
.tpc-logo--foot { color: #fff; }
.tpc-logo--foot .tpc-logo__txt em { color: rgba(255, 255, 255, .62); }

.tpc-nav { margin-left: auto; display: flex; align-items: center; gap: 4px; }
.tpc-nav__a {
	font-family: var(--tpc-head); font-weight: 600; font-size: 15.5px; color: var(--tpc-dark);
	padding: 12px 13px; border-radius: 10px; display: inline-flex; align-items: center; gap: 5px;
	transition: background .16s ease, color .16s ease;
}
.tpc-nav__a:hover { background: var(--tpc-mint); color: var(--tpc-dark); }
.tpc-nav__a.je-tu { color: var(--tpc-acc); }
.tpc-nav__sip { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; transition: transform .2s ease; }
.tpc-nav__sub { position: relative; }
/* Otváranie cez :hover a :focus-within LEN na desktope. Na mobile ťuknutie
   nastaví oboje (iOS drží :hover), pravidlo potom posunulo podmenu o -50 %
   doľava a panel menu ho orezal. Mobil má vlastné otváranie triedou. */
@media (min-width: 981px) {
	.tpc-nav__sub:hover .tpc-nav__sip { transform: rotate(180deg); }
}
.tpc-drop {
	position: absolute; top: calc(100% + 6px); left: 50%; transform: translate(-50%, 8px);
	background: #fff; border: 1px solid var(--tpc-line); border-radius: 16px; padding: 10px;
	box-shadow: var(--tpc-tien-h); min-width: 300px; display: grid; gap: 2px;
	opacity: 0; visibility: hidden; transition: opacity .18s ease, transform .18s ease, visibility .18s;
}
@media (min-width: 981px) {
	.tpc-nav__sub:hover .tpc-drop,
	.tpc-nav__sub:focus-within .tpc-drop { opacity: 1; visibility: visible; transform: translate(-50%, 0); }
}
.tpc-drop a {
	display: block; padding: 10px 14px; border-radius: 10px; font-size: 15px; color: var(--tpc-ink);
	font-family: var(--tpc-head); font-weight: 600;
}
.tpc-drop a:hover { background: var(--tpc-mint); color: var(--tpc-dark); }
.tpc-nav__tel {
	display: inline-flex; align-items: center; gap: 8px; margin-left: 10px;
	font-family: var(--tpc-head); font-weight: 700; font-size: 16px; color: var(--tpc-dark);
	padding: 10px 6px;
}
.tpc-nav__tel .tpc-ico { color: var(--tpc-acc); }
.tpc-nav__tel:hover { color: var(--tpc-acc); }
.tpc-nav__cta { margin-left: 12px; padding: 14px 22px; font-size: 15px; }

.tpc-burger { display: none; }
/* zatváracie tlačidlo existuje len v mobilnom paneli */
.tpc-nav__zavri { display: none; }
.tpc-nav__tien { display: none; }

/* V tmavých kontextoch používa všetko, čo berie var(--tpc-acc), svetlejší
   odtieň — tlačidlá majú vlastnú premennú, tá sa neprepisuje. */
.tpc-sek--dark, .tpc-phero, .tpc-cta-pas, .tpc-foot,
.tpc-logo--foot { --tpc-acc: var(--tpc-acc-l); --tpc-acc2: var(--tpc-acc2-l); }

/* ==================================================================== hero */
.tpc-hero { position: relative; background: var(--tpc-dark); color: #fff; overflow: hidden; }
.tpc-hero__foto { position: absolute; inset: 0; }
.tpc-hero__foto img { width: 100%; height: 100%; object-fit: cover; }
.tpc-hero::after {
	content: ''; position: absolute; inset: 0;
	background: linear-gradient(100deg, rgba(9, 42, 38, .94) 0%, rgba(9, 42, 38, .86) 42%, rgba(9, 42, 38, .55) 100%);
}
.tpc-hero__in { position: relative; z-index: 2; padding: clamp(64px, 8vw, 112px) 0 clamp(56px, 7vw, 92px); }
.tpc-hero__txt { max-width: 720px; }
.tpc-hero h1 { color: #fff; }
.tpc-hero__nad {
	display: inline-flex; align-items: center; gap: 9px; margin-bottom: 20px;
	background: rgba(242, 115, 31, .18); border: 1px solid rgba(242, 115, 31, .5);
	color: #FFC9A3; border-radius: 999px; padding: 8px 16px;
	font-family: var(--tpc-head); font-weight: 700; font-size: 13px; letter-spacing: .08em; text-transform: uppercase;
}
.tpc-hero__nad .tpc-ico { width: 15px; height: 15px; color: var(--tpc-acc); }
.tpc-hero__lead { font-size: clamp(17px, 2vw, 20px); color: rgba(255, 255, 255, .88); margin: 24px 0 34px; max-width: 620px; }
.tpc-hero__akcie { display: flex; flex-wrap: wrap; gap: 14px; }
.tpc-hero__body { display: flex; flex-wrap: wrap; gap: 14px 30px; margin-top: 34px; padding-top: 28px; border-top: 1px solid rgba(255, 255, 255, .18); }
.tpc-hero__bod { display: inline-flex; align-items: center; gap: 10px; font-size: 15px; color: rgba(255, 255, 255, .9); font-family: var(--tpc-head); font-weight: 600; }
.tpc-hero__bod .tpc-ico { width: 20px; height: 20px; color: var(--tpc-acc); }

/* hero domovskej: text na tmavom paneli, fotka na celú polovicu vpravo */
.tpc-hero--split { display: grid; grid-template-columns: 1fr 1fr; align-items: stretch; background: var(--tpc-dark); }
.tpc-hero--split::after { content: none; }
.tpc-hero__panel {
	display: flex; align-items: center;
	padding: clamp(52px, 6vw, 92px) clamp(32px, 4vw, 64px) clamp(52px, 6vw, 92px)
	         max(var(--tpc-gut), calc((100vw - var(--tpc-max)) / 2 + var(--tpc-gut)));
}
.tpc-hero--split .tpc-hero__txt { max-width: 620px; }
.tpc-hero--split .tpc-hero__foto { position: relative; min-height: 520px; }
/* Portrétová fotka sa v širokom stĺpci oreže zhora aj zdola — posunieme
   výrez vyššie, nech tvár nekončí pri hornej hrane. */
.tpc-hero--split .tpc-hero__foto img { object-position: 50% 22%; }
.tpc-hero--split .tpc-hero__foto::after {
	content: ''; position: absolute; inset: 0;
	background: linear-gradient(90deg, rgba(9, 42, 38, .85) 0%, rgba(9, 42, 38, .12) 34%, rgba(9, 42, 38, 0) 100%);
}
.tpc-stitok--hero { right: auto; left: 40px; bottom: 32px; z-index: 2; }
.tpc-hero--split h1 { margin-bottom: 4px; }

/* ───────────────────────────────────────────── svetlý hero domovskej stránky
   Namiesto tmavozeleného panela svetlé pozadie s dvoma rozostretými škvrnami
   v značkových farbách — vzdušnejšie a živšie, text ostáva tmavozelený
   (kontrast 12,4:1), takže sa nič nestráca. */
.tpc-hero--svetly {
	background: linear-gradient(155deg, #FFFFFF 0%, var(--tpc-mint-2) 45%, var(--tpc-mint) 100%);
	color: var(--tpc-ink);
	isolation: isolate;
}
.tpc-hero--svetly::before {
	content: ''; position: absolute; z-index: 0; pointer-events: none;
	left: -8%; top: -18%; width: 46%; aspect-ratio: 1;
	background: radial-gradient(circle, rgba(194, 65, 12, .16) 0%, rgba(194, 65, 12, 0) 68%);
}
.tpc-hero--svetly .tpc-hero__panel::after {
	content: ''; position: absolute; z-index: 0; pointer-events: none;
	left: 18%; bottom: -26%; width: 52%; aspect-ratio: 1;
	background: radial-gradient(circle, rgba(14, 124, 99, .18) 0%, rgba(14, 124, 99, 0) 70%);
}
.tpc-hero--svetly .tpc-hero__panel { position: relative; }
.tpc-hero--svetly .tpc-hero__txt { position: relative; z-index: 1; }
.tpc-hero--svetly h1 { color: var(--tpc-dark); }
.tpc-hero--svetly .tpc-hero__lead { color: var(--tpc-mut); }
.tpc-hero--svetly .tpc-hero__nad {
	background: #fff; border-color: rgba(14, 59, 54, .12); color: var(--tpc-dark);
	box-shadow: 0 6px 18px rgba(14, 59, 54, .07);
}
.tpc-hero--svetly .tpc-hero__nad .tpc-ico { color: var(--tpc-acc); }
.tpc-hero--svetly .tpc-hero__body { border-top-color: rgba(14, 59, 54, .12); }
.tpc-hero--svetly .tpc-hero__bod { color: var(--tpc-dark); }
.tpc-hero--svetly .tpc-hero__bod .tpc-ico { color: var(--tpc-acc2); }
/* fotka „pláva" v zaoblenom ráme, nie je nalepená na okraj */
.tpc-hero--svetly .tpc-hero__foto { padding: clamp(18px, 2.2vw, 34px) 0; }
.tpc-hero--svetly .tpc-hero__foto::after { content: none; }
.tpc-hero--svetly .tpc-hero__foto .tpc-foto {
	height: 100%; border-radius: 28px 0 0 28px; overflow: hidden;
	box-shadow: 0 18px 50px rgba(14, 59, 54, .16);
}
.tpc-hero--svetly .tpc-stitok--hero { left: 34px; bottom: 50px; }

/* pás s číslami na svetlom — v bielej karte, aby sa nezlial so sekciou pod ním */
.tpc-sek--cisla .tpc-cisla {
	background: #fff; border-radius: var(--tpc-r); box-shadow: var(--tpc-tien);
	padding: clamp(26px, 3vw, 40px) clamp(18px, 2vw, 32px);
}
.tpc-sek--cisla .tpc-cislo b { color: var(--tpc-acc); }
.tpc-sek--cisla .tpc-cislo + .tpc-cislo,
.tpc-sek--cisla .tpc-cislo { position: relative; }
.tpc-sek--cisla .tpc-cislo span { color: var(--tpc-mut); }

/* karty služieb: ikony striedajú tri značkové farby, nech to nie je monotónne */
.tpc-mriezka .tpc-karta:nth-child(3n+2) .tpc-karta__ico { background: var(--tpc-acc2); box-shadow: 0 10px 22px rgba(14, 124, 99, .28); }
.tpc-mriezka .tpc-karta:nth-child(3n) .tpc-karta__ico { background: var(--tpc-dark-3); box-shadow: 0 10px 22px rgba(22, 86, 78, .28); }

/* hero podstránky — 60 px hore aj dole, fotka s tmavým prekrytím */
.tpc-phero { position: relative; background: var(--tpc-dark); color: #fff; overflow: hidden; }
.tpc-phero__foto { position: absolute; inset: 0; }
.tpc-phero__foto img { width: 100%; height: 100%; object-fit: cover; }
.tpc-phero::after {
	content: ''; position: absolute; inset: 0;
	background: linear-gradient(95deg, rgba(9, 42, 38, .93) 0%, rgba(9, 42, 38, .84) 50%, rgba(9, 42, 38, .6) 100%);
}
.tpc-phero__in { position: relative; z-index: 2; padding: 60px 0; }
.tpc-phero h1 { color: #fff; max-width: 880px; }
.tpc-phero__lead { color: rgba(255, 255, 255, .88); max-width: 680px; font-size: clamp(16px, 1.8vw, 19px); margin: 16px 0 0; }
.tpc-phero__akcie { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.tpc-drob { font-size: 13.5px; color: rgba(255, 255, 255, .62); margin-bottom: 16px; display: flex; gap: 8px; flex-wrap: wrap; }
.tpc-drob a { color: rgba(255, 255, 255, .62); }
.tpc-drob a:hover { color: #fff; }

/* ================================================================== hlavičky sekcií */
.tpc-hl { max-width: 720px; margin-bottom: clamp(32px, 4vw, 52px); }
.tpc-hl--stred { margin-left: auto; margin-right: auto; text-align: center; }
.tpc-hl__nad {
	display: inline-flex; align-items: center; gap: 8px; margin-bottom: 14px;
	font-family: var(--tpc-head); font-weight: 700; font-size: 13px; letter-spacing: .12em;
	text-transform: uppercase; color: var(--tpc-acc);
}
.tpc-hl__nad::before { content: ''; width: 22px; height: 2px; background: var(--tpc-acc); border-radius: 2px; }
.tpc-hl--stred .tpc-hl__nad::before { display: none; }
.tpc-hl p { color: var(--tpc-mut); font-size: 17.5px; margin: 16px 0 0; }
.tpc-sek--dark .tpc-hl p { color: rgba(255, 255, 255, .78); }

/* ============================================================== karty služieb */
.tpc-mriezka { display: grid; gap: clamp(18px, 2vw, 26px); }
.tpc-mriezka--3 { grid-template-columns: repeat(3, 1fr); }
.tpc-mriezka--2 { grid-template-columns: repeat(2, 1fr); }
.tpc-mriezka--4 { grid-template-columns: repeat(4, 1fr); }

.tpc-karta {
	position: relative; background: #fff; border: 1px solid var(--tpc-line);
	border-radius: var(--tpc-r); overflow: hidden; display: flex; flex-direction: column;
	transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.tpc-karta:hover { transform: translateY(-4px); box-shadow: var(--tpc-tien-h); border-color: transparent; }
.tpc-karta__foto { position: relative; aspect-ratio: 4 / 3; background: var(--tpc-mint); }
.tpc-karta__foto img { width: 100%; height: 100%; object-fit: cover; }
.tpc-karta__ico {
	position: absolute; left: 20px; bottom: -22px; width: 52px; height: 52px; border-radius: 14px;
	background: var(--tpc-acc-btn); color: #fff; display: grid; place-items: center;
	box-shadow: 0 10px 22px rgba(194, 65, 12, .3);
}
.tpc-karta__ico .tpc-ico { width: 26px; height: 26px; }
.tpc-karta__telo { padding: 36px 24px 26px; display: flex; flex-direction: column; flex: 1; }
.tpc-karta h3 { margin: 0 0 10px; }
.tpc-karta p { color: var(--tpc-mut); font-size: 15.5px; margin: 0 0 18px; }
.tpc-karta__viac {
	margin-top: auto; display: inline-flex; align-items: center; gap: 8px;
	font-family: var(--tpc-head); font-weight: 700; font-size: 15px; color: var(--tpc-dark);
}
.tpc-karta__viac .tpc-ico { width: 18px; height: 18px; transition: transform .2s ease; }
.tpc-karta:hover .tpc-karta__viac { color: var(--tpc-acc); }
.tpc-karta:hover .tpc-karta__viac .tpc-ico { transform: translateX(4px); }
/* celá karta je klikateľná, ale odkaz ostáva jeden a v texte */
.tpc-karta__odkaz::after { content: ''; position: absolute; inset: 0; z-index: 3; }

/* ============================================================== pás fotka + text */
.tpc-pas { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(28px, 5vw, 64px); align-items: center; }
.tpc-pas--obratene .tpc-pas__foto { order: 2; }
.tpc-pas__foto { position: relative; border-radius: var(--tpc-r); overflow: hidden; box-shadow: var(--tpc-tien); }
.tpc-pas__foto img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.tpc-pas__foto--vysoka img { aspect-ratio: 3 / 4; }
.tpc-pas h2 { margin-bottom: 18px; }
.tpc-pas p { color: var(--tpc-mut); }
.tpc-sek--dark .tpc-pas p { color: rgba(255, 255, 255, .8); }
.tpc-pas__akcie { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 26px; }

.tpc-stitok {
	position: absolute; right: 18px; bottom: 18px; background: #fff; border-radius: 14px;
	padding: 14px 18px; box-shadow: var(--tpc-tien-h); display: flex; align-items: center; gap: 12px;
	max-width: 74%;
}
.tpc-stitok .tpc-ico { width: 26px; height: 26px; color: var(--tpc-acc); }
.tpc-stitok b { font-family: var(--tpc-head); font-size: 15px; color: var(--tpc-dark); display: block; }
.tpc-stitok span { font-size: 13px; color: var(--tpc-mut); }

/* ================================================================== zoznamy */
.tpc-zoz { list-style: none; display: grid; gap: 12px; }
.tpc-zoz--2 { grid-template-columns: repeat(2, 1fr); }
.tpc-zoz li { display: flex; align-items: flex-start; gap: 12px; font-size: 16px; }
.tpc-zoz li .tpc-ico { width: 22px; height: 22px; color: var(--tpc-acc); margin-top: 3px; }
.tpc-sek--dark .tpc-zoz li { color: rgba(255, 255, 255, .88); }

.tpc-box {
	background: #fff; border: 1px solid var(--tpc-line); border-radius: var(--tpc-r);
	padding: clamp(24px, 3vw, 36px); box-shadow: var(--tpc-tien);
}
.tpc-box--mint { background: var(--tpc-mint); border-color: transparent; box-shadow: none; }
.tpc-box h3 { margin: 0 0 16px; }
.tpc-box + .tpc-box { margin-top: 20px; }

/* ==================================================================== kroky */
.tpc-kroky { counter-reset: krok; display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(18px, 2vw, 28px); }
.tpc-krok { position: relative; padding-top: 18px; }
.tpc-krok::before {
	counter-increment: krok; content: counter(krok, decimal-leading-zero);
	font-family: var(--tpc-head); font-weight: 800; font-size: 42px; color: rgba(14, 59, 54, .12);
	display: block; line-height: 1; margin-bottom: 10px;
}
.tpc-sek--dark .tpc-krok::before { color: rgba(255, 255, 255, .22); }
.tpc-krok h3 { font-size: 19px; margin: 0 0 8px; }
.tpc-krok p { color: var(--tpc-mut); font-size: 15.5px; margin: 0; }
.tpc-sek--dark .tpc-krok p { color: rgba(255, 255, 255, .78); }

/* ================================================================== dôvody */
.tpc-duvod { display: flex; gap: 16px; align-items: flex-start; }
.tpc-duvod__ico {
	width: 46px; height: 46px; border-radius: 13px; flex: none; display: grid; place-items: center;
	background: var(--tpc-mint); color: var(--tpc-dark);
}
.tpc-sek--dark .tpc-duvod__ico { background: rgba(255, 255, 255, .1); color: #fff; }
.tpc-duvod__ico .tpc-ico { width: 24px; height: 24px; }
.tpc-duvod h3 { font-size: 17.5px; margin: 4px 0 6px; }
.tpc-duvod p { font-size: 15px; color: var(--tpc-mut); margin: 0; }
.tpc-sek--dark .tpc-duvod p { color: rgba(255, 255, 255, .76); }

/* ================================================================== čísla */
.tpc-cisla { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.tpc-cislo { text-align: center; }
.tpc-cislo b { display: block; font-family: var(--tpc-head); font-weight: 800; font-size: clamp(32px, 4vw, 44px); color: var(--tpc-acc); line-height: 1; }
.tpc-cislo span { display: block; margin-top: 8px; font-size: 15px; color: var(--tpc-mut); }
.tpc-sek--dark .tpc-cislo span { color: rgba(255, 255, 255, .76); }

/* =================================================================== cenník */
.tpc-cena {
	background: #fff; border: 1px solid var(--tpc-line); border-radius: var(--tpc-r);
	padding: clamp(24px, 3vw, 34px); display: flex; flex-direction: column;
}
.tpc-cena--zvyr { border-color: var(--tpc-acc); box-shadow: var(--tpc-tien-h); position: relative; }
.tpc-cena__znak {
	position: absolute; top: -13px; left: 50%; transform: translateX(-50%);
	background: var(--tpc-acc-btn); color: #fff; border-radius: 999px; padding: 6px 16px;
	font-family: var(--tpc-head); font-weight: 700; font-size: 12.5px; letter-spacing: .06em; text-transform: uppercase;
	white-space: nowrap;
}
.tpc-cena h3 { margin: 0 0 8px; }
.tpc-cena__pop { color: var(--tpc-mut); font-size: 15px; margin: 0 0 18px; }
.tpc-cena__suma { font-family: var(--tpc-head); font-weight: 800; font-size: 30px; color: var(--tpc-dark); margin-bottom: 4px; }
.tpc-cena__jedn { font-size: 14px; color: var(--tpc-mut); margin-bottom: 20px; }
.tpc-cena .tpc-zoz { margin-bottom: 24px; }
.tpc-cena .tpc-zoz li { font-size: 15px; }
.tpc-cena .tpc-btn { margin-top: auto; }

/* ==================================================================== FAQ */
.tpc-faq { display: grid; gap: 12px; max-width: 880px; }
.tpc-faq details {
	background: #fff; border: 1px solid var(--tpc-line); border-radius: var(--tpc-r-s);
	padding: 4px 22px; transition: border-color .2s ease, box-shadow .2s ease;
}
.tpc-faq details[open] { border-color: var(--tpc-dark-3); box-shadow: var(--tpc-tien); }
.tpc-faq summary {
	list-style: none; cursor: pointer; padding: 18px 34px 18px 0; position: relative;
	font-family: var(--tpc-head); font-weight: 700; font-size: 17px; color: var(--tpc-dark);
}
.tpc-faq summary::-webkit-details-marker { display: none; }
.tpc-faq summary::after {
	content: ''; position: absolute; right: 2px; top: 50%; width: 13px; height: 13px;
	border-right: 2.5px solid var(--tpc-acc); border-bottom: 2.5px solid var(--tpc-acc);
	transform: translateY(-70%) rotate(45deg); transition: transform .2s ease;
}
.tpc-faq details[open] summary::after { transform: translateY(-20%) rotate(-135deg); }
.tpc-faq__telo { padding: 0 0 20px; color: var(--tpc-mut); font-size: 16px; }
.tpc-faq__telo p:last-child { margin-bottom: 0; }
.tpc-faq__telo ul { list-style: none; display: grid; gap: 8px; margin-top: 10px; }
.tpc-faq__telo ul li { display: flex; gap: 10px; }
.tpc-faq__telo ul li::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: var(--tpc-acc); margin-top: 10px; flex: none; }

.tpc-faq-split { display: grid; grid-template-columns: minmax(0, 360px) 1fr; gap: clamp(28px, 4vw, 64px); align-items: start; }
.tpc-faq-split .tpc-hl { margin-bottom: 26px; }
.tpc-faq-split .tpc-faq { max-width: none; }

/* ================================================================ segmenty */
.tpc-segment {
	display: flex; align-items: center; gap: 14px; background: #fff; border: 1px solid var(--tpc-line);
	border-radius: var(--tpc-r-s); padding: 18px 20px; font-family: var(--tpc-head); font-weight: 700;
	color: var(--tpc-dark); font-size: 16px;
}
.tpc-segment .tpc-ico { width: 24px; height: 24px; color: var(--tpc-acc); }

/* ================================================================ formulár */
.tpc-form { display: grid; gap: 16px; }
.tpc-form__riadok { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.tpc-pole { display: grid; gap: 7px; }
.tpc-pole > span { font-family: var(--tpc-head); font-weight: 600; font-size: 14.5px; color: var(--tpc-dark); }
.tpc-pole > span b { color: var(--tpc-acc); }
.tpc-pole input, .tpc-pole select, .tpc-pole textarea {
	width: 100%; font-family: var(--tpc-body); font-size: 16px; color: var(--tpc-ink);
	background: #fff; border: 1.5px solid var(--tpc-line); border-radius: var(--tpc-r-s);
	padding: 14px 16px; transition: border-color .16s ease, box-shadow .16s ease;
}
.tpc-pole textarea { resize: vertical; min-height: 110px; }
.tpc-pole input:focus, .tpc-pole select:focus, .tpc-pole textarea:focus {
	outline: none; border-color: var(--tpc-dark-3); box-shadow: 0 0 0 4px rgba(22, 86, 78, .12);
}
.tpc-form__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.tpc-suhlas { display: flex; gap: 11px; align-items: flex-start; font-size: 14.5px; color: var(--tpc-mut); }
.tpc-suhlas input { width: 19px; height: 19px; margin-top: 2px; accent-color: var(--tpc-acc); flex: none; }
.tpc-form__odoslat { justify-self: start; }
.tpc-form__stav { margin: 0; font-size: 15px; }
.tpc-form__stav.je-ok { color: #147A52; font-weight: 600; }
.tpc-form__stav.je-chyba { color: #C2410C; font-weight: 600; }
.tpc-form__pozn { margin: 0; font-size: 13.5px; color: var(--tpc-mut); }
.tpc-form--dark .tpc-pole > span { color: #fff; }
.tpc-form--dark .tpc-suhlas { color: rgba(255, 255, 255, .78); }
.tpc-form--dark .tpc-suhlas a { color: #fff; text-decoration: underline; }
.tpc-form--dark .tpc-form__pozn { color: rgba(255, 255, 255, .6); }
.tpc-form--dark .tpc-pole input, .tpc-form--dark .tpc-pole select, .tpc-form--dark .tpc-pole textarea { border-color: rgba(255, 255, 255, .22); background: rgba(255, 255, 255, .06); color: #fff; }
.tpc-form--dark .tpc-pole input:focus, .tpc-form--dark .tpc-pole textarea:focus, .tpc-form--dark .tpc-pole select:focus { border-color: var(--tpc-acc); box-shadow: 0 0 0 4px rgba(242, 115, 31, .2); }
.tpc-form--dark .tpc-pole select option { color: var(--tpc-ink); }

.tpc-kontakt { display: grid; grid-template-columns: 1fr 1.1fr; gap: clamp(28px, 4vw, 56px); align-items: start; }
.tpc-kontakt__karta { display: grid; gap: 18px; }
.tpc-kontakt__pol { display: flex; gap: 14px; align-items: flex-start; }
.tpc-kontakt__pol .tpc-ico { width: 24px; height: 24px; color: var(--tpc-acc); margin-top: 3px; }
.tpc-kontakt__pol b { display: block; font-family: var(--tpc-head); font-size: 13px; text-transform: uppercase; letter-spacing: .1em; color: var(--tpc-mut); margin-bottom: 3px; }
.tpc-kontakt__pol a, .tpc-kontakt__pol span { font-size: 18px; font-family: var(--tpc-head); font-weight: 700; color: var(--tpc-dark); }
.tpc-kontakt__pol a:hover { color: var(--tpc-acc); }

/* ================================================================== CTA pás */
.tpc-cta-pas { background-color: var(--tpc-dark); background-image: linear-gradient(120deg, var(--tpc-dark) 0%, var(--tpc-dark-3) 100%); color: #fff; }
.tpc-cta-pas .tpc-in {
	padding-top: clamp(40px, 5vw, 60px); padding-bottom: clamp(40px, 5vw, 60px);
	display: flex; align-items: center; justify-content: space-between; gap: 30px; flex-wrap: wrap;
}
.tpc-cta-pas h2 { color: #fff; margin: 0 0 8px; }
.tpc-cta-pas p { color: rgba(255, 255, 255, .84); margin: 0; max-width: 560px; }
.tpc-cta-pas__btn { display: flex; gap: 12px; flex-wrap: wrap; }

/* ================================================================== pätička */
.tpc-foot { background: var(--tpc-dark-2); color: rgba(255, 255, 255, .72); font-size: 15px; }
.tpc-foot__mriezka {
	display: grid; grid-template-columns: 1.5fr 1fr 1fr 1.1fr; gap: clamp(26px, 3vw, 46px);
	padding-top: clamp(48px, 6vw, 72px); padding-bottom: clamp(36px, 4vw, 52px);
}
.tpc-foot h3 { font-size: 16px; color: #fff; margin: 0 0 18px; letter-spacing: .02em; }
.tpc-foot ul { list-style: none; display: grid; gap: 10px; }
.tpc-foot a { color: rgba(255, 255, 255, .72); }
.tpc-foot a:hover { color: var(--tpc-acc); }
.tpc-foot__col--znacka p { margin: 18px 0 0; line-height: 1.7; }
.tpc-foot__region { display: flex; gap: 9px; align-items: flex-start; }
.tpc-foot__region .tpc-ico { width: 19px; height: 19px; color: var(--tpc-acc); margin-top: 3px; }
.tpc-foot__kont li a, .tpc-foot__kont li span { display: inline-flex; gap: 10px; align-items: center; }
.tpc-foot__kont .tpc-ico { width: 19px; height: 19px; color: var(--tpc-acc); }
.tpc-foot__cta { margin-top: 22px; }
.tpc-foot__spod { border-top: 1px solid rgba(255, 255, 255, .1); font-size: 13.5px; }
.tpc-foot__spod .tpc-in { display: flex; justify-content: space-between; gap: 16px; padding-top: 20px; padding-bottom: 20px; flex-wrap: wrap; }

/* ============================================================ mobilná lišta */
.tpc-mobil-lista { display: none; }

/* =============================================================== responzív */
@media (max-width: 1100px) {
	.tpc-mriezka--4 { grid-template-columns: repeat(2, 1fr); }
	.tpc-kroky { grid-template-columns: repeat(2, 1fr); }
	.tpc-foot__mriezka { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 980px) {
	.tpc-top__in { justify-content: center; gap: 14px; font-size: 12.5px; }
	.tpc-top__sp { display: none; }
	.tpc-head__in { min-height: 70px; }
	.tpc-burger {
		display: grid; gap: 5px; margin-left: auto; width: 46px; height: 46px; border-radius: 12px;
		background: var(--tpc-mint); border: 0; place-content: center; cursor: pointer; padding: 0;
	}
	.tpc-burger i { display: block; width: 22px; height: 2.5px; background: var(--tpc-dark); border-radius: 2px; transition: transform .22s ease, opacity .2s ease; }
	.tpc-burger[aria-expanded="true"] i:nth-child(1) { transform: translateY(7.5px) rotate(45deg); }
	.tpc-burger[aria-expanded="true"] i:nth-child(2) { opacity: 0; }
	.tpc-burger[aria-expanded="true"] i:nth-child(3) { transform: translateY(-7.5px) rotate(-45deg); }

	.tpc-nav {
		position: fixed; top: 0; right: 0; bottom: 0; width: min(88vw, 380px); background: #fff;
		flex-direction: column; align-items: stretch; gap: 2px; padding: 86px 22px 32px;
		transform: translateX(102%); transition: transform .26s ease; overflow-y: auto;
		box-shadow: -20px 0 60px rgba(9, 42, 38, .2); z-index: 130; margin-left: 0;
	}
	.tpc-nav.je-otvorene { transform: translateX(0); }
	/* Panel prekryje burger v hlavičke (je v tom istom stohovacom kontexte a má
	   vyšší z-index), takže X musí byť priamo v paneli — v jeho hornom odsadení. */
	.tpc-nav__zavri {
		display: grid; place-items: center; position: absolute; top: 16px; right: 16px;
		width: 46px; height: 46px; padding: 0; border: 0; border-radius: 12px; cursor: pointer;
		background: var(--tpc-mint); color: var(--tpc-dark);
	}
	.tpc-nav__zavri svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; }
	.tpc-nav__zavri:focus-visible { outline: 3px solid var(--tpc-acc); outline-offset: 2px; }
	.tpc-nav__a { font-size: 17px; padding: 14px 12px; justify-content: space-between; }
	.tpc-nav__sub { display: block; }
	.tpc-drop {
		position: static; transform: none; opacity: 1; visibility: visible; box-shadow: none;
		border: 0; border-left: 2px solid var(--tpc-line); border-radius: 0; padding: 2px 0 8px 12px;
		margin: 0 0 6px 14px; min-width: 0; display: none;
	}
	.tpc-nav__sub.je-otvorene .tpc-drop { display: grid; }
	.tpc-nav .tpc-drop { left: auto; transform: none; width: auto; }
	.tpc-nav__sub.je-otvorene .tpc-nav__sip { transform: rotate(180deg); }
	.tpc-drop a { font-size: 15px; padding: 9px 10px; }
	.tpc-nav__tel { margin: 14px 0 0; padding: 14px 12px; background: var(--tpc-mint); border-radius: 12px; justify-content: center; }
	.tpc-nav__cta { margin: 10px 0 0; }
	.tpc-nav__tien {
		display: block; position: fixed; inset: 0; background: rgba(9, 42, 38, .5); z-index: 125;
		opacity: 0; transition: opacity .26s ease;
	}
	/* Bez tohto by „display:block" prebil atribút [hidden] a priehľadná vrstva
	   by na mobile prekryla celý web a zjedla každé kliknutie. */
	.tpc-nav__tien[hidden] { display: none !important; }
	.tpc-nav__tien.je-vidno { opacity: 1; }
	body.je-zamknute { overflow: hidden; }

	.tpc-mriezka--3, .tpc-mriezka--2 { grid-template-columns: repeat(2, 1fr); }
	.tpc-hero--split { grid-template-columns: 1fr; }
	.tpc-hero--split .tpc-hero__foto { min-height: 0; aspect-ratio: 16 / 9; order: -1; }
	.tpc-hero--svetly .tpc-hero__foto { padding: 0; }
	.tpc-hero--svetly .tpc-hero__foto .tpc-foto { border-radius: 0; box-shadow: none; }
	.tpc-hero--svetly .tpc-stitok--hero { left: auto; right: 16px; bottom: 16px; }
	.tpc-hero--split .tpc-hero__foto::after { background: linear-gradient(180deg, rgba(9, 42, 38, .3) 0%, rgba(9, 42, 38, .6) 100%); }
	.tpc-hero__panel { padding: clamp(40px, 6vw, 64px) var(--tpc-gut); }
	.tpc-stitok--hero { left: auto; right: 16px; bottom: 16px; }
	.tpc-faq-split { grid-template-columns: 1fr; }
	.tpc-pas { grid-template-columns: 1fr; }
	.tpc-pas--obratene .tpc-pas__foto { order: 0; }
	.tpc-kontakt { grid-template-columns: 1fr; }
	.tpc-cennik--2 { grid-template-columns: 1fr; max-width: 620px; margin: 0 auto; }
	.tpc-cisla { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 720px) {
	body.tpc { font-size: 16px; }
	.tpc-mriezka--3, .tpc-mriezka--2, .tpc-mriezka--4 { grid-template-columns: 1fr; }
	.tpc-kroky { grid-template-columns: 1fr; gap: 22px; }
	.tpc-zoz--2 { grid-template-columns: 1fr; }
	.tpc-form__riadok { grid-template-columns: 1fr; }
	.tpc-foot__mriezka { grid-template-columns: 1fr; }
	.tpc-hero__akcie .tpc-btn, .tpc-phero__akcie .tpc-btn, .tpc-cta-pas__btn .tpc-btn { width: 100%; }
	.tpc-cta-pas .tpc-in { display: block; }
	.tpc-cta-pas__btn { margin-top: 22px; }
	.tpc-stitok { position: static; max-width: none; margin-top: -1px; border-radius: 0 0 var(--tpc-r) var(--tpc-r); box-shadow: none; border-top: 1px solid var(--tpc-line); }
	.tpc-stitok--hero { position: absolute; left: 12px; right: 12px; bottom: 12px; margin-top: 0;
		border-radius: var(--tpc-r); border-top: 0; box-shadow: var(--tpc-tien-h); }
	.tpc-pas__foto { box-shadow: none; }

	.tpc-mobil-lista {
		display: grid; grid-template-columns: 1fr 1fr; gap: 0; position: fixed; left: 0; right: 0; bottom: 0;
		z-index: 110; background: #fff; border-top: 1px solid var(--tpc-line); box-shadow: 0 -6px 20px rgba(9, 42, 38, .1);
	}
	.tpc-mobil-lista a {
		display: flex; align-items: center; justify-content: center; gap: 9px; padding: 15px 8px;
		font-family: var(--tpc-head); font-weight: 700; font-size: 15px; color: var(--tpc-dark);
	}
	.tpc-mobil-lista a.je-acc { background: var(--tpc-acc-btn); color: #fff; }
	.tpc-mobil-lista .tpc-ico { width: 19px; height: 19px; }
	body.tpc { padding-bottom: 56px; }
}

/* Fotky v rámoch musia vyplniť plochu — základné img { height:auto } platí
   len pre obrázky bez vlastného rámu. */
.tpc-hero__foto img, .tpc-phero__foto img, .tpc-karta__foto img { height: 100%; object-fit: cover; }
.tpc-hero__foto .tpc-foto, .tpc-phero__foto .tpc-foto, .tpc-karta__foto .tpc-foto { height: 100%; }
.tpc-pas__foto img { height: auto; }

/* Blokový obal obrázka (kvôli wpautop) musí vyplniť rám rovnako ako samotná fotka. */
.tpc-foto { height: 100%; }
.tpc-pas__foto .tpc-foto, .tpc-hl .tpc-foto { height: auto; }
.tpc-karta__akcia { margin-top: auto; }

/* ============================================ obaly ikon (proti wpautop)
   Každý inline prvok má vlastný blokový obal — inak okolo neho wpautop vyrobí
   <p>, ktoré sa v flexe správa ako ďalšia položka a rozhodí rozloženie. */
.tpc-stitok__ico, .tpc-segment__ico, .tpc-kontakt__ico, .tpc-zoz__ico { display: flex; flex: none; }
.tpc-cena__ico {
	width: 46px; height: 46px; border-radius: 13px; display: grid; place-items: center;
	background: var(--tpc-mint); color: var(--tpc-dark); margin-bottom: 16px;
}
.tpc-cena__ico .tpc-ico { width: 24px; height: 24px; }
.tpc-cena__akcia { margin-top: auto; }
.tpc-zoz__ico { margin-top: 3px; }
.tpc-zoz li .tpc-zoz__ico .tpc-ico { margin-top: 0; }
/* Zvyšné prázdne odstavce po wpautop nesmú v mriežkach zaberať riadok. */
body.tpc p:empty { display: none; }

/* ================================================================= cenník */
.tpc-cennik { display: grid; gap: clamp(18px, 2.4vw, 32px); max-width: 620px; margin: 0 auto; }
.tpc-cennik--2 { grid-template-columns: 1fr 1fr; max-width: none; }
/* mobil hneď za základom — v bloku @media vyššie v súbore by prehral poradím */
@media (max-width: 980px) {
	.tpc-cennik--2 { grid-template-columns: 1fr; max-width: 620px; }
}
.tpc-cennik__blok {
	background: #fff; border: 1px solid var(--tpc-line); border-radius: var(--tpc-r);
	padding: clamp(22px, 2.6vw, 34px); box-shadow: var(--tpc-tien);
}
.tpc-cennik__blok h3 { margin: 0 0 4px; }
.tpc-cennik__pod { color: var(--tpc-mut); font-size: 15px; margin: 0 0 14px; }
body.tpc .tpc-cennik__tab { width: 100%; border: 0; border-collapse: collapse; margin: 0; font-size: 16px; background: transparent; }
body.tpc .tpc-cennik__tab th,
body.tpc .tpc-cennik__tab td {
	padding: 11px 0; border: 0; border-bottom: 1px solid var(--tpc-line);
	vertical-align: baseline; background: transparent; line-height: 1.4;
}
body.tpc .tpc-cennik__tab tr:last-child th,
body.tpc .tpc-cennik__tab tr:last-child td { border-bottom: 0; }
body.tpc .tpc-cennik__tab th { text-align: left; font-weight: 500; color: var(--tpc-ink); padding-right: 16px; font-size: 16px; }
body.tpc .tpc-cennik__tab td {
	text-align: right; white-space: nowrap; font-family: var(--tpc-head); font-weight: 800;
	color: var(--tpc-dark); font-size: 17px;
}
body.tpc .tpc-cennik__pozn {
	list-style: none; display: grid; gap: 6px; max-width: 760px; margin: 22px auto 0; padding: 0;
	color: var(--tpc-mut); font-size: 14.5px; text-align: center;
}
body.tpc .tpc-cennik__pozn li { list-style: none; margin: 0; padding: 0; }
body.tpc .tpc-cennik__pozn strong { color: var(--tpc-ink); font-weight: 700; }
.tpc-cennik__akcia { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
.tpc-cennik__akcia--stred { justify-content: center; }
.tpc-cennik + .tpc-cennik__pozn { text-align: center; }
.tpc-sek--mint .tpc-cennik__blok { box-shadow: none; }

/* Mriežka s 3 stĺpcami: osamotenú poslednú kartu (10 služieb = 3+3+3+1)
   posunieme do stredu, nech riadok nevyzerá ako chyba. */
@media (min-width: 981px) {
	.tpc-mriezka--3 > .tpc-karta:last-child:nth-child(3n+1) { grid-column: 2; }
}

/* ===================================================== poistka špecificity
   Divi tlačí farby cez „body #page-container …" — tieto pravidlá musia ostať
   posledné, aby nadpisy v tmavých sekciách neostali tmavé na tmavom. */
body.tpc .tpc-sek--dark h1, body.tpc .tpc-sek--dark h2, body.tpc .tpc-sek--dark h3,
body.tpc .tpc-sek--dark h4, body.tpc .tpc-cta-pas h2, body.tpc .tpc-hero h1,
body.tpc .tpc-phero h1, body.tpc .tpc-foot h3 { color: #fff; }
body.tpc .tpc-hl__nad { color: var(--tpc-acc); }
body.tpc .tpc-btn--acc, body.tpc .tpc-btn--acc:hover,
body.tpc .tpc-btn--dark, body.tpc .tpc-btn--dark:hover,
body.tpc .tpc-btn--ghost, body.tpc .tpc-btn--ghost:hover { color: #fff; }
body.tpc .tpc-btn--linka, body.tpc .tpc-btn--linka:hover { color: var(--tpc-dark); }
body.tpc .tpc-karta h3 { color: var(--tpc-dark); }
body.tpc .tpc-hero--svetly h1 { color: var(--tpc-dark); }
body.tpc .tpc-hero--svetly .tpc-hero__bod { color: var(--tpc-dark); }
body.tpc .tpc-karta__viac { color: var(--tpc-dark); }
body.tpc .tpc-karta:hover .tpc-karta__viac { color: var(--tpc-acc); }
body.tpc .tpc-nav__a { color: var(--tpc-dark); }
body.tpc .tpc-nav__a.je-tu, body.tpc .tpc-nav__a:hover { color: var(--tpc-acc); }
body.tpc .tpc-nav__tel { color: var(--tpc-dark); }
body.tpc .tpc-drop a { color: var(--tpc-ink); }
body.tpc .tpc-drop a:hover { color: var(--tpc-dark); }
body.tpc .tpc-top__i { color: var(--tpc-dark); }
body.tpc .tpc-top__i:hover { color: var(--tpc-acc); }
body.tpc .tpc-foot a:not(.tpc-btn) { color: rgba(255, 255, 255, .72); }
body.tpc .tpc-foot a:not(.tpc-btn):hover { color: var(--tpc-acc); }
body.tpc .tpc-suhlas a { color: var(--tpc-dark-3); }
body.tpc .tpc-form--dark .tpc-suhlas a { color: #fff; text-decoration: underline; }
body.tpc .tpc-hero__nad { color: #FFD9C0; }
body.tpc .tpc-kontakt__pol a { color: var(--tpc-dark); }
body.tpc .tpc-kontakt__pol a:hover { color: var(--tpc-acc); }
body.tpc .tpc-sek--dark .tpc-kontakt__pol a,
body.tpc .tpc-sek--dark .tpc-kontakt__pol span,
body.tpc .tpc-sek--dark .tpc-kontakt__pol b { color: #fff; }
body.tpc .tpc-sek--dark .tpc-kontakt__pol a:hover { color: var(--tpc-acc); }
body.tpc .tpc-segment a { color: var(--tpc-dark); }
body.tpc .tpc-segment a:hover { color: var(--tpc-acc); }
body.tpc .tpc-drob a { color: rgba(255, 255, 255, .62); }
body.tpc .tpc-drob a:hover { color: #fff; }
body.tpc .tpc-faq__telo a { color: var(--tpc-dark-3); }
body.tpc .tpc-mobil-lista a { color: var(--tpc-dark); }
body.tpc .tpc-mobil-lista a.je-acc { color: #fff; }
body.tpc .tpc-skip, body.tpc .tpc-skip:focus { color: #fff; }

/* ======================================== mestské stránky a odkazy na mestá (1. 10. 2026)
   Stoja ZA poistkou špecificity: tá farbí odkazy v FAQ na --tpc-dark-3 bez
   podčiarknutia, takže odkaz v texte by sa nedal spoznať. Rovnaká špecificita,
   neskoršie poradie → vyhrá toto. */
.tpc-mesto-txt { max-width: 780px; }
.tpc-mesto-txt p { margin: 0 0 14px; }
.tpc-mesto-txt p:last-of-type { margin-bottom: 0; }
body.tpc a.tpc-odkaz {
	color: var(--tpc-acc); text-decoration: underline;
	text-decoration-thickness: 1px; text-underline-offset: 3px;
}
body.tpc a.tpc-odkaz:hover { color: var(--tpc-dark); }
/* v kontaktnej karte ostanú mestá tmavé ako telefón a e-mail, len podčiarknuté */
body.tpc .tpc-kontakt__pol a.tpc-odkaz { color: var(--tpc-dark); text-decoration-color: rgba(14, 59, 54, .35); }
body.tpc .tpc-kontakt__pol a.tpc-odkaz:hover { color: var(--tpc-acc); }
body.tpc .tpc-foot__region a {
	text-decoration: underline; text-decoration-thickness: 1px;
	text-underline-offset: 3px; text-decoration-color: rgba(255, 255, 255, .35);
}
.tpc-duvod__akcia { margin-top: 10px; }
body.tpc .tpc-duvod__viac {
	display: inline-flex; align-items: center; gap: 6px;
	font-family: var(--tpc-head); font-weight: 700; font-size: 15px; color: var(--tpc-dark);
}
body.tpc .tpc-duvod__viac .tpc-ico { width: 17px; height: 17px; transition: transform .2s ease; }
body.tpc .tpc-duvod__viac:hover { color: var(--tpc-acc); }
body.tpc .tpc-duvod__viac:hover .tpc-ico { transform: translateX(4px); }
/* krátke textové sekcie mestských stránok: nadpis bližšie k textu */
.tpc-mesto-txt .tpc-hl { margin-bottom: 20px; }
