/* REGENIQUE homepage / landing-pattern styles.
 * Generated from consumer-homepage-v6.html by dev/build_homepage_css.R.
 * Component classes (.hero, .store-grid, .const-cell, .product-card, ...) are
 * used by the block patterns in /patterns. Brand tokens come from theme.json. */

  :root {
    --cream:     #F4EAD8;
    --cream-lt:  #F8F0DE;
    --cream-dk:  #EBE0CB;
    --paper:     #FBF4E4;
    --ink:       #00273e;
    --body:      #43454b;
    --maroon:    #910048;
    --maroon-dk: #680033;
    --turquoise: #2dbdb6;
    --gold:      #dc9814;
    --rule:      rgba(145,0,72,0.55);
    --hairline:  rgba(0,39,62,0.10);
    --hairline-stronger: rgba(0,39,62,0.18);
    --gold-hair: rgba(220,152,20,0.45);
  }
  *,*::before,*::after { box-sizing: border-box; }
  html,body { margin: 0; padding: 0; }
  body {
    width: 1440px;
    margin: 0 auto;
    background: var(--cream);
    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; }

  /* Skin-lines bg */
  .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.08; }

  .wrap { max-width: 1248px; margin: 0 auto; padding: 0 96px; position: relative; z-index: 1; }

  /* Typography */
  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(--maroon); font-weight: 500; margin-bottom: 18px; display: inline-block; }
  /* small burgundy square before every section eyebrow (brand mark) — was only on the
     content-page wrappers (.rgq-pro/-doc/-cpage/-wpage); now site-wide incl. homepage + /locations/ */
  .eyebrow::before { content: ""; display: inline-block; width: 7px; height: 7px; background: var(--maroon); margin-right: 10px; vertical-align: middle; position: relative; top: -2px; }
  .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; }

  /* Buttons */
  .btn { display: inline-block; font-family: "Inter", sans-serif; font-size: 13px; letter-spacing: 0.10em; padding: 14px 28px; background: var(--maroon); color: var(--paper); border-radius: 2px; transition: all 200ms ease; font-weight: 500; border: 1px solid var(--maroon); cursor: pointer; text-align: center; }
  .btn:hover { background: var(--maroon-dk); border-color: var(--maroon-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(--maroon); border-bottom: 1px solid var(--maroon); padding-bottom: 2px; font-size: 14px; letter-spacing: 0.02em; font-weight: 500; }
  .tlink:hover { color: var(--maroon-dk); border-bottom-color: var(--maroon-dk); }

  /* NAV */
  .nav { position: sticky; top: 0; z-index: 50; background: rgba(244,234,216,0.94); backdrop-filter: blur(12px); border-bottom: 1px solid var(--rule); }
  .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: 26px; width: auto; display: block; }


  /* HERO — magazine spread, image bleeds to right edge */
  .hero { position: relative; overflow: hidden; border-bottom: 1px solid var(--rule); }
  /* Constrain the hero content to the canonical .wrap column (1248) so the hero
     matches every other section instead of spanning the full 1440 frame; the
     .hero SECTION bg/hairline stay full-bleed (same pattern as .mapcta/.contact).
     hero-text keeps its 96px left padding -> text aligns with .wrap's gutter. */
  .hero-grid { display: grid; grid-template-columns: 1fr 1fr; min-height: 720px; position: relative; z-index: 2; max-width: 1248px; margin-left: auto; margin-right: auto; }
  .hero-text { padding: 116px 80px 116px 96px; display: flex; flex-direction: column; justify-content: center; position: relative; z-index: 2; }
  .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: 74px; line-height: 1.02; letter-spacing: -0.018em;
    margin: 0 0 24px; max-width: 14ch;
    position: relative; z-index: 2;
  }
  .hero h1 .it { font-style: italic; }
  .hero .lede { margin-bottom: 28px; position: relative; z-index: 2; }
  .hero-rating { display: flex; align-items: center; gap: 10px; margin-bottom: 28px; font-size: 13px; color: var(--body); position: relative; z-index: 2; }
  .hero-rating .stars { color: var(--maroon); letter-spacing: 3px; font-size: 14px; }
  .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: 12px; color: var(--body); opacity: 0.7; font-style: italic; position: relative; z-index: 2; }
  .hero-image {
    background: var(--cream-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: 10px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--paper);
    background: rgba(0,39,62,0.55);
    padding: 6px 12px;
    backdrop-filter: blur(4px);
  }

  /* TRUST — social proof strip (replaces the research "2300+" masthead) */
  .trust-social { padding: 56px 0; background: var(--paper); border-bottom: 1px solid var(--rule); }
  .trust-social-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px; align-items: start; }
  .ts-item { text-align: center; display: flex; flex-direction: column; align-items: center; gap: 12px; }
  .ts-num { font-family: "Playfair Display", serif; font-weight: 400; font-size: 72px; line-height: 0.95; color: var(--ink); letter-spacing: -0.03em; }
  .ts-num .unit { color: var(--maroon); font-style: italic; font-size: 0.42em; margin-left: 2px; }
  .ts-lbl { font-size: 13px; letter-spacing: 0.03em; color: var(--body); max-width: 26ch; line-height: 1.5; }
  .trust-social-src { text-align: center; margin: 28px auto 0; font-size: 11px; font-style: italic; color: var(--body); opacity: 0.6; letter-spacing: 0.04em; max-width: none; }

  /* SYSTEM — clinic + home, "one science, two lines" */
  .system { padding: 112px 0; position: relative; border-bottom: 1px solid var(--rule); overflow: hidden; }
  .system-head { margin-bottom: 48px; position: relative; z-index: 2; }
  .system-head h2 { max-width: 20ch; }
  .system-head .lede { margin-top: 16px; }
  .system-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; position: relative; z-index: 2; }
  .system-col { background: var(--paper); border: 1px solid var(--hairline-stronger); border-radius: 2px; padding: 40px 36px; display: flex; flex-direction: column; }
  .system-col-home { border: 1.5px solid var(--gold-hair); }
  .system-col-tag { font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--maroon); font-weight: 600; margin-bottom: 18px; }
  .system-col-home .system-col-tag { color: var(--gold); }
  .system-col h3 { font-size: 24px; margin-bottom: 14px; }
  .system-col p { font-size: 15px; color: var(--body); max-width: 44ch; margin: 0; line-height: 1.6; }
  .system-arrow { display: flex; align-items: center; justify-content: center; font-family: "Playfair Display", serif; font-style: italic; color: var(--maroon); }

  /* HOW IT WORKS — 3 light differentiator cards */
  .howit { padding: 112px 0; position: relative; background: var(--cream-lt); border-bottom: 1px solid var(--rule); overflow: hidden; }
  .howit-head { margin-bottom: 48px; position: relative; z-index: 2; }
  .howit-head .lede { margin-top: 16px; }
  .howit-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; position: relative; z-index: 2; }
  .howit-card { background: var(--paper); border: 1px solid var(--gold-hair); border-radius: 2px; padding: 38px 32px; display: flex; flex-direction: column; }
  .howit-topper { font-family: "Playfair Display", serif; font-weight: 400; font-size: 60px; line-height: 1; color: var(--ink); letter-spacing: -0.025em; margin-bottom: 18px; min-height: 60px; }
  .howit-topper .unit { color: var(--maroon); font-style: italic; font-size: 0.42em; }
  .howit-topper.kicker { font-style: italic; font-size: 30px; color: var(--maroon); display: flex; align-items: flex-end; }
  .howit-card h3 { font-size: 21px; line-height: 1.25; margin-bottom: 12px; }
  .howit-card p { font-size: 14px; color: var(--body); line-height: 1.62; margin: 0 0 18px; }
  .howit-card .tlink { margin-top: auto; font-size: 13px; }
  .howit-foot { margin-top: 40px; text-align: center; position: relative; z-index: 2; max-width: none; }
  .howit-foot .it { color: var(--body); font-size: 15px; }

  /* RESULTS — single feature card (the one results section, kept high) */
  .results { padding: 112px 0; position: relative; border-bottom: 1px solid var(--rule); }
  .results-head { margin-bottom: 56px; position: relative; z-index: 2; }
  .results-card {
    position: relative; z-index: 2;
    background: var(--paper);
    border: 1px solid var(--hairline-stronger);
    padding: 56px;
    max-width: 1056px;
    margin: 0 auto;
    border-radius: 2px;
  }
  .results-card h3 { margin-bottom: 8px; font-size: 32px; }
  .results-pi { font-size: 13px; color: var(--body); margin-bottom: 36px; font-style: italic; }
  .results-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; margin-bottom: 36px; }
  .results-stat { border-top: 1px solid var(--hairline-stronger); padding-top: 20px; }
  .results-stat-num { font-family: "Playfair Display", serif; font-weight: 400; font-size: 96px; line-height: 1; color: var(--ink); letter-spacing: -0.02em; display: flex; align-items: baseline; gap: 4px; }
  .results-stat-num .unit { color: var(--maroon); font-style: italic; font-size: 0.42em; }
  .results-stat-label { margin-top: 14px; font-size: 14px; color: var(--body); letter-spacing: 0.04em; }
  .results-stat-chart { margin-top: 16px; display: flex; flex-direction: column; gap: 6px; }
  .results-stat-chart .row { display: grid; grid-template-columns: 64px 1fr 56px; gap: 10px; align-items: center; font-size: 11px; color: var(--body); }
  .results-stat-chart .bar-track { height: 6px; background: var(--cream-dk); border-radius: 1px; position: relative; overflow: hidden; }
  .results-stat-chart .bar-fill { position: absolute; inset: 0 auto 0 0; background: var(--maroon); border-radius: 1px; }
  .results-stat-chart .bar-fill.tu { background: var(--turquoise); }
  .results-stat-chart .val { text-align: right; font-variant-numeric: tabular-nums; font-weight: 500; color: var(--ink); }
  .results-card-body { font-size: 16px; line-height: 1.6; color: var(--body); max-width: 60ch; margin-bottom: 28px; }
  .results-card-foot { display: flex; justify-content: space-between; align-items: center; border-top: 1px solid var(--hairline); padding-top: 24px; margin-top: 36px; gap: 24px; }
  .results-source { font-size: 12px; color: var(--body); opacity: 0.7; font-style: italic; }

  /* CLINICS — authority signal: recognizable clinic logos */
  .clinics { padding: 112px 0; position: relative; border-bottom: 1px solid var(--rule); overflow: hidden; background: var(--cream-lt); }
  .clinics-head { margin-bottom: 48px; position: relative; z-index: 2; }
  .clinics-head h2 { max-width: 22ch; }
  .clinics-head .lede { margin-top: 16px; }
  .clinics-grid {
    position: relative; z-index: 2;
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    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);
    height: 128px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px 20px;
    transition: background 200ms;
  }
  .clinic-cell:hover { background: #fff; }
  .clinic-cell img {
    max-height: 66px; max-width: 100%;
    width: auto; height: auto;
    object-fit: contain;
    mix-blend-mode: multiply;
    opacity: 0.82;
    transition: opacity 200ms;
  }
  .clinic-cell:hover img { opacity: 1; }
  .clinic-cell.more { font-family: "Playfair Display", serif; font-style: italic; font-size: 15px; color: var(--body); opacity: 0.6; }
  .clinics-coda { margin-top: 72px; text-align: center; position: relative; z-index: 2; }
  .clinics-coda-num { font-family: "Playfair Display", serif; font-weight: 400; font-size: 168px; line-height: 0.88; color: var(--ink); letter-spacing: -0.04em; }
  .clinics-coda-num .unit { color: var(--maroon); font-style: italic; font-size: 0.5em; }
  .clinics-coda-body { font-size: 22px; line-height: 1.4; color: var(--ink); max-width: 34ch; margin: 18px auto 0; }
  .clinics-coda-src { margin-top: 16px; font-size: 11px; font-style: italic; color: var(--body); opacity: 0.6; max-width: none; }
  .clinics-inst { text-align: center; margin: 48px auto 0; font-size: 13px; color: var(--body); opacity: 0.7; letter-spacing: 0.02em; max-width: none; }

  /* STORE — e-commerce cards (centerpiece, moved high) */
  .store { padding: 112px 0; position: relative; border-bottom: 1px solid var(--rule); }
  .store-head { margin-bottom: 28px; display: flex; justify-content: space-between; align-items: flex-end; gap: 48px; }
  .store-head-left h2 { font-size: 44px; }
  .store-head-left .lede { margin-top: 14px; }
  .store-head-right { text-align: right; padding-bottom: 8px; }
  .store-head-right a { font-size: 13px; color: var(--maroon); border-bottom: 1px solid var(--maroon); padding-bottom: 2px; }
  /* ROUTINE — "your day" timeline: horizontal on desktop, vertical on mobile.
     Pattern adapted from REGENIQUE Professional (pro-homepage-v10 contact timeline). */
  .routine-tl { margin: 0 0 44px; padding: 36px 40px 34px; background: var(--cream-lt); border: 1px solid var(--hairline); border-radius: 2px; }
  .routine-tl-lbl { font-family: "Playfair Display", serif; font-style: italic; font-size: 19px; color: var(--maroon); text-align: center; margin-bottom: 30px; }
  .routine-flow { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
  .routine-step { position: relative; padding-top: 46px; text-align: center; }
  .routine-step::before { content: ""; position: absolute; top: 14px; left: 50%; width: calc(100% + 24px); height: 1px; background: var(--hairline-stronger); }
  .routine-step:last-child::before { display: none; }
  .routine-step-num { position: absolute; top: 0; left: 50%; transform: translateX(-50%); width: 30px; height: 30px; border-radius: 50%; border: 1px solid var(--maroon); color: var(--maroon); background: var(--paper); display: flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 600; }
  .routine-step-title { font-family: "Playfair Display", serif; font-weight: 400; font-size: 19px; color: var(--ink); margin-bottom: 5px; letter-spacing: -0.005em; }
  .routine-step-desc { font-size: 13px; color: var(--body); line-height: 1.5; margin: 0 auto; max-width: 22ch; }
  /* graceful fallback for the old inline-arrows markup (until the theme is re-uploaded) */
  .routine { margin: 0 0 40px; padding: 18px 24px; background: var(--cream-lt); border: 1px solid var(--hairline); border-radius: 2px; font-size: 15px; color: var(--body); text-align: center; line-height: 1.8; }
  .routine .it { color: var(--maroon); }
  .routine .sep { display: none; }
  .routine .step { display: block; margin-top: 6px; }
  .store-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
  }
  .product-card {
    background: var(--paper);
    border: 1px solid var(--hairline-stronger);
    border-radius: 2px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: border-color 200ms, transform 200ms;
    position: relative;
  }
  .product-card:hover { border-color: var(--maroon); }
  /* Whole card links to the product page; the В корзину button + badge sit above it. */
  .product-cardlink { position: absolute; inset: 0; z-index: 1; border-radius: inherit; }
  .product-cardlink:focus-visible { outline: 2px solid var(--maroon); outline-offset: -3px; }
  /* wc-add-to-cart.js appends a "View cart" link after В корзину on AJAX add;
     hide it — the slide-out drawer already provides that affordance */
  .product-card .added_to_cart { display: none; }
  .product-photo {
    aspect-ratio: 1/1;
    background: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 22px;
    position: relative;
    overflow: hidden;
  }
  .product-photo img {
    max-width: 100%; max-height: 100%;
    width: auto; height: auto;
    object-fit: contain;
  }
  .product-photo.cover img { width: 100%; height: 100%; object-fit: cover; padding: 0; }
  .product-variants { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 14px; }
  /* Variant chips are informational on the homepage grid (not selectable controls);
     real variant selection + image switching lives on the product page. */
  .pv { font-size: 10px; letter-spacing: 0.04em; padding: 5px 9px; border: 1px solid var(--hairline-stronger); border-radius: 2px; color: var(--body); white-space: nowrap; }
  .pv.active { border-color: var(--maroon); color: var(--ink); }
  .product-badge {
    position: absolute;
    top: 16px; left: 16px;
    background: var(--maroon);
    color: var(--paper);
    font-size: 10px;
    letter-spacing: 0.10em;
    text-transform: uppercase;
    padding: 6px 10px;
    font-weight: 500;
    z-index: 2;
  }
  .product-badge.ink { background: var(--ink); }
  .product-badge.gold { background: var(--gold); color: var(--ink); }
  .product-fav {
    position: absolute;
    top: 16px; right: 16px;
    width: 32px; height: 32px;
    background: var(--paper);
    border: 1px solid var(--hairline-stronger);
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    cursor: pointer;
    z-index: 2;
    transition: all 200ms;
  }
  .product-fav:hover { border-color: var(--maroon); }
  .product-fav svg { width: 14px; height: 14px; stroke: var(--ink); fill: none; stroke-width: 1.5; }
  .product-body { padding: 24px 24px 22px; display: flex; flex-direction: column; flex: 1; }
  .product-vol {
    font-size: 11px;
    letter-spacing: 0.10em;
    text-transform: uppercase;
    color: var(--body);
    opacity: 0.7;
    margin-bottom: 8px;
  }
  .product-name {
    font-family: "Playfair Display", serif;
    font-size: 18px;
    font-weight: 400;
    color: var(--ink);
    letter-spacing: -0.005em;
    line-height: 1.2;
    margin-bottom: 8px;
  }
  .product-line {
    font-size: 13px;
    color: var(--body);
    line-height: 1.5;
    margin-bottom: 16px;
  }
  .product-rating {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 16px;
    font-size: 12px;
  }
  .product-rating .stars { color: var(--maroon); letter-spacing: 2px; }
  .product-rating .count { color: var(--body); opacity: 0.7; }
  .product-price-row {
    display: flex;
    align-items: baseline;
    gap: 10px;
    margin-bottom: 16px;
    padding-top: 16px;
    border-top: 1px solid var(--hairline);
    margin-top: auto;
  }
  .product-price {
    font-family: "Playfair Display", serif;
    font-style: italic;
    font-size: 26px;
    color: var(--ink);
    letter-spacing: -0.005em;
    font-weight: 400;
  }
  .product-price-old {
    font-size: 14px;
    color: var(--body);
    opacity: 0.55;
    text-decoration: line-through;
  }
  .product-add {
    position: relative;
    z-index: 2;
    width: 100%;
    display: block;
    text-align: center;
    background: var(--ink);
    color: var(--paper);
    font-family: "Inter", sans-serif;
    font-size: 12px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    padding: 14px;
    border: 1px solid var(--ink);
    cursor: pointer;
    transition: all 200ms;
    font-weight: 500;
  }
  .product-add:hover { background: var(--maroon); border-color: var(--maroon); }
  .store-partners {
    margin-top: 64px;
    padding-top: 36px;
    border-top: 1px solid var(--hairline-stronger);
    text-align: center;
  }
  .store-partners-lbl {
    font-size: 11px;
    color: var(--body);
    letter-spacing: 0.10em;
    text-transform: uppercase;
    margin-bottom: 14px;
    opacity: 0.7;
  }
  .store-partners-list {
    font-family: "Playfair Display", serif;
    font-size: 19px;
    color: var(--ink);
    letter-spacing: 0.02em;
  }
  .store-partners-list span {
    display: inline-block;
    margin: 0 14px;
  }
  .store-partners-list span .it {
    font-style: italic;
    color: var(--body);
    opacity: 0.8;
  }

  /* REVIEWS */
  .reviews { padding: 112px 0; position: relative; overflow: hidden; border-bottom: 1px solid var(--rule); background: var(--cream-lt); }
  .reviews-head { margin-bottom: 64px; position: relative; z-index: 2; }
  .reviews-grid { position: relative; z-index: 2; display: grid; grid-template-columns: repeat(3, 1fr); gap: 36px; }
  .review-card { background: var(--paper); border: 1px solid var(--hairline-stronger); padding: 44px 36px 36px; border-radius: 2px; display: flex; flex-direction: column; justify-content: space-between; min-height: 320px; position: relative; }
  .review-mark { font-family: "Playfair Display", serif; font-style: italic; font-size: 72px; line-height: 1; color: var(--maroon); position: absolute; top: 18px; left: 28px; opacity: 0.45; }
  .review-body { font-family: "Playfair Display", serif; font-style: italic; font-weight: 400; font-size: 19px; line-height: 1.5; color: var(--ink); margin: 32px 0 24px; }
  .review-stars { color: var(--maroon); letter-spacing: 4px; font-size: 13px; margin-bottom: 10px; }
  .review-meta { border-top: 1px solid var(--hairline); padding-top: 16px; display: flex; justify-content: space-between; align-items: baseline; }
  .review-name { font-family: "Inter", sans-serif; font-size: 14px; font-weight: 500; color: var(--ink); letter-spacing: 0.04em; }
  .review-product { font-size: 11px; color: var(--body); opacity: 0.75; font-style: italic; text-align: right; max-width: 18ch; }
  .reviews-foot { margin-top: 48px; text-align: center; position: relative; z-index: 2; max-width: none; }

  /* RESEARCH PROOF ZONE (relocated, kept heavy) */
  .research-mast { padding: 112px 0 56px; position: relative; border-bottom: 1px solid var(--rule); }
  .research-mast-head { margin-bottom: 56px; position: relative; z-index: 2; }
  .research-mast-head h2 { max-width: 26ch; }
  .research-mast-counters {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 0;
    position: relative; z-index: 2;
    border-top: 2px solid var(--ink);
    border-bottom: 1px solid var(--hairline-stronger);
  }
  .counter {
    padding: 32px 24px 32px 0;
    border-right: 1px solid var(--hairline-stronger);
  }
  .counter:last-child { border-right: none; }
  .counter-num {
    font-family: "Playfair Display", serif;
    font-weight: 400;
    font-size: 64px; line-height: 1;
    color: var(--ink);
    letter-spacing: -0.025em;
  }
  .counter-num .unit { color: var(--maroon); font-style: italic; font-size: 0.5em; margin-left: 4px; }
  .counter-label {
    margin-top: 12px;
    font-size: 11px;
    color: var(--body);
    line-height: 1.45;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    max-width: 22ch;
  }
  .tech { padding: 80px 0 56px; position: relative; }
  .tech-head { margin-bottom: 48px; }
  .tech-head h3 { font-size: 28px; margin-bottom: 8px; }
  .tech-head p { color: var(--body); font-size: 15px; }
  .tech-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 24px;
  }
  .tech-card {
    border-top: 1px solid var(--hairline-stronger);
    padding-top: 22px;
  }
  .tech-icon {
    width: 36px; height: 36px;
    margin-bottom: 18px;
    color: var(--maroon);
  }
  .tech-icon svg { width: 100%; height: 100%; stroke: currentColor; fill: none; stroke-width: 1.3; }
  .tech-name {
    font-family: "Playfair Display", serif;
    font-weight: 400;
    font-size: 17px;
    color: var(--ink);
    margin-bottom: 6px;
    letter-spacing: -0.005em;
  }
  .tech-spec {
    font-size: 11px;
    color: var(--body);
    line-height: 1.5;
    font-family: "Inter", monospace;
    letter-spacing: 0.01em;
  }
  .tech-measures {
    margin-top: 14px;
    font-size: 12px;
    color: var(--ink);
    line-height: 1.45;
    opacity: 0.85;
  }
  .programs { padding: 80px 0 112px; position: relative; border-bottom: 1px solid var(--rule); }
  .programs-head { margin-bottom: 48px; }
  .programs-head h2 { margin-bottom: 14px; max-width: 26ch; }
  .programs-head p { color: var(--body); font-size: 18px; line-height: 1.55; }
  .program-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
  }
  .program-card {
    background: var(--paper);
    border: 1px solid var(--hairline-stronger);
    padding: 32px 28px 28px;
    border-radius: 2px;
    display: flex;
    flex-direction: column;
  }
  .program-meta {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    font-size: 10px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--maroon);
    font-weight: 500;
    margin-bottom: 18px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--hairline-stronger);
  }
  .program-meta .n { color: var(--ink); font-weight: 600; font-family: "Inter", monospace; }
  .program-title {
    font-family: "Playfair Display", serif;
    font-weight: 400;
    font-size: 20px;
    color: var(--ink);
    line-height: 1.3;
    margin-bottom: 10px;
    letter-spacing: -0.005em;
  }
  .program-pi {
    font-size: 12px;
    color: var(--body);
    font-style: italic;
    margin-bottom: 22px;
    line-height: 1.5;
  }
  .program-stats { margin-top: auto; }
  .program-stat {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: baseline;
    padding: 8px 0;
    border-bottom: 1px dashed var(--hairline);
    font-size: 13px;
    color: var(--body);
    gap: 12px;
  }
  .program-stat:last-child { border-bottom: none; }
  .program-stat-val {
    font-family: "Playfair Display", serif;
    font-weight: 400;
    font-size: 22px;
    color: var(--ink);
    line-height: 1;
    letter-spacing: -0.01em;
  }
  .program-stat-val .unit { color: var(--maroon); font-style: italic; font-size: 0.55em; }
  .program-method {
    margin-top: 18px;
    padding-top: 14px;
    border-top: 1px solid var(--hairline);
    font-size: 11px;
    color: var(--body);
    opacity: 0.8;
    line-height: 1.5;
    font-style: italic;
  }
  .constellation { padding: 112px 0; position: relative; background: var(--cream-lt); overflow: hidden; border-bottom: 1px solid var(--rule); }
  .constellation-head { margin-bottom: 56px; position: relative; z-index: 2; }
  .constellation-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    position: relative; z-index: 2;
    border-top: 1px solid var(--hairline-stronger);
    border-left: 1px solid var(--hairline-stronger);
  }
  .const-cell {
    padding: 32px 24px;
    border-right: 1px solid var(--hairline-stronger);
    border-bottom: 1px solid var(--hairline-stronger);
    background: var(--cream-lt);
  }
  .const-num {
    font-family: "Playfair Display", serif;
    font-weight: 400;
    font-size: 56px;
    line-height: 1;
    color: var(--ink);
    letter-spacing: -0.025em;
    margin-bottom: 14px;
  }
  .const-num .unit { color: var(--maroon); font-style: italic; font-size: 0.5em; margin-left: 2px; }
  .const-num .sign { color: var(--maroon); font-style: italic; }
  .const-label {
    font-size: 12px;
    line-height: 1.45;
    color: var(--ink);
    letter-spacing: 0.02em;
  }
  .const-source {
    margin-top: 10px;
    font-size: 10px;
    color: var(--body);
    opacity: 0.7;
    font-style: italic;
    letter-spacing: 0.04em;
  }

  /* FORMULA — clean ingredients (free-from) */
  .formula { padding: 112px 0; position: relative; overflow: hidden; border-bottom: 1px solid var(--rule); }
  .formula-head { margin-bottom: 64px; position: relative; z-index: 2; }
  .formula-grid {
    position: relative; z-index: 2;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 32px;
  }
  .formula-card {
    background: var(--paper);
    border: 1px solid var(--hairline-stronger);
    padding: 28px 28px 32px;
    text-align: center;
    border-radius: 2px;
    display: flex;
    flex-direction: column;
    align-items: center;
  }
  .formula-icon {
    width: 152px;
    height: 152px;
    margin-bottom: 12px;
  }
  .formula-icon img { width: 100%; height: 100%; object-fit: contain; }
  .formula-no {
    font-family: "Playfair Display", serif;
    font-style: italic;
    font-size: 14px;
    color: var(--maroon);
    margin-bottom: 6px;
    letter-spacing: 0.04em;
  }
  .formula-name {
    font-family: "Playfair Display", serif;
    font-weight: 400;
    font-size: 22px;
    color: var(--ink);
    line-height: 1.25;
    margin-bottom: 10px;
  }
  .formula-note {
    font-size: 12px;
    line-height: 1.5;
    color: var(--body);
    opacity: 0.85;
    max-width: 26ch;
  }
  .formula-foot {
    margin-top: 48px;
    text-align: center;
    position: relative; z-index: 2;
    max-width: none;
  }
  .formula-foot .it { color: var(--body); font-size: 20px; }

  /* MADE IN MOSCOW — credibility stat row */
  .madein { padding: 80px 0; position: relative; border-bottom: 1px solid var(--rule); background: var(--cream-lt); }
  .madein-head { text-align: center; margin-bottom: 48px; }
  .madein-head h2 { font-size: 40px; }
  .madein-head .eyebrow { margin-bottom: 14px; }
  .madein-row {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    text-align: center;
    border-top: 1px solid var(--hairline-stronger);
    border-bottom: 1px solid var(--hairline-stronger);
  }
  .madein-cell { padding: 32px 16px; border-right: 1px solid var(--hairline-stronger); }
  .madein-cell:last-child { border-right: none; }
  .madein-num { font-family: "Playfair Display", serif; font-weight: 400; font-size: 48px; color: var(--ink); line-height: 1; margin-bottom: 10px; letter-spacing: -0.02em; }
  .madein-num .unit { color: var(--maroon); font-style: italic; font-size: 0.5em; }
  .madein-lbl { font-size: 11px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--body); line-height: 1.4; }

  /* MAP CTA — find a cosmetologist */
  .mapcta { padding: 96px 0; position: relative; overflow: hidden; border-bottom: 1px solid var(--rule); }
  .mapcta-card {
    position: relative; z-index: 2;
    background: transparent;
    border: none;
    border-radius: 0;
    padding: 0;
    text-align: center;
  }
  .mapcta-card .eyebrow { margin-bottom: 18px; }
  .mapcta-card h2 {
    font-size: 44px;
    margin: 0 auto 18px;
    line-height: 1.15;
    max-width: 24ch;
  }
  .mapcta-card p {
    color: var(--body);
    margin: 0 auto 36px;
    max-width: 62ch;
    font-size: 17px;
    line-height: 1.55;
  }
  .mapcta-meta {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    padding: 28px 0;
    border-top: 1px solid var(--hairline);
    border-bottom: 1px solid var(--hairline);
    margin-bottom: 40px;
    max-width: 720px;
    margin-left: auto;
    margin-right: auto;
  }
  .mapcta-meta-num { font-family: "Playfair Display", serif; font-weight: 400; font-size: 42px; color: var(--ink); line-height: 1; margin-bottom: 8px; }
  .mapcta-meta-num .unit { color: var(--maroon); font-style: italic; font-size: 0.55em; margin-left: 2px; }
  .mapcta-meta-lbl { font-size: 11px; color: var(--body); letter-spacing: 0.06em; line-height: 1.4; text-transform: uppercase; }
  .mapcta-card .btn { padding: 16px 36px; font-size: 13px; }

  /* FAQ */
  .faq { padding: 112px 0; position: relative; border-bottom: 1px solid var(--rule); }
  .faq-head { margin-bottom: 48px; text-align: center; }
  .faq-list { max-width: 860px; margin: 0 auto; }
  .faq-item { border-bottom: 1px solid var(--hairline-stronger); }
  .faq-item:first-child { border-top: 1px solid var(--hairline-stronger); }
  .faq-item summary { list-style: none; cursor: pointer; padding: 26px 0; font-family: "Playfair Display", serif; font-size: 21px; color: var(--ink); display: flex; justify-content: space-between; align-items: center; gap: 24px; }
  .faq-item summary::-webkit-details-marker { display: none; }
  .faq-item summary::after { content: "+"; color: var(--maroon); font-size: 26px; font-weight: 300; flex: none; line-height: 1; }
  .faq-item[open] summary::after { content: "\2013"; }
  .faq-item .faq-a { font-size: 15px; color: var(--body); line-height: 1.65; padding: 0 0 26px; max-width: 74ch; margin: 0; }

  /* PRESS — slim strip */
  .press { padding: 96px 0; position: relative; border-bottom: 1px solid var(--rule); overflow: hidden; background: var(--cream-lt); }
  .press-head { margin-bottom: 40px; position: relative; z-index: 2; text-align: center; }
  .press-head h2 { font-size: 32px; }
  .press-head .eyebrow { margin-bottom: 14px; }
  .press-grid {
    position: relative; z-index: 2;
    display: grid;
    grid-template-columns: repeat(8, 1fr);
    gap: 0;
    border-top: 1px solid var(--hairline-stronger);
    border-left: 1px solid var(--hairline-stronger);
  }
  .press-cell {
    border-right: 1px solid var(--hairline-stronger);
    border-bottom: 1px solid var(--hairline-stronger);
    background: var(--paper);
    padding: 18px 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 92px;
    transition: background 200ms;
  }
  .press-cell:hover { background: #fff; }
  .press-cell img {
    max-height: 42px;
    max-width: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
    mix-blend-mode: multiply;
    opacity: 0.8;
    transition: opacity 200ms;
  }
  .press-cell:hover img { opacity: 1; }
  .press-foot {
    margin-top: 32px;
    text-align: center;
    position: relative; z-index: 2;
    font-size: 12px;
    color: var(--body);
    opacity: 0.7;
    font-style: italic;
    max-width: none;
  }

  /* FOOTER */
  .foot { padding: 56px 0 40px; background: var(--cream); }
  .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: 12px; 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(--maroon); }
  .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(--maroon); }
  .disclaimer { text-align: center; margin-top: 40px; padding-top: 24px; border-top: 1px solid var(--hairline); font-size: 11px; color: var(--body); opacity: 0.7; font-style: italic; max-width: 80ch; margin-left: auto; margin-right: auto; line-height: 1.6; }

