/* ============================================================
   TAIMAR TAILORS — global styles (rebrand 2026)
   Design tokens + fonts + base overrides on top of style.css.
   Palette per Brand Book 2026: Green / Ivory / Citrus / Levander
   ============================================================ */

/* FONTS START */
@font-face {
    font-family: 'ABC Ginto Nord';
    src: url('../fonts/abc-ginto-nord-regular.woff2') format('woff2');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Crabath Text';
    src: url('../fonts/crabath-text-light.woff2') format('woff2');
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}
/* FONTS END */

/* TOKENS START */
:root {
    /* colors */
    --color-primary: #2F3105;        /* Green — primárna farba značky */
    --color-primary-dark: #1E2003;
    --color-secondary: #D7E000;      /* Citrus — akcent, striedmo */
    --color-secondary-dark: #B8C000;
    --color-accent: #B0AEFA;         /* Levander — jemný kontrast */
    --color-text: #2F3105;
    --color-muted: #6B6D55;
    --color-light: #EBE3CF;          /* Ivory — podkladová farba */
    --color-white: #FFFFFF;          /* striedanie sekcií s Ivory */
    --color-dark: #1E2003;

    /* typography */
    --font-family-heading: 'ABC Ginto Nord', sans-serif;
    --font-family-body: 'Crabath Text', Georgia, serif;

    --font-section-title-lg: 3rem;
    --line-section-title-lg: 1.1;
    --font-section-title: 2.25rem;
    --line-section-title: 1.15;
    --font-section-title-md: 1.5rem;
    --line-section-title-md: 1.2;
    --font-section-title-sm: 1.125rem;
    --line-section-title-sm: 1.3;
    /* Crabath Text má malú x-height — základ preto 18px, nie 16px */
    --font-body: 1.125rem;
    --line-body: 1.7;
    --font-body-small: 1rem;
}
/* TOKENS END */

/* BASE START */
body {
    font-family: var(--font-family-body);
    font-size: var(--font-body);
    line-height: var(--line-body);
    color: var(--color-text);
    background: var(--color-light);
}

h1, h2, h3, h4, h5, h6,
.navbar-nav, .btn-main, .btn-call {
    font-family: var(--font-family-heading);
}

/* Nadpisy sa podľa brand booku sádžu kapitálkami s prestrknutím */
h1, h2, h3 {
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

/* SECTION TEXT SIZING START */
/* Zväčšenie textov v sekciách — Crabath pri pôvodných 14–16px pôsobí drobno */
.banner-data p {
    font-size: 1.25rem;
    line-height: 1.6;
    max-width: 38rem;
}

.taimar-data p,
.video-wrp p,
.cnt-founder p,
.insta-title p,
.inner-title p,
.luxury-data p,
.branch-data p,
.post-card p,
.membership-wrp .luxury-data li,
.cust-bx .styled-checkbox + label,
.contact-frm .form-group .form-control {
    font-size: var(--font-body);
    line-height: var(--line-body);
}

.post-wrp .post-content p {
    font-size: var(--font-body);
    line-height: var(--line-body);
}

.count-dt p {
    font-size: var(--font-body-small);
    line-height: 1.45;
}

/* Telefónne čísla pri osobách/pobočkách sa nesmú lámať na dva riadky.
   Len tel: linky — adresa pobočky je tiež <a> a nowrap ju tlačil mimo obrazovku. */
.team-box h6,
.branch-data a[href^="tel:"] {
    white-space: nowrap;
}
.team-box h6 {
    font-size: var(--font-body-small);
}

.footer-linksrw .quicklinks li a,
.foot-cntbx li,
.copyright p {
    font-size: var(--font-body-small);
}
/* SECTION TEXT SIZING END */

.btn-main {
    color: var(--color-light);
}
.btn-main:hover {
    background: var(--color-secondary);
    border-color: var(--color-secondary);
    color: var(--color-primary);
}
/* BASE END */

/* SECTION BACKGROUNDS START */
/* Striedanie podkladov biela/Ivory, aby stránka nebola celá v jednom tóne.
   Ivory drží body; biele sú karty služieb, recenzie, proces+portfólio na detaile
   služby a kontakt (bg-white v contact-form.htm, výnimka /sluzby). Fotkové
   sekcie (video, galérie, ďalšie služby) fungujú ako predel. */
.tranding-shop-wrp,
.category-wrp,
.testimonials-wrp {
    background: var(--color-white);
}
/* Rohové zárezy kariet služieb zrušené — pseudo-elementy sa nevykresľujú.
   display:none prebije aj border-y z breakpointov v responsive.css. */
.category-list ul li a:after,
.category-list ul li a:before {
    display: none;
}
/* SECTION BACKGROUNDS END */

/* SERVICE PROCESS CARDS START */
/* Kroky procesu na detaile služby: menší font bez prestrknutia, aby sa aj
   najdlhší názov („Dohodnutie stretnutia" = 189 px) zmestil na desktope na
   jeden riadok. Na užších kartách, kde sa názvy predsa zalomia, drží min-height
   dvojriadkovú výšku a centrovanie — spodné linky kariet lícujú vždy. */
.category-filter .catbox h3 {
    font-size: 0.8125rem;
    letter-spacing: normal;
    line-height: 1.4;
    min-height: 2.8em;
    display: flex;
    align-items: center;
    justify-content: center;
}
/* SERVICE PROCESS CARDS END */

/* SERVICE PORTFOLIO START */
/* Bez kariet procesu (show_proces vypnuté, napr. Doplnky) začínala galéria
   nalepená na hornú hranu sekcie. Padding musí byť na wrapperi — isotope
   pozicuje fotky absolútne a padding na samotnej .portfolio-gal ignoruje. */
.category-wrp .portfolio-wrp:has(> .portfolio-gal:first-child) {
    padding-top: 3rem;
}
/* Ďalšie služby: pri 50 % kartách (responsive.css) drží fixnú výšku obrázkov
   orez namiesto roztiahnutia; pri height:auto nemá efekt */
.suits-cat-wrp ul li a img {
    object-fit: cover;
}
/* Hover karty: transform obrázka vytvára stacking context, ktorý overlay
   skokovo prekryl — z-index drží overlay nad fotkou a mizne plynulo cez
   opacity (transition 0.4s má :before už zo style.css). Názov karty musí
   ostať NAD overlayom, inak by ho stmavoval. */
.suits-cat-wrp ul li a .suitbox .suitbox-img:before {
    z-index: 1;
}
.suits-cat-wrp ul li a .suitbox:hover .suitbox-img:before {
    opacity: 0;
}
.suits-cat-wrp ul li a .suitbox h3 {
    z-index: 2;
}
/* SERVICE PORTFOLIO END */

/* HOMEPAGE GALLERY START */
/* Tlačidlo „Zobraziť celú galériu" sa lepilo na spodnú hranu sekcie —
   zrkadlí mt-5 (3rem) nad tlačidlom */
.gallery-wrp {
    padding-bottom: 3rem;
    background: var(--color-white);
}
/* HOMEPAGE GALLERY END */

/* CONTACT CTA START */
.contact-cta {
    position: fixed;
    right: 1rem;
    bottom: 1rem;
    z-index: 125;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.9rem 1.5rem;
    background: var(--color-secondary);
    color: var(--color-primary);
    font-family: var(--font-family-heading);
    font-size: var(--font-body-small);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    transition: background 0.3s ease, color 0.3s ease, transform 0.3s ease, opacity 0.3s ease, visibility 0.3s ease;
}
/* CTA sa skrýva nad pätičkou (prekrývalo odkazy; triedu prepína IntersectionObserver
   v custom.js) a pri otvorenom mobilnom menu (body.add-fix z custom.js) */
.contact-cta.cta-hidden,
body.add-fix .contact-cta {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}
.contact-cta:hover,
.contact-cta:focus {
    background: var(--color-primary);
    color: var(--color-light);
    transform: translateY(-2px);
}
.contact-wrp {
    scroll-margin-top: 2rem;
}
/* CONTACT CTA END */

/* CONTACT FORM SELECT START */
.contact-frm .form-group select.form-control {
    appearance: none;
    -webkit-appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%232F3105' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6l6 -6'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 1.25rem center;
    background-size: 1rem;
    cursor: pointer;
}
/* CONTACT FORM SELECT END */

/* SERVICE PRICE START */
/* Citrus nie je podkladová farba (brandbook: akcenty nesmú tvoriť hlavné plochy) —
   pás je v Green a Citrus ostáva len na samotnej cene, kde má upútať. */
.service-price {
    background: var(--color-primary);
    padding: 2.5rem 0;
}
.service-price .container {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 2rem;
    flex-wrap: wrap;
}
.service-price p {
    margin: 0;
    font-family: var(--font-family-heading);
    font-size: var(--font-section-title-md);
    line-height: var(--line-section-title-md);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--color-light);
    text-align: center;
}
.service-price p strong {
    font-size: var(--font-section-title);
    white-space: nowrap;
    color: var(--color-secondary);
}
.service-price .btn-main {
    background: transparent;
    border-color: var(--color-light);
    color: var(--color-light);
}
.service-price .btn-main:hover {
    background: var(--color-light);
    border-color: var(--color-light);
    color: var(--color-primary);
}
/* SERVICE PRICE END */

