:root{
  --lavender:#B2A4D4;
  --lavender-rgb:178,164,212;
  --lavender-strong:#C4B3EA;
  --lavender-deep:#6C59A8;
  --lavender-light:#EEDDFF;
  --lavender-light-rgb:238,221,255;
  --gold:var(--lavender); /* обратная совместимость старого имени переменной */
  --dark:#15193B;
  --ink:#14172C;
  --muted:#5E6382;
  --surface:#F3F1F8;
  --line:#e5e7eb;
  --radius:16px;
  --shadow:0 14px 42px rgba(21,25,59,.07)
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;color:var(--ink);background:#FAF9FC;padding-top:80px}
::selection{background:rgba(var(--lavender-rgb),.34);color:var(--dark)}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:#FAF9FC}
::-webkit-scrollbar-thumb{background:rgba(178,164,212,.5);border-radius:999px;border:2px solid #FAF9FC}
::-webkit-scrollbar-thumb:hover{background:rgba(108,89,168,.7)}
a{color:inherit;text-underline-offset:.18em}
.navbar{min-height:80px;background:rgba(250,249,252,.92);backdrop-filter:blur(12px);border-bottom:1px solid rgba(var(--lavender-rgb),.25)}
.navbar-brand{font-weight:700;letter-spacing:.3px;color:var(--dark)}
.navbar-brand img{width:auto;height:40px;object-fit:contain}
.nav-link{color:var(--ink)!important}
.nav-link:hover,.nav-link:focus{color:var(--lavender-deep)!important}
.btn-cta{display:inline-flex;align-items:center;justify-content:center;background:var(--dark);color:#FFFFFF!important;border:1.5px solid var(--gold);border-radius:999px;padding:.7rem 1.35rem;font-weight:600;box-shadow:0 6px 18px rgba(21,25,59,.24);transition:background-color .2s ease,transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.btn-cta:hover{background:#232958;border-color:var(--lavender-strong);color:#FFFFFF!important;transform:translateY(-1px);box-shadow:0 10px 24px rgba(21,25,59,.32)}
.btn-cta:focus-visible,.nav-link:focus-visible,.service-card h3 a:focus-visible{outline:3px solid rgba(var(--lavender-rgb),.6);outline-offset:3px}
.btn-outline-dark{
  --bs-btn-color:var(--dark);
  --bs-btn-bg:rgba(var(--lavender-light-rgb),.94);
  --bs-btn-border-color:var(--lavender-light);
  --bs-btn-hover-bg:var(--lavender-light);
  --bs-btn-hover-border-color:var(--gold);
  --bs-btn-hover-color:var(--dark);
  --bs-btn-active-bg:var(--lavender-light);
  --bs-btn-active-border-color:var(--gold);
  --bs-btn-active-color:var(--dark)
}
.footer{background:var(--dark);color:#fff}
.footer a:hover{color:#fff!important}

.footer--home{padding:56px 0 24px}
.footer__main{display:grid;grid-template-columns:1.2fr 1fr .8fr;gap:48px;padding-bottom:36px}
.footer__brand{margin-bottom:12px;font-size:1.25rem;font-weight:600;letter-spacing:-.02em}
.footer__description{max-width:30ch;margin:0;color:#b8c7d5;font-size:.9375rem;line-height:1.7}
.footer__heading{margin:0 0 16px;font-size:.9375rem;font-weight:600;line-height:1.5}
.footer__contacts{margin:0;font-size:.9375rem;font-style:normal;line-height:1.7;color:#c3d0dc}
.footer__addresses{display:grid;gap:2px;margin-bottom:12px}
.footer__phones{display:grid;justify-items:start;margin-bottom:8px}
.footer--home a{display:inline-flex;align-items:center;min-height:36px;text-decoration:none}
.footer--home a:hover{text-decoration:underline;text-underline-offset:4px}
.footer--home a:focus-visible{outline:2px solid var(--gold);outline-offset:4px;border-radius:2px}
.footer__phones a{font-variant-numeric:tabular-nums;white-space:nowrap}
.footer--home .footer__whatsapp{gap:8px;margin-top:12px;min-height:44px;color:#c3d0dc;font-size:.875rem}
.footer__whatsapp .bi{font-size:1.125rem}
.footer__hours{max-width:230px;margin:0;color:#c3d0dc;font-size:.9375rem;line-height:1.7;font-variant-numeric:tabular-nums}
.footer__hours div{display:flex;justify-content:space-between;gap:24px;padding:4px 0}
.footer__hours dt{font-weight:400}
.footer__hours dd{margin:0;white-space:nowrap}
.footer__bottom{padding-top:22px;border-top:1px solid rgba(255,255,255,.12);color:#b8c7d5;font-size:.8125rem;line-height:1.6}
@media(max-width:991.98px){.footer__main{grid-template-columns:1fr 1fr;gap:32px}.footer__intro{grid-column:1 / -1}.footer__description{max-width:48ch}}
@media(max-width:575.98px){.footer--home{padding:36px 0 24px}.footer__main{grid-template-columns:1fr;gap:28px;padding-bottom:28px}.footer--home a{min-height:44px}.footer__hours{max-width:260px}}

.service-hero{position:relative;overflow:hidden;padding:72px 0 64px;background:linear-gradient(135deg,#fff 0%,#f7f8fa 52%,var(--lavender-light) 100%)}
.service-hero::after{content:"";position:absolute;width:390px;height:390px;border-radius:50%;right:-170px;top:-210px;background:rgba(var(--lavender-rgb),.18)}
.service-breadcrumb{font-size:.9rem;color:var(--muted);margin-bottom:24px}
.service-breadcrumb a{color:var(--dark);text-decoration:none}
.service-title{max-width:820px;font-size:clamp(2.25rem,5vw,4.7rem);line-height:1.02;letter-spacing:-.035em;color:var(--dark);font-weight:700;margin:0 0 24px;text-wrap:balance}
.service-lead{max-width:68ch;font-size:clamp(1.05rem,2vw,1.25rem);line-height:1.7;color:#475467;margin:0 0 30px}
.service-price{display:inline-flex;align-items:center;gap:.55rem;color:var(--dark);font-weight:700;font-size:1.05rem;margin-bottom:24px}
.service-price::before{content:"";width:34px;height:2px;background:var(--gold)}
.service-hero-media{position:relative;min-height:410px;border-radius:24px;overflow:hidden;box-shadow:var(--shadow);background:var(--dark)}
.service-hero-media img{width:100%;height:100%;min-height:410px;object-fit:cover}
.service-hero-media picture{display:block;width:100%;height:100%}
.service-hero-media--empty{display:flex;align-items:flex-end;padding:32px;background:linear-gradient(145deg,var(--dark),#173f65)}
.service-hero-media--empty span{color:#fff;font-size:1.45rem;max-width:14ch;font-weight:600}
.service-section{padding:72px 0}
.service-section--soft{background:var(--surface)}
.service-section h2{font-size:clamp(1.8rem,3vw,2.65rem);letter-spacing:-.025em;color:var(--dark);font-weight:700;margin:0 0 28px;text-wrap:balance}
.service-prose{max-width:72ch;color:#475467;line-height:1.75}
.service-list{list-style:none;padding:0;margin:0;display:grid;gap:14px}
.service-list li{position:relative;padding:0 0 14px 28px;border-bottom:1px solid var(--line);line-height:1.55}
.service-list li::before{content:"";position:absolute;left:2px;top:.57em;width:10px;height:10px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 4px rgba(var(--lavender-rgb),.2)}
.service-steps{counter-reset:step;display:grid;gap:0}
.service-step{counter-increment:step;display:grid;grid-template-columns:54px 1fr;gap:18px;align-items:start;padding:22px 0;border-bottom:1px solid var(--line)}
.service-step::before{content:counter(step);width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:var(--dark);color:#fff;font-weight:700}
.service-step strong{display:block;color:var(--dark);font-size:1.08rem;padding-top:9px}
.service-note{height:100%;padding:28px;border-radius:var(--radius);background:#fff;box-shadow:var(--shadow)}
.service-note h3{font-size:1.2rem;color:var(--dark);margin:0 0 12px}
.service-note p{color:#475467;line-height:1.7;margin:0}
.doctor-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:22px}
.doctor-card{background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}
.doctor-card img{width:100%;height:260px;object-fit:cover;object-position:center 20%}
.doctor-card__body{padding:20px}
.doctor-strip .doctor-card > picture,.case-grid .case-card > picture{display:block;width:100%}
.doctor-strip .doctor-card > picture > img,.case-grid .case-card > picture > img{display:block}
.doctor-card h3{font-size:1.05rem;margin:0 0 8px;color:var(--dark)}
.doctor-card p{font-size:.92rem;color:var(--muted);margin:0}
.case-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:22px}
.case-card{border-radius:var(--radius);overflow:hidden;background:#fff;box-shadow:var(--shadow)}
.case-card--link{display:block;color:inherit;text-decoration:none}
.case-card--link:hover h3{text-decoration:underline;text-underline-offset:3px}
.case-card--link:focus-visible{outline:3px solid var(--dark);outline-offset:4px}
.case-card__description{margin-top:10px!important}
.case-card__view{display:inline-block;margin-top:14px;font-size:.9rem;text-decoration:underline;text-underline-offset:3px}
.case-viewer{width:min(1000px,calc(100% - 24px));max-height:90dvh;max-height:90vh;padding:20px;border:0;border-radius:16px;background:#fff;color:var(--dark);overflow:auto}
.case-viewer::backdrop{background:rgba(0,0,0,.8)}
.case-viewer__toolbar,.case-viewer__navigation{display:flex;align-items:center;justify-content:space-between;gap:12px}
.case-viewer__navigation{justify-content:center}
.case-viewer__control{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--dark)}
.case-viewer__control:hover{background:var(--surface)}
.case-viewer__control:focus-visible{outline:3px solid var(--dark);outline-offset:2px}
.case-viewer__control[hidden]{display:none}
.case-viewer__figure{margin:12px 0}
.case-viewer__figure img{display:block;width:100%;height:55vh;object-fit:contain;background:var(--surface)}
.case-viewer__figure img[hidden]{display:none}
.case-viewer__figure figcaption{padding:16px 0 0}
.case-viewer__figure h2{font-size:1.2rem;margin:0 0 8px}
.case-viewer__figure p{margin:0 0 8px;white-space:pre-line}
@media(max-width:575.98px){.case-viewer{padding:12px}.case-viewer__figure img{height:45vh}}
.case-card img{width:100%;height:220px;object-fit:cover}
.case-card__body{padding:18px}.case-card h3{font-size:1rem;color:var(--dark);margin:0 0 7px}.case-card p{font-size:.9rem;color:var(--muted);margin:0}
.faq-list{width:100%}.faq-item{border-bottom:1px solid var(--line)}
.faq-item summary{cursor:pointer;list-style:none;padding:22px 42px 22px 0;font-weight:600;color:var(--dark);position:relative}
.faq-item summary::-webkit-details-marker{display:none}.faq-item summary::after{content:"+";position:absolute;right:8px;top:17px;font-size:1.55rem;color:var(--lavender-deep)}.faq-item[open] summary::after{content:"−"}
.faq-item p{color:#475467;line-height:1.7;margin:0;padding:0 42px 22px 0}
.service-booking{background:var(--dark);color:#fff}.service-booking h2{color:#fff}.service-booking .form-label{color:rgba(255,255,255,.86)}
.service-booking .form-control,.service-booking .form-select{min-height:50px;border:1px solid rgba(255,255,255,.2)}
.service-booking .form-control:focus,.service-booking .form-select:focus{border-color:var(--gold);box-shadow:0 0 0 .25rem rgba(var(--lavender-rgb),.26)}
.service-booking .form-control:user-invalid,.service-booking .form-select:user-invalid{border-color:#ff9b9b;box-shadow:0 0 0 .2rem rgba(255,155,155,.16)}
.service-booking .btn-cta{background:#ffffff;border-color:#ffffff;color:var(--dark)!important;font-weight:700}
.service-booking .btn-cta:hover{background:var(--lavender-light);border-color:var(--lavender-strong);color:var(--dark)!important}
.service-booking .btn-cta:disabled{cursor:wait;opacity:.66;transform:none;box-shadow:none}
.booking-status{min-height:24px;margin-top:12px;color:#fff}
@media (max-width:991.98px){.service-hero{padding-top:48px}.service-hero-media{min-height:330px}.service-hero-media img{min-height:330px}.navbar-collapse{padding:18px 0 4px}}
@media (max-width:575.98px){body{padding-top:72px}.navbar{min-height:72px}.service-section{padding:54px 0}.service-hero{padding:38px 0 48px}.service-hero .row,.service-section .row{--bs-gutter-x:1.5rem}.service-title{font-size:2.35rem}.service-hero-media,.service-hero-media img{min-height:280px}.service-note{padding:22px}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.btn-cta{transition:none}}

/* Homepage mobile grid: shared outer gutters and card content insets. */
@media (max-width:767.98px){
  .home-page{--home-mobile-inset:1rem}
  .home-page > section > .container,
  .home-page > .navbar > .container,
  .home-page > .footer > .container{
    width:100%;max-width:100%;
    padding-inline:var(--home-mobile-inset);
  }
  /* Override Bootstrap p-4 and the existing promo padding, not image wrappers. */
  .home-page > section .card.p-4,
  .home-page > section .feature-card,
  .home-page > section .promo-card{
    padding:var(--home-mobile-inset)!important;
  }
  .home-page > section .doctor-card .card-body,
  .home-page #services .service-category{
    padding:var(--home-mobile-inset);
  }
}
