/* REGENIQUE Professional — homepage / landing component styles.
 * Lifted from main_landing/pro-homepage-v10.html (the locked design source),
 * with the fixed-width body relaxed to full-bleed, a WordPress Navigation-block
 * re-skin, and a mobile/responsive layer (the mockup is desktop-only).
 * Brand tokens (color, type, spacing) also live in theme.json; the :root vars
 * below drive these section components verbatim from the design. */
:root {
    --paper:     #ffffff;
    --paper-lt:  #fafbfc;
    --paper-dk:  #f0f3f7;
    --card:      #f6f8fb;
    --ink:       #00273e;
    --body:      #43454b;
    --blue:      #0c338f;
    --blue-dk:   #082261;
    --turquoise: #2dbdb6;
    --rule:      rgba(12,51,143,0.55);
    --hairline:  rgba(0,39,62,0.10);
    --hairline-stronger: rgba(0,39,62,0.18);
  }
  *,*::before,*::after { box-sizing: border-box; }
  html,body { margin: 0; padding: 0; }
  body {
    width: 100%;
    margin: 0;
    background: var(--paper);
    color: var(--ink);
    font-family: "Inter", system-ui, sans-serif;
    font-weight: 400;
    font-size: 16px;
    line-height: 1.55;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
  }
  img { display: block; max-width: 100%; }
  a { color: inherit; text-decoration: none; }

  .skinlines { position: absolute; inset: 0; pointer-events: none; z-index: 0; overflow: hidden; }
  .skinlines svg { width: 100%; height: 100%; display: block; }
  .skinlines path { fill: none; stroke: var(--ink); stroke-width: 0.6; opacity: 0.07; }

  .wrap { max-width: 1248px; margin: 0 auto; padding: 0 96px; position: relative; z-index: 1; }

  h1, h2, h3 { font-family: "Playfair Display", Georgia, serif; font-weight: 400; color: var(--ink); letter-spacing: -0.005em; margin: 0; }
  h1 { font-size: 76px; line-height: 1.05; }
  h2 { font-size: 44px; line-height: 1.15; }
  h3 { font-size: 26px; line-height: 1.3; }
  p { margin: 0 0 14px; max-width: 60ch; }
  .eyebrow {
    font-family: "Inter", sans-serif;
    font-size: 11px;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--blue);
    font-weight: 500;
    margin-bottom: 18px;
    display: inline-block;
  }
  .lede { font-size: 18px; line-height: 1.6; color: var(--body); max-width: 56ch; }

  .it {
    font-family: "Playfair Display", serif;
    font-style: italic;
    font-weight: 400;
    color: var(--blue);
  }
  /* italic heading accents (core-block pages use <em>, the homepage uses .it):
     dark blue on light sections everywhere — dark sections override (turquoise). */
  h1 em, h2 em, h3 em, .wp-block-heading em { color: var(--blue); font-style: italic; }

  .btn {
    display: inline-block;
    font-family: "Inter", sans-serif;
    font-size: 13px;
    letter-spacing: 0.10em;
    padding: 14px 28px;
    background: var(--blue);
    color: var(--paper);
    border-radius: 2px;
    transition: all 200ms ease;
    font-weight: 500;
    border: 1px solid var(--blue);
    cursor: pointer;
    text-align: center;
  }
  .btn:hover { background: var(--blue-dk); border-color: var(--blue-dk); }
  .btn-ghost { background: transparent; color: var(--ink); border-color: var(--ink); }
  .btn-ghost:hover { background: var(--ink); color: var(--paper); }
  .btn-block { display: block; width: 100%; }
  .tlink {
    display: inline-block;
    color: var(--blue);
    border-bottom: 1px solid var(--blue);
    padding-bottom: 2px;
    font-size: 15px;
    letter-spacing: 0.02em;
    font-weight: 500;
  }
  .tlink:hover { color: var(--blue-dk); border-bottom-color: var(--blue-dk); }

  /* NAV */
  /* !important: the theme also enqueues its baked-in homepage.css (stale zip
     copy) AFTER global-styles, so override it explicitly. The header/footer
     separators are a CONTENT-WIDTH (1056px) blue line — matching the site
     column, not a full-bleed edge-to-edge border (cf. staging.regenique.ru). */
  .nav { z-index: 50; background: rgba(255,255,255,0.94); backdrop-filter: blur(12px); border-bottom: none !important; }
  .nav::after { content: ""; display: block; height: 1px; background: var(--blue); max-width: 1056px; margin: 0 auto; }
  .nav-inner { display: flex; align-items: center; justify-content: space-between; height: 76px; max-width: 1248px; margin: 0 auto; padding: 0 96px; }
  .nav-logo img { height: 24px; width: auto; display: block; }

  /* HERO */
  .hero { position: relative; overflow: hidden; }
  .hero-grid { display: grid; grid-template-columns: 1fr 1fr; min-height: 720px; position: relative; z-index: 2; }
  .hero-text { padding: 120px 80px 120px 96px; display: flex; flex-direction: column; justify-content: center; position: relative; }
  .hero-text .skinlines { z-index: 0; }
  .hero h1 {
    font-family: 'Playfair Display', Georgia, serif;
    font-weight: 400; font-style: normal;
    color: var(--ink);
    font-size: 76px; line-height: 1.02; letter-spacing: -0.018em;
    margin: 0 0 28px; max-width: 17ch;
    position: relative; z-index: 2;
  }
  .hero h1 .it {
    font-family: "Playfair Display", serif;
    font-style: italic;
    font-weight: 400;
    color: var(--blue);
  }
  .hero .lede { margin-bottom: 40px; position: relative; z-index: 2; }
  .hero-cta-row { display: flex; gap: 24px; align-items: center; flex-wrap: wrap; position: relative; z-index: 2; }
  .hero-tertiary { margin-top: 22px; font-size: 13px; color: var(--body); opacity: 0.7; font-style: italic; position: relative; z-index: 2; }
  .hero-image { background: var(--paper-dk); overflow: hidden; position: relative; }
  .hero-image img { width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; }
  .hero-image-caption {
    position: absolute;
    bottom: 24px; right: 28px;
    font-size: 11px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--paper);
    background: rgba(12,51,143,0.65);
    padding: 6px 12px;
    backdrop-filter: blur(4px);
  }

  /* HERO CREDENTIALS — slim strip below hero, no big Playfair numbers */
  .hero-creds {
    border-top: 1px solid var(--rule);
    border-bottom: 1px solid var(--rule);
    background: var(--paper-lt);
    padding: 22px 0;
  }
  .hero-creds-inner {
    max-width: 1248px;
    margin: 0 auto;
    padding: 0 96px;
    text-align: center;
    font-size: 11px;
    letter-spacing: 0.20em;
    text-transform: uppercase;
    color: var(--ink);
    font-weight: 500;
  }
  .hero-creds-inner .sep {
    color: var(--blue);
    margin: 0 12px;
    opacity: 0.6;
  }

  /* CLINICAL RESULTS — 4 studies */
  .results-zone { padding: 120px 0 96px; position: relative; border-bottom: 1px solid var(--rule); }
  .results-zone-head { margin-bottom: 64px; position: relative; z-index: 2; max-width: 56ch; }
  .results-zone-head h2 { max-width: 30ch; }
  .study-grid {
    position: relative; z-index: 2;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 28px;
  }
  .study-card {
    background: var(--paper-lt);
    border: 1px solid var(--hairline-stronger);
    border-radius: 2px;
    padding: 40px 36px 32px;
    display: flex;
    flex-direction: column;
  }
  .study-meta {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-bottom: 18px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--hairline-stronger);
  }
  .study-num {
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--blue);
    font-weight: 500;
  }
  .study-n {
    font-family: "Inter", monospace;
    font-size: 13px;
    color: var(--ink);
    font-weight: 500;
    letter-spacing: 0.04em;
  }
  .study-protocol {
    font-family: "Playfair Display", serif;
    font-weight: 400;
    font-size: 22px;
    color: var(--ink);
    line-height: 1.3;
    margin-bottom: 8px;
    letter-spacing: -0.005em;
  }
  .study-pi {
    font-size: 15px;
    color: var(--body);
    font-style: italic;
    margin-bottom: 28px;
    line-height: 1.5;
  }
  .study-stats {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
    margin-bottom: 24px;
  }
  .study-stat {
    border-top: 1px solid var(--hairline);
    padding-top: 12px;
  }
  .study-stat-num {
    font-family: "Playfair Display", serif;
    font-weight: 400;
    font-size: 42px;
    line-height: 1;
    color: var(--ink);
    letter-spacing: -0.02em;
    margin-bottom: 8px;
  }
  .study-stat-num .unit { color: var(--blue); font-style: italic; font-size: 0.55em; }
  .study-stat-num .sign { color: var(--blue); font-style: italic; }
  .study-stat-num.neg .sign { color: var(--blue); }
  .study-stat-lbl {
    font-size: 11px;
    color: var(--body);
    letter-spacing: 0.06em;
    text-transform: uppercase;
    line-height: 1.4;
  }
  .study-method {
    margin-top: auto;
    padding-top: 16px;
    border-top: 1px solid var(--hairline);
    font-size: 11px;
    color: var(--body);
    opacity: 0.8;
    line-height: 1.5;
    font-style: italic;
  }

  /* BEFORE / AFTER CASES — side by side */
  .cases { padding: 112px 0 96px; position: relative; overflow: hidden; border-bottom: 1px solid var(--rule); background: var(--paper-lt); }
  .cases-head { margin-bottom: 48px; position: relative; z-index: 2; }
  .cases-head h2 { max-width: 30ch; }
  .cases-grid { position: relative; z-index: 2; display: grid; grid-template-columns: repeat(2, 1fr); gap: 44px 34px; }
  .ba-case { display: flex; flex-direction: column; }
  .ba-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
  .ba-cell { position: relative; aspect-ratio: 3/4; overflow: hidden; border-radius: 2px; border: 1px solid var(--hairline-stronger); background: var(--paper-dk); }
  .ba-cell img { width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; }
  .ba-crop .ba-cell img { transform: scale(1.14); transform-origin: top center; }
  .ba-tag { position: absolute; top: 12px; z-index: 2; font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--paper); background: rgba(0,39,62,0.55); padding: 4px 9px; backdrop-filter: blur(3px); }
  .ba-tag-before { left: 12px; }
  .ba-tag-after { right: 12px; }
  .ba-cap { padding: 16px 2px 0; }
  .ba-cap-title { font-family: "Playfair Display", serif; font-weight: 400; font-size: 18px; color: var(--ink); line-height: 1.3; letter-spacing: -0.005em; }
  .ba-cap-meta { margin-top: 5px; font-size: 13px; color: var(--body); line-height: 1.45; }

  /* MID-CTA — between studies and products */
  .mid-cta {
    background: var(--paper-lt);
    border-bottom: 1px solid var(--rule);
    padding: 56px 0;
    text-align: center;
  }
  .mid-cta h3 {
    font-size: 28px;
    margin-bottom: 22px;
    max-width: none;
  }
  .mid-cta h3 .it { color: var(--blue); }
  .mid-cta .btn { padding: 16px 36px; }

  /* PRO PRODUCT LINE */
  .pro-products { padding: 112px 0; position: relative; border-bottom: 1px solid var(--rule); }
  .pro-products-head { margin-bottom: 56px; }
  .pro-products-head h2 { max-width: 30ch; }
  .pro-products-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
  }
  .pro-product {
    display: flex;
    flex-direction: column;
    background: var(--paper-lt);
    border: 1px solid var(--hairline-stronger);
    border-radius: 2px;
    overflow: hidden;
  }
  .pro-product-photo {
    aspect-ratio: 1/1;
    background: var(--paper);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 36px;
    overflow: hidden;
    border-bottom: 1px solid var(--hairline-stronger);
  }
  .pro-product-photo img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; }
  .pro-product-body {
    padding: 28px 28px 32px;
    display: flex;
    flex-direction: column;
    flex: 1;
  }
  .pro-product-label {
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--blue);
    margin-bottom: 10px;
    font-weight: 500;
  }
  .pro-product-name {
    font-family: "Playfair Display", serif;
    font-size: 22px;
    font-weight: 400;
    color: var(--ink);
    line-height: 1.25;
    margin-bottom: 8px;
    letter-spacing: -0.005em;
  }
  .pro-product-format {
    font-size: 13px;
    color: var(--body);
    font-style: italic;
    margin-bottom: 18px;
  }
  .pro-product-body p {
    font-size: 15px;
    color: var(--body);
    line-height: 1.55;
    margin: 0;
  }

  /* COMPATIBILITY — equipment categories, generic */
  .compat { padding: 112px 0; position: relative; overflow: hidden; border-bottom: 1px solid var(--rule); background: var(--paper-lt); }
  .compat-head { margin-bottom: 56px; position: relative; z-index: 2; }
  .compat-head h2 { max-width: 30ch; }
  .compat-grid { position: relative; z-index: 2; display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
  .compat-card {
    background: var(--paper);
    border: 1px solid var(--hairline-stronger);
    padding: 36px 32px;
    border-radius: 2px;
  }
  .compat-icon { width: 40px; height: 40px; color: var(--blue); margin-bottom: 22px; }
  .compat-icon svg { width: 100%; height: 100%; stroke: currentColor; fill: none; stroke-width: 1.3; }
  .compat-name {
    font-family: "Playfair Display", serif;
    font-weight: 400;
    font-size: 22px;
    color: var(--ink);
    margin-bottom: 14px;
    letter-spacing: -0.005em;
  }
  .compat-body { font-size: 15px; color: var(--body); line-height: 1.55; }
  .compat-foot { margin-top: 36px; padding: 24px 32px; background: var(--paper); border: 1px solid var(--hairline-stronger); border-radius: 2px; text-align: center; position: relative; z-index: 2; max-width: none; font-size: 15px; color: var(--ink); }

  /* DOCTORS */
  .doctors { padding: 112px 0; position: relative; border-bottom: 1px solid var(--rule); overflow: hidden; }
  .doctors-head { margin-bottom: 56px; position: relative; z-index: 2; }
  .doctors-head h2 { max-width: 30ch; }
  .doctor-row { display: grid; grid-template-columns: repeat(7, 1fr); gap: 20px; position: relative; z-index: 2; }
  .doctor-card { text-align: center; }
  .doctor-portrait { width: 120px; height: 120px; margin: 0 auto 18px; border-radius: 50%; overflow: hidden; background: var(--paper-dk); border: 1px solid var(--hairline-stronger); display: flex; align-items: center; justify-content: center; }
  .doctor-portrait img { width: 100%; height: 100%; object-fit: cover; }
  .doctor-portrait .avatar-letter { font-family: "Playfair Display", serif; font-size: 44px; font-weight: 400; color: var(--blue); }
  .doctor-name { font-family: "Playfair Display", serif; font-size: 18px; font-weight: 400; color: var(--ink); margin-bottom: 6px; }
  .doctor-cred { font-size: 13px; line-height: 1.5; color: var(--body); min-height: 90px; }

  /* REAL-USE VIDEOS */
  .usevid { padding: 112px 0; position: relative; overflow: hidden; border-bottom: 1px solid var(--rule); }
  .usevid-head { margin-bottom: 44px; }
  .usevid-head h2 { max-width: 30ch; }
  .usevid-sublabel { font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--blue); font-weight: 500; margin-bottom: 22px; padding-bottom: 12px; border-bottom: 1px solid var(--hairline-stronger); }
  .vid-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
  .vid-card { display: flex; flex-direction: column; }
  .vid-frame { position: relative; aspect-ratio: 1/1; background: var(--ink); overflow: hidden; border-radius: 2px; border: 1px solid var(--hairline-stronger); }
  .vid-frame video { width: 100%; height: 100%; object-fit: cover; display: block; }
  .vid-grid-portrait .vid-frame { aspect-ratio: 9/16; }
  .vid-cap { padding: 16px 2px 0; }
  .vid-cap-title { font-family: "Playfair Display", serif; font-weight: 400; font-size: 18px; color: var(--ink); letter-spacing: -0.005em; line-height: 1.25; }
  .vid-cap-meta { margin-top: 4px; font-size: 13px; color: var(--body); line-height: 1.45; }

  /* INSTITUTIONS STRIP */
  .institutions {
    padding: 56px 0;
    border-bottom: 1px solid var(--rule);
    background: var(--paper-lt);
  }
  .institutions-lbl {
    font-size: 11px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--blue);
    margin: 0 auto 18px;
    font-weight: 500;
    text-align: center;
    max-width: none;
  }
  .institutions-list {
    font-family: "Playfair Display", serif;
    font-size: 18px;
    color: var(--ink);
    text-align: center;
    line-height: 1.7;
    letter-spacing: -0.005em;
    max-width: none;
    margin: 0 auto;
  }
  .institutions-list span {
    display: inline-block;
    margin: 0 10px;
  }

  /* PARTNER CLINIC LOGOS */
  .clinics { padding: 96px 0; position: relative; border-bottom: 1px solid var(--rule); }
  /* .clinics prefix beats the stale baked copy of this file (higher specificity) */
  .clinics .clinics-head { margin-bottom: 48px; text-align: left; }
  .clinics-head h3 { font-size: 24px; margin-bottom: 8px; }
  .clinics .clinics-head p { color: var(--body); margin: 0; max-width: 62ch; font-size: 15px; }
  .clinics-grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 0;
    border-top: 1px solid var(--hairline-stronger);
    border-left: 1px solid var(--hairline-stronger);
  }
  .clinic-cell {
    border-right: 1px solid var(--hairline-stronger);
    border-bottom: 1px solid var(--hairline-stronger);
    background: var(--paper);
    padding: 24px 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 120px;
  }
  .clinic-cell img {
    max-height: 60px;
    max-width: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
    mix-blend-mode: multiply;
    opacity: 0.88;
    transition: opacity 200ms;
  }
  .clinic-cell:hover img { opacity: 1; }

  /* BROADER APPLICATIONS */
  .applications { padding: 112px 0; position: relative; overflow: hidden; border-bottom: 1px solid var(--rule); background: var(--paper-lt); }
  .applications-head { margin-bottom: 56px; position: relative; z-index: 2; }
  .applications-head h2 { max-width: 30ch; }
  .applications-grid {
    position: relative; z-index: 2;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
  }
  .application-card {
    background: var(--paper);
    border: 1px solid var(--hairline-stronger);
    border-radius: 2px;
    padding: 32px 28px;
    display: flex;
    flex-direction: column;
  }
  .application-stat {
    font-family: "Playfair Display", serif;
    font-weight: 400;
    font-size: 56px;
    line-height: 1;
    color: var(--ink);
    letter-spacing: -0.025em;
    margin-bottom: 18px;
  }
  .application-stat .sign { color: var(--blue); font-style: italic; }
  .application-stat .unit { color: var(--blue); font-style: italic; font-size: 0.5em; }
  .application-name {
    font-family: "Playfair Display", serif;
    font-weight: 400;
    font-size: 22px;
    color: var(--ink);
    margin-bottom: 12px;
    letter-spacing: -0.005em;
  }
  .application-body {
    font-size: 15px;
    color: var(--body);
    line-height: 1.55;
    margin-bottom: 16px;
  }
  .application-source {
    margin-top: auto;
    padding-top: 14px;
    border-top: 1px solid var(--hairline);
    font-size: 11px;
    color: var(--body);
    font-style: italic;
    opacity: 0.85;
  }

  /* SCIENCE */
  .science { padding: 112px 0; position: relative; overflow: hidden; border-bottom: 1px solid var(--rule); }
  .science-grid {
    position: relative; z-index: 2;
    display: grid;
    grid-template-columns: 1.1fr 1fr;
    gap: 80px;
    align-items: start;
  }
  .science-head h2 { max-width: 30ch; margin-bottom: 22px; }
  .science-head p.lede { margin-bottom: 28px; }
  .science-quotes {
    border-top: 2px solid var(--ink);
    padding-top: 28px;
  }
  .science-quote {
    border-bottom: 1px solid var(--hairline);
    padding: 22px 0;
    font-size: 15px;
    line-height: 1.55;
    color: var(--ink);
  }
  .science-quote:last-of-type { border-bottom: none; }
  .science-quote .role {
    font-size: 11px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--blue);
    margin-bottom: 8px;
    font-weight: 500;
  }
  .science-stats {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0;
    border-top: 2px solid var(--ink);
  }
  .science-stat {
    padding: 28px 24px 28px 0;
    border-bottom: 1px solid var(--hairline-stronger);
    border-right: 1px solid var(--hairline-stronger);
  }
  .science-stat:nth-child(2n) { border-right: none; padding-left: 24px; padding-right: 0; }
  .science-stat:nth-last-child(-n+2) { border-bottom: none; }
  .science-stat-num {
    font-family: "Playfair Display", serif;
    font-weight: 400;
    font-size: 52px;
    line-height: 1;
    color: var(--ink);
    letter-spacing: -0.025em;
    margin-bottom: 10px;
  }
  .science-stat-num .unit { color: var(--blue); font-style: italic; font-size: 0.5em; margin-left: 2px; }
  .science-stat-lbl {
    font-size: 11px;
    color: var(--ink);
    line-height: 1.5;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    max-width: 22ch;
  }
  .science-stat-detail {
    margin-top: 8px;
    font-size: 11px;
    color: var(--body);
    line-height: 1.4;
    font-style: italic;
    opacity: 0.85;
  }

  /* HOME CARE BRIDGE */
  .bridge { padding: 112px 0; position: relative; overflow: hidden; border-bottom: 1px solid var(--rule); background: var(--ink); color: var(--paper); }
  .bridge .wrap { position: relative; z-index: 2; }
  .bridge .eyebrow { color: var(--turquoise); margin-bottom: 18px; }
  .bridge h2 { color: var(--paper); max-width: 22ch; margin-bottom: 22px; line-height: 1.1; font-size: 52px; }
  .bridge h2 .it { color: var(--turquoise); }
  .bridge .lede { color: rgba(255,255,255,0.78); margin-bottom: 32px; font-size: 18px; line-height: 1.55; max-width: 60ch; }
  .bridge-quote {
    font-family: "Playfair Display", serif;
    font-style: italic;
    font-size: 22px;
    line-height: 1.4;
    color: var(--paper);
    max-width: 56ch;
    padding-left: 28px;
    border-left: 2px solid var(--turquoise);
    margin: 36px 0 40px;
  }
  .bridge .btn { background: var(--paper); color: var(--ink); border-color: var(--paper); padding: 16px 36px; }
  .bridge .btn:hover { background: var(--turquoise); color: var(--ink); border-color: var(--turquoise); }
  .bridge-cta-row { display: flex; gap: 16px; flex-wrap: wrap; align-items: center; }
  .bridge .btn-line { background: transparent; color: var(--paper); border-color: var(--paper); }
  .bridge .btn-line:hover { background: var(--paper); color: var(--ink); border-color: var(--paper); }
  .bridge-meta {
    margin-top: 56px;
    display: flex;
    gap: 56px;
    padding-top: 32px;
    border-top: 1px solid rgba(255,255,255,0.15);
  }
  .bridge-meta-num {
    font-family: "Playfair Display", serif;
    font-weight: 400;
    font-size: 56px;
    color: var(--paper);
    line-height: 1;
    margin-bottom: 8px;
  }
  .bridge-meta-num .unit { color: var(--turquoise); font-style: italic; font-size: 0.5em; }
  .bridge-meta-lbl { font-size: 11px; color: rgba(255,255,255,0.65); letter-spacing: 0.10em; text-transform: uppercase; max-width: 24ch; line-height: 1.45; }

  /* PUBLICATIONS / BLOG */
  .publications { padding: 112px 0; position: relative; border-bottom: 1px solid var(--rule); overflow: hidden; }
  .publications-head { margin-bottom: 56px; }
  .publications-head h2 { max-width: 30ch; }
  .pub-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 28px; }
  .pub-card {
    background: var(--paper);
    border: 1px solid var(--hairline-stronger);
    border-radius: 2px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: border-color 200ms;
  }
  .pub-card:hover { border-color: var(--blue); }
  .pub-card-tag {
    padding: 14px 22px 0;
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--blue);
    font-weight: 500;
  }
  .pub-card-title {
    padding: 8px 22px 18px;
    font-family: "Playfair Display", serif;
    font-weight: 400;
    font-size: 18px;
    color: var(--ink);
    line-height: 1.3;
    letter-spacing: -0.005em;
    flex: 1;
  }
  .pub-card-cta {
    padding: 14px 22px;
    border-top: 1px solid var(--hairline);
    font-size: 13px;
    color: var(--blue);
    letter-spacing: 0.04em;
    font-weight: 500;
  }

  /* NEWS / SEMINARS FEED — mirrors the live dynamic posts widget */
  .news-feed { margin-bottom: 0; }
  .news-sublabel {
    font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase;
    color: var(--blue); font-weight: 500; margin-bottom: 22px;
    padding-bottom: 14px; border-bottom: 1px solid var(--hairline-stronger);
  }
  .news-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 28px; }
  .news-card {
    display: flex; flex-direction: column;
    background: var(--paper);
    border: 1px solid var(--hairline-stronger);
    border-radius: 2px;
    overflow: hidden;
    transition: border-color 200ms;
  }
  .news-card:hover { border-color: var(--blue); }
  .news-card-photo { aspect-ratio: 3/4; background: var(--paper-dk); overflow: hidden; }
  .news-card-photo img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 450ms ease; }
  .news-card:hover .news-card-photo img { transform: scale(1.03); }
  .news-card-body { padding: 16px 18px 18px; display: flex; flex-direction: column; flex: 1; }
  .news-card-cat { font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--blue); font-weight: 500; margin-bottom: 8px; }
  .news-card-title { font-family: "Playfair Display", serif; font-weight: 400; font-size: 15px; color: var(--ink); line-height: 1.32; letter-spacing: -0.005em; }
  .news-card-date { margin-top: auto; padding-top: 14px; font-size: 11px; color: var(--body); opacity: 0.65; letter-spacing: 0.04em; }

  /* PARTNER VISITS */
  .visits { padding: 112px 0; position: relative; border-bottom: 1px solid var(--rule); overflow: hidden; background: var(--paper-lt); }
  .visits-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 64px;
    align-items: center;
  }
  .visits-text h2 { max-width: 22ch; margin-bottom: 22px; }
  .visits-text p { color: var(--body); font-size: 16px; line-height: 1.6; margin-bottom: 22px; }
  .visits-text .lede { font-size: 18px; }
  .visits-text .it { color: var(--blue); }
  .visits-text .btn { margin-top: 16px; }
  .visits-photo {
    aspect-ratio: 1/1;
    background: var(--ink);
    color: var(--paper);
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 2px;
    position: relative;
    overflow: hidden;
  }
  .visits-photo video { width: 100%; height: 100%; object-fit: cover; display: block; }
  .visits-photo-tag {
    position: absolute;
    top: 16px; left: 16px;
    z-index: 2;
    font-size: 11px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--turquoise);
    background: rgba(0,39,62,0.55);
    padding: 6px 12px;
    backdrop-filter: blur(4px);
    font-weight: 500;
  }

  /* CONTACT FORM */
  .contact { padding: 120px 0; position: relative; border-bottom: 1px solid var(--rule); }
  .contact-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 80px;
    align-items: start;
  }
  .contact-text h2 { margin-bottom: 22px; max-width: 22ch; }
  .contact-text p { color: var(--body); margin-bottom: 28px; }
  .contact-meta {
    margin-top: 36px;
    padding-top: 28px;
    border-top: 1px solid var(--hairline);
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
  }
  .contact-meta-lbl {
    font-size: 11px;
    letter-spacing: 0.10em;
    text-transform: uppercase;
    color: var(--blue);
    font-weight: 500;
    margin-bottom: 8px;
  }
  .contact-meta-val {
    font-family: "Playfair Display", serif;
    font-size: 18px;
    color: var(--ink);
  }
  .contact-form {
    background: var(--paper-lt);
    border: 1px solid var(--hairline-stronger);
    padding: 40px;
    border-radius: 2px;
  }
  .contact-form label {
    display: block;
    font-size: 11px;
    letter-spacing: 0.10em;
    text-transform: uppercase;
    color: var(--ink);
    font-weight: 500;
    margin-bottom: 6px;
  }
  .contact-form input,
  .contact-form textarea {
    width: 100%;
    padding: 14px 16px;
    border: 1px solid var(--hairline-stronger);
    background: var(--paper);
    font-family: "Inter", sans-serif;
    font-size: 15px;
    color: var(--ink);
    margin-bottom: 22px;
    border-radius: 2px;
    transition: border-color 200ms;
  }
  .contact-form input:focus,
  .contact-form textarea:focus {
    outline: none;
    border-color: var(--blue);
  }
  .contact-form textarea {
    resize: vertical;
    min-height: 100px;
    font-family: "Inter", sans-serif;
  }
  .contact-form .btn { padding: 16px 36px; width: 100%; }
  .contact-form-note {
    margin-top: 18px;
    font-size: 11px;
    color: var(--body);
    opacity: 0.7;
    font-style: italic;
    line-height: 1.5;
    text-align: center;
  }

  /* FAQ */
  .faq { padding: 112px 0; position: relative; overflow: hidden; border-bottom: 1px solid var(--rule); }
  .faq-head { margin-bottom: 48px; position: relative; z-index: 2; }
  .faq-head h2 { max-width: 30ch; }
  .faq-list { position: relative; z-index: 2; max-width: 940px; border-top: 1px solid var(--hairline-stronger); }
  .faq-item { border-bottom: 1px solid var(--hairline-stronger); }
  .faq-item summary {
    list-style: none;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 40px;
    padding: 28px 0;
    font-family: "Playfair Display", serif;
    font-weight: 400;
    font-size: 22px;
    color: var(--ink);
    letter-spacing: -0.005em;
    line-height: 1.3;
    transition: color 200ms;
  }
  .faq-item summary::-webkit-details-marker { display: none; }
  .faq-item summary::after {
    content: "+";
    font-family: "Inter", sans-serif;
    font-size: 26px;
    font-weight: 300;
    line-height: 1;
    color: var(--blue);
    flex-shrink: 0;
    margin-left: auto;
  }
  .faq-item[open] summary::after { content: "−"; }
  .faq-item summary:hover { color: var(--blue); }
  .faq-answer {
    padding: 0 60px 30px 0;
    max-width: 76ch;
    font-size: 15px;
    line-height: 1.65;
    color: var(--body);
    margin: 0;
  }

  /* CLINICS — map CTA */
  .clinics-cta { text-align: center; margin-top: 40px; }

  /* CONTACT — partnership timeline (replaces meta grid) */
  .contact-timeline-lbl { font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--blue); font-weight: 500; margin: 40px 0 24px; }
  .contact-step { position: relative; padding-left: 40px; padding-bottom: 26px; }
  .contact-step:last-child { padding-bottom: 0; }
  .contact-step::before { content: ""; position: absolute; left: 11px; top: 6px; bottom: -4px; width: 1px; background: var(--hairline-stronger); }
  .contact-step:last-child::before { display: none; }
  .contact-step-num { position: absolute; left: 0; top: -1px; width: 24px; height: 24px; border-radius: 50%; border: 1px solid var(--blue); color: var(--blue); font-size: 13px; font-weight: 500; display: flex; align-items: center; justify-content: center; background: var(--paper); }
  .contact-step-title { font-family: "Playfair Display", serif; font-weight: 400; font-size: 18px; color: var(--ink); margin-bottom: 4px; letter-spacing: -0.005em; }
  .contact-step-desc { font-size: 15px; color: var(--body); line-height: 1.5; max-width: 40ch; margin: 0; }

  /* FOOTER */
  .foot { padding: 56px 0 40px; background: var(--paper); }
  /* content-width (1056px) blue line separating the footer from the page body,
     on every page (.foot .wrap content box = 1248 − 2×96 = 1056) */
  .foot .wrap::before { content: ""; display: block; height: 1px; background: var(--blue); margin: 0 0 48px; }
  .foot-grid { display: grid; grid-template-columns: 1fr 2fr 1fr; gap: 48px; }
  .foot-logo img { height: 30px; width: auto; display: block; margin-bottom: 14px; }
  .foot-meta { font-size: 13px; line-height: 1.7; color: var(--body); opacity: 0.8; }
  .foot-cols { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; font-size: 13px; }
  .foot-cols a { display: block; padding: 4px 0; color: var(--ink); opacity: 0.75; }
  .foot-cols a:hover { opacity: 1; color: var(--blue); }
  .foot-soc { display: flex; gap: 16px; font-size: 13px; }
  .foot-soc a { color: var(--ink); opacity: 0.75; letter-spacing: 0.04em; }
  .foot-soc a:hover { opacity: 1; color: var(--blue); }
  .disclaimer-pro {
    max-width: none;
    margin-top: 40px;
    padding-top: 0 !important;
    border-top: none !important;
    font-size: 11px;
    color: var(--body);
    opacity: 0.7;
    font-style: italic;
    text-align: center;
    letter-spacing: 0.04em;
  }
  /* short blue divider between the footer body and the "Только для проф..." line
     (!important above kills the stale theme file's full-width grey border-top) */
  .disclaimer-pro::before { content: ""; display: block; width: 48px; height: 2px; background: var(--blue); margin: 0 auto 24px; }