/* --- theme integration overrides --- */
body { width: auto !important; max-width: none !important; margin: 0 !important; }
.rgq-page { width: 100%; max-width: 1440px; margin: 0 auto; overflow-x: clip; }
.rgq-page img { max-width: 100%; }

  /* burgundy hairline flourish: a thin maroon bar caps the sticky header */
  .nav { border-top: 2px solid var(--maroon); }

  /* ============ CONTACT (ported from REGENIQUE Professional, consumer palette) ============ */
  .contact { padding: 112px 0; position: relative; overflow: hidden; }
  .contact .skinlines path { opacity: 0.06; }
  .contact-grid { position: relative; z-index: 2; display: grid; grid-template-columns: 1fr 1fr; gap: 72px; align-items: start; }
  .contact-text h2 { margin-bottom: 20px; max-width: 20ch; }
  .contact-text .lede { 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: 26px 32px; }
  .contact-meta-lbl { font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--maroon); font-weight: 600; margin-bottom: 8px; }
  .contact-meta-val { font-family: "Playfair Display", serif; font-size: 20px; line-height: 1.3; color: var(--ink); }
  .contact-meta-val a { border-bottom: 1px solid var(--hairline-stronger); }
  .contact-meta-val a:hover { color: var(--maroon); border-bottom-color: var(--maroon); }
  .contact-form { background: var(--cream-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: 600; margin-bottom: 6px; }
  .contact-form input, .contact-form textarea { width: 100%; padding: 13px 15px; border: 1px solid var(--hairline-stronger); background: var(--paper); font-family: "Inter", sans-serif; font-size: 15px; color: var(--ink); margin-bottom: 18px; border-radius: 2px; transition: border-color 200ms ease; }
  .contact-form input:focus, .contact-form textarea:focus { outline: none; border-color: var(--maroon); }
  .contact-form textarea { resize: vertical; min-height: 110px; }
  .contact-form .btn { width: 100%; padding: 16px 36px; cursor: pointer; }
  .contact-form-note { margin-top: 16px; font-size: 12px; color: var(--body); opacity: 0.72; line-height: 1.6; max-width: none; }
  .contact-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
  .contact-form .form-status { display: none; padding: 14px 16px; border-radius: 2px; font-size: 14px; line-height: 1.5; margin-bottom: 16px; }
  .contact-form.is-sent .form-status.ok { display: block; background: rgba(45,189,182,0.12); border: 1px solid var(--turquoise); color: var(--ink); }
  .contact-form.is-error .form-status.err { display: block; background: rgba(145,0,72,0.08); border: 1px solid var(--rule); color: var(--maroon-dk); }
  .contact-form.is-sent .contact-fields, .contact-form.is-sent .contact-form-note { display: none; }

  /* ============ FOOTER FLOURISH (wordpressr) — burgundy bar + gray hairline columns ============ */
  .foot { border-top: 2px solid var(--maroon); }
  .foot-cols > div { border-top: 1px solid var(--hairline); padding-top: 14px; }
  .foot-soc { padding-top: 14px; border-top: 1px solid var(--hairline); }
  .disclaimer { border-top: 1px solid var(--rule); }

/* ============ RESPONSIVE (added by wordpressr) ============ */
@media (max-width: 1100px) {
  .wrap { padding: 0 40px; }
  .store-grid { grid-template-columns: repeat(3, 1fr); }
  .press-grid { grid-template-columns: repeat(6, 1fr); }
}
/* ---- header shrinks below desktop; the menu itself is the core nav overlay ---- */
@media (max-width: 1024px) {
  .nav-inner { height: 64px; position: relative; padding: 0 20px; }
  .nav-logo img { height: 24px; width: auto; }
}
@media (max-width: 900px) {
  /* hero: ONE above-the-fold composition (portrait + cream scrim + message overlaid) */
  .hero { border-bottom: 1px solid var(--rule); }
  .hero-grid { display: block; position: relative; min-height: 86vh; }
  .hero-image { position: absolute; inset: 0; min-height: 0; order: 0; }
  .hero-image img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 16%; }
  .hero-image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(244,234,216,0.18) 0%, rgba(244,234,216,0) 22%, rgba(244,234,216,0.46) 52%, rgba(244,234,216,0.97) 84%); }
  .hero-image-caption { display: none; }
  .hero-text { position: relative; z-index: 2; min-height: 86vh; padding: 34px 22px 42px; justify-content: flex-end; }
  .hero-text .skinlines { display: none; }
  .hero .eyebrow { margin-bottom: 12px; }
  .hero h1 { font-size: 36px; line-height: 1.06; margin-bottom: 14px; max-width: 16ch; }
  .hero .lede { font-size: 15px; line-height: 1.55; margin-bottom: 18px; max-width: 33ch; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
  .hero-rating { margin-bottom: 20px; }
  .hero-cta-row { gap: 16px; }
  .hero-tertiary { display: none; }
  /* tighten the section rhythm on mobile */
  .trust-social, .system, .howit, .clinics, .store, .press, .reviews,
  .results, .formula, .madein, .mapcta, .faq, .contact { padding-top: 60px; padding-bottom: 60px; }
  .system-head, .howit-head, .clinics-head, .reviews-head, .formula-head, .results-head { margin-bottom: 32px; }
  .system-cols, .howit-grid, .reviews-grid, .program-grid { grid-template-columns: 1fr; }
  .store-grid { grid-template-columns: repeat(2, 1fr); }
  .clinics-grid { grid-template-columns: repeat(3, 1fr); }
  .constellation-grid, .madein-row, .tech-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .research-mast-counters { grid-template-columns: repeat(2, 1fr); }
  .formula-grid { grid-template-columns: repeat(2, 1fr); }
  .contact-grid { grid-template-columns: 1fr; gap: 40px; }
  .store-head { flex-direction: column; align-items: flex-start; gap: 16px; }
  .store-head-right { text-align: left; }
  h1 { font-size: 52px; } h2 { font-size: 34px; }
  .clinics-coda-num { font-size: 120px; }
  .foot-grid { grid-template-columns: 1fr; gap: 28px; }
  /* "Ваш день" routine: flex-wrap so the arrows can't force a wide single row */
  .routine-tl { padding: 28px 24px; }
  .routine-flow { grid-template-columns: 1fr; gap: 0; }
  .routine-step { padding-top: 0; padding-left: 46px; padding-bottom: 24px; text-align: left; }
  .routine-step::before { top: 8px; left: 14px; width: 1px; height: 100%; }
  .routine-step:last-child::before { display: none; }
  .routine-step:last-child { padding-bottom: 0; }
  .routine-step-num { top: -2px; left: 0; transform: none; }
  .routine-step-desc { margin: 0; max-width: 38ch; }
  /* free-from: keep a real 2x2 and stop the fixed-size icons overflowing a cell */
  .formula-card { padding: 22px 18px 26px; }
  .formula-icon { width: 96px; height: 96px; }
}
@media (max-width: 600px) {
  .wrap { padding: 0 20px; }
  .hero h1, h1 { font-size: 38px; }
  h2 { font-size: 27px; }
  .store-grid { grid-template-columns: 1fr; }
  .press-grid { grid-template-columns: repeat(4, 1fr); }
  .clinics-grid { grid-template-columns: repeat(2, 1fr); }
  /* keep the stat squares as a 2-up grid (NOT a single column) per the design intent */
  .constellation-grid, .tech-grid, .formula-grid, .madein-row,
  .research-mast-counters { grid-template-columns: repeat(2, 1fr) !important; }
  .const-num { font-size: 44px; }
  .tech-grid { gap: 18px; }
  .product-add { font-size: 11px; }
  .mapcta-card { padding: 0; }
  .contact-form { padding: 26px 20px; }
  .foot-cols { grid-template-columns: 1fr 1fr; }
  .trust-social, .system, .howit, .clinics, .store, .press, .reviews,
  .results, .formula, .madein, .mapcta, .faq, .contact { padding-top: 48px; padding-bottom: 48px; }
}
/* keep the stat squares 2-up even on the smallest phones (2x2 by design);
   only shrink the numbers so they never overflow a narrow cell */
