/* T0031-fonts · 10.10.2026 · ветка сайт
   Локальные шрифты вместо Google Fonts: убран внешний @import к серверу шрифтов Google.
   Основание — ст. 12 152-ФЗ (трансграничная передача), запрос З-0014 от 07.09.2026.
   Raleway и Inter, переменные начертания 100-900, лицензия SIL Open Font License 1.1
   (текст — fonts/OFL-Raleway.txt и fonts/OFL-Inter.txt).
   Файлы урезаны под набор символов сайта: кириллица, латиница, типографика, знак рубля.
   Откат: удалить этот блок и восстановить style.css из бэкапа, который лежит рядом
   с файлом: style.css.бэкап-T0031-<дата>.txt */
@font-face{font-family:'Raleway';font-style:normal;font-weight:100 900;font-display:swap;src:url('fonts/raleway-cyrillic.woff2') format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Raleway';font-style:normal;font-weight:100 900;font-display:swap;src:url('fonts/raleway-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Raleway';font-style:normal;font-weight:100 900;font-display:swap;src:url('fonts/raleway-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Inter';font-style:normal;font-weight:100 900;font-display:swap;src:url('fonts/inter-cyrillic.woff2') format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Inter';font-style:normal;font-weight:100 900;font-display:swap;src:url('fonts/inter-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Inter';font-style:normal;font-weight:100 900;font-display:swap;src:url('fonts/inter-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

:root {
  --green:    #2e6941;
  --green-d:  #1f4d2e;
  --green-l:  #e8f3ec;
  --blue:     #1e649f;
  --blue-d:   #14497a;
  --blue-l:   #e8f2fb;
  --accent:   #e8963a;
  --dark:     #12202a;
  --gray:     #5a6a75;
  --gray-l:   #f4f7f9;
  --white:    #ffffff;
  --border:   #d8e3ea;
  --radius:   12px;
  --shadow:   0 4px 24px rgba(30,60,90,.10);
  --shadow-l: 0 2px 10px rgba(30,60,90,.07);
  --tr:       .22s cubic-bezier(.4,0,.2,1);
  --font-h:   'Raleway', sans-serif;
  --font-b:   'Inter', sans-serif;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--font-b);font-size:15px;color:var(--dark);background:#fff;line-height:1.65}
img{max-width:100%;display:block}
a{color:var(--blue);text-decoration:none}
a:hover{color:var(--blue-d)}

/* ── Кнопки ── */
.btn{display:inline-flex;align-items:center;gap:8px;padding:13px 28px;border-radius:50px;font-family:var(--font-h);font-weight:700;font-size:15px;cursor:pointer;border:none;transition:var(--tr);text-decoration:none;white-space:nowrap}
.btn-primary{background:var(--green);color:#fff}
.btn-primary:hover{background:var(--green-d);color:#fff;transform:translateY(-2px);box-shadow:0 6px 20px rgba(46,105,65,.35)}
.btn-outline{background:transparent;color:var(--green);border:2px solid var(--green)}
.btn-outline:hover{background:var(--green);color:#fff;transform:translateY(-2px)}
.btn-white{background:#fff;color:var(--green)}
.btn-white:hover{background:var(--green-l);color:var(--green-d)}

/* ── Шапка ── */
.site-header{position:sticky;top:0;z-index:100;background:#fff;box-shadow:0 2px 16px rgba(0,0,0,.08)}
.header-inner{max-width:1200px;margin:0 auto;padding:0 24px;height:72px;display:flex;align-items:center;gap:24px}
.header-logo{display:flex;align-items:center;gap:12px;text-decoration:none;flex-shrink:0}
.header-logo img{height:44px;width:auto}
.logo-text{font-family:var(--font-h);font-weight:800;font-size:20px;color:var(--green);line-height:1.1}
.logo-sub{font-size:11px;color:var(--gray);letter-spacing:.5px;display:block}
.main-nav{display:flex;align-items:center;gap:4px;margin-left:auto}
.main-nav a{padding:8px 14px;border-radius:8px;font-family:var(--font-h);font-weight:600;font-size:14px;color:var(--dark);text-decoration:none;transition:var(--tr);white-space:nowrap}
.main-nav a:hover,.main-nav a.active{color:var(--green);background:var(--green-l)}
.header-cta{flex-shrink:0}
.header-cta .btn{padding:10px 22px;font-size:14px}

/* Dropdown */
.nav-dropdown{position:relative}
.nav-dropdown-toggle{cursor:pointer}
.nav-dropdown-menu{display:none;position:absolute;top:calc(100% + 8px);left:50%;transform:translateX(-50%);background:#fff;border-radius:14px;box-shadow:0 8px 32px rgba(0,0,0,.14);border:1px solid var(--border);min-width:230px;z-index:200;overflow:hidden;animation:dropIn .18s ease}
@keyframes dropIn{from{opacity:0;transform:translateX(-50%) translateY(-8px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}
.nav-dropdown:hover .nav-dropdown-menu,.nav-dropdown:focus-within .nav-dropdown-menu{display:block}
.nav-dropdown-menu a{display:flex;align-items:center;gap:10px;padding:11px 18px;font-size:14px;font-weight:500;color:var(--dark);text-decoration:none;border-bottom:1px solid var(--border);border-radius:0;transition:background var(--tr)}
.nav-dropdown-menu a:last-child{border-bottom:none}
.nav-dropdown-menu a:hover{background:var(--green-l);color:var(--green-d)}
.dropdown-divider{height:1px;background:var(--border)}

/* Mobile menu */
.mobile-menu-btn{display:none;background:none;border:none;cursor:pointer;padding:8px;margin-left:auto;flex-direction:column}
.mobile-menu-btn span{display:block;width:24px;height:2px;background:var(--dark);margin:5px 0;transition:var(--tr);border-radius:2px}
.mobile-menu-btn.open span:nth-child(1){transform:rotate(45deg) translate(5px,5px)}
.mobile-menu-btn.open span:nth-child(2){opacity:0}
.mobile-menu-btn.open span:nth-child(3){transform:rotate(-45deg) translate(5px,-5px)}
.mobile-booking-btn{display:none}

/* ── Дисклеймер (ЮРИДИЧЕСКИЙ - на каждой странице услуг) ── */
.legal-disclaimer {
  background: #fff8e6;
  border-left: 4px solid #e8963a;
  border-radius: 0 8px 8px 0;
  padding: 14px 20px;
  margin: 24px 0;
  font-size: 14px;
  color: #5a4a1a;
  display: flex;
  gap: 10px;
  align-items: flex-start;
}
.legal-disclaimer .dis-ico { font-size: 18px; flex-shrink: 0; margin-top: 1px; }
.legal-disclaimer strong { display: block; margin-bottom: 3px; font-size: 14.5px; color: #c0780a; }

/* Фиксированный дисклеймер внизу страниц услуг */
.sticky-disclaimer {
  position: fixed;
  bottom: 0; left: 0; right: 0;
  background: rgba(255,248,230,.97);
  border-top: 2px solid #e8963a;
  padding: 10px 24px;
  font-size: 13px;
  color: #7a5a10;
  text-align: center;
  z-index: 90;
  backdrop-filter: blur(4px);
}
.sticky-disclaimer a { color: var(--blue); }

/* Cookie баннер */
.cookie-banner {
  display: none;
  position: fixed;
  bottom: 0; left: 0; right: 0;
  background: rgba(18,32,42,.97);
  color: #fff;
  padding: 20px 32px;
  z-index: 9999;
  gap: 20px;
  align-items: center;
  flex-wrap: wrap;
  backdrop-filter: blur(4px);
}
.cookie-banner.show { display: flex; }
.cookie-text { flex: 1; font-size: 14px; line-height: 1.6; min-width: 260px; }
.cookie-text a { color: #a8e6c0; }
.cookie-btns { display: flex; gap: 10px; flex-wrap: wrap; }
.btn-cookie-accept { background: var(--green); color: #fff; padding: 10px 22px; border-radius: 50px; border: none; cursor: pointer; font-weight: 700; font-size: 14px; transition: var(--tr); }
.btn-cookie-accept:hover { background: var(--green-d); }
.btn-cookie-decline { background: transparent; color: rgba(255,255,255,.7); padding: 10px 18px; border-radius: 50px; border: 1px solid rgba(255,255,255,.3); cursor: pointer; font-size: 14px; transition: var(--tr); }
.btn-cookie-decline:hover { border-color: #fff; color: #fff; }

/* ── Подвал ── */
.site-footer{background:var(--dark);color:rgba(255,255,255,.75);padding:56px 24px 24px;margin-top:80px}
.footer-inner{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:2fr 1fr 1fr;gap:48px}
.footer-logo{display:flex;align-items:center;gap:12px;margin-bottom:16px}
.footer-logo img{height:40px;width:auto;filter:brightness(0) invert(1);opacity:.85}
.footer-logo-text{font-family:var(--font-h);font-weight:800;font-size:18px;color:#fff}
.footer-desc{font-size:13.5px;line-height:1.7;opacity:.8}
.footer-disclaimer{font-size:12px;opacity:.55;margin-top:12px}
.footer-h{font-family:var(--font-h);font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:1px;color:rgba(255,255,255,.5);margin-bottom:16px}
.footer-nav{list-style:none}
.footer-nav li{margin-bottom:10px}
.footer-nav a{color:rgba(255,255,255,.75);text-decoration:none;font-size:14px;transition:var(--tr)}
.footer-nav a:hover{color:#fff}
.footer-contacts p{font-size:14px;margin-bottom:10px;display:flex;align-items:flex-start;gap:10px}
.footer-contacts .ico{font-size:16px;flex-shrink:0;margin-top:1px}
.footer-bottom{border-top:1px solid rgba(255,255,255,.1);margin-top:40px;padding-top:20px;display:flex;justify-content:space-between;align-items:center;font-size:13px;opacity:.55;flex-wrap:wrap;gap:8px;max-width:1200px;margin-left:auto;margin-right:auto}
.footer-bottom a{color:inherit}
.footer-socials{display:flex;gap:12px;margin-top:16px}
.footer-socials a{width:36px;height:36px;background:rgba(255,255,255,.1);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:14px;transition:var(--tr);text-decoration:none}
.footer-socials a:hover{background:var(--green)}

/* ── Модальное окно ── */
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(10,20,30,.65);z-index:1000;align-items:flex-end;justify-content:center;padding:0;backdrop-filter:blur(3px)}
.modal-overlay.open{display:flex}
@media(min-width:600px){.modal-overlay{align-items:center;padding:20px}}
.modal-box{background:#fff;border-radius:20px 20px 0 0;width:100%;max-width:100%;max-height:95vh;overflow-y:auto;position:relative;box-shadow:0 20px 60px rgba(0,0,0,.25);animation:modalIn .25s ease}
@media(min-width:600px){.modal-box{border-radius:20px;max-width:600px;max-height:90vh}}
@keyframes modalIn{from{opacity:0;transform:translateY(24px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
.modal-header{padding:24px 24px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}
.modal-title{font-family:var(--font-h);font-weight:700;font-size:18px;color:var(--dark)}
.modal-close{background:var(--gray-l);border:none;width:36px;height:36px;border-radius:50%;cursor:pointer;font-size:18px;display:flex;align-items:center;justify-content:center;transition:var(--tr);color:var(--gray)}
.modal-close:hover{background:var(--border);color:var(--dark)}
.modal-body{padding:16px 20px 24px}
#rnova-a_form{min-height:260px;overflow-x:hidden}
#rnova-a_form iframe,#rnova-a_form > div{width:100% !important;max-width:100% !important}

/* ── Общие блоки ── */
.container{max-width:1200px;margin:0 auto;padding:0 24px}
.section{padding:72px 0}
.section-sm{padding:48px 0}
.section-head{text-align:center;margin-bottom:48px}
.section-head h2{font-family:var(--font-h);font-weight:800;font-size:clamp(22px,4vw,34px);color:var(--dark);line-height:1.2}
.section-head p{font-size:16px;color:var(--gray);margin-top:12px;max-width:560px;margin-left:auto;margin-right:auto}
.section-badge{display:inline-block;background:var(--green-l);color:var(--green-d);font-family:var(--font-h);font-weight:700;font-size:12px;letter-spacing:1.2px;text-transform:uppercase;padding:6px 16px;border-radius:50px;margin-bottom:12px}
.breadcrumb{background:var(--gray-l);padding:14px 0}
.breadcrumb .container{display:flex;align-items:center;gap:8px;font-size:13.5px}
.breadcrumb a{color:var(--gray);text-decoration:none}
.breadcrumb a:hover{color:var(--green)}
.breadcrumb span{color:var(--gray);opacity:.5}
.breadcrumb .current{color:var(--dark);font-weight:500}
.service-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:24px;transition:var(--tr)}
.service-card:hover{box-shadow:var(--shadow);border-color:var(--green);transform:translateY(-3px)}
.service-card-ico{font-size:32px;margin-bottom:12px}
.service-card-name{font-family:var(--font-h);font-weight:700;font-size:15.5px;color:var(--dark);margin-bottom:6px}
.service-card-desc{font-size:13.5px;color:var(--gray)}
.service-card-price{font-family:var(--font-h);font-weight:800;font-size:20px;color:var(--green);margin-top:14px}
a[href^="tel"]{color:var(--green);text-decoration:none;font-weight:600}
a[href^="tel"]:hover{text-decoration:underline}

/* ── Мобильная адаптация ── */
@media(max-width:900px){
  .main-nav{display:none;position:absolute;top:72px;left:0;right:0;background:#fff;flex-direction:column;padding:16px;gap:4px;box-shadow:0 8px 24px rgba(0,0,0,.1)}
  .main-nav.open{display:flex}
  .main-nav a{width:100%;font-size:15px;padding:12px 16px}
  .mobile-menu-btn{display:flex}
  .mobile-booking-btn{display:block;width:100%;margin-top:4px}
  .mobile-booking-btn .btn{width:100%;justify-content:center}
  .main-nav.open .nav-dropdown-menu{display:block;position:static;transform:none;box-shadow:none;border:none;border-radius:0;background:var(--gray-l);animation:none;margin:0 -16px}
  .nav-dropdown-menu a{padding:10px 32px;font-size:14px}
  .nav-dropdown-toggle{pointer-events:none}
  .header-inner{height:64px}
}
@media(max-width:480px){
  .header-cta{display:none}
  .logo-text{font-size:17px}
  .logo-sub{display:none}
  .hero-cta .btn{width:100%;justify-content:center}
  .services-grid{grid-template-columns:1fr 1fr;gap:12px}
  .service-card{padding:16px}
}
@media(max-width:768px){
  .footer-inner{grid-template-columns:1fr;gap:32px}
  .footer-bottom{flex-direction:column;text-align:center}
}

/* Отступ для sticky-disclaimer */
body.has-disclaimer { padding-bottom: 48px; }


/* ═══════════════════════════════════════════════════════
   МОБИЛЬНАЯ ОПТИМИЗАЦИЯ v5 — SonoArt
   Брейкпоинты: 480, 600, 768, 900, 1024
   ═══════════════════════════════════════════════════════ */

/* Header — анимации при скролле */
.site-header { transition: box-shadow .25s, transform .25s; }
.site-header.scrolled { box-shadow: 0 2px 16px rgba(0,0,0,.12); }
.site-header.hidden { transform: translateY(-100%); }

/* Модаль — улучшенная анимация */
.modal-overlay {
  display: none !important;
  transition: opacity .25s;
}
.modal-overlay[style*="flex"] {
  display: flex !important;
  opacity: 0;
}
.modal-overlay.open {
  opacity: 1 !important;
}

/* Выпадающее меню — плавное */
.nav-dropdown-menu {
  transition: opacity .15s, transform .15s;
  transform-origin: top center;
}

/* Touch targets — минимум 44px по Apple HIG */
.btn, button, .filter-tab, .cat-tab, .accordion-btn, .acc-btn,
.main-nav a, .prep-nav a {
  min-height: 44px;
}
.mobile-menu-btn {
  min-width: 44px;
  min-height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Таблицы — горизонтальный скролл на мобильных */
.price-table-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  border-radius: var(--radius);
}
/* T0036-pricetable: min-width только внутри обёртки с прокруткой, иначе таблица
   шире экрана и колонка с ценой обрезается на телефонах */
.price-table-wrap > .price-table {
  min-width: 420px;
}

/* Кнопка версии для слабовидящих — не мешает записи */
.bvi-toggle {
  bottom: 90px;
}
@media (max-width: 480px) {
  .bvi-toggle { bottom: 100px; left: 10px; }
  .sticky-disclaimer { font-size: 11px; padding: 8px 12px; }
}

/* ── 1024px ─────────────────────────────────────────── */
@media (max-width: 1024px) {
  .main-nav a { padding: 8px 10px; font-size: 13.5px; }
  .container { padding: 0 20px; }
}

/* ── 900px (планшет) ────────────────────────────────── */
@media (max-width: 900px) {
  /* Хедер */
  .site-header { position: sticky; top: 0; z-index: 500; }
  .header-inner { height: 60px; }
  .main-nav {
    display: none;
    position: absolute; top: 60px; left: 0; right: 0;
    background: #fff; flex-direction: column;
    padding: 12px 16px 20px; gap: 2px;
    box-shadow: 0 8px 32px rgba(0,0,0,.12);
    border-top: 1px solid var(--border);
    max-height: calc(100vh - 60px);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }
  .main-nav.open { display: flex; }
  .main-nav a {
    width: 100%; padding: 12px 16px;
    font-size: 15px; border-radius: 10px;
    min-height: 48px; align-items: center; display: flex;
  }
  .mobile-menu-btn { display: flex; }
  .header-cta { display: none; }
  .mobile-booking-btn { display: block; margin-top: 8px; }
  .mobile-booking-btn .btn { width: 100%; justify-content: center; min-height: 48px; }

  /* Выпадающее меню на мобильном — всегда открыто статично */
  .nav-dropdown-menu {
    display: block !important;
    position: static; transform: none;
    box-shadow: none; border: none;
    border-radius: 10px; animation: none;
    background: var(--gray-l);
    margin: 4px 0 4px 16px;
    padding: 4px 0;
  }
  .nav-dropdown-menu a {
    padding: 10px 16px;
    font-size: 14px;
    min-height: 44px;
  }
  .nav-dropdown-toggle { pointer-events: none; color: var(--gray); }

  /* Сетки */
  .services-grid { grid-template-columns: repeat(2, 1fr); }
  .footer-inner { grid-template-columns: 1fr; gap: 28px; }
}

/* ── 768px ──────────────────────────────────────────── */
@media (max-width: 768px) {
  /* Отступы */
  .section { padding: 40px 0; }
  .section-sm { padding: 28px 0; }
  .page-hero { padding: 40px 0 36px; }
  .container { padding: 0 16px; }

  /* Сетки */
  .services-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
  .features-grid, .values-grid, .tips-grid { grid-template-columns: repeat(2, 1fr); }
  .doctor-profile { grid-template-columns: 1fr; }
  .doctor-photo-wrap { position: static; max-width: 280px; margin: 0 auto 24px; }
  .contacts-grid { grid-template-columns: 1fr; }
  .competency-grid { grid-template-columns: 1fr; }
  .cert-grid { grid-template-columns: repeat(2, 1fr); }
  .docs-grid { grid-template-columns: 1fr; }

  /* Прайс */
  .price-table td:nth-child(2),
  .price-table thead th:nth-child(2) { display: none; }

  /* Модаль */
  .modal-box { border-radius: 20px 20px 0 0; max-width: 100%; }
  .modal-header { padding: 20px 20px 14px; }
  .modal-body { padding: 14px 16px 20px; }

  /* Footer */
  .footer-inner { grid-template-columns: 1fr; }
  .footer-bottom { flex-direction: column; gap: 6px; text-align: center; font-size: 12px; }

  /* Cookie */
  .cookie-banner { flex-direction: column; gap: 12px; }
  .cookie-btns { width: 100%; display: flex; gap: 8px; }
  .btn-cookie-accept, .btn-cookie-decline { flex: 1; text-align: center; }

  /* BVI панель */
  .bvi-panel { flex-wrap: wrap; padding: 8px 12px; gap: 6px; font-size: 12px; }
}

/* ── 600px ──────────────────────────────────────────── */
@media (max-width: 600px) {
  /* Hero */
  .page-hero h1 { font-size: clamp(20px, 6vw, 28px); }
  .hero-cta .btn { width: 100%; justify-content: center; }
  .hero-cta { flex-direction: column; gap: 10px; }

  /* Сетки в 1 колонку */
  .services-grid { grid-template-columns: 1fr; }
  .features-grid, .values-grid, .tips-grid,
  .cert-grid, .trimester-grid, .study-cards { grid-template-columns: 1fr; }
  .info-2col { grid-template-columns: 1fr; }

  /* Прайс таблица */
  .price-table td { padding: 10px 12px; font-size: 13px; }
  .price-val { font-size: 15px; }
  .svc-book { display: none; } /* убираем кнопку — есть sticky */

  /* Кнопки */
  .btn { padding: 12px 20px; font-size: 14px; }
  .cta-strip { flex-direction: column; text-align: center; }
  .cta-strip .btn { width: 100%; justify-content: center; }

  /* Фильтры */
  .filter-bar-inner, .cat-tabs-inner, .prep-nav { padding: 0 8px; }
  .filter-tab, .cat-tab, .prep-nav a { padding: 12px 12px; font-size: 13px; }

  /* Аккордион */
  .accordion-btn, .acc-btn { padding: 13px 14px; }
  .acc-body { padding: 0 14px 16px; }

  /* Рейтинг */
  .rating-strip { flex-direction: row; }
  .rating-links { flex-direction: column; }

  /* Реквизиты */
  .req-table td { display: block; padding: 6px 14px; }
  .req-table td:first-child { padding-bottom: 2px; font-size: 12px; background: var(--gray-l); }

  /* Лайтбокс */
  .lb-nav { width: 40px; height: 40px; font-size: 18px; }
}

/* ── 480px ──────────────────────────────────────────── */
@media (max-width: 480px) {
  .logo-sub { display: none; }
  .logo-text { font-size: 16px; }
  .header-logo img { height: 34px; width: auto; }
  .section-head h2 { font-size: 20px; }
  .page-hero { padding: 32px 0 28px; }
  .page-hero p { font-size: 14px; }

  /* Sticky disclaimer */
  .sticky-disclaimer { font-size: 11px; padding: 7px 12px; gap: 6px; }

  /* Work card */
  .work-card { padding: 14px 16px; }
  .competency-card { padding: 16px; }

  /* Таймлайн */
  .timeline { padding-left: 20px; }
  .timeline-item::before { left: -18px; width: 10px; height: 10px; }
}

/* ── Sticky disclaimer — улучшенная ────────────────── */
.sticky-disclaimer {
  position: fixed; bottom: 0; left: 0; right: 0;
  background: rgba(30,100,31,.97);
  color: rgba(255,255,255,.92);
  font-size: 12.5px; padding: 9px 16px;
  display: flex; align-items: center;
  justify-content: center; gap: 10px;
  flex-wrap: wrap; text-align: center;
  z-index: 400; line-height: 1.4;
  backdrop-filter: blur(4px);
}
.sticky-disclaimer a { color: rgba(255,255,255,.8); text-decoration: underline; }
body.has-disclaimer { padding-bottom: 44px; }

/* ── Cookie — фикс ──────────────────────────────────── */
.cookie-banner {
  position: fixed; bottom: 0; left: 0; right: 0;
  background: var(--dark); color: #fff;
  padding: 16px 20px; z-index: 600;
  display: flex; align-items: center;
  gap: 16px; flex-wrap: wrap;
  transform: translateY(100%);
  transition: transform .35s ease;
  box-shadow: 0 -4px 24px rgba(0,0,0,.2);
}
.cookie-banner.show { transform: translateY(0); }
/* Если есть sticky-disclaimer — поднимаем cookie выше */
body.has-disclaimer .cookie-banner { bottom: 44px; }

/* ── Обеспечиваем нет горизонтального скролла ──────── */
html, body { overflow-x: hidden; max-width: 100%; }
img { max-width: 100%; height: auto; }
table { max-width: 100%; }

/* ── Touch оптимизация ──────────────────────────────── */
html { touch-action: manipulation; -webkit-tap-highlight-color: transparent; }
.btn, button, a, [data-booking] { touch-action: manipulation; }
.price-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
html{touch-action:manipulation;-webkit-tap-highlight-color:transparent}.btn,button,a{touch-action:manipulation}
/*   -   */
#rnova-a_form,
[id^="rnova"],[class*="rnova"]{max-width:100%!important;width:100%!important;box-sizing:border-box!important}
#rnova-a_form iframe,[id^="rnova"] iframe{width:100%!important;max-width:100%!important}
.modal-box{overflow-y:auto;-webkit-overflow-scrolling:touch}
@media(max-width:600px){
  .modal-box{border-radius:20px 20px 0 0;max-height:92vh;padding:0}
  .modal-header{padding:16px 16px 12px;position:sticky;top:0;background:#fff;z-index:1;border-bottom:1px solid var(--border)}
  .modal-body{padding:12px 12px 24px;overflow-y:auto}
  #rnova-a_form{min-height:400px}
  [id^="rnova"] input,[id^="rnova"] select,[id^="rnova"] button{font-size:16px!important;min-height:44px!important}
}

/* btn-contrast-2026-09 — кнопки на цветном герое лендингов (.page-hero).
   Было: зелёная заливка на зелёном градиенте (контраст 1:1) и зелёный контур
   на градиенте (3.2:1). Стало — как на главной: белая кнопка и белый контур. */
.page-hero .btn-primary{background:#fff;color:var(--green);border:0}
.page-hero .btn-primary:hover{background:#f1f5f2;color:var(--green)}
.page-hero .btn-outline{background:transparent;color:#fff;border:2px solid rgba(255,255,255,.65)}
.page-hero .btn-outline:hover{background:rgba(255,255,255,.15);color:#fff;border-color:#fff}

/* T0039-narrow: экраны до 340 px — таблицы не вылезают за край, крошки переносятся.
   Шире 340 px (360, 390, планшеты, десктоп) ничего не меняется. */
@media (max-width: 340px) {
  main table, .geo-tbl, .price-table { table-layout: fixed; width: 100%; }
  main table td, main table th { word-break: break-word; }
  .breadcrumb .container { flex-wrap: wrap; row-gap: 4px; }
  .btn { padding-left: 14px; padding-right: 14px; font-size: 14px; }
}
