@font-face {
    font-family: "Geologica";
    src: url("../fonts/geologica-cyrillic.woff2") format("woff2");
    font-style: normal;
    font-weight: 300 700;
    font-display: swap;
    unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
    font-family: "Geologica";
    src: url("../fonts/geologica-latin.woff2") format("woff2");
    font-style: normal;
    font-weight: 300 700;
    font-display: swap;
    unicode-range: U+0000-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF;
}

:root {
    --ab-blue: #1b5fa8;
    --ab-blue-dark: #154a84;
    --ab-blue-mid: #3d7fcb;
    --ab-blue-light: #e8f0fa;
    --ab-blue-pale: #f8f7f1;
    --ab-teal: #4d8f66;
    --ab-yellow: #96650d;
    --ab-yellow-light: #faf3df;
    --ab-bg: #f7f8f3;
    --ab-white: #fff;
    --ab-text: #1c2a3a;
    --ab-muted: #5e6e82;
    --ab-border: #d6e3f0;
    --ab-danger: #a43232;
    --ab-radius: 12px;
    --ab-radius-sm: 8px;
    --ab-shadow: 0 14px 42px rgba(24, 70, 119, .11);
    --ab-shadow-sm: 0 6px 22px rgba(24, 70, 119, .09);
    --ab-transition: 180ms ease;
}

html {
    scroll-behavior: smooth;
    scroll-padding-top: 92px;
}

body {
    margin: 0;
    color: var(--ab-text);
    background: var(--ab-white);
    font-family: "Geologica", system-ui, -apple-system, "Segoe UI", sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
}

img {
    display: block;
    max-width: 100%;
}

a {
    color: var(--ab-blue);
    text-underline-offset: .18em;
}

a:hover {
    color: var(--ab-blue-dark);
}

button,
input,
select,
textarea {
    font: inherit;
}

:focus-visible {
    outline: 3px solid rgba(61, 127, 203, .55);
    outline-offset: 3px;
}

h1,
h2,
h3,
h4 {
    margin-top: 0;
    color: var(--ab-text);
    font-weight: 650;
    line-height: 1.16;
    letter-spacing: -.025em;
}

h1 {
    font-size: clamp(2.3rem, 5vw, 4.75rem);
}

h2 {
    font-size: clamp(1.85rem, 3.6vw, 3.1rem);
}

h3 {
    font-size: 1.25rem;
}

p:last-child {
    margin-bottom: 0;
}

.skip-link {
    position: fixed;
    top: 12px;
    left: 12px;
    z-index: 1100;
    padding: 10px 16px;
    border-radius: var(--ab-radius-sm);
    color: var(--ab-white);
    background: var(--ab-blue-dark);
    transform: translateY(-160%);
}

.skip-link:focus {
    color: var(--ab-white);
    transform: translateY(0);
}

.container {
    --bs-gutter-x: 2rem;
    max-width: 1240px;
}

.container-narrow {
    max-width: 900px;
}

.section-pad {
    padding: clamp(64px, 8vw, 108px) 0;
}

.section-soft {
    background: var(--ab-bg);
}

.section-blue {
    color: rgba(255, 255, 255, .85);
    background: linear-gradient(135deg, var(--ab-blue-dark), var(--ab-blue));
}

.section-blue h2,
.section-blue h3 {
    color: var(--ab-white);
}

.eyebrow {
    margin-bottom: 12px;
    color: var(--ab-blue);
    font-size: .78rem;
    font-weight: 650;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.section-blue .eyebrow,
.section-heading--light .eyebrow {
    color: #a9d2ff;
}

.section-heading {
    max-width: 760px;
    margin-bottom: clamp(30px, 5vw, 52px);
}

.section-heading h2 {
    margin-bottom: 0;
}

.section-heading p {
    margin: 16px 0 0;
    color: var(--ab-muted);
    font-size: 1.05rem;
}

.section-heading--row {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    max-width: none;
    gap: 24px;
}

.section-link,
.card-more {
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
    gap: 8px;
    color: var(--ab-blue);
    font-weight: 600;
    text-decoration: none;
}

.section-link:hover i,
.card-more:hover i {
    transform: translateX(3px);
}

.section-link i,
.card-more i {
    transition: transform var(--ab-transition);
}

.btn {
    border-radius: var(--ab-radius-sm);
    font-weight: 600;
    transition: color var(--ab-transition), background-color var(--ab-transition), border-color var(--ab-transition), transform var(--ab-transition), box-shadow var(--ab-transition);
}

.btn:hover {
    transform: translateY(-1px);
}

.btn-primary-ab {
    border: 1px solid var(--ab-blue);
    color: var(--ab-white);
    background: var(--ab-blue);
    box-shadow: 0 5px 16px rgba(27, 95, 168, .2);
}

.btn-primary-ab:hover,
.btn-primary-ab:focus-visible {
    border-color: var(--ab-blue-dark);
    color: var(--ab-white);
    background: var(--ab-blue-dark);
}

.btn-outline-ab {
    border: 1px solid var(--ab-blue);
    color: var(--ab-blue);
    background: transparent;
}

.btn-outline-ab:hover,
.btn-outline-ab:focus-visible {
    border-color: var(--ab-blue);
    color: var(--ab-white);
    background: var(--ab-blue);
}

.btn-lg {
    padding: .78rem 1.45rem;
    font-size: 1rem;
}

.topbar {
    padding: 8px 0;
    color: rgba(255, 255, 255, .78);
    background: var(--ab-blue-dark);
    font-size: .78rem;
}

.topbar a {
    color: var(--ab-white);
    text-decoration: none;
}

.topbar i {
    margin-right: 4px;
    color: #a9d2ff;
}

.site-header {
    position: relative;
    z-index: 1020;
    border-bottom: 1px solid var(--ab-border);
    background: rgba(255, 255, 255, .97);
}

.site-logo,
.footer-logo {
    display: inline-flex;
    align-items: center;
    color: var(--ab-blue);
    text-decoration: none;
}

.site-logo img {
    width: auto;
    height: 44px;
    object-fit: contain;
}

.footer-logo img {
    width: auto;
    height: 36px;
    object-fit: contain;
}

.site-logo__text,
.footer-logo__text {
    font-size: 1.75rem;
    font-weight: 700;
    letter-spacing: .08em;
}

.nav-main .nav-link {
    padding: .68rem .7rem;
    color: var(--ab-text);
    font-size: .92rem;
    font-weight: 520;
}

.nav-main .nav-link:hover,
.nav-main .nav-link.active {
    color: var(--ab-blue);
}

.nav-main .nav-item.dropdown {
    display: flex;
    position: relative;
    align-items: center;
}

.nav-dropdown-toggle {
    width: 26px;
    height: 38px;
    margin-left: -7px;
    border: 0;
    background: transparent;
}

.dropdown-menu {
    padding: 10px;
    border-color: var(--ab-border);
    border-radius: var(--ab-radius-sm);
    box-shadow: var(--ab-shadow-sm);
}

.dropdown-item {
    padding: .55rem .7rem;
    border-radius: 6px;
    font-size: .9rem;
}

.dropdown-item.active,
.dropdown-item:active {
    color: var(--ab-white);
    background: var(--ab-blue);
}

.submenu-list {
    margin: 3px 0 6px 16px;
    padding: 0;
    list-style: none;
}

.header-actions {
    margin-left: 16px;
}

.header-phone a {
    display: block;
    color: var(--ab-text);
    font-weight: 650;
    text-decoration: none;
    white-space: nowrap;
}

.header-phone small {
    display: block;
    color: var(--ab-muted);
    font-size: .7rem;
}

.home-hero,
.service-hero,
.doctor-hero {
    position: relative;
    overflow: hidden;
    color: var(--ab-white);
    background: linear-gradient(135deg, #0d3560 0%, var(--ab-blue) 55%, #2a7ec8 100%);
}

.home-hero::before,
.service-hero::before,
.doctor-hero::before {
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse 60% 80% at 80% 50%, rgba(255, 255, 255, .06), transparent 70%);
    content: "";
    pointer-events: none;
}

.home-hero .container,
.service-hero .container,
.doctor-hero .container {
    position: relative;
}

.home-hero.section-pad {
    padding: 4.5rem 0 3.5rem;
    text-align: left;
}

.home-hero h1,
.service-hero h1,
.doctor-hero h1 {
    color: var(--ab-white);
}

.home-hero h1 {
    font-size: clamp(1.9rem, 2.6vw, 2.75rem);
}

.home-hero h1 em {
    color: #7cc8f4;
    font-style: normal;
}

.home-hero .eyebrow,
.service-hero .eyebrow,
.doctor-hero .eyebrow {
    color: #a9d2ff;
}

.home-hero .btn-outline-ab,
.service-hero .btn-outline-ab,
.doctor-hero .btn-outline-ab {
    color: var(--ab-white);
    border-color: rgba(255, 255, 255, .45);
}

.home-hero .btn-outline-ab:hover,
.home-hero .btn-outline-ab:focus-visible,
.service-hero .btn-outline-ab:hover,
.service-hero .btn-outline-ab:focus-visible,
.doctor-hero .btn-outline-ab:hover,
.doctor-hero .btn-outline-ab:focus-visible {
    color: var(--ab-white);
    background: rgba(255, 255, 255, .14);
    border-color: var(--ab-white);
}

.home-hero .hero-media,
.service-hero .hero-media,
.doctor-hero .hero-media,
.doctor-hero .doctor-portrait {
    background: rgba(255, 255, 255, .1);
    border: 1px solid rgba(255, 255, 255, .2);
}

.hero-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 20px;
    padding: 6px 16px;
    border: 1px solid rgba(255, 255, 255, .25);
    border-radius: 50px;
    background: rgba(255, 255, 255, .15);
    font-size: .8rem;
    font-weight: 600;
    letter-spacing: .05em;
}