@media (max-width: 400px) {
  .const-num { font-size: 36px; }
  .const-label { font-size: 11px; }
  .madein-num { font-size: 36px; }
  .formula-icon { width: 84px; height: 84px; }
}

/* ===========================================================================
   WooCommerce shop / archive — re-skin the Product Collection block cards to
   match the homepage .product-card system: bordered cream card, white photo
   well, serif left-aligned name, italic serif price over a hairline rule, and
   a dark-ink full-width add-to-cart button (not the default maroon).
   Markup: ul.wc-block-product-template > li.wc-block-product > image / title /
   price / button. Loaded site-wide via functions.php, so it styles /shop too.
   =========================================================================== */
/* Product Collection renders BOTH .wc-block-product-template AND
   .wp-block-woocommerce-product-template on the same container, with li.wc-block-product
   items — so these selectors match. Mirror the homepage .product-card EXACTLY. */
.wc-block-product-template.columns-3 { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 24px !important; }
.wc-block-product-template { list-style: none; padding-left: 0; margin-left: 0; }
.wc-block-product-template li.wc-block-product {
  background: var(--paper);
  border: 1px solid var(--hairline-stronger);
  border-radius: 2px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  text-align: left;
  padding: 0 0 22px;
  margin: 0;
  transition: border-color 200ms;
}
.wc-block-product-template li.wc-block-product:hover { border-color: var(--maroon); }
/* photo well: white, square (matches .product-photo aspect-ratio 1/1) */
.wc-block-product-template li.wc-block-product .wc-block-components-product-image {
  background: #ffffff;
  margin: 0 0 4px;
  padding: 22px;
  aspect-ratio: 1 / 1;
  display: flex; align-items: center; justify-content: center;
}
.wc-block-product-template li.wc-block-product .wc-block-components-product-image a {
  display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; margin: 0;
}
.wc-block-product-template li.wc-block-product .wc-block-components-product-image img {
  width: auto; height: auto; max-width: 100%; max-height: 100%; object-fit: contain; margin: 0;
}
/* name -> .product-name (Playfair 18, left) */
.wc-block-product-template li.wc-block-product .wp-block-post-title {
  font-family: "Playfair Display", serif;
  font-weight: 400;
  font-size: 18px !important;
  line-height: 1.2;
  letter-spacing: -0.005em;
  color: var(--ink);
  text-align: left;
  margin: 24px 24px 8px;
}
.wc-block-product-template li.wc-block-product .wp-block-post-title a { color: inherit; text-decoration: none; }
/* price -> .product-price (Playfair ITALIC 26px over a top hairline, pushed to bottom).
   has-small-font-size sets 13px !important, so the size needs !important to win. */
