@charset "UTF-8";

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=Poppins:wght@400;500;600;700&display=swap');

/* ========== FORCE GREEN COLOR ========== */
:root {
    --primary-green: #006838;
    --navbar-height: 80px;
    --layout-max: 1200px;
    --layout-gutter: 32px;
}.navbar:not(.sticky) .logo a span {
    color: #006838 !important;
}/* ========================================= */

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    text-decoration: none;
}html {
    scroll-behavior: auto;
    overflow-x: hidden;
    scrollbar-width: none;
    -ms-overflow-style: none;
}html.restore-main-position body {
    opacity: 0;
    pointer-events: none;
}body {
    overflow-x: hidden;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
}html::-webkit-scrollbar,
body::-webkit-scrollbar,
::-webkit-scrollbar {
    display: none;
    width: 0;
    height: 0;
}::-webkit-scrollbar-track {
    background: transparent;
}::-webkit-scrollbar-thumb {
    background: #006838;
}::-webkit-scrollbar-thumb:hover {
    background: #006838;
}.scroll-indicator {
    display: block;
    z-index: 10000;
    mix-blend-mode: normal;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    background-color: transparent;
    border-radius: 1em;
    width: 0.4em;
    height: 80vh;
    position: fixed;
    inset: 10vh 0 0 auto;
    transition: opacity 0.5s ease, visibility 0.5s ease;
}.scroll-indicator.is-visible {
    visibility: visible;
    opacity: 1;
}.scroll-indicator-bar {
    position: absolute;
    inset: 0 0 auto;
    width: 100%;
    height: 30%;
    border-radius: inherit;
    background: #006838;
    transition: none;
}@media (max-width: 479px) {.scroll-indicator {
        display: none;
    }
}section {
    padding: 100px 0;
}.max-width {
    width: min(calc(100% - (var(--layout-gutter) * 2)), var(--layout-max));
    max-width: none;
    padding: 0;
    margin: 0 auto;
}.about,
.services,
.reviews-section,
.contact,
footer {
    font-family: 'Poppins', sans-serif;
}.about .about-content,
.services .serv-content,
.contact .contact-content {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
}section .title {
    position: relative;
    text-align: center;
    font-size: 60px;
    font-weight: 700;
    margin-bottom: 60px;
    padding-bottom: 20px;
    font-family: 'Poppins', sans-serif;
}section .title::before {
    content: none !important;
    display: none;
    position: absolute;
    bottom: 0px;
    left: 50%;
    width: 180px;
    height: 3px;
    background: #222;
    transform: translateX(-50%);
}section .title::after {
    content: none !important;
    display: none;
    position: absolute;
    bottom: -8px;
    left: 50%;
    font-size: 20px;
    color: #006838;
    padding: 0 5px;
    background: transparent;
    transform: translateX(-50%);
}.navbar {
    position: fixed;
    width: 100%;
    z-index: 999;
    min-height: var(--navbar-height);
    padding: 0;
    background: rgba(0, 104, 56, 0); /* ✅ Úplně průhledný na startu */
    font-family: 'Poppins', sans-serif;
    transition: transform 0.3s ease, background 0.3s ease, padding 0.3s ease; /* ✅ Přidáno background */
}.navbar.sticky {
    padding: 0;
    background: #006838; /* ✅ Zelený po scrollu */
    z-index: 9999;
}.navbar .max-width {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: var(--navbar-height);
}.navbar .logo a {
    display: flex;
    align-items: center;
    color: #fff;
    font-size: clamp(28px, 2vw, 31px);
    font-weight: 600;
    line-height: 1;
}.navbar:not(.sticky) .logo a {
    color: #121820;
}.navbar .logo a span {
    color: #006838;
    transition: all 0.3s ease;
}.navbar.sticky .logo a span {
    color: #fff;
}.navbar.sticky .menu a::after {
    background:
        linear-gradient(180deg, #f7fbf5 0%, #ffffff 38%, #f3f8ef 100%);
}.navbar li {
    list-style: none;
    display: inline-flex;
    align-items: center;
}.navbar .menu li a {
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 1.18rem;
    font-weight: 600;
    line-height: 1;
    margin-left: 0;
    transition: color 0.3s ease;
}.navbar:not(.sticky) .menu li a {
    color: #121820;
}.navbar:not(.sticky) .menu li a:hover,
.navbar:not(.sticky) .menu li a.nav-active {
    color: #006838;
}.menu {
    display: flex;
    align-items: center;
    gap: 33px;
    list-style: none;
    transform: translateY(3px);
}.menu a {
    color: #222;
    text-decoration: none;
    font-weight: 500;
    transition: all 0.3s ease;
    position: relative;
}.menu a::after {
    content: none;
    display: none;
}.menu a:hover::after {
    width: 0;
}@media (min-width: 948px) {.navbar .max-width {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr) auto;
        column-gap: 24px;
        width: min(calc(100% - (var(--layout-gutter) * 2)), var(--layout-max));
        max-width: none;
        padding: 0;
    }.navbar .logo {
        grid-column: 1;
        justify-self: start;
        height: 100%;
        display: flex;
        align-items: center;
    }.navbar .logo a {
        min-height: var(--navbar-height);
    }.navbar .menu {
        grid-column: 2;
        justify-self: center;
        align-self: center;
        padding-right: 0;
    }.navbar .navbar-actions {
        grid-column: 3;
        justify-self: end;
        position: static;
        transform: none;
    }
}.menu-btn {
    color: #fff;
    font-size: 23px;
    cursor: pointer;
    display: none;
}.menu-btn.active {
    position: fixed;
    top: 20px;
    right: 30px;
    z-index: 1001;
}.floating-callback-widget {
    position: relative;
    z-index: 100000;
}.floating-call-btn {
    position: fixed;
    height: 62px;
    width: 62px;
    background: #006838;
    right: 30px;
    bottom: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    z-index: 100000;
    font-size: 25px;
    border-radius: 50%;
    cursor: pointer;
    box-shadow: 0 10px 22px rgba(0, 104, 56, 0.18);
    border: 0;
    transition: opacity 0.25s ease, transform 0.25s ease, background 0.25s ease, box-shadow 0.25s ease;
}.floating-call-btn::before,
.floating-call-btn::after {
    content: "";
    position: absolute;
    inset: -8px;
    border-radius: 50%;
    border: 2px solid rgba(0, 104, 56, 0.34);
    opacity: 0;
    transform: scale(0.72);
    animation: callRing 5.8s ease-out infinite;
    z-index: -1;
}.floating-call-btn::after {
    animation-delay: 1.15s;
}.floating-call-btn:hover {
    background: #006838;
    color: #fff;
    transform: translateY(-3px);
    box-shadow: 0 14px 28px rgba(0, 104, 56, 0.24);
}.floating-call-btn:focus-visible {
    outline: 3px solid rgba(0, 104, 56, 0.28);
    outline-offset: 6px;
}body.landing-call-hidden .floating-call-btn,
body.landing-call-hidden .callback-panel {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}.floating-callback-widget.is-open .floating-call-btn {
    opacity: 0;
    pointer-events: none;
    transform: scale(0.84);
}.floating-callback-widget.is-open .floating-call-btn::before,
.floating-callback-widget.is-open .floating-call-btn::after {
    animation-play-state: paused;
}@keyframes callRing {
    0% {
        opacity: 0;
        transform: scale(0.72);
    }

    18% {
        opacity: 0.5;
    }

    70% {
        opacity: 0;
        transform: scale(1.28);
    }

    100% {
        opacity: 0;
        transform: scale(1.28);
    }
}.callback-panel {
    position: fixed;
    right: 30px;
    bottom: 30px;
    z-index: 100001;
    width: min(344px, calc(100vw - 32px));
    padding: 24px;
    background: #fff;
    border: 1px solid rgba(18, 24, 32, 0.12);
    border-radius: 8px;
    box-shadow: 0 22px 54px rgba(18, 24, 32, 0.18);
    backdrop-filter: blur(14px);
    font-family: 'Poppins', sans-serif;
    opacity: 0;
    pointer-events: none;
    transform: translateY(18px) scale(0.96);
    transform-origin: right bottom;
    transition: opacity 0.24s ease, transform 0.24s ease;
}.floating-callback-widget.is-open .callback-panel {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0) scale(1);
}.callback-close {
    position: absolute;
    top: 16px;
    right: 14px;
    width: 30px;
    height: 30px;
    border: 0;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #f1f2f0;
    color: #121820;
    cursor: pointer;
    transition: background 0.2s ease, color 0.2s ease;
}.callback-close:hover {
    background: #e6ebe7;
    color: #006838;
}.callback-title {
    padding-right: 38px;
    margin-bottom: 18px;
    color: #121820;
    font-size: 21px;
    line-height: 1.13;
    font-weight: 800;
}.callback-title span {
    color: #006838;
}.callback-field {
    position: relative;
    display: block;
    margin-bottom: 14px;
}.callback-field::after {
    content: "";
    position: absolute;
    left: 84px;
    bottom: 13px;
    z-index: 2;
    width: 1px;
    height: 20px;
    background: rgba(0, 104, 56, 0.22);
    opacity: 0;
    transform: scaleY(0.7);
    transition: opacity 0.18s ease, transform 0.18s ease;
}.callback-field:focus-within::after,
.callback-field.has-value::after {
    opacity: 1;
    transform: scaleY(1);
}.callback-input-label {
    position: absolute;
    top: 50%;
    left: 22px;
    z-index: 2;
    color: rgba(18, 24, 32, 0.58);
    font-size: 16px;
    font-weight: 700;
    line-height: 1.15;
    pointer-events: none;
    transform: translateY(-50%);
    transition: top 0.18s ease, transform 0.18s ease, font-size 0.18s ease;
}.callback-field:focus-within .callback-input-label,
.callback-field.has-value .callback-input-label {
    top: 10px;
    font-size: 13px;
    line-height: 1;
    transform: translateY(0);
}.callback-prefix {
    position: absolute;
    left: 22px;
    bottom: 12px;
    z-index: 2;
    color: #006838;
    font-size: 17px;
    font-weight: 700;
    line-height: 1;
    opacity: 0;
    pointer-events: none;
    transform: translateY(3px);
    transition: opacity 0.18s ease, transform 0.18s ease;
}.callback-field:focus-within .callback-prefix,
.callback-field.has-value .callback-prefix {
    opacity: 1;
    transform: translateY(0.5px);
}.callback-field input {
    width: 100%;
    min-height: 62px;
    padding: 20px 50px 0 102px;
    border: 1.5px solid #006838;
    border-radius: 8px;
    background: #fff;
    color: #121820;
    font-family: 'Inter', 'Poppins', sans-serif;
    font-size: 17px;
    font-weight: 700;
    line-height: 1;
    outline: none;
    letter-spacing: 0;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}.callback-field input::placeholder {
    color: transparent;
}.callback-field input:focus {
    border-color: #006838;
    background: rgba(0, 104, 56, 0.025);
    box-shadow: 0 0 0 3px rgba(0, 104, 56, 0.1);
}.callback-field i {
    position: absolute;
    top: 50%;
    right: 20px;
    color: #006838;
    transform: translateY(-50%);
    font-size: 16px;
}.callback-error {
    min-height: 16px;
    margin: -6px 0 8px;
    color: #c62828;
    font-size: 12px;
    font-weight: 600;
}.callback-submit {
    width: 100%;
    min-height: 61px;
    border: 0;
    border-radius: 8px;
    background: #006838;
    color: #fff;
    font-family: 'Poppins', sans-serif;
    font-size: 18px;
    font-weight: 800;
    cursor: pointer;
    transition: background 0.22s ease, transform 0.22s ease;
}.callback-submit:hover {
    background: #006838;
    transform: translateY(-2px);
}.callback-submit:disabled {
    cursor: wait;
    opacity: 0.78;
    transform: none;
}.callback-note,
.callback-success {
    margin: 12px 0 0;
    color: #4f5a65;
    font-size: 12px;
    line-height: 1.45;
    text-align: center;
}.callback-note a {
    color: #006838;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 2px;
}.callback-success {
    padding: 14px;
    background: rgba(0, 104, 56, 0.09);
    border: 1px solid rgba(0, 104, 56, 0.18);
    border-radius: 8px;
    color: #006838;
    font-weight: 700;
}.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}.nowrap {
    white-space: nowrap;
}.home {
    --home-bg-position: center right;
    --home-bg-image: url("images/landpageBG.jpeg");
    --home-bg-side-overlay: linear-gradient(90deg, rgba(255, 255, 255, 0.94) 0%, rgba(255, 255, 255, 0.86) 38%, rgba(255, 255, 255, 0.42) 68%, rgba(255, 255, 255, 0.12) 100%);
    display: flex;
    align-items: center;
    position: relative;
    overflow: hidden;
    min-height: 100vh;
    min-height: min(100svh, 960px);
    height: auto;
    padding: 112px 0 168px;
    color: #121820;
    background:
        var(--home-bg-side-overlay),
        linear-gradient(180deg, rgba(248, 250, 248, 0.35) 0%, rgba(247, 251, 245, 0.7) 100%),
        var(--home-bg-image) var(--home-bg-position) / cover no-repeat;
    font-family: 'Poppins', sans-serif;
}.home::before {
    content: none;
}.home .max-width {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    z-index: 1;
}.home .max-width .row {
    margin-right: 0;
}.home .home-content {
    width: 100%;
    max-width: 980px;
    margin: 0 auto;
    text-align: center;
}@media (min-width: 1181px) and (max-width: 1512px) {
    .home {
        --home-bg-position: calc(100% + 220px) center;
    }

    .home .home-content {
        max-width: 900px;
    }
}@media (min-width: 769px) and (max-width: 1180px) {
    .home {
        --home-bg-position: calc(100% + 150px) center;
    }

    .home .home-content {
        max-width: 720px;
    }

    .home-title {
        font-size: clamp(58px, 7vw, 74px);
    }

    .home-subtitle {
        max-width: 720px;
    }
}.home-badge {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    padding: 9px 20px;
    margin-bottom: 34px;
    color: #69727c;
    background: rgba(255, 255, 255, 0.82);
    border: 1px solid rgba(18, 24, 32, 0.1);
    border-radius: 20px;
    box-shadow: 0 8px 24px rgba(18, 24, 32, 0.08);
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0;
}.home-badge span {
    width: 11px;
    height: 11px;
    border-radius: 50%;
    background: #006838;
    box-shadow: 0 0 0 5px rgba(0, 104, 56, 0.12);
}.home-title {
    font-size: 96px;
    line-height: 0.96;
    font-weight: 800;
    letter-spacing: 0;
    margin: 0;
    color: #121820;
}.home-title span {
    color: #006838;
}.home-subtitle {
    max-width: 880px;
    margin: 30px auto 0;
    color: #65717c;
    font-size: 23px;
    line-height: 1.5;
    font-weight: 500;
}.home-actions {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 18px;
    margin-top: 56px;
    flex-wrap: wrap;
}.home .home-content .home-actions .home-primary-btn,
.home .home-content .home-actions .home-secondary-btn {
    min-width: 210px;
    min-height: 58px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 15px 30px;
    border-radius: 8px;
    font-size: 16px;
    font-weight: 800;
    font-family: inherit;
    line-height: 1;
    cursor: pointer;
    transition: transform 0.25s ease, box-shadow 0.25s ease, background 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}.home .home-content .home-actions .home-primary-btn {
    background: #006838;
    color: #fff;
    border: 2px solid #006838;
    box-shadow: 0 16px 28px rgba(0, 104, 56, 0.24);
}.home .home-content .home-actions .home-secondary-btn {
    background: #121820;
    color: #fff;
    border: 2px solid #121820;
    box-shadow: 0 16px 28px rgba(18, 24, 32, 0.14);
}.home .home-content .home-actions .home-primary-btn:hover,
.home .home-content .home-actions .home-secondary-btn:hover {
    transform: translateY(-2px);
}.home .home-content .home-actions .home-primary-btn:hover {
    color: #006838;
    background: transparent;
    border-color: #006838;
    box-shadow: none;
}.home .home-content .home-actions .home-secondary-btn:hover {
    color: #121820;
    background: transparent;
    border-color: #121820;
    box-shadow: none;
}.home-stats {
    position: absolute;
    left: 50%;
    right: auto;
    bottom: 18px;
    width: min(calc(100% - (var(--layout-gutter) * 2)), var(--layout-max));
    margin: 0;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0;
    padding: 16px 16px;
    background: rgba(255, 255, 255, 0.88);
    border: 1px solid rgba(18, 24, 32, 0.10);
    border-radius: 8px;
    box-shadow: 0 18px 46px rgba(18, 24, 32, 0.09);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    transform: translateX(-50%);
    z-index: 2;
}.home-stat {
    position: relative;
    min-height: 72px;
    padding: 0 16px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background: transparent;
    border: 0;
    border-left: 1px solid rgba(18, 24, 32, 0.10);
    border-radius: 0;
    color: #121820;
}.home-stat:first-child {
    border-left: 0;
    border-radius: 0;
}.home-stat:last-child {
    border-radius: 0;
}.home-stat strong {
    min-height: 38px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #006838;
    font-size: 34px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: 0;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}.home-stat:last-child strong {
    font-size: 30px;
}.home-stat > span {
    display: block;
    min-height: 20px;
    margin-top: 2px;
    color: #69727c;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.25;
    letter-spacing: 0;
    text-align: center;
    text-transform: uppercase;
}@media (max-width: 1100px) {.home {
        align-items: center;
        min-height: 100vh;
        min-height: min(100svh, 880px);
        padding: 0;
    }.home .max-width {
        min-height: 100vh;
        min-height: min(100svh, 880px);
    }.home-title {
        font-size: 74px;
    }.home-subtitle {
        font-size: 20px;
    }.home-stat {
        min-height: 66px;
        padding: 0 10px;
    }.home-stat strong {
        min-height: 34px;
        font-size: 28px;
    }.home-stat:last-child strong {
        font-size: 24px;
    }.home-stat > span {
        font-size: 10px;
    }
}@media (max-width: 991px) {.home-stats {
        width: calc(100% - 100px);
    }
}@media (max-width: 690px) {.home {
        min-height: 100vh;
        min-height: min(100svh, 820px);
        padding: 0;
    }.home .max-width {
        min-height: 100vh;
        min-height: min(100svh, 820px);
    }.home::before {
        width: 380px;
        height: 380px;
        right: -150px;
        bottom: -30px;
    }.home-badge {
        margin-bottom: 26px;
        padding: 8px 14px;
        font-size: 11px;
    }.home-title {
        font-size: 36px;
        line-height: 1.03;
    }.home-subtitle {
        margin-top: 22px;
        font-size: 16px;
        line-height: 1.55;
    }.home-actions {
        margin-top: 34px;
        gap: 10px;
        flex-wrap: nowrap;
    }.home .home-content .home-actions .home-primary-btn,
.home .home-content .home-actions .home-secondary-btn {
        flex: 1 1 0;
        width: auto;
        min-width: 0;
        min-height: 46px;
        padding: 12px 10px;
        font-size: 14px;
    }.home-stats {
        bottom: 10px;
        width: calc(100% - 16px);
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-template-rows: repeat(2, minmax(58px, auto));
        padding: 0;
        overflow: hidden;
    }.home-stats::before,
    .home-stats::after {
        content: "";
        position: absolute;
        z-index: 1;
        background: rgba(0, 104, 56, 0.12);
        pointer-events: none;
    }.home-stats::before {
        top: 8px;
        bottom: 8px;
        left: 50%;
        width: 1px;
        transform: translateX(-0.5px);
    }.home-stats::after {
        left: 8px;
        right: 8px;
        top: 50%;
        height: 1px;
        transform: translateY(-0.5px);
    }.home-stat {
        min-height: 58px;
        padding: 12px 6px;
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        grid-template-rows: auto auto;
        place-items: center;
        align-content: center;
        justify-items: center;
        text-align: center;
        border-left: 0;
        z-index: 2;
    }.home-stat:nth-child(1) {
        grid-column: 1;
        grid-row: 1;
    }.home-stat:nth-child(2) {
        grid-column: 2;
        grid-row: 1;
    }.home-stat:nth-child(3) {
        grid-column: 1;
        grid-row: 2;
        justify-items: center;
    }.home-stat:nth-child(3) strong,
    .home-stat:nth-child(3) > span {
        transform: translate(-8px, 8px);
    }.home-stat:nth-child(4) {
        grid-column: 2;
        grid-row: 2;
    }.home-stat:nth-child(4) strong,
    .home-stat:nth-child(4) > span {
        transform: translateY(8px);
    }.home-stat:first-child {
        border-left: 0;
    }.home-stat:nth-child(3) {
        border-left: 0;
    }.home-stat:nth-child(n + 3) {
        border-top: 0;
    }.home-stat strong {
        width: 100%;
        min-height: 24px;
        display: flex;
        align-items: center;
        justify-content: center;
        justify-self: stretch;
        font-size: 22px;
        text-align: center;
    }.home-stat strong span {
        display: block;
        width: 100%;
        text-align: center;
    }.home-stat:last-child strong {
        font-size: 18px;
    }.home-stat > span {
        width: 100%;
        min-height: 20px;
        margin-top: 4px;
        display: flex;
        align-items: center;
        justify-content: center;
        justify-self: stretch;
        font-size: 9px;
        line-height: 1.18;
        text-align: center;
    }
}@media (max-width: 390px) {.home-title {
        font-size: 32px;
    }.home-subtitle {
        font-size: 15px;
    }.home-stat strong {
        font-size: 22px;
    }.home-stat:last-child strong {
        font-size: 18px;
    }.home-stat > span {
        font-size: 8px;
    }
}.about {
    background: #fff;
    padding: 96px 0 108px;
}.about .title::after {
    content: "Kdo jsme";
    color: #006838;
}.about .about-content {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
    gap: clamp(42px, 6vw, 86px);
    align-items: center;
}.about .about-content .left {
    width: 100%;
}.about .about-content .left img {
    width: 100%;
    height: clamp(360px, 42vw, 520px);
    object-fit: cover;
    object-position: center;
    border-radius: 8px;
    box-shadow: 0 18px 44px rgba(18, 24, 32, 0.10);
}.about .about-content .right {
    width: 100%;
    max-width: 620px;
}.about-kicker {
    display: inline-flex;
    margin-bottom: 12px;
    color: #006838;
    font-size: 12px;
    line-height: 1;
    font-weight: 800;
    letter-spacing: 0.22em;
    text-transform: uppercase;
}.about .about-content .right .text {
    color: #121820;
    font-size: clamp(30px, 3.2vw, 44px);
    font-weight: 700;
    line-height: 1.14;
    margin-bottom: 26px;
}.about .about-content .right .text span {
    color: #006838;
}.about .about-content .right .text .about-title-line {
    display: block;
    color: #121820;
}.about .about-content .right .text .typing-2 {
    display: inline;
}.about .about-content .right .text .about-title-line + .typing-2 {
    margin-top: 0;
}.about .about-content .right .text .about-title-line::after {
    content: "\A";
    white-space: pre;
}.about .about-content .right p {
    text-align: left;
    color: #2f3842;
    font-size: 17px;
    line-height: 1.78;
    max-width: 590px;
}.about .about-content .right a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #006838;
    color: #fff;
    min-width: 136px;
    min-height: 54px;
    font-size: 17px;
    font-weight: 700;
    padding: 12px 28px;
    margin-top: 28px;
    border-radius: 6px;
    border: 2px solid #006838;
    transition: all 0.3s ease;
}.about .about-content .right a:hover {
    color: #006838;
    background: none;
}.services {
    color: #111;
    background: linear-gradient(180deg, #fff 0%, #f7fbf5 100%);
}.services .serv-content {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 26px;
    align-items: stretch;
}.services .title {
    display: table;
    margin: 0 auto 34px;
    padding: 0 0 6px;
    background: transparent;
    color: #111;
    font-size: clamp(36px, 4.2vw, 58px);
    font-weight: 700;
    line-height: 1.08;
}.services .title::before {
    background: #111;
}.services .title::after {
    content: "Služby";
    color: #006838;
}.services .serv-content .card.service-tile {
    width: 100%;
    min-height: 260px;
    background: #fff;
    text-align: left;
    border-radius: 8px;
    padding: 0;
    cursor: pointer;
    transition: transform 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
    display: block;
    overflow: hidden;
    border: 1px solid rgba(18, 24, 32, 0.08);
    box-shadow: 0 12px 30px rgba(18, 24, 32, 0.08);
}.services .serv-content .card.service-tile:hover {
    transform: translateY(-5px);
    border-color: rgba(0, 104, 56, 0.18);
    box-shadow: 0 18px 42px rgba(18, 24, 32, 0.13);
}.reviews-section {
    padding: 96px 0;
    background: linear-gradient(180deg, #f3f8ef 0%, #fff 28%, #fff 100%);
    color: #111;
    overflow: hidden;
}.reviews-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 28px;
    margin-bottom: 34px;
}.reviews-head .section-kicker {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 8px 14px;
    background: rgba(0, 104, 56, 0.08);
    border: 1px solid rgba(0, 104, 56, 0.16);
    border-radius: 8px;
    color: #006838;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
}.reviews-head h2 {
    margin: 16px 0 12px;
    color: #111;
    font-size: 44px;
    line-height: 1.12;
    font-weight: 800;
}.reviews-head p {
    max-width: 650px;
    color: #5c6670;
    font-size: 17px;
    line-height: 1.7;
}.reviews-google-link {
    flex-shrink: 0;
    min-height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 12px 18px;
    background: #fff;
    border: 1px solid rgba(0, 104, 56, 0.18);
    border-radius: 8px;
    color: #006838;
    font-weight: 800;
    box-shadow: 0 12px 28px rgba(18, 24, 32, 0.08);
    transition: transform 0.25s ease, background 0.25s ease, color 0.25s ease;
}.reviews-google-link:hover {
    background: #006838;
    color: #fff;
    transform: translateY(-2px);
}.reviews-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
}.review-card {
    display: flex;
    min-height: 286px;
    flex-direction: column;
    padding: 26px;
    background: rgba(255, 255, 255, 0.92);
    border: 1px solid rgba(0, 104, 56, 0.14);
    border-radius: 8px;
    box-shadow: 0 14px 34px rgba(18, 24, 32, 0.08);
}.review-meta {
    display: flex;
    align-items: center;
    gap: 14px;
}.review-avatar {
    width: 46px;
    height: 46px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: #006838;
    color: #fff;
    font-size: 18px;
    font-weight: 800;
}.review-meta h3 {
    color: #111;
    font-size: 17px;
    line-height: 1.2;
}.review-stars {
    display: flex;
    gap: 4px;
    margin: 22px 0 18px;
    color: #006838;
    font-size: 14px;
}.review-card p {
    color: #303842;
    font-size: 16px;
    line-height: 1.72;
}.reviews-controls {
    display: none;
}.service-tile-link {
    position: relative;
    isolation: isolate;
    display: grid;
    grid-template-rows: auto 1fr;
    align-content: start;
    height: 100%;
    min-height: 260px;
    padding: 28px 30px 26px;
    color: #121820;
    border-radius: inherit;
}.service-tile-link::before,
.service-tile-link::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
}.service-tile-link::before {
    z-index: -2;
    background-image: var(--service-card-bg);
    background-size: cover;
    background-position: var(--service-card-position, center);
    transform: scale(1.01);
    transition: transform 0.55s ease;
}.service-tile-link::after {
    z-index: -1;
    background:
        linear-gradient(90deg, rgba(255, 255, 255, 0.98) 0%, rgba(255, 255, 255, 0.92) 34%, rgba(255, 255, 255, 0.56) 62%, rgba(255, 255, 255, 0.04) 100%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.18), rgba(0, 104, 56, 0.06));
    opacity: 1;
    transition: opacity 0.3s ease;
}.service-tile-link:focus-visible {
    outline: 3px solid rgba(0, 104, 56, 0.38);
    outline-offset: -6px;
}.service-tile--internet {
    --service-card-bg: url("images/service-bg-internet.jpeg");
    --service-card-position: center right;
}.service-tile--iptv {
    --service-card-bg: url("images/service-bg-iptv.jpeg");
    --service-card-position: center right;
}.service-tile--kabelaze {
    --service-card-bg: url("images/service-bg-kabelaze.jpeg");
    --service-card-position: center right;
}.service-tile--optika {
    --service-card-bg: url("images/service-bg-optika.jpeg");
    --service-card-position: center right;
}.service-tile-icon {
    width: 66px;
    height: 66px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 24px;
    border-radius: 8px;
    background: rgba(0, 104, 56, 0.08);
    box-shadow: 0 10px 24px rgba(0, 104, 56, 0.08);
}.service-tile-icon img {
    width: 36px;
    height: 36px;
    object-fit: contain;
    display: block;
}.service-tile-content {
    position: relative;
    z-index: 1;
    align-self: end;
}.service-tile h3 {
    max-width: 260px;
    font-size: 30px;
    line-height: 1.08;
    font-weight: 800;
    margin: 0 0 10px;
    color: #121820;
}.service-tile p {
    max-width: 265px;
    margin: 0;
    color: #59636d;
    font-size: 14px;
    line-height: 1.65;
    font-weight: 500;
}.service-tile-arrow {
    position: absolute;
    right: 18px;
    bottom: 18px;
    z-index: 1;
    width: 48px;
    height: 48px;
    border-radius: 8px;
    background: #fff;
    color: #006838;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    transition: transform 0.3s ease, background 0.3s ease, color 0.3s ease;
}.service-tile:hover .service-tile-link::before {
    transform: scale(1.06);
}.service-tile:hover .service-tile-link::after {
    opacity: 0.94;
}.service-tile:hover .service-tile-arrow {
    background: #006838;
    color: #fff;
    transform: translateX(4px);
}@media (max-width: 690px) {.services .serv-content {
        grid-template-columns: 1fr;
        gap: 18px;
    }.services .serv-content .card.service-tile {
        width: 100%;
        min-height: 232px;
    }.service-tile-link {
        min-height: 232px;
        padding: 22px 22px 24px;
    }.service-tile-icon {
        width: 58px;
        height: 58px;
        margin-bottom: 18px;
    }.service-tile-icon img {
        width: 32px;
        height: 32px;
    }.service-tile h3 {
        font-size: 26px;
    }.service-tile p {
        max-width: 230px;
        font-size: 13px;
    }
}@media (max-width: 1100px) {.reviews-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }.review-card:last-child {
        grid-column: 1 / -1;
    }
}@media (max-width: 690px) {.reviews-section {
        padding: 76px 0;
    }.reviews-head {
        align-items: stretch;
        flex-direction: column;
        margin-bottom: 26px;
    }.reviews-head h2 {
        font-size: 34px;
    }.reviews-head p {
        font-size: 16px;
    }.reviews-google-link {
        width: 100%;
    }.reviews-grid {
        display: flex;
        gap: 16px;
        overflow-x: auto;
        scroll-behavior: auto;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
        margin-right: -23px;
        padding-right: 23px;
        padding-bottom: 4px;
    }.reviews-grid::-webkit-scrollbar {
        display: none;
    }.reviews-controls {
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 12px;
        margin-top: 18px;
    }.reviews-arrow {
        display: none;
    }.reviews-dots {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 9px;
        min-height: 28px;
    }.reviews-dot {
        width: 9px;
        height: 9px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        border: 0;
        border-radius: 999px;
        background: rgba(0, 104, 56, 0.24);
        cursor: pointer;
        padding: 0;
        transition: width 0.2s ease, background 0.2s ease;
    }.reviews-dot.is-active {
        width: 24px;
        background: #006838;
    }.reviews-dot:focus-visible {
        outline: 3px solid rgba(0, 104, 56, 0.28);
        outline-offset: 3px;
    }.review-card {
        flex: 0 0 min(88%, 360px);
        scroll-snap-align: start;
        scroll-snap-stop: always;
    }.review-card,
.review-card:last-child {
        grid-column: auto;
    }.review-card {
        min-height: auto;
        padding: 22px;
    }
}.contact .title::after {
    content: "Pardubice";
    color: #006838;
}.contact {
    background: #fff;
}.contact .contact-content .column {
    width: calc(50% - 30px);
}.contact .contact-content .text {
    font-size: 25px;
    font-weight: 600;
    margin-bottom: 10px;
    text-decoration-color: #006838;
}.contact .contact-content .left p {
    text-align: left;
}.contact .contact-content .left .icons {
    margin: 10px 0;
}.contact .contact-content .row {
    display: flex;
    min-height: 65px;
    align-items: center;
    margin-bottom: 8px;
}.contact .contact-content .row .info {
    margin-left: 30px;
}.contact .contact-content .row i {
    font-size: 25px;
    color: #006838;
}.contact .contact-content .info .head {
    font-weight: 500;
}.contact .contact-content .info .sub-title {
    color: #333;
}.contact .contact-content .info .sub-title a {
    color: inherit;
    font-weight: 400;
    text-decoration: none;
    text-underline-offset: 3px;
}.contact .contact-content .info .sub-title a:hover,
.contact .contact-content .info .sub-title a:focus-visible {
    color: #006838;
    text-decoration: underline;
}.contact .contact-content .info .sub-title .contact-note {
    display: block;
    font-weight: 400;
    margin-top: 2px;
    opacity: 0.78;
}.contact .right form .fields {
    display: flex;
}.contact .right form .field,
.contact .right form .fields .field {
    position: relative;
    height: 45px;
    width: 100%;
    margin-bottom: 15px;
}.contact .right form .textarea {
    position: relative;
    min-height: 80px;
    height: auto;
    width: 100%;
    margin-bottom: 15px;
}.contact .right form .name {
    margin-right: 10px;
}.contact .right form .availability-fields .field:first-child {
    margin-right: 10px;
}.contact .right form .field input,
.contact .right form .field select,
.contact .right form .textarea textarea {
    height: 100%;
    width: 100%;
    border: 1px solid lightgrey;
    border-radius: 6px;
    outline: none;
    padding: 0 15px;
    font-size: 17px;
    font-family: 'Poppins', sans-serif;
    transition: all 0.3s ease;
}.contact .right form .custom-select-field {
    position: relative;
    z-index: 20;
}.contact .right form .custom-select-field.open {
    z-index: 80;
}.custom-select-trigger {
    height: 100%;
    width: 100%;
    border: 1px solid lightgrey;
    border-radius: 6px;
    outline: none;
    padding: 0 15px;
    background: #fff;
    color: #555;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    font-size: 17px;
    font-family: 'Poppins', sans-serif;
    cursor: pointer;
    transition: border-color 0.3s ease, box-shadow 0.3s ease;
}.custom-select-trigger i {
    color: #006838;
    font-size: 13px;
    transition: transform 0.25s ease;
}.custom-select-field.open .custom-select-trigger,
.custom-select-trigger:focus {
    border-color: #006838;
    box-shadow: 0 0 0 3px rgba(0, 104, 56, 0.12);
}.custom-select-field.open .custom-select-trigger i {
    transform: rotate(180deg);
}.custom-select-options {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    right: 0;
    display: none;
    list-style: none;
    margin: 0;
    padding: 6px;
    background: #fff;
    border: 1px solid #006838;
    border-radius: 8px;
    box-shadow: 0 14px 30px rgba(18, 24, 32, 0.16);
    max-height: 214px;
    overflow-x: hidden;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: #006838 transparent;
}.custom-select-options::-webkit-scrollbar {
    display: block;
    width: 6px;
}.custom-select-options::-webkit-scrollbar-track {
    background: transparent;
}.custom-select-options::-webkit-scrollbar-thumb {
    background: #006838;
    border-radius: 999px;
}.custom-select-field.open .custom-select-options {
    display: block;
}.custom-select-options li {
    padding: 10px 12px;
    border-radius: 6px;
    color: #111;
    cursor: pointer;
    line-height: 1.25;
}.custom-select-options li:hover,
.custom-select-options li:focus,
.custom-select-options li[aria-selected="true"] {
    background: #006838;
    color: #fff;
    outline: none;
}.phone-field {
    overflow: visible;
}.phone-input-wrap {
    display: grid;
    grid-template-columns: 74px minmax(0, 1fr);
    width: 100%;
    height: 100%;
}.contact .right form .field .phone-prefix-trigger {
    width: 100%;
    height: 100%;
    border-right: 0;
    border-radius: 6px 0 0 6px;
    padding: 0 12px;
    color: #111;
    justify-content: center;
}.contact .right form .field .phone-prefix-trigger span {
    white-space: nowrap;
}.contact .right form .field .phone-prefix-trigger i {
    flex: 0 0 auto;
}.contact .right form .field.phone-field input[type="tel"] {
    height: 100%;
    border-radius: 0 6px 6px 0;
}.phone-prefix-flag {
    position: relative;
    display: block;
    flex: 0 0 auto;
    width: 28px;
    height: 20px;
    overflow: hidden;
    background: linear-gradient(180deg, #fff 0 50%, #d7141a 50% 100%);
    border-radius: 4px;
    box-shadow: inset 0 0 0 1px rgba(18, 24, 32, 0.16);
}.phone-prefix-flag::before {
    position: absolute;
    inset: 0 auto 0 0;
    width: 56%;
    content: "";
    background: #11457e;
    clip-path: polygon(0 0, 100% 50%, 0 100%);
}.phone-prefix-flag.is-image {
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}.phone-prefix-flag.is-image::before {
    display: none;
}.phone-prefix-options li {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
}.phone-prefix-options li .phone-prefix-code {
    flex: 0 0 auto;
    color: #006838;
    font-weight: 700;
}.phone-prefix-options li:hover .phone-prefix-code,
.phone-prefix-options li:focus .phone-prefix-code,
.phone-prefix-options li[aria-selected="true"] .phone-prefix-code {
    color: #fff;
}.contact .right form .field select {
    appearance: none;
    background:
        linear-gradient(45deg, transparent 50%, #006838 50%),
        linear-gradient(135deg, #006838 50%, transparent 50%),
        #fff;
    background-position:
        calc(100% - 20px) 19px,
        calc(100% - 14px) 19px,
        100% 0;
    background-size:
        6px 6px,
        6px 6px,
        2.5em 100%;
    background-repeat: no-repeat;
    color: #555;
}.contact .right form .field input:focus,
.contact .right form .field select:focus,
.contact .right form .textarea textarea:focus {
    border-color: #b3b3b3;
}.contact .right form .field-has-error input,
.contact .right form .field-has-error select,
.contact .right form .field-has-error textarea,
.contact .right form .field-has-error .custom-select-trigger {
    border-color: #D10000;
    box-shadow: 0 0 0 3px rgba(209, 0, 0, 0.14);
}.contact .right form .field-has-error {
    margin-bottom: 34px !important;
}.custom-field-error {
    position: absolute;
    left: 0;
    top: calc(100% + 4px);
    z-index: 120;
    width: 100%;
    color: #D10000;
    font: 800 13px/1.3 'Poppins', sans-serif;
    letter-spacing: 0;
}.contact .right form .textarea textarea {
    height: 80px;
    min-height: 80px;
    padding-top: 10px;
    resize: vertical;
}.contact .right form .button-area {
    display: flex;
    align-items: center;
    margin-top: 0;
}.right form .button-area button {
    color: #fff;
    display: block;
    width: 160px !important;
    height: 45px;
    outline: none;
    font-size: 18px;
    font-weight: 500;
    border-radius: 6px;
    cursor: pointer;
    flex-wrap: nowrap;
    background: #006838;
    border: 2px solid #006838;
    transition: all 0.3s ease;
}.right form .button-area button:hover {
    color: #006838;
    background: none;
}/* ==================== MODERN FOOTER ==================== */
.modern-footer {
    background: #111;
    color: #fff;
    padding: 60px 0 40px;
    font-family: 'Poppins', sans-serif;
}.footer-container {
    width: min(calc(100% - (var(--layout-gutter) * 2)), var(--layout-max));
    max-width: none;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 40px;
}.footer-column h3 {
    font-size: 18px;
    font-weight: 600;
    color: #fff;
    margin-bottom: 20px;
}.footer-column ul {
    list-style: none;
    padding: 0;
    margin: 0;
}.footer-column ul li {
    margin-bottom: 12px;
}.footer-column ul li a,
.footer-column ul li span {
    color: #aaa;
    text-decoration: none;
    font-size: 15px;
}.footer-column ul li a {
    transition: color 0.3s ease;
}.footer-column ul li a:hover {
    color: #006838;
}.footer-column ul li .footer-contact-note {
    display: block;
    color: #777;
    font-size: 13px;
    line-height: 1.45;
    margin-top: 2px;
}/* Bottom Footer */
.bottom-footer {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background: #000;
    color: #fff;
    text-align: center;
    min-height: 77px;
    padding: 19px 16px;
    font-size: 14px;
    font-family: 'Poppins', sans-serif;
    display: flex;
    align-items: center;
    justify-content: center;
}.bottom-footer::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: min(416px, 69vw);
    height: min(168px, 35vw);
    transform: translate(-50%, calc(-50% + 5px));
    background: url("images/vjp-logo-white.png") center / contain no-repeat;
    opacity: 0.12;
    pointer-events: none;
    z-index: 0;
}.bottom-footer .footer-credit {
    position: relative;
    z-index: 1;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 8px;
    color: #fff;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.1;
}.bottom-footer .footer-credit-brand {
    display: inline-flex;
    align-items: center;
}.bottom-footer .footer-credit a {
    color: #fff !important;
    font-weight: 800;
    text-decoration: none;
}.bottom-footer .footer-credit a:visited,
.bottom-footer .footer-credit a:focus,
.bottom-footer .footer-credit a:hover {
    color: #fff !important;
}.bottom-footer .footer-credit a:hover {
    text-decoration: underline;
}.bottom-footer .footer-credit-divider,
.bottom-footer .footer-credit-year {
    display: inline-flex;
    align-items: center;
    color: #fff;
    white-space: nowrap;
}.bottom-footer .far {
    margin-right: 2px;
}/* Responsive Footer */
@media (max-width: 1024px) {
    .footer-container {
        grid-template-columns: repeat(3, 1fr);
        gap: 30px;
    }
}@media (max-width: 768px) {.footer-container {
        grid-template-columns: repeat(2, 1fr);
        gap: 25px;
    }
}@media (max-width: 500px) {.footer-container {
        grid-template-columns: 1fr;
        gap: 30px;
        text-align: center;
    }.modern-footer {
        padding: 40px 20px 30px;
    }
}@media (max-width: 1104px) {.about .about-content .left img {
        height: 430px;
    }
}@media (max-width: 991px) {.max-width {
        width: min(calc(100% - 100px), var(--layout-max));
        padding: 0;
    }
}/* ========== MOBILNÍ MENU S LOGEM ========== */

@media (max-width: 947px) {
    .navbar {
        --mobile-menu-bar-height: 74px;
        --mobile-menu-side-padding: 24px;
        --mobile-menu-logo-size: 30px;
        --mobile-menu-button-size: 44px;
        --mobile-menu-content-offset: 42px;
        padding: 0;
        min-height: var(--mobile-menu-bar-height);
    }

    .navbar.sticky {
        padding: 0;
        min-height: var(--mobile-menu-bar-height);
    }

    .navbar .max-width {
        min-height: var(--mobile-menu-bar-height);
        padding: 0 var(--mobile-menu-side-padding);
        justify-content: flex-start;
        gap: 10px;
    }

    .navbar .logo a {
        display: flex;
        align-items: center;
        font-size: var(--mobile-menu-logo-size);
        line-height: 1;
    }

    .navbar .max-width > .menu-btn {
        display: flex;
        align-items: center;
        justify-content: center;
        position: relative;
        z-index: 1002;
        width: var(--mobile-menu-button-size);
        height: var(--mobile-menu-button-size);
        line-height: 1;
        color: #fff;
    }

    .navbar .max-width > .menu-btn i {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 100%;
        height: 100%;
        line-height: 1;
    }

    .navbar:not(.sticky) .max-width > .menu-btn {
        color: #121820;
    }

    .navbar .max-width > .menu-btn.active {
        display: flex;
        align-items: center;
        justify-content: center;
        position: relative;
        top: auto;
        right: auto;
        z-index: 1002;
        width: var(--mobile-menu-button-size);
        height: var(--mobile-menu-button-size);
        line-height: 1;
        color: #fff;
    }

    .navbar .max-width > .menu-btn i.active:before {
        content: "\f00d";
        color: #fff;
    }

    /* Mobilní menu */
    .navbar .menu {
        position: fixed;
        min-height: 100vh;
        height: 100svh;
        width: 100%;
        max-width: 100vw;
        left: -100%;
        top: 0;
        z-index: 1000;
        background: linear-gradient(180deg, #f3f8ef 0%, #fff 100%);
        text-align: center;
        padding: calc(var(--mobile-menu-bar-height) + var(--mobile-menu-content-offset)) var(--mobile-menu-side-padding) 40px;
        transition: left 0.3s ease;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: flex-start;
        gap: 12px;
        overflow-y: auto;
        overflow-x: hidden;
        transform: translateZ(0);
        backface-visibility: hidden;
    }

    .navbar .menu.active {
        left: 0;
    }

    .navbar .menu.active::before {
        content: 'Megasphera';
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: var(--mobile-menu-bar-height);
        background: #006838;
        z-index: 1000;
        display: flex;
        align-items: center;
        justify-content: flex-start;
        padding-left: var(--mobile-menu-side-padding);
        font-size: var(--mobile-menu-logo-size);
        font-weight: 600;
        color: #fff;
        font-family: 'Poppins', sans-serif;
        box-shadow: 0 12px 28px rgba(0, 104, 56, 0.2);
    }

    .navbar .menu li {
        display: block;
        width: 100%;
        min-width: 0;
        margin: 0;
        max-width: 360px;
    }

    .navbar .menu li a {
        display: flex;
        align-items: center;
        justify-content: center;
        min-height: 56px;
        margin: 0;
        font-size: 20px;
        font-weight: 700;
        width: 100%;
        max-width: 100%;
        padding: 14px 18px;
        color: #121820;
        background: rgba(255, 255, 255, 0.82);
        border: 1px solid rgba(0, 104, 56, 0.12);
        border-radius: 12px;
        box-shadow: 0 10px 22px rgba(18, 24, 32, 0.06);
    }

    .navbar .menu li a:hover {
        color: #006838;
        border-color: rgba(0, 104, 56, 0.32);
    }

    .navbar .menu li a::after {
        display: none;
    }

    @media (min-width: 691px) {
        .navbar {
            --mobile-menu-bar-height: 74px;
            --mobile-menu-side-padding: 64px;
            --mobile-menu-logo-size: 38px;
            --mobile-menu-button-size: 58px;
            --mobile-menu-content-offset: 54px;
        }

        .navbar .menu {
            padding-bottom: 64px;
            gap: 20px;
        }

        .navbar .menu.active::before {
            height: var(--mobile-menu-bar-height);
            padding-left: var(--mobile-menu-side-padding);
            font-size: var(--mobile-menu-logo-size);
        }

        .navbar .menu li {
            max-width: 660px;
        }

        .navbar .menu li a {
            min-height: 82px;
            font-size: 28px;
            border-radius: 16px;
        }

        .navbar .max-width > .menu-btn {
            width: var(--mobile-menu-button-size);
            height: var(--mobile-menu-button-size);
            font-size: 32px;
        }

        .navbar .max-width > .menu-btn.active {
            top: auto;
            right: auto;
            width: var(--mobile-menu-button-size);
            height: var(--mobile-menu-button-size);
            font-size: 32px;
        }

    }

    .max-width {
        max-width: 930px;
    }

    .about .about-content {
        grid-template-columns: 1fr;
    }

    .about .about-content .column {
        width: 100%;
    }

    .about .about-content .left {
        display: flex;
        justify-content: center;
        margin: 0 auto 42px;
    }

    .about .about-content .right {
        flex: 100%;
        max-width: 760px;
        margin: 0 auto;
    }

    .services .serv-content .card.service-tile {
        margin-bottom: 20px;
        min-height: 236px;
    }

    .services .serv-content {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 22px;
    }

    .service-tile-link {
        min-height: 236px;
    }

    .contact .contact-content .column {
        width: 100%;
        margin-bottom: 35px;
    }
}@media (max-width: 690px) {.max-width {
        width: calc(100% - 46px);
        padding: 0;
    }section .title,
    .home-content,
    .home-title,
    .home-subtitle,
    .about .about-content .right,
    .about-kicker,
    .about .about-content .right .text,
    .about .about-content .right p,
    .services .title,
    .pricing-section .title,
    .more-pricing,
    .availability-copy,
    .availability-steps .section-kicker,
    .availability-copy h2,
    .availability-copy > p,
    .reviews-head,
    .reviews-head h2,
    .reviews-head p,
    .features-section .title,
    .features-lead,
    .contact .title,
    .contact .contact-content .left,
    .contact .contact-content .text,
    .contact .contact-content .left p {
        text-align: center;
    }.more-pricing,
    .reviews-head,
    .availability-copy {
        align-items: center;
    }.about .about-content .right a {
        margin-left: auto;
        margin-right: auto;
    }.reviews-google-link {
        justify-content: center;
    }.home-subtitle,
    .about .about-content .right p,
    .more-pricing p,
    .availability-copy > p,
    .reviews-head p,
    .features-lead,
    .contact .contact-content .left p {
        max-width: 340px;
        margin-left: auto;
        margin-right: auto;
        text-align: left;
        text-align-last: auto;
    }.contact .contact-content .left .icons {
        display: grid;
        gap: 22px;
        margin: 28px auto 0;
        max-width: 340px;
    }.contact .contact-content .row {
        min-height: auto;
        display: grid;
        grid-template-columns: 1fr;
        justify-items: center;
        gap: 9px;
        margin: 0;
        text-align: center;
    }.contact .contact-content .row i {
        width: 38px;
        height: 38px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        font-size: 24px;
    }.contact .contact-content .row .info {
        margin-left: 0;
        max-width: 100%;
    }.contact .contact-content .info .head {
        font-size: 16px;
        line-height: 1.25;
        font-weight: 700;
    }.contact .contact-content .info .sub-title {
        margin-top: 4px;
        color: #4d4d4d;
        font-size: 16px;
        line-height: 1.45;
        word-break: normal;
        overflow-wrap: anywhere;
    }.contact .contact-content .info .sub-title .contact-note {
        margin-top: 1px;
    }.more-pricing {
        flex-direction: column;
        align-items: stretch;
        padding: 22px;
    }.more-pricing h3 {
        font-size: 21px;
    }.more-pricing-link {
        text-align: center;
    }.services .serv-content .card.service-tile {
        width: 100%;
        min-height: 232px;
    }.services .serv-content {
        grid-template-columns: 1fr;
    }.service-tile-link {
        min-height: 232px;
    }
}@media (max-width: 500px) {.about .about-content .right .text {
        font-size: 28px;
    }.contact .right form .fields {
        flex-direction: column;
    }.contact .right form .name,
.contact .right form .email,
.contact .right form .availability-fields .field:first-child {
        margin: 0;
    }.floating-call-btn {
        right: 15px;
        bottom: 18px;
        height: 56px;
        width: 56px;
        font-size: 22px;
    }.callback-panel {
        right: 12px;
        bottom: 16px;
        width: calc(100vw - 24px);
        padding: 22px 20px 20px;
    }.callback-title {
        font-size: 20px;
    }.callback-field input {
        min-height: 62px;
        padding: 20px 50px 0 102px;
        font-size: 17px;
    }.price-panel {
        padding: 22px 16px;
    }.price-service-grid,
.price-grid-small,
.docs-grid {
        grid-template-columns: 1fr;
    }
}/* cenove balicky -------------------------------------------------------------------------------------------------------------------------------------------------- */
.pricing-section {
    padding: 100px 0;
    background: linear-gradient(180deg, #fff 0%, #f3f8ef 18%, #f3f8ef 100%);
}.pricing-container {
    width: min(calc(100% - (var(--layout-gutter) * 2)), var(--layout-max));
    max-width: none;
    margin: 0 auto;
    color: #111;
}.more-pricing {
    margin: 42px auto 0;
    padding: 24px 28px;
    border: 2px solid rgba(0, 104, 56, 0.14);
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    font-family: 'Poppins', sans-serif;
    background: rgba(255, 255, 255, 0.86);
    box-shadow: 0 12px 30px rgba(18, 24, 32, 0.06);
}.more-pricing h3 {
    color: #111;
    font-size: 23px;
    margin-bottom: 6px;
}.more-pricing p {
    color: #555;
    line-height: 1.6;
}.more-pricing-link {
    flex-shrink: 0;
    display: inline-block;
    padding: 13px 22px;
    background: #006838;
    border: 2px solid #006838;
    border-radius: 8px;
    color: #fff;
    font-weight: 700;
    transition: all 0.3s ease;
}.more-pricing-link:hover {
    background: transparent;
    color: #006838;
}.pricing-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 2rem;
    margin-top: 3rem;
}.pricing-card {
    background: #fff;
    backdrop-filter: blur(20px);
    border: 2px solid rgba(0, 104, 56, 0.12);
    border-radius: 20px;
    padding: 3rem 2rem 20px;
    transition: all 0.5s ease;
    position: relative;
    overflow: hidden;
    box-shadow: 0 14px 34px rgba(18, 24, 32, 0.08);
}.pricing-card.featured {
    border-color: #006838;
    background: #fff;
}/* efekt zelene kdyz najedu na karty s balicky -------------------------------------------------------------------------------------------------------------------------------------------------- */
/* .pricing-card::before {
    content: '';
    position: absolute;
    top: -50%;
    left: -50%;
    width: 200%;
    height: 200%;
    background: radial-gradient(circle, rgba(0, 208, 132, 0.1) 0%, transparent 70%);
    opacity: 0;
    transition: opacity 0.5s ease;
    }.pricing-card:hover::before {
    opacity: 1;
    }*/

.pricing-card:hover {
    transform: translateY(-10px);
    box-shadow: 0 20px 50px rgba(0, 208, 132, 0.2);
    border-color: #006838;
}.pricing-badge {
    position: absolute;
    top: 20px;
    right: 20px;
    background: #006838;
    color: #fff;
    padding: 0.5rem 1rem;
    border-radius: 20px;
    font-size: 0.85rem;
    font-weight: 600;
    z-index: 10;
    font-family: 'Inter', sans-serif;
}.pricing-header {
    text-align: center;
    margin-bottom: 2rem;
    position: relative;
    z-index: 1;
}.pricing-name {
    font-size: 1.8rem;
    font-weight: 700;
    margin-bottom: 1.5rem;
    color: #111;
    font-family: 'Inter', sans-serif;
}.pricing-amount {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    margin-bottom: 0.5rem;
}.pricing-currency {
    font-size: 1.5rem;
    font-weight: 700;
    color: #006838;
    margin-right: 0.3rem;
    font-family: 'Inter', sans-serif;
}.pricing-price1 {
    font-size: 4.5rem;
    font-weight: 800;
    line-height: 1;
    background: #006838;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    font-family: 'Inter', sans-serif;


}.pricing-period {
    color: #555;
    font-size: 1rem;
    margin-top: 0.5rem;
    font-family: 'Inter', sans-serif;
}.pricing-features {
    list-style: none;
    margin: 2.5rem 0;
    position: relative;
    z-index: 1;
    color: #222;
    font-family: 'Inter', sans-serif;
}.pricing-features li {
    padding: 1rem 0;
    border-bottom: 1px solid rgba(0, 0, 0, 0.07);
    display: flex;
    align-items: center;
    gap: 1rem;
    font-size: 1rem;
}.pricing-features li:last-child {
    border-bottom: none;
}.pricing-features li::before {
    content: '✓';
    color: #006838;
    font-weight: bold;
    font-size: 1.3rem;
    flex-shrink: 0;
}.pricing-features li.disabled {
    color: rgba(34, 34, 34, 0.48);
    opacity: 1;
}.pricing-features li.disabled::before {
    content: '✗';
    color: #ff4d4d;
    opacity: 1;
}.pricing-btn {
    width: 100%;
    min-height: 54px;
    padding: 13px 22px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: none;
    border-radius: 8px;
    color: #006838;
    font-weight: 800;
    font-size: 1.1rem;
    cursor: pointer;
    transition: all 0.3s ease;
    position: relative;
    z-index: 1;
    border: 2px solid #006838;
    font-family: 'Poppins', sans-serif;

}.pricing-btn::after {
    content: none;
}.pricing-card.featured .pricing-btn {
    background: #006838;
    color: #fff;
    box-shadow: 0 12px 28px rgba(0, 104, 56, 0.22);
}.pricing-btn:hover {
    color: #fff;
    background: #006838;
}.pricing-card.featured .pricing-btn:hover {
    color: #006838;
    background: transparent;
    box-shadow: none;
}.pricing-section .title::before {
    background: #111;
}.pricing-section .title::after {
    content: "Megasphera";
    color: #006838;
}.tariff-table-wrap {
    margin-top: 26px;
    overflow-x: auto;
}.tariff-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 840px;
}.tariff-table th,
.tariff-table td {
    padding: 15px 14px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.08);
    text-align: left;
    color: #222;
    font-size: 14px;
}.tariff-table th {
    color: #fff;
    background: #006838;
    font-weight: 700;
}.tariff-table td:first-child {
    color: #111;
    font-weight: 700;
}.pricing-note {
    margin-top: 18px;
    font-size: 14px;
}.availability-steps {
    padding: 104px 0;
    background:
        radial-gradient(circle at 82% 28%, rgba(0, 104, 56, 0.1) 0%, rgba(0, 104, 56, 0.04) 28%, rgba(243, 248, 239, 0) 56%),
        linear-gradient(180deg, #f3f8ef 0%, #f8faf8 42%, #fff 100%);
    color: #111;
    font-family: 'Poppins', sans-serif;
    overflow: hidden;
}.availability-steps-inner {
    width: min(calc(100% - (var(--layout-gutter) * 2)), var(--layout-max));
    max-width: none;
    margin: 0 auto;
    display: grid;
    grid-template-columns: minmax(0, 0.78fr) minmax(500px, 1.22fr);
    gap: 44px;
    align-items: center;
}.availability-copy {
    max-width: 680px;
}.availability-steps .section-kicker {
    display: inline-flex;
    align-items: center;
    min-height: 36px;
    padding: 8px 14px;
    background: #fff;
    border: 1px solid rgba(0, 104, 56, 0.16);
    border-radius: 8px;
    color: #006838;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0;
    text-transform: uppercase;
}.availability-copy h2 {
    margin: 18px 0 18px;
    font-size: 52px;
    line-height: 1.06;
    font-weight: 800;
    color: #101820;
}.availability-copy > p {
    max-width: 640px;
    color: #5c6670;
    font-size: 18px;
    line-height: 1.75;
}.availability-timeline {
    list-style: none;
    margin: 42px 0 0;
    padding: 0;
}.availability-timeline li {
    position: relative;
    display: grid;
    grid-template-columns: 82px minmax(0, 1fr);
    padding: 0 0 34px;
}.availability-timeline li:last-child {
    padding-bottom: 0;
}.availability-timeline li:not(:last-child)::after {
    content: "";
    position: absolute;
    top: 58px;
    bottom: 8px;
    left: 31px;
    width: 2px;
    background: linear-gradient(180deg, rgba(0, 104, 56, 0.28), rgba(0, 104, 56, 0.06));
}.availability-step-number {
    position: relative;
    z-index: 1;
    width: 62px;
    height: 62px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    border: 1px solid rgba(0, 104, 56, 0.08);
    border-radius: 50%;
    color: #006838;
    font-size: 18px;
    font-weight: 800;
}.availability-timeline h3 {
    margin: 2px 0 12px;
    color: #111;
    font-size: 21px;
    line-height: 1.25;
    font-weight: 800;
}.availability-timeline p {
    color: #555f68;
    font-size: 16px;
    line-height: 1.65;
}.availability-steps-cta {
    margin-top: 34px;
    min-width: 218px;
    min-height: 56px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 14px 26px;
    background: #006838;
    border: 2px solid #006838;
    border-radius: 8px;
    color: #fff;
    font-family: 'Poppins', sans-serif;
    font-size: 16px;
    font-weight: 800;
    cursor: pointer;
    transition: transform 0.25s ease, background 0.25s ease, color 0.25s ease;
}.availability-steps-cta:hover {
    background: transparent;
    color: #006838;
    transform: translateY(-2px);
}.availability-visual {
    position: relative;
    min-height: 540px;
    display: flex;
    align-items: center;
    justify-content: center;
}.availability-visual img {
    width: min(420px, 90%);
    max-height: 520px;
    border: 1px solid rgba(0, 104, 56, 0.16);
    border-radius: 8px;
    box-shadow: 0 24px 54px rgba(18, 24, 32, 0.16);
    object-fit: cover;
}.availability-visual-badge,
.availability-router-status {
    position: absolute;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-height: 46px;
    padding: 12px 16px;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 800;
    box-shadow: 0 16px 36px rgba(18, 24, 32, 0.14);
}.availability-visual-badge {
    background: #fff;
    border: 1px solid rgba(0, 104, 56, 0.14);
    color: #111;
}.availability-visual-badge i {
    color: #006838;
}.badge-location {
    top: 66px;
    left: 0;
}.badge-speed {
    right: 0;
    bottom: 116px;
}.availability-router-status {
    left: 50%;
    bottom: 46px;
    transform: translateX(-50%);
    background: #006838;
    color: #fff;
}.availability-router-status span {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #b8f2cc;
    box-shadow: 0 0 0 6px rgba(184, 242, 204, 0.16);
}.availability-speed-card {
    --meter-progress: 0;
    --needle-angle: -112deg;
    position: relative;
    width: min(520px, 100%);
    min-height: 640px;
    padding: 16px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    background: #fff;
    border: 1px solid rgba(0, 104, 56, 0.12);
    border-radius: 8px;
    box-shadow: 0 20px 48px rgba(18, 24, 32, 0.12);
    color: #121820;
    overflow: hidden;
}.availability-speed-card {
    animation: none;
}.availability-speed-card::before {
    content: "";
    position: absolute;
    inset: 0;
    background: url("images/speedometer-bg.jpeg") center center / cover no-repeat;
    filter: blur(4px);
    transform: scale(1.018);
    transform-origin: center;
    pointer-events: none;
}.availability-speed-card::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 50% 30%, rgba(255, 255, 255, 0.34), transparent 42%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.68), rgba(255, 255, 255, 0.54));
    pointer-events: none;
}.speedometer,
.speed-card-footer {
    position: relative;
    z-index: 1;
}.speedometer {
    position: relative;
    flex: 1;
    width: 100%;
    min-height: 596px;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    isolation: isolate;
}.speedometer-canvas {
    position: relative;
    z-index: 1;
    display: block;
    width: min(100%, 500px);
    height: auto;
}.speedometer::before,
.speedometer::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 48%;
    border-radius: 50%;
    transform: translate(-50%, -50%);
    pointer-events: none;
    opacity: 0;
}.speedometer::before {
    width: 292px;
    height: 292px;
    background:
        conic-gradient(from 225deg,
            rgba(255, 255, 255, 0) 0deg,
            rgba(255, 255, 255, 0) 72deg,
            rgba(255, 255, 255, 0.38) 92deg,
            rgba(81, 216, 138, 0.46) 112deg,
            rgba(255, 255, 255, 0) 138deg,
            rgba(255, 255, 255, 0) 360deg);
    filter: blur(8px);
    mix-blend-mode: screen;
    z-index: 0;
}.speedometer::after {
    width: 184px;
    height: 184px;
    background:
        radial-gradient(circle, rgba(255, 255, 255, 0.16) 0%, rgba(81, 216, 138, 0.10) 42%, transparent 70%);
    z-index: 0;
}.speedometer-svg {
    position: relative;
    z-index: 1;
    width: min(100%, 380px);
    overflow: visible;
}.speed-track,
.speed-progress {
    fill: none;
    stroke-width: 28;
    stroke-linecap: round;
}.speed-track {
    stroke: rgba(255, 255, 255, 0.12);
}.speed-progress {
    stroke: url(#speedGradient);
    stroke-dasharray: var(--meter-progress) 100;
    filter: drop-shadow(0 0 14px rgba(81, 216, 138, 0.22));
    animation: speedProgressVideo 3.8s cubic-bezier(0.16, 0.86, 0.28, 1) infinite;
}.availability-speed-card.is-running .speed-progress {
    filter: drop-shadow(0 0 20px rgba(81, 216, 138, 0.34));
    animation:
        speedProgressVideo 3.8s cubic-bezier(0.16, 0.86, 0.28, 1) infinite,
        speedArcGlow 0.9s ease-in-out infinite;
}.speed-scale text {
    fill: rgba(255, 255, 255, 0.82);
    font-family: 'Poppins', sans-serif;
    font-size: 14px;
    font-weight: 800;
    text-anchor: middle;
}.speed-needle {
    transform: rotate(var(--needle-angle));
    transform-origin: 170px 178px;
    animation: speedNeedleVideo 3.8s cubic-bezier(0.16, 0.86, 0.28, 1) infinite;
}.speed-needle path {
    filter: drop-shadow(0 12px 18px rgba(0, 0, 0, 0.28));
}.speed-needle circle {
    fill: #dff4e7;
    stroke: rgba(255, 255, 255, 0.46);
    stroke-width: 4;
}.availability-speed-card.is-running .speed-needle circle {
    animation: speedHubPulse 0.78s ease-in-out infinite;
}.speed-readout {
    position: absolute;
    left: 50%;
    bottom: 10px;
    transform: translateX(-50%);
    width: 100%;
    display: grid;
    place-items: center;
    text-align: center;
}.speed-readout span {
    font-family: 'Poppins', sans-serif;
    font-size: 54px;
    font-weight: 300;
    line-height: 1;
    letter-spacing: 1px;
    color: #fff;
    animation: speedReadoutVideo 3.8s ease-in-out infinite;
}.speed-readout small {
    margin-top: 8px;
    color: rgba(255, 255, 255, 0.56);
    font-size: 14px;
    font-weight: 700;
}.speed-card-footer {
    display: none;
}.speed-card-footer span {
    min-height: 42px;
    min-width: 134px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.08);
    color: rgba(255, 255, 255, 0.84);
    font-size: 13px;
    font-weight: 800;
}.speed-card-footer i {
    color: #51d88a;
}@keyframes speedHubPulse {
    0%,
    100% {
        stroke-width: 4;
        filter: drop-shadow(0 0 0 rgba(81, 216, 138, 0));
    }

    50% {
        stroke-width: 8;
        filter: drop-shadow(0 0 16px rgba(81, 216, 138, 0.55));
    }
}@keyframes speedCardBreath {
    0%,
    100% {
        box-shadow: 0 26px 58px rgba(18, 24, 32, 0.18);
    }

    52% {
        box-shadow:
            0 30px 64px rgba(18, 24, 32, 0.20),
            0 0 34px rgba(81, 216, 138, 0.12);
    }
}@keyframes speedProgressVideo {
    0% {
        stroke-dasharray: 0 100;
    }

    12% {
        stroke-dasharray: 8 100;
    }

    34% {
        stroke-dasharray: 64 100;
    }

    64% {
        stroke-dasharray: 94 100;
    }

    78%,
    100% {
        stroke-dasharray: 100 100;
    }
}@keyframes speedNeedleVideo {
    0% {
        transform: rotate(-112deg);
    }

    12% {
        transform: rotate(-96deg);
    }

    32% {
        transform: rotate(36deg);
    }

    50% {
        transform: rotate(89deg);
    }

    63% {
        transform: rotate(108deg);
    }

    70% {
        transform: rotate(103deg);
    }

    78%,
    100% {
        transform: rotate(112deg);
    }
}@keyframes speedReadoutVideo {
    0%,
    8% {
        transform: translateY(8px) scale(0.96);
        opacity: 0.72;
    }

    34% {
        transform: translateY(0) scale(1);
        opacity: 1;
    }

    78%,
    100% {
        transform: translateY(0) scale(1.02);
        opacity: 1;
    }
}@keyframes speedArcGlow {
    0%,
    100% {
        filter: drop-shadow(0 0 12px rgba(81, 216, 138, 0.2));
    }

    50% {
        filter: drop-shadow(0 0 26px rgba(81, 216, 138, 0.46));
    }
}@keyframes needleSettle {
    0% {
        transform: rotate(calc(var(--needle-angle) - 9deg));
    }

    58% {
        transform: rotate(calc(var(--needle-angle) + 3deg));
    }

    100% {
        transform: rotate(var(--needle-angle));
    }
}@keyframes speedNumberPop {
    0% {
        transform: translateY(4px) scale(0.96);
        opacity: 0.82;
    }

    100% {
        transform: translateY(0) scale(1);
        opacity: 1;
    }
}@media (max-width: 1100px) {.availability-steps {
        padding: 86px 0;
    }.availability-steps-inner {
        grid-template-columns: 1fr;
        gap: 50px;
    }.availability-copy {
        max-width: none;
    }.availability-copy h2 {
        font-size: 44px;
    }.availability-visual {
        min-height: 460px;
    }.availability-speed-card {
        min-height: 560px;
    }.badge-location {
        left: 8%;
    }.badge-speed {
        right: 8%;
    }
}@media (max-width: 690px) {.availability-steps {
        padding: 72px 0;
    }.availability-copy h2 {
        font-size: 34px;
        line-height: 1.12;
    }.availability-copy > p {
        font-size: 16px;
        line-height: 1.65;
    }.availability-timeline {
        margin-top: 34px;
    }.availability-timeline li {
        grid-template-columns: 58px minmax(0, 1fr);
        padding-bottom: 30px;
    }.availability-timeline li:not(:last-child)::after {
        top: 48px;
        bottom: 8px;
        left: 22px;
    }.availability-step-number {
        width: 46px;
        height: 46px;
        font-size: 16px;
    }.availability-timeline h3 {
        margin-top: 0;
        font-size: 19px;
    }.availability-timeline p {
        font-size: 15px;
    }.availability-steps-cta {
        width: 100%;
    }.availability-visual {
        min-height: auto;
        flex-direction: column;
        gap: 12px;
    }.availability-visual img {
        width: min(100%, 330px);
        max-height: none;
    }.availability-speed-card {
        width: min(100%, 380px);
        min-height: 510px;
        aspect-ratio: auto;
        padding: 12px;
    }.speedometer {
        min-height: 486px;
        height: 100%;
        padding: 0;
    }.speedometer-canvas {
        width: min(100%, 350px);
    }.speed-card-footer {
        display: none;
    }.availability-visual-badge,
.availability-router-status {
        position: static;
        width: min(100%, 330px);
        justify-content: center;
        transform: none;
    }
}.price-page {
    background: #fff;
    color: #111;
    font-family: 'Poppins', sans-serif;
    overflow-x: clip;
}.price-page-main {
    width: min(calc(100% - (var(--layout-gutter) * 2)), var(--layout-max));
    max-width: none;
    margin: 0 auto;
    padding: 24px 0 80px;
}.price-page-menu {
    position: sticky;
    top: 12px;
    z-index: 20;
    display: flex;
    gap: 10px;
    margin: 6px 0 28px;
    padding: 10px;
    background: rgba(255, 255, 255, 0.92);
    border: 2px solid rgba(0, 104, 56, 0.22);
    border-radius: 8px;
    box-shadow: 0 14px 34px rgba(18, 24, 32, 0.1);
    backdrop-filter: blur(14px);
}.price-menu-toggle {
    display: none;
}.price-menu-toggle:focus-visible,
.price-page-menu a:focus-visible {
    outline: 3px solid rgba(0, 104, 56, 0.28);
    outline-offset: 3px;
}.price-menu-links {
    display: flex;
    width: 100%;
    gap: 10px;
}.price-page-menu a {
    flex: 1;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 10px 14px;
    color: #111;
    border-radius: 8px;
    font-weight: 700;
    transition: background 0.25s ease, color 0.25s ease, transform 0.25s ease;
}.price-page-menu a.price-menu-back {
    flex: 0 0 auto;
    color: #006838;
    background: rgba(0, 104, 56, 0.08);
    border: 1px solid rgba(0, 104, 56, 0.18);
}.price-page-menu a.price-menu-back:hover {
    background: #006838;
    color: #fff;
}.price-page-menu a.is-active {
    background: #006838;
    color: #fff;
}.price-page-menu a:hover {
    background: #fff;
    color: #006838;
    transform: translateY(-1px);
}.price-page-menu a.is-active:hover {
    background: #006838;
    color: #fff;
}.price-panel {
    margin-top: 28px;
    padding: 32px;
    background: #fff;
    border: 1px solid rgba(0, 0, 0, 0.12);
    border-radius: 8px;
    box-shadow: 0 12px 34px rgba(0, 0, 0, 0.08);
    scroll-margin-top: 94px;
}.price-panel h2 {
    font-size: 30px;
    margin-bottom: 16px;
}.price-services-panel {
    margin-top: 10px;
}.price-service-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
    margin-top: 22px;
}.price-service-card {
    padding: 26px;
    border-radius: 8px;
    background: #f7f7f7;
    border: 1px solid rgba(0, 0, 0, 0.08);
    scroll-margin-top: 94px;
    min-width: 0;
    display: flex;
    flex-direction: column;
}.price-service-icon {
    width: 50px;
    height: 50px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #006838;
    color: #fff;
    font-size: 22px;
    margin-bottom: 18px;
}.price-service-icon img {
    width: 30px;
    height: 30px;
    display: block;
    object-fit: contain;
    filter: brightness(0) invert(1);
}.price-service-card h3 {
    color: #111;
    font-size: 22px;
    margin-bottom: 12px;
}.price-service-card p {
    color: #555;
    line-height: 1.65;
    margin-bottom: 14px;
}.price-service-card ul {
    list-style: none;
    margin-bottom: 22px;
}.price-service-card li {
    color: #222;
    line-height: 1.55;
    margin-bottom: 8px;
    position: relative;
    padding-left: 20px;
}.price-service-card li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 9px;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #006838;
}.price-service-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    align-self: stretch;
    margin-top: auto;
    min-height: 48px;
    padding: 12px 18px;
    border-radius: 8px;
    background: rgba(0, 104, 56, 0.08);
    border: 2px solid #006838;
    color: #006838;
    font-weight: 700;
    transition: background 0.3s ease, color 0.3s ease, transform 0.3s ease;
}.price-service-cta:hover {
    background: #fff;
    color: #006838;
    transform: translateY(-2px);
}.price-grid-small,
.docs-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
    margin-top: 22px;
}.price-grid-small article,
.docs-grid a {
    padding: 20px;
    background: #f7f7f7;
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 8px;
    min-width: 0;
    overflow-wrap: anywhere;
}.price-grid-small h3 {
    color: #111;
    font-size: 19px;
    margin-bottom: 10px;
}.price-grid-small p {
    color: #555;
    line-height: 1.6;
}.docs-grid a {
    color: #111;
    font-weight: 700;
    transition: border-color 0.3s ease, color 0.3s ease;
}.docs-grid a:hover {
    color: #006838;
    border-color: #006838;
}.floating-back-btn {
    position: fixed;
    right: 30px;
    bottom: 30px;
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #006838;
    color: #fff;
    border-radius: 6px;
    font-size: 20px;
    z-index: 9999;
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.28);
    transition: transform 0.25s ease, background 0.25s ease;
}.floating-back-btn:hover {
    background: #006838;
    transform: translateY(-3px);
}@media (max-width: 1100px) {.price-page-main {
        padding: 22px 20px 76px;
    }.price-panel {
        padding: 28px;
    }.tariff-table {
        min-width: 760px;
    }.price-grid-small,
.docs-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}@media (max-width: 900px) {.price-page-main {
        padding: 16px 18px 74px;
    }.price-page-menu {
        top: 8px;
        margin: 0 -4px 22px;
        display: block;
        overflow: visible;
    }.price-menu-toggle {
        width: 100%;
        min-height: 50px;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        padding: 12px 14px;
        border: 0;
        border-radius: 8px;
        background: #006838;
        color: #fff;
        font: inherit;
        font-weight: 800;
        cursor: pointer;
    }.price-menu-toggle span {
        display: inline-flex;
        align-items: center;
        gap: 9px;
        min-width: 0;
    }.price-menu-toggle .fa-chevron-down {
        transition: none;
    }.price-page-menu.is-open .price-menu-toggle .fa-chevron-down {
        transform: rotate(180deg);
    }.price-menu-links {
        display: grid;
        grid-template-columns: 1fr;
        gap: 8px;
        width: 100%;
        max-height: 520px;
        margin-top: 8px;
        overflow: hidden;
        opacity: 1;
        transition: none;
    }.price-page-menu.is-collapsible:not(.is-open) .price-menu-links {
        max-height: 0;
        margin-top: 0;
        opacity: 0;
        pointer-events: none;
    }.price-page-menu a {
        flex: none;
        width: 100%;
        min-width: 0;
        min-height: 48px;
        justify-content: flex-start;
        padding: 12px 14px;
        background: rgba(0, 104, 56, 0.06);
        border: 1px solid rgba(0, 104, 56, 0.14);
        font-size: 15px;
    }.price-page-menu.is-open .price-menu-links a.is-active {
        display: none;
    }.price-page-menu a.price-menu-back {
        justify-content: center;
        margin-top: 6px;
        background: #006838;
        border-color: #006838;
        color: #fff;
    }.price-page-menu a:hover {
        transform: none;
    }.price-panel {
        margin-top: 22px;
        padding: 22px;
        scroll-margin-top: 88px;
    }.price-panel h2 {
        font-size: 26px;
        line-height: 1.2;
    }.price-service-grid,
.price-grid-small,
.docs-grid {
        grid-template-columns: 1fr;
        gap: 14px;
    }.price-service-card,
.price-grid-small article,
.docs-grid a {
        padding: 18px;
    }.price-service-card h3,
.price-grid-small h3 {
        font-size: 20px;
    }.tariff-table-wrap {
        margin-top: 18px;
        overflow: visible;
    }.tariff-table {
        min-width: 0;
        width: 100%;
        border-collapse: separate;
        border-spacing: 0 12px;
    }.tariff-table thead {
        display: none;
    }.tariff-table,
.tariff-table tbody,
.tariff-table tr,
.tariff-table td {
        display: block;
    }.tariff-table tr {
        margin-bottom: 12px;
        padding: 16px;
        background: #f7f7f7;
        border: 1px solid rgba(0, 0, 0, 0.08);
        border-radius: 8px;
    }.tariff-table tr:last-child {
        margin-bottom: 0;
    }.tariff-table td {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 14px;
        padding: 9px 0;
        border-bottom: 1px solid rgba(0, 0, 0, 0.08);
        text-align: right;
        color: #222;
        font-size: 14px;
    }.tariff-table td::before {
        color: #111;
        font-weight: 700;
        text-align: left;
    }.tariff-table td:nth-child(2)::before {
        content: "Wi‑Fi";
    }.tariff-table td:nth-child(3)::before {
        content: "Optika do domu";
    }.tariff-table td:nth-child(4)::before {
        content: "Optika do bytu";
    }.tariff-table td:nth-child(5)::before {
        content: "Měsíčně";
    }.tariff-table td:nth-child(6)::before {
        content: "Ročně";
    }.tariff-table td:first-child {
        justify-content: flex-start;
        padding-top: 0;
        color: #111;
        font-size: 17px;
        font-weight: 800;
        text-align: left;
    }.tariff-table td:first-child::before {
        content: none;
    }.tariff-table td:last-child {
        padding-bottom: 0;
        border-bottom: none;
    }.pricing-note {
        font-size: 14px;
        line-height: 1.6;
    }.floating-back-btn {
        right: 16px;
        bottom: 16px;
        width: 44px;
        height: 44px;
        font-size: 18px;
    }
}@media (max-width: 500px) {.price-page-main {
        padding: 12px 12px 70px;
    }.price-panel {
        padding: 18px 14px;
    }.price-panel h2 {
        font-size: 24px;
    }.price-service-icon {
        width: 46px;
        height: 46px;
        font-size: 20px;
    }.price-service-icon img {
        width: 28px;
        height: 28px;
    }.tariff-table tr {
        padding: 14px;
    }.tariff-table td {
        align-items: flex-start;
        flex-direction: column;
        gap: 4px;
        text-align: left;
    }
}/* proc megashera -------------------------------------------------------------------------------------------------------------------------------------------------- */


