/* ==========================================================================
   Экскаватор 36 — Аренда спецтехники в Воронеже
   Палитра: оранжевый + тёмно-графитовый.
   ========================================================================== */

@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url('../fonts/manrope-cyrillic.woff2') format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url('../fonts/manrope-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root{
  --orange-50:  #fff4ea;
  --orange-100: #ffe3c7;
  --orange-400: #ff9a42;
  --orange-500: #d85a08;
  --orange-600: #c24e07;
  --orange-700: #a34206;
  --ink-900: #1c1b1f;
  --ink-800: #26252b;
  --ink-700: #3a3843;
  --ink-500: #4a4854;
  --ink-300: #6f6c78;
  --paper: #ffffff;
  --paper-soft: #fbf8f5;
  --line: #ece7e1;
  --ok: #1f8a4c;
  --err: #c42d2d;

  --shadow-sm: 0 1px 2px rgba(28,27,31,.06), 0 1px 1px rgba(28,27,31,.04);
  --shadow-md: 0 8px 24px rgba(28,27,31,.10);
  --shadow-lg: 0 20px 48px rgba(28,27,31,.16);
  --radius-sm: 8px;
  --radius-md: 14px;
  --radius-lg: 22px;
  --container: 1200px;
  --gutter: 24px;
  --header-h: 76px;
  --sticky-cta-offset: 88px;
}

*, *::before, *::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; scroll-padding-top: calc(var(--header-h) + 12px); }
body{
  margin:0;
  font-family:'Manrope', -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;
  font-size: 16px;
  color: var(--ink-800);
  background: var(--paper);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  cursor: default;
}
img{ max-width:100%; display:block; }
a{ color: inherit; text-decoration:none; cursor: pointer; }
ul{ list-style:none; margin:0; padding:0; }
h1,h2,h3,h4{
  font-weight:800;
  line-height:1.28;
  margin:0 0 .5em;
  letter-spacing:-0.01em;
  color: var(--ink-900);
  text-wrap: pretty;
  overflow-wrap: break-word;
}
p{ margin:0 0 1em; }
button, [type="button"], [type="submit"]{ font-family:inherit; cursor:pointer; }
input, textarea, select{ cursor: text; font-family: inherit; }
select{ cursor: pointer; }

