﻿html {
    scroll-behavior: smooth;
}

.sclass-visit-page {
    --visit-blue: #0f73d8;
    --visit-blue-dark: #0a4f9d;
    --visit-green: #1f9d72;
    --visit-text: #172033;
    --visit-muted: #5d6b7d;
    --visit-soft: #f4f8fc;
    --visit-line: #dfe8f2;
    --visit-white: #fff;
    --visit-shadow: 0 10px 28px rgba(23, 32, 51, .08);
    color: var(--visit-text);
    font-family: Manrope, Arial, sans-serif;
    font-size: 16px;
    line-height: 1.6;
    margin: 0 0 50px;
}

.sclass-visit-page * {
    box-sizing: border-box;
}

.sclass-visit-page img {
    display: block;
    max-width: 100%;
    height: auto;
}

.sclass-visit-page a {
    text-decoration: none;
}

.sclass-visit-page p,
.sclass-visit-page figure {
    margin: 0;
}

.visit-wrap {
    width: min(1180px, calc(100% - 30px));
    margin: 0 auto;
}

.visit-section {
    padding: 30px 0;
    scroll-margin-top: 78px;
}

.sclass-visit-page [id] {
    scroll-margin-top: 78px;
}

.visit-soft {
    background: var(--visit-soft);
}

.visit-kicker {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 10px;
    color: var(--visit-blue-dark);
    font-size: 13px;
    font-weight: 900;
    text-transform: uppercase;
}

.visit-kicker::before {
    content: "";
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--visit-green);
}

.visit-hero {
    position: relative;
    overflow: hidden;
    padding: 16px 0 38px;
    background:
        radial-gradient(circle at 14% 20%, rgba(31, 157, 114, .10), transparent 28%),
        radial-gradient(circle at 92% 12%, rgba(15, 115, 216, .14), transparent 32%),
        linear-gradient(180deg, #fff 0%, #f3f8fe 100%);
}

.visit-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.02fr) minmax(360px, .98fr);
    gap: 28px;
    align-items: center;
}

.visit-hero h1 {
    margin: 0 0 16px;
    color: #10213a;
    font-size: 36px;
    font-weight: 900;
    line-height: 1.13;
}

.visit-lead {
    max-width: 760px;
    color: #3f4e65;
    font-size: 18px;
}

.visit-quick {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 22px;
}

.visit-quick span {
    min-height: 58px;
    padding: 12px 14px;
    border: 1px solid var(--visit-line);
    border-radius: 8px;
    background: var(--visit-white);
    color: #213047;
    font-size: 14px;
    font-weight: 800;
    box-shadow: 0 7px 18px rgba(23, 32, 51, .05);
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.visit-quick span:hover {
    transform: translateY(-2px);
    border-color: rgba(31, 157, 114, .38);
    box-shadow: 0 12px 24px rgba(23, 32, 51, .08);
}

.visit-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 22px;
}

.sclass-visit-page .visit-actions .theme-btn {
    min-width: 190px;
    text-align: center;
}

.visit-hero-media,
.visit-photo,
.visit-process-media {
    overflow: hidden;
    border: 1px solid var(--visit-line);
    border-radius: 8px;
    background: #fff;
    box-shadow: var(--visit-shadow);
}

.visit-hero-media img {
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    object-position: center;
    transition: transform .5s ease;
}

.visit-hero-media:hover img,
.visit-photo:hover img,
.visit-process-media:hover img {
    transform: scale(1.025);
}

.visit-nav {
    position: sticky;
    top: 0;
    z-index: 5;
    border-top: 1px solid var(--visit-line);
    border-bottom: 1px solid var(--visit-line);
    background: rgba(255, 255, 255, .96);
    backdrop-filter: blur(10px);
}

.visit-nav-scroll {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding: 10px 0;
    scrollbar-width: thin;
}

.visit-nav a {
    flex: 0 0 auto;
    padding: 8px 12px;
    border: 1px solid var(--visit-line);
    border-radius: 8px;
    color: #26354d;
    background: #fff;
    font-size: 14px;
    font-weight: 800;
}

.visit-head {
    max-width: 860px;
    margin-bottom: 20px;
}