.hero-quick-contact {
    padding: clamp(20px, 3vw, 28px);
    border: 1px solid rgba(255, 255, 255, .2);
    border-radius: var(--ab-radius);
    background: rgba(255, 255, 255, .1);
}

.hero-quick-contact__title {
    margin-bottom: 16px;
    color: rgba(255, 255, 255, .65);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.hero-quick-contact .contact-info-label,
.hero-quick-contact .contact-info-row small {
    color: rgba(255, 255, 255, .55);
}

.hero-quick-contact .contact-info-row a,
.hero-quick-contact .contact-info-row > div > span:not(.contact-info-label) {
    color: var(--ab-white);
}

.hero-quick-contact .contact-info-icon {
    color: #a9d2ff;
    background: rgba(255, 255, 255, .12);
}

.hero-lead {
    max-width: 690px;
    margin: 24px 0;
    color: var(--ab-muted);
    font-size: clamp(1.08rem, 2vw, 1.3rem);
}

.home-hero .hero-lead,
.service-hero .hero-lead,
.doctor-hero .hero-lead {
    color: rgba(255, 255, 255, .88);
}

.hero-caption {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 28px;
    color: var(--ab-blue-dark);
    font-size: .95rem;
    font-weight: 520;
}

.home-hero .hero-caption,
.service-hero .hero-caption,
.doctor-hero .hero-caption {
    color: #d7ecff;
}

.hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.hero-stats {
    display: flex;
    flex-wrap: wrap;
    gap: 1.75rem;
    margin: 28px 0 0;
}

.hero-stats dt {
    color: var(--ab-white);
    font-size: clamp(1.2rem, 2vw, 1.6rem);
    font-weight: 700;
    line-height: 1.1;
}

.hero-stats dd {
    margin: .2rem 0 0;
    color: rgba(255, 255, 255, .7);
    font-size: .78rem;
    line-height: 1.25;
}

.hero-media,
.doctor-portrait,
.page-header__media {
    overflow: hidden;
    border-radius: calc(var(--ab-radius) * 2);
    background: var(--ab-blue-light);
    box-shadow: var(--ab-shadow);
}

.hero-media {
    aspect-ratio: 8 / 9;
}

.hero-media--service {
    aspect-ratio: 1;
}

.hero-media img,
.doctor-portrait img,
.page-header__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.icon-tile,
.service-card__icon,
.contact-info-icon {
    display: inline-grid;
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
    place-items: center;
    border-radius: var(--ab-radius-sm);
    color: var(--ab-blue);
    background: var(--ab-blue-light);
    font-size: 1.35rem;
}

.situation-card {
    display: flex;
    height: 100%;
    align-items: center;
    gap: 16px;
    padding: 22px;
    border: 1px solid var(--ab-border);
    border-radius: var(--ab-radius);
    color: var(--ab-text);
    background: var(--ab-white);
    text-decoration: none;
    transition: transform var(--ab-transition), border-color var(--ab-transition), box-shadow var(--ab-transition);
}

a.situation-card:hover {
    border-color: #adc9e8;
    color: var(--ab-text);
    box-shadow: var(--ab-shadow-sm);
    transform: translateY(-3px);
}

.situation-card__body {
    display: flex;
    flex: 1;
    flex-direction: column;
}

.situation-card__body span {
    margin-top: 3px;
    color: var(--ab-muted);
    font-size: .86rem;
}

.service-card,
.doctor-card,
.case-card,
.review-card,
.info-card {
    overflow: hidden;
    border: 1px solid var(--ab-border);
    border-radius: var(--ab-radius);
    background: var(--ab-white);
    box-shadow: 0 3px 13px rgba(24, 70, 119, .04);
    transition: transform var(--ab-transition), border-color var(--ab-transition), box-shadow var(--ab-transition);
}

.service-card:hover,
.doctor-card:hover,
.case-card:hover {
    border-color: #b6cee9;
    box-shadow: var(--ab-shadow-sm);
    transform: translateY(-4px);
}

.service-card__media,
.doctor-card__media {
    display: block;
    overflow: hidden;
    background: var(--ab-blue-light);
}

.service-card__media {
    aspect-ratio: 3 / 1.85;
}

.doctor-card__media {
    display: grid;
    aspect-ratio: 13 / 15;
    place-items: center;
    position: relative;
}

.service-card__media img,
.doctor-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 400ms ease;
}

.service-card:hover img,
.doctor-card:hover img {
    transform: scale(1.025);
}

.doctor-card__placeholder {
    color: #a7bfda;
    font-size: 5rem;
}

.doctor-card__badge {
    position: absolute;
    bottom: 14px;
    left: 14px;
    max-width: calc(100% - 28px);
    padding: 6px 13px;
    border-radius: 999px;
    background: var(--ab-blue);
    box-shadow: 0 8px 20px rgb(20 91 159 / 22%);
    color: #fff;
    font-size: .72rem;
    font-weight: 700;
    line-height: 1.2;
}

.service-card__icon {
    margin: 26px 26px 0;
}

.service-card__body,
.doctor-card__body,
.case-card__body {
    padding: 24px;
}

.service-card h3,
.doctor-card h3,
.case-card h3 {
    margin-bottom: 10px;
}

.service-card h3 {
    color: var(--ab-text);
}

.service-card h3 a,
.doctor-card h3 a {
    color: var(--ab-text);
    text-decoration: none;
}

.service-card p,
.doctor-card p,
.case-card p {
    color: var(--ab-muted);
    font-size: .92rem;
}

.card-badge {
    display: inline-block;
    margin-bottom: 10px;
    padding: 4px 8px;
    border-radius: 999px;
    color: var(--ab-teal);
    background: #e9f4ea;
    font-size: .72rem;
    font-weight: 650;
}

.doctor-card__position {
    color: var(--ab-blue) !important;
    font-weight: 550;
}

.doctor-card__experience {
    font-size: .8rem !important;
}

.service-content {
    padding-top: 0;
}

.service-content__body {
    color: var(--ab-muted);
    font-size: 1rem;
    line-height: 1.75;
}

.service-content__body h2,
.service-content__body h3 {
    color: var(--ab-text);
    margin-bottom: 14px;
    margin-top: 34px;
}

.service-content__body h2:first-child,
.service-content__body h3:first-child {
    margin-top: 0;
}

.service-content__body p,
.service-content__body ul,
.service-content__body ol {
    margin-bottom: 18px;
}

.service-content__body li + li {
    margin-top: 7px;
}

.info-card {
    padding: 26px;
}

.info-card h3 {
    margin: 18px 0 8px;
}

.info-card p {
    color: var(--ab-muted);
}

