/* microtese.css — стили лендинга Micro-TESE (на базе медицинской системы Лучина) */

:root{
  --primary:#2f6fa3;
  --primary-dark:#1f527a;
  --accent:#5fa8d3;
  --soft:#f4f9fc;
  --text:#213547;
  --muted:#5f7283;
  /* Акцент «доступность / на связи» в блоке #support-247 (спокойный медицинский зелёный) */
  --support-247-accent:#237a6b;

  /* Согласование с Bootstrap 5 */
  --bs-primary: #2f6fa3;
  --bs-primary-rgb: 47, 111, 163;
  --bs-link-color: var(--primary-dark);
  --bs-link-hover-color: #174065;
  --bs-body-color: var(--text);
  --bs-focus-ring-color: rgba(47, 111, 163, .25);
  --bs-border-color: rgba(0, 0, 0, .08);
}

html{ scroll-behavior: smooth; }

body{
  font-family:'Inter',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  color:var(--text);
  background:#fff;
}

/* Утилиты (раньше частично в promo_style_orange.css) */
.rounded-2xl{ border-radius: 1.2rem; }
.shadow-soft{ box-shadow: 0 10px 30px rgba(0, 0, 0, .06); }
.section-pad{ padding-top: 4rem; padding-bottom: 4rem; }
.navbar .nav-link{ font-weight: 500; }

/* Ограничение ширины текстовых блоков */
.mt-measure,
.luchin-measure{ max-width: 760px; }
.mt-measure--sm,
.luchin-measure--sm{ max-width: 720px; }