/* FABRIC BRANDS START */
.fabric-brands {
    padding: 3rem 0 1rem;
    text-align: center;
}
.fabric-brands h2 {
    font-size: var(--font-section-title);
    line-height: var(--line-section-title);
    color: var(--color-primary);
    margin: 0 0 1rem;
}
.fabric-brands > p {
    max-width: 46rem;
    margin: 0 auto 2rem;
    font-size: var(--font-body);
    line-height: var(--line-body);
    color: var(--color-muted);
}
/* FABRIC BRANDS END */

/* CONTRAST FIXES START */
/* Header leží na tmavých fotkách — hover v tmavej zelenej by zanikol, akcent preto Citrus */
.navbar-light .navbar-nav .nav-link:hover,
.navbar-light .navbar-nav .nav-link:focus,
.navbar .navbar-nav .active a,
.navbar .navbar-nav .active a:focus,
.navbar .navbar-nav .active a:hover,
.cnt-top ul li a:hover,
.social-bx a:hover {
    color: var(--color-secondary);
}
.btn-call:hover {
    background: var(--color-secondary);
    border-color: var(--color-secondary);
    color: var(--color-primary);
}
/* Footer je na Ivory podklade — horizontálny logotyp obmedziť šírkou, nie výškou */
.footer-top .logobox img {
    height: auto;
    width: 100%;
    max-width: 20rem;
}
/* Logo v showroom sekcii — height:70px zo style.css by SVG roztiahlo mimo stĺpca */
.taimar-logo img {
    height: auto;
    width: 100%;
    max-width: 18rem;
}
/* Hovery na svetlom podklade (footer, kontakt, blog) — Citrus na Ivory zaniká,
   zmena sa signalizuje podčiarknutím namiesto farby */
.quicklinks li a:hover,
.copyright ul li a:hover,
.post-card .post-card-meta a:hover,
.post-card .post-card-title:hover,
.post-card .post-card-title:focus,
.foot-cntbx li a:hover,
.foot-cntbx li a:focus,
.foot-cntbx li a:active,
.branch-data a:hover,
.team-box a:hover h6 {
    color: var(--color-primary);
    text-decoration: underline;
}
.footer-top .social-bx a:hover {
    color: var(--color-dark);
}
/* CONTRAST FIXES END */

/* SERVICE CARDS START */
/* 6 služieb v gride 4+2 — neúplný posledný riadok má byť vycentrovaný */
.category-list ul {
    justify-content: center;
}
/* SERVICE CARDS END */

/* BRAND VIDEO START */
.brand-video {
    background: var(--color-dark);
    /* video je inline element — line-height by pridal medzeru pod neho */
    line-height: 0;
}
.brand-video video {
    display: block;
    width: 100%;
    height: auto;
    max-height: 100vh;
    object-fit: cover;
}
/* BRAND VIDEO END */

/* SERVICE HERO START */
/* Hero na podstránkach: obrázok z admina roztiahnutý na 100 % šírky bez stropu určoval
   výšku celej sekcie (štvorcová fotka = hero cez celú obrazovku). Pomer 16:9 — pri
   pôvodných 1422×612 (2,32:1) bolo z hero fotky (1,43:1) vidno len ~61 % výšky,
   pri 16:9 je to ~80 % a postavy sa doň zmestia. Pod 1201 px platia fixné výšky
   z responsive.css, tie sú preto zdvihnuté nižšie v tomto súbore. */