.trust-strip {
    color: var(--ab-white);
    background: linear-gradient(135deg, #2f5f45 0%, var(--ab-teal) 55%, #5aa377 100%);
}

.trust-item {
    display: flex;
    min-height: 136px;
    align-items: center;
    gap: 15px;
    height: 100%;
    padding: 30px 24px;
    border-right: 1px solid rgba(255, 255, 255, .14);
}

.trust-item__icon {
    display: grid;
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
    place-items: center;
    border-radius: 10px;
    color: var(--ab-white);
    background: rgba(255, 255, 255, .14);
}

.trust-item__icon i {
    font-size: 1.45rem;
}

.trust-strip [class*="col-"]:last-child .trust-item {
    border-right: 0;
}

.trust-item__body {
    min-width: 0;
}

.trust-item__body strong {
    display: block;
    color: var(--ab-white);
    font-size: .94rem;
    line-height: 1.25;
}

.trust-item__body > span {
    display: block;
    margin-top: 4px;
    color: rgba(255, 255, 255, .7);
    font-size: .78rem;
    line-height: 1.4;
    white-space: pre-line;
}

.consult-card {
    padding: 28px;
    border: 1px solid rgba(255, 255, 255, .15);
    border-radius: var(--ab-radius);
    background: rgba(255, 255, 255, .08);
}

.consult-card > i {
    display: block;
    margin-bottom: 24px;
    color: #a9d2ff;
    font-size: 2rem;
}

.consult-card p {
    color: rgba(255, 255, 255, .72);
    font-size: .9rem;
}

.stages-list,
.education-list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.stage-card {
    display: grid;
    grid-template-columns: 64px minmax(0, 1fr) auto;
    align-items: start;
    gap: 24px;
    padding: 28px 0;
    border-bottom: 1px solid var(--ab-border);
}

.stage-card:first-child {
    border-top: 1px solid var(--ab-border);
}

.stage-card h3,
.education-list h3 {
    margin-bottom: 8px;
}

.stage-card p,
.education-list p {
    margin: 0;
    color: var(--ab-muted);
}

.stage-number {
    display: grid;
    width: 54px;
    height: 54px;
    place-items: center;
    border-radius: 50%;
    color: var(--ab-white);
    background: var(--ab-blue);
    font-weight: 650;
}

.stage-duration,
.case-duration {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 10px;
    border-radius: 999px;
    color: var(--ab-blue-dark);
    background: var(--ab-blue-light);
    font-size: .78rem;
    white-space: nowrap;
}

.full-price-panel {
    overflow: hidden;
    border: 1px solid var(--ab-border);
    border-radius: var(--ab-radius);
    background: var(--ab-white);
    box-shadow: var(--ab-shadow-sm);
}

.full-price-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    padding: 14px;
    border-bottom: 1px solid var(--ab-border);
    background: var(--ab-bg);
}

.full-price-tab {
    padding: 9px 15px;
    border: 0;
    border-radius: 999px;
    color: var(--ab-muted);
    background: var(--ab-white);
    font-size: .85rem;
    font-weight: 550;
    white-space: nowrap;
}

.full-price-tab.active {
    color: var(--ab-white);
    background: var(--ab-blue);
}

.full-price-description {
    margin: 20px 30px 0;
    color: var(--ab-muted);
    font-size: .9rem;
}

.home-prices-note {
    margin: 16px 0;
    padding: 1rem 1.25rem;
    border-left: 3px solid var(--ab-blue);
    border-radius: 0 var(--ab-radius-sm) var(--ab-radius-sm) 0;
    background: var(--ab-blue-light);
    color: var(--ab-text);
    font-size: .9rem;
}

.full-price-table {
    width: 100%;
    border-collapse: collapse;
}

.full-price-table th {
    padding: .8rem 1.6rem;
    color: var(--ab-muted);
    background: var(--ab-white);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-align: left;
    text-transform: uppercase;
}

.full-price-table th:last-child,
.full-price-table td:last-child {
    text-align: right;
}

.full-price-table td {
    padding: .85rem 1.6rem;
    border-top: 1px solid var(--ab-border);
    font-size: .92rem;
}

.full-price-table td strong,
.full-price-table td small {
    display: block;
}

.full-price-table td strong {
    font-weight: 500;
}

.full-price-table td small {
    margin-top: .18rem;
    color: var(--ab-muted);
    font-size: .78rem;
}

.full-price-table td:last-child {
    color: var(--ab-blue);
    font-weight: 700;
    white-space: nowrap;
}

.full-price-table tr:hover td,
.full-price-table tr.is-highlighted td {
    background: var(--ab-bg);
}

.full-price-table tbody tr:last-child td {
    padding-bottom: 1.1rem;
}

.case-images {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    background: var(--ab-blue-light);
}

.case-images a {
    position: relative;
    aspect-ratio: 4 / 3;
    overflow: hidden;
}

.case-images a + a {
    border-left: 2px solid var(--ab-white);
}

.case-images img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.case-images span {
    position: absolute;
    bottom: 10px;
    left: 10px;
    padding: 4px 9px;
    border-radius: 999px;
    color: var(--ab-white);
    background: rgba(21, 74, 132, .84);
    font-size: .72rem;
    font-weight: 650;
}

.review-card {
    padding: 30px;
    border-color: #f0e2b8;
    background: var(--ab-yellow-light);
}

.review-stars {
    margin-bottom: 18px;
    color: #f4a921;
    letter-spacing: .12em;
}

.review-card blockquote {
    margin: 0 0 24px;
    color: var(--ab-text);
    font-size: 1rem;
}

.review-card footer {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px 14px;
    color: var(--ab-muted);
    font-size: .78rem;
}

.review-card footer strong {
    color: var(--ab-text);
    font-size: .92rem;
}

.review-card footer a {
    margin-left: auto;
    color: var(--ab-yellow);
}

.splide__slide {
    height: auto;
}

.splide__arrow {
    width: 44px;
    height: 44px;
    border: 1px solid var(--ab-border);
    background: var(--ab-white);
    box-shadow: var(--ab-shadow-sm);
    opacity: 1;
}

.splide__pagination {
    bottom: -2rem;
}

.splide__pagination__page.is-active {
    background: var(--ab-blue);
}

.faq-item {
    border-bottom: 1px solid var(--ab-border);
}

.faq-item:first-child {
    border-top: 1px solid var(--ab-border);
}

.faq-item h3 {
    margin: 0;
}

.faq-question {
    display: flex;
    width: 100%;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 22px 0;
    border: 0;
    color: var(--ab-text);
    background: transparent;
    text-align: left;
    font-weight: 600;
}

.faq-question i {
    color: var(--ab-blue);
    transition: transform var(--ab-transition);
}

.faq-question[aria-expanded="true"] i {
    transform: rotate(45deg);
}

.faq-answer {
    padding: 0 46px 22px 0;
    color: var(--ab-muted);
}

/* Detail pages (service, doctor) */
.breadcrumbs--detail {
    padding: .75rem 0;
    border-bottom: 1px solid var(--ab-border);
    background: var(--ab-bg);
}

.breadcrumbs--detail ol {
    gap: .3rem;
    font-size: .82rem;
}

.breadcrumbs--detail li:not(:last-child)::after {
    margin-left: .3rem;
    opacity: .55;
    content: "›";
}

.breadcrumbs--detail a {
    color: var(--ab-blue);
}

.breadcrumbs--detail li:last-child {
    color: var(--ab-text);
    font-weight: 600;
}

.service-page h2 {
    margin-bottom: .8rem;
    font-size: clamp(1.45rem, 2.8vw, 1.95rem);
    letter-spacing: -.02em;
}

.service-page .eyebrow {
    display: block;
    margin-bottom: .4rem;
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .12em;
}

.service-section-heading {
    max-width: 680px;
    margin-bottom: 1.5rem;
}

.service-section-heading h2 {
    margin-bottom: .35rem;
}

.service-section-heading p,
.service-section-lead {
    max-width: 540px;
    margin: 0;
    color: var(--ab-muted);
    font-size: .97rem;
}

.service-section-heading--center {
    margin-right: auto;
    margin-bottom: 1.5rem;
    margin-left: auto;
    text-align: center;
}

.service-section-heading--center p {
    margin-right: auto;
    margin-left: auto;
}

.service-section-heading--row {
    display: flex;
    max-width: none;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
}

.service-page .service-hero {
    padding: 4.5rem 0 3.5rem;
    text-align: left;
}

