/* ============================================================
   СЕРВИСБИТ — inner pages (categories, contacts)
   ============================================================ */

/* ---- breadcrumb + page hero ---- */
.page-hero { position: relative; overflow: hidden; padding-block: clamp(28px,3vw,40px) clamp(44px,5vw,72px); }
.page-hero--soft { background: var(--bg-soft); }
.page-hero::before {
  content:""; position:absolute; top:-220px; right:-160px; width:560px; height:560px; border-radius:50%;
  background: radial-gradient(circle at center, rgba(217,38,46,.09), rgba(217,38,46,0) 64%); pointer-events:none;
}
.breadcrumb { display:flex; align-items:center; gap:8px; font-size:14px; color:var(--muted); margin-bottom:26px; flex-wrap:wrap; }
.breadcrumb a:hover { color:var(--red); }
.breadcrumb svg { width:15px; height:15px; }
.breadcrumb .here { color:var(--ink); font-weight:500; }

.page-hero-grid { display:grid; grid-template-columns: 1.1fr .9fr; gap:clamp(32px,5vw,64px); align-items:center; }
.page-hero h1 { font-size:clamp(34px,4.8vw,60px); }
.page-hero .lead { margin-top:20px; max-width:560px; }
.page-hero-cta { display:flex; gap:13px; margin-top:30px; flex-wrap:wrap; }
.page-hero .chip-row { margin-top:26px; }

/* hero side panel (icon collage) */
.hero-panel { position:relative; min-width:0; }
.page-hero-grid > * { min-width:0; }
.mini-tile { min-width:0; }
.mini-tile b, .mini-tile div span { overflow-wrap:break-word; }
.hero-panel__card {
  background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); box-shadow:var(--sh-3);
  padding:28px; display:grid; grid-template-columns:1fr 1fr; gap:14px;
}
.mini-tile { background:var(--bg-soft); border-radius:var(--r-md); padding:18px; display:flex; flex-direction:column; gap:12px; transition:background .2s, transform .2s; }
.mini-tile:hover { background:var(--red-50); transform:translateY(-3px); }
.mini-tile .icon-badge { width:46px; height:46px; background:#fff; box-shadow:var(--sh-1); }
.mini-tile .icon-badge svg { width:23px; height:23px; }
.mini-tile b { font-family:"Montserrat"; font-weight:600; font-size:15px; display:block; }
.mini-tile div span { font-size:12.5px; color:var(--muted); display:block; }

/* ---- services grid ---- */
.svc-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.svc-grid.two { grid-template-columns:repeat(2,1fr); }
.svc-item {
  background:#fff; border:1px solid var(--line); border-radius:var(--r-md); padding:28px;
  transition:transform .2s var(--ease), box-shadow .2s var(--ease), border-color .2s;
  display:flex; flex-direction:column;
}
.svc-item:hover { transform:translateY(-4px); box-shadow:var(--sh-2); border-color:transparent; }
.svc-item .icon-badge { margin-bottom:18px; }
.svc-item h3 { font-size:20px; }
.svc-item p { color:var(--ink-2); margin-top:10px; font-size:15px; flex:1; }
.svc-item .price { margin-top:18px; padding-top:16px; border-top:1px solid var(--line-soft); display:flex; align-items:baseline; justify-content:space-between; }
.svc-item .price .from { font-size:13px; color:var(--muted); }
.svc-item .price .val { font-family:"Montserrat"; font-weight:600; font-size:20px; color:var(--ink); }

/* ---- price list (table-like) ---- */
.pricelist { background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); overflow:hidden; }
.price-row { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:18px 26px; border-bottom:1px solid var(--line-soft); transition:background .15s; }
.price-row:last-child { border-bottom:0; }
.price-row:hover { background:var(--bg-soft); }
.price-row .pr-name { font-weight:500; display:flex; align-items:center; gap:12px; }
.price-row .pr-name svg { width:19px; height:19px; color:var(--red); flex-shrink:0; }
.price-row .pr-val { font-family:"Montserrat"; font-weight:600; white-space:nowrap; color:var(--ink); }
.price-row .pr-val span { color:var(--muted); font-family:"Onest"; font-weight:400; font-size:13px; margin-right:4px; }

/* ---- info band (split content) ---- */
.split { display:grid; grid-template-columns:1fr 1fr; gap:clamp(32px,5vw,64px); align-items:center; }
.bullets { list-style:none; margin:24px 0 0; padding:0; display:flex; flex-direction:column; gap:14px; }
.bullets li { display:flex; gap:13px; align-items:flex-start; color:var(--ink-2); font-size:16px; }
.bullets li svg { width:22px; height:22px; color:var(--red); flex-shrink:0; margin-top:1px; }

/* visual placeholder panel */
.panel-soft { background:var(--bg-soft); border-radius:var(--r-lg); padding:clamp(28px,3vw,40px); }
.spec-list { display:flex; flex-direction:column; gap:2px; }
.spec-list .srow { display:flex; justify-content:space-between; gap:16px; padding:15px 0; border-bottom:1px solid var(--line); font-size:15px; }
.spec-list .srow:last-child { border-bottom:0; }
.spec-list .srow span:first-child { color:var(--muted); }
.spec-list .srow span:last-child { font-weight:600; }

/* chips list of items fixed */
.tag-cloud { display:flex; flex-wrap:wrap; gap:10px; }