.features-section {
    background: linear-gradient(180deg, #f7fbf5 0%, #fff 24%, #fff 100%);
    padding: 60px 0;
}.features-container {
    width: min(calc(100% - (var(--layout-gutter) * 2)), var(--layout-max));
    max-width: none;
    margin: 0 auto;
    font-family: 'Poppins', sans-serif;
    padding: 40px 0;
}.features-container {
    width: min(calc(100% - (var(--layout-gutter) * 2)), var(--layout-max));
    max-width: none;
    margin: 0 auto;
    font-family: 'Poppins', sans-serif;
    background: transparent;
    padding: 40px 0;

}.features-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 20px;
}.feature-card {
    background: #fff;
    border-radius: 20px;
    padding: 40px 30px;
    text-align: left;
    box-shadow: 0 5px 12px 1px #006838;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    /* Zarovná obsah vlevo */
}.feature-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1);
}.feature-icon {
    width: 120px;
    height: 120px;
    margin: 0 auto 30px;
    border-radius: 50%;
    overflow: hidden;
}.feature-icon img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}.feature-title {
    font-size: 22px;
    font-weight: 700;
    color: #000;
    margin: 0 0 20px 0;
    line-height: 1.3;
    min-height: 80px;
    display: flex;
    align-items: center;
    justify-content: center;
}.feature-btn {
    width: 50px;
    height: 50px;
    border-radius: 50%;
    background: #006838;
    border: none;
    color: #fff;
    font-size: 28px;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: auto;
    /* Posune dolů */
    margin-left: auto;
    /* Posune doprava */
    align-self: flex-end;
    /* Zarovná se doprava */
}.feature-btn:hover {
    background: #006838;
    ;
    transform: scale(1.1);
}.modal-overlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    z-index: 9998;
    animation: fadeIn 0.3s ease;
}.modal-overlay.active {
    display: flex;
    align-items: center;
    justify-content: center;
}.modal {
    background: #fff;
    border-radius: 20px;
    padding: 40px;
    max-width: 600px;
    width: 90%;
    position: relative;
    animation: slideUp 0.3s ease;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
}.modal-close {
    position: absolute;
    top: 16px;
    right: 16px;
    width: 38px;
    height: 38px;
    border: none;
    background: transparent;
    color: #111;
    font-size: 24px;
    line-height: 1;
    cursor: pointer;
    border-radius: 0;
    transition: 0.3s ease;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    z-index: 3;
}.modal-close:hover {
    background: transparent;
    color: #006838;
}.modal-close:focus-visible {
    outline: 3px solid rgba(0, 104, 56, 0.28);
    outline-offset: 3px;
}.modal-title {
    font-size: 24px;
    font-weight: 700;
    color: #000;
    margin: 0 0 20px 0;
    text-align: center;
    line-height: 1.4;
    font-family: 'Poppins', sans-serif;
}.modal-content {
    font-size: 16px;
    color: #333;
    line-height: 1.6;
    text-align: center;
    font-family: 'Poppins', sans-serif;

}.modal-content strong {
    color: #000;
    font-weight: 700;
}@keyframes fadeIn {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}@keyframes slideUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}@media (max-width: 768px) {.features-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 15px;
    }.feature-card:nth-child(5) {
        grid-column: 1 / -1;
        max-width: 50%;
        margin: 0 auto;
    }.feature-card {
        padding: 30px 20px;
    }.feature-icon {
        width: 100px;
        height: 100px;
        margin-bottom: 20px;
    }.feature-title {
        font-size: 18px;
        min-height: 60px;
    }.feature-btn {
        width: 45px;
        height: 45px;
        font-size: 24px;
    }.modal {
        padding: 46px 24px 28px;
        width: 95%;
        border-radius: 8px;
    }.modal-close {
        top: 10px;
        right: 10px;
        width: 34px;
        height: 34px;
        font-size: 22px;
    }.modal-title {
        font-size: 20px;
        padding: 0 24px;
    }
}@media (min-width: 769px) and (max-width: 1024px) {.features-grid {
        grid-template-columns: repeat(2, 1fr);
    }.feature-card:nth-child(5) {
        grid-column: 1 / -1;
        max-width: 50%;
        margin: 0 auto;
    }
}.features-section .title::before {
    background: #111;
}.features-section .title::after {
    content: "Přednosti";
    color: #006838;
}/* MAIN FIXES FOR RESPONSIVITY -------------------------------------------------------------------------------------------------------------------------------------------------- */