/* ===========================================================================
   NAVIGATION BLOCK RE-SKIN (added by wordpressr-pro)
   The header uses the core wp:navigation block (editable in Site Editor ->
   Navigation) instead of the mockup's hand-coded <ul>. These selectors are
   WordPress core's Navigation-block classes, scoped to .rgq-nav, restyled to
   match the pro identity: ink links with a blue underline-on-hover; boxless
   white dropdowns with a blue top accent + hairline rows; a white full-screen
   overlay on tablet/mobile.
   =========================================================================== */
.rgq-nav { font-family: "Inter", sans-serif; }
.rgq-nav .wp-block-navigation__container { gap: 32px; align-items: center; font-size: 13px; font-weight: 500; }
.rgq-nav > .wp-block-navigation__container > .wp-block-navigation-item { position: relative; }
.rgq-nav .wp-block-navigation-item__content { color: var(--ink); padding: 0 0 3px; border-bottom: 1px solid transparent; transition: border-color 200ms, color 200ms; }
.rgq-nav > .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content:hover,
.rgq-nav > .wp-block-navigation__container > .wp-block-navigation-item.has-child:hover > .wp-block-navigation-item__content { border-bottom-color: var(--blue); }
.rgq-nav .wp-block-navigation__submenu-icon { padding: 0 0 0 4px; margin: 0; font-size: 9px; opacity: 0.55; transition: transform 200ms; }
.rgq-nav .wp-block-navigation-item.has-child:hover > .wp-block-navigation__submenu-icon { transform: rotate(180deg); }
/* boxless dropdown: blue top accent, gray hairline rows */
.rgq-nav .wp-block-navigation__submenu-container {
  background: var(--paper); border: 0; border-top: 2px solid var(--blue);
  box-shadow: 0 26px 46px -30px rgba(0, 39, 62, 0.40); min-width: 236px; padding: 0; margin-top: 0;
}
.rgq-nav .wp-block-navigation__submenu-container .wp-block-navigation-item { border-bottom: 1px solid var(--hairline); }
.rgq-nav .wp-block-navigation__submenu-container .wp-block-navigation-item:last-child { border-bottom: 0; }
.rgq-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
  position: relative; display: block; padding: 12px 22px; white-space: nowrap; color: var(--ink); border-bottom: 0;
}
.rgq-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content::after {
  content: ""; position: absolute; left: 22px; right: 22px; bottom: 9px; height: 1px;
  background: var(--blue); transform: scaleX(0); transform-origin: left; transition: transform 200ms;
}
.rgq-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { color: var(--blue); }
.rgq-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover::after { transform: scaleX(1); }
.rgq-nav .wp-block-navigation__responsive-container-open,
.rgq-nav .wp-block-navigation__responsive-container-close { color: var(--ink); }
/* the block's default open icon is only 2 bars, so hide it and draw a 3-line hamburger (matches consumer) */
.rgq-nav .wp-block-navigation__responsive-container-open svg { display: none; }
.rgq-nav .wp-block-navigation__responsive-container-open {
  width: 26px; height: 16px; padding: 0;
  background-image: linear-gradient(currentColor, currentColor), linear-gradient(currentColor, currentColor), linear-gradient(currentColor, currentColor);
  background-size: 26px 2px; background-position: left top, left center, left bottom; background-repeat: no-repeat;
}