/* Iba hero fotka — je priamym potomkom sekcie (alebo v <picture>). Bez tohto
   zúženia pravidlo trafí aj ikony v páse štatistík a roztiahne ich na šírku. */
.inner-banner > img,
.inner-banner > picture > img {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 7;
    object-fit: cover;
}
/* Fixné výšky z responsive.css počítali s nižším hero — zvýšené v rovnakom pomere */
@media (max-width: 1200px) {
    .inner-banner > img,
    .inner-banner > picture > img {
        height: 420px;
    }
}
@media (max-width: 767px) {
    .inner-banner > img,
    .inner-banner > picture > img {
        height: 460px;
    }
}
/* Poistka pre ikony v páse štatistík — responsive.css im ruší výšku, ale nie
   pomer strán, ktorý sme na hero zaviedli. */
.inner-banner .count-ic img {
    width: auto;
    height: auto;
    aspect-ratio: auto;
    object-fit: fill;
}
/* SERVICE HERO END */

/* CUSTOM SELECT (showroom) START */
/* Natívny select ostáva v DOM kvôli odoslaniu formulára a validácii, skrytý ho nahrádza custom dropdown */
.contact-frm .form-group select.form-control.js-hidden {
    display: none;
}
.custom-select-box {
    position: relative;
}
.custom-select-toggle {
    width: 100%;
    padding: 1.25rem;
    background: #fff;
    border: none;
    border-bottom: 1px solid rgba(47, 49, 5, 0.30);
    border-radius: 0;
    color: var(--color-text);
    font-size: var(--font-body);
    line-height: var(--line-body);
    font-weight: 500;
    text-align: left;
    cursor: pointer;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%232F3105' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6l6 -6'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 1.25rem center;
    background-size: 1rem;
    transition: border-color 0.3s ease;
}
.custom-select-box.open .custom-select-toggle,
.custom-select-toggle:focus {
    border-bottom-color: var(--color-primary);
}
.custom-select-toggle.is-placeholder {
    color: rgba(47, 49, 5, 0.30);
}
.contact-frm select.is-invalid + .custom-select-box .custom-select-toggle {
    border-bottom-color: red;
}
.custom-select-menu {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 20;
    display: none;
    margin: 0;
    padding: 0;
    list-style: none;
    background: #fff;
    box-shadow: 0 0.75rem 1.5rem rgba(30, 32, 3, 0.15);
}
.custom-select-box.open .custom-select-menu {
    display: block;
}
.custom-select-menu li {
    padding: 1rem 1.25rem;
    color: var(--color-text);
    font-size: var(--font-body);
    cursor: pointer;
}
.custom-select-menu li:hover,
.custom-select-menu li:focus,
.custom-select-menu li.active {
    background: var(--color-light);
    outline: none;
}
/* CUSTOM SELECT (showroom) END */

/* TRENDING SHOP START */
/* style.css dáva názvom kariet max-width 160px — dlhšie slovo (Voľnočasová)
   z boxu pretekalo doprava. fit-content: box aj podčiarknutie kopírujú text. */
.category-box h3 {
    width: fit-content;
    max-width: 90%;
}
/* TRENDING SHOP END */

/* THANK YOU START */
/* Vlastná trieda namiesto bootstrapového .btn-group — ten do odkazov tlačí
   vlastné pozicovanie. Outline štýl je v style.css zoscopovaný pod .taimar-data,
   preto ho definujeme aj tu. */
.thank-you-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 1rem;
    margin-top: 2.5rem;
}
.thank-you-actions .btn-main.btn-secondary {
    /* Globálny .btn-secondary v style.css pridáva margin 40px a väčší padding —
       tu ho neutralizujeme, inak sa tlačidlá rozhodia. */
    margin: 0;
    padding: 18px 40px;
    background: transparent;
    color: var(--color-primary);
}
.thank-you-actions .btn-main.btn-secondary:hover {
    background: var(--color-primary);
    border-color: var(--color-primary);
    color: var(--color-light);
}
/* THANK YOU END */

/* GOOGLE REVIEWS START */
/* Biela sekcia (striedanie s Ivory, na home medzi luxury-wrp a galériou),
   karty na Ivory podklade. Hviezdy sú brandovo zelené — Google žlté by sa
   bili s paletou. */
.greviews-wrp {
    padding: 5rem 0;
    background: var(--color-white);
}
.greviews-wrp .section-title {
    margin-bottom: 2rem;
}
/* Zarovnané doľava — vpravo nad kartami sedia šípky slidera (desktop),
   preto tam header necháva voľné miesto (padding v responsive.css). */
.greviews-head {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    flex-wrap: wrap;
    gap: 1rem 2rem;
    margin-bottom: 2.5rem;
}
.greviews-score {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}
.greviews-glogo svg {
    width: 2rem;
    height: 2rem;
    display: block;
}
.greviews-avg {
    font-family: var(--font-family-heading);
    font-weight: 600;
    font-size: var(--font-section-title-md);
    line-height: 1;
    color: var(--color-primary);
}
.greviews-stars {
    display: flex;
    gap: 0.2rem;
    color: var(--color-primary);
}
.greviews-stars svg {
    width: 1.125rem;
    height: 1.125rem;
}
.greviews-count {
    font-size: var(--font-body-small);
    color: var(--color-muted);
}
.greviews-links {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1.5rem;
}
.greviews-links a {
    font-size: var(--font-body-small);
    color: var(--color-primary);
    text-decoration: underline;
    text-underline-offset: 0.3125rem;
    transition: color 0.3s ease;
}
.greviews-links a:hover {
    color: var(--color-secondary-dark);
}

/* Rovnaká výška kariet v slicku: celá reťaz track → slide → wrapper → karta
   je flex a naťahuje sa na výšku najvyššej karty. */
