/* =========================================================================
   LOCK — Servis dverí Bratislava | Astra Child Custom Styles
   Brand (podľa lock.sk): čierna #1A1A1A + žltá #FFD200, fonty Outfit + Inter
   ========================================================================= */

:root {
	--lock-primary: #1A1A1A;
	--lock-primary-dark: #000000;
	--lock-primary-light: #2E2E2E;
	--lock-accent: #FFD200;
	--lock-accent-dark: #E6BD00;
	--lock-accent-text: #9C7A00;   /* tmavšie zlato pre text na svetlom podklade */
	--lock-on-accent: #1A1A1A;     /* text na žltých plochách = čierny */
	--lock-success: #2E7D32;
	--lock-text: #1F2937;
	--lock-text-muted: #6B7280;
	--lock-bg: #FFFFFF;
	--lock-bg-alt: #F7F7F5;
	--lock-bg-dark: #1A1A1A;
	--lock-border: #E5E7EB;
	--lock-radius: 8px;
	--lock-radius-lg: 16px;
	--lock-shadow-sm: 0 1px 2px rgba(0, 0, 0, .07);
	--lock-shadow: 0 4px 14px rgba(0, 0, 0, .12);
	--lock-shadow-lg: 0 16px 40px rgba(0, 0, 0, .18);
	--lock-container: 1200px;
	--lock-font-heading: 'Space Grotesk', 'Inter', sans-serif;
	--lock-font-body: 'Inter', sans-serif;

	/* Design-ref (Lovable predloha) brand tokeny */
	--lsd-yellow: #FFD200;
	--lsd-black: oklch(0.16 0.005 270);
	--lsd-gray: oklch(0.22 0.005 270);
	--lsd-soft: oklch(0.97 0.005 90);
	--lsd-display: 'Space Grotesk', 'Inter', sans-serif;
	--lsd-maxw: 1280px;
}

/* ---------- Typography baseline ---------- */
body {
	color: var(--lock-text);
	font-family: var(--lock-font-body);
	font-feature-settings: "ss01", "cv11";
}
h1, h2, h3, h4, h5, h6 {
	color: var(--lock-primary);
	font-family: var(--lock-font-heading);
	letter-spacing: -0.01em;
	line-height: 1.2;
}
/* lock.sk štýl: veľké uppercase sekcie */
h1, h2 {
	text-transform: uppercase;
	letter-spacing: .01em;
	font-weight: 700;
}
h1 { font-size: clamp(2rem, 4vw, 2.9rem); }
h2 { font-size: clamp(1.4rem, 3vw, 2.1rem); }

a { color: var(--lock-primary); text-decoration-color: var(--lock-accent); text-decoration-thickness: 2px; }
a:hover { color: var(--lock-accent-text); }

/* ---------- Buttons ---------- */
.wp-block-button__link,
.lock-sd-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .5rem;
	padding: .9rem 1.6rem;
	border-radius: var(--lock-radius);
	font-weight: 600;
	letter-spacing: -0.005em;
	text-decoration: none;
	transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
	box-shadow: var(--lock-shadow-sm);
}
.lock-sd-btn--primary,
.is-style-lock-primary .wp-block-button__link {
	background: var(--lock-accent);
	color: var(--lock-on-accent) !important;
	font-family: var(--lock-font-heading);
	text-transform: uppercase;
	letter-spacing: .02em;
}
.lock-sd-btn--primary:hover {
	background: var(--lock-accent-dark);
	color: var(--lock-on-accent) !important;
	transform: translateY(-1px);
	box-shadow: var(--lock-shadow);
}
.lock-sd-btn--secondary,
.is-style-lock-secondary .wp-block-button__link {
	background: var(--lock-primary);
	color: #fff !important;
}
.lock-sd-btn--secondary:hover { background: var(--lock-primary-dark); }
.lock-sd-btn--ghost {
	background: transparent;
	color: var(--lock-primary) !important;
	border: 2px solid var(--lock-primary);
}
/* Ghost na tmavom hero: biely text aj rám */
.lock-sd-hero .lock-sd-btn--ghost {
	color: #fff !important;
	border-color: #fff;
}
.lock-sd-hero .lock-sd-btn--ghost:hover {
	background: rgba(255, 255, 255, .14);
	color: #fff !important;
}

/* ---------- Sherlock badge ---------- */
.lock-sd-sherlock-badge {
	display: inline-flex;
	align-items: center;
	gap: .55rem;
	padding: .45rem 1rem;
	background: var(--lock-accent);
	color: var(--lock-on-accent);
	font-family: var(--lock-font-heading);
	font-weight: 700;
	font-size: .85rem;
	letter-spacing: .04em;
	text-transform: uppercase;
	border-radius: 999px;
}
.lock-sd-sherlock-badge::before {
	content: "🛡️";
	font-size: 1rem;
}

