@charset "UTF-8";
/* ==========================================================================
   BELTing — hlavní styl šablony
   Barevnost vychází z firemního loga (#0a5782 / #1086c9).
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Proměnné
   -------------------------------------------------------------------------- */
:root {
	--bt-blue-900: #062a42;
	--bt-blue-800: #08405f;
	--bt-blue-700: #0a5782;
	--bt-blue-600: #0e6fa4;
	--bt-blue-500: #1086c9;
	--bt-blue-400: #36acef;
	--bt-blue-100: #d4ecfa;
	--bt-blue-50:  #eef7fd;

	--bt-amber:    #f2a007;
	--bt-amber-dk: #c07d00;

	--bt-ink:      #14202b;
	--bt-body:     #3d4c59;
	--bt-muted:    #6b7b89;
	--bt-line:     #dfe6ed;
	--bt-line-soft:#eef2f6;
	--bt-bg:       #ffffff;
	--bt-bg-alt:   #f5f8fa;

	--bt-success:  #1f8a4c;
	--bt-error:    #c0392b;

	--bt-radius:   10px;
	--bt-radius-sm: 6px;
	--bt-shadow:   0 1px 2px rgba(6, 42, 66, .06), 0 8px 24px rgba(6, 42, 66, .07);
	--bt-shadow-lg:0 2px 4px rgba(6, 42, 66, .06), 0 18px 46px rgba(6, 42, 66, .13);

	--bt-container: 1220px;
	--bt-gutter: clamp(1rem, 4vw, 2.5rem);

	--bt-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;
	--bt-header-h: 76px;
}

/* --------------------------------------------------------------------------
   2. Reset a základní typografie
   -------------------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
	}
}

body {
	margin: 0;
	font-family: var(--bt-font);
	font-size: 1.0625rem;
	line-height: 1.7;
	color: var(--bt-body);
	background: var(--bt-bg);
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
}

h1, h2, h3, h4, h5, h6 {
	margin: 0 0 .6em;
	color: var(--bt-ink);
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: -.015em;
}

h1 { font-size: clamp(2rem, 4.4vw, 3rem); }
h2 { font-size: clamp(1.6rem, 3vw, 2.25rem); }
h3 { font-size: clamp(1.2rem, 2vw, 1.45rem); }
h4 { font-size: 1.1rem; }

p { margin: 0 0 1.15em; }
p:last-child { margin-bottom: 0; }

a {
	color: var(--bt-blue-600);
	text-decoration: underline;
	text-underline-offset: .18em;
	text-decoration-thickness: 1px;
	transition: color .15s ease;
}
a:hover, a:focus { color: var(--bt-blue-800); }

img, svg, video { max-width: 100%; height: auto; display: block; }

ul, ol { margin: 0 0 1.15em; padding-left: 1.3em; }
li { margin-bottom: .35em; }

strong, b { color: var(--bt-ink); font-weight: 650; }

hr {
	border: 0;
	border-top: 1px solid var(--bt-line);
	margin: 2.5rem 0;
}

:focus-visible {
	outline: 3px solid var(--bt-blue-400);
	outline-offset: 2px;
	border-radius: 3px;
}

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0 0 0 0);
	white-space: nowrap; border: 0;
}

.skip-link {
	position: absolute;
	left: 50%;
	top: 0;
	transform: translate(-50%, -140%);
	z-index: 999;
	background: var(--bt-blue-700);
	color: #fff;
	padding: .7rem 1.4rem;
	border-radius: 0 0 var(--bt-radius-sm) var(--bt-radius-sm);
	text-decoration: none;
	font-weight: 600;
	transition: transform .18s ease;
}
.skip-link:focus { transform: translate(-50%, 0); color: #fff; }

/* --------------------------------------------------------------------------
   3. Layout
   -------------------------------------------------------------------------- */
.bt-container {
	width: 100%;
	max-width: var(--bt-container);
	margin-inline: auto;
	padding-inline: var(--bt-gutter);
}

.bt-container--narrow { max-width: 860px; }