.greviews-slider {
    margin: 0 -0.75rem;
}
.greviews-slider .slick-track {
    display: flex;
}
.greviews-slider .slick-slide {
    display: flex;
    height: auto;
    padding: 0 0.75rem;
}
.greviews-slider .slick-slide > div {
    display: flex;
    width: 100%;
}
.greviews-slide {
    display: flex;
    width: 100%;
}
.greviews-card {
    position: relative;
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%;
    overflow: hidden; /* hus-vodoznak prečnieva cez roh */
    /* zoslabený Ivory tón — plná Ivory bola na bielej sekcii príliš ťažká;
       prvý riadok je fallback pre prehliadače bez color-mix */
    background: var(--color-light);
    background: color-mix(in srgb, var(--color-light) 45%, var(--color-white));
    border: 1px solid rgba(47, 49, 5, 0.12);
    padding: 1.75rem;
    transition: border-color 0.3s ease;
}
/* Zdvih so shadow sa rezal o overflow slick-listu — hover rieši len border */
.greviews-card:hover {
    border-color: var(--color-primary);
}
/* Vodoznak — brandová hus v rohu karty (rovnaké SVG ako favicon maska).
   Pseudo je pozicované, preto obsah karty potrebuje vlastný z-index, inak by
   ho hus prekryla. */
.greviews-card::after {
    content: "";
    position: absolute;
    right: -1.75rem;
    bottom: -2.25rem;
    z-index: 0;
    width: 8.5rem;
    height: 11.6rem; /* pomer 209 : 286 podľa viewBoxu SVG */
    background: url('../images/favicon/safari-pinned-tab.svg') no-repeat center / contain;
    transform: rotate(-10deg);
    opacity: 0.06;
    pointer-events: none;
    transition: opacity 0.3s ease;
}
.greviews-card:hover::after {
    opacity: 0.1;
}
.greviews-card-top,
.greviews-text,
.greviews-author {
    position: relative;
    z-index: 1;
}
.greviews-card-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1rem;
}
.greviews-card-top .greviews-glogo svg {
    width: 1.375rem;
    height: 1.375rem;
}
.greviews-card-top .greviews-stars svg {
    width: 1rem;
    height: 1rem;
}
.greviews-text {
    font-size: var(--font-body-small);
    line-height: var(--line-body);
    color: var(--color-text);
    white-space: pre-line;
    display: -webkit-box;
    -webkit-line-clamp: 6;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin-bottom: 1.5rem;
}
.greviews-author {
    margin-top: auto;
    padding-top: 1rem;
    border-top: 1px solid rgba(47, 49, 5, 0.08);
}
.greviews-author h5 {
    font-size: var(--font-section-title-sm);
    line-height: var(--line-section-title-sm);
    color: var(--color-primary);
    margin: 0 0 0.25rem;
}
.greviews-author span {
    font-size: var(--font-body-small);
    color: var(--color-muted);
}
/* Celá karta je klikateľná — odkaz prekrýva kartu. */
.greviews-cardlink {
    position: absolute;
    inset: 0;
    z-index: 1;
}

/* Šípky slidera — na desktope vpravo nad kartami, pod 992 px ich responsive.css
   presúva pod slider na stred. */
.greviews-slider .slick-prev,
.greviews-slider .slick-next {
    position: absolute;
    top: -4.75rem;
    right: 0.75rem;
    left: auto;
    z-index: 5;
    border: none;
    background: transparent;
    width: auto;
    height: auto;
    font-size: 0;
    color: transparent;
}
.greviews-slider .slick-prev {
    right: 4.5rem;
}
/* Hranaté tlačidlá — web má dôsledne ostré hrany */
.greviews-slider .slick-prev:before,
.greviews-slider .slick-next:before {
    content: ">";
    display: block;
    width: 2.8125rem;
    height: 2.8125rem;
    line-height: 2.8125rem;
    text-align: center;
    font-size: 1.125rem;
    color: var(--color-primary);
    background: var(--color-light);
    background: color-mix(in srgb, var(--color-light) 45%, var(--color-white));
    border: 1px solid rgba(47, 49, 5, 0.12);
    transition: 0.3s ease;
}
.greviews-slider .slick-prev:before {
    content: "<";
}
.greviews-slider .slick-prev:hover:before,
.greviews-slider .slick-next:hover:before {
    color: var(--color-light);
    background: var(--color-primary);
}
/* Bodky paginácie — existujú len pod 992 px (slick responsive),
   pozíciu pod sliderom rieši responsive.css */
.greviews-slider .slick-dots {
    list-style: none;
    display: flex;
    align-items: center;
    gap: 0.625rem;
    margin: 0;
    padding: 0;
}
.greviews-slider .slick-dots li {
    line-height: 0;
    margin: 0;
    width: auto;
    height: auto;
}
.greviews-slider .slick-dots button {
    display: block;
    width: 0.5rem;
    height: 0.5rem;
    padding: 0;
    font-size: 0;
    border: none;
    border-radius: 50%;
    background: rgba(47, 49, 5, 0.25);
    transition: background 0.3s ease;
}
.greviews-slider .slick-dots .slick-active button {
    background: var(--color-primary);
}
/* GOOGLE REVIEWS END */

/* Pred inicializáciou slicku drž karty v jednom rade — bez skoku layoutu. */
.greviews-slider:not(.slick-initialized) {
    display: flex;
    overflow: hidden;
}
.greviews-slider:not(.slick-initialized) .greviews-slide {
    flex: 0 0 33.333%;
    padding: 0 0.75rem;
}

/* HEADER LAYOUT START */
/* Nové rozloženie hlavičky na desktope: logo vľavo — navigácia v strede — symbol vpravo.
   Pôvodne bolo logo v strede zoznamu (li.logobox) a vľavo hore nebolo nič
   (.navbar-brand mal v style.css display:none, zapínal sa až pod 1200px). */
@media (min-width: 1200px) {
    .navbar-brand {
        display: block;
    }
    .navbar-brand img {
        width: 11rem;   /* 578×169 → cca 61px na výšku */
    }
    /* Navigácia sa neroztiahne po celej šírke — ľavé auto-margin ju pritlačí
       k pravej strane, k symbolu. Rozostupy rieši gap namiesto margin-right
       na každej položke (style.css), takže sú rovnaké medzi všetkými.
       justify-content prepisuje responsive.css (@media min-width:1200px), kde mal
       zoznam space-between — bez toho by gap nebolo vidno. */
    .navbar-light .navbar-nav {
        margin: 0 0 0 auto;
        gap: 2rem;
        justify-content: end;
    }
    .navbar-light .navbar-nav li {
        margin-right: 0;
    }
    .nav-symbol {
        display: block;
        flex-shrink: 0;
        margin-left: 32px;
    }
    .nav-symbol img {
        height: 64px;   /* 209×286 → cca 47px na šírku */
        width: auto;
        display: block;
    }
}