/* ===========================================================================
   RESPONSIVE (added by wordpressr-pro). The mockup is a fixed 1440px desktop
   composition; everything below adapts it down. Apply §5 (no backdrop-filter
   trap) and §7 (single-composition hero, intentional grids kept) from the start.
   =========================================================================== */
@media (max-width: 1248px) {
  .wrap, .nav-inner, .hero-creds-inner { padding-left: 48px; padding-right: 48px; }
  .hero-text { padding: 96px 48px; }
  .rgq-nav .wp-block-navigation__container { gap: 22px; font-size: 12px; }
  .doctor-row { grid-template-columns: repeat(4, 1fr); gap: 28px 16px; }
}
@media (max-width: 1100px) {
  .pub-grid, .news-grid { grid-template-columns: repeat(2, 1fr); }
  .clinics-grid { grid-template-columns: repeat(4, 1fr); }
}

/* ---- nav collapses to a full-screen hamburger overlay at <=1024 ---- */
@media (max-width: 1024px) {
  /* CRITICAL (§5): .nav has backdrop-filter, which makes it the containing block
     for any descendant position:fixed — that traps the open overlay inside the
     header bar (a tiny scrolling strip). Drop the filter on mobile so the
     overlay's position:fixed resolves against the viewport and fills the screen.
     (bar bg is 94% opaque, so the blur is barely visible on mobile anyway.) */
  .nav { -webkit-backdrop-filter: none !important; backdrop-filter: none !important; }
  .nav-inner { height: 64px; padding: 0 20px; }
  .nav-logo img { height: 22px; }
  .rgq-nav .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none !important; }
  .rgq-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex !important; }
}
/* white mobile overlay — the block/JS leaves the open container short + white,
   so force a real full-screen panel (these need !important to win, §6) */