/* ========== RESPONSIVE FIXES ========== */

/* Pricing section responsive */
@media (max-width: 768px) {
    .pricing-grid {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }

    .pricing-price1 {
        font-size: 5rem !important;
        /* Menší ceny na mobilech */
    }

    .pricing-currency {
        font-size: 1.2rem !important;
    }

    .pricing-name {
        font-size: 1.5rem !important;
    }

    .pricing-card {
        padding: 2rem 1.5rem !important;
    }
}@media (max-width: 500px) {.pricing-price1 {
        font-size: 4rem !important;
    }section .title {
        font-size: 40px;
    }

}/* Features section responsive - FIXED */
@media (max-width: 768px) {
    .features-grid {
        grid-template-columns: 1fr !important;
        /* Jeden sloupec na mobilech */
        gap: 20px;
    }

    .feature-card:nth-child(5) {
        grid-column: auto !important;
        /* Zrušit spanning */
        max-width: 100% !important;
        /* Plná šířka */
        margin: 0 !important;
    }

    .feature-card {
        padding: 30px 20px;
    }

    .feature-icon {
        width: 100px;
        height: 100px;
        margin-bottom: 20px;
    }

    .feature-title {
        font-size: 18px;
        min-height: auto;
        /* Automatická výška */
    }

    .feature-btn {
        width: 45px;
        height: 45px;
        font-size: 24px;
    }

    .modal {
        padding: 46px 20px 28px;
        width: 95%;
        border-radius: 8px;
    }

    .modal-close {
        top: 10px;
        right: 10px;
        width: 34px;
        height: 34px;
        font-size: 22px;
    }

    .modal-title {
        font-size: 20px;
        padding: 0 24px;
    }

    .modal-content {
        font-size: 15px;
    }
}@media (min-width: 769px) and (max-width: 1024px) {.features-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 20px;
    }.feature-card:nth-child(5) {
        grid-column: 1 / -1;
        max-width: 50%;
        margin: 0 auto;
    }

}/* Tablet - 2 sloupce pro pricing,
třetí stejně veliký */
@media (min-width: 769px) and (max-width: 1024px) {
    .pricing-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 1.5rem;
    }

    .pricing-card:nth-child(3) {
        grid-column: 1 / 3;
        justify-self: center;
        width: calc(50% - 0.75rem);
    }

}.navbar-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
}.navbar .mobile-menu-availability-item {
    display: none;
}.nav-availability-btn {
    min-width: 190px;
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 20px;
    border: 2px solid #006838;
    border-radius: 6px;
    background: #006838;
    color: #fff;
    font: 700 15px/1 'Poppins', sans-serif;
    cursor: pointer;
    box-shadow: 0 12px 24px rgba(0, 104, 56, 0.18);
    transition: transform 0.22s ease, background 0.22s ease, color 0.22s ease, box-shadow 0.22s ease;
}.nav-availability-btn:hover,
.nav-availability-btn:focus-visible {
    transform: none;
    background: transparent;
    color: #006838;
    box-shadow: none;
}.login-toggle {
    width: 42px;
    height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 0;
    border: 2px solid #121820;
    border-radius: 6px;
    background: #121820;
    color: #fff;
    appearance: none;
    outline: none;
    box-shadow: none;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: transform 0.2s ease, background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}.login-toggle:hover {
    transform: none;
    background: transparent;
    border-color: #121820;
    color: #121820;
}.login-toggle:focus {
    outline: none;
}.login-toggle:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px rgba(0, 104, 56, 0.18);
}.login-toggle svg {
    width: 20px;
    height: 20px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}.navbar.sticky .login-toggle {
    background: #121820;
    border-color: #121820;
    color: #fff;
    box-shadow: none;
}.navbar.sticky .login-toggle:hover {
    background: transparent;
    border-color: #121820;
    color: #121820;
    transform: none;
    box-shadow: none;
}@media (hover: none), (pointer: coarse) {.login-toggle:hover {
        transform: none;
        background: #121820;
        color: #fff;
    }
}@media (max-width: 947px) {.navbar-actions {
        margin-left: auto;
        gap: 8px;
    }.nav-availability-btn {
        display: none;
    }.login-toggle {
        width: 42px;
        height: 42px;
    }
}/* Features redesign */
.features-section {
    position: relative;
    overflow: hidden;
    background: #fff;
    padding: 76px 0;
}.features-section::before {
    content: none;
}.features-section .title {
    margin-bottom: 60px;
}.features-container {
    position: relative;
    width: min(calc(100% - (var(--layout-gutter) * 2)), var(--layout-max));
    max-width: none;
    margin: 0 auto;
    background: transparent;
    padding: 30px 0 40px;
}.features-lead {
    max-width: 680px;
    margin: -18px auto 42px;
    color: #617064;
    font-size: 18px;
    line-height: 1.7;
    text-align: center;
}.features-grid {
    display: grid;
    grid-template-columns: 1.18fr repeat(2, 1fr);
    grid-auto-rows: minmax(220px, auto);
    gap: 18px;
    align-items: stretch;
    margin-top: 0;
}.feature-card {
    position: relative;
    min-height: 220px;
    padding: 24px;
    background: rgba(255, 255, 255, 0.92);
    border: 1px solid rgba(0, 104, 56, 0.16);
    border-radius: 8px;
    box-shadow: 0 16px 34px rgba(0, 104, 56, 0.10);
    overflow: hidden;
    display: flex;
    flex-flow: row wrap;
    align-items: flex-start;
    text-align: left;
    transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}.feature-card::before {
    content: "";
    position: absolute;
    right: 12px;
    bottom: 12px;
    width: 96px;
    height: 96px;
    border-radius: 999px;
    background: radial-gradient(circle, rgba(0, 104, 56, 0.10) 0%, rgba(0, 104, 56, 0.05) 42%, transparent 72%);
    pointer-events: none;
}.feature-card:hover {
    transform: translateY(-6px);
    border-color: rgba(0, 104, 56, 0.34);
    box-shadow: 0 22px 42px rgba(0, 104, 56, 0.14);
}.feature-card--primary {
    grid-row: span 2;
    min-height: 458px;
    padding: 30px;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.88) 0%, rgba(255, 255, 255, 0.52) 48%, rgba(255, 255, 255, 0.20) 100%),
        url("images/internetbg.jpeg") center bottom / cover no-repeat;
    border-color: rgba(0, 104, 56, 0.18);
    color: #121820;
}.feature-card--primary::before {
    content: none;
}.feature-kicker,
.feature-icon,
.feature-title,
.feature-text,
.feature-btn {
    position: relative;
    z-index: 1;
}.feature-kicker {
    display: none;
    align-items: center;
    justify-content: center;
    width: 72px;
    height: 72px;
    min-height: 72px;
    padding: 0 8px;
    margin: 0 0 20px 18px;
    border-radius: 8px;
    background: rgba(0, 104, 56, 0.09);
    color: #006838;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.4px;
    line-height: 1.2;
    text-align: center;
    text-transform: uppercase;
}.feature-card--primary .feature-kicker {
    width: 90px;
    height: 90px;
    min-height: 90px;
    background: rgba(0, 104, 56, 0.10);
    color: #006838;
}.feature-icon {
    width: 72px;
    height: 72px;
    margin: 0 0 20px;
    padding: 12px;
    border-radius: 8px;
    background: rgba(0, 104, 56, 0.08);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: visible;
    order: 1;
}.feature-kicker {
    order: 2;
}.feature-card--primary .feature-icon {
    width: 90px;
    height: 90px;
    background: rgba(0, 104, 56, 0.10);
}.feature-icon img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}.feature-card--primary .feature-icon img {
    filter: brightness(0) saturate(100%) invert(24%) sepia(88%) saturate(1022%) hue-rotate(125deg) brightness(91%) contrast(101%);
}.feature-title {
    width: 100%;
    min-height: auto;
    margin: 0 0 10px;
    color: #101820;
    font-size: 23px;
    font-weight: 700;
    line-height: 1.22;
    display: block;
    order: 3;
}.feature-card--primary .feature-title {
    color: #101820;
    font-size: 32px;
    max-width: 330px;
}.feature-text {
    width: 100%;
    margin: 0 0 22px;
    color: #617064;
    font-size: 15px;
    line-height: 1.65;
    order: 4;
}.feature-card--primary .feature-text {
    color: #2f3842;
    font-size: 17px;
    max-width: 340px;
}.feature-btn {
    order: 5;
    width: 46px;
    height: 46px;
    margin: auto 0 0 auto;
    padding: 0;
    border-radius: 8px;
    background: #006838;
    border: 2px solid #006838;
    color: #fff;
    font-family: Arial, sans-serif;
    font-size: 0;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
    position: relative;
    display: block;
    transition: transform 0.22s ease, background 0.22s ease, color 0.22s ease;
}.feature-btn::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    color: currentColor;
    width: 14px;
    height: 3px;
    border-radius: 999px;
    background: currentColor;
    transform: translate(-50%, -50%);
}.feature-btn::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: 3px;
    height: 14px;
    border-radius: 999px;
    background: currentColor;
    transform: translate(-50%, -50%);
}.feature-card--primary .feature-btn {
    background: #006838;
    color: #fff;
}.feature-btn:hover,
.feature-btn:focus-visible {
    background: transparent;
    color: #006838;
    transform: translateY(-2px);
}.feature-card--primary .feature-btn:hover,
.feature-card--primary .feature-btn:focus-visible {
    background: transparent;
    color: #006838;
}@media (max-width: 1024px) {.features-grid {
        grid-template-columns: repeat(2, 1fr) !important;
    }.feature-card--primary {
        grid-column: 1 / -1;
        grid-row: auto;
        min-height: 330px;
    }.feature-card {
        flex-direction: column;
    }.feature-card:nth-child(5) {
        grid-column: auto !important;
        max-width: none !important;
        margin: 0 !important;
    }
}@media (max-width: 690px) {.features-section {
        padding: 56px 0;
    }.features-lead {
        margin: -10px auto 30px;
        font-size: 16px;
        text-align: center;
    }.features-grid {
        grid-template-columns: 1fr !important;
        gap: 14px;
    }.feature-card,
.feature-card--primary {
        min-height: auto;
        padding: 24px;
    }.feature-card--primary .feature-title {
        font-size: 28px;
    }.feature-title {
        font-size: 21px;
    }
}@media (min-width: 691px) and (max-width: 1024px) {
    .feature-card--primary {
        flex-direction: row;
        align-items: flex-start;
        min-height: 250px;
    }

    .feature-card--primary .feature-icon {
        flex: 0 0 90px;
        margin: 0 18px 24px 0;
    }

    .feature-card--primary .feature-title {
        width: auto;
        max-width: none;
        flex: 1 1 auto;
        margin: 0 0 24px;
        white-space: nowrap;
        align-self: center;
    }

    .feature-card--primary .feature-text,
    .feature-card--primary .feature-btn {
        flex-basis: 100%;
    }

    .feature-card--primary .feature-btn {
        flex-basis: auto;
        margin: 0;
        position: absolute;
        right: 24px;
        bottom: 24px;
    }

    .feature-card--primary .feature-text {
        width: 100%;
        max-width: 640px;
        padding-right: 70px;
    }
}@media (min-width: 1025px) and (max-width: 1180px) {
    .feature-card--primary {
        flex-direction: row;
        align-items: center;
        min-height: 270px;
    }

    .feature-card--primary .feature-icon {
        flex: 0 0 90px;
        margin: 0 18px 24px 0;
    }

    .feature-card--primary .feature-title {
        width: auto;
        flex: 1 1 auto;
        max-width: none;
        margin: 0 0 24px;
        white-space: nowrap;
    }

    .feature-card--primary .feature-text {
        width: 100%;
        max-width: 640px;
        padding-right: 76px;
    }

    .feature-card--primary .feature-btn {
        margin: 0;
        position: absolute;
        right: 30px;
        bottom: 30px;
    }
}@media (min-width: 1024px) and (max-width: 1366px) and (orientation: landscape) {
    .feature-card--primary .feature-title {
        min-width: 0;
        max-width: 100%;
        white-space: normal;
        overflow-wrap: anywhere;
        font-size: clamp(28px, 2.4vw, 32px);
    }
}@media (min-width: 948px) {.navbar {
        border-bottom: 1px solid transparent;
        transition:
            transform 0.3s ease,
            background 0.3s ease,
            padding 0.3s ease,
            box-shadow 0.3s ease,
            border-color 0.3s ease,
            backdrop-filter 0.3s ease;
    }.navbar.sticky {
        padding: 0;
        background: rgba(247, 251, 245, 0.86);
        border-bottom-color: rgba(0, 104, 56, 0.16);
        box-shadow: 0 14px 36px rgba(18, 24, 32, 0.10);
        backdrop-filter: blur(18px);
        -webkit-backdrop-filter: blur(18px);
    }.navbar.sticky .logo a {
        color: #121820;
    }.navbar.sticky .logo a span {
        color: #006838;
    }.navbar.sticky .menu li a {
        color: #121820;
    }.navbar.sticky .menu a::after {
        content: none;
        display: none;
    }.navbar.sticky .menu li a:hover,
.navbar.sticky .menu li a.nav-active {
        color: #006838;
    }.navbar.sticky .menu li a.nav-active::after {
        width: 0;
    }.navbar.sticky .login-toggle {
        background: #121820;
        border-color: #121820;
        color: #fff;
        box-shadow: none;
    }.navbar.sticky .login-toggle:hover,
.navbar.sticky .login-toggle:focus-visible {
        background: transparent;
        border-color: #121820;
        color: #121820;
        transform: none;
        box-shadow: none;
    }
}@media (max-width: 947px) {.navbar {
        border-bottom: 1px solid transparent;
        transition:
            transform 0.3s ease,
            background 0.3s ease,
            border-color 0.3s ease,
            box-shadow 0.3s ease,
            backdrop-filter 0.3s ease;
    }.navbar.sticky {
        background: rgba(247, 251, 245, 0.90);
        border-bottom-color: rgba(0, 104, 56, 0.16);
        box-shadow: 0 12px 30px rgba(18, 24, 32, 0.10);
        backdrop-filter: blur(18px);
        -webkit-backdrop-filter: blur(18px);
    }.navbar.sticky .logo a {
        color: #121820;
    }.navbar.sticky .logo a span {
        color: #006838;
    }.navbar.sticky .max-width > .menu-btn {
        color: #121820;
    }.navbar.sticky .max-width > .menu-btn.active,
.navbar.sticky .max-width > .menu-btn i.active:before {
        color: #fff;
    }.navbar.menu-open {
        background: rgba(247, 251, 245, 0.94);
        border-bottom-color: rgba(0, 104, 56, 0.16);
        box-shadow: 0 12px 30px rgba(18, 24, 32, 0.10);
        backdrop-filter: blur(18px);
        -webkit-backdrop-filter: blur(18px);
    }.navbar.menu-open .max-width,
.navbar.menu-open .logo,
.navbar.menu-open .navbar-actions {
        position: relative;
        z-index: 1002;
    }.navbar.menu-open .logo a {
        color: #121820;
    }.navbar.menu-open .logo a span {
        color: #006838;
    }.navbar.menu-open .max-width > .menu-btn,
.navbar.menu-open .max-width > .menu-btn.active,
.navbar.menu-open .max-width > .menu-btn i.active:before {
        color: #121820;
    }.navbar .menu {
        background:
            radial-gradient(circle at 50% 0%, rgba(0, 104, 56, 0.10), transparent 34%),
            linear-gradient(180deg, #f7fbf5 0%, #fff 100%);
        padding-top: calc(var(--mobile-menu-bar-height) + 14px);
        padding-bottom: 12px;
        min-height: 0;
        height: auto;
        gap: 6px;
        align-items: flex-start;
        border-bottom: 1px solid rgba(0, 104, 56, 0.14);
        box-shadow: 0 22px 34px rgba(18, 24, 32, 0.18);
        overflow: visible;
        backdrop-filter: blur(18px);
        -webkit-backdrop-filter: blur(18px);
    }.navbar .menu.active {
        left: 0;
    }.navbar .menu.active::before {
        content: '';
        background: rgba(247, 251, 245, 0.94);
        border-bottom: 1px solid rgba(0, 104, 56, 0.16);
        box-shadow: 0 12px 30px rgba(18, 24, 32, 0.10);
        backdrop-filter: blur(18px);
        -webkit-backdrop-filter: blur(18px);
    }.navbar .menu li {
        width: 100%;
        max-width: none;
    }.navbar .menu li a {
        justify-content: flex-start;
        position: relative;
        min-height: clamp(40px, 6vw, 54px);
        padding: 4px 0;
        font-size: clamp(25px, 6.3vw, 34px);
        text-align: left;
        text-transform: none;
        color: #121820;
        background: transparent;
        border: 0;
        border-radius: 0;
        box-shadow: none;
    }.navbar .menu li a:hover,
.navbar .menu li a:active,
.navbar .menu li a:focus-visible,
.navbar .menu li a.nav-active {
        color: #006838;
        background: transparent;
        outline: none;
    }.navbar .menu li a::after {
        display: block;
        bottom: 6px;
        left: 0;
        width: 0;
        height: 3px;
        border-radius: 999px;
        background: #006838;
        transform: none;
    }.navbar .menu li a:hover::after,
.navbar .menu li a.nav-active::after {
        width: 32px;
    }.navbar .menu .mobile-menu-availability-item {
        display: block;
        width: 100%;
        max-width: none;
        margin-top: 0;
    }.mobile-menu-availability-btn {
        width: 100%;
        min-height: clamp(40px, 6vw, 54px);
        display: inline-flex;
        align-items: center;
        justify-content: flex-start;
        position: relative;
        padding: 4px 0;
        border: 0;
        border-radius: 0;
        background: transparent;
        color: #121820;
        font: 700 clamp(25px, 6.3vw, 34px)/1.2 'Poppins', sans-serif;
        text-align: left;
        text-transform: none;
        cursor: pointer;
        box-shadow: none;
        -webkit-tap-highlight-color: rgba(0, 104, 56, 0.18);
    }.navbar .menu li a {
        -webkit-tap-highlight-color: rgba(0, 104, 56, 0.18);
    }.mobile-menu-availability-btn:hover,
    .mobile-menu-availability-btn:active,
    .mobile-menu-availability-btn:focus-visible {
        color: #006838;
        outline: none;
    }.mobile-menu-availability-btn::after {
        content: "";
        position: absolute;
        left: 0;
        bottom: 6px;
        width: 0;
        height: 3px;
        border-radius: 999px;
        background: #006838;
        transform: none;
        transition: width 0.25s ease;
    }.mobile-menu-availability-btn:hover::after,
    .mobile-menu-availability-btn:focus-visible::after {
        width: 32px;
    }body.mobile-menu-open .floating-callback-widget {
        opacity: 0;
        pointer-events: none;
        visibility: hidden;
    }
}/* ========== iPAD PRO FIX (948px - 1100px) ========== */
@media (min-width: 948px) and (max-width: 1100px) {

    /* Menší font v menu */
    .menu {
        gap: 26px;
    }

    .navbar .menu li a {
        font-size: 1.06rem !important;
        margin-left: 0 !important;
        transform: none;
    }

    
    .navbar-actions {
        gap: 8px;
    }

    .login-toggle {
        width: 38px !important;
        height: 38px !important;
    }

    /* Logo menší */
    .navbar .logo a {
        font-size: 28px !important;
    }

    /* Max-width pro navbar */
    .navbar .max-width {
        width: min(calc(100% - (var(--layout-gutter) * 2)), var(--layout-max)) !important;
        padding: 0 !important;
    }
}/* ==================== FOOTER ACCORDION (MOBILE) ==================== */

/* Desktop - normální zobrazení */
@media (min-width: 769px) {
    .footer-accordion-header {
        display: none;
        /* Skryj button na desktopu */
    }

    .footer-accordion-content {
        display: block !important;
        /* Vždy zobrazeno */
    }

    .footer-column h3 {
        display: block;
        /* Zobraz h3 na desktopu */
    }
}/* Mobile - accordion */
@media (max-width: 768px) {
    .footer-column h3 {
        display: none;
        /* Skryj h3 v mobile */
    }

    .footer-accordion-header {
        width: 100%;
        background: transparent;
        border: none;
        border-bottom: 1px solid rgba(255, 255, 255, 0.1);
        color: #fff;
        padding: 20px 0;
        display: flex;
        justify-content: space-between;
        align-items: center;
        cursor: pointer;
        text-align: left;
        font-family: 'Poppins', sans-serif;
    }

    .footer-accordion-header h3 {
        display: block;
        margin: 0;
        font-size: 18px;
        font-weight: 600;
        text-align: center;
        flex: 1;
    }

    .footer-accordion-header i {
        font-size: 14px;
        transition: transform 0.3s ease;
        flex-shrink: 0;
    }

    .footer-accordion-item.active .footer-accordion-header i {
        transform: rotate(180deg);
    }

    .footer-accordion-content {
        max-height: 0;
        overflow: hidden;
        transition: max-height 0.3s ease;
        text-align: center;
    }

    .footer-accordion-item.active .footer-accordion-content {
        max-height: 500px;
        padding: 10px 0 5px 0;

    }
}/* ==================== COOKIE BANNER ==================== */

/* Cookie Banner - Pravý dolní roh */
.cookie-overlay {
    position: fixed;
    bottom: 20px;
    right: 20px;
    width: auto;
    height: auto;
    background: transparent;
    backdrop-filter: none; /* ✅ Odstraněn blur */
    display: block;
    z-index: 99999;
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s ease;
}.cookie-overlay.show {
    opacity: 1;
    visibility: visible;
}.cookie-overlay.show ~ .floating-callback-widget .floating-call-btn,
.cookie-overlay.show ~ .floating-callback-widget .callback-panel {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}/* Cookie Banner */
.cookie-banner {
    background: #fff;
    border-radius: 20px;
    max-width: 420px;
    width: 420px;
    padding: 30px;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.2);
    position: relative;
    animation: slideInRight 0.4s ease;
}@keyframes slideInRight {
    from {
        transform: translateX(100px);
        opacity: 0;
    }
    to {
        transform: translateX(0);
        opacity: 1;
    }
}/* Cookie Icon */
.cookie-icon {
    width: 60px;
    height: 60px;
    background: linear-gradient(135deg, #006838 0%, #00914a 100%);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 20px;
    box-shadow: 0 5px 15px rgba(0, 104, 56, 0.3);
}.cookie-icon i {
    font-size: 30px;
    color: #fff;
}/* Heading */
.cookie-banner h2 {
    font-size: 20px;
    font-weight: 700;
    color: #111;
    text-align: center;
    margin-bottom: 12px;
    font-family: 'Poppins', sans-serif;
}/* Text */
.cookie-banner p {
    font-size: 14px;
    color: #666;
    line-height: 1.6;
    text-align: center;
    margin-bottom: 8px;
    font-family: 'Poppins', sans-serif;
}/* Link */
.cookie-banner a {
    color: #006838;
    text-decoration: none;
    font-weight: 600;
    transition: color 0.3s ease;
}.cookie-banner a:hover {
    color: #00914a;
    text-decoration: underline;
}/* Buttons Container */
.cookie-buttons {
    display: flex;
    gap: 10px;
    margin-top: 20px;
}.cookie-btn {
    flex: 1;
    padding: 12px 16px;
    border: none;
    border-radius: 10px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s ease;
    font-family: 'Poppins', sans-serif;
}/* Přijmout vše button */
.cookie-btn.accept {
    background: linear-gradient(135deg, #006838 0%, #00914a 100%);
    color: #fff;
    box-shadow: 0 4px 12px rgba(0, 104, 56, 0.3);
}.cookie-btn.accept:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(0, 104, 56, 0.4);
}/* Odmítnout button */
.cookie-btn.decline {
    background: #f0f0f0;
    color: #666;
}.cookie-btn.decline:hover {
    background: #e0e0e0;
    color: #111;
}/* Mobile responsive */
@media (max-width: 768px) {
    .cookie-overlay {
        bottom: 10px;
        right: 10px;
        left: 10px;
    }

    .cookie-banner {
        width: 100%;
        max-width: 100%;
        padding: 25px 20px;
    }

    .cookie-banner h2 {
        font-size: 18px;
    }

    .cookie-banner p {
        font-size: 13px;
    }

    .cookie-buttons {
        flex-direction: column;
    }

    .cookie-icon {
        width: 50px;
        height: 50px;
    }

    .cookie-icon i {
        font-size: 25px;
    }
}/* Loading spinner animation */

@media (max-width: 690px) {
    section .title,
    .home-title,
    .about .about-content .right .text,
    .services .title,
    .pricing-section .title,
    .availability-copy h2,
    .reviews-head h2,
    .features-section .title,
    .contact .title,
    .price-panel h2,
    .price-services-panel h2 {
        display: block;
        max-width: 340px;
        margin-left: auto;
        margin-right: auto;
        text-align: center;
        line-height: 1.12;
        letter-spacing: 0;
    }

    section .title,
    .services .title,
    .pricing-section .title,
    .features-section .title,
    .contact .title,
    .price-panel h2,
    .price-services-panel h2 {
        font-size: clamp(32px, 9vw, 38px);
    }

    .home-title,
    .about .about-content .right .text,
    .availability-copy h2,
    .reviews-head h2 {
        font-size: clamp(32px, 9vw, 36px);
    }

    .home-subtitle,
    .about .about-content .right p,
    .more-pricing p,
    .availability-copy > p,
    .reviews-head p,
    .features-lead,
    .contact .contact-content .left p {
        max-width: 340px;
        margin-left: auto;
        margin-right: auto;
    }
}

.contact .right form .button-area {
    margin-top: 0 !important;
}

.contact-captcha-field {
    margin-bottom: 15px !important;
}

@keyframes spin {
    to { transform: rotate(360deg); }
}.fa-spinner.fa-spin {
    animation: spin 1s linear infinite;
}

/* Final mobile polish */
@media (max-width: 768px) {
    :root {
        --layout-gutter: 24px;
        --navbar-height: 74px;
    }

    html,
    body {
        width: 100%;
        max-width: 100%;
        overflow-x: hidden;
    }

    img,
    canvas,
    video {
        max-width: 100%;
        height: auto;
    }

    section,
    .pricing-section,
    .availability-steps,
    .features-section,
    .reviews-section,
    .about,
    .contact {
        padding-top: clamp(56px, 9vw, 76px);
        padding-bottom: clamp(56px, 9vw, 76px);
    }

    .max-width,
    .pricing-container,
    .availability-steps-inner,
    .features-container,
    .footer-container {
        width: min(calc(100% - 48px), var(--layout-max));
        max-width: var(--layout-max);
        margin-left: auto;
        margin-right: auto;
        padding-left: 0;
        padding-right: 0;
    }

    .navbar .max-width {
        width: 100%;
        max-width: none;
        padding-left: 24px;
        padding-right: 24px;
    }

    section .title,
    .services .title,
    .pricing-section .title,
    .features-section .title,
    .contact .title {
        max-width: 680px;
        margin-bottom: 34px;
        padding-bottom: 0;
        font-size: clamp(34px, 7vw, 42px);
        font-weight: 700;
        line-height: 1.12;
    }

    .about .title,
    .pricing-section .title,
    .contact .title {
        font-weight: 700;
    }

    .home {
        min-height: auto;
        padding: calc(var(--navbar-height) + 42px) 0 172px;
        --home-bg-position: right center;
    }

    .home .max-width {
        width: min(calc(100% - 48px), var(--layout-max));
        min-height: 0;
    }

    .home .home-content {
        max-width: 620px;
    }

    .home-badge {
        margin-bottom: 22px;
        white-space: normal;
        line-height: 1.35;
    }

    .home-title {
        font-size: clamp(40px, 8vw, 58px);
        line-height: 1.04;
    }

    .home-subtitle {
        max-width: 560px;
        color: #121820;
        font-size: clamp(16px, 2.9vw, 19px);
        line-height: 1.58;
        text-align: center;
    }

    .home-actions {
        width: min(100%, 520px);
        margin-left: auto;
        margin-right: auto;
        gap: 12px;
    }

    .home .home-content .home-actions .home-primary-btn,
    .home .home-content .home-actions .home-secondary-btn,
    .pricing-btn,
    .more-pricing-link,
    .availability-steps-cta,
    .right form .button-area button,
    .price-service-cta,
    .price-page-menu a,
    .price-menu-toggle {
        min-height: 52px;
        line-height: 1.2;
    }

    .home-stats {
        width: min(calc(100% - 48px), 620px);
        bottom: 20px;
        padding: 10px;
    }

    .about .about-content,
    .availability-steps-inner,
    .contact .contact-content {
        gap: 32px;
    }

    .about .about-content .left {
        margin-bottom: 0;
    }

    .about .about-content .left img {
        height: min(58vw, 340px);
        border-radius: 8px;
    }

    .about .about-content .right,
    .availability-copy,
    .contact .contact-content .left,
    .contact .contact-content .right {
        max-width: 620px;
        margin-left: auto;
        margin-right: auto;
    }

    .about .about-content .right p,
    .more-pricing p,
    .availability-copy > p,
    .reviews-head p,
    .features-lead,
    .contact .contact-content .left p,
    .feature-text,
    .review-card p,
    .price-service-card p,
    .price-service-card li,
    .price-grid-small p,
    .pricing-note {
        max-width: 620px;
        font-size: clamp(15px, 2.3vw, 17px);
        line-height: 1.58;
        text-align: left;
        text-align-last: auto;
    }

    .about-kicker,
    .about .about-content .right .text,
    .contact .contact-content .text {
        text-align: left;
    }

    .about-kicker,
    .about .about-content .right .text,
    .availability-steps .section-kicker,
    .reviews-head .section-kicker {
        justify-content: center;
        text-align: center;
    }

    .about-kicker,
    .availability-steps .section-kicker,
    .reviews-head .section-kicker {
        display: flex;
        width: fit-content;
        margin-left: auto;
        margin-right: auto;
    }

    .about .about-content .right .text,
    .availability-copy h2,
    .reviews-head h2,
    .feature-card--primary .feature-title {
        font-size: clamp(30px, 6.3vw, 38px);
        line-height: 1.15;
    }

    .pricing-grid,
    .features-grid,
    .services .serv-content,
    .price-service-grid,
    .price-grid-small,
    .docs-grid {
        grid-template-columns: 1fr !important;
        gap: 18px;
    }

    .pricing-card:nth-child(3),
    .feature-card:nth-child(5) {
        grid-column: auto;
        width: 100%;
        max-width: none !important;
        margin: 0;
    }

    .pricing-card,
    .feature-card,
    .feature-card--primary,
    .price-panel,
    .price-service-card,
    .price-grid-small article,
    .docs-grid a,
    .review-card {
        border-radius: 8px;
        padding: 24px;
        min-width: 0;
    }

    .pricing-card {
        padding-top: 38px !important;
    }

    .pricing-price1 {
        font-size: clamp(56px, 14vw, 76px) !important;
    }

    .pricing-features {
        margin: 28px 0;
    }

    .pricing-features li {
        align-items: flex-start;
        gap: 12px;
        padding: 13px 0;
        line-height: 1.45;
    }

    .more-pricing {
        align-items: stretch;
        gap: 18px;
        text-align: left;
    }

    .more-pricing-link,
    .reviews-google-link,
    .availability-steps-cta,
    .right form .button-area button {
        width: 100% !important;
        justify-content: center;
        text-align: center;
    }

    .availability-copy {
        text-align: left;
    }

    .availability-copy h2,
    .reviews-head h2 {
        text-align: center;
    }

    .reviews-head p {
        text-align: center;
    }

    .availability-steps .section-kicker {
        max-width: 100%;
        line-height: 1.25;
        white-space: normal;
    }

    .availability-timeline {
        margin-top: 30px;
    }

    .availability-timeline li {
        grid-template-columns: 52px minmax(0, 1fr);
        gap: 8px;
    }

    .availability-timeline p {
        line-height: 1.58;
    }

    .availability-visual {
        width: 100%;
        min-height: auto;
    }

    .availability-speed-card {
        width: min(100%, 380px);
        min-height: auto;
        margin-left: auto;
        margin-right: auto;
    }

    .speedometer {
        min-height: auto;
    }

    .service-tile-link {
        min-height: 260px;
        padding: 24px;
    }

    .service-tile h3 {
        max-width: 100%;
        font-size: clamp(24px, 5.7vw, 30px);
    }

    .service-tile-content {
        padding-right: 0;
        padding-bottom: 58px;
    }

    .service-tile p {
        max-width: 100%;
        color: #121820;
        font-size: 15px;
        line-height: 1.55;
    }

    .reviews-head {
        align-items: center;
        text-align: center;
    }

    .reviews-google-link {
        max-width: 360px;
    }

    .reviews-grid {
        display: grid;
        grid-template-columns: 1fr;
        width: 100%;
        margin-right: 0;
        padding-right: 0;
        overflow: visible;
        scroll-snap-type: none;
    }

    .reviews-controls {
        display: none;
    }

    .review-card {
        width: 100%;
        flex: none;
    }

    .review-card {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr);
        column-gap: 14px;
        align-items: center;
    }

    .review-meta {
        display: grid;
        grid-template-columns: 46px minmax(0, 1fr);
        grid-column: 1 / -1;
        align-items: center;
        column-gap: 14px;
    }

    .review-avatar {
        grid-column: 1;
        grid-row: 1;
    }

    .review-meta > div:last-child {
        grid-column: 2;
        grid-row: 1;
        min-width: 0;
    }

    .review-stars {
        grid-column: 2;
        grid-row: 1;
        justify-self: end;
        margin: 0;
        padding-left: 12px;
    }

    .review-card p {
        grid-column: 1 / -1;
        margin-top: 18px;
    }

    .feature-card,
    .feature-card--primary {
        min-height: auto;
        padding: 24px;
    }

    .feature-card--primary {
        background: rgba(255, 255, 255, 0.92);
        border-color: rgba(0, 104, 56, 0.16);
    }

    .feature-card--primary::before {
        content: none;
        background:
            linear-gradient(135deg, rgba(0, 104, 56, 0.08), transparent 42%),
            linear-gradient(180deg, transparent, rgba(0, 104, 56, 0.045));
    }

    .feature-card--primary .feature-icon {
        background: rgba(0, 104, 56, 0.08);
    }

    .feature-icon,
    .feature-card--primary .feature-icon {
        width: 72px;
        height: 72px;
        margin-bottom: 18px;
    }

    .feature-kicker,
    .feature-card--primary .feature-kicker {
        width: 72px;
        height: 72px;
        min-height: 72px;
        margin: 0 0 18px 14px;
    }

    .feature-title {
        font-size: clamp(20px, 4.5vw, 24px);
        line-height: 1.25;
    }

    .feature-card--primary .feature-title {
        max-width: none;
        font-size: clamp(20px, 4.5vw, 24px);
        line-height: 1.25;
    }

    .feature-card--primary .feature-text {
        max-width: none;
        color: #617064;
        font-size: clamp(15px, 2.3vw, 17px);
        line-height: 1.58;
    }

    .contact .contact-content .column {
        width: 100%;
        margin-bottom: 0;
    }

    .contact .contact-content .left .icons {
        max-width: 620px;
        gap: 18px;
        margin-top: 24px;
    }

    .contact .contact-content .row {
        grid-template-columns: 42px minmax(0, 1fr);
        justify-items: start;
        align-items: start;
        gap: 14px;
        text-align: left;
    }

    .contact .contact-content .row i {
        width: 42px;
        height: 42px;
        font-size: 20px;
    }

    .contact .contact-content .row .info {
        min-width: 0;
    }

    .contact .right form .fields {
        flex-direction: column;
        gap: 0;
        margin: 0;
    }

    .contact .right form .field,
    .contact .right form .fields .field,
    .contact .right form .textarea {
        height: auto;
        min-height: 52px;
        margin: 0 0 14px;
    }

    .contact .right form .textarea {
        margin-bottom: 0;
    }

    .contact .right form .availability-fields .field:first-child {
        margin: 0 0 14px;
    }

    .contact .right form .availability-fields .field + .field {
        margin-top: 0;
    }

    .contact .right form .field input,
    .contact .right form .field select,
    .contact .right form .textarea textarea,
    .custom-select-trigger {
        min-height: 52px;
        padding-left: 16px;
        padding-right: 16px;
        font-size: 16px;
        line-height: 1.35;
    }

    .contact .right form .textarea textarea {
        min-height: 126px;
        padding-top: 14px;
    }

    .contact .right form .button-area {
        margin-top: 14px;
    }

    .custom-select-options {
        max-height: min(320px, 45vh);
        overflow-y: auto;
    }

    @media (min-width: 691px) {
        .contact .contact-content {
            display: grid;
            grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
            gap: 40px;
            align-items: start;
        }

        .contact .contact-content .column {
            width: 100%;
        }

        .contact .contact-content .left,
        .contact .contact-content .right {
            max-width: none;
            margin: 0;
        }

        .contact .contact-content .left,
        .contact .contact-content .text,
        .contact .contact-content .left p {
            text-align: left;
        }

        .contact .contact-content .left .icons {
            max-width: none;
            margin-left: 0;
            margin-right: 0;
        }

        .contact .right form .fields {
            flex-direction: row;
            gap: 10px;
        }

        .contact .right form .fields .field {
            margin-bottom: 14px;
        }

        .contact .right form .name,
        .contact .right form .email,
        .contact .right form .availability-fields .field:first-child {
            margin-right: 0;
        }
    }

    .price-page-main {
        width: min(calc(100% - 48px), var(--layout-max));
        padding-left: 0;
        padding-right: 0;
    }

    .price-page-menu {
        margin-left: 0;
        margin-right: 0;
    }

    .tariff-table tr {
        overflow-wrap: anywhere;
    }

    .tariff-table td {
        line-height: 1.45;
    }

    .modern-footer {
        padding: 10px 0 30px;
    }

    .footer-container {
        display: block;
        text-align: left;
    }

    .footer-accordion-header h3,
    .footer-accordion-content,
    .footer-accordion-content li,
    .footer-accordion-content a,
    .footer-accordion-content span {
        text-align: center;
    }

    .floating-callback-widget {
        display: none;
    }

    .bottom-footer {
        min-height: 66px;
        padding: 18px 19px;
    }
}