.navbar{
  backdrop-filter:saturate(180%) blur(16px);
  background:rgba(255,255,255,.88);
  border-bottom:1px solid rgba(33,53,71,.06);
}
.navbar .navbar-brand{ color: var(--text); }
.navbar .nav-link{ color: #344050; }
.navbar .nav-link:hover,
.navbar .nav-link:focus{ color: var(--primary-dark); }

/* Компактная мобильная CTA «Записаться» в шапке на очень узких экранах */
@media (max-width: 374.98px){
  .navbar .btn.btn-primary.d-lg-none{
    font-size: .875rem;
    padding: .35rem .65rem;
  }
}

.btn-primary{
  background:linear-gradient(135deg,var(--primary),var(--accent));
  border:none;
  box-shadow:0 10px 24px rgba(47,111,163,.22);
  --bs-btn-color:#fff;
  --bs-btn-bg: var(--primary);
  --bs-btn-border-color: var(--primary);
  --bs-btn-hover-bg: var(--primary-dark);
  --bs-btn-hover-border-color: var(--primary-dark);
  --bs-btn-focus-shadow-rgb: var(--bs-primary-rgb);
  --bs-btn-active-bg: #174065;
  --bs-btn-active-border-color: #174065;
}
.btn-primary:hover{
  background:linear-gradient(135deg,var(--primary-dark),var(--primary));
}
.btn-outline-primary{
  color:var(--primary);
  border-color:rgba(47,111,163,.28);
  --bs-btn-color: var(--primary-dark);
  --bs-btn-border-color: var(--primary);
  --bs-btn-hover-bg: var(--primary);
  --bs-btn-hover-border-color: var(--primary);
  --bs-btn-hover-color:#fff;
  --bs-btn-focus-shadow-rgb: var(--bs-primary-rgb);
  --bs-btn-active-bg: var(--primary-dark);
  --bs-btn-active-border-color: var(--primary-dark);
  --bs-btn-active-color:#fff;
}
.btn-outline-primary:hover{
  background:var(--primary);
  border-color:var(--primary);
  color: #fff;
}

.hero{
  background:
    radial-gradient(circle at top left, rgba(95,168,211,.16), transparent 34%),
    linear-gradient(180deg,#ffffff 0%, #f6fbff 100%);
  padding:8rem 0 4.5rem;
}
.hero-card, .info-card, .review-card, .cta-card{
  border:none;
  border-radius:24px;
  box-shadow:0 16px 40px rgba(31,82,122,.08);
}
.hero-photo{
  border-radius:28px;
  overflow:hidden;
  box-shadow:0 24px 60px rgba(24,47,66,.16);
  background:#fff;
}
.hero-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  min-height:440px;
}
.eyebrow{
  display:inline-flex;
  gap:.5rem;
  align-items:center;
  font-size:.9rem;
  padding:.55rem .9rem;
  border-radius:999px;
  background:#eaf5fb;
  color:var(--primary-dark);
  font-weight:600;
}
.section{ padding:5rem 0; }
/* Чередование фона: прямые потомки body > section (hero = header, не считается) */
body > section:nth-of-type(odd){ background-color:#fff; }
body > section:nth-of-type(even){ background-color:var(--soft); }
.section-surface-white{ background-color:#fff; }
.section-surface-soft{ background-color:var(--soft); }
.section-title{ font-size:clamp(1.9rem,3vw,2.8rem); font-weight:800; letter-spacing:-.03em; }
.lead-muted{ color:var(--muted); }
.badge-soft{
  background:#eef7fc;
  color:var(--primary-dark);
  padding:.7rem 1rem;
  border-radius:999px;
  font-weight:600;
}
.icon-wrap{
  width:52px;height:52px;border-radius:16px;
  display:grid;place-items:center;
  background:#e8f3fa;color:var(--primary-dark);
  font-size:1.3rem;font-weight:700;
  flex:0 0 auto;
}
.icon-wrap--max{
  background:transparent;
  padding:0;
}
.icon-wrap--max img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  border-radius:16px;
}

/* Блок связи 24/7 с ассистентом (#support-247) */
.support-247-section{
  border-top:1px solid rgba(31, 82, 122, .07);
}
.support-247-aside{
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  max-width:18rem;
  margin-inline:auto;
}
.support-247-aside__line1{
  font-size:clamp(3.25rem, 7.5vw, 4.55rem);
  font-weight:800;
  letter-spacing:-.035em;
  color:var(--support-247-accent);
  line-height:1;
}
.support-247-aside__line2{
  margin-top:.4rem;
  max-width:14rem;
  font-size:.9375rem;
  font-weight:500;
  line-height:1.35;
  letter-spacing:-.01em;
  color:var(--text);
  opacity:.92;
  text-wrap:balance;
}
.support-247-aside__dial{
  margin-top:.38rem;
  align-self:stretch;
  width:100%;
  display:flex;
  flex-direction:column;
  align-items:stretch;
  text-align:center;
  gap:.08rem;
}
.support-247-aside__phone-label{
  display:block;
  width:100%;
  font-size:.75rem;
  font-weight:500;
  line-height:1.25;
  color:var(--muted);
  letter-spacing:.02em;
  text-align:center;
}
.support-247-aside__phone{
  display:block;
  width:100%;
  text-align:center;
  font-size:.9375rem;
  font-weight:400;
  color:#6d8294;
  text-decoration:none;
  line-height:1.35;
}
.support-247-aside__phone:hover{
  color:var(--muted);
}

/* Первичный приём: плашка «важно», примечание, CTA */
.first-visit-important{
  background:#fff;
  border-radius:20px;
  padding:1.25rem 1.35rem;
  border:1px solid rgba(0, 0, 0, .06);
  border-left:4px solid var(--primary);
  box-shadow:0 8px 24px rgba(31, 82, 122, .06);
}
.first-visit-important__icon{
  color:var(--primary-dark);
  font-size:1.35rem;
  line-height:1;
  margin-top:.15rem;
}
.first-visit-note{
  border:1px solid rgba(0, 0, 0, .08);
  border-radius:16px;
  padding:1rem 1.15rem;
  background:#fff;
}
.first-visit-cta{
  background:#fff;
  border-radius:24px;
  padding:1.75rem 2rem;
  border:1px solid rgba(0, 0, 0, .06);
  box-shadow:0 16px 40px rgba(31, 82, 122, .08);
}

/* Самопрезентация врача (#approach): ширина ~800–900px, два блока, подзаголовок под заголовком */
.self-intro.section{
  padding-top:4.25rem;
  padding-bottom:4.25rem;
}
.self-intro .self-intro-editorial{
  max-width:53rem;
  padding:0;
}
@media (min-width: 992px){
  .self-intro .self-intro-editorial{
    max-width:none;
  }
}
.self-intro .self-intro__title{
  margin-bottom:.5rem;
  text-wrap:balance;
}
.self-intro .self-intro-lede{
  margin:0 0 1.85rem;
  max-width:42em;
  font-size:1.0625rem;
  font-weight:500;
  line-height:1.55;
  letter-spacing:-.01em;
  color:var(--muted);
}
.self-intro .self-intro-col{
  font-size:1.0625rem;
  line-height:1.72;
}
.self-intro .self-intro-block + .self-intro-block{
  margin-top:1.65rem;
}
.self-intro .self-intro-block p{
  margin:0 0 .6rem;
}
.self-intro .self-intro-block p:last-child{
  margin-bottom:0;
}
.self-intro .self-intro-actions{
  margin-top:1.85rem;
}

/* Секция этапов работы: карточки в стиле блока «О враче» (info-card) */
.approach-steps-note{
  font-size:.9375rem;
  font-weight:400;
  font-style:italic;
  text-align:center;
  color:var(--muted);
  margin:1.25rem auto 0;
  max-width:36em;
  line-height:1.55;
}

#services .list-check li{ margin-bottom:.85rem; }
#services .list-check li::marker{ color:var(--primary); }

.list-check li{ margin-bottom:.5rem; }
.list-check i{ color: var(--primary); }

.review-card{
  height:100%;
  background:#fff;
}
.rating{ color:#f0a500; letter-spacing:.12em; font-size:1rem; }
.stat{
  background:#fff;
  border-radius:20px;
  padding:1.5rem 1.65rem 1.6rem;
  height:100%;
  min-height:0;
  box-shadow:0 12px 26px rgba(31,82,122,.06);
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
}
@media (min-width:768px){
  .stat{
    min-height:10.5rem;
  }
}
.stat .stat-title{
  font-size:clamp(1.2rem,1.9vw,1.65rem);
  font-weight:700;
  line-height:1.22;
  letter-spacing:-.02em;
  color:var(--primary-dark);
  text-wrap:balance;
}
.stat .stat-desc{
  margin-top:.7rem;
  margin-bottom:0;
  font-size:.9375rem;
  line-height:1.52;
  font-weight:400;
  color:var(--muted);
  flex:1 0 auto;
  hyphens:none;
  -webkit-hyphens:none;
}
.cta-card{
  background:linear-gradient(135deg,#1f527a 0%, #2f6fa3 55%, #68aed7 100%);
  color:#fff;
  overflow:hidden;
  position:relative;
}
.cta-card:before{
  content:'';
  position:absolute;
  inset:auto -40px -40px auto;
  width:220px;height:220px;border-radius:50%;
  background:rgba(255,255,255,.08);
}
.form-control, .form-select{
  min-height:52px;
  border-radius:14px;
  border-color:#d7e5ef;
}
.form-floating>label{ color:#6c757d; }
.form-control:focus{
  border-color: rgba(47, 111, 163, .5);
  box-shadow: 0 0 0 .25rem rgba(47, 111, 163, .25);
}
.form-check-input:focus{
  border-color: rgba(47, 111, 163, .5);
  box-shadow: 0 0 0 .25rem rgba(47, 111, 163, .25);
}
.form-check-input:checked{
  background-color: var(--primary);
  border-color: var(--primary);
}
.required-asterisk::after{ content:" *"; color:#dc3545; }

.mini-note{ font-size:.92rem; color:#eff7ff; opacity:.9; }
footer{ background:#10293d; color:#d7e7f3; }
footer a{ color:#fff; }
.doctor-meta span,
.doctor-meta a{
  display:inline-block;
  margin:.25rem .35rem .25rem 0;
  padding:.55rem .8rem;
  border-radius:999px;
  background:#fff;
  color:var(--primary-dark);
  font-size:.92rem;
  font-weight:600;
  box-shadow:0 8px 18px rgba(31,82,122,.06);
}
.doctor-meta a{
  text-decoration:none;
  transition:box-shadow .15s ease, color .15s ease;
}
.doctor-meta a:hover{
  color:var(--primary-dark);
  box-shadow:0 10px 22px rgba(31,82,122,.1);
}
.doctor-meta a:focus-visible{
  outline:2px solid rgba(47, 111, 163, .45);
  outline-offset:2px;
}

/* Этапы Micro-TESE */
.mt-process-steps{
  display:flex;
  flex-direction:column;
  gap:1rem;
  list-style:none;
  margin:0;
  padding:0;
}
.mt-process-step{
  position:relative;
  flex:1 1 auto;
  min-width:0;
}
.mt-process-step__card{
  background:#fff;
  border-radius:20px;
  padding:1.25rem 1.35rem;
  border:1px solid rgba(0, 0, 0, .06);
  box-shadow:0 8px 24px rgba(31, 82, 122, .06);
  height:100%;
}
.mt-process-step__card .icon-wrap{
  margin-bottom:.75rem;
}
.mt-process-step:not(:last-child)::after{
  content:"";
  display:block;
  width:2px;
  height:1rem;
  margin:.5rem auto 0;
  background:linear-gradient(180deg, var(--accent), rgba(95, 168, 211, .25));
  border-radius:2px;
}
@media (min-width: 992px){
  .mt-process-steps{
    flex-direction:row;
    align-items:stretch;
    gap:.75rem;
  }
  .mt-process-step:not(:last-child)::after{
    position:absolute;
    top:50%;
    right:-.5rem;
    left:auto;
    width:1rem;
    height:2px;
    margin:0;
    transform:translateY(-50%);
    background:linear-gradient(90deg, var(--accent), rgba(95, 168, 211, .25));
  }
  .mt-process-step:not(:last-child){
    padding-right:.5rem;
  }
}

/* Галерея операции */
.mt-gallery-card{
  overflow:hidden;
  border-radius:1.1rem;
  color:inherit;
  transition:transform .2s ease, box-shadow .2s ease;
}
.mt-gallery-card:hover{
  transform:translateY(-2px);
  box-shadow:0 14px 32px rgba(31, 82, 122, .12);
}
.mt-gallery-card__img{
  aspect-ratio:4/3;
  object-fit:cover;
  width:100%;
}
.mt-gallery-card--featured .mt-gallery-card__img{
  aspect-ratio:16/10;
  min-height:min(52vw, 280px);
}
@media (min-width:768px){
  .mt-gallery-card--featured .mt-gallery-card__img{
    min-height:320px;
  }
}
@media (min-width:992px){
  .mt-gallery-card--featured .mt-gallery-card__img{
    min-height:380px;
  }
}

.mt-gallery-spoiler{
  max-width:52rem;
  margin-inline:auto;
}
.mt-gallery-spoiler__warn{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:1rem;
  padding:1.25rem 1.35rem;
  border-radius:1.1rem;
  border:1px solid rgba(31, 82, 122, .14);
  background:linear-gradient(160deg, rgba(232, 242, 250, .95) 0%, rgba(245, 248, 251, .98) 100%);
}
.mt-gallery-spoiler__icon{
  width:2.5rem;
  height:2.5rem;
  border-radius:.75rem;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:var(--primary-dark);
  background:rgba(31, 82, 122, .1);
  font-size:1.2rem;
  flex-shrink:0;
}
.mt-gallery-spoiler__text{
  flex:1 1 auto;
}
.mt-gallery-spoiler__btn{
  width:100%;
  min-height:2.75rem;
  font-weight:600;
}
@media (min-width:768px){
  .mt-gallery-spoiler__warn{
    flex-direction:row;
    flex-wrap:wrap;
    align-items:center;
    padding:1.35rem 1.5rem;
  }
  .mt-gallery-spoiler__text{
    flex:1 1 14rem;
    min-width:0;
  }
  .mt-gallery-spoiler__btn{
    width:auto;
    flex:0 0 auto;
    white-space:nowrap;
  }
}
.mt-gallery-spoiler.is-open .mt-gallery-spoiler__warn{
  margin-bottom:1.25rem;
}
.mt-gallery-spoiler__panel[hidden]{
  display:none !important;
}
.mt-gallery-spoiler__panel .mt-gallery-card__img:not([src]){
  background:rgba(31, 82, 122, .06);
}

#galleryModal .carousel-control-prev-icon,
#galleryModal .carousel-control-next-icon{
  filter:invert(1) grayscale(100%);
  opacity:.85;
}

#why-microtese,
#indications,
#advantages,
#about,
#process,
#gallery,
#clinic,
#pricing,
#reviews,
#faq,
#social,
#contacts,
#online-booking,
#form,
#legal{
  scroll-margin-top:5.5rem;
}

.map-embed{
  position: relative;
  min-height: 340px;
  border: 0;
  border-radius: 1rem;
}
#contacts .map-embed{ min-height:500px; }

/* Баннер cookie: тёмная подложка и контрастный текст (устойчиво к сбоям text-bg-* у .toast) */
.toast-cookie.toast{
  position:fixed;
  right:1rem;
  left:1rem;
  bottom:1rem;
  z-index:2000;
  max-width:min(42rem, calc(100vw - 2rem));
  margin-inline:auto;
  border-radius:1rem !important;
  box-shadow:0 14px 40px rgba(16,41,61,.4);
  border:1px solid rgba(95,168,211,.28) !important;
  background:linear-gradient(145deg,#1f527a 0%,#10293d 55%,#0d2230 100%) !important;
  color:#e8f2fa !important;
  --bs-toast-bg:transparent;
  --bs-toast-color:#e8f2fa;
  --bs-toast-border-width:0;
}
.toast-cookie .toast-body{
  color:inherit !important;
}
.toast-cookie .toast-body .link-light{
  color:#9dc8ef !important;
  text-decoration-color:rgba(157,200,239,.55);
}
.toast-cookie .toast-body .link-light:hover,
.toast-cookie .toast-body .link-light:focus{
  color:#fff !important;
  text-decoration-color:#fff;
}

.bg-brand{
  background: linear-gradient(135deg, var(--primary-dark), var(--primary)) !important;
  color: #fff !important;
}

/* Акция в карточке прайса (#pricing): суммы справа; чип «Акция» — отдельно слева над названием */
.price-promo{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  text-align:right;
  gap:.2rem;
  flex-shrink:0;
  max-width:min(100%, 12rem);
}
.price-card-heading--promo .card-title{
  text-wrap:balance;
}
.price-promo__chip{
  display:inline-flex;
  align-items:center;
  gap:.3rem;
  padding:.28rem .55rem;
  border-radius:999px;
  font-size:.68rem;
  font-weight:700;
  letter-spacing:.04em;
  text-transform:uppercase;
  background:linear-gradient(135deg, #c82333 0%, #dc3545 55%, #e03545 100%);
  color:#fff;
  border:1px solid rgba(134, 24, 35, .55);
  box-shadow:0 2px 8px rgba(200, 35, 51, .35);
}
.price-promo__chip i{
  color:inherit;
}
.price-promo__amount{
  font-size:1.0625rem;
  font-weight:800;
  line-height:1.2;
  color:var(--primary-dark);
}
.price-promo__was{
  font-size:.8125rem;
  line-height:1.25;
  color:var(--muted);
}
.price-promo__was del{
  text-decoration-thickness:1px;
}
.price-promo__until{
  font-size:.75rem;
  line-height:1.35;
  color:var(--muted);
}

.card{ border-color: rgba(0, 0, 0, .06); }
.border{ border-color: rgba(0, 0, 0, .08) !important; }

.badge.bg-light.text-dark.border{
  border-color: rgba(47, 111, 163, .35) !important;
}

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

::-webkit-scrollbar{ height:10px; width:10px; }
::-webkit-scrollbar-thumb{
  background: linear-gradient(var(--accent), var(--primary-dark));
  border-radius: 8px;
}
::-webkit-scrollbar-track{ background:#f1f1f1; }

@media (max-width: 575.98px){
  .section-pad{ padding-top:3rem; padding-bottom:3rem; }
}

/* Сравнительная таблица методов (#methods) */
.mt-compare-scroll{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  border-radius:1.2rem;
  border:1px solid rgba(0, 0, 0, .06);
  background:#fff;
  box-shadow:0 10px 30px rgba(0, 0, 0, .06);
}
.mt-compare-table{
  width:100%;
  min-width:36rem;
  margin:0;
  border-collapse:collapse;
  font-size:.95rem;
}
.mt-compare-table th,
.mt-compare-table td{
  padding:.85rem 1rem;
  vertical-align:top;
  border-bottom:1px solid rgba(0, 0, 0, .06);
  color:var(--muted);
}
.mt-compare-table thead th{
  font-weight:600;
  color:var(--text);
  background:rgba(47, 111, 163, .06);
  white-space:nowrap;
}
.mt-compare-table tbody th[scope="row"]{
  font-weight:600;
  color:var(--text);
  white-space:nowrap;
  background:rgba(244, 249, 252, .65);
  width:6.5rem;
}
.mt-compare-table tbody tr:last-child th,
.mt-compare-table tbody tr:last-child td{
  border-bottom:0;
}
.mt-compare-table__highlight{
  background:rgba(47, 111, 163, .08);
  color:var(--text);
  font-weight:500;
}
.mt-compare-table thead .mt-compare-table__highlight{
  background:rgba(47, 111, 163, .14);
  color:var(--primary-dark);
  font-weight:700;
}
.mt-compare-notes .info-card{
  box-shadow:none;
}
.mt-azoospermia-callout,
.mt-recovery-alert{
  border-color:rgba(47, 111, 163, .22) !important;
  background:linear-gradient(180deg, rgba(47, 111, 163, .04), transparent);
}

/* Плавающие кнопки: снизу вверх — Telegram, MAX, телефон (tel только < lg) */
.messenger-float-stack{
  position:fixed;
  right:max(1rem, env(safe-area-inset-right));
  bottom:max(1rem, env(safe-area-inset-bottom));
  z-index:1090;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:.75rem;
}
@keyframes messengerFabIn{
  from{
    opacity:0;
    transform:translateY(12px) scale(.92);
  }
  to{
    opacity:1;
    transform:translateY(0) scale(1);
  }
}
.messenger-float-btn{
  display:flex;
  align-items:center;
  justify-content:center;
  width:3.5rem;
  height:3.5rem;
  border-radius:50%;
  text-decoration:none;
  animation:messengerFabIn .4s ease both;
  transition:box-shadow .2s ease;
}
@media (prefers-reduced-motion: reduce){
  .messenger-float-btn{
    animation:none;
    opacity:1;
    transform:translateY(0) scale(1);
  }
}
.messenger-float-btn--telegram{
  background:linear-gradient(145deg,#229ed9 0%,#0088cc 100%);
  color:#fff !important;
  box-shadow:0 10px 28px rgba(0,136,204,.4);
}
.messenger-float-btn--telegram:hover,
.messenger-float-btn--telegram:focus-visible{
  color:#fff !important;
  box-shadow:0 12px 32px rgba(0,136,204,.5);
}
.messenger-float-btn--max{
  overflow:hidden;
  padding:0;
  box-shadow:0 10px 28px rgba(31,82,122,.22);
}
.messenger-float-btn--max:hover,
.messenger-float-btn--max:focus-visible{
  box-shadow:0 12px 32px rgba(31,82,122,.3);
}
.messenger-float-btn--max img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
}
.messenger-float-btn:focus-visible{
  outline:3px solid rgba(47,111,163,.45);
  outline-offset:3px;
}
.messenger-float-btn--telegram .bi-telegram{
  font-size:1.65rem;
  line-height:1;
}
/* Зелёный круг: те же width/height и border-radius:50%, что у остальных FAB */
.messenger-float-btn--phone{
  flex-shrink:0;
  background:#2bb84a;
  color:#fff !important;
  box-shadow:0 10px 28px rgba(28,142,72,.42);
}
.messenger-float-btn--phone:hover,
.messenger-float-btn--phone:focus-visible{
  color:#fff !important;
  background:#27a843;
  box-shadow:0 12px 32px rgba(28,142,72,.5);
}
.messenger-float-btn--phone .bi-telephone-fill{
  font-size:1.5rem;
  line-height:1;
}

/* FAQ: спокойный аккордеон в стиле страницы */
.faq-section .faq-accordion .accordion-item{
  border:1px solid rgba(0, 0, 0, .08);
  border-radius:20px !important;
  overflow:hidden;
  margin-bottom:0.75rem;
  background:#fff;
  box-shadow:0 6px 20px rgba(31, 82, 122, .05);
}
.faq-section .faq-accordion .accordion-item:last-child{
  margin-bottom:0;
}
.faq-section .faq-accordion .accordion-button{
  font-weight:600;
  font-size:1rem;
  line-height:1.45;
  padding:1rem 1.15rem;
  min-height:3.25rem;
  color:var(--text);
  background:transparent;
  box-shadow:none;
}
.faq-section .faq-accordion .accordion-button:not(.collapsed){
  background:rgba(232, 243, 250, .45);
  color:var(--primary-dark);
}
.faq-section .faq-accordion .accordion-button::after{
  filter:opacity(.65);
}
.faq-section .faq-accordion .accordion-button:focus{
  box-shadow:inset 0 0 0 2px rgba(47, 111, 163, .2);
}
.faq-section .faq-accordion .accordion-body{
  padding:0 1.15rem 1.15rem;
}
@media (min-width: 768px){
  .faq-section .faq-accordion .accordion-button{
    padding:1.1rem 1.35rem;
    font-size:1.02rem;
  }
  .faq-section .faq-accordion .accordion-body{
    padding:0 1.35rem 1.25rem;
  }
}

/* Онлайн запись: двухколоночный блок, слоты, карточки дней */
.online-booking .online-booking-section-title{
  font-weight: 600;
  color: var(--text);
  letter-spacing: -0.01em;
}
.online-booking .online-booking-day{
  border-radius: 1rem;
  border-left: 4px solid var(--primary);
  background: rgba(255, 255, 255, .92);
  overflow: hidden;
}
.online-booking .online-booking-day .card-body{
  padding: 1.1rem 1.2rem 1.15rem;
}
.online-booking .online-booking-day-title{
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--text);
  letter-spacing: -0.02em;
}
.online-booking .online-booking-slot{
  min-width: 4.25rem;
  font-weight: 500;
}
.online-booking .online-booking-slot--past,
.online-booking .online-booking-slot:disabled{
  opacity: 0.45;
  cursor: not-allowed;
  pointer-events: none;
}
.online-booking .online-booking-slot.is-selected,
.online-booking .online-booking-slot.is-selected:hover,
.online-booking .online-booking-slot.is-selected:focus{
  color:#fff;
  background: var(--primary);
  border-color: var(--primary);
  font-weight: 700;
  box-shadow:
    0 0 0 3px rgba(47, 111, 163, .35),
    0 8px 22px rgba(47, 111, 163, .35);
}
.online-booking .online-booking-form-step{
  margin-top: 0.25rem;
  padding: 1.35rem 1.35rem 1.5rem;
  background: var(--soft);
  border: 1px solid rgba(0, 0, 0, .06);
  border-radius: 1.2rem;
  box-shadow: 0 8px 28px rgba(31, 82, 122, .07);
}
.online-booking .online-booking-aside .list-check li{
  margin-bottom: 0.65rem;
  line-height: 1.45;
}
.online-booking .online-booking-aside-note{
  font-size: 1.125rem;
  line-height: 1.55;
}
.online-booking .online-booking-aside-note a{
  font-weight: 600;
  color: var(--primary-dark);
}
.online-booking .online-booking-aside-note a:hover{
  color: var(--primary);
}
.online-booking #onlineBookingSubmit:disabled{
  opacity: 0.55;
  cursor: not-allowed;
}
