:root {
      --bg: #f3f7fc;
      --card: #ffffff;
      --text: #1f2937;
      --muted: #6b7280;
      --line: #dbe3ee;
      --accent: #2563eb;
      --accent-2: #1d4ed8;
      --accent-3: #7c3aed;
      --accent-soft: #eaf2ff;
      --good: #0f766e;
      --good-soft: #ecfdf5;
      --warn: #b45309;
      --warn-soft: #fff7ed;
      --shadow: 0 18px 45px rgba(15, 23, 42, 0.08);
    }
    * { box-sizing: border-box; }
    html { scroll-behavior: smooth; }
    body {
      margin: 0;
      font-family: Arial, sans-serif;
      background:
        radial-gradient(circle at top right, rgba(37,99,235,0.10), transparent 26%),
        radial-gradient(circle at top left, rgba(124,58,237,0.08), transparent 24%),
        var(--bg);
      color: var(--text);
      line-height: 1.55;
    }
    .wrap {
      max-width: 1180px;
      margin: 0 auto;
      padding: 32px 20px 60px;
    }
    .hero, .card {
      background: var(--card);
      border: 1px solid var(--line);
      border-radius: 16px;
      box-shadow: var(--shadow);
    }
    .hero {
      padding: 34px;
      margin-bottom: 20px;
      position: relative;
      overflow: hidden;
      background:
        linear-gradient(135deg, rgba(37,99,235,0.08), rgba(124,58,237,0.04)),
        var(--card);
    }
    .hero::after {
      content: "";
      position: absolute;
      inset: auto -80px -80px auto;
      width: 240px;
      height: 240px;
      background: radial-gradient(circle, rgba(37,99,235,0.14), transparent 60%);
      pointer-events: none;
    }
    h1, h2, h3 { margin: 0 0 12px; }
    h1 { font-size: 34px; line-height: 1.12; }
    h2 { font-size: 24px; margin-bottom: 16px; }
    h3 { font-size: 18px; margin-bottom: 10px; }
    p { margin: 0 0 12px; }
    .muted { color: var(--muted); }
    .hero-brand {
      font-size: 52px;
      font-weight: 800;
      letter-spacing: -0.03em;
      line-height: 1;
      color: var(--accent-2);
      margin: 0 0 6px;
    }
    .hero-domain {
      margin: 0 0 16px;
      font-size: 15px;
      font-weight: 600;
      color: var(--muted);
      letter-spacing: 0.02em;
    }
    .eyebrow {
      display: inline-block;
      padding: 7px 12px;
      border-radius: 999px;
      background: rgba(37,99,235,0.09);
      color: var(--accent-2);
      font-weight: 700;
      font-size: 13px;
      margin-bottom: 14px;
      border: 1px solid rgba(37,99,235,0.15);
    }
    .hero-grid {
      display: grid;
      grid-template-columns: 1.25fr 0.85fr;
      gap: 24px;
      align-items: start;
      position: relative;
      z-index: 1;
    }
    .hero-panel {
      border: 1px solid rgba(37,99,235,0.14);
      background: rgba(255,255,255,0.72);
      backdrop-filter: blur(4px);
      border-radius: 16px;
      padding: 18px;
    }
    .hero-panel h3 { color: var(--accent-2); margin-bottom: 8px; }
    .hero-list { padding-left: 18px; margin: 10px 0 0; }
    .topnav {
      position: sticky;
      top: 0;
      z-index: 20;
      background: rgba(243,247,252,0.88);
      backdrop-filter: blur(10px);
      border-bottom: 1px solid rgba(219,227,238,0.8);
    }
    .topnav-inner {
      max-width: 1180px;
      margin: 0 auto;
      padding: 10px 20px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      flex-wrap: wrap;
    }
    .brand {
      font-weight: 700;
      color: var(--accent-2);
      font-size: 15px;
      text-decoration: none;
    }
    .nav-links {
      display: flex;
      gap: 6px;
      flex-wrap: wrap;
    }
    .topnav a {
      text-decoration: none;
      color: var(--muted);
      font-size: 14px;
      padding: 8px 12px;
      border-radius: 999px;
      border: 1px solid transparent;
    }
    .topnav a:hover {
      color: var(--accent-2);
      border-color: #d9e4ff;
      background: #ffffff;
    }
    .btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      padding: 14px 24px;
      border-radius: 12px;
      font-weight: 700;
      font-size: 16px;
      text-decoration: none;
      border: none;
      cursor: pointer;
      transition: transform 0.15s, box-shadow 0.15s;
    }
    .btn-primary {
      background: linear-gradient(135deg, var(--accent), var(--accent-2));
      color: #fff;
      box-shadow: 0 10px 24px rgba(37,99,235,0.28);
    }
    .btn-primary:hover {
      transform: translateY(-1px);
      box-shadow: 0 14px 28px rgba(37,99,235,0.34);
    }
    .btn-nav {
      padding: 10px 16px;
      font-size: 14px;
      border-radius: 999px;
    }
    .hero-cta { margin-top: 22px; }
    .hero-note {
      margin-top: 12px;
      font-size: 14px;
      color: var(--muted);
    }
    .offer-banner {
      margin-top: 20px;
      padding: 16px 18px;
      border-radius: 16px;
      background: linear-gradient(135deg, #ecfdf5 0%, #eff6ff 55%, #fff7ed 100%);
      border: 2px solid #34d399;
      box-shadow: 0 10px 28px rgba(16, 185, 129, 0.18);
    }
    .offer-banner--wide { margin-top: 0; }
    .offer-banner__line {
      font-size: 1.15rem;
      font-weight: 800;
      line-height: 1.35;
      color: #0f172a;
      margin: 0.2em 0;
    }
    .offer-banner__sub {
      font-size: 0.95rem;
      font-weight: 700;
      color: #334155;
    }
    .offer-free {
      color: #047857;
      text-transform: uppercase;
      letter-spacing: 0.01em;
    }
    .chips {
      display: flex;
      flex-wrap: wrap;
      gap: 10px;
      margin-top: 16px;
    }
    .chip {
      background: var(--accent-soft);
      color: var(--accent);
      border: 1px solid #cfe0ff;
      border-radius: 999px;
      padding: 8px 12px;
      font-size: 14px;
      font-weight: 700;
    }
    .grid {
      display: grid;
      grid-template-columns: repeat(12, 1fr);
      gap: 20px;
      margin-top: 20px;
    }
    .col-12 { grid-column: span 12; }
    .col-8 { grid-column: span 8; }
    .col-6 { grid-column: span 6; }
    .col-4 { grid-column: span 4; }
    .card { padding: 22px; }
    .section-title {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      flex-wrap: wrap;
    }
    .badge {
      display: inline-block;
      font-size: 12px;
      font-weight: 700;
      color: var(--accent-2);
      background: #eef4ff;
      border: 1px solid #d6e3ff;
      border-radius: 999px;
      padding: 6px 10px;
      white-space: nowrap;
    }
    .badge-green {
      color: var(--good);
      background: var(--good-soft);
      border-color: #a7f3d0;
    }
    .badge-warn {
      color: var(--warn);
      background: var(--warn-soft);
      border-color: #f6d890;
    }
    ul, ol { margin: 0; padding-left: 20px; }
    li { margin-bottom: 8px; }
    .checklist {
      list-style: none;
      padding: 0;
      margin: 0;
    }
    .checklist li {
      position: relative;
      padding-left: 28px;
      margin-bottom: 12px;
    }
    .checklist li::before {
      content: "✓";
      position: absolute;
      left: 0;
      top: 0;
      width: 20px;
      height: 20px;
      border-radius: 50%;
      background: var(--good-soft);
      color: var(--good);
      font-size: 12px;
      font-weight: 700;
      display: flex;
      align-items: center;
      justify-content: center;
    }
    table {
      width: 100%;
      border-collapse: collapse;
      font-size: 14px;
    }
    th, td {
      border: 1px solid var(--line);
      padding: 10px 12px;
      vertical-align: top;
      text-align: left;
    }
    th {
      background: #f8fbff;
      font-weight: 700;
    }
    tbody tr:nth-child(even) td { background: #fcfdff; }
    .note {
      background: var(--warn-soft);
      border: 1px solid #f6d890;
      color: var(--warn);
      border-radius: 12px;
      padding: 12px 14px;
      font-size: 14px;
    }
    .good {
      background: var(--good-soft);
      border: 1px solid #a7f3d0;
      color: var(--good);
      border-radius: 12px;
      padding: 12px 14px;
      font-size: 14px;
    }
    .info {
      background: var(--accent-soft);
      border: 1px solid #cfe0ff;
      color: var(--accent-2);
      border-radius: 12px;
      padding: 12px 14px;
      font-size: 14px;
    }
    .two-col {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 16px;
    }
    .feature-grid {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 14px;
      margin-top: 10px;
    }
    .feature-box {
      border: 1px solid var(--line);
      border-radius: 14px;
      padding: 16px;
      background: #fbfdff;
    }
    .feature-box h3 {
      display: flex;
      align-items: center;
      gap: 8px;
      margin-bottom: 10px;
    }
    .mp-tag {
      display: inline-block;
      font-size: 11px;
      font-weight: 700;
      padding: 4px 8px;
      border-radius: 6px;
      vertical-align: middle;
    }
    .mp-ozon { background: #005bff18; color: #005bff; }
    .mp-wb { background: #cb11ab18; color: #9b0d87; }
    .killer-grid {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 14px;
      margin-top: 10px;
    }
    .killer-card {
      border: 1px solid var(--line);
      border-radius: 14px;
      padding: 18px;
      background: linear-gradient(180deg, #ffffff, #f8fbff);
    }
    .killer-num {
      display: inline-block;
      width: 28px;
      height: 28px;
      border-radius: 50%;
      background: linear-gradient(135deg, var(--accent), var(--accent-3));
      color: #fff;
      font-weight: 700;
      font-size: 14px;
      text-align: center;
      line-height: 28px;
      margin-bottom: 10px;
    }
    .compare-table td:first-child { font-weight: 700; width: 34%; }
    .compare-table .yes { color: var(--good); font-weight: 700; }
    .compare-table .no { color: var(--muted); }
    .steps {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 14px;
      margin-top: 10px;
    }
    .step {
      border: 1px solid var(--line);
      border-radius: 14px;
      padding: 18px;
      background: #fbfdff;
      text-align: center;
    }
    .step-num {
      width: 40px;
      height: 40px;
      border-radius: 50%;
      background: var(--accent-soft);
      color: var(--accent-2);
      font-weight: 700;
      font-size: 18px;
      display: flex;
      align-items: center;
      justify-content: center;
      margin: 0 auto 12px;
    }
    .quote-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 14px;
      margin-top: 10px;
    }
    .quote {
      border: 1px solid var(--line);
      border-radius: 14px;
      padding: 16px;
      background: #fbfdff;
      font-size: 14px;
    }
    .quote .src {
      color: var(--muted);
      font-size: 12px;
      font-weight: 700;
      margin-top: 10px;
    }
    .seller-block {
      background: linear-gradient(135deg, rgba(15,118,110,0.06), rgba(37,99,235,0.04));
      border: 1px solid #a7f3d0;
      border-radius: 16px;
      padding: 22px;
    }
    .seller-block h2 { color: var(--good); }
    .faq-list { margin-top: 10px; }
    details {
      border: 1px solid var(--line);
      border-radius: 12px;
      padding: 0 16px;
      margin-bottom: 10px;
      background: #fbfdff;
    }
    summary {
      cursor: pointer;
      font-weight: 700;
      padding: 14px 0;
      list-style: none;
    }
    summary::-webkit-details-marker { display: none; }
    summary::after {
      content: "+";
      float: right;
      color: var(--accent);
      font-size: 18px;
      font-weight: 700;
    }
    details[open] summary::after { content: "−"; }
    details .answer {
      padding: 0 0 14px;
      color: var(--muted);
      font-size: 14px;
    }
    .cta-final {
      text-align: center;
      padding: 36px 28px;
      background:
        linear-gradient(135deg, rgba(37,99,235,0.10), rgba(124,58,237,0.06)),
        var(--card);
    }
    .cta-final h2 { font-size: 28px; margin-bottom: 10px; }
    .footer {
      margin-top: 24px;
      color: var(--muted);
      font-size: 13px;
      text-align: center;
      padding: 20px;
    }
    .placeholder-name {
      font-style: italic;
      color: var(--muted);
    }
    @media (max-width: 960px) {
      .col-8, .col-6, .col-4 { grid-column: span 12; }
      .hero-grid, .two-col, .feature-grid, .killer-grid, .steps, .quote-grid { grid-template-columns: 1fr; }
      .hero-brand { font-size: 40px; }
      h1 { font-size: 26px; }
      .topnav-inner { justify-content: center; }
      .nav-links { justify-content: center; }
    }

/* site extras */
.alert-box{border-radius:12px;padding:12px 14px;margin:12px 0;}
.alert-ok{background:#ecfdf5;border:1px solid #a7f3d0;color:#0f766e;}
.alert-err{background:#fff7ed;border:1px solid #f6d890;color:#b45309;}
.acc{border:1px solid #dbe3ee;border-radius:14px;margin-bottom:12px;background:#fff;}
.acc>summary{cursor:pointer;padding:14px 16px;font-weight:700;list-style:none;}
.acc>summary::-webkit-details-marker{display:none;}
.acc-body{padding:0 16px 16px;}
.period-list{max-height:280px;overflow:auto;border:1px solid #dbe3ee;border-radius:12px;padding:8px;}
.period-item{display:flex;gap:10px;align-items:center;padding:6px 4px;}
.period-item.paid{opacity:.55;}
.row-form{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));margin:10px 0;align-items:end;}
.row-form input,.row-form select,.row-form button,.btn-secondary{padding:10px 12px;border-radius:10px;border:1px solid #dbe3ee;}
.row-form .field{display:flex;flex-direction:column;gap:6px;min-width:0;}
.row-form .field-label,
.row-form-period .period-caption{
  font-size:.95rem;
  color:var(--accent);
  font-weight:700;
  line-height:1.3;
}
.row-form .field select{width:100%;}
.row-form-period{grid-template-columns:auto repeat(2,minmax(140px,180px)) auto;align-items:center;}
.row-form-period .period-caption{white-space:nowrap;}
@media (max-width:640px){
  .row-form-period{grid-template-columns:1fr;}
}

.pay-confirm-overlay{
  position:fixed;inset:0;z-index:10000;
  background:rgba(15,23,42,.45);
  display:flex;align-items:center;justify-content:center;
  padding:16px;
}
.pay-confirm-dialog{
  background:#fff;border-radius:14px;max-width:440px;width:100%;
  padding:20px 22px;box-shadow:0 18px 50px rgba(15,23,42,.25);
}
.pay-confirm-dialog h3{margin:0 0 10px;font-size:1.1rem;color:var(--text);}
.pay-confirm-periods{
  white-space:pre-wrap;font-family:ui-monospace,Consolas,monospace;
  font-size:.9rem;background:var(--accent-soft);border:1px solid #cfe0ff;
  border-radius:10px;padding:12px;margin:0 0 12px;max-height:240px;overflow:auto;
  color:var(--text);
}
.pay-confirm-dialog p{margin:0 0 14px;color:var(--text);}
.pay-confirm-actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;}
.pay-confirm-timeout{font-size:.85rem;color:var(--muted);margin:0 0 12px;}
.org-form{margin:12px 0 4px;padding:14px;border:1px solid #e8eef6;border-radius:12px;background:#fafcfe;}
.org-form .row-form{margin:8px 0;}
.org-form input:disabled{background:#f1f5f9;color:#64748b;}
.mono-id{font-family:ui-monospace,Consolas,monospace;font-size:.85em;word-break:break-all;}
.table-mini{width:100%;font-size:13px;border-collapse:collapse;}
.table-mini th,.table-mini td{border:1px solid #dbe3ee;padding:8px;text-align:left;}
.key-once{font-family:Consolas,monospace;background:#eaf2ff;padding:12px;border-radius:12px;word-break:break-all;}


/* === chat / contacts / cookies (from vccit) === */
.chat-page { max-width: 52rem; }
.chat-thread {
  margin-top: 1.1rem;
  max-height: min(55vh, 28rem);
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  padding: 1rem;
  background:
    radial-gradient(ellipse 80% 50% at 10% 0%, rgba(14, 116, 144, 0.08), transparent 55%),
    linear-gradient(180deg, #f7fafc 0%, #eef3f6 100%);
}
.chat-bubble {
  max-width: min(85%, 28rem);
  padding: 0.55rem 0.75rem;
  border-radius: 0.65rem;
  background: #fff;
  border: 1px solid rgba(15, 40, 55, 0.08);
}
.chat-bubble--mine {
  align-self: flex-end;
  background: #e8f4f8;
  border-color: rgba(14, 116, 144, 0.18);
}
.chat-bubble--staff { align-self: flex-start; }
.chat-bubble__meta {
  font-size: 0.78rem;
  color: #5b6b75;
  margin-bottom: 0.25rem;
}
.chat-bubble__text {
  white-space: pre-wrap;
  word-break: break-word;
  font-size: 0.98rem;
  line-height: 1.4;
}
.chat-bubble__file {
  display: inline-block;
  margin-top: 0.35rem;
  font-size: 0.92rem;
}

.field-error,
.validation-summary-errors,
.input-validation-error + .field-error,
span.field-error {
  display: block;
  color: #b42318;
  font-size: 0.88rem;
  margin-top: 0.3rem;
  font-weight: 600;
}
.validation-summary-errors {
  margin: 0 0 0.75rem;
  padding: 0.65rem 0.8rem;
  background: #fef3f2;
  border: 1px solid rgba(180, 35, 24, 0.25);
  border-radius: 0.5rem;
}
.validation-summary-errors ul {
  margin: 0;
  padding-left: 1.1rem;
}
input.input-validation-error,
textarea.input-validation-error,
select.input-validation-error {
  border-color: #b42318 !important;
  outline-color: #b42318;
}
.validation-summary-valid { display: none; }
.field-error:empty { display: none; }

/* Admin chat badge + unread */
.admin-chat-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  text-decoration: none;
  font-weight: 700;
  color: var(--ink, #13232e);
  padding: 0.35rem 0.55rem;
  border-radius: 0.45rem;
  border: 1px solid rgba(15, 40, 55, 0.12);
  background: #fff;
}
.admin-chat-badge--hot {
  border-color: rgba(180, 35, 24, 0.35);
  background: #fff5f4;
}
.admin-chat-badge__count {
  min-width: 1.25rem;
  height: 1.25rem;
  padding: 0 0.35rem;
  border-radius: 999px;
  background: #b42318;
  color: #fff;
  font-size: 0.75rem;
  line-height: 1.25rem;
  text-align: center;
  font-weight: 800;
}
.chat-bubble--unread {
  border-color: rgba(14, 116, 144, 0.45) !important;
  box-shadow: inset 3px 0 0 #0e7490;
  background: #eef9fc !important;
  animation: chat-unread-pulse 1.2s ease 2;
}
.chat-inbox-item--unread {
  border-color: rgba(14, 116, 144, 0.35);
  box-shadow: inset 3px 0 0 #0e7490;
}
@keyframes chat-unread-pulse {
  0%, 100% { background: #eef9fc; }
  50% { background: #dff3f8; }
}

/* Customer chat badge */
.customer-chat-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  text-decoration: none;
  font-weight: 700;
  color: var(--ink, #13232e);
  padding: 0.35rem 0.6rem;
  border-radius: 0.45rem;
  border: 1px solid rgba(15, 40, 55, 0.12);
  background: #fff;
  position: relative;
}
.customer-chat-badge--hot {
  border-color: rgba(14, 116, 144, 0.45);
  background: #eef9fc;
}
.customer-chat-badge__icon {
  display: inline-flex;
  color: #0e7490;
}
.customer-chat-badge__count {
  min-width: 1.15rem;
  height: 1.15rem;
  padding: 0 0.3rem;
  border-radius: 999px;
  background: #0e7490;
  color: #fff;
  font-size: 0.72rem;
  line-height: 1.15rem;
  text-align: center;
  font-weight: 800;
}

.chat-unread-sep {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  width: 100%;
  margin: 0.35rem 0 0.15rem;
  color: #0e7490;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: lowercase;
}
.chat-unread-sep::before,
.chat-unread-sep::after {
  content: "";
  flex: 1;
  height: 1px;
  background: rgba(14, 116, 144, 0.45);
}
.chat-unread-sep span {
  flex: 0 0 auto;
}

/* —— Contacts / requisites (идея gigansk.ru/kontakty) —— */
.contacts-page__head {
  margin: 0.25rem 0 1.5rem;
}

.contacts-org {
  display: grid;
  gap: 1.5rem;
  margin-bottom: 2.5rem;
}

@media (min-width: 900px) {
  .contacts-org {
    grid-template-columns: 1.45fr 0.7fr;
    align-items: start;
    gap: 2rem;
  }
}

.contacts-org__name {
  margin: 0 0 0.65rem;
  font-family: var(--font-display);
  font-size: clamp(1.15rem, 2.4vw, 1.45rem);
  font-weight: 600;
  letter-spacing: -0.02em;
  line-height: 1.25;
  color: var(--ink);
}

.contacts-org__tagline {
  margin: 0 0 1.25rem;
  max-width: 54ch;
  color: var(--ink-soft);
}

.contacts-dl {
  margin: 0;
  display: grid;
  gap: 0.7rem 1.25rem;
}

@media (min-width: 640px) {
  .contacts-dl {
    grid-template-columns: 11.5rem 1fr;
  }

  .contacts-dl > div {
    display: contents;
  }
}

.contacts-dl dt {
  margin: 0;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--muted);
}

.contacts-dl dd {
  margin: 0;
  color: var(--ink);
}

.contacts-okved {
  margin: 1.35rem 0 0;
  padding-top: 1.1rem;
  border-top: 1px solid var(--line);
  font-size: 0.9rem;
  line-height: 1.55;
  color: var(--ink-soft);
}

.contacts-org__aside {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  position: sticky;
  top: calc(var(--nav-h, 4rem) + 1rem);
}

.contacts-doc-btn {
  text-align: center;
}

.contacts-aside-card {
  margin-top: 0.35rem;
  padding: 1.1rem 1.15rem;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--radius);
}

.contacts-aside-card__title {
  margin: 0 0 0.45rem;
  font-family: var(--font-display);
  font-size: 1.05rem;
}

.contacts-map .section__head {
  margin-bottom: 1rem;
}

.contacts-map__frame {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--white);
}

.legal-page .legal-doc h3 {
  margin: 1.25rem 0 0.5rem;
}

.legal-page .legal-doc ol,
.legal-page .legal-doc ul {
  padding-left: 1.25rem;
}

.legal-page .legal-doc li {
  margin: 0.45rem 0;
}

/* —— Cookie consent (компактный) —— */
.cookie-consent {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 10000;
  padding: 0.45rem 0;
  background: rgba(12, 26, 36, 0.96);
  color: #e5e7eb;
  border-top: 1px solid rgba(15, 110, 106, 0.35);
  box-shadow: 0 -4px 16px rgba(0, 0, 0, 0.2);
}

.cookie-consent[hidden] {
  display: none !important;
}

.cookie-consent__inner {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.65rem;
  padding-left: 12px;
  padding-right: 12px;
}

.cookie-consent__text {
  margin: 0;
  flex: 1 1 auto;
  min-width: 0;
  font-size: 0.8rem;
  line-height: 1.3;
  color: #cbd5e1;
}

.cookie-consent__actions {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  gap: 0.5rem;
}

.cookie-consent__policy {
  color: #7ec8c4;
  text-underline-offset: 2px;
}

.cookie-consent__policy:hover {
  color: #fff;
}

.cookie-consent__accept {
  background: linear-gradient(135deg, #0f6e6a, #0b5854);
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.08);
  min-height: 1.85rem;
  padding: 0.3rem 0.85rem;
  font-size: 0.8rem;
  border-radius: 8px;
  cursor: pointer;
  white-space: nowrap;
}

.cookie-consent__accept:hover {
  background: linear-gradient(135deg, #12827d, #0f6e6a);
  color: #fff;
}

@media (max-width: 640px) {
  .cookie-consent {
    padding: 0.35rem 0;
  }
  .cookie-consent__text {
    font-size: 0.72rem;
    line-height: 1.25;
  }
  .cookie-consent__accept {
    min-height: 1.75rem;
    padding: 0.25rem 0.7rem;
    font-size: 0.75rem;
  }
}

/* —— Home reviews —— */
.home-reviews__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
}

@media (min-width: 720px) {
  .home-reviews__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1040px) {
  .home-reviews__grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.home-review {
  margin: 0;
  padding: 1.15rem 0 0;
  border-top: 1px solid var(--line);
}

.home-review__author {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  margin-bottom: 0.75rem;
}

.home-review__photo {
  width: 3.5rem;
  height: 3.5rem;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
  border: 1px solid var(--line);
  background: var(--white);
}

.home-review__photo--placeholder {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.15rem;
  color: var(--teal);
  background: rgba(15, 110, 106, 0.12);
}

.home-review__name {
  font-style: normal;
  font-weight: 700;
  display: block;
  line-height: 1.25;
}

.home-review__meta {
  margin: 0.2rem 0 0;
  font-size: 0.9rem;
  color: var(--muted);
}

.home-review__body {
  margin: 0;
  color: var(--ink);
  line-height: 1.55;
  white-space: pre-wrap;
}

/* —— Mobile layout hardening —— */
*,
*::before,
*::after {
  box-sizing: border-box;
}
