/* Владимир Киктев — системный администратор. Редизайн в швейцарском стиле */
* { margin: 0; padding: 0; box-sizing: border-box; }
:root {
  --ink: #141414;
  --muted: #55554f;
  --soft: #6b6b66;
  --hair: #dcdcd6;
  --bg: #fbfbfa;
  --accent: #c33a24;
}
html { -webkit-text-size-adjust: 100%; }
body {
  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
  background: var(--bg);
  color: var(--ink);
  line-height: 1.5;
}
a { color: inherit; text-decoration: none; }
a:hover { color: var(--accent); }
.wrap { max-width: 1280px; margin: 0 auto; padding: 0 48px; }

/* header */
.site-header { border-bottom: 1px solid var(--ink); }
.site-header .wrap { display: flex; justify-content: space-between; align-items: center; gap: 24px; padding-top: 22px; padding-bottom: 22px; flex-wrap: wrap; }
.brand { display: flex; align-items: baseline; gap: 12px; }
.brand-name { font-size: 18px; font-weight: 700; letter-spacing: -0.01em; }
.brand-sub { font-size: 13px; color: var(--soft); }
.nav { display: flex; gap: 32px; font-size: 14px; }
.header-contacts { display: flex; gap: 20px; font-size: 14px; font-weight: 500; flex-wrap: wrap; }
.header-contacts .mail { color: var(--accent); }