.rgq-nav .wp-block-navigation__responsive-container.is-menu-open {
  position: fixed !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  max-height: none !important;
  background-color: var(--paper) !important;
  overflow: auto !important;
  padding: 22px 22px 40px !important;
}
.rgq-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: 0; }
.rgq-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { width: 100%; border-bottom: 1px solid var(--hairline); }
.rgq-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { padding: 16px 2px; font-size: 16px; color: var(--ink); border: 0; }
.rgq-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content::after { display: none; }
.rgq-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
  position: static; box-shadow: none; border: 0; border-left: 2px solid var(--hairline-stronger);
  min-width: 0; background: transparent; margin: 0 0 6px 12px; padding: 0;
}
.rgq-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item { border-bottom: 0; }
.rgq-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 10px 16px; font-size: 14px; }
.rgq-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-icon { transform: none; }

@media (max-width: 900px) {
  /* HERO (§7): ONE above-the-fold composition — portrait fills the block, a
     white scrim fades up, headline + CTA overlaid and anchored to the bottom. */
  .rgq-page .hero { margin-top: 0 !important; } /* flush the portrait under the header on mobile (kill the block-gap) */
  .hero-grid { display: block; position: relative; min-height: 88vh; }
  .hero-image { position: absolute; inset: 0; min-height: 0; }
  .hero-image img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 18%; }
  .hero-image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(255,255,255,0.12) 0%, rgba(255,255,255,0) 24%, rgba(255,255,255,0.55) 54%, rgba(255,255,255,0.98) 86%); }
  .hero-image-caption { display: none; }
  .hero-text { position: relative; z-index: 2; min-height: 88vh; padding: 34px 22px 44px; justify-content: flex-end; }
  .hero-text .skinlines { display: none; }
  .hero .eyebrow { margin-bottom: 12px; }
  .hero h1 { font-size: 40px; line-height: 1.06; margin-bottom: 14px; max-width: 18ch; }
  .hero .lede { font-size: 15px; line-height: 1.5; margin-bottom: 20px; max-width: 40ch; }
  .hero-cta-row .btn { font-size: 13px; }

  /* tighten section rhythm */
  .results-zone, .cases, .pro-products, .compat, .doctors, .usevid, .institutions,
  .clinics, .applications, .science, .bridge, .publications, .visits, .faq, .contact { padding-top: 64px; padding-bottom: 64px; }
  .results-zone { padding-top: 72px; }
  .results-zone-head, .cases-head, .pro-products-head, .compat-head, .doctors-head,
  .usevid-head, .applications-head, .publications-head, .faq-head { margin-bottom: 36px; }

  /* grids -> stack, BUT keep intentional inner grids (study-stats 2x2, ba-pair, science-stats) */
  .study-grid { grid-template-columns: 1fr; gap: 22px; }
  .cases-grid { grid-template-columns: 1fr; gap: 36px 0; }
  .pro-products-grid { grid-template-columns: 1fr; gap: 22px; }
  .compat-grid { grid-template-columns: repeat(2, 1fr); gap: 20px; }
  .doctor-row { grid-template-columns: repeat(3, 1fr); gap: 28px 16px; }
  .vid-grid, .vid-grid-portrait { grid-template-columns: 1fr; gap: 28px; }
  .clinics-grid { grid-template-columns: repeat(3, 1fr); }
  .applications-grid { grid-template-columns: repeat(2, 1fr); gap: 20px; }
  .science-grid { grid-template-columns: 1fr; gap: 44px; }
  .pub-grid, .news-grid { grid-template-columns: repeat(2, 1fr); gap: 22px; }
  .visits-grid { grid-template-columns: 1fr; gap: 36px; }
  .contact-grid { grid-template-columns: 1fr; gap: 40px; }
  .contact-meta { grid-template-columns: 1fr 1fr; }
  .bridge-meta { gap: 28px 36px; flex-wrap: wrap; }
  .bridge h2 { font-size: 38px; }
  .foot-grid { grid-template-columns: 1fr; gap: 28px; }
  .foot-cols { grid-template-columns: repeat(3, 1fr); }

  /* raw HTML headings in sections (base sets desktop 76/44/26) */
  h1 { font-size: 44px; }
  h2 { font-size: 32px; }
  .mid-cta h3 { font-size: 24px; }
  .application-stat { font-size: 46px; }
  .science-stat-num { font-size: 42px; }
  .bridge-meta-num { font-size: 44px; }
}