/* ---------- Hero ---------- */
.lock-sd-hero {
	background: linear-gradient(135deg, #000000 0%, var(--lock-primary) 55%, var(--lock-primary-light) 100%);
	color: #fff;
	padding: 5rem 0 4rem;
	position: relative;
	overflow: hidden;
}
.lock-sd-hero__ctas {
	display: flex;
	gap: .75rem;
	flex-wrap: wrap;
	margin-top: 1.5rem;
}
@media (max-width: 600px) {
	.lock-sd-hero { padding: 3rem 0 2.5rem; }
	.lock-sd-hero__ctas .lock-sd-btn { flex: 1 1 100%; }
}
.lock-sd-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	background: radial-gradient(circle at 90% 20%, rgba(255, 210, 0, .16) 0%, transparent 50%);
	pointer-events: none;
}
.lock-sd-hero h1,
.lock-sd-hero h2 { color: #fff; }
.lock-sd-hero p { color: rgba(255, 255, 255, .9); font-size: 1.1rem; }

.lock-sd-hero-form-card {
	background: #fff;
	color: var(--lock-text);
	padding: 2rem;
	border-radius: var(--lock-radius-lg);
	box-shadow: var(--lock-shadow-lg);
}
.lock-sd-hero-form-card h3 {
	margin-top: 0;
	color: var(--lock-primary);
}

/* ---------- Hero photo + phone card ---------- */
.lock-sd-hero-photo {
	position: relative;
	border-radius: var(--lock-radius-lg);
	overflow: hidden;
	box-shadow: var(--lock-shadow-lg);
	min-height: 320px;
}
.lock-sd-hero-photo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	position: absolute;
	inset: 0;
}
.lock-sd-phone-card {
	position: absolute;
	left: 1rem;
	right: 1rem;
	bottom: 1rem;
	background: var(--lock-accent);
	color: var(--lock-on-accent);
	border-radius: var(--lock-radius);
	padding: 1rem 1.25rem;
	display: flex;
	flex-direction: column;
	gap: .15rem;
	box-shadow: var(--lock-shadow);
}
.lock-sd-phone-card__label {
	font-family: var(--lock-font-heading);
	font-weight: 700;
	font-size: .85rem;
	text-transform: uppercase;
	letter-spacing: .04em;
}
.lock-sd-phone-card__number {
	font-family: var(--lock-font-heading);
	font-weight: 800;
	font-size: clamp(1.3rem, 2.5vw, 1.7rem);
	color: var(--lock-on-accent) !important;
	text-decoration: none !important;
	line-height: 1.2;
}
.lock-sd-phone-card__note { opacity: .8; }

/* ---------- Generic photo + contact cards ---------- */
.lock-sd-photo {
	display: block;
	width: 100%;
	height: auto;
	border-radius: var(--lock-radius-lg);
	box-shadow: var(--lock-shadow);
}
.lock-sd-call-card {
	background: #fff;
	border: 2px solid var(--lock-accent);
	border-radius: var(--lock-radius-lg);
	padding: 1.75rem;
	box-shadow: var(--lock-shadow);
}
.lock-sd-call-card__number {
	display: inline-block;
	font-family: var(--lock-font-heading);
	font-weight: 800;
	font-size: clamp(1.5rem, 3vw, 2rem);
	color: var(--lock-primary) !important;
	text-decoration: none !important;
}
.lock-sd-call-card__number--sm { font-size: clamp(1.2rem, 2.5vw, 1.5rem); }
.lock-sd-shop {
	display: grid;
	grid-template-columns: 140px 1fr;
	gap: 1.25rem;
	align-items: center;
	background: #fff;
	border: 1px solid var(--lock-border);
	border-radius: var(--lock-radius-lg);
	padding: 1.25rem;
	margin-bottom: 1.25rem;
}
.lock-sd-shop__img { border-radius: var(--lock-radius); }
@media (max-width: 600px) {
	.lock-sd-shop { grid-template-columns: 1fr; }
	.lock-sd-hero-photo { min-height: 280px; }
}

/* ---------- Trust bar ---------- */
.lock-sd-trust-bar {
	background: var(--lock-bg-alt);
	padding: 1.25rem 0;
	border-bottom: 1px solid var(--lock-border);
}
.lock-sd-trust-bar__grid {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 1.5rem;
	text-align: center;
}
.lock-sd-trust-bar__item {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: .35rem;
	font-size: .9rem;
	color: var(--lock-text);
}
.lock-sd-trust-bar__icon { font-size: 1.5rem; }
.lock-sd-trust-bar__label strong { color: var(--lock-primary); }

@media (max-width: 768px) {
	.lock-sd-trust-bar__grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 1rem;
	}
	/* Posledná nepárna položka (5. USP) zaberie celý riadok a vycentruje sa */
	.lock-sd-trust-bar__item:last-child:nth-child(odd) {
		grid-column: 1 / -1;
	}
}