.bt-section { padding-block: clamp(3rem, 7vw, 5.5rem); }
.bt-section--tight { padding-block: clamp(2rem, 4vw, 3rem); }
.bt-section--alt { background: var(--bt-bg-alt); }
.bt-section--dark {
	background: linear-gradient(160deg, var(--bt-blue-900) 0%, var(--bt-blue-700) 100%);
	color: #cfe4f2;
}
.bt-section--dark h2,
.bt-section--dark h3 { color: #fff; }
.bt-section--dark a { color: #fff; }

.bt-section__head { max-width: 760px; margin-bottom: clamp(1.8rem, 4vw, 3rem); }
.bt-section__head--center { margin-inline: auto; text-align: center; }
.bt-section__head p { color: var(--bt-muted); font-size: 1.1rem; }
.bt-section--dark .bt-section__head p { color: #a8c9e0; }

.bt-eyebrow {
	display: inline-block;
	font-size: .8rem;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--bt-blue-500);
	margin-bottom: .7rem;
}
.bt-section--dark .bt-eyebrow { color: var(--bt-blue-400); }

/* --------------------------------------------------------------------------
   4. Tlačítka
   -------------------------------------------------------------------------- */
.bt-btn {
	display: inline-flex;
	align-items: center;
	gap: .55rem;
	padding: .85rem 1.6rem;
	border: 1px solid transparent;
	border-radius: var(--bt-radius-sm);
	background: var(--bt-blue-600);
	color: #fff;
	font: inherit;
	font-weight: 650;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
	transition: background .16s ease, transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
.bt-btn:hover, .bt-btn:focus {
	background: var(--bt-blue-800);
	color: #fff;
	transform: translateY(-1px);
	box-shadow: 0 8px 20px rgba(10, 87, 130, .25);
}
.bt-btn:active { transform: translateY(0); }

.bt-btn--ghost {
	background: transparent;
	color: var(--bt-blue-700);
	border-color: var(--bt-line);
}
.bt-btn--ghost:hover, .bt-btn--ghost:focus {
	background: var(--bt-blue-50);
	color: var(--bt-blue-800);
	border-color: var(--bt-blue-100);
	box-shadow: none;
}

.bt-btn--light {
	background: #fff;
	color: var(--bt-blue-800);
}
.bt-btn--light:hover, .bt-btn--light:focus {
	background: var(--bt-blue-50);
	color: var(--bt-blue-900);
}

.bt-btn--outline-light {
	background: transparent;
	color: #fff;
	border-color: rgba(255, 255, 255, .45);
}
.bt-btn--outline-light:hover, .bt-btn--outline-light:focus {
	background: rgba(255, 255, 255, .12);
	color: #fff;
	border-color: #fff;
	box-shadow: none;
}

.bt-btn--lg { padding: 1rem 2rem; font-size: 1.05rem; }

.bt-btn__arrow { transition: transform .16s ease; }
.bt-btn:hover .bt-btn__arrow { transform: translateX(3px); }

/* --------------------------------------------------------------------------
   5. Horní lišta + hlavička
   -------------------------------------------------------------------------- */
.bt-topbar {
	background: var(--bt-blue-900);
	color: #a8c9e0;
	font-size: .875rem;
}
.bt-topbar__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: .5rem 1.5rem;
	min-height: 40px;
	padding-block: .35rem;
}
.bt-topbar__contact {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .35rem 1.4rem;
	margin: 0;
	padding: 0;
	list-style: none;
}
.bt-topbar__contact li { margin: 0; }
.bt-topbar a {
	color: #dceaf5;
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	gap: .4rem;
}
.bt-topbar a:hover { color: #fff; text-decoration: underline; }
.bt-topbar svg { flex: none; opacity: .75; }

.bt-topbar__links {
	display: flex;
	flex-wrap: wrap;
	gap: .3rem 1.25rem;
	margin: 0;
	padding: 0;
	list-style: none;
}
.bt-topbar__links li { margin: 0; }

@media (max-width: 860px) {
	.bt-topbar__links { display: none; }
	.bt-topbar__inner { justify-content: center; }
}

.bt-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: #fff;
	border-bottom: 1px solid var(--bt-line);
	transition: box-shadow .2s ease;
}
/*
 * Pozor: na .bt-header se nesmí použít backdrop-filter, filter ani transform.
 * Kterákoli z těchto vlastností by z hlavičky udělala containing block pro
 * position:fixed a vysouvací mobilní menu uvnitř ní by se zmenšilo
 * na velikost hlavičky místo celé obrazovky.
 */
.bt-header.is-stuck { box-shadow: 0 4px 18px rgba(6, 42, 66, .09); }

.bt-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	min-height: var(--bt-header-h);
}

.bt-brand {
	display: inline-flex;
	align-items: center;
	gap: .75rem;
	text-decoration: none;
	flex: none;
	padding-block: .5rem;
}
.bt-brand img { max-height: 46px; width: auto; }
.bt-brand__text {
	display: flex;
	flex-direction: column;
	line-height: 1.1;
}
.bt-brand__name {
	font-size: 1.5rem;
	font-weight: 800;
	color: var(--bt-blue-700);
	letter-spacing: -.02em;
}
.bt-brand__tag {
	font-size: .72rem;
	font-weight: 600;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--bt-muted);
}

.bt-header__actions { display: flex; align-items: center; gap: .6rem; flex: none; }
.bt-header__actions .bt-btn { padding: .7rem 1.15rem; font-size: .93rem; }

@media (max-width: 1240px) {
	.bt-header__actions .bt-btn { display: none; }
}

/* --- hlavní navigace (desktop) --- */
.bt-nav { margin-left: auto; min-width: 0; }
.bt-nav__list {
	display: flex;
	align-items: center;
	gap: .15rem;
	margin: 0;
	padding: 0;
	list-style: none;
}
.bt-nav__list li { margin: 0; position: relative; }
.bt-nav__list > li {
	display: flex;
	align-items: center;
	flex-wrap: nowrap;
}

.bt-nav__list > li > a {
	display: flex;
	align-items: center;
	gap: .3rem;
	padding: .65rem .7rem;
	border-radius: var(--bt-radius-sm);
	color: var(--bt-ink);
	font-weight: 600;
	font-size: .93rem;
	text-decoration: none;
	white-space: nowrap;
	transition: background .15s ease, color .15s ease;
}
.bt-nav__list > li > a:hover,
.bt-nav__list > li > a:focus,
.bt-nav__list > li.is-open > a {
	background: var(--bt-blue-50);
	color: var(--bt-blue-700);
}

.bt-nav__list > li.current-menu-item > a,
.bt-nav__list > li.current-menu-ancestor > a,
.bt-nav__list > li.current-page-ancestor > a {
	color: var(--bt-blue-700);
	box-shadow: inset 0 -3px 0 var(--bt-blue-500);
}