@media (max-width: 480px) {
    :root {
        --layout-gutter: 20px;
        --navbar-height: 70px;
    }

    .max-width,
    .pricing-container,
    .availability-steps-inner,
    .features-container,
    .footer-container,
    .price-page-main,
    .home .max-width {
        width: min(calc(100% - 40px), var(--layout-max));
    }

    .navbar {
        --mobile-menu-bar-height: 70px;
        --mobile-menu-side-padding: 20px;
        --mobile-menu-logo-size: 28px;
        --mobile-menu-button-size: 42px;
    }

    .navbar .max-width {
        width: 100%;
        padding-left: 20px;
        padding-right: 20px;
    }

    .navbar .logo a {
        font-size: 27px;
    }

    .login-toggle,
    .navbar.sticky .login-toggle {
        background: transparent;
        border-color: transparent;
        color: #121820;
        box-shadow: none;
    }

    .login-toggle:hover,
    .navbar.sticky .login-toggle:hover {
        background: transparent;
        border-color: transparent;
        color: #121820;
    }

    .login-toggle svg {
        width: 20px;
        height: 20px;
        stroke-width: 2.35;
    }

    section,
    .pricing-section,
    .availability-steps,
    .features-section,
    .reviews-section,
    .about,
    .contact {
        padding-top: 54px;
        padding-bottom: 54px;
    }

    section .title,
    .services .title,
    .pricing-section .title,
    .features-section .title,
    .contact .title,
    .price-panel h2,
    .price-services-panel h2 {
        max-width: 100%;
        margin-bottom: 28px;
        font-size: clamp(30px, 9vw, 36px);
    }

    .home {
        padding-top: calc(var(--navbar-height) + 32px);
        padding-bottom: 198px;
        --home-bg-image: url("images/landpageBG_mobil.jpeg");
        --home-bg-side-overlay: linear-gradient(180deg, rgba(255, 255, 255, 0.68) 0%, rgba(255, 255, 255, 0.58) 54%, rgba(255, 255, 255, 0.78) 100%);
        --home-bg-position: center top;
    }

    .home-title {
        font-size: clamp(34px, 10vw, 42px);
    }

    .home-subtitle {
        max-width: 100%;
        margin-top: 18px;
        font-size: 16px;
        line-height: 1.55;
    }

    .home-actions {
        flex-direction: column;
        flex-wrap: nowrap;
        gap: 10px;
        margin-top: 28px;
    }

    .home .home-content .home-actions .home-primary-btn,
    .home .home-content .home-actions .home-secondary-btn {
        width: 100%;
        min-height: 52px;
        flex: none;
    }

    .home-stats {
        width: calc(100% - 40px);
        bottom: 18px;
        grid-template-columns: 1fr 1fr;
    }

    .home-stat {
        min-height: 62px;
        align-items: center;
        justify-content: center;
        text-align: center;
    }

    .home-stat strong,
    .home-stat:last-child strong {
        width: 100%;
        font-size: clamp(19px, 6vw, 24px);
        text-align: center;
    }

    .home-stat > span {
        width: 100%;
        font-size: 9px;
        line-height: 1.25;
        text-align: center;
    }

    .about .about-content .left img {
        height: min(68vw, 280px);
    }

    .about .about-content .right .text,
    .availability-copy h2,
    .reviews-head h2 {
        font-size: clamp(28px, 8vw, 34px);
    }

    .feature-card--primary .feature-title {
        max-width: none;
        font-size: clamp(20px, 4.5vw, 24px);
        line-height: 1.25;
    }

    .feature-card--primary .feature-text {
        max-width: none;
        font-size: 15px;
        line-height: 1.58;
    }

    .pricing-card,
    .feature-card,
    .feature-card--primary,
    .price-service-card,
    .price-grid-small article,
    .docs-grid a,
    .review-card {
        padding: 20px;
    }

    .price-panel {
        padding: 20px;
    }

    .pricing-badge {
        top: 14px;
        right: 14px;
        padding: 7px 10px;
        font-size: 12px;
    }

    .pricing-name {
        font-size: 1.35rem !important;
    }

    .pricing-price1 {
        font-size: clamp(48px, 17vw, 64px) !important;
    }

    .more-pricing {
        padding: 20px;
    }

    .availability-timeline li {
        grid-template-columns: 44px minmax(0, 1fr);
        gap: 8px;
    }

    .availability-step-number {
        width: 38px;
        height: 38px;
        font-size: 14px;
    }

    .availability-timeline li:not(:last-child)::after {
        left: 18px;
    }

    .availability-speed-card {
        width: 100%;
        padding: 8px;
    }

    .service-tile-link {
        min-height: 248px;
        padding: 20px;
    }

    .service-tile-arrow {
        right: 14px;
        bottom: 14px;
        width: 42px;
        height: 42px;
    }

    .service-tile h3 {
        max-width: 100%;
    }

    .service-tile-content {
        padding-right: 0;
        padding-bottom: 54px;
    }

    .contact .contact-content .row {
        grid-template-columns: 38px minmax(0, 1fr);
        gap: 12px;
    }

    .contact .contact-content .row i {
        width: 38px;
        height: 38px;
    }

    .cookie-overlay {
        left: 20px;
        right: 20px;
        bottom: 20px;
    }

    .callback-panel {
        right: 20px;
        width: calc(100vw - 40px);
        padding: 20px;
    }

    .floating-call-btn,
    .floating-back-btn {
        right: 20px;
        bottom: 20px;
    }
}