.service-page .service-hero h1 {
    margin-bottom: .9rem;
    font-size: clamp(2rem, 4.5vw, 3rem);
}

.service-page .service-hero h1 span,
.service-page .service-hero h1 strong {
    color: #7cc8f4;
    font-weight: inherit;
}

.service-page .service-hero .hero-lead {
    max-width: 520px;
    margin: 0 0 1.8rem;
    font-size: 1.05rem;
    line-height: 1.6;
}

.service-page .service-hero .hero-caption {
    margin: -1rem 0 1.5rem;
    color: rgba(255, 255, 255, .75);
    font-size: .82rem;
}

.service-hero__tag {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    margin-bottom: 1.1rem;
    padding: .3rem .9rem;
    border: 1px solid rgba(255, 255, 255, .22);
    border-radius: 50px;
    background: rgba(255, 255, 255, .13);
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .07em;
}

.service-hero__tag i {
    color: #7cc8f4;
}

.service-hero__perks,
.service-appointment__perks {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
    margin: 0 0 2rem;
    padding: 0;
    list-style: none;
}

.service-hero__perks li,
.service-appointment__perks li {
    display: flex;
    align-items: center;
    gap: .38rem;
    padding: .3rem .85rem;
    border: 1px solid rgba(255, 255, 255, .2);
    border-radius: 50px;
    background: rgba(255, 255, 255, .12);
    font-size: .8rem;
    font-weight: 600;
}

.service-hero__perks i,
.service-appointment__perks i {
    color: #7cc8f4;
}

.service-page .service-hero .btn-light,
.service-appointment .btn-light,
.service-results__cta .btn-light {
    border-color: #fff;
    color: var(--ab-blue);
    background: #fff;
    font-weight: 700;
}

.service-page .service-hero .btn-light:hover,
.service-page .service-hero .btn-light:focus-visible,
.service-appointment .btn-light:hover,
.service-appointment .btn-light:focus-visible,
.service-results__cta .btn-light:hover,
.service-results__cta .btn-light:focus-visible {
    border-color: var(--ab-blue-light);
    color: var(--ab-blue-dark);
    background: var(--ab-blue-light);
}

.service-hero__card {
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: var(--ab-radius);
    background: rgba(255, 255, 255, .1);
}

.service-hero__image {
    position: relative;
    overflow: hidden;
    aspect-ratio: 16 / 7;
    margin: .75rem .75rem .5rem;
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: var(--ab-radius-sm);
    background: rgba(255, 255, 255, .08);
}

.service-hero__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.service-hero__image figcaption {
    position: absolute;
    right: .5rem;
    bottom: .5rem;
    left: .5rem;
    padding: .3rem .5rem;
    border-radius: 6px;
    color: #fff;
    background: rgba(13, 53, 96, .72);
    font-size: .7rem;
}

.service-hero__card-label {
    margin: 0 .75rem;
    padding: .6rem 0 .2rem;
    border-top: 1px solid rgba(255, 255, 255, .15);
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .1em;
    opacity: .65;
    text-transform: uppercase;
}

.service-hero__doctor {
    display: flex;
    align-items: center;
    gap: .7rem;
    padding: .5rem .75rem .75rem;
    color: #fff;
    text-decoration: none;
}

.service-hero__doctor:hover {
    color: #fff;
}

.service-hero__doctor-photo {
    display: grid;
    width: 40px;
    height: 40px;
    flex: 0 0 40px;
    overflow: hidden;
    place-items: center;
    border-radius: 50%;
    background: rgba(255, 255, 255, .14);
}

.service-hero__doctor-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.service-hero__doctor strong,
.service-hero__doctor small {
    display: block;
}

.service-hero__doctor strong {
    color: #fff;
    font-size: .88rem;
    line-height: 1.25;
}

.service-hero__doctor small {
    margin-top: .12rem;
    color: rgba(255, 255, 255, .62);
    font-size: .74rem;
}

.service-hero__stats {
    display: flex;
    margin: 0;
    border-top: 1px solid rgba(255, 255, 255, .15);
}

.service-hero__stats > div {
    flex: 1;
    padding: .7rem .5rem;
    text-align: center;
}

.service-hero__stats > div + div {
    border-left: 1px solid rgba(255, 255, 255, .15);
}

.service-hero__stats dt {
    color: #fff;
    font-size: clamp(.95rem, 1.8vw, 1.3rem);
    font-weight: 700;
    line-height: 1.1;
}

.service-hero__stats dd {
    margin: .2rem 0 0;
    color: rgba(255, 255, 255, .62);
    font-size: .72rem;
    line-height: 1.25;
}

.service-indications,
.service-stages,
.service-prices,
.service-faq,
.service-content,
.service-doctors,
.service-results,
.service-appointment,
.service-consultation {
    padding: 4.5rem 0;
}

.service-indications__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .9rem;
    margin: 0;
    padding: 0;
    list-style: none;
    counter-reset: none;
}

.service-indications__grid li {
    display: flex;
    align-items: flex-start;
    gap: .85rem;
    padding: 1rem 1.1rem;
    border: 1px solid var(--ab-border);
    border-radius: var(--ab-radius-sm);
    background: var(--ab-bg);
}

.service-indications__number {
    display: flex;
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    color: #fff;
    background: var(--ab-blue);
    font-size: .88rem;
    font-weight: 700;
}

.service-indications__text {
    color: var(--ab-text);
    font-size: .9rem;
    line-height: 1.5;
}

.service-indications__text strong,
.service-indications__text small {
    display: block;
}

.service-indications__text small {
    margin-top: .25rem;
    color: var(--ab-muted);
    font-size: .8rem;
}

.service-consultation {
    background: var(--ab-blue-light);
}

.service-consultation__card {
    padding: 1.6rem;
    border: 1px solid var(--ab-border);
    border-radius: var(--ab-radius);
    background: #fff;
}

.service-consultation__card > span {
    display: flex;
    width: 48px;
    height: 48px;
    align-items: center;
    justify-content: center;
    margin-bottom: .9rem;
    border-radius: 11px;
    color: var(--ab-blue);
    background: var(--ab-blue-light);
    font-size: 1.35rem;
}

.service-consultation__card h3 {
    margin-bottom: .35rem;
    font-size: .97rem;
}

.service-consultation__card p {
    margin: 0;
    color: var(--ab-muted);
    font-size: .86rem;
    line-height: 1.5;
}

.service-consultation__note {
    display: flex;
    align-items: center;
    gap: 1.2rem;
    margin-top: 1rem;
    padding: 1.5rem 2rem;
    border-radius: var(--ab-radius);
    color: #fff;
    background: var(--ab-blue);
}

.service-consultation__note > i {
    flex: 0 0 auto;
    font-size: 1.9rem;
    opacity: .82;
}

.service-consultation__note p {
    margin: 0;
    font-size: .93rem;
    line-height: 1.5;
}

.service-stages__total {
    margin-top: 1rem;
    padding: 1rem;
    border: 1px solid var(--ab-border);
    border-radius: var(--ab-radius);
    background: var(--ab-bg);
}

.service-stages__total span,
.service-stages__total strong,
.service-stages__total small {
    display: block;
}

.service-stages__total span,
.service-stages__total small {
    color: var(--ab-muted);
    font-size: .79rem;
}

.service-stages__total strong {
    margin-top: .25rem;
    color: var(--ab-blue);
    font-size: 1.25rem;
}

.service-stages__total small {
    margin-top: .28rem;
}

.service-stages__list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.service-stages__list li {
    position: relative;
    min-height: 2.1rem;
    padding: 0 0 2.25rem 3.75rem;
}

.service-stages__list li::before {
    position: absolute;
    top: 2.4rem;
    bottom: 0;
    left: 1rem;
    width: 2px;
    background: var(--ab-border);
    content: "";
}

.service-stages__list li:last-child {
    padding-bottom: 0;
}

.service-stages__list li:last-child::before {
    display: none;
}

.service-stages__number {
    display: flex;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
    width: 2.1rem;
    height: 2.1rem;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: #fff;
    background: var(--ab-blue);
    font-size: .88rem;
    font-weight: 700;
}

.service-stages__heading {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .7rem;
    margin-bottom: .45rem;
}

.service-stages__heading h3 {
    margin: 0;
    font-size: .97rem;
}