.bt-nav__toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	margin-left: -.6rem;
	padding: 0;
	background: none;
	border: 0;
	border-radius: 4px;
	color: var(--bt-muted);
	cursor: pointer;
	line-height: 0;
	flex: none;
}
.bt-nav__toggle:hover { color: var(--bt-blue-700); background: var(--bt-blue-100); }
.bt-nav__toggle svg { transition: transform .18s ease; }
.bt-nav__list > li.is-open > .bt-nav__toggle svg { transform: rotate(180deg); }
.bt-nav .sub-menu { flex-basis: 100%; }

/* --- rozbalovací podmenu --- */
.bt-nav .sub-menu {
	position: absolute;
	top: calc(100% + 6px);
	left: 0;
	min-width: 270px;
	margin: 0;
	padding: .45rem;
	list-style: none;
	background: #fff;
	border: 1px solid var(--bt-line);
	border-radius: var(--bt-radius);
	box-shadow: var(--bt-shadow-lg);
	opacity: 0;
	visibility: hidden;
	transform: translateY(-6px);
	transition: opacity .16s ease, transform .16s ease, visibility .16s;
	z-index: 60;
}
.bt-nav > .bt-nav__list > li:hover > .sub-menu,
.bt-nav > .bt-nav__list > li:focus-within > .sub-menu,
.bt-nav > .bt-nav__list > li.is-open > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}
.bt-nav .sub-menu li { margin: 0; }
.bt-nav .sub-menu a {
	display: block;
	padding: .6rem .8rem;
	border-radius: var(--bt-radius-sm);
	color: var(--bt-body);
	font-size: .95rem;
	font-weight: 550;
	text-decoration: none;
	transition: background .14s ease, color .14s ease;
}
.bt-nav .sub-menu a:hover,
.bt-nav .sub-menu a:focus { background: var(--bt-blue-50); color: var(--bt-blue-700); }
.bt-nav .sub-menu .current-menu-item > a { color: var(--bt-blue-700); background: var(--bt-blue-50); }

/* --- hamburger --- */
.bt-burger {
	display: none;
	width: 46px; height: 46px;
	align-items: center;
	justify-content: center;
	background: transparent;
	border: 1px solid var(--bt-line);
	border-radius: var(--bt-radius-sm);
	cursor: pointer;
	color: var(--bt-ink);
	flex: none;
}
.bt-burger:hover { background: var(--bt-blue-50); }
.bt-burger__bar {
	display: block;
	position: relative;
	width: 20px; height: 2px;
	background: currentColor;
	border-radius: 2px;
	transition: background .16s ease;
}
.bt-burger__bar::before,
.bt-burger__bar::after {
	content: "";
	position: absolute;
	left: 0;
	width: 20px; height: 2px;
	background: currentColor;
	border-radius: 2px;
	transition: transform .2s ease, top .2s ease;
}
.bt-burger__bar::before { top: -6px; }
.bt-burger__bar::after  { top: 6px; }
.bt-burger[aria-expanded="true"] .bt-burger__bar { background: transparent; }
.bt-burger[aria-expanded="true"] .bt-burger__bar::before { top: 0; transform: rotate(45deg); }
.bt-burger[aria-expanded="true"] .bt-burger__bar::after  { top: 0; transform: rotate(-45deg); }

/* --- mobilní navigace --- */
@media (max-width: 1240px) {
	.bt-burger { display: inline-flex; }

	.bt-nav {
		position: fixed;
		inset: 0 0 0 auto;
		width: min(390px, 88vw);
		margin: 0;
		padding: 1rem 1rem 3rem;
		background: #fff;
		border-left: 1px solid var(--bt-line);
		box-shadow: -12px 0 40px rgba(6, 42, 66, .16);
		overflow-y: auto;
		transform: translateX(100%);
		transition: transform .26s ease;
		z-index: 120;
	}
	.bt-nav.is-open { transform: translateX(0); }

	.bt-nav__close {
		display: flex;
		justify-content: flex-end;
		margin-bottom: .5rem;
	}

	/* Na mobilu jde menu pod sebe; každá položka je řádek s odkazem
	   a tlačítkem podmenu, které se rozbalí pod ním. */
	.bt-nav__list { display: block; }
	.bt-nav__list > li { flex-wrap: wrap; }

	.bt-nav__list > li > a {
		flex: 1;
		padding: .9rem .75rem;
		font-size: 1.05rem;
		border-radius: var(--bt-radius-sm);
	}
	.bt-nav__list > li.current-menu-item > a { box-shadow: none; background: var(--bt-blue-50); }

	.bt-nav__toggle {
		width: 40px;
		height: 40px;
		margin-left: 0;
		border: 1px solid var(--bt-line);
	}

	.bt-nav .sub-menu {
		position: static;
		min-width: 0;
		opacity: 1;
		visibility: visible;
		transform: none;
		border: 0;
		border-left: 2px solid var(--bt-blue-100);
		border-radius: 0;
		box-shadow: none;
		margin: .1rem 0 .5rem .9rem;
		padding: 0 0 0 .5rem;
		display: none;
	}
	.bt-nav .sub-menu.is-open { display: block; }

	.bt-nav__cta { margin-top: 1.25rem; display: grid; gap: .6rem; }
	.bt-nav__cta .bt-btn { justify-content: center; }
}

@media (min-width: 1241px) {
	.bt-nav__close, .bt-nav__cta { display: none; }
}

.bt-overlay {
	position: fixed;
	inset: 0;
	background: rgba(6, 42, 66, .45);
	opacity: 0;
	visibility: hidden;
	transition: opacity .25s ease, visibility .25s;
	z-index: 110;
}
.bt-overlay.is-visible { opacity: 1; visibility: visible; }

body.bt-nav-open { overflow: hidden; }

/* --------------------------------------------------------------------------
   6. Hero
   -------------------------------------------------------------------------- */