/* Telefón presunutý z navigácie do horného menu — drží sa štýlu ostatných
   položiek topbaru, len o niečo výraznejší, aby zostal čitateľný ako kontakt. */
.cnt-top ul li a.topbar-call {
    font-weight: 500;
    letter-spacing: 0.04em;
}
/* HEADER LAYOUT END */

/* CATEGORY TILES START */
/* Návrh A („Ticho") — názov kategórie sa presúva zo stredu fotky do ľavého
   dolného rohu. Zmeny oproti style.css:
   - font-weight: bold → 400 (nahratý je len rez ABC Ginto Regular, bold sa
     dopočítaval umelo a deformoval kresbu; brandbook predpisuje Regular)
   - prestrkanie verzálok podľa sadzby v manuáli
   - riadkovanie 1.08 ≈ brandových 24/26 (pomerom, aby platilo aj na menších
     stupňoch z responsive.css)
   - #fff → Ivory, citrusové podčiarknutie preč (akcent patrí na detail)
   - názov pri hoveri zostáva viditeľný */
.category-box:after {
    background: linear-gradient(to top,
        rgb(0 0 0 / 82%) 0%,
        rgb(0 0 0 / 35%) 38%,
        rgba(30, 32, 3, 0) 68%);
    opacity: 1;
    transition: opacity 0.4s ease;
}
.category-box h3 {
    top: auto;
    bottom: 1.05rem;
    left: 1.1rem;
    right: 1.1rem;
    transform: none;
    width: auto;
    max-width: none;
    margin: 0;
    text-align: left;
    font-weight: 400;
    line-height: 1.08;
    letter-spacing: 0.13em;
    color: var(--color-light);
    border-bottom: 0;
}
.category-box:hover:after {
    opacity: 0.85;
    visibility: visible;
}
.category-box:hover h3 {
    opacity: 1;
    visibility: visible;
}
.category-box:hover img {
    transform: scale(1.06);
}
/* Na úzkych dlaždiciach by prestrkanie 0.13em dlhší názov zalomilo do troch
   riadkov — pod 768px ho sťahujeme. */
@media (max-width: 767px) {
    .category-box h3 {
        letter-spacing: 0.08em;
        left: 0.85rem;
        right: 0.85rem;
        bottom: 0.85rem;
    }
}
/* CATEGORY TILES END */

/* SLIDER VIGNETTE START */
/* Bočné stmavenie vrátené kvôli čitateľnosti textu. Oproti pôvodnej vinete zo
   style.css sú tu len boky (nadpis aj tlačidlá sedia vľavo, preto je ľavá strana
   silnejšia) — hore ani dole nič netreba: hlavička má ivory logo na tmavej fotke
   a pás štatistík si čitateľnosť rieši vlastným sklom. */
.slider-block:before {
    display: block;
    background:
        /* Horný pás kvôli hlavičke: fotka je pod ňou priemerne tmavá (57/255),
           ale odlesky svietidiel vo výklade majú až 237 — ivory menu by na nich
           zaniklo. Siaha po 26 % výšky, teda pod celé logo aj menu. */
        linear-gradient(180deg, rgba(20, 11, 2, 0.72) 0%, rgba(20, 11, 2, 0) 26%),
        linear-gradient(90deg, rgba(20, 11, 2, 0.60) 0%, rgba(20, 11, 2, 0) 48%),
        linear-gradient(270deg, rgba(20, 11, 2, 0.45) 0%, rgba(20, 11, 2, 0) 32%);
}
/* SLIDER VIGNETTE END */

/* COUNTROW GLASS START */
/* Pás štatistík leží priamo na fotke slidera. Po zjemnení vinety mu podklad
   zosvetlel (jas 88 → 121) a biele čísla sa na ňom strácali. Namiesto vracania
   tmavého prechodu cez celú fotku dostáva pás vlastné sklo: jemné rozostrenie
   podkladu a tenká tmavá vrstva. Fotka nad ním ostáva ostrá a svetlá. */
.banner-countrow {
    background: rgba(20, 11, 2, 0.15);
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
}
/* Prehliadače bez backdrop-filter (starší Firefox s vypnutou vlajkou) rozostrenie
   nedostanú, preto tam musí čitateľnosť zabezpečiť samotná vrstva. */
@supports not (backdrop-filter: blur(6px)) {
    .banner-countrow {
        background: rgba(20, 11, 2, 0.45);
    }
}
/* COUNTROW GLASS END */

/* SLIDER TEXT ALIGN START */
/* Obsah slidu zarovnaný doľava — style.css ho centruje cez text-align aj cez
   automatické okraje, takže treba prepísať oboje (aj pri tlačidle, ktoré je
   display: table a centruje sa margin-om). */
.banner-data {
    text-align: center;
}
.banner-data p {
    text-align: center;
}
/* Tlačidlá sú inline-flex, takže ich vycentruje text-align rodiča — stačí zrušiť
   nulové bočné okraje z predchádzajúceho (ľavého) zarovnania. */
/* SLIDER TEXT ALIGN END */

/* SLIDER BUTTONS START */
/* Dve tlačidlá vedľa seba — .btn-main je display: table, takže by sa poskladali
   pod seba; inline-flex ich postaví do riadku a zároveň zarovná ikonu s textom. */
.banner-data .btn-main {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
}
.banner-data .btn-main + .btn-main {
    margin-left: 0.75rem;
}
.banner-data .btn-ic {
    flex: 0 0 auto;
}
/* Sekundárne tlačidlo má ustúpiť primárnemu (rezervácii) — žiadna plocha ani
   rámik, len text s podčiarknutím. Padding ostáva kvôli veľkosti kliknuteľnej
   plochy na dotykových displejoch. */