.wc-block-product-template li.wc-block-product .wp-block-woocommerce-product-price {
  font-family: "Playfair Display", serif !important;
  font-style: italic !important;
  font-weight: 400;
  color: var(--ink);
  text-align: left;
  margin: auto 24px 16px;
  padding-top: 16px;
  border-top: 1px solid var(--hairline);
}
.wc-block-product-template li.wc-block-product .wp-block-woocommerce-product-price,
.wc-block-product-template li.wc-block-product .wp-block-woocommerce-product-price .woocommerce-Price-amount {
  font-size: 26px !important;
}
/* add-to-cart -> .product-add (dark ink, full width, UPPERCASE, wide tracking) */
.wc-block-product-template li.wc-block-product .wp-block-button { margin: 0 24px; width: calc(100% - 48px); max-width: none; }
.wc-block-product-template li.wc-block-product .wp-block-button .wp-block-button__link {
  display: block;
  width: 100%;
  text-align: center;
  background: var(--ink);
  color: var(--paper);
  font-family: "Inter", sans-serif;
  font-size: 12px !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase;
  font-weight: 500;
  border: 1px solid var(--ink);
  border-radius: 0;
  padding: 14px;
  transition: all 200ms;
}
.wc-block-product-template li.wc-block-product .wp-block-button .wp-block-button__link:hover { background: var(--maroon); border-color: var(--maroon); }
@media (max-width: 900px) { .wc-block-product-template.columns-3 { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
@media (max-width: 600px) { .wc-block-product-template.columns-3 { grid-template-columns: 1fr !important; } }

/* ===========================================================================
   Navigation block re-skin — the header menu is now an editable core
   wp:navigation block (manage it in Site Editor -> Navigation). This matches
   the prior hand-coded nav: ink links with a maroon underline-on-hover; boxless
   cream dropdowns with a maroon top accent + gray hairline rows + a maroon
   underline-on-hover; and a cream hamburger overlay on tablet/mobile.
   Selectors are WordPress core's Navigation-block classes; scoped to .rgq-nav.
   =========================================================================== */
.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(--maroon); }
.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: maroon top accent, gray hairline rows */
.rgq-nav .wp-block-navigation__submenu-container {
  background: var(--paper); border: 0; border-top: 2px solid var(--maroon);
  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(--maroon); transform: scaleX(0); transform-origin: left; transition: transform 200ms;
}
.rgq-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { color: var(--maroon); }
.rgq-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover::after { transform: scaleX(1); }
/* tablet/mobile: force the hamburger overlay at <=1024 so long RU labels never overflow */
@media (max-width: 1024px) {
  /* CRITICAL: .nav has backdrop-filter, which makes it the containing block for any
     descendant position:fixed — that trapped the open overlay inside the 76px header
     bar (rendered as a tiny scrolling strip). Drop it on mobile so the overlay's
     position:fixed resolves against the viewport and fills the screen. (bg is 94%
     opaque, so the frosted blur is barely visible on mobile anyway.) */
  .nav { -webkit-backdrop-filter: none !important; backdrop-filter: none !important; }
  .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; }
}
.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 lines — hide it and draw a 3-line hamburger */
.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;
}
/* cream mobile overlay — the block/JS leaves the open container 66px tall + white,
   so force a real full-screen cream panel (these need !important to win) */
.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: 8px 22px 40px !important;
}
/* trim the block's default 56px content top-padding so the menu doesn't sit too far down */
.rgq-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 34px !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(--gold-hair) !important;
  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; }
/* align nav-inner items: the block group's flow layout adds margin-block-start to the
   2nd+ children, pushing the hamburger + cart ~8px below the vertically-centered logo */
.nav-inner > * { margin-block: 0 !important; }

/* ===========================================================================
   Mini-Cart block (header side cart) — replaces the old static cart link.
   Click the icon -> a drawer slides out with the items, subtotal, and
   View-cart / Checkout buttons, and the badge shows a live count. Here we just
   enlarge the icon, make the badge maroon, and tidy the drawer rows; the drawer
   itself inherits brand colors from theme.json (maroon checkout, Playfair title).
   =========================================================================== */
.rgq-cart { display: flex; align-items: center; }
.rgq-cart .wc-block-mini-cart__button { padding: 0; gap: 0; color: var(--ink); transition: color 200ms; }
.rgq-cart .wc-block-mini-cart__button:hover { color: var(--maroon); }
.rgq-cart .wc-block-mini-cart__button svg { width: 29px; height: 29px; }
.rgq-cart .wc-block-mini-cart__badge {
  background: var(--maroon); color: var(--paper); border: 0; font-weight: 600; letter-spacing: 0;
}
/* tidier drawer rows: drop the long marketing description (keep variation details) */
.wc-block-mini-cart__products-table .wc-block-components-product-metadata__description { display: none; }
/* drop the "Ваша корзина (позиций: N)" summary heading (block sets display:flex
   later in source order, so override needs !important) */
.wc-block-mini-cart__title { display: none !important; }
/* fix the doubled thumbnail: the block outputs a bare <img> AND a linked <a><img> in
   the image cell — hide the bare direct-child img, keep the linked thumbnail */
.wc-block-cart-item__image > img { display: none; }
/* brand type in the drawer: Playfair names + larger italic Playfair prices (Inter elsewhere) */
.wc-block-mini-cart__products-table .wc-block-components-product-name {
  font-family: "Playfair Display", serif; font-weight: 400; font-size: 22px; line-height: 1.22; color: var(--ink);
}
.wc-block-cart-item__prices .wc-block-components-formatted-money-amount {
  font-family: "Playfair Display", serif; font-style: italic; font-size: 18px; color: var(--body);
}
.wc-block-cart-item__total .wc-block-components-formatted-money-amount {
  font-family: "Playfair Display", serif; font-style: italic; font-size: 24px; color: var(--ink);
}
.wc-block-mini-cart__footer-subtotal .wc-block-components-totals-item__value {
  font-family: "Playfair Display", serif; font-style: italic; font-size: 30px; color: var(--ink); font-weight: 400;
}
.wc-block-mini-cart__footer-subtotal .wc-block-components-totals-item__label { font-size: 18px; }
/* bigger thumbnails + roomier rows so the drawer feels substantial */
.wc-block-cart-item__image { width: 80px; }
.wc-block-cart-item__image img { width: 80px; max-width: none; height: auto; }
.wc-block-mini-cart__products-table .wc-block-cart-items__row td { padding-top: 20px; padding-bottom: 20px; }
.wc-block-mini-cart__products-table .wc-block-cart-item__product { padding-left: 16px; }
.wc-block-mini-cart__products-table .wc-block-components-quantity-selector,
.wc-block-mini-cart__products-table .wc-block-components-quantity-selector input { font-size: 16px; }
.wc-block-mini-cart__footer .wc-block-components-totals-item__description { font-size: 13px; }
.wc-block-mini-cart__footer-actions .wc-block-components-button,
.wc-block-mini-cart__footer-actions a { font-size: 15px; }
/* Drawer rows were overlapping on desktop: the per-unit price is redundant next to
   the line total + quantity, and the 24px total crowded the Playfair name in the
   ~480px drawer. Remove the per-unit price and ease the total to 18px so the row fits
   without collision. (Higher-specificity selectors win over the stale enqueued zip.) */
.wc-block-mini-cart__products-table .wc-block-cart-item__prices { display: none !important; }
.wc-block-mini-cart__products-table .wc-block-cart-item__total .wc-block-components-formatted-money-amount { font-size: 18px !important; }
/* THE cart overlap: the Cart-PAGE image rule (.wc-block-cart-items__row …__image = 112px,
   line ~1708) leaks into the mini-cart drawer (its rows are also .wc-block-cart-items__row),
   so the thumbnail rendered 112px while the product column is positioned at the ~64px offset
   — the oversized image spilled right and the NAME overlapped its edge. Pin the drawer
   thumbnail (cell + img) to 64px at HIGHER specificity (0,3,0 beats the 0,2,0 page rule) so
   the name column clears it. The Cart page itself keeps its 112px. */
.wc-block-mini-cart__products-table .wc-block-cart-items__row .wc-block-cart-item__image { width: 64px !important; }
.wc-block-mini-cart__products-table .wc-block-cart-items__row .wc-block-cart-item__image img { width: 64px !important; max-width: 64px !important; height: auto !important; }
/* Mobile drawer (~264px row): the 84px thumbnail + 107px qty stepper overflowed the
   table and cut off the price (h-scrollbar). Shrink the thumbnail + tighten padding so
   the row fits; ease the Playfair name to suit the narrower column. */
/* The drawer never needs to scroll horizontally — clip it so no stray h-scrollbar
   appears when a row sits flush to the edge. */
.wc-block-mini-cart__items, .wc-block-mini-cart__products { overflow-x: hidden !important; }
@media (max-width: 600px) {
  .wc-block-mini-cart__products-table .wc-block-cart-item__image,
  .wc-block-mini-cart__products-table .wc-block-cart-item__image img { width: 46px !important; }
  .wc-block-mini-cart__products-table .wc-block-cart-item__product { padding-left: 10px !important; }
  .wc-block-mini-cart__products-table .wc-block-cart-items__row td { padding-top: 14px; padding-bottom: 14px; }
}
/* The 22px Playfair name still collided with the price at narrower desktop widths
   (it ran into the right-hand total column). Ease it to the price's 18px and force
   normal wrapping so it stays in its own column instead of overrunning the price. */
.wc-block-mini-cart__products-table .wc-block-components-product-name {
  font-size: 18px !important; line-height: 1.25 !important; white-space: normal !important; overflow-wrap: anywhere; }
/* Cleaner drawer footer: drop the "Просмотр корзины" (View cart) button, keep only
   the Checkout button (full width). */
.wc-block-mini-cart__footer-cart { display: none !important; }
.wc-block-mini-cart__footer-actions .wc-block-mini-cart__footer-checkout { width: 100% !important; flex: 1 1 100% !important; }

/* ===========================================================================
   PRODUCT PAGE (single product) — branded + responsive. Applies to ALL products
   via the single-product template. Fixes the 96px side padding that crushed
   mobile, adds a maroon product outline + burgundy section accents, and styles
   the emoji benefit lines the template script builds.
   =========================================================================== */
.rgq-pdp { padding: 48px 96px 80px; }
.rgq-pdp-top { align-items: flex-start; }
/* product gallery: white well + maroon outline (the "burgundy outline around the product") */
.rgq-pdp .wp-block-woocommerce-product-image-gallery {
  border: 1px solid var(--maroon); border-radius: 2px; background: #fff; padding: 22px;
}
/* the inner gallery is nested inside the block wrapper — no second border */
.rgq-pdp .woocommerce-product-gallery { border: 0; background: transparent; padding: 0; }
.rgq-pdp .woocommerce-product-gallery img, .rgq-pdp .wp-block-woocommerce-product-image-gallery img { border-radius: 0; }
/* title */
.rgq-pdp .wp-block-post-title {
  font-family: "Playfair Display", serif; font-weight: 400; color: var(--ink);
  line-height: 1.08; letter-spacing: -0.01em; margin: 0 0 12px;
}
/* price */
.rgq-pdp .wp-block-woocommerce-product-price { color: var(--ink); margin: 0 0 4px; }
.rgq-pdp .wp-block-woocommerce-product-rating { margin: 0 0 10px; }
/* short description -> emoji benefit lines (built by the template script), hanging indent */
.rgq-pdp .rgq-benefits { margin: 18px 0 4px; }
.rgq-pdp .rgq-benefit {
  padding: 11px 0 11px 30px; text-indent: -30px;
  border-bottom: 1px solid var(--hairline);
  font-size: 15px; line-height: 1.55; color: var(--body);
}
.rgq-pdp .rgq-benefit:last-child { border-bottom: 0; }
.rgq-pdp .rgq-benefit strong { color: var(--ink); font-weight: 600; }
/* a lead-in line (description text before the first emoji) — plain, no bullet/rule */
.rgq-pdp .rgq-benefit.rgq-lead { padding: 0 0 6px; text-indent: 0; border-bottom: 0; color: var(--ink); }
.rgq-pdp .rgq-benefit img.emoji { width: 18px; height: 18px; vertical-align: -3px; }
/* add-to-cart: dark ink full-width button */
.rgq-pdp .wp-block-woocommerce-add-to-cart-form { margin-top: 24px; }
.rgq-pdp form.cart { display: flex; gap: 12px; align-items: stretch; flex-wrap: wrap; margin: 0; }
.rgq-pdp form.cart .quantity { flex: 0 0 auto; }
.rgq-pdp form.cart .quantity .qty {
  height: 100%; border: 1px solid var(--hairline-stronger); border-radius: 2px;
  padding: 12px 6px; font-size: 15px; background: var(--paper); color: var(--ink); width: 64px; text-align: center;
}
.rgq-pdp form.cart button.single_add_to_cart_button {
  flex: 1 1 auto; min-width: 200px;
  background: var(--ink); color: var(--paper); border: 0; border-radius: 0;
  font-family: "Inter", sans-serif; font-size: 14px; letter-spacing: 0.04em; font-weight: 500;
  padding: 16px 26px; cursor: pointer; transition: background 200ms;
}
.rgq-pdp form.cart button.single_add_to_cart_button:hover { background: var(--maroon); }
/* product meta: quiet line */
.rgq-pdp .wp-block-woocommerce-product-meta, .rgq-pdp .product_meta {
  margin-top: 22px; padding-top: 16px; border-top: 1px solid var(--hairline);
  font-size: 12px; letter-spacing: 0.03em; color: var(--body);
}
/* full description: full-width, burgundy top rule, headings with a maroon accent line */
.rgq-pdp .rgq-pdp-details, .rgq-pdp .woocommerce-tabs {
  margin-top: 56px; border-top: 2px solid var(--maroon); padding-top: 38px; clear: both;
}
/* description tabs (ОПИСАНИЕ | ДЕТАЛИ | ОТЗЫВЫ) — on-brand underline tabs, not the
   gray boxed default. WooCommerce's `.woocommerce div.product ...` rules outrank
   us, so the box-removal needs !important. */
.rgq-pdp .woocommerce-tabs ul.tabs { list-style: none; margin: 0 0 32px !important; padding: 0 !important; display: flex; gap: 30px; border-bottom: 1px solid var(--hairline); }
.rgq-pdp .woocommerce-tabs ul.tabs::before, .rgq-pdp .woocommerce-tabs ul.tabs::after { content: none !important; display: none !important; }
.rgq-pdp .woocommerce-tabs ul.tabs li { margin: 0 !important; padding: 0 !important; background: transparent !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; }
.rgq-pdp .woocommerce-tabs ul.tabs li::before, .rgq-pdp .woocommerce-tabs ul.tabs li::after { content: none !important; display: none !important; border: 0 !important; box-shadow: none !important; }
.rgq-pdp .woocommerce-tabs ul.tabs li a {
  display: block !important; padding: 0 0 14px !important; margin: 0 !important;
  font-family: "Inter", sans-serif; font-size: 12px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--body) !important; background: transparent !important;
  border: 0 !important; border-bottom: 2px solid transparent !important; transition: color 200ms, border-color 200ms;
}
.rgq-pdp .woocommerce-tabs ul.tabs li a:hover { color: var(--ink) !important; }
.rgq-pdp .woocommerce-tabs ul.tabs li.active a { color: var(--maroon) !important; border-bottom-color: var(--maroon) !important; }
.rgq-pdp .woocommerce-Tabs-panel h2, .rgq-pdp .wc-tab h2 {
  font-family: "Playfair Display", serif; font-weight: 400; color: var(--ink); text-align: left;
  font-size: clamp(26px, 3vw, 34px) !important; line-height: 1.2; margin: 40px 0 16px;
}
/* The red square is no longer ON the heading — it sits on the .rgq-kicker eyebrow
   LABEL inserted above each main heading (matching the homepage eyebrow + heading). */