.bt-hero {
	position: relative;
	display: flex;
	align-items: center;
	min-height: clamp(430px, 62vh, 640px);
	background: var(--bt-blue-900);
	background-size: cover;
	background-position: center;
	color: #fff;
	overflow: hidden;
}
.bt-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(100deg, rgba(6, 42, 66, .93) 0%, rgba(6, 42, 66, .78) 45%, rgba(8, 64, 95, .45) 100%);
}
.bt-hero__inner { position: relative; z-index: 2; padding-block: clamp(3rem, 8vw, 5.5rem); }
.bt-hero__content { max-width: 680px; }

.bt-hero__eyebrow {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	padding: .4rem .9rem;
	margin-bottom: 1.25rem;
	background: rgba(255, 255, 255, .12);
	border: 1px solid rgba(255, 255, 255, .2);
	border-radius: 100px;
	font-size: .82rem;
	font-weight: 600;
	letter-spacing: .04em;
	color: #dceaf5;
}
.bt-hero__eyebrow::before {
	content: "";
	width: 7px; height: 7px;
	border-radius: 50%;
	background: var(--bt-amber);
}

.bt-hero h1 {
	color: #fff;
	margin-bottom: .5em;
	text-wrap: balance;
}
.bt-hero__lead {
	font-size: clamp(1.05rem, 1.8vw, 1.25rem);
	color: #c6dced;
	max-width: 44em;
	margin-bottom: 2rem;
}
.bt-hero__actions { display: flex; flex-wrap: wrap; gap: .75rem; }

/* pruh s čísly pod herem */
.bt-stats {
	background: var(--bt-blue-800);
	color: #fff;
}
.bt-stats__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
	gap: 1px;
	background: rgba(255, 255, 255, .14);
}
.bt-stat {
	background: var(--bt-blue-800);
	padding: 1.5rem clamp(1rem, 2vw, 1.75rem);
	text-align: center;
}
.bt-stat__num {
	display: block;
	font-size: clamp(1.7rem, 3vw, 2.3rem);
	font-weight: 800;
	line-height: 1.1;
	color: #fff;
	letter-spacing: -.02em;
}
.bt-stat__label {
	display: block;
	margin-top: .3rem;
	font-size: .9rem;
	color: #a8c9e0;
}

/* --------------------------------------------------------------------------
   7. Karty (produktové rozcestníky)
   -------------------------------------------------------------------------- */
.bt-cards {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr));
	gap: clamp(1rem, 2.2vw, 1.75rem);
	margin: 0 0 1.5rem;
	padding: 0;
	list-style: none;
}
.bt-cards--2 { grid-template-columns: repeat(auto-fill, minmax(min(100%, 420px), 1fr)); }
.bt-cards--4 { grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr)); }

.bt-card {
	position: relative;
	display: flex;
	flex-direction: column;
	margin: 0;
	background: #fff;
	border: 1px solid var(--bt-line);
	border-radius: var(--bt-radius);
	overflow: hidden;
	transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.bt-card:has(.bt-card__link:hover),
.bt-card:has(.bt-card__link:focus-visible) {
	transform: translateY(-3px);
	box-shadow: var(--bt-shadow);
	border-color: var(--bt-blue-100);
}

.bt-card__media {
	position: relative;
	aspect-ratio: 3 / 2;
	background: var(--bt-blue-50);
	overflow: hidden;
}
.bt-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .4s ease;
}
.bt-card:has(.bt-card__link:hover) .bt-card__media img { transform: scale(1.04); }

.bt-card__placeholder {
	position: absolute;
	inset: 0;
	display: grid;
	place-items: center;
	background: linear-gradient(140deg, var(--bt-blue-50), var(--bt-blue-100));
	color: var(--bt-blue-500);
}

.bt-card__body {
	display: flex;
	flex-direction: column;
	flex: 1;
	padding: 1.35rem 1.4rem 1.5rem;
}
.bt-card__title {
	font-size: 1.2rem;
	margin-bottom: .5rem;
}
.bt-card__title a { color: inherit; text-decoration: none; }
.bt-card__text {
	color: var(--bt-muted);
	font-size: .97rem;
	margin-bottom: 1rem;
}
.bt-card__more {
	margin-top: auto;
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	font-weight: 650;
	font-size: .95rem;
	color: var(--bt-blue-600);
	text-decoration: none;
}
.bt-card__more svg { transition: transform .16s ease; }
.bt-card:has(.bt-card__link:hover) .bt-card__more svg { transform: translateX(3px); }

/* neviditelný odkaz přes celou kartu */
.bt-card__link::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}

/* jednoduchá dlaždice bez obrázku */
.bt-tiles {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr));
	gap: 1rem;
	margin: 0 0 1.5rem;
	padding: 0;
	list-style: none;
}
.bt-tile {
	margin: 0;
	padding: 1.4rem 1.5rem;
	background: #fff;
	border: 1px solid var(--bt-line);
	border-left: 3px solid var(--bt-blue-500);
	border-radius: var(--bt-radius-sm);
}
.bt-tile h3 { font-size: 1.08rem; margin-bottom: .35rem; }
.bt-tile p { color: var(--bt-muted); font-size: .95rem; }

/* --------------------------------------------------------------------------
   8. Produktový blok (detail výrobku)
   -------------------------------------------------------------------------- */