.service-stages__heading span {
    padding: .18rem .6rem;
    border-radius: 50px;
    color: var(--ab-blue);
    background: var(--ab-blue-light);
    font-size: .7rem;
    font-weight: 700;
}

.service-stages__list p {
    max-width: 600px;
    margin: 0;
    color: var(--ab-muted);
    font-size: .88rem;
    line-height: 1.55;
}

.service-doctors,
.service-results {
    background: var(--ab-bg);
}

.service-doctor-card,
.service-case-card,
.service-review-card {
    overflow: hidden;
    border: 1px solid var(--ab-border);
    border-radius: var(--ab-radius);
    background: #fff;
    transition: box-shadow var(--ab-transition), transform var(--ab-transition);
}

.service-review-card {
    border-color: #f0e2b8;
    background: var(--ab-yellow-light);
}

.service-doctor-card:hover,
.service-case-card:hover,
.service-review-card:hover {
    box-shadow: 0 4px 28px rgba(27, 95, 168, .16);
    transform: translateY(-2px);
}

.service-doctor-card__media {
    display: flex;
    position: relative;
    aspect-ratio: 3 / 4;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    color: rgba(27, 95, 168, .3);
    background: linear-gradient(145deg, var(--ab-blue-light), #cde0f5);
    font-size: 4.25rem;
}

.service-doctor-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 400ms ease;
}

.service-doctor-card:hover .service-doctor-card__media img {
    transform: scale(1.025);
}

.service-doctor-card__media > span {
    position: absolute;
    bottom: .55rem;
    left: .55rem;
    max-width: calc(100% - 1.1rem);
    padding: .2rem .6rem;
    border-radius: 50px;
    color: #fff;
    background: var(--ab-blue);
    font-size: .67rem;
    font-weight: 700;
}

.service-doctor-card__body {
    padding: 1.1rem;
}

.service-doctor-card__body h3 {
    margin-bottom: .2rem;
    font-size: 1rem;
}

.service-doctor-card__body h3 a {
    color: var(--ab-text);
    text-decoration: none;
}

.service-doctor-card__position {
    margin-bottom: .4rem;
    color: var(--ab-blue);
    font-size: .82rem;
    font-weight: 600;
}

.service-doctor-card__experience {
    margin-bottom: .15rem;
    color: var(--ab-muted);
    font-size: .8rem;
}

.service-doctor-card__tags {
    display: flex;
    flex-wrap: wrap;
    gap: .3rem;
    margin: .5rem 0;
    padding: 0;
    list-style: none;
}

.service-doctor-card__tags li {
    padding: .16rem .56rem;
    border-radius: 50px;
    color: var(--ab-blue);
    background: var(--ab-blue-light);
    font-size: .7rem;
    font-weight: 600;
}

.service-doctor-card__action,
.service-case-card__link {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    margin-top: .4rem;
    padding: 0;
    border: 0;
    color: var(--ab-blue);
    background: transparent;
    font-size: .82rem;
    font-weight: 700;
    text-decoration: none;
}

.service-doctor-card__action:hover,
.service-case-card__link:hover {
    gap: .5rem;
    color: var(--ab-blue-dark);
}

.service-doctor-picker {
    appearance: none;
    display: flex;
    width: 100%;
    min-height: 100%;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: .7rem;
    padding: 1.4rem;
    border: 1px dashed var(--ab-border);
    border-radius: var(--ab-radius);
    background: var(--ab-bg);
    color: inherit;
    font: inherit;
    text-align: center;
    cursor: pointer;
    transition: border-color .15s ease, background-color .15s ease;
}

.service-doctor-picker:hover,
.service-doctor-picker:focus-visible {
    border-color: var(--ab-blue);
    background: var(--ab-blue-pale);
}

.service-doctor-picker__icon {
    display: flex;
    width: 46px;
    height: 46px;
    flex: 0 0 46px;
    align-items: center;
    justify-content: center;
    border: 1.5px solid var(--ab-border);
    border-radius: 50%;
    color: var(--ab-muted);
    background: #fff;
}

.service-doctor-picker__body {
    display: block;
}

.service-doctor-picker__title {
    display: block;
    margin-bottom: .25rem;
    font-size: .92rem;
    font-weight: 700;
}

.service-doctor-picker__text {
    display: block;
    color: var(--ab-muted);
    font-size: .8rem;
}

.service-price-panel {
    overflow: hidden;
    border: 1px solid var(--ab-border);
    border-radius: var(--ab-radius);
}

.service-price-tabs {
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    border-bottom: 1px solid var(--ab-border);
    background: var(--ab-bg);
}

.service-price-tabs li {
    flex: 0 0 auto;
}

.service-price-tab {
    padding: .62rem 1.15rem;
    border: 0;
    border-bottom: 2px solid transparent;
    color: var(--ab-muted);
    background: transparent;
    font-size: .83rem;
    font-weight: 600;
    white-space: nowrap;
}

.service-price-tab.active {
    border-bottom-color: var(--ab-blue);
    color: var(--ab-blue);
    background: #fff;
}

.service-price-panel__description {
    margin: 1rem 1rem .4rem;
    color: var(--ab-muted);
    font-size: .86rem;
}

.service-price-table {
    width: 100%;
    border-collapse: collapse;
}

.service-price-table th {
    padding: .52rem 1rem;
    color: var(--ab-muted);
    background: #fff;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-align: left;
    text-transform: uppercase;
}

.service-price-table th:last-child,
.service-price-table td:last-child {
    text-align: right;
}

.service-price-table td {
    padding: .68rem 1rem;
    border-top: 1px solid var(--ab-border);
    font-size: .89rem;
}

.service-price-table td strong,
.service-price-table td small {
    display: block;
}

.service-price-table td strong {
    font-weight: 500;
}

.service-price-table td small {
    margin-top: .18rem;
    color: var(--ab-muted);
    font-size: .76rem;
}

.service-price-table td:last-child {
    color: var(--ab-blue);
    font-weight: 700;
    white-space: nowrap;
}

.service-price-table tr:hover td,
.service-price-table tr.is-highlighted td {
    background: var(--ab-bg);
}

.service-prices__note {
    margin: 1.1rem 0 0;
    padding: .85rem 1.05rem;
    border-left: 3px solid var(--ab-blue);
    border-radius: 0 var(--ab-radius-sm) var(--ab-radius-sm) 0;
    background: var(--ab-blue-light);
    font-size: .86rem;
}

.service-prices__actions {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin-top: 1rem;
}

.service-price-factors {
    padding: 1.4rem 1.6rem;
    border: 1px solid var(--ab-border);
    border-radius: var(--ab-radius);
    background: var(--ab-bg);
}

.service-price-factors h3 {
    margin-bottom: .9rem;
    font-size: .97rem;
}

.service-price-factors ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.service-price-factors li {
    display: flex;
    align-items: flex-start;
    gap: .7rem;
    margin-bottom: .85rem;
}

.service-price-factors li:last-child {
    margin-bottom: 0;
}

.service-price-factors li > span {
    display: flex;
    width: 32px;
    height: 32px;
    flex: 0 0 32px;
    align-items: center;
    justify-content: center;
    border-radius: 7px;
    color: var(--ab-blue);
    background: var(--ab-blue-light);
    font-size: .95rem;
}

.service-price-factors li p {
    margin: 0;
    color: var(--ab-muted);
    font-size: .84rem;
    line-height: 1.5;
}

.service-tax-card {
    margin-top: .85rem;
    padding: 1.1rem 1.3rem;
    border: 1px solid #bfdcc4;
    border-radius: var(--ab-radius);
    background: #eaf5ec;
}

.service-tax-card h3 {
    margin-bottom: .35rem;
    color: var(--ab-teal);
    font-size: .79rem;
}

.service-tax-card p {
    margin: 0;
    color: var(--ab-text);
    font-size: .84rem;
    line-height: 1.5;
}

.service-tax-card a {
    display: inline-block;
    margin-top: .45rem;
    color: var(--ab-teal);
    font-size: .8rem;
    font-weight: 700;
    text-decoration: none;
}