.banner-data .btn-slider-secondary {
    background: transparent;
    border-color: transparent;
    color: var(--color-light);
    opacity: 0.85;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 0.35em;
}
.banner-data .btn-slider-secondary:hover {
    background: transparent;
    border-color: transparent;
    color: var(--color-light);
    opacity: 1;
}
@media (max-width: 575px) {
    .banner-data .btn-main + .btn-main {
        margin-left: 0;
        margin-top: 0.75rem;
    }
}
/* SLIDER BUTTONS END */

/* HEADER ON LIGHT START */
/* Homepage: hlavička leží na svetlej fotke bez závoja, takže biele texty a ikony
   na nej zanikajú. Prepínajú sa do Green — rovnako ako logo a primárne tlačidlo.
   Hover nemôže ísť do Citrusu (na svetlom má kontrast ~1.6:1), preto len stlmenie. */
.header-on-light .social-bx a,
.header-on-light .cnt-top ul li a {
    color: var(--color-primary);
}
.header-on-light .social-bx a:hover,
.header-on-light .cnt-top ul li a:hover {
    color: var(--color-primary);
    opacity: 0.6;
}
/* Hamburger (do 1199 px) leží tiež priamo na fotke */
.header-on-light .navbar-light .navbar-toggler-icon {
    border-bottom-color: var(--color-primary);
}
.header-on-light .navbar-light .navbar-toggler-icon:before,
.header-on-light .navbar-light .navbar-toggler-icon:after {
    background-color: var(--color-primary);
}
/* Položky menu a telefón žijú pod 1200 px vo vnútri tmavého fullscreen overlayu —
   tam musia zostať svetlé. Do Green sa prepínajú len na desktope, kde ležia na fotke. */
@media (min-width: 1200px) {
    .header-on-light .navbar-light .navbar-nav .nav-link,
    .header-on-light .btn-call {
        color: var(--color-primary);
    }
    .header-on-light .btn-call {
        border-color: var(--color-primary);
    }
    .header-on-light .navbar-light .navbar-nav .nav-link:hover,
    .header-on-light .navbar-light .navbar-nav .nav-link:focus {
        color: var(--color-primary);
        opacity: 0.6;
    }
}
/* HEADER ON LIGHT END */

/* TOPBAR CTA START */
/* Namiesto telefónneho čísla je v hornom menu výzva na rezerváciu. Obrys berie
   farbu z textu (currentColor), takže sa sám prispôsobí: na homepage je hlavička
   v Green, na ostatných stránkach biela na tmavom banneri. */
.cnt-top ul li a.topbar-cta {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 0.9rem;
    border: 1px solid currentColor;
    font-size: 13px;
    letter-spacing: 0.06em;
    line-height: 1;
}
.cnt-top ul li a.topbar-cta .btn-ic {
    flex: 0 0 auto;
    width: 15px;
    height: 15px;
}
/* Hover musí prefarbiť aj podklad, preto sa nedá riešiť cez currentColor */
.cnt-top ul li a.topbar-cta:hover {
    background: var(--color-light);
    border-color: var(--color-light);
    color: var(--color-primary);
    opacity: 1;
}
.header-on-light .cnt-top ul li a.topbar-cta:hover {
    background: var(--color-primary);
    border-color: var(--color-primary);
    color: var(--color-light);
}
/* Horné menu má položky zvislo vycentrované, tlačidlo je vyššie ako text vedľa neho */
.cnt-top ul {
    align-items: center;
}
/* TOPBAR CTA END */

/* SLIDER TEXT START */
/* Popis pod nadpisom slidu skrytý — text v administrácii ostáva, len sa
   nevykresľuje. Zapnutie späť = zmazať toto pravidlo. */
.banner-data p {
    display: none;
}
/* SLIDER TEXT END */

/* SLIDER HEADLINE START */
/* Nadpis slidu: vycentrovaný, bez obmedzenia šírky a bez tieňa — fotka je tmavá,
   takže biely text drží aj bez neho.
   Platí pre h1 aj h2 — prvý slide používa h1, ďalšie h2, ale vizuálne je to
   ten istý prvok. */
.banner-data h1,
.banner-data h2 {
    font-weight: 600;
    color: #fff;
    text-align: center;
    margin: 0 auto 10px;
    max-width: none;
}
/* Menší, pokojnejší nadpis — 48 px je ďalší stupeň brandovej stupnice (72/48/24).
   Platí len na desktope; responsive.css si pod 1200 px rieši veľkosti sám. */
@media (min-width: 1200px) {
    .banner-data h1,
    .banner-data h2 {
        font-size: 48px;
        text-shadow: 2px 2px 6px #00000080;
    }
}
/* SLIDER HEADLINE END */
/* COMBINED LOGO START */
/* Kombinovaná značka v hlavičke (1241×132 = 9,4:1). Brandbook žiada minimálnu výšku
   40 px, tomu zodpovedá šírka ~376 px — pri užšom okne by sa s menu nezmestila,
   preto sú dva stupne. */
@media (min-width: 1200px) {
    .navbar-brand {
        display: block;
    }
    .navbar-brand img.logo-combined {
        width: 20rem;   /* 320 px → cca 34 px na výšku */
    }
}
@media (min-width: 1400px) {
    .navbar-brand img.logo-combined {
        width: 23.5rem; /* 376 px → 40 px, minimum podľa brandbooku */
    }
}
/* COMBINED LOGO END */

/* HEADER STACKED START */
/* Logo na stred, menu pod ním. Na desktope sa obsah navigácie skladá do stĺpca —
   bootstrapový .container v .navbar je flex riadok, preto stačí otočiť smer. */
@media (min-width: 1200px) {
    .navbar > .container {
        flex-direction: column;
        align-items: center;
        gap: 1.25rem;
    }
    .navbar-brand {
        margin: 0;
    }
    .navbar-collapse {
        width: 100%;
    }
    .nav-row {
        justify-content: center;
    }
    /* Prepisuje skoršie zarovnanie menu doprava (margin-left: auto, justify-content: end) */
    .navbar-light .navbar-nav {
        margin: 0;
        justify-content: center;
    }
}
/* HEADER STACKED END */

/* SLIDER IMAGE CROP START */
/* Hero fotka (2000×1402) je stále užšia než slider na celú šírku okna, takže sa
   vertikálne oreže. Posun na 70 % zhora zachová celé postavy aj s obuvou
   a nad hlavami nechá vzduch. */
.slider-block img {
    object-position: center 70%;
}
/* SLIDER IMAGE CROP END */