.bt-product {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: clamp(1.25rem, 3vw, 2.5rem);
	padding: clamp(1.25rem, 3vw, 2rem);
	margin: 0 0 1.5rem;
	background: #fff;
	border: 1px solid var(--bt-line);
	border-radius: var(--bt-radius);
}
@media (min-width: 780px) {
	.bt-product--has-media { grid-template-columns: 340px minmax(0, 1fr); align-items: start; }
	.bt-product--media-right { grid-template-columns: minmax(0, 1fr) 340px; }
	.bt-product--media-right .bt-product__media { order: 2; }
}
.bt-product__media {
	border-radius: var(--bt-radius-sm);
	overflow: hidden;
	background: var(--bt-blue-50);
	border: 1px solid var(--bt-line-soft);
}
.bt-product__media img { width: 100%; }
.bt-product__title {
	font-size: clamp(1.25rem, 2.2vw, 1.5rem);
	margin-bottom: .2rem;
}
.bt-product__subtitle {
	display: block;
	color: var(--bt-blue-600);
	font-size: .95rem;
	font-weight: 600;
	margin-bottom: 1rem;
}
.bt-product__body > :last-child { margin-bottom: 0; }

/* seznam vlastností s odrážkou-fajfkou */
.bt-features { list-style: none; margin: 0 0 1.15em; padding: 0; }
.bt-features li {
	position: relative;
	padding-left: 1.75rem;
	margin-bottom: .5rem;
}
.bt-features li::before {
	content: "";
	position: absolute;
	left: 0; top: .55em;
	width: 1.05rem; height: 1.05rem;
	margin-top: -.52em;
	border-radius: 50%;
	background: var(--bt-blue-50);
	box-shadow: inset 0 0 0 1px var(--bt-blue-100);
}
.bt-features li::after {
	content: "";
	position: absolute;
	left: .32rem; top: .55em;
	width: .38rem; height: .62rem;
	margin-top: -.35em;
	border: solid var(--bt-blue-600);
	border-width: 0 2px 2px 0;
	transform: rotate(45deg);
}

/* --------------------------------------------------------------------------
   9. Soubory ke stažení
   -------------------------------------------------------------------------- */
.bt-files {
	margin: 0 0 1.75rem;
	border: 1px solid var(--bt-line);
	border-radius: var(--bt-radius);
	overflow: hidden;
	background: #fff;
}
.bt-files__title {
	margin: 0;
	padding: .9rem 1.25rem;
	background: var(--bt-bg-alt);
	border-bottom: 1px solid var(--bt-line);
	font-size: 1.05rem;
	color: var(--bt-ink);
}
.bt-files__note {
	margin: 0;
	padding: .55rem 1.25rem;
	background: var(--bt-bg-alt);
	border-bottom: 1px solid var(--bt-line);
	color: var(--bt-muted);
	font-size: .92rem;
}
.bt-files__list { margin: 0; padding: 0; list-style: none; }
.bt-files__list li { margin: 0; border-bottom: 1px solid var(--bt-line-soft); }
.bt-files__list li:last-child { border-bottom: 0; }

