/* ===== Шрифты ===== */
@font-face { font-family: 'Forum'; src: url('/fonts/forum-cyrillic-400-normal.woff2') format('woff2'); font-weight: 400; font-display: swap; unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Forum'; src: url('/fonts/forum-latin-400-normal.woff2') format('woff2'); font-weight: 400; font-display: swap; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Lato'; src: url('/fonts/lato-light.woff2') format('woff2'); font-weight: 300; font-display: swap; }
@font-face { font-family: 'Lato'; src: url('/fonts/lato-normal.woff2') format('woff2'); font-weight: 400; font-display: swap; }
@font-face { font-family: 'Lato'; src: url('/fonts/lato-medium.woff2') format('woff2'); font-weight: 500; font-display: swap; }
@font-face { font-family: 'Lato'; src: url('/fonts/lato-bold.woff2') format('woff2'); font-weight: 700; font-display: swap; }
@font-face { font-family: 'Lato'; src: url('/fonts/lato-black.woff2') format('woff2'); font-weight: 900; font-display: swap; }

/* ===== Основа ===== */
:root {
  --orange: #f39423;
  --orange-dark: #e07f0e;
  --green: #5eb240;
  --green-dark: #4c9a31;
  --text: #212121;
  --muted: rgba(33, 33, 33, .6);
  --soft: rgba(33, 33, 33, .5);
  --line: #e8e8e8;
  --bg: #f6f6f6;
  --card: #fff;
  --radius: 20px;
  --radius-lg: 30px;
  --shadow: 0 10px 40px rgba(0, 0, 0, .06);
  --container: 1300px;
  --head: 'Forum', 'Times New Roman', serif;
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body { margin: 0; overflow-wrap: break-word; font-family: 'Lato', Arial, sans-serif; font-size: 18px; line-height: 1.5; color: var(--text); background: #fff; overflow-x: hidden; }
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
h1, h2, h3, .h2, .h3 { font-family: var(--head); font-weight: 400; margin: 0; overflow-wrap: break-word; hyphens: auto; -webkit-hyphens: auto; }
.pcard__title, .wcard__title, .cat__title, .service__title, .person__name, .gcard__title, .fcard__title, .modal__title, .visit__title, .block-title, .review__name, .step span { hyphens: auto; -webkit-hyphens: auto; }
.cards > *, .cats > *, .services > *, .slider__track > *, .review__head > div, .cat__body > div, .custom__info, .fcard { min-width: 0; }
h1 { font-size: 64px; line-height: 1; text-transform: uppercase; letter-spacing: .01em; }
h2, .h2 { font-size: 50px; line-height: 1.15; text-transform: uppercase; letter-spacing: .01em; }
h3, .h3 { font-size: 28px; line-height: 1.15; }
p { margin: 0 0 1em; }
p:last-child { margin-bottom: 0; }
.ico { width: 1em; height: 1em; flex: none; }
.container { width: 100%; max-width: var(--container); margin: 0 auto; padding: 0 20px; }
.section { padding: 100px 0; position: relative; }
.section--grey { background: var(--bg); }
.section--rings { background-color: var(--bg); background-image: url('/img/rings.svg'); background-repeat: no-repeat; background-position: 105% 0; background-size: 900px; }
.section__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 40px; margin-bottom: 50px; }
.section__head p { max-width: 420px; color: var(--muted); font-size: 18px; }
.accent { color: var(--orange); }
.muted { color: var(--muted); }
.hidden { display: none !important; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

/* ===== Кнопки ===== */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 64px; padding: 0 40px; border: 0; border-radius: 150px; background: var(--orange); color: #fff; font-size: 18px; font-weight: 500; text-align: center; line-height: 1.2; transition: background-color .25s ease, color .25s ease, border-color .25s ease, transform .25s cubic-bezier(.2, .7, .2, 1), box-shadow .25s ease; box-shadow: 0 10px 25px rgba(243, 148, 35, .25); }
.btn:hover { background: var(--orange-dark); transform: translateY(-3px); box-shadow: 0 16px 34px rgba(243, 148, 35, .42); }
.btn:active { transform: translateY(0) scale(.97); box-shadow: 0 6px 14px rgba(243, 148, 35, .3); transition-duration: .08s; }
.btn:focus-visible { outline: 3px solid rgba(243, 148, 35, .45); outline-offset: 3px; }
.btn__arrow { width: 18px; height: 18px; transition: transform .25s cubic-bezier(.2, .7, .2, 1); }
.btn:hover .btn__arrow { transform: translateX(5px); }
.btn--green { background: var(--green); box-shadow: 0 10px 25px rgba(94, 178, 64, .25); }
.btn--green:hover { background: var(--green-dark); box-shadow: 0 16px 34px rgba(94, 178, 64, .4); }
.btn--green:active { box-shadow: 0 6px 14px rgba(94, 178, 64, .3); }
.btn--outline { background: transparent; color: var(--text); border: 1px solid #d6d6d6; box-shadow: none; }
.btn--outline:hover { background: #fff; border-color: var(--orange); color: var(--orange); box-shadow: 0 12px 26px rgba(0, 0, 0, .08); }
.btn--outline:active { box-shadow: none; }
.btn--white { background: #fff; color: var(--text); box-shadow: var(--shadow); }
.btn--white:hover { background: #fff; color: var(--orange); box-shadow: 0 16px 34px rgba(0, 0, 0, .12); }
.btn--sm { min-height: 48px; padding: 0 26px; font-size: 16px; }
.btn--block { width: 100%; }
.link { color: var(--orange); border-bottom: 1px solid rgba(243, 148, 35, .4); transition: border-color .2s; }
.link:hover { border-color: var(--orange); }
.link-green { color: var(--green); font-size: 14px; border-bottom: 1px dashed var(--green); background: none; border-top: 0; border-left: 0; border-right: 0; padding: 0; }

/* ===== Шапка ===== */
.header { position: relative; z-index: 50; background: #fff; }
.header__top { display: flex; align-items: center; gap: 30px; padding: 18px 0; }
.logo { display: flex; align-items: center; gap: 12px; flex: none; }
.logo img { width: auto; height: 46px; max-width: 110px; object-fit: contain; }
.logo__name { display: block; font-size: 18px; font-weight: 500; line-height: 1.1; text-transform: uppercase; letter-spacing: .03em; }
.logo__tagline { display: block; font-size: 12px; color: var(--muted); line-height: 1.25; max-width: 190px; margin-top: 3px; }
.header__addr { display: flex; gap: 8px; font-size: 14px; line-height: 1.3; margin-left: auto; }
.header__addr .ico { color: var(--text); width: 18px; height: 18px; margin-top: 1px; }
.header__addr small { display: block; font-size: 12px; color: var(--muted); }
.header__fav { position: relative; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; }
.header__fav .ico { width: 24px; height: 24px; }
.header__fav:hover { color: var(--orange); }
.fav-count { position: absolute; top: 2px; right: 0; min-width: 18px; height: 18px; padding: 0 4px; border-radius: 9px; background: var(--orange); color: #fff; font-size: 11px; line-height: 18px; text-align: center; font-weight: 700; }
.fav-count:empty { display: none; }
.header__counter { display: flex; align-items: center; gap: 12px; }
.header__counter-ico { flex: none; display: grid; place-items: center; width: 46px; height: 46px; border-radius: 50%; background: rgba(94, 178, 64, .12); color: var(--green); transition: background .2s, color .2s; }
.header__counter-ico .ico { width: 24px; height: 24px; }
.header__counter-text { display: flex; flex-direction: column; line-height: 1.2; }
.header__counter-num { font-size: 13px; color: var(--muted); white-space: nowrap; }
.header__counter-num b { font-size: 18px; font-weight: 700; color: var(--green); }
.header__counter-link { font-size: 15px; font-weight: 500; border-bottom: 1px dashed rgba(33, 33, 33, .35); align-self: flex-start; transition: color .2s, border-color .2s; }
.header__counter:hover .header__counter-ico { background: var(--green); color: #fff; }
.header__counter:hover .header__counter-link { color: var(--orange); border-color: var(--orange); }
.messengers { display: flex; gap: 8px; }
.messenger { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; color: #fff; transition: transform .2s; }
.messenger:hover { transform: scale(1.08); }
.messenger .ico { width: 20px; height: 20px; }
.messenger--tg { background: #2aa3df; }
.messenger--wa { background: #25d366; }
.messenger--max { background: linear-gradient(135deg, #4a6cff, #9b4dff); }
.messenger--phone { background: var(--orange); }
.header__contacts { text-align: left; font-size: 14px; line-height: 1.3; }
.header__hours { display: flex; align-items: center; gap: 6px; font-size: 12px; color: var(--muted); }
.header__hours::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: var(--green); }
.header__phone { display: block; font-size: 17px; font-weight: 500; white-space: nowrap; }
.header__phone:hover { color: var(--orange); }
.header__phone small { font-size: 11px; color: var(--muted); font-weight: 400; margin-left: 4px; }
.header__burger { display: none; width: 44px; height: 44px; border: 0; border-radius: 50%; background: var(--bg); position: relative; }
.header__burger span, .header__burger::before, .header__burger::after { content: ''; position: absolute; left: 12px; right: 12px; height: 2px; background: var(--text); transition: .2s; }
.header__burger::before { top: 15px; } .header__burger span { top: 21px; } .header__burger::after { top: 27px; }

.nav { border-top: 1px solid var(--line); background: #fff; }
.nav.is-fixed { position: fixed; top: 0; left: 0; right: 0; z-index: 60; box-shadow: 0 4px 20px rgba(0, 0, 0, .06); animation: slideDown .25s; }
@keyframes slideDown { from { transform: translateY(-100%); } to { transform: none; } }
.nav__list { display: flex; justify-content: space-between; list-style: none; margin: 0; padding: 0; }
.nav__item { position: relative; }
.nav__link { display: flex; align-items: center; gap: 6px; padding: 18px 0; font-size: 16px; color: rgba(33, 33, 33, .8); transition: color .2s; background: none; border: 0; }
.nav__link:hover, .nav__link.is-active { color: var(--orange); }
.nav__link .ico { width: 14px; height: 14px; transform: rotate(90deg); }
.nav__drop { position: absolute; top: 100%; left: -30px; min-width: 330px; padding: 20px 30px; background: #fff; border-radius: 0 0 var(--radius) var(--radius); box-shadow: 0 20px 40px rgba(0, 0, 0, .08); opacity: 0; visibility: hidden; transform: translateY(8px); transition: .2s; list-style: none; margin: 0; }
.nav__item:hover .nav__drop, .nav__item:focus-within .nav__drop { opacity: 1; visibility: visible; transform: none; }
.nav__drop a { display: block; padding: 7px 0; font-size: 16px; }
.nav__drop a:hover { color: var(--orange); }
.nav__drop-title { font-size: 12px; text-transform: uppercase; letter-spacing: .08em; color: var(--soft); margin: 8px 0 4px; }

/* мобильное меню */
.mnav { position: fixed; inset: 0; z-index: 100; background: rgba(0, 0, 0, .4); opacity: 0; visibility: hidden; transition: .25s; }
.mnav.is-open { opacity: 1; visibility: visible; }
.mnav__panel { position: absolute; top: 0; right: 0; bottom: 0; width: min(380px, 90vw); background: #fff; padding: 24px; overflow-y: auto; transform: translateX(100%); transition: transform .25s; }
.mnav.is-open .mnav__panel { transform: none; }
.mnav__close { position: absolute; top: 16px; right: 16px; width: 40px; height: 40px; border: 0; border-radius: 50%; background: var(--bg); display: grid; place-items: center; }
.mnav__list { list-style: none; margin: 40px 0 24px; padding: 0; }
.mnav__list a { display: block; padding: 10px 0; font-size: 18px; border-bottom: 1px solid var(--line); }
.mnav__list .sub a { font-size: 15px; padding: 7px 0 7px 14px; color: var(--muted); border: 0; }
.mnav__contacts { display: grid; gap: 12px; }

/* ===== Хлебные крошки ===== */
.crumbs { font-size: 14px; color: var(--muted); padding: 24px 0 0; }
.crumbs a:hover { color: var(--orange); }
.crumbs span + span::before { content: ' / '; }
.crumbs span:last-child { color: var(--text); }

/* ===== Первый экран ===== */
.hero { position: relative; min-height: 820px; display: flex; flex-direction: column; overflow: hidden; background: #eef4f8; }
.hero__bg { position: absolute; inset: 0; background-size: cover; background-position: right center; }
.hero__bg::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(255, 255, 255, .92) 0%, rgba(255, 255, 255, .78) 32%, rgba(255, 255, 255, 0) 62%); }
.hero .container { position: relative; z-index: 1; flex: 1; display: flex; flex-direction: column; }
.hero__body { margin: auto 0; padding: 60px 0; max-width: 720px; }
.hero h1 { margin-bottom: 40px; color: #1b1b1b; -webkit-text-stroke: .028em currentColor; letter-spacing: .02em; }
.hero__subtitle { font-size: 24px; line-height: 1.35; max-width: 600px; margin-bottom: 50px; }
.hero__cta { max-width: 720px; }
.hero__buttons { display: flex; flex-wrap: wrap; gap: 14px; }
.btn--lg { min-height: 66px; padding: 0 38px; font-size: 18px; }
.btn--glass { background: rgba(255, 255, 255, .92); color: var(--text); box-shadow: 0 10px 25px rgba(0, 0, 0, .08); backdrop-filter: blur(6px); }
.btn--glass:hover { background: #fff; color: var(--orange); box-shadow: 0 16px 34px rgba(0, 0, 0, .14); }
.btn--glass:active { box-shadow: 0 6px 14px rgba(0, 0, 0, .1); }
.hero__points { list-style: none; margin: 22px 0 0; padding: 0; display: grid; grid-template-columns: minmax(0, 1fr); width: fit-content; max-width: 100%; gap: 10px; }
.hero__points li { display: flex; align-items: center; gap: 10px; padding: 10px 18px 10px 10px; border-radius: 14px; background: rgba(255, 255, 255, .88); backdrop-filter: blur(6px); box-shadow: 0 6px 18px rgba(0, 0, 0, .06); font-size: 15px; font-weight: 500; line-height: 1.3; }
.hero__check { flex: none; display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--green); color: #fff; }
.hero__check .ico { width: 16px; height: 16px; }
.hero__stats { display: flex; align-self: flex-start; max-width: 100%; margin-bottom: 50px; padding: 6px; border-radius: 18px; background: rgba(255, 255, 255, .86); backdrop-filter: blur(8px); box-shadow: 0 10px 30px rgba(0, 0, 0, .07); }
.hero__stat { display: flex; align-items: center; gap: 12px; padding: 12px 22px 12px 14px; }
.hero__stat + .hero__stat { border-left: 1px solid rgba(33, 33, 33, .1); }
.hero__stat-ico { flex: none; display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: rgba(94, 178, 64, .14); color: var(--green); }
.hero__stat-ico .ico { width: 19px; height: 19px; }
.hero__stat-text { display: flex; flex-direction: column; line-height: 1.25; }
.hero__stat-text b { font-size: 16px; font-weight: 700; color: var(--text); }
.hero__stat-text span { font-size: 13px; color: var(--muted); }

.page-hero { background: var(--bg); padding-bottom: 60px; }
.page-hero h1 { font-size: 56px; margin: 30px 0 24px; }
.page-hero__text { max-width: 820px; color: rgba(33, 33, 33, .8); }

/* ===== Категории ===== */
.cats { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(280px, 100%), 1fr)); gap: 20px; }
.cat { position: relative; display: flex; flex-direction: column; background: #fff; border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow); transition: transform .25s, box-shadow .25s; }
.cat:hover { transform: translateY(-4px); box-shadow: 0 20px 50px rgba(0, 0, 0, .1); }
.cat__img { aspect-ratio: 16 / 10; object-fit: cover; width: 100%; }
.cat__body { padding: 20px 24px 24px; display: flex; align-items: center; gap: 16px; }
.cat__title { font-family: var(--head); font-size: 24px; line-height: 1.1; }
.cat__short { font-size: 14px; color: var(--muted); margin-top: 6px; }
.cat__arrow { margin-left: auto; flex: none; width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; background: var(--bg); color: var(--orange); transition: .2s; }
.cat:hover .cat__arrow { background: var(--orange); color: #fff; }
.tags-row { display: flex; flex-wrap: wrap; gap: 12px; }
.tag-link { padding: 16px 28px; background: #fff; border-radius: var(--radius); font-size: 17px; box-shadow: var(--shadow); transition: .2s; }
.tag-link:hover, .tag-link.is-active { background: var(--green); color: #fff; }

/* ===== Каталог ===== */
.catalog { display: grid; grid-template-columns: 290px minmax(0, 1fr); gap: 30px; align-items: start; }
.catalog__side { position: sticky; top: 80px; display: grid; gap: 16px; }
.kind-tabs { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 8px; }
.kind-tab { padding: 10px 6px; border: 0; border-radius: 150px; background: #e8e8e8; font-size: 15px; font-weight: 500; transition: .2s; }
.kind-tab.is-active { background: var(--green); color: #fff; }
.filters-toggle { display: none; }
.filter { background: #fff; border-radius: var(--radius); padding: 24px 24px 18px; }
.filter__title { font-size: 18px; margin-bottom: 14px; font-weight: 500; }
.check { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 5px 0; font-size: 14px; color: rgba(33, 33, 33, .8); cursor: pointer; user-select: none; }
.check input { appearance: none; width: 16px; height: 16px; border-radius: 4px; background: #e8e8e8; display: grid; place-items: center; margin: 0; transition: .15s; cursor: pointer; }
.check input:checked { background: var(--green); }
.check input:checked::after { content: ''; width: 8px; height: 4px; border-left: 2px solid #fff; border-bottom: 2px solid #fff; transform: rotate(-45deg) translate(1px, -1px); }
.filter__reset { border: 0; background: none; color: var(--orange); font-size: 14px; padding: 4px 0; text-align: left; }
.catalog__top { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 24px; }
.select { appearance: none; padding: 14px 48px 14px 22px; border-radius: 150px; border: 1px solid var(--line); background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23999' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat right 20px center; font-size: 15px; min-width: 260px; cursor: pointer; }
.catalog__found { font-size: 15px; color: var(--muted); }
.cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.cards--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.catalog__more { text-align: center; margin-top: 40px; }
.catalog__empty { background: #fff; border-radius: var(--radius); padding: 50px; text-align: center; grid-column: 1 / -1; }

.pcard { position: relative; display: flex; flex-direction: column; background: #fff; border-radius: var(--radius); overflow: hidden; transition: box-shadow .25s, transform .25s; }
.pcard:hover { box-shadow: 0 20px 50px rgba(0, 0, 0, .1); }
.pcard__img { position: relative; display: block; aspect-ratio: 4 / 2.4; background: var(--bg); overflow: hidden; }
.pcard__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.pcard:hover .pcard__img img { transform: scale(1.04); }
.pcard__fav { position: absolute; top: 12px; right: 12px; z-index: 2; width: 36px; height: 36px; border: 0; border-radius: 50%; background: #fff; display: grid; place-items: center; color: var(--text); transition: .2s; }
.pcard__fav .ico { width: 20px; height: 20px; }
.pcard__fav.is-active { color: var(--orange); }
.pcard__fav.is-active path { fill: currentColor; }
.pcard__badge { position: absolute; top: 12px; left: 12px; z-index: 2; background: var(--orange); color: #fff; font-size: 12px; font-weight: 700; padding: 4px 12px; border-radius: 20px; text-transform: uppercase; letter-spacing: .04em; }
.pcard__body { padding: 24px 24px 20px; display: flex; flex-direction: column; flex: 1; }
.pcard__title { font-family: var(--head); font-size: 26px; line-height: 1.1; margin-bottom: 12px; }
.pcard__title a:hover { color: var(--orange); }
.chips { display: flex; flex-wrap: wrap; gap: 4px; margin-bottom: 16px; }
.chip { background: var(--green); color: #fff; font-size: 13px; line-height: 1; padding: 4px 8px 5px; border-radius: 10px; }
.chip--grey { background: var(--bg); color: var(--text); }
.props { display: grid; gap: 4px; font-size: 15px; margin-bottom: 20px; }
.props div { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 10px; }
.props dt, .props span:first-child { color: var(--muted); }
.props b { font-weight: 500; }
.pcard__actions { margin-top: auto; display: grid; gap: 8px; text-align: center; }
.pcard__actions .btn { min-height: 56px; padding: 0 20px; }
.pcard__sub { border: 0; background: none; font-size: 14px; color: var(--muted); padding: 6px; }
.pcard__sub:hover { color: var(--orange); }

/* Приглашение на производство (внутри каталога) */
.visit { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 30px; align-items: center; background: #fff; border-radius: var(--radius); padding: 40px; overflow: hidden; position: relative; }
.visit::before { content: ''; position: absolute; right: -60px; top: -60px; width: 260px; height: 260px; border-radius: 50%; background: rgba(94, 178, 64, .08); }
.visit > * { position: relative; z-index: 1; }
.visit__title { font-family: var(--head); font-size: 36px; line-height: 1.1; text-transform: uppercase; margin-bottom: 20px; }
.visit__list { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.visit__list li { display: flex; gap: 10px; font-size: 16px; }
.visit__list .ico { color: var(--green); width: 22px; height: 22px; }
.visit__addr { margin-top: 18px; font-size: 15px; color: var(--muted); display: flex; gap: 6px; align-items: center; }
.visit__addr .ico { color: var(--orange); }

/* ===== Формы ===== */
.form { display: grid; gap: 14px; }
.form__row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 14px; }
.input { width: 100%; height: 64px; padding: 0 28px; border: 0; border-radius: 150px; background: #f0f0f0; font-size: 16px; outline: none; transition: box-shadow .2s, background .2s; }
.input:focus { background: #fff; box-shadow: 0 0 0 2px var(--orange); }
textarea.input { height: 110px; padding: 18px 28px; border-radius: 28px; resize: vertical; }
.input--white { background: #fff; }
.form__label { font-size: 14px; color: var(--soft); margin-bottom: -6px; }
.consent { display: flex; gap: 10px; align-items: flex-start; font-size: 12px; line-height: 1.4; color: var(--soft); cursor: pointer; }
.consent input { appearance: none; flex: none; width: 16px; height: 16px; border: 1.5px solid var(--orange); border-radius: 4px; margin: 1px 0 0; display: grid; place-items: center; cursor: pointer; }
.consent input:checked { background: var(--orange); }
.consent input:checked::after { content: ''; width: 7px; height: 4px; border-left: 2px solid #fff; border-bottom: 2px solid #fff; transform: rotate(-45deg) translate(1px, -1px); }
.consent a { color: var(--green); text-decoration: underline; }
.form__msg { font-size: 14px; color: #d33; min-height: 0; }
.form__msg:empty { display: none; }
.form__ok { text-align: center; padding: 30px 10px; }
.form__ok .ico { width: 56px; height: 56px; color: #fff; background: var(--green); border-radius: 50%; padding: 12px; margin: 0 auto 16px; }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }

.mchoice { display: flex; gap: 14px; flex-wrap: wrap; }
.mchoice label { cursor: pointer; display: grid; justify-items: center; gap: 6px; font-size: 11px; color: var(--soft); }
.mchoice input { position: absolute; opacity: 0; pointer-events: none; }
.mchoice .messenger { width: 46px; height: 46px; opacity: .55; transition: .2s; box-shadow: 0 0 0 0 transparent; }
.mchoice .messenger .ico { width: 24px; height: 24px; }
.mchoice input:checked + .messenger { opacity: 1; box-shadow: 0 0 0 3px #fff, 0 0 0 5px var(--orange); }
.mchoice input:focus-visible + .messenger { outline: 2px solid var(--orange); outline-offset: 4px; }

/* ===== Не нашли проект ===== */
.custom { position: relative; border-radius: var(--radius-lg); overflow: hidden; background: #f0ebe3; min-height: 640px; display: grid; grid-template-columns: minmax(0, 1fr) 440px; gap: 40px; padding: 60px; }
.custom__bg { position: absolute; inset: 0; background-size: cover; background-position: center; }
.custom__bg::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(255, 255, 255, .92) 0%, rgba(255, 255, 255, .6) 45%, rgba(255, 255, 255, .1) 100%); }
.custom__info { position: relative; display: flex; flex-direction: column; }
.custom__info h2 { margin-bottom: 30px; }
.custom__info > p { font-size: 20px; max-width: 460px; }
.custom__badges { display: flex; gap: 16px; margin-top: auto; padding-top: 30px; }
.gbadge { background: var(--green); color: #fff; border-radius: var(--radius); padding: 26px 28px; max-width: 280px; }
.gbadge b { display: block; font-family: var(--head); font-weight: 400; font-size: 24px; line-height: 1.15; margin-bottom: 8px; }
.gbadge span { font-size: 14px; opacity: .9; }
.fcard { position: relative; background: #fff; border-radius: var(--radius); padding: 40px; box-shadow: var(--shadow); align-self: center; }
.fcard__title { font-family: var(--head); font-size: 36px; line-height: 1.05; margin-bottom: 14px; }
.fcard__text { font-size: 15px; color: rgba(33, 33, 33, .8); margin-bottom: 20px; }

/* ===== Услуги ===== */
.services { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(220px, 100%), 1fr)); gap: 20px; }
.service { display: flex; flex-direction: column; gap: 14px; background: #fff; border-radius: var(--radius); padding: 30px; box-shadow: var(--shadow); transition: transform .25s, box-shadow .25s; }
.service:hover { transform: translateY(-4px); box-shadow: 0 20px 50px rgba(0, 0, 0, .1); }
.service__ico { width: 64px; height: 64px; border-radius: 50%; background: rgba(243, 148, 35, .12); color: var(--orange); display: grid; place-items: center; }
.service__ico .ico { width: 30px; height: 30px; }
.service__title { font-family: var(--head); font-size: 24px; line-height: 1.1; }
.service__text { font-size: 15px; color: var(--muted); }
.service__price { margin-top: auto; font-weight: 700; font-size: 16px; }
.service__price small { font-weight: 400; color: var(--muted); }

/* ===== Слайдер (горизонтальная прокрутка) ===== */
.slider { position: relative; }
.slider__track { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 72px) / 4); gap: 24px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding: 4px 2px 20px; }
.slider__track::-webkit-scrollbar { display: none; }
.slider__track > * { scroll-snap-align: start; }
.slider--3 .slider__track { grid-auto-columns: calc((100% - 48px) / 3); }
.slider__btn { position: absolute; top: 40%; z-index: 3; width: 44px; height: 44px; border: 0; border-radius: 12px; background: var(--orange); color: #fff; display: grid; place-items: center; box-shadow: 0 6px 18px rgba(243, 148, 35, .35); transition: .2s; }
.slider__btn:hover { background: var(--orange-dark); }
.slider__btn--prev { left: -22px; } .slider__btn--prev .ico { transform: rotate(180deg); }
.slider__btn--next { right: -22px; }
.slider__btn[disabled] { opacity: 0; pointer-events: none; }
.section__foot { display: flex; justify-content: flex-end; gap: 20px; align-items: center; margin-top: 24px; flex-wrap: wrap; }

/* ===== Отзывы ===== */
.review { display: flex; flex-direction: column; background: #fff; border-radius: var(--radius); padding: 28px; box-shadow: var(--shadow); height: 100%; }
.review__head { display: flex; align-items: center; gap: 14px; margin-bottom: 16px; }
.review__avatar { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; background: var(--bg); flex: none; display: grid; place-items: center; font-family: var(--head); font-size: 24px; color: var(--orange); }
.review__name { font-weight: 700; font-size: 17px; line-height: 1.2; }
.review__meta { font-size: 13px; color: var(--muted); }
.stars { display: flex; gap: 2px; color: var(--orange); margin-bottom: 12px; }
.stars .ico { width: 18px; height: 18px; }
.stars .is-off { color: #e2e2e2; }
.review__text { font-size: 15px; line-height: 1.55; color: rgba(33, 33, 33, .85); }
.review__text.is-clamped { display: -webkit-box; -webkit-line-clamp: 7; -webkit-box-orient: vertical; overflow: hidden; }
.review__more { border: 0; background: none; color: var(--orange); font-size: 14px; padding: 8px 0 0; text-align: left; }
.review__object { margin-top: auto; padding-top: 16px; font-size: 13px; color: var(--muted); }
.review__object b { color: var(--text); font-weight: 500; }
.video-thumb { position: relative; display: block; aspect-ratio: 16 / 10; border-radius: 14px; overflow: hidden; background: #222; margin-bottom: 16px; }
.video-thumb img { width: 100%; height: 100%; object-fit: cover; opacity: .85; }
.play { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 64px; height: 64px; border-radius: 50%; background: var(--orange); color: #fff; display: grid; place-items: center; box-shadow: 0 0 0 10px rgba(243, 148, 35, .3); border: 0; }
.play .ico { width: 26px; height: 26px; margin-left: 4px; }
.reviews-empty { background: #fff; border-radius: var(--radius); padding: 40px; display: flex; align-items: center; justify-content: space-between; gap: 30px; flex-wrap: wrap; }

/* ===== Примеры работ ===== */
.works-head { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 40px; align-items: start; margin-bottom: 50px; }
.gbox { background: var(--green); color: #fff; border-radius: var(--radius); padding: 30px 34px; }
.gbox ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 14px; }
.gbox li { position: relative; padding-left: 20px; font-size: 15px; line-height: 1.35; }
.gbox li::before { content: ''; position: absolute; left: 0; top: 7px; width: 7px; height: 7px; border-radius: 50%; background: #fff; }
.gbox__title { font-size: 20px; font-weight: 700; margin-bottom: 16px; }
.wcard { display: flex; flex-direction: column; height: 100%; }
.wcard__img { position: relative; display: block; aspect-ratio: 1 / 1; border-radius: var(--radius); overflow: hidden; background: var(--bg); margin-bottom: 20px; }
.wcard__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.wcard:hover .wcard__img img { transform: scale(1.05); }
.wcard__count { position: absolute; bottom: 12px; right: 12px; background: rgba(0, 0, 0, .55); color: #fff; font-size: 13px; padding: 3px 10px; border-radius: 20px; }
.wcard__title { font-family: var(--head); font-size: 26px; line-height: 1.1; margin-bottom: 14px; padding: 0 6px; }
.wcard .props { padding: 0 6px; font-size: 14px; }
.wcard__actions { margin-top: auto; display: grid; gap: 10px; }
.wcard__actions .btn { min-height: 54px; padding: 0 16px; font-size: 16px; }

/* ===== Гарантия ===== */
.guarantee { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 60px; align-items: center; }
.guarantee__media { position: relative; }
.guarantee__media img { width: 100%; aspect-ratio: 1 / 1.05; object-fit: cover; border-radius: var(--radius-lg); }
.guarantee__badge { position: absolute; left: -30px; bottom: 60px; max-width: 340px; background: var(--green); color: #fff; border-radius: var(--radius); padding: 26px 30px; font-size: 20px; line-height: 1.3; box-shadow: 0 20px 40px rgba(94, 178, 64, .3); }
.guarantee h2 { margin-bottom: 30px; }
.guarantee__lead { font-size: 22px; font-weight: 500; margin-bottom: 20px; }
.guarantee__text { font-size: 16px; color: var(--muted); margin-bottom: 40px; max-width: 520px; }

/* ===== Команда ===== */
.team-top { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 24px; margin-bottom: 30px; }
.gcard { background: var(--bg); border-radius: var(--radius-lg); padding: 44px; }
.gcard__title { font-family: var(--head); font-size: 34px; line-height: 1.1; margin-bottom: 26px; }
.dots { list-style: none; margin: 0; padding: 0; columns: 2; column-gap: 30px; }
.dots li { position: relative; padding-left: 18px; margin-bottom: 12px; font-size: 16px; break-inside: avoid; }
.dots li::before { content: ''; position: absolute; left: 0; top: 9px; width: 6px; height: 6px; border-radius: 50%; background: var(--orange); }
.quote { display: grid; grid-template-columns: 160px minmax(0, 1fr); gap: 24px; align-items: center; }
.quote__person { text-align: left; }
.quote__photo { width: 96px; height: 96px; border-radius: 50%; object-fit: cover; margin-bottom: 12px; background: #fff; display: grid; place-items: center; color: var(--orange); font-family: var(--head); font-size: 40px; }
.quote__name { font-weight: 700; }
.quote__role { font-size: 13px; color: var(--muted); }
.quote__bubble { position: relative; background: #fff; border-radius: var(--radius); padding: 26px 28px; font-size: 15px; line-height: 1.55; box-shadow: var(--shadow); }
.quote__bubble::before { content: ''; position: absolute; left: -10px; top: 40px; border: 10px solid transparent; border-left: 0; border-right-color: #fff; }
.person { display: block; }
.person__photo { aspect-ratio: 3 / 4; border-radius: var(--radius); overflow: hidden; background: #dcd3c4; margin-bottom: 14px; }
.person__photo { display: grid; place-items: center; }
.person__initial { font-family: var(--head); font-size: 72px; color: rgba(255, 255, 255, .85); }
.person__photo img { width: 100%; height: 100%; object-fit: cover; }
.person__name { font-family: var(--head); font-size: 24px; line-height: 1.1; }
.person__role { font-size: 14px; color: var(--muted); margin-top: 4px; }

/* ===== Отчёты ===== */
.report { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); gap: 50px; align-items: center; }
.report h2 { margin-bottom: 20px; }
.report__text { font-size: 20px; margin-bottom: 30px; }
.steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; counter-reset: step; }
.step { position: relative; background: var(--bg); border-radius: var(--radius); padding: 24px 22px; min-height: 140px; display: flex; flex-direction: column; justify-content: space-between; counter-increment: step; overflow: hidden; }
.step::before { content: counter(step, decimal-leading-zero); font-family: var(--head); font-size: 40px; color: var(--orange); line-height: 1; }
.step span { font-size: 16px; font-weight: 500; }
.step:nth-child(3n + 2) { background: var(--green); color: #fff; }
.step:nth-child(3n + 2)::before { color: #fff; }
.report__btns { display: flex; gap: 12px; flex-wrap: wrap; }
.mbtn { display: inline-flex; align-items: center; gap: 10px; padding: 12px 22px 12px 12px; border-radius: 150px; color: #fff; font-weight: 500; font-size: 15px; transition: transform .2s; }
.mbtn:hover { transform: translateY(-2px); }
.mbtn .messenger { width: 34px; height: 34px; background: rgba(255, 255, 255, .2); }
.mbtn--tg { background: #2aa3df; } .mbtn--wa { background: #25d366; } .mbtn--max { background: linear-gradient(135deg, #4a6cff, #9b4dff); }

/* ===== Производство ===== */
.production { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr); gap: 40px; align-items: center; }
.production h2 { font-size: 44px; margin-bottom: 40px; }
.production__text { font-size: 15px; color: rgba(33, 33, 33, .8); }
.production__img img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; border-radius: var(--radius-lg); }
.production__lead { font-size: 20px; font-weight: 500; margin-bottom: 24px; }
.production__addr { display: flex; gap: 12px; align-items: center; margin-top: 24px; font-size: 15px; }
.production__addr .ico { width: 44px; height: 44px; padding: 11px; border-radius: 50%; background: #fff; color: var(--orange); }

/* ===== FAQ ===== */
.faq-head { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 40px; margin-bottom: 50px; align-items: start; }
.faq-head p { font-size: 18px; font-weight: 500; }
.faq { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; align-items: start; }
.faq__col { display: grid; gap: 16px; }
.faq__item { border: 1px solid var(--line); border-radius: var(--radius); background: #fff; transition: box-shadow .2s, border-color .2s; }
.faq__item[open] { border-color: transparent; box-shadow: var(--shadow); }
.faq__q { list-style: none; cursor: pointer; padding: 26px 70px 26px 30px; position: relative; font-size: 17px; line-height: 1.4; }
.faq__q::-webkit-details-marker { display: none; }
.faq__q::after { content: '+'; position: absolute; right: 24px; top: 50%; transform: translateY(-50%); width: 32px; height: 32px; border-radius: 50%; background: var(--bg); color: var(--orange); display: grid; place-items: center; font-size: 22px; line-height: 1; transition: .2s; }
.faq__item[open] .faq__q::after { content: '−'; background: var(--orange); color: #fff; }
.faq__a { padding: 0 30px 26px; font-size: 16px; color: rgba(33, 33, 33, .75); }

/* ===== Контакты с картой ===== */
.contact-head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 40px; margin-bottom: 40px; }
.contact-head h2 { margin-bottom: 30px; }
.contact-head__lead { font-size: 20px; font-weight: 500; max-width: 480px; }
.contact-head__aside { font-size: 18px; color: rgba(33, 33, 33, .8); max-width: 360px; justify-self: end; }
.mapbox { position: relative; border-radius: var(--radius-lg); overflow: hidden; background: #e9e6df; min-height: 600px; }
.mapbox iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.mapbox__addr { position: absolute; left: 30px; bottom: 30px; z-index: 2; background: var(--green); color: #fff; border-radius: var(--radius); padding: 26px 30px; max-width: 300px; }
.mapbox__addr b { display: block; font-family: var(--head); font-weight: 400; font-size: 28px; margin-bottom: 8px; }
.mapbox__addr span { font-size: 15px; }
.mapbox .fcard { position: absolute; right: 30px; top: 30px; bottom: 30px; width: 400px; z-index: 2; display: flex; flex-direction: column; justify-content: center; }

/* ===== Страница проекта ===== */
.pj-top { display: flex; align-items: center; justify-content: space-between; gap: 30px; background: #fff; border-radius: var(--radius); padding: 30px 36px; margin-bottom: 30px; box-shadow: var(--shadow); flex-wrap: wrap; }
.pj-price small { display: block; font-size: 13px; color: var(--muted); }
.pj-price b { font-size: 34px; font-weight: 500; line-height: 1.2; }
.pj-top__btns { display: flex; gap: 12px; flex-wrap: wrap; }
.gallery { display: grid; grid-template-columns: minmax(0, 1fr) 260px; gap: 16px; }
.gallery__main { position: relative; border-radius: var(--radius); overflow: hidden; aspect-ratio: 16 / 10; background: #ddd; }
.gallery__main img { width: 100%; height: 100%; object-fit: cover; cursor: zoom-in; }
.gallery__thumbs { display: grid; gap: 12px; align-content: start; max-height: 100%; overflow-y: auto; scrollbar-width: thin; }
.gallery__thumb { border: 0; padding: 0; border-radius: 14px; overflow: hidden; aspect-ratio: 16 / 10; opacity: .7; transition: .2s; background: #ddd; }
.gallery__thumb.is-active, .gallery__thumb:hover { opacity: 1; box-shadow: 0 0 0 3px var(--orange); }
.gallery__thumb img { width: 100%; height: 100%; object-fit: cover; }
.gallery__nav { position: absolute; top: 50%; transform: translateY(-50%); }
.gallery .slider__btn--prev { left: 20px; } .gallery .slider__btn--next { right: 20px; }
.pj-grid { display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: 40px; align-items: start; }
.pj-specs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 30px 0; }
.pj-spec { background: var(--bg); border-radius: var(--radius); padding: 22px 24px; }
.pj-spec b { display: block; font-family: var(--head); font-size: 30px; font-weight: 400; line-height: 1.1; }
.pj-spec span { font-size: 12px; text-transform: uppercase; letter-spacing: .08em; color: var(--muted); }
.text { font-size: 17px; line-height: 1.65; color: rgba(33, 33, 33, .85); }
.text p { margin-bottom: 1em; }
.plans { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(280px, 100%), 1fr)); gap: 20px; }
.plans img { width: 100%; border-radius: var(--radius); background: #fff; border: 1px solid var(--line); cursor: zoom-in; }
.table-scroll { overflow-x: auto; border-radius: var(--radius); box-shadow: var(--shadow); }
.table-scroll .ctable { box-shadow: none; }
.ctable { width: 100%; border-collapse: separate; border-spacing: 0; background: #fff; border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow); }
.ctable th, .ctable td { text-align: left; padding: 20px 24px; border-bottom: 1px solid var(--line); vertical-align: top; }
.ctable th { font-size: 13px; font-weight: 500; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); background: #fafafa; }
.ctable tr:last-child td { border-bottom: 0; }
.ctable td:last-child { white-space: nowrap; font-weight: 700; }
.ctable small { display: block; color: var(--muted); font-size: 14px; font-weight: 400; margin-top: 4px; }
.side-card { position: sticky; top: 80px; background: var(--bg); border-radius: var(--radius); padding: 32px; }
.side-card .props { font-size: 15px; }
.side-card .props div { padding: 10px 0; border-bottom: 1px solid #e4e4e4; margin: 0; }
.block-title { font-family: var(--head); font-size: 36px; line-height: 1.1; margin: 0 0 24px; }

/* ===== Страница объекта ===== */
.wlist { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.wlist li { display: flex; gap: 10px; align-items: flex-start; font-size: 16px; }
.wlist .ico { color: var(--green); width: 22px; height: 22px; }
.video-frame { position: relative; aspect-ratio: 16 / 9; border-radius: var(--radius); overflow: hidden; background: #000; }
.video-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.photo-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(260px, 100%), 1fr)); gap: 16px; }
.photo-grid a { display: block; aspect-ratio: 4 / 3; border-radius: var(--radius); overflow: hidden; background: var(--bg); }
.photo-grid img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.photo-grid a:hover img { transform: scale(1.04); }

/* ===== Контакты (страница) ===== */
.contacts-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr)); gap: 20px; margin-bottom: 40px; }
.ccard { background: #fff; border-radius: var(--radius); padding: 30px; box-shadow: var(--shadow); }
.ccard__label { font-size: 13px; text-transform: uppercase; letter-spacing: .08em; color: var(--muted); margin-bottom: 10px; }
.ccard__value { font-size: 22px; font-weight: 500; line-height: 1.3; }
.ccard__value a:hover { color: var(--orange); }
.ccard__note { font-size: 14px; color: var(--muted); margin-top: 6px; }
.ccard .messengers { margin-top: 14px; }

/* ===== Подвал ===== */
.footer { background: var(--bg); padding: 70px 0 30px; font-size: 14px; }
.footer__grid { display: grid; grid-template-columns: 260px minmax(0, 1fr) 260px; gap: 40px; }
.footer .logo { margin-bottom: 14px; }
.footer__about { color: var(--muted); font-size: 13px; }
.footer__cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px; }
.footer__cols ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 9px; }
.footer__cols a:hover { color: var(--orange); }
.footer__title { font-weight: 700; margin-bottom: 14px; font-size: 15px; }
.footer__contacts { display: grid; gap: 14px; align-content: start; }
.footer__contacts .header__phone { font-size: 20px; }
.footer__addr { display: flex; gap: 8px; }
.footer__addr .ico { color: var(--green); width: 18px; height: 18px; }
.footer__bottom { display: grid; grid-template-columns: 260px minmax(0, 1fr) auto; gap: 40px; margin-top: 50px; padding-top: 24px; border-top: 1px solid #e2e2e2; font-size: 12px; color: var(--soft); }
.footer__bottom a { color: var(--orange); }

/* ===== Плавающие кнопки, cookie ===== */
.float { position: fixed; right: 24px; bottom: 24px; z-index: 80; display: flex; flex-direction: column; gap: 12px; }
.float .messenger { width: 56px; height: 56px; box-shadow: 0 8px 20px rgba(0, 0, 0, .18); position: relative; }
.float .messenger .ico { width: 28px; height: 28px; }
.float .messenger::after { content: ''; position: absolute; inset: -6px; border-radius: 50%; border: 2px solid currentColor; opacity: 0; animation: pulse 2.6s infinite; color: inherit; }
.float .messenger--tg::after { border-color: #2aa3df; } .float .messenger--wa::after { border-color: #25d366; } .float .messenger--max::after { border-color: #7b5cff; }
.float .messenger:nth-child(2)::after { animation-delay: .8s; } .float .messenger:nth-child(3)::after { animation-delay: 1.6s; }
@keyframes pulse { 0% { transform: scale(.9); opacity: .7; } 70% { transform: scale(1.3); opacity: 0; } 100% { opacity: 0; } }
.float__toggle { display: none; }
.cookie { position: fixed; left: 24px; bottom: 24px; z-index: 81; width: 300px; background: #fff; border-radius: 14px; padding: 20px; box-shadow: 0 10px 40px rgba(0, 0, 0, .15); font-size: 13px; line-height: 1.5; }
.cookie .btn { min-height: 42px; width: 100%; margin-top: 14px; font-size: 15px; }

/* ===== Модальные окна ===== */
.modal { position: fixed; inset: 0; z-index: 200; display: grid; place-items: center; padding: 20px; background: rgba(20, 20, 20, .55); opacity: 0; visibility: hidden; transition: .25s; overflow-y: auto; }
.modal.is-open { opacity: 1; visibility: visible; }
.modal__box { position: relative; width: 100%; max-width: 520px; background: #fff; border-radius: var(--radius-lg); padding: 50px 44px 40px; transform: translateY(20px); transition: transform .25s; }
.modal.is-open .modal__box { transform: none; }
.modal__close { position: absolute; top: 18px; right: 18px; width: 40px; height: 40px; border: 0; border-radius: 50%; background: var(--bg); display: grid; place-items: center; }
.modal__close:hover { color: var(--orange); }
.modal__title { font-family: var(--head); font-size: 36px; line-height: 1.05; margin-bottom: 10px; }
.modal__text { font-size: 15px; color: var(--muted); margin-bottom: 24px; }
.modal__subject { display: inline-block; background: var(--bg); border-radius: 12px; padding: 6px 14px; font-size: 14px; margin-bottom: 18px; }
.rating-input { display: flex; flex-direction: row-reverse; justify-content: flex-end; gap: 4px; }
.rating-input input { position: absolute; opacity: 0; }
.rating-input label { cursor: pointer; color: #ddd; }
.rating-input label .ico { width: 30px; height: 30px; }
.rating-input input:checked ~ label, .rating-input label:hover, .rating-input label:hover ~ label { color: var(--orange); }

.lightbox { position: fixed; inset: 0; z-index: 300; background: rgba(0, 0, 0, .9); display: none; place-items: center; }
.lightbox.is-open { display: grid; }
.lightbox img { max-width: 92vw; max-height: 88vh; border-radius: 8px; }
.lightbox .modal__close { position: fixed; background: rgba(255, 255, 255, .15); color: #fff; }
.lightbox .slider__btn { position: fixed; top: 50%; }
.lightbox .slider__btn--prev { left: 20px; } .lightbox .slider__btn--next { right: 20px; }

/* ===== Адаптив ===== */
@media (max-width: 1360px) {
  .slider__btn--prev { left: 4px; } .slider__btn--next { right: 4px; }
  .guarantee__badge { left: 20px; }
}
@media (max-width: 1280px) {
  .header__counter { display: none; }
  .cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .slider__track { grid-auto-columns: calc((100% - 48px) / 3); }
  .production { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .production__info { grid-column: 1 / -1; }
}
@media (max-width: 1100px) {
  h1 { font-size: 48px; }
  h2, .h2 { font-size: 40px; }
  .section { padding: 80px 0; }
  .header__addr, .header .messengers { display: none; }
  .header__contacts { margin-left: auto; }
  .nav { display: none; }
  .header__burger { display: block; }
  .catalog { grid-template-columns: minmax(0, 1fr); }
  .catalog__side { position: static; grid-template-columns: repeat(auto-fit, minmax(min(200px, 100%), 1fr)); }
  .kind-tabs { grid-column: 1 / -1; }
  .custom { grid-template-columns: minmax(0, 1fr); padding: 40px; }
  .guarantee, .report, .pj-grid { grid-template-columns: minmax(0, 1fr); }
  .guarantee__badge { left: 20px; }
  .team-top { grid-template-columns: minmax(0, 1fr); }
  .works-head, .faq-head, .contact-head { grid-template-columns: minmax(0, 1fr); }
  .contact-head__aside { justify-self: start; }
  .mapbox { min-height: 0; display: flex; flex-direction: column; }
  .mapbox iframe { position: relative; height: 380px; }
  .mapbox__addr { position: static; max-width: none; border-radius: 0; }
  .mapbox .fcard { position: static; width: auto; border-radius: 0; box-shadow: none; }
  .footer__grid { grid-template-columns: minmax(0, 1fr); }
  .footer__bottom { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .side-card { position: static; }
  .float { right: 12px; bottom: 12px; gap: 10px; align-items: center; }
  .float .messenger { width: 46px; height: 46px; order: -1; transform: translateY(20px) scale(.6); opacity: 0; pointer-events: none; transition: transform .2s, opacity .2s; }
  .float .messenger::after { display: none; }
  .float.is-open .messenger { transform: none; opacity: 1; pointer-events: auto; }
  .float__toggle { display: grid; place-items: center; width: 52px; height: 52px; border: 0; border-radius: 50%; background: var(--orange); color: #fff; box-shadow: 0 8px 20px rgba(243, 148, 35, .4); position: relative; }
  .float__toggle .ico { width: 26px; height: 26px; transition: .2s; }
  .float__toggle .float__close { position: absolute; opacity: 0; transform: rotate(-90deg); width: 20px; height: 20px; }
  .float.is-open .float__toggle .ico:first-child { opacity: 0; transform: rotate(90deg); }
  .float.is-open .float__toggle .float__close { opacity: 1; transform: none; }
  .slider__btn--prev { left: 4px; } .slider__btn--next { right: 4px; }
}
@media (max-width: 760px) {
  body { font-size: 16px; }
  h1 { font-size: 34px; }
  h2, .h2 { font-size: 30px; }
  .section { padding: 60px 0; }
  .container { padding: 0 16px; }
  .section__head { flex-direction: column; align-items: flex-start; gap: 16px; margin-bottom: 30px; }
  .header__top { gap: 12px; padding: 12px 0; }
  .logo img { height: 36px; }
  .logo__name { font-size: 15px; }
  .logo__tagline { display: none; }
  .header__contacts { display: none; }
  .header__fav { margin-left: auto; }
  .hero { min-height: 0; }
  .hero__bg { background-position: 70% center; }
  .hero__bg::after { background: linear-gradient(180deg, rgba(255, 255, 255, .93) 0%, rgba(255, 255, 255, .8) 30%, rgba(255, 255, 255, .1) 58%, rgba(255, 255, 255, 0) 100%); }
  .hero__stats { margin-top: 140px; }
  .hero__body { padding: 30px 0 40px; }
  .hero h1 { margin-bottom: 20px; }
  .hero__subtitle { font-size: 18px; margin-bottom: 30px; }
  .hero__buttons { flex-direction: column; gap: 10px; }
  .hero__buttons .btn { width: 100%; min-height: 58px; }
  .hero__points { width: 100%; gap: 8px; margin-top: 16px; }
  .hero__points li { font-size: 14px; padding: 9px 14px 9px 9px; }
  .hero h1 { -webkit-text-stroke: .022em currentColor; }
  .hero__stats { flex-direction: column; align-self: stretch; margin-bottom: 30px; padding: 4px 6px; }
  .hero__stat { padding: 11px 10px; }
  .hero__stat + .hero__stat { border-left: 0; border-top: 1px solid rgba(33, 33, 33, .08); }
  .page-hero h1 { font-size: 32px; }
  .cards, .cards--4 { grid-template-columns: repeat(auto-fill, minmax(min(260px, 100%), 1fr)); }
  .catalog__side { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .filters-toggle { display: flex; justify-content: center; gap: 6px; padding: 14px; border: 0; border-radius: 150px; background: #fff; font-weight: 500; font-size: 16px; }
  .filters-toggle span:not(:empty) { background: var(--orange); color: #fff; border-radius: 10px; padding: 0 8px; font-size: 13px; }
  .catalog__side:not(.is-open) .filter { display: none; }
  .catalog__top { flex-direction: column; align-items: stretch; }
  .select { min-width: 0; width: 100%; }
  .visit { grid-template-columns: minmax(0, 1fr); padding: 28px 22px; }
  .visit__title { font-size: 26px; }
  .form__row { grid-template-columns: minmax(0, 1fr); }
  .input { height: 56px; padding: 0 22px; }
  .custom { padding: 24px 16px; border-radius: var(--radius); }
  .custom__badges { flex-direction: column; }
  .fcard { padding: 28px 22px; }
  .fcard__title, .modal__title { font-size: 28px; }
  .slider__track, .slider--3 .slider__track { grid-auto-columns: 82%; }
  .slider__btn { display: none; }
  .guarantee__badge { position: relative; left: 0; bottom: 0; margin-top: -40px; margin-left: 16px; margin-right: 16px; font-size: 17px; }
  .gcard { padding: 28px 22px; }
  .dots { columns: 1; }
  .quote { grid-template-columns: minmax(0, 1fr); }
  .quote__bubble::before { display: none; }
  .steps { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .production { grid-template-columns: minmax(0, 1fr); }
  .production h2 { font-size: 30px; }
  .faq { grid-template-columns: minmax(0, 1fr); }
  .faq__q { padding: 20px 60px 20px 20px; font-size: 16px; }
  .faq__a { padding: 0 20px 20px; }
  .gallery { grid-template-columns: minmax(0, 1fr); }
  .gallery__thumbs { grid-auto-flow: column; grid-auto-columns: 30%; overflow-x: auto; }
  .pj-specs { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .pj-top { padding: 22px; }
  .ctable th, .ctable td { padding: 14px; font-size: 14px; }
  .footer__cols { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .cookie { left: 14px; right: 80px; width: auto; bottom: 14px; }
  .modal__box { padding: 44px 22px 28px; }
  .mapbox__addr b { font-size: 22px; }
}
@media (max-width: 400px) {
  h1, .page-hero h1 { font-size: 28px; }
  h2, .h2 { font-size: 26px; }
  .cat__title, .pcard__title, .wcard__title, .service__title, .person__name { font-size: 21px; }
  .visit__title, .fcard__title, .modal__title { font-size: 24px; }
  .block-title { font-size: 28px; }
  .pj-price b { font-size: 28px; }
  .btn { padding: 0 24px; }
  .steps { grid-template-columns: minmax(0, 1fr); }
  .step { min-height: 0; flex-direction: row; align-items: center; gap: 16px; justify-content: flex-start; }
  .mapbox__addr { padding: 20px; }
  .footer__cols { grid-template-columns: minmax(0, 1fr); }
  .ctable th, .ctable td { padding: 12px 10px; font-size: 13px; }
}

/* ===== Анимации ===== */
@view-transition { navigation: auto; }
::view-transition-old(root), ::view-transition-new(root) { animation-duration: .25s; }

@keyframes fadeUp { from { opacity: 0; transform: translateY(26px); } to { opacity: 1; transform: none; } }
@keyframes fadeDown { from { opacity: 0; transform: translateY(-14px); } to { opacity: 1; transform: none; } }
@keyframes heroZoom { from { transform: scale(1.08); } to { transform: scale(1); } }
@keyframes popIn { from { opacity: 0; transform: translateY(18px) scale(.98); } to { opacity: 1; transform: none; } }
@keyframes shimmer { from { background-position: 100% 0; } to { background-position: -100% 0; } }

/* Загрузка страницы: шапка и первый экран */
.header__top, .nav { animation: fadeDown .6s ease-out both; }
.nav { animation-delay: .1s; }
.hero__bg { animation: heroZoom 1.8s cubic-bezier(.2, .6, .2, 1) both; transform-origin: 70% 50%; }
.hero h1 { animation: fadeUp .8s .15s cubic-bezier(.2, .7, .2, 1) both; }
.hero__subtitle { animation: fadeUp .8s .3s cubic-bezier(.2, .7, .2, 1) both; }
.hero__cta { animation: fadeUp .8s .45s cubic-bezier(.2, .7, .2, 1) both; }
.hero__stat { animation: fadeUp .7s cubic-bezier(.2, .7, .2, 1) both; }
.hero__stat:nth-child(1) { animation-delay: .6s; } .hero__stat:nth-child(2) { animation-delay: .7s; } .hero__stat:nth-child(3) { animation-delay: .8s; }
.page-hero h1, .page-hero .crumbs { animation: fadeUp .7s cubic-bezier(.2, .7, .2, 1) both; }
.page-hero h1 { animation-delay: .1s; }
.page-hero__text, .page-hero .tags-row, .pj-top { animation: fadeUp .7s .2s cubic-bezier(.2, .7, .2, 1) both; }

/* Появление при прокрутке (классы ставит main.js только для блоков ниже первого экрана) */
.reveal { opacity: 0; transform: translateY(30px); transition: opacity .7s cubic-bezier(.2, .7, .2, 1), transform .7s cubic-bezier(.2, .7, .2, 1); transition-delay: var(--d, 0s); }
.reveal.is-in { opacity: 1; transform: none; }
.anim-in { animation: popIn .5s cubic-bezier(.2, .7, .2, 1) both; animation-delay: var(--d, 0s); }

/* Подгрузка картинок: переливающаяся подложка и плавное появление */
.pcard__img, .wcard__img, .gallery__main, .gallery__thumb, .photo-grid a, .person__photo, .video-thumb { background: linear-gradient(90deg, #ececec 25%, #f7f7f7 50%, #ececec 75%); background-size: 200% 100%; animation: shimmer 1.4s linear infinite; }
.person__photo:has(.person__initial) { animation: none; background: #dcd3c4; }
img.img-fade { opacity: 0; transition: opacity .6s ease; }
img.img-fade.is-loaded { opacity: 1; }

/* Кнопки */

@media (prefers-reduced-motion: reduce) {
  @view-transition { navigation: none; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
  .reveal { opacity: 1; transform: none; }
  img.img-fade { opacity: 1; }
}
.img-done { animation: none !important; background: var(--bg) !important; }

/* ===== Продающие блоки ===== */
.link-btn { border: 0; background: none; padding: 0; color: var(--orange); font-weight: 500; font-size: inherit; cursor: pointer; }
.link-btn:hover { text-decoration: underline; }
.cat__price { margin-top: 8px; font-size: 15px; font-weight: 700; color: var(--green); }
.section__head-actions { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }

.checks { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.checks li { display: flex; gap: 10px; align-items: flex-start; font-size: 15px; line-height: 1.4; }
.checks .ico { flex: none; width: 20px; height: 20px; padding: 3px; border-radius: 50%; background: rgba(94, 178, 64, .14); color: var(--green); }
.checks--light li { color: #fff; font-size: 16px; }
.checks--light .ico { background: rgba(255, 255, 255, .2); color: #fff; }

/* Какой брус выбрать */
.materials { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.material { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; transition: box-shadow .25s, transform .25s, border-color .25s; }
.material:hover { transform: translateY(-4px); box-shadow: 0 20px 50px rgba(0, 0, 0, .1); border-color: transparent; }
.material--accent { border: 2px solid var(--orange); }
.material__img { position: relative; aspect-ratio: 16 / 9; overflow: hidden; background: var(--bg); }
.material__img img { width: 100%; height: 100%; object-fit: cover; }
.material__badge { position: absolute; left: 16px; top: 16px; background: var(--green); color: #fff; font-size: 13px; font-weight: 700; padding: 5px 12px; border-radius: 20px; }
.material--accent .material__badge { background: var(--orange); }
.material__body { display: flex; flex-direction: column; gap: 14px; padding: 26px 26px 24px; flex: 1; }
.material__title { font-size: 28px; line-height: 1.1; }
.material__text { font-size: 15px; color: rgba(33, 33, 33, .75); margin: 0; }
.material__foot { margin-top: auto; padding-top: 18px; border-top: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.material__price small { display: block; font-size: 12px; color: var(--muted); }
.material__price b { font-size: 20px; font-weight: 700; }
.materials__help { margin-top: 28px; display: flex; justify-content: center; align-items: center; gap: 10px 16px; flex-wrap: wrap; text-align: center; font-size: 16px; color: rgba(33, 33, 33, .75); }

/* Как мы работаем */
.wsteps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; counter-reset: none; }
.wstep { position: relative; background: #fff; border-radius: var(--radius); padding: 30px 28px 28px; box-shadow: var(--shadow); }
.wstep__num { display: inline-grid; place-items: center; width: 52px; height: 52px; border-radius: 50%; background: var(--orange); color: #fff; font-family: var(--head); font-size: 22px; margin-bottom: 18px; box-shadow: 0 8px 20px rgba(243, 148, 35, .3); }
.wstep:nth-child(even) .wstep__num { background: var(--green); box-shadow: 0 8px 20px rgba(94, 178, 64, .3); }
.wstep__title { font-family: var(--head); font-size: 24px; line-height: 1.15; margin-bottom: 8px; }
.wstep__text { font-size: 15px; color: rgba(33, 33, 33, .7); }
.wstep::after { content: ''; position: absolute; top: 56px; right: -24px; width: 24px; height: 2px; background: repeating-linear-gradient(90deg, var(--orange) 0 6px, transparent 6px 10px); }
.wstep:nth-child(3n)::after, .wstep:last-child::after { display: none; }
.wsteps__cta { margin-top: 36px; display: flex; align-items: center; gap: 20px; flex-wrap: wrap; justify-content: center; text-align: center; font-size: 15px; }

/* Спецпредложение */
.offer { position: relative; overflow: hidden; display: grid; grid-template-columns: minmax(0, 1fr) 440px; gap: 50px; align-items: center; padding: 60px; border-radius: var(--radius-lg); background: linear-gradient(120deg, #4c9a31 0%, #5eb240 55%, #7cc35f 100%); color: #fff; }
.offer::before { content: ''; position: absolute; right: -120px; top: -120px; width: 420px; height: 420px; border-radius: 50%; background: rgba(255, 255, 255, .08); }
.offer::after { content: ''; position: absolute; left: -80px; bottom: -160px; width: 360px; height: 360px; border-radius: 50%; background: rgba(255, 255, 255, .06); }
.offer > * { position: relative; z-index: 1; }
.offer__deadline { display: inline-flex; align-items: center; gap: 8px; background: var(--orange); color: #fff; padding: 7px 16px; border-radius: 20px; font-size: 14px; font-weight: 700; margin-bottom: 20px; }
.offer__title { font-family: var(--head); font-weight: 400; font-size: 46px; line-height: 1.1; text-transform: uppercase; margin-bottom: 20px; }
.offer__text { font-size: 18px; opacity: .92; margin-bottom: 26px; max-width: 560px; }
.offer__form { color: var(--text); }

/* Подпись под формой */
.form__note { display: flex; justify-content: center; align-items: center; gap: 6px; font-size: 13px; color: var(--muted); text-align: center; }
.form__note .ico { width: 15px; height: 15px; color: var(--green); }

/* Рейтинг */
.rating-badge { display: inline-flex; align-items: center; gap: 10px; background: #fff; border-radius: 14px; padding: 8px 16px 8px 8px; box-shadow: var(--shadow); line-height: 1.2; }
.rating-badge__logo { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 10px; background: #fc3f1d; color: #fff; font-weight: 900; font-size: 20px; }
.rating-badge__stars { display: flex; align-items: center; gap: 1px; color: #ffb800; }
.rating-badge__stars b { color: var(--text); font-size: 17px; margin-right: 4px; }
.rating-badge__stars .ico { width: 14px; height: 14px; }
.rating-badge__stars .is-off { color: #ddd; }
.rating-badge__text { font-size: 12px; color: var(--muted); }

/* SEO-текст */
.seo-text { padding-top: 60px; padding-bottom: 70px; border-top: 1px solid var(--line); }
.seo-text__title { font-size: 28px; margin-bottom: 18px; text-transform: none; }
.seo-text__body { columns: 2; column-gap: 50px; font-size: 14px; line-height: 1.7; color: rgba(33, 33, 33, .65); position: relative; }
.seo-text__body p { break-inside: avoid; }
.seo-text__more { display: none; }
.seo-text__body.is-clamped:not(.is-open)::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 60px; background: linear-gradient(transparent, #fff); }
.seo-text__body.is-open { max-height: none; }
.seo-text__more { margin-top: 10px; font-size: 14px; }

/* Полоса акции */
.promo { background: linear-gradient(90deg, var(--orange), #f7a94b); color: #fff; font-size: 15px; font-weight: 500; }
.promo__inner { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 40px; padding-top: 6px; padding-bottom: 6px; text-align: center; }
.promo__inner a, .promo__inner button { color: #fff; border: 0; background: none; font: inherit; cursor: pointer; padding: 0; }
.promo__inner a:hover, .promo__inner button:hover { text-decoration: underline; }
.promo .ico { flex: none; width: 16px; height: 16px; }

/* WhatsApp-кнопка, цена за м² */
.btn--wa { background: #25d366; box-shadow: 0 10px 25px rgba(37, 211, 102, .25); }
.btn--wa:hover { background: #1fb457; }
.btn--wa .ico { width: 20px; height: 20px; }
.pj-price__m2 { color: var(--green) !important; font-weight: 700; font-size: 14px !important; }

/* Панель быстрой связи на телефоне */
.mbar { display: none; }

@media (max-width: 1100px) {
  .materials { grid-template-columns: minmax(0, 1fr); max-width: 640px; margin: 0 auto; }
  .material { flex-direction: row; }
  .material__img { flex: 0 0 38%; aspect-ratio: auto; }
  .wsteps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .wstep::after { display: none; }
  .offer { grid-template-columns: minmax(0, 1fr); padding: 44px; }
  .offer__title { font-size: 38px; }
}
@media (max-width: 760px) {
  .material { flex-direction: column; }
  .material__img { aspect-ratio: 16 / 9; }
  .material__title { font-size: 24px; }
  .material__body { padding: 22px 20px; }
  .wsteps { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .wstep { display: grid; grid-template-columns: 52px minmax(0, 1fr); column-gap: 16px; padding: 20px; }
  .wstep__num { grid-row: span 2; margin: 0; width: 46px; height: 46px; font-size: 19px; }
  .wstep__title { font-size: 21px; }
  .offer { padding: 28px 18px; border-radius: var(--radius); }
  .offer__title { font-size: 28px; }
  .offer__text { font-size: 16px; }
  .seo-text__body { columns: auto; max-height: 190px; overflow: hidden; }
  .seo-text__body.is-open { max-height: none; }
  .seo-text__more { display: inline-block; }
  .seo-text__title { font-size: 22px; }
  .section__head-actions { width: 100%; justify-content: space-between; }
  .promo { font-size: 13px; }

  .mbar { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); position: fixed; left: 0; right: 0; bottom: 0; z-index: 90; background: #fff; box-shadow: 0 -6px 24px rgba(0, 0, 0, .1); padding: 8px 8px calc(8px + env(safe-area-inset-bottom)); gap: 8px; }
  .mbar__item { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; min-height: 52px; border: 0; border-radius: 14px; background: var(--bg); color: var(--text); font: inherit; font-size: 12px; font-weight: 700; cursor: pointer; }
  .mbar__item .ico { width: 22px; height: 22px; color: var(--orange); }
  .mbar__item--wa .ico { color: #25d366; }
  .mbar__item--cta { background: var(--orange); color: #fff; }
  .mbar__item--cta .ico { color: #fff; }
  body:has(.mbar) { padding-bottom: calc(72px + env(safe-area-inset-bottom)); }
  .float--with-bar { display: none; }
  body:has(.mbar) .cookie { bottom: calc(80px + env(safe-area-inset-bottom)); right: 14px; }
}

/* ===== Ошибки в формах ===== */
@keyframes shake { 0%, 100% { transform: none; } 20%, 60% { transform: translateX(-5px); } 40%, 80% { transform: translateX(5px); } }
.input.is-error { box-shadow: 0 0 0 2px #e5484d; background: #fff5f5; animation: shake .35s; }
.consent.is-error { color: #c62828; animation: shake .35s; }
.consent.is-error input { border-color: #e5484d; box-shadow: 0 0 0 3px rgba(229, 72, 77, .2); }
.form__msg { color: #c62828; font-size: 14px; font-weight: 500; }
.consent { padding: 4px 0; }
@media (max-width: 760px) {
  .consent { font-size: 13px; gap: 12px; }
  .consent input { width: 22px; height: 22px; }
  .consent input:checked::after { width: 10px; height: 5px; }
}

/* ===== Страница услуги ===== */
.sv-hero { display: flex; align-items: flex-end; gap: 24px; margin: 30px 0 24px; }
.sv-hero__main { max-width: 820px; }
.sv-hero__ico { display: grid; place-items: center; width: 64px; height: 64px; border-radius: 18px; background: rgba(243, 148, 35, .12); color: var(--orange); margin-bottom: 18px; }
.sv-hero__ico .ico { width: 32px; height: 32px; }
.sv-hero h1 { margin: 0 0 14px; }
.sv-hero__lead { font-size: 19px; color: rgba(33, 33, 33, .75); margin: 0; }
.sv-content > * + * { margin-top: 26px; }
.sv-content > .block-title { margin-top: 50px; margin-bottom: 0; }
.sv-content > .block-title + * { margin-top: 22px; }
.sv-cover { width: 100%; max-height: 520px; object-fit: cover; border-radius: var(--radius); cursor: zoom-in; }
.sv-includes { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 28px; }
.sv-includes li { font-size: 16px; }
.sv-note { font-size: 14px; margin-top: 12px !important; }
.sv-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.sv-steps .wstep::after { display: none; }
.service--img { padding-top: 0; overflow: hidden; }
.service__img { display: block; margin: 0 -30px 4px; aspect-ratio: 16 / 9; overflow: hidden; background: var(--bg); }
.service__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.service--img:hover .service__img img { transform: scale(1.05); }
@media (max-width: 760px) {
  .sv-hero { margin: 20px 0 18px; }
  .sv-hero__ico { width: 52px; height: 52px; margin-bottom: 14px; }
  .sv-hero__lead { font-size: 16px; }
  .sv-includes, .sv-steps { grid-template-columns: minmax(0, 1fr); }
  .sv-content > .block-title { margin-top: 38px; }
  .service__img { margin: 0 -30px 4px; }
}

/* ===== Картинки нельзя утащить мышью или сохранить через меню ===== */
img { -webkit-user-drag: none; user-select: none; -webkit-user-select: none; -webkit-touch-callout: none; }