@media (min-width: 769px) and (max-width: 1180px) and (orientation: portrait) {
    .contact .contact-content {
        display: grid;
        grid-template-columns: minmax(0, 680px);
        justify-content: center;
        gap: 34px;
        align-items: start;
    }

    .contact .contact-content .column {
        width: 100%;
        margin-bottom: 0;
    }

    .contact .contact-content .left,
    .contact .contact-content .right {
        max-width: none;
        margin: 0;
    }

    .contact .contact-content .text {
        margin-top: 0;
    }

    .contact .contact-content .left,
    .contact .contact-content .text,
    .contact .contact-content .left p {
        text-align: left;
    }

    .contact .contact-content .left .icons {
        max-width: none;
        margin-left: 0;
        margin-right: 0;
    }
}

@media (min-width: 691px) and (max-width: 1180px) and (orientation: portrait) {
    .availability-steps-inner {
        justify-items: center;
    }

    .availability-copy {
        width: min(100%, 680px);
        max-width: 680px;
        margin-left: auto;
        margin-right: auto;
        text-align: center;
    }

    .availability-steps .section-kicker {
        margin-left: auto;
        margin-right: auto;
    }

    .availability-copy h2,
    .availability-copy > p {
        margin-left: auto;
        margin-right: auto;
        text-align: center;
    }

    .availability-timeline {
        width: min(100%, 620px);
        margin-left: auto;
        margin-right: auto;
        text-align: left;
    }

    .availability-steps-cta {
        margin-left: auto;
        margin-right: auto;
    }

    .contact .contact-content {
        display: grid;
        grid-template-columns: minmax(0, 680px);
        justify-content: center;
        gap: 34px;
        align-items: start;
    }

    .contact .contact-content .column {
        width: 100%;
        margin-bottom: 0;
    }

    .contact .contact-content .left,
    .contact .contact-content .right {
        width: 100%;
        max-width: 680px;
        margin: 0 auto;
    }
}