.bt-file {
	display: flex;
	align-items: center;
	gap: .85rem;
	padding: .8rem 1.25rem;
	color: var(--bt-body);
	text-decoration: none;
	transition: background .14s ease;
}
.bt-file:hover, .bt-file:focus { background: var(--bt-blue-50); color: var(--bt-blue-800); }
.bt-file__icon {
	flex: none;
	width: 34px; height: 34px;
	display: grid;
	place-items: center;
	border-radius: var(--bt-radius-sm);
	background: #fdecec;
	color: #c0392b;
	font-size: .62rem;
	font-weight: 800;
	letter-spacing: .02em;
}
.bt-file__icon--gif { background: var(--bt-blue-50); color: var(--bt-blue-600); }
.bt-file__icon--vid { background: #eef3ff; color: #3b5bdb; }
.bt-file__label { flex: 1; font-weight: 550; }
.bt-file__meta { flex: none; color: var(--bt-muted); font-size: .87rem; white-space: nowrap; }

/* položka bez souboru (na vyžádání) */
.bt-file--none { color: var(--bt-muted); font-style: italic; cursor: default; }
.bt-file--none:hover { background: transparent; color: var(--bt-muted); }
.bt-file--none .bt-file__icon { background: var(--bt-line-soft); color: var(--bt-muted); }

/* --------------------------------------------------------------------------
   10. Vnitřní stránky — hlavička a obsah
   -------------------------------------------------------------------------- */
.bt-pagehead {
	position: relative;
	padding-block: clamp(2.25rem, 5vw, 3.5rem);
	background: linear-gradient(150deg, var(--bt-blue-900) 0%, var(--bt-blue-700) 100%);
	color: #fff;
	overflow: hidden;
}
.bt-pagehead::after {
	content: "";
	position: absolute;
	right: -80px; top: -60px;
	width: 380px; height: 380px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(54, 172, 239, .28) 0%, transparent 68%);
	pointer-events: none;
}
.bt-pagehead__inner { position: relative; z-index: 2; }
.bt-pagehead h1 { color: #fff; margin-bottom: .25rem; }
.bt-pagehead__lead {
	color: #b9d5e9;
	font-size: 1.1rem;
	max-width: 60ch;
	margin-top: .75rem;
	margin-bottom: 0;
}

.bt-breadcrumb {
	margin-bottom: .9rem;
	font-size: .875rem;
	color: #9dc0d8;
}
.bt-breadcrumb ol {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .25rem .5rem;
	margin: 0; padding: 0;
	list-style: none;
}
.bt-breadcrumb li { margin: 0; display: inline-flex; align-items: center; gap: .5rem; }
.bt-breadcrumb li + li::before { content: "/"; opacity: .5; }
.bt-breadcrumb a { color: #cfe4f2; text-decoration: none; }
.bt-breadcrumb a:hover { color: #fff; text-decoration: underline; }
.bt-breadcrumb [aria-current] { color: #fff; }

/* rozvržení: obsah + boční menu sekce */
.bt-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: clamp(2rem, 4vw, 3.25rem);
	align-items: start;
}
@media (min-width: 1000px) {
	.bt-layout--sidebar { grid-template-columns: 260px minmax(0, 1fr); }
	.bt-layout--sidebar .bt-sidebar { position: sticky; top: calc(var(--bt-header-h) + 1.5rem); }
}

.bt-sidebar__title {
	font-size: .8rem;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--bt-muted);
	margin-bottom: .75rem;
}
.bt-subnav { margin: 0; padding: 0; list-style: none; }
.bt-subnav li { margin: 0; }
.bt-subnav a {
	display: block;
	padding: .55rem .8rem;
	border-left: 2px solid var(--bt-line);
	color: var(--bt-body);
	font-size: .96rem;
	font-weight: 550;
	text-decoration: none;
	transition: border-color .14s ease, color .14s ease, background .14s ease;
}
.bt-subnav a:hover, .bt-subnav a:focus {
	background: var(--bt-blue-50);
	border-color: var(--bt-blue-400);
	color: var(--bt-blue-700);
}
.bt-subnav .is-current > a {
	border-color: var(--bt-blue-500);
	color: var(--bt-blue-700);
	background: var(--bt-blue-50);
	font-weight: 650;
}

/* obsahová oblast */
.bt-content > :first-child { margin-top: 0; }
.bt-content > :last-child { margin-bottom: 0; }
.bt-content h2 { margin-top: 2.25rem; }
.bt-content h3 { margin-top: 1.75rem; }
.bt-content > h2:first-child,
.bt-content > h3:first-child { margin-top: 0; }

.bt-content table {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 1.5rem;
	font-size: .96rem;
}
.bt-content th, .bt-content td {
	padding: .7rem .85rem;
	border: 1px solid var(--bt-line);
	text-align: left;
}
.bt-content th { background: var(--bt-bg-alt); color: var(--bt-ink); font-weight: 650; }

.bt-table-wrap { overflow-x: auto; margin-bottom: 1.5rem; }

.bt-content blockquote {
	margin: 1.75rem 0;
	padding: .25rem 0 .25rem 1.35rem;
	border-left: 3px solid var(--bt-blue-400);
	color: var(--bt-ink);
	font-size: 1.1rem;
}

.bt-note {
	padding: 1rem 1.25rem;
	margin-bottom: 1.5rem;
	background: var(--bt-blue-50);
	border: 1px solid var(--bt-blue-100);
	border-radius: var(--bt-radius-sm);
	color: var(--bt-blue-900);
	font-size: .96rem;
}
.bt-note > :last-child { margin-bottom: 0; }

/* galerie obrázků v obsahu */
.bt-gallery {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 230px), 1fr));
	gap: 1rem;
	margin: 0 0 1.75rem;
	padding: 0;
	list-style: none;
}
.bt-gallery figure { margin: 0; }
.bt-gallery img {
	width: 100%;
	border-radius: var(--bt-radius-sm);
	border: 1px solid var(--bt-line);
	background: var(--bt-bg-alt);
}
.bt-gallery figcaption {
	margin-top: .5rem;
	font-size: .88rem;
	color: var(--bt-muted);
	text-align: center;
}

/* --------------------------------------------------------------------------
   11. Reference
   -------------------------------------------------------------------------- */
.bt-refs {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 215px), 1fr));
	gap: .75rem;
	margin: 0 0 1.5rem;
	padding: 0;
	list-style: none;
}
.bt-refs li {
	margin: 0;
	padding: .85rem 1rem;
	background: #fff;
	border: 1px solid var(--bt-line);
	border-radius: var(--bt-radius-sm);
	font-weight: 600;
	color: var(--bt-ink);
	font-size: .96rem;
	display: flex;
	align-items: center;
	gap: .6rem;
}
.bt-refs li::before {
	content: "";
	flex: none;
	width: 6px; height: 22px;
	border-radius: 2px;
	background: var(--bt-blue-400);
}

/* --------------------------------------------------------------------------
   12. Poptávkový formulář
   -------------------------------------------------------------------------- */
.bt-form { margin: 0; }
.bt-form fieldset {
	margin: 0 0 2rem;
	padding: 0;
	border: 0;
}
.bt-form legend {
	padding: 0;
	margin-bottom: 1rem;
	font-size: 1.15rem;
	font-weight: 700;
	color: var(--bt-ink);
}
.bt-form__hint {
	margin-top: -.6rem;
	margin-bottom: 1rem;
	color: var(--bt-muted);
	font-size: .94rem;
}

.bt-field { margin-bottom: 1.1rem; }
.bt-field label {
	display: block;
	margin-bottom: .35rem;
	font-weight: 600;
	font-size: .95rem;
	color: var(--bt-ink);
}
.bt-field .req { color: var(--bt-error); }

.bt-form input[type="text"],
.bt-form input[type="email"],
.bt-form input[type="tel"],
.bt-form input[type="url"],
.bt-form select,
.bt-form textarea {
	width: 100%;
	padding: .72rem .9rem;
	font: inherit;
	font-size: 1rem;
	color: var(--bt-ink);
	background: #fff;
	border: 1px solid var(--bt-line);
	border-radius: var(--bt-radius-sm);
	transition: border-color .14s ease, box-shadow .14s ease;
}
.bt-form textarea { min-height: 150px; resize: vertical; }
.bt-form input:focus,
.bt-form select:focus,
.bt-form textarea:focus {
	outline: none;
	border-color: var(--bt-blue-400);
	box-shadow: 0 0 0 3px rgba(54, 172, 239, .18);
}
.bt-form input[aria-invalid="true"],
.bt-form textarea[aria-invalid="true"] { border-color: var(--bt-error); }