/* ---------- Service tiles ---------- */
.lock-sd-services-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1.5rem;
}
.lock-sd-service-tile {
	background: #fff;
	border: 1px solid var(--lock-border);
	border-radius: var(--lock-radius-lg);
	padding: 1.75rem 1.5rem;
	transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.lock-sd-service-tile:hover {
	transform: translateY(-3px);
	box-shadow: var(--lock-shadow);
	border-color: var(--lock-accent);
	border-bottom: 3px solid var(--lock-accent);
}
.lock-sd-service-tile__icon {
	font-size: 2rem;
	margin-bottom: .75rem;
}
.lock-sd-service-tile h3 {
	font-size: 1.1rem;
	margin: 0 0 .5rem;
}
.lock-sd-service-tile p {
	font-size: .95rem;
	color: var(--lock-text-muted);
	margin: 0;
}
.lock-sd-service-tile--featured {
	background: linear-gradient(135deg, #000000 0%, var(--lock-primary-light) 100%);
	color: #fff;
	border: 2px solid var(--lock-accent);
}
.lock-sd-service-tile--featured h3 { color: var(--lock-accent); }
.lock-sd-service-tile--featured p { color: #fff; }

@media (max-width: 980px) {
	.lock-sd-services-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
	.lock-sd-services-grid { grid-template-columns: 1fr; }
}

/* ---------- Sherlock section ---------- */
.lock-sd-sherlock-section {
	background: linear-gradient(180deg, var(--lock-bg-alt) 0%, #fff 100%);
	padding: 4rem 0;
	border-top: 4px solid var(--lock-accent);
}
.lock-sd-sherlock-section h2 {
	color: var(--lock-primary);
}
.lock-sd-sherlock-card {
	background: var(--lock-primary);
	border-radius: var(--lock-radius-lg);
	padding: 2rem;
	box-shadow: var(--lock-shadow);
	border: 2px solid var(--lock-accent);
}
.lock-sd-sherlock-card h3 { color: var(--lock-accent); }
.lock-sd-sherlock-card .lock-sd-checklist li { color: #fff; }
.lock-sd-sherlock-card__logo {
	width: 180px;
	height: auto;
	margin: 0 auto 1rem;
	display: block;
}
.lock-sd-checklist {
	list-style: none;
	padding: 0;
	margin: 1rem 0;
}
.lock-sd-checklist li {
	padding: .45rem 0 .45rem 1.75rem;
	position: relative;
	font-weight: 500;
}
.lock-sd-checklist li::before {
	content: "✅";
	position: absolute;
	left: 0;
}

/* ---------- Price table ---------- */
.lock-sd-price-table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	border-radius: var(--lock-radius-lg);
	overflow: hidden;
	box-shadow: var(--lock-shadow-sm);
}
@media (max-width: 600px) {
	.lock-sd-price-table th,
	.lock-sd-price-table td {
		padding: .75rem .85rem;
		font-size: .9rem;
	}
}
.lock-sd-price-table th,
.lock-sd-price-table td {
	padding: 1rem 1.25rem;
	text-align: left;
	border-bottom: 1px solid var(--lock-border);
}
.lock-sd-price-table thead th {
	background: var(--lock-primary);
	color: #fff;
}
.lock-sd-price-table tbody tr:nth-child(even) { background: var(--lock-bg-alt); }
.lock-sd-price-table tbody tr.is-free { background: rgba(46, 125, 50, .08); }
.lock-sd-price-table tbody tr.is-featured {
	background: rgba(255, 210, 0, .15);
	font-weight: 600;
}
.lock-sd-price-table td:last-child {
	text-align: right;
	font-weight: 600;
	color: var(--lock-primary);
}

/* ---------- 4 step process ---------- */
.lock-sd-steps {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1.5rem;
	counter-reset: step;
}
.lock-sd-step {
	position: relative;
	background: #fff;
	border-radius: var(--lock-radius-lg);
	padding: 2rem 1.5rem 1.5rem;
	border: 1px solid var(--lock-border);
}
.lock-sd-step__num {
	position: absolute;
	top: -1rem;
	left: 1.5rem;
	width: 2.5rem;
	height: 2.5rem;
	background: var(--lock-accent);
	color: var(--lock-on-accent);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 700;
	font-size: 1.1rem;
	box-shadow: var(--lock-shadow);
}
.lock-sd-step h3 { font-size: 1.1rem; margin: .5rem 0; }
@media (max-width: 768px) {
	.lock-sd-steps { grid-template-columns: 1fr; }
}

/* ---------- Mid CTA block ---------- */
.lock-sd-cta-block {
	background: linear-gradient(135deg, #000000 0%, var(--lock-primary) 100%);
	color: #fff;
	padding: 4rem 0;
	text-align: center;
	position: relative;
	overflow: hidden;
	border-top: 4px solid var(--lock-accent);
	border-bottom: 4px solid var(--lock-accent);
}
.lock-sd-cta-block::before {
	content: "";
	position: absolute;
	width: 400px;
	height: 400px;
	background: radial-gradient(circle, rgba(255, 210, 0, .14) 0%, transparent 70%);
	top: -100px;
	right: -100px;
	pointer-events: none;
}
.lock-sd-cta-block h2 { color: #fff; }
.lock-sd-cta-block p { color: rgba(255, 255, 255, .9); }
.lock-sd-cta-block__btns {
	display: flex;
	gap: 1rem;
	justify-content: center;
	margin-top: 1.5rem;
	flex-wrap: wrap;
}

/* ---------- FAQ accordion ---------- */
.lock-sd-faq details {
	background: #fff;
	border: 1px solid var(--lock-border);
	border-radius: var(--lock-radius);
	margin-bottom: .75rem;
	padding: 0;
	overflow: hidden;
}
.lock-sd-faq summary {
	padding: 1.1rem 1.25rem;
	cursor: pointer;
	font-weight: 600;
	color: var(--lock-primary);
	list-style: none;
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.lock-sd-faq summary::after {
	content: "+";
	font-size: 1.5rem;
	color: var(--lock-accent-text);
	transition: transform .2s ease;
}
.lock-sd-faq details[open] summary::after { transform: rotate(45deg); }
.lock-sd-faq details > div {
	padding: 0 1.25rem 1.25rem;
	color: var(--lock-text-muted);
}

/* ---------- Sticky mobile CTA bar ---------- */
.lock-sd-sticky-bar {
	display: none;
	position: fixed;
	bottom: 0;
	left: 0;
	right: 0;
	z-index: 999;
	background: #fff;
	border-top: 1px solid var(--lock-border);
	box-shadow: 0 -4px 14px rgba(15, 42, 74, .12);
	padding: .5rem;
	gap: .5rem;
}
.lock-sd-sticky-bar__btn {
	flex: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: .15rem;
	padding: .75rem .5rem;
	border-radius: var(--lock-radius);
	font-weight: 600;
	font-size: .85rem;
	text-decoration: none;
}
.lock-sd-sticky-bar__btn--call {
	background: var(--lock-accent);
	color: var(--lock-on-accent);
}
.lock-sd-sticky-bar__btn--form {
	background: var(--lock-primary);
	color: #fff;
}
.lock-sd-sticky-bar__btn .lock-sd-icon { font-size: 1.1rem; }
@media (max-width: 880px) {
	.lock-sd-sticky-bar { display: flex; }
	body { padding-bottom: 70px; }
}

/* ---------- Header phone button ---------- */
.lock-sd-header-phone {
	display: inline-flex;
	align-items: center;
	gap: .35rem;
	background: var(--lock-accent);
	color: var(--lock-on-accent) !important;
	padding: .55rem 1rem;
	border-radius: var(--lock-radius);
	font-family: var(--lock-font-heading);
	font-weight: 700;
	text-decoration: none !important;
}
.lock-sd-header-phone:hover { background: var(--lock-accent-dark); color: var(--lock-on-accent) !important; }

/* ---------- Cross-link section ---------- */
.lock-sd-emergency {
	background: var(--lock-bg-alt);
	border-left: 4px solid var(--lock-accent);
	padding: 1.5rem;
	border-radius: var(--lock-radius);
	margin: 2rem 0;
}
.lock-sd-emergency h3 { margin-top: 0; }

/* ---------- Full-width one-page (zruš Astra boxed container na homepage) ---------- */
body.home #content .ast-container,
body.home .site-content .ast-container {
	display: block;     /* Astra dáva flex-wrap → rozbíja full-width sekcie */
	max-width: 100%;
	width: 100%;
	padding-left: 0;
	padding-right: 0;
	margin: 0;
}
body.home .site-main {
	margin: 0;
	padding: 0;
}
body.home.ast-separate-container .ast-article-single,
body.home.ast-separate-container .ast-article-post {
	padding: 0;
	margin: 0;
	background: transparent;
	border: 0;
	box-shadow: none;
}
body.home .entry-content { margin: 0; }
body.home #content { background: #fff; }
body.home #colophon { display: none; } /* prázdny Astra footer wrapper – nahrádza ho .lsd-footer */

/* ---------- Utilities ---------- */
.lock-sd-container { max-width: var(--lock-container); margin: 0 auto; padding: 0 1.25rem; }
.lock-sd-section { padding: 4rem 0; }
.lock-sd-section--alt { background: var(--lock-bg-alt); }
@media (max-width: 600px) {
	.lock-sd-section { padding: 2.5rem 0; }
}
.lock-sd-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; align-items: center; }
@media (max-width: 880px) { .lock-sd-grid-2 { grid-template-columns: 1fr; } }

.lock-sd-grid-3 {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.5rem;
}
@media (max-width: 880px) {
	.lock-sd-grid-3 { grid-template-columns: 1fr; }
}
.lock-sd-text-center { text-align: center; }
.lock-sd-mt-2 { margin-top: 2rem; }

/* Smooth anchor scroll offset for sticky header */
:target { scroll-margin-top: 80px; }

/* Form basic styling (CF7/WPForms agnostic) */
.lock-sd-hero-form-card input[type="text"],
.lock-sd-hero-form-card input[type="tel"],
.lock-sd-hero-form-card input[type="email"],
.lock-sd-hero-form-card select,
.lock-sd-hero-form-card textarea {
	width: 100%;
	padding: .75rem 1rem;
	border: 1px solid var(--lock-border);
	border-radius: var(--lock-radius);
	font-size: 1rem;
	margin-bottom: .75rem;
	font-family: inherit;
}
.lock-sd-hero-form-card input:focus,
.lock-sd-hero-form-card select:focus,
.lock-sd-hero-form-card textarea:focus {
	outline: 2px solid var(--lock-accent);
	outline-offset: 1px;
}

/* =========================================================================
   DESIGN-REF PORT — Top bar + Navigácia + Hero (podľa Lovable predlohy)
   ========================================================================= */

.lsd-y { color: var(--lsd-yellow); }
.lsd-ic { width: 24px; height: 24px; }
.lsd-ic-sm { width: 16px; height: 16px; }

/* ---------- Brandová podstránka (právne stránky: GDPR, Cookies) ---------- */
.lsd-brand-page { background: #fff; }
.lsd-legal__hero { background: var(--lsd-black); color: #fff; padding: 3.5rem 0; border-bottom: 4px solid var(--lsd-yellow); }
.lsd-legal__hero-inner { max-width: 60rem; margin: 0 auto; padding: 0 1.5rem; }
.lsd-legal__eyebrow {
	display: flex; align-items: center; gap: .75rem; margin-bottom: 1rem;
	font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .18em; color: var(--lsd-yellow);
}
.lsd-legal__title {
	font-family: var(--lsd-display); font-weight: 700; color: #fff;
	font-size: clamp(1.9rem, 4vw, 3rem); line-height: 1.1; margin: 0; text-transform: none;
}
.lsd-legal__body { padding: 3.5rem 0 4.5rem; }
.lsd-legal__content { max-width: 60rem; margin: 0 auto; padding: 0 1.5rem; color: #374151; line-height: 1.75; }
.lsd-legal__content h2 {
	font-family: var(--lsd-display); color: var(--lock-primary); text-transform: none;
	font-size: 1.5rem; margin: 2.25rem 0 .9rem; padding-top: 1.25rem; border-top: 1px solid var(--lock-border);
}
.lsd-legal__content h2:first-of-type { border-top: 0; padding-top: 0; margin-top: .5rem; }
.lsd-legal__content p { margin: 0 0 1.1rem; }
.lsd-legal__content ul { margin: 0 0 1.25rem; padding-left: 1.25rem; }
.lsd-legal__content li { margin-bottom: .4rem; }
.lsd-legal__content a { color: var(--lock-accent-text); text-decoration: underline; }
.lsd-legal__content a:hover { color: var(--lock-primary); }
.lsd-legal__content strong { color: var(--lock-primary); }
.lsd-legal__content table { width: 100%; border-collapse: collapse; margin: 0 0 1.5rem; font-size: .92rem; }
.lsd-legal__content th, .lsd-legal__content td { border: 1px solid var(--lock-border); padding: .65rem .85rem; text-align: left; vertical-align: top; }
.lsd-legal__content thead th { background: var(--lsd-soft); color: var(--lock-primary); }

/* ---------- Section header (eyebrow + nadpis + žltá čiara + perex) ---------- */
.lsd-shead { max-width: 48rem; margin: 0 auto 3rem; }
.lsd-shead--center { text-align: center; }
.lsd-shead--center .lsd-shead__eyebrow { justify-content: center; }
.lsd-shead--center .lsd-shead__bar { margin-left: auto; margin-right: auto; }
.lsd-shead__eyebrow {
	display: flex; align-items: center; gap: .75rem;
	font-size: .75rem; font-weight: 700; text-transform: uppercase;
	letter-spacing: .25em; color: var(--lsd-yellow); margin-bottom: 1rem;
}
.lsd-shead__line { width: 2rem; height: 1px; background: var(--lsd-yellow); display: inline-block; flex: 0 0 auto; }
.lsd-shead__title {
	font-family: var(--lsd-display); font-weight: 700; color: var(--lock-primary);
	font-size: clamp(2rem, 4vw, 3rem); line-height: 1.1; letter-spacing: -.02em;
	margin: 0 0 1.5rem; text-transform: none;
}
.lsd-shead__bar { height: 6px; width: 6rem; background: var(--lsd-yellow); margin-bottom: 2rem; }
.lsd-shead__lead { font-size: 1.125rem; line-height: 1.7; color: var(--lock-text-muted); margin: 0; }
.lsd-shead--center .lsd-shead__line { display: none; }
.lsd-shead--center { margin-bottom: 3rem; }

/* ---------- Finálne CTA (žltý blok) ---------- */
.lsd-finalcta { background: var(--lsd-yellow); padding: 6rem 1.5rem; text-align: center; }
.lsd-finalcta__inner { max-width: 64rem; margin: 0 auto; }
.lsd-finalcta__eyebrow { color: rgba(20,21,27,.7); font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .3em; margin: 0 0 1.5rem; }
.lsd-finalcta__title {
	font-family: var(--lsd-display); font-weight: 700; color: #14151b; text-transform: uppercase;
	font-size: clamp(2rem, 5vw, 3.75rem); line-height: 1.1; letter-spacing: -.01em; margin: 0 0 1.5rem;
}
.lsd-finalcta__lead { color: rgba(20,21,27,.8); font-size: 1.125rem; line-height: 1.6; max-width: 42rem; margin: 0 auto 3rem; }
.lsd-finalcta__phone { display: inline-flex; flex-direction: column; align-items: center; text-decoration: none; }
.lsd-finalcta__num {
	color: #14151b; font-family: var(--lsd-display); font-weight: 700; letter-spacing: -.02em;
	font-size: clamp(1.85rem, 6vw, 4.5rem); display: inline-flex; align-items: center; gap: 1rem;
	transition: transform .2s;
}
.lsd-finalcta__num svg { width: clamp(2rem, 5vw, 4rem); height: clamp(2rem, 5vw, 4rem); }
.lsd-finalcta__phone:hover .lsd-finalcta__num { transform: scale(1.04); }
.lsd-finalcta__underline { height: 4px; width: 8rem; background: #14151b; margin-top: 1.5rem; transition: width .5s ease; }
.lsd-finalcta__phone:hover .lsd-finalcta__underline { width: 100%; }

/* ---------- Pobočky (dva obdĺžniky) ---------- */
.lsd-branches { background: var(--lsd-soft); padding: 5rem 0; }
.lsd-branches__inner { max-width: var(--lsd-maxw); margin: 0 auto; padding: 0 1.5rem; }
.lsd-branches__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; }
.lsd-branch {
	background: #fff; border: 1px solid var(--lock-border); overflow: hidden;
	display: flex; flex-direction: column; box-shadow: var(--lock-shadow-sm);
	transition: box-shadow .2s, border-color .2s, transform .2s;
}
.lsd-branch:hover { box-shadow: var(--lock-shadow); border-color: var(--lsd-yellow); transform: translateY(-3px); }
.lsd-branch__photo { aspect-ratio: 16 / 9; overflow: hidden; background: var(--lsd-gray); }
.lsd-branch__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.lsd-branch__body { padding: 2rem; }
.lsd-branch__tag { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .18em; color: var(--lock-accent-text); }
.lsd-branch__city { font-family: var(--lsd-display); font-weight: 700; font-size: 1.75rem; color: var(--lock-primary); margin: .35rem 0 .75rem; text-transform: none; }
.lsd-branch__addr { color: var(--lock-primary); font-weight: 500; margin: 0 0 .35rem; }
.lsd-branch__hours { color: var(--lock-text-muted); margin: 0 0 1.25rem; }
.lsd-branch__actions { display: flex; flex-wrap: wrap; gap: .65rem; }
.lsd-branch__phone {
	display: inline-flex; align-items: center; gap: .5rem;
	background: var(--lock-primary); color: #fff !important; padding: .7rem 1.25rem;
	font-family: var(--lsd-display); font-weight: 700; text-decoration: none !important; transition: background .2s, color .2s;
}
.lsd-branch__phone:hover { background: var(--lsd-yellow); color: #14151b !important; }
.lsd-branch__route {
	display: inline-flex; align-items: center; gap: .5rem;
	background: transparent; color: var(--lock-primary) !important; padding: .7rem 1.25rem;
	border: 2px solid var(--lock-primary);
	font-family: var(--lsd-display); font-weight: 700; text-decoration: none !important; transition: background .2s, color .2s, border-color .2s;
}
.lsd-branch__route:hover { background: var(--lsd-yellow); border-color: var(--lsd-yellow); color: #14151b !important; }
@media (max-width: 760px) { .lsd-branches__grid { grid-template-columns: 1fr; } }

/* ---------- Pätička (4-stĺpcová, LOCK ekosystém) ---------- */
.lsd-footer { background: var(--lsd-black); color: rgba(255,255,255,.72); padding: 3.5rem 0 1.5rem; border-top: 4px solid var(--lsd-yellow); }
.lsd-footer__inner { max-width: var(--lsd-maxw); margin: 0 auto; padding: 0 1.5rem; }
.lsd-footer__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2rem; margin-bottom: 2.5rem; }

/* H4 nadpisy stĺpcov – !important aby neprebil Astra parent */
body.home .lsd-footer h4,
.lsd-footer h4 {
	color: var(--lsd-yellow) !important;
	font-family: var(--lsd-display);
	text-transform: uppercase; letter-spacing: .08em; font-weight: 700;
	font-size: .92rem; margin: 0 0 1.1rem;
}
.lsd-footer__col p { font-size: .93rem; line-height: 1.65; margin: 0 0 .85rem; color: rgba(255,255,255,.62); }
.lsd-footer__col p strong { color: #fff; font-weight: 600; }
.lsd-footer__list { list-style: none; margin: 0; padding: 0; }
.lsd-footer__list li { margin-bottom: .55rem; font-size: .93rem; line-height: 1.5; }
.lsd-footer__legal { margin-top: 1.1rem !important; font-size: .85rem; }

/* Odkazy – vyššia špecificita kvôli Astra global link rules */
body.home .lsd-footer a,
.lsd-footer a { color: rgba(255,255,255,.82); text-decoration: none; transition: color .15s, border-color .15s; border-bottom: 1px solid transparent; }
body.home .lsd-footer a:hover,
.lsd-footer a:hover { color: var(--lsd-yellow); border-bottom-color: var(--lsd-yellow); }
.lsd-footer a strong { color: #fff; }
.lsd-footer a:hover strong { color: var(--lsd-yellow); }

.lsd-footer__bottom {
	border-top: 1px solid rgba(255,255,255,.1); padding-top: 1.35rem;
	display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap;
	font-size: .85rem; letter-spacing: .04em; color: rgba(255,255,255,.5);
}
@media (max-width: 980px) {
	.lsd-footer__grid { grid-template-columns: repeat(2, 1fr); gap: 2.25rem; }
}
@media (max-width: 760px) {
	.lsd-footer__grid { grid-template-columns: 1fr; gap: 2rem; }
	.lsd-footer__bottom { justify-content: center; text-align: center; }
	.lsd-finalcta { padding: 4rem 1.5rem; }
}

/* Pulse dot (live indikátor) */
.lsd-pulse { position: relative; display: inline-flex; height: 8px; width: 8px; flex: 0 0 auto; }
.lsd-pulse__ping { position: absolute; inset: 0; border-radius: 999px; background: var(--lsd-yellow); opacity: .75; animation: lsd-ping 1.4s cubic-bezier(0,0,.2,1) infinite; }
.lsd-pulse__dot { position: relative; display: inline-flex; height: 8px; width: 8px; border-radius: 999px; background: var(--lsd-yellow); }
.lsd-pulse--dark .lsd-pulse__ping { background: #000; opacity: .55; }
.lsd-pulse--dark .lsd-pulse__dot { background: #000; }
@keyframes lsd-ping { 75%, 100% { transform: scale(2.2); opacity: 0; } }

/* ---------- Top utility bar ---------- */
.lsd-topbar { background: var(--lsd-yellow); color: #14151b; font-size: .75rem; font-weight: 600; }
.lsd-topbar__inner {
	max-width: var(--lsd-maxw); margin: 0 auto; padding: 0 1.5rem;
	height: 36px; display: flex; align-items: center; justify-content: space-between; gap: 1rem;
}
.lsd-topbar__left { display: flex; align-items: center; gap: .5rem; min-width: 0; }
.lsd-topbar__txt { text-transform: uppercase; letter-spacing: .12em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lsd-topbar__right { display: flex; align-items: center; gap: .5rem; white-space: nowrap; }
@media (max-width: 600px) { .lsd-topbar__right { display: none; } }

/* ---------- Navigácia ---------- */
.lsd-nav {
	position: sticky; top: 0; z-index: 50;
	background: color-mix(in srgb, var(--lsd-black) 95%, transparent);
	-webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
	color: #fff; border-bottom: 1px solid rgba(255,255,255,.1);
}
.lsd-nav__inner {
	max-width: var(--lsd-maxw); margin: 0 auto; padding: 0 1.5rem;
	height: 80px; display: flex; align-items: center; justify-content: space-between;
}
.lsd-logo { display: inline-flex; align-items: center; gap: .75rem; text-decoration: none; }
.lsd-logo__mark { width: 40px; height: 40px; background: var(--lsd-yellow); color: #14151b; border-radius: 4px; display: grid; place-items: center; }
.lsd-logo__text { font-family: var(--lsd-display); font-weight: 700; font-size: 1.25rem; letter-spacing: -.02em; text-transform: uppercase; color: #fff; }
.lsd-nav__menu { display: flex; align-items: center; gap: 2rem; }
.lsd-nav__menu > a {
	color: #fff; text-decoration: none; font-size: .875rem; font-weight: 500;
	text-transform: uppercase; letter-spacing: .12em; transition: color .2s;
}
.lsd-nav__menu > a:hover { color: var(--lsd-yellow); }
.lsd-nav__phone {
	display: inline-flex; align-items: center; gap: .5rem;
	background: var(--lsd-yellow); color: #14151b !important; padding: .75rem 1.25rem;
	border-radius: 4px; font-weight: 700; letter-spacing: 0; transition: background .2s;
}
.lsd-nav__phone:hover { background: #fff; color: #14151b !important; }
.lsd-nav__phone-m { display: none; background: var(--lsd-yellow); color: #14151b; padding: .65rem; border-radius: 4px; }
@media (max-width: 860px) {
	.lsd-nav__menu { display: none; }
	.lsd-nav__phone-m { display: inline-flex; }
	.lsd-nav__inner { height: 64px; }
}

/* ---------- HERO ---------- */
.lsd-hero {
	position: relative; background: var(--lsd-black); color: #fff;
	padding: 5rem 0 7rem; overflow: hidden;
}
.lsd-hero__watermark {
	position: absolute; top: 0; right: 0; margin-top: 2.5rem; margin-right: -2.5rem;
	font-family: var(--lsd-display); font-weight: 700; font-size: 20vw; line-height: .9;
	color: rgba(255,255,255,.04); user-select: none; pointer-events: none;
}
.lsd-hero__inner { max-width: var(--lsd-maxw); margin: 0 auto; padding: 0 1.5rem; position: relative; z-index: 10; }
.lsd-hero__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: center; }

.lsd-badge {
	display: inline-flex; align-items: center; gap: .5rem; margin-bottom: 1.5rem;
	padding: .375rem .75rem; border-radius: 999px;
	background: rgba(255,210,0,.1); border: 1px solid rgba(255,210,0,.3);
}
.lsd-badge__txt { color: var(--lsd-yellow); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .14em; }

.lsd-hero__title {
	font-family: var(--lsd-display); font-weight: 700; line-height: 1.05;
	font-size: clamp(2.5rem, 5.5vw, 4.5rem); letter-spacing: -.02em;
	margin: 0 0 2rem; color: #fff; text-transform: none;
}
.lsd-hero__lead {
	font-size: clamp(1.05rem, 1.4vw, 1.25rem); color: rgba(255,255,255,.6);
	line-height: 1.65; max-width: 36rem; margin: 0 0 2.5rem;
}
.lsd-hero__ctas { display: flex; gap: 1rem; flex-wrap: wrap; }
.lsd-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: .75rem;
	padding: 1.25rem 1.75rem; font-size: 1rem; font-weight: 700;
	text-transform: uppercase; letter-spacing: -.01em; text-decoration: none;
	border-radius: 0; transition: background .2s, color .2s, border-color .2s;
}
.lsd-btn--y { background: var(--lsd-yellow); color: #14151b; font-weight: 800; }
.lsd-btn--y:hover { background: #fff; color: #14151b; }
.lsd-btn--ghost { border: 1px solid rgba(255,255,255,.2); color: #fff; }
.lsd-btn--ghost:hover { background: rgba(255,255,255,.05); color: #fff; }

.lsd-stats { margin-top: 3rem; display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; max-width: 32rem; }
.lsd-stat__num { font-family: var(--lsd-display); font-size: 1.875rem; font-weight: 700; color: var(--lsd-yellow); line-height: 1; white-space: nowrap; }
.lsd-stat__label { font-size: 11px; text-transform: uppercase; letter-spacing: .14em; color: rgba(255,255,255,.5); margin-top: .35rem; }
.lsd-stat--bordered { border-left: 1px solid rgba(255,255,255,.1); padding-left: 1.5rem; }

/* Hero media */
.lsd-hero__media { position: relative; }
.lsd-hero__photo {
	width: 100%; aspect-ratio: 4 / 3; background: var(--lsd-gray);
	border-radius: 16px; overflow: hidden; box-shadow: 0 25px 50px -12px rgba(0,0,0,.5);
	outline: 1px solid rgba(255,255,255,.1); outline-offset: -1px;
}
.lsd-hero__photo img { width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; }
.lsd-hero__okamzite {
	position: absolute; bottom: -1.5rem; left: -1.5rem;
	background: var(--lsd-yellow); color: #14151b; padding: 1.5rem 2rem;
	box-shadow: 0 20px 40px rgba(0,0,0,.35);
}
.lsd-hero__okamzite-big { font-family: var(--lsd-display); font-size: clamp(1.875rem, 3vw, 2.25rem); font-weight: 700; line-height: 1; margin: 0; }
.lsd-hero__okamzite-sub { font-size: 11px; text-transform: uppercase; font-weight: 700; letter-spacing: .14em; margin: .5rem 0 0; }
.lsd-hero__award {
	position: absolute; top: -1rem; right: -1rem;
	background: var(--lsd-black); border: 1px solid rgba(255,210,0,.3);
	padding: 1.25rem;
}
.lsd-hero__award-ic { color: var(--lsd-yellow); margin-bottom: .5rem; }
.lsd-hero__award p { font-size: 10px; text-transform: uppercase; font-weight: 700; letter-spacing: .14em; color: #fff; margin: 0; line-height: 1.4; }

@media (max-width: 980px) {
	.lsd-hero__grid { grid-template-columns: 1fr; gap: 3.5rem; }
	.lsd-hero { padding: 3rem 0 5rem; }
	.lsd-hero__watermark { font-size: 30vw; opacity: .6; }
}
@media (max-width: 600px) {
	.lsd-hero__okamzite { left: 0; bottom: -1rem; padding: 1.1rem 1.4rem; }
	.lsd-hero__award { right: 0; top: -.75rem; padding: 1rem; }
	.lsd-btn { flex: 1 1 100%; }
	.lsd-stats { gap: .9rem; }
	.lsd-stat--bordered { padding-left: .9rem; }
	.lsd-stat__num { font-size: 1.5rem; }
	.lsd-stat__label { font-size: 10px; }
}