.service-case-card__images {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.service-case-card__images > a,
.service-case-card__placeholder {
    display: flex;
    position: relative;
    aspect-ratio: 1;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    color: #b5cfe5;
    background: linear-gradient(145deg, var(--ab-blue-light), #d0e3f5);
}

.service-case-card__images > :first-child {
    border-right: 3px solid #fff;
}

.service-case-card__images img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.service-case-card__images a > span,
.service-case-card__placeholder small {
    position: absolute;
    top: .5rem;
    left: .5rem;
    padding: .17rem .58rem;
    border-radius: 50px;
    color: #fff;
    background: rgba(94, 110, 130, .8);
    font-size: .67rem;
    font-weight: 700;
}

.service-case-card__images a > span.is-after,
.service-case-card__placeholder:nth-child(2) small {
    background: rgba(26, 140, 122, .85);
}

.service-case-card__placeholder > i {
    font-size: 2.1rem;
}

.service-case-card__body {
    padding: .95rem 1.05rem;
}

.service-case-card__badge {
    display: inline-block;
    margin-bottom: .4rem;
    padding: .18rem .62rem;
    border-radius: 50px;
    color: var(--ab-blue);
    background: var(--ab-blue-light);
    font-size: .71rem;
    font-weight: 700;
}

.service-case-card__body h3 {
    margin-bottom: .18rem;
    font-size: .84rem;
}

.service-case-card__body p {
    margin: 0;
    color: var(--ab-muted);
    font-size: .76rem;
}

.service-case-card__link {
    font-size: .8rem;
}

.service-results__cta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 1rem;
    margin-top: 1.4rem;
    padding: 1.65rem 2rem;
    border-radius: var(--ab-radius);
    color: #fff;
    background: linear-gradient(90deg, var(--ab-blue), var(--ab-blue-mid));
}

.service-results__cta h3 {
    margin-bottom: .18rem;
    color: #fff;
    font-size: 1.03rem;
}

.service-results__cta p {
    margin: 0;
    opacity: .9;
    font-size: .95rem;
}

.service-results__reviews {
    margin-top: 1rem;
}

.service-review-card {
    padding: 1rem 1.1rem;
    border-radius: var(--ab-radius-sm);
}

.service-review-card__stars {
    margin-bottom: .45rem;
    color: #f5a623;
    font-size: .9rem;
    letter-spacing: .04em;
}

.service-review-card blockquote {
    margin: 0 0 .7rem;
    color: var(--ab-text);
    font-size: .84rem;
    line-height: 1.55;
}

.service-review-card footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
}

.service-review-card footer strong {
    color: var(--ab-text);
    font-size: .8rem;
}

.service-review-card footer span {
    color: var(--ab-muted);
    font-size: .74rem;
}

.service-review-card footer a {
    color: var(--ab-yellow);
    font-size: .74rem;
    text-decoration: none;
}

.service-results__reviews-link {
    margin-top: 1rem;
    text-align: right;
}

.service-page .service-content {
    padding: 4.5rem 0;
}

.service-page .service-content__body {
    color: var(--ab-muted);
    line-height: 1.7;
}

.service-faq__item {
    margin-bottom: .7rem;
    overflow: hidden;
    border: 1px solid var(--ab-border);
    border-radius: var(--ab-radius);
    transition: box-shadow var(--ab-transition);
}

.service-faq__item:has(.faq-question[aria-expanded="true"]) {
    box-shadow: 0 2px 16px rgba(27, 95, 168, .1);
}

.service-faq__item .faq-question {
    padding: 1rem 1.3rem;
    font-size: .94rem;
}

.service-faq__item .faq-question:hover {
    background: var(--ab-bg);
}

.service-faq__item .faq-question i {
    display: flex;
    width: 26px;
    height: 26px;
    flex: 0 0 26px;
    align-items: center;
    justify-content: center;
    border-radius: 6px;
    color: var(--ab-blue);
    background: var(--ab-blue-light);
    font-size: .8rem;
}

.service-faq__item .faq-question[aria-expanded="true"] i {
    color: #fff;
    background: var(--ab-blue);
    transform: rotate(180deg);
}

.service-faq__item .faq-answer {
    padding: 0 1.3rem 1rem;
    color: var(--ab-muted);
    font-size: .88rem;
    line-height: 1.6;
}

.service-appointment {
    color: rgba(255, 255, 255, .85);
    background: linear-gradient(135deg, #0d3560 0%, var(--ab-blue) 100%);
}

.service-appointment h2 {
    margin-bottom: .6rem;
    color: #fff;
    font-size: clamp(1.6rem, 3vw, 2.15rem);
}

.service-appointment .col-lg-5 > p {
    max-width: 490px;
    margin-bottom: 1.8rem;
    font-size: .98rem;
    opacity: .85;
}

.service-appointment .contact-info-block {
    gap: 1.1rem;
}

.service-appointment .contact-info-icon {
    width: 40px;
    height: 40px;
    flex-basis: 40px;
    border-radius: 9px;
    color: #fff;
    background: rgba(255, 255, 255, .11);
    font-size: 1rem;
}

.service-appointment .contact-info-label {
    color: rgba(255, 255, 255, .6);
    font-size: .72rem;
}

.service-appointment .contact-info-row a,
.service-appointment .contact-info-row > div > span:not(.contact-info-label) {
    color: #fff;
    font-size: .92rem;
    font-weight: 600;
}

.service-appointment__perks {
    margin: 1.75rem 0 0;
}

.service-appointment__perks li {
    padding: .38rem .95rem;
    font-size: .79rem;
}

.service-appointment__form-card {
    padding: 1.7rem;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: var(--ab-radius);
    background: rgba(255, 255, 255, .1);
}

.service-appointment__form-card h3 {
    margin-bottom: 1.25rem;
    color: #fff;
    font-size: 1.08rem;
}

.service-appointment__form-card label {
    display: block;
    margin-bottom: .28rem;
    color: rgba(255, 255, 255, .75);
    font-size: .79rem;
    font-weight: 600;
}

.service-appointment__input {
    width: 100%;
    min-height: 44px;
    padding: .6rem .95rem;
    border: 1px solid rgba(255, 255, 255, .22);
    border-radius: var(--ab-radius-sm);
    outline: none;
    color: #fff;
    background: rgba(255, 255, 255, .11);
    font-size: .92rem;
    transition: border-color var(--ab-transition), background-color var(--ab-transition);
}

.service-appointment__input::placeholder {
    color: rgba(255, 255, 255, .42);
}

.service-appointment__input:focus {
    border-color: rgba(255, 255, 255, .55);
    background: rgba(255, 255, 255, .17);
}

.service-appointment select.service-appointment__input option {
    color: var(--ab-text);
    background: #fff;
}

.service-appointment textarea.service-appointment__input {
    min-height: 72px;
    resize: vertical;
}

.doctor-portrait {
    display: block;
    aspect-ratio: 14 / 17;
}

.doctor-gallery {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin-top: 12px;
}

.doctor-gallery__item {
    overflow: hidden;
    aspect-ratio: 4 / 3;
    border: 1px solid rgba(255, 255, 255, .2);
    border-radius: var(--ab-radius-sm);
    background: rgba(255, 255, 255, .1);
}

.doctor-gallery__item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--ab-transition);
}

.doctor-gallery__item:hover img,
.doctor-gallery__item:focus-visible img {
    transform: scale(1.04);
}

.doctor-position {
    margin: 18px 0 10px;
    color: var(--ab-blue);
    font-size: 1.2rem;
    font-weight: 550;
}

.doctor-hero .doctor-position {
    color: #a9d2ff;
}

.education-list li {
    display: grid;
    grid-template-columns: 130px minmax(0, 1fr);
    gap: 24px;
    padding: 22px 0;
    border-bottom: 1px solid var(--ab-border);
}

.education-list time {
    color: var(--ab-blue);
    font-weight: 650;
}

.certificate-list {
    display: grid;
    gap: 12px;
    margin-top: 28px;
}

.certificate-list a {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 17px;
    border: 1px solid var(--ab-border);
    border-radius: var(--ab-radius-sm);
    text-decoration: none;
}

.rich-content {
    color: #304156;
}

.rich-content h2,
.rich-content h3 {
    margin-top: 1.6em;
}

.rich-content img {
    height: auto;
    margin: 24px 0;
    border-radius: var(--ab-radius);
}

.rich-content table {
    width: 100%;
    margin: 24px 0;
    border-collapse: collapse;
}

.rich-content th,
.rich-content td {
    padding: 12px;
    border: 1px solid var(--ab-border);
    text-align: left;
}

