/* ============================================================================
   kartomaster.ru — единая шапка, подвал и кнопки для ВСЕХ страниц.
   Эталон — главная страница (снято с неё 17.10.2026).
   Классы с префиксом km- не пересекаются со стилями отдельных страниц,
   поэтому файл можно подключать последним без риска что-то сломать.
   ========================================================================== */

/* ── шапка ───────────────────────────────────────────────────────────────── */
.km-header{
  position:sticky;top:0;z-index:1000;
  background:rgba(15,13,46,.72);
  -webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);
  border-bottom:1px solid rgba(167,139,250,.15);
  font-family:'Manrope',system-ui,sans-serif;
}
.km-header.scrolled{background:rgba(15,13,46,.92)}
.km-wrap{max-width:1180px;margin:0 auto;padding:0 24px}
.km-hdr{display:flex;align-items:center;justify-content:space-between;height:74px;gap:24px}
.km-logo{display:flex;align-items:center;gap:12px;text-decoration:none;flex:0 0 auto}
.km-logo-mark{width:40px;height:40px;display:block;flex:0 0 auto;filter:drop-shadow(0 0 10px rgba(212,175,55,.45))}
.km-logo-word{height:32px;width:auto;display:block;flex:0 0 auto}
.km-nav{display:flex;align-items:center;gap:34px}
.km-nav a{color:#B8B8D0;text-decoration:none;font-size:14.5px;font-weight:500;transition:color .2s;white-space:nowrap}
.km-nav a:hover{color:#F4E4A1}

/* ── кнопки ──────────────────────────────────────────────────────────────── */
.km-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  font-family:'Unbounded',sans-serif;font-weight:600;font-size:14px;
  padding:15px 28px;border-radius:14px;border:0;cursor:pointer;
  text-decoration:none;letter-spacing:.02em;transition:all .3s ease;line-height:1.2;
}
.km-btn-gold{
  background:linear-gradient(135deg,#F4E4A1,#D4AF37,#B8942E);color:#1A1B3A;
  box-shadow:0 0 30px rgba(212,175,55,.6),inset 0 0 20px rgba(255,255,255,.3);
}
.km-btn-gold:hover{transform:translateY(-1px);box-shadow:0 0 42px rgba(212,175,55,.8),inset 0 0 20px rgba(255,255,255,.35)}
.km-btn-ghost{
  background:transparent;border:1.5px solid rgba(212,175,55,.5);color:#F4E4A1;
  box-shadow:0 0 16px rgba(212,175,55,.2);
}
.km-btn-ghost:hover{border-color:#D4AF37;color:#FFF}

/* кнопки внутри страниц — приводим к виду главной */
.btn{
  border-radius:14px;font-family:'Unbounded',sans-serif;font-size:14px;font-weight:600;
  letter-spacing:.02em;text-transform:none;padding:15px 28px;
}
.btn--accent{
  border:0;border-radius:14px;font-family:'Unbounded',sans-serif;font-size:14px;font-weight:600;
  letter-spacing:.02em;text-transform:none;padding:15px 28px;
  background:linear-gradient(135deg,#F4E4A1,#D4AF37,#B8942E);color:#1A1B3A;
  box-shadow:0 0 30px rgba(212,175,55,.5),inset 0 0 20px rgba(255,255,255,.25);
}
.btn--accent:hover{background:linear-gradient(135deg,#FFF0C0,#E8C466,#D4AF37);color:#1A1B3A}
.btn--sm{padding:12px 22px;font-size:12.5px}
.btn-gold{
  background:linear-gradient(135deg,#F4E4A1,#D4AF37,#B8942E);color:#1A1B3A;
  box-shadow:0 0 30px rgba(212,175,55,.6),inset 0 0 20px rgba(255,255,255,.3);
}

/* ── подвал ──────────────────────────────────────────────────────────────── */
.km-footer{
  border-top:1px solid rgba(167,139,250,.15);
  padding:52px 0 36px;background:rgba(15,13,46,.5);
  font-family:'Manrope',system-ui,sans-serif;
}
.km-fgrid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px}
.km-fcol{display:flex;flex-direction:column;gap:12px;min-width:0}
.km-fh{
  font-family:'Unbounded',sans-serif;font-size:12px;letter-spacing:.16em;
  text-transform:uppercase;color:#F4E4A1;margin:0 0 6px;font-weight:600;
}
.km-footer a{color:#B8B8D0;text-decoration:none;font-size:13.5px;transition:color .2s}
.km-footer a:hover{color:#F4E4A1}
.km-fp{color:#8A8AA4;font-size:13.5px;line-height:1.7;margin:14px 0 0;max-width:320px}
.km-fbot{
  display:flex;justify-content:space-between;gap:16px;margin-top:44px;padding-top:26px;
  border-top:1px solid rgba(167,139,250,.1);color:#8A8AA4;font-size:12.5px;flex-wrap:wrap;
}

/* ── юридические страницы (оферта, политика) — тёмная тема как на главной ── */
body.km-legal{
  background:linear-gradient(165deg,#0F0D2E 0%,#1A1B3A 55%,#2A1B5E 100%) fixed !important;
  color:#FFFFFF !important;font-family:'Manrope',system-ui,sans-serif !important;
  max-width:none !important;margin:0 !important;padding:0 !important;
  -webkit-font-smoothing:antialiased;
}
body.km-legal .km-legal-wrap{max-width:860px;margin:0 auto;padding:56px 24px 72px}
body.km-legal h1{
  font-family:'Unbounded',sans-serif;font-size:clamp(26px,4vw,38px);line-height:1.2;
  margin:0 0 10px;color:#FFFFFF;font-weight:700;
}
body.km-legal h2{
  font-family:'Unbounded',sans-serif;font-size:clamp(17px,2.2vw,21px);line-height:1.35;
  margin:38px 0 12px;color:#F4E4A1;font-weight:600;
}
body.km-legal .km-legal-wrap p,body.km-legal .km-legal-wrap li{color:#D8D8E8;font-size:15.5px;line-height:1.75}
body.km-legal .km-legal-wrap p{margin:0 0 12px}
body.km-legal .km-legal-wrap ul{margin:0 0 14px;padding-left:22px}
body.km-legal .km-legal-wrap li{margin:0 0 6px}
body.km-legal .km-legal-wrap strong{color:#FFFFFF}
body.km-legal .km-legal-wrap a{color:#F4E4A1;text-decoration:underline;text-underline-offset:3px}
body.km-legal .km-legal-wrap a:hover{color:#FFF}

/* ── адаптив ─────────────────────────────────────────────────────────────── */
@media (max-width:1000px){
  .km-nav{gap:22px}
  .km-nav a{font-size:13.5px}
}
@media (max-width:860px){
  .km-nav{display:none}
  .km-fgrid{grid-template-columns:1fr 1fr;gap:32px}
}
@media (max-width:700px){
  /* на узком экране оставляем знак и кнопку: словесный логотип не помещается */
  .km-logo-word{display:none}
  .km-header .km-btn{padding:11px 16px;font-size:11.5px;line-height:1.15}
}
@media (max-width:560px){
  .km-wrap{padding:0 18px}
  .km-hdr{height:64px;gap:12px}
  .km-logo-mark{width:36px;height:36px}
  .km-header .km-btn{padding:10px 14px;font-size:11px;letter-spacing:0}
  .km-footer{padding:40px 0 28px}
  .km-fgrid{grid-template-columns:1fr;gap:28px}
  .km-fbot{flex-direction:column;gap:8px;margin-top:30px}
  body.km-legal .km-legal-wrap{padding:36px 18px 56px}
}

/* ── типографика заголовков — как на главной ─────────────────────────────── */
h1{
  font-size:clamp(30px,4.6vw,54px) !important;
  font-weight:800;line-height:1.08;letter-spacing:-.015em;
  text-transform:none !important;
  margin:18px 0 22px;
  text-shadow:0 0 40px rgba(167,139,250,.4);
}
@media (max-width:900px){h1{font-size:clamp(28px,3.8vw,44px) !important}}
@media (max-width:560px){h1{font-size:clamp(26px,6vw,38px) !important}}

/* первый экран: фон и подзаголовок как на главной */
.hero p{font-size:17.5px;line-height:1.7;max-width:560px}

/* ── мобильная компактность: секции и подвал (20.10.2026) ────────────────── */
@media (max-width:767px){
  section{padding:40px 0 !important}
  .eyebrow{margin-bottom:10px}
  .km-footer{padding:24px 0 16px}
  .km-fgrid{grid-template-columns:1fr 1fr;gap:18px 14px}
  .km-fcol:first-child{grid-column:1 / -1}
  .km-fcol{gap:7px}
  .km-fh{margin:0 0 2px;font-size:11.5px}
  .km-fp{margin:6px 0 0;font-size:12.5px;line-height:1.55;max-width:none}
  .km-footer a{font-size:12.5px;line-height:1.35}
  .km-fbot{margin-top:16px;padding-top:10px;flex-direction:column;gap:3px;font-size:11.5px}
}
@media (max-width:420px){
  .km-fgrid{grid-template-columns:1fr 1fr}
  .km-fcol:last-child{grid-column:1 / -1}
}

/* ── мобильная шапка: вернуть название сайта, убрать дублирующую плашку (20.10.2026) ── */
@media (max-width:700px){
  .km-logo-word{display:block !important;height:26px !important;width:auto !important}
  .km-header .km-btn{display:none !important}
}

/* ── шапка без логотипа: только название, прижато к краю (20.10.2026) ───────
   Логотип остаётся только в подвале. */
.km-header .km-logo-mark{display:none !important}
.km-header .km-logo{gap:0}
.km-header .km-logo-word{height:30px}
.km-header .km-wrap{padding-left:14px}
@media (max-width:700px){
  .km-header .km-logo-word{height:25px}
  .km-header .km-wrap{padding-left:12px}
}

/* ── три преимущества: три плашки В РЯД на мобильном (28.10.2026) ──────────
   Было — колонка по одной (grid 1fr), ниже была лента со свайпом.
   Стало — ряд из трёх плашек в одну линию, без горизонтального скролла. */
@media (max-width:767px){
  .trio{
    display:grid !important;
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    overflow:visible !important;
    gap:6px;
    margin-top:32px;
    margin-left:-6px;
    margin-right:-6px;
    padding-bottom:0;
    padding-right:0 !important;
    scroll-padding-right:0 !important;
    scroll-snap-type:none !important;
    -webkit-overflow-scrolling:auto;
  }
  .trio::-webkit-scrollbar{display:none}
  .trio > .feat{flex:none !important;width:auto !important;max-width:100%;min-width:0;scroll-snap-align:none !important;padding:10px 8px;overflow-wrap:break-word;word-break:normal;hyphens:auto}
  .trio > .feat .ic,
  .trio > .feat .ic img{width:36px;height:36px}
  .trio > .feat .ic{margin-bottom:6px}
  .trio > .feat h2,.trio > .feat h3{font-size:11px;line-height:1.3;margin-bottom:4px}
  .trio > .feat p{font-size:10px;line-height:1.35}
}

/* ── шапка: убрать плашку «Попробовать бесплатно» на всех экранах (20.10.2026) ── */
.km-header .km-btn{display:none !important}

/* ── бургер-меню для мобильной шапки (20.10.2026) ─────────────────────────── */
.km-burger{
  display:none;margin-left:auto;width:44px;height:38px;border:1px solid rgba(167,139,250,.35);
  border-radius:11px;background:rgba(15,13,46,.6);cursor:pointer;padding:0;
  align-items:center;justify-content:center;flex-direction:column;gap:4px;flex:0 0 auto;
}
.km-burger span{display:block;width:18px;height:2px;background:#F4E4A1;border-radius:2px;transition:transform .25s ease,opacity .2s ease}
.km-burger.open span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.km-burger.open span:nth-child(2){opacity:0}
.km-burger.open span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
.km-mmenu{
  display:none;position:absolute;left:0;right:0;top:100%;z-index:1001;
  background:rgba(15,13,46,.98);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);
  border-bottom:1px solid rgba(167,139,250,.2);padding:14px 18px 20px;
  flex-direction:column;gap:14px;
}
.km-mmenu.open{display:flex}
.km-mmenu a{color:#E6E6F5;text-decoration:none;font-size:15px;font-family:'Manrope',system-ui,sans-serif;font-weight:600}
.km-mmenu a:hover{color:#F4E4A1}
.km-mmenu .km-mmenu-cta{margin-top:6px;text-align:center;color:#1A1B3A;display:flex;justify-content:center}
@media (max-width:860px){.km-burger{display:flex}}

/* ── меню в шапке ближе к центру (20.10.2026) ─────────────────────────────── */
@media (min-width:1000px){
  .km-hdr{position:relative}
  .km-nav{position:absolute;left:50%;transform:translateX(-50%)}
}

/* ── якоря не прячутся под липкой шапкой (20.10.2026) ─────────────────────── */
html{scroll-padding-top:96px}
section[id],footer[id]{scroll-margin-top:96px}
@media (max-width:860px){
  html{scroll-padding-top:80px}
  section[id],footer[id]{scroll-margin-top:80px}
}

/* ── FAQ-табы на мобильном 2×2 (20.10.2026) ─────────────────────────────── */
@media (max-width:620px){
  .faq-tabs{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  .faq-tab{text-align:center}
}

/* ── блок «Было/стало»: выровнять колонки по верху (20.10.2026) ───────────── */
@media (min-width:900px){
  .ba-grid{align-items:start !important}
  .ba-points{margin-top:0 !important}
}

/* ── «Было/стало»: правая колонка заполняет высоту, без пустоты ───────────── */
@media (min-width:900px){
  .ba-grid{align-items:stretch !important}
  .ba-grid > div:last-child{display:flex;flex-direction:column}
  .ba-points{height:100%;display:flex;flex-direction:column;justify-content:space-between;margin-top:0 !important}
}

/* ── «Было/стало»: компактные пункты справа, по верху (20.10.2026) ───────── */
@media (min-width:900px){
  .ba-grid > div:last-child{display:block !important}
  .ba-points{height:auto !important;display:block !important;justify-content:flex-start !important;margin-top:0 !important}
}

/* ── «Было/стало»: слайдер сверху, пункты под ним 2×2 (20.10.2026) ─────────── */
@media (min-width:900px){
  .ba-grid{grid-template-columns:1fr !important;gap:30px !important;align-items:start !important}
  .ba-grid > div:first-child{max-width:620px}
  .ba-grid > div:last-child{display:block !important}
  .ba-points{grid-template-columns:1fr 1fr !important;gap:16px 32px !important;margin-top:0 !important}
}

/* «Было/стало» — правка к варианту 1: центрируем слайдер, пункты сеткой 2×2 */
@media (min-width:900px){
  .ba-grid > div:first-child{margin:0 auto;width:100%}
  .ba-points{display:grid !important;grid-template-columns:1fr 1fr !important;gap:16px 40px !important}
}

/* «Было/стало» — вариант 1: шире слайдер, блок не выглядит зажатым */
@media (min-width:900px){
  .ba-grid > div:first-child{max-width:780px !important}
}

/* ── «Было/стало»: миниатюры слева, слайдер справа, пункты снизу (20.10.2026) ── */
@media (min-width:900px){
  .ba-grid{display:grid !important;grid-template-columns:1fr 1.05fr !important;
    grid-template-areas:"thumbs slider" "meta meta" "points points" !important;
    gap:26px 44px !important;align-items:start !important;margin-top:40px !important}
  .ba-grid > div:first-child{display:contents !important}
  .ba-grid > div:last-child{display:block !important;grid-area:points}
  .ba-slider{grid-area:slider !important;margin:0 !important;width:100% !important;max-width:none !important}
  .ba-thumbs{grid-area:thumbs !important;margin:0 !important}
  .ba-case-meta{grid-area:meta !important;margin-top:2px !important}
  .ba-points{display:grid !important;grid-template-columns:1fr 1fr !important;gap:16px 40px !important;margin:6px 0 0 !important}
}

/* ── мобильная лента USP: точки и подсказка отключены (28.10.2026) ── */
@media (max-width:767px){
  .trio{padding-right:0 !important;scroll-padding-right:0 !important;position:relative}
  .trio-dots,.trio-hint{display:none !important}
  .trio-dots button{width:7px;height:7px;padding:0;border:0;border-radius:50%;background:rgba(167,139,250,.35);cursor:pointer;transition:background .2s,transform .2s}
  .trio-dots button.on{background:#F4E4A1;transform:scale(1.25)}
  .trio-hint{text-align:center;margin-top:8px;font-size:12px;color:rgba(244,228,161,.65)}
}
@media (min-width:768px){.trio-dots,.trio-hint{display:none}}

/* ── шапка: не даём меню наезжать на логотип на широких экранах (30.10.2026) ── */
@media (max-width:1500px){
  .km-nav{gap:20px}
  .km-nav a{font-size:13.5px}
  .km-header .km-logo-word{height:26px}
}
@media (max-width:1250px){
  .km-nav{gap:14px}
  .km-nav a{font-size:12.5px}
  .km-header .km-logo-word{height:23px}
  .km-header .km-btn{font-size:12.5px;padding:12px 18px}
}
/* ── карточки услуг: убираем служебную подпись «Details» от <details> без summary ── */
@media (min-width:761px){
  .card>.acc>summary{display:none!important}
}
.card>.acc>summary.acc-ph{display:none!important}
/* реальные примеры вместо заглушек в карточках услуг (30.10.2026) */
.card .visual img{width:100%;height:100%;object-fit:cover;display:block}
.card .visual{overflow:hidden}
.card .visual video{width:100%;height:100%;object-fit:cover;display:block}