.rgq-pdp .woocommerce-Tabs-panel .rgq-kicker, .rgq-pdp .wc-tab .rgq-kicker {
  font-family: "Inter", sans-serif !important; font-size: 11px !important; line-height: 1.3;
  letter-spacing: 0.22em; text-transform: uppercase; color: var(--maroon) !important;
  font-weight: 500; margin: 38px 0 10px !important; display: block; text-align: left;
}
.rgq-pdp .woocommerce-Tabs-panel .rgq-kicker::before, .rgq-pdp .wc-tab .rgq-kicker::before {
  content: ""; display: inline-block; width: 7px; height: 7px; background: var(--maroon);
  margin-right: 10px; vertical-align: middle; position: relative; top: -2px;
}
.rgq-pdp .woocommerce-Tabs-panel .rgq-kicker + h2, .rgq-pdp .wc-tab .rgq-kicker + h2 { margin-top: 0 !important; }
/* Step sub-headings (Шаг №…) are nested h2s — keep a vertical red rule, smaller, no square. */
.rgq-pdp .woocommerce-Tabs-panel div h2, .rgq-pdp .wc-tab div h2 {
  font-size: 20px !important; margin: 26px 0 10px !important;
  padding-left: 14px; border-left: 3px solid var(--maroon);
}
.rgq-pdp .woocommerce-Tabs-panel h3, .rgq-pdp .wc-tab h3 {
  font-family: "Playfair Display", serif; font-weight: 400; color: var(--ink);
  font-size: 21px !important; line-height: 1.25; margin: 30px 0 12px;
  padding-left: 14px; border-left: 3px solid var(--maroon);
}
.rgq-pdp .woocommerce-Tabs-panel > h2:first-child, .rgq-pdp .wc-tab > h2:first-child { margin-top: 0; }
.rgq-pdp .woocommerce-Tabs-panel p, .rgq-pdp .woocommerce-Tabs-panel li,
.rgq-pdp .wc-tab p, .rgq-pdp .wc-tab li { font-size: 15px; line-height: 1.75; color: var(--body); }
.rgq-pdp .woocommerce-Tabs-panel img, .rgq-pdp .wc-tab img { border-radius: 2px; margin: 16px 0; max-width: 100%; height: auto; }
@media (max-width: 900px) {
  .rgq-pdp { padding: 22px 20px 56px; }
  .rgq-pdp-top { display: block; }
  .rgq-pdp-top .wp-block-column { width: 100% !important; flex-basis: 100% !important; margin: 0 0 26px; }
  .rgq-pdp-top .wp-block-column:last-child { margin-bottom: 0; }
  .rgq-pdp .wp-block-post-title { font-size: 30px; }
  .rgq-pdp .wp-block-woocommerce-product-image-gallery, .rgq-pdp .woocommerce-product-gallery { padding: 16px; }
  .rgq-pdp .rgq-pdp-details, .rgq-pdp .woocommerce-tabs { margin-top: 40px; padding-top: 28px; }
  .rgq-pdp .woocommerce-Tabs-panel h2, .rgq-pdp .wc-tab h2 { font-size: clamp(22px, 6vw, 28px) !important; margin: 30px 0 12px; }
  .rgq-pdp .woocommerce-Tabs-panel h3, .rgq-pdp .wc-tab h3 { font-size: 19px !important; margin: 26px 0 10px; }
}

/* ============================================================================
   CONTENT PAGES — legal/document pages, Company, Wholesale, blog single + index.
   New selectors (absent from the uploaded theme) so they go live the moment
   homepage.css is pushed to Global Styles #34. Brand: Playfair headings, Inter
   body, maroon accents (burgundy lines/squares), cream surfaces, hairlines.
   ========================================================================== */

/* small burgundy square before page eyebrows (brand highlight element) */
.rgq-doc .eyebrow::before, .rgq-cpage .eyebrow::before, .rgq-wpage .eyebrow::before {
  content: ""; display: inline-block; width: 7px; height: 7px; background: var(--maroon);
  margin-right: 10px; vertical-align: middle; position: relative; top: -2px;
}

/* ---- Legal / document pages (.rgq-doc) ---- */
.rgq-doc { padding: 66px 0 94px; position: relative; }
/* legal/doc pages use the normal site content width (.wrap = 1248), matching
   Company/Wholesale and the rest of the site (was a narrow 884px reading column). */
.rgq-doc .rgq-doc-inner { max-width: 1248px; }
.rgq-doc .eyebrow { margin-bottom: 14px; }
.rgq-doc-title { font-family: "Playfair Display", Georgia, serif; font-weight: 400; color: var(--ink);
  font-size: clamp(32px, 5vw, 50px); line-height: 1.08; letter-spacing: -0.012em; margin: 0; }
.rgq-doc-rule { width: 64px; height: 2px; background: var(--maroon); margin: 22px 0 38px; }
.rgq-doc-body { font-size: 17px; line-height: 1.8; color: var(--body); }
.rgq-doc-body > :first-child { margin-top: 0; }
.rgq-doc-body h2 { font-family: "Playfair Display", serif; font-weight: 400; color: var(--ink);
  font-size: 26px; line-height: 1.25; margin: 44px 0 16px; }
.rgq-doc-body h2::after { content: ""; display: block; width: 44px; height: 2px; background: var(--maroon); margin-top: 13px; }
.rgq-doc-body h3 { font-family: "Playfair Display", serif; font-weight: 400; color: var(--ink); font-size: 20px; margin: 30px 0 10px; }
.rgq-doc-body p { margin: 0 0 1.2em; }
.rgq-doc-body a { color: var(--maroon); border-bottom: 1px solid var(--rule); }
.rgq-doc-body a:hover { color: var(--maroon-dk); border-bottom-color: var(--maroon-dk); }
.rgq-doc-body ul, .rgq-doc-body ol { margin: 0 0 1.4em; padding-left: 1.35em; }
.rgq-doc-body li { margin: 0 0 0.55em; padding-left: 0.2em; }
.rgq-doc-body li::marker { color: var(--maroon); }
.rgq-doc-body strong { font-weight: 600; color: var(--ink); }
/* legal body text inherits a global ~70ch readable cap (~643px) that left it at
   ~3/4 width; let it fill the normal content column (.wrap content ≈ 1056px). */
.rgq-doc-body p, .rgq-doc-body ul, .rgq-doc-body ol, .rgq-doc-body li,
.rgq-doc-body h2, .rgq-doc-body h3 { max-width: none !important; }

/* ---- Company (.rgq-cpage) ---- */
.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(--hairline); }
.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(--maroon); 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(--maroon); 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(--cream-lt); border-top: 1px solid var(--hairline); border-bottom: 1px solid var(--hairline); }
.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; }
/* Imagify moves the img class onto its <picture> wrapper, so size the inner img
   (fixes .cpage-lab half-width/left-aligned; matches pro). Folded from Global Styles 2026-07-19. */
.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(--hairline); 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; }

/* ---- Wholesale (.rgq-wpage) ---- */
.rgq-wpage .wpage-hero { padding: 76px 0 92px; }
.wpage-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; }
.wpage-txt h1 { font-family: "Playfair Display", serif; font-weight: 400; color: var(--ink);
  font-size: clamp(40px, 6vw, 70px); line-height: 1.04; letter-spacing: -0.02em; margin: 0 0 22px; }
.wpage-txt .it { font-family: "Playfair Display", serif; font-style: italic; }
.wpage-txt .lede { margin-bottom: 16px; }
.wpage-txt p { font-size: 16px; line-height: 1.7; color: var(--body); margin: 0 0 14px; }
.wpage-cta { display: flex; align-items: center; gap: 24px; margin: 30px 0 22px; flex-wrap: wrap; }
.wpage-ready { font-family: "Playfair Display", serif; font-style: italic; font-size: 23px; color: var(--maroon); margin: 8px 0 0; }
.wpage-figure { margin: 0; }
.wpage-figure img { width: 100%; border-radius: 4px; border: 1px solid var(--hairline); }

/* ---- Blog single post (.rgq-single) ---- */
.rgq-single { padding: 58px 24px 92px; }
.rgq-single .wp-block-post-title { font-family: "Playfair Display", 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(--maroon); margin: 22px 0; }
/* The eyebrow (post-terms) is display:inline-block for its ::before square, so the
   constrained 760 layout's auto-margins can't center it — it stranded at the far left
   of the 1440 frame while the title/body sit in the centered 760 column. Make it block
   so it joins the column. The 64px accent rule was a fixed-width block the constrained
   layout centered mid-column; make it a full-column (760) block and paint only the
   left 64px (gradient) so the bar sits at the title's left edge too. */
.rgq-single .wp-block-post-terms { display: block; }
/* !important: this selector also exists in the enqueued (stale) theme homepage.css,
   which loads AFTER Global Styles — without !important the old width:64px wins (source-order). */
.rgq-single .rgq-post-rule { width: 100% !important; background: linear-gradient(to right, var(--maroon) 64px, transparent 64px) !important; }
.rgq-single .wp-block-post-date { color: var(--body); font-size: 13px; letter-spacing: 0.02em; }
.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); }
/* FIX: post-content inherits has-global-padding (~96px desktop / 22px mobile) ON TOP
   of the 760px column, so body copy rendered at ~568px while the eyebrow, title and
   featured image stayed at the full 760px — visibly misaligned (the recurring
   global-gutter + ~70ch reading-cap trap; see gotchas "Text sits at half-width").
   Drop the inner gutter and lift residual text caps (p=60ch, .lede=56ch) so the body
   fills the SAME 760px reading column as the heading and shares its left edge. */
.rgq-single .wp-block-post-content { padding-left: 0; padding-right: 0; }
.rgq-single .wp-block-post-content :is(p, li, ul, ol, .lede, figure, blockquote) { max-width: none; }
.rgq-single .wp-block-post-content h2 { font-family: "Playfair Display", serif; font-weight: 400; color: var(--ink);
  font-size: 28px; line-height: 1.2; margin: 1.7em 0 0.5em; }
.rgq-single .wp-block-post-content h2::after { content: ""; display: block; width: 44px; height: 2px; background: var(--maroon); margin-top: 13px; }
.rgq-single .wp-block-post-content h3 { font-family: "Playfair Display", serif; font-weight: 400; color: var(--ink); font-size: 21px; margin: 1.35em 0 0.4em; }
.rgq-single .wp-block-post-content p { margin: 0 0 1.2em; }
.rgq-single .wp-block-post-content a { color: var(--maroon); border-bottom: 1px solid var(--rule); }
.rgq-single .wp-block-post-content a:hover { color: var(--maroon-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(--maroon); }
.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 { font-size: 13px; color: var(--body); text-align: center; margin-top: 8px; }
.rgq-single .wp-block-post-content blockquote { border-left: 3px solid var(--maroon); padding: 4px 0 4px 24px; margin: 1.7em 0;
  font-family: "Playfair Display", serif; font-style: italic; font-size: 22px; line-height: 1.42; color: var(--ink); }
.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(--cream-dk); font-weight: 600; color: var(--ink); }

/* ---- Blog index (.rgq-blog) ---- */
.rgq-blog .wp-block-post-featured-image { overflow: hidden; border-radius: 4px; }
.rgq-blog .wp-block-post-featured-image img { width: 100%; height: 100%; object-fit: cover; border: 1px solid var(--hairline); border-radius: 4px; transition: transform 400ms ease; }
.rgq-blog .wp-block-post-featured-image:hover img { transform: scale(1.03); }
.rgq-blog .wp-block-post-title { font-family: "Playfair Display", serif; font-weight: 400; line-height: 1.18; }
.rgq-blog .wp-block-post-title a { color: var(--ink); transition: color 180ms; }
.rgq-blog .wp-block-post-title a:hover { color: var(--maroon); }
.rgq-blog .wp-block-post-excerpt { color: var(--body); }
.rgq-blog .wp-block-post-excerpt__excerpt { line-height: 1.6; }
.rgq-blog .wp-block-post-date { letter-spacing: 0.04em; text-transform: uppercase; font-size: 12px; }
.rgq-blog .wp-block-query-pagination a, .rgq-blog .wp-block-query-pagination .current { color: var(--ink); }
.rgq-blog .wp-block-query-pagination a:hover { color: var(--maroon); }

/* ---- responsive ---- */
@media (max-width: 900px) {
  .rgq-doc { padding: 48px 0 64px; }
  .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; }
  .rgq-wpage .wpage-hero { padding: 48px 0 60px; }
  .wpage-grid { grid-template-columns: 1fr; gap: 36px; }
  .wpage-figure { order: -1; }
  .rgq-single { padding: 40px 20px 64px !important; }   /* was 4px; !important beats the stale enqueued theme homepage.css (source-order) */
}
@media (max-width: 600px) {
  .cpage-docs-grid, .cpage-prod-grid { grid-template-columns: 1fr; }
  .rgq-cpage .cpage-hero .lede { font-size: 17px; }
  .wpage-cta { gap: 16px; }
}

/* blog index container + responsive grid */
.rgq-blog { padding: 66px 24px 96px; }
.rgq-blog > .eyebrow { margin-bottom: 16px; }
.rgq-blog > h1 { margin-bottom: 52px; }
@media (max-width: 900px) {
  .rgq-blog { padding: 46px 20px 64px; }
  .rgq-blog .wp-block-post-template { grid-template-columns: 1fr 1fr !important; }
  .rgq-blog > h1 { margin-bottom: 34px; }
}
@media (max-width: 600px) {
  .rgq-blog .wp-block-post-template { grid-template-columns: 1fr !important; }
}

/* ---- Professional gateway page (.rgq-pro) ---- */
.rgq-pro section { padding: 84px 0; position: relative; }
.rgq-pro .pro-section-head { max-width: 760px; margin-bottom: 44px; }
.rgq-pro .pro-section-head h2, .rgq-pro .pro-science-text h2, .rgq-pro .pro-cta-card h2 {
  font-family: "Playfair Display", serif; font-weight: 400; color: var(--ink);
  font-size: clamp(30px, 4vw, 44px); line-height: 1.1; letter-spacing: -0.015em; margin: 6px 0 0; }
.rgq-pro .it { font-family: "Playfair Display", serif; font-style: italic; }
.rgq-pro .eyebrow::before { content: ""; display: inline-block; width: 7px; height: 7px; background: var(--maroon); margin-right: 10px; vertical-align: middle; position: relative; top: -2px; }

.pro-hero { padding: 92px 0 66px; overflow: hidden; background: var(--cream-lt); border-bottom: 1px solid var(--hairline); }
.pro-hero h1 { font-family: "Playfair Display", serif; font-weight: 400; color: var(--ink); font-size: clamp(44px, 6.4vw, 78px); line-height: 1.0; letter-spacing: -0.025em; margin: 14px 0 22px; }
.pro-hero .lede { font-size: 20px; line-height: 1.6; max-width: 60ch; }
.pro-hero-cta { display: flex; align-items: center; gap: 26px; margin-top: 32px; flex-wrap: wrap; }

.pro-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 36px; }
.pro-stat { border-top: 2px solid var(--maroon); padding-top: 22px; }
.pro-stat-num { font-family: "Playfair Display", serif; font-weight: 400; font-size: 60px; line-height: 1; color: var(--ink); letter-spacing: -0.02em; }
.pro-stat-num .sign { color: var(--maroon); font-style: italic; margin-right: 1px; }
.pro-stat-num .unit { color: var(--maroon); font-style: italic; font-size: 0.4em; }
.pro-stat-lbl { margin-top: 14px; font-size: 12px; letter-spacing: 0.04em; color: var(--body); text-transform: uppercase; }

.pro-apps { background: var(--cream-lt); border-top: 1px solid var(--hairline); border-bottom: 1px solid var(--hairline); }
.pro-apps-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.pro-app { background: var(--paper); border: 1px solid var(--gold-hair); border-radius: 2px; padding: 30px 28px; }
.pro-app-stat { font-family: "Playfair Display", serif; font-weight: 400; font-size: 44px; line-height: 1; color: var(--maroon); letter-spacing: -0.02em; }
.pro-app-stat .unit { font-style: italic; font-size: 0.42em; }
.pro-app-name { font-family: "Playfair Display", serif; font-size: 22px; color: var(--ink); margin: 14px 0 10px; line-height: 1.2; }
.pro-app p { font-size: 15px; line-height: 1.6; color: var(--body); margin: 0; }