/* SINGLE SLIDE START */
/* Beží len jeden slide, takže bodky pod slidrom nemajú čo prepínať. Zmazať spolu
   s podmienkou loop.first v main-slider.htm. */
.main-slider .slick-dots {
    display: none;
}
/* SINGLE SLIDE END */

/* SLIDER PRIMARY BUTTON START */
/* Tlačidlo v slideri: svetlý text a okraj nad rozostreným podkladom — rovnaké
   sklo, aké má pás štatistík, aby si tie dva prvky na fotke odpovedali.
   Vrstva je jemná (12 %), sklo drží čitateľnosť aj nad svetlejším miestom fotky. */
.banner-data .btn-main {
    background: rgba(20, 11, 2, 0.12);
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
    border-color: var(--color-light);
    color: var(--color-light);
}
@supports not (backdrop-filter: blur(6px)) {
    .banner-data .btn-main {
        background: rgba(20, 11, 2, 0.42);
    }
}
.banner-data .btn-main:hover {
    background: var(--color-light);
    border-color: var(--color-light);
    color: var(--color-primary);
}
/* SLIDER PRIMARY BUTTON END */

/* INSTAGRAM SECTION START */
/* Sekcia beží na svetlom podklade, kde má Citrus kontrast len ~1,6:1 — ikona
   aj linka pod nadpisom idú do Green. */
.insta-title i {
    color: var(--color-primary);
}
.insta-title h2:after {
    background: var(--color-primary);
}
/* Bodky pod fotkami: aktívna v Green, neaktívne v jeho stlmenej podobe —
   rovnaké riešenie ako pri slideri recenzií, nech sú bodky na webe jednotné. */
.insta-feedslider .slick-dots li button {
    background: rgba(47, 49, 5, 0.25);
}
.insta-feedslider .slick-dots li.slick-active button {
    background: var(--color-primary);
}
/* INSTAGRAM SECTION END */

/* SERVICE HERO — HP STYLE START */
/* Hero detailu služby dostáva rovnakú stavbu ako hero na homepage: text v strede
   a čísla dole v presklenom páse. Pôvodne sedel nadpis vľavo dole a čísla stáli
   pod sebou v pravom stĺpci. */
.inner-banner .inner-banner-center {
    top: 50%;
    bottom: auto;
    transform: translateY(-50%);
    /* pôvodných 95px dolu už netreba — blok je vycentrovaný */
    padding: 0;
}
.inner-title {
    text-align: center;
}
.inner-title h1 {
    margin: 0 auto 24px;
}
/* Linka pod nadpisom bola ukotvená vľavo (left: 0) — pri centrovanom nadpise
   ju treba vycentrovať tiež. */
.inner-title h1:after {
    left: 0;
    right: 0;
    margin: 0 auto;
}
.inner-title p {
    margin-left: auto;
    margin-right: auto;
}
@media (min-width: 1200px) {
    .inner-title h1 {
        font-size: 48px;
    }
}
/* Pás so štatistikami leží nad spodným okrajom fotky — v hero detailu služby
   platí to isté umiestnenie ako v slideri. */
.inner-banner .banner-countrow {
    bottom: 0;
}
/* Pás so štatistikami sa na mobile štyrmi položkami vedľa seba tlačil — pod 768 px
   sa skrýva. Čísla ostávajú na desktope, kde majú priestor. */
@media (max-width: 767px) {
    .banner-countrow {
        display: none;
    }
}
/* SERVICE HERO — HP STYLE END */

/* FABRIC BRANDS SLIDER START */
/* Rad značiek beží ako plynulý pás. Slick prepíše pôvodný flex, preto sa
   zarovnanie a rozostupy riešia na úrovni slajdu. */
.sponcerlst ul.slick-slider {
    display: block;
}
.sponcerlst .slick-track {
    display: flex;
    align-items: center;
}
.sponcerlst ul li {
    margin-right: 0;
    padding: 0 1.75rem;
    /* logá majú rôzne pomery strán — jednotná výška ich opticky zrovná */
    height: 64px;
    display: flex !important;
    align-items: center;
    justify-content: center;
}
.sponcerlst ul li img {
    max-width: 120px;
    max-height: 64px;
    width: auto;
    height: auto;
    margin: 0 auto;
}
/* Okraje pásu jemne zmiznú do podkladu, aby logá nekončili „naostro" */
.fabric-brands .sponcerlst {
    overflow: hidden;
    -webkit-mask-image: linear-gradient(to right, transparent, #000 6%, #000 94%, transparent);
    mask-image: linear-gradient(to right, transparent, #000 6%, #000 94%, transparent);
}
/* FABRIC BRANDS SLIDER END */

/* SERVICE TILES ON SUBPAGES START */
/* Bočné medzery medzi dlaždicami ostávajú, ruší sa len spodná medzera 70 px —
   na podstránkach je pod jediným radom dlaždíc zbytočne veľa prázdna.
   Len na desktope: pod 1200 px sa dlaždice skladajú do dvoch stĺpcov a spodná
   medzera tam tvorí rozostup medzi riadkami. */
@media (min-width: 1200px) {
    .pg-service .category-list ul li,
    .pg-services .category-list ul li {
        margin-bottom: 0;
    }
}
/* SERVICE TILES ON SUBPAGES END */

/* BOOKING MODAL START */
/* Rezervácia termínu — dvojkrokový modál. Otvára ho ktorýkoľvek prvok
   s data-booking (tlačidlá „Rezervovať termín“). */
.booking {
    position: fixed;
    inset: 0;
    z-index: 2000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.5rem;
}
.booking[hidden] {
    display: none;
}
.booking__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(20, 11, 2, 0.55);
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
}
/* Bez podpory backdrop-filter musí čitateľnosť zabezpečiť samotná vrstva */
@supports not (backdrop-filter: blur(10px)) {
    .booking__backdrop {
        background: rgba(20, 11, 2, 0.82);
    }
}
.booking__dialog {
    position: relative;
    width: 100%;
    max-width: 34rem;
    max-height: calc(100vh - 3rem);
    overflow-y: auto;
    background: var(--color-light);
    color: var(--color-primary);
    padding: 2.75rem 2.5rem 2.5rem;
    animation: bookingIn 0.35s cubic-bezier(0.2, 0.7, 0.2, 1);
}
@keyframes bookingIn {
    from { opacity: 0; transform: translateY(12px); }
    to   { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
    .booking__dialog { animation: none; }
}
.booking__close {
    position: absolute;
    top: 0.75rem;
    right: 1rem;
    background: none;
    border: 0;
    font-size: 2rem;
    line-height: 1;
    color: var(--color-primary);
    cursor: pointer;
    opacity: 0.6;
    transition: opacity 0.2s ease;
}
.booking__close:hover {
    opacity: 1;
}
.booking__eyebrow {
    font-family: var(--font-family-heading);
    font-size: 0.72rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--color-muted);
    margin: 0 0 0.75rem;
}
.booking__title {
    font-size: 1.75rem;
    line-height: 1.1;
    margin: 0 0 0.5rem;
}
.booking__lead {
    font-size: var(--font-body-small);
    color: var(--color-muted);
    margin: 0 0 1.75rem;
}
.booking__back {
    background: none;
    border: 0;
    padding: 0;
    font: inherit;
    color: var(--color-primary);
    text-decoration: underline;
    text-underline-offset: 0.25em;
    cursor: pointer;
}
/* Výber showroomu */
.booking__choices {
    display: grid;
    gap: 0.75rem;
}
.booking__choice {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    padding: 1.25rem 1.4rem;
    text-align: left;
    background: transparent;
    border: 1px solid rgba(47, 49, 5, 0.25);
    cursor: pointer;
    transition: border-color 0.25s ease, background 0.25s ease;
}
.booking__choice:hover,
.booking__choice:focus-visible {
    border-color: var(--color-primary);
    background: rgba(47, 49, 5, 0.04);
}
.booking__city {
    font-family: var(--font-family-heading);
    font-size: 1.1rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--color-primary);
}
.booking__addr {
    font-size: 0.9rem;
    line-height: 1.4;
    color: var(--color-muted);
}
/* Formulár v druhom kroku */
.booking__row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 1rem;
}
/* Na mobile má modál pôsobiť ľahko — formulár v téme má polia s odsadením 20 px
   a medzerami 30 px, čo je na malej obrazovke príliš vysoké. */