@media (min-width: 691px) and (max-width: 1100px) {
    .review-card {
        min-height: 286px;
    }

    .review-card:last-child {
        width: calc((100% - 22px) / 2);
        max-width: none;
        justify-self: center;
    }
}

@media (min-width: 769px) and (max-width: 1180px) {
    .home {
        --home-bg-position: calc(100% + 150px) center;
    }

    .home .home-content {
        max-width: 720px;
    }

    .home-title {
        font-size: clamp(58px, 7vw, 74px);
    }

    .home-subtitle {
        max-width: 720px;
    }
}

@media (min-width: 1000px) and (max-width: 1180px) and (orientation: portrait) {
    .home {
        --home-bg-position: calc(100% + 220px) center;
    }
}

/* Contact/footer layout alignment only */
.contact .contact-content {
    display: grid;
    grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
    gap: 36px;
    align-items: start;
}

.contact .contact-content .column {
    width: auto;
    min-width: 0;
}

.contact .contact-content .left .icons {
    display: grid;
    gap: 18px;
}

.contact .contact-content .row {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    column-gap: 18px;
    align-items: center;
    min-height: 0;
    margin-bottom: 0;
}

.contact .contact-content .row i {
    width: 42px;
    height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    line-height: 1;
}

.contact .contact-content .row .info {
    min-width: 0;
    margin-left: 0;
    padding-top: 2px;
}