.pro-science-grid { display: grid; grid-template-columns: 1fr 0.9fr; gap: 56px; align-items: center; }
.pro-science-text .lede { margin-top: 16px; font-size: 18px; line-height: 1.6; }
.pro-science-list { list-style: none; margin: 26px 0 0; padding: 0; }
.pro-science-list li { position: relative; padding-left: 26px; margin-bottom: 14px; font-size: 16px; line-height: 1.55; color: var(--body); }
.pro-science-list li::before { content: ""; position: absolute; left: 0; top: 9px; width: 8px; height: 8px; background: var(--maroon); }
.pro-science-fig { margin: 0; }
.pro-science-fig img { width: 100%; height: auto; border-radius: 4px; border: 1px solid var(--hairline); }

.pro-cta { padding-top: 0 !important; }
.pro-cta-card { background: var(--ink); color: var(--paper); border-radius: 4px; padding: 64px 56px; text-align: center; }
.pro-cta-card .eyebrow { color: var(--gold); }
.pro-cta-card .eyebrow::before { background: var(--gold); }
/* the shared .rgq-pro h2 rule sets ink; force paper on the dark CTA card so the
   heading is legible (it was dark-on-dark — only the italic span showed). */
.rgq-pro .pro-cta-card h2, .rgq-pro .pro-cta-card h2 .it, .pro-cta-card .it { color: var(--paper) !important; }
.pro-cta-card p { color: rgba(251, 244, 228, 0.82); max-width: 60ch; margin: 16px auto 0; font-size: 16px; line-height: 1.6; }
.pro-cta-row { display: flex; justify-content: center; gap: 18px; margin-top: 30px; flex-wrap: wrap; }
.pro-cta-card .btn-ghost { color: var(--paper); border-color: rgba(251, 244, 228, 0.5); }
.pro-cta-card .btn-ghost:hover { background: var(--paper); color: var(--ink); border-color: var(--paper); }

@media (max-width: 900px) {
  .rgq-pro section { padding: 56px 0; }
  .pro-hero { padding: 60px 0 48px; }
  .pro-stats { grid-template-columns: 1fr 1fr; gap: 28px; }
  .pro-apps-grid { grid-template-columns: 1fr; }
  .pro-science-grid { grid-template-columns: 1fr; gap: 32px; }
  .pro-science-fig { order: -1; }
  .pro-cta-card { padding: 44px 26px; }
}
@media (max-width: 600px) {
  .pro-hero-cta { gap: 16px; }
}

/* ---- Header account entry + mobile login link ---- */
.nav-actions { display: flex; align-items: center; gap: 20px; }
.rgq-account { display: inline-flex; align-items: center; color: var(--ink); transition: color 200ms; }
.rgq-account svg { width: 25px; height: 25px; stroke: var(--ink); display: block; }
.rgq-account:hover { color: var(--maroon); }
.rgq-account:hover svg { stroke: var(--maroon); }
.rgq-nav .rgq-nav-login { display: none; }              /* desktop uses the account icon */
@media (max-width: 1024px) {
  .rgq-account { display: none; }                        /* mobile uses the in-menu link */
  .rgq-nav .rgq-nav-login { display: block !important; }
}

/* ---- WooCommerce account / login, themed ---- */
body.woocommerce-account .rgq-page { max-width: 1120px; margin: 0 auto; padding: 60px 24px 92px; }
body.woocommerce-account h1, body.woocommerce-account .woocommerce h2 { font-family: "Playfair Display", serif; font-weight: 400; color: var(--ink); letter-spacing: -0.01em; }
body.woocommerce-account .woocommerce h2 { font-size: 26px; margin-bottom: 18px; }
body.woocommerce-account form.woocommerce-form-login,
body.woocommerce-account form.woocommerce-form-register {
  border: 1px solid var(--hairline-stronger); border-radius: 4px; background: var(--paper); padding: 36px 34px; max-width: 460px; }
body.woocommerce-account .woocommerce form .form-row label { font-size: 13px; letter-spacing: 0.02em; color: var(--ink); font-weight: 500; display: block; margin-bottom: 6px; }
body.woocommerce-account .woocommerce form .input-text {
  width: 100%; padding: 12px 14px; border: 1px solid var(--hairline-stronger); border-radius: 2px;
  background: #fff; font-family: "Inter", sans-serif; font-size: 15px; color: var(--ink); }
body.woocommerce-account .woocommerce form .input-text:focus { outline: none; border-color: var(--maroon); }
body.woocommerce-account .woocommerce .button,
body.woocommerce-account .woocommerce button.button,
body.woocommerce-account .woocommerce-form-login__submit {
  background: var(--maroon) !important; color: var(--paper) !important; border: 1px solid var(--maroon) !important;
  border-radius: 2px !important; box-shadow: none !important; font-family: "Inter", sans-serif; font-size: 13px;
  letter-spacing: 0.08em; padding: 13px 28px !important; font-weight: 500; cursor: pointer; text-transform: none; }
body.woocommerce-account .woocommerce .button:hover,
body.woocommerce-account .woocommerce button.button:hover { background: var(--maroon-dk) !important; border-color: var(--maroon-dk) !important; }
body.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; border: 1px solid var(--hairline); border-radius: 4px; overflow: hidden; }
body.woocommerce-account .woocommerce-MyAccount-navigation li { border-bottom: 1px solid var(--hairline); }
body.woocommerce-account .woocommerce-MyAccount-navigation li:last-child { border-bottom: 0; }
body.woocommerce-account .woocommerce-MyAccount-navigation li a { display: block; padding: 13px 18px; color: var(--ink); font-size: 14px; }
body.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a,
body.woocommerce-account .woocommerce-MyAccount-navigation li a:hover { background: var(--cream-lt); color: var(--maroon); }
body.woocommerce-account .woocommerce-MyAccount-content { font-size: 15px; line-height: 1.7; color: var(--body); }
body.woocommerce-account .woocommerce-form-login__rememberme { font-size: 13px; color: var(--body); font-weight: 400; }
body.woocommerce-account .lost_password a, body.woocommerce-account .woocommerce-privacy-policy-text a { color: var(--maroon); }
body.woocommerce-account .woocommerce form.login .woocommerce-form-login__submit { width: auto; }

/* ---- Shop archive: centered branded intro (replaces breadcrumb/title/count) ---- */
.rgq-shop-intro { text-align: center; max-width: 760px; margin: 0 auto; padding: 58px 24px 30px; }
.rgq-shop-intro .eyebrow { margin-bottom: 14px; }
.rgq-shop-intro .eyebrow::before { content: ""; display: inline-block; width: 7px; height: 7px; background: var(--maroon); margin-right: 10px; vertical-align: middle; position: relative; top: -2px; }
.rgq-shop-intro h1 { font-family: "Playfair Display", serif; font-weight: 400; color: var(--ink); font-size: clamp(34px, 5vw, 54px); line-height: 1.05; letter-spacing: -0.02em; margin: 0; }
.rgq-shop-intro .it { font-family: "Playfair Display", serif; font-style: italic; }
.rgq-shop-desc { margin: 18px auto 0; max-width: 660px; font-size: 17px; line-height: 1.62; color: var(--body); }
.rgq-shop-bar { margin: 6px 0 26px; }
@media (max-width: 600px) { .rgq-shop-intro { padding: 40px 16px 22px; } }

/* PDP description: standalone text (paragraphs/headings/lists) inherits a ~70ch
   readable max-width (~568px) that left it stuck at half page width. Make the
   full-description text span the section (the image+benefits wp:columns keep
   their own column widths, so they're unaffected). */
.rgq-pdp .woocommerce-Tabs-panel > p, .rgq-pdp .woocommerce-Tabs-panel > h2,
.rgq-pdp .woocommerce-Tabs-panel > h3, .rgq-pdp .woocommerce-Tabs-panel > ul,
.rgq-pdp .woocommerce-Tabs-panel > ol, .rgq-pdp .woocommerce-Tabs-panel > figure,
.rgq-pdp .wc-tab > p, .rgq-pdp .wc-tab > h2, .rgq-pdp .wc-tab > h3,
.rgq-pdp .wc-tab > ul, .rgq-pdp .wc-tab > ol, .rgq-pdp .wc-tab > figure {
  max-width: none !important;
}

/* Mobile: theme.json root gutter is a fixed 96px (spacing--70); that's far too
   wide on phones for root-padding-aware pages (Shop archive, Cart, Checkout,
   Account). Shrink the root padding variable on small screens. */
@media (max-width: 781px) {
  body { --wp--style--root--padding-left: 22px; --wp--style--root--padding-right: 22px; }
}

/* =========================================================================
   v0.4.2 — page-frame hairlines, legal headings, before/after cases,
   certificates page, footer Made-in-Moscow emblem.
   ========================================================================= */

/* (1) Inner pages render header/footer as top-level siblings of <main>, so their
   maroon hairlines bled edge-to-edge while the front page (everything wrapped in
   .rgq-page) capped them at the 1440 frame. Constrain top-level template parts to
   the same frame so every page's header/footer lines stop where the main one does. */
.wp-site-blocks > .wp-block-template-part { width: 100%; max-width: 1440px; margin-inline: auto; }

/* (2) Legal / document pages: section headings read as left-aligned sentence-case
   like the rest of the site (imported H2s carried inline text-align:center). */
.rgq-doc-body :is(h1, h2, h3, h4) { text-align: left !important; }

/* (3) Before/after clinical results — professional page (.pro-cases) ------- */
.pro-cases { border-top: 1px solid var(--hairline); }
.pro-cases .cases-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 28px; }
.ba-case { background: var(--paper); border: 1px solid var(--hairline-stronger); border-radius: 4px; overflow: hidden; }
.ba-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 2px; background: var(--hairline-stronger); }
.ba-cell { position: relative; aspect-ratio: 3 / 4; overflow: hidden; background: var(--cream-lt); }
.ba-cell img { width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; }
.ba-tag { position: absolute; top: 12px; left: 12px; font-family: "Inter", sans-serif; font-size: 11px;
  letter-spacing: 0.12em; text-transform: uppercase; font-weight: 500; color: var(--ink);
  background: rgba(244, 234, 216, 0.92); padding: 4px 10px; border-radius: 2px; }
.ba-tag.ba-tag-after { left: auto; right: 12px; background: var(--maroon); color: var(--paper); }
.ba-cap { padding: 20px 22px 22px; }
.ba-cap-title { font-family: "Playfair Display", serif; font-size: 20px; color: var(--ink); letter-spacing: -0.01em; }
.ba-cap-meta { margin-top: 6px; font-size: 13px; line-height: 1.5; color: var(--body); }
.pro-cases .ba-note { margin-top: 30px; font-size: 12px; line-height: 1.6; color: var(--body); opacity: 0.72; }
@media (max-width: 860px) { .pro-cases .cases-grid { grid-template-columns: 1fr; } }

/* (4) Certificates page (.rgq-certs) -------------------------------------- */
.rgq-certs { padding: 64px 0 96px; }
.rgq-certs-head { max-width: 760px; }
.rgq-certs-head h1 { font-family: "Playfair Display", serif; font-weight: 400; color: var(--ink);
  font-size: clamp(34px, 5vw, 54px); line-height: 1.05; letter-spacing: -0.02em; margin: 14px 0 0; }
