:root {
    --km-primary: #287c89;
    --km-primary-dark: #1f636e;
    --km-light: #f5f9fa;
    --km-soft: #eef7f8;
}

body {
    color: #223;
    background: #fff;
    font-size: 1rem;
    line-height: 1.6;
}

a {
    color: var(--km-primary);
}

a:hover {
    color: var(--km-primary-dark);
}

.text-primary {
    color: var(--km-primary) !important;
}

.btn-primary {
    --bs-btn-bg: var(--km-primary);
    --bs-btn-border-color: var(--km-primary);
    --bs-btn-hover-bg: var(--km-primary-dark);
    --bs-btn-hover-border-color: var(--km-primary-dark);
}

.btn-outline-primary {
    --bs-btn-color: var(--km-primary);
    --bs-btn-border-color: var(--km-primary);
    --bs-btn-hover-bg: var(--km-primary);
    --bs-btn-hover-border-color: var(--km-primary);
}

.hero-section,
.page-header {
    background: linear-gradient(135deg, rgba(245, 249, 250, .98), rgba(255, 255, 255, .98));
}

.py-lg-6 {
    padding-top: 5rem;
    padding-bottom: 5rem;
}

.navbar-brand {
    color: var(--km-primary);
}

.nav-link.active {
    color: var(--km-primary) !important;
    font-weight: 600;
}

.info-card {
    border-top: 4px solid var(--km-primary) !important;
}

.card {
    border-radius: 1rem;
}

.card .stretched-link {
    font-weight: 600;
}

.table th,
.table td {
    padding: 1rem;
}

.map-placeholder {
    min-height: 360px;
    background: var(--km-soft);
}

@media (max-width: 575.98px) {
    .display-5 {
        font-size: 2.25rem;
    }
}

.price-section h2 {
    color: #223;
}

.price-table td:first-child {
    width: 70%;
}

.price-table td:last-child {
    color: var(--km-primary-dark);
}

@media (max-width: 575.98px) {
    .price-table td {
        display: block;
        width: 100%;
        border-bottom: 0;
    }

    .price-table td:last-child {
        text-align: left !important;
        padding-top: 0;
        border-bottom: var(--bs-border-width) solid var(--bs-border-color);
    }
}

.site-footer a {
    color: var(--km-primary-dark);
}

.alert-primary {
    --bs-alert-color: #174c55;
    --bs-alert-bg: #e8f5f7;
    --bs-alert-border-color: #c8e7eb;
}

.topbar {
    background: #fbfdfd;
}

.brand-mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border-radius: 999px;
    background: var(--km-soft);
    color: var(--km-primary);
}

.care-item {
    padding: 1.5rem;
    border-radius: 1rem;
    background: #fff;
    border: 1px solid var(--bs-border-color);
    height: 100%;
}

.cta-box {
    background: linear-gradient(135deg, var(--km-soft), #fff);
    border: 1px solid #d7eef1;
}

@media (max-width: 991.98px) {
    .navbar .btn {
        width: 100%;
        margin-top: .75rem;
    }
}

.alert-strip {
    background: var(--km-primary-dark);
    color: #fff;
}

.alert-strip i,
.alert-strip strong {
    color: #fff;
}

.alert-strip a {
    color: #fff;
    font-weight: 600;
}

.home-alert {
    background: #eef7f8;
    border: 1px solid #c8e7eb;
    border-left: 4px solid var(--km-primary);
    border-radius: .75rem;
    color: #174c55;
    padding: .75rem 1rem;
}

.home-alert i,
.home-alert strong {
    color: var(--km-primary-dark);
}

.table-today th,
.table-today td {
    background: #e8f5f7 !important;
}

.table-today th:first-child::after {
    content: "dnes";
    display: inline-block;
    margin-left: .5rem;
    padding: .15rem .45rem;
    border-radius: 999px;
    background: var(--km-primary);
    color: #fff;
    font-size: .75rem;
    font-weight: 600;
    vertical-align: middle;
}


.home-alert {
    background: #f5f9fa;
    border: 1px solid #d7eef1;
    border-left: 4px solid var(--km-primary);
    border-radius: .75rem;
    color: #174c55;
    padding: .75rem 1rem;
}

.home-alert i,
.home-alert strong {
    color: var(--km-primary-dark);
}

/* Homepage structural redesign */
.km-home {
    --km-bg: #f5f9fa;
    --km-card: #ffffff;
    --km-warm: #f8f1e8;
    --km-line-soft: #d7eef1;
    --km-shadow-soft: 0 18px 42px rgba(31, 99, 110, .08);
    background: var(--km-bg);
}

.km-home .btn {
    border-radius: 999px;
    font-weight: 700;
}

.km-hero {
    overflow: hidden;
    padding: 4.75rem 0 3.75rem;
    background:
        radial-gradient(circle at 76% 28%, rgba(40, 124, 137, .14), transparent 18rem),
        linear-gradient(135deg, #eef7f8 0%, #f9fcfc 58%, #f5f9fa 100%);
}

.km-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(340px, .95fr);
    gap: clamp(2rem, 6vw, 5rem);
    align-items: center;
}

.km-pill {
    display: inline-flex;
    width: fit-content;
    align-items: center;
    border-radius: 999px;
    border: 1px solid rgba(40, 124, 137, .18);
    background: #fff;
    color: var(--km-primary-dark);
    font-size: .78rem;
    font-weight: 750;
    letter-spacing: .02em;
    padding: .3rem .7rem;
}

.km-pill-light {
    color: #fff;
    background: rgba(255, 255, 255, .12);
    border-color: rgba(255, 255, 255, .22);
}

.km-hero-copy h1 {
    max-width: 42rem;
    margin: 1rem 0 1.1rem;
    color: #172f34;
    font-size: clamp(3rem, 6vw, 5.8rem);
    line-height: .95;
    letter-spacing: -.065em;
    font-weight: 800;
}

.km-lead {
    max-width: 39rem;
    color: #405156;
    font-size: 1.18rem;
    line-height: 1.7;
    margin-bottom: 0;
}

.km-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    margin-top: 1.8rem;
}

.km-appointment-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    max-width: 35rem;
    margin-top: 1.7rem;
    padding: .85rem .95rem;
    border-radius: 999px;
    background: #fff;
    border: 1px solid var(--km-line-soft);
    box-shadow: 0 10px 24px rgba(31, 99, 110, .06);
}

.km-appointment-bar span {
    display: block;
    color: #66777c;
    font-size: .82rem;
}

.km-appointment-bar strong,
.km-appointment-bar a {
    color: var(--km-primary-dark);
    font-weight: 750;
}

.km-hero-visual {
    position: relative;
    min-height: 430px;
    border-radius: 2rem;
    background:
        linear-gradient(145deg, rgba(255,255,255,.82), rgba(238,247,248,.9)),
        #fff;
    border: 1px solid rgba(40, 124, 137, .16);
    box-shadow: var(--km-shadow-soft);
}

.km-hero-visual::before {
    content: "";
    position: absolute;
    inset: 3rem 4rem 4rem 4rem;
    border-radius: 999px 999px 2rem 2rem;
    background: linear-gradient(180deg, #d7eef1, #ffffff);
    border: 1px solid rgba(40, 124, 137, .12);
}

.km-visual-card {
    position: absolute;
    z-index: 1;
    border-radius: 1.25rem;
    background: #fff;
    border: 1px solid rgba(40, 124, 137, .14);
    box-shadow: 0 14px 32px rgba(31, 99, 110, .08);
}

.km-visual-main {
    left: 2rem;
    bottom: 2rem;
    width: 15rem;
    padding: 1.25rem;
}

.km-visual-icon {
    display: inline-flex;
    width: 3rem;
    height: 3rem;
    align-items: center;
    justify-content: center;
    border-radius: 1rem;
    background: var(--km-soft);
    color: var(--km-primary);
    font-size: 1.5rem;
    margin-bottom: 1rem;
}

.km-visual-main strong,
.km-visual-main span {
    display: block;
}

.km-visual-main strong {
    color: #172f34;
    font-size: 1.1rem;
}

.km-visual-main span {
    color: #66777c;
}

.km-visual-hours {
    right: 2rem;
    top: 2rem;
    padding: 1rem 1.1rem;
}

.km-visual-hours span,
.km-visual-address span {
    color: #66777c;
    font-size: .85rem;
}

.km-visual-hours strong {
    display: block;
    color: var(--km-primary-dark);
    font-size: 1.2rem;
}

.km-visual-address {
    right: 2rem;
    bottom: 5.5rem;
    display: flex;
    gap: .65rem;
    align-items: center;
    padding: .95rem 1rem;
}

.km-visual-address i {
    color: var(--km-primary);
    font-size: 1.25rem;
}

.km-alert-section {
    padding-top: 1rem;
    background: var(--km-bg);
}

.km-home-alert {
    display: flex;
    gap: .75rem;
    align-items: center;
    padding: .9rem 1rem;
    border-radius: 1rem;
    background: #fff;
    border: 1px solid var(--km-line-soft);
    border-left: 4px solid var(--km-primary);
}

.km-home-alert i,
.km-home-alert strong {
    color: var(--km-primary-dark);
}

.km-home-alert span {
    color: #405156;
}

.km-link-section {
    padding: 3.5rem 0;
}

.km-link-grid {
    display: grid;
    grid-template-columns: 1.2fr .9fr .9fr;
    gap: 1.25rem;
}

.km-link-card {
    display: flex;
    min-height: 17rem;
    flex-direction: column;
    justify-content: space-between;
    padding: 1.4rem;
    border-radius: 1.5rem;
    text-decoration: none;
    color: #172f34;
    background: #fff;
    border: 1px solid rgba(40, 124, 137, .14);
    box-shadow: 0 8px 24px rgba(31, 99, 110, .045);
    transition: transform .16s ease, box-shadow .16s ease;
}

.km-link-card:hover {
    color: #172f34;
    transform: translateY(-3px);
    box-shadow: var(--km-shadow-soft);
}

.km-link-card-large {
    background: #fff;
}

.km-link-card-soft {
    background: var(--km-warm);
    border-color: #eadfd2;
}

.km-link-card span {
    color: var(--km-primary);
    font-size: .82rem;
    font-weight: 800;
}

.km-link-card h2 {
    margin: auto 0 0;
    font-size: 1.5rem;
    letter-spacing: -.03em;
}

.km-link-card p {
    color: #66777c;
    margin: .65rem 0 1rem;
}

.km-link-card strong {
    color: var(--km-primary-dark);
    text-decoration: underline;
    text-underline-offset: .22em;
}

.km-section {
    padding: 4.75rem 0;
    background: #fff;
}

.km-section-light {
    background: #f8f1e8;
}

.km-split {
    display: grid;
    grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
    gap: clamp(2rem, 6vw, 5rem);
    align-items: start;
}

.km-split h2,
.km-section-head h2,
.km-final-cta h2 {
    margin: .8rem 0 1rem;
    color: #172f34;
    font-size: clamp(2rem, 4vw, 3.5rem);
    line-height: 1.04;
    letter-spacing: -.045em;
    font-weight: 800;
}

.km-split p,
.km-care-card p,
.km-final-cta p {
    color: #66777c;
    font-size: 1.05rem;
}

.km-info-panel {
    display: grid;
    gap: 1rem;
    padding: 1.4rem;
    border-radius: 1.5rem;
    background: #fff;
    border: 1px solid rgba(40, 124, 137, .12);
}

.km-info-row {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid #e4ecee;
}

.km-info-row span {
    color: #66777c;
}

.km-info-row a,
.km-info-row strong {
    color: var(--km-primary-dark);
    font-weight: 800;
}

.km-note {
    display: flex;
    gap: .75rem;
    padding: 1rem;
    border-radius: 1rem;
    background: var(--km-soft);
    color: #174c55;
}

.km-note i {
    color: var(--km-primary);
    flex-shrink: 0;
    margin-top: .15rem;
}

.km-section-head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 1.5rem;
    margin-bottom: 2rem;
}

.km-care-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.25rem;
}

.km-care-card {
    min-height: 14rem;
    padding: 1.4rem;
    border-radius: 1.5rem;
    background: #fbfdfd;
    border: 1px solid #e4ecee;
}

.km-care-card:nth-child(2) {
    background: #eef7f8;
    border-color: #d7eef1;
}

.km-care-card i {
    display: inline-flex;
    width: 3rem;
    height: 3rem;
    align-items: center;
    justify-content: center;
    border-radius: 1rem;
    background: #fff;
    color: var(--km-primary);
    font-size: 1.4rem;
}

.km-care-card h3 {
    margin-top: 1.1rem;
    color: #172f34;
    font-size: 1.25rem;
}

.km-hours-panel {
    overflow: hidden;
    border-radius: 1.5rem;
    background: #fff;
    border: 1px solid rgba(40, 124, 137, .12);
}

.km-final-section {
    padding: 4.75rem 0;
    background: var(--km-bg);
}

.km-final-cta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    padding: 2rem;
    border-radius: 1.75rem;
    background: var(--km-primary-dark);
    color: #fff;
}

.km-final-cta h2 {
    color: #fff;
}

.km-final-cta p {
    color: rgba(255, 255, 255, .78);
    margin-bottom: 0;
}

@media (max-width: 991.98px) {
    .km-hero-grid,
    .km-link-grid,
    .km-split,
    .km-care-grid {
        grid-template-columns: 1fr;
    }

    .km-hero-visual {
        min-height: 360px;
    }

    .km-section-head,
    .km-final-cta {
        align-items: flex-start;
        flex-direction: column;
    }
}

@media (max-width: 575.98px) {
    .km-hero {
        padding: 3.25rem 0;
    }

    .km-hero-copy h1 {
        font-size: 3rem;
    }

    .km-appointment-bar,
    .km-info-row {
        display: block;
        border-radius: 1rem;
    }

    .km-visual-address {
        display: none;
    }

    .km-link-card {
        min-height: 14rem;
    }
}

/* Homepage correction pass: darker teal, calmer hero, less rounded UI */
.km-home {
    --km-bg: #F1F7F6;
    --km-card: #FFFFFF;
    --km-warm: #F5EFE6;

    --km-rich-black: #001A17;
    --km-dark-green: #032221;
    --km-bangladesh: #03624C;
    --km-meadow: #2CC295;
    --km-pistachio: #AACBC4;
    --km-stone: #707D7D;

    --km-line-soft: rgba(3, 98, 76, .14);
    --km-shadow-soft: 0 12px 28px rgba(0, 26, 23, .08);
}

.km-home .btn {
    border-radius: .75rem;
    font-weight: 700;
}

.km-home .btn-primary {
    --bs-btn-bg: var(--km-bangladesh);
    --bs-btn-border-color: var(--km-bangladesh);
    --bs-btn-hover-bg: var(--km-dark-green);
    --bs-btn-hover-border-color: var(--km-dark-green);
}

.km-home .btn-outline-primary {
    --bs-btn-color: var(--km-bangladesh);
    --bs-btn-border-color: rgba(3, 98, 76, .42);
    --bs-btn-hover-bg: var(--km-bangladesh);
    --bs-btn-hover-border-color: var(--km-bangladesh);
}