.bt-grid-2 {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr));
	gap: 0 1.15rem;
}
.bt-grid-3 {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 170px), 1fr));
	gap: 0 1.15rem;
}

/* zaškrtávací seznam produktů */
.bt-checks {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr));
	gap: .5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}
.bt-check {
	position: relative;
	display: flex;
	align-items: center;
	gap: .7rem;
	padding: .7rem .9rem;
	margin: 0;
	background: #fff;
	border: 1px solid var(--bt-line);
	border-radius: var(--bt-radius-sm);
	cursor: pointer;
	font-size: .95rem;
	transition: border-color .14s ease, background .14s ease;
}
.bt-check:hover { border-color: var(--bt-blue-400); background: var(--bt-blue-50); }
.bt-check input {
	flex: none;
	width: 1.1rem; height: 1.1rem;
	margin: 0;
	accent-color: var(--bt-blue-600);
	cursor: pointer;
}
.bt-check:has(input:checked) {
	border-color: var(--bt-blue-500);
	background: var(--bt-blue-50);
	font-weight: 600;
	color: var(--bt-blue-900);
}
.bt-check:has(input:focus-visible) {
	outline: 3px solid var(--bt-blue-400);
	outline-offset: 2px;
}

/* souhlas GDPR */
.bt-consent {
	display: flex;
	align-items: flex-start;
	gap: .7rem;
	margin-bottom: 1.35rem;
	font-size: .93rem;
	color: var(--bt-muted);
	cursor: pointer;
}
.bt-consent input {
	flex: none;
	margin-top: .25rem;
	width: 1.05rem; height: 1.05rem;
	accent-color: var(--bt-blue-600);
}

/* honeypot — skrytý před lidmi, viditelný pro roboty */
.bt-hp {
	position: absolute !important;
	left: -9999px;
	width: 1px; height: 1px;
	overflow: hidden;
}

/* hlášky */
.bt-alert {
	display: flex;
	align-items: flex-start;
	gap: .8rem;
	padding: 1rem 1.2rem;
	margin-bottom: 1.75rem;
	border-radius: var(--bt-radius-sm);
	border: 1px solid;
	font-size: .97rem;
}
.bt-alert--ok {
	background: #edf9f1;
	border-color: #b9e3c8;
	color: #14653a;
}
.bt-alert--err {
	background: #fdeeec;
	border-color: #f5c6c0;
	color: #922b21;
}
.bt-alert svg { flex: none; margin-top: .15rem; }
.bt-alert strong { display: block; margin-bottom: .15rem; color: inherit; }
.bt-alert ul { margin: .4rem 0 0; padding-left: 1.2rem; }
.bt-alert > div > :last-child { margin-bottom: 0; }

/* --------------------------------------------------------------------------
   13. Kontaktní blok
   -------------------------------------------------------------------------- */
.bt-contact-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: clamp(1.5rem, 4vw, 3rem);
	align-items: start;
}
@media (min-width: 900px) {
	.bt-contact-grid { grid-template-columns: minmax(0, 1fr) 330px; }
}

.bt-infocard {
	padding: 1.6rem 1.7rem;
	background: #fff;
	border: 1px solid var(--bt-line);
	border-radius: var(--bt-radius);
	box-shadow: var(--bt-shadow);
}
.bt-infocard h2, .bt-infocard h3 { font-size: 1.15rem; margin-bottom: 1rem; }
.bt-infocard + .bt-infocard { margin-top: 1.25rem; }

.bt-infolist { margin: 0; padding: 0; list-style: none; }
.bt-infolist li {
	display: flex;
	align-items: flex-start;
	gap: .8rem;
	padding: .65rem 0;
	margin: 0;
	border-bottom: 1px solid var(--bt-line-soft);
	font-size: .97rem;
}
.bt-infolist li:last-child { border-bottom: 0; padding-bottom: 0; }
.bt-infolist li:first-child { padding-top: 0; }
.bt-infolist__icon {
	flex: none;
	width: 34px; height: 34px;
	display: grid;
	place-items: center;
	border-radius: var(--bt-radius-sm);
	background: var(--bt-blue-50);
	color: var(--bt-blue-600);
}
.bt-infolist__label {
	display: block;
	font-size: .78rem;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--bt-muted);
	margin-bottom: .1rem;
}
.bt-infolist a { text-decoration: none; font-weight: 600; color: var(--bt-ink); }
.bt-infolist a:hover { color: var(--bt-blue-600); text-decoration: underline; }

.bt-map {
	margin-top: 1.25rem;
	border-radius: var(--bt-radius);
	overflow: hidden;
	border: 1px solid var(--bt-line);
	aspect-ratio: 4 / 3;
	background: var(--bt-bg-alt);
}
.bt-map iframe { width: 100%; height: 100%; border: 0; display: block; }

