:root {
    --brand: #0bb1e5;
    --brand-dark: #0890bb;
    --brand-soft: #e7f7fc;
    --bs-link-color: #0786ad;
    --bs-link-color-rgb: 7, 134, 173;
    --bs-link-hover-color: #055f7b;
    --bs-link-hover-color-rgb: 5, 95, 123;
    --bs-body-font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

body {
    background: #fff;
    color: #2b3438;
}

/* Tlačítka v barvě značky */
.btn-brand {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--brand-dark);
    --bs-btn-border-color: var(--brand-dark);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #067299;
    --bs-btn-hover-border-color: #067299;
    --bs-btn-active-bg: #055f7b;
    --bs-btn-focus-shadow-rgb: 11, 177, 229;
}
.btn-outline-brand {
    --bs-btn-color: var(--brand-dark);
    --bs-btn-border-color: var(--brand-dark);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--brand-dark);
    --bs-btn-hover-border-color: var(--brand-dark);
    --bs-btn-active-bg: #067299;
    --bs-btn-active-color: #fff;
    --bs-btn-focus-shadow-rgb: 11, 177, 229;
}

/* Hlavička */
.site-header .navbar { border-bottom: 3px solid var(--brand); }
.site-logo { height: 52px; width: auto; }
@media (min-width: 992px) { .site-logo { height: 70px; } }
.navbar .nav-link {
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .03em;
    color: #2b3438;
    padding: .75rem 1rem;
}
.navbar .nav-link:hover,
.navbar .nav-link.active { color: var(--brand-dark); }
@media (min-width: 992px) {
    .navbar .nav-link.active { box-shadow: inset 0 -3px 0 var(--brand); }
}
@media (max-width: 991.98px) {
    .navbar-collapse { border-top: 1px solid #e5eef1; margin-top: .5rem; }
    .navbar .nav-link { border-bottom: 1px solid #f0f4f5; }
}

/* Úvodní slider */
.hero-img {
    height: 220px;
    object-fit: cover;
}
@media (min-width: 576px) { .hero-img { height: 300px; } }
@media (min-width: 992px) { .hero-img { height: 420px; } }

/* Nadpisy a sekce */
.page-header {
    background: linear-gradient(135deg, var(--brand-soft), #fff);
    border-bottom: 1px solid #dceff5;
    padding: 1.5rem 0;
}
.page-title {
    font-size: clamp(1.4rem, 1.1rem + 1.5vw, 2rem);
    font-weight: 700;
    color: #1d2a30;
}
.section-title {
    color: var(--brand-dark);
    font-weight: 700;
    font-size: 1.15rem;
    text-transform: uppercase;
    border-bottom: 2px solid var(--brand);
    padding-bottom: .4rem;
    margin-bottom: 1rem;
}
.text-center.section-title { border-bottom: 0; }
.lead-text { color: var(--brand-dark); font-weight: 600; }
/* Ruční zalomení ze starého obsahu dělají na úzkém displeji „schody“ */
@media (max-width: 767.98px) {
    .lead-text br { display: none; }
}
.breadcrumb { font-size: .875rem; }

/* Obsah z editoru – nesmí přetékat na mobilu */
.content img,
.card-text img { max-width: 100%; height: auto; }
.content table { display: block; max-width: 100%; overflow-x: auto; }
.content iframe { max-width: 100%; }
.content, .card-text { overflow-wrap: anywhere; }
/* Obrázky vložené v textu (i se zarovnáním ze starého editoru) jsou na mobilu přes celou šířku */
.content img[style*="float"],
.content img[align],
.content .onas-obrazek {
    display: block;
    float: none !important;
    width: 100%;
    margin: 0 0 1rem;
    border-radius: .5rem;
}
@media (min-width: 768px) {
    .content .onas-obrazek,
    .content img[align="right"],
    .content img[style*="float: right"],
    .content img[style*="float:right"] { float: right !important; width: auto; max-width: 45%; margin: 0 0 1rem 1.5rem; }
    .content img[align="left"],
    .content img[style*="float: left"],
    .content img[style*="float:left"] { float: left !important; width: auto; max-width: 45%; margin: 0 1.5rem 1rem 0; }
}

.article-main-image { display: block; margin-bottom: 1rem; }
@media (min-width: 768px) {
    .article-main-image { float: right; max-width: 45%; margin: 0 0 1rem 1.5rem; }
}

/* Služby */
.section-services { background: #f5fafc; }
.service-card { border: 0; box-shadow: 0 .25rem 1rem rgba(0, 0, 0, .06); overflow: hidden; }
.service-card .card-img-top { aspect-ratio: 4 / 3; object-fit: cover; object-position: top; }
.service-card .card-title a { color: #1d2a30; text-decoration: none; }
.service-card .card-title a:hover { color: var(--brand-dark); }
.service-card .card-text p:empty,
.service-card .card-text p:has(> br:only-child) { display: none; }

/* Galerie */
.gallery-item { display: block; border-radius: .5rem; overflow: hidden; }
.gallery-item img {
    width: 100%;
    aspect-ratio: 3 / 4;
    object-fit: cover;
    transition: transform .25s ease;
}
.gallery-item:hover img { transform: scale(1.04); }

/* Lightbox */
#lightbox .modal-content { max-height: 95vh; }
.lightbox-img { max-height: 80vh; }
.lightbox-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 44px;
    height: 44px;
    border: 0;
    border-radius: 50%;
    background: rgba(0, 0, 0, .5);
    color: #fff;
    font-size: 2rem;
    line-height: 1;
}
.lightbox-prev { left: .5rem; }
.lightbox-next { right: .5rem; }

/* Kontakt */
.contact-box {
    background: var(--brand-soft);
    border-radius: .75rem;
    padding: 1.5rem;
}
.hp-field { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

/* Patička */
.site-footer {
    background: #1d2a30;
    color: #e9f3f6;
}
.site-footer a { color: #fff; }
.footer-map iframe { border: 0; filter: grayscale(.2); }
@media (max-width: 575.98px) {
    .footer-map { --bs-aspect-ratio: 75%; }
}