.km-hero {
    padding: 4rem 0 3.25rem;
    background:
        linear-gradient(135deg, #F1F7F6 0%, #F8FBFA 58%, #EEF6F4 100%);
}

.km-hero-grid {
    grid-template-columns: minmax(0, .95fr) minmax(340px, 1.05fr);
    gap: clamp(2rem, 5vw, 4rem);
}

.km-pill {
    border-radius: .7rem;
    border-color: rgba(3, 98, 76, .16);
    background: #fff;
    color: var(--km-bangladesh);
    font-size: .75rem;
    font-weight: 750;
    letter-spacing: .01em;
    padding: .28rem .62rem;
}

.km-hero-copy h1 {
    max-width: 34rem;
    margin: 1rem 0 1rem;
    color: var(--km-rich-black);
    font-size: clamp(2.7rem, 5vw, 4.55rem);
    line-height: 1.02;
    letter-spacing: -.045em;
    font-weight: 800;
}

.km-lead {
    max-width: 34rem;
    color: #334745;
    font-size: 1.08rem;
    line-height: 1.65;
}

.km-hero-actions {
    margin-top: 1.55rem;
}

.km-appointment-bar {
    max-width: 31rem;
    margin-top: 1.4rem;
    padding: .75rem .85rem;
    border-radius: .9rem;
    background: rgba(255, 255, 255, .82);
    border: 1px solid rgba(3, 98, 76, .12);
    box-shadow: none;
}

.km-appointment-bar span {
    color: #637271;
    font-size: .78rem;
}

.km-appointment-bar strong,
.km-appointment-bar a {
    color: var(--km-dark-green);
    font-weight: 750;
}

.km-hero-visual {
    min-height: 360px;
    border-radius: 1.1rem;
    background: #F7FBFA;
    border: 1px solid rgba(3, 98, 76, .13);
    box-shadow: 0 14px 34px rgba(0, 26, 23, .07);
}

.km-hero-visual::before {
    inset: 2.75rem 3.5rem 3.5rem 3.5rem;
    border-radius: 1rem;
    background:
        linear-gradient(180deg, rgba(170, 203, 196, .42), rgba(255, 255, 255, .85));
    border: 1px solid rgba(3, 98, 76, .10);
}

.km-visual-card {
    border-radius: .9rem;
    border: 1px solid rgba(3, 98, 76, .12);
    box-shadow: 0 10px 24px rgba(0, 26, 23, .07);
}

.km-visual-main {
    left: 2rem;
    bottom: 2rem;
    width: 14rem;
    padding: 1.1rem;
}

.km-visual-icon {
    width: 2.65rem;
    height: 2.65rem;
    border-radius: .75rem;
    background: #EAF3F1;
    color: var(--km-bangladesh);
    font-size: 1.25rem;
    margin-bottom: .85rem;
}

.km-visual-main strong {
    color: var(--km-rich-black);
    font-size: 1rem;
}

.km-visual-main span {
    color: #5F6F6D;
    font-size: .92rem;
}

.km-visual-hours {
    right: 1.75rem;
    top: 1.75rem;
    padding: .85rem 1rem;
}

.km-visual-hours strong {
    color: var(--km-bangladesh);
    font-size: 1.05rem;
}

.km-visual-address {
    right: 1.75rem;
    bottom: 4.75rem;
    padding: .8rem .9rem;
}

.km-visual-address i {
    color: var(--km-bangladesh);
}

.km-link-section {
    padding: 3rem 0;
}

.km-link-grid {
    gap: 1rem;
}

.km-link-card {
    min-height: 14.5rem;
    padding: 1.25rem;
    border-radius: 1rem;
    border: 1px solid rgba(3, 98, 76, .12);
    box-shadow: none;
}

.km-link-card:hover {
    box-shadow: 0 12px 28px rgba(0, 26, 23, .07);
}

.km-link-card-soft {
    background: #F5EFE6;
    border-color: rgba(112, 125, 125, .18);
}

.km-link-card span {
    color: var(--km-bangladesh);
}

.km-link-card h2 {
    font-size: 1.32rem;
    letter-spacing: -.02em;
}

.km-link-card p {
    color: #5F6F6D;
}

.km-link-card strong {
    color: var(--km-bangladesh);
}

.km-section {
    padding: 4rem 0;
}

.km-section-light {
    background: #F5EFE6;
}

.km-split h2,
.km-section-head h2,
.km-final-cta h2 {
    color: var(--km-rich-black);
    font-size: clamp(1.9rem, 3.2vw, 3rem);
    line-height: 1.08;
    letter-spacing: -.035em;
    font-weight: 780;
}

.km-split p,
.km-care-card p,
.km-final-cta p {
    color: #5F6F6D;
    font-size: 1rem;
}

.km-info-panel,
.km-care-card,
.km-hours-panel {
    border-radius: 1rem;
    border-color: rgba(3, 98, 76, .12);
    box-shadow: none;
}

.km-note {
    border-radius: .85rem;
    background: #EAF3F1;
    color: #174C55;
}

.km-care-card {
    min-height: 12.5rem;
}

.km-care-card:nth-child(2) {
    background: #EEF7F8;
    border-color: rgba(3, 98, 76, .12);
}

.km-care-card i {
    width: 2.65rem;
    height: 2.65rem;
    border-radius: .75rem;
    color: var(--km-bangladesh);
}

.km-care-card h3 {
    color: var(--km-rich-black);
    font-size: 1.15rem;
}

.km-final-cta {
    border-radius: 1.1rem;
    background: var(--km-dark-green);
}

/* Homepage correction pass 2: remove beige, keep blue-green clinical palette */
.km-home {
    --km-bg: #F1F7F6;
    --km-card: #FFFFFF;

    --km-rich-black: #001A17;
    --km-dark-teal: #032221;
    --km-deep-teal: #03624C;
    --km-teal: #187D6D;
    --km-mint-teal: #2FA98C;
    --km-pale-teal: #AACBC4;
    --km-anti-flash: #F1F7F6;

    --km-warm: #EEF6F4;
    --km-line-soft: rgba(3, 98, 76, .15);
    --km-shadow-soft: 0 12px 30px rgba(0, 26, 23, .07);
}

.km-hero {
    background:
        radial-gradient(circle at 78% 32%, rgba(170, 203, 196, .38), transparent 18rem),
        linear-gradient(135deg, #F1F7F6 0%, #F7FBFA 58%, #EAF3F1 100%);
}

.km-home .btn-primary {
    --bs-btn-bg: var(--km-deep-teal);
    --bs-btn-border-color: var(--km-deep-teal);
    --bs-btn-hover-bg: var(--km-dark-teal);
    --bs-btn-hover-border-color: var(--km-dark-teal);
}

.km-home .btn-outline-primary {
    --bs-btn-color: var(--km-deep-teal);
    --bs-btn-border-color: rgba(3, 98, 76, .45);
    --bs-btn-hover-bg: var(--km-deep-teal);
    --bs-btn-hover-border-color: var(--km-deep-teal);
}

.km-pill {
    color: var(--km-deep-teal);
    border-color: rgba(3, 98, 76, .18);
    background: rgba(255, 255, 255, .82);
}

.km-hero-copy h1,
.km-split h2,
.km-section-head h2,
.km-final-cta h2 {
    color: var(--km-rich-black);
}

.km-lead,
.km-split p,
.km-care-card p,
.km-final-cta p,
.km-link-card p {
    color: #4D5F5D;
}

.km-appointment-bar {
    background: rgba(255, 255, 255, .86);
    border-color: rgba(3, 98, 76, .16);
}

.km-appointment-bar strong,
.km-appointment-bar a,
.km-info-row a,
.km-info-row strong,
.km-link-card strong {
    color: var(--km-deep-teal);
}

.km-hero-visual {
    background: #F7FBFA;
    border-color: rgba(3, 98, 76, .15);
}

.km-hero-visual::before {
    background:
        linear-gradient(180deg, rgba(170, 203, 196, .42), rgba(241, 247, 246, .85));
    border-color: rgba(3, 98, 76, .13);
}

.km-visual-card {
    border-color: rgba(3, 98, 76, .14);
}

.km-visual-icon,
.km-care-card i {
    background: #EAF3F1;
    color: var(--km-deep-teal);
}

.km-visual-hours strong,
.km-visual-address i,
.km-link-card span {
    color: var(--km-deep-teal);
}

/* kill beige sections */
.km-section-light {
    background: #EAF3F1;
}

.km-link-card-soft {
    background: #EAF3F1;
    border-color: rgba(3, 98, 76, .15);
}

.km-info-panel,
.km-hours-panel,
.km-care-card,
.km-link-card {
    background: #FFFFFF;
    border-color: rgba(3, 98, 76, .13);
}

.km-care-card:nth-child(2),
.km-care-card:nth-child(3) {
    background: #F1F7F6;
    border-color: rgba(3, 98, 76, .14);
}

.km-note {
    background: #DDEDEA;
    color: var(--km-dark-teal);
}

.km-note i {
    color: var(--km-deep-teal);
}

.km-final-section {
    background: #F1F7F6;
}

.km-final-cta {
    background: var(--km-dark-teal);
}

/* reduce the "rounded app" feeling a bit more */
.km-hero-visual,
.km-link-card,
.km-info-panel,
.km-care-card,
.km-hours-panel,
.km-final-cta {
    border-radius: .85rem;
}

.km-visual-card,
.km-note {
    border-radius: .7rem;
}

.km-home .btn,
.km-appointment-bar,
.km-pill {
    border-radius: .65rem;
}

/* KM homepage palette correction: blue-teal system, no beige, no green drift */
.km-home {
    --km-ink: #111A1D;
    --km-text: #2E3D42;
    --km-muted: #5B6D73;

    --km-primary: #287C89;
    --km-primary-dark: #15545F;
    --km-primary-deep: #062B31;
    --km-primary-hover: #1F6975;

    --km-accent: #3A8EA2;
    --km-accent-soft: #C0E0E6;

    --km-bg: #F5FAFB;
    --km-bg-soft: #E2F1F4;
    --km-bg-muted: #EEF4F5;

    --km-card: #FFFFFF;
    --km-border: #D8E4E7;
    --km-border-teal: #B8DDE2;

    --km-alert-bg: #DDF0F2;
    --km-alert-text: #0D3F47;

    --km-warm: var(--km-bg-soft);
    --km-line-soft: var(--km-border);
    --km-shadow-soft: 0 12px 28px rgba(17, 26, 29, .07);

    background: var(--km-bg);
    color: var(--km-text);
}

/* Buttons */
.km-home .btn {
    border-radius: .6rem;
    font-weight: 700;
}

.km-home .btn-primary {
    --bs-btn-bg: var(--km-primary);
    --bs-btn-border-color: var(--km-primary);
    --bs-btn-hover-bg: var(--km-primary-dark);
    --bs-btn-hover-border-color: var(--km-primary-dark);
    --bs-btn-color: #fff;
    --bs-btn-hover-color: #fff;
}

.km-home .btn-outline-primary {
    --bs-btn-color: var(--km-primary-dark);
    --bs-btn-border-color: var(--km-primary);
    --bs-btn-hover-bg: var(--km-primary);
    --bs-btn-hover-border-color: var(--km-primary);
    --bs-btn-hover-color: #fff;
}

/* Hero */
.km-hero {
    background:
        radial-gradient(circle at 78% 28%, rgba(192, 224, 230, .58), transparent 18rem),
        linear-gradient(135deg, #F5FAFB 0%, #EEF7F8 58%, #E2F1F4 100%);
}

.km-hero-copy h1 {
    color: var(--km-ink);
    font-size: clamp(2.6rem, 4.6vw, 4.35rem);
    line-height: 1.03;
    letter-spacing: -.042em;
    font-weight: 800;
}

.km-lead {
    color: var(--km-text);
    font-size: 1.06rem;
    line-height: 1.65;
}

.km-pill {
    color: var(--km-primary-dark);
    background: rgba(255, 255, 255, .88);
    border-color: var(--km-border-teal);
    border-radius: .55rem;
}

.km-appointment-bar {
    max-width: 30rem;
    background: #fff;
    border: 1px solid var(--km-border);
    border-radius: .7rem;
    box-shadow: none;
}

.km-appointment-bar span {
    color: var(--km-muted);
}

.km-appointment-bar strong,
.km-appointment-bar a {
    color: var(--km-primary-dark);
}

/* Hero visual */
.km-hero-visual {
    background: #F8FCFC;
    border: 1px solid var(--km-border);
    border-radius: .9rem;
    box-shadow: 0 12px 30px rgba(17, 26, 29, .06);
}

.km-hero-visual::before {
    border-radius: .75rem;
    background:
        linear-gradient(180deg, rgba(192, 224, 230, .55), rgba(245, 250, 251, .88));
    border-color: var(--km-border-teal);
}

.km-visual-card {
    border-radius: .7rem;
    border: 1px solid var(--km-border);
    box-shadow: 0 10px 24px rgba(17, 26, 29, .06);
}

.km-visual-icon,
.km-care-card i {
    background: var(--km-bg-soft);
    color: var(--km-primary);
    border-radius: .55rem;
}

.km-visual-main strong,
.km-link-card h2,
.km-care-card h3,
.km-split h2,
.km-section-head h2,
.km-final-cta h2 {
    color: var(--km-ink);
}

.km-visual-main span,
.km-visual-hours span,
.km-visual-address span,
.km-link-card p,
.km-care-card p,
.km-split p {
    color: var(--km-muted);
}

.km-visual-hours strong,
.km-visual-address i {
    color: var(--km-primary-dark);
}

/* Cards and sections */
.km-link-section {
    background: var(--km-bg);
}

.km-link-card,
.km-info-panel,
.km-care-card,
.km-hours-panel {
    background: var(--km-card);
    border: 1px solid var(--km-border);
    border-radius: .85rem;
    box-shadow: none;
}

.km-link-card:hover {
    box-shadow: 0 12px 28px rgba(17, 26, 29, .07);
}

.km-link-card-soft,
.km-care-card:nth-child(2),
.km-care-card:nth-child(3) {
    background: var(--km-bg-soft);
    border-color: var(--km-border-teal);
}

.km-link-card span,
.km-link-card strong,
.km-info-row a,
.km-info-row strong {
    color: var(--km-primary-dark);
}

.km-section {
    background: #fff;
}

.km-section-light {
    background: var(--km-bg-muted);
}

.km-info-row {
    border-bottom-color: var(--km-border);
}

.km-info-row span {
    color: var(--km-muted);
}

.km-note {
    background: var(--km-alert-bg);
    color: var(--km-alert-text);
    border-radius: .65rem;
}

.km-note i {
    color: var(--km-primary);
}

/* Alerts */
.km-home-alert {
    background: #fff;
    border-color: var(--km-border);
    border-left-color: var(--km-primary);
    border-radius: .75rem;
}

.km-home-alert i,
.km-home-alert strong {
    color: var(--km-primary-dark);
}

.km-home-alert span {
    color: var(--km-text);
}

/* Final CTA */
.km-final-section {
    background: var(--km-bg);
}

.km-final-cta {
    background: var(--km-primary-deep);
    border-radius: .9rem;
}

.km-final-cta h2 {
    color: #fff;
}

.km-final-cta p {
    color: rgba(255, 255, 255, .78);
}

/* Tables in homepage */
.km-home .table-today th,
.km-home .table-today td {
    background: var(--km-bg-soft) !important;
}

.km-home .table-today th:first-child::after {
    background: var(--km-primary);
}

/* Nuke previous warm/beige visual leftovers */
.km-home [style*="#F5EFE6"],
.km-home [style*="#f5efe6"],
.km-home [style*="#F8F1E8"],
.km-home [style*="#f8f1e8"] {
    background: var(--km-bg-soft) !important;
}

@media (max-width: 575.98px) {
    .km-hero-copy h1 {
        font-size: 2.85rem;
    }
}

/* KM homepage correction pass 3:
   unified cards, clearer section rhythm, SVG hero illustration */
.km-home {
    --km-ink: #111A1D;
    --km-text: #2E3D42;
    --km-muted: #5B6D73;

    --km-primary: #287C89;
    --km-primary-dark: #15545F;
    --km-primary-deep: #062B31;

    --km-bg: #F5FAFB;
    --km-bg-alt: #E2F1F4;
    --km-bg-section: #EEF4F5;

    --km-card: #FFFFFF;
    --km-border: #D8E4E7;
    --km-border-teal: #B8DDE2;

    background: var(--km-bg);
}

/* jasnější střídání sekcí */
.km-hero,
.km-link-section,
.km-section,
.km-final-section {
    background: var(--km-bg);
}

.km-section-light {
    background: var(--km-bg-alt);
}

.km-section:nth-of-type(even) {
    background: var(--km-bg-section);
}

/* hero bez pseudo boxu */
.km-hero {
    padding: 4.2rem 0 3.6rem;
    background:
        radial-gradient(circle at 82% 20%, rgba(184, 221, 226, .55), transparent 20rem),
        linear-gradient(135deg, #F5FAFB 0%, #EEF7F8 54%, #E2F1F4 100%);
}

.km-hero-grid {
    grid-template-columns: minmax(0, .95fr) minmax(320px, 1.05fr);
    align-items: center;
}

.km-hero-copy h1 {
    max-width: 34rem;
    font-size: clamp(2.6rem, 4.5vw, 4.2rem);
    line-height: 1.04;
    letter-spacing: -.04em;
}

.km-lead {
    max-width: 35rem;
}

/* nová SVG ilustrace */
.km-hero-illustration {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 360px;
}

.km-hero-illustration img {
    display: block;
    width: min(100%, 560px);
    height: auto;
}

/* starý pravý hero box kompletně zabít, kdyby zbyl v CSS */
.km-hero-visual,
.km-hero-visual::before,
.km-visual-card,
.km-visual-main,
.km-visual-hours,
.km-visual-address {
    display: none !important;
}

/* sjednocené karty v rámci skupin */
.km-link-card,
.km-link-card-soft,
.km-link-card-large,
.km-care-card,
.km-care-card:nth-child(2),
.km-care-card:nth-child(3),
.km-info-panel,
.km-hours-panel {
    background: var(--km-card) !important;
    border: 1px solid var(--km-border) !important;
    border-radius: .75rem !important;
    box-shadow: none !important;
}

/* pokud chceme zvýraznění, jen přes linku nahoře, ne jinou barvou celé karty */
.km-link-card,
.km-care-card {
    position: relative;
    overflow: hidden;
}

.km-link-card::before,
.km-care-card::before {
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    height: 3px;
    background: var(--km-border-teal);
}

.km-link-card:hover,
.km-care-card:hover {
    border-color: var(--km-border-teal) !important;
    box-shadow: 0 10px 24px rgba(17, 26, 29, .055) !important;
}

/* jednotné icon boxy */
.km-care-card i {
    background: var(--km-bg-alt);
    color: var(--km-primary);
    border-radius: .55rem;
}

/* informační panel v objednání bez barevného chaosu */
.km-note {
    background: var(--km-bg-alt);
    color: var(--km-primary-deep);
    border: 1px solid var(--km-border-teal);
    border-radius: .65rem;
}

.km-note i {
    color: var(--km-primary);
}

/* CTA zůstává tmavě modrozelené */
.km-final-cta {
    background: var(--km-primary-deep);
    border-radius: .85rem !important;
}

/* menší radius v hero appointment baru */
.km-appointment-bar {
    border-radius: .65rem;
}

/* mobile */
@media (max-width: 991.98px) {
    .km-hero-illustration {
        min-height: auto;
        margin-top: 1rem;
    }

    .km-hero-illustration img {
        width: min(100%, 460px);
    }
}

@media (max-width: 575.98px) {
    .km-hero-copy h1 {
        font-size: 2.75rem;
    }

    .km-hero-illustration img {
        width: 100%;
    }
}

/* KM correction pass 4:
   no fake SVG, clean illustration box, strict section rhythm */
.km-hero-illustration {
    display: flex !important;
    align-items: center;
    justify-content: center;
    min-height: 330px;
}

.km-hero-illustration img {
    display: none !important;
}

.km-hero-art-placeholder {
    width: min(100%, 520px);
    height: 300px;
    border-radius: .75rem;
    background:
        linear-gradient(180deg, rgba(226, 241, 244, .72), rgba(245, 250, 251, .96));
    border: 1px solid var(--km-border-teal);
    box-shadow: 0 10px 28px rgba(17, 26, 29, .055);
}

/* section rhythm: color / white / color / white */
.km-hero {
    background:
        radial-gradient(circle at 78% 28%, rgba(192, 224, 230, .50), transparent 18rem),
        linear-gradient(135deg, #F5FAFB 0%, #EEF7F8 58%, #E2F1F4 100%) !important;
}

.km-link-section {
    background: #FFFFFF !important;
}

.km-section {
    background: #FFFFFF !important;
}

.km-section-light {
    background: #E2F1F4 !important;
}

.km-final-section {
    background: #FFFFFF !important;
}

/* kill previous random alternation */
.km-section:nth-of-type(even),
.km-section:nth-of-type(odd) {
    background: #FFFFFF !important;
}

.km-section-light:nth-of-type(even),
.km-section-light:nth-of-type(odd) {
    background: #E2F1F4 !important;
}

/* cards stay consistent */
.km-link-card,
.km-link-card-soft,
.km-link-card-large,
.km-care-card,
.km-care-card:nth-child(2),
.km-care-card:nth-child(3),
.km-info-panel,
.km-hours-panel {
    background: #FFFFFF !important;
    border: 1px solid var(--km-border) !important;
    border-radius: .75rem !important;
    box-shadow: none !important;
}

/* remove decorative top stripes if they make the cards noisy */
.km-link-card::before,
.km-care-card::before {
    display: none !important;
}

/* SVG hero illustration */
.km-hero-illustration {
    display: flex !important;
    align-items: center;
    justify-content: center;
    min-height: 330px;
}

.km-hero-illustration img {
    display: block !important;
    width: min(100%, 500px);
    height: auto;
    object-fit: contain;
    mix-blend-mode: normal !important;
}

.km-hero-art-placeholder {
    display: none !important;
}

/* KM correction pass 5: hero spacing and illustration balance */
.km-hero {
    padding: 3.6rem 0 3.2rem !important;
}

.km-hero-grid {
    grid-template-columns: minmax(0, .9fr) minmax(360px, 1.1fr);
    gap: clamp(2rem, 5vw, 4.5rem);
}

.km-hero-copy h1 {
    max-width: 32rem;
    margin-top: .9rem;
    margin-bottom: .9rem;
    font-size: clamp(2.55rem, 4.25vw, 4rem);
    line-height: 1.04;
}

.km-lead {
    max-width: 33rem;
    font-size: 1.02rem;
    line-height: 1.6;
}

.km-hero-actions {
    margin-top: 1.35rem;
}

.km-appointment-bar {
    margin-top: 1.15rem;
    max-width: 28rem;
}

.km-hero-illustration {
    min-height: 340px !important;
    align-items: center;
}

.km-hero-illustration img {
    width: min(100%, 520px) !important;
    max-height: 360px;
    object-fit: contain;
}

/* bring first cards closer and keep them calm */
.km-link-section {
    padding: 2.8rem 0 3.2rem !important;
}

.km-link-card {
    min-height: 13.5rem;
    padding: 1.2rem;
}

/* section rhythm tighter */
.km-section {
    padding: 4.2rem 0 !important;
}

.km-section-light {
    padding: 4.2rem 0 !important;
}

/* appointment block less chunky */
.km-info-panel {
    padding: 1.25rem;
}

.km-note {
    padding: .9rem 1rem;
}

/* care cards a bit less tall */
.km-care-card {
    min-height: 11.5rem;
    padding: 1.25rem;
}

/* desktop only polish */
@media (min-width: 992px) {
    .km-hero {
        min-height: 520px;
        display: flex;
        align-items: center;
    }

    .km-hero-illustration {
        transform: translateY(8px);
    }
}

@media (max-width: 991.98px) {
    .km-hero {
        padding: 3rem 0 !important;
    }

    .km-hero-grid {
        grid-template-columns: 1fr;
    }

    .km-hero-illustration img {
        width: min(100%, 420px) !important;
    }
}

/* KM polish pass: brand, hero illustration, equal cards, clearer contrast */

/* navbar brand */
.km-brand {
    display: inline-flex;
    align-items: center;
    gap: .7rem;
    color: var(--km-primary-dark);
    text-decoration: none;
}

.km-brand .brand-mark {
    width: 2.45rem;
    height: 2.45rem;
    font-size: 1.2rem;
}

.km-brand-text {
    display: flex;
    flex-direction: column;
    line-height: 1.05;
}

.km-brand-text strong {
    font-size: 1.08rem;
    letter-spacing: -.02em;
}

.km-brand-text small {
    margin-top: .18rem;
    color: #5B6D73;
    font-size: .78rem;
    font-weight: 500;
}

/* hero proportions */
.km-hero-grid {
    grid-template-columns: minmax(0, .85fr) minmax(420px, 1.15fr);
}

.km-hero-illustration {
    min-height: 390px !important;
}

.km-hero-illustration img {
    width: min(100%, 620px) !important;
    max-height: 430px !important;
}

/* equal main link boxes */
.km-link-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    align-items: stretch;
}

.km-link-card,
.km-link-card-large,
.km-link-card-soft {
    min-height: 14rem !important;
    height: 100%;
}

/* clearer section rhythm: blue-teal / white / blue-teal / white */
.km-hero {
    background:
        radial-gradient(circle at 78% 28%, rgba(192, 224, 230, .62), transparent 20rem),
        linear-gradient(135deg, #F5FAFB 0%, #EEF7F8 48%, #DDF0F2 100%) !important;
}

.km-link-section {
    background: #FFFFFF !important;
}

.km-section-light {
    background: #DDF0F2 !important;
}

.km-section {
    background: #FFFFFF !important;
}

.km-final-section {
    background: #F5FAFB !important;
}

/* make cards less washed out */
.km-link-card,
.km-care-card,
.km-info-panel,
.km-hours-panel {
    border-color: #C0DDE3 !important;
}

.km-link-card:hover,
.km-care-card:hover {
    border-color: #86C5CD !important;
}

/* stronger text contrast */
.km-hero-copy h1,
.km-split h2,
.km-section-head h2,
.km-final-cta h2 {
    color: #0B1F24 !important;
}

.km-lead,
.km-link-card p,
.km-care-card p,
.km-split p {
    color: #33464C !important;
}

.km-muted,
.km-brand-text small {
    color: #5B6D73 !important;
}

/* appointment row text after removing test results */
.km-appointment-bar span,
.km-info-row span {
    color: #5B6D73;
}

.km-appointment-bar strong,
.km-appointment-bar a,
.km-info-row a,
.km-info-row strong {
    color: #15545F;
}

/* mobile navbar brand */
@media (max-width: 575.98px) {
    .km-brand .brand-mark {
        width: 2.2rem;
        height: 2.2rem;
    }

    .km-brand-text strong {
        font-size: .98rem;
    }

    .km-brand-text small {
        font-size: .72rem;
    }

    .km-hero-grid {
        grid-template-columns: 1fr !important;
    }

    .km-hero-illustration {
        min-height: auto !important;
    }

    .km-hero-illustration img {
        width: min(100%, 440px) !important;
        max-height: none !important;
    }
}

/* KM polish pass 6:
   richer teal palette, warm accent, navbar breathing, labels, icons and fade effects */

:root {
    --km-primary: #287C89;
    --km-primary-dark: #15545F;
    --km-primary-deep: #001B2E;

    --km-accent: #E7BB41;
    --km-accent-soft: #FFF6D8;

    --km-ink: #001B2E;
    --km-text: #393E41;
    --km-muted: #707D7D;

    --km-bg: #F7F7F7;
    --km-bg-soft: #EAF3F4;
    --km-card: #FFFFFF;

    --km-border: #D8E4E7;
    --km-border-strong: #BDD5EA;
}

/* navbar: trochu víc vzduchu, ne nafouknout jak ceník energií */
.topbar {
    padding-top: .42rem !important;
    padding-bottom: .42rem !important;
    background: #F7F7F7;
    border-color: #D8E4E7 !important;
}

.navbar {
    padding-top: .58rem !important;
    padding-bottom: .58rem !important;
    border-color: #D8E4E7 !important;
    box-shadow: 0 8px 22px rgba(0, 27, 46, .035);
}

.navbar .container {
    min-height: 3.65rem;
}

.nav-link {
    color: #393E41;
    padding-top: .6rem;
    padding-bottom: .6rem;
}

.nav-link.active {
    color: var(--km-primary) !important;
    font-weight: 750;
}

.km-brand .brand-mark {
    width: 2.55rem;
    height: 2.55rem;
    background: #EAF3F4;
    color: var(--km-primary);
}

.km-brand-text strong {
    color: var(--km-primary-dark);
    font-size: 1.12rem;
}

.km-brand-text small {
    color: #707D7D !important;
}

/* palette */
.km-home {
    --km-primary: #287C89;
    --km-primary-dark: #15545F;
    --km-primary-deep: #001B2E;

    --km-accent: #E7BB41;
    --km-accent-soft: #FFF6D8;

    --km-ink: #001B2E;
    --km-text: #393E41;
    --km-muted: #707D7D;

    --km-bg: #F7F7F7;
    --km-bg-soft: #EAF3F4;
    --km-bg-strong: #DDF0F2;

    --km-card: #FFFFFF;
    --km-border: #D8E4E7;
    --km-border-teal: #BDD5EA;

    background: var(--km-bg);
    color: var(--km-text);
}

/* hero: trochu živější, pořád modrozelený */
.km-hero {
    background:
        radial-gradient(circle at 77% 28%, rgba(40, 124, 137, .20), transparent 21rem),
        linear-gradient(135deg, #F7F7F7 0%, #EAF3F4 48%, #DDF0F2 100%) !important;
}

.km-hero-copy h1 {
    color: var(--km-ink) !important;
}

.km-lead {
    color: var(--km-text) !important;
}

.km-hero-illustration img {
    width: min(100%, 670px) !important;
    max-height: 470px !important;
}

/* buttons */
.km-home .btn,
.navbar .btn {
    border-radius: .62rem;
    font-weight: 750;
}

.km-home .btn-primary,
.navbar .btn-primary {
    --bs-btn-bg: var(--km-primary);
    --bs-btn-border-color: var(--km-primary);
    --bs-btn-hover-bg: var(--km-primary-dark);
    --bs-btn-hover-border-color: var(--km-primary-dark);
    box-shadow: 0 8px 18px rgba(40, 124, 137, .16);
}

.km-home .btn-outline-primary {
    --bs-btn-color: var(--km-primary-dark);
    --bs-btn-border-color: var(--km-primary);
    --bs-btn-hover-bg: var(--km-primary);
    --bs-btn-hover-border-color: var(--km-primary);
}

/* labely: ne jako tlačítka */
.km-pill {
    gap: .42rem;
    color: var(--km-ink) !important;
    background: #FFFFFF !important;
    border-color: var(--km-border-strong) !important;
    border-radius: .55rem !important;
    box-shadow: 0 5px 14px rgba(0, 27, 46, .035);
    font-weight: 800;
}

.km-pill i {
    color: var(--km-accent);
}

/* section rhythm a trochu víc paddingu */
.km-link-section {
    padding-top: 3.45rem !important;
    padding-bottom: 3.65rem !important;
    background: #FFFFFF !important;
}

.km-section,
.km-section-light {
    padding-top: 4.75rem !important;
    padding-bottom: 4.85rem !important;
}

.km-section {
    background: #FFFFFF !important;
}

.km-section-light {
    background: var(--km-bg-soft) !important;
}

.km-final-section {
    padding-top: 4.75rem !important;
    padding-bottom: 4.9rem !important;
    background: #FFFFFF !important;
}

/* cards: jasnější obrys, stejné plochy */
.km-link-card,
.km-link-card-large,
.km-link-card-soft,
.km-care-card,
.km-care-card:nth-child(2),
.km-care-card:nth-child(3),
.km-info-panel,
.km-hours-panel {
    background: var(--km-card) !important;
    border: 1px solid var(--km-border) !important;
    border-radius: .8rem !important;
    box-shadow: 0 10px 26px rgba(0, 27, 46, .035) !important;
}

.km-link-card:hover,
.km-care-card:hover {
    transform: translateY(-3px);
    border-color: var(--km-border-strong) !important;
    box-shadow: 0 18px 38px rgba(0, 27, 46, .075) !important;
}

/* hlavní tři boxy */
.km-link-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    align-items: stretch;
}

.km-link-card {
    min-height: 14.25rem !important;
    height: 100%;
}

.km-card-icon {
    display: inline-flex;
    width: 2.4rem;
    height: 2.4rem;
    align-items: center;
    justify-content: center;
    margin-top: .8rem;
    margin-bottom: 1.05rem;
    border-radius: .65rem;
    background: var(--km-bg-soft);
    color: var(--km-primary);
    font-size: 1.15rem;
}

.km-link-card:nth-child(2) .km-card-icon {
    color: #9A6500;
    background: var(--km-accent-soft);
}

.km-link-card:nth-child(3) .km-card-icon {
    color: #287C89;
    background: #EAF3F4;
}

.km-link-card span {
    color: var(--km-primary-dark) !important;
}

.km-link-card h2,
.km-care-card h3,
.km-split h2,
.km-section-head h2 {
    color: var(--km-ink) !important;
}

.km-link-card p,
.km-care-card p,
.km-split p {
    color: var(--km-text) !important;
}

.km-link-card strong,
.km-info-row a,
.km-info-row strong {
    color: var(--km-primary-dark) !important;
}

/* accent underline, ale ne cirkus */
.km-link-card strong,
.text-link {
    text-decoration-color: rgba(231, 187, 65, .9) !important;
    text-decoration-thickness: 2px;
    text-underline-offset: .25em;
}

/* appointment panel: ikony přes pseudo, protože tady to jde bez rozkopání HTML */
.km-info-row {
    align-items: center;
    position: relative;
    padding-left: 2.3rem;
}

.km-info-row::before {
    position: absolute;
    left: 0;
    top: .05rem;
    display: inline-flex;
    width: 1.65rem;
    height: 1.65rem;
    align-items: center;
    justify-content: center;
    border-radius: .45rem;
    background: var(--km-accent-soft);
    color: #9A6500;
    font-family: "bootstrap-icons";
    font-size: .92rem;
}

.km-info-row:first-child::before {
    content: "\F5C1";
}

.km-info-row:nth-child(2)::before {
    content: "\F293";
}

.km-info-row span,
.km-appointment-bar span {
    color: var(--km-muted) !important;
}

.km-note {
    background: #F5FAFB !important;
    border: 1px solid var(--km-border-strong) !important;
    color: var(--km-ink) !important;
}

.km-note i {
    color: var(--km-accent) !important;
}

/* care icons */
.km-care-card i {
    background: var(--km-bg-soft) !important;
    color: var(--km-primary) !important;
    box-shadow: inset 0 0 0 1px var(--km-border);
}

.km-care-card:nth-child(2) i {
    background: var(--km-accent-soft) !important;
    color: #9A6500 !important;
}

.km-care-card:nth-child(3) i {
    background: #EEF7F8 !important;
    color: #3A8EA2 !important;
}

/* final CTA */
.km-final-cta {
    background:
        radial-gradient(circle at 90% 10%, rgba(231, 187, 65, .18), transparent 18rem),
        var(--km-primary-deep) !important;
    border-radius: .9rem !important;
}

.km-pill-light {
    color: #FFFFFF !important;
    background: rgba(255, 255, 255, .12) !important;
    border-color: rgba(255, 255, 255, .24) !important;
}

.km-pill-light i {
    color: var(--km-accent);
}

/* subtle fade. Ano, animace, ale bez ohňostroje pro pacienty. */
@media (prefers-reduced-motion: no-preference) {
    .km-hero-copy,
    .km-hero-illustration,
    .km-link-card,
    .km-split > *,
    .km-care-card,
    .km-hours-panel,
    .km-final-cta {
        animation: kmFadeUp .55s ease both;
    }

    .km-hero-illustration {
        animation-delay: .08s;
    }

    .km-link-card:nth-child(1),
    .km-care-card:nth-child(1) {
        animation-delay: .04s;
    }

    .km-link-card:nth-child(2),
    .km-care-card:nth-child(2) {
        animation-delay: .1s;
    }

    .km-link-card:nth-child(3),
    .km-care-card:nth-child(3) {
        animation-delay: .16s;
    }

    @keyframes kmFadeUp {
        from {
            opacity: 0;
            transform: translateY(14px);
        }

        to {
            opacity: 1;
            transform: translateY(0);
        }
    }
}

/* mobile */
@media (max-width: 991.98px) {
    .km-hero-illustration img {
        width: min(100%, 500px) !important;
        max-height: none !important;
    }

    .km-link-section {
        padding-top: 3rem !important;
        padding-bottom: 3.1rem !important;
    }

    .km-section,
    .km-section-light {
        padding-top: 4rem !important;
        padding-bottom: 4rem !important;
    }
}

@media (max-width: 575.98px) {
    .topbar {
        padding-top: .55rem !important;
        padding-bottom: .55rem !important;
    }

    .navbar {
        padding-top: .7rem !important;
        padding-bottom: .7rem !important;
    }

    .km-card-icon {
        margin-top: .65rem;
        margin-bottom: .85rem;
    }

    .km-hero-illustration img {
        width: 100% !important;
    }
}

/* KM polish pass 7:
   remove yellow accent, restore clean blue-teal clinical look */

/* calmer navbar */
.topbar {
    padding-top: .32rem !important;
    padding-bottom: .32rem !important;
    background: #F8FCFC !important;
    border-color: #E1ECEF !important;
}

.navbar {
    padding-top: .42rem !important;
    padding-bottom: .42rem !important;
    box-shadow: none !important;
    border-color: #E1ECEF !important;
}

.navbar .container {
    min-height: 3.25rem !important;
}

.km-brand {
    gap: .55rem !important;
}

.km-brand .brand-mark {
    width: 2.25rem !important;
    height: 2.25rem !important;
    background: #EAF3F4 !important;
    color: #287C89 !important;
    font-size: 1.05rem !important;
}

.km-brand-text strong {
    font-size: 1.02rem !important;
    color: #15545F !important;
}

.km-brand-text small {
    font-size: .72rem !important;
    color: #707D7D !important;
}

.nav-link {
    color: #393E41 !important;
    padding-top: .45rem !important;
    padding-bottom: .45rem !important;
}

.nav-link.active {
    color: #287C89 !important;
}

/* remove warm accent completely */
.km-home {
    --km-primary: #287C89;
    --km-primary-dark: #15545F;
    --km-primary-deep: #001B2E;

    --km-accent: #3A8EA2;
    --km-accent-soft: #EAF3F4;

    --km-ink: #001B2E;
    --km-text: #393E41;
    --km-muted: #707D7D;

    --km-bg: #F7F7F7;
    --km-bg-soft: #EAF3F4;
    --km-bg-strong: #DDF0F2;

    --km-card: #FFFFFF;
    --km-border: #D8E4E7;
    --km-border-teal: #BDD5EA;
}

/* hero cleaner, less washed green-blue soup */
.km-hero {
    background:
        radial-gradient(circle at 76% 28%, rgba(40, 124, 137, .16), transparent 21rem),
        linear-gradient(135deg, #F7F7F7 0%, #F4FAFB 50%, #EAF3F4 100%) !important;
}

.km-hero-copy h1 {
    color: #001B2E !important;
}

.km-lead {
    color: #393E41 !important;
}

/* keep illustration larger, but not cartoonishly floating */
.km-hero-illustration img {
    width: min(100%, 640px) !important;
    max-height: 450px !important;
}

/* buttons back to strict teal */
.km-home .btn-primary,
.navbar .btn-primary {
    --bs-btn-bg: #287C89;
    --bs-btn-border-color: #287C89;
    --bs-btn-hover-bg: #15545F;
    --bs-btn-hover-border-color: #15545F;
    box-shadow: none !important;
}

.km-home .btn-outline-primary {
    --bs-btn-color: #15545F;
    --bs-btn-border-color: #287C89;
    --bs-btn-hover-bg: #287C89;
    --bs-btn-hover-border-color: #287C89;
}

.km-home .btn,
.navbar .btn {
    border-radius: .55rem !important;
}

/* labels should not look like buttons, but also not like yellow stickers */
.km-pill {
    gap: .38rem !important;
    color: #15545F !important;
    background: #F8FCFC !important;
    border: 1px solid #BDD5EA !important;
    border-radius: .5rem !important;
    box-shadow: none !important;
    font-weight: 750 !important;
}

.km-pill i {
    color: #287C89 !important;
}

/* section rhythm: clean contrast, no sad green fog */
.km-link-section {
    background: #FFFFFF !important;
    padding-top: 3.15rem !important;
    padding-bottom: 3.35rem !important;
}

.km-section {
    background: #FFFFFF !important;
    padding-top: 4.45rem !important;
    padding-bottom: 4.55rem !important;
}

.km-section-light {
    background: #EAF3F4 !important;
    padding-top: 4.45rem !important;
    padding-bottom: 4.55rem !important;
}

.km-final-section {
    background: #FFFFFF !important;
    padding-top: 4.45rem !important;
    padding-bottom: 4.65rem !important;
}

/* cards: remove decorative accent feel */
.km-link-card,
.km-link-card-large,
.km-link-card-soft,
.km-care-card,
.km-care-card:nth-child(2),
.km-care-card:nth-child(3),
.km-info-panel,
.km-hours-panel {
    background: #FFFFFF !important;
    border: 1px solid #D8E4E7 !important;
    border-radius: .75rem !important;
    box-shadow: 0 8px 22px rgba(0, 27, 46, .03) !important;
}

.km-link-card:hover,
.km-care-card:hover {
    transform: translateY(-2px) !important;
    border-color: #BDD5EA !important;
    box-shadow: 0 14px 30px rgba(0, 27, 46, .055) !important;
}

/* icons: all blue-teal, no yellow */
.km-card-icon {
    background: #EAF3F4 !important;
    color: #287C89 !important;
    border-radius: .55rem !important;
    box-shadow: inset 0 0 0 1px #D8E4E7;
}

.km-link-card:nth-child(2) .km-card-icon,
.km-link-card:nth-child(3) .km-card-icon {
    background: #EAF3F4 !important;
    color: #287C89 !important;
}

/* remove yellow underline */
.km-link-card strong,
.text-link {
    color: #15545F !important;
    text-decoration-color: rgba(40, 124, 137, .45) !important;
    text-decoration-thickness: 1.5px !important;
    text-underline-offset: .24em;
}

/* info panel pseudo icons back to teal */
.km-info-row::before {
    background: #EAF3F4 !important;
    color: #287C89 !important;
}

.km-note {
    background: #F8FCFC !important;
    border: 1px solid #BDD5EA !important;
    color: #001B2E !important;
}

.km-note i {
    color: #287C89 !important;
}

/* care cards icons */
.km-care-card i,
.km-care-card:nth-child(2) i,
.km-care-card:nth-child(3) i {
    background: #EAF3F4 !important;
    color: #287C89 !important;
    box-shadow: inset 0 0 0 1px #D8E4E7 !important;
}

/* final CTA: dark teal only */
.km-final-cta {
    background: #001B2E !important;
    border-radius: .85rem !important;
}

.km-pill-light {
    color: #FFFFFF !important;
    background: rgba(255, 255, 255, .10) !important;
    border-color: rgba(255, 255, 255, .22) !important;
}

.km-pill-light i {
    color: #BDD5EA !important;
}

/* fade effects less obvious */
@media (prefers-reduced-motion: no-preference) {
    .km-hero-copy,
    .km-hero-illustration,
    .km-link-card,
    .km-split > *,
    .km-care-card,
    .km-hours-panel,
    .km-final-cta {
        animation-duration: .38s !important;
    }

    @keyframes kmFadeUp {
        from {
            opacity: 0;
            transform: translateY(8px);
        }

        to {
            opacity: 1;
            transform: translateY(0);
        }
    }
}

/* KM polish pass 8:
   full-site palette based on Jet Black / Silver / White / Coral Glow / Teal.
   Navbar layout restored, because apparently touching navbar was a crime scene. */

:root {
    --km-ink: #2D3142;
    --km-text: #393E41;
    --km-muted: #707D7D;

    --km-silver: #BFC0C0;
    --km-silver-soft: #EEF0F0;
    --km-white: #FFFFFF;

    --km-primary: #287C89;
    --km-primary-dark: #1F6975;
    --km-primary-deep: #174C55;
    --km-primary-soft: #E7F2F3;

    --km-accent: #EF8354;
    --km-accent-dark: #D96D3F;
    --km-accent-soft: #FCE7DC;

    --km-bg: #F7F8F8;
    --km-bg-soft: #EEF0F0;
    --km-card: #FFFFFF;
    --km-border: #D7DBDD;
    --km-border-strong: #BFC0C0;
}

/* Restore navbar layout, do not redesign it */
.topbar {
    padding-top: .5rem !important;
    padding-bottom: .5rem !important;
    background: #F7F8F8 !important;
    border-color: #D7DBDD !important;
}

.navbar {
    padding-top: var(--bs-navbar-padding-y) !important;
    padding-bottom: var(--bs-navbar-padding-y) !important;
    box-shadow: none !important;
    background: #FFFFFF !important;
    border-color: #D7DBDD !important;
}

.navbar .container {
    min-height: 0 !important;
}

.km-brand {
    gap: .7rem !important;
}

.km-brand .brand-mark {
    width: 2.45rem !important;
    height: 2.45rem !important;
    font-size: 1.2rem !important;
    background: var(--km-primary-soft) !important;
    color: var(--km-primary) !important;
}

.km-brand-text strong {
    font-size: 1.08rem !important;
    color: var(--km-primary-deep) !important;
}

.km-brand-text small {
    font-size: .78rem !important;
    color: var(--km-muted) !important;
}

.nav-link {
    color: var(--km-text) !important;
    padding-top: var(--bs-nav-link-padding-y) !important;
    padding-bottom: var(--bs-nav-link-padding-y) !important;
}

.nav-link.active {
    color: var(--km-primary) !important;
    font-weight: 700;
}

/* Global public look */
body {
    color: var(--km-text);
    background: var(--km-bg);
}

a {
    color: var(--km-primary);
}

a:hover {
    color: var(--km-primary-dark);
}

.text-primary {
    color: var(--km-primary) !important;
}

.btn {
    border-radius: .62rem;
    font-weight: 700;
}

.btn-primary,
.navbar .btn-primary,
.km-home .btn-primary {
    --bs-btn-bg: var(--km-primary);
    --bs-btn-border-color: var(--km-primary);
    --bs-btn-hover-bg: var(--km-primary-dark);
    --bs-btn-hover-border-color: var(--km-primary-dark);
    --bs-btn-color: #FFFFFF;
    --bs-btn-hover-color: #FFFFFF;
    box-shadow: none !important;
}

.btn-outline-primary,
.km-home .btn-outline-primary {
    --bs-btn-color: var(--km-primary-deep);
    --bs-btn-border-color: var(--km-primary);
    --bs-btn-hover-bg: var(--km-primary);
    --bs-btn-hover-border-color: var(--km-primary);
    --bs-btn-hover-color: #FFFFFF;
}

/* Page headers and non-homepage cards */
.page-header {
    background:
        linear-gradient(135deg, #FFFFFF 0%, #F7F8F8 48%, #EEF0F0 100%) !important;
}

.card {
    border-color: var(--km-border) !important;
}

.alert-primary {
    --bs-alert-color: var(--km-primary-deep);
    --bs-alert-bg: var(--km-primary-soft);
    --bs-alert-border-color: #C7DEE2;
}

.alert-light {
    background: #FFFFFF !important;
    border-color: var(--km-border) !important;
}

.table-today th,
.table-today td {
    background: var(--km-primary-soft) !important;
}

.table-today th:first-child::after {
    background: var(--km-primary);
}

.site-footer {
    background: #FFFFFF !important;
    border-color: var(--km-border) !important;
}

.site-footer a {
    color: var(--km-primary-deep);
}

/* Homepage palette, applied everywhere inside km-home */
.km-home {
    --km-ink: #2D3142;
    --km-text: #393E41;
    --km-muted: #707D7D;

    --km-primary: #287C89;
    --km-primary-dark: #1F6975;
    --km-primary-deep: #174C55;
    --km-primary-soft: #E7F2F3;

    --km-accent: #EF8354;
    --km-accent-dark: #D96D3F;
    --km-accent-soft: #FCE7DC;

    --km-bg: #F7F8F8;
    --km-bg-soft: #EEF0F0;
    --km-card: #FFFFFF;
    --km-border: #D7DBDD;
    --km-border-strong: #BFC0C0;

    background: var(--km-bg) !important;
    color: var(--km-text);
}

/* Hero */
.km-hero {
    background:
        radial-gradient(circle at 76% 28%, rgba(40, 124, 137, .16), transparent 21rem),
        linear-gradient(135deg, #FFFFFF 0%, #F7F8F8 50%, #EEF0F0 100%) !important;
}

.km-hero-copy h1,
.km-split h2,
.km-section-head h2,
.km-final-cta h2,
.km-link-card h2,
.km-care-card h3 {
    color: var(--km-ink) !important;
}

.km-lead,
.km-link-card p,
.km-care-card p,
.km-split p {
    color: var(--km-text) !important;
}

.km-appointment-bar {
    background: #FFFFFF !important;
    border-color: var(--km-border) !important;
    box-shadow: 0 8px 22px rgba(45, 49, 66, .045) !important;
}

.km-appointment-bar span,
.km-info-row span {
    color: var(--km-muted) !important;
}

.km-appointment-bar strong,
.km-appointment-bar a,
.km-info-row strong,
.km-info-row a {
    color: var(--km-primary-deep) !important;
}

/* SVG stays large */
.km-hero-illustration img {
    width: min(100%, 650px) !important;
    max-height: 455px !important;
}

/* Labels: different from buttons, coral only as tiny accent */
.km-pill {
    gap: .38rem !important;
    color: var(--km-ink) !important;
    background: #FFFFFF !important;
    border: 1px solid var(--km-border-strong) !important;
    border-radius: .5rem !important;
    box-shadow: none !important;
    font-weight: 750 !important;
}

.km-pill i {
    color: var(--km-accent) !important;
}

.km-pill-light {
    color: #FFFFFF !important;
    background: rgba(255, 255, 255, .1) !important;
    border-color: rgba(255, 255, 255, .28) !important;
}

.km-pill-light i {
    color: var(--km-accent) !important;
}

/* Section rhythm: color / white / color / white */
.km-link-section,
.km-section,
.km-final-section {
    background: #FFFFFF !important;
}

.km-section-light {
    background: var(--km-bg-soft) !important;
}

.km-link-section {
    padding-top: 3.35rem !important;
    padding-bottom: 3.55rem !important;
}

.km-section,
.km-section-light {
    padding-top: 4.65rem !important;
    padding-bottom: 4.75rem !important;
}

.km-final-section {
    padding-top: 4.65rem !important;
    padding-bottom: 4.85rem !important;
}

/* Cards consistent across all groups */
.km-link-card,
.km-link-card-large,
.km-link-card-soft,
.km-care-card,
.km-care-card:nth-child(2),
.km-care-card:nth-child(3),
.km-info-panel,
.km-hours-panel {
    background: #FFFFFF !important;
    border: 1px solid var(--km-border) !important;
    border-radius: .75rem !important;
    box-shadow: 0 8px 22px rgba(45, 49, 66, .035) !important;
}

.km-link-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

.km-link-card {
    min-height: 14.25rem !important;
    height: 100%;
}

.km-link-card:hover,
.km-care-card:hover {
    transform: translateY(-2px) !important;
    border-color: var(--km-border-strong) !important;
    box-shadow: 0 14px 30px rgba(45, 49, 66, .07) !important;
}

/* Icons system-wide inside homepage */
.km-card-icon,
.km-care-card i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--km-primary-soft) !important;
    color: var(--km-primary) !important;
    border-radius: .55rem !important;
    box-shadow: inset 0 0 0 1px #C7DEE2 !important;
}

.km-card-icon {
    width: 2.4rem;
    height: 2.4rem;
    margin-top: .8rem;
    margin-bottom: 1.05rem;
    font-size: 1.15rem;
}

.km-link-card:nth-child(2) .km-card-icon,
.km-care-card:nth-child(2) i {
    background: var(--km-accent-soft) !important;
    color: var(--km-accent-dark) !important;
    box-shadow: inset 0 0 0 1px #F2C7B4 !important;
}

.km-link-card:nth-child(3) .km-card-icon,
.km-care-card:nth-child(3) i {
    background: var(--km-primary-soft) !important;
    color: var(--km-primary) !important;
}

/* Links and details */
.km-link-card span {
    color: var(--km-primary-deep) !important;
}

.km-link-card strong,
.text-link {
    color: var(--km-primary-deep) !important;
    text-decoration-color: rgba(239, 131, 84, .75) !important;
    text-decoration-thickness: 2px !important;
    text-underline-offset: .25em;
}

/* Info panel icons: coral as accent, consistently */
.km-info-row::before {
    background: var(--km-accent-soft) !important;
    color: var(--km-accent-dark) !important;
}

.km-note {
    background: #FFFFFF !important;
    border: 1px solid var(--km-border) !important;
    color: var(--km-ink) !important;
}

.km-note i {
    color: var(--km-accent) !important;
}

/* Final CTA */
.km-final-cta {
    background:
        radial-gradient(circle at 88% 12%, rgba(239, 131, 84, .18), transparent 18rem),
        var(--km-ink) !important;
    border-radius: .85rem !important;
}

.km-final-cta h2 {
    color: #FFFFFF !important;
}

.km-final-cta p {
    color: rgba(255, 255, 255, .78) !important;
}

/* Fade effects, but not Las Vegas */
@media (prefers-reduced-motion: no-preference) {
    .km-hero-copy,
    .km-hero-illustration,
    .km-link-card,
    .km-split > *,
    .km-care-card,
    .km-hours-panel,
    .km-final-cta {
        animation: kmFadeUp .4s ease both !important;
    }

    .km-hero-illustration {
        animation-delay: .06s;
    }

    .km-link-card:nth-child(2),
    .km-care-card:nth-child(2) {
        animation-delay: .08s;
    }

    .km-link-card:nth-child(3),
    .km-care-card:nth-child(3) {
        animation-delay: .14s;
    }

    @keyframes kmFadeUp {
        from {
            opacity: 0;
            transform: translateY(8px);
        }

        to {
            opacity: 1;
            transform: translateY(0);
        }
    }
}

@media (max-width: 991.98px) {
    .km-hero-illustration img {
        width: min(100%, 500px) !important;
        max-height: none !important;
    }

    .km-link-grid {
        grid-template-columns: 1fr !important;
    }
}

@media (max-width: 575.98px) {
    .km-hero-illustration img {
        width: 100% !important;
    }
}

/* KM polish pass 9:
   stronger full homepage palette, no navbar layout changes.
   Palette: Jet Black / Silver / White / Coral Glow / Teal */

/* Do not visually redesign navbar anymore */
.topbar {
    background: #F7F7F7 !important;
    border-color: #D8DADA !important;
}

.navbar {
    background: #FFFFFF !important;
    border-color: #D8DADA !important;
    box-shadow: none !important;
}

.navbar .btn-primary {
    --bs-btn-bg: #287C89;
    --bs-btn-border-color: #287C89;
    --bs-btn-hover-bg: #1F6975;
    --bs-btn-hover-border-color: #1F6975;
}

.navbar .brand-mark {
    background: #EAF3F4 !important;
    color: #287C89 !important;
}

/* Actual stronger palette */
.km-home {
    --km-ink: #2D3142;
    --km-text: #393E41;
    --km-muted: #707D7D;

    --km-primary: #287C89;
    --km-primary-dark: #1F6975;
    --km-primary-deep: #184D57;

    --km-accent: #EF8354;
    --km-accent-dark: #D96A3D;
    --km-accent-soft: #FFE4D6;

    --km-silver: #BFC0C0;
    --km-silver-soft: #E8EAEA;
    --km-bg: #F7F7F7;
    --km-card: #FFFFFF;
    --km-border: #D4D8D9;
    --km-border-dark: #BFC0C0;

    background: var(--km-bg) !important;
    color: var(--km-text) !important;
}

/* Hero: less pale teal fog, more clean editorial contrast */
.km-hero {
    background:
        linear-gradient(90deg, rgba(255,255,255,.92) 0%, rgba(247,247,247,.92) 44%, rgba(232,234,234,.92) 100%),
        radial-gradient(circle at 75% 28%, rgba(40, 124, 137, .18), transparent 22rem) !important;
    border-bottom: 1px solid #D8DADA;
}

.km-hero-copy h1 {
    color: var(--km-ink) !important;
}

.km-lead {
    color: var(--km-text) !important;
}

/* Hero label gets coral identity, not button identity */
.km-hero .km-pill {
    color: var(--km-ink) !important;
    background: #FFFFFF !important;
    border-color: var(--km-silver) !important;
}

.km-hero .km-pill::before {
    content: "";
    width: .45rem;
    height: .45rem;
    border-radius: 999px;
    background: var(--km-accent);
    margin-right: .15rem;
}

/* Appointment bar: visible palette, not dead white strip */
.km-appointment-bar {
    background: #FFFFFF !important;
    border: 1px solid #D4D8D9 !important;
    border-left: 5px solid var(--km-accent) !important;
    box-shadow: 0 14px 34px rgba(45, 49, 66, .06) !important;
}

.km-appointment-bar span {
    color: var(--km-muted) !important;
}

.km-appointment-bar strong,
.km-appointment-bar a {
    color: var(--km-primary-deep) !important;
}

/* SVG bigger and a bit more dominant */
.km-hero-illustration {
    transform: translateY(4px);
}

.km-hero-illustration img {
    width: min(100%, 700px) !important;
    max-height: 485px !important;
}

/* Buttons */
.km-home .btn-primary {
    --bs-btn-bg: var(--km-primary);
    --bs-btn-border-color: var(--km-primary);
    --bs-btn-hover-bg: var(--km-primary-dark);
    --bs-btn-hover-border-color: var(--km-primary-dark);
    box-shadow: 0 10px 22px rgba(40, 124, 137, .16) !important;
}

.km-home .btn-outline-primary {
    --bs-btn-color: var(--km-primary-deep);
    --bs-btn-border-color: var(--km-primary);
    --bs-btn-hover-bg: var(--km-primary);
    --bs-btn-hover-border-color: var(--km-primary);
}

/* Section rhythm: now actually visible */
.km-link-section {
    background: #FFFFFF !important;
    padding-top: 3.7rem !important;
    padding-bottom: 3.9rem !important;
}

.km-section {
    background: #FFFFFF !important;
    padding-top: 5rem !important;
    padding-bottom: 5.1rem !important;
}

.km-section-light {
    background: var(--km-silver-soft) !important;
    padding-top: 5rem !important;
    padding-bottom: 5.1rem !important;
}

.km-final-section {
    background: #FFFFFF !important;
    padding-top: 5rem !important;
    padding-bottom: 5.2rem !important;
}

/* Section heading labels */
.km-section .km-pill,
.km-section-light .km-pill {
    color: var(--km-ink) !important;
    background: #FFFFFF !important;
    border-color: var(--km-silver) !important;
    box-shadow: none !important;
}

.km-section .km-pill i,
.km-section-light .km-pill i {
    color: var(--km-accent) !important;
}

/* Headings get stronger, because now they look like headings, astonishing */
.km-split h2,
.km-section-head h2,
.km-final-cta h2 {
    color: var(--km-ink) !important;
}

.km-split p,
.km-care-card p,
.km-link-card p {
    color: var(--km-text) !important;
}

/* Cards: same base, but with real palette accent */
.km-link-card,
.km-link-card-large,
.km-link-card-soft,
.km-care-card,
.km-care-card:nth-child(2),
.km-care-card:nth-child(3),
.km-info-panel,
.km-hours-panel {
    background: #FFFFFF !important;
    border: 1px solid var(--km-border) !important;
    border-top: 4px solid var(--km-primary) !important;
    border-radius: .72rem !important;
    box-shadow: 0 12px 28px rgba(45, 49, 66, .045) !important;
}

.km-link-card:nth-child(2),
.km-care-card:nth-child(2) {
    border-top-color: var(--km-accent) !important;
}

.km-link-card:nth-child(3),
.km-care-card:nth-child(3) {
    border-top-color: var(--km-primary-dark) !important;
}

.km-link-card:hover,
.km-care-card:hover {
    transform: translateY(-3px) !important;
    border-color: var(--km-border-dark) !important;
    box-shadow: 0 20px 42px rgba(45, 49, 66, .08) !important;
}

/* Main cards equal and clearer */
.km-link-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 1.25rem !important;
}

.km-link-card {
    min-height: 14.6rem !important;
    height: 100%;
}

.km-link-card span {
    color: var(--km-muted) !important;
}

.km-link-card h2 {
    color: var(--km-ink) !important;
}

.km-link-card strong {
    color: var(--km-primary-deep) !important;
    text-decoration-color: var(--km-accent) !important;
    text-decoration-thickness: 2px !important;
}

/* Icons: consistent system, not random stickers */
.km-card-icon,
.km-care-card i {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    background: #EAF3F4 !important;
    color: var(--km-primary) !important;
    border-radius: .55rem !important;
    box-shadow: inset 0 0 0 1px #C7DEE2 !important;
}

.km-card-icon {
    width: 2.45rem;
    height: 2.45rem;
    margin-top: .85rem;
    margin-bottom: 1.1rem;
    font-size: 1.15rem;
}

.km-link-card:nth-child(2) .km-card-icon,
.km-care-card:nth-child(2) i {
    background: var(--km-accent-soft) !important;
    color: var(--km-accent-dark) !important;
    box-shadow: inset 0 0 0 1px #F1C4B0 !important;
}

.km-link-card:nth-child(3) .km-card-icon,
.km-care-card:nth-child(3) i {
    background: #EEF0F0 !important;
    color: var(--km-ink) !important;
    box-shadow: inset 0 0 0 1px var(--km-silver) !important;
}

/* Info panel: coral accent should show here too */
.km-info-panel {
    border-top-color: var(--km-accent) !important;
}

.km-info-row::before {
    background: var(--km-accent-soft) !important;
    color: var(--km-accent-dark) !important;
}

.km-info-row {
    border-bottom-color: var(--km-border) !important;
}

.km-note {
    background: #FFFFFF !important;
    border: 1px solid var(--km-border-dark) !important;
    border-left: 4px solid var(--km-accent) !important;
    color: var(--km-ink) !important;
}

.km-note i {
    color: var(--km-accent) !important;
}

/* Hours table inside colored section */
.km-hours-panel {
    border-top-color: var(--km-primary-dark) !important;
}

.km-home .table-today th,
.km-home .table-today td {
    background: #EEF0F0 !important;
}

.km-home .table-today th:first-child::after {
    background: var(--km-accent) !important;
    color: #FFFFFF !important;
}

/* Final CTA: actual palette moment */
.km-final-cta {
    background:
        radial-gradient(circle at 88% 8%, rgba(239, 131, 84, .22), transparent 18rem),
        linear-gradient(135deg, #2D3142 0%, #202433 100%) !important;
    border-radius: .85rem !important;
}

.km-final-cta h2 {
    color: #FFFFFF !important;
}

.km-final-cta p {
    color: rgba(255, 255, 255, .78) !important;
}

.km-final-cta .btn-light {
    background: #FFFFFF !important;
    color: var(--km-ink) !important;
    border-color: #FFFFFF !important;
}

/* Fade effects, visible but not circus */
@media (prefers-reduced-motion: no-preference) {
    .km-hero-copy,
    .km-hero-illustration,
    .km-link-card,
    .km-split > *,
    .km-care-card,
    .km-hours-panel,
    .km-final-cta {
        animation: kmFadeUp .42s ease both !important;
    }

    .km-link-card:nth-child(2),
    .km-care-card:nth-child(2) {
        animation-delay: .08s;
    }

    .km-link-card:nth-child(3),
    .km-care-card:nth-child(3) {
        animation-delay: .14s;
    }

    @keyframes kmFadeUp {
        from {
            opacity: 0;
            transform: translateY(10px);
        }

        to {
            opacity: 1;
            transform: translateY(0);
        }
    }
}

@media (max-width: 991.98px) {
    .km-hero-illustration img {
        width: min(100%, 520px) !important;
        max-height: none !important;
    }

    .km-link-grid {
        grid-template-columns: 1fr !important;
    }
}

@media (max-width: 575.98px) {
    .km-hero-illustration img {
        width: 100% !important;
    }
}

/* KM polish pass 10:
   cleaner spacing, no ugly underline accents, no icon/label borders,
   last cards dark, navbar breathing */

/* navbar padding, without changing structure */
.topbar {
    padding-top: .45rem !important;
    padding-bottom: .45rem !important;
}

.navbar {
    padding-top: .72rem !important;
    padding-bottom: .72rem !important;
}

.navbar .container {
    min-height: 3.7rem !important;
}

/* labels: no borders, softer chip */
.km-pill {
    border: 0 !important;
    background: #F1F3F3 !important;
    color: #2D3142 !important;
    box-shadow: none !important;
    padding: .36rem .72rem !important;
}

.km-pill i {
    color: #EF8354 !important;
}

/* more breathing room globally on homepage */
.km-hero {
    padding-top: 4.25rem !important;
    padding-bottom: 4.25rem !important;
}

.km-link-section {
    padding-top: 4.25rem !important;
    padding-bottom: 4.35rem !important;
}

.km-section,
.km-section-light {
    padding-top: 5.35rem !important;
    padding-bottom: 5.45rem !important;
}

.km-final-section {
    padding-top: 5.35rem !important;
    padding-bottom: 5.55rem !important;
}

/* slightly more internal space */
.km-link-card,
.km-care-card,
.km-info-panel {
    padding: 1.55rem !important;
}

.km-link-grid,
.km-care-grid {
    gap: 1.55rem !important;
}

.km-split {
    gap: clamp(2.5rem, 6vw, 5.5rem) !important;
}

.km-section-head {
    margin-bottom: 2.45rem !important;
}

/* remove colored underline horror show, use arrow instead */
.km-link-card strong,
.text-link {
    text-decoration: none !important;
    color: #174C55 !important;
}

.km-link-card strong::after {
    content: " →";
    color: #EF8354;
    font-weight: 900;
}

/* icons: no borders, clean colored tiles */
.km-card-icon,
.km-care-card i {
    border: 0 !important;
    box-shadow: none !important;
    background: #EAF3F4 !important;
    color: #287C89 !important;
}

.km-link-card:nth-child(2) .km-card-icon,
.km-care-card:nth-child(2) i {
    border: 0 !important;
    box-shadow: none !important;
    background: #FCE7DC !important;
    color: #D96A3D !important;
}

.km-link-card:nth-child(3) .km-card-icon,
.km-care-card:nth-child(3) i {
    border: 0 !important;
    box-shadow: none !important;
    background: #EEF0F0 !important;
    color: #2D3142 !important;
}

/* main cards a bit roomier */
.km-link-card {
    min-height: 15.3rem !important;
}

.km-care-card {
    min-height: 12.6rem !important;
}

/* make the last card in each card row dark */
.km-link-card:nth-child(3),
.km-care-card:nth-child(3) {
    background: #2D3142 !important;
    border-color: #2D3142 !important;
    color: #FFFFFF !important;
}

.km-link-card:nth-child(3) span,
.km-link-card:nth-child(3) h2,
.km-link-card:nth-child(3) p,
.km-link-card:nth-child(3) strong,
.km-care-card:nth-child(3) h3,
.km-care-card:nth-child(3) p {
    color: #FFFFFF !important;
}

.km-link-card:nth-child(3) p,
.km-care-card:nth-child(3) p {
    color: rgba(255, 255, 255, .78) !important;
}

.km-link-card:nth-child(3) strong::after {
    color: #EF8354;
}

.km-link-card:nth-child(3) .km-card-icon,
.km-care-card:nth-child(3) i {
    background: rgba(255, 255, 255, .12) !important;
    color: #FFFFFF !important;
}

/* keep borders on cards, but calmer and more deliberate */
.km-link-card,
.km-care-card,
.km-info-panel,
.km-hours-panel {
    border-radius: .85rem !important;
    border-width: 1px !important;
}

/* info panel cleaner */
.km-info-row {
    padding-top: .35rem !important;
    padding-bottom: 1.15rem !important;
}

.km-info-row::before {
    border: 0 !important;
    box-shadow: none !important;
}

.km-note {
    padding: 1.05rem 1.15rem !important;
    border-radius: .75rem !important;
}

/* appointment bar more breathing */
.km-appointment-bar {
    padding: .95rem 1.05rem !important;
    margin-top: 1.35rem !important;
}

/* hero image can breathe */
.km-hero-grid {
    gap: clamp(2.75rem, 6vw, 5.75rem) !important;
}

.km-hero-illustration img {
    width: min(100%, 710px) !important;
    max-height: 500px !important;
}

/* final CTA keep the dark brand tone */
.km-final-cta {
    background:
        radial-gradient(circle at 88% 8%, rgba(239, 131, 84, .18), transparent 18rem),
        #2D3142 !important;
}

/* mobile sanity */
@media (max-width: 991.98px) {
    .navbar {
        padding-top: .65rem !important;
        padding-bottom: .65rem !important;
    }

    .km-hero,
    .km-link-section,
    .km-section,
    .km-section-light,
    .km-final-section {
        padding-top: 3.8rem !important;
        padding-bottom: 3.9rem !important;
    }

    .km-link-card,
    .km-care-card,
    .km-info-panel {
        padding: 1.35rem !important;
    }

    .km-hero-illustration img {
        width: min(100%, 520px) !important;
        max-height: none !important;
    }
}

/* KM emergency cleanup pass 11:
   remove dark cards, keep #2D3142 only as ink / CTA tone */

/* all homepage cards back to white */
.km-link-card,
.km-link-card-large,
.km-link-card-soft,
.km-link-card:nth-child(2),
.km-link-card:nth-child(3),
.km-care-card,
.km-care-card:nth-child(2),
.km-care-card:nth-child(3),
.km-info-panel,
.km-hours-panel {
    background: #FFFFFF !important;
    color: #393E41 !important;
    border-color: #D4D8D9 !important;
}

/* keep top border accents only, not full card fills */
.km-link-card,
.km-care-card {
    border-top: 4px solid #287C89 !important;
}

.km-link-card:nth-child(2),
.km-care-card:nth-child(2) {
    border-top-color: #EF8354 !important;
}

.km-link-card:nth-child(3),
.km-care-card:nth-child(3) {
    border-top-color: #2D3142 !important;
}

/* restore text colors inside previously dark cards */
.km-link-card:nth-child(3) span,
.km-link-card:nth-child(3) h2,
.km-link-card:nth-child(3) p,
.km-link-card:nth-child(3) strong,
.km-care-card:nth-child(3) h3,
.km-care-card:nth-child(3) p {
    color: inherit !important;
}

.km-link-card h2,
.km-care-card h3 {
    color: #2D3142 !important;
}

.km-link-card p,
.km-care-card p {
    color: #393E41 !important;
}

.km-link-card span {
    color: #707D7D !important;
}

.km-link-card strong {
    color: #174C55 !important;
}

/* arrows stay, but no screaming underline */
.km-link-card strong {
    text-decoration: none !important;
}

.km-link-card strong::after {
    content: " →";
    color: #EF8354;
    font-weight: 800;
}

/* icons stay soft, not inverted */
.km-link-card:nth-child(3) .km-card-icon,
.km-care-card:nth-child(3) i {
    background: #EEF0F0 !important;
    color: #2D3142 !important;
}

.km-link-card:nth-child(2) .km-card-icon,
.km-care-card:nth-child(2) i {
    background: #FCE7DC !important;
    color: #D96A3D !important;
}

.km-link-card:nth-child(1) .km-card-icon,
.km-care-card:nth-child(1) i {
    background: #EAF3F4 !important;
    color: #287C89 !important;
}

/* keep final CTA dark, that is where #2D3142 belongs */
.km-final-cta {
    background:
        radial-gradient(circle at 88% 8%, rgba(239, 131, 84, .18), transparent 18rem),
        #2D3142 !important;
}

/* KM cleanup pass 12:
   fix first card hover, cleaner hero gradient, scroll reveal effects */

/* hover nesmí měnit barvu karty */
.km-link-card,
.km-link-card:hover,
.km-link-card:focus,
.km-link-card:focus-visible,
.km-link-card-large,
.km-link-card-large:hover,
.km-link-card-soft,
.km-link-card-soft:hover,
.km-care-card,
.km-care-card:hover {
    background: #FFFFFF !important;
}

.km-link-card:hover,
.km-link-card:focus-visible,
.km-care-card:hover,
.km-care-card:focus-visible {
    color: #393E41 !important;
    transform: translateY(-2px) !important;
    border-color: #BFC0C0 !important;
    box-shadow: 0 16px 34px rgba(45, 49, 66, .065) !important;
}

/* zachovat pouze horní linku podle pořadí */
.km-link-card:nth-child(1),
.km-care-card:nth-child(1) {
    border-top-color: #287C89 !important;
}

.km-link-card:nth-child(2),
.km-care-card:nth-child(2) {
    border-top-color: #EF8354 !important;
}

.km-link-card:nth-child(3),
.km-care-card:nth-child(3) {
    border-top-color: #2D3142 !important;
}

/* hero bez divného šedého přechodu */
.km-hero {
    background:
        radial-gradient(circle at 74% 30%, rgba(40, 124, 137, .12), transparent 20rem),
        linear-gradient(135deg, #FFFFFF 0%, #F8FBFB 46%, #EAF3F4 100%) !important;
    border-bottom: 1px solid #D8E4E7;
}

/* trošku čistší hero plocha pod ilustrací */
.km-hero-illustration {
    filter: none !important;
}

.km-hero-illustration img {
    width: min(100%, 700px) !important;
    max-height: 490px !important;
}

/* scroll reveal base */
.km-reveal {
    opacity: 0;
    transform: translate3d(0, 18px, 0);
    transition:
        opacity .58s ease,
        transform .58s ease;
    will-change: opacity, transform;
}

.km-reveal.is-visible {
    opacity: 1;
    transform: translate3d(0, 0, 0);
}

.km-reveal-left {
    transform: translate3d(-22px, 0, 0);
}

.km-reveal-right {
    transform: translate3d(22px, 0, 0);
}

.km-reveal-left.is-visible,
.km-reveal-right.is-visible {
    transform: translate3d(0, 0, 0);
}

/* jemný stagger pro karty */
.km-link-card.km-reveal:nth-child(2),
.km-care-card.km-reveal:nth-child(2) {
    transition-delay: .07s;
}

.km-link-card.km-reveal:nth-child(3),
.km-care-card.km-reveal:nth-child(3) {
    transition-delay: .14s;
}

/* vypnout starší load-only animace, ať se to netluče se scroll efektem */
@media (prefers-reduced-motion: no-preference) {
    .km-hero-copy,
    .km-hero-illustration,
    .km-link-card,
    .km-split > *,
    .km-care-card,
    .km-hours-panel,
    .km-final-cta {
        animation: none !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    .km-reveal,
    .km-reveal-left,
    .km-reveal-right {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
    }
}

/* KM polish pass 13:
   more premium rounded typography, visible labels, bigger icons,
   more padding, coral CTA */

/* softer premium rounded type */
body {
    font-family: "Nunito Sans", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
    font-weight: 500;
}

h1, h2, h3, h4, h5, h6,
.navbar-brand,
.btn,
.km-link-card strong,
.km-pill {
    font-family: "Nunito Sans", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
}

.km-hero-copy h1,
.km-split h2,
.km-section-head h2,
.km-final-cta h2 {
    font-weight: 900 !important;
    letter-spacing: -.045em !important;
}

.km-link-card h2,
.km-care-card h3 {
    font-weight: 800 !important;
    letter-spacing: -.018em !important;
}

.km-lead,
.km-link-card p,
.km-care-card p,
.km-split p,
.km-info-row,
.km-note {
    font-weight: 500 !important;
}

/* visible labels, still not button-like */
.km-pill {
    position: relative;
    display: inline-flex !important;
    align-items: center;
    gap: .45rem !important;
    color: #2D3142 !important;
    background: #FFF4EE !important;
    border: 0 !important;
    border-radius: .65rem !important;
    padding: .42rem .82rem !important;
    box-shadow: 0 5px 14px rgba(45, 49, 66, .045) !important;
    font-size: .78rem !important;
    font-weight: 850 !important;
}

.km-pill::before {
    content: "";
    width: .42rem;
    height: .42rem;
    border-radius: 999px;
    background: #EF8354;
    flex-shrink: 0;
}

.km-pill i {
    color: #EF8354 !important;
    font-size: .9rem !important;
}

/* hero label should not double-dot if old rule exists */
.km-hero .km-pill::before {
    background: #EF8354 !important;
}

/* bigger, cleaner icons everywhere */
.km-card-icon,
.km-care-card i {
    width: 2.85rem !important;
    height: 2.85rem !important;
    border-radius: .75rem !important;
    font-size: 1.32rem !important;
    border: 0 !important;
    box-shadow: none !important;
}

.km-link-card:nth-child(1) .km-card-icon,
.km-care-card:nth-child(1) i {
    background: #EAF3F4 !important;
    color: #287C89 !important;
}

.km-link-card:nth-child(2) .km-card-icon,
.km-care-card:nth-child(2) i {
    background: #FCE7DC !important;
    color: #D96A3D !important;
}

.km-link-card:nth-child(3) .km-card-icon,
.km-care-card:nth-child(3) i {
    background: #EEF0F0 !important;
    color: #2D3142 !important;
}

/* more air inside blocks */
.km-link-card,
.km-care-card,
.km-info-panel {
    padding: 1.85rem !important;
}

.km-link-card {
    min-height: 16rem !important;
}

.km-care-card {
    min-height: 13.5rem !important;
}

.km-card-icon {
    margin-top: .95rem !important;
    margin-bottom: 1.35rem !important;
}

.km-link-grid,
.km-care-grid {
    gap: 1.8rem !important;
}

.km-section-head {
    margin-bottom: 2.8rem !important;
}

.km-split {
    gap: clamp(3rem, 6vw, 6rem) !important;
}

/* bigger vertical rhythm */
.km-link-section {
    padding-top: 4.6rem !important;
    padding-bottom: 4.8rem !important;
}

.km-section,
.km-section-light {
    padding-top: 5.9rem !important;
    padding-bottom: 6rem !important;
}

.km-final-section {
    padding-top: 5.9rem !important;
    padding-bottom: 6.2rem !important;
}

/* appointment and info panel more premium */
.km-appointment-bar {
    padding: 1.08rem 1.18rem !important;
    border-radius: .85rem !important;
}

.km-info-panel {
    border-top-color: #EF8354 !important;
}

.km-info-row {
    padding-top: .45rem !important;
    padding-bottom: 1.25rem !important;
}

.km-info-row::before {
    width: 1.9rem !important;
    height: 1.9rem !important;
    border-radius: .6rem !important;
    background: #FCE7DC !important;
    color: #D96A3D !important;
}

.km-note {
    padding: 1.2rem 1.3rem !important;
    border-left: 4px solid #EF8354 !important;
}

/* links: no underline, arrow stays clean */
.km-link-card strong,
.text-link {
    text-decoration: none !important;
    font-weight: 850 !important;
}

.km-link-card strong::after {
    content: " →";
    color: #EF8354;
    font-weight: 900;
}

/* coral CTA, because the dark block was sulking in the corner */
.km-final-cta {
    background:
        radial-gradient(circle at 88% 12%, rgba(255, 255, 255, .22), transparent 17rem),
        linear-gradient(135deg, #EF8354 0%, #D96A3D 100%) !important;
    color: #2D3142 !important;
    border-radius: 1.05rem !important;
    padding: 2.55rem 2.75rem !important;
    box-shadow: 0 22px 48px rgba(217, 106, 61, .22) !important;
}

.km-final-cta h2 {
    color: #2D3142 !important;
    text-shadow: none !important;
}

.km-final-cta p {
    color: rgba(45, 49, 66, .82) !important;
    font-weight: 650 !important;
}

.km-final-cta .km-pill,
.km-final-cta .km-pill-light {
    background: rgba(255, 255, 255, .42) !important;
    color: #2D3142 !important;
    border: 0 !important;
}

.km-final-cta .km-pill::before,
.km-final-cta .km-pill-light::before {
    background: #2D3142 !important;
}

.km-final-cta .btn-light {
    background: #FFFFFF !important;
    color: #2D3142 !important;
    border-color: #FFFFFF !important;
    box-shadow: 0 10px 24px rgba(45, 49, 66, .15) !important;
}

.km-final-cta .btn-light:hover {
    background: #2D3142 !important;
    color: #FFFFFF !important;
    border-color: #2D3142 !important;
}

/* section backgrounds slightly cleaner */
.km-section-light {
    background: #EAF3F4 !important;
}

.km-hero {
    background:
        radial-gradient(circle at 74% 30%, rgba(40, 124, 137, .12), transparent 20rem),
        linear-gradient(135deg, #FFFFFF 0%, #F8FBFB 52%, #EAF3F4 100%) !important;
}

/* mobile sanity */
@media (max-width: 991.98px) {
    .km-link-card,
    .km-care-card,
    .km-info-panel {
        padding: 1.55rem !important;
    }

    .km-link-section {
        padding-top: 3.9rem !important;
        padding-bottom: 4rem !important;
    }

    .km-section,
    .km-section-light,
    .km-final-section {
        padding-top: 4.5rem !important;
        padding-bottom: 4.6rem !important;
    }

    .km-final-cta {
        padding: 2rem !important;
    }
}

/* KM polish pass 14:
   CTA text white, labels use icons only, no decorative dots */

/* remove the pointless dot in labels */
.km-pill::before,
.km-hero .km-pill::before,
.km-final-cta .km-pill::before,
.km-final-cta .km-pill-light::before {
    content: none !important;
    display: none !important;
}

/* label icons stay visible */
.km-pill {
    gap: .42rem !important;
}

.km-pill i {
    display: inline-flex !important;
    color: #EF8354 !important;
    font-size: .92rem !important;
}

/* hero label without fake dot */
.km-hero .km-pill {
    color: #2D3142 !important;
    background: #FFFFFF !important;
}

/* final CTA: white heading and text */
.km-final-cta {
    background:
        radial-gradient(circle at 88% 12%, rgba(255, 255, 255, .16), transparent 17rem),
        linear-gradient(135deg, #EF8354 0%, #D96A3D 100%) !important;
    color: #FFFFFF !important;
}

.km-final-cta h2,
.km-final-cta .h2 {
    color: #FFFFFF !important;
}

.km-final-cta p,
.km-final-cta span,
.km-final-cta strong {
    color: rgba(255, 255, 255, .88) !important;
}

.km-final-cta .km-pill,
.km-final-cta .km-pill-light {
    background: rgba(255, 255, 255, .18) !important;
    color: #FFFFFF !important;
    border: 0 !important;
}

.km-final-cta .km-pill i,
.km-final-cta .km-pill-light i {
    color: #FFFFFF !important;
}

/* CTA button readable against coral */
.km-final-cta .btn-light {
    background: #FFFFFF !important;
    color: #2D3142 !important;
    border-color: #FFFFFF !important;
}

.km-final-cta .btn-light i {
    color: #2D3142 !important;
}

.km-final-cta .btn-light:hover {
    background: #2D3142 !important;
    color: #FFFFFF !important;
    border-color: #2D3142 !important;
}

.km-final-cta .btn-light:hover i {
    color: #FFFFFF !important;
}

/* KM polish pass 15:
   lighter headings, less heavy rounded type, visible teal topbar */

/* Topbar: visible, brand-colored, not dead grey */
.topbar {
    background: #2D3142 !important;
    color: #FFFFFF !important;
    border-color: #2D3142 !important;
}

.topbar,
.topbar span,
.topbar small,
.topbar div {
    color: rgba(255, 255, 255, .9) !important;
}

.topbar a {
    color: #FFFFFF !important;
    font-weight: 800 !important;
    text-decoration: none !important;
}

.topbar i,
.topbar .bi {
    color: #EF8354 !important;
}

/* Make navbar separation cleaner after dark topbar */
.navbar {
    border-top: 0 !important;
    border-bottom: 1px solid #D8E4E7 !important;
}

/* Headings: less chunky, more premium */
.km-hero-copy h1 {
    font-weight: 800 !important;
    letter-spacing: -.032em !important;
    line-height: 1.08 !important;
}

.km-split h2,
.km-section-head h2,
.km-final-cta h2 {
    font-weight: 800 !important;
    letter-spacing: -.028em !important;
    line-height: 1.1 !important;
}

.km-link-card h2,
.km-care-card h3 {
    font-weight: 750 !important;
    letter-spacing: -.01em !important;
}

/* Body text a touch calmer with Nunito */
body {
    font-weight: 500 !important;
}

.km-lead,
.km-link-card p,
.km-care-card p,
.km-split p,
.km-note,
.km-info-row {
    font-weight: 500 !important;
}

/* Hero title size slightly calmer too */
.km-hero-copy h1 {
    font-size: clamp(2.65rem, 4.15vw, 4.05rem) !important;
}

/* Section headings no longer shout like a billboard */
.km-split h2,
.km-section-head h2 {
    font-size: clamp(2.15rem, 3.45vw, 3.25rem) !important;
}

/* Final CTA heading remains strong, but not brick-heavy */
.km-final-cta h2 {
    font-size: clamp(2rem, 3.25vw, 3rem) !important;
}

/* Labels: keep visible but a bit less chunky */
.km-pill {
    font-weight: 800 !important;
    letter-spacing: .005em !important;
}

/* Cards: slightly more elegant text hierarchy */
.km-link-card span {
    font-weight: 800 !important;
    letter-spacing: .03em !important;
}

.km-link-card strong {
    font-weight: 800 !important;
}

/* CTA text readable and cleaner */
.km-final-cta p {
    font-weight: 600 !important;
}

/* KM polish pass 16:
   logo alignment, navbar hover, stronger card hover,
   square accent borders, visible labels, subpages unified */

/* ---------- NAVBAR ---------- */

.km-brand {
    align-items: center !important;
    gap: .72rem !important;
}

.km-brand .brand-mark {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 2.45rem !important;
    height: 2.45rem !important;
    min-width: 2.45rem !important;
    border-radius: 999px !important;
    line-height: 1 !important;
    transform: none !important;
}

.km-brand .brand-mark i {
    display: block !important;
    line-height: 1 !important;
    font-size: 1.16rem !important;
    transform: translateY(0) !important;
}

.km-brand-text {
    justify-content: center !important;
    line-height: 1.08 !important;
}

.km-brand-text strong {
    font-size: 1.08rem !important;
    font-weight: 850 !important;
    letter-spacing: -.018em !important;
}

.km-brand-text small {
    margin-top: .2rem !important;
    color: #4F5966 !important;
    font-size: .78rem !important;
    font-weight: 750 !important;
    letter-spacing: .005em !important;
}

/* navbar item hover */
.navbar .nav-link {
    position: relative;
    border-radius: .55rem;
    color: #393E41 !important;
    font-weight: 750;
    transition:
        color .16s ease,
        background-color .16s ease,
        transform .16s ease;
}

.navbar .nav-link:hover,
.navbar .nav-link:focus-visible {
    color: #287C89 !important;
    background: #EAF3F4 !important;
    transform: translateY(-1px);
}

.navbar .nav-link.active {
    color: #287C89 !important;
    background: transparent !important;
}

.navbar .nav-link.active::after {
    content: "";
    position: absolute;
    left: .7rem;
    right: .7rem;
    bottom: .28rem;
    height: 2px;
    border-radius: 999px;
    background: #EF8354;
}

/* ---------- LABELS / PILLS ---------- */

.km-pill,
.page-kicker,
.page-header .km-pill {
    display: inline-flex !important;
    align-items: center !important;
    gap: .44rem !important;
    width: fit-content !important;
    padding: .43rem .78rem !important;
    border: 0 !important;
    border-radius: .62rem !important;
    background: #FCE7DC !important;
    color: #2D3142 !important;
    box-shadow: none !important;
    font-weight: 850 !important;
    font-size: .78rem !important;
    line-height: 1.1 !important;
}

.km-pill::before,
.page-kicker::before,
.page-header .km-pill::before {
    content: none !important;
    display: none !important;
}

.km-pill i,
.page-kicker i,
.page-header .km-pill i {
    display: inline-flex !important;
    color: #D96A3D !important;
    font-size: .95rem !important;
    line-height: 1 !important;
}

/* light pill inside CTA */
.km-final-cta .km-pill,
.km-final-cta .km-pill-light {
    background: rgba(255, 255, 255, .18) !important;
    color: #FFFFFF !important;
}

.km-final-cta .km-pill i,
.km-final-cta .km-pill-light i {
    color: #FFFFFF !important;
}

/* ---------- CARDS / HOVERS ---------- */

/* accent top borders straight, not rounded like a gummy bear */
.km-link-card,
.km-care-card,
.km-info-panel,
.km-hours-panel,
.card {
    border-radius: .9rem !important;
    overflow: hidden !important;
}

.km-link-card,
.km-care-card {
    border-top-width: 4px !important;
    position: relative;
}

.km-link-card::before,
.km-care-card::before {
    display: none !important;
}

.km-link-card:nth-child(1),
.km-care-card:nth-child(1) {
    border-top-color: #287C89 !important;
}

.km-link-card:nth-child(2),
.km-care-card:nth-child(2) {
    border-top-color: #EF8354 !important;
}

.km-link-card:nth-child(3),
.km-care-card:nth-child(3) {
    border-top-color: #2D3142 !important;
}

/* no colored card fill accident, never again */
.km-link-card,
.km-link-card:nth-child(2),
.km-link-card:nth-child(3),
.km-care-card,
.km-care-card:nth-child(2),
.km-care-card:nth-child(3) {
    background: #FFFFFF !important;
    color: #393E41 !important;
}

.km-link-card:hover,
.km-link-card:focus-visible,
.km-care-card:hover,
.km-care-card:focus-visible,
.card:hover {
    transform: translateY(-6px) !important;
    border-color: #BFC0C0 !important;
    box-shadow:
        0 24px 52px rgba(45, 49, 66, .13),
        0 8px 18px rgba(40, 124, 137, .05) !important;
}

.km-link-card:hover h2,
.km-care-card:hover h3,
.card:hover h2,
.card:hover h3 {
    color: #287C89 !important;
}

/* links in cards */
.km-link-card strong,
.text-link {
    color: #174C55 !important;
    text-decoration: none !important;
    font-weight: 850 !important;
}

.km-link-card strong::after,
.text-link::after {
    content: " →";
    color: #EF8354;
    font-weight: 950;
    transition: margin-left .16s ease;
}

.km-link-card:hover strong::after,
.text-link:hover::after {
    margin-left: .22rem;
}

/* icons bigger and cleaner */
.km-card-icon,
.km-care-card i,
.card .bi.fs-2,
.card .bi.fs-4 {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 3rem !important;
    height: 3rem !important;
    border-radius: .78rem !important;
    border: 0 !important;
    box-shadow: none !important;
    background: #EAF3F4 !important;
    color: #287C89 !important;
    font-size: 1.35rem !important;
    line-height: 1 !important;
}

.km-link-card:nth-child(2) .km-card-icon,
.km-care-card:nth-child(2) i,
.card:nth-child(2) .bi.fs-2 {
    background: #FCE7DC !important;
    color: #D96A3D !important;
}

.km-link-card:nth-child(3) .km-card-icon,
.km-care-card:nth-child(3) i,
.card:nth-child(3) .bi.fs-2 {
    background: #EEF0F0 !important;
    color: #2D3142 !important;
}

/* spacing a little more premium */
.km-link-card,
.km-care-card {
    padding: 1.9rem !important;
}

.km-info-panel {
    padding: 1.75rem !important;
}

.km-link-section {
    padding-top: 4.75rem !important;
    padding-bottom: 4.85rem !important;
}

.km-section,
.km-section-light {
    padding-top: 6rem !important;
    padding-bottom: 6.1rem !important;
}

/* ---------- TYPOGRAPHY ---------- */

.km-hero-copy h1 {
    font-weight: 800 !important;
    letter-spacing: -.026em !important;
    line-height: 1.08 !important;
}

.km-split h2,
.km-section-head h2,
.page-header h1 {
    font-weight: 800 !important;
    letter-spacing: -.022em !important;
    line-height: 1.1 !important;
}

.km-link-card h2,
.km-care-card h3,
.card h2,
.card h3 {
    font-weight: 780 !important;
    letter-spacing: -.01em !important;
}

/* ---------- SUBPAGES SAME DESIGN AS HOMEPAGE ---------- */

.page-header {
    position: relative;
    overflow: hidden;
    padding-top: 5.5rem !important;
    padding-bottom: 5.6rem !important;
    background:
        radial-gradient(circle at 82% 22%, rgba(40, 124, 137, .12), transparent 22rem),
        linear-gradient(135deg, #FFFFFF 0%, #F8FBFB 52%, #EAF3F4 100%) !important;
    border-bottom: 1px solid #D8E4E7;
}

.page-header h1 {
    max-width: 46rem;
    color: #2D3142 !important;
    font-size: clamp(2.6rem, 5vw, 4.5rem);
    margin-bottom: 1rem !important;
}

.page-header .lead {
    max-width: 44rem;
    color: #393E41 !important;
    font-size: 1.12rem;
    font-weight: 550;
}

.page-header .container::before {
    content: "•";
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: .6rem;
    height: .6rem;
    margin-bottom: 1rem;
    border-radius: 999px;
    color: transparent;
    background: #EF8354;
}

/* generic subpage sections */
main > section.py-5:not(.page-header) {
    padding-top: 5.25rem !important;
    padding-bottom: 5.35rem !important;
    background: #FFFFFF;
}

main > section.py-5:not(.page-header):nth-of-type(even) {
    background: #EAF3F4;
}

/* generic cards on subpages */
main .card {
    border: 1px solid #D7DBDD !important;
    border-top: 4px solid #287C89 !important;
    border-radius: .9rem !important;
    box-shadow: 0 12px 28px rgba(45, 49, 66, .045) !important;
    transition:
        transform .18s ease,
        box-shadow .18s ease,
        border-color .18s ease;
}

main .row > [class*="col-"]:nth-child(2) .card {
    border-top-color: #EF8354 !important;
}

main .row > [class*="col-"]:nth-child(3) .card {
    border-top-color: #2D3142 !important;
}

main .card .card-body {
    padding: 1.85rem !important;
}

main .card h2,
main .price-section h2 {
    color: #2D3142 !important;
    font-weight: 800 !important;
    letter-spacing: -.015em;
}

main .card p,
main .card li,
main .accordion-body,
main .alert {
    color: #393E41;
}

/* alerts as designed blocks */
main .alert {
    border-radius: .85rem !important;
    border: 1px solid #D7DBDD !important;
    border-left: 4px solid #EF8354 !important;
    background: #FFFFFF !important;
    box-shadow: 0 10px 24px rgba(45, 49, 66, .035);
}

main .alert i {
    color: #EF8354 !important;
}

/* accordions */
.accordion-item {
    border-color: #D7DBDD !important;
    overflow: hidden;
}

.accordion-button {
    color: #2D3142 !important;
    font-weight: 800;
    background: #FFFFFF !important;
}

.accordion-button:not(.collapsed) {
    color: #174C55 !important;
    background: #EAF3F4 !important;
    box-shadow: none !important;
}

.accordion-button:focus {
    box-shadow: 0 0 0 .2rem rgba(40, 124, 137, .16) !important;
}

/* price list */
.price-section {
    padding: 1.5rem;
    border-radius: .9rem;
    background: #FFFFFF;
    border: 1px solid #D7DBDD;
    border-top: 4px solid #287C89;
    box-shadow: 0 12px 28px rgba(45, 49, 66, .04);
}

.price-section:nth-of-type(even) {
    border-top-color: #EF8354;
}

.price-table td:last-child {
    color: #174C55 !important;
    font-weight: 850;
}

/* contact map block */
.map-placeholder {
    background:
        radial-gradient(circle at 72% 30%, rgba(239, 131, 84, .13), transparent 16rem),
        #EAF3F4 !important;
    border-color: #D7DBDD !important;
    border-top: 4px solid #EF8354 !important;
    border-radius: .9rem !important;
}

/* footer calmer */
.site-footer {
    margin-top: 0 !important;
    background: #FFFFFF !important;
    border-color: #D7DBDD !important;
}

/* mobile */
@media (max-width: 991.98px) {
    .page-header {
        padding-top: 4.2rem !important;
        padding-bottom: 4.3rem !important;
    }

    main > section.py-5:not(.page-header) {
        padding-top: 4rem !important;
        padding-bottom: 4.1rem !important;
    }

    .km-link-card,
    .km-care-card,
    .km-info-panel,
    main .card .card-body {
        padding: 1.45rem !important;
    }
}

/* KM cleanup pass 17:
   remove stupid heavy card shadows, keep only upward hover movement,
   make labels visible on white backgrounds */

/* cards: normal state calm */
.km-link-card,
.km-care-card,
main .card {
    box-shadow: 0 6px 16px rgba(45, 49, 66, .035) !important;
}

/* cards: hover means lift, not nuclear shadow */
.km-link-card:hover,
.km-link-card:focus-visible,
.km-care-card:hover,
.km-care-card:focus-visible,
main .card:hover {
    transform: translateY(-5px) !important;
    border-color: #BFC0C0 !important;
    box-shadow: 0 10px 22px rgba(45, 49, 66, .06) !important;
}

/* do not recolor card headings on hover, it was noisy */
.km-link-card:hover h2,
.km-care-card:hover h3,
main .card:hover h2,
main .card:hover h3 {
    color: #2D3142 !important;
}

/* labels: visible on white background */
.km-pill,
.page-kicker,
.page-header .km-pill {
    background: #FCE7DC !important;
    color: #2D3142 !important;
    border: 0 !important;
    box-shadow: none !important;
}

/* labels on blue/teal-ish section also readable */
.km-section-light .km-pill {
    background: #FFFFFF !important;
    color: #2D3142 !important;
}

/* label icon only, no dots, no fake decoration */
.km-pill::before,
.page-kicker::before,
.page-header .km-pill::before {
    content: none !important;
    display: none !important;
}

.km-pill i {
    color: #D96A3D !important;
}

/* if label sits in final CTA, keep it readable there too */
.km-final-cta .km-pill,
.km-final-cta .km-pill-light {
    background: rgba(255, 255, 255, .22) !important;
    color: #FFFFFF !important;
}

.km-final-cta .km-pill i,
.km-final-cta .km-pill-light i {
    color: #FFFFFF !important;
}

/* keep accent top borders straight and clean */
.km-link-card,
.km-care-card {
    border-radius: .85rem !important;
    overflow: hidden !important;
}

.km-link-card::before,
.km-care-card::before {
    display: none !important;
}

/* slightly softer card top borders, less screaming */
.km-link-card:nth-child(1),
.km-care-card:nth-child(1) {
    border-top-color: #287C89 !important;
}

.km-link-card:nth-child(2),
.km-care-card:nth-child(2) {
    border-top-color: #EF8354 !important;
}

.km-link-card:nth-child(3),
.km-care-card:nth-child(3) {
    border-top-color: #2D3142 !important;
}

/* KM cleanup pass 18:
   no navbar hover movement, bigger hero SVG with tighter hero,
   no reveal on section headings, visible labels on pale sections */

/* navbar hover: color/background only, no movement */
.navbar .nav-link,
.navbar .nav-link:hover,
.navbar .nav-link:focus-visible {
    transform: none !important;
    padding-top: var(--bs-nav-link-padding-y) !important;
    padding-bottom: var(--bs-nav-link-padding-y) !important;
}

.navbar .nav-link:hover,
.navbar .nav-link:focus-visible {
    color: #287C89 !important;
    background: #EAF3F4 !important;
}

/* keep active underline, but no jump */
.navbar .nav-link.active {
    transform: none !important;
}

/* hero: bigger SVG, smaller vertical section */
.km-hero {
    padding-top: 3.45rem !important;
    padding-bottom: 3.35rem !important;
    min-height: 500px !important;
}

.km-hero-grid {
    align-items: center !important;
    gap: clamp(2.25rem, 5vw, 5rem) !important;
}

.km-hero-illustration {
    min-height: 360px !important;
    transform: none !important;
}

.km-hero-illustration img {
    width: min(100%, 760px) !important;
    max-height: 520px !important;
}

/* remove animation/reveal from headings and split text blocks */
.km-section-head,
.km-section-head *,
.km-split > div:first-child,
.km-split > div:first-child * {
    animation: none !important;
}

.km-section-head.km-reveal,
.km-section-head .km-reveal,
.km-split > div:first-child.km-reveal,
.km-split > div:first-child .km-reveal {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
}

/* labels must be visible on white AND pale teal sections */
.km-pill,
.km-hero .km-pill,
.km-section .km-pill,
.km-section-light .km-pill,
.km-section-head .km-pill {
    background: #FCE7DC !important;
    color: #2D3142 !important;
    border: 0 !important;
    box-shadow: none !important;
}

.km-pill i,
.km-hero .km-pill i,
.km-section .km-pill i,
.km-section-light .km-pill i,
.km-section-head .km-pill i {
    color: #D96A3D !important;
}

/* final CTA label still readable on orange background */
.km-final-cta .km-pill,
.km-final-cta .km-pill-light {
    background: rgba(255, 255, 255, .22) !important;
    color: #FFFFFF !important;
}

.km-final-cta .km-pill i,
.km-final-cta .km-pill-light i {
    color: #FFFFFF !important;
}

/* no decorative dots, icons only */
.km-pill::before,
.km-hero .km-pill::before,
.km-section .km-pill::before,
.km-section-light .km-pill::before,
.km-final-cta .km-pill::before,
.km-final-cta .km-pill-light::before {
    content: none !important;
    display: none !important;
}

/* reveal should stay subtle and not affect static headings */
.km-reveal {
    opacity: 0;
    transform: translate3d(0, 16px, 0);
    transition:
        opacity .5s ease,
        transform .5s ease;
}

.km-reveal-left {
    transform: translate3d(-18px, 0, 0);
}

.km-reveal-right {
    transform: translate3d(18px, 0, 0);
}

.km-reveal.is-visible,
.km-reveal-left.is-visible,
.km-reveal-right.is-visible {
    opacity: 1;
    transform: translate3d(0, 0, 0);
}

/* cards hover: only lift, no crazy shadow */
.km-link-card:hover,
.km-link-card:focus-visible,
.km-care-card:hover,
.km-care-card:focus-visible,
main .card:hover {
    transform: translateY(-5px) !important;
    box-shadow: 0 10px 22px rgba(45, 49, 66, .06) !important;
}

/* mobile hero must not become a skyscraper */
@media (max-width: 991.98px) {
    .km-hero {
        min-height: auto !important;
        padding-top: 3.2rem !important;
        padding-bottom: 3.2rem !important;
    }

    .km-hero-illustration {
        min-height: auto !important;
    }

    .km-hero-illustration img {
        width: min(100%, 540px) !important;
        max-height: none !important;
    }
}

/* KM cleanup pass 19:
   subpage hero without circular gradient, white subpage body,
   services page as alternating content blocks */

/* subpage hero: no weird circular blob */
.page-header {
    background:
        linear-gradient(135deg, #FFFFFF 0%, #F8FBFB 58%, #EEF3F4 100%) !important;
    border-bottom: 1px solid #D8E4E7 !important;
}

.page-header::before,
.page-header::after,
.page-header .container::before {
    content: none !important;
    display: none !important;
}

/* subpages: no full-width tinted content sections */
main > section.py-5:not(.page-header),
.subpage-section {
    background: #FFFFFF !important;
    padding-top: 5.5rem !important;
    padding-bottom: 5.7rem !important;
}

main > section.py-5:not(.page-header):nth-of-type(even),
main > section.py-5:not(.page-header):nth-of-type(odd) {
    background: #FFFFFF !important;
}

/* services page */
.services-page {
    background: #FFFFFF !important;
}

.service-feature {
    display: grid;
    grid-template-columns: minmax(260px, .85fr) minmax(0, 1.15fr);
    gap: clamp(2.5rem, 6vw, 5.5rem);
    align-items: center;
    padding: 3rem 0;
    border-bottom: 1px solid #E3E6E8;
}

.service-feature:first-child {
    padding-top: 0;
}

.service-feature-reverse {
    grid-template-columns: minmax(0, 1.15fr) minmax(260px, .85fr);
}

.service-feature-reverse .service-icon-panel {
    order: 2;
}

.service-feature-reverse .service-content {
    order: 1;
}

.service-icon-panel {
    min-height: 22rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 1.15rem;
    background:
        radial-gradient(circle at 70% 24%, rgba(255,255,255,.65), transparent 10rem),
        #EAF3F4;
    color: #287C89;
}

.service-icon-panel i {
    font-size: clamp(5rem, 11vw, 8rem);
    line-height: 1;
}

.service-icon-panel-coral {
    background:
        radial-gradient(circle at 70% 24%, rgba(255,255,255,.58), transparent 10rem),
        #FCE7DC;
    color: #D96A3D;
}

.service-icon-panel-dark {
    background:
        radial-gradient(circle at 70% 24%, rgba(255,255,255,.10), transparent 10rem),
        #2D3142;
    color: #FFFFFF;
}

.service-content {
    max-width: 42rem;
}

.service-content h2 {
    margin: 1rem 0 1rem;
    color: #2D3142;
    font-size: clamp(2rem, 3.4vw, 3.15rem);
    line-height: 1.08;
    letter-spacing: -.022em;
    font-weight: 800;
}

.service-content p {
    color: #393E41;
    font-size: 1.08rem;
    line-height: 1.75;
    margin-bottom: 1.25rem;
}

.service-list {
    display: grid;
    gap: .65rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.service-list li {
    position: relative;
    padding-left: 1.55rem;
    color: #393E41;
    line-height: 1.6;
}

.service-list li::before {
    content: "";
    position: absolute;
    left: 0;
    top: .68em;
    width: .46rem;
    height: .46rem;
    border-radius: 999px;
    background: #EF8354;
}

.service-note {
    display: flex;
    gap: .85rem;
    align-items: flex-start;
    margin-top: 3rem;
    padding: 1.25rem 1.4rem;
    border-radius: .9rem;
    background: #F8FBFB;
    border-left: 4px solid #EF8354;
    color: #2D3142;
}

.service-note i {
    color: #EF8354;
    margin-top: .2rem;
}

/* generic subpage cards should not fight the new services layout */
.services-page .card,
.services-page .card:hover {
    transform: none !important;
    box-shadow: none !important;
}

/* keep labels visible */
.service-content .km-pill,
.page-header .km-pill,
.km-pill {
    background: #FCE7DC !important;
    color: #2D3142 !important;
}

.service-content .km-pill i,
.km-pill i {
    color: #D96A3D !important;
}

/* page-header typography calmer */
.page-header h1 {
    color: #2D3142 !important;
    font-weight: 800 !important;
    letter-spacing: -.026em !important;
}

.page-header .lead {
    color: #393E41 !important;
}

/* mobile */
@media (max-width: 991.98px) {
    .service-feature,
    .service-feature-reverse {
        grid-template-columns: 1fr;
        gap: 2rem;
        padding: 2.5rem 0;
    }

    .service-feature-reverse .service-icon-panel,
    .service-feature-reverse .service-content {
        order: initial;
    }

    .service-icon-panel {
        min-height: 14rem;
    }

    .service-icon-panel i {
        font-size: 4.5rem;
    }

    .service-content {
        max-width: none;
    }

    main > section.py-5:not(.page-header),
    .subpage-section {
        padding-top: 4rem !important;
        padding-bottom: 4.2rem !important;
    }
}

/* KM services polish pass 20:
   taller icon panels, better vertical alignment, more spacing between service blocks */

.service-feature {
    align-items: stretch !important;
    gap: clamp(3rem, 6vw, 6rem) !important;
    padding: 4.4rem 0 !important;
    border-bottom: 1px solid #EEF0F0 !important;
}

.service-feature:first-child {
    padding-top: 0 !important;
}

.service-feature:last-of-type {
    border-bottom: 0 !important;
}

.service-icon-panel {
    min-height: 100% !important;
    height: auto !important;
    padding: 3rem !important;
    align-items: center !important;
    justify-content: center !important;
}

.service-icon-panel i {
    transform: translateY(-.15rem);
}

/* text block alignment inside stretched row */
.service-content {
    align-self: center !important;
    max-width: 44rem !important;
    padding-top: .3rem;
    padding-bottom: .3rem;
}

.service-content h2 {
    margin-top: 1.05rem !important;
    margin-bottom: 1.1rem !important;
}

.service-content p {
    max-width: 42rem;
    margin-bottom: 1.35rem !important;
}

/* a bit more calm space before the final note */
.service-note {
    margin-top: 4rem !important;
}

/* mobile: keep it compact, because phones already suffer enough */
@media (max-width: 991.98px) {
    .service-feature {
        align-items: start !important;
        gap: 2rem !important;
        padding: 3.2rem 0 !important;
    }

    .service-icon-panel {
        min-height: 13rem !important;
        padding: 2rem !important;
    }

    .service-content {
        align-self: start !important;
        max-width: none !important;
    }
}

/* KM cleanup pass 22:
   opening hours is content, not clickable card.
   Footer pinned to bottom on short pages. */

/* footer always sits at the bottom */
html,
body {
    min-height: 100%;
}

body {
    min-height: 100vh !important;
    display: flex !important;
    flex-direction: column !important;
}

body > main {
    flex: 1 0 auto !important;
}

.site-footer {
    flex-shrink: 0 !important;
}

/* opening hours page */
.opening-hours-page {
    background: #FFFFFF !important;
}

.opening-hours-layout {
    display: grid;
    grid-template-columns: minmax(260px, .75fr) minmax(0, 1.25fr);
    gap: clamp(2.5rem, 6vw, 5.5rem);
    align-items: start;
}

.opening-hours-intro {
    max-width: 34rem;
}

.opening-hours-intro h2 {
    margin: 1rem 0 1rem;
    color: #2D3142;
    font-size: clamp(2rem, 3.4vw, 3.15rem);
    line-height: 1.08;
    letter-spacing: -.022em;
    font-weight: 800;
}

.opening-hours-intro p {
    color: #393E41;
    font-size: 1.08rem;
    line-height: 1.75;
}

.opening-hours-info {
    display: flex;
    gap: .9rem;
    align-items: flex-start;
    margin-top: 1.6rem;
    padding: 1.25rem 1.35rem;
    border-radius: .9rem;
    background: #FCE7DC;
    color: #2D3142;
}

.opening-hours-info i {
    color: #D96A3D;
    font-size: 1.2rem;
    margin-top: .15rem;
}

.opening-hours-info strong,
.opening-hours-info span {
    display: block;
}

.opening-hours-info span {
    margin-top: .25rem;
    color: #393E41;
}

/* static table panel, no fake card hover */
.opening-hours-table-card {
    overflow: hidden;
    background: #FFFFFF;
    border: 1px solid #D7DBDD;
    border-top: 4px solid #287C89;
    border-radius: .9rem;
    box-shadow: 0 8px 18px rgba(45, 49, 66, .035);
    transform: none !important;
    transition: none !important;
}

.opening-hours-table-card:hover,
.opening-hours-table-card:focus,
.opening-hours-table-card:focus-visible {
    transform: none !important;
    border-color: #D7DBDD !important;
    border-top-color: #287C89 !important;
    box-shadow: 0 8px 18px rgba(45, 49, 66, .035) !important;
}

.opening-hours-table-card table {
    margin: 0;
}

.opening-hours-table-card th,
.opening-hours-table-card td {
    padding: 1.15rem 1.4rem;
}

.opening-hours-table-card thead th {
    color: #2D3142;
    font-weight: 850;
    background: #FFFFFF;
    border-bottom: 1px solid #D7DBDD;
}

.opening-hours-table-card tbody th {
    color: #2D3142;
    font-weight: 850;
}

.opening-hours-table-card .table-today th,
.opening-hours-table-card .table-today td {
    background: #EEF0F0 !important;
}

.opening-hours-note {
    display: flex;
    gap: .85rem;
    align-items: flex-start;
    margin-top: 1.5rem;
    padding: 1.15rem 1.3rem;
    border-radius: .85rem;
    background: #F8FBFB;
    border-left: 4px solid #EF8354;
    color: #2D3142;
}

.opening-hours-note i {
    color: #EF8354;
    margin-top: .15rem;
}

/* kill global card hover on opening hours page specifically */
.opening-hours-page .card,
.opening-hours-page .card:hover,
.opening-hours-page main .card:hover {
    transform: none !important;
    box-shadow: none !important;
}

/* do not reveal/fade static opening hours table */
.opening-hours-table-card.km-reveal,
.opening-hours-table-card .km-reveal,
.opening-hours-layout.km-reveal,
.opening-hours-layout .km-reveal {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
}

/* mobile */
@media (max-width: 991.98px) {
    .opening-hours-layout {
        grid-template-columns: 1fr;
        gap: 2rem;
    }

    .opening-hours-intro {
        max-width: none;
    }

    .opening-hours-table-card th,
    .opening-hours-table-card td {
        padding: 1rem;
    }
}

/* KM cleanup pass 23:
   prices page without nested cards, no hover, no dollar-ish icons */

.prices-page {
    background: #FFFFFF !important;
}

.price-validity-box {
    display: flex;
    align-items: center;
    gap: .75rem;
    margin-bottom: 2rem;
    padding: 1.15rem 1.35rem;
    border-radius: .9rem;
    background: #F8FBFB;
    border-left: 4px solid #EF8354;
    color: #2D3142;
}

.price-validity-box i {
    color: #D96A3D;
    font-size: 1.1rem;
}

.price-list {
    display: grid;
    gap: 2.5rem;
}

.price-section-clean {
    background: #FFFFFF;
    border: 1px solid #D7DBDD;
    border-radius: .95rem;
    overflow: hidden;
    box-shadow: none !important;
    transform: none !important;
}

.price-section-clean,
.price-section-clean:hover,
.price-section-clean:focus,
.price-section-clean:focus-visible {
    border-color: #D7DBDD !important;
    box-shadow: none !important;
    transform: none !important;
}

.price-section-head {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1.45rem 1.55rem;
    background: #F8FBFB;
    border-bottom: 1px solid #D7DBDD;
}

.price-section-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3rem;
    height: 3rem;
    border-radius: .75rem;
    background: #EAF3F4;
    color: #287C89;
    flex-shrink: 0;
}

.price-section-icon i {
    font-size: 1.35rem;
    line-height: 1;
}

.price-section-head h2 {
    margin: 0;
    color: #2D3142 !important;
    font-size: clamp(1.35rem, 2vw, 1.75rem);
    font-weight: 850 !important;
    letter-spacing: -.015em;
}

.price-section-head p {
    margin: .25rem 0 0;
    color: #707D7D;
}

.price-table-wrap {
    padding: 0 1.55rem 1rem;
}

.price-table {
    --bs-table-hover-bg: transparent;
}

.price-table tr,
.price-table tr:hover,
.price-table td,
.price-table th {
    background: transparent !important;
    box-shadow: none !important;
}

.price-table td {
    padding: 1.05rem 0;
    border-color: #E3E6E8;
}

.price-table td:first-child {
    width: 72%;
    color: #2D3142;
    font-weight: 650;
}

.price-table td:last-child {
    color: #174C55 !important;
    font-weight: 850;
}

.price-notes {
    margin-top: 2.5rem;
    padding: 1.35rem 1.5rem;
    border-radius: .9rem;
    background: #F8FBFB;
    border-left: 4px solid #287C89;
    color: #5B6D73;
    font-size: .92rem;
}

.price-notes p:last-child {
    margin-bottom: 0 !important;
}

/* kill generic card hover on prices page, because ceník is not a button, shocking */
.prices-page .card,
.prices-page .card:hover,
.prices-page main .card:hover,
.prices-page .price-section,
.prices-page .price-section:hover,
.prices-page .price-section-clean:hover {
    transform: none !important;
    box-shadow: none !important;
}

/* global replacement support for ceník icons */
.bi-receipt-cutoff.km-card-icon,
.km-card-icon.bi-receipt-cutoff {
    background: #EEF0F0 !important;
    color: #2D3142 !important;
}

@media (max-width: 575.98px) {
    .price-section-head {
        align-items: flex-start;
        padding: 1.2rem;
    }

    .price-table-wrap {
        padding: 0 1.2rem .8rem;
    }

    .price-table td {
        display: block;
        width: 100% !important;
        padding: .8rem 0 .25rem;
        border-bottom: 0;
    }

    .price-table td:last-child {
        text-align: left !important;
        padding-top: 0;
        padding-bottom: .85rem;
        border-bottom: 1px solid #E3E6E8;
    }
}

/* KM cleanup pass 24:
   contact page is static content, no hover-card nonsense */

.contact-page {
    background: #FFFFFF !important;
}

.contact-layout {
    display: grid;
    grid-template-columns: minmax(300px, .9fr) minmax(0, 1.1fr);
    gap: clamp(2.5rem, 6vw, 5.5rem);
    align-items: stretch;
}

.contact-panel,
.contact-map-panel {
    background: #FFFFFF;
    border: 1px solid #D7DBDD;
    border-radius: .95rem;
    box-shadow: none !important;
    transform: none !important;
}

.contact-panel {
    padding: 2rem;
}

.contact-panel h2,
.contact-map-panel h2 {
    margin: 1rem 0 1.4rem;
    color: #2D3142;
    font-size: clamp(1.75rem, 2.8vw, 2.45rem);
    line-height: 1.1;
    letter-spacing: -.018em;
    font-weight: 800;
}

.contact-list {
    display: grid;
    gap: 1.15rem;
    margin-bottom: 1.5rem;
}

.contact-item {
    display: flex;
    gap: .95rem;
    align-items: flex-start;
    padding-bottom: 1.15rem;
    border-bottom: 1px solid #E3E6E8;
}

.contact-item:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.contact-item > i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.65rem;
    height: 2.65rem;
    border-radius: .72rem;
    background: #EAF3F4;
    color: #287C89;
    font-size: 1.2rem;
    flex-shrink: 0;
}

.contact-item strong,
.contact-item span,
.contact-item a {
    display: block;
}

.contact-item strong {
    color: #2D3142;
    font-weight: 850;
}

.contact-item span {
    color: #393E41;
}

.contact-item a {
    color: #174C55;
    font-weight: 850;
    text-decoration: none;
}

.contact-note {
    display: flex;
    gap: .85rem;
    align-items: flex-start;
    margin: 1.6rem 0;
    padding: 1.15rem 1.25rem;
    border-radius: .85rem;
    background: #FCE7DC;
    color: #2D3142;
}

.contact-note i {
    color: #D96A3D;
    margin-top: .15rem;
}

.contact-map-panel {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 28rem;
    padding: 3rem;
    text-align: center;
    background:
        radial-gradient(circle at 72% 28%, rgba(239, 131, 84, .13), transparent 16rem),
        #EAF3F4;
}

.contact-map-panel > div {
    max-width: 26rem;
}

.contact-map-panel > div > i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 5.5rem;
    height: 5.5rem;
    border-radius: 1rem;
    background: #FFFFFF;
    color: #287C89;
    font-size: 2.5rem;
    margin-bottom: 1.25rem;
}

.contact-map-panel p {
    color: #393E41;
    margin-bottom: 1.4rem;
}

/* no hover on contact panels or their former Bootstrap/card descendants */
.contact-page .card,
.contact-page .card:hover,
.contact-page .contact-panel,
.contact-page .contact-panel:hover,
.contact-page .contact-map-panel,
.contact-page .contact-map-panel:hover,
.contact-page .map-placeholder,
.contact-page .map-placeholder:hover {
    transform: none !important;
    box-shadow: none !important;
    border-color: #D7DBDD !important;
}

/* but real buttons can still hover, since buttons are, wildly, clickable */
.contact-page .btn:hover {
    transform: none !important;
}

@media (max-width: 991.98px) {
    .contact-layout {
        grid-template-columns: 1fr;
        gap: 2rem;
    }

    .contact-panel,
    .contact-map-panel {
        padding: 1.5rem;
    }

    .contact-map-panel {
        min-height: 20rem;
    }
}

/* KM cleanup pass 25:
   no blue Bootstrap focus/active buttons,
   no orange active navbar underline,
   remove spacing from removed card numbers */

/* buttons: no default Bootstrap blue after click/focus */
.btn-primary,
.btn-primary:hover,
.btn-primary:focus,
.btn-primary:focus-visible,
.btn-primary:active,
.btn-primary.active,
.show > .btn-primary.dropdown-toggle,
.km-home .btn-primary,
.km-home .btn-primary:hover,
.km-home .btn-primary:focus,
.km-home .btn-primary:focus-visible,
.km-home .btn-primary:active,
.navbar .btn-primary,
.navbar .btn-primary:hover,
.navbar .btn-primary:focus,
.navbar .btn-primary:focus-visible,
.navbar .btn-primary:active {
    background-color: #287C89 !important;
    border-color: #287C89 !important;
    color: #FFFFFF !important;
    box-shadow: none !important;
}

.btn-primary:hover,
.btn-primary:active,
.btn-primary.active,
.km-home .btn-primary:hover,
.km-home .btn-primary:active,
.navbar .btn-primary:hover,
.navbar .btn-primary:active {
    background-color: #1F6975 !important;
    border-color: #1F6975 !important;
}

/* outline buttons: no blue after click/focus */
.btn-outline-primary,
.btn-outline-primary:focus,
.btn-outline-primary:focus-visible,
.btn-outline-primary:active,
.btn-outline-primary.active,
.km-home .btn-outline-primary,
.km-home .btn-outline-primary:focus,
.km-home .btn-outline-primary:focus-visible,
.km-home .btn-outline-primary:active {
    color: #174C55 !important;
    border-color: #287C89 !important;
    background-color: transparent !important;
    box-shadow: none !important;
}

.btn-outline-primary:hover,
.btn-outline-primary:active,
.btn-outline-primary.active,
.km-home .btn-outline-primary:hover,
.km-home .btn-outline-primary:active {
    color: #FFFFFF !important;
    background-color: #287C89 !important;
    border-color: #287C89 !important;
}

/* keyboard focus still visible, just brand-colored instead of Bootstrap blue */
.btn:focus-visible,
.nav-link:focus-visible,
a:focus-visible {
    outline: 3px solid rgba(40, 124, 137, .25) !important;
    outline-offset: 3px;
    box-shadow: none !important;
}

/* navbar active: teal only, no orange underline */
.navbar .nav-link.active {
    color: #287C89 !important;
    background: transparent !important;
}

.navbar .nav-link.active::after {
    content: none !important;
    display: none !important;
}

/* navbar hover stays calm */
.navbar .nav-link:hover,
.navbar .nav-link:focus-visible {
    color: #287C89 !important;
    background: #EAF3F4 !important;
    transform: none !important;
}

/* homepage cards: removed 01/02/03, so card content should not leave awkward rhythm */
.km-link-card > span:first-child {
    display: none !important;
}

.km-link-card .km-card-icon {
    margin-top: 0 !important;
}

/* KM cleanup pass 26:
   remove all circular/radial hero background gradients everywhere */

/* homepage hero */
.km-hero,
.hero-section,
.hero-modern {
    background: linear-gradient(135deg, #FFFFFF 0%, #F8FBFB 56%, #EAF3F4 100%) !important;
}

/* subpage hero */
.page-header {
    background: linear-gradient(135deg, #FFFFFF 0%, #F8FBFB 58%, #EEF3F4 100%) !important;
}

/* remove pseudo decorative blobs if any older rule created them */
.km-hero::before,
.km-hero::after,
.hero-section::before,
.hero-section::after,
.hero-modern::before,
.hero-modern::after,
.page-header::before,
.page-header::after,
.page-header .container::before,
.page-header .container::after {
    content: none !important;
    display: none !important;
    background: none !important;
}

/* services/contact/icon panels can keep soft fills, but no circular radial blobs */
.service-icon-panel,
.service-icon-panel-coral,
.service-icon-panel-dark,
.contact-map-panel {
    background-image: none !important;
}

.service-icon-panel {
    background-color: #EAF3F4 !important;
}

.service-icon-panel-coral {
    background-color: #FCE7DC !important;
}

.service-icon-panel-dark {
    background-color: #EEF0F6 !important;
}

.contact-map-panel {
    background-color: #EAF3F4 !important;
}

/* final CTA: no radial highlight either */
.km-final-cta {
    background: linear-gradient(135deg, #EF8354 0%, #D96A3D 100%) !important;
}

/* KM cleanup pass 27:
   dark-blue stars in pastel service panel only */

.service-icon-panel-dark i,
.service-icon-panel-dark .bi,
.services-page .service-icon-panel-dark i,
.services-page .service-icon-panel-dark .bi {
    color: #2D3142 !important;
}

/* KM cleanup pass 29:
   opening hours table reveal only, remove placeholder note styling,
   move out-of-hours info box below layout with nowrap price */

.opening-hours-info,
.opening-hours-note {
    display: none !important;
}

.opening-hours-layout {
    align-items: center !important;
}

.opening-hours-table-card {
    opacity: 0;
    transform: translate3d(0, 22px, 0);
    transition:
        opacity .56s ease,
        transform .56s ease;
    will-change: opacity, transform;
}

.opening-hours-table-card.is-visible {
    opacity: 1;
    transform: translate3d(0, 0, 0);
}

.opening-hours-extra {
    display: flex;
    gap: .9rem;
    align-items: flex-start;
    margin-top: 2rem;
    padding: 1.25rem 1.4rem;
    border-radius: .9rem;
    background: #FCE7DC;
    color: #2D3142;
    max-width: 100%;
}

.opening-hours-extra i {
    color: #D96A3D;
    font-size: 1.15rem;
    margin-top: .15rem;
    flex-shrink: 0;
}

.opening-hours-extra strong,
.opening-hours-extra span {
    display: inline;
}

.opening-hours-extra > div > strong {
    display: block;
    margin-bottom: .2rem;
    font-weight: 850;
}

.opening-hours-extra span {
    color: #393E41;
}

.opening-hours-extra .text-nowrap {
    white-space: nowrap !important;
}

/* no hover, no fake clickable behavior */
.opening-hours-table-card:hover,
.opening-hours-table-card:focus,
.opening-hours-table-card:focus-visible,
.opening-hours-extra:hover {
    transform: none !important;
    box-shadow: 0 8px 18px rgba(45, 49, 66, .035) !important;
}

/* when visible, hover still must not move it */
.opening-hours-table-card.is-visible:hover {
    transform: translate3d(0, 0, 0) !important;
}

@media (prefers-reduced-motion: reduce) {
    .opening-hours-table-card {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
    }
}

@media (max-width: 991.98px) {
    .opening-hours-layout {
        align-items: start !important;
    }

    .opening-hours-extra {
        margin-top: 1.5rem;
    }
}

/* KM cleanup pass 30:
   remove bottom border from last price row */

.price-section-clean .price-table tbody tr:last-child td,
.price-section-clean .price-table tbody tr:last-child th,
.price-table tbody tr:last-child td,
.price-table tbody tr:last-child th {
    border-bottom: 0 !important;
}

/* KM cleanup pass 31:
   fix hidden opening hours table, keep safe reveal fallback,
   remove bottom border from last price rows */

/* Opening hours table must be visible by default */
.opening-hours-table-card {
    opacity: 1 !important;
    transform: none !important;
}

/* Only hide it when JS explicitly marks it for reveal and it is not visible yet */
.opening-hours-table-card.km-reveal:not(.is-visible) {
    opacity: 0 !important;
    transform: translate3d(0, 22px, 0) !important;
    transition:
        opacity .56s ease,
        transform .56s ease;
}

/* Visible reveal state */
.opening-hours-table-card.km-reveal.is-visible,
.opening-hours-table-card.is-visible {
    opacity: 1 !important;
    transform: translate3d(0, 0, 0) !important;
}

/* No hover movement on opening hours table, ever */
.opening-hours-table-card:hover,
.opening-hours-table-card:focus,
.opening-hours-table-card:focus-visible,
.opening-hours-table-card.km-reveal.is-visible:hover {
    transform: translate3d(0, 0, 0) !important;
    border-color: #D7DBDD !important;
    border-top-color: #287C89 !important;
    box-shadow: 0 8px 18px rgba(45, 49, 66, .035) !important;
}

/* Out-of-hours info box: keep price on one line */
.opening-hours-extra .text-nowrap,
.opening-hours-extra strong:last-child {
    white-space: nowrap !important;
}

/* Price list: last item has no bottom border */
.price-section-clean .price-table tbody tr:last-child td,
.price-section-clean .price-table tbody tr:last-child th,
.prices-page .price-table tbody tr:last-child td,
.prices-page .price-table tbody tr:last-child th,
.price-table tbody tr:last-child td,
.price-table tbody tr:last-child th {
    border-bottom: 0 !important;
}

/* KM patients page pass 32:
   full-width static content blocks, no hover-card nonsense */

.patients-page {
    background: #FFFFFF !important;
}

.patients-info-list {
    display: grid;
    gap: 3.2rem;
}

.patient-info-block {
    display: grid;
    grid-template-columns: minmax(220px, .45fr) minmax(0, 1fr);
    gap: clamp(2rem, 5vw, 4.5rem);
    align-items: stretch;
    padding: 2.4rem;
    border: 1px solid #D7DBDD;
    border-radius: 1rem;
    background: #FFFFFF;
    box-shadow: none !important;
    transform: none !important;
}

.patient-info-block-reverse {
    grid-template-columns: minmax(0, 1fr) minmax(220px, .45fr);
}

.patient-info-block-reverse .patient-info-icon {
    order: 2;
}

.patient-info-block-reverse .patient-info-content {
    order: 1;
}

.patient-info-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 17rem;
    border-radius: .95rem;
}

.patient-info-icon i {
    font-size: clamp(4.25rem, 8vw, 6.75rem);
    line-height: 1;
}

.patient-info-icon-teal {
    background: #EAF3F4;
    color: #287C89;
}

.patient-info-icon-coral {
    background: #FCE7DC;
    color: #D96A3D;
}

.patient-info-icon-ink {
    background: #EEF0F6;
    color: #2D3142;
}

.patient-info-content {
    align-self: center;
    max-width: 52rem;
}

.patient-info-content h2 {
    margin: 1rem 0 1rem;
    color: #2D3142;
    font-size: clamp(2rem, 3vw, 3rem);
    line-height: 1.08;
    letter-spacing: -.022em;
    font-weight: 800;
}

.patient-info-content p {
    color: #393E41;
    font-size: 1.06rem;
    line-height: 1.75;
    margin-bottom: 1rem;
}

.patient-list {
    display: grid;
    gap: .6rem;
    margin: 1.1rem 0 0;
    padding: 0;
    list-style: none;
}

.patient-list li {
    position: relative;
    padding-left: 1.55rem;
    color: #393E41;
    line-height: 1.6;
}

.patient-list li::before {
    content: "";
    position: absolute;
    left: 0;
    top: .68em;
    width: .46rem;
    height: .46rem;
    border-radius: 999px;
    background: #EF8354;
}

.patient-call-box {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 1.35rem;
    padding: 1.05rem 1.2rem;
    border-radius: .85rem;
    background: #F8FBFB;
    border-left: 4px solid #287C89;
}

.patient-call-box span {
    color: #707D7D;
    font-weight: 750;
}

.patient-call-box a {
    color: #174C55;
    font-weight: 900;
    text-decoration: none;
    white-space: nowrap;
}

/* no hover/fade behavior on static patient blocks */
.patient-info-block,
.patient-info-block:hover,
.patient-info-block:focus,
.patient-info-block:focus-visible,
.patients-page .card,
.patients-page .card:hover {
    transform: none !important;
    box-shadow: none !important;
}

.patients-faq {
    margin-top: 5rem;
}

.patients-faq h2 {
    margin-bottom: 1.4rem;
    color: #2D3142;
    font-size: clamp(1.7rem, 2.4vw, 2.35rem);
    font-weight: 800;
    letter-spacing: -.015em;
}

.patients-faq .accordion {
    border: 1px solid #D7DBDD;
    border-radius: .95rem;
    overflow: hidden;
}

.patients-faq .accordion-item {
    border-left: 0 !important;
    border-right: 0 !important;
}

.patients-faq .accordion-item:first-child {
    border-top: 0 !important;
}

.patients-faq .accordion-item:last-child {
    border-bottom: 0 !important;
}

/* do not reveal static patient blocks unless explicitly wanted later */
.patient-info-block.km-reveal,
.patient-info-block .km-reveal {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
}

@media (max-width: 991.98px) {
    .patient-info-block,
    .patient-info-block-reverse {
        grid-template-columns: 1fr;
        padding: 1.6rem;
        gap: 1.6rem;
    }

    .patient-info-block-reverse .patient-info-icon,
    .patient-info-block-reverse .patient-info-content {
        order: initial;
    }

    .patient-info-icon {
        min-height: 12rem;
    }

    .patient-info-content {
        max-width: none;
    }

    .patient-call-box {
        align-items: flex-start;
        flex-direction: column;
    }

    .patients-faq {
        margin-top: 3.5rem;
    }
}

/* KM cleanup pass 33:
   bigger hero SVG, tighter hero vertical spacing */

.km-hero {
    padding-top: 2.85rem !important;
    padding-bottom: 2.75rem !important;
    min-height: auto !important;
}

.km-hero-grid {
    align-items: center !important;
    gap: clamp(2rem, 4.5vw, 4rem) !important;
}

.km-hero-copy h1 {
    margin-top: .75rem !important;
    margin-bottom: .8rem !important;
}

.km-lead {
    margin-bottom: 0 !important;
}

.km-hero-actions {
    margin-top: 1.15rem !important;
}

.km-appointment-bar {
    margin-top: 1rem !important;
}

/* Bigger illustration without making the whole section stupidly tall */
.km-hero-illustration {
    min-height: 350px !important;
    transform: none !important;
}

.km-hero-illustration img {
    width: min(100%, 760px) !important;
    max-height: 520px !important;
}

/* Desktop balance */
@media (min-width: 992px) {
    .km-hero-grid {
        grid-template-columns: minmax(0, .82fr) minmax(460px, 1.18fr) !important;
    }

    .km-hero-copy {
        padding-top: .25rem;
        padding-bottom: .25rem;
    }
}

/* Mobile sanity */
@media (max-width: 991.98px) {
    .km-hero {
        padding-top: 2.75rem !important;
        padding-bottom: 2.8rem !important;
    }

    .km-hero-illustration {
        min-height: auto !important;
    }

    .km-hero-illustration img {
        width: min(100%, 560px) !important;
        max-height: none !important;
    }
}

/* KM cleanup pass 33:
   bigger hero SVG, tighter hero vertical spacing */

.km-hero {
    padding-top: 2.85rem !important;
    padding-bottom: 2.75rem !important;
    min-height: auto !important;
}

.km-hero-grid {
    align-items: center !important;
    gap: clamp(2rem, 4.5vw, 4rem) !important;
}

.km-hero-copy h1 {
    margin-top: .75rem !important;
    margin-bottom: .8rem !important;
}

.km-lead {
    margin-bottom: 0 !important;
}

.km-hero-actions {
    margin-top: 1.15rem !important;
}

.km-appointment-bar {
    margin-top: 1rem !important;
}

/* Bigger illustration without making the whole section stupidly tall */
.km-hero-illustration {
    min-height: 350px !important;
    transform: none !important;
}

.km-hero-illustration img {
    width: min(100%, 760px) !important;
    max-height: 520px !important;
}

/* Desktop balance */
@media (min-width: 992px) {
    .km-hero-grid {
        grid-template-columns: minmax(0, .82fr) minmax(460px, 1.18fr) !important;
    }

    .km-hero-copy {
        padding-top: .25rem;
        padding-bottom: .25rem;
    }
}

/* Mobile sanity */
@media (max-width: 991.98px) {
    .km-hero {
        padding-top: 2.75rem !important;
        padding-bottom: 2.8rem !important;
    }

    .km-hero-illustration {
        min-height: auto !important;
    }

    .km-hero-illustration img {
        width: min(100%, 560px) !important;
        max-height: none !important;
    }
}

/* KM cleanup pass 36:
   contact card without label, doctor name as heading */

.contact-panel > .km-pill:first-child {
    display: none !important;
}

.contact-panel h2 {
    margin-top: 0 !important;
    margin-bottom: .35rem !important;
    font-size: clamp(1.55rem, 2.3vw, 2.15rem) !important;
}

.contact-subtitle {
    margin-bottom: 1.6rem;
    color: #707D7D;
    font-size: .98rem;
    font-weight: 650;
}


/* KM patients cleanup pass 37:
   patient sections are content blocks, not cards.
   Remove frames, add spacing, keep alternating icon/text layout. */

.patients-info-list {
    gap: 5.25rem !important;
}

.patient-info-block,
.patient-info-block:hover,
.patient-info-block:focus,
.patient-info-block:focus-visible {
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    transform: none !important;
    padding: 0 !important;
}

.patient-info-block {
    grid-template-columns: minmax(260px, .48fr) minmax(0, 1fr) !important;
    gap: clamp(3rem, 6vw, 5.75rem) !important;
    align-items: center !important;
}

.patient-info-block-reverse {
    grid-template-columns: minmax(0, 1fr) minmax(260px, .48fr) !important;
}

.patient-info-icon {
    min-height: 18rem !important;
    border-radius: .95rem !important;
}

.patient-info-content {
    max-width: 52rem !important;
}

.patient-info-content h2 {
    margin-top: 1rem !important;
}

.patient-call-box {
    max-width: 42rem;
}

/* add quiet separators between content blocks */
.patient-info-block + .patient-info-block {
    padding-top: 5.25rem !important;
    border-top: 1px solid #E3E6E8 !important;
}

/* still no hover nonsense */
.patients-page .patient-info-block:hover,
.patients-page .patient-info-icon:hover,
.patients-page .patient-info-content:hover {
    transform: none !important;
    box-shadow: none !important;
}

/* patient reveal, whole block only */
.patient-info-block.km-reveal,
.patient-info-block.km-reveal-left,
.patient-info-block.km-reveal-right {
    opacity: 0 !important;
    transition:
        opacity .62s ease,
        transform .62s ease !important;
    will-change: opacity, transform;
}

.patient-info-block.km-reveal-left {
    transform: translate3d(-34px, 0, 0) !important;
}

.patient-info-block.km-reveal-right {
    transform: translate3d(34px, 0, 0) !important;
}

.patient-info-block.km-reveal.is-visible,
.patient-info-block.km-reveal-left.is-visible,
.patient-info-block.km-reveal-right.is-visible {
    opacity: 1 !important;
    transform: translate3d(0, 0, 0) !important;
}

/* remove older rule that forced patient blocks visible */
.patient-info-block.km-reveal:not(.is-visible),
.patient-info-block .km-reveal:not(.is-visible) {
    opacity: 0 !important;
}

/* FAQ stays static */
.patients-faq,
.patients-faq * {
    transform: none;
}

@media (prefers-reduced-motion: reduce) {
    .patient-info-block.km-reveal,
    .patient-info-block.km-reveal-left,
    .patient-info-block.km-reveal-right {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
    }
}

@media (max-width: 991.98px) {
    .patients-info-list {
        gap: 3.5rem !important;
    }

    .patient-info-block,
    .patient-info-block-reverse {
        grid-template-columns: 1fr !important;
        gap: 1.8rem !important;
    }

    .patient-info-block + .patient-info-block {
        padding-top: 3.5rem !important;
    }

    .patient-info-block-reverse .patient-info-icon,
    .patient-info-block-reverse .patient-info-content {
        order: initial !important;
    }

    .patient-info-icon {
        min-height: 13rem !important;
    }
}

/* KM patients cleanup pass 37:
   patient sections are content blocks, not cards.
   Remove frames, add spacing, keep alternating icon/text layout. */

.patients-info-list {
    gap: 5.25rem !important;
}

.patient-info-block,
.patient-info-block:hover,
.patient-info-block:focus,
.patient-info-block:focus-visible {
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    transform: none !important;
    padding: 0 !important;
}

.patient-info-block {
    grid-template-columns: minmax(260px, .48fr) minmax(0, 1fr) !important;
    gap: clamp(3rem, 6vw, 5.75rem) !important;
    align-items: center !important;
}

.patient-info-block-reverse {
    grid-template-columns: minmax(0, 1fr) minmax(260px, .48fr) !important;
}

.patient-info-icon {
    min-height: 18rem !important;
    border-radius: .95rem !important;
}

.patient-info-content {
    max-width: 52rem !important;
}

.patient-info-content h2 {
    margin-top: 1rem !important;
}

.patient-call-box {
    max-width: 42rem;
}

/* add quiet separators between content blocks */
.patient-info-block + .patient-info-block {
    padding-top: 5.25rem !important;
    border-top: 1px solid #E3E6E8 !important;
}

/* still no hover nonsense */
.patients-page .patient-info-block:hover,
.patients-page .patient-info-icon:hover,
.patients-page .patient-info-content:hover {
    transform: none !important;
    box-shadow: none !important;
}

/* patient reveal, whole block only */
.patient-info-block.km-reveal,
.patient-info-block.km-reveal-left,
.patient-info-block.km-reveal-right {
    opacity: 0 !important;
    transition:
        opacity .62s ease,
        transform .62s ease !important;
    will-change: opacity, transform;
}

.patient-info-block.km-reveal-left {
    transform: translate3d(-34px, 0, 0) !important;
}

.patient-info-block.km-reveal-right {
    transform: translate3d(34px, 0, 0) !important;
}

.patient-info-block.km-reveal.is-visible,
.patient-info-block.km-reveal-left.is-visible,
.patient-info-block.km-reveal-right.is-visible {
    opacity: 1 !important;
    transform: translate3d(0, 0, 0) !important;
}

/* remove older rule that forced patient blocks visible */
.patient-info-block.km-reveal:not(.is-visible),
.patient-info-block .km-reveal:not(.is-visible) {
    opacity: 0 !important;
}

/* FAQ stays static */
.patients-faq,
.patients-faq * {
    transform: none;
}

@media (prefers-reduced-motion: reduce) {
    .patient-info-block.km-reveal,
    .patient-info-block.km-reveal-left,
    .patient-info-block.km-reveal-right {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
    }
}

@media (max-width: 991.98px) {
    .patients-info-list {
        gap: 3.5rem !important;
    }

    .patient-info-block,
    .patient-info-block-reverse {
        grid-template-columns: 1fr !important;
        gap: 1.8rem !important;
    }

    .patient-info-block + .patient-info-block {
        padding-top: 3.5rem !important;
    }

    .patient-info-block-reverse .patient-info-icon,
    .patient-info-block-reverse .patient-info-content {
        order: initial !important;
    }

    .patient-info-icon {
        min-height: 13rem !important;
    }
}

/* KM services reveal pass 38:
   alternating scroll fade for Pece a vykony service sections */

.service-feature.km-reveal,
.service-feature.km-reveal-left,
.service-feature.km-reveal-right {
    opacity: 0 !important;
    transition:
        opacity .62s ease,
        transform .62s ease !important;
    will-change: opacity, transform;
}

.service-feature.km-reveal-left {
    transform: translate3d(-34px, 0, 0) !important;
}

.service-feature.km-reveal-right {
    transform: translate3d(34px, 0, 0) !important;
}

.service-feature.km-reveal.is-visible,
.service-feature.km-reveal-left.is-visible,
.service-feature.km-reveal-right.is-visible {
    opacity: 1 !important;
    transform: translate3d(0, 0, 0) !important;
}

/* reveal whole section only, do not animate random children like a cursed presentation */
.service-feature .service-icon-panel,
.service-feature .service-content {
    animation: none !important;
}

/* no hover, still content */
.service-feature:hover,
.service-icon-panel:hover,
.service-content:hover {
    transform: none !important;
    box-shadow: none !important;
}

@media (prefers-reduced-motion: reduce) {
    .service-feature.km-reveal,
    .service-feature.km-reveal-left,
    .service-feature.km-reveal-right {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
    }
}

/* KM opening hours reveal pass 39:
   table reveal gently from top to bottom, with safe fallback */

.opening-hours-table-card {
    opacity: 1 !important;
    transform: none !important;
}

/* only JS-enabled reveal starts hidden */
.opening-hours-table-card.km-reveal:not(.is-visible) {
    opacity: 0 !important;
    transform: translate3d(0, -18px, 0) !important;
    transition:
        opacity .55s ease,
        transform .55s ease !important;
}

/* visible state */
.opening-hours-table-card.km-reveal.is-visible,
.opening-hours-table-card.is-visible {
    opacity: 1 !important;
    transform: translate3d(0, 0, 0) !important;
}

/* no hover movement, because table is not clickable, shockingly */
.opening-hours-table-card:hover,
.opening-hours-table-card:focus,
.opening-hours-table-card:focus-visible,
.opening-hours-table-card.km-reveal.is-visible:hover {
    transform: translate3d(0, 0, 0) !important;
    box-shadow: 0 8px 18px rgba(45, 49, 66, .035) !important;
}

@media (prefers-reduced-motion: reduce) {
    .opening-hours-table-card,
    .opening-hours-table-card.km-reveal,
    .opening-hours-table-card.km-reveal:not(.is-visible) {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
    }
}

/* KM hero photo pass:
   replace SVG illustration with prepared photo block */

.km-hero-photo {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 390px;
}

.km-hero-photo::before {
    content: "";
    position: absolute;
    inset: 2.4rem 0 1.8rem 3rem;
    border-radius: .9rem;
    background: #EAF3F4;
    border: 1px solid #D7DBDD;
}

.km-hero-photo img {
    position: relative;
    z-index: 1;
    display: block;
    width: min(100%, 620px);
    height: 390px;
    object-fit: cover;
    object-position: center;
    border-radius: .9rem;
    border: 1px solid #D7DBDD;
    box-shadow: 0 18px 42px rgba(45, 49, 66, .10);
}

/* remove older SVG-specific rules from winning visually */
.km-hero-illustration {
    display: none !important;
}

@media (min-width: 992px) {
    .km-hero-grid {
        grid-template-columns: minmax(0, .9fr) minmax(460px, 1.1fr) !important;
    }

    .km-hero {
        padding-top: 3rem !important;
        padding-bottom: 3rem !important;
        min-height: auto !important;
    }
}

@media (max-width: 991.98px) {
    .km-hero-photo {
        min-height: auto;
        margin-top: 1.5rem;
    }

    .km-hero-photo::before {
        inset: 1.4rem 0 .8rem 1.2rem;
    }

    .km-hero-photo img {
        width: 100%;
        height: auto;
        max-height: 420px;
    }
}

/* Global icon/text alignment polish:
   icons should align with text, not float like loose dental equipment */

.km-note,
.contact-note,
.opening-hours-extra,
.service-note,
.price-validity-box,
.km-home-alert,
.alert-strip .d-flex,
.contact-item,
.km-pill,
.patient-call-box,
.km-info-row {
    align-items: center !important;
}

.km-note i,
.contact-note i,
.opening-hours-extra i,
.service-note i,
.price-validity-box i,
.km-home-alert i,
.alert-strip i,
.contact-item i,
.km-pill i {
    line-height: 1 !important;
    flex-shrink: 0;
}

/* Blocks with longer text should still start cleanly on mobile */
@media (max-width: 575.98px) {
    .km-note,
    .contact-note,
    .opening-hours-extra,
    .service-note,
    .price-validity-box,
    .km-home-alert,
    .alert-strip .d-flex {
        align-items: flex-start !important;
    }

    .km-note i,
    .contact-note i,
    .opening-hours-extra i,
    .service-note i,
    .price-validity-box i,
    .km-home-alert i,
    .alert-strip i {
        margin-top: .2rem;
    }
}

/* Public alert accent:
   alerts are operational notices, so make them visible and consistent */

.alert-strip {
    background: #EF8354 !important;
    color: #fff !important;
}

.alert-strip i,
.alert-strip strong,
.alert-strip div,
.alert-strip a {
    color: #fff !important;
}

.alert-strip .container > .d-flex {
    align-items: center !important;
}

.km-alert-section {
    background: #fff !important;
}

.km-home-alert {
    background: #EF8354 !important;
    border: 0 !important;
    border-left: 0 !important;
    color: #fff !important;
    box-shadow: 0 .65rem 1.35rem rgba(239, 131, 84, .16) !important;
}

.km-home-alert i,
.km-home-alert strong,
.km-home-alert span,
.km-home-alert div {
    color: #fff !important;
}

.km-home-alert {
    align-items: center !important;
}

@media (max-width: 575.98px) {
    .alert-strip .container > .d-flex,
    .km-home-alert {
        align-items: flex-start !important;
    }

    .alert-strip i,
    .km-home-alert i {
        margin-top: .15rem;
    }
}

/* Homepage no longer repeats global alerts */
.km-alert-section,
.km-home-alert {
    display: none !important;
}

/* Public info boxes:
   accent orange for operational notices, teal for phone/contact.
   Because not every box on Earth needs to scream the same thing. */

.km-info-box {
    display: flex !important;
    align-items: center !important;
    gap: .85rem !important;
    padding: 1rem 1.25rem !important;
    border-radius: .75rem !important;
    font-weight: 650;
}

.km-info-box i {
    line-height: 1 !important;
    flex-shrink: 0;
}

.km-info-box strong {
    font-weight: 850;
}

.km-info-box-accent {
    color: #fff !important;
    background: #EF8354 !important;
    border: 0 !important;
    box-shadow: 0 .65rem 1.35rem rgba(239, 131, 84, .16) !important;
}

.km-info-box-accent i,
.km-info-box-accent span,
.km-info-box-accent strong,
.km-info-box-accent div,
.km-info-box-accent p {
    color: #fff !important;
}

/* Existing orange-ish info boxes should follow the same treatment */
.service-note,
.opening-hours-extra,
.contact-note {
    display: flex !important;
    align-items: center !important;
    gap: .85rem !important;
    padding: 1rem 1.25rem !important;
    border-radius: .75rem !important;
}

/* Teal/contact boxes stay teal, not orange */
.patient-call-box,
.km-info-panel,
.km-appointment-bar {
    border-left-color: #287C89 !important;
}

.patient-call-box a,
.km-info-row a,
.km-info-row strong,
.km-appointment-bar a,
.km-appointment-bar strong {
    color: #15545F !important;
}

/* The phone/order strip in patient page must stay teal */
.patient-call-box {
    background: #F8FCFC !important;
    border: 1px solid #D7DBDD !important;
    border-left: 4px solid #287C89 !important;
    color: #2D3142 !important;
}

.patient-call-box span {
    color: #707D7D !important;
}

.patient-call-box a {
    color: #15545F !important;
}

/* Undo older orange inheritance on teal contact/phone components, because CSS fossil layers are a public-health issue */
.km-info-panel .km-info-row::before {
    background: #EAF3F4 !important;
    color: #287C89 !important;
}

@media (max-width: 575.98px) {
    .km-info-box,
    .service-note,
    .opening-hours-extra,
    .contact-note {
        align-items: flex-start !important;
    }

    .km-info-box i,
    .service-note i,
    .opening-hours-extra i,
    .contact-note i {
        margin-top: .18rem;
    }
}

/* Public info boxes pastel correction:
   operational notices should be calm pastel, not danger-alert cosplay */

.km-info-box,
.service-note,
.opening-hours-extra,
.contact-note,
.km-note.km-info-box {
    display: flex !important;
    align-items: center !important;
    gap: .85rem !important;
    padding: 1rem 1.25rem !important;
    border-radius: .75rem !important;
    font-weight: 650;
}

/* Pastel orange notice style */
.km-info-box-accent,
.service-note.km-info-box-accent,
.opening-hours-extra.km-info-box-accent,
.contact-note.km-info-box-accent,
.km-note.km-info-box-accent {
    color: #2D3142 !important;
    background: #FCE7DC !important;
    border: 1px solid #F2C7B4 !important;
    border-left: 4px solid #EF8354 !important;
    box-shadow: none !important;
}

.km-info-box-accent i,
.service-note.km-info-box-accent i,
.opening-hours-extra.km-info-box-accent i,
.contact-note.km-info-box-accent i,
.km-note.km-info-box-accent i {
    color: #EF8354 !important;
    line-height: 1 !important;
    flex-shrink: 0;
}

.km-info-box-accent span,
.km-info-box-accent strong,
.km-info-box-accent div,
.km-info-box-accent p,
.service-note.km-info-box-accent span,
.opening-hours-extra.km-info-box-accent span,
.contact-note.km-info-box-accent span,
.km-note.km-info-box-accent span {
    color: #2D3142 !important;
}

.km-info-box-accent strong {
    font-weight: 850;
}

/* Teal/contact boxes stay teal, because phone number is not an emergency siren */
.patient-call-box {
    background: #F8FCFC !important;
    border: 1px solid #D7DBDD !important;
    border-left: 4px solid #287C89 !important;
    color: #2D3142 !important;
    box-shadow: none !important;
}

.patient-call-box span {
    color: #707D7D !important;
}

.patient-call-box a,
.km-info-row a,
.km-info-row strong,
.km-appointment-bar a,
.km-appointment-bar strong {
    color: #15545F !important;
}

.km-info-panel .km-info-row::before {
    background: #EAF3F4 !important;
    color: #287C89 !important;
}

@media (max-width: 575.98px) {
    .km-info-box,
    .service-note,
    .opening-hours-extra,
    .contact-note,
    .km-note.km-info-box {
        align-items: flex-start !important;
    }

    .km-info-box i,
    .service-note i,
    .opening-hours-extra i,
    .contact-note i,
    .km-note.km-info-box i {
        margin-top: .18rem;
    }
}

/* Public pastel info box unification:
   price validity + notes + operational notes use the same calm orange style */

.price-validity-box,
.price-notes,
.service-note,
.opening-hours-extra,
.contact-note,
.km-note.km-info-box {
    background: #FCE7DC !important;
    border: 1px solid #F2C7B4 !important;
    border-left: 4px solid #EF8354 !important;
    color: #2D3142 !important;
    box-shadow: none !important;
}

.price-validity-box i,
.price-notes i,
.service-note i,
.opening-hours-extra i,
.contact-note i,
.km-note.km-info-box i {
    color: #EF8354 !important;
}

.price-validity-box span,
.price-validity-box strong,
.price-notes,
.price-notes p,
.service-note span,
.service-note strong,
.opening-hours-extra span,
.opening-hours-extra strong,
.contact-note span,
.contact-note strong,
.km-note.km-info-box span,
.km-note.km-info-box strong {
    color: #2D3142 !important;
}

/* Price notes should visually behave like one info box, not a teal leftover */
.price-notes {
    padding: 1.15rem 1.35rem !important;
    border-radius: .75rem !important;
}

.price-notes p {
    margin-bottom: .75rem !important;
}

.price-notes p:last-child {
    margin-bottom: 0 !important;
}

/* Keep teal for contact/order components only */
.patient-call-box,
.km-appointment-bar,
.km-info-panel {
    background: #FFFFFF !important;
    border-color: #D7DBDD !important;
}

.patient-call-box,
.km-appointment-bar {
    border-left: 4px solid #287C89 !important;
}

.patient-call-box a,
.km-appointment-bar a,
.km-appointment-bar strong,
.km-info-row a,
.km-info-row strong {
    color: #15545F !important;
}

/* Price notes correction:
   price notes are supporting info, not an operational warning */

.price-notes {
    background: #F8FCFC !important;
    border: 1px solid #D7DBDD !important;
    border-left: 4px solid #287C89 !important;
    color: #2D3142 !important;
    box-shadow: none !important;
}

.price-notes,
.price-notes p,
.price-notes strong,
.price-notes span {
    color: #2D3142 !important;
}

.price-notes p {
    margin-bottom: .75rem !important;
}

.price-notes p:last-child {
    margin-bottom: 0 !important;
}

/* Homepage link card CTA color fix:
   all three card links use the same teal CTA, no random orange arrow leftovers */

.km-link-card strong,
.km-link-card:nth-child(1) strong,
.km-link-card:nth-child(2) strong,
.km-link-card:nth-child(3) strong {
    color: #15545F !important;
    text-decoration: none !important;
}

.km-link-card strong::after,
.km-link-card:nth-child(1) strong::after,
.km-link-card:nth-child(2) strong::after,
.km-link-card:nth-child(3) strong::after {
    content: " →" !important;
    color: #15545F !important;
    font-weight: 900;
}

/* Public layout fix:
   prevent grey empty band above footer on short pages */

html,
body {
    min-height: 100%;
}

body {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    background: #FFFFFF !important;
}

main {
    flex: 1 0 auto;
    background: #FFFFFF !important;
}

.site-footer {
    flex-shrink: 0;
    margin-top: 0 !important;
}

/* Keep intentional section backgrounds, but don't let page leftovers inherit grey */
.page-header,
.subpage-section {
    background-clip: border-box;
}

/* Hero photo cleanup:
   plain rounded photo, no fake frame, no shadow, no decorative background */

.km-hero-photo {
    min-height: auto !important;
}

.km-hero-photo::before {
    display: none !important;
}

.km-hero-photo img {
    border: 0 !important;
    box-shadow: none !important;
    border-radius: .75rem !important;
}

/* Hero spacing cleanup:
   use the same vertical rhythm as the rest of the homepage sections */

.km-hero {
    padding-top: 5rem !important;
    padding-bottom: 5rem !important;
    min-height: auto !important;
    display: block !important;
}

.km-hero-grid {
    align-items: center !important;
}

.km-hero-photo {
    min-height: auto !important;
    margin: 0 !important;
}

.km-hero-photo img {
    display: block;
}

@media (max-width: 991.98px) {
    .km-hero {
        padding-top: 4rem !important;
        padding-bottom: 4rem !important;
    }

    .km-hero-photo {
        margin-top: 1.5rem !important;
    }
}

@media (max-width: 575.98px) {
    .km-hero {
        padding-top: 3.25rem !important;
        padding-bottom: 3.25rem !important;
    }
}

/* Homepage upcoming notice:
   only for future notices, calm pastel, no phone-box fallback */

.km-hero-alert {
    display: flex !important;
    align-items: center !important;
    gap: .85rem !important;
    max-width: 34rem;
    margin-top: 1.4rem;
    padding: 1rem 1.15rem !important;
    border-radius: .75rem !important;
    background: #FCE7DC !important;
    border: 1px solid #F2C7B4 !important;
    border-left: 4px solid #EF8354 !important;
    color: #2D3142 !important;
    box-shadow: none !important;
}

.km-hero-alert i {
    color: #EF8354 !important;
    line-height: 1 !important;
    flex-shrink: 0;
    font-size: 1.15rem;
}

.km-hero-alert span,
.km-hero-alert strong {
    display: block;
    color: #2D3142 !important;
}

.km-hero-alert span {
    margin-bottom: .15rem;
    font-weight: 850;
}

.km-hero-alert strong {
    font-weight: 650;
    line-height: 1.45;
}

@media (max-width: 575.98px) {
    .km-hero-alert {
        align-items: flex-start !important;
    }

    .km-hero-alert i {
        margin-top: .15rem;
    }
}

/* Homepage upcoming notice visual correction:
   future notice in hero should be calm teal info, not orange alert */

.km-hero-alert {
    background: #FFFFFF !important;
    border: 1px solid #D7DBDD !important;
    border-left: 4px solid #287C89 !important;
    color: #2D3142 !important;
    box-shadow: 0 8px 22px rgba(45, 49, 66, .045) !important;
}

.km-hero-alert i {
    color: #287C89 !important;
}

.km-hero-alert span,
.km-hero-alert strong,
.km-hero-alert div {
    color: #2D3142 !important;
}

.km-hero-alert span {
    color: #15545F !important;
}

/* Public alert/info icon alignment:
   top-align icons for multi-line text */

.alert-strip .d-flex,
.km-hero-alert,
.km-info-box,
.service-note,
.opening-hours-extra,
.contact-note,
.km-note.km-info-box,
.price-validity-box {
    align-items: flex-start !important;
}

.alert-strip i,
.km-hero-alert i,
.km-info-box i,
.service-note i,
.opening-hours-extra i,
.contact-note i,
.km-note.km-info-box i,
.price-validity-box i {
    margin-top: .18rem !important;
    line-height: 1 !important;
    flex-shrink: 0;
}

/* Mobile spacing cleanup:
   reduce vertical padding and oversized gaps on small screens */

@media (max-width: 767.98px) {
    .topbar {
        padding-top: .4rem !important;
        padding-bottom: .4rem !important;
    }

    .navbar {
        padding-top: .55rem !important;
        padding-bottom: .55rem !important;
    }

    .page-header {
        padding-top: 3rem !important;
        padding-bottom: 3rem !important;
    }

    .page-header h1 {
        margin-bottom: .75rem !important;
        font-size: clamp(2.6rem, 14vw, 4rem) !important;
        line-height: .98 !important;
    }

    .page-header .lead {
        font-size: 1rem !important;
        line-height: 1.55 !important;
    }

    .subpage-section {
        padding-top: 3.25rem !important;
        padding-bottom: 3.25rem !important;
    }

    .km-hero {
        padding-top: 3rem !important;
        padding-bottom: 3rem !important;
    }

    .km-hero-grid {
        gap: 2rem !important;
    }

    .km-hero-copy h1 {
        margin-top: .75rem !important;
        margin-bottom: .85rem !important;
        font-size: clamp(2.8rem, 15vw, 4rem) !important;
        line-height: .98 !important;
    }

    .km-lead {
        font-size: 1rem !important;
        line-height: 1.55 !important;
    }

    .km-hero-actions {
        margin-top: 1.15rem !important;
        gap: .65rem !important;
    }

    .km-hero-actions .btn {
        width: 100%;
    }

    .km-hero-photo {
        margin-top: .75rem !important;
    }

    .km-link-section,
    .km-section,
    .km-section-light,
    .km-final-section {
        padding-top: 3.25rem !important;
        padding-bottom: 3.25rem !important;
    }

    .km-link-grid,
    .km-care-grid {
        gap: 1rem !important;
    }

    .km-link-card,
    .km-care-card,
    .km-info-panel,
    .km-final-cta {
        padding: 1.2rem !important;
    }

    .km-link-card {
        min-height: auto !important;
    }

    .km-split {
        gap: 2rem !important;
    }

    .km-split h2,
    .km-section-head h2,
    .km-final-cta h2,
    .service-content h2,
    .patient-info-content h2,
    .opening-hours-intro h2,
    .contact-panel h2 {
        font-size: clamp(2rem, 10vw, 3rem) !important;
        line-height: 1.05 !important;
    }

    .service-feature,
    .patient-info-block,
    .opening-hours-layout,
    .contact-layout {
        gap: 1.75rem !important;
        margin-bottom: 3rem !important;
    }

    .service-icon-panel,
    .patient-info-icon {
        min-height: 13rem !important;
        padding: 2rem !important;
    }

    .patients-info-list {
        gap: 3.25rem !important;
    }

    .patients-faq {
        margin-top: 3.25rem !important;
    }

    .price-list {
        gap: 2.25rem !important;
    }

    .price-section-clean {
        margin-bottom: 2.25rem !important;
    }

    .price-section-head {
        gap: 1rem !important;
        padding: 1.15rem !important;
    }

    .price-table td {
        padding-left: 1rem !important;
        padding-right: 1rem !important;
    }

    .km-info-box,
    .service-note,
    .opening-hours-extra,
    .contact-note,
    .price-validity-box,
    .price-notes,
    .km-hero-alert {
        padding: .9rem 1rem !important;
    }
}

@media (max-width: 575.98px) {
    .container {
        padding-left: 1.15rem !important;
        padding-right: 1.15rem !important;
    }

    .page-header {
        padding-top: 2.6rem !important;
        padding-bottom: 2.6rem !important;
    }

    .subpage-section,
    .km-link-section,
    .km-section,
    .km-section-light,
    .km-final-section {
        padding-top: 2.85rem !important;
        padding-bottom: 2.85rem !important;
    }

    .km-hero {
        padding-top: 2.65rem !important;
        padding-bottom: 2.65rem !important;
    }

    .km-hero-copy h1,
    .page-header h1 {
        font-size: clamp(2.45rem, 15vw, 3.35rem) !important;
    }

    .btn-lg {
        padding: .75rem 1rem !important;
        font-size: 1rem !important;
    }

    .km-pill {
        font-size: .72rem !important;
    }

    .service-icon-panel,
    .patient-info-icon {
        min-height: 11rem !important;
    }

    .price-section-head h2 {
        font-size: 1.55rem !important;
    }

    .price-table td {
        padding-top: .85rem !important;
        padding-bottom: .85rem !important;
    }
}

/* Mobile price category header fix:
   keep icon and category title aligned in one clean row */

@media (max-width: 575.98px) {
    .price-section-head {
        display: flex !important;
        flex-direction: row !important;
        align-items: center !important;
        gap: 1rem !important;
        padding: 1.15rem 1rem !important;
    }

    .price-section-icon {
        width: 3rem !important;
        height: 3rem !important;
        min-width: 3rem !important;
        flex: 0 0 3rem !important;
        margin: 0 !important;
    }

    .price-section-head > div:last-child {
        min-width: 0 !important;
        flex: 1 1 auto !important;
    }

    .price-section-head h2 {
        margin: 0 !important;
        font-size: 1.55rem !important;
        line-height: 1.1 !important;
        word-break: normal !important;
        overflow-wrap: break-word !important;
    }

    .price-section-head p {
        margin-top: .35rem !important;
        margin-bottom: 0 !important;
    }
}

/* Hero title size polish:
   slightly calmer heading scale */

.km-hero-copy h1 {
    font-size: clamp(2.65rem, 4.2vw, 4.75rem) !important;
    line-height: 1.03 !important;
}

@media (max-width: 767.98px) {
    .km-hero-copy h1 {
        font-size: clamp(2.35rem, 13vw, 3.25rem) !important;
        line-height: 1.02 !important;
    }
}

@media (max-width: 575.98px) {
    .km-hero-copy h1 {
        font-size: clamp(2.25rem, 12.5vw, 3rem) !important;
    }
}

/* Mobile navbar fix:
   stable height when menu opens and calmer mobile nav states */

@media (max-width: 991.98px) {
    .navbar {
        padding-top: .65rem !important;
        padding-bottom: .65rem !important;
    }

    .navbar .container {
        min-height: 3.6rem !important;
        align-items: center !important;
    }

    .navbar-collapse {
        padding-top: .85rem !important;
        padding-bottom: .25rem !important;
    }

    .navbar-nav {
        gap: .15rem !important;
    }

    .navbar-nav .nav-link {
        display: block;
        padding: .72rem .85rem !important;
        border-radius: .55rem;
        color: #2D3142 !important;
        font-weight: 750;
        background: transparent !important;
    }

    .navbar-nav .nav-link:hover,
    .navbar-nav .nav-link:focus {
        color: #15545F !important;
        background: #F1F7F8 !important;
    }

    .navbar-nav .nav-link.active {
        color: #15545F !important;
        background: #EAF3F4 !important;
        font-weight: 850;
    }

    .navbar .btn {
        width: 100%;
        margin-top: .85rem !important;
        padding-top: .75rem !important;
        padding-bottom: .75rem !important;
    }

    .navbar-toggler {
        padding: .55rem .7rem !important;
        border-color: #D7DBDD !important;
        border-radius: .55rem !important;
    }

    .navbar-toggler:focus {
        box-shadow: 0 0 0 .2rem rgba(40, 124, 137, .16) !important;
    }
}

@media (hover: none) and (max-width: 991.98px) {
    .navbar-nav .nav-link:hover {
        background: transparent !important;
    }

    .navbar-nav .nav-link.active:hover {
        background: #EAF3F4 !important;
    }
}

/* Mobile/collapsed navbar final stability fix:
   no padding, border, font-size or line-height changes between normal/hover/active */

@media (max-width: 991.98px) {
    .navbar {
        padding-top: .65rem !important;
        padding-bottom: .65rem !important;
        border-bottom: 1px solid #D7DBDD !important;
    }

    .navbar .container {
        min-height: 3.75rem !important;
        align-items: center !important;
    }

    .navbar-collapse {
        margin-top: .75rem !important;
        padding-top: 0 !important;
        padding-bottom: .25rem !important;
        border-top: 0 !important;
    }

    .navbar-nav {
        gap: .22rem !important;
        align-items: stretch !important;
    }

    .navbar-nav .nav-item {
        display: block !important;
    }

    .navbar-nav .nav-link,
    .navbar-nav .nav-link:hover,
    .navbar-nav .nav-link:focus,
    .navbar-nav .nav-link.active,
    .navbar-nav .nav-link.active:hover,
    .navbar-nav .nav-link.active:focus {
        display: block !important;
        width: 100% !important;
        min-height: 2.7rem !important;
        padding: .72rem .9rem !important;
        margin: 0 !important;
        border: 0 !important;
        border-radius: .55rem !important;
        line-height: 1.25 !important;
        font-size: 1rem !important;
        font-weight: 800 !important;
        text-decoration: none !important;
        box-shadow: none !important;
        transform: none !important;
    }

    .navbar-nav .nav-link {
        color: #2D3142 !important;
        background: transparent !important;
    }

    .navbar-nav .nav-link:hover,
    .navbar-nav .nav-link:focus {
        color: #15545F !important;
        background: #F1F7F8 !important;
    }

    .navbar-nav .nav-link.active,
    .navbar-nav .nav-link.active:hover,
    .navbar-nav .nav-link.active:focus {
        color: #15545F !important;
        background: #EAF3F4 !important;
    }

    .navbar .btn,
    .navbar .btn:hover,
    .navbar .btn:focus {
        width: 100% !important;
        min-height: 3rem !important;
        margin-top: .85rem !important;
        padding: .75rem 1rem !important;
        line-height: 1.25 !important;
        transform: none !important;
        box-shadow: none !important;
    }

    .navbar-toggler,
    .navbar-toggler:hover,
    .navbar-toggler:focus {
        min-width: 3.1rem !important;
        min-height: 3.1rem !important;
        padding: .55rem .7rem !important;
        border: 1px solid #D7DBDD !important;
        border-radius: .55rem !important;
        box-shadow: none !important;
    }
}

/* Mobile/collapsed navbar final stability fix:
   no padding, border, font-size or line-height changes between normal/hover/active */

@media (max-width: 991.98px) {
    .navbar {
        padding-top: .65rem !important;
        padding-bottom: .65rem !important;
        border-bottom: 1px solid #D7DBDD !important;
    }

    .navbar .container {
        min-height: 3.75rem !important;
        align-items: center !important;
    }

    .navbar-collapse {
        margin-top: .75rem !important;
        padding-top: 0 !important;
        padding-bottom: .25rem !important;
        border-top: 0 !important;
    }

    .navbar-nav {
        gap: .22rem !important;
        align-items: stretch !important;
    }

    .navbar-nav .nav-item {
        display: block !important;
    }

    .navbar-nav .nav-link,
    .navbar-nav .nav-link:hover,
    .navbar-nav .nav-link:focus,
    .navbar-nav .nav-link.active,
    .navbar-nav .nav-link.active:hover,
    .navbar-nav .nav-link.active:focus {
        display: block !important;
        width: 100% !important;
        min-height: 2.7rem !important;
        padding: .72rem .9rem !important;
        margin: 0 !important;
        border: 0 !important;
        border-radius: .55rem !important;
        line-height: 1.25 !important;
        font-size: 1rem !important;
        font-weight: 800 !important;
        text-decoration: none !important;
        box-shadow: none !important;
        transform: none !important;
    }

    .navbar-nav .nav-link {
        color: #2D3142 !important;
        background: transparent !important;
    }

    .navbar-nav .nav-link:hover,
    .navbar-nav .nav-link:focus {
        color: #15545F !important;
        background: #F1F7F8 !important;
    }

    .navbar-nav .nav-link.active,
    .navbar-nav .nav-link.active:hover,
    .navbar-nav .nav-link.active:focus {
        color: #15545F !important;
        background: #EAF3F4 !important;
    }

    .navbar .btn,
    .navbar .btn:hover,
    .navbar .btn:focus {
        width: 100% !important;
        min-height: 3rem !important;
        margin-top: .85rem !important;
        padding: .75rem 1rem !important;
        line-height: 1.25 !important;
        transform: none !important;
        box-shadow: none !important;
    }

    .navbar-toggler,
    .navbar-toggler:hover,
    .navbar-toggler:focus {
        min-width: 3.1rem !important;
        min-height: 3.1rem !important;
        padding: .55rem .7rem !important;
        border: 1px solid #D7DBDD !important;
        border-radius: .55rem !important;
        box-shadow: none !important;
    }
}

/* Mobile services spacing fix:
   stop service blocks from producing random vertical canyons */

@media (max-width: 767.98px) {
    .services-page .service-feature {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 1.35rem !important;
        margin-bottom: 0 !important;
        padding-bottom: 2.4rem !important;
    }

    .services-page .service-feature + .service-feature {
        padding-top: 2.4rem !important;
        border-top: 1px solid #E3E7E8 !important;
    }

    .services-page .service-content {
        order: 1 !important;
        padding: 0 !important;
    }

    .services-page .service-icon-panel {
        order: 2 !important;
        min-height: 10.5rem !important;
        height: auto !important;
        padding: 1.75rem !important;
        margin: 0 !important;
        border-radius: .85rem !important;
    }

    .services-page .service-icon-panel i {
        font-size: 3.5rem !important;
    }

    .services-page .service-content h2 {
        margin-bottom: 1rem !important;
    }

    .services-page .service-content p {
        margin-bottom: 1.15rem !important;
    }

    .services-page .service-content ul {
        margin-bottom: 0 !important;
        padding-left: 0 !important;
    }

    .services-page .service-content li {
        margin-bottom: .72rem !important;
    }

    .services-page .service-content li:last-child {
        margin-bottom: 0 !important;
    }

    .services-page .service-note {
        margin-top: 0 !important;
    }
}

@media (max-width: 575.98px) {
    .services-page .service-feature {
        gap: 1.2rem !important;
        padding-bottom: 2.1rem !important;
    }

    .services-page .service-feature + .service-feature {
        padding-top: 2.1rem !important;
    }

    .services-page .service-icon-panel {
        min-height: 9.5rem !important;
        padding: 1.5rem !important;
    }

    .services-page .service-icon-panel i {
        font-size: 3.15rem !important;
    }
}

/* Mobile services spacing fix:
   stop service blocks from producing random vertical canyons */

@media (max-width: 767.98px) {
    .services-page .service-feature {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 1.35rem !important;
        margin-bottom: 0 !important;
        padding-bottom: 2.4rem !important;
    }

    .services-page .service-feature + .service-feature {
        padding-top: 2.4rem !important;
        border-top: 1px solid #E3E7E8 !important;
    }

    .services-page .service-content {
        order: 1 !important;
        padding: 0 !important;
    }

    .services-page .service-icon-panel {
        order: 2 !important;
        min-height: 10.5rem !important;
        height: auto !important;
        padding: 1.75rem !important;
        margin: 0 !important;
        border-radius: .85rem !important;
    }

    .services-page .service-icon-panel i {
        font-size: 3.5rem !important;
    }

    .services-page .service-content h2 {
        margin-bottom: 1rem !important;
    }

    .services-page .service-content p {
        margin-bottom: 1.15rem !important;
    }

    .services-page .service-content ul {
        margin-bottom: 0 !important;
        padding-left: 0 !important;
    }

    .services-page .service-content li {
        margin-bottom: .72rem !important;
    }

    .services-page .service-content li:last-child {
        margin-bottom: 0 !important;
    }

    .services-page .service-note {
        margin-top: 0 !important;
    }
}

@media (max-width: 575.98px) {
    .services-page .service-feature {
        gap: 1.2rem !important;
        padding-bottom: 2.1rem !important;
    }

    .services-page .service-feature + .service-feature {
        padding-top: 2.1rem !important;
    }

    .services-page .service-icon-panel {
        min-height: 9.5rem !important;
        padding: 1.5rem !important;
    }

    .services-page .service-icon-panel i {
        font-size: 3.15rem !important;
    }
}

/* Contact static map:
   screenshot background + CTA, no scroll-trap iframe nonsense */

.contact-map-static {
    position: relative;
    min-height: 28rem;
    overflow: hidden;
    border: 1px solid #D7DBDD;
    border-radius: .95rem;
    background: #EAF3F4;
}

.contact-map-bg {
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(
            90deg,
            rgba(234, 243, 244, .96) 0%,
            rgba(234, 243, 244, .88) 34%,
            rgba(234, 243, 244, .45) 68%,
            rgba(234, 243, 244, .22) 100%
        ),
        url("../img/map.jpg");
    background-size: cover;
    background-position: center;
    filter: saturate(.72) contrast(.92);
    transform: scale(1.02);
}

.contact-map-content {
    position: relative;
    z-index: 1;
    max-width: 27rem;
    padding: 2rem;
}

.contact-map-content h2 {
    margin-top: 1rem;
    margin-bottom: .75rem;
}

.contact-map-content p {
    color: #4F5B5C;
    line-height: 1.65;
}

.contact-map-content .btn {
    margin-top: .75rem;
}

@media (max-width: 767.98px) {
    .contact-map-static {
        min-height: 24rem;
    }

    .contact-map-bg {
        background-image:
            linear-gradient(
                180deg,
                rgba(234, 243, 244, .96) 0%,
                rgba(234, 243, 244, .88) 48%,
                rgba(234, 243, 244, .42) 100%
            ),
            url("../img/map.jpg");
        background-position: center;
    }

    .contact-map-content {
        padding: 1.35rem;
    }
}

/* Contact static map fix:
   force the map background to cover the whole panel and kill old panel leftovers */

.contact-map-panel.contact-map-static {
    position: relative !important;
    display: block !important;
    min-height: 28rem !important;
    overflow: hidden !important;
    border: 1px solid #D7DBDD !important;
    border-radius: .95rem !important;
    background: #EAF3F4 !important;
}

.contact-map-panel.contact-map-static::before,
.contact-map-panel.contact-map-static::after {
    display: none !important;
    content: none !important;
}

.contact-map-static .contact-map-bg {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    display: block !important;
    background-image:
        linear-gradient(
            90deg,
            rgba(234, 243, 244, .94) 0%,
            rgba(234, 243, 244, .82) 44%,
            rgba(234, 243, 244, .55) 100%
        ),
        url("../img/map.jpg") !important;
    background-repeat: no-repeat !important;
    background-size: cover !important;
    background-position: center center !important;
    filter: saturate(.72) contrast(.92) !important;
    transform: none !important;
}

.contact-map-static .contact-map-content {
    position: relative !important;
    z-index: 2 !important;
    max-width: 30rem !important;
    min-height: 28rem !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: center !important;
    padding: 2rem !important;
}

@media (max-width: 767.98px) {
    .contact-map-panel.contact-map-static {
        min-height: 24rem !important;
    }

    .contact-map-static .contact-map-bg {
        background-image:
            linear-gradient(
                180deg,
                rgba(234, 243, 244, .94) 0%,
                rgba(234, 243, 244, .82) 52%,
                rgba(234, 243, 244, .50) 100%
            ),
            url("../img/map.jpg") !important;
        background-position: center center !important;
    }

    .contact-map-static .contact-map-content {
        min-height: 24rem !important;
        padding: 1.35rem !important;
    }
}

/* Contact static map real fix:
   old .contact-map-panel > div max-width was shrinking the background layer */

.contact-map-panel.contact-map-static > .contact-map-bg {
    max-width: none !important;
    width: 100% !important;
    height: 100% !important;
}

.contact-map-panel.contact-map-static > .contact-map-content {
    max-width: 30rem !important;
}

/* make the whole panel a clean static-map card */
.contact-map-panel.contact-map-static {
    position: relative !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    min-height: 28rem !important;
    padding: 0 !important;
    overflow: hidden !important;
    text-align: left !important;
    background: #EAF3F4 !important;
}

.contact-map-panel.contact-map-static .contact-map-bg {
    position: absolute !important;
    inset: 0 !important;
    background-image:
        linear-gradient(
            90deg,
            rgba(234, 243, 244, .96) 0%,
            rgba(234, 243, 244, .88) 38%,
            rgba(234, 243, 244, .62) 100%
        ),
        url("../img/map.jpg") !important;
    background-repeat: no-repeat !important;
    background-size: cover !important;
    background-position: center center !important;
    filter: saturate(.75) contrast(.92) !important;
    transform: none !important;
}

.contact-map-panel.contact-map-static .contact-map-content {
    position: relative !important;
    z-index: 2 !important;
    padding: 2.25rem !important;
}

@media (max-width: 767.98px) {
    .contact-map-panel.contact-map-static {
        min-height: 24rem !important;
    }

    .contact-map-panel.contact-map-static .contact-map-bg {
        background-image:
            linear-gradient(
                180deg,
                rgba(234, 243, 244, .96) 0%,
                rgba(234, 243, 244, .84) 54%,
                rgba(234, 243, 244, .58) 100%
            ),
            url("../img/map.jpg") !important;
    }

    .contact-map-panel.contact-map-static .contact-map-content {
        padding: 1.5rem !important;
    }
}

/* Homepage hero title balance:
   keep the title on two lines on desktop, without making it look timid */

@media (min-width: 992px) {
    .km-hero-grid {
        grid-template-columns: minmax(0, 1fr) minmax(560px, .98fr) !important;
        gap: clamp(2rem, 4.5vw, 4rem) !important;
    }

    .km-hero-copy h1 {
        max-width: 38rem !important;
        font-size: clamp(3.2rem, 4.25vw, 4.65rem) !important;
        line-height: 1.02 !important;
        letter-spacing: -.045em !important;
    }

    .km-lead {
        max-width: 36rem !important;
    }
}

@media (min-width: 1200px) {
    .km-hero-copy h1 {
        max-width: 40rem !important;
        font-size: clamp(3.4rem, 4.45vw, 4.9rem) !important;
    }
}

/* Homepage hero as background photo:
   photo sits on the right, text stays readable on the left */

@media (min-width: 992px) {
    .km-hero {
        position: relative !important;
        overflow: hidden !important;
        isolation: isolate !important;
        min-height: 34rem !important;
        display: flex !important;
        align-items: center !important;
        padding-top: 5.2rem !important;
        padding-bottom: 5.2rem !important;
        background:
            linear-gradient(
                90deg,
                rgba(255,255,255,.98) 0%,
                rgba(247,248,248,.96) 34%,
                rgba(247,248,248,.82) 48%,
                rgba(247,248,248,.28) 66%,
                rgba(247,248,248,.08) 100%
            ),
            url("../img/dermal-centre.jpg") right center / 58% auto no-repeat,
            #F7F8F8 !important;
        border-bottom: 1px solid #D7DBDD !important;
    }

    .km-hero::after {
        content: "";
        position: absolute;
        inset: 0;
        z-index: -1;
        background:
            linear-gradient(
                180deg,
                rgba(255,255,255,.05) 0%,
                rgba(234,243,244,.20) 100%
            );
        pointer-events: none;
    }

    .km-hero-grid {
        display: block !important;
        max-width: 42rem !important;
    }

    .km-hero-copy {
        position: relative !important;
        z-index: 1 !important;
        max-width: 41rem !important;
    }

    .km-hero-copy h1 {
        max-width: 39rem !important;
        font-size: clamp(3.6rem, 5.05vw, 5.35rem) !important;
        line-height: 1.02 !important;
    }

    .km-lead {
        max-width: 38rem !important;
    }

    .km-hero-photo {
        display: none !important;
    }
}

@media (min-width: 1400px) {
    .km-hero {
        background:
            linear-gradient(
                90deg,
                rgba(255,255,255,.98) 0%,
                rgba(247,248,248,.96) 32%,
                rgba(247,248,248,.78) 47%,
                rgba(247,248,248,.24) 64%,
                rgba(247,248,248,.06) 100%
            ),
            url("../img/dermal-centre.jpg") right center / 56% auto no-repeat,
            #F7F8F8 !important;
    }
}

@media (max-width: 991.98px) {
    .km-hero {
        background:
            linear-gradient(
                180deg,
                rgba(255,255,255,.96) 0%,
                rgba(247,248,248,.96) 56%,
                rgba(234,243,244,.92) 100%
            ) !important;
    }

    .km-hero-photo {
        display: block !important;
    }
}

/* Homepage hero recovery:
   kill the full-background-photo experiment and restore a clean two-column hero */

@media (min-width: 992px) {
    .km-hero {
        position: relative !important;
        overflow: hidden !important;
        min-height: auto !important;
        display: block !important;
        padding-top: 5rem !important;
        padding-bottom: 5rem !important;
        background:
            radial-gradient(circle at 78% 28%, rgba(40, 124, 137, .10), transparent 22rem),
            linear-gradient(135deg, #FFFFFF 0%, #F7F8F8 52%, #EEF0F0 100%) !important;
        border-bottom: 1px solid #D7DBDD !important;
    }

    .km-hero::after {
        display: none !important;
        content: none !important;
    }

    .km-hero-grid {
        display: grid !important;
        grid-template-columns: minmax(0, .95fr) minmax(520px, 1.05fr) !important;
        gap: clamp(2.5rem, 5vw, 5rem) !important;
        align-items: center !important;
        max-width: none !important;
    }

    .km-hero-copy {
        max-width: 42rem !important;
    }

    .km-hero-copy h1 {
        max-width: 40rem !important;
        font-size: clamp(3.65rem, 4.75vw, 5.25rem) !important;
        line-height: 1.02 !important;
        letter-spacing: -.048em !important;
    }

    .km-lead {
        max-width: 38rem !important;
    }

    .km-hero-photo {
        display: block !important;
        position: relative !important;
        overflow: hidden !important;
        min-height: auto !important;
        border-radius: .75rem !important;
        border: 1px solid #D7DBDD !important;
        background: #FFFFFF !important;
        box-shadow: 0 14px 34px rgba(45, 49, 66, .06) !important;
    }

    .km-hero-photo::before {
        display: none !important;
        content: none !important;
    }

    .km-hero-photo img {
        display: block !important;
        width: 100% !important;
        height: 23.5rem !important;
        object-fit: cover !important;
        object-position: center center !important;
        border: 0 !important;
        border-radius: 0 !important;
        box-shadow: none !important;
    }
}

@media (min-width: 1400px) {
    .km-hero-grid {
        grid-template-columns: minmax(0, .92fr) minmax(600px, 1.08fr) !important;
    }

    .km-hero-photo img {
        height: 25rem !important;
    }
}

@media (max-width: 991.98px) {
    .km-hero {
        display: block !important;
        min-height: auto !important;
        padding-top: 4rem !important;
        padding-bottom: 4rem !important;
        background:
            linear-gradient(135deg, #FFFFFF 0%, #F7F8F8 56%, #EEF0F0 100%) !important;
    }

    .km-hero-grid {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 2rem !important;
        max-width: none !important;
    }

    .km-hero-photo {
        display: block !important;
    }
}

/* Homepage hero background photo inside container:
   photo starts inside the container, not on the browser edge */

@media (min-width: 992px) {
    .km-hero {
        position: relative !important;
        overflow: hidden !important;
        isolation: isolate !important;
        min-height: auto !important;
        display: block !important;
        padding-top: 5rem !important;
        padding-bottom: 5rem !important;
        background:
            linear-gradient(135deg, #FFFFFF 0%, #F7F8F8 54%, #EEF0F0 100%) !important;
        border-bottom: 1px solid #D7DBDD !important;
    }

    .km-hero::before {
        content: "" !important;
        position: absolute !important;
        top: 0 !important;
        bottom: 0 !important;

        /* 1320px = Bootstrap xxl container width */
        left: max(50%, calc((100vw - 1320px) / 2 + 560px)) !important;
        right: max(1.5rem, calc((100vw - 1320px) / 2)) !important;

        z-index: -2 !important;
        background: url("../img/dermal-centre.jpg") center center / cover no-repeat !important;
        opacity: .92 !important;
    }

    .km-hero::after {
        content: "" !important;
        position: absolute !important;
        top: 0 !important;
        bottom: 0 !important;
        left: max(50%, calc((100vw - 1320px) / 2 + 560px)) !important;
        right: max(1.5rem, calc((100vw - 1320px) / 2)) !important;
        z-index: -1 !important;
        background:
            linear-gradient(
                90deg,
                rgba(247,248,248,.96) 0%,
                rgba(247,248,248,.72) 24%,
                rgba(247,248,248,.34) 52%,
                rgba(247,248,248,.08) 100%
            ),
            linear-gradient(
                180deg,
                rgba(45,49,66,.04) 0%,
                rgba(45,49,66,.12) 100%
            ) !important;
        pointer-events: none !important;
    }

    .km-hero .container {
        position: relative !important;
        z-index: 1 !important;
    }

    .km-hero-grid {
        display: grid !important;
        grid-template-columns: minmax(0, 40rem) minmax(420px, 1fr) !important;
        gap: clamp(2.5rem, 5vw, 5rem) !important;
        align-items: center !important;
        max-width: none !important;
    }

    .km-hero-copy {
        max-width: 40rem !important;
    }

    .km-hero-copy h1 {
        max-width: 39rem !important;
        font-size: clamp(3.55rem, 4.8vw, 5.15rem) !important;
        line-height: 1.02 !important;
        letter-spacing: -.048em !important;
    }

    .km-lead {
        max-width: 38rem !important;
    }

    .km-hero-photo {
        display: none !important;
    }
}

/* Bootstrap xl container */
@media (min-width: 1200px) and (max-width: 1399.98px) {
    .km-hero::before,
    .km-hero::after {
        left: calc((100vw - 1140px) / 2 + 500px) !important;
        right: calc((100vw - 1140px) / 2) !important;
    }
}

/* Bootstrap lg container */
@media (min-width: 992px) and (max-width: 1199.98px) {
    .km-hero::before,
    .km-hero::after {
        left: calc((100vw - 960px) / 2 + 430px) !important;
        right: calc((100vw - 960px) / 2) !important;
    }

    .km-hero-grid {
        grid-template-columns: minmax(0, 34rem) minmax(320px, 1fr) !important;
    }

    .km-hero-copy h1 {
        font-size: clamp(3.1rem, 4.7vw, 4.35rem) !important;
    }
}

/* Mobile stays normal, because background photos behind text are how readability goes to die */
@media (max-width: 991.98px) {
    .km-hero::before,
    .km-hero::after {
        display: none !important;
        content: none !important;
    }
}

/* Homepage hero background photo visibility fix:
   pseudo layers must sit above the hero background, not behind it */

@media (min-width: 992px) {
    .km-hero {
        position: relative !important;
        overflow: hidden !important;
        isolation: isolate !important;
        display: block !important;
        min-height: auto !important;
        padding-top: 5rem !important;
        padding-bottom: 5rem !important;
        background: linear-gradient(135deg, #FFFFFF 0%, #F7F8F8 54%, #EEF0F0 100%) !important;
        border-bottom: 1px solid #D7DBDD !important;
    }

    .km-hero::before {
        content: "" !important;
        display: block !important;
        position: absolute !important;
        top: 0 !important;
        bottom: 0 !important;
        left: max(50%, calc((100vw - 1320px) / 2 + 560px)) !important;
        right: max(1.5rem, calc((100vw - 1320px) / 2)) !important;
        z-index: 0 !important;
        background-image: url("../img/dermal-centre.jpg") !important;
        background-repeat: no-repeat !important;
        background-size: cover !important;
        background-position: center center !important;
        opacity: .92 !important;
        pointer-events: none !important;
    }

    .km-hero::after {
        content: "" !important;
        display: block !important;
        position: absolute !important;
        top: 0 !important;
        bottom: 0 !important;
        left: max(50%, calc((100vw - 1320px) / 2 + 560px)) !important;
        right: max(1.5rem, calc((100vw - 1320px) / 2)) !important;
        z-index: 1 !important;
        background:
            linear-gradient(
                90deg,
                rgba(247,248,248,.96) 0%,
                rgba(247,248,248,.76) 25%,
                rgba(247,248,248,.42) 55%,
                rgba(247,248,248,.12) 100%
            ),
            linear-gradient(
                180deg,
                rgba(45,49,66,.02) 0%,
                rgba(45,49,66,.12) 100%
            ) !important;
        pointer-events: none !important;
    }

    .km-hero .container {
        position: relative !important;
        z-index: 2 !important;
    }

    .km-hero-grid {
        display: grid !important;
        grid-template-columns: minmax(0, 40rem) minmax(420px, 1fr) !important;
        gap: clamp(2.5rem, 5vw, 5rem) !important;
        align-items: center !important;
        max-width: none !important;
    }

    .km-hero-copy {
        max-width: 40rem !important;
    }

    .km-hero-copy h1 {
        max-width: 39rem !important;
        font-size: clamp(3.55rem, 4.8vw, 5.15rem) !important;
        line-height: 1.02 !important;
        letter-spacing: -.048em !important;
    }

    .km-lead {
        max-width: 38rem !important;
    }

    .km-hero-photo {
        display: none !important;
    }
}

@media (min-width: 1200px) and (max-width: 1399.98px) {
    .km-hero::before,
    .km-hero::after {
        left: calc((100vw - 1140px) / 2 + 500px) !important;
        right: calc((100vw - 1140px) / 2) !important;
    }
}

@media (min-width: 992px) and (max-width: 1199.98px) {
    .km-hero::before,
    .km-hero::after {
        left: calc((100vw - 960px) / 2 + 430px) !important;
        right: calc((100vw - 960px) / 2) !important;
    }

    .km-hero-grid {
        grid-template-columns: minmax(0, 34rem) minmax(320px, 1fr) !important;
    }

    .km-hero-copy h1 {
        font-size: clamp(3.1rem, 4.7vw, 4.35rem) !important;
    }
}

@media (max-width: 991.98px) {
    .km-hero::before,
    .km-hero::after {
        display: none !important;
        content: none !important;
    }

    .km-hero-photo {
        display: block !important;
    }
}

/* Homepage hero final wide-photo attempt:
   use the new panoramic photo directly as the section background,
   fade it into nothing behind the text */

@media (min-width: 992px) {
    .km-hero {
        position: relative !important;
        overflow: hidden !important;
        isolation: auto !important;
        display: block !important;
        min-height: auto !important;
        padding-top: 5.2rem !important;
        padding-bottom: 5.2rem !important;
        border-bottom: 1px solid #D7DBDD !important;
        background:
            linear-gradient(
                90deg,
                rgba(255,255,255,1) 0%,
                rgba(255,255,255,.98) 24%,
                rgba(247,248,248,.94) 38%,
                rgba(247,248,248,.76) 52%,
                rgba(247,248,248,.42) 68%,
                rgba(247,248,248,.16) 100%
            ),
            linear-gradient(
                180deg,
                rgba(255,255,255,.06) 0%,
                rgba(238,240,240,.28) 100%
            ),
            url("../img/dermal-centre2.jpeg") center center / cover no-repeat !important;
    }

    .km-hero::before,
    .km-hero::after {
        display: none !important;
        content: none !important;
    }

    .km-hero-grid {
        display: grid !important;
        grid-template-columns: minmax(0, 41rem) minmax(420px, 1fr) !important;
        gap: clamp(2.5rem, 5vw, 5rem) !important;
        align-items: center !important;
        max-width: none !important;
    }

    .km-hero-copy {
        max-width: 41rem !important;
    }

    .km-hero-copy h1 {
        max-width: 40rem !important;
        font-size: clamp(3.55rem, 4.8vw, 5.15rem) !important;
        line-height: 1.02 !important;
        letter-spacing: -.048em !important;
    }

    .km-lead {
        max-width: 38rem !important;
    }

    .km-hero-photo {
        display: none !important;
    }
}

@media (min-width: 1400px) {
    .km-hero {
        background:
            linear-gradient(
                90deg,
                rgba(255,255,255,1) 0%,
                rgba(255,255,255,.985) 22%,
                rgba(247,248,248,.94) 36%,
                rgba(247,248,248,.72) 50%,
                rgba(247,248,248,.34) 66%,
                rgba(247,248,248,.10) 100%
            ),
            linear-gradient(
                180deg,
                rgba(255,255,255,.04) 0%,
                rgba(238,240,240,.26) 100%
            ),
            url("../img/dermal-centre2.jpeg") center center / cover no-repeat !important;
    }
}

@media (max-width: 991.98px) {
    .km-hero {
        background:
            linear-gradient(135deg, #FFFFFF 0%, #F7F8F8 56%, #EEF0F0 100%) !important;
    }

    .km-hero::before,
    .km-hero::after {
        display: none !important;
        content: none !important;
    }

    .km-hero-photo {
        display: block !important;
    }
}

/* Homepage hero photo: keep the photo readable.
   Fade protects only the text column instead of bleaching the whole image. */

@media (min-width: 992px) {
    .km-hero {
        position: relative !important;
        display: block !important;
        overflow: hidden !important;
        isolation: auto !important;
        min-height: auto !important;
        padding-top: 5.2rem !important;
        padding-bottom: 5.2rem !important;
        border-bottom: 1px solid #D7DBDD !important;
        background:
            linear-gradient(
                90deg,
                rgba(255,255,255,1) 0%,
                rgba(255,255,255,.985) 23%,
                rgba(247,248,248,.92) 34%,
                rgba(247,248,248,.46) 44%,
                rgba(247,248,248,.12) 54%,
                rgba(247,248,248,0) 66%
            ),
            linear-gradient(
                180deg,
                rgba(45,49,66,.08) 0%,
                rgba(45,49,66,.12) 100%
            ),
            url("../img/dermal-centre2.jpeg") center center / cover no-repeat !important;
    }

    .km-hero::before,
    .km-hero::after {
        display: none !important;
        content: none !important;
    }

    .km-hero-grid {
        display: grid !important;
        grid-template-columns: minmax(0, 39rem) minmax(420px, 1fr) !important;
        gap: clamp(2.2rem, 4.5vw, 4.5rem) !important;
        align-items: center !important;
        max-width: none !important;
    }

    .km-hero-copy {
        max-width: 39rem !important;
    }

    .km-hero-copy h1 {
        max-width: 37rem !important;
        font-size: clamp(3.45rem, 4.6vw, 4.95rem) !important;
        line-height: 1.02 !important;
        letter-spacing: -.048em !important;
    }

    .km-lead {
        max-width: 36rem !important;
    }

    .km-hero-photo {
        display: none !important;
    }
}

@media (min-width: 1400px) {
    .km-hero {
        background:
            linear-gradient(
                90deg,
                rgba(255,255,255,1) 0%,
                rgba(255,255,255,.985) 21%,
                rgba(247,248,248,.90) 31%,
                rgba(247,248,248,.42) 42%,
                rgba(247,248,248,.10) 52%,
                rgba(247,248,248,0) 64%
            ),
            linear-gradient(
                180deg,
                rgba(45,49,66,.08) 0%,
                rgba(45,49,66,.12) 100%
            ),
            url("../img/dermal-centre2.jpeg") center center / cover no-repeat !important;
    }
}

@media (max-width: 991.98px) {
    .km-hero {
        background: linear-gradient(135deg, #FFFFFF 0%, #F7F8F8 56%, #EEF0F0 100%) !important;
    }

    .km-hero-photo {
        display: block !important;
    }
}

/* Homepage hero photo alignment:
   push the panoramic photo right so it stops trespassing into the text */

@media (min-width: 992px) {
    .km-hero {
        background:
            linear-gradient(
                90deg,
                rgba(255,255,255,1) 0%,
                rgba(255,255,255,1) 28%,
                rgba(247,248,248,.98) 39%,
                rgba(247,248,248,.72) 50%,
                rgba(247,248,248,.28) 61%,
                rgba(247,248,248,0) 74%
            ),
            linear-gradient(
                180deg,
                rgba(45,49,66,.07) 0%,
                rgba(45,49,66,.10) 100%
            ),
            url("../img/dermal-centre2.jpeg") 68% center / cover no-repeat !important;
    }

    .km-hero-grid {
        grid-template-columns: minmax(0, 38rem) minmax(460px, 1fr) !important;
    }

    .km-hero-copy {
        max-width: 38rem !important;
    }

    .km-hero-copy h1 {
        max-width: 36.5rem !important;
    }

    .km-lead {
        max-width: 35rem !important;
    }
}

@media (min-width: 1400px) {
    .km-hero {
        background:
            linear-gradient(
                90deg,
                rgba(255,255,255,1) 0%,
                rgba(255,255,255,1) 27%,
                rgba(247,248,248,.98) 38%,
                rgba(247,248,248,.68) 49%,
                rgba(247,248,248,.24) 60%,
                rgba(247,248,248,0) 73%
            ),
            linear-gradient(
                180deg,
                rgba(45,49,66,.07) 0%,
                rgba(45,49,66,.10) 100%
            ),
            url("../img/dermal-centre2.jpeg") 70% center / cover no-repeat !important;
    }
}