.contact .contact-content .info .head,
.contact .contact-content .info .sub-title {
    line-height: 1.35;
}

.contact .contact-content .info .head {
    margin-bottom: 4px;
}

.contact .contact-content .info .sub-title .contact-note {
    display: inline;
    margin-top: 0;
    margin-left: 4px;
}

.contact .right form .fields {
    gap: 12px;
}

.contact .right form .name,
.contact .right form .email,
.contact .right form .availability-fields .field:first-child {
    margin-right: 0;
}

.contact .right form .address-fields .field:first-child {
    flex: 1 1 0;
}

.contact .right form .address-fields .field:last-child {
    flex: 1 1 0;
}

.contact .right form .street-phone-fields .field {
    flex: 1 1 0;
}

.contact-captcha-field {
    display: grid;
    justify-items: start;
    gap: 8px;
    margin: 0 0 15px;
}

.contact-captcha-field .h-captcha,
.contact-captcha-field .h-captcha iframe {
    display: block;
    max-width: 100%;
}

.contact-captcha-field.is-invalid .h-captcha {
    border-radius: 8px;
    box-shadow: 0 0 0 3px rgba(209, 0, 0, 0.14);
}

.contact-captcha-error {
    min-height: 18px;
    color: #D10000;
    font: 800 13px/1.35 'Poppins', sans-serif;
    letter-spacing: 0;
}

