/* QuickSlot inner.css — общие компоненты внутренних страниц (хаб + zapis) */

    /* Compact desktop modal — shared with homepage */
    @media (min-width: 769px) {
      #modal .modal__dialog { max-width: 600px; max-height: none; }
      #modal .modal__scroll { padding: 30px 34px; }
      #modal .form { margin-top: 18px; gap: 13px; }
      #modal .modal__subtitle { margin-top: 6px; }
      #modal .mrow { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
      #modal .field { gap: 5px; }
      #modal .input, #modal .select { min-height: 44px; padding: 10px 14px; }
      #modal .select { padding-right: 40px; }
      #modal .textarea { min-height: 56px; }
      #modal .channels { gap: 7px; }
      #modal .channel__box { padding: 8px 12px; }
      #modal .consents { display: grid; grid-template-columns: 1fr; gap: 10px 18px; }
      #modal .form > .btn--block { margin-top: 2px; }
      #modal .form__note { margin-top: 0; }
    }

    /* ---------- Breadcrumbs ---------- */
    .crumbs { padding-top: 22px; }
    .crumbs ol { list-style: none; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 13.5px; color: var(--text-muted); }
    .crumbs a { color: var(--text-secondary); }
    .crumbs a:hover { color: var(--brand-primary); }
    .crumbs li[aria-current] { color: var(--text-primary); font-weight: 600; }
    .crumbs svg { width: 14px; height: 14px; color: var(--border-strong); }

    /* ============ HERO хаба — центрированный, обзорный ============ */
    .hero--hub { padding-top: 56px; padding-bottom: 72px; }
    .hero--hub .hero__content { max-width: 780px; margin: 0 auto; text-align: center; }
    .hero--hub .eyebrow { margin-left: auto; margin-right: auto; }
    .hero--hub .eyebrow::after { content: ""; width: 28px; height: 2px; border-radius: 2px; background: var(--brand-gradient); }
    .hero--hub .hero__title { font-size: 56px; }
    .hero--hub .hero__subtitle { margin-left: auto; margin-right: auto; max-width: 640px; }
    .hero--hub .hero__cta { justify-content: center; }

    /* Полоса фактов */
    .hub-facts {
      display: grid; grid-template-columns: repeat(4, 1fr);
      max-width: 1020px; margin: 56px auto 0;
      background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-xl);
      box-shadow: var(--shadow-card); overflow: hidden;
    }
    .hub-fact { padding: 24px 26px; text-align: left; }
    .hub-fact + .hub-fact { border-left: 1px solid var(--border); }
    .hub-fact__k { font-size: 12px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--text-muted); }
    .hub-fact__v { margin-top: 9px; font-size: 19px; font-weight: 700; letter-spacing: -.02em; line-height: 1.2; }
    .hub-fact__d { margin-top: 5px; font-size: 13px; color: var(--text-secondary); line-height: 1.45; }

    /* ============ Нужна ли виза ============ */
    .need { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: 48px; align-items: start; }
    .need__yes {
      background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-xl);
      padding: 34px 36px; box-shadow: var(--shadow-card);
    }
    .need__yes-word { font-size: 46px; font-weight: 700; letter-spacing: -.04em; line-height: 1; }
    .need__yes-word .gradient-text { display: inline; }
    .need__yes p { margin-top: 14px; font-size: 15.5px; color: var(--text-secondary); line-height: 1.6; text-wrap: pretty; }
    .need__yes b { color: var(--text-primary); font-weight: 600; }
    .need__body p { font-size: 16.5px; color: var(--text-secondary); line-height: 1.65; text-wrap: pretty; }
    .need__body p + p { margin-top: 16px; }
    .need__body b { color: var(--text-primary); font-weight: 600; }

    .alert { margin-top: 24px; display: grid; grid-template-columns: 24px 1fr; gap: 14px; padding: 20px 24px; border-radius: var(--radius-xl); background: rgba(0,86,255,.05); border: 1px solid rgba(0,86,255,.14); font-size: 15px; color: var(--text-secondary); line-height: 1.6; }
    .alert svg { width: 22px; height: 22px; color: var(--brand-primary); margin-top: 1px; flex: none; }
    .alert b { color: var(--text-primary); font-weight: 600; }

    .moreline { margin-top: 26px; display: inline-flex; align-items: center; gap: 9px; font-size: 16px; font-weight: 600; color: var(--brand-primary); }
    .moreline svg { width: 18px; height: 18px; }
    .moreline:hover { gap: 13px; }

    /* ============ Типы виз: две группы ============ */
    .types { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; align-items: start; }
    .tgroup { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-xl); padding: 32px; }
    .tgroup__head { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
    .tgroup__badge {
      font-size: 15px; font-weight: 700; width: 40px; height: 40px; border-radius: 12px;
      display: grid; place-items: center; flex: none;
    }
    .tgroup__badge--c { color: #fff; background: var(--brand-gradient); }
    .tgroup__badge--d { color: #fff; background: var(--ink); }
    .tgroup__title { font-size: 21px; font-weight: 700; letter-spacing: -.02em; }
    .tgroup__title span { display: block; margin-top: 2px; font-size: 13.5px; font-weight: 500; color: var(--text-secondary); }
    .tgroup__list { margin-top: 22px; }
    .titem { padding: 15px 0; border-top: 1px dashed var(--border-strong); }
    .titem:first-child { border-top: 0; padding-top: 0; }
    .titem h3 { font-size: 16.5px; font-weight: 700; letter-spacing: -.015em; }
    .titem p { margin-top: 5px; font-size: 14.5px; color: var(--text-secondary); line-height: 1.5; text-wrap: pretty; }
    .types__note { margin-top: 22px; font-size: 14.5px; color: var(--text-muted); text-wrap: pretty; max-width: 760px; }

    /* ============ Стоимость (обзор) ============ */
    .cost { display: grid; grid-template-columns: 1.05fr 0.95fr; gap: 48px; align-items: start; }
    .cost__list { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-xl); padding: 30px 32px; box-shadow: var(--shadow-card); }
    .cost__row { display: flex; justify-content: space-between; align-items: baseline; gap: 18px; padding: 14px 0; border-bottom: 1px dashed var(--border-strong); }
    .cost__row:first-child { padding-top: 0; }
    .cost__row:last-child { border-bottom: 0; padding-bottom: 0; }
    .cost__what { font-size: 15px; color: var(--text-secondary); line-height: 1.5; }
    .cost__what .muted { color: var(--text-muted); font-size: 13.5px; }
    .cost__val { font-size: 16px; font-weight: 700; color: var(--text-primary); white-space: nowrap; }
    .cost__row--qs { margin-top: 6px; padding: 16px 18px; border: 0; border-radius: var(--radius-md); background: rgba(0,86,255,.06); }
    .cost__row--qs .cost__what b { color: var(--brand-primary); }
    .cost__note { margin-top: 16px; font-size: 13px; color: var(--text-muted); line-height: 1.55; }
    .cost__body p { font-size: 16.5px; color: var(--text-secondary); line-height: 1.65; text-wrap: pretty; }
    .cost__body p + p { margin-top: 16px; }
    .cost__body b { color: var(--text-primary); font-weight: 600; }
    .cost__links { margin-top: 10px; display: flex; flex-direction: column; align-items: flex-start; }
    .cost__links .moreline { margin-top: 14px; }

    /* ============ Этапы оформления ============ */
    .hsteps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 40px; }
    .hstep__num {
      font-size: 52px; font-weight: 700; letter-spacing: -.04em; line-height: 1;
      background: var(--brand-gradient);
      -webkit-background-clip: text; background-clip: text;
      -webkit-text-fill-color: transparent; color: transparent;
      opacity: .9;
    }
    .hstep__title { margin-top: 16px; font-size: 18px; font-weight: 700; letter-spacing: -.02em; line-height: 1.3; }
    .hstep__text { margin-top: 8px; font-size: 14.5px; color: var(--text-secondary); line-height: 1.55; text-wrap: pretty; }

    /* ============ Где подают ============ */
    .vcnote { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 48px; align-items: center; }
    .vcnote__body p { font-size: 16.5px; color: var(--text-secondary); line-height: 1.65; text-wrap: pretty; }
    .vcnote__body b { color: var(--text-primary); font-weight: 600; }
    .vcnote__card {
      background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-xl);
      padding: 28px 30px; box-shadow: var(--shadow-card);
      display: flex; flex-direction: column; gap: 14px;
    }
    .vcnote__row { display: grid; grid-template-columns: 24px 1fr; gap: 13px; font-size: 14.5px; color: var(--text-secondary); line-height: 1.5; }
    .vcnote__row svg { width: 20px; height: 20px; color: var(--brand-primary); margin-top: 1px; }
    .vcnote__row b { color: var(--text-primary); font-weight: 600; }

    /* ============ Города ============ */
    .cities { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
    .city-card { display: flex; align-items: center; justify-content: space-between; gap: 10px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 18px 20px; font-size: 16px; font-weight: 600; color: var(--text-primary); transition: border-color .2s, box-shadow .2s, transform .2s; }
    .city-card:hover { border-color: transparent; box-shadow: var(--shadow-lift); transform: translateY(-2px); }
    .city-card svg { width: 18px; height: 18px; color: var(--brand-primary); flex: none; }

    /* ============ Как QuickSlot помогает — вариант «Панель» ============ */
    .help-band {
      position: relative; overflow: hidden;
      background: var(--brand-gradient); color: #fff;
      border-radius: var(--radius-xl); padding: 48px 52px;
      box-shadow: var(--shadow-glow);
      display: grid; grid-template-columns: 1.2fr 0.8fr; gap: 48px; align-items: center;
    }
    .help-band::before {
      content: ""; position: absolute; inset: 0; pointer-events: none;
      background-image: radial-gradient(rgba(255,255,255,0.16) 1px, transparent 1px);
      background-size: 22px 22px;
      mask-image: radial-gradient(ellipse 70% 80% at 50% 0%, #000, transparent 70%);
    }
    .help-band__title { position: relative; font-size: 32px; font-weight: 700; letter-spacing: -.03em; line-height: 1.15; text-wrap: balance; }
    .help-band__text { position: relative; margin-top: 14px; font-size: 16.5px; color: rgba(255,255,255,.88); line-height: 1.6; text-wrap: pretty; }
    .help-band__link { position: relative; display: inline-flex; align-items: center; gap: 8px; margin-top: 20px; font-size: 15px; font-weight: 600; color: #fff; text-decoration: underline; text-underline-offset: 4px; text-decoration-color: rgba(255,255,255,.4); }
    .help-band__link svg { width: 16px; height: 16px; }
    .help-band__link:hover { text-decoration-color: #fff; }
    .help-band__side { position: relative; display: flex; flex-direction: column; gap: 14px; }
    .help-band__li { display: grid; grid-template-columns: 20px 1fr; gap: 12px; font-size: 15px; color: rgba(255,255,255,.92); line-height: 1.5; }
    .help-band__li svg { width: 18px; height: 18px; margin-top: 2px; }
    .help-band__li b { font-weight: 700; }
    .help-band__side .btn { align-self: flex-start; margin-top: 10px; }

    /* ============ Статьи ============ */
    .posts { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
    .post { display: flex; flex-direction: column; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 24px; transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
    .post:hover { transform: translateY(-4px); box-shadow: var(--shadow-lift); border-color: transparent; }
    .post__tag { align-self: flex-start; font-size: 11px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--brand-primary); background: rgba(0,86,255,.07); padding: 5px 10px; border-radius: var(--radius-pill); }
    .post__title { margin-top: 16px; font-size: 18px; letter-spacing: -.02em; line-height: 1.25; }
    .post__excerpt { margin-top: 10px; font-size: 14px; color: var(--text-secondary); line-height: 1.5; flex: 1; }
    .post__more { margin-top: 16px; display: inline-flex; align-items: center; gap: 7px; font-size: 14px; font-weight: 600; color: var(--brand-primary); }
    .post__more svg { width: 15px; height: 15px; }

    /* ============ Адаптив ============ */
    @media (max-width: 1080px) {
      .hub-facts { grid-template-columns: repeat(2, 1fr); }
      .hub-fact:nth-child(3) { border-left: 0; }
      .hub-fact:nth-child(n+3) { border-top: 1px solid var(--border); }
    }
    @media (max-width: 980px) {
      .hero--hub .hero__title { font-size: 42px; }
      .need, .cost, .vcnote { grid-template-columns: 1fr; gap: 32px; }
      .types { grid-template-columns: 1fr; }
      .hsteps { grid-template-columns: repeat(2, 1fr); gap: 32px; }
      .cities { grid-template-columns: 1fr 1fr; }
      .posts { grid-template-columns: 1fr 1fr; }
      .help-band { grid-template-columns: 1fr; padding: 36px 32px; gap: 32px; }
    }
    @media (max-width: 560px) {
      .hero--hub .hero__title { font-size: 33px; }
      .hub-facts { grid-template-columns: 1fr; }
      .hub-fact + .hub-fact { border-left: 0; border-top: 1px solid var(--border); }
      .hsteps, .cities, .posts { grid-template-columns: 1fr; }
      .tgroup { padding: 26px 24px; }
      .need__yes { padding: 28px 26px; }
    }
  

    /* Compact desktop modal — shared with homepage */
    @media (min-width: 769px) {
      #modal .modal__dialog { max-width: 600px; max-height: none; }
      #modal .modal__scroll { padding: 30px 34px; }
      #modal .form { margin-top: 18px; gap: 13px; }
      #modal .modal__subtitle { margin-top: 6px; }
      #modal .mrow { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
      #modal .field { gap: 5px; }
      #modal .input, #modal .select { min-height: 44px; padding: 10px 14px; }
      #modal .select { padding-right: 40px; }
      #modal .textarea { min-height: 56px; }
      #modal .channels { gap: 7px; }
      #modal .channel__box { padding: 8px 12px; }
      #modal .consents { display: grid; grid-template-columns: 1fr; gap: 10px 18px; }
      #modal .form > .btn--block { margin-top: 2px; }
      #modal .form__note { margin-top: 0; }
    }

    /* ---------- Flow icons: монохромная серая плитка ---------- */
    #how .flow__node { background: #F1F3F6; box-shadow: none; border: 0; border-radius: 18px; }
    #how .flow__node svg { color: #7A8699; }

    /* ---------- Breadcrumbs ---------- */
    .crumbs { padding-top: 22px; }
    .crumbs ol { list-style: none; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 13.5px; color: var(--text-muted); }
    .crumbs a { color: var(--text-secondary); }
    .crumbs a:hover { color: var(--brand-primary); }
    .crumbs li[aria-current] { color: var(--text-primary); font-weight: 600; }
    .crumbs svg { width: 14px; height: 14px; color: var(--border-strong); }

    /* ---------- Local hero facts (above the fold) ---------- */
    .hero--local { padding-top: 28px; }
    .hero__title .city { color: var(--brand-primary); }
    /* keep the white card above the angled blue panel (::before) */
    .hero__visual .factcard { position: relative; z-index: 1; }
    .hero__visual::before { z-index: 0; }
    .factcard {
      background: var(--surface); border: 1px solid var(--border);
      border-radius: var(--radius-xl); box-shadow: var(--shadow-lift);
      overflow: hidden;
    }
    .factcard__head {
      display: flex; align-items: center; gap: 10px;
      padding: 16px 22px; border-bottom: 1px solid var(--border);
      font-size: 13px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--text-secondary);
    }
    .factcard__head .pulse-dot { flex: none; }
    .factrow { display: grid; grid-template-columns: 28px 1fr; gap: 14px; padding: 18px 22px; border-bottom: 1px solid var(--border); }
    .factrow:last-child { border-bottom: 0; }
    .factrow > .factrow__op { width: 28px; height: 28px; border-radius: 8px; background: rgba(0,86,255,.08); color: var(--brand-primary); display: grid; place-items: center; line-height: 1; font-size: 12px; font-weight: 700; }
    .factrow > .factrow__op--v { background: rgba(16,185,129,.12); color: var(--success); }
    .factrow b { font-size: 15px; letter-spacing: -.01em; }
    .factrow span { display: block; font-size: 13.5px; color: var(--text-secondary); margin-top: 3px; line-height: 1.45; }
    .factrow .hours { display: inline-flex; align-items: center; gap: 6px; margin-top: 6px; font-size: 12.5px; font-weight: 600; color: var(--text-primary); }
    .factrow .hours svg { width: 14px; height: 14px; color: var(--text-muted); }

    /* ---------- VC address cards ---------- */
    .vcgrid { display: grid; grid-template-columns: 1fr; gap: 24px; max-width: 720px; }
    .vc { display: flex; flex-direction: column; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-xl); padding: 30px; transition: box-shadow .2s ease, border-color .2s ease; }
    .vc:hover { box-shadow: var(--shadow-lift); border-color: transparent; }
    .vc__top { display: flex; align-items: center; gap: 12px; }
    .vc__badge { font-size: 12px; font-weight: 700; letter-spacing: .03em; padding: 6px 12px; border-radius: var(--radius-pill); }
    .vc__badge--alma { color: var(--brand-primary); background: rgba(0,86,255,.08); }
    .vc__title { margin-top: 16px; font-size: 23px; letter-spacing: -.025em; }
    .vc__who { margin-top: 8px; font-size: 14px; color: var(--text-secondary); line-height: 1.5; }
    .vc__rows { margin-top: 20px; display: flex; flex-direction: column; gap: 14px; }
    .vc__row { display: grid; grid-template-columns: 22px 1fr; gap: 12px; align-items: start; font-size: 15px; color: var(--text-primary); line-height: 1.5; }
    .vc__row svg { width: 20px; height: 20px; color: var(--brand-primary); margin-top: 1px; flex: none; }
    .vc__row span.muted { color: var(--text-secondary); }
    .vc__row a { color: var(--brand-primary); font-weight: 500; word-break: break-word; }
    .vc__row a:hover { text-decoration: underline; }
    .vc__actions { margin-top: 22px; padding-top: 20px; border-top: 1px solid var(--border); display: flex; flex-wrap: wrap; gap: 10px; }

    /* ---------- Local angle callout ---------- */
    .angle { display: grid; grid-template-columns: 1.3fr 1fr; gap: 40px; align-items: center; }
    .angle__metric { background: var(--brand-gradient); color: #fff; border-radius: var(--radius-xl); padding: 36px; box-shadow: var(--shadow-glow); }
    .angle__metric b { display: block; font-size: 52px; font-weight: 700; letter-spacing: -.04em; line-height: 1; }
    .angle__metric span { display: block; margin-top: 12px; font-size: 16px; color: rgba(255,255,255,.9); line-height: 1.5; }
    .angle__list { margin-top: 22px; display: flex; flex-direction: column; gap: 14px; }
    .angle__li { display: grid; grid-template-columns: 24px 1fr; gap: 12px; font-size: 16.5px; color: var(--text-secondary); line-height: 1.55; }
    .angle__li svg { width: 22px; height: 22px; color: var(--brand-primary); margin-top: 2px; flex: none; }

    /* ---------- Service brief + price ---------- */
    .svc { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: center; }
    .pricebox { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-xl); padding: 32px; box-shadow: var(--shadow-card); }
    .pricebox__amount { font-size: 44px; font-weight: 700; letter-spacing: -.03em; line-height: 1; }
    .pricebox__amount span { font-size: 19px; font-weight: 600; color: var(--text-secondary); margin-left: 6px; }
    .pricebox__tag { display: inline-flex; align-items: center; gap: 7px; margin-top: 14px; padding: 6px 13px; border-radius: var(--radius-pill); background: rgba(16,185,129,.12); color: var(--success); font-size: 13px; font-weight: 600; }
    .pricebox__list { margin-top: 22px; display: flex; flex-direction: column; gap: 12px; }
    .pricebox__li { display: flex; justify-content: space-between; gap: 14px; font-size: 15px; color: var(--text-secondary); padding-bottom: 12px; border-bottom: 1px dashed var(--border-strong); }
    .pricebox__li:last-child { border-bottom: 0; padding-bottom: 0; }
    .pricebox__li b { color: var(--text-primary); font-weight: 600; white-space: nowrap; }
    .pricebox__note { margin-top: 18px; font-size: 13px; color: var(--text-muted); line-height: 1.5; }

    /* ---------- Inline section link ---------- */
    .moreline { margin-top: 26px; display: inline-flex; align-items: center; gap: 9px; font-size: 16px; font-weight: 600; color: var(--brand-primary); }
    .moreline svg { width: 18px; height: 18px; }
    .moreline:hover { gap: 13px; }

    /* ---------- Two centers + Yandex map ---------- */
    #centers .vcgrid { grid-template-columns: 1fr 1fr; max-width: none; }
    .vc__top { flex-wrap: wrap; gap: 10px; }
    .vc__badge--vms { color: #0E7C66; background: rgba(16,185,129,.12); }
    .vc__badge-note { font-size: 12.5px; color: var(--text-muted); font-weight: 500; align-self: center; }
    .vc__soft { font-size: 13px; color: var(--text-muted); align-self: center; }
    .vcmap { margin-top: 30px; border-radius: var(--radius-xl); overflow: hidden; border: 1px solid var(--border); box-shadow: var(--shadow-card); background: var(--surface-alt); }
    .vcmap iframe { display: block; width: 100%; height: 400px; border: 0; }
    .vcmap__cap { padding: 13px 20px; font-size: 13.5px; color: var(--text-secondary); border-top: 1px solid var(--border); display: flex; flex-wrap: wrap; gap: 6px 22px; background: var(--surface); }
    .vcmap__cap b { color: var(--text-primary); font-weight: 600; }
    .vcmap__pin { display: inline-flex; align-items: center; gap: 8px; }
    .vcmap__pin::before { content: ""; width: 10px; height: 10px; border-radius: 50%; flex: none; }
    .vcmap__pin--vms::before { background: #E64A3B; }
    .vcmap__pin--alma::before { background: #2C6BE6; }

    /* ---------- Compare table (VMS vs Almaviva) ---------- */
    .ctable-wrap { overflow-x: auto; border: 1px solid var(--border); border-radius: var(--radius-xl); box-shadow: var(--shadow-card); background: var(--surface); -webkit-overflow-scrolling: touch; }
    .ctable { width: 100%; border-collapse: collapse; min-width: 680px; }
    .ctable th, .ctable td { text-align: left; padding: 16px 20px; border-bottom: 1px solid var(--border); font-size: 14.5px; line-height: 1.5; vertical-align: top; }
    .ctable thead th { background: var(--surface-alt); }
    .ctable thead th:first-child { color: var(--text-muted); font-weight: 600; font-size: 13px; }
    .ctable thead .op { display: inline-flex; align-items: center; gap: 9px; font-size: 16px; font-weight: 700; letter-spacing: -.01em; color: var(--text-primary); }
    .ctable thead .dot { width: 10px; height: 10px; border-radius: 50%; flex: none; }
    .ctable thead .dot--vms { background: #E64A3B; }
    .ctable thead .dot--alma { background: #2C6BE6; }
    .ctable tbody th { font-weight: 600; color: var(--text-secondary); width: 24%; }
    .ctable td strong { color: var(--text-primary); font-weight: 600; }
    .ctable td a { color: var(--brand-primary); }
    .ctable td a:hover { text-decoration: underline; }
    .ctable .col-alma { background: rgba(0,86,255,.035); }
    .ctable tbody tr:last-child th, .ctable tbody tr:last-child td { border-bottom: 0; }
    .ctable .ok { color: var(--success); font-weight: 600; }
    .ctable .dash { color: var(--text-muted); }
    .ctable .muted { color: var(--text-muted); font-weight: 500; }
    .cmp-note { margin-top: 24px; display: grid; grid-template-columns: 22px 1fr; gap: 13px; font-size: 15px; color: var(--text-secondary); line-height: 1.6; max-width: 860px; }
    .cmp-note svg { width: 21px; height: 21px; color: var(--brand-primary); margin-top: 2px; flex: none; }
    .pricebox__li .muted { color: var(--text-muted); font-weight: 500; }

    /* ---------- Blog post previews ---------- */
    .posts { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
    .post { display: flex; flex-direction: column; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 24px; transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
    .post:hover { transform: translateY(-4px); box-shadow: var(--shadow-lift); border-color: transparent; }
    .post__tag { align-self: flex-start; font-size: 11px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--brand-primary); background: rgba(0,86,255,.07); padding: 5px 10px; border-radius: var(--radius-pill); }
    .post__title { margin-top: 16px; font-size: 18px; letter-spacing: -.02em; line-height: 1.25; }
    .post__excerpt { margin-top: 10px; font-size: 14px; color: var(--text-secondary); line-height: 1.5; flex: 1; }
    .post__more { margin-top: 16px; display: inline-flex; align-items: center; gap: 7px; font-size: 14px; font-weight: 600; color: var(--brand-primary); }
    .post__more svg { width: 15px; height: 15px; }

    @media (max-width: 900px) {
      .vcgrid { grid-template-columns: 1fr; }
      #centers .vcgrid { grid-template-columns: 1fr; }
      .angle, .svc { grid-template-columns: 1fr; gap: 28px; }
      .posts { grid-template-columns: 1fr 1fr; }
    }
    @media (max-width: 560px) {
      .posts { grid-template-columns: 1fr; }
      .vc { padding: 24px; }
    }

    /* ---------- Solution flow (vertical timeline) ---------- */
    .qflow { max-width: 820px; margin: 8px auto 0; display: flex; flex-direction: column; }
    .qstep { position: relative; display: grid; grid-template-columns: 56px 1fr; gap: 22px; padding-bottom: 34px; }
    .qstep:last-child { padding-bottom: 0; }
    .qstep::before { content: ""; position: absolute; left: 27px; top: 56px; bottom: 0; width: 2px; background: var(--border-strong); }
    .qstep:last-child::before { display: none; }
    .qstep__num { position: relative; z-index: 1; width: 56px; height: 56px; border-radius: 50%; background: var(--brand-gradient); color:#fff; display:grid; place-items:center; font-size: 20px; font-weight: 700; box-shadow: 0 10px 22px rgba(0,86,255,.28); border: 4px solid var(--surface); }
    .qstep__body { padding-top: 6px; }
    .qstep__title { font-size: 19px; font-weight: 700; letter-spacing: -.02em; }
    .qstep__text { margin-top: 6px; font-size: 15.5px; color: var(--text-secondary); line-height: 1.55; }
    .qstep__text b { color: var(--text-primary); font-weight: 600; }
    .qflow-cta { margin-top: 40px; text-align: center; }

    /* ---------- Timing cards ---------- */
    .tcards { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; }
    .tcard { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-xl); padding: 28px; }
    .tcard__k { display:inline-flex; align-items:center; gap:8px; font-size: 12px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color: var(--brand-primary); }
    .tcard__k svg { width: 18px; height: 18px; }
    .tcard__v { margin-top: 14px; font-size: 30px; font-weight: 700; letter-spacing: -.03em; line-height: 1.1; }
    .tcard__d { margin-top: 8px; font-size: 14.5px; color: var(--text-secondary); line-height: 1.5; }
    .alert { margin-top: 28px; display: grid; grid-template-columns: 24px 1fr; gap: 14px; padding: 20px 24px; border-radius: var(--radius-xl); background: rgba(0,86,255,.05); border: 1px solid rgba(0,86,255,.14); font-size: 15px; color: var(--text-secondary); line-height: 1.6; }
    .alert svg { width: 22px; height: 22px; color: var(--brand-primary); margin-top: 1px; flex:none; }
    .alert b { color: var(--text-primary); font-weight: 600; }

    /* ---------- Checklist ---------- */
    .checklist { display: grid; grid-template-columns: repeat(2,1fr); gap: 14px 32px; max-width: 820px; }
    .check-item { display: grid; grid-template-columns: 24px 1fr; gap: 12px; font-size: 16px; color: var(--text-primary); line-height: 1.5; }
    .check-item svg { width: 22px; height: 22px; color: var(--success); margin-top: 1px; flex: none; }
    .check-item span { color: var(--text-secondary); }

    /* ---------- Plan (included / excluded) ---------- */
    .plan { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
    .plan__col { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-xl); padding: 28px; }
    .plan__col--out { background: var(--surface-alt); }
    .plan__h { display:flex; align-items:center; gap:10px; font-size: 16px; font-weight: 700; }
    .plan__h svg { width: 20px; height: 20px; }
    .plan__h .in { color: var(--success); }
    .plan__h .out { color: var(--text-muted); }
    .plan__list { margin-top: 18px; display:flex; flex-direction:column; gap: 12px; }
    .plan__li { display:grid; grid-template-columns: 20px 1fr; gap: 11px; font-size: 15px; color: var(--text-secondary); line-height:1.5; }
    .plan__li svg { width: 18px; height:18px; margin-top:2px; flex:none; }
    .plan__li b { color: var(--text-primary); font-weight:600; }
    .plan__li .s-in { color: var(--success); }
    .plan__li .s-out { color: var(--text-muted); }

    /* ---------- Cities ---------- */
    .cities { display: grid; grid-template-columns: repeat(4,1fr); gap: 14px; }
    .city-card { display:flex; align-items:center; justify-content: space-between; gap: 10px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 18px 20px; font-size: 16px; font-weight: 600; color: var(--text-primary); transition: border-color .2s, box-shadow .2s, transform .2s; }
    .city-card:hover { border-color: transparent; box-shadow: var(--shadow-lift); transform: translateY(-2px); }
    .city-card svg { width: 18px; height: 18px; color: var(--brand-primary); flex:none; }

    @media (max-width: 900px){ .tcards{grid-template-columns:1fr} .checklist,.plan,.cities{grid-template-columns:1fr 1fr} }
    @media (max-width: 560px){ .checklist,.plan,.cities{grid-template-columns:1fr} .qstep{grid-template-columns:44px 1fr; gap:16px} .qstep::before{left:21px; top:48px} .qstep__num{width:44px;height:44px;font-size:17px} }
  

/* shared additions */
.prose{max-width:840px;font-size:16.5px;color:var(--text-secondary);line-height:1.65;text-wrap:pretty}
.prose p+p{margin-top:16px}
.prose b{color:var(--text-primary);font-weight:600}
.prose a{color:var(--brand-primary);font-weight:500}
.prose a:hover{text-decoration:underline}
.prose ul{margin-top:12px;display:flex;flex-direction:column;gap:8px}
.prose li{display:grid;grid-template-columns:18px 1fr;gap:10px}
.prose li::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--brand-gradient);margin:8px 0 0 4px}