@media (max-width: 600px) {
  .wrap, .nav-inner, .hero-creds-inner { padding-left: 20px; padding-right: 20px; }
  .hero-text { padding-left: 20px; padding-right: 20px; }
  h1, .hero h1 { font-size: 36px; }
  h2 { font-size: 27px; }
  .results-zone, .cases, .pro-products, .compat, .doctors, .usevid, .institutions,
  .clinics, .applications, .science, .bridge, .publications, .visits, .faq, .contact { padding-top: 52px; padding-bottom: 52px; }
  .study-card { padding: 28px 24px 26px; }
  .compat-grid, .applications-grid { grid-template-columns: 1fr; }
  .doctor-row { grid-template-columns: repeat(2, 1fr); gap: 26px 14px; }
  .clinics-grid { grid-template-columns: repeat(2, 1fr); }
  .pub-grid, .news-grid { grid-template-columns: 1fr; }
  .contact-meta { grid-template-columns: 1fr; gap: 18px; }
  .contact-form { padding: 26px 20px; }
  .foot-cols { grid-template-columns: 1fr 1fr; gap: 14px 18px; }
  .bridge h2 { font-size: 32px; }
  .faq-item summary { font-size: 18px; gap: 20px; }
  /* keep study 2x2 stats but shrink the big Playfair numbers so they never overflow */
  .study-stat-num { font-size: 34px; }
  .science-stats { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 400px) {
  .doctor-portrait { width: 96px; height: 96px; }
  .study-stats { gap: 12px; }
  .study-stat-num { font-size: 30px; }
  .bridge-meta { gap: 22px; }
}

/* ===========================================================================
   CONTACT FORM — sent/error states (the live form adds .is-sent / .is-error;
   the mockup form was static). Wired to the regenique-pro contact plugin.
   =========================================================================== */
.contact-form .form-status { display: none; padding: 14px 16px; border-radius: 2px; margin-bottom: 20px; font-size: 14px; line-height: 1.5; }
.contact-form .form-status.ok { background: rgba(45,189,182,0.12); color: var(--ink); border: 1px solid var(--turquoise); }
.contact-form .form-status.err { background: rgba(12,51,143,0.06); color: var(--blue-dk); border: 1px solid var(--blue); }
.contact-form .form-status.err a { color: var(--blue); border-bottom: 1px solid var(--blue); }
.contact-form.is-sent .form-status.ok { display: block; }
.contact-form.is-sent .contact-fields { display: none; }
.contact-form.is-error .form-status.err { display: block; }
/* Consent opt-in (required) — gates Mailopost forwarding in the contact plugin (152-ФЗ). */
.contact-form .contact-consent {
  display: flex; align-items: flex-start; gap: 10px;
  margin-top: 18px; font-size: 12px; line-height: 1.5;
  color: var(--ink); cursor: pointer;
  text-transform: none; letter-spacing: 0; font-weight: 400;
}
.contact-form .contact-consent span { text-transform: none; letter-spacing: 0; }
.contact-form .contact-consent input[type="checkbox"] {
  -webkit-appearance: checkbox; appearance: checkbox;
  width: 16px; height: 16px; min-height: 0; flex: 0 0 auto;
  margin: 2px 0 0; padding: 0; border: 0; background: none; border-radius: 0;
  accent-color: var(--blue); cursor: pointer;
}
.contact-form .contact-consent a { color: var(--blue); border-bottom: 1px solid var(--blue); }
.contact-form .contact-consent.is-missing { color: var(--blue-dk); font-weight: 500; }
.contact-form .contact-consent.is-missing input[type="checkbox"] { outline: 2px solid var(--blue); outline-offset: 2px; }
/* ===========================================================================
   HERO WIDTH FIX (wordpressr-pro) — the mockup hero was full-bleed inside a
   fixed 1440px body; on a fluid body it spanned the whole viewport while every
   other section centres at 1248px. Contain the hero to the same content column
   so its left edge + image align with the rest. Scoped to .rgq-page (beats the
   base .hero-grid on specificity, so it wins via Global Styles without a
   re-upload) and to desktop only (>=901px) so the mobile composition is intact.
   =========================================================================== */
@media (min-width: 901px) {
  .rgq-page .hero-grid {
    max-width: 1248px;
    margin: 0 auto;
    padding: 0 96px;
    grid-template-columns: 0.9fr 1.1fr;
    gap: 56px;
    min-height: 560px;
    align-items: stretch;
  }
  .rgq-page .hero-text { padding: 80px 0; }
  .rgq-page .hero h1 { font-size: 64px; }            /* was 76px — give the image more room, text less */
  .rgq-page .hero-image { border-radius: 2px; overflow: hidden; }
  .rgq-page .hero-image img { object-position: 66% 55%; } /* keep the bottom-right product in frame */
}
@media (min-width: 901px) and (max-width: 1248px) {
  .rgq-page .hero-grid { padding: 0 48px; }
}
/* ===========================================================================
   BLOG / DOC PAGES (news index, single post, legal pages). Responsive gutters
   (the fixed 96px inline padding squished content on mobile) + a 2-column news
   card grid mimicking the production /news layout, in the brand palette.
   =========================================================================== */
.rgq-doc { padding-left: 96px; padding-right: 96px; }
/* The news-index intro eyebrow is a direct child of the constrained doc main.
   As an inline-block it ignored the layout's auto side-margins and hugged the
   left gutter — sitting further left than the centered H1/cards. Block lets the
   auto-margins take effect so it left-aligns to the same 1056px content column. */
.rgq-doc > .eyebrow { display: block; }
/* Canonical content-page eyebrow (page-no-title headers: /personal, /publications,
   any future page) — uppercase treatment applied wherever .rgq-eyebrow is used,
   not scoped to a single page. Colour + size come from the block's preset attrs. */
.rgq-eyebrow { text-transform: uppercase; letter-spacing: 0.22em; font-weight: 500; }
@media (max-width: 1024px) { .rgq-doc { padding-left: 48px; padding-right: 48px; } }
@media (max-width: 600px)  { .rgq-doc { padding-left: 20px; padding-right: 20px; } }

/* single-post readability */
.rgq-doc .wp-block-post-content { font-size: 16px; line-height: 1.7; color: var(--body); }
.rgq-doc .wp-block-post-content img { height: auto; border-radius: 2px; }
.rgq-doc .wp-block-post-featured-image img { width: 100%; object-fit: cover; display: block; }

/* ===========================================================================
   SINGLE BLOG POST — editorial styling matched to the consumer (main) site,
   recolored to the pro blue/ink palette. The /news posts were reading flat next
   to the main site, so this restores the main-site proportions: a big fluid
   Playfair headline + accent rule under it, a 28px H2 with a blue section rule,
   21px H3, framed featured + body images, a larger pull-quote, and full table
   styling. Templated via single.html (.rgq-single) so it covers EVERY post.
   Scoped to .rgq-single so the legal/info pages (also .rgq-doc) are untouched.
   NOTE: the size bumps modify selectors that also live in the baked
   homepage.css, so they go fully live on the next theme-zip re-upload (the CSS
   source-order trap); the new title / rule / image-frame / table selectors
   apply instantly on a Global Styles push.
   =========================================================================== */
.rgq-single .wp-block-post-title { font-family: "Playfair Display", Georgia, serif; font-weight: 400; color: var(--ink); font-size: clamp(34px, 5vw, 52px); line-height: 1.07; letter-spacing: -0.015em; }
.rgq-single .rgq-post-rule { width: 64px; height: 2px; background: var(--blue); margin: 22px 0; }
.rgq-single .wp-block-post-date { color: var(--blue); font-size: 13px; letter-spacing: 0.05em; text-transform: uppercase; font-weight: 500; }
.rgq-single .wp-block-post-featured-image img { width: 100%; height: auto; border-radius: 6px; border: 1px solid var(--hairline); }
.rgq-single .wp-block-post-content { font-size: 17px; line-height: 1.8; color: var(--body); }
.rgq-single .wp-block-post-content > :first-child { margin-top: 0; }
.rgq-single .wp-block-post-content p { margin: 0 0 1.2em; max-width: none; }
.rgq-single .wp-block-post-content h2 { font-family: "Playfair Display", Georgia, serif; font-weight: 400; color: var(--ink); font-size: 28px; line-height: 1.2; letter-spacing: -0.005em; margin: 1.7em 0 0.5em; }
/* blue section rule above H2s (skipped on the first content element) — echoes the main-site section rhythm */
.rgq-single .wp-block-post-content h2::before { content: ""; display: block; width: 44px; height: 2px; background: var(--blue); margin-bottom: 18px; }
.rgq-single .wp-block-post-content > h2:first-child::before { display: none; }
.rgq-single .wp-block-post-content h3 { font-family: "Playfair Display", Georgia, serif; font-weight: 400; color: var(--ink); font-size: 21px; line-height: 1.35; margin: 1.35em 0 0.4em; }
.rgq-single .wp-block-post-content a { color: var(--blue); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.rgq-single .wp-block-post-content a:hover { color: var(--blue-dk); }
.rgq-single .wp-block-post-content ul, .rgq-single .wp-block-post-content ol { margin: 0 0 1.4em; padding-left: 1.35em; }
.rgq-single .wp-block-post-content li { margin: 0 0 0.55em; }
.rgq-single .wp-block-post-content li::marker { color: var(--blue); }
.rgq-single .wp-block-post-content strong { font-weight: 600; color: var(--ink); }
.rgq-single .wp-block-post-content img { width: 100%; height: auto; border-radius: 6px; border: 1px solid var(--hairline); margin: 0; }
.rgq-single .wp-block-post-content figure { margin: 1.7em 0; }
.rgq-single .wp-block-post-content figure img { margin: 0; }
.rgq-single .wp-block-post-content figcaption { margin-top: 8px; font-size: 13px; font-style: italic; color: var(--body); opacity: 0.7; text-align: center; }
.rgq-single .wp-block-post-content blockquote { margin: 1.7em 0; padding: 4px 0 4px 24px; border-left: 3px solid var(--blue); font-family: "Playfair Display", Georgia, serif; font-style: italic; font-size: 22px; line-height: 1.42; color: var(--ink); }
.rgq-single .wp-block-post-content blockquote p { margin: 0 0 0.4em; max-width: none; }
.rgq-single .wp-block-post-content hr { border: 0; height: 1px; background: var(--hairline-stronger); margin: 2.4em 0; }
.rgq-single .wp-block-post-content table { width: 100%; border-collapse: collapse; margin: 1.7em 0; font-size: 15px; }
.rgq-single .wp-block-post-content th, .rgq-single .wp-block-post-content td { border: 1px solid var(--hairline-stronger); padding: 11px 14px; text-align: left; vertical-align: top; }
.rgq-single .wp-block-post-content thead th, .rgq-single .wp-block-post-content table tr:first-child td { background: var(--paper-dk); font-weight: 600; color: var(--ink); }

/* === CERTIFICATES PAGE (/certificates) — eyebrow + huge H1 header band (paper-light,
   blue rule) + SEO intro + the 2 professional certificate scans in framed cards.
   Full-width sections at the 1056px content column, matching /personal & /publications. === */
.rgq-certificates > section { padding-left: clamp(20px, 5vw, 96px); padding-right: clamp(20px, 5vw, 96px); }
/* Intro fills the 1056px content column, left-aligned like the H2/columns/lede. The
   .rgq-page prefix bumps specificity over the baked homepage.css (which still ships
   max-width:none, loads after Global Styles, and would otherwise break the intro wider
   than the column). Note: any value < 1056 would trip WP constrained auto-margins and
   center it, so we match the column width exactly. */
.rgq-page .rgq-certificates .rgq-cert-intro { max-width: 1056px; font-size: 17px; line-height: 1.7; color: var(--body); }
.rgq-certificates .wp-block-column { display: flex; flex-direction: column; }
.rgq-certificates .rgq-cert { margin: 0; }
.rgq-certificates .rgq-cert img { width: 100%; height: auto; border: 1px solid var(--hairline-stronger); border-radius: 2px; box-shadow: 0 6px 22px rgba(0,39,62,0.07); }
.rgq-certificates .rgq-cert figcaption.wp-element-caption { margin-top: 14px; text-align: center; font-size: 14px; font-weight: 500; font-style: normal; color: var(--ink); }

/* Inline text links in content-page body copy read as links: blue + underline, matching
   the blog-post body style (.rgq-single a). Buttons/nav aren't <p> links, so they're
   untouched. One rule for every marketing content page (not a per-page one-off). */
.rgq-personal p a, .rgq-pubs p a, .rgq-certificates p a { color: var(--blue); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.rgq-personal p a:hover, .rgq-pubs p a:hover, .rgq-certificates p a:hover { color: var(--blue-dk); }

/* news index — bordered cards, landscape image, Playfair title */
.rgq-newsgrid.wp-block-post-template { gap: 36px 24px; }
.rgq-newsgrid > li.wp-block-post {
  display: flex; flex-direction: column; background: var(--paper);
  border: 1px solid var(--hairline-stronger); border-radius: 2px; overflow: hidden;
  transition: border-color 200ms;
}
.rgq-newsgrid > li.wp-block-post:hover { border-color: var(--blue); }
.rgq-newsgrid .wp-block-post-featured-image { margin: 0; }
.rgq-newsgrid .wp-block-post-featured-image img { width: 100%; aspect-ratio: 16/10; object-fit: cover; display: block; }
.rgq-newsgrid .wp-block-post-date { padding: 18px 24px 0; color: var(--blue); letter-spacing: 0.04em; }
.rgq-newsgrid .wp-block-post-title { padding: 6px 24px 0; line-height: 1.28; }
.rgq-newsgrid .wp-block-post-title a { color: var(--ink); }
.rgq-newsgrid .wp-block-post-title a:hover { color: var(--blue); }
.rgq-newsgrid .wp-block-post-excerpt { padding: 10px 24px 24px; color: var(--body); line-height: 1.55; }
.rgq-newsgrid .wp-block-post-excerpt__more-text a { color: var(--blue); font-weight: 500; }
.rgq-newsgrid .wp-block-post-title { font-size: 20px; }
.rgq-newsgrid .wp-block-post-date { padding-top: 16px; }
@media (max-width: 1100px) {
  .rgq-newsgrid.wp-block-post-template { grid-template-columns: repeat(2, minmax(0,1fr)) !important; }
}
@media (max-width: 640px) {
  .rgq-newsgrid.wp-block-post-template { grid-template-columns: 1fr !important; }
}
/* ===========================================================================
   HEADER vertical centring + SINGLE-POST image caps (added per feedback).
   =========================================================================== */
.nav-inner { align-items: center; }
.nav-logo { display: flex; align-items: center; }
.nav-logo img { height: 22px; }
.rgq-nav, .nav-inner .wp-block-navigation { display: flex; align-items: center; }
.rgq-nav .wp-block-navigation__container { align-items: center; }

/* single post: never let an image run off the page; smaller featured image */
.rgq-doc .wp-block-post-content img { max-width: 100%; height: auto; }
.rgq-doc .wp-block-post-featured-image img { max-height: 360px; }
@media (max-width: 600px) {
  .rgq-doc .wp-block-post-featured-image img { max-height: 240px; }
}
/* ===========================================================================
   CONSUMER "Линия для дома" PAGE (/personal/) — editable CORE BLOCKS in the pro
   palette. The product cards and the % "square box" stats are 1:1 copies of the
   consumer site components (.product-card / .rgq-stat), recoloured blue/ink.
   Content column is 1056px (matches the homepage .wrap); section backgrounds are
   full-bleed; theme.json root padding is 0 so add a fluid side gutter here.
   =========================================================================== */
.rgq-personal > section { padding-left: clamp(20px, 5vw, 96px); padding-right: clamp(20px, 5vw, 96px); }
.rgq-personal .rgq-lede { line-height: 1.6; }
.rgq-personal .rgq-cta em { color: var(--wp--preset--color--turquoise); font-style: italic; }
.rgq-personal .rgq-press { line-height: 1.9; }
/* "О бренде писали" logo grid — copy of the consumer .rgq-logo-grid: monochrome
   logos that blend into the paper, colour on hover. */
.rgq-personal .rgq-logo-grid .wp-block-image { margin: 0; display: flex; align-items: center; justify-content: center; }
.rgq-personal .rgq-logo-grid img { filter: grayscale(1); mix-blend-mode: multiply; opacity: 0.65; transition: opacity 200ms ease, filter 200ms ease; }
.rgq-personal .rgq-logo-grid img:hover { filter: grayscale(0); opacity: 1; }
@media (max-width: 900px) { .rgq-personal .rgq-logo-grid { grid-template-columns: repeat(4, 1fr) !important; } }
@media (max-width: 520px) { .rgq-personal .rgq-logo-grid { grid-template-columns: repeat(3, 1fr) !important; } }

/* Product cards — copy of the consumer .product-card, in the pro palette:
   offset card body + border, white photo well, uppercase volume above a Playfair
   name, short line, blue star rating below a hairline separator. No price/button. */
.rgq-personal .rgq-prod { display: flex; flex-direction: column; background: var(--wp--preset--color--paper-dark); border: 1px solid rgba(0,39,62,0.18); border-radius: 2px; overflow: hidden; transition: border-color 200ms; }
.rgq-personal .rgq-prod:hover { border-color: var(--wp--preset--color--blue); }
/* img is absolutely positioned so a non-square upload can never stretch the
   aspect-ratio square (flex content otherwise grows the box past 1:1).
   The img selector carries an extra .rgq-prod so the Global Styles copy beats
   the older baked rule (width/height:auto) that loads after it. */
.rgq-personal .rgq-prod-img { margin: 0; background: #fff; aspect-ratio: 1 / 1; position: relative; padding: 22px; border-bottom: 1px solid rgba(0,39,62,0.18); }
.rgq-personal .rgq-prod .rgq-prod-img img { position: absolute; inset: 22px; width: calc(100% - 44px); height: calc(100% - 44px); object-fit: contain; }
.rgq-personal .rgq-prod-body { display: flex; flex-direction: column; flex: 1; padding: 22px 22px 20px; }
.rgq-personal .rgq-prod-vol { margin: 0 0 8px; font-size: 11px; letter-spacing: 0.10em; text-transform: uppercase; color: var(--wp--preset--color--body); opacity: 0.75; }
.rgq-personal .rgq-prod-name { margin: 0 0 8px; font-family: "Playfair Display", serif; font-weight: 400; font-size: 18px; line-height: 1.2; letter-spacing: -0.005em; color: var(--wp--preset--color--ink); }
.rgq-personal .rgq-prod-line { margin: 0 0 16px; font-size: 13px; line-height: 1.5; color: var(--wp--preset--color--body); }
.rgq-personal .rgq-prod-rating { margin: auto 0 0; padding-top: 16px; border-top: 1px solid rgba(0,39,62,0.12); font-size: 12px; color: var(--wp--preset--color--body); }
.rgq-personal .rgq-prod-rating .stars { color: var(--wp--preset--color--blue); letter-spacing: 2px; }

/* % improvement squares — copy of the consumer .rgq-stat box, blue border. */
.rgq-personal .rgq-stat { border: 1px solid var(--wp--preset--color--blue); display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--40); }
.rgq-personal .rgq-stat-num { margin: 0 0 10px; font-family: "Playfair Display", serif; font-weight: 400; font-size: 44px; line-height: 1; letter-spacing: -0.02em; color: var(--wp--preset--color--ink); }
.rgq-personal .rgq-stat-num .sign { color: var(--wp--preset--color--blue); font-style: italic; }
.rgq-personal .rgq-stat-lbl { margin: 0; max-width: 22ch; font-size: 13px; line-height: 1.4; color: var(--wp--preset--color--body); }
@media (max-width: 900px) { .rgq-personal .rgq-prod-grid, .rgq-personal .rgq-stat-grid { grid-template-columns: repeat(2, 1fr) !important; } }
@media (max-width: 520px) { .rgq-personal .rgq-stat-grid { grid-template-columns: 1fr !important; } }

/* ===========================================================================
   /locations (Карта клиник) — the header (blue eyebrow + H1 + intro) and the
   locator share the site's 1056px content width and left-justify, so the map's
   left edge lines up with the heading. These .rgq-page-scoped rules also override
   the locator plugin's own .rgql-* widths, so /locations lines up immediately
   over REST — before the updated regenique-locations zip is re-uploaded.
   =========================================================================== */
.rgq-locator-head { padding-top: 56px; padding-bottom: 8px; }
.rgq-locator-head .eyebrow { display: block; margin-bottom: 16px; }
.rgq-page .rgql-wrap { max-width: 1056px; }
/* No max-width cap: the intro fills the 1056 column so it sits flush-left at the
   same edge as the H1 (a capped width would get centred by WP constrained-layout's
   margin:auto !important, like the homepage/news ledes). */
.rgq-page .rgql-intro { margin: 0 0 8px 0; text-align: left; font-size: 18px; line-height: 1.6; }
@media (max-width: 1100px) { .rgq-locator-head { padding-left: 48px; padding-right: 48px; } }
@media (max-width: 600px)  { .rgq-locator-head { padding-left: 20px; padding-right: 20px; } }

/* ===========================================================================
   SITE FRAME — match the consumer site (staging.regenique.ru): the whole site is
   a centred max-width 1440px card on a soft gutter, so NOTHING bleeds to the
   viewport edge. Section fills + every divider stop at the 1440 frame — no more
   full-viewport-width lines or colours. (Consumer uses a fixed body{width:1440};
   we use max-width so it stays responsive below 1440.)
   Written as authoritative overrides (`.wp-site-blocks …`, higher specificity /
   !important) so they win over the stale baked homepage.css until the theme zip
   is re-uploaded; harmless once it is.
   =========================================================================== */
html { background: #ffffff !important; }      /* gutter — kept white (no contrasting frame colour) */
html body { background: #ffffff !important; } /* !important beats the stale baked homepage.css until re-upload */
.wp-site-blocks { max-width: 1440px; margin-inline: auto; background: var(--paper); }

/* Every divider now spans the 1440 frame (not the viewport, not 1056), matching the
   consumer's section/nav rules. The footer carries ONE frame-wide top rule that
   works on every template; the homepage's last section (.contact) drops its own
   bottom rule so the two don't stack into a double line above the footer. */
.wp-site-blocks .nav { border-bottom: 1px solid var(--rule) !important; }
.wp-site-blocks .nav::after { display: none !important; }
.wp-site-blocks .foot { border-top: 1px solid var(--rule); }
.wp-site-blocks .foot .wrap::before { display: none !important; }
.wp-site-blocks .contact { border-bottom: none !important; }
/* No divider above the dark «Межпроцедурный уход» (.bridge) section — the section
   directly before it drops its bottom rule; the bridge's dark fill is the separator
   (same treatment as the /personal colour-change boundaries). NB: after the round-3
   reorder the pre-bridge section is .applications (was .science, which moved down to
   position 15) — so target .applications; .science regains its normal section rule. */
.wp-site-blocks .applications { border-bottom: none !important; }

/* --- Consistent section-heading width (2026-06-21) ---------------------
   One width for all standard section-head H2s. .rgq-page scope raises
   specificity so it wins over the per-section base caps even via Global
   Styles (the baked homepage.css link loads after the inline GS). */
.rgq-page .results-zone-head h2,
.rgq-page .cases-head h2,
.rgq-page .pro-products-head h2,
.rgq-page .compat-head h2,
.rgq-page .doctors-head h2,
.rgq-page .usevid-head h2,
.rgq-page .applications-head h2,
.rgq-page .science-head h2,
.rgq-page .publications-head h2,
.rgq-page .faq-head h2 { max-width: 30ch; }

/* ===========================================================================
   PUBLICATIONS PAGE (/publications) — year/month index of press coverage.
   =========================================================================== */
.rgq-pubs .rgq-pub-year { font-size: 34px; color: var(--blue); margin: 64px 0 4px; padding-bottom: 10px; border-bottom: 2px solid var(--blue); }
.rgq-pubs .rgq-pub-year:first-of-type { margin-top: 4px; }
.rgq-pubs .rgq-pub-month { font-family: "Inter", sans-serif; font-size: 12px; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ink); opacity: 0.5; margin: 30px 0 4px; }
.rgq-pubs ul.rgq-pub-list { list-style: none; margin: 0; padding: 0; }
.rgq-pubs ul.rgq-pub-list li { padding: 9px 2px; border-bottom: 1px solid var(--rule); font-size: 15px; line-height: 1.45; color: var(--body); }
.rgq-pubs ul.rgq-pub-list li a { color: var(--ink); text-decoration: none; border-bottom: 1px solid transparent; transition: color .15s ease, border-color .15s ease; }
.rgq-pubs ul.rgq-pub-list li a:hover { color: var(--blue); border-bottom-color: var(--blue); }
.publications-cta { margin-top: 40px; }
/* "Публикации в СМИ" callout on the homepage: press-coverage link + its
   description, set apart from the dynamic news feed above it by a top rule. */
.pub-media { margin-top: 56px; padding-top: 40px; border-top: 1px solid var(--rule); display: flex; align-items: center; justify-content: space-between; gap: 20px 40px; flex-wrap: wrap; }
/* The parent Group's blockGap:0 layout rule (.wp-container-*>*+*{margin-block-start:0}) ties the
   rule above on specificity and loads later, zeroing this margin so the block sits flush against the
   "Все новости" CTA. Bump specificity so the intended separation survives. */
.publications .pub-media { margin-top: 56px; }
.pub-media-text { flex: 1 1 420px; max-width: 64ch; }
.pub-media-label { display: block; font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--blue); font-weight: 500; margin-bottom: 8px; }
.pub-media-desc { margin: 0; font-size: 15px; line-height: 1.55; color: var(--body); }
.pub-media .pub-media-btn { flex: none; }
@media (max-width: 720px) { .pub-media { flex-direction: column; align-items: flex-start; gap: 18px; } .pub-media-text { flex-basis: auto; } }
@media (max-width: 600px) { .rgq-pubs .rgq-pub-year { font-size: 28px; margin-top: 48px; } }

/* Product cards are full-bleed studio renders (black / white / black), each with
   its own baked background: drop the inset padding + tint and let the image cover
   the square card edge-to-edge. .rgq-page beats the baked .pro-product-photo rules
   regardless of CSS source order; the picture rule holds after Imagify wraps the
   img in <picture>. */
.rgq-page .pro-product-photo { padding: 0; background: none; }
.rgq-page .pro-product-photo picture { display: block; width: 100%; height: 100%; }
.rgq-page .pro-product-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* ---- Company page (.rgq-cpage) — ported from the consumer theme, pro palette ---- */
.rgq-cpage section { padding: 78px 0; position: relative; }
.rgq-cpage .cpage-hero { padding: 74px 0 14px; }
.rgq-cpage .cpage-hero h1 { font-family: "Playfair Display", serif; font-weight: 400; color: var(--ink);
  font-size: clamp(42px, 6.2vw, 74px); line-height: 1.02; letter-spacing: -0.02em; margin: 0 0 24px; }
.rgq-cpage .cpage-hero .lede { font-size: 20px; line-height: 1.62; max-width: 62ch; }
.rgq-cpage .it { font-family: "Playfair Display", serif; font-style: italic; }
.cpage-figure { padding: 26px 0 6px; }
.cpage-lab { width: 100%; border-radius: 4px; border: 1px solid var(--rule); }
.cpage-facts h2, .cpage-docs h2, .cpage-prod h2, .cpage-moscow h2 {
  font-family: "Playfair Display", serif; font-weight: 400; color: var(--ink);
  font-size: clamp(30px, 4vw, 42px); line-height: 1.1; letter-spacing: -0.015em; margin: 4px 0 0; }
.cpage-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px; margin-top: 40px; }
.cpage-stat { border-top: 2px solid var(--blue); padding-top: 22px; }
.cpage-stat-num { font-family: "Playfair Display", serif; font-weight: 400; font-size: 58px; line-height: 1;
  color: var(--ink); letter-spacing: -0.02em; }
.cpage-stat-num .unit { color: var(--blue); font-style: italic; font-size: 0.32em; margin-left: 5px; letter-spacing: 0; }
.cpage-stat-txt { margin-top: 15px; font-size: 15px; line-height: 1.62; color: var(--body); }
.cpage-moscow { background: var(--paper-lt); border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); }
.cpage-moscow-grid { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 56px; align-items: center; }
.cpage-moscow-grid .lede { margin-top: 16px; font-size: 18px; line-height: 1.6; }
.cpage-moscow-badge { width: 100%; max-width: 430px; border-radius: 4px; justify-self: center; }
.cpage-lab, .cpage-moscow-badge { display: block; }
.cpage-lab img, .cpage-moscow-badge img { display: block; width: 100%; height: auto; }
.cpage-docs-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 28px; margin-top: 30px; }
.cpage-docs-grid figure { margin: 0; border: 1px solid var(--rule); background: var(--paper); padding: 18px; }
.cpage-docs-grid img { width: 100%; }
.cpage-prod-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 30px; }
.cpage-prod-grid img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: 3 / 2; border-radius: 4px; }
@media (max-width: 900px) {
  .rgq-cpage section, .rgq-cpage .cpage-hero { padding: 52px 0; }
  .cpage-stats { grid-template-columns: 1fr; gap: 26px; }
  .cpage-moscow-grid { grid-template-columns: 1fr; gap: 32px; }
  .cpage-prod-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 620px) {
  .cpage-docs-grid, .cpage-prod-grid { grid-template-columns: 1fr; }
  .rgq-cpage .cpage-hero .lede { font-size: 17px; }
}