.contact-captcha-error:empty {
    display: none;
}

@media (min-width: 769px) {
    .footer-container {
        grid-template-columns:
            minmax(145px, 0.75fr)
            minmax(205px, 1fr)
            minmax(205px, 1fr)
            minmax(205px, 1fr)
            minmax(180px, 0.85fr);
        column-gap: clamp(28px, 3.4vw, 44px);
        row-gap: 34px;
        align-items: start;
    }

    .footer-column {
        min-width: 0;
    }

    .footer-column ul li a,
    .footer-column ul li span {
        overflow-wrap: anywhere;
    }
}

@media (max-width: 1100px) {
    .contact .contact-content {
        grid-template-columns: minmax(0, 760px);
        justify-content: center;
        gap: 34px;
    }
}

@media (min-width: 769px) and (max-width: 1100px) {
    .footer-container {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 768px) {
    .services .serv-content .card.service-tile,
    .service-tile-link,
    .service-tile-link::before,
    .service-tile-link::after,
    .service-tile-arrow {
        transition: none;
    }

    .services .serv-content .card.service-tile:hover,
    .services .serv-content .card.service-tile:active {
        transform: none;
        border-color: rgba(18, 24, 32, 0.08);
        box-shadow: 0 12px 30px rgba(18, 24, 32, 0.08);
    }

    .service-tile:hover .service-tile-link::before,
    .service-tile:active .service-tile-link::before {
        transform: scale(1.01);
    }

    .service-tile:hover .service-tile-link::after,
    .service-tile:active .service-tile-link::after {
        opacity: 1;
    }

    .service-tile:hover .service-tile-arrow,
    .service-tile:active .service-tile-arrow {
        transform: none;
    }

    .home {
        min-height: 100svh;
        padding-top: calc(var(--navbar-height) + 28px);
        padding-bottom: calc(198px + env(safe-area-inset-bottom));
        --home-bg-image: url("images/landpageBG_mobil.jpeg");
        --home-bg-side-overlay: linear-gradient(180deg, rgba(255, 255, 255, 0.44) 0%, rgba(255, 255, 255, 0.20) 44%, rgba(255, 255, 255, 0.72) 100%);
        --home-bg-position: center top;
    }

    .home .max-width {
        min-height: calc(100svh - var(--navbar-height) - 226px);
        align-items: flex-end;
    }

    .home .home-content {
        display: flex;
        min-height: inherit;
        flex-direction: column;
        justify-content: flex-end;
    }

    .home-badge {
        width: fit-content;
        max-width: calc(100vw - 48px);
        align-self: center;
    }

    .home-actions {
        margin-top: auto;
        padding-top: 28px;
    }

    .home-stats {
        background: #fff;
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
        bottom: max(18px, env(safe-area-inset-bottom));
    }

    .features-section {
        display: block;
    }

    .contact .contact-content .left {
        display: none;
    }

    .contact .contact-content .right {
        width: 100%;
        max-width: none;
    }

    .contact .contact-content .right .text {
        text-align: center;
    }

    .contact .contact-content .left > .text,
    .contact .contact-content .left > p {
        margin-left: auto;
        margin-right: auto;
        text-align: center;
        text-align-last: center;
    }

    .contact .contact-content {
        grid-template-columns: 1fr;
        gap: 30px;
    }

    .contact .right form,
    .contact .right form .fields,
    .contact .right form .field,
    .contact .right form .fields .field,
    .contact .right form .textarea {
        width: 100%;
    }

    .contact .right form .fields,
    .contact .right form .street-phone-fields,
    .contact .right form .availability-fields {
        flex-direction: column;
        gap: 0;
    }

    .contact .right form .textarea {
        margin-bottom: 14px;
    }

    .contact-captcha-field {
        justify-items: center;
        margin: 0 0 15px;
    }

    .contact-captcha-error:empty {
        display: none;
    }

    .contact .right form .button-area {
        width: 100%;
        justify-content: center;
        margin-top: 0;
    }

    .contact .right form .address-fields .field:first-child,
    .contact .right form .address-fields .field:last-child {
        flex: none;
    }
}

.contact .right form .availability-fields + .textarea,
.contact .right form .textarea {
    margin-top: 0;
    margin-bottom: 15px;
}

.contact .right form .textarea textarea {
    display: block;
}

.contact .right form .textarea + .contact-captcha-field,
.contact-captcha-field {
    margin-top: 0;
    margin-bottom: 15px;
}

@media (max-width: 768px) {
    .contact .contact-content .left {
        display: block;
        width: 100%;
        max-width: none;
        margin: 0 auto;
    }

    .contact .contact-content .left .icons {
        display: none;
    }

    .contact .contact-content .left > .text,
    .contact .contact-content .left > p {
        max-width: 620px;
        margin-left: auto;
        margin-right: auto;
        text-align: center;
        text-align-last: center;
    }

    .contact .right form .availability-fields + .textarea,
    .contact .right form .textarea,
    .contact .right form .textarea + .contact-captcha-field,
    .contact-captcha-field {
        margin-top: 0;
        margin-bottom: 14px;
    }
}

/* iPad Mini portrait: 768px wide devices should keep a tablet layout. */
@media (min-width: 768px) and (max-width: 820px) and (orientation: portrait) {
    :root {
        --layout-gutter: 32px;
        --navbar-height: 74px;
    }

    section,
    .pricing-section,
    .availability-steps,
    .features-section,
    .reviews-section,
    .about,
    .contact {
        padding-top: 84px;
        padding-bottom: 84px;
    }

    .max-width,
    .pricing-container,
    .availability-steps-inner,
    .features-container,
    .footer-container {
        width: min(calc(100% - 64px), var(--layout-max));
    }

    section .title,
    .services .title,
    .pricing-section .title,
    .features-section .title,
    .contact .title {
        max-width: 720px;
        margin-bottom: 44px;
        font-size: clamp(42px, 6vw, 52px);
    }

    .home {
        min-height: 100svh;
        padding: calc(var(--navbar-height) + 52px) 0 126px;
        --home-bg-image: url("images/landpageBG.jpeg");
        --home-bg-side-overlay: linear-gradient(90deg, rgba(248, 250, 248, 0.94) 0%, rgba(248, 250, 248, 0.82) 48%, rgba(248, 250, 248, 0.42) 100%);
        --home-bg-position: calc(100% + 180px) center;
    }

    .home .max-width {
        min-height: calc(100svh - var(--navbar-height) - 178px);
        align-items: center;
    }

    .home .home-content {
        max-width: 704px;
        min-height: 0;
        justify-content: center;
    }

    .home-title {
        font-size: clamp(60px, 8vw, 72px);
    }

    .home-subtitle {
        max-width: 660px;
        font-size: 20px;
    }

    .home-actions {
        margin-top: 44px;
        padding-top: 0;
    }

    .home-stats {
        width: min(calc(100% - 64px), 704px);
        grid-template-columns: repeat(4, minmax(0, 1fr));
        grid-template-rows: auto;
        bottom: 24px;
        padding: 14px 12px;
    }

    .home-stats::before,
    .home-stats::after {
        content: none;
    }

    .home-stat {
        min-height: 68px;
        padding: 0 10px;
        display: flex;
        border-left: 1px solid rgba(18, 24, 32, 0.10);
    }

    .home-stat:first-child {
        border-left: 0;
    }

    .home-stat:nth-child(n),
    .home-stat:nth-child(n) strong,
    .home-stat:nth-child(n) > span {
        grid-column: auto;
        grid-row: auto;
        transform: none;
    }

    .home-stat strong {
        min-height: 34px;
        font-size: 28px;
    }

    .home-stat:last-child strong {
        font-size: 24px;
    }

    .home-stat > span {
        min-height: 20px;
        font-size: 10px;
    }

    .features-section {
        display: block;
    }

    .features-grid,
    .pricing-grid,
    .services .serv-content,
    .price-service-grid,
    .price-grid-small,
    .docs-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 20px;
    }

    .feature-card--primary {
        grid-column: 1 / -1;
        min-height: 250px;
        background: rgba(255, 255, 255, 0.92);
    }

    .feature-card:nth-child(5) {
        grid-column: auto !important;
        width: auto;
        max-width: none !important;
        margin: 0 !important;
    }

    .pricing-card:nth-child(3) {
        grid-column: 1 / -1;
        width: calc(50% - 10px);
        max-width: none;
        justify-self: center;
        margin: 0;
    }

    .pricing-card,
    .feature-card,
    .feature-card--primary,
    .price-panel,
    .price-service-card,
    .price-grid-small article,
    .docs-grid a,
    .review-card {
        padding: 26px;
    }

    .pricing-price1 {
        font-size: clamp(64px, 10vw, 82px) !important;
    }

    .more-pricing-link,
    .reviews-google-link,
    .availability-steps-cta,
    .right form .button-area button {
        width: auto !important;
    }

    .availability-steps-inner,
    .contact .contact-content {
        display: grid;
        grid-template-columns: minmax(0, 680px);
        justify-content: center;
    }

    .availability-copy,
    .contact .contact-content .left,
    .contact .contact-content .right {
        width: 100%;
        max-width: 680px;
        margin-left: auto;
        margin-right: auto;
    }

    .availability-speed-card {
        width: min(100%, 420px);
    }

    .service-tile-link {
        min-height: 250px;
        padding: 26px;
    }

    .service-tile h3 {
        font-size: 27px;
    }

    .reviews-grid {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 20px;
        overflow: visible;
        scroll-snap-type: none;
        margin-right: 0;
        padding-right: 0;
    }

    .review-card,
    .review-card:last-child {
        display: flex;
        width: auto;
        flex: none;
        grid-column: auto;
        min-height: 286px;
    }

    .review-card:last-child {
        grid-column: 1 / -1;
        width: calc(50% - 10px);
        justify-self: center;
    }

    .review-meta {
        display: flex;
    }

    .review-stars,
    .review-card p,
    .review-meta,
    .review-meta > div:last-child,
    .review-avatar {
        grid-column: auto;
        grid-row: auto;
    }

    .review-stars {
        justify-self: auto;
        margin: 22px 0 18px;
        padding-left: 0;
    }

    .contact .contact-content .left {
        display: block;
    }

    .contact .contact-content .right .text {
        text-align: left;
    }

    .contact .right form .fields,
    .contact .right form .street-phone-fields,
    .contact .right form .availability-fields {
        flex-direction: row;
        gap: 12px;
    }

    .contact .right form .address-fields {
        display: grid;
        grid-template-columns: minmax(0, 1fr) 136px;
        gap: 12px;
    }

    .contact .right form .address-fields .field:first-child,
    .contact .right form .address-fields .field:last-child {
        width: auto;
        min-width: 0;
        flex: initial;
    }

    .contact .right form .field,
    .contact .right form .fields .field,
    .contact .right form .textarea {
        margin-bottom: 15px;
    }

    .contact .right form .availability-fields .field:first-child {
        margin-bottom: 15px;
    }

    .modern-footer {
        padding: 50px 0 36px;
    }

    .footer-container {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 30px;
        text-align: left;
    }

    .footer-column h3 {
        display: block;
    }

    .footer-accordion-header {
        display: none;
    }

    .footer-accordion-content {
        display: block !important;
        max-height: none;
        overflow: visible;
        text-align: left;
    }

    .footer-accordion-content li,
    .footer-accordion-content a,
    .footer-accordion-content span {
        text-align: left;
    }
}

@media (min-width: 768px) and (max-width: 820px) and (orientation: portrait) {
    .more-pricing {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        text-align: left;
    }

    .more-pricing-link {
        width: auto !important;
        min-width: 238px;
        min-height: 52px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        align-self: center;
        padding: 13px 22px;
        line-height: 1.2;
        white-space: nowrap;
    }

    .contact .right form .button-area {
        justify-content: flex-start;
    }

    .contact-captcha-field {
        justify-items: start;
    }

    .right form .button-area button {
        width: auto !important;
        min-width: 160px;
        min-height: 48px;
        height: auto;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        padding: 12px 24px;
        line-height: 1.2;
        white-space: nowrap;
    }
}

@media (min-width: 691px) and (max-width: 1180px), (hover: none) and (pointer: coarse) {
    .pricing-card,
    .feature-card {
        transition: none;
    }

    .pricing-card:hover,
    .feature-card:hover {
        transform: none;
    }

    .pricing-card:hover {
        border-color: rgba(0, 104, 56, 0.12);
        box-shadow: 0 14px 34px rgba(18, 24, 32, 0.08);
    }

    .pricing-card.featured:hover {
        border-color: #006838;
    }

    .feature-card:hover {
        border-color: rgba(0, 104, 56, 0.16);
        box-shadow: 0 16px 34px rgba(0, 104, 56, 0.10);
    }

    .feature-card--primary:hover {
        border-color: rgba(0, 104, 56, 0.18);
    }
}