.legal-page {
    background: linear-gradient(180deg, var(--ab-white) 0, var(--ab-bg) 100%);
}

.legal-content {
    padding: clamp(28px, 5vw, 52px);
    border: 1px solid var(--ab-border);
    border-radius: var(--ab-radius);
    background: var(--ab-white);
    box-shadow: var(--ab-shadow-sm);
}

.legal-content h2 {
    margin-top: 2.15em;
    padding-top: .9em;
    border-top: 1px solid var(--ab-border);
    font-size: clamp(1.35rem, 2.4vw, 1.75rem);
}

.legal-content h3 {
    font-size: 1.05rem;
}

.legal-content ul {
    padding-left: 1.35rem;
}

.legal-content li + li {
    margin-top: .5rem;
}

.legal-meta {
    display: flex;
    align-items: flex-start;
    flex-wrap: wrap;
    gap: 10px 28px;
    margin-bottom: 32px;
    padding-bottom: 24px;
    border-bottom: 1px solid var(--ab-border);
    color: var(--ab-muted);
    font-size: .88rem;
}

.legal-card,
.legal-note {
    margin: 28px 0;
    padding: 24px;
    border: 1px solid var(--ab-border);
    border-radius: var(--ab-radius-sm);
    background: var(--ab-blue-pale);
}

.legal-card h3 {
    margin-bottom: 18px;
}

.legal-details {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px 28px;
    margin: 0;
}

.legal-details--stacked {
    grid-template-columns: 1fr;
}

.legal-details dt {
    margin-bottom: 3px;
    color: var(--ab-muted);
    font-size: .76rem;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.legal-details dd {
    margin: 0;
    color: var(--ab-text);
    overflow-wrap: anywhere;
}

.legal-note {
    border-left: 4px solid var(--ab-blue);
    background: var(--ab-white);
}

.legal-content code {
    padding: .12em .35em;
    border-radius: 4px;
    color: var(--ab-blue-dark);
    background: rgba(27, 95, 168, .09);
}

.breadcrumbs:not(.breadcrumbs--detail) {
    padding: 18px 0 0;
    background: var(--ab-blue-pale);
}

.breadcrumbs ol {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    margin: 0;
    padding: 0;
    color: var(--ab-muted);
    list-style: none;
    font-size: .8rem;
}

.breadcrumbs li:not(:last-child)::after {
    margin-left: 6px;
    color: #9aacc0;
    content: "/";
}

.breadcrumbs a {
    color: var(--ab-muted);
    text-decoration: none;
}

.page-header {
    padding: 50px 0 72px;
    background: var(--ab-blue-pale);
}

.page-header h1 {
    margin-bottom: 0;
    font-size: clamp(2.15rem, 4vw, 3.65rem);
}

.page-header p {
    max-width: 720px;
    margin: 20px 0 0;
    color: var(--ab-muted);
    font-size: 1.1rem;
}

.page-header__media {
    aspect-ratio: 16 / 9;
}

.documents-list {
    display: grid;
    gap: 14px;
}

.document-card {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr) auto;
    align-items: center;
    gap: 20px;
    padding: 22px;
    border: 1px solid var(--ab-border);
    border-radius: var(--ab-radius);
}

.document-card > i {
    color: var(--ab-blue);
    font-size: 2rem;
}

.document-card h3 {
    margin: 0 0 6px;
    font-size: 1.05rem;
}

.document-card p {
    margin: 0 0 8px;
    color: var(--ab-muted);
    font-size: .9rem;
}

.document-meta {
    display: flex;
    gap: 12px;
    color: var(--ab-muted);
    font-size: .76rem;
}

.contact-info-block {
    display: grid;
    gap: 18px;
}

.contact-info-row {
    display: flex;
    align-items: flex-start;
    gap: 14px;
}

.contact-info-row > div {
    display: flex;
    min-width: 0;
    flex-direction: column;
}