/* výzva k akci */
.bt-cta {
	position: relative;
	overflow: hidden;
	background: linear-gradient(120deg, var(--bt-blue-800) 0%, var(--bt-blue-600) 100%);
	color: #fff;
}
.bt-cta::after {
	content: "";
	position: absolute;
	left: -60px; bottom: -120px;
	width: 340px; height: 340px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(255,255,255,.13) 0%, transparent 70%);
}
.bt-cta__inner {
	position: relative;
	z-index: 2;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem 2.5rem;
	padding-block: clamp(2.25rem, 5vw, 3.25rem);
}
.bt-cta h2 { color: #fff; margin-bottom: .35rem; }
.bt-cta p { color: #cfe4f2; margin: 0; max-width: 52ch; }
.bt-cta__actions { display: flex; flex-wrap: wrap; gap: .75rem; }

/* --------------------------------------------------------------------------
   14. Patička
   -------------------------------------------------------------------------- */
.bt-footer {
	background: var(--bt-blue-900);
	color: #9dc0d8;
	font-size: .95rem;
}
.bt-footer__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr));
	gap: 2.25rem 2.5rem;
	padding-block: clamp(2.5rem, 5vw, 3.75rem);
}
.bt-footer__brand img { max-height: 44px; width: auto; margin-bottom: 1rem; filter: brightness(0) invert(1); opacity: .95; }
.bt-footer__name { color: #fff; font-size: 1.25rem; font-weight: 800; margin-bottom: .5rem; }
.bt-footer h3 {
	color: #fff;
	font-size: .82rem;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	margin-bottom: 1rem;
}
.bt-footer a { color: #cfe4f2; text-decoration: none; }
.bt-footer a:hover, .bt-footer a:focus { color: #fff; text-decoration: underline; }

.bt-footer__list { margin: 0; padding: 0; list-style: none; }
.bt-footer__list li { margin-bottom: .5rem; }

.bt-footer__bottom {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: .75rem 2rem;
	padding-block: 1.25rem;
	border-top: 1px solid rgba(255, 255, 255, .12);
	font-size: .88rem;
	color: #7fa8c4;
}
.bt-footer__bottom p { margin: 0; }
.bt-footer__legal { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; margin: 0; padding: 0; list-style: none; }
.bt-footer__legal li { margin: 0; }

.bt-totop {
	position: fixed;
	right: 1.25rem;
	bottom: 1.25rem;
	width: 46px; height: 46px;
	display: grid;
	place-items: center;
	background: var(--bt-blue-700);
	color: #fff;
	border: 0;
	border-radius: 50%;
	box-shadow: var(--bt-shadow);
	cursor: pointer;
	opacity: 0;
	visibility: hidden;
	transform: translateY(8px);
	transition: opacity .2s ease, transform .2s ease, visibility .2s, background .16s ease;
	z-index: 90;
}
.bt-totop.is-visible { opacity: 1; visibility: visible; transform: translateY(0); }
.bt-totop:hover { background: var(--bt-blue-500); }

/* --------------------------------------------------------------------------
   15. 404 a výpis příspěvků
   -------------------------------------------------------------------------- */
.bt-404 { text-align: center; padding-block: clamp(3rem, 8vw, 6rem); }
.bt-404__code {
	font-size: clamp(4rem, 14vw, 8rem);
	font-weight: 800;
	line-height: 1;
	color: var(--bt-blue-100);
	letter-spacing: -.04em;
}
.bt-404 .bt-btn { margin-top: 1.5rem; }

.bt-postlist { display: grid; gap: 2rem; margin: 0; padding: 0; list-style: none; }
.bt-postlist article { padding-bottom: 2rem; border-bottom: 1px solid var(--bt-line); }
.bt-postlist article:last-child { border-bottom: 0; }
.bt-post__meta { color: var(--bt-muted); font-size: .9rem; margin-bottom: .4rem; }

.bt-pagination { margin-top: 2.5rem; }
.bt-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.5rem;
	height: 2.5rem;
	padding: 0 .6rem;
	margin-right: .3rem;
	border: 1px solid var(--bt-line);
	border-radius: var(--bt-radius-sm);
	text-decoration: none;
	color: var(--bt-body);
}
.bt-pagination .page-numbers.current,
.bt-pagination .page-numbers:hover {
	background: var(--bt-blue-600);
	border-color: var(--bt-blue-600);
	color: #fff;
}

/* --------------------------------------------------------------------------
   16. Bloky editoru (aby vlastní úpravy klienta zapadly)
   -------------------------------------------------------------------------- */
.bt-content .wp-block-image { margin-bottom: 1.5rem; }
.bt-content .wp-block-image img { border-radius: var(--bt-radius-sm); }
.bt-content .wp-block-button__link {
	background: var(--bt-blue-600);
	border-radius: var(--bt-radius-sm);
	font-weight: 650;
	padding: .85rem 1.6rem;
}
.bt-content .wp-block-columns { gap: clamp(1rem, 3vw, 2rem); }

.alignwide { width: 100%; }
.alignfull { width: 100vw; margin-left: calc(50% - 50vw); max-width: none; }
.alignleft  { float: left; margin: .3rem 1.5rem 1rem 0; }
.alignright { float: right; margin: .3rem 0 1rem 1.5rem; }
.aligncenter { margin-inline: auto; }

/* --------------------------------------------------------------------------
   17. Tisk
   -------------------------------------------------------------------------- */
@media print {
	.bt-topbar, .bt-header, .bt-footer, .bt-cta, .bt-totop, .bt-overlay, .bt-sidebar { display: none !important; }
	body { color: #000; font-size: 11pt; }
	.bt-pagehead { background: none; color: #000; padding-block: 0 1rem; }
	.bt-pagehead h1, .bt-pagehead__lead { color: #000; }
	a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 9pt; color: #555; }
	.bt-card, .bt-product, .bt-files { break-inside: avoid; border-color: #999; }
}