/* type */
.eyebrow { font-size: 13px; text-transform: uppercase; letter-spacing: 0.12em; color: var(--soft); }
.eyebrow.red { color: var(--accent); }
h1 { font-size: 68px; line-height: 1; letter-spacing: -0.03em; font-weight: 700; }
h2 { font-size: 38px; letter-spacing: -0.02em; font-weight: 700; }
.lead { font-size: 17px; line-height: 1.55; color: #3a3a36; max-width: 640px; }

/* buttons */
.btn-row { display: flex; gap: 16px; flex-wrap: wrap; }
.btn { display: inline-block; padding: 15px 28px; font-size: 15px; font-weight: 500; }
.btn-solid { background: var(--ink); color: #fff; }
.btn-solid:hover { background: var(--accent); color: #fff; }
.btn-line { border: 1px solid var(--ink); }
.btn-line:hover { border-color: var(--accent); }

/* lists with dash */
.dash-list { display: flex; flex-direction: column; gap: 14px; font-size: 15px; line-height: 1.45; list-style: none; }
.dash-list li { display: flex; gap: 14px; }
.dash-list li::before { content: "—"; color: var(--accent); flex-shrink: 0; }

/* section rules */
.rule { border-top: 1px solid var(--ink); }
.section { padding-top: 48px; padding-bottom: 48px; }
.section-head { display: flex; justify-content: space-between; align-items: baseline; gap: 24px; margin-bottom: 32px; flex-wrap: wrap; }
.link-more { font-size: 14px; border-bottom: 1px solid var(--ink); padding-bottom: 2px; }
.link-more:hover { border-color: var(--accent); }

/* grid cards (services) */
.grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--ink); border-bottom: 1px solid var(--ink); }
.grid-3 > .cell { padding: 32px 40px 40px; border-right: 1px solid var(--hair); border-bottom: 1px solid var(--hair); }
.grid-3 > .cell:nth-child(3n) { border-right: none; }
.grid-3 > .cell:nth-last-child(-n+3) { border-bottom: none; }
.cell .num { font-size: 13px; color: var(--accent); margin-bottom: 16px; }
.cell h3 { font-size: 18px; font-weight: 700; margin-bottom: 10px; }
.cell p { font-size: 14px; line-height: 1.5; color: var(--muted); }

/* price rows */
.price-row { display: flex; justify-content: space-between; align-items: baseline; gap: 24px; padding: 20px 0; border-top: 1px solid var(--hair); }
.price-row:first-child { border-top: none; }
.price-row .label { font-size: 14px; }
.price-row .value { font-size: 28px; font-weight: 700; letter-spacing: -0.02em; white-space: nowrap; text-align: right; }

/* secondary BYN price line — визуально равнозначна рублёвой, всегда на своей строке */
.byn { display: block; width: 100%; font-size: inherit; font-weight: inherit; color: inherit; letter-spacing: inherit; margin-top: 5px; white-space: nowrap; }

/* case rows */
.case-row { display: grid; grid-template-columns: 220px 1fr 1fr; gap: 32px; padding: 20px 0; border-top: 1px solid var(--hair); }
.case-row:first-of-type { border-top: 1px solid var(--ink); }
.case-row:last-of-type { border-bottom: 1px solid var(--ink); }
.case-row .tag { font-size: 13px; text-transform: uppercase; letter-spacing: 0.1em; color: var(--accent); }
.case-row .title { font-size: 17px; font-weight: 700; line-height: 1.35; }
.case-row .desc { font-size: 14px; line-height: 1.5; color: var(--muted); }

/* footer */
.site-footer { border-top: 1px solid var(--ink); }
.site-footer .wrap { display: flex; justify-content: space-between; align-items: center; gap: 24px; padding-top: 24px; padding-bottom: 24px; font-size: 13px; color: var(--soft); flex-wrap: wrap; }
.site-footer .contacts { display: flex; gap: 24px; color: var(--ink); flex-wrap: wrap; }
.site-footer .legal { padding-top: 16px; padding-bottom: 24px; font-size: 12px; line-height: 1.6; color: var(--soft); }
.site-footer .legal span { margin-right: 20px; white-space: nowrap; }
.site-footer .legal-links { margin-top: 10px; }
.site-footer .legal-links a { border-bottom: 1px solid var(--hair); padding-bottom: 1px; }
.site-footer .legal-note { margin-top: 8px; max-width: 760px; }

/* policy page */
.policy p { font-size: 15px; line-height: 1.62; color: #3a3a36; margin-bottom: 10px; }
.policy p:last-child { margin-bottom: 0; }
.policy-h { font-size: 24px; font-weight: 700; letter-spacing: -0.01em; margin-bottom: 14px; }
.policy-h3 { font-size: 16px; font-weight: 700; margin: 20px 0 10px; }
.policy .dash-list { margin-bottom: 6px; }

/* ---------- responsive ---------- */
/* tablet: collapse every multi-column layout to a single column.
   !important is needed because subpages set grid-template-columns inline. */
@media (max-width: 960px) {
  .wrap { padding: 0 32px; }
  h1 { font-size: 46px !important; }
  h2 { font-size: 30px !important; }
  .nav { gap: 18px; flex-wrap: wrap; }

  [data-hero],
  .two-col,
  .service-block,
  .grid-3 { grid-template-columns: 1fr !important; }
  .service-block { gap: 20px !important; }
  .case-row { grid-template-columns: 1fr !important; gap: 8px !important; }

  .grid-3 > .cell { border-right: none !important; border-bottom: 1px solid var(--hair) !important; }
  .grid-3 > .cell:last-child { border-bottom: none !important; }

  /* the vertical divider columns: drop the rule and side padding, add a top rule between the stacked halves */
  [data-hero] > div,
  .two-col > div {
    padding-left: 0 !important;
    padding-right: 0 !important;
    border-right: none !important;
  }
  [data-hero] > div + div,
  .two-col > div + div { border-top: 1px solid var(--hair); padding-top: 32px !important; }
}

/* phone: tighten type, stack header/footer, full-width tap targets */
@media (max-width: 600px) {
  html, body { overflow-x: hidden; }
  .wrap { padding: 0 16px; }
  h1 { font-size: 32px !important; line-height: 1.05; overflow-wrap: anywhere; }
  h2 { font-size: 24px !important; }
  .lead { font-size: 15px; }
  .section { padding-top: 32px; padding-bottom: 32px; }

  .site-header .wrap { flex-direction: column; align-items: flex-start; gap: 14px; padding-top: 16px; padding-bottom: 16px; }
  .nav { gap: 12px 18px; }
  .header-contacts { gap: 4px 16px; }

  [data-hero] > div { padding-top: 32px !important; padding-bottom: 32px !important; }

  .grid-3 > .cell { padding-left: 0 !important; padding-right: 0 !important; padding-top: 24px !important; }

  /* prices: stack label above value, let the RUB line wrap, keep BYN on its own line */
  .price-row { flex-direction: column; align-items: flex-start; gap: 4px; }
  .price-row .value { text-align: left; white-space: normal; }
  .byn { white-space: normal; margin-top: 6px; }

  .site-footer .wrap { flex-direction: column; align-items: flex-start; gap: 16px; }
  .site-footer .legal span { display: block; margin-right: 0; white-space: normal; }

  .btn-row { flex-direction: column; align-items: stretch; }
  .btn { display: block; text-align: center; }
}