.contact-info-label {
    margin-bottom: 2px;
    color: var(--ab-muted);
    font-size: .75rem;
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.contact-info-row a,
.contact-info-row > div > span:not(.contact-info-label) {
    color: var(--ab-text);
    font-weight: 550;
    text-decoration: none;
    white-space: pre-line;
}

.contact-info-row small {
    margin-top: 3px;
    color: var(--ab-muted);
}

.contact-map {
    position: relative;
    min-height: 430px;
    overflow: hidden;
    border: 1px solid var(--ab-border);
    border-radius: var(--ab-radius);
    background: var(--ab-bg);
}

.contact-map iframe {
    width: 100%;
    height: 100%;
    min-height: 430px;
    border: 0;
}

.contact-map__route {
    position: absolute;
    right: 18px;
    bottom: 18px;
}

.appointment-section {
    color: rgba(255, 255, 255, .8);
    background: var(--ab-blue-dark);
}

.appointment-card {
    padding: clamp(28px, 5vw, 60px);
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: calc(var(--ab-radius) * 2);
    background: linear-gradient(135deg, rgba(255, 255, 255, .08), rgba(255, 255, 255, .03));
}

.appointment-card h2 {
    color: var(--ab-white);
}

.appointment-card .contact-info-block {
    margin-top: 28px;
}

.appointment-card .contact-info-label,
.appointment-card .contact-info-row small {
    color: rgba(255, 255, 255, .55);
}

.appointment-card .contact-info-row a,
.appointment-card .contact-info-row > div > span:not(.contact-info-label) {
    color: var(--ab-white);
}

.appointment-card .contact-info-icon {
    color: #a9d2ff;
    background: rgba(255, 255, 255, .1);
}

.appointment-form,
.callback-modal form {
    color: var(--ab-text);
}

.appointment-form .form-label {
    color: var(--ab-white);
}

.form-control {
    min-height: 50px;
    border-color: #cbd9e8;
    border-radius: var(--ab-radius-sm);
}

.form-control:focus {
    border-color: var(--ab-blue-mid);
    box-shadow: 0 0 0 .2rem rgba(61, 127, 203, .18);
}

textarea.form-control {
    min-height: 96px;
    resize: vertical;
}

.form-consent {
    margin: 14px 0 0;
    color: rgba(255, 255, 255, .6);
    font-size: .72rem;
}

.form-consent a {
    color: inherit;
}

.callback-modal .form-consent {
    color: var(--ab-muted);
}

.form-error {
    display: block;
    min-height: 1em;
    margin-top: 4px;
    color: #ffd3d3;
    font-size: .75rem;
}

.callback-modal .form-error {
    color: var(--ab-danger);
}

.form-result:not(:empty) {
    margin-top: 14px;
}

.result-message {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 13px;
    border-radius: var(--ab-radius-sm);
    font-size: .85rem;
}

.result-message--success {
    color: #0a594b;
    background: #dcf4ee;
}

.result-message--error {
    color: #792525;
    background: #fae4e4;
}

[data-attach-loading].oc-loading,
[data-attach-loading][disabled] {
    pointer-events: none;
    opacity: .65;
}

.callback-modal {
    position: relative;
    padding: 18px;
    border: 0;
    border-radius: var(--ab-radius);
    box-shadow: var(--ab-shadow);
}

.callback-modal .btn-close {
    position: absolute;
    top: 16px;
    right: 16px;
    z-index: 2;
}

.callback-modal .modal-body {
    padding: 30px;
}

.callback-modal h2 {
    padding-right: 24px;
}

.site-footer {
    padding: 70px 0 24px;
    color: rgba(255, 255, 255, .66);
    background: #102f52;
}

.footer-logo {
    color: var(--ab-white);
}

.footer-tagline,
.footer-note {
    margin: 14px 0;
    color: rgba(255, 255, 255, .56);
    font-size: .82rem;
    white-space: pre-line;
}

.footer-phone,
.footer-email {
    display: block;
    color: var(--ab-white);
    font-weight: 600;
    text-decoration: none;
}

.footer-col-title {
    margin-bottom: 18px;
    color: var(--ab-white);
    font-size: .85rem;
    font-weight: 650;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.footer-links,
.footer-links ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.footer-links {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px 20px;
}

.footer-links a {
    color: rgba(255, 255, 255, .72);
    font-size: .88rem;
    text-decoration: none;
}

.footer-links a:hover {
    color: var(--ab-white);
}

.footer-links ul {
    margin: 5px 0 5px 12px;
}

.footer-contact {
    display: flex;
    flex-direction: column;
    white-space: pre-line;
}

.footer-contact span {
    color: rgba(255, 255, 255, .46);
    font-size: .73rem;
    text-transform: uppercase;
}

.footer-bottom {
    margin-top: 50px;
    padding-top: 20px;
    border-top: 1px solid rgba(255, 255, 255, .13);
    font-size: .74rem;
}

.footer-bottom a {
    color: rgba(255, 255, 255, .66);
}

.cookie-banner {
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 1080;
    padding: 16px 0;
    border-top: 1px solid var(--ab-border);
    background: rgba(255, 255, 255, .98);
    box-shadow: 0 -10px 34px rgba(24, 70, 119, .12);
}

.cookie-banner p {
    margin: 0;
    color: var(--ab-muted);
    font-size: .82rem;
}

.mobile-actions {
    display: none;
}

.system-page {
    min-height: 62vh;
    display: grid;
    place-items: center;
}

.system-page__code {
    margin-bottom: 10px;
    color: var(--ab-blue-light);
    font-size: clamp(5rem, 18vw, 10rem);
    font-weight: 700;
    line-height: .8;
}

.system-page__icon {
    display: inline-grid;
    width: 72px;
    height: 72px;
    margin-bottom: 24px;
    place-items: center;
    border-radius: 50%;
    color: var(--ab-teal);
    background: #e6f3e9;
    font-size: 2rem;
}

.system-page__icon--error {
    color: var(--ab-danger);
    background: #fae4e4;
}

@media (min-width: 992px) {
    .site-header {
        position: sticky;
        top: 0;
    }

    .navbar-expand-lg .navbar-nav .dropdown-menu {
        min-width: 250px;
    }
}

@media (max-width: 1199.98px) {
    .nav-main .nav-link {
        padding-inline: .55rem;
        font-size: .86rem;
    }

    .header-actions {
        margin-left: 8px;
    }
}

@media (max-width: 991.98px) {
    .topbar {
        display: none;
    }

    .site-header .navbar-collapse {
        padding: 16px 0 8px;
        border-top: 1px solid var(--ab-border);
    }

    .nav-main .nav-item.dropdown {
        display: grid;
        grid-template-columns: minmax(0, 1fr) 44px;
    }

    .nav-dropdown-toggle {
        width: 44px;
        margin: 0;
    }

    .nav-main .dropdown-menu {
        position: static !important;
        grid-column: 1 / -1;
        transform: none !important;
        border: 0;
        box-shadow: none;
    }

    .header-actions {
        margin-left: 0;
    }

    .home-hero,
    .service-hero,
    .doctor-hero {
        text-align: center;
    }

    .hero-lead,
    .hero-caption {
        margin-right: auto;
        margin-left: auto;
    }

    .hero-caption,
    .hero-actions {
        justify-content: center;
    }

    .hero-media {
        max-height: 600px;
    }

    .appointment-card {
        text-align: center;
    }

    .appointment-card .contact-info-block {
        max-width: 420px;
        margin-right: auto;
        margin-left: auto;
        text-align: left;
    }

    .service-page .service-hero .hero-lead {
        margin-left: 0;
    }

    .service-page .service-hero .hero-actions {
        justify-content: flex-start;
    }

    .service-price-factors {
        margin-top: .5rem;
    }
}

@media (min-width: 768px) and (max-width: 991.98px) {
    .trust-item {
        border-bottom: 1px solid rgba(255, 255, 255, .14);
    }

    .trust-strip [class*="col-"]:nth-child(even) .trust-item {
        border-right: 0;
    }

    .trust-strip [class*="col-"]:nth-last-child(-n + 2) .trust-item {
        border-bottom: 0;
    }
}

@media (max-width: 767.98px) {
    body {
        padding-bottom: 68px;
    }

    .container {
        --bs-gutter-x: 1.5rem;
    }

    .section-heading--row {
        display: block;
    }

    .section-heading--row .section-link {
        margin-top: 14px;
    }

    .trust-item {
        min-height: auto;
        border-right: 0;
        border-bottom: 1px solid rgba(255, 255, 255, .14);
    }

    .trust-strip [class*="col-"]:last-child .trust-item {
        border-bottom: 0;
    }

    .stage-card {
        grid-template-columns: 54px minmax(0, 1fr);
        gap: 16px;
    }

    .stage-duration {
        grid-column: 2;
        justify-self: start;
    }

    .education-list li {
        grid-template-columns: 1fr;
        gap: 7px;
    }

    .document-card {
        grid-template-columns: 36px minmax(0, 1fr);
    }

    .document-card .btn {
        grid-column: 2;
        justify-self: start;
    }

    .mobile-actions {
        display: grid;
        position: fixed;
        right: 0;
        bottom: 0;
        left: 0;
        z-index: 1040;
        grid-template-columns: repeat(3, 1fr);
        gap: 6px;
        padding: 8px;
        border-top: 1px solid var(--ab-border);
        background: rgba(255, 255, 255, .98);
        box-shadow: 0 -8px 26px rgba(24, 70, 119, .12);
    }

    .mobile-actions .btn {
        display: inline-flex;
        min-height: 50px;
        align-items: center;
        justify-content: center;
        padding: 6px;
        font-size: .78rem;
    }

    .cookie-banner {
        bottom: 66px;
    }

    .service-page .service-hero {
        padding: 3rem 0 2.5rem;
    }

    .service-indications,
    .service-stages,
    .service-prices,
    .service-faq,
    .service-content,
    .service-doctors,
    .service-results,
    .service-appointment,
    .service-consultation {
        padding: 3.5rem 0;
    }

    .service-section-heading--row {
        display: block;
    }

    .service-section-heading--row > .btn {
        margin-top: .8rem;
    }

    .service-indications__grid {
        grid-template-columns: 1fr;
    }

    .service-results__cta {
        align-items: flex-start;
        padding: 1.4rem;
        flex-direction: column;
    }

    .service-appointment__form-card {
        padding: 1.35rem;
    }
}

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

    .section-pad {
        padding: 56px 0;
    }

    .hero-actions {
        display: grid;
    }

    .hero-actions .btn {
        width: 100%;
    }

    .full-price-tabs {
        padding: 12px;
        gap: .4rem;
    }

    .full-price-tab {
        padding: 7px 12px;
        font-size: .8rem;
    }

    .full-price-description {
        margin: 16px 18px 0;
    }

    .full-price-table thead {
        display: none;
    }

    .full-price-table,
    .full-price-table tbody,
    .full-price-table tr,
    .full-price-table td {
        display: block;
        width: 100%;
    }

    .full-price-table tr {
        padding: .8rem 18px;
        border-top: 1px solid var(--ab-border);
    }

    .full-price-table tr:first-child {
        border-top: 0;
    }

    .full-price-table td {
        padding: 0;
        border: 0;
        text-align: left !important;
    }

    .full-price-table td:last-child {
        margin-top: .3rem;
    }

    .full-price-table tr.is-highlighted {
        background: var(--ab-bg);
    }

    .case-images {
        grid-template-columns: 1fr;
    }

    .case-images a + a {
        border-top: 2px solid var(--ab-white);
        border-left: 0;
    }

    .review-card {
        padding: 24px;
    }

    .legal-content {
        padding: 24px 18px;
    }

    .legal-details {
        grid-template-columns: 1fr;
    }

    .footer-links {
        grid-template-columns: 1fr;
    }

    .callback-modal {
        padding: 0;
    }

    .callback-modal .modal-body {
        padding: 28px 20px;
    }

    .mobile-actions {
        grid-template-columns: repeat(2, 1fr);
    }

    .mobile-actions a:last-child:nth-child(3) {
        display: none;
    }

    .service-page .service-hero h1 {
        font-size: 2rem;
    }

    .service-page .service-hero .hero-actions {
        display: grid;
    }

    .service-consultation__note {
        align-items: flex-start;
        padding: 1.2rem;
    }

    .service-stages__list li {
        padding-left: 3.25rem;
    }

    .service-price-table {
        min-width: 520px;
    }

    .service-prices__actions {
        display: grid;
    }

    .service-prices__actions .btn,
    .service-results__cta .btn {
        width: 100%;
    }

    .service-review-card footer {
        align-items: flex-start;
        flex-direction: column;
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
    }
}