/* ---- Publications: card grid (image + source + title), 5-wide per month ---- */
.rgq-pub-cards { display: grid; grid-template-columns: repeat(5, 1fr); gap: 18px; margin: 18px 0 38px; }
.rgq-pub-card { display: block; text-decoration: none; border: 1px solid var(--rule); background: var(--paper); transition: border-color 160ms; }
a.rgq-pub-card:hover { border-color: var(--blue); }
.rgq-pub-card-img { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: var(--paper-lt); }
.rgq-pub-card-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rgq-pub-card-img.is-logo { display: flex; align-items: center; justify-content: center; padding: 18px; background: var(--paper); border-bottom: 1px solid var(--rule); }
.rgq-pub-card-img.is-logo img { width: auto; height: auto; max-width: 70%; max-height: 60%; object-fit: contain; }
.rgq-pub-card-noimg { display: flex; align-items: center; justify-content: center; padding: 12px; text-align: center;
  font-family: "Playfair Display", serif; font-size: 17px; line-height: 1.25; color: var(--blue); }
.rgq-pub-card-body { display: block; padding: 10px 12px 12px; }
.rgq-pub-card-src { display: block; font-weight: 600; font-size: 13px; line-height: 1.35; color: var(--ink); }
.rgq-pub-card-title { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
  margin-top: 4px; font-size: 12px; line-height: 1.45; color: var(--body); }