@media (max-width: 767px) {
    .booking {
        padding: 0.75rem;
    }
    .booking__dialog {
        padding: 1.4rem 1.1rem 1.2rem;
        max-height: calc(100vh - 1.5rem);
    }
    .booking__close {
        top: 0.25rem;
        right: 0.55rem;
        font-size: 1.6rem;
    }
    .booking__eyebrow {
        font-size: 0.62rem;
        margin-bottom: 0.35rem;
    }
    .booking__title {
        font-size: 1.1rem;
    }
    .booking__lead {
        font-size: 0.8rem;
        margin-bottom: 0.9rem;
    }
    .booking__row {
        grid-template-columns: 1fr;
    }
    .booking__choice {
        padding: 0.7rem 0.9rem;
        gap: 0.15rem;
    }
    .booking__city {
        font-size: 0.95rem;
    }
    .booking__addr {
        font-size: 0.78rem;
    }
    .booking .contact-frm .form-group {
        margin-bottom: 0.6rem;
    }
    .booking .contact-frm .form-group .form-control {
        padding: 0.6rem 0.8rem;
        font-size: 15px;   /* pod 16 px iOS pri fokuse stránku priblíži — nižšie nejsť */
    }
    .booking .contact-frm .form-group textarea.form-control {
        min-height: 3.4rem;
    }
    .booking .cust-bx label span {
        font-size: 0.78rem;
        line-height: 1.35;
    }
    .booking__submit {
        padding: 11px 20px;
        font-size: 14px;
    }
}
.booking__submit {
    width: 100%;
    justify-content: center;
    margin-top: 0.5rem;
    border: 1px solid var(--color-primary);
}
/* Polia v modáli: biele bloky pôsobili na ivory podklade ťažko. Ostáva len
   jemná linka a podfarbenie, text má odsadenie od hrany. */
.booking .contact-frm .form-group .form-control {
    background: rgba(47, 49, 5, 0.04);
    padding: 0.9rem 1rem;
    border-bottom: 1px solid rgba(47, 49, 5, 0.22);
    transition: background 0.2s ease, border-color 0.2s ease;
}
.booking .contact-frm .form-group .form-control:focus {
    background: rgba(47, 49, 5, 0.07);
    border-bottom-color: var(--color-primary);
}
/* Validačné hlášky nemali v téme žiadny štýl, preto sa vykresľovali v základnej
   veľkosti textu. Tu sú drobné a decentné — majú upozorniť, nie kričať. */
.booking .err-msg {
    display: block;
    margin-top: 0.3rem;
    font-family: var(--font-family-heading);
    font-size: 0.7rem;
    letter-spacing: 0.05em;
    line-height: 1.3;
    color: #9E3B26;
}
.booking .err-msg:empty {
    display: none;
}
@media (max-width: 767px) {
    .booking .err-msg {
        margin-top: 0.2rem;
        font-size: 0.64rem;
    }
}
/* BOOKING MODAL END */

/* DEFAULT HERO IMAGE START */
/* Jednotná hero fotka (rovnaká ako prvý slide na homepage) je na výšku užšia než
   hero pás, preto sa oreže — 70 % zhora zachová celé postavy, ako na homepage. */
.inner-banner > img.hero-default {
    object-position: center 50%;
}
/* DEFAULT HERO IMAGE END */

/* MOBILE MENU BACKGROUND START */
/* Fullscreen menu (pod 1200 px) preberá hlavnú fotku z homepage. Pôvodný zelený
   prechod fotku prefarboval — nahrádza ho neutrálne stmavenie v tóne #140B02,
   ktoré drží ivory text čitateľný aj nad svetlými miestami fotky (odlesky vo výklade). */
@media (max-width: 1199px) {
    .navbar-collapse,
    .navbar-collapse.collapsing {
        background:
            linear-gradient(180deg,
                rgba(20, 11, 2, 0.78) 0%,
                rgba(20, 11, 2, 0.58) 45%,
                rgba(20, 11, 2, 0.82) 100%),
            url(../images/hero-default.jpg) center center / cover no-repeat;
    }
}
/* MOBILE MENU BACKGROUND END */