.visit-head h2,
.visit-process-grid h2,
.visit-prepare-grid h2,
.visit-cta h2 {
    margin: 0 0 12px;
    color: #10213a;
    font-size: 32px;
    font-weight: 900;
    line-height: 1.2;
}

.visit-head p,
.visit-text {
    color: var(--visit-muted);
    font-size: 17px;
}

.visit-symptoms {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}

.visit-symptoms article {
    min-height: 170px;
    padding: 16px;
    border: 1px solid var(--visit-line);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 7px 18px rgba(23, 32, 51, .05);
    transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.visit-symptoms article:hover {
    transform: translateY(-3px);
    border-color: rgba(15, 115, 216, .34);
    box-shadow: 0 14px 30px rgba(23, 32, 51, .09);
}

.visit-symptoms b {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    margin-bottom: 12px;
    border-radius: 50%;
    background: var(--visit-blue);
    color: #fff;
    font-size: 13px;
}

.visit-symptoms h3 {
    margin: 0 0 8px;
    color: #15243b;
    font-size: 18px;
    font-weight: 900;
}

.visit-symptoms p {
    color: var(--visit-muted);
    font-size: 14px;
}

.visit-warning {
    display: grid;
    gap: 4px;
    margin-top: 16px;
    padding: 16px 18px;
    border: 1px solid #ffd6d6;
    border-radius: 8px;
    background: #fff7f7;
    color: #3a2730;
}

.visit-warning strong {
    color: #9f2f2f;
}

.visit-warning span {
    color: #604954;
}

.visit-process-grid,
.visit-prepare-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(360px, .9fr);
    gap: 24px;
    align-items: center;
}

.visit-process-media img,
.visit-photo img {
    width: 100%;
    aspect-ratio: 16 / 10;
    object-fit: cover;
    transition: transform .5s ease;
}

.visit-steps {
    display: grid;
    gap: 10px;
    margin-top: 18px;
}

.visit-steps article {
    display: grid;
    grid-template-columns: 34px 1fr;
    gap: 12px;
    padding: 15px;
    border: 1px solid var(--visit-line);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 7px 18px rgba(23, 32, 51, .05);
}

.visit-steps span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: var(--visit-green);
    color: #fff;
    font-weight: 900;
}

.visit-steps h3 {
    margin: 0 0 6px;
    color: #15243b;
    font-size: 17px;
    font-weight: 900;
}

.visit-steps p {
    color: var(--visit-muted);
    font-size: 14px;
}

.visit-checklist {
    display: grid;
    gap: 10px;
    margin: 18px 0 0;
    padding: 0;
    list-style: none;
}

.visit-checklist li {
    position: relative;
    padding: 12px 14px 12px 42px;
    border: 1px solid var(--visit-line);
    border-radius: 8px;
    background: #fff;
    color: #26354d;
    font-weight: 700;
}

.visit-checklist li::before {
    content: "";
    position: absolute;
    left: 15px;
    top: 19px;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--visit-green);
}

.visit-head-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 18px;
    align-items: center;
    max-width: none;
}

.visit-price {
    padding: 18px;
    border: 1px solid var(--visit-line);
    border-radius: 8px;
    background: #fff;
    box-shadow: var(--visit-shadow);
}

.visit-note {
    margin-top: 10px;
    color: var(--visit-muted);
    font-size: 14px;
}

.visit-faq {
    display: grid;
    gap: 10px;
}

.visit-faq details {
    border: 1px solid var(--visit-line);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 7px 18px rgba(23, 32, 51, .04);
    transition: border-color .18s ease, box-shadow .18s ease;
}

.visit-faq details[open] {
    border-color: rgba(15, 115, 216, .35);
    box-shadow: 0 12px 26px rgba(15, 115, 216, .10);
}

.visit-faq summary {
    cursor: pointer;
    padding: 16px 44px 16px 18px;
    color: #10213a;
    font-weight: 900;
    list-style: none;
    position: relative;
}

.visit-faq summary::-webkit-details-marker {
    display: none;
}

.visit-faq summary::after {
    content: "+";
    position: absolute;
    right: 18px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--visit-blue);
    font-size: 24px;
    line-height: 1;
}

.visit-faq details[open] summary::after {
    content: "-";
}

.visit-faq-panel {
    max-height: 0;
    overflow: hidden;
    transition: max-height .32s ease;
}

.visit-faq details[open] .visit-faq-panel {
    max-height: 500px;
}