@media (max-width: 900px) { .rgq-pub-cards { grid-template-columns: repeat(3, 1fr); gap: 14px; } }
@media (max-width: 620px) { .rgq-pub-cards { grid-template-columns: repeat(2, 1fr); gap: 12px; } }

/* ---- July round 3 (2026-07-10): rebalance grids after the card culls ---- */
/* compat 6->4 and applications 6->4 => 2x2; doctors 7->5 => single row of 5.
   Scoped to the section (0,2,0) so these beat the stale BAKED homepage.css that
   enqueues AFTER the Global Styles push (equal-specificity baked rules would win
   on source order otherwise). Full breakpoint chain restated at the same bumped
   specificity so the responsive cascade still steps down correctly. */
.compat .compat-grid { grid-template-columns: repeat(2, 1fr); }
.applications .applications-grid { grid-template-columns: repeat(2, 1fr); }
.doctors .doctor-row { grid-template-columns: repeat(5, 1fr); }
@media (max-width: 1248px) { .doctors .doctor-row { grid-template-columns: repeat(5, 1fr); } }
@media (max-width: 900px)  { .doctors .doctor-row { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 600px)  {
  .compat .compat-grid, .applications .applications-grid { grid-template-columns: 1fr; }
  .doctors .doctor-row { grid-template-columns: repeat(2, 1fr); }
}

/* ---- July round 3 follow-up (2026-07-10): full-bleed the dark «Межпроцедурный
   уход» (.bridge) band edge-to-edge past the 1440 frame ---- */
/* box-shadow spread paints the dark colour into the side gutters but NEVER adds
   scrollable overflow — so no horizontal scrollbar and, crucially, no need to put
   overflow:clip/hidden on an ancestor (which would break the header sticky and can
   clip the fixed mobile-menu overlay). clip-path trims the spread to the section's
   own height so it doesn't bleed onto the neighbours. .rgq-page scope (0,2,0) +
   the new box-shadow/clip-path beat the baked .bridge rule (incl. overflow:hidden,
   which would otherwise clip the shadow). Content stays in the 1056 .wrap, centred. */
.rgq-page .bridge { overflow: visible; box-shadow: 0 0 0 100vw var(--ink); clip-path: inset(0 -100vw); }

/* Header sticky removed (Anatoliy 2026-07-10: didn't want it — and it never worked,
   the .nav's <header> parent is only nav-height so sticky had no room). Static so it
   scrolls with the page. .wp-site-blocks scope beats the baked `.nav{position:sticky}`. */
.wp-site-blocks .nav { position: static; }

/* ===========================================================================
   JULY ROUND 4 (2026-07-12) — chat batch. The /company patents block below was
   previously LIVE-ONLY (pushed straight to Global Styles #61 on 2026-07-10, never
   saved to a project file), so a plain push_css.R would have wiped it. Re-homed
   here. The card thumbnail is now a <label> (.cpage-patent-open) driving a no-JS
   checkbox lightbox instead of an <a> to the raw /uploads/*.jpg — that keeps the
   WordPress uploads path out of the address bar (J4-1).
   =========================================================================== */

/* ---- /company patents grid (re-homed from live 2026-07-10; thumb → lightbox) ---- */
.cpage-patents .lede { max-width: 66ch; margin-top: 16px; font-size: 18px; line-height: 1.62; }
.cpage-patent-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 30px 28px; margin-top: 44px; align-items: start; }
.cpage-patent-card { display: flex; flex-direction: column; margin: 0; }
.cpage-patent-open { display: block; border: 1px solid var(--hairline-stronger); border-radius: 4px;
  overflow: hidden; background: #fff; aspect-ratio: 71 / 100; cursor: zoom-in;
  transition: border-color 200ms ease, box-shadow 200ms ease; }