/* ---- numbered steps (light) ---- */
.steps-light { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.step-l { padding:26px; background:#fff; border:1px solid var(--line); border-radius:var(--r-md); }
.step-l .num { font-family:"Montserrat"; font-weight:700; font-size:17px; color:var(--red); width:42px; height:42px; border-radius:12px; background:var(--red-50); display:grid; place-items:center; margin-bottom:18px; }
.step-l h3 { font-size:18px; }
.step-l p { color:var(--ink-2); font-size:14.5px; margin-top:9px; }

/* ---- FAQ accordion ---- */
.faq { max-width:820px; margin-inline:auto; display:flex; flex-direction:column; gap:12px; }
.faq-item { background:#fff; border:1px solid var(--line); border-radius:var(--r-md); overflow:hidden; }
.faq-q { width:100%; text-align:left; background:none; border:0; cursor:pointer; padding:22px 24px; display:flex; align-items:center; justify-content:space-between; gap:16px; font-family:"Onest"; font-size:17px; font-weight:600; color:var(--ink); }
.faq-q svg { width:22px; height:22px; color:var(--red); transition:transform .25s var(--ease); flex-shrink:0; }
.faq-item.open .faq-q svg { transform:rotate(45deg); }
.faq-a { max-height:0; overflow:hidden; transition:max-height .3s var(--ease); }
.faq-a > div { padding:0 24px 22px; color:var(--ink-2); font-size:15.5px; }

/* ---- CTA band ---- */
.cta-band { background:var(--ink-bg); border-radius:var(--r-xl); padding:clamp(36px,4vw,60px); position:relative; overflow:hidden; }
.cta-band::before { content:""; position:absolute; top:-160px; right:-120px; width:460px; height:460px; border-radius:50%; background:radial-gradient(circle,rgba(217,38,46,.22),transparent 64%); }
.cta-band__inner { position:relative; z-index:1; display:flex; align-items:center; justify-content:space-between; gap:32px; flex-wrap:wrap; }
.cta-band h2 { color:#fff; font-size:clamp(26px,3.2vw,40px); max-width:620px; }
.cta-band p { color:#A7ADB8; margin-top:14px; max-width:520px; }
.cta-band .cta-actions { display:flex; gap:13px; flex-wrap:wrap; }

/* ---- contacts ---- */
.contacts-grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,4vw,52px); align-items:start; }
.contact-cards { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.contact-card { background:#fff; border:1px solid var(--line); border-radius:var(--r-md); padding:24px; }
.contact-card .icon-badge { width:48px; height:48px; margin-bottom:16px; }
.contact-card .icon-badge svg { width:23px; height:23px; }
.contact-card h4 { font-family:"Onest"; font-size:13px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); }
.contact-card .big { font-family:"Montserrat"; font-weight:600; font-size:20px; margin-top:8px; display:block; }
.contact-card .big:hover { color:var(--red); }
.contact-card .sub { color:var(--ink-2); font-size:14.5px; margin-top:4px; }

.map-wrap { position:relative; border-radius:var(--r-lg); overflow:hidden; border:1px solid var(--line); box-shadow:var(--sh-2); min-height:420px; }
.map-wrap iframe { width:100%; height:100%; min-height:420px; border:0; display:block; filter:grayscale(.1); }
.map-pill { position:absolute; left:20px; bottom:20px; background:#fff; border-radius:var(--r-md); box-shadow:var(--sh-2); padding:16px 18px; display:flex; gap:13px; align-items:center; z-index:2; }
.map-pill .icon-badge { width:44px; height:44px; }
.map-pill b { font-family:"Montserrat"; font-weight:600; font-size:15px; display:block; }
.map-pill span { font-size:13px; color:var(--muted); }

/* ---- reusable request block (dark) ---- */
.req-grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(32px,5vw,64px); align-items:center; }
.req-list { list-style:none; margin:26px 0 0; padding:0; display:flex; flex-direction:column; gap:16px; }
.req-list li { display:flex; gap:14px; align-items:flex-start; color:#C8CDD6; font-size:16px; }
.req-list li svg { width:22px; height:22px; color:#56D364; flex-shrink:0; margin-top:1px; }
.req-card { background:#fff; border-radius:var(--r-lg); padding:clamp(26px,3vw,38px); box-shadow:var(--sh-3); color:var(--ink); }
.req-card h3 { font-size:24px; }
.req-card .form-rows { display:grid; gap:16px; margin-top:22px; }
.req-card .two { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.req-note { font-size:13px; color:var(--muted); margin-top:14px; text-align:center; }
.req-note a { color:var(--ink-2); text-decoration:underline; }

@media (max-width: 920px) {
  .req-grid { grid-template-columns:1fr; }
  .page-hero-grid { grid-template-columns:1fr; }
  .svc-grid, .svc-grid.two { grid-template-columns:1fr 1fr; }
  .split { grid-template-columns:1fr; }
  .steps-light { grid-template-columns:1fr 1fr; }
  .contacts-grid { grid-template-columns:1fr; }
}
@media (max-width: 520px) {
  .req-card .two { grid-template-columns:1fr; }
  .svc-grid, .svc-grid.two { grid-template-columns:1fr; }
  .steps-light { grid-template-columns:1fr; }
  .contact-cards { grid-template-columns:1fr; }
  .hero-panel__card { grid-template-columns:1fr; }
  .price-row { flex-direction:column; align-items:flex-start; gap:6px; }
}