/* Единый контейнер секций */
.container{
  width: 100%;
  max-width: var(--container);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--gutter);
  padding-right: var(--gutter);
}
.visually-hidden{
  position:absolute; width:1px;height:1px; overflow:hidden; clip:rect(0,0,0,0);
  white-space:nowrap; border:0; padding:0; margin:-1px;
}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding: 13px 26px; border-radius: 999px; font-weight:700; font-size:15px;
  line-height: 1.2;
  border: 2px solid transparent; transition: background .15s ease, color .15s ease, border-color .15s ease, box-shadow .15s ease;
  white-space:nowrap; cursor: pointer;
}
.btn-primary{ background: var(--orange-500); color:#fff; box-shadow: var(--shadow-sm); }
.btn-primary:hover{ background: var(--orange-600); box-shadow: var(--shadow-md); }
.btn-outline{ background:transparent; border-color: currentColor; color: var(--ink-800); }
.btn-outline:hover{ background: var(--ink-800); color:#fff; border-color: var(--ink-800); }
.btn-light{ background:#fff; color: var(--orange-600); }
.btn-light:hover{ background: var(--orange-50); }
.btn-sm{ padding:9px 18px; font-size:14px; }
.btn-block{ width:100%; }
.btn:disabled{ opacity:.6; cursor:not-allowed; }

/* ---------- top bar ---------- */
.topbar{ background: var(--ink-900); color:#d8d6de; font-size:13.5px; line-height: 1.4; }
.topbar .container{ display:flex; align-items:center; justify-content:space-between; min-height:38px; gap:16px; }
.topbar-links{ display:flex; gap:18px; }
.topbar-contacts{ display:flex; align-items:center; gap:18px; flex-wrap: wrap; justify-content: flex-end; }
.topbar-contacts a{ display:inline-flex; align-items:center; gap:6px; color:#d8d6de; }
.topbar-contacts a:hover{ color: var(--orange-400); }
.topbar-contacts a svg{ flex-shrink:0; }

/* ---------- header ---------- */
.site-header{
  position: sticky; top:0; z-index:100; background: rgba(255,255,255,.96);
  backdrop-filter: saturate(180%) blur(10px);
  border-bottom:1px solid var(--line);
  height: var(--header-h);
}
.site-header .container{ height:100%; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.brand{ display:flex; align-items:center; gap:12px; font-weight:800; font-size:20px; color: var(--ink-900); flex-shrink:0; line-height:1.2; }
.brand-badge{
  width:46px;height:46px;border-radius:14px; background: linear-gradient(145deg, var(--orange-400), var(--orange-600));
  display:flex; align-items:center; justify-content:center; color:#fff; font-size:20px; font-weight:800; box-shadow: var(--shadow-sm);
}
.brand small{ display:block; font-weight:600; font-size:12px; color: var(--ink-500); letter-spacing:.02em; line-height:1.35; }

.main-nav{ display:flex; align-items:center; gap:2px; }
.main-nav a{
  padding:10px 14px; border-radius:10px; font-weight:600; font-size:14.5px; color: var(--ink-700);
  transition: background .15s, color .15s;
  display: inline-flex; align-items: center; gap: 2px;
}
.main-nav a:hover, .main-nav a.active{ background: var(--orange-50); color: var(--orange-600); }
.main-nav .has-dropdown{ position:relative; display: inline-block; }
.dropdown{
  position:absolute; top: calc(100% + 6px); left:0; background:#fff; border-radius: var(--radius-md);
  box-shadow: var(--shadow-lg); border:1px solid var(--line); padding:8px; min-width:280px;
  display:grid; grid-template-columns: 1fr 1fr; gap:2px;
  opacity:0; visibility:hidden; transform: translateY(6px); transition: opacity .18s ease, transform .18s ease, visibility .18s; z-index:50;
}
.has-dropdown:hover .dropdown, .has-dropdown:focus-within .dropdown{ opacity:1; visibility:visible; transform:none; }
.dropdown a{ padding:9px 12px; font-size:13.5px; border-radius:8px; line-height: 1.35; }

.header-cta{ display:flex; align-items:center; gap:14px; flex-shrink:0; }
.header-phone{ text-align:right; }
.header-phone a{
  font-weight:800; font-size:18px; color: var(--ink-900); line-height:1.2;
  display: inline-flex; align-items: center; gap: 6px;
}
.header-phone a::before{
  content:''; width:18px; height:18px; flex-shrink:0;
  background: currentColor;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M6.6 10.8c1.4 2.8 3.8 5.2 6.6 6.6l2.2-2.2c.3-.3.7-.4 1-.2 1.1.4 2.3.6 3.6.6.6 0 1 .4 1 1V20c0 .6-.4 1-1 1C10.6 21 3 13.4 3 4c0-.6.4-1 1-1h3.2c.6 0 1 .4 1 1 0 1.3.2 2.5.6 3.6.1.3 0 .7-.2 1l-2.2 2.2Z' stroke='black' stroke-width='1.6' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M6.6 10.8c1.4 2.8 3.8 5.2 6.6 6.6l2.2-2.2c.3-.3.7-.4 1-.2 1.1.4 2.3.6 3.6.6.6 0 1 .4 1 1V20c0 .6-.4 1-1 1C10.6 21 3 13.4 3 4c0-.6.4-1 1-1h3.2c.6 0 1 .4 1 1 0 1.3.2 2.5.6 3.6.1.3 0 .7-.2 1l-2.2 2.2Z' stroke='black' stroke-width='1.6' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}
.header-phone span{ display:block; font-size:12px; color: var(--ink-500); line-height:1.4; }
.burger{ display:none; width:44px;height:44px; border-radius:10px; border:1px solid var(--line); background:#fff; align-items:center; justify-content:center; cursor: pointer; }
.burger span, .burger span::before, .burger span::after{ content:''; display:block; width:20px;height:2px; background: var(--ink-900); position:relative; transition:.2s; }
.burger span::before{ position:absolute; top:-6px; }
.burger span::after{ position:absolute; top:6px; }

/* ---------- mobile nav ---------- */
.mobile-nav{
  position: fixed; inset:0; background: rgba(20,18,22,.55); z-index:200;
  display:none;
}
.mobile-nav.open{ display:block; }
.mobile-nav-panel{
  position:absolute; top:0; right:0; height:100%; width:min(340px,86vw); background:#fff;
  padding:20px; overflow-y:auto; box-shadow: var(--shadow-lg);
  animation: slideIn .2s ease;
}
@keyframes slideIn{ from{ transform: translateX(100%);} to{ transform:none;} }
.mobile-nav-panel a{ display:block; padding:13px 6px; border-bottom:1px solid var(--line); font-weight:600; line-height:1.4; }
.mobile-nav-close{ float:right; width:36px;height:36px; border-radius:50%; border:1px solid var(--line); background:#fff; font-size:18px; cursor: pointer; }

/* ---------- hero ---------- */
.hero{
  position:relative; overflow:hidden;
  background: radial-gradient(1200px 500px at 85% -10%, var(--orange-100), transparent),
              linear-gradient(180deg, var(--paper-soft), #fff 70%);
  padding: 64px 0 48px;
}
.hero .container{ display:grid; grid-template-columns: 1.05fr .95fr; gap:40px; align-items:center; }
.hero-eyebrow{
  display:inline-flex; align-items:center; gap:8px; background: var(--orange-50); color: var(--orange-600);
  font-weight:700; font-size:13px; padding:7px 14px; border-radius:999px; margin-bottom:18px; line-height:1.3;
}
.hero h1{ font-size: clamp(30px, 4vw, 46px); color: var(--ink-900); }
.hero h1 em{ font-style:normal; color: var(--orange-600); }
.hero-lead{ font-size:17px; color: var(--ink-500); max-width:520px; line-height:1.65; }
.hero-actions{ display:flex; gap:14px; margin-top:26px; flex-wrap:wrap; }
.hero-stats{ display:flex; gap:28px; margin-top:36px; flex-wrap:wrap; }
.hero-stat{ display:flex; flex-direction:column; gap:2px; }
.hero-stat b{ display:block; font-size:24px; color: var(--ink-900); line-height:1.2; }
.hero-stat span{ font-size:14px; color: var(--ink-500); line-height:1.4; }
.hero-media{ position:relative; }
.hero-media img{ position:relative; z-index:2; width:100%; height:auto; filter: drop-shadow(0 30px 40px rgba(28,27,31,.18)); }
.hero-media::before{
  content:''; position:absolute; inset:8%; background: linear-gradient(145deg, var(--orange-400), var(--orange-600));
  border-radius: 40% 60% 55% 45% / 45% 40% 60% 55%; opacity:.14; z-index:1;
}

/* ---------- sections ---------- */
.section{ padding: 72px 0; }
.section-compact{ padding: 28px 0 8px; }
.section-soft{ background: var(--paper-soft); }
.section-dark{ background: var(--ink-900); color:#eceaf1; }
.section-dark h1, .section-dark h2, .section-dark h3{ color:#fff; }
.section-head{ max-width:640px; margin:0 auto 40px; text-align:center; }
.section-tag{ color: var(--orange-600); font-weight:700; font-size:13px; text-transform:uppercase; letter-spacing:.08em; line-height:1.4; }
.section-head h2{ font-size: clamp(24px,3vw,34px); margin-top:8px; }
.section-head p{ color: var(--ink-500); line-height:1.65; }
.section-dark .section-tag{ color: var(--orange-400); }
.section-dark .section-head p,
.section-dark p{ color:#d2d0d8; }

/* ---------- cards grid ---------- */
.grid{ display:grid; gap:22px; }
.grid-3{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grid-4{ grid-template-columns: repeat(4, minmax(0, 1fr)); }
.grid-2{ grid-template-columns: repeat(2, minmax(0, 1fr)); }

.card{
  background:#fff; border:1px solid var(--line); border-radius: var(--radius-lg); overflow:hidden;
  display:flex; flex-direction:column;
}
a.card{
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
a.card:hover{ transform: translateY(-4px); box-shadow: var(--shadow-md); border-color: transparent; }
.card-media{ aspect-ratio: 4/3; overflow:hidden; background: var(--paper-soft); display:flex; align-items:center; justify-content:center; }
.card-media img{ width:100%; height:100%; object-fit: contain; padding:14px; transition: transform .3s ease; }
a.card:hover .card-media img{ transform: scale(1.05); }
.card-body{ padding:20px 22px 24px; display:flex; flex-direction:column; gap:8px; flex:1; }
.card-body h3{ font-size:18px; line-height:1.3; overflow-wrap: anywhere; }
.card-body p{ color: var(--ink-500); font-size:14.5px; margin-bottom:4px; line-height:1.55; }
.card-link{ margin-top:auto; font-weight:700; color: var(--orange-600); display:flex; align-items:center; gap:6px; }
.card-link .arrow{ transition: transform .15s; }
a.card:hover .card-link .arrow{ transform: translateX(3px); }

.service-icon-card{ padding:26px 22px; background:#fff; border:1px solid var(--line); border-radius: var(--radius-lg); cursor: default; }
.service-icon{
  width:52px;height:52px; border-radius:14px; background: var(--orange-50); color: var(--orange-600);
  display:flex; align-items:center; justify-content:center; margin-bottom:16px;
}
.service-icon-card h3{ font-size:17px; line-height:1.3; }
.service-icon-card p{ color: var(--ink-500); font-size:14.5px; margin:0; line-height:1.55; }

/* ---------- badges / trust row ---------- */
.trust-row{
  display:grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap:12px;
}
.trust-item{
  display:flex; align-items:center; gap:10px; background:#fff; border:1px solid var(--line);
  padding:12px 14px; border-radius:14px; font-weight:600; font-size:14px; color: var(--ink-700);
  line-height:1.35; cursor: default;
}
.trust-item .dot{
  width:20px;height:20px;border-radius:50%; background: var(--orange-50); color: var(--orange-600);
  display:inline-flex; align-items:center; justify-content:center; flex-shrink:0;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='m5 12 5 5L20 7' stroke='%23c24e07' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
}

/* ---------- breadcrumbs ---------- */
.breadcrumbs{ padding:16px 0; font-size:14px; color: var(--ink-700); line-height:1.4; }
.breadcrumbs a:hover{ color: var(--orange-600); }
.breadcrumbs .sep{ margin:0 6px; color: var(--ink-300); }

/* ---------- page hero (inner pages) ---------- */
.page-hero{ background: var(--ink-900); color:#fff; padding: 40px 0 46px; }
.page-hero h1{ font-size: clamp(26px,3.4vw,38px); color:#fff; }
.page-hero p{ color:#d2d0d8; max-width:640px; font-size:16px; line-height:1.65; }

/* ---------- equipment page layout ---------- */
.eq-layout{ display:grid; grid-template-columns: 1.1fr .9fr; gap:44px; align-items:start; }
.eq-media{ background: var(--paper-soft); border-radius: var(--radius-lg); padding:24px; }
.eq-price-card{
  background:#fff; border:1px solid var(--line); border-radius: var(--radius-lg); padding:24px; box-shadow: var(--shadow-sm);
  position: sticky; top: calc(var(--header-h) + 20px);
}
.eq-price-card .price{ font-size:30px; font-weight:800; color: var(--ink-900); line-height:1.2; }
.eq-price-card .price span{ font-size:15px; font-weight:600; color: var(--ink-500); }
.eq-specs{ margin:18px 0; }
.eq-specs li{ display:flex; justify-content:space-between; gap:12px; padding:9px 0; border-bottom:1px dashed var(--line); font-size:14.5px; line-height:1.4; }
.eq-specs li b{ color: var(--ink-900); font-weight:700; }
.eq-body{ line-height:1.7; }
.eq-body h1{ font-size: clamp(26px,3.2vw,36px); }
.eq-body h2{ font-size:22px; margin-top:32px; }
.eq-body p{ color: var(--ink-700); }
.eq-body ul{ margin: 0 0 1em; padding-left:0; }
.eq-body ul li{ position:relative; padding-left:26px; margin-bottom:10px; color: var(--ink-700); }
.eq-body ul li::before{ content:'✓'; position:absolute; left:0; color: var(--orange-600); font-weight:800; }

/* ---------- price table ---------- */
.price-table-wrap{ background:#fff; border:1px solid var(--line); border-radius: var(--radius-lg); overflow:hidden; box-shadow: var(--shadow-sm); }
table.price-table{ width:100%; border-collapse: collapse; }
.price-table thead th{ background: var(--ink-900); color:#fff; text-align:left; padding:16px 20px; font-size:13.5px; text-transform:uppercase; letter-spacing:.04em; }
.price-table thead th:last-child, .price-table td:last-child{ text-align:right; }
.price-table tbody td{ padding:15px 20px; border-bottom:1px solid var(--line); font-size:15px; line-height:1.45; }
.price-table tbody tr:last-child td{ border-bottom:none; }
.price-table tbody tr:nth-child(even){ background: var(--paper-soft); }
.price-table td.price-cell{ font-weight:800; color: var(--orange-600); white-space:nowrap; }
.price-note{ margin-top:18px; font-size:14.5px; color: var(--ink-500); line-height:1.6; }

/* ---------- gallery ---------- */
.gallery-grid{
  display:grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}
.gallery-item{
  border-radius: var(--radius-md);
  overflow:hidden;
  cursor: default;
  aspect-ratio: 4 / 3;
  width: 100%;
  min-width: 0;
  background: var(--paper-soft);
  position:relative;
  display: block;
}
.gallery-item img{ width:100%; height:100%; object-fit:cover; }
.gallery-item[data-full],
a.gallery-item{
  cursor: pointer;
}
.gallery-item[data-full]::after,
a.gallery-item::after{
  content:'';
  position:absolute; inset:0;
  background:
    linear-gradient(180deg, transparent 55%, rgba(28,27,31,.38) 100%);
  opacity:0;
  transition: opacity .2s ease;
  pointer-events:none;
}
.gallery-item[data-full]:hover::after,
a.gallery-item:hover::after{ opacity:1; }
.gallery-item[data-full] img,
a.gallery-item img{ transition: transform .3s ease; }
.gallery-item[data-full]:hover img,
a.gallery-item:hover img{ transform: scale(1.04); }

.lightbox-overlay{
  position:fixed; inset:0; background: rgba(20,18,22,.92); z-index:300; display:none;
  align-items:center; justify-content:center; padding:30px;
}
.lightbox-overlay.open{ display:flex; }
.lightbox-overlay img{ max-width:90vw; max-height:84vh; border-radius:10px; box-shadow: var(--shadow-lg); }
.lightbox-close, .lightbox-prev, .lightbox-next{
  position:absolute; background: rgba(255,255,255,.12); color:#fff; border:none; border-radius:50%;
  width:46px;height:46px; font-size:20px; display:flex; align-items:center; justify-content:center;
  cursor: pointer;
}
.lightbox-close{ top:22px; right:22px; }
.lightbox-prev{ left:22px; top:50%; transform: translateY(-50%); }
.lightbox-next{ right:22px; top:50%; transform: translateY(-50%); }
.lightbox-close:hover, .lightbox-prev:hover, .lightbox-next:hover{ background: var(--orange-500); }

/* ---------- contacts ---------- */
.contact-grid{ display:grid; grid-template-columns: .9fr 1.1fr; gap:36px; }
.contact-card{ background:#fff; border:1px solid var(--line); border-radius: var(--radius-lg); padding:26px; box-shadow: var(--shadow-sm); }
.contact-row{ display:flex; gap:14px; padding:14px 0; border-bottom:1px solid var(--line); }
.contact-row:last-child{ border-bottom:none; }
.contact-row .ic{ width:44px;height:44px;border-radius:12px; background: var(--orange-50); color: var(--orange-600); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.contact-row b{ display:block; font-size:15.5px; line-height:1.35; }
.contact-row span{ color: var(--ink-500); font-size:14px; line-height:1.4; }
.social-row{ display:flex; gap:10px; margin-top:18px; flex-wrap: wrap; }
.social-btn{
  display:flex !important; align-items:center; gap:8px; padding:.5rem 1.25rem !important; border-radius:8px; font-weight:700; font-size:14px; color:#fff !important;
}
.social-btn.wa{ background:#1f9e4e; }
.social-btn.tg{ background:#1d8fc7; }
.social-btn:hover{ filter:brightness(1.06); }
.map-frame{ border-radius: var(--radius-lg); overflow:hidden; border:1px solid var(--line); height:340px; margin-top:20px; }
.map-frame iframe{ width:100%; height:100%; border:0; }

/* ---------- forms ---------- */
.form-card{ background:#fff; border:1px solid var(--line); border-radius: var(--radius-lg); padding:26px; box-shadow: var(--shadow-sm); }
.form-row{ margin-bottom:16px; }
.form-row label{ display:block; font-size:14px; font-weight:700; margin-bottom:7px; color: var(--ink-700); line-height:1.35; }
.form-row input, .form-row textarea, .form-row select{
  width:100%; padding:12px 14px; border-radius:10px; border:1.5px solid var(--line); font-size:16px; font-family:inherit;
  background: var(--paper-soft); transition: border-color .15s, background .15s; color: var(--ink-800); line-height:1.4;
}
.form-row input:focus, .form-row textarea:focus, .form-row select:focus{ outline:none; border-color: var(--orange-500); background:#fff; }
.form-row textarea{ resize:vertical; min-height:110px; }
.form-two{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.form-consent{ font-size:13px; color: var(--ink-500); display:flex; gap:8px; align-items:flex-start; line-height:1.45; }
.form-consent input{ width:auto; margin-top:3px; cursor: pointer; }
.form-msg{ margin-top:14px; padding:12px 14px; border-radius:10px; font-size:14px; font-weight:600; display:none; line-height:1.45; }
.form-msg.show{ display:block; }
.form-msg.ok{ background:#e9f7ee; color: var(--ok); }
.form-msg.error{ background:#fdecec; color: var(--err); }

/* ---------- sticky CTA (right) ---------- */
.sticky-cta{
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 160;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 10px;
}
.sticky-cta-item{ position: relative; }
.sticky-cta-btn{
  width: 52px;
  height: 52px;
  border: none;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  color: #fff;
  background: var(--ink-900);
  box-shadow: var(--shadow-lg);
  cursor: pointer;
  position: relative;
  transition: background .15s ease;
}
.sticky-cta-btn:hover{ background: #32313a; }
.sticky-cta-btn.is-active{ background: var(--orange-500); }
.sticky-cta-btn::after{
  content: attr(aria-label);
  position: absolute;
  right: calc(100% + 10px);
  top: 50%;
  transform: translateY(-50%);
  background: var(--ink-900);
  color: #fff;
  padding: 6px 10px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 650;
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
  line-height: 1.2;
  transition: opacity .15s ease;
}
.sticky-cta-btn:hover::after{ opacity: 1; }
.sticky-cta-item.open .sticky-cta-btn::after{ opacity: 0; }
.sticky-cta-order{
  background: var(--orange-500);
}
.sticky-cta-order:hover{ background: var(--orange-600); }
.sticky-cta-order .sticky-cta-label{ display: none; }
.sticky-cta-top{
  background: var(--ink-800);
}
.sticky-cta-panel{
  position: absolute;
  right: calc(100% + 10px);
  bottom: 0;
  width: 230px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-lg);
  padding: 8px;
  opacity: 0;
  visibility: hidden;
  transform: translateX(6px);
  transition: opacity .18s ease, transform .18s ease, visibility .18s;
}
.sticky-cta-item.open .sticky-cta-panel{
  opacity: 1;
  visibility: visible;
  transform: none;
}
.sticky-cta-panel a{
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 10px;
  font-weight: 650;
  font-size: 14.5px;
  color: var(--ink-800);
  line-height: 1.3;
}
.sticky-cta-panel a:hover{ background: var(--orange-50); color: var(--orange-600); }
.sticky-cta-panel svg{ flex-shrink: 0; width: 18px; height: 18px; color: var(--orange-600); }

.fab-order, .fab-call{ display: none !important; }

.modal-overlay{ position:fixed; inset:0; background:rgba(20,18,22,.55); z-index:250; display:none; align-items:center; justify-content:center; padding:20px; }
.modal-overlay.open{ display:flex; }
.modal-box{ background:#fff; border-radius: var(--radius-lg); padding:28px; max-width:440px; width:100%; position:relative; box-shadow: var(--shadow-lg); }
.modal-close{ position:absolute; top:16px; right:16px; width:34px;height:34px; border-radius:50%; border:1px solid var(--line); background:#fff; cursor: pointer; }

/* ---------- footer ---------- */
.site-footer{ background: var(--ink-900); color:#d2d0d8; padding:56px 0 24px; }
.footer-grid{ display:grid; grid-template-columns: 1.3fr 1fr 1fr 1.1fr; gap:36px; margin-bottom:40px; }
.footer-brand p{ color:#c4c1cc; font-size:14.5px; max-width:280px; line-height:1.6; }
.footer-col h4{ color:#fff; font-size:15px; margin-bottom:16px; }
.footer-col a{ display:flex; align-items:flex-start; gap:8px; padding:6px 0; color:#c4c1cc; font-size:14.5px; line-height:1.4; }
.footer-col a:hover{ color: var(--orange-400); }
.footer-col a[href^="tel:"]::before,
.footer-col a[href^="mailto:"]::before,
.footer-grid > .footer-col:last-child a[href="contacts.html"]::before{
  content:''; width:16px; height:16px; margin-top:3px; flex-shrink:0; background: currentColor;
}
.footer-col a[href^="tel:"]::before{
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M6.6 10.8c1.4 2.8 3.8 5.2 6.6 6.6l2.2-2.2c.3-.3.7-.4 1-.2 1.1.4 2.3.6 3.6.6.6 0 1 .4 1 1V20c0 .6-.4 1-1 1C10.6 21 3 13.4 3 4c0-.6.4-1 1-1h3.2c.6 0 1 .4 1 1 0 1.3.2 2.5.6 3.6.1.3 0 .7-.2 1l-2.2 2.2Z' stroke='black' stroke-width='1.8' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M6.6 10.8c1.4 2.8 3.8 5.2 6.6 6.6l2.2-2.2c.3-.3.7-.4 1-.2 1.1.4 2.3.6 3.6.6.6 0 1 .4 1 1V20c0 .6-.4 1-1 1C10.6 21 3 13.4 3 4c0-.6.4-1 1-1h3.2c.6 0 1 .4 1 1 0 1.3.2 2.5.6 3.6.1.3 0 .7-.2 1l-2.2 2.2Z' stroke='black' stroke-width='1.8' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}
.footer-col a[href^="mailto:"]::before{
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Crect x='3' y='5' width='18' height='14' rx='2' stroke='black' stroke-width='1.8'/%3E%3Cpath d='m4 7 8 6 8-6' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Crect x='3' y='5' width='18' height='14' rx='2' stroke='black' stroke-width='1.8'/%3E%3Cpath d='m4 7 8 6 8-6' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}
.footer-grid > .footer-col:last-child a[href="contacts.html"]::before{
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M12 22s7-6.1 7-12a7 7 0 1 0-14 0c0 5.9 7 12 7 12Z' stroke='black' stroke-width='1.8'/%3E%3Ccircle cx='12' cy='10' r='2.5' stroke='black' stroke-width='1.8'/%3E%3C/svg%3E") center / contain no-repeat;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M12 22s7-6.1 7-12a7 7 0 1 0-14 0c0 5.9 7 12 7 12Z' stroke='black' stroke-width='1.8'/%3E%3Ccircle cx='12' cy='10' r='2.5' stroke='black' stroke-width='1.8'/%3E%3C/svg%3E") center / contain no-repeat;
}
.footer-bottom{ border-top:1px solid rgba(255,255,255,.1); padding-top:22px; display:flex; justify-content:space-between; font-size:13.5px; color:#b4b1bc; flex-wrap:wrap; gap:10px; line-height:1.45; }

/* ---------- misc ---------- */
.two-col{ display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:center; }
.section-cta{ text-align:center; margin-top:28px; }
.tag-list{ display:flex; flex-wrap:wrap; gap:10px; }
.tag-list a{ background: var(--paper-soft); border:1px solid var(--line); padding:9px 15px; border-radius:999px; font-size:13.5px; font-weight:600; }
.tag-list a:hover{ background: var(--orange-50); color: var(--orange-600); border-color: var(--orange-100); }

.step-list{ display:grid; gap:14px; }
.step-item{
  display:flex; align-items:center; gap:14px;
  background: rgba(255,255,255,.07);
  color:#fff;
  border:1px solid rgba(255,255,255,.12);
  padding:16px 18px;
  border-radius: 14px;
  font-weight:600;
  line-height:1.4;
  cursor: default;
}
.step-num{
  width:32px; height:32px; border-radius:50%;
  background: var(--orange-500); color:#fff;
  display:inline-flex; align-items:center; justify-content:center;
  font-weight:800; font-size:14px; flex-shrink:0;
}

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 1180px){
  .main-nav a{ padding:9px 10px; font-size:14px; }
  .header-phone a{ font-size:16px; }
}
@media (max-width: 1024px){
  .grid-4{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .gallery-grid{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .footer-grid{ grid-template-columns: 1fr 1fr; }
  .eq-layout{ grid-template-columns:1fr; }
  .eq-price-card{ position:static; }
  .trust-row{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 980px){
  .main-nav, .header-cta .header-phone, .header-cta .btn{ display:none; }
  .burger{ display:flex; }
}
@media (max-width: 860px){
  .hero .container{ grid-template-columns:1fr; }
  .hero-media{ order:-1; width:100%; max-width:420px; margin:0 auto; }
  .contact-grid{ grid-template-columns:1fr; }
  .grid-3, .grid-4{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gallery-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .two-col{ grid-template-columns:1fr; }
  .topbar-links{ display:none; }
  .trust-row{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sticky-cta-panel{
    right: 0;
    bottom: calc(100% + 10px);
  }
}
@media (max-width: 560px){
  :root{ --gutter: 16px; --header-h: 68px; }
  .section{ padding: 48px 0; }
  .hero{ padding: 36px 0 32px; }
  .brand{ font-size: 17px; }
  .brand-badge{ width:40px; height:40px; font-size:16px; border-radius:12px; }
  .grid-3, .grid-4, .gallery-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gallery-grid{ gap: 10px; }
  .form-two{ grid-template-columns:1fr; }
  .price-table thead{ display:none; }
  .price-table, .price-table tbody, .price-table tr, .price-table td{ display:block; width:100%; }
  .price-table tr{ padding:14px 18px; border-bottom:1px solid var(--line); }
  .price-table tbody tr:nth-child(even){ background: transparent; }
  .price-table tbody tr:nth-child(odd){ background: var(--paper-soft); }
  .price-table td{ display:flex; justify-content:space-between; padding:5px 0; border:none; font-size:14px; text-align:right; }
  .price-table td::before{ content: attr(data-label); font-weight:700; color: var(--ink-500); }
  .footer-grid{ grid-template-columns:1fr; }
  .footer-bottom{ flex-direction:column; }
  .brand small{ display: none; }
  .topbar-contacts a[href^="mailto:"]{ display: none; }
  .hero-stats{ gap:18px; }
  .trust-row{ grid-template-columns: 1fr; }
  .sticky-cta{ right: 12px; bottom: 12px; }
}