.cpage-patent-open:hover, .cpage-patent-open:focus-visible { border-color: var(--blue); box-shadow: 0 8px 28px rgba(0, 39, 62, 0.10); outline: none; }
.cpage-patent-open img { width: 100%; height: 100%; object-fit: contain; display: block; background: #fff; }
.cpage-patent-card figcaption { display: flex; flex-direction: column; gap: 3px; padding: 14px 2px 0; }
.cpage-patent-card .pt-country { font-family: "Inter", sans-serif; font-size: 10.5px; letter-spacing: 0.2em;
  text-transform: uppercase; color: var(--blue); font-weight: 600; }
.cpage-patent-card .pt-num { font-family: "Playfair Display", serif; font-size: 20px; color: var(--ink); letter-spacing: -0.01em; }
.cpage-patent-card .pt-date { font-family: "Inter", sans-serif; font-size: 13px; color: rgba(0, 39, 62, 0.6); }
@media (max-width: 1100px) { .cpage-patent-grid { grid-template-columns: repeat(3, 1fr); gap: 26px 22px; } }
@media (max-width: 720px)  { .cpage-patent-grid { grid-template-columns: repeat(2, 1fr); gap: 22px 18px; } }
@media (max-width: 420px)  { .cpage-patent-grid { grid-template-columns: repeat(2, 1fr); gap: 16px 12px; } }
.cpage-stat-link { display: inline-block; margin-top: 12px; font-family: "Inter", sans-serif; font-size: 13px;
  letter-spacing: 0.02em; color: var(--blue); text-decoration: none; border-bottom: 1px solid currentColor; padding-bottom: 1px; }
.cpage-stat-link:hover { color: var(--ink); }

/* J4-1 — no-JS checkbox lightbox for the patent cards (address bar never shows /uploads) */
.cpage-lb-toggle { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.cpage-lightbox { display: none; }
.cpage-lb-toggle:checked ~ .cpage-lightbox {
  display: flex; position: fixed; inset: 0; z-index: 1000; align-items: center; justify-content: center;
  padding: 5vmin; background: rgba(0, 39, 62, 0.86); cursor: zoom-out;
  -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px); }
.cpage-lightbox img { max-width: min(880px, 92vw); max-height: 90vh; width: auto; height: auto;
  object-fit: contain; border-radius: 6px; background: #fff; box-shadow: 0 30px 90px rgba(0, 0, 0, 0.55); }
.cpage-lb-toggle:checked ~ .cpage-lightbox::after { content: "\00d7"; position: fixed; top: 18px; right: 26px;
  font-family: "Inter", sans-serif; font-size: 34px; line-height: 1; color: rgba(255, 255, 255, 0.85); pointer-events: none; }

/* J4-2 — /news single-post featured image: show the WHOLE image (portrait shots were
   banner-cropped). The featured-image block emits an INLINE style
   `width:100%;height:100%;object-fit:cover` on the <img>, which beats any selector rule —
   so width/height/object-fit need !important to win (max-height isn't in the inline, so it
   applies normally). Result: image sized to intrinsic ratio, height-capped at 520px, centred. */
.rgq-page.rgq-single .wp-block-post-featured-image img {
  width: auto !important; max-width: 100%; height: auto !important; max-height: 520px;
  object-fit: contain !important; margin: 0 auto; display: block; border: 1px solid var(--hairline); }

/* J4-5 — /personal: full-bleed the dark «Полный каталог…» (.rgq-cta) band with the
   same box-shadow technique as the homepage .bridge (no scrollbar, no ancestor overflow). */
.rgq-personal .rgq-cta { overflow: visible; box-shadow: 0 0 0 100vw var(--ink); clip-path: inset(0 -100vw); }

/* J4-7 — header: the WP navigation block carries a stray margin-top:16px that drops the
   menu ~8px below the logo's optical centre. Zero it so the logo and menu share a centre. */
.wp-site-blocks .nav-inner .wp-block-navigation { margin-top: 0 !important; }

/* ===========================================================================
   RECONCILED FROM LIVE GS #61 (2026-07-22) — clean-slate rebuild. These rules
   had been pushed additively to Global Styles and never mirrored here, so
   rebuilding the theme zip from source would have dropped them. Re-homed so the
   built file is the complete source of truth. See dev/prod_diff_gs_vs_source.R.
   =========================================================================== */

/* Doctors — refinements on the base .doctor-portrait rules above: make the
   portrait a positioned frame the img absolutely fills, so the Imagify <picture>
   wrap can't shrink it (base img rule loses to these !important ones). The Stenko
   headshot sits high in frame, so bias its crop toward the top. */
.doctor-portrait { position: relative; }
.doctor-portrait img { position: absolute !important; inset: 0 !important; width: 100% !important; height: 100% !important; object-fit: cover !important; }
.doctor-portrait img[src*="rgqp-doc-stenko"] { object-position: 50% 0%; }

/* 404 template (.rgq-404) — enqueued site-wide, used by templates/404.html */
.rgq-404 { padding: 56px 0 88px; }
.rgq-404 .wrap { max-width: 1248px; margin-inline: auto; padding: 0 48px; }
.rgq-404-inner { display: grid; grid-template-columns: 1.05fr 1fr; gap: 56px; align-items: center; margin-bottom: 56px; }
.rgq-404 .eyebrow { display: block; color: var(--blue); font-size: 13px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; margin-bottom: 14px; }
.rgq-404 h1 { font-family: "Playfair Display", serif; font-weight: 400; font-size: 52px; line-height: 1.08; color: var(--ink); margin: 0 0 20px; }
.rgq-404 .lede { font-size: 18px; line-height: 1.62; color: var(--body); max-width: 48ch; margin: 0 0 28px; }
.rgq-404-home { display: inline-block; background: var(--blue); color: #fff; font-size: 15px; font-weight: 600; padding: 14px 28px; border-radius: 3px; text-decoration: none; }
.rgq-404-home:hover { background: #092969; }
.rgq-404-image img { width: 100%; height: auto; display: block; border-radius: 4px; }
.rgq-404-links { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.rgq-404-links a { display: flex; flex-direction: column; gap: 6px; padding: 18px 20px; border: 1px solid var(--rule); border-radius: 4px; text-decoration: none; background: #fff; transition: border-color .18s, transform .18s; }
.rgq-404-links a:hover { border-color: var(--blue); transform: translateY(-2px); }
.rgq-404-links .l-t { font-weight: 600; color: var(--ink); font-size: 15px; }
.rgq-404-links .l-d { font-size: 12.5px; color: var(--body); line-height: 1.45; }
@media (max-width: 1024px) { .rgq-404 .wrap { padding: 0 20px; } }
@media (max-width: 900px) { .rgq-404-inner { grid-template-columns: 1fr; gap: 32px; } .rgq-404 h1 { font-size: 40px; } .rgq-404-links { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .rgq-404-links { grid-template-columns: 1fr; } }

/* News post video (wp:video inside .wp-block-post-content) — centre + cap height */
.wp-block-post-content .wp-block-video { text-align: center; }
.wp-block-post-content .wp-block-video video { display: block; margin-inline: auto; max-width: 100%; max-height: 60vh; width: auto; height: auto; border-radius: 8px; }
