* {
    box-sizing: border-box
}
html {
    scroll-behavior: smooth
}
body {
    margin: 0;
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
    color: #101a2d;
    background: #fff
}
a {
    text-decoration: none;
    color: inherit
}
img {
    max-width: 100%
}
.container {
    width: min(1160px, 92%);
    margin: auto
}
.site-header {
    height: 76px;
    background: #071321;
    color: #fff;
    position: sticky;
    top: 0;
    z-index: 50
}
.nav-inner {
    height: 100%;
    display: flex;
    align-items: center;
    gap: 28px
}
.brand img {
    width: 190px;
    display: block
}
.main-nav {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 26px;
    flex: 1
}
.main-nav a {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .15px;
    color: #d5dbe5;
    padding: 30px 0 25px;
    border-bottom: 2px solid transparent
}
.main-nav a:hover,
.main-nav a.active {
    color: #ff7414;
    border-bottom-color: #ff7414
}
.header-contact {
    display: flex;
    align-items: center;
    gap: 9px;
    min-width: 165px
}
.header-contact .phone-icon {
    width: 31px;
    height: 31px;
    border: 2px solid #ff7414;
    border-radius: 50%;
    display: grid;
    place-items: center;
    color: #ff7414;
    font-weight: 900
}
.header-contact strong {
    display: block;
    color: #ff7414;
    font-size: 13px
}
.header-contact small {
    display: block;
    color: #b6c0ce;
    font-size: 10px;
    margin-top: 2px
}
.mobile-menu {
    display: none;
    background: none;
    color: #fff;
    border: 0;
    font-size: 24px
}
.hero-first {
    position: relative;
    min-height: 520px;
    background: #091523;
    color: #fff;
    overflow: visible
}
.hero-bg {
    position: absolute;
    inset: 0;
    background-image: linear-gradient(90deg, #07111de8 0%, #07111dcc 34%, #07111d35 66%, #07111d10 100%), url("../images/hero-heating.svg");
    background-size: cover;
    background-position: center
}
.hero-overlay {
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 78% 48%, #ff741433, transparent 28%)
}
.hero-content {
    position: relative;
    z-index: 2;
    min-height: 470px;
    display: flex;
    align-items: center
}
.hero-copy {
    max-width: 580px;
    padding: 55px 0 120px
}
.eyebrow {
    font-size: 11px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: 2px;
    color: #f47416;
    margin-bottom: 16px
}
.light-eyebrow {
    color: #ff7414
}
.hero h1 {
    font-size: 64px;
    line-height: .98;
    letter-spacing: -2.4px;
    margin: 0 0 20px;
    font-weight: 850
}
.hero h1 span {
    color: #ff7414
}
.hero-copy>p {
    font-size: 16px;
    line-height: 1.6;
    color: #e2e7ee;
    max-width: 540px;
    margin: 0 0 25px
}
.hero-actions {
    display: flex;
    gap: 12px
}
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    background: #ff7414;
    color: #fff;
    border: 1px solid #ff7414;
    border-radius: 5px;
    padding: 14px 20px;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .2px;
    cursor: pointer;
    transition: .2s
}
.btn:hover {
    transform: translateY(-2px);
    filter: brightness(1.05)
}
.btn-outline-light {
    background: #0b1725aa;
    border-color: #e7ebf1;
    color: #fff
}
.btn-outline-orange {
    background: #fff;
    border-color: #ff7414;
    color: #ef6c12
}
.btn-dark {
    background: #0b1725;
    border-color: #0b1725
}
.benefits-wrap {
    position: relative;
    z-index: 4;
    margin-top: -82px
}
.benefits {
    background: #fff;
    color: #101a2d;
    border-radius: 10px;
    box-shadow: 0 15px 45px #08142624;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    padding: 23px 14px
}
.benefit {
    display: flex;
    gap: 13px;
    padding: 2px 18px;
    border-right: 1px solid #e4e8ed
}
.benefit:last-child {
    border-right: 0
}
.benefit-icon {
    font-size: 31px;
    color: #ff7414;
    line-height: 1
}
.benefit strong {
    font-size: 12px;
    display: block;
    margin-bottom: 7px
}
.benefit p {
    font-size: 10px;
    line-height: 1.45;
    color: #697588;
    margin: 0
}
.section {
    padding: 82px 0
}
.services-section {
    background: #fff
}
.services-layout {
    display: grid;
    grid-template-columns: 245px 1fr;
    gap: 42px;
    align-items: start
}
.services-intro h2 {
    font-size: 34px;
    line-height: 1.1;
    margin: 0 0 15px;
    letter-spacing: -1px
}
.services-intro p {
    font-size: 13px;
    line-height: 1.65;
    color: #6d7786;
    margin: 0 0 25px
}
.service-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 13px
}
.service-card {
    min-height: 150px;
    border: 1px solid #e6e9ed;
    border-radius: 7px;
    display: flex;
    gap: 16px;
    padding: 20px;
    background: #fff;
    transition: .2s;
    box-shadow: 0 5px 18px #13213a08
}
.service-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 28px #13213a12
}
.service-card-icon {
    width: 48px;
    min-width: 48px;
    height: 48px;
    border-radius: 9px;
    background: #fff3e9;
    color: #ff7414;
    display: grid;
    place-items: center;
    font-size: 28px
}
.service-card h3 {
    font-size: 15px;
    margin: 1px 0 9px
}
.service-card ul {
    padding: 0;
    margin: 0;
    list-style: none
}
.service-card li {
    font-size: 10px;
    color: #6b7585;
    margin: 6px 0
}
.service-card li:before {
    content: "•";
    color: #ff7414;
    margin-right: 6px
}
.why-section {
    background: #081523;
    color: #fff;
    padding: 58px 0
}
.why-grid {
    display: grid;
    grid-template-columns: 320px 1fr;
    gap: 35px;
    align-items: center
}
.why-copy h2 {
    font-size: 30px;
    line-height: 1.1;
    margin: 0 0 14px
}
.why-copy p {
    color: #b9c2ce;
    font-size: 12px;
    line-height: 1.6;
    margin-bottom: 20px
}
.stats-row {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    border-left: 1px solid #ffffff20
}
.stats-row>div {
    padding: 10px 20px;
    text-align: center;
    border-right: 1px solid #ffffff20
}
.stat-icon {
    display: block;
    color: #ff7414;
    font-size: 26px;
    margin-bottom: 8px
}
.stats-row strong {
    display: block;
    font-size: 27px;
    color: #ff7414
}
.stats-row small {
    display: block;
    color: #d7dde6;
    font-size: 10px;
    margin-top: 4px
}
.projects-section {
    padding-top: 64px
}
.section-head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    margin-bottom: 24px
}
.section-head h2 {
    font-size: 34px;
    line-height: 1;
    margin: 0
}
.projects-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px
}
.project-card {
    border: 1px solid #e5e9ee;
    border-radius: 7px;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 4px 14px #15223809
}
.project-photo {
    height: 160px;
    background: linear-gradient(135deg, #d5dce5, #6c7785 60%, #2b3542);
    background-size: cover;
    background-position: center
}
.project-photo.has-photo {
    background-size: cover
}
.demo-1 {
    background: linear-gradient(135deg, #252d36 15%, #a47a45 50%, #1b222b)
}
.demo-2 {
    background: linear-gradient(135deg, #e9ecef, #c5b49e 55%, #7c858d)
}
.demo-3 {
    background: repeating-linear-gradient(115deg, #222 0 8px, #d88a32 9px 13px, #222 14px 21px)
}
.demo-4 {
    background: linear-gradient(135deg, #303944, #b2a083 48%, #171f28)
}
.project-info {
    padding: 12px 14px
}
.project-info h3 {
    font-size: 13px;
    margin: 0 0 7px
}
.project-info div {
    font-size: 10px;
    color: #7a8491
}
.team-section {
    padding-top: 30px;
    background: #f7f8fa
}
.team-layout {
    display: grid;
    grid-template-columns: 230px 1fr;
    gap: 35px;
    align-items: center
}
.team-intro h2 {
    font-size: 29px;
    line-height: 1.1;
    margin: 0 0 20px
}
.team-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px
}
.team-card {
    background: #fff;
    border: 1px solid #e5e8ec;
    border-radius: 7px;
    text-align: center;
    padding: 12px 10px;
    box-shadow: 0 4px 12px #12203908
}
.team-photo {
    height: 170px;
    background: linear-gradient(145deg, #eef0f2, #cbd0d6);
    border-radius: 5px;
    display: grid;
    place-items: center;
    overflow: hidden
}
.team-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover
}
.team-photo span {
    font-weight: 900;
    font-size: 30px;
    color: #13213a
}
.team-card h3 {
    font-size: 12px;
    margin: 10px 0 4px
}
.team-card p {
    font-size: 10px;
    color: #f47416;
    margin: 0
}
.reviews-section {
    background: #081523;
    color: #fff;
    padding: 60px 0
}
.reviews-section h2 {
    font-size: 30px;
    margin: 0 0 28px
}
.reviews-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px
}
.reviews-grid blockquote {
    margin: 0;
    background: #12233a;
    border: 1px solid #ffffff12;
    border-radius: 8px;
    padding: 22px;
    min-height: 180px
}
.quote {
    font-size: 35px;
    line-height: .6;
    color: #ff7414;
    font-weight: 900
}
.reviews-grid p {
    font-size: 12px;
    line-height: 1.6;
    color: #c7ced9;
    min-height: 55px
}
.review-person {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 3px
}
.review-person strong {
    font-size: 11px
}
.review-person span {
    font-size: 9px;
    color: #8794a6
}
.review-person b {
    grid-column: 2;
    grid-row: 1/3;
    color: #ff7414;
    letter-spacing: 1px
}
.contact-cta {
    background: #ff7414;
    color: #fff;
    padding: 25px 0
}
.contact-cta-inner {
    display: grid;
    grid-template-columns: 1.7fr .8fr .9fr auto;
    align-items: center;
    gap: 25px
}
.contact-cta h2 {
    font-size: 24px;
    line-height: 1.15;
    margin: 0 0 6px
}
.contact-cta p {
    font-size: 11px;
    margin: 0;
    color: #ffe9d7
}
.cta-contact {
    display: flex;
    flex-direction: column;
    border-left: 1px solid #ffffff55;
    padding-left: 22px
}
.cta-contact strong {
    font-size: 13px
}
.cta-contact span {
    font-size: 9px;
    margin-top: 4px;
    color: #ffe9d7
}
.contact-section {
    padding: 55px 0
}
.contact-grid {
    display: grid;
    grid-template-columns: .9fr 1.1fr;
    gap: 60px
}
.contact-grid h2 {
    font-size: 34px;
    margin: 0 0 12px
}
.contact-grid>div>p {
    font-size: 12px;
    line-height: 1.6;
    color: #6e7887;
    max-width: 450px
}
.contact-list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
    margin-top: 28px
}
.contact-list>div {
    display: flex;
    gap: 12px
}
.contact-list b {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: #fff1e8;
    color: #ff7414;
    display: grid;
    place-items: center
}
.contact-list span {
    font-size: 10px;
    color: #687485
}
.contact-list strong {
    display: block;
    color: #172033;
    font-size: 11px;
    margin-bottom: 4px
}
.inquiry-form {
    border: 1px solid #e5e9ee;
    border-radius: 8px;
    padding: 22px;
    box-shadow: 0 10px 30px #10213a0b;
    display: grid;
    gap: 11px
}
.inquiry-form input,
.inquiry-form textarea,
.inquiry-form select {
    font: inherit;
    width: 100%;
    border: 1px solid #e0e4e9;
    border-radius: 5px;
    padding: 12px 13px;
    font-size: 11px;
    outline: none
}
.inquiry-form input:focus,
.inquiry-form textarea:focus,
.inquiry-form select:focus {
    border-color: #ff7414
}
.form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 11px
}
.form-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px
}
.form-bottom>span {
    font-size: 9px;
    color: #788292
}
.form-bottom strong {
    font-size: 13px;
    color: #ff7414
}
.site-footer {
    background: #071321;
    color: #c8d0db;
    padding: 42px 0 15px
}
.footer-grid {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 1.2fr;
    gap: 45px;
    padding-bottom: 30px
}
.footer-brand img {
    width: 180px;
    margin-bottom: 12px
}
.footer-brand p {
    font-size: 10px;
    line-height: 1.6;
    max-width: 280px;
    color: #8895a7
}
.footer-grid>div:not(.footer-brand) {
    display: flex;
    flex-direction: column;
    gap: 8px
}
.footer-grid h4 {
    color: #fff;
    font-size: 11px;
    margin: 0 0 5px
}
.footer-grid a,
.footer-grid span {
    font-size: 10px;
    color: #aeb8c6
}
.footer-grid a:hover {
    color: #ff7414
}
.footer-bottom {
    border-top: 1px solid #ffffff14;
    padding-top: 14px;
    display: flex;
    justify-content: space-between;
    gap: 15px;
    font-size: 8px;
    color: #768396
}
.footer-bottom a {
    color: #ff7414
}
.btn span {
    font-size: 14px
}
@media(max-width:1000px) {
    .header-contact {
        display: none
    }
    .main-nav {
        gap: 14px
    }
    .benefits {
        grid-template-columns: repeat(2, 1fr)
    }
    .benefit:nth-child(2) {
        border-right: 0
    }
    .benefit {
        padding: 12px
    }
    .hero h1 {
        font-size: 52px
    }
    .services-layout,
    .why-grid,
    .team-layout {
        grid-template-columns: 1fr
    }
    .services-intro {
        max-width: 560px
    }
    .projects-grid {
        grid-template-columns: repeat(2, 1fr)
    }
    .team-grid {
        grid-template-columns: repeat(4, 1fr)
    }
    .contact-cta-inner {
        grid-template-columns: 1fr 1fr
    }
    .cta-contact {
        border-left: 0
    }
    .contact-cta .btn {
        justify-self: start
    }
    .footer-grid {
        grid-template-columns: 2fr 1fr 1fr
    }
    .contact-grid {
        gap: 30px
    }
}
@media(max-width:720px) {
    .site-header {
        height: 66px
    }
    .brand img {
        width: 150px
    }
    .main-nav {
        display: none;
        position: absolute;
        left: 0;
        right: 0;
        top: 66px;
        background: #071321;
        padding: 10px 5%;
        flex-direction: column;
        align-items: stretch;
        gap: 0
    }
    .main-nav.open {
        display: flex
    }
    .main-nav a {
        padding: 12px 0
    }
    .mobile-menu {
        display: block;
        margin-left: auto
    }
    .hero-first {
        min-height: 610px
    }
    .hero-content {
        min-height: 520px
    }
    .hero-copy {
        padding-bottom: 120px
    }
    .hero h1 {
        font-size: 45px
    }
    .benefits-wrap {
        margin-top: -105px
    }
    .benefits {
        grid-template-columns: 1fr
    }
    .benefit {
        border-right: 0;
        border-bottom: 1px solid #e4e8ed
    }
    .benefit:last-child {
        border-bottom: 0
    }
    .service-grid,
    .projects-grid,
    .reviews-grid,
    .contact-grid {
        grid-template-columns: 1fr
    }
    .team-grid {
        grid-template-columns: 1fr 1fr
    }
    .contact-cta-inner {
        grid-template-columns: 1fr
    }
    .form-row {
        grid-template-columns: 1fr
    }
    .footer-grid {
        grid-template-columns: 1fr 1fr
    }
    .footer-bottom {
        flex-direction: column
    }
    .section-head {
        align-items: flex-start;
        gap: 18px;
        flex-direction: column
    }
}
/* V5 cache-busted first-design build */
/* V6 – contact/footer treatment based on approved visual */
.contact-section {
    background: #0b141f;
    color: #fff;
    padding: 64px 0 70px
}
.contact-grid h2 {
    color: #fff
}
.contact-grid>div>p {
    color: #aeb9c7
}
.contact-list span {
    color: #aeb9c7
}
.contact-list strong {
    color: #fff
}
.contact-list b {
    background: transparent;
    border: 1px solid #ff7414;
    color: #ff7414;
    width: 38px;
    height: 38px
}
.inquiry-form {
    background: #111c28;
    border-color: #253241;
    box-shadow: 0 18px 45px #0004
}
.inquiry-form input,
.inquiry-form textarea,
.inquiry-form select {
    background: #111c28;
    color: #eef2f7;
    border-color: #344251
}
.inquiry-form input::placeholder,
.inquiry-form textarea::placeholder {
    color: #a4afbd
}
.inquiry-form select option {
    background: #111c28;
    color: #fff
}
.form-bottom>span {
    color: #aeb9c7
}
.form-bottom strong {
    color: #ff7414
}
.site-footer {
    background: #06111d;
    border-top: 1px solid #172536
}
.footer-brand img {
    width: 255px;
    height: auto
}
.footer-brand p {
    font-size: 12px;
    color: #9ca8b7;
    max-width: 350px
}
.footer-grid h4 {
    font-size: 12px;
    letter-spacing: .5px
}
.footer-grid a,
.footer-grid span {
    font-size: 12px;
    color: #aeb9c7
}
.footer-grid a:hover {
    color: #ff7414
}
.footer-bottom {
    font-size: 10px;
    color: #7e8b9c
}
.hero-first {
    min-height: 600px
}
.hero-content {
    min-height: 550px
}
.benefits-wrap {
    margin-top: -88px
}
@media(max-width:720px) {
    .hero-first {
        min-height: 650px
    }
    .hero-content {
        min-height: 570px
    }
    .benefits-wrap {
        margin-top: -80px
    }
    .footer-brand img {
        width: 230px
    }
}
/* V7 – typography scale only. Layout/design intentionally unchanged. */
body {
    font-size: 16px
}
.main-nav a {
    font-size: 14px
}
.header-contact strong {
    font-size: 15px
}
.header-contact small {
    font-size: 11px
}
.eyebrow {
    font-size: 13px
}
.hero-copy>p {
    font-size: 18px
}
.btn {
    font-size: 13px;
    padding: 15px 22px
}
.benefit strong {
    font-size: 15px
}
.benefit p {
    font-size: 13px;
    line-height: 1.5
}
.services-intro h2 {
    font-size: 38px
}
.services-intro p {
    font-size: 15px
}
.service-card h3 {
    font-size: 17px
}
.service-card li {
    font-size: 13px
}
.why-copy h2 {
    font-size: 34px
}
.why-copy p {
    font-size: 14px
}
.stats-row strong {
    font-size: 31px
}
.stats-row small {
    font-size: 12px
}
.section-head h2 {
    font-size: 38px
}
.project-info h3 {
    font-size: 15px
}
.project-info div {
    font-size: 12px
}
.team-intro h2 {
    font-size: 33px
}
.team-card h3 {
    font-size: 14px
}
.team-card p {
    font-size: 12px
}
.reviews-section h2 {
    font-size: 34px
}
.reviews-grid p {
    font-size: 14px;
    line-height: 1.65
}
.review-person strong {
    font-size: 13px
}
.review-person span {
    font-size: 11px
}
.contact-cta h2 {
    font-size: 28px
}
.contact-cta p {
    font-size: 13px
}
.cta-contact strong {
    font-size: 15px
}
.cta-contact span {
    font-size: 11px
}
.contact-grid h2 {
    font-size: 38px
}
.contact-grid>div>p {
    font-size: 14px;
    line-height: 1.7
}
.contact-list span {
    font-size: 12px
}
.contact-list strong {
    font-size: 13px
}
.inquiry-form input,
.inquiry-form textarea,
.inquiry-form select {
    font-size: 13px;
    padding: 13px 14px
}
.form-bottom>span {
    font-size: 11px
}
.form-bottom strong {
    font-size: 15px
}
.footer-brand p {
    font-size: 13px;
    line-height: 1.7
}
.footer-grid h4 {
    font-size: 13px
}
.footer-grid a,
.footer-grid span {
    font-size: 12px
}
.footer-bottom {
    font-size: 10px
}
/* Oprava čitelnosti benefitů v překryvném boxu */
.benefits .benefit strong {
    color: #101a2d;
}
.benefits .benefit p {
    color: #697588;
}
/* V15 – jednotné logo Topenáři Morava */
.logo img,
.site-logo img,
.login-logo,
.admin-logo img,
.brand img {
    object-fit: contain;
}
/* V16 – správná varianta loga podle pozadí */
.header .site-logo img,
.site-header .site-logo img,
footer .site-logo img,
.footer .site-logo img {
    max-height: 52px;
    width: auto;
}
.hero-first .site-logo img {
    max-height: 54px;
}
/* V17 – výrazné a čitelné logo */
.site-logo,
.logo,
.brand {
    display: flex;
    align-items: center;
}
.site-logo img,
.logo img,
.brand img {
    width: 260px !important;
    max-width: none !important;
    height: auto !important;
    max-height: 72px !important;
    object-fit: contain !important;
}
.header .site-logo img,
.site-header .site-logo img {
    width: 255px !important;
    max-height: 64px !important;
}
footer .site-logo img,
.footer .site-logo img {
    width: 255px !important;
    max-height: 64px !important;
}
@media(max-width:800px) {
    .site-logo img,
    .logo img,
    .brand img {
        width: 205px !important;
        max-width: 75vw !important;
        max-height: 58px !important;
    }
}
/* V18 – logo na tmavém veřejném webu */
.site-header .brand img {
    width: 250px !important;
    height: auto !important;
    max-height: 64px !important;
    object-fit: contain !important;
}
.footer-brand img {
    width: 250px !important;
    height: auto !important;
    max-height: 68px !important;
    object-fit: contain !important;
}
@media(max-width:800px) {
    .site-header .brand img {
        width: 205px !important;
        max-width: 72vw !important
    }
    .footer-brand img {
        width: 210px !important;
        max-width: 75vw !important
    }
}
/* V19 – finální firemní logo podle schválené předlohy */
.site-header .brand img {
    width: 270px !important;
    max-height: 70px !important;
    height: auto !important
}
.footer-brand img {
    width: 270px !important;
    max-height: 72px !important;
    height: auto !important
}
/* V20 – schválené zjednodušené logo */
.site-header .brand img {
    width: 270px !important;
    height: auto !important;
    max-height: 78px !important;
}
.footer-brand img {
    width: 270px !important;
    height: auto !important;
    max-height: 78px !important;
}
/* V21 – oprava proporcí loga podle schválené předlohy */
.site-header .brand {
    display: flex;
    align-items: center;
    height: 100%;
    flex-shrink: 0
}
.site-header .brand img {
    width: 285px !important;
    max-width: none !important;
    height: auto !important;
    max-height: 72px !important
}
.footer-brand img {
    width: 285px !important;
    max-width: none !important;
    height: auto !important;
    max-height: 78px !important
}
@media(max-width:1000px) {
    .site-header .brand img {
        width: 250px !important;
        max-width: 62vw !important
    }
}
@media(max-width:720px) {
    .site-header .brand img {
        width: 205px !important;
        max-width: 58vw !important
    }
    .footer-brand img {
        width: 245px !important;
        max-width: 85vw !important
    }
}
/* Finální velikost loga */
.site-header .brand img {
    width: 285px !important;
    max-width: none !important;
    height: auto !important;
    max-height: 72px !important
}
.footer-brand img {
    width: 285px !important;
    max-width: none !important;
    height: auto !important;
    max-height: 78px !important
}
@media(max-width:720px) {
    .site-header .brand img {
        width: 205px !important;
        max-width: 58vw !important;
        max-height: 62px !important
    }
    .footer-brand img {
        width: 245px !important;
        max-width: 85vw !important
    }
}
/* V23 – schválené PNG logo */
.site-header .brand img,
.footer-brand img,
.side-brand img,
.login-box .login-logo {
    height: auto !important;
    object-fit: contain !important;
}
/* Tým – členové jsou řízeni z administrace */
.team-grid {
    align-items: stretch;
}
.team-empty {
    grid-column: 1/-1;
    background: #fff;
    border: 1px dashed #d9dee5;
    border-radius: 7px;
    padding: 30px;
    text-align: center;
    color: #7a8491;
    font-size: 13px;
}
/* Jemné animace při scrollování */
.reveal-on-scroll {
    opacity: 0;
    transform: translateY(28px);
    transition: opacity .65s ease, transform .65s cubic-bezier(.22, 1, .36, 1);
    will-change: opacity, transform
}
.reveal-on-scroll.is-visible {
    opacity: 1;
    transform: translateY(0)
}
.reveal-delay-1 {
    transition-delay: .08s
}
.reveal-delay-2 {
    transition-delay: .16s
}
.reveal-delay-3 {
    transition-delay: .24s
}
.reveal-delay-4 {
    transition-delay: .32s
}
@media (prefers-reduced-motion:reduce) {
    .reveal-on-scroll {
        opacity: 1;
        transform: none;
        transition: none
    }
}
/* Scroll reveal – bloky přijíždějí ze stran */
.reveal-on-scroll {
    opacity: 0;
    transform: translateX(-70px);
    transition: opacity .75s ease, transform .75s cubic-bezier(.22, 1, .36, 1);
    will-change: opacity, transform;
}
.reveal-on-scroll.from-right {
    transform: translateX(70px);
}
.reveal-on-scroll.is-visible {
    opacity: 1;
    transform: translateX(0);
}
.reveal-on-scroll.reveal-delay-1 {
    transition-delay: .10s;
}
.reveal-on-scroll.reveal-delay-2 {
    transition-delay: .20s;
}
.reveal-on-scroll.reveal-delay-3 {
    transition-delay: .30s;
}
.reveal-on-scroll.reveal-delay-4 {
    transition-delay: .40s;
}
@media (prefers-reduced-motion: reduce) {
    .reveal-on-scroll {
        opacity: 1;
        transform: none;
        transition: none;
    }
}
/* Scroll animace – obsah přijíždí ze stran */
.reveal-on-scroll {
    opacity: 0;
    transform: translateX(-70px);
    transition: opacity .75s ease, transform .75s cubic-bezier(.22, 1, .36, 1);
    will-change: opacity, transform;
}
.reveal-on-scroll.from-right {
    transform: translateX(70px);
}
.reveal-on-scroll.is-visible {
    opacity: 1;
    transform: translateX(0);
}
.reveal-on-scroll.reveal-delay-1 {
    transition-delay: .10s;
}
.reveal-on-scroll.reveal-delay-2 {
    transition-delay: .20s;
}
.reveal-on-scroll.reveal-delay-3 {
    transition-delay: .30s;
}
.reveal-on-scroll.reveal-delay-4 {
    transition-delay: .40s;
}
/* Čítače ve statistickém bloku */
.stat-counter {
    display: block;
    min-width: 3ch;
    font-variant-numeric: tabular-nums;
}
@media (prefers-reduced-motion: reduce) {
    .reveal-on-scroll {
        opacity: 1;
        transform: none;
        transition: none;
    }
}
/* V29 – animace kontaktní části při scrollování */
.contact-cta .reveal-on-scroll,
.contact-section .reveal-on-scroll {
    opacity: 0;
    transform: translateX(-70px);
    transition: opacity .75s ease, transform .75s cubic-bezier(.22, 1, .36, 1);
    will-change: opacity, transform;
}
.contact-cta .reveal-on-scroll.from-right,
.contact-section .reveal-on-scroll.from-right {
    transform: translateX(70px);
}
.contact-cta .reveal-on-scroll.is-visible,
.contact-section .reveal-on-scroll.is-visible {
    opacity: 1;
    transform: translateX(0);
}
@media (prefers-reduced-motion: reduce) {
    .contact-cta .reveal-on-scroll,
    .contact-section .reveal-on-scroll {
        opacity: 1;
        transform: none;
        transition: none;
    }
}
/* Hero – text přijíždí zprava při načtení stránky */
.hero .hero-kicker,
.hero .hero-title,
.hero .hero-text,
.hero .hero-actions {
    opacity: 0;
    transform: translateX(70px);
    transition:
        opacity .75s ease,
        transform .75s cubic-bezier(.22, 1, .36, 1);
    will-change: opacity, transform;
}
.hero .hero-visual {
    opacity: 0;
    transform: translateX(55px);
    transition:
        opacity .9s ease,
        transform .9s cubic-bezier(.22, 1, .36, 1);
    will-change: opacity, transform;
}
.hero.hero-loaded .hero-kicker,
.hero.hero-loaded .hero-title,
.hero.hero-loaded .hero-text,
.hero.hero-loaded .hero-actions,
.hero.hero-loaded .hero-visual {
    opacity: 1;
    transform: translateX(0);
}
.hero.hero-loaded .hero-kicker {
    transition-delay: .04s;
}
.hero.hero-loaded .hero-title {
    transition-delay: .12s;
}
.hero.hero-loaded .hero-text {
    transition-delay: .20s;
}
.hero.hero-loaded .hero-actions {
    transition-delay: .28s;
}
.hero.hero-loaded .hero-visual {
    transition-delay: .16s;
}
@media (prefers-reduced-motion: reduce) {
    .hero .hero-kicker,
    .hero .hero-title,
    .hero .hero-text,
    .hero .hero-actions,
    .hero .hero-visual {
        opacity: 1;
        transform: none;
        transition: none;
    }
}
/* V33 – HERO: celý textový blok přijede zprava */
.hero-first .hero-copy {
    opacity: 0;
    transform: translateX(90px);
    transition:
        opacity .85s ease,
        transform .85s cubic-bezier(.22, 1, .36, 1);
    will-change: opacity, transform;
}
.hero-first.hero-loaded .hero-copy {
    opacity: 1;
    transform: translateX(0);
}
.hero-first.hero-loaded .hero-copy .hero-kicker,
.hero-first.hero-loaded .hero-copy h1,
.hero-first.hero-loaded .hero-copy>p,
.hero-first.hero-loaded .hero-copy .hero-actions {
    animation: none;
}
@media (prefers-reduced-motion: reduce) {
    .hero-first .hero-copy,
    .hero-first.hero-loaded .hero-copy {
        opacity: 1;
        transform: none;
        transition: none;
    }
}
/* V34 – hlavní H1 hero přijíždí zprava samostatně */
.hero-first .hero-title-animate {
    opacity: 0;
    transform: translateX(100px);
    transition:
        opacity .85s ease,
        transform .85s cubic-bezier(.22, 1, .36, 1);
    will-change: opacity, transform;
}
.hero-first.hero-loaded .hero-title-animate {
    opacity: 1;
    transform: translateX(0);
    transition-delay: .10s;
}
@media (prefers-reduced-motion: reduce) {
    .hero-first .hero-title-animate,
    .hero-first.hero-loaded .hero-title-animate {
        opacity: 1;
        transform: none;
        transition: none;
    }
}
/* V35 – jednotné vektorové ikonky místo emoji */
.benefit-icon,
.stat-icon,
.service-card .service-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.benefit-icon svg,
.stat-icon svg,
.service-card .service-icon svg {
    width: 24px;
    height: 24px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.benefit-icon svg,
.stat-icon svg {
    color: #ff6f00;
}
.service-card .service-icon svg {
    color: #ff6f00;
}
/* V36 – Bootstrap Icons */
.benefit-icon i,
.stat-icon i,
.service-card .service-icon i {
    font-size: 24px;
    line-height: 1;
    color: #ff6f00;
}
.stat-icon i {
    font-size: 20px;
}
.service-card .service-icon i {
    font-size: 24px;
}
/* Font Awesome – jednotný styl ikon */
.benefit-icon i,
.stat-icon i,
.service-card .service-icon i,
.phone-icon i {
    display: inline-block;
    line-height: 1;
}
.benefit-icon i {
    font-size: 23px;
}
.stat-icon i {
    font-size: 20px;
}
.service-card .service-icon i {
    font-size: 24px;
}
.phone-icon i {
    font-size: 18px;
}
.contact-item .contact-icon i,
.contact-icon i {
    font-size: 18px;
    line-height: 1;
}
/* Font Awesome icons */
.benefit-icon i,
.stat-icon i,
.service-card-icon i,
.phone-icon i,
.contact-list b i,
.btn i {
    display: inline-block;
    line-height: 1;
}
.benefit-icon i {
    font-size: 23px
}
.stat-icon i {
    font-size: 20px
}
.service-card-icon i {
    font-size: 24px
}
.phone-icon i {
    font-size: 16px
}
.contact-list b i {
    font-size: 13px
}
.btn i {
    font-size: 12px
}
/* Mobilní verze – doladění rozložení bez změny schváleného designu */
html,
body {
    max-width: 100%;
    overflow-x: hidden;
}
@media (max-width: 720px) {
    .container {
        width: min(100% - 32px, 1160px);
    }
    .site-header {
        height: 66px;
    }
    .nav-inner {
        gap: 12px;
    }
    .site-header .brand {
        min-width: 0;
    }
    .site-header .brand img {
        width: 205px !important;
        max-width: calc(100vw - 88px) !important;
        max-height: 58px !important;
    }
    .mobile-menu {
        width: 42px;
        height: 42px;
        min-width: 42px;
        display: grid;
        place-items: center;
        margin-left: auto;
        padding: 0;
        font-size: 24px;
        cursor: pointer;
    }
    .main-nav {
        left: 0;
        right: 0;
        top: 66px;
        width: 100%;
        padding: 8px 20px 14px;
        border-top: 1px solid #1a2a3d;
        box-shadow: 0 16px 30px #0005;
        z-index: 60;
    }
    .main-nav a {
        padding: 13px 4px;
        font-size: 14px;
        border-bottom: 1px solid #ffffff12;
    }
    .main-nav a:last-child {
        border-bottom: 0;
    }
    .hero-first {
        min-height: 650px;
    }
    .hero-bg {
        background-position: 63% center;
    }
    .hero-content {
        min-height: 570px;
        align-items: flex-start;
    }
    .hero-copy {
        width: 100%;
        max-width: none;
        padding: 68px 0 125px;
    }
    .eyebrow {
        letter-spacing: 1.5px;
    }
    .hero h1 {
        font-size: clamp(38px, 11vw, 45px);
        line-height: 1;
        letter-spacing: -1.7px;
        margin-bottom: 18px;
    }
    .hero-copy>p {
        font-size: 16px;
        line-height: 1.55;
        max-width: 100%;
    }
    .hero-actions {
        width: 100%;
        flex-direction: column;
        gap: 10px;
    }
    .hero-actions .btn {
        width: 100%;
        min-height: 48px;
    }
    .benefits-wrap {
        margin-top: -165px;
    }
    .benefits {
        grid-template-columns: 1fr;
        padding: 8px 12px;
        border-radius: 10px;
    }
    .benefit {
        min-width: 0;
        padding: 15px 8px;
        gap: 14px;
        align-items: flex-start;
    }
    .benefit-icon {
        flex: 0 0 34px;
        width: 34px;
        font-size: 28px;
    }
    .benefit strong {
        font-size: 15px;
    }
    .benefit p {
        font-size: 13px;
        line-height: 1.5;
    }
    .section {
        padding: 58px 0;
    }
    .services-layout,
    .why-grid,
    .team-layout,
    .contact-grid {
        grid-template-columns: 1fr;
        gap: 28px;
    }
    .services-intro h2,
    .section-head h2,
    .contact-grid h2 {
        font-size: 32px;
    }
    .services-intro p,
    .contact-grid>div>p {
        font-size: 14px;
    }
    .service-grid {
        grid-template-columns: 1fr;
        gap: 12px;
    }
    .service-card {
        min-height: 0;
        padding: 18px;
    }
    .service-card-icon {
        flex: 0 0 48px;
        width: 48px;
        height: 48px;
    }
    .why-section {
        padding: 52px 0;
    }
    .why-copy h2 {
        font-size: 30px;
    }
    .why-copy p {
        font-size: 14px;
    }
    .stats-row {
        grid-template-columns: 1fr 1fr;
        border-left: 1px solid #ffffff20;
        border-top: 1px solid #ffffff20;
    }
    .stats-row>div {
        min-height: 112px;
        padding: 18px 10px;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
    }
    .stats-row>div:nth-child(2) {
        border-right: 0;
    }
    .stats-row>div:nth-child(3) {
        border-top: 1px solid #ffffff20;
    }
    .stats-row>div:nth-child(4) {
        border-top: 1px solid #ffffff20;
        border-right: 0;
    }
    .stats-row strong {
        font-size: 29px;
    }
    .projects-section {
        padding-top: 58px;
    }
    .section-head {
        gap: 16px;
    }
    .section-head .btn {
        width: 100%;
    }
    .projects-grid {
        grid-template-columns: 1fr;
        gap: 14px;
    }
    .project-photo {
        height: 190px;
    }
    .team-section {
        padding-top: 52px;
    }
    .team-grid {
        grid-template-columns: 1fr 1fr;
        gap: 10px;
    }
    .team-photo {
        height: 190px;
    }
    .team-card {
        padding: 10px 8px;
    }
    .reviews-section {
        padding: 52px 0;
    }
    .reviews-section h2 {
        font-size: 30px;
        line-height: 1.12;
    }
    .reviews-grid {
        grid-template-columns: 1fr;
        gap: 12px;
    }
    .reviews-grid blockquote {
        min-height: 0;
        padding: 20px;
    }
    .contact-cta {
        padding: 36px 0;
    }
    .contact-cta-inner {
        grid-template-columns: 1fr;
        gap: 18px;
    }
    .contact-cta h2 {
        font-size: 25px;
        line-height: 1.2;
    }
    .contact-cta h2 br {
        display: none;
    }
    .cta-contact {
        border-left: 0;
        border-top: 1px solid #ffffff45;
        padding: 14px 0 0;
    }
    .contact-cta .btn {
        width: 100%;
    }
    .contact-section {
        padding: 58px 0;
    }
    .contact-list {
        grid-template-columns: 1fr;
        gap: 16px;
        margin-top: 24px;
    }
    .contact-list>div {
        align-items: center;
    }
    .contact-list b {
        flex: 0 0 38px;
        width: 38px;
        height: 38px;
    }
    .inquiry-form {
        padding: 18px;
    }
    .form-row {
        grid-template-columns: 1fr;
    }
    .form-bottom {
        flex-direction: column;
        align-items: stretch;
        gap: 14px;
    }
    .form-bottom .btn {
        width: 100%;
    }
    .form-bottom>span {
        text-align: center;
    }
    .site-footer {
        padding-top: 36px;
    }
    .footer-grid {
        grid-template-columns: 1fr;
        gap: 28px;
        padding-bottom: 25px;
    }
    .footer-brand img {
        width: 245px !important;
        max-width: 85vw !important;
    }
    .footer-brand p {
        max-width: 100%;
    }
    .footer-grid>div:not(.footer-brand) {
        gap: 9px;
    }
    .footer-bottom {
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
        line-height: 1.5;
    }
}
@media (max-width: 480px) {
    .container {
        width: calc(100% - 28px);
    }
    .site-header .brand img {
        width: 190px !important;
        max-width: calc(100vw - 78px) !important;
    }
    .hero-first {
        min-height: 675px;
    }
    .hero-content {
        min-height: 595px;
    }
    .hero-copy {
        padding-top: 58px;
    }
    .hero h1 {
        font-size: 39px;
    }
    .hero-copy>p {
        font-size: 15px;
    }
    .benefits-wrap {
        margin-top: -200px;
    }
    .benefit {
        padding: 14px 5px;
    }
    .services-intro h2,
    .section-head h2,
    .contact-grid h2 {
        font-size: 29px;
    }
    .team-grid {
        grid-template-columns: 1fr;
    }
    .team-photo {
        height: 230px;
    }
    .stats-row>div {
        min-height: 108px;
    }
    .contact-cta h2 {
        font-size: 23px;
    }
    .footer-bottom {
        font-size: 9px;
    }
}
/* Mobil: skutečný prostor mezi benefit boxem a sekcí služeb */
@media (max-width: 720px) {
    .hero-first {
        padding-bottom: 48px;
    }
    .benefits-wrap {
        margin-bottom: 0;
    }
}
@media (max-width: 480px) {
    .hero-first {
        padding-bottom: 48px;
    }
}
/* Mobilní menu – plynulé sjíždění z horní části */
@media (max-width: 720px) {
    .main-nav {
        display: flex !important;
        visibility: hidden;
        opacity: 0;
        transform: translateY(-28px);
        transform-origin: top center;
        pointer-events: none;
        transition:
            transform .42s cubic-bezier(.22, 1, .36, 1),
            opacity .28s ease,
            visibility 0s linear .42s;
        will-change: transform, opacity;
    }
    .main-nav.open {
        visibility: visible;
        opacity: 1;
        transform: translateY(0);
        pointer-events: auto;
        transition:
            transform .42s cubic-bezier(.22, 1, .36, 1),
            opacity .28s ease,
            visibility 0s linear 0s;
    }
    .main-nav a {
        opacity: 0;
        transform: translateY(-10px);
        transition: opacity .25s ease, transform .38s cubic-bezier(.22, 1, .36, 1);
    }
    .main-nav.open a {
        opacity: 1;
        transform: translateY(0);
    }
    .main-nav.open a:nth-child(1) {
        transition-delay: .08s;
    }
    .main-nav.open a:nth-child(2) {
        transition-delay: .12s;
    }
    .main-nav.open a:nth-child(3) {
        transition-delay: .16s;
    }
    .main-nav.open a:nth-child(4) {
        transition-delay: .20s;
    }
    .main-nav.open a:nth-child(5) {
        transition-delay: .24s;
    }
    .main-nav.open a:nth-child(6) {
        transition-delay: .28s;
    }
    .main-nav.open a:nth-child(7) {
        transition-delay: .32s;
    }
    .mobile-menu i {
        display: inline-block;
        transition: transform .3s ease, opacity .2s ease;
    }
}
@media (prefers-reduced-motion: reduce) {
    .main-nav,
    .main-nav a,
    .mobile-menu i {
        transition: none !important;
    }
}
/* Mobilní footer – centrované zarovnání */
@media (max-width: 720px) {
    .site-footer,
    .site-footer .footer-grid,
    .site-footer .footer-brand,
    .site-footer .footer-grid>div,
    .site-footer .footer-bottom {
        text-align: center;
    }
    .site-footer .footer-brand img {
        display: block;
        margin: 0 auto;
    }
    .site-footer .footer-grid>div:not(.footer-brand) {
        align-items: center;
    }
    .site-footer .footer-bottom {
        align-items: center;
        justify-content: center;
    }
}
/* Detail realizace – animované okno nad hlavním webem */
.project-card-clickable {
    cursor: pointer;
    position: relative;
    transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease
}
.project-card-clickable:hover {
    transform: translateY(-5px);
    box-shadow: 0 16px 34px #10203918;
    border-color: #f47416
}
.project-card-clickable:focus-visible {
    outline: 3px solid #f47416;
    outline-offset: 4px
}
.project-photo {
    position: relative
}
.project-open-icon {
    position: absolute;
    right: 12px;
    top: 12px;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: #f47416;
    color: #fff;
    opacity: 0;
    transform: translateY(5px);
    transition: opacity .22s ease, transform .22s ease
}
.project-card-clickable:hover .project-open-icon,
.project-card-clickable:focus-visible .project-open-icon {
    opacity: 1;
    transform: translateY(0)
}
.project-info div .fa-location-dot {
    color: #f47416;
    margin-right: 4px
}
.projects-empty {
    grid-column: 1/-1;
    padding: 48px 20px;
    text-align: center;
    border: 1px dashed #d7dde5;
    border-radius: 10px;
    background: #fff;
    color: #687486
}
.projects-empty>i {
    font-size: 30px;
    color: #f47416
}
.projects-empty h3 {
    color: #13213a;
    margin: 12px 0 8px
}
.projects-empty p {
    max-width: 520px;
    margin: 0 auto;
    line-height: 1.7
}
.project-modal {
    position: fixed;
    inset: 0;
    z-index: 2000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    visibility: hidden;
    pointer-events: none
}
.project-modal.is-open {
    visibility: visible;
    pointer-events: auto
}
.project-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(5, 13, 24, .76);
    backdrop-filter: blur(7px);
    opacity: 0;
    transition: opacity .32s ease
}
.project-modal.is-open .project-modal-backdrop {
    opacity: 1
}
.project-modal-panel {
    position: relative;
    z-index: 1;
    width: min(100%, 1000px);
    max-height: min(90vh, 900px);
    overflow: auto;
    background: #fff;
    border-radius: 16px;
    box-shadow: 0 30px 100px #0005;
    opacity: 0;
    transform: translateY(38px) scale(.975);
    transition: transform .42s cubic-bezier(.2, .8, .2, 1), opacity .32s ease;
    overscroll-behavior: contain
}
.project-modal.is-open .project-modal-panel {
    opacity: 1;
    transform: translateY(0) scale(1)
}
.project-modal-close {
    position: sticky;
    float: right;
    top: 14px;
    margin: 14px 14px -52px 0;
    z-index: 4;
    width: 42px;
    height: 42px;
    border: 1px solid #e5e8ed;
    border-radius: 50%;
    background: #fff;
    color: #152238;
    display: grid;
    place-items: center;
    font-size: 20px;
    cursor: pointer;
    box-shadow: 0 5px 18px #101d3012;
    transition: background .2s, color .2s, transform .2s
}
.project-modal-close:hover {
    background: #f47416;
    color: #fff;
    transform: rotate(90deg)
}
.project-modal-content {
    padding: 38px
}
.project-modal-heading {
    padding-right: 42px;
    margin-bottom: 24px
}
.project-modal-heading>.eyebrow {
    font-size: 11px;
    letter-spacing: 1.8px
}
.project-modal-heading h2 {
    font-size: clamp(27px, 4vw, 42px);
    line-height: 1.12;
    color: #13213a;
    margin: 10px 0 14px
}
.project-modal-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 9px
}
.project-modal-meta span {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 8px 11px;
    border-radius: 6px;
    background: #f4f6f8;
    color: #566273;
    font-size: 12px
}
.project-modal-meta i {
    color: #f47416
}
.project-modal-gallery {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
    min-width: 0
}
.project-gallery-main {
    position: relative;
    min-height: 280px;
    height: clamp(280px, 48vh, 500px);
    background: #eef1f4;
    border-radius: 10px;
    overflow: hidden
}
.project-gallery-main img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: contain;
    background: #101722
}
.project-gallery-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    border: 1px solid #ffffff80;
    border-radius: 50%;
    background: #101722c9;
    color: #fff;
    font-size: 17px;
    cursor: pointer;
    box-shadow: 0 5px 18px #0003;
    transition: background .2s, transform .2s
}
.project-gallery-arrow:hover {
    background: #f47416;
    transform: translateY(-50%) scale(1.06)
}
.project-gallery-arrow:disabled {
    opacity: .45;
    cursor: default
}
.project-gallery-arrow-prev {
    left: 14px
}
.project-gallery-arrow-next {
    right: 14px
}
.project-gallery-counter {
    position: absolute;
    right: 14px;
    bottom: 14px;
    padding: 6px 10px;
    border-radius: 20px;
    background: #101722c9;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .3px
}
.project-gallery-thumbs {
    display: flex;
    gap: 10px;
    min-width: 0;
    overflow-x: auto;
    overflow-y: hidden;
    padding: 2px 2px 8px;
    scroll-snap-type: x mandatory;
    scrollbar-width: thin;
    scrollbar-color: #f47416 #edf0f3
}
.project-gallery-thumb {
    position: relative;
    flex: 0 0 112px;
    width: 112px;
    height: 82px;
    padding: 0;
    border: 2px solid transparent;
    border-radius: 8px;
    overflow: hidden;
    background: #eef1f4;
    cursor: pointer;
    scroll-snap-align: start;
    opacity: .78;
    transition: border-color .2s, opacity .2s, transform .2s
}
.project-gallery-thumb:hover {
    opacity: 1;
    transform: translateY(-2px)
}
.project-gallery-thumb.active {
    border-color: #f47416;
    opacity: 1;
    box-shadow: 0 0 0 2px #f4741620
}
.project-gallery-thumb img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover
}
.project-gallery-empty {
    grid-column: 1/-1;
    min-height: 220px;
    display: grid;
    place-items: center;
    text-align: center;
    background: #f4f6f8;
    border-radius: 10px;
    color: #7b8796;
    padding: 25px
}
.project-gallery-empty i {
    display: block;
    font-size: 34px;
    color: #f47416;
    margin-bottom: 12px
}
.project-modal-description {
    font-size: 15px;
    line-height: 1.85;
    color: #5e6877;
    white-space: pre-line;
    margin: 25px 0 0
}
body.project-modal-open {
    overflow: hidden
}
@media(max-width:700px) {
    .project-modal {
        padding: 10px;
        align-items: flex-end
    }
    .project-modal-panel {
        max-height: 94dvh;
        border-radius: 16px 16px 10px 10px;
        transform: translateY(55px) scale(.99)
    }
    .project-modal-content {
        padding: 25px 18px 24px
    }
    .project-modal-close {
        top: 9px;
        margin: 9px 9px -48px 0;
        width: 38px;
        height: 38px
    }
    .project-modal-heading {
        padding-right: 38px;
        margin-bottom: 18px
    }
    .project-modal-heading h2 {
        font-size: 27px
    }
    .project-modal-meta {
        gap: 6px
    }
    .project-modal-meta span {
        font-size: 11px;
        padding: 7px 8px
    }
    .project-modal-gallery {
        grid-template-columns: 1fr;
        grid-template-rows: auto auto;
        gap: 9px;
        min-height: 0
    }
    .project-gallery-main {
        grid-row: auto;
        min-height: 210px;
        max-height: 300px
    }
    .project-gallery-main img {
        min-height: 210px;
        max-height: 300px
    }
    .project-gallery-thumbs {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 8px
    }
    .project-gallery-thumb img {
        min-height: 75px;
        max-height: 110px
    }
    .project-gallery-empty {
        min-height: 180px
    }
    .project-modal-description {
        font-size: 14px;
        margin-top: 18px
    }
    .project-open-icon {
        opacity: 1;
        transform: none;
        width: 30px;
        height: 30px;
        font-size: 12px
    }
}
@media(prefers-reduced-motion:reduce) {
    .project-card-clickable,
    .project-open-icon,
    .project-modal-backdrop,
    .project-modal-panel,
    .project-modal-close,
    .project-gallery-thumb img {
        transition: none !important
    }
}
/* Team cards: complete portrait, clear name, position badge and direct contacts */
.team-grid {
    align-items: stretch
}
.team-card {
    height: 100%;
    padding: 12px;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    text-align: left;
    border-radius: 12px;
    transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease
}
.team-card:hover {
    transform: translateY(-4px);
    border-color: #ffd2b3;
    box-shadow: 0 14px 32px #12203912
}
.team-photo {
    height: 220px;
    min-height: 220px;
    width: 100%;
    padding: 8px;
    background: #f4f6f8;
    border: 1px solid #edf0f3;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden
}
.team-photo img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
    border-radius: 5px
}
.team-photo span {
    display: grid;
    place-items: center;
    width: 100%;
    height: 100%;
    font-size: 38px;
    border-radius: 5px;
    background: linear-gradient(145deg, #fff1e6, #e9edf2);
    color: #ff7414
}
.team-card-content {
    padding: 12px 3px 3px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 9px;
    flex: 1;
    min-width: 0
}
.team-card h3 {
    font-size: 16px;
    line-height: 1.3;
    font-weight: 850;
    color: #101a2d;
    margin: 0;
    overflow-wrap: anywhere
}
.team-position {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    max-width: 100%;
    padding: 5px 9px;
    border-radius: 999px;
    background: #fff1e7;
    color: #e9650b;
    border: 1px solid #ffdec8;
    font-size: 10px;
    line-height: 1.35;
    font-weight: 800;
    overflow-wrap: anywhere
}
.team-contacts {
    display: grid;
    gap: 7px;
    width: 100%;
    margin-top: 2px;
    padding-top: 10px;
    border-top: 1px solid #edf0f3
}
.team-contacts a {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    min-width: 0;
    color: #5e6b7d;
    font-size: 10px;
    line-height: 1.45;
    transition: color .2s ease
}
.team-contacts a:hover {
    color: #f47416
}
.team-contacts i {
    width: 14px;
    flex: 0 0 14px;
    padding-top: 1px;
    color: #ff7414;
    text-align: center
}
.team-contacts span {
    min-width: 0;
    overflow-wrap: anywhere
}
@media(max-width:1000px) {
    .team-photo {
        height: 220px;
        min-height: 220px
    }
}
@media(max-width:720px) {
    .team-grid {
        grid-template-columns: 1fr 1fr;
        gap: 12px
    }
    .team-card {
        padding: 10px
    }
    .team-photo {
        height: 200px;
        min-height: 200px;
        padding: 6px
    }
    .team-card h3 {
        font-size: 14px
    }
    .team-position {
        font-size: 9px;
        padding: 5px 7px
    }
    .team-contacts a {
        font-size: 9px;
        gap: 6px
    }
}
@media(max-width:420px) {
    .team-grid {
        grid-template-columns: 1fr
    }
    .team-photo {
        height: 250px;
        min-height: 250px
    }
    .team-card h3 {
        font-size: 16px
    }
    .team-contacts a {
        font-size: 11px
    }
}
/* Team cards: photo flush to the full card width, without an inner frame */
.team-card {
    padding: 0 !important;
}
.team-photo {
    width: 100%;
    height: 230px;
    min-height: 230px;
    padding: 0 !important;
    margin: 0;
    border: 0 !important;
    border-radius: 11px 11px 0 0 !important;
    background: #eef0f2;
    overflow: hidden;
    flex: 0 0 auto;
}
.team-photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
    border: 0;
    border-radius: 0 !important;
}
.team-photo span {
    border-radius: 0 !important;
}
.team-card-content {
    padding: 14px 16px 16px !important;
}
@media(max-width:1000px) {
    .team-photo {
        height: 220px;
        min-height: 220px;
    }
}
@media(max-width:720px) {
    .team-photo {
        height: 200px;
        min-height: 200px;
    }
}
@media(max-width:420px) {
    .team-photo {
        height: 250px;
        min-height: 250px;
    }
}
/* Team cards: display the entire portrait at full card width without side bars */
.team-photo {
    height: auto !important;
    min-height: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    overflow: hidden;
}
.team-photo img {
    display: block;
    width: 100% !important;
    height: auto !important;
    max-width: 100%;
    object-fit: initial !important;
    object-position: center;
    border: 0 !important;
    border-radius: 0 !important;
}
@media(max-width:1000px) {
    .team-photo {
        height: auto !important;
        min-height: 0 !important;
    }
}
@media(max-width:720px) {
    .team-photo {
        height: auto !important;
        min-height: 0 !important;
        padding: 0 !important;
    }
}
@media(max-width:420px) {
    .team-photo {
        height: auto !important;
        min-height: 0 !important;
    }
}
/* Team cards: consistent portrait area and equal card heights */
.team-photo {
    height: 260px !important;
    min-height: 260px !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    overflow: hidden;
}
.team-photo img {
    display: block;
    width: 100% !important;
    height: 100% !important;
    max-width: 100%;
    object-fit: cover !important;
    object-position: center top;
    border: 0 !important;
    border-radius: 0 !important;
}
.team-card,
.team-member-card {
    height: 100%;
}
@media(max-width:720px) {
    .team-photo {
        height: 240px !important;
        min-height: 240px !important;
    }
}
/* Mobilní statistiky: odstranit čáry a rámečky kolem jednotlivých položek */
@media (max-width: 720px) {
    .stats-row {
        border: 0 !important;
    }
    .stats-row>div,
    .stats-row>div:nth-child(2),
    .stats-row>div:nth-child(3),
    .stats-row>div:nth-child(4) {
        border: 0 !important;
    }
}
/* Definitivní odstranění všech dělicích čar u mobilních statistik */
@media screen and (max-width: 720px) {
    .why-section .stats-row,
    .why-section .stats-row>div,
    .why-section .stats-row>div:nth-child(1),
    .why-section .stats-row>div:nth-child(2),
    .why-section .stats-row>div:nth-child(3),
    .why-section .stats-row>div:nth-child(4) {
        border: none !important;
        border-top: 0 !important;
        border-right: 0 !important;
        border-bottom: 0 !important;
        border-left: 0 !important;
        outline: 0 !important;
        box-shadow: none !important;
    }
}
/* Mobilní statistiky: přepsání původních okrajů bez závislosti na rodičovské třídě */
@media screen and (max-width: 720px) {
    .stats-row,
    .stats-row>div,
    .stats-row>div:nth-child(1),
    .stats-row>div:nth-child(2),
    .stats-row>div:nth-child(3),
    .stats-row>div:nth-child(4) {
        border: 0 !important;
        border-top: 0 !important;
        border-right: 0 !important;
        border-bottom: 0 !important;
        border-left: 0 !important;
        outline: 0 !important;
        box-shadow: none !important;
    }
}
/* Mobilní sekce „Proč právě my“: vycentrovat text a tlačítko */
@media screen and (max-width: 720px) {
    .why-copy {
        text-align: center;
    }
    .why-copy .btn,
    .why-copy a.btn {
        margin-left: auto;
        margin-right: auto;
    }
}
/* Detail služby: animované modální okno */
.service-card-clickable{cursor:pointer;position:relative}
.service-card-clickable:focus-visible{outline:3px solid #ff7414;outline-offset:3px}
.service-card-description{font-size:12px;line-height:1.6;color:#6b7585;margin:0 0 10px}
.service-card-more{display:inline-flex;align-items:center;gap:8px;margin-top:12px;color:#f47416;font-size:11px;font-weight:800}
.service-card-more i{transition:transform .2s ease}
.service-card-clickable:hover .service-card-more i{transform:translateX(4px)}
.service-card ul{margin-top:4px}
.service-modal{position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;padding:24px;visibility:hidden;pointer-events:none}
.service-modal.is-open{visibility:visible;pointer-events:auto}
.service-modal-backdrop{position:absolute;inset:0;background:rgba(3,12,22,.72);backdrop-filter:blur(5px);opacity:0;transition:opacity .28s ease}
.service-modal.is-open .service-modal-backdrop{opacity:1}
.service-modal-panel{position:relative;z-index:1;width:min(680px,100%);max-height:min(86vh,850px);overflow-y:auto;background:#fff;border-radius:18px;box-shadow:0 28px 100px #0004;transform:translateY(32px) scale(.97);opacity:0;transition:transform .32s cubic-bezier(.2,.8,.2,1),opacity .25s ease}
.service-modal.is-open .service-modal-panel{transform:translateY(0) scale(1);opacity:1}
.service-modal-close{position:sticky;top:14px;float:right;margin:14px 14px -52px 0;width:40px;height:40px;border:1px solid #e5e9ef;border-radius:50%;background:#fff;color:#172338;display:grid;place-items:center;font-size:18px;cursor:pointer;z-index:3;box-shadow:0 5px 18px #0b172515}
.service-modal-close:hover{background:#fff3e9;color:#f47416;border-color:#ffd3b7}
.service-modal-content{padding:42px clamp(22px,5vw,48px) 42px}
.service-modal-icon{width:58px;height:58px;border-radius:14px;background:#fff1e7;color:#f47416;display:grid;place-items:center;font-size:28px;margin-bottom:24px}
.service-modal-content>.eyebrow{margin-bottom:12px}
.service-modal-content h2{font-size:clamp(28px,5vw,40px);line-height:1.1;letter-spacing:-.8px;color:#101a2d;margin:0 48px 14px 0}
.service-modal-short{font-size:16px;line-height:1.7;color:#647083;margin:0 0 28px}
.service-modal-items-wrap{margin-top:28px}
.service-modal-items-wrap h3{font-size:16px;margin:0 0 15px;color:#101a2d}
.service-modal-items{display:grid;grid-template-columns:1fr 1fr;gap:12px 18px;list-style:none;padding:0;margin:0}
.service-modal-items li{display:flex;align-items:flex-start;gap:10px;padding:13px 14px;background:#f6f8fa;border:1px solid #e9edf2;border-radius:10px;font-size:14px;line-height:1.55;color:#273449}
.service-modal-items li i{color:#f47416;margin-top:4px;flex:0 0 auto}
.service-modal-description{font-size:14px;line-height:1.8;color:#687487;white-space:pre-line;margin:24px 0 0}
.service-modal-cta{display:inline-flex;align-items:center;justify-content:center;gap:10px;margin-top:30px}
body.service-modal-open{overflow:hidden}
@media(max-width:720px){.service-modal{padding:12px;align-items:flex-end}.service-modal-panel{max-height:92dvh;border-radius:18px 18px 12px 12px;transform:translateY(48px) scale(.99)}.service-modal-content{padding:34px 20px 26px}.service-modal-icon{width:50px;height:50px;font-size:24px;margin-bottom:20px}.service-modal-content h2{font-size:29px}.service-modal-short{font-size:14px;margin-bottom:22px}.service-modal-items{grid-template-columns:1fr;gap:9px}.service-modal-items li{padding:11px 12px}.service-modal-cta{width:100%;margin-top:24px}}
@media(prefers-reduced-motion:reduce){.service-modal-backdrop,.service-modal-panel,.service-card-more i{transition:none!important}}

/* Footer – kontaktní a podnikatelské údaje z administrace */
.footer-grid{
    grid-template-columns:minmax(230px,1.45fr) minmax(140px,.7fr) minmax(270px,1.25fr);
    gap:clamp(28px,4vw,64px);
}
.footer-links{display:flex;flex-direction:column;gap:9px}
.footer-contact{display:flex;flex-direction:column;gap:10px;min-width:0}
.footer-contact h4{margin-bottom:4px}
.footer-detail{display:grid;grid-template-columns:112px minmax(0,1fr);gap:10px;align-items:start}
.footer-detail strong{font-size:12px;line-height:1.5;color:#eef2f7;font-weight:700}
.footer-detail span,.footer-detail a{font-size:12px;line-height:1.5;color:#aeb9c7;overflow-wrap:anywhere}
.footer-detail a:hover{color:#ff7414}
@media(max-width:1000px){
    .footer-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px}
    .footer-brand{grid-column:1/-1}
    .footer-contact{grid-column:1/-1}
}
@media(max-width:720px){
    .footer-grid{grid-template-columns:1fr;gap:26px}
    .footer-brand,.footer-contact{grid-column:auto}
    .footer-detail{grid-template-columns:105px minmax(0,1fr);gap:8px}
    .footer-bottom{align-items:flex-start}
}

/* Stránka ochrany osobních údajů */
.privacy-page{background:#f5f7fa;padding:54px 0 76px;min-height:65vh}
.privacy-container{max-width:900px}
.privacy-back{display:inline-flex;align-items:center;gap:9px;color:#f47416;font-size:13px;font-weight:800;margin-bottom:28px}
.privacy-container>.eyebrow{margin-bottom:12px}
.privacy-container h1{font-size:clamp(34px,5vw,52px);line-height:1.08;letter-spacing:-1.5px;margin:0 0 18px;color:#142038}
.privacy-lead{max-width:760px;color:#687588;font-size:17px;line-height:1.75;margin:0}
.privacy-updated{color:#8a95a5;font-size:12px;margin:14px 0 32px}
.privacy-section{background:#fff;border:1px solid #e5e9ef;border-radius:12px;padding:26px 30px;margin:14px 0;box-shadow:0 8px 24px #10213a08}
.privacy-section h2{font-size:20px;line-height:1.3;margin:0 0 14px;color:#142038}
.privacy-section p,.privacy-section li{font-size:14px;line-height:1.8;color:#536174}
.privacy-section p{margin:10px 0}
.privacy-section ul{padding-left:22px;margin:10px 0}
.privacy-section li{padding-left:4px;margin:6px 0}
.privacy-section li::marker{color:#ff7414}
.privacy-section a{color:#e9670d;text-decoration:underline;text-underline-offset:3px}
.privacy-controller{display:grid;gap:7px;background:#f6f8fa;border:1px solid #e6ebf1;border-radius:9px;padding:18px 20px;margin:14px 0}
.privacy-controller strong{font-size:16px;color:#142038}
.privacy-controller span{font-size:13px;color:#536174;overflow-wrap:anywhere}
.privacy-note{display:flex;align-items:flex-start;gap:13px;padding:18px 20px;margin:22px 0;background:#fff3e9;border:1px solid #ffd5b8;border-radius:10px;color:#9a4a12}
.privacy-note>i{font-size:20px;margin-top:2px;color:#f47416}
.privacy-note p{font-size:12px;line-height:1.7;margin:0}
.privacy-home-btn{margin-top:12px}
.privacy-home-btn i{margin-right:3px}
@media(max-width:720px){.privacy-page{padding:32px 0 48px}.privacy-back{margin-bottom:22px}.privacy-container h1{font-size:34px}.privacy-lead{font-size:15px}.privacy-section{padding:21px 18px;border-radius:9px}.privacy-section h2{font-size:18px}.privacy-section p,.privacy-section li{font-size:13px}.privacy-note{padding:15px;gap:10px}}

/* Kontaktní formulář – fotografie a souhlas se zpracováním osobních údajů */
.inquiry-form .form-upload{display:grid;gap:8px;padding:13px;border:1px dashed #344456;border-radius:6px;background:#0e1a27}
.inquiry-form .form-upload>label{font-size:11px;font-weight:700;color:#f4f6f9;display:flex;align-items:center;gap:8px}
.inquiry-form .form-upload>label i{color:#ff7414}
.inquiry-form .form-upload input[type=file]{font-size:11px;padding:8px;border:1px solid #344456;background:#111e2b;color:#c8d0db}
.inquiry-form .form-upload small{font-size:10px;line-height:1.5;color:#9ba8b7}
.inquiry-form .privacy-consent{display:flex;align-items:flex-start;gap:9px;color:#aeb9c7;font-size:11px;line-height:1.6;cursor:pointer}
.inquiry-form .privacy-consent input[type=checkbox]{appearance:auto;-webkit-appearance:checkbox;flex:0 0 15px;width:15px;height:15px;margin:2px 0 0;accent-color:#ff7414;cursor:pointer}
.inquiry-form .privacy-consent a{color:#ff8a38;text-decoration:underline;text-underline-offset:2px}
.inquiry-form .privacy-consent a:hover{color:#ffb078}


.footer-bottom-links{display:flex;align-items:center;justify-content:flex-end;gap:28px}
.footer-bottom-links a{color:#ff7414;text-decoration:none;transition:color .2s ease}
.footer-bottom-links a:hover{color:#fff}
@media(max-width:600px){.footer-bottom-links{justify-content:center;flex-wrap:wrap;gap:18px}}


/* Autor webu v patičce */
.footer-credit{margin:10px auto 0;padding-top:10px;border-top:1px solid #ffffff0d;text-align:center;font-size:11px;line-height:1.5;color:#7e8b9c}
.footer-credit a{color:#ff7414;font-weight:700;text-decoration:none;letter-spacing:.35px;transition:color .2s ease}
.footer-credit a:hover{color:#fff}