.rgq-certs-head .lede { margin-top: 20px; font-size: 17px; line-height: 1.62; color: var(--body); max-width: 64ch; }
.rgq-cert-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 28px; margin-top: 52px; align-items: start; }
.rgq-cert-card { display: flex; flex-direction: column; margin: 0; }
.rgq-cert-card a { display: block; border: 1px solid var(--hairline-stronger); border-radius: 4px; overflow: hidden;
  background: #fff; transition: border-color 200ms ease, box-shadow 200ms ease; }
.rgq-cert-card a:hover { border-color: var(--maroon); box-shadow: 0 8px 28px rgba(0, 39, 62, 0.09); }
.rgq-cert-card img { width: 100%; height: auto; display: block; background: #fff; }
.rgq-cert-cap { margin-top: 12px; font-size: 13px; letter-spacing: 0.02em; color: var(--body); text-align: center; }
/* /certificates: reuse the /company no-JS checkbox lightbox. Folded from Global Styles 2026-07-19.
   .rgq-cert-open replaces the old .rgq-cert-card a link (now dead, kept inert). The overlay-img
   selector (0,2,1) outranks the legacy .rgq-cert-card img rule above. */
.rgq-cert-open { display: block; border: 1px solid var(--hairline-stronger); border-radius: 4px; overflow: hidden; background: #fff; cursor: zoom-in; transition: border-color 200ms ease, box-shadow 200ms ease; }
.rgq-cert-open:hover, .rgq-cert-open:focus-visible { border-color: var(--maroon); box-shadow: 0 8px 28px rgba(0, 39, 62, 0.09); outline: none; }
.rgq-cert-card .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); }
@media (max-width: 600px) { .rgq-cert-grid { grid-template-columns: 1fr; gap: 20px; } }

/* (5) Footer Made-in-Moscow emblem --------------------------------------- */
.foot-moscow { margin-top: 22px; }
.foot-moscow img { height: 96px; width: auto; display: block; }

/* =========================================================================
   v0.4.3 — shop intro left-align, cart line items, cart/checkout totals,
   checkout (red rules, no descriptions, no header, RU default, login).
   (!important where overriding rules that also live in the uploaded theme.css.)
   ========================================================================= */

/* /shop intro: left-justified + aligned to the product-grid column (was centered) */
.rgq-shop-intro { text-align: left !important; max-width: 1248px !important; margin-inline: auto;
  padding-left: 96px !important; padding-right: 96px !important; }
.rgq-shop-desc { margin-left: 0 !important; margin-right: 0 !important; }
@media (max-width: 1100px) { .rgq-shop-intro { padding-left: 40px !important; padding-right: 40px !important; } }
@media (max-width: 600px) { .rgq-shop-intro { padding-left: 20px !important; padding-right: 20px !important; } }

/* Cart line items: bigger product image + drop the truncated description ---- */
.wc-block-cart-items__row .wc-block-cart-item__image { width: 112px !important; }
.wc-block-cart-items__row .wc-block-cart-item__image img { width: 100px !important; height: auto !important; max-width: none; }
.wc-block-components-product-metadata__description { display: none !important; }
@media (max-width: 600px) {
  .wc-block-cart-items__row .wc-block-cart-item__image { width: 84px !important; }
  .wc-block-cart-items__row .wc-block-cart-item__image img { width: 76px !important; }
}
/* Thin burgundy outline on every cart/checkout thumbnail — they read flat without it.
   Covers the mini-cart drawer, the Cart page, and the checkout order-summary.
   (box-sizing:border-box site-wide, so the 1px border adds no layout shift.) */
.wc-block-cart-item__image img,
.wc-block-components-order-summary-item__image img { border: 1px solid var(--maroon) !important; border-radius: 2px; }

/* Cart + checkout totals: Playfair italic, consistent size on every viewport
   (the "final price" was Inter 20px and shrank on mobile vs the italic line prices) */
.wc-block-components-totals-item__value,
.wc-block-components-totals-item__value .wc-block-components-formatted-money-amount {
  font-family: "Playfair Display", serif !important; font-style: italic !important; font-weight: 400 !important; }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
.wc-block-components-totals-footer-item .wc-block-components-formatted-money-amount {
  font-size: 28px !important; line-height: 1.1 !important; color: var(--ink) !important; }
/* "Подытог" (subtotal) value was the un-sized 13px default — much smaller than every
   other Playfair-italic price. Size the NON-footer totals values consistently (18px),
   leaving the final "Итого" footer at its prominent 28px. */
.wc-block-components-totals-item:not(.wc-block-components-totals-footer-item) .wc-block-components-totals-item__value,
.wc-block-components-totals-item:not(.wc-block-components-totals-footer-item) .wc-block-components-totals-item__value .wc-block-components-formatted-money-amount {
  font-size: 18px !important; color: var(--ink) !important; }

/* Checkout: distraction-free — hide the site header + the page H1 (login stays
   via the checkout block's login reminder; the email field is in the contact step) */
body.woocommerce-checkout .wp-site-blocks > header { display: none !important; }
body.woocommerce-checkout .wp-block-post-title { display: none !important; }

/* Checkout: burgundy hairlines between the steps, like the main-page section rules */
body.woocommerce-checkout .wc-block-components-checkout-step {
  border-top: 2px solid var(--maroon); padding-top: 30px; margin-top: 30px; }
body.woocommerce-checkout .wc-block-checkout__sidebar {
  border-top: 2px solid var(--maroon); padding-top: 26px; }

/* Checkout: hide the optional apartment line (address line 2) */
body.woocommerce-checkout .wc-block-components-address-form .wc-block-components-text-input:has(#billing-address_2),
body.woocommerce-checkout .wc-block-components-address-form #billing-address_2 { display: none !important; }

/* Checkout mobile: WooCommerce renders a 2nd order summary ("fill") inside the
   place-order actions, so the order details show twice (collapsible at top +
   repeat near the button). Hide the redundant fill — the top collapsible keeps
   the total + expandable items. */
.checkout-order-summary-block-fill-wrapper { display: none !important; }
@media (max-width: 480px) {
  body { --wp--style--root--padding-left: 16px; --wp--style--root--padding-right: 16px; }
}

/* ============================================================
   Contact-form consent opt-in — required checkbox + privacy link.
   Scoped under .contact-form to beat the generic .contact-form
   label/input rules (uppercase label, display:block, width:100%).
   ============================================================ */
.contact-form .contact-consent { display: flex; align-items: flex-start; gap: 10px; margin: 4px 0 2px; cursor: pointer; text-transform: none; }
.contact-form .contact-consent input[type="checkbox"] { width: 17px; min-width: 17px; height: 17px; margin: 2px 0 0; padding: 0; flex: 0 0 auto; accent-color: var(--maroon); cursor: pointer; }
.contact-form .contact-consent span { font-family: "Inter", sans-serif; font-size: 13px; line-height: 1.5; letter-spacing: 0; text-transform: none; font-weight: 400; color: var(--body); }
.contact-form-note a, .contact-form .contact-consent a { color: var(--maroon); border-bottom: 1px solid var(--hairline-stronger); }
.contact-form-note a:hover, .contact-form .contact-consent a:hover { border-bottom-color: var(--maroon); }

/* ============================================================
   /locations/ — REGENIQUE Locations map widget (.rgql-*) re-skin.
   Editorial cream/ink/maroon to match the theme; overrides the
   plugin's default ink-block toolbar + generic list panel.
   ============================================================ */
.rgql-wrap { margin: 0 auto; }

/* Page header: eyebrow + Playfair title at the homepage section-head scale.
   The bare <h1> was inheriting the 76px hero size; the intro reads as a lede. */
.rgql-title { font-family: "Playfair Display", Georgia, serif; font-weight: 400; color: var(--ink); font-size: clamp(32px, 5vw, 44px) !important; line-height: 1.12; letter-spacing: -0.015em; margin: 0 0 14px !important; }
.rgql-title .it { font-family: "Playfair Display", serif; font-style: italic; }
.rgql-intro { font-size: 18px; line-height: 1.65; color: var(--body); max-width: 72ch; margin: 0 0 30px; }
/* Align the /locations/ post-content to the site .wrap column. Its entry-content
   has max-width:1248 but margin:0 (left-aligned in the 1440 main), so the eyebrow,
   H1, intro and map sat ~96px LEFT of the header/homepage content column. Center it
   + give it the SAME responsive gutters as .wrap (96/40/20). :has() scopes the fix
   to this page only (the .rgql-title H1 is unique to /locations/), no page-id needed. */
.entry-content:has(.rgql-title) { max-width: 1248px; margin-inline: auto; padding-inline: 96px; padding-top: 64px; }
@media (max-width: 1100px) { .entry-content:has(.rgql-title) { padding-inline: 40px; } }
@media (max-width: 600px)  { .entry-content:has(.rgql-title) { padding-inline: 20px; } }
@media (max-width: 781px) {
  .entry-content:has(.rgql-title) { padding-top: 36px; }
  .rgql-title { font-size: clamp(28px, 7vw, 34px) !important; }
  .rgql-intro { font-size: 16px; margin-bottom: 22px; }
}

/* Toolbar: light paper bar with a maroon hairline (not a heavy ink block) */
.rgql-toolbar {
  background: #FBF4E4 !important;
  padding: 18px 20px !important;
  gap: 14px;
  border: 1px solid rgba(0, 39, 62, 0.12) !important;
  border-bottom: 2px solid #910048 !important;
  border-radius: 0 !important;
}
.rgql-search,
.rgql-filter {
  background: #fff !important;
  color: #00273e !important;
  border: 1px solid rgba(0, 39, 62, 0.18) !important;
  border-radius: 0 !important;
  font-family: Inter, system-ui, sans-serif !important;
  font-size: 15px !important;
  padding: 12px 14px !important;
}
.rgql-search::placeholder { color: rgba(0, 39, 62, 0.45); }
.rgql-search:focus,
.rgql-filter:focus {
  outline: none !important;
  border-color: #910048 !important;
  box-shadow: 0 0 0 2px rgba(145, 0, 72, 0.12) !important;
}
.rgql-filter { cursor: pointer; }

/* Split frame + map + list */
.rgql-split { border: 1px solid rgba(0, 39, 62, 0.12); border-top: 0; }
.rgql-map { border-right: 1px solid rgba(0, 39, 62, 0.12); }
.rgql-list { background: #FBF4E4 !important; }

/* "Точек: N" header -> eyebrow label */
.rgql-count {
  background: #F4EAD8 !important;
  color: #910048 !important;
  font-family: Inter, system-ui, sans-serif !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.16em !important;
  padding: 14px 20px !important;
  border-bottom: 1px solid rgba(0, 39, 62, 0.12) !important;
}

/* List items */
.rgql-item {
  padding: 16px 20px !important;
  border-bottom: 1px solid rgba(0, 39, 62, 0.10) !important;
  background: transparent !important;
  transition: background 160ms ease;
}
.rgql-item:hover { background: #F4EAD8 !important; }
.rgql-item-name {
  font-family: "Playfair Display", Georgia, serif !important;
  font-size: 18px !important;
  font-weight: 500 !important;
  color: #00273e !important;
}
.rgql-item-meta {
  font-family: Inter, system-ui, sans-serif !important;
  font-size: 13.5px !important;
  color: #43454b !important;
}
.rgql-item-arrow { color: #910048 !important; }

/* Mobile: stack map over list */
@media (max-width: 781px) {
  .rgql-split { grid-template-columns: 1fr !important; height: auto !important; }
  .rgql-map { height: 360px !important; min-height: 0 !important; border-right: 0; border-bottom: 1px solid rgba(0, 39, 62, 0.12); }
  .rgql-list { max-height: 480px !important; }
  .rgql-toolbar { flex-wrap: wrap; }
  .rgql-search, .rgql-filter { width: 100%; }
}

/* ============================================================
   FOLLOW-UP FIXES (2026-06-14, batch 2)
   ============================================================ */

/* Homepage "Ваш день" routine label: keep the REGENIQUE wordmark upright in the italic line */
.routine-tl-lbl .rgq-up { font-style: normal; }

/* Footer double-line: the uploaded theme's homepage.css still sets .contact's
   border-bottom, and Global Styles can't unset a same-specificity rule from a later
   stylesheet, so force it off — the footer's 2px maroon border-top is the divider.
   .contact is always the last section (homepage / professional / wholesale). */
.contact { border-bottom: none !important; }

/* Homepage reviews: the "Все отзывы покупательниц" link points to # (nowhere) — hide it. */
.reviews-foot { display: none !important; }

/* ---- Imported product descriptions are wpautop-mangled block content ---- */
/* One empty <p> per block-comment line (~100/page). They pollute the step grid as
   extra cells (steps scatter across the 3x3) and add stray gaps — hide them all. */
.rgq-pdp .woocommerce-Tabs-panel p:empty, .rgq-pdp .wc-tab p:empty { display: none !important; }
/* Body copy was authored centre-aligned — left-justify it. */
.rgq-pdp .woocommerce-Tabs-panel .has-text-align-center, .rgq-pdp .wc-tab .has-text-align-center { text-align: left !important; }
/* Application steps in plain wp:columns (NOT the vertically-centred content columns):
   force uniform square images so the 3 steps line up regardless of source size. */
.rgq-pdp .woocommerce-Tabs-panel .wp-block-columns:not(.are-vertically-aligned-center) .wp-block-group { width: 100%; }
.rgq-pdp .woocommerce-Tabs-panel .wp-block-columns:not(.are-vertically-aligned-center) figure.wp-block-image { width: 100%; margin: 0 0 14px; }
.rgq-pdp .woocommerce-Tabs-panel .wp-block-columns:not(.are-vertically-aligned-center) figure.wp-block-image img {
  width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: cover; display: block; border-radius: 3px;
}
/* Step grids (gold-mask etc.) stay 3-up on desktop, stack on phones */
@media (max-width: 600px) {
  .rgq-pdp .woocommerce-Tabs-panel .wp-block-group.is-layout-grid { grid-template-columns: 1fr !important; }
}

/* PDP — variable products: keep the dark-ink add-to-cart SOLID (not 0.5 faded) even
   while disabled (no variation chosen yet) so it matches the homepage В КОРЗИНУ button */
.rgq-pdp form.cart button.single_add_to_cart_button.disabled,
.rgq-pdp form.cart button.single_add_to_cart_button:disabled { opacity: 1; cursor: pointer; }

/* PDP — variable products: don't flex the whole variations form (only the qty+button
   row); align the "Количество" attribute label with its select + theme the dropdown */
.rgq-pdp form.variations_form.cart { display: block; }
.rgq-pdp form.variations_form.cart .single_variation_wrap { margin-top: 16px; }
.rgq-pdp form.variations_form.cart .woocommerce-variation-add-to-cart { display: flex; gap: 12px; align-items: stretch; flex-wrap: wrap; }
.rgq-pdp form.cart table.variations { width: auto; margin: 0 0 14px; border: 0; }
.rgq-pdp form.cart table.variations tbody { display: block; }
.rgq-pdp form.cart table.variations tr { display: flex; align-items: center; gap: 14px; }
.rgq-pdp form.cart table.variations th.label { padding: 0; border: 0; background: none; width: auto; display: flex; align-items: center; }
.rgq-pdp form.cart table.variations th.label label { margin: 0; font-size: 13px; font-weight: 600; color: var(--ink); }
.rgq-pdp form.cart table.variations td.value { padding: 0; border: 0; display: flex; align-items: center; gap: 10px; }
.rgq-pdp form.cart table.variations td.value select {
  border: 1px solid var(--hairline-stronger); border-radius: 2px; background: var(--paper);
  padding: 11px 14px; font-family: "Inter", sans-serif; font-size: 15px; color: var(--ink); min-width: 220px;
}
.rgq-pdp form.cart table.variations td.value select:focus { outline: none; border-color: var(--maroon); }
.rgq-pdp form.cart .reset_variations { display: inline-block; margin-left: 10px; font-size: 12px; color: var(--maroon); }

/* PDP — kill the duplicated maroon top rule: the outer .rgq-pdp-details AND the nested
   .woocommerce-tabs both carried border-top -> 2 lines under the button. Keep the outer. */
.rgq-pdp .rgq-pdp-details .woocommerce-tabs { border-top: 0; margin-top: 0; padding-top: 0; }

/* Blog index — title at the site page-title scale (was the 76px hero size), SEO intro,
   smaller per-entry titles (everything sits in .wrap now, matching the site column) */
.rgq-blog-title { font-family: "Playfair Display", Georgia, serif; font-weight: 400; color: var(--ink); font-size: clamp(34px, 5vw, 48px); line-height: 1.08; letter-spacing: -0.015em; margin: 0 0 14px; }
.rgq-blog-intro { font-size: 18px; line-height: 1.65; color: var(--body); max-width: 64ch; margin: 0 0 8px; }
.rgq-blog .wp-block-query { margin-top: 40px; }
.rgq-blog .wp-block-post-template .wp-block-post-title { font-size: 22px; line-height: 1.25; letter-spacing: -0.005em; }
.rgq-blog .wp-block-post-template .wp-block-post-title a { color: var(--ink); }
@media (max-width: 600px) {
  .rgq-blog-intro { font-size: 16px; }
}

/* ============================================================================
   PDP DESCRIPTION COMPONENTS — ported from the approved serum mockup.
   Scoped under .rgq-pdp so they only render inside the product description tab.
   New selectors => apply instantly via Global Styles (source-order safe).
   ============================================================================ */
/* PDP content column = ~1056 (the logo->cart text width), NOT the 1248 block frame.
   .rgq-pdp is a contentSize:1248 group; pull the actual content in to 1056 so nothing
   renders wider than the header. (design-system: text lives at the 1056 content width.) */
.rgq-pdp .rgq-pdp-top, .rgq-pdp .rgq-pdp-details { max-width: 1056px !important; margin-left: auto !important; margin-right: auto !important; }
/* summary benefit lines: emoji-free, with a maroon marker (the lead line has none) */
.rgq-pdp .rgq-benefit { position: relative; padding: 12px 0 12px 22px !important; text-indent: 0 !important; }
.rgq-pdp .rgq-benefit::before { content: "\2014"; position: absolute; left: 0; top: 12px; color: var(--maroon); }
.rgq-pdp .rgq-benefit.rgq-lead { padding: 0 0 8px !important; }
.rgq-pdp .rgq-benefit.rgq-lead::before { content: none; }
/* custom product gallery (main image + video tile) for products with a gallery video */
.rgq-pdp .rgq-gal-stage { border: 1px solid var(--maroon); border-radius: 2px; background: #fff; padding: 22px; aspect-ratio: 1 / 1; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.rgq-pdp .rgq-gal-stage img, .rgq-pdp .rgq-gal-stage video { width: 100% !important; height: 100% !important; object-fit: contain !important; margin: 0 !important; max-width: 100% !important; }
.rgq-pdp .rgq-gal-stage video { background: #000; }
.rgq-pdp .rgq-gal-thumbs { display: flex; gap: 12px; margin-top: 14px; }
.rgq-pdp .rgq-gal-thumb { width: 86px; height: 86px; padding: 6px; background: #fff; border: 1px solid var(--hairline-stronger); border-radius: 2px; cursor: pointer; position: relative; overflow: hidden; }
.rgq-pdp .rgq-gal-thumb img { width: 100% !important; height: 100% !important; object-fit: contain !important; margin: 0 !important; }
.rgq-pdp .rgq-gal-thumb.is-vid img { object-fit: cover !important; }
.rgq-pdp .rgq-gal-thumb.is-active { border-color: var(--maroon); }
.rgq-pdp .rgq-gal-play { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; }
.rgq-pdp .rgq-gal-play::after { content: ""; width: 0; height: 0; border-left: 15px solid #fff; border-top: 10px solid transparent; border-bottom: 10px solid transparent; margin-left: 3px; filter: drop-shadow(0 1px 3px rgba(0,0,0,.6)); }
.rgq-pdp .pdp-cols { display: grid; grid-template-columns: 1fr auto; gap: 48px; align-items: center; margin: 22px 0 8px; }
.rgq-pdp .pdp-cols.rev { grid-template-columns: auto 1fr; }
/* section headings: the wrapper div otherwise triggers the nested "step" h2 style
   (.woocommerce-Tabs-panel div h2, which is !important @ 0,2,2) — the doubled class
   lifts this to 0,3,1 so it outranks that rule. */
.rgq-pdp .rgq-pdp-desc.rgq-pdp-desc > h2 { font-family: "Playfair Display", Georgia, serif !important; font-weight: 400 !important; font-size: clamp(26px, 3vw, 34px) !important; line-height: 1.2 !important; color: var(--ink); text-align: left !important; padding-left: 0 !important; border-left: 0 !important; margin: 42px 0 16px !important; }
.rgq-pdp .pdp-colimg { margin: 0; }
.rgq-pdp .pdp-colimg img { display: block; height: 420px !important; width: auto !important; max-width: 100% !important; margin: 0 !important; border-radius: 2px; border: 1px solid var(--hairline); }
.rgq-pdp .doclist { list-style: none; margin: 0; padding: 0; }
.rgq-pdp .doclist li { padding: 14px 0; border-bottom: 1px solid var(--hairline); max-width: none; }
.rgq-pdp .doclist li:last-child { border-bottom: 0; }
.rgq-pdp .doclist b { display: block; font-family: "Playfair Display", serif; font-weight: 400; font-size: 18px; color: var(--ink); margin-bottom: 4px; letter-spacing: -0.005em; }
.rgq-pdp .doclist span { color: var(--body); }
.rgq-pdp .note-line { margin: 24px 0 0; padding-top: 18px; border-top: 1px solid var(--hairline); font-size: 15px; line-height: 1.75; color: var(--body); max-width: none; }
.rgq-pdp .inci { margin-top: 12px; font-size: 12.5px !important; line-height: 1.7 !important; color: var(--body); opacity: 0.85; max-width: none; }
.rgq-pdp .inci b { color: var(--ink); }
.rgq-pdp .pdp-pi { font-style: italic; font-size: 15px; color: var(--body); margin: 6px 0 22px; max-width: none; }
.rgq-pdp .pdp-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px 36px; margin: 0 0 24px; }
.rgq-pdp .pdp-stat { border-top: 1px solid var(--hairline-stronger); padding-top: 16px; }
.rgq-pdp .pdp-stat .num { font-family: "Playfair Display", serif; font-weight: 400; font-size: 48px; line-height: 1; color: var(--ink); letter-spacing: -0.02em; display: flex; align-items: baseline; gap: 3px; }
.rgq-pdp .pdp-stat .num .unit { color: var(--maroon); font-style: italic; font-size: 0.45em; }
.rgq-pdp .pdp-stat .lab { margin-top: 10px; font-size: 13px; color: var(--body); line-height: 1.45; letter-spacing: 0.02em; }
.rgq-pdp .pdp-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; margin: 18px 0 0; }
.rgq-pdp .pdp-step img { display: block; width: 100% !important; aspect-ratio: 1 / 1 !important; object-fit: cover !important; height: auto !important; margin: 0 !important; border-radius: 2px; border: 1px solid var(--hairline); }
.rgq-pdp .pdp-step .step-h { font-family: "Playfair Display", serif; font-weight: 400; font-size: 20px; color: var(--ink); margin: 16px 0 8px; padding-left: 14px; border-left: 3px solid var(--maroon); }
.rgq-pdp .pdp-step p { margin: 0; max-width: none; font-size: 15px; line-height: 1.75; color: var(--body); }
.rgq-pdp .pdp-tip { margin: 34px 0 0; background: var(--cream-lt); border: 1px solid var(--hairline); border-left: 3px solid var(--maroon); border-radius: 2px; padding: 20px 24px; font-size: 15px; line-height: 1.7; color: var(--body); max-width: none; }
.rgq-pdp .pdp-tip b { color: var(--maroon); }
.rgq-pdp .pdp-study { display: inline-block; color: var(--maroon); border-bottom: 1px solid var(--maroon); padding-bottom: 2px; font-size: 14px; font-weight: 500; margin-top: 8px; }
.rgq-pdp .pdp-study:hover { color: var(--maroon-dk); border-bottom-color: var(--maroon-dk); }
@media (max-width: 768px) {
  .rgq-pdp .pdp-cols, .rgq-pdp .pdp-cols.rev { grid-template-columns: 1fr; gap: 20px; }
  .rgq-pdp .pdp-colimg img { height: auto !important; width: auto !important; max-width: 100% !important; max-height: 430px !important; margin: 0 auto !important; }
  .rgq-pdp .pdp-stats { grid-template-columns: 1fr 1fr; }
  .rgq-pdp .pdp-steps { grid-template-columns: 1fr; }
}
@media (max-width: 520px) { .rgq-pdp .pdp-stats { grid-template-columns: 1fr; } }

.rgq-pro .pro-section-head .lede { margin-top: 16px; }


/* ===== WHITE-BG-OVERRIDE:START (2026-06-30) ===== */
:root {
  --cream:    #ffffff !important;
  --cream-lt: #ffffff !important;
  --cream-dk: #ffffff !important;
  --paper:    #ffffff !important;
}
html, body { background: #ffffff !important; }
.nav { background: rgba(255, 255, 255, 0.94) !important; }
.hero-image::after {
  background: linear-gradient(180deg,
    rgba(255,255,255,0.18) 0%,
    rgba(255,255,255,0)   22%,
    rgba(255,255,255,0.46) 52%,
    rgba(255,255,255,0.97) 84%) !important;
}
.ba-tag:not(.ba-tag-after) { background: rgba(255, 255, 255, 0.92) !important; }
/* extra specificity (body .rgql-) to beat the theme homepage.css !important copies */
body .rgql-toolbar    { background: #ffffff !important; }
body .rgql-list       { background: #ffffff !important; }
body .rgql-count      { background: #ffffff !important; }
body .rgql-item:hover { background: #ffffff !important; }
/* ===== WHITE-BG-OVERRIDE:END ===== */


/* ===== SHOP-CONTACT-ADDITIONS:START (2026-06-30) ===== */
/* PDP breadcrumb (back-to-shop trail: shop / product) */
.rgq-pdp-breadcrumb { font-family: "Inter", system-ui, sans-serif; font-size: 12px; letter-spacing: 0.03em; color: var(--body); margin: 0 0 26px; }
.rgq-pdp-breadcrumb a { color: var(--maroon); text-decoration: none; }
.rgq-pdp-breadcrumb a:hover { text-decoration: underline; }
.rgq-pdp-breadcrumb .bc-sep { margin: 0 9px; color: var(--ink); opacity: 0.35; }
.rgq-pdp-breadcrumb .bc-cur { color: var(--body); }
/* contact-form timeline (mirrors the professional site; blue -> maroon) */
.contact-timeline-lbl { font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--maroon); 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(--maroon); color: var(--maroon); font-size: 13px; font-weight: 500; display: flex; align-items: center; justify-content: center; background: var(--paper); }
.contact-step-title { font-family: "Playfair Display", Georgia, 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; }
/* ===== SHOP-CONTACT-ADDITIONS:END ===== */


/* ===== NAV-HOVER:START (2026-06-30) ===== */
/* Header nav hover = maroon text highlight, no underline (top-level border + dropdown ::after removed). */
.rgq-nav .wp-block-navigation-item__content:hover { color: var(--maroon) !important; border-bottom-color: transparent !important; }
.rgq-nav .wp-block-navigation-item.has-child:hover > .wp-block-navigation-item__content { color: var(--maroon) !important; border-bottom-color: transparent !important; }
.rgq-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content::after { display: none !important; }
/* ===== NAV-HOVER:END ===== */


/* ===== EYEBROW-ALIGN:START (2026-07-01) ===== */
/* Unified eyebrow: a consistent left-aligned block everywhere (matches the pro site). */
.eyebrow { display: block !important; text-align: left !important; font-family: "Inter", system-ui, sans-serif !important; font-size: 11px !important; font-weight: 500 !important; letter-spacing: 0.22em !important; text-transform: uppercase !important; }
/* Left-justify the section headers that were center-aligned. */
.press-head, .madein-head, .mapcta-card, .faq-head { text-align: left !important; }
/* remaining centered content in those sections -> left */
.press-foot, .clinics-inst { text-align: left !important; }
.madein-cell, .madein-lbl, .madein-num { text-align: left !important; }
.mapcta-card h2, .mapcta-card p { margin-inline: 0 !important; }
/* Unified page-hero H1s (legal .rgq-doc-title kept smaller for dense docs) */
.hero h1, .rgq-cpage .cpage-hero h1, .wpage-txt h1, .pro-hero h1 { font-size: clamp(42px, 6vw, 74px) !important; }
/* ===== EYEBROW-ALIGN:END ===== */


/* ===== PRO-COMPAT-USEVID:START (2026-07-01) ===== */
.compat { padding: 112px 0; position: relative; overflow: hidden; border-bottom: 1px solid var(--rule); background: var(--cream-lt); }
.compat-head { margin-bottom: 56px; position: relative; z-index: 2; }
.compat-head h2, .usevid-head h2 { font-family: "Playfair Display", Georgia, serif; font-weight: 400; font-size: clamp(30px, 4vw, 44px); line-height: 1.12; color: var(--ink); letter-spacing: -0.01em; 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-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; font-size: 15px; color: var(--ink); position: relative; z-index: 2; }
.usevid { padding: 112px 0; position: relative; overflow: hidden; border-bottom: 1px solid var(--rule); }
.usevid-head { margin-bottom: 44px; }
.usevid-sublabel { font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--maroon); 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; }
/* stack the videos on mobile (mirrors the pro homepage) */
@media (max-width: 900px) { .vid-grid { grid-template-columns: 1fr; gap: 28px; } }
.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-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; }
/* ===== PRO-COMPAT-USEVID:END ===== */


/* ===== COMPAT-ICON:START (2026-07-01) ===== */
.compat-icon { width: 40px; height: 40px; color: var(--maroon); margin-bottom: 22px; }
.compat-icon svg { width: 100%; height: 100%; stroke: currentColor; fill: none; stroke-width: 1.3; }
/* ===== COMPAT-ICON:END ===== */


/* ===== MAROON-ITALICS:START (2026-07-01) ===== */
h1 .it, h2 .it { color: var(--maroon) !important; }
/* ===== MAROON-ITALICS:END ===== */


/* ---- /company patents grid (added 2026-07-10) ---- */
.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-card a { display: block; border: 1px solid var(--hairline-stronger); border-radius: 4px;
  overflow: hidden; background: #fff; aspect-ratio: 71 / 100;
  transition: border-color 200ms ease, box-shadow 200ms ease; }
.cpage-patent-card a:hover { border-color: var(--maroon); box-shadow: 0 8px 28px rgba(0, 39, 62, 0.09); }
.cpage-patent-card 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(--maroon); 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: var(--muted, #6b6b6b); }
@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; } }
/* ---- /company patents: no-JS checkbox lightbox (ported from pro 2026-07-18) ---- */
.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(--maroon); 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-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(28, 24, 22, 0.88); cursor: zoom-out; -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px); }
.cpage-patent-card .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; }
.cpage-stat-link { display: inline-block; margin-top: 12px; font-family: "Inter", sans-serif; font-size: 13px;
  letter-spacing: 0.02em; color: var(--maroon); text-decoration: none; border-bottom: 1px solid currentColor; padding-bottom: 1px; }
.cpage-stat-link:hover { color: var(--ink); }

/* === PUBLICATIONS PAGE (/publications) — ported from the pro site === */
.rgq-pubs { padding: 64px 0 96px; }
.rgq-pubs-head { max-width: 760px; }
.rgq-pubs-head h1 { font-family: "Playfair Display", serif; font-weight: 400; color: var(--ink);
  font-size: clamp(34px, 5vw, 54px); line-height: 1.05; letter-spacing: -0.02em; margin: 14px 0 0; }
.rgq-pubs-head .lede { margin-top: 20px; font-size: 17px; line-height: 1.62; color: var(--body); max-width: 64ch; }
.rgq-pubs .rgq-pub-year { font-size: 34px; color: var(--maroon); margin: 64px 0 4px;
  padding-bottom: 10px; border-bottom: 2px solid var(--maroon); }
.rgq-pubs .rgq-pub-year:first-of-type { margin-top: 52px; }
.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-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(--hairline-stronger);
  border-radius: 4px; overflow: hidden; background: #fff; transition: border-color 200ms ease, box-shadow 200ms ease; }
a.rgq-pub-card:hover { border-color: var(--maroon); box-shadow: 0 8px 28px rgba(0, 39, 62, 0.09); }
.rgq-pub-card-img { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: rgba(0, 39, 62, 0.05); }
.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: #fff; border-bottom: 1px solid var(--hairline); }
.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(--maroon); }
.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); max-width: none; }
@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; } }
@media (max-width: 600px) { .rgq-pubs { padding: 44px 0 72px; }
  .rgq-pubs .rgq-pub-year { font-size: 28px; margin-top: 48px; }
  .rgq-pubs .rgq-pub-year:first-of-type { margin-top: 36px; } }
/* homepage /#press: the way through to the page (the pro homepage has the same link).
   .tlink, not the pro's ghost button — that is this site's own section-foot CTA style. */
.press-cta { margin-top: 20px; max-width: none; position: relative; z-index: 2; }
/* === /PUBLICATIONS PAGE === */
/* ---- 2026-07-21 front-page polish (parity with Global Styles) ---- */
.store-partners-list a { color: inherit; text-decoration: none; border-bottom: 1px solid var(--hairline-stronger); padding-bottom: 1px; transition: color 160ms ease, border-color 160ms ease; }
.store-partners-list a:hover, .store-partners-list a:focus-visible { color: var(--maroon); border-color: var(--maroon); }
.rgq-pdp .rgq-pdp-lcp { margin: 0; }
@media (max-width: 620px) { .foot-moscow img { margin-left: auto; } }