.visit-faq-panel div {
    padding: 0 18px 18px;
    color: var(--visit-muted);
}

.visit-cta {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 18px;
    align-items: center;
    padding: 28px;
    border-radius: 8px;
    background: #10213a;
    color: #fff;
}

.visit-cta .visit-kicker,
.visit-cta h2 {
    color: #fff;
}

.visit-cta .visit-kicker::before {
    background: #73d8b6;
}

.visit-cta p {
    max-width: 720px;
    color: rgba(255,255,255,.82);
    font-size: 17px;
}

@media (prefers-reduced-motion: no-preference) {
    .sclass-visit-page .visit-reveal {
        opacity: 0;
        transform: translateY(16px);
        transition: opacity .55s ease, transform .55s ease;
    }

    .sclass-visit-page .visit-reveal.is-visible {
        opacity: 1;
        transform: translateY(0);
    }

    .sclass-visit-page .theme-btn {
        transition: transform .18s ease, box-shadow .18s ease;
    }

    .sclass-visit-page .theme-btn:hover {
        transform: translateY(-2px);
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    .sclass-visit-page *,
    .sclass-visit-page *::before,
    .sclass-visit-page *::after {
        animation-duration: .001ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: .001ms !important;
    }
}

@media (max-width: 1050px) {
    .visit-hero-grid,
    .visit-process-grid,
    .visit-prepare-grid,
    .visit-head-row,
    .visit-cta {
        grid-template-columns: 1fr;
    }

    .visit-symptoms {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .visit-hero h1 {
        font-size: 33px;
    }

    .visit-head h2,
    .visit-process-grid h2,
    .visit-prepare-grid h2,
    .visit-cta h2 {
        font-size: 27px;
    }

    .visit-quick,
    .visit-symptoms {
        grid-template-columns: 1fr;
    }

    .visit-actions {
        flex-direction: column;
    }

    .sclass-visit-page .visit-actions .theme-btn {
        width: 100%;
    }
}

@media (max-width: 560px) {
    .visit-wrap {
        width: min(100% - 22px, 1180px);
    }

    .visit-section {
        padding: 26px 0;
    }

    .visit-hero {
        padding-top: 8px;
    }

    .visit-hero h1 {
        font-size: 29px;
    }

    .visit-lead,
    .visit-head p,
    .visit-text,
    .visit-cta p {
        font-size: 16px;
    }

    .visit-cta {
        padding: 22px 18px;
    }
}
/* Proctology SEO shell alignment: make the first SEO block behave like gynecology pages. */
.svc-page,
.hem-page,
.lig-page,
.sclass-visit-page,
.sclass-procto-seo {
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
}

.svc-page .svc-hero,
.hem-page .hem-hero,
.lig-page .lig-hero,
.sclass-visit-page .visit-hero,
.sclass-procto-seo .sprocto-hero {
    padding-top: 48px;
    background: linear-gradient(180deg, #f2f8fe 0%, #ffffff 100%);
}

.svc-page h1,
.hem-page h1,
.lig-page h1,
.sclass-visit-page .visit-hero h1,
.sclass-procto-seo .sprocto-hero h1 {
    font-size: 36px;
    line-height: 1.14;
}

@media (max-width: 760px) {
    .svc-page h1,
    .hem-page h1,
    .lig-page h1,
    .sclass-visit-page .visit-hero h1,
    .sclass-procto-seo .sprocto-hero h1 {
        font-size: 27px;
        line-height: 1.12;
    }
}

/* Proctology alternating section bands: match the gynecology visual rhythm. */
.svc-page > section.svc-section:nth-of-type(odd),
.hem-page > section.hem-section:nth-of-type(odd),
.lig-page > section.lig-section:nth-of-type(odd),
.sclass-visit-page > section.visit-section:nth-of-type(odd),
.sclass-procto-seo > section.sprocto-section:nth-of-type(odd) {
    background: #fff;
}

.svc-page > section.svc-section:nth-of-type(even),
.hem-page > section.hem-section:nth-of-type(even),
.lig-page > section.lig-section:nth-of-type(even),
.sclass-visit-page > section.visit-section:nth-of-type(even),
.sclass-procto-seo > section.sprocto-section:nth-of-type(even),
.svc-page .svc-soft,
.svc-page .svc-links,
.hem-page .hem-soft,
.hem-page .hem-links,
.lig-page .lig-soft,
.lig-page .lig-links,
.sclass-visit-page .visit-soft,
.sclass-procto-seo .sprocto-band,
.sclass-procto-seo .sprocto-links {
    background: #f3f8fd;
}

.svc-page .svc-hero,
.hem-page .hem-hero,
.lig-page .lig-hero,
.sclass-visit-page .visit-hero,
.sclass-procto-seo .sprocto-hero {
    background: linear-gradient(180deg, #f2f8fe 0%, #fff 100%);
}

.svc-page article,
.hem-page article,
.lig-page article,
.sclass-visit-page article,
.sclass-procto-seo article,
.svc-page .svc-card-accent,
.hem-page .hem-card-accent,
.lig-page .lig-card-accent,
.sclass-visit-page .visit-card,
.sclass-procto-seo .sprocto-card,
.sclass-procto-seo .sprocto-service-card {
    background-color: #fff;
}

/* SEO page overflow fix: avoid 100vw negative-margin horizontal scroll inside the site layout. */
.svc-page,
.hem-page,
.lig-page,
.sclass-visit-page,
.sclass-procto-seo,
.gyn-page,
.gm-page,
.uro-page,
.gastro-page {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    overflow-x: clip;
}

@supports not (overflow: clip) {
    .svc-page,
    .hem-page,
    .lig-page,
    .sclass-visit-page,
    .sclass-procto-seo,
    .gyn-page,
    .gm-page,
    .uro-page,
    .gastro-page {
        overflow-x: hidden;
    }
}

.svc-wrap,
.hem-wrap,
.lig-wrap,
.visit-wrap,
.sprocto-wrap,
.gyn-wrap,
.gm-wrap,
.uro-wrap,
.gas-wrap {
    max-width: calc(100% - 22px);
}


/* SEO cleanup: sticky menu below site header, final spacing, and service grids. */
.cos-nav,.uro-nav,.gyn-nav,.uz-nav{top:var(--seo-sticky-offset,96px)!important;z-index:3!important}
.sprocto-nav{top:var(--seo-sticky-offset,96px)!important;z-index:3!important}
.cos-final,.uro-final,.gyn-final,.sur-final,.uz-final,.end-final,.svc-final,.labseo-final,#zapis-proktolog{padding-bottom:92px!important}
.cos-link-grid,.uro-link-grid,.gyn-link-grid,.sur-link-grid,.uz-link-grid,.end-link-grid,.gas-link-grid,.endocr-link-grid,.labseo-link-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.cos-link-grid a,.uro-link-grid a,.gyn-link-grid a,.sur-link-grid a,.uz-link-grid a,.end-link-grid a,.gas-link-grid a,.endocr-link-grid a,.labseo-link-grid a{display:flex;align-items:center;min-height:64px;padding:14px 16px;border:1px solid #dbe5f1;border-radius:8px;background:#fff;text-decoration:none;font-weight:800;color:#10223d;line-height:1.35;box-shadow:0 10px 22px rgba(16,34,59,.04)}
.cos-link-grid a:hover,.uro-link-grid a:hover,.gyn-link-grid a:hover,.sur-link-grid a:hover,.uz-link-grid a:hover,.end-link-grid a:hover,.gas-link-grid a:hover,.endocr-link-grid a:hover,.labseo-link-grid a:hover{border-color:#87b9e8;color:#0f5faf}
@media (max-width:980px){.cos-link-grid,.uro-link-grid,.gyn-link-grid,.sur-link-grid,.uz-link-grid,.end-link-grid,.gas-link-grid,.endocr-link-grid,.labseo-link-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.cos-nav,.uro-nav,.gyn-nav,.uz-nav,.sprocto-nav{top:var(--seo-sticky-offset-mobile,72px)!important}.cos-final,.uro-final,.gyn-final,.sur-final,.uz-final,.end-final,.svc-final,.labseo-final,#zapis-proktolog{padding-bottom:72px!important}.cos-link-grid,.uro-link-grid,.gyn-link-grid,.sur-link-grid,.uz-link-grid,.end-link-grid,.gas-link-grid,.endocr-link-grid,.labseo-link-grid{grid-template-columns:1fr}}
